From 44d6e5fbbb1db345d54760a7112124548064a92b Mon Sep 17 00:00:00 2001 From: jespergravgaard Date: Wed, 19 Dec 2018 00:33:27 +0100 Subject: [PATCH] Fixed tests (after reincluding cmp#0) --- src/test/kc/examples/tetris/tetris.kc | 11 +- src/test/ref/bitmap-plotter.log | 5 +- src/test/ref/c64dtv-8bppcharstretch.asm | 1 + src/test/ref/c64dtv-8bppcharstretch.log | 31 +- src/test/ref/c64dtv-blittermin.log | 1 + src/test/ref/c64dtv-color.log | 1 + src/test/ref/c64dtv-gfxexplorer.asm | 2 + src/test/ref/c64dtv-gfxexplorer.log | 391 +- src/test/ref/c64dtv-gfxmodes.asm | 1 + src/test/ref/c64dtv-gfxmodes.log | 410 +- .../examples/bresenham/bitmap-bresenham.log | 17 +- .../ref/examples/chargen/chargen-analysis.log | 48 +- .../multiplexer/simple-multiplexer.asm | 1 + .../multiplexer/simple-multiplexer.log | 63 +- src/test/ref/examples/rotate/rotate.log | 34 +- src/test/ref/examples/scrollbig/scrollbig.asm | 1 + src/test/ref/examples/scrollbig/scrollbig.log | 23 +- .../ref/examples/sinplotter/sine-plotter.log | 11 +- src/test/ref/examples/tetris/tetris.asm | 7 + src/test/ref/examples/tetris/tetris.cfg | 811 +-- src/test/ref/examples/tetris/tetris.log | 6068 +++++++++-------- src/test/ref/examples/tetris/tetris.sym | 3 + src/test/ref/fillscreen.log | 1 + src/test/ref/flipper-rex2.asm | 3 + src/test/ref/flipper-rex2.log | 30 +- src/test/ref/forrangemin.log | 1 + src/test/ref/halfscii.log | 9 +- src/test/ref/line-anim.log | 9 +- src/test/ref/mem-alignment.log | 2 + src/test/ref/min-fmul-16.log | 22 +- src/test/ref/sinusgen8.log | 1 + src/test/ref/sinusgen8b.log | 1 + src/test/ref/sinusgenscale8.log | 1 + src/test/ref/test-keyboard-space.log | 3 +- src/test/ref/test-keyboard.log | 1 + src/test/ref/test-multiply-16bit.log | 54 +- src/test/ref/test-multiply-8bit.asm | 2 + src/test/ref/test-multiply-8bit.log | 95 +- 38 files changed, 4174 insertions(+), 4002 deletions(-) diff --git a/src/test/kc/examples/tetris/tetris.kc b/src/test/kc/examples/tetris/tetris.kc index f6c5acc5c..d201454cd 100644 --- a/src/test/kc/examples/tetris/tetris.kc +++ b/src/test/kc/examples/tetris/tetris.kc @@ -215,7 +215,7 @@ void lock_current() { // Spawn a new piece void spawn_current() { - // Pick a random piece + // Pick a random piece (0-6) byte piece_idx = 7; while(piece_idx==7) { piece_idx = sid_rnd()&7; @@ -276,6 +276,15 @@ void tables_init() { // The screen byte* SCREEN = $400; +// The charset +byte* CHARSET = $2000; +kickasm(pc CHARSET, resource "charset.png") {{ + .var charset = LoadPicture("charset.png", List().add($000000, $ffffff, $523fa0, $77c1c9)) + .for (var c=0; c<16; c++) + .for (var y=0;y<8; y++) + .byte charset.getMulticolorByte(c,y) +}} + // Pointers to the screen address for rendering each playfield line byte*[PLAYFIELD_LINES+3] screen_lines; diff --git a/src/test/ref/bitmap-plotter.log b/src/test/ref/bitmap-plotter.log index 0ae52b42e..0b7d46008 100644 --- a/src/test/ref/bitmap-plotter.log +++ b/src/test/ref/bitmap-plotter.log @@ -1223,6 +1223,7 @@ init_plot_tables: { lsr bits //SEG68 [42] if((byte) init_plot_tables::bits#1!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto init_plot_tables::@10 -- vbuz1_neq_0_then_la1 lda bits + cmp #0 bne b10_from_b1 //SEG69 [43] phi from init_plot_tables::@1 to init_plot_tables::@2 [phi:init_plot_tables::@1->init_plot_tables::@2] b2_from_b1: @@ -1236,6 +1237,7 @@ init_plot_tables: { inc x //SEG73 [45] if((byte) init_plot_tables::x#1!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto init_plot_tables::@1 -- vbuz1_neq_0_then_la1 lda x + cmp #0 bne b1_from_b2 //SEG74 [46] phi from init_plot_tables::@2 to init_plot_tables::@3 [phi:init_plot_tables::@2->init_plot_tables::@3] b3_from_b2: @@ -1307,6 +1309,7 @@ init_plot_tables: { inc y //SEG95 [58] if((byte) init_plot_tables::y#1!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto init_plot_tables::@3 -- vbuz1_neq_0_then_la1 lda y + cmp #0 bne b3_from_b4 jmp breturn //SEG96 init_plot_tables::@return @@ -1484,7 +1487,7 @@ Uplift Scope [plot] 15: zp ZP_BYTE:13 [ plot::y#0 ] 9.73: zp ZP_BYTE:12 [ plot:: Uplift Scope [main] Uplift Scope [] -Uplifting [plots] best 8935 combination reg byte x [ plots::i#2 plots::i#1 ] +Uplifting [plots] best 8995 combination reg byte x [ plots::i#2 plots::i#1 ] Uplifting [init_plot_tables] best 8485 combination zp ZP_WORD:6 [ init_plot_tables::yoffs#2 init_plot_tables::yoffs#4 init_plot_tables::yoffs#1 ] reg byte y [ init_plot_tables::bits#3 init_plot_tables::bits#4 init_plot_tables::bits#1 ] reg byte x [ init_plot_tables::x#2 init_plot_tables::x#1 ] reg byte x [ init_plot_tables::y#2 init_plot_tables::y#1 ] reg byte a [ init_plot_tables::$0 ] zp ZP_BYTE:31 [ init_plot_tables::$7 ] zp ZP_BYTE:32 [ init_plot_tables::$8 ] zp ZP_BYTE:33 [ init_plot_tables::$9 ] zp ZP_BYTE:34 [ init_plot_tables::$10 ] zp ZP_BYTE:30 [ init_plot_tables::$6 ] Limited combination testing to 100 combinations of 138240 possible. Uplifting [init_screen] best 8485 combination zp ZP_WORD:8 [ init_screen::b#2 init_screen::b#1 ] zp ZP_WORD:10 [ init_screen::c#2 init_screen::c#1 ] diff --git a/src/test/ref/c64dtv-8bppcharstretch.asm b/src/test/ref/c64dtv-8bppcharstretch.asm index 5b0c25f6d..86615cd74 100644 --- a/src/test/ref/c64dtv-8bppcharstretch.asm +++ b/src/test/ref/c64dtv-8bppcharstretch.asm @@ -251,6 +251,7 @@ gfx_init_plane_charset8: { bne b2 inc ch lda ch + cmp #0 bne b1 lda #PROCPORT_RAM_IO sta PROCPORT diff --git a/src/test/ref/c64dtv-8bppcharstretch.log b/src/test/ref/c64dtv-8bppcharstretch.log index ded1647d7..0ff228098 100644 --- a/src/test/ref/c64dtv-8bppcharstretch.log +++ b/src/test/ref/c64dtv-8bppcharstretch.log @@ -1698,6 +1698,7 @@ gfx_init_plane_charset8: { inc ch //SEG129 [70] if((byte) gfx_init_plane_charset8::ch#1!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto gfx_init_plane_charset8::@1 -- vbuz1_neq_0_then_la1 lda ch + cmp #0 bne b1_from_b7 jmp b8 //SEG130 gfx_init_plane_charset8::@8 @@ -1950,29 +1951,29 @@ Uplift Scope [dtvSetCpuBankSegment1] 2: zp ZP_BYTE:13 [ dtvSetCpuBankSegment1::c Uplift Scope [gfx_init] Uplift Scope [] -Uplifting [gfx_init_plane_charset8] best 98374 combination reg byte a [ gfx_init_plane_charset8::c#2 gfx_init_plane_charset8::c#3 ] reg byte a [ gfx_init_plane_charset8::$7 ] reg byte x [ gfx_init_plane_charset8::cp#2 gfx_init_plane_charset8::cp#1 ] zp ZP_BYTE:7 [ gfx_init_plane_charset8::bits#2 gfx_init_plane_charset8::bits#0 gfx_init_plane_charset8::bits#1 ] zp ZP_WORD:8 [ gfx_init_plane_charset8::gfxa#2 gfx_init_plane_charset8::gfxa#5 gfx_init_plane_charset8::gfxa#6 gfx_init_plane_charset8::gfxa#1 ] zp ZP_BYTE:10 [ gfx_init_plane_charset8::col#2 gfx_init_plane_charset8::col#5 gfx_init_plane_charset8::col#6 gfx_init_plane_charset8::col#1 ] zp ZP_WORD:4 [ gfx_init_plane_charset8::chargen#2 gfx_init_plane_charset8::chargen#3 gfx_init_plane_charset8::chargen#1 ] zp ZP_BYTE:6 [ gfx_init_plane_charset8::cr#6 gfx_init_plane_charset8::cr#1 ] zp ZP_BYTE:3 [ gfx_init_plane_charset8::ch#8 gfx_init_plane_charset8::ch#1 ] +Uplifting [gfx_init_plane_charset8] best 98394 combination reg byte a [ gfx_init_plane_charset8::c#2 gfx_init_plane_charset8::c#3 ] reg byte a [ gfx_init_plane_charset8::$7 ] reg byte x [ gfx_init_plane_charset8::cp#2 gfx_init_plane_charset8::cp#1 ] zp ZP_BYTE:7 [ gfx_init_plane_charset8::bits#2 gfx_init_plane_charset8::bits#0 gfx_init_plane_charset8::bits#1 ] zp ZP_WORD:8 [ gfx_init_plane_charset8::gfxa#2 gfx_init_plane_charset8::gfxa#5 gfx_init_plane_charset8::gfxa#6 gfx_init_plane_charset8::gfxa#1 ] zp ZP_BYTE:10 [ gfx_init_plane_charset8::col#2 gfx_init_plane_charset8::col#5 gfx_init_plane_charset8::col#6 gfx_init_plane_charset8::col#1 ] zp ZP_WORD:4 [ gfx_init_plane_charset8::chargen#2 gfx_init_plane_charset8::chargen#3 gfx_init_plane_charset8::chargen#1 ] zp ZP_BYTE:6 [ gfx_init_plane_charset8::cr#6 gfx_init_plane_charset8::cr#1 ] zp ZP_BYTE:3 [ gfx_init_plane_charset8::ch#8 gfx_init_plane_charset8::ch#1 ] Limited combination testing to 100 combinations of 512 possible. -Uplifting [gfx_init_screen0] best 95574 combination reg byte a [ gfx_init_screen0::$0 ] reg byte a [ gfx_init_screen0::$2 ] reg byte a [ gfx_init_screen0::$3 ] reg byte x [ gfx_init_screen0::cx#2 gfx_init_screen0::cx#1 ] zp ZP_WORD:16 [ gfx_init_screen0::ch#2 gfx_init_screen0::ch#3 gfx_init_screen0::ch#1 ] zp ZP_BYTE:24 [ gfx_init_screen0::$1 ] zp ZP_BYTE:14 [ gfx_init_screen0::cy#4 gfx_init_screen0::cy#1 ] +Uplifting [gfx_init_screen0] best 95594 combination reg byte a [ gfx_init_screen0::$0 ] reg byte a [ gfx_init_screen0::$2 ] reg byte a [ gfx_init_screen0::$3 ] reg byte x [ gfx_init_screen0::cx#2 gfx_init_screen0::cx#1 ] zp ZP_WORD:16 [ gfx_init_screen0::ch#2 gfx_init_screen0::ch#3 gfx_init_screen0::ch#1 ] zp ZP_BYTE:24 [ gfx_init_screen0::$1 ] zp ZP_BYTE:14 [ gfx_init_screen0::cy#4 gfx_init_screen0::cy#1 ] Limited combination testing to 100 combinations of 768 possible. -Uplifting [main] best 92974 combination reg byte a [ main::$32 ] reg byte a [ main::$33 ] reg byte a [ main::$34 ] reg byte x [ main::rst#1 ] zp ZP_BYTE:2 [ main::j#2 main::j#1 ] +Uplifting [main] best 92994 combination reg byte a [ main::$32 ] reg byte a [ main::$33 ] reg byte a [ main::$34 ] reg byte x [ main::rst#1 ] zp ZP_BYTE:2 [ main::j#2 main::j#1 ] Limited combination testing to 100 combinations of 768 possible. -Uplifting [dtvSetCpuBankSegment1] best 92965 combination reg byte a [ dtvSetCpuBankSegment1::cpuBankIdx#2 ] -Uplifting [gfx_init] best 92965 combination -Uplifting [] best 92965 combination +Uplifting [dtvSetCpuBankSegment1] best 92985 combination reg byte a [ dtvSetCpuBankSegment1::cpuBankIdx#2 ] +Uplifting [gfx_init] best 92985 combination +Uplifting [] best 92985 combination Attempting to uplift remaining variables inzp ZP_BYTE:7 [ gfx_init_plane_charset8::bits#2 gfx_init_plane_charset8::bits#0 gfx_init_plane_charset8::bits#1 ] -Uplifting [gfx_init_plane_charset8] best 92965 combination zp ZP_BYTE:7 [ gfx_init_plane_charset8::bits#2 gfx_init_plane_charset8::bits#0 gfx_init_plane_charset8::bits#1 ] +Uplifting [gfx_init_plane_charset8] best 92985 combination zp ZP_BYTE:7 [ gfx_init_plane_charset8::bits#2 gfx_init_plane_charset8::bits#0 gfx_init_plane_charset8::bits#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:10 [ gfx_init_plane_charset8::col#2 gfx_init_plane_charset8::col#5 gfx_init_plane_charset8::col#6 gfx_init_plane_charset8::col#1 ] -Uplifting [gfx_init_plane_charset8] best 92965 combination zp ZP_BYTE:10 [ gfx_init_plane_charset8::col#2 gfx_init_plane_charset8::col#5 gfx_init_plane_charset8::col#6 gfx_init_plane_charset8::col#1 ] +Uplifting [gfx_init_plane_charset8] best 92985 combination zp ZP_BYTE:10 [ gfx_init_plane_charset8::col#2 gfx_init_plane_charset8::col#5 gfx_init_plane_charset8::col#6 gfx_init_plane_charset8::col#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:6 [ gfx_init_plane_charset8::cr#6 gfx_init_plane_charset8::cr#1 ] -Uplifting [gfx_init_plane_charset8] best 92965 combination zp ZP_BYTE:6 [ gfx_init_plane_charset8::cr#6 gfx_init_plane_charset8::cr#1 ] +Uplifting [gfx_init_plane_charset8] best 92985 combination zp ZP_BYTE:6 [ gfx_init_plane_charset8::cr#6 gfx_init_plane_charset8::cr#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:24 [ gfx_init_screen0::$1 ] -Uplifting [gfx_init_screen0] best 92965 combination zp ZP_BYTE:24 [ gfx_init_screen0::$1 ] +Uplifting [gfx_init_screen0] best 92985 combination zp ZP_BYTE:24 [ gfx_init_screen0::$1 ] Attempting to uplift remaining variables inzp ZP_BYTE:2 [ main::j#2 main::j#1 ] -Uplifting [main] best 92845 combination reg byte x [ main::j#2 main::j#1 ] +Uplifting [main] best 92865 combination reg byte x [ main::j#2 main::j#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:14 [ gfx_init_screen0::cy#4 gfx_init_screen0::cy#1 ] -Uplifting [gfx_init_screen0] best 92845 combination zp ZP_BYTE:14 [ gfx_init_screen0::cy#4 gfx_init_screen0::cy#1 ] +Uplifting [gfx_init_screen0] best 92865 combination zp ZP_BYTE:14 [ gfx_init_screen0::cy#4 gfx_init_screen0::cy#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:3 [ gfx_init_plane_charset8::ch#8 gfx_init_plane_charset8::ch#1 ] -Uplifting [gfx_init_plane_charset8] best 92845 combination zp ZP_BYTE:3 [ gfx_init_plane_charset8::ch#8 gfx_init_plane_charset8::ch#1 ] +Uplifting [gfx_init_plane_charset8] best 92865 combination zp ZP_BYTE:3 [ gfx_init_plane_charset8::ch#8 gfx_init_plane_charset8::ch#1 ] Coalescing zero page register [ zp ZP_BYTE:3 [ gfx_init_plane_charset8::ch#8 gfx_init_plane_charset8::ch#1 ] ] with [ zp ZP_BYTE:14 [ gfx_init_screen0::cy#4 gfx_init_screen0::cy#1 ] ] Coalescing zero page register [ zp ZP_WORD:4 [ gfx_init_plane_charset8::chargen#2 gfx_init_plane_charset8::chargen#3 gfx_init_plane_charset8::chargen#1 ] ] with [ zp ZP_WORD:16 [ gfx_init_screen0::ch#2 gfx_init_screen0::ch#3 gfx_init_screen0::ch#1 ] ] Coalescing zero page register [ zp ZP_BYTE:6 [ gfx_init_plane_charset8::cr#6 gfx_init_plane_charset8::cr#1 ] ] with [ zp ZP_BYTE:24 [ gfx_init_screen0::$1 ] ] @@ -2421,6 +2422,7 @@ gfx_init_plane_charset8: { inc ch //SEG129 [70] if((byte) gfx_init_plane_charset8::ch#1!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto gfx_init_plane_charset8::@1 -- vbuz1_neq_0_then_la1 lda ch + cmp #0 bne b1_from_b7 jmp b8 //SEG130 gfx_init_plane_charset8::@8 @@ -2816,7 +2818,7 @@ reg byte a [ gfx_init_screen0::$3 ] FINAL ASSEMBLER -Score: 75363 +Score: 75383 //SEG0 Basic Upstart .pc = $801 "Basic" @@ -3201,6 +3203,7 @@ gfx_init_plane_charset8: { inc ch //SEG129 [70] if((byte) gfx_init_plane_charset8::ch#1!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto gfx_init_plane_charset8::@1 -- vbuz1_neq_0_then_la1 lda ch + cmp #0 bne b1 //SEG130 gfx_init_plane_charset8::@8 //SEG131 [71] *((const byte*) PROCPORT#0) ← (const byte) PROCPORT_RAM_IO#0 -- _deref_pbuc1=vbuc2 diff --git a/src/test/ref/c64dtv-blittermin.log b/src/test/ref/c64dtv-blittermin.log index cbfcd66a3..ccb1788bb 100644 --- a/src/test/ref/c64dtv-blittermin.log +++ b/src/test/ref/c64dtv-blittermin.log @@ -692,6 +692,7 @@ main: { sta _15 //SEG48 [38] if((byte~) main::$15!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@2 -- vbuz1_neq_0_then_la1 lda _15 + cmp #0 bne b2_from_b2 jmp b3 //SEG49 main::@3 diff --git a/src/test/ref/c64dtv-color.log b/src/test/ref/c64dtv-color.log index 62bc11885..501bf7e21 100644 --- a/src/test/ref/c64dtv-color.log +++ b/src/test/ref/c64dtv-color.log @@ -341,6 +341,7 @@ main: { inc r //SEG24 [13] if((byte) main::r#1!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@7 -- vbuz1_neq_0_then_la1 lda r + cmp #0 bne b7_from_b7 //SEG25 [14] phi from main::@7 to main::@8 [phi:main::@7->main::@8] b8_from_b7: diff --git a/src/test/ref/c64dtv-gfxexplorer.asm b/src/test/ref/c64dtv-gfxexplorer.asm index bcdb2b594..f78d58bd6 100644 --- a/src/test/ref/c64dtv-gfxexplorer.asm +++ b/src/test/ref/c64dtv-gfxexplorer.asm @@ -1760,6 +1760,7 @@ gfx_init_plane_charset8: { bne b2 inc ch lda ch + cmp #0 bne b1 lda #PROCPORT_RAM_IO sta PROCPORT @@ -2237,6 +2238,7 @@ gfx_init_charset: { bne b2 inc c lda c + cmp #0 bne b1 lda #$37 sta PROCPORT diff --git a/src/test/ref/c64dtv-gfxexplorer.log b/src/test/ref/c64dtv-gfxexplorer.log index 102b5c0f3..06d65254b 100644 --- a/src/test/ref/c64dtv-gfxexplorer.log +++ b/src/test/ref/c64dtv-gfxexplorer.log @@ -16856,6 +16856,7 @@ gfx_init_plane_charset8: { inc ch //SEG1187 [581] if((byte) gfx_init_plane_charset8::ch#1!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto gfx_init_plane_charset8::@1 -- vbuz1_neq_0_then_la1 lda ch + cmp #0 bne b1_from_b7 jmp b8 //SEG1188 gfx_init_plane_charset8::@8 @@ -17887,6 +17888,7 @@ bitmap_init: { lsr bits //SEG1554 [765] if((byte) bitmap_init::bits#1!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto bitmap_init::@10 -- vbuz1_neq_0_then_la1 lda bits + cmp #0 bne b10_from_b1 //SEG1555 [766] phi from bitmap_init::@1 to bitmap_init::@2 [phi:bitmap_init::@1->bitmap_init::@2] b2_from_b1: @@ -17900,6 +17902,7 @@ bitmap_init: { inc x //SEG1559 [768] if((byte) bitmap_init::x#1!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto bitmap_init::@1 -- vbuz1_neq_0_then_la1 lda x + cmp #0 bne b1_from_b2 //SEG1560 [769] phi from bitmap_init::@2 to bitmap_init::@3 [phi:bitmap_init::@2->bitmap_init::@3] b3_from_b2: @@ -17971,6 +17974,7 @@ bitmap_init: { inc y //SEG1581 [781] if((byte) bitmap_init::y#1!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto bitmap_init::@3 -- vbuz1_neq_0_then_la1 lda y + cmp #0 bne b3_from_b4 jmp breturn //SEG1582 bitmap_init::@return @@ -18064,6 +18068,7 @@ gfx_init_charset: { inc c //SEG1615 [793] if((byte) gfx_init_charset::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto gfx_init_charset::@1 -- vbuz1_neq_0_then_la1 lda c + cmp #0 bne b1_from_b3 jmp b4 //SEG1616 gfx_init_charset::@4 @@ -19474,364 +19479,364 @@ Uplift Scope [gfx_init_plane_vertical2] Uplift Scope [gfx_init_plane_blank] Uplift Scope [gfx_init_plane_full] -Uplifting [keyboard_event_scan] best 15533513 combination reg byte a [ keyboard_event_scan::$3 ] reg byte a [ keyboard_event_scan::$4 ] zp ZP_BYTE:256 [ keyboard_event_scan::event_type#0 ] zp ZP_BYTE:257 [ keyboard_event_scan::$11 ] zp ZP_BYTE:16 [ keyboard_event_scan::col#2 keyboard_event_scan::col#1 ] zp ZP_BYTE:17 [ keyboard_event_scan::keycode#10 keyboard_event_scan::keycode#11 keyboard_event_scan::keycode#14 keyboard_event_scan::keycode#1 keyboard_event_scan::keycode#15 ] zp ZP_BYTE:14 [ keyboard_event_scan::row#2 keyboard_event_scan::row#1 ] zp ZP_BYTE:245 [ keyboard_event_scan::row_scan#0 ] zp ZP_BYTE:247 [ keyboard_event_scan::$14 ] zp ZP_BYTE:249 [ keyboard_event_scan::$18 ] zp ZP_BYTE:251 [ keyboard_event_scan::$22 ] zp ZP_BYTE:253 [ keyboard_event_scan::$26 ] +Uplifting [keyboard_event_scan] best 15533613 combination reg byte a [ keyboard_event_scan::$3 ] reg byte a [ keyboard_event_scan::$4 ] zp ZP_BYTE:256 [ keyboard_event_scan::event_type#0 ] zp ZP_BYTE:257 [ keyboard_event_scan::$11 ] zp ZP_BYTE:16 [ keyboard_event_scan::col#2 keyboard_event_scan::col#1 ] zp ZP_BYTE:17 [ keyboard_event_scan::keycode#10 keyboard_event_scan::keycode#11 keyboard_event_scan::keycode#14 keyboard_event_scan::keycode#1 keyboard_event_scan::keycode#15 ] zp ZP_BYTE:14 [ keyboard_event_scan::row#2 keyboard_event_scan::row#1 ] zp ZP_BYTE:245 [ keyboard_event_scan::row_scan#0 ] zp ZP_BYTE:247 [ keyboard_event_scan::$14 ] zp ZP_BYTE:249 [ keyboard_event_scan::$18 ] zp ZP_BYTE:251 [ keyboard_event_scan::$22 ] zp ZP_BYTE:253 [ keyboard_event_scan::$26 ] Limited combination testing to 10 combinations of 5308416 possible. -Uplifting [] best 15533445 combination zp ZP_BYTE:18 [ keyboard_events_size#18 keyboard_events_size#118 keyboard_events_size#110 keyboard_events_size#47 keyboard_events_size#27 keyboard_events_size#24 keyboard_events_size#100 keyboard_events_size#4 keyboard_events_size#119 keyboard_events_size#2 keyboard_events_size#1 ] zp ZP_WORD:52 [ print_char_cursor#20 print_char_cursor#22 print_char_cursor#77 print_char_cursor#78 print_char_cursor#38 print_char_cursor#1 ] zp ZP_WORD:54 [ print_line_cursor#21 print_line_cursor#2 print_set_screen::screen#2 print_line_cursor#22 ] zp ZP_BYTE:31 [ form_cursor_count#21 form_cursor_count#1 form_cursor_count#16 form_cursor_count#15 form_cursor_count#5 ] reg byte x [ form_field_idx#28 form_field_idx#1 form_field_idx#18 form_field_idx#32 form_field_idx#44 form_field_idx#45 ] zp ZP_BYTE:15 [ keyboard_modifiers#21 keyboard_modifiers#20 keyboard_modifiers#4 keyboard_modifiers#19 keyboard_modifiers#3 keyboard_modifiers#18 keyboard_modifiers#5 ] +Uplifting [] best 15533545 combination zp ZP_BYTE:18 [ keyboard_events_size#18 keyboard_events_size#118 keyboard_events_size#110 keyboard_events_size#47 keyboard_events_size#27 keyboard_events_size#24 keyboard_events_size#100 keyboard_events_size#4 keyboard_events_size#119 keyboard_events_size#2 keyboard_events_size#1 ] zp ZP_WORD:52 [ print_char_cursor#20 print_char_cursor#22 print_char_cursor#77 print_char_cursor#78 print_char_cursor#38 print_char_cursor#1 ] zp ZP_WORD:54 [ print_line_cursor#21 print_line_cursor#2 print_set_screen::screen#2 print_line_cursor#22 ] zp ZP_BYTE:31 [ form_cursor_count#21 form_cursor_count#1 form_cursor_count#16 form_cursor_count#15 form_cursor_count#5 ] reg byte x [ form_field_idx#28 form_field_idx#1 form_field_idx#18 form_field_idx#32 form_field_idx#44 form_field_idx#45 ] zp ZP_BYTE:15 [ keyboard_modifiers#21 keyboard_modifiers#20 keyboard_modifiers#4 keyboard_modifiers#19 keyboard_modifiers#3 keyboard_modifiers#18 keyboard_modifiers#5 ] Limited combination testing to 10 combinations of 16 possible. -Uplifting [keyboard_matrix_read] best 15443444 combination reg byte a [ keyboard_matrix_read::return#2 ] reg byte a [ keyboard_matrix_read::rowid#0 ] zp ZP_BYTE:262 [ keyboard_matrix_read::return#0 ] +Uplifting [keyboard_matrix_read] best 15443544 combination reg byte a [ keyboard_matrix_read::return#2 ] reg byte a [ keyboard_matrix_read::rowid#0 ] zp ZP_BYTE:262 [ keyboard_matrix_read::return#0 ] Limited combination testing to 10 combinations of 64 possible. -Uplifting [gfx_init_plane_charset8] best 15428444 combination reg byte a [ gfx_init_plane_charset8::c#2 gfx_init_plane_charset8::c#3 ] reg byte a [ gfx_init_plane_charset8::$5 ] zp ZP_BYTE:88 [ gfx_init_plane_charset8::cp#2 gfx_init_plane_charset8::cp#1 ] zp ZP_BYTE:84 [ gfx_init_plane_charset8::bits#2 gfx_init_plane_charset8::bits#0 gfx_init_plane_charset8::bits#1 ] zp ZP_WORD:85 [ gfx_init_plane_charset8::gfxa#2 gfx_init_plane_charset8::gfxa#5 gfx_init_plane_charset8::gfxa#6 gfx_init_plane_charset8::gfxa#1 ] zp ZP_BYTE:87 [ gfx_init_plane_charset8::col#2 gfx_init_plane_charset8::col#5 gfx_init_plane_charset8::col#6 gfx_init_plane_charset8::col#1 ] zp ZP_WORD:81 [ gfx_init_plane_charset8::chargen#2 gfx_init_plane_charset8::chargen#3 gfx_init_plane_charset8::chargen#1 ] zp ZP_BYTE:83 [ gfx_init_plane_charset8::cr#6 gfx_init_plane_charset8::cr#1 ] zp ZP_BYTE:80 [ gfx_init_plane_charset8::ch#8 gfx_init_plane_charset8::ch#1 ] +Uplifting [gfx_init_plane_charset8] best 15428544 combination reg byte a [ gfx_init_plane_charset8::c#2 gfx_init_plane_charset8::c#3 ] reg byte a [ gfx_init_plane_charset8::$5 ] zp ZP_BYTE:88 [ gfx_init_plane_charset8::cp#2 gfx_init_plane_charset8::cp#1 ] zp ZP_BYTE:84 [ gfx_init_plane_charset8::bits#2 gfx_init_plane_charset8::bits#0 gfx_init_plane_charset8::bits#1 ] zp ZP_WORD:85 [ gfx_init_plane_charset8::gfxa#2 gfx_init_plane_charset8::gfxa#5 gfx_init_plane_charset8::gfxa#6 gfx_init_plane_charset8::gfxa#1 ] zp ZP_BYTE:87 [ gfx_init_plane_charset8::col#2 gfx_init_plane_charset8::col#5 gfx_init_plane_charset8::col#6 gfx_init_plane_charset8::col#1 ] zp ZP_WORD:81 [ gfx_init_plane_charset8::chargen#2 gfx_init_plane_charset8::chargen#3 gfx_init_plane_charset8::chargen#1 ] zp ZP_BYTE:83 [ gfx_init_plane_charset8::cr#6 gfx_init_plane_charset8::cr#1 ] zp ZP_BYTE:80 [ gfx_init_plane_charset8::ch#8 gfx_init_plane_charset8::ch#1 ] Limited combination testing to 10 combinations of 512 possible. -Uplifting [print_str_at] best 15428444 combination zp ZP_WORD:37 [ print_str_at::str#2 print_str_at::str#1 print_str_at::str#0 ] zp ZP_WORD:39 [ print_str_at::at#2 print_str_at::at#0 ] -Uplifting [form_field_ptr] best 15428440 combination zp ZP_BYTE:42 [ form_field_ptr::field_idx#2 form_field_ptr::field_idx#1 form_field_ptr::field_idx#0 ] zp ZP_WORD:266 [ form_field_ptr::return#2 ] zp ZP_WORD:274 [ form_field_ptr::return#0 ] reg byte a [ form_field_ptr::y#0 ] zp ZP_BYTE:273 [ form_field_ptr::x#0 ] zp ZP_WORD:276 [ form_field_ptr::return#3 ] zp ZP_WORD:271 [ form_field_ptr::$2 ] +Uplifting [print_str_at] best 15428544 combination zp ZP_WORD:37 [ print_str_at::str#2 print_str_at::str#1 print_str_at::str#0 ] zp ZP_WORD:39 [ print_str_at::at#2 print_str_at::at#0 ] +Uplifting [form_field_ptr] best 15428540 combination zp ZP_BYTE:42 [ form_field_ptr::field_idx#2 form_field_ptr::field_idx#1 form_field_ptr::field_idx#0 ] zp ZP_WORD:266 [ form_field_ptr::return#2 ] zp ZP_WORD:274 [ form_field_ptr::return#0 ] reg byte a [ form_field_ptr::y#0 ] zp ZP_BYTE:273 [ form_field_ptr::x#0 ] zp ZP_WORD:276 [ form_field_ptr::return#3 ] zp ZP_WORD:271 [ form_field_ptr::$2 ] Limited combination testing to 10 combinations of 48 possible. -Uplifting [form_render_values] best 15428440 combination zp ZP_BYTE:41 [ form_render_values::idx#2 form_render_values::idx#1 ] zp ZP_WORD:268 [ form_render_values::field#0 ] -Uplifting [apply_preset] best 15416107 combination reg byte y [ apply_preset::i#2 apply_preset::i#1 ] zp ZP_WORD:43 [ apply_preset::preset#13 ] reg byte a [ apply_preset::idx#0 ] +Uplifting [form_render_values] best 15428540 combination zp ZP_BYTE:41 [ form_render_values::idx#2 form_render_values::idx#1 ] zp ZP_WORD:268 [ form_render_values::field#0 ] +Uplifting [apply_preset] best 15416207 combination reg byte y [ apply_preset::i#2 apply_preset::i#1 ] zp ZP_WORD:43 [ apply_preset::preset#13 ] reg byte a [ apply_preset::idx#0 ] Limited combination testing to 10 combinations of 12 possible. -Uplifting [print_str_lines] best 15404107 combination zp ZP_WORD:50 [ print_str_lines::str#4 print_str_lines::str#3 print_str_lines::str#5 print_str_lines::str#0 ] reg byte a [ print_str_lines::ch#0 ] -Uplifting [form_mode] best 15396907 combination reg byte a [ form_mode::$36 ] reg byte y [ form_mode::i#2 form_mode::i#1 ] zp ZP_BYTE:33 [ form_mode::preset_current#6 form_mode::preset_current#0 form_mode::preset_current#1 ] +Uplifting [print_str_lines] best 15404207 combination zp ZP_WORD:50 [ print_str_lines::str#4 print_str_lines::str#3 print_str_lines::str#5 print_str_lines::str#0 ] reg byte a [ print_str_lines::ch#0 ] +Uplifting [form_mode] best 15397007 combination reg byte a [ form_mode::$36 ] reg byte y [ form_mode::i#2 form_mode::i#1 ] zp ZP_BYTE:33 [ form_mode::preset_current#6 form_mode::preset_current#0 form_mode::preset_current#1 ] Limited combination testing to 10 combinations of 24 possible. -Uplifting [form_control] best 15390907 combination reg byte a [ form_control::return#0 ] zp ZP_BYTE:46 [ form_control::return#2 ] zp ZP_BYTE:280 [ form_control::$5 ] zp ZP_BYTE:283 [ form_control::$11 ] zp ZP_BYTE:284 [ form_control::$12 ] zp ZP_BYTE:285 [ form_control::$22 ] zp ZP_BYTE:286 [ form_control::$6 ] zp ZP_BYTE:282 [ form_control::key_event#0 ] zp ZP_WORD:278 [ form_control::field#0 ] +Uplifting [form_control] best 15391007 combination reg byte a [ form_control::return#0 ] zp ZP_BYTE:46 [ form_control::return#2 ] zp ZP_BYTE:280 [ form_control::$5 ] zp ZP_BYTE:283 [ form_control::$11 ] zp ZP_BYTE:284 [ form_control::$12 ] zp ZP_BYTE:285 [ form_control::$22 ] zp ZP_BYTE:286 [ form_control::$6 ] zp ZP_BYTE:282 [ form_control::key_event#0 ] zp ZP_WORD:278 [ form_control::field#0 ] Limited combination testing to 10 combinations of 65536 possible. -Uplifting [bitmap_plot] best 15388498 combination reg byte y [ bitmap_plot::y#4 bitmap_plot::y#1 bitmap_plot::y#0 bitmap_plot::y#3 bitmap_plot::y#2 ] reg byte x [ bitmap_plot::x#4 bitmap_plot::x#1 bitmap_plot::x#0 bitmap_plot::x#3 bitmap_plot::x#2 ] zp ZP_WORD:325 [ bitmap_plot::plotter_y#0 ] zp ZP_BYTE:329 [ bitmap_plot::$1 ] zp ZP_WORD:323 [ bitmap_plot::plotter_x#0 ] zp ZP_WORD:327 [ bitmap_plot::$0 ] +Uplifting [bitmap_plot] best 15388598 combination reg byte y [ bitmap_plot::y#4 bitmap_plot::y#1 bitmap_plot::y#0 bitmap_plot::y#3 bitmap_plot::y#2 ] reg byte x [ bitmap_plot::x#4 bitmap_plot::x#1 bitmap_plot::x#0 bitmap_plot::x#3 bitmap_plot::x#2 ] zp ZP_WORD:325 [ bitmap_plot::plotter_y#0 ] zp ZP_BYTE:329 [ bitmap_plot::$1 ] zp ZP_WORD:323 [ bitmap_plot::plotter_x#0 ] zp ZP_WORD:327 [ bitmap_plot::$0 ] Limited combination testing to 10 combinations of 36 possible. -Uplifting [gfx_init_plane_8bppchunky] best 15387268 combination reg byte x [ gfx_init_plane_8bppchunky::gfxbCpuBank#4 gfx_init_plane_8bppchunky::gfxbCpuBank#7 gfx_init_plane_8bppchunky::gfxbCpuBank#8 gfx_init_plane_8bppchunky::gfxbCpuBank#2 ] zp ZP_WORD:94 [ gfx_init_plane_8bppchunky::gfxb#4 gfx_init_plane_8bppchunky::gfxb#3 gfx_init_plane_8bppchunky::gfxb#5 gfx_init_plane_8bppchunky::gfxb#1 ] zp ZP_WORD:309 [ gfx_init_plane_8bppchunky::$6 ] reg byte a [ gfx_init_plane_8bppchunky::c#0 ] zp ZP_WORD:91 [ gfx_init_plane_8bppchunky::x#2 gfx_init_plane_8bppchunky::x#1 ] zp ZP_BYTE:90 [ gfx_init_plane_8bppchunky::y#6 gfx_init_plane_8bppchunky::y#1 ] +Uplifting [gfx_init_plane_8bppchunky] best 15387368 combination reg byte x [ gfx_init_plane_8bppchunky::gfxbCpuBank#4 gfx_init_plane_8bppchunky::gfxbCpuBank#7 gfx_init_plane_8bppchunky::gfxbCpuBank#8 gfx_init_plane_8bppchunky::gfxbCpuBank#2 ] zp ZP_WORD:94 [ gfx_init_plane_8bppchunky::gfxb#4 gfx_init_plane_8bppchunky::gfxb#3 gfx_init_plane_8bppchunky::gfxb#5 gfx_init_plane_8bppchunky::gfxb#1 ] zp ZP_WORD:309 [ gfx_init_plane_8bppchunky::$6 ] reg byte a [ gfx_init_plane_8bppchunky::c#0 ] zp ZP_WORD:91 [ gfx_init_plane_8bppchunky::x#2 gfx_init_plane_8bppchunky::x#1 ] zp ZP_BYTE:90 [ gfx_init_plane_8bppchunky::y#6 gfx_init_plane_8bppchunky::y#1 ] Limited combination testing to 10 combinations of 16 possible. -Uplifting [gfx_init_screen2] best 15386068 combination reg byte a [ gfx_init_screen2::$0 ] reg byte a [ gfx_init_screen2::$3 ] zp ZP_BYTE:349 [ gfx_init_screen2::$4 ] zp ZP_BYTE:147 [ gfx_init_screen2::cx#2 gfx_init_screen2::cx#1 ] zp ZP_BYTE:346 [ gfx_init_screen2::col#0 ] zp ZP_WORD:148 [ gfx_init_screen2::ch#2 gfx_init_screen2::ch#3 gfx_init_screen2::ch#1 ] zp ZP_BYTE:347 [ gfx_init_screen2::col2#0 ] zp ZP_BYTE:146 [ gfx_init_screen2::cy#4 gfx_init_screen2::cy#1 ] +Uplifting [gfx_init_screen2] best 15386168 combination reg byte a [ gfx_init_screen2::$0 ] reg byte a [ gfx_init_screen2::$3 ] zp ZP_BYTE:349 [ gfx_init_screen2::$4 ] zp ZP_BYTE:147 [ gfx_init_screen2::cx#2 gfx_init_screen2::cx#1 ] zp ZP_BYTE:346 [ gfx_init_screen2::col#0 ] zp ZP_WORD:148 [ gfx_init_screen2::ch#2 gfx_init_screen2::ch#3 gfx_init_screen2::ch#1 ] zp ZP_BYTE:347 [ gfx_init_screen2::col2#0 ] zp ZP_BYTE:146 [ gfx_init_screen2::cy#4 gfx_init_screen2::cy#1 ] Limited combination testing to 10 combinations of 2304 possible. -Uplifting [bitmap_line_xdyi] best 15385468 combination zp ZP_BYTE:102 [ 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 ] zp ZP_BYTE:101 [ 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 ] reg byte x [ bitmap_line_xdyi::$6 ] zp ZP_BYTE:100 [ 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 ] zp ZP_BYTE:98 [ bitmap_line_xdyi::xd#5 bitmap_line_xdyi::xd#1 bitmap_line_xdyi::xd#0 ] zp ZP_BYTE:97 [ bitmap_line_xdyi::yd#2 bitmap_line_xdyi::yd#1 bitmap_line_xdyi::yd#0 ] zp ZP_BYTE:99 [ bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x1#1 bitmap_line_xdyi::x1#0 ] +Uplifting [bitmap_line_xdyi] best 15385568 combination zp ZP_BYTE:102 [ 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 ] zp ZP_BYTE:101 [ 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 ] reg byte x [ bitmap_line_xdyi::$6 ] zp ZP_BYTE:100 [ 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 ] zp ZP_BYTE:98 [ bitmap_line_xdyi::xd#5 bitmap_line_xdyi::xd#1 bitmap_line_xdyi::xd#0 ] zp ZP_BYTE:97 [ bitmap_line_xdyi::yd#2 bitmap_line_xdyi::yd#1 bitmap_line_xdyi::yd#0 ] zp ZP_BYTE:99 [ bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x1#1 bitmap_line_xdyi::x1#0 ] Limited combination testing to 10 combinations of 256 possible. -Uplifting [bitmap_line_xdyd] best 15384868 combination zp ZP_BYTE:116 [ 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 ] zp ZP_BYTE:115 [ 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 ] reg byte x [ bitmap_line_xdyd::$6 ] zp ZP_BYTE:114 [ 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 ] zp ZP_BYTE:112 [ bitmap_line_xdyd::xd#5 bitmap_line_xdyd::xd#1 bitmap_line_xdyd::xd#0 ] zp ZP_BYTE:111 [ bitmap_line_xdyd::yd#2 bitmap_line_xdyd::yd#1 bitmap_line_xdyd::yd#0 ] zp ZP_BYTE:113 [ bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x1#1 bitmap_line_xdyd::x1#0 ] +Uplifting [bitmap_line_xdyd] best 15384968 combination zp ZP_BYTE:116 [ 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 ] zp ZP_BYTE:115 [ 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 ] reg byte x [ bitmap_line_xdyd::$6 ] zp ZP_BYTE:114 [ 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 ] zp ZP_BYTE:112 [ bitmap_line_xdyd::xd#5 bitmap_line_xdyd::xd#1 bitmap_line_xdyd::xd#0 ] zp ZP_BYTE:111 [ bitmap_line_xdyd::yd#2 bitmap_line_xdyd::yd#1 bitmap_line_xdyd::yd#0 ] zp ZP_BYTE:113 [ bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x1#1 bitmap_line_xdyd::x1#0 ] Limited combination testing to 10 combinations of 256 possible. -Uplifting [bitmap_line_ydxi] best 15383862 combination zp ZP_BYTE:110 [ 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 ] reg byte x [ bitmap_line_ydxi::x#3 bitmap_line_ydxi::x#5 bitmap_line_ydxi::x#0 bitmap_line_ydxi::x#1 bitmap_line_ydxi::x#6 bitmap_line_ydxi::x#2 ] reg byte a [ bitmap_line_ydxi::$6 ] zp ZP_BYTE:109 [ bitmap_line_ydxi::y#3 bitmap_line_ydxi::y#6 bitmap_line_ydxi::y#0 bitmap_line_ydxi::y#1 bitmap_line_ydxi::y#2 ] zp ZP_BYTE:106 [ bitmap_line_ydxi::yd#5 bitmap_line_ydxi::yd#0 bitmap_line_ydxi::yd#1 ] zp ZP_BYTE:105 [ bitmap_line_ydxi::xd#2 bitmap_line_ydxi::xd#0 bitmap_line_ydxi::xd#1 ] zp ZP_BYTE:107 [ bitmap_line_ydxi::y1#6 bitmap_line_ydxi::y1#0 bitmap_line_ydxi::y1#1 ] +Uplifting [bitmap_line_ydxi] best 15383962 combination zp ZP_BYTE:110 [ 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 ] reg byte x [ bitmap_line_ydxi::x#3 bitmap_line_ydxi::x#5 bitmap_line_ydxi::x#0 bitmap_line_ydxi::x#1 bitmap_line_ydxi::x#6 bitmap_line_ydxi::x#2 ] reg byte a [ bitmap_line_ydxi::$6 ] zp ZP_BYTE:109 [ bitmap_line_ydxi::y#3 bitmap_line_ydxi::y#6 bitmap_line_ydxi::y#0 bitmap_line_ydxi::y#1 bitmap_line_ydxi::y#2 ] zp ZP_BYTE:106 [ bitmap_line_ydxi::yd#5 bitmap_line_ydxi::yd#0 bitmap_line_ydxi::yd#1 ] zp ZP_BYTE:105 [ bitmap_line_ydxi::xd#2 bitmap_line_ydxi::xd#0 bitmap_line_ydxi::xd#1 ] zp ZP_BYTE:107 [ bitmap_line_ydxi::y1#6 bitmap_line_ydxi::y1#0 bitmap_line_ydxi::y1#1 ] Limited combination testing to 10 combinations of 256 possible. -Uplifting [bitmap_line_ydxd] best 15382856 combination zp ZP_BYTE:122 [ 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 ] reg byte x [ 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 ] reg byte a [ bitmap_line_ydxd::$6 ] zp ZP_BYTE:121 [ 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 ZP_BYTE:118 [ bitmap_line_ydxd::yd#5 bitmap_line_ydxd::yd#0 bitmap_line_ydxd::yd#1 ] zp ZP_BYTE:117 [ bitmap_line_ydxd::xd#2 bitmap_line_ydxd::xd#0 bitmap_line_ydxd::xd#1 ] zp ZP_BYTE:119 [ bitmap_line_ydxd::y1#6 bitmap_line_ydxd::y1#0 bitmap_line_ydxd::y1#1 ] +Uplifting [bitmap_line_ydxd] best 15382956 combination zp ZP_BYTE:122 [ 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 ] reg byte x [ 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 ] reg byte a [ bitmap_line_ydxd::$6 ] zp ZP_BYTE:121 [ 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 ZP_BYTE:118 [ bitmap_line_ydxd::yd#5 bitmap_line_ydxd::yd#0 bitmap_line_ydxd::yd#1 ] zp ZP_BYTE:117 [ bitmap_line_ydxd::xd#2 bitmap_line_ydxd::xd#0 bitmap_line_ydxd::xd#1 ] zp ZP_BYTE:119 [ bitmap_line_ydxd::y1#6 bitmap_line_ydxd::y1#0 bitmap_line_ydxd::y1#1 ] Limited combination testing to 10 combinations of 256 possible. -Uplifting [gfx_init_screen0] best 15381656 combination reg byte a [ gfx_init_screen0::$0 ] reg byte a [ gfx_init_screen0::$2 ] zp ZP_BYTE:355 [ gfx_init_screen0::$3 ] zp ZP_BYTE:155 [ gfx_init_screen0::cx#2 gfx_init_screen0::cx#1 ] zp ZP_WORD:156 [ gfx_init_screen0::ch#2 gfx_init_screen0::ch#3 gfx_init_screen0::ch#1 ] zp ZP_BYTE:353 [ gfx_init_screen0::$1 ] zp ZP_BYTE:154 [ gfx_init_screen0::cy#4 gfx_init_screen0::cy#1 ] +Uplifting [gfx_init_screen0] best 15381756 combination reg byte a [ gfx_init_screen0::$0 ] reg byte a [ gfx_init_screen0::$2 ] zp ZP_BYTE:355 [ gfx_init_screen0::$3 ] zp ZP_BYTE:155 [ gfx_init_screen0::cx#2 gfx_init_screen0::cx#1 ] zp ZP_WORD:156 [ gfx_init_screen0::ch#2 gfx_init_screen0::ch#3 gfx_init_screen0::ch#1 ] zp ZP_BYTE:353 [ gfx_init_screen0::$1 ] zp ZP_BYTE:154 [ gfx_init_screen0::cy#4 gfx_init_screen0::cy#1 ] Limited combination testing to 10 combinations of 768 possible. -Uplifting [gfx_init_screen3] best 15380456 combination reg byte a [ gfx_init_screen3::$0 ] reg byte a [ gfx_init_screen3::$2 ] zp ZP_BYTE:344 [ gfx_init_screen3::$3 ] zp ZP_BYTE:143 [ gfx_init_screen3::cx#2 gfx_init_screen3::cx#1 ] zp ZP_WORD:144 [ gfx_init_screen3::ch#2 gfx_init_screen3::ch#3 gfx_init_screen3::ch#1 ] zp ZP_BYTE:342 [ gfx_init_screen3::$1 ] zp ZP_BYTE:142 [ gfx_init_screen3::cy#4 gfx_init_screen3::cy#1 ] +Uplifting [gfx_init_screen3] best 15380556 combination reg byte a [ gfx_init_screen3::$0 ] reg byte a [ gfx_init_screen3::$2 ] zp ZP_BYTE:344 [ gfx_init_screen3::$3 ] zp ZP_BYTE:143 [ gfx_init_screen3::cx#2 gfx_init_screen3::cx#1 ] zp ZP_WORD:144 [ gfx_init_screen3::ch#2 gfx_init_screen3::ch#3 gfx_init_screen3::ch#1 ] zp ZP_BYTE:342 [ gfx_init_screen3::$1 ] zp ZP_BYTE:142 [ gfx_init_screen3::cy#4 gfx_init_screen3::cy#1 ] Limited combination testing to 10 combinations of 768 possible. -Uplifting [gfx_init_plane_horisontal] best 15378956 combination zp ZP_WORD:77 [ gfx_init_plane_horisontal::gfxa#3 gfx_init_plane_horisontal::gfxa#6 gfx_init_plane_horisontal::gfxa#7 gfx_init_plane_horisontal::gfxa#1 gfx_init_plane_horisontal::gfxa#2 ] reg byte a [ gfx_init_plane_horisontal::$5 ] reg byte x [ gfx_init_plane_horisontal::ax#2 gfx_init_plane_horisontal::ax#1 ] zp ZP_BYTE:76 [ gfx_init_plane_horisontal::ay#4 gfx_init_plane_horisontal::ay#1 ] +Uplifting [gfx_init_plane_horisontal] best 15379056 combination zp ZP_WORD:77 [ gfx_init_plane_horisontal::gfxa#3 gfx_init_plane_horisontal::gfxa#6 gfx_init_plane_horisontal::gfxa#7 gfx_init_plane_horisontal::gfxa#1 gfx_init_plane_horisontal::gfxa#2 ] reg byte a [ gfx_init_plane_horisontal::$5 ] reg byte x [ gfx_init_plane_horisontal::ax#2 gfx_init_plane_horisontal::ax#1 ] zp ZP_BYTE:76 [ gfx_init_plane_horisontal::ay#4 gfx_init_plane_horisontal::ay#1 ] Limited combination testing to 10 combinations of 16 possible. -Uplifting [gfx_init_screen1] best 15377356 combination reg byte x [ gfx_init_screen1::cx#2 gfx_init_screen1::cx#1 ] reg byte a [ gfx_init_screen1::$0 ] zp ZP_BYTE:351 [ gfx_init_screen1::$1 ] zp ZP_WORD:152 [ gfx_init_screen1::ch#2 gfx_init_screen1::ch#3 gfx_init_screen1::ch#1 ] zp ZP_BYTE:150 [ gfx_init_screen1::cy#4 gfx_init_screen1::cy#1 ] +Uplifting [gfx_init_screen1] best 15377456 combination reg byte x [ gfx_init_screen1::cx#2 gfx_init_screen1::cx#1 ] reg byte a [ gfx_init_screen1::$0 ] zp ZP_BYTE:351 [ gfx_init_screen1::$1 ] zp ZP_WORD:152 [ gfx_init_screen1::ch#2 gfx_init_screen1::ch#3 gfx_init_screen1::ch#1 ] zp ZP_BYTE:150 [ gfx_init_screen1::cy#4 gfx_init_screen1::cy#1 ] Limited combination testing to 10 combinations of 64 possible. -Uplifting [form_set_screen] best 15375256 combination reg byte y [ form_set_screen::y#2 form_set_screen::y#1 ] reg byte a [ form_set_screen::$0 ] zp ZP_BYTE:288 [ form_set_screen::$1 ] zp ZP_WORD:47 [ form_set_screen::line#2 form_set_screen::line#1 ] +Uplifting [form_set_screen] best 15375356 combination reg byte y [ form_set_screen::y#2 form_set_screen::y#1 ] reg byte a [ form_set_screen::$0 ] zp ZP_BYTE:288 [ form_set_screen::$1 ] zp ZP_WORD:47 [ form_set_screen::line#2 form_set_screen::line#1 ] Limited combination testing to 10 combinations of 48 possible. -Uplifting [gfx_init_plane_horisontal2] best 15374256 combination reg byte a [ gfx_init_plane_horisontal2::$5 ] reg byte a [ gfx_init_plane_horisontal2::row#0 ] zp ZP_BYTE:71 [ gfx_init_plane_horisontal2::ax#2 gfx_init_plane_horisontal2::ax#1 ] zp ZP_WORD:69 [ gfx_init_plane_horisontal2::gfxa#2 gfx_init_plane_horisontal2::gfxa#3 gfx_init_plane_horisontal2::gfxa#1 ] zp ZP_BYTE:68 [ gfx_init_plane_horisontal2::ay#4 gfx_init_plane_horisontal2::ay#1 ] +Uplifting [gfx_init_plane_horisontal2] best 15374356 combination reg byte a [ gfx_init_plane_horisontal2::$5 ] reg byte a [ gfx_init_plane_horisontal2::row#0 ] zp ZP_BYTE:71 [ gfx_init_plane_horisontal2::ax#2 gfx_init_plane_horisontal2::ax#1 ] zp ZP_WORD:69 [ gfx_init_plane_horisontal2::gfxa#2 gfx_init_plane_horisontal2::gfxa#3 gfx_init_plane_horisontal2::gfxa#1 ] zp ZP_BYTE:68 [ gfx_init_plane_horisontal2::ay#4 gfx_init_plane_horisontal2::ay#1 ] Limited combination testing to 10 combinations of 64 possible. -Uplifting [gfx_init_charset] best 15373356 combination zp ZP_WORD:135 [ gfx_init_charset::charset#2 gfx_init_charset::charset#3 gfx_init_charset::charset#1 ] reg byte x [ gfx_init_charset::l#2 gfx_init_charset::l#1 ] zp ZP_WORD:133 [ gfx_init_charset::chargen#2 gfx_init_charset::chargen#3 gfx_init_charset::chargen#1 ] zp ZP_BYTE:132 [ gfx_init_charset::c#4 gfx_init_charset::c#1 ] -Uplifting [gfx_init_plane_fill] best 15372450 combination zp ZP_WORD:64 [ gfx_init_plane_fill::gfxb#2 gfx_init_plane_fill::gfxb#3 gfx_init_plane_fill::gfxb#1 gfx_init_plane_fill::gfxb#6 ] reg byte x [ gfx_init_plane_fill::bx#2 gfx_init_plane_fill::bx#1 ] zp ZP_BYTE:63 [ gfx_init_plane_fill::by#4 gfx_init_plane_fill::by#1 ] zp ZP_BYTE:62 [ gfx_init_plane_fill::fill#6 ] zp ZP_DWORD:292 [ gfx_init_plane_fill::$0 ] zp ZP_WORD:296 [ gfx_init_plane_fill::$1 ] reg byte a [ gfx_init_plane_fill::gfxbCpuBank#0 ] zp ZP_WORD:299 [ gfx_init_plane_fill::$4 ] zp ZP_WORD:301 [ gfx_init_plane_fill::$5 ] zp ZP_WORD:303 [ gfx_init_plane_fill::$6 ] zp ZP_DWORD:58 [ gfx_init_plane_fill::plane_addr#3 ] +Uplifting [gfx_init_charset] best 15373456 combination zp ZP_WORD:135 [ gfx_init_charset::charset#2 gfx_init_charset::charset#3 gfx_init_charset::charset#1 ] reg byte x [ gfx_init_charset::l#2 gfx_init_charset::l#1 ] zp ZP_WORD:133 [ gfx_init_charset::chargen#2 gfx_init_charset::chargen#3 gfx_init_charset::chargen#1 ] zp ZP_BYTE:132 [ gfx_init_charset::c#4 gfx_init_charset::c#1 ] +Uplifting [gfx_init_plane_fill] best 15372550 combination zp ZP_WORD:64 [ gfx_init_plane_fill::gfxb#2 gfx_init_plane_fill::gfxb#3 gfx_init_plane_fill::gfxb#1 gfx_init_plane_fill::gfxb#6 ] reg byte x [ gfx_init_plane_fill::bx#2 gfx_init_plane_fill::bx#1 ] zp ZP_BYTE:63 [ gfx_init_plane_fill::by#4 gfx_init_plane_fill::by#1 ] zp ZP_BYTE:62 [ gfx_init_plane_fill::fill#6 ] zp ZP_DWORD:292 [ gfx_init_plane_fill::$0 ] zp ZP_WORD:296 [ gfx_init_plane_fill::$1 ] reg byte a [ gfx_init_plane_fill::gfxbCpuBank#0 ] zp ZP_WORD:299 [ gfx_init_plane_fill::$4 ] zp ZP_WORD:301 [ gfx_init_plane_fill::$5 ] zp ZP_WORD:303 [ gfx_init_plane_fill::$6 ] zp ZP_DWORD:58 [ gfx_init_plane_fill::plane_addr#3 ] Limited combination testing to 10 combinations of 32 possible. -Uplifting [bitmap_clear] best 15371550 combination zp ZP_WORD:124 [ bitmap_clear::bitmap#2 bitmap_clear::bitmap#3 bitmap_clear::bitmap#5 bitmap_clear::bitmap#1 ] reg byte x [ bitmap_clear::x#2 bitmap_clear::x#1 ] zp ZP_BYTE:123 [ bitmap_clear::y#4 bitmap_clear::y#1 ] zp ZP_WORD:333 [ bitmap_clear::$3 ] -Uplifting [gfx_init_screen4] best 15370650 combination zp ZP_WORD:139 [ gfx_init_screen4::ch#2 gfx_init_screen4::ch#3 gfx_init_screen4::ch#1 ] reg byte x [ gfx_init_screen4::cx#2 gfx_init_screen4::cx#1 ] zp ZP_BYTE:138 [ gfx_init_screen4::cy#4 gfx_init_screen4::cy#1 ] -Uplifting [gfx_init_plane_vertical] best 15369750 combination zp ZP_WORD:73 [ gfx_init_plane_vertical::gfxb#2 gfx_init_plane_vertical::gfxb#3 gfx_init_plane_vertical::gfxb#1 ] reg byte x [ gfx_init_plane_vertical::bx#2 gfx_init_plane_vertical::bx#1 ] zp ZP_BYTE:72 [ gfx_init_plane_vertical::by#4 gfx_init_plane_vertical::by#1 ] -Uplifting [print_cls] best 15369750 combination zp ZP_WORD:56 [ print_cls::sc#2 print_cls::sc#0 print_cls::sc#1 ] zp ZP_WORD:290 [ print_cls::$0 ] -Uplifting [dtvSetCpuBankSegment1] best 15369611 combination reg byte a [ dtvSetCpuBankSegment1::cpuBankIdx#13 dtvSetCpuBankSegment1::cpuBankIdx#1 dtvSetCpuBankSegment1::cpuBankIdx#11 ] -Uplifting [keyboard_event_get] best 15368702 combination reg byte a [ keyboard_event_get::return#3 ] reg byte a [ keyboard_event_get::return#2 keyboard_event_get::return#1 ] zp ZP_BYTE:281 [ keyboard_event_get::return#4 ] +Uplifting [bitmap_clear] best 15371650 combination zp ZP_WORD:124 [ bitmap_clear::bitmap#2 bitmap_clear::bitmap#3 bitmap_clear::bitmap#5 bitmap_clear::bitmap#1 ] reg byte x [ bitmap_clear::x#2 bitmap_clear::x#1 ] zp ZP_BYTE:123 [ bitmap_clear::y#4 bitmap_clear::y#1 ] zp ZP_WORD:333 [ bitmap_clear::$3 ] +Uplifting [gfx_init_screen4] best 15370750 combination zp ZP_WORD:139 [ gfx_init_screen4::ch#2 gfx_init_screen4::ch#3 gfx_init_screen4::ch#1 ] reg byte x [ gfx_init_screen4::cx#2 gfx_init_screen4::cx#1 ] zp ZP_BYTE:138 [ gfx_init_screen4::cy#4 gfx_init_screen4::cy#1 ] +Uplifting [gfx_init_plane_vertical] best 15369850 combination zp ZP_WORD:73 [ gfx_init_plane_vertical::gfxb#2 gfx_init_plane_vertical::gfxb#3 gfx_init_plane_vertical::gfxb#1 ] reg byte x [ gfx_init_plane_vertical::bx#2 gfx_init_plane_vertical::bx#1 ] zp ZP_BYTE:72 [ gfx_init_plane_vertical::by#4 gfx_init_plane_vertical::by#1 ] +Uplifting [print_cls] best 15369850 combination zp ZP_WORD:56 [ print_cls::sc#2 print_cls::sc#0 print_cls::sc#1 ] zp ZP_WORD:290 [ print_cls::$0 ] +Uplifting [dtvSetCpuBankSegment1] best 15369711 combination reg byte a [ dtvSetCpuBankSegment1::cpuBankIdx#13 dtvSetCpuBankSegment1::cpuBankIdx#1 dtvSetCpuBankSegment1::cpuBankIdx#11 ] +Uplifting [keyboard_event_get] best 15368802 combination reg byte a [ keyboard_event_get::return#3 ] reg byte a [ keyboard_event_get::return#2 keyboard_event_get::return#1 ] zp ZP_BYTE:281 [ keyboard_event_get::return#4 ] Limited combination testing to 10 combinations of 64 possible. -Uplifting [bitmap_init] best 15368462 combination zp ZP_WORD:130 [ bitmap_init::yoffs#2 bitmap_init::yoffs#4 bitmap_init::yoffs#1 ] reg byte y [ bitmap_init::bits#3 bitmap_init::bits#4 bitmap_init::bits#1 ] reg byte x [ bitmap_init::x#2 bitmap_init::x#1 ] zp ZP_BYTE:129 [ bitmap_init::y#2 bitmap_init::y#1 ] zp ZP_BYTE:335 [ bitmap_init::$0 ] zp ZP_BYTE:337 [ bitmap_init::$7 ] zp ZP_BYTE:338 [ bitmap_init::$8 ] zp ZP_BYTE:339 [ bitmap_init::$9 ] zp ZP_BYTE:340 [ bitmap_init::$10 ] zp ZP_BYTE:336 [ bitmap_init::$6 ] +Uplifting [bitmap_init] best 15368522 combination zp ZP_WORD:130 [ bitmap_init::yoffs#2 bitmap_init::yoffs#4 bitmap_init::yoffs#1 ] reg byte y [ bitmap_init::bits#3 bitmap_init::bits#4 bitmap_init::bits#1 ] reg byte x [ bitmap_init::x#2 bitmap_init::x#1 ] zp ZP_BYTE:129 [ bitmap_init::y#2 bitmap_init::y#1 ] zp ZP_BYTE:335 [ bitmap_init::$0 ] zp ZP_BYTE:337 [ bitmap_init::$7 ] zp ZP_BYTE:338 [ bitmap_init::$8 ] zp ZP_BYTE:339 [ bitmap_init::$9 ] zp ZP_BYTE:340 [ bitmap_init::$10 ] zp ZP_BYTE:336 [ bitmap_init::$6 ] Limited combination testing to 10 combinations of 138240 possible. -Uplifting [render_preset_name] best 15368126 combination reg byte a [ render_preset_name::idx#10 render_preset_name::idx#0 render_preset_name::idx#1 ] zp ZP_WORD:35 [ render_preset_name::name#12 ] -Uplifting [keyboard_event_pressed] best 15368114 combination reg byte a [ keyboard_event_pressed::return#0 ] reg byte a [ keyboard_event_pressed::return#1 ] zp ZP_BYTE:250 [ keyboard_event_pressed::return#2 ] zp ZP_BYTE:252 [ keyboard_event_pressed::return#3 ] zp ZP_BYTE:258 [ keyboard_event_pressed::$0 ] zp ZP_BYTE:260 [ keyboard_event_pressed::$1 ] zp ZP_BYTE:259 [ keyboard_event_pressed::row_bits#0 ] zp ZP_BYTE:261 [ keyboard_event_pressed::return#10 ] zp ZP_BYTE:19 [ keyboard_event_pressed::keycode#4 ] +Uplifting [render_preset_name] best 15368186 combination reg byte a [ render_preset_name::idx#10 render_preset_name::idx#0 render_preset_name::idx#1 ] zp ZP_WORD:35 [ render_preset_name::name#12 ] +Uplifting [keyboard_event_pressed] best 15368174 combination reg byte a [ keyboard_event_pressed::return#0 ] reg byte a [ keyboard_event_pressed::return#1 ] zp ZP_BYTE:250 [ keyboard_event_pressed::return#2 ] zp ZP_BYTE:252 [ keyboard_event_pressed::return#3 ] zp ZP_BYTE:258 [ keyboard_event_pressed::$0 ] zp ZP_BYTE:260 [ keyboard_event_pressed::$1 ] zp ZP_BYTE:259 [ keyboard_event_pressed::row_bits#0 ] zp ZP_BYTE:261 [ keyboard_event_pressed::return#10 ] zp ZP_BYTE:19 [ keyboard_event_pressed::keycode#4 ] Limited combination testing to 10 combinations of 147456 possible. -Uplifting [gfx_init_vic_bitmap] best 15368114 combination zp ZP_BYTE:96 [ gfx_init_vic_bitmap::l#2 gfx_init_vic_bitmap::l#1 ] -Uplifting [get_vic_screen] best 15368093 combination reg byte a [ get_vic_screen::idx#2 get_vic_screen::idx#0 get_vic_screen::idx#1 ] zp ZP_WORD:212 [ get_vic_screen::return#10 ] zp ZP_WORD:231 [ get_vic_screen::return#11 ] zp ZP_WORD:21 [ get_vic_screen::return#5 ] -Uplifting [get_plane] best 15368045 combination reg byte a [ get_plane::idx#10 get_plane::idx#1 get_plane::idx#0 ] zp ZP_DWORD:160 [ get_plane::return#16 ] zp ZP_DWORD:187 [ get_plane::return#17 ] zp ZP_DWORD:26 [ get_plane::return#14 ] -Uplifting [bitmap_line] best 15368001 combination reg byte y [ bitmap_line::y1#0 ] zp ZP_BYTE:314 [ bitmap_line::y0#0 ] zp ZP_BYTE:313 [ bitmap_line::x1#0 ] zp ZP_BYTE:312 [ bitmap_line::x0#0 ] zp ZP_BYTE:317 [ bitmap_line::yd#1 ] zp ZP_BYTE:318 [ bitmap_line::yd#0 ] zp ZP_BYTE:320 [ bitmap_line::yd#3 ] zp ZP_BYTE:321 [ bitmap_line::yd#10 ] zp ZP_BYTE:316 [ bitmap_line::xd#1 ] zp ZP_BYTE:319 [ bitmap_line::xd#0 ] +Uplifting [gfx_init_vic_bitmap] best 15368174 combination zp ZP_BYTE:96 [ gfx_init_vic_bitmap::l#2 gfx_init_vic_bitmap::l#1 ] +Uplifting [get_vic_screen] best 15368153 combination reg byte a [ get_vic_screen::idx#2 get_vic_screen::idx#0 get_vic_screen::idx#1 ] zp ZP_WORD:212 [ get_vic_screen::return#10 ] zp ZP_WORD:231 [ get_vic_screen::return#11 ] zp ZP_WORD:21 [ get_vic_screen::return#5 ] +Uplifting [get_plane] best 15368105 combination reg byte a [ get_plane::idx#10 get_plane::idx#1 get_plane::idx#0 ] zp ZP_DWORD:160 [ get_plane::return#16 ] zp ZP_DWORD:187 [ get_plane::return#17 ] zp ZP_DWORD:26 [ get_plane::return#14 ] +Uplifting [bitmap_line] best 15368061 combination reg byte y [ bitmap_line::y1#0 ] zp ZP_BYTE:314 [ bitmap_line::y0#0 ] zp ZP_BYTE:313 [ bitmap_line::x1#0 ] zp ZP_BYTE:312 [ bitmap_line::x0#0 ] zp ZP_BYTE:317 [ bitmap_line::yd#1 ] zp ZP_BYTE:318 [ bitmap_line::yd#0 ] zp ZP_BYTE:320 [ bitmap_line::yd#3 ] zp ZP_BYTE:321 [ bitmap_line::yd#10 ] zp ZP_BYTE:316 [ bitmap_line::xd#1 ] zp ZP_BYTE:319 [ bitmap_line::xd#0 ] Limited combination testing to 10 combinations of 186624 possible. -Uplifting [get_vic_charset] best 15367992 combination zp ZP_WORD:222 [ get_vic_charset::return#4 ] reg byte a [ get_vic_charset::idx#0 ] zp ZP_WORD:23 [ get_vic_charset::return#2 ] -Uplifting [print_ln] best 15367992 combination -Uplifting [print_set_screen] best 15367992 combination -Uplifting [keyboard_init] best 15367992 combination -Uplifting [main] best 15367992 combination -Uplifting [gfx_init] best 15367992 combination -Uplifting [gfx_init_plane_vertical2] best 15367992 combination -Uplifting [gfx_init_plane_blank] best 15367992 combination -Uplifting [gfx_init_plane_full] best 15367992 combination +Uplifting [get_vic_charset] best 15368052 combination zp ZP_WORD:222 [ get_vic_charset::return#4 ] reg byte a [ get_vic_charset::idx#0 ] zp ZP_WORD:23 [ get_vic_charset::return#2 ] +Uplifting [print_ln] best 15368052 combination +Uplifting [print_set_screen] best 15368052 combination +Uplifting [keyboard_init] best 15368052 combination +Uplifting [main] best 15368052 combination +Uplifting [gfx_init] best 15368052 combination +Uplifting [gfx_init_plane_vertical2] best 15368052 combination +Uplifting [gfx_init_plane_blank] best 15368052 combination +Uplifting [gfx_init_plane_full] best 15368052 combination Attempting to uplift remaining variables inzp ZP_BYTE:18 [ keyboard_events_size#18 keyboard_events_size#118 keyboard_events_size#110 keyboard_events_size#47 keyboard_events_size#27 keyboard_events_size#24 keyboard_events_size#100 keyboard_events_size#4 keyboard_events_size#119 keyboard_events_size#2 keyboard_events_size#1 ] -Uplifting [] best 15367992 combination zp ZP_BYTE:18 [ keyboard_events_size#18 keyboard_events_size#118 keyboard_events_size#110 keyboard_events_size#47 keyboard_events_size#27 keyboard_events_size#24 keyboard_events_size#100 keyboard_events_size#4 keyboard_events_size#119 keyboard_events_size#2 keyboard_events_size#1 ] +Uplifting [] best 15368052 combination zp ZP_BYTE:18 [ keyboard_events_size#18 keyboard_events_size#118 keyboard_events_size#110 keyboard_events_size#47 keyboard_events_size#27 keyboard_events_size#24 keyboard_events_size#100 keyboard_events_size#4 keyboard_events_size#119 keyboard_events_size#2 keyboard_events_size#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:256 [ keyboard_event_scan::event_type#0 ] -Uplifting [keyboard_event_scan] best 14767992 combination reg byte a [ keyboard_event_scan::event_type#0 ] +Uplifting [keyboard_event_scan] best 14768052 combination reg byte a [ keyboard_event_scan::event_type#0 ] Attempting to uplift remaining variables inzp ZP_BYTE:257 [ keyboard_event_scan::$11 ] -Uplifting [keyboard_event_scan] best 14167992 combination reg byte a [ keyboard_event_scan::$11 ] +Uplifting [keyboard_event_scan] best 14168052 combination reg byte a [ keyboard_event_scan::$11 ] Attempting to uplift remaining variables inzp ZP_BYTE:16 [ keyboard_event_scan::col#2 keyboard_event_scan::col#1 ] -Uplifting [keyboard_event_scan] best 14167992 combination zp ZP_BYTE:16 [ keyboard_event_scan::col#2 keyboard_event_scan::col#1 ] +Uplifting [keyboard_event_scan] best 14168052 combination zp ZP_BYTE:16 [ keyboard_event_scan::col#2 keyboard_event_scan::col#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:17 [ keyboard_event_scan::keycode#10 keyboard_event_scan::keycode#11 keyboard_event_scan::keycode#14 keyboard_event_scan::keycode#1 keyboard_event_scan::keycode#15 ] -Uplifting [keyboard_event_scan] best 14167992 combination zp ZP_BYTE:17 [ keyboard_event_scan::keycode#10 keyboard_event_scan::keycode#11 keyboard_event_scan::keycode#14 keyboard_event_scan::keycode#1 keyboard_event_scan::keycode#15 ] +Uplifting [keyboard_event_scan] best 14168052 combination zp ZP_BYTE:17 [ keyboard_event_scan::keycode#10 keyboard_event_scan::keycode#11 keyboard_event_scan::keycode#14 keyboard_event_scan::keycode#1 keyboard_event_scan::keycode#15 ] Attempting to uplift remaining variables inzp ZP_BYTE:14 [ keyboard_event_scan::row#2 keyboard_event_scan::row#1 ] -Uplifting [keyboard_event_scan] best 14167992 combination zp ZP_BYTE:14 [ keyboard_event_scan::row#2 keyboard_event_scan::row#1 ] +Uplifting [keyboard_event_scan] best 14168052 combination zp ZP_BYTE:14 [ keyboard_event_scan::row#2 keyboard_event_scan::row#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:245 [ keyboard_event_scan::row_scan#0 ] -Uplifting [keyboard_event_scan] best 14167992 combination zp ZP_BYTE:245 [ keyboard_event_scan::row_scan#0 ] +Uplifting [keyboard_event_scan] best 14168052 combination zp ZP_BYTE:245 [ keyboard_event_scan::row_scan#0 ] Attempting to uplift remaining variables inzp ZP_BYTE:262 [ keyboard_matrix_read::return#0 ] -Uplifting [keyboard_matrix_read] best 14137989 combination reg byte a [ keyboard_matrix_read::return#0 ] +Uplifting [keyboard_matrix_read] best 14138049 combination reg byte a [ keyboard_matrix_read::return#0 ] Attempting to uplift remaining variables inzp ZP_BYTE:42 [ form_field_ptr::field_idx#2 form_field_ptr::field_idx#1 form_field_ptr::field_idx#0 ] -Uplifting [form_field_ptr] best 14137989 combination zp ZP_BYTE:42 [ form_field_ptr::field_idx#2 form_field_ptr::field_idx#1 form_field_ptr::field_idx#0 ] +Uplifting [form_field_ptr] best 14138049 combination zp ZP_BYTE:42 [ form_field_ptr::field_idx#2 form_field_ptr::field_idx#1 form_field_ptr::field_idx#0 ] Attempting to uplift remaining variables inzp ZP_BYTE:41 [ form_render_values::idx#2 form_render_values::idx#1 ] -Uplifting [form_render_values] best 14137989 combination zp ZP_BYTE:41 [ form_render_values::idx#2 form_render_values::idx#1 ] +Uplifting [form_render_values] best 14138049 combination zp ZP_BYTE:41 [ form_render_values::idx#2 form_render_values::idx#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:10 [ gfx_mode::cx#2 gfx_mode::cx#1 ] -Uplifting [gfx_mode] best 14137989 combination zp ZP_BYTE:10 [ gfx_mode::cx#2 gfx_mode::cx#1 ] +Uplifting [gfx_mode] best 14138049 combination zp ZP_BYTE:10 [ gfx_mode::cx#2 gfx_mode::cx#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:88 [ gfx_init_plane_charset8::cp#2 gfx_init_plane_charset8::cp#1 ] -Uplifting [gfx_init_plane_charset8] best 14128989 combination reg byte x [ gfx_init_plane_charset8::cp#2 gfx_init_plane_charset8::cp#1 ] +Uplifting [gfx_init_plane_charset8] best 14129049 combination reg byte x [ gfx_init_plane_charset8::cp#2 gfx_init_plane_charset8::cp#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:84 [ gfx_init_plane_charset8::bits#2 gfx_init_plane_charset8::bits#0 gfx_init_plane_charset8::bits#1 ] -Uplifting [gfx_init_plane_charset8] best 14128989 combination zp ZP_BYTE:84 [ gfx_init_plane_charset8::bits#2 gfx_init_plane_charset8::bits#0 gfx_init_plane_charset8::bits#1 ] +Uplifting [gfx_init_plane_charset8] best 14129049 combination zp ZP_BYTE:84 [ gfx_init_plane_charset8::bits#2 gfx_init_plane_charset8::bits#0 gfx_init_plane_charset8::bits#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:87 [ gfx_init_plane_charset8::col#2 gfx_init_plane_charset8::col#5 gfx_init_plane_charset8::col#6 gfx_init_plane_charset8::col#1 ] -Uplifting [gfx_init_plane_charset8] best 14128989 combination zp ZP_BYTE:87 [ gfx_init_plane_charset8::col#2 gfx_init_plane_charset8::col#5 gfx_init_plane_charset8::col#6 gfx_init_plane_charset8::col#1 ] +Uplifting [gfx_init_plane_charset8] best 14129049 combination zp ZP_BYTE:87 [ gfx_init_plane_charset8::col#2 gfx_init_plane_charset8::col#5 gfx_init_plane_charset8::col#6 gfx_init_plane_charset8::col#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:102 [ 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 ] -Uplifting [bitmap_line_xdyi] best 14128989 combination zp ZP_BYTE:102 [ 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 ] +Uplifting [bitmap_line_xdyi] best 14129049 combination zp ZP_BYTE:102 [ 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 ] Attempting to uplift remaining variables inzp ZP_BYTE:110 [ 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 ] -Uplifting [bitmap_line_ydxi] best 14128989 combination zp ZP_BYTE:110 [ 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 ] +Uplifting [bitmap_line_ydxi] best 14129049 combination zp ZP_BYTE:110 [ 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 ] Attempting to uplift remaining variables inzp ZP_BYTE:116 [ 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 ] -Uplifting [bitmap_line_xdyd] best 14128989 combination zp ZP_BYTE:116 [ 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 ] +Uplifting [bitmap_line_xdyd] best 14129049 combination zp ZP_BYTE:116 [ 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 ] Attempting to uplift remaining variables inzp ZP_BYTE:122 [ 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 ] -Uplifting [bitmap_line_ydxd] best 14128989 combination zp ZP_BYTE:122 [ 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 ] +Uplifting [bitmap_line_ydxd] best 14129049 combination zp ZP_BYTE:122 [ 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 ] Attempting to uplift remaining variables inzp ZP_BYTE:11 [ gfx_mode::j#2 gfx_mode::j#1 ] -Uplifting [gfx_mode] best 14127789 combination reg byte y [ gfx_mode::j#2 gfx_mode::j#1 ] +Uplifting [gfx_mode] best 14127849 combination reg byte y [ gfx_mode::j#2 gfx_mode::j#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:12 [ gfx_mode::i#2 gfx_mode::i#1 ] -Uplifting [gfx_mode] best 14126589 combination reg byte y [ gfx_mode::i#2 gfx_mode::i#1 ] +Uplifting [gfx_mode] best 14126649 combination reg byte y [ gfx_mode::i#2 gfx_mode::i#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:46 [ form_control::return#2 ] -Uplifting [form_control] best 14125580 combination reg byte y [ form_control::return#2 ] +Uplifting [form_control] best 14125640 combination reg byte y [ form_control::return#2 ] Attempting to uplift remaining variables inzp ZP_BYTE:101 [ 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 ] -Uplifting [bitmap_line_xdyi] best 14125580 combination zp ZP_BYTE:101 [ 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 ] +Uplifting [bitmap_line_xdyi] best 14125640 combination zp ZP_BYTE:101 [ 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 ] Attempting to uplift remaining variables inzp ZP_BYTE:115 [ 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 ] -Uplifting [bitmap_line_xdyd] best 14125580 combination zp ZP_BYTE:115 [ 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 ] +Uplifting [bitmap_line_xdyd] best 14125640 combination zp ZP_BYTE:115 [ 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 ] Attempting to uplift remaining variables inzp ZP_BYTE:31 [ form_cursor_count#21 form_cursor_count#1 form_cursor_count#16 form_cursor_count#15 form_cursor_count#5 ] -Uplifting [] best 14125580 combination zp ZP_BYTE:31 [ form_cursor_count#21 form_cursor_count#1 form_cursor_count#16 form_cursor_count#15 form_cursor_count#5 ] +Uplifting [] best 14125640 combination zp ZP_BYTE:31 [ form_cursor_count#21 form_cursor_count#1 form_cursor_count#16 form_cursor_count#15 form_cursor_count#5 ] Attempting to uplift remaining variables inzp ZP_BYTE:33 [ form_mode::preset_current#6 form_mode::preset_current#0 form_mode::preset_current#1 ] -Uplifting [form_mode] best 14125580 combination zp ZP_BYTE:33 [ form_mode::preset_current#6 form_mode::preset_current#0 form_mode::preset_current#1 ] +Uplifting [form_mode] best 14125640 combination zp ZP_BYTE:33 [ form_mode::preset_current#6 form_mode::preset_current#0 form_mode::preset_current#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:242 [ gfx_mode::keyboard_event#0 ] -Uplifting [gfx_mode] best 14124980 combination reg byte a [ gfx_mode::keyboard_event#0 ] +Uplifting [gfx_mode] best 14125040 combination reg byte a [ gfx_mode::keyboard_event#0 ] Attempting to uplift remaining variables inzp ZP_BYTE:288 [ form_set_screen::$1 ] -Uplifting [form_set_screen] best 14124380 combination reg byte a [ form_set_screen::$1 ] +Uplifting [form_set_screen] best 14124440 combination reg byte a [ form_set_screen::$1 ] Attempting to uplift remaining variables inzp ZP_BYTE:344 [ gfx_init_screen3::$3 ] -Uplifting [gfx_init_screen3] best 14123780 combination reg byte a [ gfx_init_screen3::$3 ] +Uplifting [gfx_init_screen3] best 14123840 combination reg byte a [ gfx_init_screen3::$3 ] Attempting to uplift remaining variables inzp ZP_BYTE:349 [ gfx_init_screen2::$4 ] -Uplifting [gfx_init_screen2] best 14123180 combination reg byte a [ gfx_init_screen2::$4 ] +Uplifting [gfx_init_screen2] best 14123240 combination reg byte a [ gfx_init_screen2::$4 ] Attempting to uplift remaining variables inzp ZP_BYTE:351 [ gfx_init_screen1::$1 ] -Uplifting [gfx_init_screen1] best 14122580 combination reg byte a [ gfx_init_screen1::$1 ] +Uplifting [gfx_init_screen1] best 14122640 combination reg byte a [ gfx_init_screen1::$1 ] Attempting to uplift remaining variables inzp ZP_BYTE:355 [ gfx_init_screen0::$3 ] -Uplifting [gfx_init_screen0] best 14121980 combination reg byte a [ gfx_init_screen0::$3 ] +Uplifting [gfx_init_screen0] best 14122040 combination reg byte a [ gfx_init_screen0::$3 ] Attempting to uplift remaining variables inzp ZP_BYTE:143 [ gfx_init_screen3::cx#2 gfx_init_screen3::cx#1 ] -Uplifting [gfx_init_screen3] best 14120980 combination reg byte x [ gfx_init_screen3::cx#2 gfx_init_screen3::cx#1 ] +Uplifting [gfx_init_screen3] best 14121040 combination reg byte x [ gfx_init_screen3::cx#2 gfx_init_screen3::cx#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:155 [ gfx_init_screen0::cx#2 gfx_init_screen0::cx#1 ] -Uplifting [gfx_init_screen0] best 14119980 combination reg byte x [ gfx_init_screen0::cx#2 gfx_init_screen0::cx#1 ] +Uplifting [gfx_init_screen0] best 14120040 combination reg byte x [ gfx_init_screen0::cx#2 gfx_init_screen0::cx#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:71 [ gfx_init_plane_horisontal2::ax#2 gfx_init_plane_horisontal2::ax#1 ] -Uplifting [gfx_init_plane_horisontal2] best 14119080 combination reg byte x [ gfx_init_plane_horisontal2::ax#2 gfx_init_plane_horisontal2::ax#1 ] +Uplifting [gfx_init_plane_horisontal2] best 14119140 combination reg byte x [ gfx_init_plane_horisontal2::ax#2 gfx_init_plane_horisontal2::ax#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:147 [ gfx_init_screen2::cx#2 gfx_init_screen2::cx#1 ] -Uplifting [gfx_init_screen2] best 14118080 combination reg byte x [ gfx_init_screen2::cx#2 gfx_init_screen2::cx#1 ] +Uplifting [gfx_init_screen2] best 14118140 combination reg byte x [ gfx_init_screen2::cx#2 gfx_init_screen2::cx#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:5 [ gfx_mode::cy#4 gfx_mode::cy#1 ] -Uplifting [gfx_mode] best 14118080 combination zp ZP_BYTE:5 [ gfx_mode::cy#4 gfx_mode::cy#1 ] +Uplifting [gfx_mode] best 14118140 combination zp ZP_BYTE:5 [ gfx_mode::cy#4 gfx_mode::cy#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:83 [ gfx_init_plane_charset8::cr#6 gfx_init_plane_charset8::cr#1 ] -Uplifting [gfx_init_plane_charset8] best 14118080 combination zp ZP_BYTE:83 [ gfx_init_plane_charset8::cr#6 gfx_init_plane_charset8::cr#1 ] +Uplifting [gfx_init_plane_charset8] best 14118140 combination zp ZP_BYTE:83 [ gfx_init_plane_charset8::cr#6 gfx_init_plane_charset8::cr#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:346 [ gfx_init_screen2::col#0 ] -Uplifting [gfx_init_screen2] best 14117980 combination reg byte y [ gfx_init_screen2::col#0 ] +Uplifting [gfx_init_screen2] best 14118040 combination reg byte y [ gfx_init_screen2::col#0 ] Attempting to uplift remaining variables inzp ZP_BYTE:100 [ 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 ] -Uplifting [bitmap_line_xdyi] best 14117980 combination zp ZP_BYTE:100 [ 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 ] +Uplifting [bitmap_line_xdyi] best 14118040 combination zp ZP_BYTE:100 [ 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 ] Attempting to uplift remaining variables inzp ZP_BYTE:109 [ bitmap_line_ydxi::y#3 bitmap_line_ydxi::y#6 bitmap_line_ydxi::y#0 bitmap_line_ydxi::y#1 bitmap_line_ydxi::y#2 ] -Uplifting [bitmap_line_ydxi] best 14117980 combination zp ZP_BYTE:109 [ bitmap_line_ydxi::y#3 bitmap_line_ydxi::y#6 bitmap_line_ydxi::y#0 bitmap_line_ydxi::y#1 bitmap_line_ydxi::y#2 ] +Uplifting [bitmap_line_ydxi] best 14118040 combination zp ZP_BYTE:109 [ bitmap_line_ydxi::y#3 bitmap_line_ydxi::y#6 bitmap_line_ydxi::y#0 bitmap_line_ydxi::y#1 bitmap_line_ydxi::y#2 ] Attempting to uplift remaining variables inzp ZP_BYTE:114 [ 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 ] -Uplifting [bitmap_line_xdyd] best 14117980 combination zp ZP_BYTE:114 [ 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 ] +Uplifting [bitmap_line_xdyd] best 14118040 combination zp ZP_BYTE:114 [ 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 ] Attempting to uplift remaining variables inzp ZP_BYTE:121 [ 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 ] -Uplifting [bitmap_line_ydxd] best 14117980 combination zp ZP_BYTE:121 [ 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 ] +Uplifting [bitmap_line_ydxd] best 14118040 combination zp ZP_BYTE:121 [ 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 ] Attempting to uplift remaining variables inzp ZP_BYTE:342 [ gfx_init_screen3::$1 ] -Uplifting [gfx_init_screen3] best 14117980 combination zp ZP_BYTE:342 [ gfx_init_screen3::$1 ] +Uplifting [gfx_init_screen3] best 14118040 combination zp ZP_BYTE:342 [ gfx_init_screen3::$1 ] Attempting to uplift remaining variables inzp ZP_BYTE:347 [ gfx_init_screen2::col2#0 ] -Uplifting [gfx_init_screen2] best 14117980 combination zp ZP_BYTE:347 [ gfx_init_screen2::col2#0 ] +Uplifting [gfx_init_screen2] best 14118040 combination zp ZP_BYTE:347 [ gfx_init_screen2::col2#0 ] Attempting to uplift remaining variables inzp ZP_BYTE:353 [ gfx_init_screen0::$1 ] -Uplifting [gfx_init_screen0] best 14117980 combination zp ZP_BYTE:353 [ gfx_init_screen0::$1 ] +Uplifting [gfx_init_screen0] best 14118040 combination zp ZP_BYTE:353 [ gfx_init_screen0::$1 ] Attempting to uplift remaining variables inzp ZP_BYTE:2 [ gfx_mode::dtv_control#12 gfx_mode::dtv_control#6 gfx_mode::dtv_control#13 gfx_mode::dtv_control#5 gfx_mode::dtv_control#11 gfx_mode::dtv_control#4 gfx_mode::dtv_control#10 gfx_mode::dtv_control#15 gfx_mode::dtv_control#14 gfx_mode::dtv_control#2 gfx_mode::dtv_control#3 ] -Uplifting [gfx_mode] best 14117961 combination reg byte y [ gfx_mode::dtv_control#12 gfx_mode::dtv_control#6 gfx_mode::dtv_control#13 gfx_mode::dtv_control#5 gfx_mode::dtv_control#11 gfx_mode::dtv_control#4 gfx_mode::dtv_control#10 gfx_mode::dtv_control#15 gfx_mode::dtv_control#14 gfx_mode::dtv_control#2 gfx_mode::dtv_control#3 ] +Uplifting [gfx_mode] best 14118021 combination reg byte y [ gfx_mode::dtv_control#12 gfx_mode::dtv_control#6 gfx_mode::dtv_control#13 gfx_mode::dtv_control#5 gfx_mode::dtv_control#11 gfx_mode::dtv_control#4 gfx_mode::dtv_control#10 gfx_mode::dtv_control#15 gfx_mode::dtv_control#14 gfx_mode::dtv_control#2 gfx_mode::dtv_control#3 ] Attempting to uplift remaining variables inzp ZP_BYTE:68 [ gfx_init_plane_horisontal2::ay#4 gfx_init_plane_horisontal2::ay#1 ] -Uplifting [gfx_init_plane_horisontal2] best 14117961 combination zp ZP_BYTE:68 [ gfx_init_plane_horisontal2::ay#4 gfx_init_plane_horisontal2::ay#1 ] +Uplifting [gfx_init_plane_horisontal2] best 14118021 combination zp ZP_BYTE:68 [ gfx_init_plane_horisontal2::ay#4 gfx_init_plane_horisontal2::ay#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:150 [ gfx_init_screen1::cy#4 gfx_init_screen1::cy#1 ] -Uplifting [gfx_init_screen1] best 14117961 combination zp ZP_BYTE:150 [ gfx_init_screen1::cy#4 gfx_init_screen1::cy#1 ] +Uplifting [gfx_init_screen1] best 14118021 combination zp ZP_BYTE:150 [ gfx_init_screen1::cy#4 gfx_init_screen1::cy#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:142 [ gfx_init_screen3::cy#4 gfx_init_screen3::cy#1 ] -Uplifting [gfx_init_screen3] best 14117961 combination zp ZP_BYTE:142 [ gfx_init_screen3::cy#4 gfx_init_screen3::cy#1 ] +Uplifting [gfx_init_screen3] best 14118021 combination zp ZP_BYTE:142 [ gfx_init_screen3::cy#4 gfx_init_screen3::cy#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:154 [ gfx_init_screen0::cy#4 gfx_init_screen0::cy#1 ] -Uplifting [gfx_init_screen0] best 14117961 combination zp ZP_BYTE:154 [ gfx_init_screen0::cy#4 gfx_init_screen0::cy#1 ] +Uplifting [gfx_init_screen0] best 14118021 combination zp ZP_BYTE:154 [ gfx_init_screen0::cy#4 gfx_init_screen0::cy#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:76 [ gfx_init_plane_horisontal::ay#4 gfx_init_plane_horisontal::ay#1 ] -Uplifting [gfx_init_plane_horisontal] best 14117961 combination zp ZP_BYTE:76 [ gfx_init_plane_horisontal::ay#4 gfx_init_plane_horisontal::ay#1 ] +Uplifting [gfx_init_plane_horisontal] best 14118021 combination zp ZP_BYTE:76 [ gfx_init_plane_horisontal::ay#4 gfx_init_plane_horisontal::ay#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:146 [ gfx_init_screen2::cy#4 gfx_init_screen2::cy#1 ] -Uplifting [gfx_init_screen2] best 14117961 combination zp ZP_BYTE:146 [ gfx_init_screen2::cy#4 gfx_init_screen2::cy#1 ] +Uplifting [gfx_init_screen2] best 14118021 combination zp ZP_BYTE:146 [ gfx_init_screen2::cy#4 gfx_init_screen2::cy#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:96 [ gfx_init_vic_bitmap::l#2 gfx_init_vic_bitmap::l#1 ] -Uplifting [gfx_init_vic_bitmap] best 14117961 combination zp ZP_BYTE:96 [ gfx_init_vic_bitmap::l#2 gfx_init_vic_bitmap::l#1 ] +Uplifting [gfx_init_vic_bitmap] best 14118021 combination zp ZP_BYTE:96 [ gfx_init_vic_bitmap::l#2 gfx_init_vic_bitmap::l#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:90 [ gfx_init_plane_8bppchunky::y#6 gfx_init_plane_8bppchunky::y#1 ] -Uplifting [gfx_init_plane_8bppchunky] best 14117961 combination zp ZP_BYTE:90 [ gfx_init_plane_8bppchunky::y#6 gfx_init_plane_8bppchunky::y#1 ] +Uplifting [gfx_init_plane_8bppchunky] best 14118021 combination zp ZP_BYTE:90 [ gfx_init_plane_8bppchunky::y#6 gfx_init_plane_8bppchunky::y#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:129 [ bitmap_init::y#2 bitmap_init::y#1 ] -Uplifting [bitmap_init] best 14117811 combination reg byte x [ bitmap_init::y#2 bitmap_init::y#1 ] +Uplifting [bitmap_init] best 14117851 combination reg byte x [ bitmap_init::y#2 bitmap_init::y#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:335 [ bitmap_init::$0 ] -Uplifting [bitmap_init] best 14117751 combination reg byte a [ bitmap_init::$0 ] +Uplifting [bitmap_init] best 14117791 combination reg byte a [ bitmap_init::$0 ] Attempting to uplift remaining variables inzp ZP_BYTE:337 [ bitmap_init::$7 ] -Uplifting [bitmap_init] best 14117691 combination reg byte a [ bitmap_init::$7 ] +Uplifting [bitmap_init] best 14117731 combination reg byte a [ bitmap_init::$7 ] Attempting to uplift remaining variables inzp ZP_BYTE:338 [ bitmap_init::$8 ] -Uplifting [bitmap_init] best 14117631 combination reg byte a [ bitmap_init::$8 ] +Uplifting [bitmap_init] best 14117671 combination reg byte a [ bitmap_init::$8 ] Attempting to uplift remaining variables inzp ZP_BYTE:339 [ bitmap_init::$9 ] -Uplifting [bitmap_init] best 14117571 combination reg byte a [ bitmap_init::$9 ] +Uplifting [bitmap_init] best 14117611 combination reg byte a [ bitmap_init::$9 ] Attempting to uplift remaining variables inzp ZP_BYTE:340 [ bitmap_init::$10 ] -Uplifting [bitmap_init] best 14117511 combination reg byte a [ bitmap_init::$10 ] +Uplifting [bitmap_init] best 14117551 combination reg byte a [ bitmap_init::$10 ] Attempting to uplift remaining variables inzp ZP_BYTE:63 [ gfx_init_plane_fill::by#4 gfx_init_plane_fill::by#1 ] -Uplifting [gfx_init_plane_fill] best 14117511 combination zp ZP_BYTE:63 [ gfx_init_plane_fill::by#4 gfx_init_plane_fill::by#1 ] +Uplifting [gfx_init_plane_fill] best 14117551 combination zp ZP_BYTE:63 [ gfx_init_plane_fill::by#4 gfx_init_plane_fill::by#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:72 [ gfx_init_plane_vertical::by#4 gfx_init_plane_vertical::by#1 ] -Uplifting [gfx_init_plane_vertical] best 14117511 combination zp ZP_BYTE:72 [ gfx_init_plane_vertical::by#4 gfx_init_plane_vertical::by#1 ] +Uplifting [gfx_init_plane_vertical] best 14117551 combination zp ZP_BYTE:72 [ gfx_init_plane_vertical::by#4 gfx_init_plane_vertical::by#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:123 [ bitmap_clear::y#4 bitmap_clear::y#1 ] -Uplifting [bitmap_clear] best 14117511 combination zp ZP_BYTE:123 [ bitmap_clear::y#4 bitmap_clear::y#1 ] +Uplifting [bitmap_clear] best 14117551 combination zp ZP_BYTE:123 [ bitmap_clear::y#4 bitmap_clear::y#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:138 [ gfx_init_screen4::cy#4 gfx_init_screen4::cy#1 ] -Uplifting [gfx_init_screen4] best 14117511 combination zp ZP_BYTE:138 [ gfx_init_screen4::cy#4 gfx_init_screen4::cy#1 ] +Uplifting [gfx_init_screen4] best 14117551 combination zp ZP_BYTE:138 [ gfx_init_screen4::cy#4 gfx_init_screen4::cy#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:132 [ gfx_init_charset::c#4 gfx_init_charset::c#1 ] -Uplifting [gfx_init_charset] best 14117511 combination zp ZP_BYTE:132 [ gfx_init_charset::c#4 gfx_init_charset::c#1 ] +Uplifting [gfx_init_charset] best 14117551 combination zp ZP_BYTE:132 [ gfx_init_charset::c#4 gfx_init_charset::c#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:98 [ bitmap_line_xdyi::xd#5 bitmap_line_xdyi::xd#1 bitmap_line_xdyi::xd#0 ] -Uplifting [bitmap_line_xdyi] best 14117511 combination zp ZP_BYTE:98 [ bitmap_line_xdyi::xd#5 bitmap_line_xdyi::xd#1 bitmap_line_xdyi::xd#0 ] +Uplifting [bitmap_line_xdyi] best 14117551 combination zp ZP_BYTE:98 [ bitmap_line_xdyi::xd#5 bitmap_line_xdyi::xd#1 bitmap_line_xdyi::xd#0 ] Attempting to uplift remaining variables inzp ZP_BYTE:106 [ bitmap_line_ydxi::yd#5 bitmap_line_ydxi::yd#0 bitmap_line_ydxi::yd#1 ] -Uplifting [bitmap_line_ydxi] best 14117511 combination zp ZP_BYTE:106 [ bitmap_line_ydxi::yd#5 bitmap_line_ydxi::yd#0 bitmap_line_ydxi::yd#1 ] +Uplifting [bitmap_line_ydxi] best 14117551 combination zp ZP_BYTE:106 [ bitmap_line_ydxi::yd#5 bitmap_line_ydxi::yd#0 bitmap_line_ydxi::yd#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:112 [ bitmap_line_xdyd::xd#5 bitmap_line_xdyd::xd#1 bitmap_line_xdyd::xd#0 ] -Uplifting [bitmap_line_xdyd] best 14117511 combination zp ZP_BYTE:112 [ bitmap_line_xdyd::xd#5 bitmap_line_xdyd::xd#1 bitmap_line_xdyd::xd#0 ] +Uplifting [bitmap_line_xdyd] best 14117551 combination zp ZP_BYTE:112 [ bitmap_line_xdyd::xd#5 bitmap_line_xdyd::xd#1 bitmap_line_xdyd::xd#0 ] Attempting to uplift remaining variables inzp ZP_BYTE:118 [ bitmap_line_ydxd::yd#5 bitmap_line_ydxd::yd#0 bitmap_line_ydxd::yd#1 ] -Uplifting [bitmap_line_ydxd] best 14117511 combination zp ZP_BYTE:118 [ bitmap_line_ydxd::yd#5 bitmap_line_ydxd::yd#0 bitmap_line_ydxd::yd#1 ] +Uplifting [bitmap_line_ydxd] best 14117551 combination zp ZP_BYTE:118 [ bitmap_line_ydxd::yd#5 bitmap_line_ydxd::yd#0 bitmap_line_ydxd::yd#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:80 [ gfx_init_plane_charset8::ch#8 gfx_init_plane_charset8::ch#1 ] -Uplifting [gfx_init_plane_charset8] best 14117511 combination zp ZP_BYTE:80 [ gfx_init_plane_charset8::ch#8 gfx_init_plane_charset8::ch#1 ] +Uplifting [gfx_init_plane_charset8] best 14117551 combination zp ZP_BYTE:80 [ gfx_init_plane_charset8::ch#8 gfx_init_plane_charset8::ch#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:15 [ keyboard_modifiers#21 keyboard_modifiers#20 keyboard_modifiers#4 keyboard_modifiers#19 keyboard_modifiers#3 keyboard_modifiers#18 keyboard_modifiers#5 ] -Uplifting [] best 14117511 combination zp ZP_BYTE:15 [ keyboard_modifiers#21 keyboard_modifiers#20 keyboard_modifiers#4 keyboard_modifiers#19 keyboard_modifiers#3 keyboard_modifiers#18 keyboard_modifiers#5 ] +Uplifting [] best 14117551 combination zp ZP_BYTE:15 [ keyboard_modifiers#21 keyboard_modifiers#20 keyboard_modifiers#4 keyboard_modifiers#19 keyboard_modifiers#3 keyboard_modifiers#18 keyboard_modifiers#5 ] Attempting to uplift remaining variables inzp ZP_BYTE:97 [ bitmap_line_xdyi::yd#2 bitmap_line_xdyi::yd#1 bitmap_line_xdyi::yd#0 ] -Uplifting [bitmap_line_xdyi] best 14117511 combination zp ZP_BYTE:97 [ bitmap_line_xdyi::yd#2 bitmap_line_xdyi::yd#1 bitmap_line_xdyi::yd#0 ] +Uplifting [bitmap_line_xdyi] best 14117551 combination zp ZP_BYTE:97 [ bitmap_line_xdyi::yd#2 bitmap_line_xdyi::yd#1 bitmap_line_xdyi::yd#0 ] Attempting to uplift remaining variables inzp ZP_BYTE:105 [ bitmap_line_ydxi::xd#2 bitmap_line_ydxi::xd#0 bitmap_line_ydxi::xd#1 ] -Uplifting [bitmap_line_ydxi] best 14117511 combination zp ZP_BYTE:105 [ bitmap_line_ydxi::xd#2 bitmap_line_ydxi::xd#0 bitmap_line_ydxi::xd#1 ] +Uplifting [bitmap_line_ydxi] best 14117551 combination zp ZP_BYTE:105 [ bitmap_line_ydxi::xd#2 bitmap_line_ydxi::xd#0 bitmap_line_ydxi::xd#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:111 [ bitmap_line_xdyd::yd#2 bitmap_line_xdyd::yd#1 bitmap_line_xdyd::yd#0 ] -Uplifting [bitmap_line_xdyd] best 14117511 combination zp ZP_BYTE:111 [ bitmap_line_xdyd::yd#2 bitmap_line_xdyd::yd#1 bitmap_line_xdyd::yd#0 ] +Uplifting [bitmap_line_xdyd] best 14117551 combination zp ZP_BYTE:111 [ bitmap_line_xdyd::yd#2 bitmap_line_xdyd::yd#1 bitmap_line_xdyd::yd#0 ] Attempting to uplift remaining variables inzp ZP_BYTE:117 [ bitmap_line_ydxd::xd#2 bitmap_line_ydxd::xd#0 bitmap_line_ydxd::xd#1 ] -Uplifting [bitmap_line_ydxd] best 14117511 combination zp ZP_BYTE:117 [ bitmap_line_ydxd::xd#2 bitmap_line_ydxd::xd#0 bitmap_line_ydxd::xd#1 ] +Uplifting [bitmap_line_ydxd] best 14117551 combination zp ZP_BYTE:117 [ bitmap_line_ydxd::xd#2 bitmap_line_ydxd::xd#0 bitmap_line_ydxd::xd#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:3 [ gfx_mode::vic_control#4 gfx_mode::vic_control#2 gfx_mode::vic_control#5 ] -Uplifting [gfx_mode] best 14117500 combination reg byte y [ gfx_mode::vic_control#4 gfx_mode::vic_control#2 gfx_mode::vic_control#5 ] +Uplifting [gfx_mode] best 14117540 combination reg byte y [ gfx_mode::vic_control#4 gfx_mode::vic_control#2 gfx_mode::vic_control#5 ] Attempting to uplift remaining variables inzp ZP_BYTE:336 [ bitmap_init::$6 ] -Uplifting [bitmap_init] best 14117500 combination zp ZP_BYTE:336 [ bitmap_init::$6 ] +Uplifting [bitmap_init] best 14117540 combination zp ZP_BYTE:336 [ bitmap_init::$6 ] Attempting to uplift remaining variables inzp ZP_BYTE:99 [ bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x1#1 bitmap_line_xdyi::x1#0 ] -Uplifting [bitmap_line_xdyi] best 14117500 combination zp ZP_BYTE:99 [ bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x1#1 bitmap_line_xdyi::x1#0 ] +Uplifting [bitmap_line_xdyi] best 14117540 combination zp ZP_BYTE:99 [ bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x1#1 bitmap_line_xdyi::x1#0 ] Attempting to uplift remaining variables inzp ZP_BYTE:107 [ bitmap_line_ydxi::y1#6 bitmap_line_ydxi::y1#0 bitmap_line_ydxi::y1#1 ] -Uplifting [bitmap_line_ydxi] best 14117500 combination zp ZP_BYTE:107 [ bitmap_line_ydxi::y1#6 bitmap_line_ydxi::y1#0 bitmap_line_ydxi::y1#1 ] +Uplifting [bitmap_line_ydxi] best 14117540 combination zp ZP_BYTE:107 [ bitmap_line_ydxi::y1#6 bitmap_line_ydxi::y1#0 bitmap_line_ydxi::y1#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:113 [ bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x1#1 bitmap_line_xdyd::x1#0 ] -Uplifting [bitmap_line_xdyd] best 14117500 combination zp ZP_BYTE:113 [ bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x1#1 bitmap_line_xdyd::x1#0 ] +Uplifting [bitmap_line_xdyd] best 14117540 combination zp ZP_BYTE:113 [ bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x1#1 bitmap_line_xdyd::x1#0 ] Attempting to uplift remaining variables inzp ZP_BYTE:119 [ bitmap_line_ydxd::y1#6 bitmap_line_ydxd::y1#0 bitmap_line_ydxd::y1#1 ] -Uplifting [bitmap_line_ydxd] best 14117500 combination zp ZP_BYTE:119 [ bitmap_line_ydxd::y1#6 bitmap_line_ydxd::y1#0 bitmap_line_ydxd::y1#1 ] +Uplifting [bitmap_line_ydxd] best 14117540 combination zp ZP_BYTE:119 [ bitmap_line_ydxd::y1#6 bitmap_line_ydxd::y1#0 bitmap_line_ydxd::y1#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:62 [ gfx_init_plane_fill::fill#6 ] -Uplifting [gfx_init_plane_fill] best 14117500 combination zp ZP_BYTE:62 [ gfx_init_plane_fill::fill#6 ] +Uplifting [gfx_init_plane_fill] best 14117540 combination zp ZP_BYTE:62 [ gfx_init_plane_fill::fill#6 ] Attempting to uplift remaining variables inzp ZP_BYTE:158 [ gfx_mode::$29 ] -Uplifting [gfx_mode] best 14117494 combination reg byte a [ gfx_mode::$29 ] +Uplifting [gfx_mode] best 14117534 combination reg byte a [ gfx_mode::$29 ] Attempting to uplift remaining variables inzp ZP_BYTE:174 [ gfx_mode::$34 ] -Uplifting [gfx_mode] best 14117488 combination reg byte a [ gfx_mode::$34 ] +Uplifting [gfx_mode] best 14117528 combination reg byte a [ gfx_mode::$34 ] Attempting to uplift remaining variables inzp ZP_BYTE:177 [ gfx_mode::$36 ] -Uplifting [gfx_mode] best 14117482 combination reg byte a [ gfx_mode::$36 ] +Uplifting [gfx_mode] best 14117522 combination reg byte a [ gfx_mode::$36 ] Attempting to uplift remaining variables inzp ZP_BYTE:180 [ gfx_mode::$38 ] -Uplifting [gfx_mode] best 14117476 combination reg byte a [ gfx_mode::$38 ] +Uplifting [gfx_mode] best 14117516 combination reg byte a [ gfx_mode::$38 ] Attempting to uplift remaining variables inzp ZP_BYTE:181 [ gfx_mode::$39 ] -Uplifting [gfx_mode] best 14117470 combination reg byte a [ gfx_mode::$39 ] +Uplifting [gfx_mode] best 14117510 combination reg byte a [ gfx_mode::$39 ] Attempting to uplift remaining variables inzp ZP_BYTE:182 [ gfx_mode::$40 ] -Uplifting [gfx_mode] best 14117464 combination reg byte a [ gfx_mode::$40 ] +Uplifting [gfx_mode] best 14117504 combination reg byte a [ gfx_mode::$40 ] Attempting to uplift remaining variables inzp ZP_BYTE:183 [ gfx_mode::$41 ] -Uplifting [gfx_mode] best 14117458 combination reg byte a [ gfx_mode::$41 ] +Uplifting [gfx_mode] best 14117498 combination reg byte a [ gfx_mode::$41 ] Attempting to uplift remaining variables inzp ZP_BYTE:184 [ gfx_mode::$42 ] -Uplifting [gfx_mode] best 14117452 combination reg byte a [ gfx_mode::$42 ] +Uplifting [gfx_mode] best 14117492 combination reg byte a [ gfx_mode::$42 ] Attempting to uplift remaining variables inzp ZP_BYTE:185 [ gfx_mode::$43 ] -Uplifting [gfx_mode] best 14117446 combination reg byte a [ gfx_mode::$43 ] +Uplifting [gfx_mode] best 14117486 combination reg byte a [ gfx_mode::$43 ] Attempting to uplift remaining variables inzp ZP_BYTE:201 [ gfx_mode::$48 ] -Uplifting [gfx_mode] best 14117440 combination reg byte a [ gfx_mode::$48 ] +Uplifting [gfx_mode] best 14117480 combination reg byte a [ gfx_mode::$48 ] Attempting to uplift remaining variables inzp ZP_BYTE:204 [ gfx_mode::$50 ] -Uplifting [gfx_mode] best 14117434 combination reg byte a [ gfx_mode::$50 ] +Uplifting [gfx_mode] best 14117474 combination reg byte a [ gfx_mode::$50 ] Attempting to uplift remaining variables inzp ZP_BYTE:207 [ gfx_mode::$52 ] -Uplifting [gfx_mode] best 14117428 combination reg byte a [ gfx_mode::$52 ] +Uplifting [gfx_mode] best 14117468 combination reg byte a [ gfx_mode::$52 ] Attempting to uplift remaining variables inzp ZP_BYTE:208 [ gfx_mode::$53 ] -Uplifting [gfx_mode] best 14117422 combination reg byte a [ gfx_mode::$53 ] +Uplifting [gfx_mode] best 14117462 combination reg byte a [ gfx_mode::$53 ] Attempting to uplift remaining variables inzp ZP_BYTE:209 [ gfx_mode::$54 ] -Uplifting [gfx_mode] best 14117416 combination reg byte a [ gfx_mode::$54 ] +Uplifting [gfx_mode] best 14117456 combination reg byte a [ gfx_mode::$54 ] Attempting to uplift remaining variables inzp ZP_BYTE:210 [ gfx_mode::$55 ] -Uplifting [gfx_mode] best 14117410 combination reg byte a [ gfx_mode::$55 ] +Uplifting [gfx_mode] best 14117450 combination reg byte a [ gfx_mode::$55 ] Attempting to uplift remaining variables inzp ZP_BYTE:211 [ gfx_mode::$56 ] -Uplifting [gfx_mode] best 14117404 combination reg byte a [ gfx_mode::$56 ] +Uplifting [gfx_mode] best 14117444 combination reg byte a [ gfx_mode::$56 ] Attempting to uplift remaining variables inzp ZP_BYTE:228 [ gfx_mode::$69 ] -Uplifting [gfx_mode] best 14117398 combination reg byte a [ gfx_mode::$69 ] +Uplifting [gfx_mode] best 14117438 combination reg byte a [ gfx_mode::$69 ] Attempting to uplift remaining variables inzp ZP_BYTE:229 [ gfx_mode::$70 ] -Uplifting [gfx_mode] best 14117392 combination reg byte a [ gfx_mode::$70 ] +Uplifting [gfx_mode] best 14117432 combination reg byte a [ gfx_mode::$70 ] Attempting to uplift remaining variables inzp ZP_BYTE:230 [ gfx_mode::$71 ] -Uplifting [gfx_mode] best 14117386 combination reg byte a [ gfx_mode::$71 ] +Uplifting [gfx_mode] best 14117426 combination reg byte a [ gfx_mode::$71 ] Attempting to uplift remaining variables inzp ZP_BYTE:233 [ gfx_mode::$75 ] -Uplifting [gfx_mode] best 14117380 combination reg byte a [ gfx_mode::$75 ] +Uplifting [gfx_mode] best 14117420 combination reg byte a [ gfx_mode::$75 ] Attempting to uplift remaining variables inzp ZP_BYTE:234 [ gfx_mode::$76 ] -Uplifting [gfx_mode] best 14117374 combination reg byte a [ gfx_mode::$76 ] +Uplifting [gfx_mode] best 14117414 combination reg byte a [ gfx_mode::$76 ] Attempting to uplift remaining variables inzp ZP_BYTE:235 [ gfx_mode::$77 ] -Uplifting [gfx_mode] best 14117368 combination reg byte a [ gfx_mode::$77 ] +Uplifting [gfx_mode] best 14117408 combination reg byte a [ gfx_mode::$77 ] Attempting to uplift remaining variables inzp ZP_BYTE:236 [ gfx_mode::$78 ] -Uplifting [gfx_mode] best 14117362 combination reg byte a [ gfx_mode::$78 ] +Uplifting [gfx_mode] best 14117402 combination reg byte a [ gfx_mode::$78 ] Attempting to uplift remaining variables inzp ZP_BYTE:237 [ gfx_mode::$79 ] -Uplifting [gfx_mode] best 14117356 combination reg byte a [ gfx_mode::$79 ] +Uplifting [gfx_mode] best 14117396 combination reg byte a [ gfx_mode::$79 ] Attempting to uplift remaining variables inzp ZP_BYTE:238 [ gfx_mode::$80 ] -Uplifting [gfx_mode] best 14117350 combination reg byte a [ gfx_mode::$80 ] +Uplifting [gfx_mode] best 14117390 combination reg byte a [ gfx_mode::$80 ] Attempting to uplift remaining variables inzp ZP_BYTE:239 [ gfx_mode::$81 ] -Uplifting [gfx_mode] best 14117344 combination reg byte a [ gfx_mode::$81 ] +Uplifting [gfx_mode] best 14117384 combination reg byte a [ gfx_mode::$81 ] Attempting to uplift remaining variables inzp ZP_BYTE:240 [ gfx_mode::$82 ] -Uplifting [gfx_mode] best 14117338 combination reg byte a [ gfx_mode::$82 ] +Uplifting [gfx_mode] best 14117378 combination reg byte a [ gfx_mode::$82 ] Attempting to uplift remaining variables inzp ZP_BYTE:247 [ keyboard_event_scan::$14 ] -Uplifting [keyboard_event_scan] best 14117332 combination reg byte a [ keyboard_event_scan::$14 ] +Uplifting [keyboard_event_scan] best 14117372 combination reg byte a [ keyboard_event_scan::$14 ] Attempting to uplift remaining variables inzp ZP_BYTE:249 [ keyboard_event_scan::$18 ] -Uplifting [keyboard_event_scan] best 14117326 combination reg byte a [ keyboard_event_scan::$18 ] +Uplifting [keyboard_event_scan] best 14117366 combination reg byte a [ keyboard_event_scan::$18 ] Attempting to uplift remaining variables inzp ZP_BYTE:250 [ keyboard_event_pressed::return#2 ] -Uplifting [keyboard_event_pressed] best 14117320 combination reg byte a [ keyboard_event_pressed::return#2 ] +Uplifting [keyboard_event_pressed] best 14117360 combination reg byte a [ keyboard_event_pressed::return#2 ] Attempting to uplift remaining variables inzp ZP_BYTE:251 [ keyboard_event_scan::$22 ] -Uplifting [keyboard_event_scan] best 14117314 combination reg byte a [ keyboard_event_scan::$22 ] +Uplifting [keyboard_event_scan] best 14117354 combination reg byte a [ keyboard_event_scan::$22 ] Attempting to uplift remaining variables inzp ZP_BYTE:252 [ keyboard_event_pressed::return#3 ] -Uplifting [keyboard_event_pressed] best 14117308 combination reg byte a [ keyboard_event_pressed::return#3 ] +Uplifting [keyboard_event_pressed] best 14117348 combination reg byte a [ keyboard_event_pressed::return#3 ] Attempting to uplift remaining variables inzp ZP_BYTE:253 [ keyboard_event_scan::$26 ] -Uplifting [keyboard_event_scan] best 14117302 combination reg byte a [ keyboard_event_scan::$26 ] +Uplifting [keyboard_event_scan] best 14117342 combination reg byte a [ keyboard_event_scan::$26 ] Attempting to uplift remaining variables inzp ZP_BYTE:258 [ keyboard_event_pressed::$0 ] -Uplifting [keyboard_event_pressed] best 14117298 combination reg byte a [ keyboard_event_pressed::$0 ] +Uplifting [keyboard_event_pressed] best 14117338 combination reg byte a [ keyboard_event_pressed::$0 ] Attempting to uplift remaining variables inzp ZP_BYTE:260 [ keyboard_event_pressed::$1 ] -Uplifting [keyboard_event_pressed] best 14117294 combination reg byte a [ keyboard_event_pressed::$1 ] +Uplifting [keyboard_event_pressed] best 14117334 combination reg byte a [ keyboard_event_pressed::$1 ] Attempting to uplift remaining variables inzp ZP_BYTE:273 [ form_field_ptr::x#0 ] -Uplifting [form_field_ptr] best 14117288 combination reg byte a [ form_field_ptr::x#0 ] +Uplifting [form_field_ptr] best 14117328 combination reg byte a [ form_field_ptr::x#0 ] Attempting to uplift remaining variables inzp ZP_BYTE:280 [ form_control::$5 ] -Uplifting [form_control] best 14117282 combination reg byte a [ form_control::$5 ] +Uplifting [form_control] best 14117322 combination reg byte a [ form_control::$5 ] Attempting to uplift remaining variables inzp ZP_BYTE:281 [ keyboard_event_get::return#4 ] -Uplifting [keyboard_event_get] best 14117276 combination reg byte a [ keyboard_event_get::return#4 ] +Uplifting [keyboard_event_get] best 14117316 combination reg byte a [ keyboard_event_get::return#4 ] Attempting to uplift remaining variables inzp ZP_BYTE:283 [ form_control::$11 ] -Uplifting [form_control] best 14117270 combination reg byte a [ form_control::$11 ] +Uplifting [form_control] best 14117310 combination reg byte a [ form_control::$11 ] Attempting to uplift remaining variables inzp ZP_BYTE:284 [ form_control::$12 ] -Uplifting [form_control] best 14117264 combination reg byte a [ form_control::$12 ] +Uplifting [form_control] best 14117304 combination reg byte a [ form_control::$12 ] Attempting to uplift remaining variables inzp ZP_BYTE:285 [ form_control::$22 ] -Uplifting [form_control] best 14117258 combination reg byte a [ form_control::$22 ] +Uplifting [form_control] best 14117298 combination reg byte a [ form_control::$22 ] Attempting to uplift remaining variables inzp ZP_BYTE:286 [ form_control::$6 ] -Uplifting [form_control] best 14117252 combination reg byte a [ form_control::$6 ] +Uplifting [form_control] best 14117292 combination reg byte a [ form_control::$6 ] Attempting to uplift remaining variables inzp ZP_BYTE:329 [ bitmap_plot::$1 ] -Uplifting [bitmap_plot] best 14117246 combination reg byte a [ bitmap_plot::$1 ] +Uplifting [bitmap_plot] best 14117286 combination reg byte a [ bitmap_plot::$1 ] Attempting to uplift remaining variables inzp ZP_BYTE:282 [ form_control::key_event#0 ] -Uplifting [form_control] best 14117234 combination reg byte a [ form_control::key_event#0 ] +Uplifting [form_control] best 14117274 combination reg byte a [ form_control::key_event#0 ] Attempting to uplift remaining variables inzp ZP_BYTE:4 [ gfx_mode::vic_control2#2 ] -Uplifting [gfx_mode] best 14117225 combination reg byte a [ gfx_mode::vic_control2#2 ] +Uplifting [gfx_mode] best 14117265 combination reg byte a [ gfx_mode::vic_control2#2 ] Attempting to uplift remaining variables inzp ZP_BYTE:259 [ keyboard_event_pressed::row_bits#0 ] -Uplifting [keyboard_event_pressed] best 14117225 combination zp ZP_BYTE:259 [ keyboard_event_pressed::row_bits#0 ] +Uplifting [keyboard_event_pressed] best 14117265 combination zp ZP_BYTE:259 [ keyboard_event_pressed::row_bits#0 ] Attempting to uplift remaining variables inzp ZP_BYTE:314 [ bitmap_line::y0#0 ] -Uplifting [bitmap_line] best 14117225 combination zp ZP_BYTE:314 [ bitmap_line::y0#0 ] +Uplifting [bitmap_line] best 14117265 combination zp ZP_BYTE:314 [ bitmap_line::y0#0 ] Attempting to uplift remaining variables inzp ZP_BYTE:261 [ keyboard_event_pressed::return#10 ] -Uplifting [keyboard_event_pressed] best 14117210 combination reg byte a [ keyboard_event_pressed::return#10 ] +Uplifting [keyboard_event_pressed] best 14117250 combination reg byte a [ keyboard_event_pressed::return#10 ] Attempting to uplift remaining variables inzp ZP_BYTE:19 [ keyboard_event_pressed::keycode#4 ] -Uplifting [keyboard_event_pressed] best 14117210 combination zp ZP_BYTE:19 [ keyboard_event_pressed::keycode#4 ] +Uplifting [keyboard_event_pressed] best 14117250 combination zp ZP_BYTE:19 [ keyboard_event_pressed::keycode#4 ] Attempting to uplift remaining variables inzp ZP_BYTE:313 [ bitmap_line::x1#0 ] -Uplifting [bitmap_line] best 14117210 combination zp ZP_BYTE:313 [ bitmap_line::x1#0 ] +Uplifting [bitmap_line] best 14117250 combination zp ZP_BYTE:313 [ bitmap_line::x1#0 ] Attempting to uplift remaining variables inzp ZP_BYTE:312 [ bitmap_line::x0#0 ] -Uplifting [bitmap_line] best 14117210 combination zp ZP_BYTE:312 [ bitmap_line::x0#0 ] +Uplifting [bitmap_line] best 14117250 combination zp ZP_BYTE:312 [ bitmap_line::x0#0 ] Attempting to uplift remaining variables inzp ZP_BYTE:317 [ bitmap_line::yd#1 ] -Uplifting [bitmap_line] best 14117210 combination zp ZP_BYTE:317 [ bitmap_line::yd#1 ] +Uplifting [bitmap_line] best 14117250 combination zp ZP_BYTE:317 [ bitmap_line::yd#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:318 [ bitmap_line::yd#0 ] -Uplifting [bitmap_line] best 14117210 combination zp ZP_BYTE:318 [ bitmap_line::yd#0 ] +Uplifting [bitmap_line] best 14117250 combination zp ZP_BYTE:318 [ bitmap_line::yd#0 ] Attempting to uplift remaining variables inzp ZP_BYTE:320 [ bitmap_line::yd#3 ] -Uplifting [bitmap_line] best 14117210 combination zp ZP_BYTE:320 [ bitmap_line::yd#3 ] +Uplifting [bitmap_line] best 14117250 combination zp ZP_BYTE:320 [ bitmap_line::yd#3 ] Attempting to uplift remaining variables inzp ZP_BYTE:321 [ bitmap_line::yd#10 ] -Uplifting [bitmap_line] best 14117210 combination zp ZP_BYTE:321 [ bitmap_line::yd#10 ] +Uplifting [bitmap_line] best 14117250 combination zp ZP_BYTE:321 [ bitmap_line::yd#10 ] Attempting to uplift remaining variables inzp ZP_BYTE:159 [ gfx_mode::plane_a_offs#0 ] -Uplifting [gfx_mode] best 14117208 combination reg byte y [ gfx_mode::plane_a_offs#0 ] +Uplifting [gfx_mode] best 14117248 combination reg byte y [ gfx_mode::plane_a_offs#0 ] Attempting to uplift remaining variables inzp ZP_BYTE:186 [ gfx_mode::plane_b_offs#0 ] -Uplifting [gfx_mode] best 14117206 combination reg byte y [ gfx_mode::plane_b_offs#0 ] +Uplifting [gfx_mode] best 14117246 combination reg byte y [ gfx_mode::plane_b_offs#0 ] Attempting to uplift remaining variables inzp ZP_BYTE:316 [ bitmap_line::xd#1 ] -Uplifting [bitmap_line] best 14117206 combination zp ZP_BYTE:316 [ bitmap_line::xd#1 ] +Uplifting [bitmap_line] best 14117246 combination zp ZP_BYTE:316 [ bitmap_line::xd#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:319 [ bitmap_line::xd#0 ] -Uplifting [bitmap_line] best 14117206 combination zp ZP_BYTE:319 [ bitmap_line::xd#0 ] +Uplifting [bitmap_line] best 14117246 combination zp ZP_BYTE:319 [ bitmap_line::xd#0 ] Attempting to uplift remaining variables inzp ZP_BYTE:220 [ gfx_mode::$65 ] -Uplifting [gfx_mode] best 14117206 combination zp ZP_BYTE:220 [ gfx_mode::$65 ] +Uplifting [gfx_mode] best 14117246 combination zp ZP_BYTE:220 [ gfx_mode::$65 ] Coalescing zero page register with common assignment [ zp ZP_WORD:6 [ gfx_mode::vic_colors#2 gfx_mode::vic_colors#3 gfx_mode::vic_colors#1 gfx_mode::vic_colors#0 ] ] with [ zp ZP_WORD:231 [ get_vic_screen::return#11 ] ] - score: 1 Coalescing zero page register with common assignment [ zp ZP_WORD:21 [ get_vic_screen::return#5 ] ] with [ zp ZP_WORD:212 [ get_vic_screen::return#10 ] ] - score: 1 Coalescing zero page register with common assignment [ zp ZP_WORD:23 [ get_vic_charset::return#2 ] ] with [ zp ZP_WORD:222 [ get_vic_charset::return#4 ] ] - score: 1 @@ -23573,6 +23578,7 @@ gfx_init_plane_charset8: { inc ch //SEG1187 [581] if((byte) gfx_init_plane_charset8::ch#1!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto gfx_init_plane_charset8::@1 -- vbuz1_neq_0_then_la1 lda ch + cmp #0 bne b1_from_b7 jmp b8 //SEG1188 gfx_init_plane_charset8::@8 @@ -24678,6 +24684,7 @@ gfx_init_charset: { inc c //SEG1615 [793] if((byte) gfx_init_charset::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto gfx_init_charset::@1 -- vbuz1_neq_0_then_la1 lda c + cmp #0 bne b1_from_b3 jmp b4 //SEG1616 gfx_init_charset::@4 @@ -27708,7 +27715,7 @@ reg byte a [ gfx_init_screen0::$3 ] FINAL ASSEMBLER -Score: 11370477 +Score: 11370517 //SEG0 Basic Upstart .pc = $801 "Basic" @@ -30692,6 +30699,7 @@ gfx_init_plane_charset8: { inc ch //SEG1187 [581] if((byte) gfx_init_plane_charset8::ch#1!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto gfx_init_plane_charset8::@1 -- vbuz1_neq_0_then_la1 lda ch + cmp #0 bne b1 //SEG1188 gfx_init_plane_charset8::@8 //SEG1189 [582] *((const byte*) PROCPORT#0) ← (const byte) PROCPORT_RAM_IO#0 -- _deref_pbuc1=vbuc2 @@ -31622,6 +31630,7 @@ gfx_init_charset: { inc c //SEG1615 [793] if((byte) gfx_init_charset::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto gfx_init_charset::@1 -- vbuz1_neq_0_then_la1 lda c + cmp #0 bne b1 //SEG1616 gfx_init_charset::@4 //SEG1617 [794] *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word/dword/signed dword) 55 -- _deref_pbuc1=vbuc2 diff --git a/src/test/ref/c64dtv-gfxmodes.asm b/src/test/ref/c64dtv-gfxmodes.asm index 64ea6deba..2b4a7a9cc 100644 --- a/src/test/ref/c64dtv-gfxmodes.asm +++ b/src/test/ref/c64dtv-gfxmodes.asm @@ -558,6 +558,7 @@ mode_8bpppixelcell: { bne b5 inc ch lda ch + cmp #0 bne b4 lda #PROCPORT_RAM_IO sta PROCPORT diff --git a/src/test/ref/c64dtv-gfxmodes.log b/src/test/ref/c64dtv-gfxmodes.log index ffeb1f8eb..6df55eebd 100644 --- a/src/test/ref/c64dtv-gfxmodes.log +++ b/src/test/ref/c64dtv-gfxmodes.log @@ -13283,6 +13283,7 @@ mode_8bpppixelcell: { inc ch //SEG518 [278] if((byte) mode_8bpppixelcell::ch#1!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto mode_8bpppixelcell::@4 -- vbuz1_neq_0_then_la1 lda ch + cmp #0 bne b4_from_b13 jmp b14 //SEG519 mode_8bpppixelcell::@14 @@ -15841,6 +15842,7 @@ bitmap_init: { lsr bits //SEG1384 [739] if((byte) bitmap_init::bits#1!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto bitmap_init::@10 -- vbuz1_neq_0_then_la1 lda bits + cmp #0 bne b10_from_b1 //SEG1385 [740] phi from bitmap_init::@1 to bitmap_init::@2 [phi:bitmap_init::@1->bitmap_init::@2] b2_from_b1: @@ -15854,6 +15856,7 @@ bitmap_init: { inc x //SEG1389 [742] if((byte) bitmap_init::x#1!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto bitmap_init::@1 -- vbuz1_neq_0_then_la1 lda x + cmp #0 bne b1_from_b2 //SEG1390 [743] phi from bitmap_init::@2 to bitmap_init::@3 [phi:bitmap_init::@2->bitmap_init::@3] b3_from_b2: @@ -15925,6 +15928,7 @@ bitmap_init: { inc y //SEG1411 [755] if((byte) bitmap_init::y#1!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto bitmap_init::@3 -- vbuz1_neq_0_then_la1 lda y + cmp #0 bne b3_from_b4 jmp breturn //SEG1412 bitmap_init::@return @@ -17823,400 +17827,400 @@ Uplift Scope [print_ln] Uplift Scope [print_set_screen] Uplift Scope [main] -Uplifting [mode_8bpppixelcell] best 3632702 combination reg byte a [ mode_8bpppixelcell::c#2 mode_8bpppixelcell::c#3 ] reg byte a [ mode_8bpppixelcell::$19 ] zp ZP_BYTE:29 [ mode_8bpppixelcell::cp#2 mode_8bpppixelcell::cp#1 ] zp ZP_BYTE:25 [ mode_8bpppixelcell::bits#2 mode_8bpppixelcell::bits#0 mode_8bpppixelcell::bits#1 ] zp ZP_WORD:26 [ mode_8bpppixelcell::gfxb#2 mode_8bpppixelcell::gfxb#5 mode_8bpppixelcell::gfxb#7 mode_8bpppixelcell::gfxb#1 ] zp ZP_BYTE:28 [ mode_8bpppixelcell::col#2 mode_8bpppixelcell::col#5 mode_8bpppixelcell::col#7 mode_8bpppixelcell::col#1 ] zp ZP_BYTE:211 [ mode_8bpppixelcell::$13 ] zp ZP_BYTE:213 [ mode_8bpppixelcell::$15 ] zp ZP_BYTE:214 [ mode_8bpppixelcell::$16 ] zp ZP_BYTE:18 [ mode_8bpppixelcell::ax#2 mode_8bpppixelcell::ax#1 ] zp ZP_WORD:22 [ mode_8bpppixelcell::chargen#2 mode_8bpppixelcell::chargen#4 mode_8bpppixelcell::chargen#1 ] zp ZP_BYTE:24 [ mode_8bpppixelcell::cr#6 mode_8bpppixelcell::cr#1 ] zp ZP_WORD:19 [ mode_8bpppixelcell::gfxa#2 mode_8bpppixelcell::gfxa#3 mode_8bpppixelcell::gfxa#1 ] zp ZP_BYTE:212 [ mode_8bpppixelcell::$14 ] zp ZP_BYTE:16 [ mode_8bpppixelcell::i#2 mode_8bpppixelcell::i#1 ] zp ZP_BYTE:17 [ mode_8bpppixelcell::ay#4 mode_8bpppixelcell::ay#1 ] zp ZP_BYTE:21 [ mode_8bpppixelcell::ch#8 mode_8bpppixelcell::ch#1 ] +Uplifting [mode_8bpppixelcell] best 3633502 combination reg byte a [ mode_8bpppixelcell::c#2 mode_8bpppixelcell::c#3 ] reg byte a [ mode_8bpppixelcell::$19 ] zp ZP_BYTE:29 [ mode_8bpppixelcell::cp#2 mode_8bpppixelcell::cp#1 ] zp ZP_BYTE:25 [ mode_8bpppixelcell::bits#2 mode_8bpppixelcell::bits#0 mode_8bpppixelcell::bits#1 ] zp ZP_WORD:26 [ mode_8bpppixelcell::gfxb#2 mode_8bpppixelcell::gfxb#5 mode_8bpppixelcell::gfxb#7 mode_8bpppixelcell::gfxb#1 ] zp ZP_BYTE:28 [ mode_8bpppixelcell::col#2 mode_8bpppixelcell::col#5 mode_8bpppixelcell::col#7 mode_8bpppixelcell::col#1 ] zp ZP_BYTE:211 [ mode_8bpppixelcell::$13 ] zp ZP_BYTE:213 [ mode_8bpppixelcell::$15 ] zp ZP_BYTE:214 [ mode_8bpppixelcell::$16 ] zp ZP_BYTE:18 [ mode_8bpppixelcell::ax#2 mode_8bpppixelcell::ax#1 ] zp ZP_WORD:22 [ mode_8bpppixelcell::chargen#2 mode_8bpppixelcell::chargen#4 mode_8bpppixelcell::chargen#1 ] zp ZP_BYTE:24 [ mode_8bpppixelcell::cr#6 mode_8bpppixelcell::cr#1 ] zp ZP_WORD:19 [ mode_8bpppixelcell::gfxa#2 mode_8bpppixelcell::gfxa#3 mode_8bpppixelcell::gfxa#1 ] zp ZP_BYTE:212 [ mode_8bpppixelcell::$14 ] zp ZP_BYTE:16 [ mode_8bpppixelcell::i#2 mode_8bpppixelcell::i#1 ] zp ZP_BYTE:17 [ mode_8bpppixelcell::ay#4 mode_8bpppixelcell::ay#1 ] zp ZP_BYTE:21 [ mode_8bpppixelcell::ch#8 mode_8bpppixelcell::ch#1 ] Limited combination testing to 10 combinations of 1572864 possible. -Uplifting [mode_ctrl] best 3604802 combination reg byte x [ mode_ctrl::ctrl#14 mode_ctrl::ctrl#22 mode_ctrl::ctrl#6 mode_ctrl::ctrl#13 mode_ctrl::ctrl#5 mode_ctrl::ctrl#12 mode_ctrl::ctrl#4 mode_ctrl::ctrl#11 mode_ctrl::ctrl#3 mode_ctrl::ctrl#10 mode_ctrl::ctrl#2 mode_ctrl::ctrl#17 mode_ctrl::ctrl#1 mode_ctrl::ctrl#0 ] reg byte a [ mode_ctrl::$1 ] zp ZP_BYTE:191 [ mode_ctrl::$4 ] zp ZP_BYTE:193 [ mode_ctrl::$8 ] zp ZP_BYTE:195 [ mode_ctrl::$12 ] zp ZP_BYTE:197 [ mode_ctrl::$16 ] zp ZP_BYTE:199 [ mode_ctrl::$20 ] zp ZP_BYTE:201 [ mode_ctrl::$24 ] zp ZP_BYTE:203 [ mode_ctrl::$28 ] +Uplifting [mode_ctrl] best 3605602 combination reg byte x [ mode_ctrl::ctrl#14 mode_ctrl::ctrl#22 mode_ctrl::ctrl#6 mode_ctrl::ctrl#13 mode_ctrl::ctrl#5 mode_ctrl::ctrl#12 mode_ctrl::ctrl#4 mode_ctrl::ctrl#11 mode_ctrl::ctrl#3 mode_ctrl::ctrl#10 mode_ctrl::ctrl#2 mode_ctrl::ctrl#17 mode_ctrl::ctrl#1 mode_ctrl::ctrl#0 ] reg byte a [ mode_ctrl::$1 ] zp ZP_BYTE:191 [ mode_ctrl::$4 ] zp ZP_BYTE:193 [ mode_ctrl::$8 ] zp ZP_BYTE:195 [ mode_ctrl::$12 ] zp ZP_BYTE:197 [ mode_ctrl::$16 ] zp ZP_BYTE:199 [ mode_ctrl::$20 ] zp ZP_BYTE:201 [ mode_ctrl::$24 ] zp ZP_BYTE:203 [ mode_ctrl::$28 ] Limited combination testing to 10 combinations of 196608 possible. -Uplifting [mode_twoplanebitmap] best 3589802 combination zp ZP_WORD:50 [ mode_twoplanebitmap::gfxa#3 mode_twoplanebitmap::gfxa#6 mode_twoplanebitmap::gfxa#7 mode_twoplanebitmap::gfxa#2 mode_twoplanebitmap::gfxa#1 ] zp ZP_WORD:54 [ mode_twoplanebitmap::gfxb#2 mode_twoplanebitmap::gfxb#3 mode_twoplanebitmap::gfxb#1 ] reg byte x [ mode_twoplanebitmap::bx#2 mode_twoplanebitmap::bx#1 ] reg byte a [ mode_twoplanebitmap::$15 ] zp ZP_BYTE:222 [ mode_twoplanebitmap::$17 ] zp ZP_BYTE:223 [ mode_twoplanebitmap::$18 ] zp ZP_BYTE:224 [ mode_twoplanebitmap::$21 ] zp ZP_BYTE:46 [ mode_twoplanebitmap::cx#2 mode_twoplanebitmap::cx#1 ] zp ZP_BYTE:52 [ mode_twoplanebitmap::ax#2 mode_twoplanebitmap::ax#1 ] zp ZP_WORD:47 [ mode_twoplanebitmap::col#2 mode_twoplanebitmap::col#3 mode_twoplanebitmap::col#1 ] zp ZP_BYTE:221 [ mode_twoplanebitmap::$16 ] zp ZP_BYTE:44 [ mode_twoplanebitmap::i#2 mode_twoplanebitmap::i#1 ] zp ZP_BYTE:45 [ mode_twoplanebitmap::cy#4 mode_twoplanebitmap::cy#1 ] zp ZP_BYTE:49 [ mode_twoplanebitmap::ay#4 mode_twoplanebitmap::ay#1 ] zp ZP_BYTE:53 [ mode_twoplanebitmap::by#4 mode_twoplanebitmap::by#1 ] +Uplifting [mode_twoplanebitmap] best 3590602 combination zp ZP_WORD:50 [ mode_twoplanebitmap::gfxa#3 mode_twoplanebitmap::gfxa#6 mode_twoplanebitmap::gfxa#7 mode_twoplanebitmap::gfxa#2 mode_twoplanebitmap::gfxa#1 ] zp ZP_WORD:54 [ mode_twoplanebitmap::gfxb#2 mode_twoplanebitmap::gfxb#3 mode_twoplanebitmap::gfxb#1 ] reg byte x [ mode_twoplanebitmap::bx#2 mode_twoplanebitmap::bx#1 ] reg byte a [ mode_twoplanebitmap::$15 ] zp ZP_BYTE:222 [ mode_twoplanebitmap::$17 ] zp ZP_BYTE:223 [ mode_twoplanebitmap::$18 ] zp ZP_BYTE:224 [ mode_twoplanebitmap::$21 ] zp ZP_BYTE:46 [ mode_twoplanebitmap::cx#2 mode_twoplanebitmap::cx#1 ] zp ZP_BYTE:52 [ mode_twoplanebitmap::ax#2 mode_twoplanebitmap::ax#1 ] zp ZP_WORD:47 [ mode_twoplanebitmap::col#2 mode_twoplanebitmap::col#3 mode_twoplanebitmap::col#1 ] zp ZP_BYTE:221 [ mode_twoplanebitmap::$16 ] zp ZP_BYTE:44 [ mode_twoplanebitmap::i#2 mode_twoplanebitmap::i#1 ] zp ZP_BYTE:45 [ mode_twoplanebitmap::cy#4 mode_twoplanebitmap::cy#1 ] zp ZP_BYTE:49 [ mode_twoplanebitmap::ay#4 mode_twoplanebitmap::ay#1 ] zp ZP_BYTE:53 [ mode_twoplanebitmap::by#4 mode_twoplanebitmap::by#1 ] Limited combination testing to 10 combinations of 196608 possible. -Uplifting [mode_sixsfred2] best 3574802 combination zp ZP_WORD:67 [ mode_sixsfred2::gfxb#2 mode_sixsfred2::gfxb#3 mode_sixsfred2::gfxb#1 ] reg byte x [ mode_sixsfred2::bx#2 mode_sixsfred2::bx#1 ] reg byte a [ mode_sixsfred2::$14 ] zp ZP_BYTE:227 [ mode_sixsfred2::$16 ] zp ZP_BYTE:228 [ mode_sixsfred2::$17 ] zp ZP_BYTE:229 [ mode_sixsfred2::$20 ] zp ZP_BYTE:230 [ mode_sixsfred2::row#0 ] zp ZP_BYTE:59 [ mode_sixsfred2::cx#2 mode_sixsfred2::cx#1 ] zp ZP_BYTE:65 [ mode_sixsfred2::ax#2 mode_sixsfred2::ax#1 ] zp ZP_WORD:63 [ mode_sixsfred2::gfxa#2 mode_sixsfred2::gfxa#3 mode_sixsfred2::gfxa#1 ] zp ZP_WORD:60 [ mode_sixsfred2::col#2 mode_sixsfred2::col#3 mode_sixsfred2::col#1 ] zp ZP_BYTE:226 [ mode_sixsfred2::$15 ] zp ZP_BYTE:57 [ mode_sixsfred2::i#2 mode_sixsfred2::i#1 ] zp ZP_BYTE:62 [ mode_sixsfred2::ay#4 mode_sixsfred2::ay#1 ] zp ZP_BYTE:58 [ mode_sixsfred2::cy#4 mode_sixsfred2::cy#1 ] zp ZP_BYTE:66 [ mode_sixsfred2::by#4 mode_sixsfred2::by#1 ] +Uplifting [mode_sixsfred2] best 3575602 combination zp ZP_WORD:67 [ mode_sixsfred2::gfxb#2 mode_sixsfred2::gfxb#3 mode_sixsfred2::gfxb#1 ] reg byte x [ mode_sixsfred2::bx#2 mode_sixsfred2::bx#1 ] reg byte a [ mode_sixsfred2::$14 ] zp ZP_BYTE:227 [ mode_sixsfred2::$16 ] zp ZP_BYTE:228 [ mode_sixsfred2::$17 ] zp ZP_BYTE:229 [ mode_sixsfred2::$20 ] zp ZP_BYTE:230 [ mode_sixsfred2::row#0 ] zp ZP_BYTE:59 [ mode_sixsfred2::cx#2 mode_sixsfred2::cx#1 ] zp ZP_BYTE:65 [ mode_sixsfred2::ax#2 mode_sixsfred2::ax#1 ] zp ZP_WORD:63 [ mode_sixsfred2::gfxa#2 mode_sixsfred2::gfxa#3 mode_sixsfred2::gfxa#1 ] zp ZP_WORD:60 [ mode_sixsfred2::col#2 mode_sixsfred2::col#3 mode_sixsfred2::col#1 ] zp ZP_BYTE:226 [ mode_sixsfred2::$15 ] zp ZP_BYTE:57 [ mode_sixsfred2::i#2 mode_sixsfred2::i#1 ] zp ZP_BYTE:62 [ mode_sixsfred2::ay#4 mode_sixsfred2::ay#1 ] zp ZP_BYTE:58 [ mode_sixsfred2::cy#4 mode_sixsfred2::cy#1 ] zp ZP_BYTE:66 [ mode_sixsfred2::by#4 mode_sixsfred2::by#1 ] Limited combination testing to 10 combinations of 786432 possible. -Uplifting [mode_sixsfred] best 3549802 combination zp ZP_WORD:41 [ mode_sixsfred::gfxb#2 mode_sixsfred::gfxb#3 mode_sixsfred::gfxb#1 ] reg byte x [ mode_sixsfred::bx#2 mode_sixsfred::bx#1 ] reg byte x [ mode_sixsfred::cx#2 mode_sixsfred::cx#1 ] reg byte a [ mode_sixsfred::$16 ] zp ZP_BYTE:217 [ mode_sixsfred::$17 ] zp ZP_BYTE:218 [ mode_sixsfred::$20 ] zp ZP_BYTE:219 [ mode_sixsfred::row#0 ] zp ZP_BYTE:39 [ mode_sixsfred::ax#2 mode_sixsfred::ax#1 ] zp ZP_WORD:34 [ mode_sixsfred::col#2 mode_sixsfred::col#3 mode_sixsfred::col#1 ] zp ZP_WORD:37 [ mode_sixsfred::gfxa#2 mode_sixsfred::gfxa#3 mode_sixsfred::gfxa#1 ] zp ZP_BYTE:31 [ mode_sixsfred::i#2 mode_sixsfred::i#1 ] zp ZP_BYTE:32 [ mode_sixsfred::cy#4 mode_sixsfred::cy#1 ] zp ZP_BYTE:36 [ mode_sixsfred::ay#4 mode_sixsfred::ay#1 ] zp ZP_BYTE:40 [ mode_sixsfred::by#4 mode_sixsfred::by#1 ] +Uplifting [mode_sixsfred] best 3550602 combination zp ZP_WORD:41 [ mode_sixsfred::gfxb#2 mode_sixsfred::gfxb#3 mode_sixsfred::gfxb#1 ] reg byte x [ mode_sixsfred::bx#2 mode_sixsfred::bx#1 ] reg byte x [ mode_sixsfred::cx#2 mode_sixsfred::cx#1 ] reg byte a [ mode_sixsfred::$16 ] zp ZP_BYTE:217 [ mode_sixsfred::$17 ] zp ZP_BYTE:218 [ mode_sixsfred::$20 ] zp ZP_BYTE:219 [ mode_sixsfred::row#0 ] zp ZP_BYTE:39 [ mode_sixsfred::ax#2 mode_sixsfred::ax#1 ] zp ZP_WORD:34 [ mode_sixsfred::col#2 mode_sixsfred::col#3 mode_sixsfred::col#1 ] zp ZP_WORD:37 [ mode_sixsfred::gfxa#2 mode_sixsfred::gfxa#3 mode_sixsfred::gfxa#1 ] zp ZP_BYTE:31 [ mode_sixsfred::i#2 mode_sixsfred::i#1 ] zp ZP_BYTE:32 [ mode_sixsfred::cy#4 mode_sixsfred::cy#1 ] zp ZP_BYTE:36 [ mode_sixsfred::ay#4 mode_sixsfred::ay#1 ] zp ZP_BYTE:40 [ mode_sixsfred::by#4 mode_sixsfred::by#1 ] Limited combination testing to 10 combinations of 65536 possible. -Uplifting [mode_stdchar] best 3537802 combination reg byte a [ mode_stdchar::$24 ] reg byte a [ mode_stdchar::$25 ] zp ZP_BYTE:291 [ mode_stdchar::$26 ] zp ZP_BYTE:293 [ mode_stdchar::$28 ] zp ZP_BYTE:294 [ mode_stdchar::$29 ] zp ZP_BYTE:148 [ mode_stdchar::cx#2 mode_stdchar::cx#1 ] zp ZP_WORD:149 [ mode_stdchar::col#2 mode_stdchar::col#3 mode_stdchar::col#1 ] zp ZP_BYTE:292 [ mode_stdchar::$27 ] zp ZP_WORD:151 [ mode_stdchar::ch#2 mode_stdchar::ch#3 mode_stdchar::ch#1 ] zp ZP_BYTE:146 [ mode_stdchar::i#2 mode_stdchar::i#1 ] zp ZP_BYTE:147 [ mode_stdchar::cy#4 mode_stdchar::cy#1 ] +Uplifting [mode_stdchar] best 3538602 combination reg byte a [ mode_stdchar::$24 ] reg byte a [ mode_stdchar::$25 ] zp ZP_BYTE:291 [ mode_stdchar::$26 ] zp ZP_BYTE:293 [ mode_stdchar::$28 ] zp ZP_BYTE:294 [ mode_stdchar::$29 ] zp ZP_BYTE:148 [ mode_stdchar::cx#2 mode_stdchar::cx#1 ] zp ZP_WORD:149 [ mode_stdchar::col#2 mode_stdchar::col#3 mode_stdchar::col#1 ] zp ZP_BYTE:292 [ mode_stdchar::$27 ] zp ZP_WORD:151 [ mode_stdchar::ch#2 mode_stdchar::ch#3 mode_stdchar::ch#1 ] zp ZP_BYTE:146 [ mode_stdchar::i#2 mode_stdchar::i#1 ] zp ZP_BYTE:147 [ mode_stdchar::cy#4 mode_stdchar::cy#1 ] Limited combination testing to 10 combinations of 36864 possible. -Uplifting [mode_ecmchar] best 3525802 combination reg byte a [ mode_ecmchar::$25 ] reg byte a [ mode_ecmchar::$26 ] zp ZP_BYTE:285 [ mode_ecmchar::$27 ] zp ZP_BYTE:287 [ mode_ecmchar::$29 ] zp ZP_BYTE:288 [ mode_ecmchar::$30 ] zp ZP_BYTE:141 [ mode_ecmchar::cx#2 mode_ecmchar::cx#1 ] zp ZP_WORD:142 [ mode_ecmchar::col#2 mode_ecmchar::col#3 mode_ecmchar::col#1 ] zp ZP_BYTE:286 [ mode_ecmchar::$28 ] zp ZP_WORD:144 [ mode_ecmchar::ch#2 mode_ecmchar::ch#3 mode_ecmchar::ch#1 ] zp ZP_BYTE:139 [ mode_ecmchar::i#2 mode_ecmchar::i#1 ] zp ZP_BYTE:140 [ mode_ecmchar::cy#4 mode_ecmchar::cy#1 ] +Uplifting [mode_ecmchar] best 3526602 combination reg byte a [ mode_ecmchar::$25 ] reg byte a [ mode_ecmchar::$26 ] zp ZP_BYTE:285 [ mode_ecmchar::$27 ] zp ZP_BYTE:287 [ mode_ecmchar::$29 ] zp ZP_BYTE:288 [ mode_ecmchar::$30 ] zp ZP_BYTE:141 [ mode_ecmchar::cx#2 mode_ecmchar::cx#1 ] zp ZP_WORD:142 [ mode_ecmchar::col#2 mode_ecmchar::col#3 mode_ecmchar::col#1 ] zp ZP_BYTE:286 [ mode_ecmchar::$28 ] zp ZP_WORD:144 [ mode_ecmchar::ch#2 mode_ecmchar::ch#3 mode_ecmchar::ch#1 ] zp ZP_BYTE:139 [ mode_ecmchar::i#2 mode_ecmchar::i#1 ] zp ZP_BYTE:140 [ mode_ecmchar::cy#4 mode_ecmchar::cy#1 ] Limited combination testing to 10 combinations of 36864 possible. -Uplifting [mode_mcchar] best 3513802 combination reg byte a [ mode_mcchar::$25 ] reg byte a [ mode_mcchar::$26 ] zp ZP_BYTE:279 [ mode_mcchar::$27 ] zp ZP_BYTE:281 [ mode_mcchar::$29 ] zp ZP_BYTE:282 [ mode_mcchar::$30 ] zp ZP_BYTE:134 [ mode_mcchar::cx#2 mode_mcchar::cx#1 ] zp ZP_WORD:135 [ mode_mcchar::col#2 mode_mcchar::col#3 mode_mcchar::col#1 ] zp ZP_BYTE:280 [ mode_mcchar::$28 ] zp ZP_WORD:137 [ mode_mcchar::ch#2 mode_mcchar::ch#3 mode_mcchar::ch#1 ] zp ZP_BYTE:132 [ mode_mcchar::i#2 mode_mcchar::i#1 ] zp ZP_BYTE:133 [ mode_mcchar::cy#4 mode_mcchar::cy#1 ] +Uplifting [mode_mcchar] best 3514602 combination reg byte a [ mode_mcchar::$25 ] reg byte a [ mode_mcchar::$26 ] zp ZP_BYTE:279 [ mode_mcchar::$27 ] zp ZP_BYTE:281 [ mode_mcchar::$29 ] zp ZP_BYTE:282 [ mode_mcchar::$30 ] zp ZP_BYTE:134 [ mode_mcchar::cx#2 mode_mcchar::cx#1 ] zp ZP_WORD:135 [ mode_mcchar::col#2 mode_mcchar::col#3 mode_mcchar::col#1 ] zp ZP_BYTE:280 [ mode_mcchar::$28 ] zp ZP_WORD:137 [ mode_mcchar::ch#2 mode_mcchar::ch#3 mode_mcchar::ch#1 ] zp ZP_BYTE:132 [ mode_mcchar::i#2 mode_mcchar::i#1 ] zp ZP_BYTE:133 [ mode_mcchar::cy#4 mode_mcchar::cy#1 ] Limited combination testing to 10 combinations of 36864 possible. -Uplifting [bitmap_plot] best 3489793 combination reg byte y [ bitmap_plot::y#4 bitmap_plot::y#1 bitmap_plot::y#0 bitmap_plot::y#3 bitmap_plot::y#2 ] reg byte x [ bitmap_plot::x#4 bitmap_plot::x#1 bitmap_plot::x#0 bitmap_plot::x#3 bitmap_plot::x#2 ] zp ZP_WORD:261 [ bitmap_plot::plotter_y#0 ] zp ZP_BYTE:265 [ bitmap_plot::$1 ] zp ZP_WORD:259 [ bitmap_plot::plotter_x#0 ] zp ZP_WORD:263 [ bitmap_plot::$0 ] +Uplifting [bitmap_plot] best 3490593 combination reg byte y [ bitmap_plot::y#4 bitmap_plot::y#1 bitmap_plot::y#0 bitmap_plot::y#3 bitmap_plot::y#2 ] reg byte x [ bitmap_plot::x#4 bitmap_plot::x#1 bitmap_plot::x#0 bitmap_plot::x#3 bitmap_plot::x#2 ] zp ZP_WORD:261 [ bitmap_plot::plotter_y#0 ] zp ZP_BYTE:265 [ bitmap_plot::$1 ] zp ZP_WORD:259 [ bitmap_plot::plotter_x#0 ] zp ZP_WORD:263 [ bitmap_plot::$0 ] Limited combination testing to 10 combinations of 36 possible. -Uplifting [mode_8bppchunkybmm] best 3477493 combination reg byte x [ mode_8bppchunkybmm::gfxbCpuBank#4 mode_8bppchunkybmm::gfxbCpuBank#7 mode_8bppchunkybmm::gfxbCpuBank#8 mode_8bppchunkybmm::gfxbCpuBank#2 ] zp ZP_WORD:10 [ mode_8bppchunkybmm::gfxb#4 mode_8bppchunkybmm::gfxb#3 mode_8bppchunkybmm::gfxb#5 mode_8bppchunkybmm::gfxb#1 ] zp ZP_WORD:185 [ mode_8bppchunkybmm::$23 ] reg byte a [ mode_8bppchunkybmm::c#0 ] zp ZP_WORD:7 [ mode_8bppchunkybmm::x#2 mode_8bppchunkybmm::x#1 ] zp ZP_BYTE:5 [ mode_8bppchunkybmm::i#2 mode_8bppchunkybmm::i#1 ] zp ZP_BYTE:6 [ mode_8bppchunkybmm::y#6 mode_8bppchunkybmm::y#1 ] +Uplifting [mode_8bppchunkybmm] best 3478293 combination reg byte x [ mode_8bppchunkybmm::gfxbCpuBank#4 mode_8bppchunkybmm::gfxbCpuBank#7 mode_8bppchunkybmm::gfxbCpuBank#8 mode_8bppchunkybmm::gfxbCpuBank#2 ] zp ZP_WORD:10 [ mode_8bppchunkybmm::gfxb#4 mode_8bppchunkybmm::gfxb#3 mode_8bppchunkybmm::gfxb#5 mode_8bppchunkybmm::gfxb#1 ] zp ZP_WORD:185 [ mode_8bppchunkybmm::$23 ] reg byte a [ mode_8bppchunkybmm::c#0 ] zp ZP_WORD:7 [ mode_8bppchunkybmm::x#2 mode_8bppchunkybmm::x#1 ] zp ZP_BYTE:5 [ mode_8bppchunkybmm::i#2 mode_8bppchunkybmm::i#1 ] zp ZP_BYTE:6 [ mode_8bppchunkybmm::y#6 mode_8bppchunkybmm::y#1 ] Limited combination testing to 10 combinations of 64 possible. -Uplifting [mode_stdbitmap] best 3465493 combination reg byte a [ mode_stdbitmap::$19 ] reg byte a [ mode_stdbitmap::$22 ] zp ZP_BYTE:247 [ mode_stdbitmap::$23 ] zp ZP_BYTE:93 [ mode_stdbitmap::cx#2 mode_stdbitmap::cx#1 ] zp ZP_BYTE:244 [ mode_stdbitmap::col#0 ] zp ZP_WORD:94 [ mode_stdbitmap::ch#2 mode_stdbitmap::ch#3 mode_stdbitmap::ch#1 ] zp ZP_BYTE:245 [ mode_stdbitmap::col2#0 ] zp ZP_BYTE:91 [ mode_stdbitmap::i#2 mode_stdbitmap::i#1 ] zp ZP_BYTE:92 [ mode_stdbitmap::cy#4 mode_stdbitmap::cy#1 ] zp ZP_BYTE:96 [ mode_stdbitmap::l#2 mode_stdbitmap::l#1 ] +Uplifting [mode_stdbitmap] best 3466293 combination reg byte a [ mode_stdbitmap::$19 ] reg byte a [ mode_stdbitmap::$22 ] zp ZP_BYTE:247 [ mode_stdbitmap::$23 ] zp ZP_BYTE:93 [ mode_stdbitmap::cx#2 mode_stdbitmap::cx#1 ] zp ZP_BYTE:244 [ mode_stdbitmap::col#0 ] zp ZP_WORD:94 [ mode_stdbitmap::ch#2 mode_stdbitmap::ch#3 mode_stdbitmap::ch#1 ] zp ZP_BYTE:245 [ mode_stdbitmap::col2#0 ] zp ZP_BYTE:91 [ mode_stdbitmap::i#2 mode_stdbitmap::i#1 ] zp ZP_BYTE:92 [ mode_stdbitmap::cy#4 mode_stdbitmap::cy#1 ] zp ZP_BYTE:96 [ mode_stdbitmap::l#2 mode_stdbitmap::l#1 ] Limited combination testing to 10 combinations of 13824 possible. -Uplifting [bitmap_line_xdyi] best 3459493 combination zp ZP_BYTE:102 [ 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 ] zp ZP_BYTE:101 [ 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 ] reg byte x [ bitmap_line_xdyi::$6 ] zp ZP_BYTE:100 [ 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 ] zp ZP_BYTE:98 [ bitmap_line_xdyi::xd#5 bitmap_line_xdyi::xd#1 bitmap_line_xdyi::xd#0 ] zp ZP_BYTE:97 [ bitmap_line_xdyi::yd#2 bitmap_line_xdyi::yd#1 bitmap_line_xdyi::yd#0 ] zp ZP_BYTE:99 [ bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x1#1 bitmap_line_xdyi::x1#0 ] +Uplifting [bitmap_line_xdyi] best 3460293 combination zp ZP_BYTE:102 [ 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 ] zp ZP_BYTE:101 [ 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 ] reg byte x [ bitmap_line_xdyi::$6 ] zp ZP_BYTE:100 [ 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 ] zp ZP_BYTE:98 [ bitmap_line_xdyi::xd#5 bitmap_line_xdyi::xd#1 bitmap_line_xdyi::xd#0 ] zp ZP_BYTE:97 [ bitmap_line_xdyi::yd#2 bitmap_line_xdyi::yd#1 bitmap_line_xdyi::yd#0 ] zp ZP_BYTE:99 [ bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x1#1 bitmap_line_xdyi::x1#0 ] Limited combination testing to 10 combinations of 256 possible. -Uplifting [bitmap_line_xdyd] best 3453493 combination zp ZP_BYTE:116 [ 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 ] zp ZP_BYTE:115 [ 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 ] reg byte x [ bitmap_line_xdyd::$6 ] zp ZP_BYTE:114 [ 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 ] zp ZP_BYTE:112 [ bitmap_line_xdyd::xd#5 bitmap_line_xdyd::xd#1 bitmap_line_xdyd::xd#0 ] zp ZP_BYTE:111 [ bitmap_line_xdyd::yd#2 bitmap_line_xdyd::yd#1 bitmap_line_xdyd::yd#0 ] zp ZP_BYTE:113 [ bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x1#1 bitmap_line_xdyd::x1#0 ] +Uplifting [bitmap_line_xdyd] best 3454293 combination zp ZP_BYTE:116 [ 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 ] zp ZP_BYTE:115 [ 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 ] reg byte x [ bitmap_line_xdyd::$6 ] zp ZP_BYTE:114 [ 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 ] zp ZP_BYTE:112 [ bitmap_line_xdyd::xd#5 bitmap_line_xdyd::xd#1 bitmap_line_xdyd::xd#0 ] zp ZP_BYTE:111 [ bitmap_line_xdyd::yd#2 bitmap_line_xdyd::yd#1 bitmap_line_xdyd::yd#0 ] zp ZP_BYTE:113 [ bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x1#1 bitmap_line_xdyd::x1#0 ] Limited combination testing to 10 combinations of 256 possible. -Uplifting [bitmap_line_ydxi] best 3443487 combination zp ZP_BYTE:110 [ 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 ] reg byte x [ bitmap_line_ydxi::x#3 bitmap_line_ydxi::x#5 bitmap_line_ydxi::x#0 bitmap_line_ydxi::x#1 bitmap_line_ydxi::x#6 bitmap_line_ydxi::x#2 ] reg byte a [ bitmap_line_ydxi::$6 ] zp ZP_BYTE:109 [ bitmap_line_ydxi::y#3 bitmap_line_ydxi::y#6 bitmap_line_ydxi::y#0 bitmap_line_ydxi::y#1 bitmap_line_ydxi::y#2 ] zp ZP_BYTE:106 [ bitmap_line_ydxi::yd#5 bitmap_line_ydxi::yd#0 bitmap_line_ydxi::yd#1 ] zp ZP_BYTE:105 [ bitmap_line_ydxi::xd#2 bitmap_line_ydxi::xd#0 bitmap_line_ydxi::xd#1 ] zp ZP_BYTE:107 [ bitmap_line_ydxi::y1#6 bitmap_line_ydxi::y1#0 bitmap_line_ydxi::y1#1 ] +Uplifting [bitmap_line_ydxi] best 3444287 combination zp ZP_BYTE:110 [ 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 ] reg byte x [ bitmap_line_ydxi::x#3 bitmap_line_ydxi::x#5 bitmap_line_ydxi::x#0 bitmap_line_ydxi::x#1 bitmap_line_ydxi::x#6 bitmap_line_ydxi::x#2 ] reg byte a [ bitmap_line_ydxi::$6 ] zp ZP_BYTE:109 [ bitmap_line_ydxi::y#3 bitmap_line_ydxi::y#6 bitmap_line_ydxi::y#0 bitmap_line_ydxi::y#1 bitmap_line_ydxi::y#2 ] zp ZP_BYTE:106 [ bitmap_line_ydxi::yd#5 bitmap_line_ydxi::yd#0 bitmap_line_ydxi::yd#1 ] zp ZP_BYTE:105 [ bitmap_line_ydxi::xd#2 bitmap_line_ydxi::xd#0 bitmap_line_ydxi::xd#1 ] zp ZP_BYTE:107 [ bitmap_line_ydxi::y1#6 bitmap_line_ydxi::y1#0 bitmap_line_ydxi::y1#1 ] Limited combination testing to 10 combinations of 256 possible. -Uplifting [bitmap_line_ydxd] best 3433481 combination zp ZP_BYTE:122 [ 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 ] reg byte x [ 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 ] reg byte a [ bitmap_line_ydxd::$6 ] zp ZP_BYTE:121 [ 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 ZP_BYTE:118 [ bitmap_line_ydxd::yd#5 bitmap_line_ydxd::yd#0 bitmap_line_ydxd::yd#1 ] zp ZP_BYTE:117 [ bitmap_line_ydxd::xd#2 bitmap_line_ydxd::xd#0 bitmap_line_ydxd::xd#1 ] zp ZP_BYTE:119 [ bitmap_line_ydxd::y1#6 bitmap_line_ydxd::y1#0 bitmap_line_ydxd::y1#1 ] +Uplifting [bitmap_line_ydxd] best 3434281 combination zp ZP_BYTE:122 [ 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 ] reg byte x [ 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 ] reg byte a [ bitmap_line_ydxd::$6 ] zp ZP_BYTE:121 [ 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 ZP_BYTE:118 [ bitmap_line_ydxd::yd#5 bitmap_line_ydxd::yd#0 bitmap_line_ydxd::yd#1 ] zp ZP_BYTE:117 [ bitmap_line_ydxd::xd#2 bitmap_line_ydxd::xd#0 bitmap_line_ydxd::xd#1 ] zp ZP_BYTE:119 [ bitmap_line_ydxd::y1#6 bitmap_line_ydxd::y1#0 bitmap_line_ydxd::y1#1 ] Limited combination testing to 10 combinations of 256 possible. -Uplifting [mode_hicolstdchar] best 3421481 combination reg byte a [ mode_hicolstdchar::$24 ] reg byte a [ mode_hicolstdchar::$26 ] zp ZP_BYTE:86 [ mode_hicolstdchar::cx#2 mode_hicolstdchar::cx#1 ] zp ZP_WORD:87 [ mode_hicolstdchar::col#2 mode_hicolstdchar::col#3 mode_hicolstdchar::col#1 ] zp ZP_WORD:89 [ mode_hicolstdchar::ch#2 mode_hicolstdchar::ch#3 mode_hicolstdchar::ch#1 ] zp ZP_BYTE:240 [ mode_hicolstdchar::$25 ] zp ZP_BYTE:242 [ mode_hicolstdchar::v#0 ] zp ZP_BYTE:84 [ mode_hicolstdchar::i#2 mode_hicolstdchar::i#1 ] zp ZP_BYTE:85 [ mode_hicolstdchar::cy#4 mode_hicolstdchar::cy#1 ] +Uplifting [mode_hicolstdchar] best 3422281 combination reg byte a [ mode_hicolstdchar::$24 ] reg byte a [ mode_hicolstdchar::$26 ] zp ZP_BYTE:86 [ mode_hicolstdchar::cx#2 mode_hicolstdchar::cx#1 ] zp ZP_WORD:87 [ mode_hicolstdchar::col#2 mode_hicolstdchar::col#3 mode_hicolstdchar::col#1 ] zp ZP_WORD:89 [ mode_hicolstdchar::ch#2 mode_hicolstdchar::ch#3 mode_hicolstdchar::ch#1 ] zp ZP_BYTE:240 [ mode_hicolstdchar::$25 ] zp ZP_BYTE:242 [ mode_hicolstdchar::v#0 ] zp ZP_BYTE:84 [ mode_hicolstdchar::i#2 mode_hicolstdchar::i#1 ] zp ZP_BYTE:85 [ mode_hicolstdchar::cy#4 mode_hicolstdchar::cy#1 ] Limited combination testing to 10 combinations of 2304 possible. -Uplifting [mode_hicolecmchar] best 3409481 combination reg byte a [ mode_hicolecmchar::$25 ] reg byte a [ mode_hicolecmchar::$27 ] zp ZP_BYTE:79 [ mode_hicolecmchar::cx#2 mode_hicolecmchar::cx#1 ] zp ZP_WORD:80 [ mode_hicolecmchar::col#2 mode_hicolecmchar::col#3 mode_hicolecmchar::col#1 ] zp ZP_WORD:82 [ mode_hicolecmchar::ch#2 mode_hicolecmchar::ch#3 mode_hicolecmchar::ch#1 ] zp ZP_BYTE:236 [ mode_hicolecmchar::$26 ] zp ZP_BYTE:238 [ mode_hicolecmchar::v#0 ] zp ZP_BYTE:77 [ mode_hicolecmchar::i#2 mode_hicolecmchar::i#1 ] zp ZP_BYTE:78 [ mode_hicolecmchar::cy#4 mode_hicolecmchar::cy#1 ] +Uplifting [mode_hicolecmchar] best 3410281 combination reg byte a [ mode_hicolecmchar::$25 ] reg byte a [ mode_hicolecmchar::$27 ] zp ZP_BYTE:79 [ mode_hicolecmchar::cx#2 mode_hicolecmchar::cx#1 ] zp ZP_WORD:80 [ mode_hicolecmchar::col#2 mode_hicolecmchar::col#3 mode_hicolecmchar::col#1 ] zp ZP_WORD:82 [ mode_hicolecmchar::ch#2 mode_hicolecmchar::ch#3 mode_hicolecmchar::ch#1 ] zp ZP_BYTE:236 [ mode_hicolecmchar::$26 ] zp ZP_BYTE:238 [ mode_hicolecmchar::v#0 ] zp ZP_BYTE:77 [ mode_hicolecmchar::i#2 mode_hicolecmchar::i#1 ] zp ZP_BYTE:78 [ mode_hicolecmchar::cy#4 mode_hicolecmchar::cy#1 ] Limited combination testing to 10 combinations of 2304 possible. -Uplifting [mode_hicolmcchar] best 3397481 combination reg byte a [ mode_hicolmcchar::$25 ] reg byte a [ mode_hicolmcchar::$27 ] zp ZP_BYTE:72 [ mode_hicolmcchar::cx#2 mode_hicolmcchar::cx#1 ] zp ZP_WORD:73 [ mode_hicolmcchar::col#2 mode_hicolmcchar::col#3 mode_hicolmcchar::col#1 ] zp ZP_WORD:75 [ mode_hicolmcchar::ch#2 mode_hicolmcchar::ch#3 mode_hicolmcchar::ch#1 ] zp ZP_BYTE:232 [ mode_hicolmcchar::$26 ] zp ZP_BYTE:234 [ mode_hicolmcchar::v#0 ] zp ZP_BYTE:70 [ mode_hicolmcchar::i#2 mode_hicolmcchar::i#1 ] zp ZP_BYTE:71 [ mode_hicolmcchar::cy#4 mode_hicolmcchar::cy#1 ] +Uplifting [mode_hicolmcchar] best 3398281 combination reg byte a [ mode_hicolmcchar::$25 ] reg byte a [ mode_hicolmcchar::$27 ] zp ZP_BYTE:72 [ mode_hicolmcchar::cx#2 mode_hicolmcchar::cx#1 ] zp ZP_WORD:73 [ mode_hicolmcchar::col#2 mode_hicolmcchar::col#3 mode_hicolmcchar::col#1 ] zp ZP_WORD:75 [ mode_hicolmcchar::ch#2 mode_hicolmcchar::ch#3 mode_hicolmcchar::ch#1 ] zp ZP_BYTE:232 [ mode_hicolmcchar::$26 ] zp ZP_BYTE:234 [ mode_hicolmcchar::v#0 ] zp ZP_BYTE:70 [ mode_hicolmcchar::i#2 mode_hicolmcchar::i#1 ] zp ZP_BYTE:71 [ mode_hicolmcchar::cy#4 mode_hicolmcchar::cy#1 ] Limited combination testing to 10 combinations of 2304 possible. -Uplifting [] best 3397481 combination zp ZP_WORD:155 [ print_char_cursor#17 print_char_cursor#19 print_char_cursor#101 print_char_cursor#32 print_char_cursor#1 ] zp ZP_WORD:157 [ print_line_cursor#18 print_line_cursor#17 print_line_cursor#19 ] zp ZP_BYTE:12 [ dtv_control#114 dtv_control#145 dtv_control#17 ] -Uplifting [bitmap_clear] best 3388481 combination zp ZP_WORD:124 [ bitmap_clear::bitmap#2 bitmap_clear::bitmap#3 bitmap_clear::bitmap#5 bitmap_clear::bitmap#1 ] reg byte x [ bitmap_clear::x#2 bitmap_clear::x#1 ] zp ZP_BYTE:123 [ bitmap_clear::y#4 bitmap_clear::y#1 ] zp ZP_WORD:269 [ bitmap_clear::$3 ] -Uplifting [menu] best 3386681 combination reg byte x [ menu::i#2 menu::i#1 ] zp ZP_WORD:3 [ menu::c#2 menu::c#1 ] reg byte a [ menu::$29 ] zp ZP_BYTE:164 [ menu::$33 ] zp ZP_BYTE:166 [ menu::$37 ] zp ZP_BYTE:168 [ menu::$41 ] zp ZP_BYTE:170 [ menu::$45 ] zp ZP_BYTE:172 [ menu::$49 ] zp ZP_BYTE:174 [ menu::$53 ] zp ZP_BYTE:176 [ menu::$57 ] zp ZP_BYTE:178 [ menu::$61 ] zp ZP_BYTE:180 [ menu::$65 ] zp ZP_BYTE:182 [ menu::$69 ] zp ZP_BYTE:184 [ menu::$73 ] +Uplifting [] best 3398281 combination zp ZP_WORD:155 [ print_char_cursor#17 print_char_cursor#19 print_char_cursor#101 print_char_cursor#32 print_char_cursor#1 ] zp ZP_WORD:157 [ print_line_cursor#18 print_line_cursor#17 print_line_cursor#19 ] zp ZP_BYTE:12 [ dtv_control#114 dtv_control#145 dtv_control#17 ] +Uplifting [bitmap_clear] best 3389281 combination zp ZP_WORD:124 [ bitmap_clear::bitmap#2 bitmap_clear::bitmap#3 bitmap_clear::bitmap#5 bitmap_clear::bitmap#1 ] reg byte x [ bitmap_clear::x#2 bitmap_clear::x#1 ] zp ZP_BYTE:123 [ bitmap_clear::y#4 bitmap_clear::y#1 ] zp ZP_WORD:269 [ bitmap_clear::$3 ] +Uplifting [menu] best 3387481 combination reg byte x [ menu::i#2 menu::i#1 ] zp ZP_WORD:3 [ menu::c#2 menu::c#1 ] reg byte a [ menu::$29 ] zp ZP_BYTE:164 [ menu::$33 ] zp ZP_BYTE:166 [ menu::$37 ] zp ZP_BYTE:168 [ menu::$41 ] zp ZP_BYTE:170 [ menu::$45 ] zp ZP_BYTE:172 [ menu::$49 ] zp ZP_BYTE:174 [ menu::$53 ] zp ZP_BYTE:176 [ menu::$57 ] zp ZP_BYTE:178 [ menu::$61 ] zp ZP_BYTE:180 [ menu::$65 ] zp ZP_BYTE:182 [ menu::$69 ] zp ZP_BYTE:184 [ menu::$73 ] Limited combination testing to 10 combinations of 50331648 possible. -Uplifting [dtvSetCpuBankSegment1] best 3385672 combination reg byte a [ dtvSetCpuBankSegment1::cpuBankIdx#3 dtvSetCpuBankSegment1::cpuBankIdx#1 ] -Uplifting [print_str_lines] best 3373672 combination zp ZP_WORD:153 [ print_str_lines::str#3 print_str_lines::str#2 print_str_lines::str#0 ] reg byte a [ print_str_lines::ch#0 ] -Uplifting [bitmap_init] best 3371272 combination zp ZP_WORD:130 [ bitmap_init::yoffs#2 bitmap_init::yoffs#4 bitmap_init::yoffs#1 ] reg byte y [ bitmap_init::bits#3 bitmap_init::bits#4 bitmap_init::bits#1 ] reg byte x [ bitmap_init::x#2 bitmap_init::x#1 ] zp ZP_BYTE:129 [ bitmap_init::y#2 bitmap_init::y#1 ] zp ZP_BYTE:271 [ bitmap_init::$0 ] zp ZP_BYTE:273 [ bitmap_init::$7 ] zp ZP_BYTE:274 [ bitmap_init::$8 ] zp ZP_BYTE:275 [ bitmap_init::$9 ] zp ZP_BYTE:276 [ bitmap_init::$10 ] zp ZP_BYTE:272 [ bitmap_init::$6 ] +Uplifting [dtvSetCpuBankSegment1] best 3386472 combination reg byte a [ dtvSetCpuBankSegment1::cpuBankIdx#3 dtvSetCpuBankSegment1::cpuBankIdx#1 ] +Uplifting [print_str_lines] best 3374472 combination zp ZP_WORD:153 [ print_str_lines::str#3 print_str_lines::str#2 print_str_lines::str#0 ] reg byte a [ print_str_lines::ch#0 ] +Uplifting [bitmap_init] best 3371672 combination zp ZP_WORD:130 [ bitmap_init::yoffs#2 bitmap_init::yoffs#4 bitmap_init::yoffs#1 ] reg byte y [ bitmap_init::bits#3 bitmap_init::bits#4 bitmap_init::bits#1 ] reg byte x [ bitmap_init::x#2 bitmap_init::x#1 ] zp ZP_BYTE:129 [ bitmap_init::y#2 bitmap_init::y#1 ] zp ZP_BYTE:271 [ bitmap_init::$0 ] zp ZP_BYTE:273 [ bitmap_init::$7 ] zp ZP_BYTE:274 [ bitmap_init::$8 ] zp ZP_BYTE:275 [ bitmap_init::$9 ] zp ZP_BYTE:276 [ bitmap_init::$10 ] zp ZP_BYTE:272 [ bitmap_init::$6 ] Limited combination testing to 10 combinations of 138240 possible. -Uplifting [print_cls] best 3371272 combination zp ZP_WORD:159 [ print_cls::sc#2 print_cls::sc#1 ] -Uplifting [bitmap_line] best 3370958 combination reg byte y [ bitmap_line::y1#0 ] zp ZP_BYTE:250 [ bitmap_line::y0#0 ] zp ZP_BYTE:249 [ bitmap_line::x1#0 ] zp ZP_BYTE:248 [ bitmap_line::x0#0 ] zp ZP_BYTE:253 [ bitmap_line::yd#1 ] zp ZP_BYTE:254 [ bitmap_line::yd#0 ] zp ZP_BYTE:256 [ bitmap_line::yd#3 ] zp ZP_BYTE:257 [ bitmap_line::yd#10 ] zp ZP_BYTE:252 [ bitmap_line::xd#1 ] zp ZP_BYTE:255 [ bitmap_line::xd#0 ] +Uplifting [print_cls] best 3371672 combination zp ZP_WORD:159 [ print_cls::sc#2 print_cls::sc#1 ] +Uplifting [bitmap_line] best 3371358 combination reg byte y [ bitmap_line::y1#0 ] zp ZP_BYTE:250 [ bitmap_line::y0#0 ] zp ZP_BYTE:249 [ bitmap_line::x1#0 ] zp ZP_BYTE:248 [ bitmap_line::x0#0 ] zp ZP_BYTE:253 [ bitmap_line::yd#1 ] zp ZP_BYTE:254 [ bitmap_line::yd#0 ] zp ZP_BYTE:256 [ bitmap_line::yd#3 ] zp ZP_BYTE:257 [ bitmap_line::yd#10 ] zp ZP_BYTE:252 [ bitmap_line::xd#1 ] zp ZP_BYTE:255 [ bitmap_line::xd#0 ] Limited combination testing to 10 combinations of 186624 possible. -Uplifting [keyboard_matrix_read] best 3370946 combination reg byte y [ keyboard_matrix_read::rowid#0 ] reg byte a [ keyboard_matrix_read::return#2 ] zp ZP_BYTE:210 [ keyboard_matrix_read::return#0 ] +Uplifting [keyboard_matrix_read] best 3371346 combination reg byte y [ keyboard_matrix_read::rowid#0 ] reg byte a [ keyboard_matrix_read::return#2 ] zp ZP_BYTE:210 [ keyboard_matrix_read::return#0 ] Limited combination testing to 10 combinations of 64 possible. -Uplifting [print_ln] best 3370946 combination -Uplifting [print_set_screen] best 3370946 combination -Uplifting [main] best 3370946 combination +Uplifting [print_ln] best 3371346 combination +Uplifting [print_set_screen] best 3371346 combination +Uplifting [main] best 3371346 combination Attempting to uplift remaining variables inzp ZP_BYTE:29 [ mode_8bpppixelcell::cp#2 mode_8bpppixelcell::cp#1 ] -Uplifting [mode_8bpppixelcell] best 3280946 combination reg byte x [ mode_8bpppixelcell::cp#2 mode_8bpppixelcell::cp#1 ] +Uplifting [mode_8bpppixelcell] best 3281346 combination reg byte x [ mode_8bpppixelcell::cp#2 mode_8bpppixelcell::cp#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:25 [ mode_8bpppixelcell::bits#2 mode_8bpppixelcell::bits#0 mode_8bpppixelcell::bits#1 ] -Uplifting [mode_8bpppixelcell] best 3280946 combination zp ZP_BYTE:25 [ mode_8bpppixelcell::bits#2 mode_8bpppixelcell::bits#0 mode_8bpppixelcell::bits#1 ] +Uplifting [mode_8bpppixelcell] best 3281346 combination zp ZP_BYTE:25 [ mode_8bpppixelcell::bits#2 mode_8bpppixelcell::bits#0 mode_8bpppixelcell::bits#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:28 [ mode_8bpppixelcell::col#2 mode_8bpppixelcell::col#5 mode_8bpppixelcell::col#7 mode_8bpppixelcell::col#1 ] -Uplifting [mode_8bpppixelcell] best 3280946 combination zp ZP_BYTE:28 [ mode_8bpppixelcell::col#2 mode_8bpppixelcell::col#5 mode_8bpppixelcell::col#7 mode_8bpppixelcell::col#1 ] +Uplifting [mode_8bpppixelcell] best 3281346 combination zp ZP_BYTE:28 [ mode_8bpppixelcell::col#2 mode_8bpppixelcell::col#5 mode_8bpppixelcell::col#7 mode_8bpppixelcell::col#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:102 [ 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 ] -Uplifting [bitmap_line_xdyi] best 3280946 combination zp ZP_BYTE:102 [ 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 ] +Uplifting [bitmap_line_xdyi] best 3281346 combination zp ZP_BYTE:102 [ 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 ] Attempting to uplift remaining variables inzp ZP_BYTE:110 [ 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 ] -Uplifting [bitmap_line_ydxi] best 3280946 combination zp ZP_BYTE:110 [ 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 ] +Uplifting [bitmap_line_ydxi] best 3281346 combination zp ZP_BYTE:110 [ 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 ] Attempting to uplift remaining variables inzp ZP_BYTE:116 [ 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 ] -Uplifting [bitmap_line_xdyd] best 3280946 combination zp ZP_BYTE:116 [ 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 ] +Uplifting [bitmap_line_xdyd] best 3281346 combination zp ZP_BYTE:116 [ 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 ] Attempting to uplift remaining variables inzp ZP_BYTE:122 [ 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 ] -Uplifting [bitmap_line_ydxd] best 3280946 combination zp ZP_BYTE:122 [ 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 ] +Uplifting [bitmap_line_ydxd] best 3281346 combination zp ZP_BYTE:122 [ 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 ] Attempting to uplift remaining variables inzp ZP_BYTE:101 [ 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 ] -Uplifting [bitmap_line_xdyi] best 3280946 combination zp ZP_BYTE:101 [ 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 ] +Uplifting [bitmap_line_xdyi] best 3281346 combination zp ZP_BYTE:101 [ 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 ] Attempting to uplift remaining variables inzp ZP_BYTE:115 [ 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 ] -Uplifting [bitmap_line_xdyd] best 3280946 combination zp ZP_BYTE:115 [ 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 ] +Uplifting [bitmap_line_xdyd] best 3281346 combination zp ZP_BYTE:115 [ 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 ] Attempting to uplift remaining variables inzp ZP_BYTE:188 [ keyboard_key_pressed::return#14 ] -Uplifting [keyboard_key_pressed] best 3274946 combination reg byte a [ keyboard_key_pressed::return#14 ] +Uplifting [keyboard_key_pressed] best 3275346 combination reg byte a [ keyboard_key_pressed::return#14 ] Attempting to uplift remaining variables inzp ZP_BYTE:190 [ keyboard_key_pressed::return#15 ] -Uplifting [keyboard_key_pressed] best 3268946 combination reg byte a [ keyboard_key_pressed::return#15 ] +Uplifting [keyboard_key_pressed] best 3269346 combination reg byte a [ keyboard_key_pressed::return#15 ] Attempting to uplift remaining variables inzp ZP_BYTE:191 [ mode_ctrl::$4 ] -Uplifting [mode_ctrl] best 3262946 combination reg byte a [ mode_ctrl::$4 ] +Uplifting [mode_ctrl] best 3263346 combination reg byte a [ mode_ctrl::$4 ] Attempting to uplift remaining variables inzp ZP_BYTE:192 [ keyboard_key_pressed::return#16 ] -Uplifting [keyboard_key_pressed] best 3256946 combination reg byte a [ keyboard_key_pressed::return#16 ] +Uplifting [keyboard_key_pressed] best 3257346 combination reg byte a [ keyboard_key_pressed::return#16 ] Attempting to uplift remaining variables inzp ZP_BYTE:193 [ mode_ctrl::$8 ] -Uplifting [mode_ctrl] best 3250946 combination reg byte a [ mode_ctrl::$8 ] +Uplifting [mode_ctrl] best 3251346 combination reg byte a [ mode_ctrl::$8 ] Attempting to uplift remaining variables inzp ZP_BYTE:194 [ keyboard_key_pressed::return#17 ] -Uplifting [keyboard_key_pressed] best 3244946 combination reg byte a [ keyboard_key_pressed::return#17 ] +Uplifting [keyboard_key_pressed] best 3245346 combination reg byte a [ keyboard_key_pressed::return#17 ] Attempting to uplift remaining variables inzp ZP_BYTE:195 [ mode_ctrl::$12 ] -Uplifting [mode_ctrl] best 3238946 combination reg byte a [ mode_ctrl::$12 ] +Uplifting [mode_ctrl] best 3239346 combination reg byte a [ mode_ctrl::$12 ] Attempting to uplift remaining variables inzp ZP_BYTE:196 [ keyboard_key_pressed::return#18 ] -Uplifting [keyboard_key_pressed] best 3232946 combination reg byte a [ keyboard_key_pressed::return#18 ] +Uplifting [keyboard_key_pressed] best 3233346 combination reg byte a [ keyboard_key_pressed::return#18 ] Attempting to uplift remaining variables inzp ZP_BYTE:197 [ mode_ctrl::$16 ] -Uplifting [mode_ctrl] best 3226946 combination reg byte a [ mode_ctrl::$16 ] +Uplifting [mode_ctrl] best 3227346 combination reg byte a [ mode_ctrl::$16 ] Attempting to uplift remaining variables inzp ZP_BYTE:198 [ keyboard_key_pressed::return#19 ] -Uplifting [keyboard_key_pressed] best 3220946 combination reg byte a [ keyboard_key_pressed::return#19 ] +Uplifting [keyboard_key_pressed] best 3221346 combination reg byte a [ keyboard_key_pressed::return#19 ] Attempting to uplift remaining variables inzp ZP_BYTE:199 [ mode_ctrl::$20 ] -Uplifting [mode_ctrl] best 3214946 combination reg byte a [ mode_ctrl::$20 ] +Uplifting [mode_ctrl] best 3215346 combination reg byte a [ mode_ctrl::$20 ] Attempting to uplift remaining variables inzp ZP_BYTE:200 [ keyboard_key_pressed::return#20 ] -Uplifting [keyboard_key_pressed] best 3208946 combination reg byte a [ keyboard_key_pressed::return#20 ] +Uplifting [keyboard_key_pressed] best 3209346 combination reg byte a [ keyboard_key_pressed::return#20 ] Attempting to uplift remaining variables inzp ZP_BYTE:201 [ mode_ctrl::$24 ] -Uplifting [mode_ctrl] best 3202946 combination reg byte a [ mode_ctrl::$24 ] +Uplifting [mode_ctrl] best 3203346 combination reg byte a [ mode_ctrl::$24 ] Attempting to uplift remaining variables inzp ZP_BYTE:202 [ keyboard_key_pressed::return#21 ] -Uplifting [keyboard_key_pressed] best 3196946 combination reg byte a [ keyboard_key_pressed::return#21 ] +Uplifting [keyboard_key_pressed] best 3197346 combination reg byte a [ keyboard_key_pressed::return#21 ] Attempting to uplift remaining variables inzp ZP_BYTE:203 [ mode_ctrl::$28 ] -Uplifting [mode_ctrl] best 3190946 combination reg byte a [ mode_ctrl::$28 ] +Uplifting [mode_ctrl] best 3191346 combination reg byte a [ mode_ctrl::$28 ] Attempting to uplift remaining variables inzp ZP_BYTE:211 [ mode_8bpppixelcell::$13 ] -Uplifting [mode_8bpppixelcell] best 3184946 combination reg byte a [ mode_8bpppixelcell::$13 ] +Uplifting [mode_8bpppixelcell] best 3185346 combination reg byte a [ mode_8bpppixelcell::$13 ] Attempting to uplift remaining variables inzp ZP_BYTE:213 [ mode_8bpppixelcell::$15 ] -Uplifting [mode_8bpppixelcell] best 3178946 combination reg byte a [ mode_8bpppixelcell::$15 ] +Uplifting [mode_8bpppixelcell] best 3179346 combination reg byte a [ mode_8bpppixelcell::$15 ] Attempting to uplift remaining variables inzp ZP_BYTE:214 [ mode_8bpppixelcell::$16 ] -Uplifting [mode_8bpppixelcell] best 3172946 combination reg byte a [ mode_8bpppixelcell::$16 ] +Uplifting [mode_8bpppixelcell] best 3173346 combination reg byte a [ mode_8bpppixelcell::$16 ] Attempting to uplift remaining variables inzp ZP_BYTE:217 [ mode_sixsfred::$17 ] -Uplifting [mode_sixsfred] best 3166946 combination reg byte a [ mode_sixsfred::$17 ] +Uplifting [mode_sixsfred] best 3167346 combination reg byte a [ mode_sixsfred::$17 ] Attempting to uplift remaining variables inzp ZP_BYTE:218 [ mode_sixsfred::$20 ] -Uplifting [mode_sixsfred] best 3160946 combination reg byte a [ mode_sixsfred::$20 ] +Uplifting [mode_sixsfred] best 3161346 combination reg byte a [ mode_sixsfred::$20 ] Attempting to uplift remaining variables inzp ZP_BYTE:219 [ mode_sixsfred::row#0 ] -Uplifting [mode_sixsfred] best 3156946 combination reg byte a [ mode_sixsfred::row#0 ] +Uplifting [mode_sixsfred] best 3157346 combination reg byte a [ mode_sixsfred::row#0 ] Attempting to uplift remaining variables inzp ZP_BYTE:222 [ mode_twoplanebitmap::$17 ] -Uplifting [mode_twoplanebitmap] best 3150946 combination reg byte a [ mode_twoplanebitmap::$17 ] +Uplifting [mode_twoplanebitmap] best 3151346 combination reg byte a [ mode_twoplanebitmap::$17 ] Attempting to uplift remaining variables inzp ZP_BYTE:223 [ mode_twoplanebitmap::$18 ] -Uplifting [mode_twoplanebitmap] best 3144946 combination reg byte a [ mode_twoplanebitmap::$18 ] +Uplifting [mode_twoplanebitmap] best 3145346 combination reg byte a [ mode_twoplanebitmap::$18 ] Attempting to uplift remaining variables inzp ZP_BYTE:224 [ mode_twoplanebitmap::$21 ] -Uplifting [mode_twoplanebitmap] best 3138946 combination reg byte a [ mode_twoplanebitmap::$21 ] +Uplifting [mode_twoplanebitmap] best 3139346 combination reg byte a [ mode_twoplanebitmap::$21 ] Attempting to uplift remaining variables inzp ZP_BYTE:227 [ mode_sixsfred2::$16 ] -Uplifting [mode_sixsfred2] best 3132946 combination reg byte a [ mode_sixsfred2::$16 ] +Uplifting [mode_sixsfred2] best 3133346 combination reg byte a [ mode_sixsfred2::$16 ] Attempting to uplift remaining variables inzp ZP_BYTE:228 [ mode_sixsfred2::$17 ] -Uplifting [mode_sixsfred2] best 3126946 combination reg byte a [ mode_sixsfred2::$17 ] +Uplifting [mode_sixsfred2] best 3127346 combination reg byte a [ mode_sixsfred2::$17 ] Attempting to uplift remaining variables inzp ZP_BYTE:229 [ mode_sixsfred2::$20 ] -Uplifting [mode_sixsfred2] best 3120946 combination reg byte a [ mode_sixsfred2::$20 ] +Uplifting [mode_sixsfred2] best 3121346 combination reg byte a [ mode_sixsfred2::$20 ] Attempting to uplift remaining variables inzp ZP_BYTE:230 [ mode_sixsfred2::row#0 ] -Uplifting [mode_sixsfred2] best 3116946 combination reg byte a [ mode_sixsfred2::row#0 ] +Uplifting [mode_sixsfred2] best 3117346 combination reg byte a [ mode_sixsfred2::row#0 ] Attempting to uplift remaining variables inzp ZP_BYTE:247 [ mode_stdbitmap::$23 ] -Uplifting [mode_stdbitmap] best 3110946 combination reg byte a [ mode_stdbitmap::$23 ] +Uplifting [mode_stdbitmap] best 3111346 combination reg byte a [ mode_stdbitmap::$23 ] Attempting to uplift remaining variables inzp ZP_BYTE:279 [ mode_mcchar::$27 ] -Uplifting [mode_mcchar] best 3104946 combination reg byte a [ mode_mcchar::$27 ] +Uplifting [mode_mcchar] best 3105346 combination reg byte a [ mode_mcchar::$27 ] Attempting to uplift remaining variables inzp ZP_BYTE:281 [ mode_mcchar::$29 ] -Uplifting [mode_mcchar] best 3098946 combination reg byte a [ mode_mcchar::$29 ] +Uplifting [mode_mcchar] best 3099346 combination reg byte a [ mode_mcchar::$29 ] Attempting to uplift remaining variables inzp ZP_BYTE:282 [ mode_mcchar::$30 ] -Uplifting [mode_mcchar] best 3092946 combination reg byte a [ mode_mcchar::$30 ] +Uplifting [mode_mcchar] best 3093346 combination reg byte a [ mode_mcchar::$30 ] Attempting to uplift remaining variables inzp ZP_BYTE:285 [ mode_ecmchar::$27 ] -Uplifting [mode_ecmchar] best 3086946 combination reg byte a [ mode_ecmchar::$27 ] +Uplifting [mode_ecmchar] best 3087346 combination reg byte a [ mode_ecmchar::$27 ] Attempting to uplift remaining variables inzp ZP_BYTE:287 [ mode_ecmchar::$29 ] -Uplifting [mode_ecmchar] best 3080946 combination reg byte a [ mode_ecmchar::$29 ] +Uplifting [mode_ecmchar] best 3081346 combination reg byte a [ mode_ecmchar::$29 ] Attempting to uplift remaining variables inzp ZP_BYTE:288 [ mode_ecmchar::$30 ] -Uplifting [mode_ecmchar] best 3074946 combination reg byte a [ mode_ecmchar::$30 ] +Uplifting [mode_ecmchar] best 3075346 combination reg byte a [ mode_ecmchar::$30 ] Attempting to uplift remaining variables inzp ZP_BYTE:291 [ mode_stdchar::$26 ] -Uplifting [mode_stdchar] best 3068946 combination reg byte a [ mode_stdchar::$26 ] +Uplifting [mode_stdchar] best 3069346 combination reg byte a [ mode_stdchar::$26 ] Attempting to uplift remaining variables inzp ZP_BYTE:293 [ mode_stdchar::$28 ] -Uplifting [mode_stdchar] best 3062946 combination reg byte a [ mode_stdchar::$28 ] +Uplifting [mode_stdchar] best 3063346 combination reg byte a [ mode_stdchar::$28 ] Attempting to uplift remaining variables inzp ZP_BYTE:294 [ mode_stdchar::$29 ] -Uplifting [mode_stdchar] best 3056946 combination reg byte a [ mode_stdchar::$29 ] +Uplifting [mode_stdchar] best 3057346 combination reg byte a [ mode_stdchar::$29 ] Attempting to uplift remaining variables inzp ZP_BYTE:18 [ mode_8bpppixelcell::ax#2 mode_8bpppixelcell::ax#1 ] -Uplifting [mode_8bpppixelcell] best 3046946 combination reg byte x [ mode_8bpppixelcell::ax#2 mode_8bpppixelcell::ax#1 ] +Uplifting [mode_8bpppixelcell] best 3047346 combination reg byte x [ mode_8bpppixelcell::ax#2 mode_8bpppixelcell::ax#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:46 [ mode_twoplanebitmap::cx#2 mode_twoplanebitmap::cx#1 ] -Uplifting [mode_twoplanebitmap] best 3036946 combination reg byte x [ mode_twoplanebitmap::cx#2 mode_twoplanebitmap::cx#1 ] +Uplifting [mode_twoplanebitmap] best 3037346 combination reg byte x [ mode_twoplanebitmap::cx#2 mode_twoplanebitmap::cx#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:59 [ mode_sixsfred2::cx#2 mode_sixsfred2::cx#1 ] -Uplifting [mode_sixsfred2] best 3026946 combination reg byte x [ mode_sixsfred2::cx#2 mode_sixsfred2::cx#1 ] +Uplifting [mode_sixsfred2] best 3027346 combination reg byte x [ mode_sixsfred2::cx#2 mode_sixsfred2::cx#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:39 [ mode_sixsfred::ax#2 mode_sixsfred::ax#1 ] -Uplifting [mode_sixsfred] best 3017946 combination reg byte x [ mode_sixsfred::ax#2 mode_sixsfred::ax#1 ] +Uplifting [mode_sixsfred] best 3018346 combination reg byte x [ mode_sixsfred::ax#2 mode_sixsfred::ax#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:65 [ mode_sixsfred2::ax#2 mode_sixsfred2::ax#1 ] -Uplifting [mode_sixsfred2] best 3008946 combination reg byte x [ mode_sixsfred2::ax#2 mode_sixsfred2::ax#1 ] +Uplifting [mode_sixsfred2] best 3009346 combination reg byte x [ mode_sixsfred2::ax#2 mode_sixsfred2::ax#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:93 [ mode_stdbitmap::cx#2 mode_stdbitmap::cx#1 ] -Uplifting [mode_stdbitmap] best 2998946 combination reg byte x [ mode_stdbitmap::cx#2 mode_stdbitmap::cx#1 ] +Uplifting [mode_stdbitmap] best 2999346 combination reg byte x [ mode_stdbitmap::cx#2 mode_stdbitmap::cx#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:134 [ mode_mcchar::cx#2 mode_mcchar::cx#1 ] -Uplifting [mode_mcchar] best 2987946 combination reg byte x [ mode_mcchar::cx#2 mode_mcchar::cx#1 ] +Uplifting [mode_mcchar] best 2988346 combination reg byte x [ mode_mcchar::cx#2 mode_mcchar::cx#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:141 [ mode_ecmchar::cx#2 mode_ecmchar::cx#1 ] -Uplifting [mode_ecmchar] best 2976946 combination reg byte x [ mode_ecmchar::cx#2 mode_ecmchar::cx#1 ] +Uplifting [mode_ecmchar] best 2977346 combination reg byte x [ mode_ecmchar::cx#2 mode_ecmchar::cx#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:148 [ mode_stdchar::cx#2 mode_stdchar::cx#1 ] -Uplifting [mode_stdchar] best 2965946 combination reg byte x [ mode_stdchar::cx#2 mode_stdchar::cx#1 ] +Uplifting [mode_stdchar] best 2966346 combination reg byte x [ mode_stdchar::cx#2 mode_stdchar::cx#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:72 [ mode_hicolmcchar::cx#2 mode_hicolmcchar::cx#1 ] -Uplifting [mode_hicolmcchar] best 2955946 combination reg byte x [ mode_hicolmcchar::cx#2 mode_hicolmcchar::cx#1 ] +Uplifting [mode_hicolmcchar] best 2956346 combination reg byte x [ mode_hicolmcchar::cx#2 mode_hicolmcchar::cx#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:79 [ mode_hicolecmchar::cx#2 mode_hicolecmchar::cx#1 ] -Uplifting [mode_hicolecmchar] best 2945946 combination reg byte x [ mode_hicolecmchar::cx#2 mode_hicolecmchar::cx#1 ] +Uplifting [mode_hicolecmchar] best 2946346 combination reg byte x [ mode_hicolecmchar::cx#2 mode_hicolecmchar::cx#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:86 [ mode_hicolstdchar::cx#2 mode_hicolstdchar::cx#1 ] -Uplifting [mode_hicolstdchar] best 2935946 combination reg byte x [ mode_hicolstdchar::cx#2 mode_hicolstdchar::cx#1 ] +Uplifting [mode_hicolstdchar] best 2936346 combination reg byte x [ mode_hicolstdchar::cx#2 mode_hicolstdchar::cx#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:52 [ mode_twoplanebitmap::ax#2 mode_twoplanebitmap::ax#1 ] -Uplifting [mode_twoplanebitmap] best 2926946 combination reg byte x [ mode_twoplanebitmap::ax#2 mode_twoplanebitmap::ax#1 ] +Uplifting [mode_twoplanebitmap] best 2927346 combination reg byte x [ mode_twoplanebitmap::ax#2 mode_twoplanebitmap::ax#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:24 [ mode_8bpppixelcell::cr#6 mode_8bpppixelcell::cr#1 ] -Uplifting [mode_8bpppixelcell] best 2926946 combination zp ZP_BYTE:24 [ mode_8bpppixelcell::cr#6 mode_8bpppixelcell::cr#1 ] +Uplifting [mode_8bpppixelcell] best 2927346 combination zp ZP_BYTE:24 [ mode_8bpppixelcell::cr#6 mode_8bpppixelcell::cr#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:244 [ mode_stdbitmap::col#0 ] -Uplifting [mode_stdbitmap] best 2925946 combination reg byte y [ mode_stdbitmap::col#0 ] +Uplifting [mode_stdbitmap] best 2926346 combination reg byte y [ mode_stdbitmap::col#0 ] Attempting to uplift remaining variables inzp ZP_BYTE:100 [ 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 ] -Uplifting [bitmap_line_xdyi] best 2925946 combination zp ZP_BYTE:100 [ 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 ] +Uplifting [bitmap_line_xdyi] best 2926346 combination zp ZP_BYTE:100 [ 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 ] Attempting to uplift remaining variables inzp ZP_BYTE:109 [ bitmap_line_ydxi::y#3 bitmap_line_ydxi::y#6 bitmap_line_ydxi::y#0 bitmap_line_ydxi::y#1 bitmap_line_ydxi::y#2 ] -Uplifting [bitmap_line_ydxi] best 2925946 combination zp ZP_BYTE:109 [ bitmap_line_ydxi::y#3 bitmap_line_ydxi::y#6 bitmap_line_ydxi::y#0 bitmap_line_ydxi::y#1 bitmap_line_ydxi::y#2 ] +Uplifting [bitmap_line_ydxi] best 2926346 combination zp ZP_BYTE:109 [ bitmap_line_ydxi::y#3 bitmap_line_ydxi::y#6 bitmap_line_ydxi::y#0 bitmap_line_ydxi::y#1 bitmap_line_ydxi::y#2 ] Attempting to uplift remaining variables inzp ZP_BYTE:114 [ 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 ] -Uplifting [bitmap_line_xdyd] best 2925946 combination zp ZP_BYTE:114 [ 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 ] +Uplifting [bitmap_line_xdyd] best 2926346 combination zp ZP_BYTE:114 [ 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 ] Attempting to uplift remaining variables inzp ZP_BYTE:121 [ 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 ] -Uplifting [bitmap_line_ydxd] best 2925946 combination zp ZP_BYTE:121 [ 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 ] +Uplifting [bitmap_line_ydxd] best 2926346 combination zp ZP_BYTE:121 [ 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 ] Attempting to uplift remaining variables inzp ZP_BYTE:212 [ mode_8bpppixelcell::$14 ] -Uplifting [mode_8bpppixelcell] best 2925946 combination zp ZP_BYTE:212 [ mode_8bpppixelcell::$14 ] +Uplifting [mode_8bpppixelcell] best 2926346 combination zp ZP_BYTE:212 [ mode_8bpppixelcell::$14 ] Attempting to uplift remaining variables inzp ZP_BYTE:221 [ mode_twoplanebitmap::$16 ] -Uplifting [mode_twoplanebitmap] best 2925946 combination zp ZP_BYTE:221 [ mode_twoplanebitmap::$16 ] +Uplifting [mode_twoplanebitmap] best 2926346 combination zp ZP_BYTE:221 [ mode_twoplanebitmap::$16 ] Attempting to uplift remaining variables inzp ZP_BYTE:226 [ mode_sixsfred2::$15 ] -Uplifting [mode_sixsfred2] best 2925946 combination zp ZP_BYTE:226 [ mode_sixsfred2::$15 ] +Uplifting [mode_sixsfred2] best 2926346 combination zp ZP_BYTE:226 [ mode_sixsfred2::$15 ] Attempting to uplift remaining variables inzp ZP_BYTE:232 [ mode_hicolmcchar::$26 ] -Uplifting [mode_hicolmcchar] best 2925946 combination zp ZP_BYTE:232 [ mode_hicolmcchar::$26 ] +Uplifting [mode_hicolmcchar] best 2926346 combination zp ZP_BYTE:232 [ mode_hicolmcchar::$26 ] Attempting to uplift remaining variables inzp ZP_BYTE:234 [ mode_hicolmcchar::v#0 ] -Uplifting [mode_hicolmcchar] best 2916946 combination reg byte a [ mode_hicolmcchar::v#0 ] +Uplifting [mode_hicolmcchar] best 2917346 combination reg byte a [ mode_hicolmcchar::v#0 ] Attempting to uplift remaining variables inzp ZP_BYTE:236 [ mode_hicolecmchar::$26 ] -Uplifting [mode_hicolecmchar] best 2916946 combination zp ZP_BYTE:236 [ mode_hicolecmchar::$26 ] +Uplifting [mode_hicolecmchar] best 2917346 combination zp ZP_BYTE:236 [ mode_hicolecmchar::$26 ] Attempting to uplift remaining variables inzp ZP_BYTE:238 [ mode_hicolecmchar::v#0 ] -Uplifting [mode_hicolecmchar] best 2907946 combination reg byte a [ mode_hicolecmchar::v#0 ] +Uplifting [mode_hicolecmchar] best 2908346 combination reg byte a [ mode_hicolecmchar::v#0 ] Attempting to uplift remaining variables inzp ZP_BYTE:240 [ mode_hicolstdchar::$25 ] -Uplifting [mode_hicolstdchar] best 2907946 combination zp ZP_BYTE:240 [ mode_hicolstdchar::$25 ] +Uplifting [mode_hicolstdchar] best 2908346 combination zp ZP_BYTE:240 [ mode_hicolstdchar::$25 ] Attempting to uplift remaining variables inzp ZP_BYTE:242 [ mode_hicolstdchar::v#0 ] -Uplifting [mode_hicolstdchar] best 2898946 combination reg byte a [ mode_hicolstdchar::v#0 ] +Uplifting [mode_hicolstdchar] best 2899346 combination reg byte a [ mode_hicolstdchar::v#0 ] Attempting to uplift remaining variables inzp ZP_BYTE:245 [ mode_stdbitmap::col2#0 ] -Uplifting [mode_stdbitmap] best 2898946 combination zp ZP_BYTE:245 [ mode_stdbitmap::col2#0 ] +Uplifting [mode_stdbitmap] best 2899346 combination zp ZP_BYTE:245 [ mode_stdbitmap::col2#0 ] Attempting to uplift remaining variables inzp ZP_BYTE:280 [ mode_mcchar::$28 ] -Uplifting [mode_mcchar] best 2898946 combination zp ZP_BYTE:280 [ mode_mcchar::$28 ] +Uplifting [mode_mcchar] best 2899346 combination zp ZP_BYTE:280 [ mode_mcchar::$28 ] Attempting to uplift remaining variables inzp ZP_BYTE:286 [ mode_ecmchar::$28 ] -Uplifting [mode_ecmchar] best 2898946 combination zp ZP_BYTE:286 [ mode_ecmchar::$28 ] +Uplifting [mode_ecmchar] best 2899346 combination zp ZP_BYTE:286 [ mode_ecmchar::$28 ] Attempting to uplift remaining variables inzp ZP_BYTE:292 [ mode_stdchar::$27 ] -Uplifting [mode_stdchar] best 2898946 combination zp ZP_BYTE:292 [ mode_stdchar::$27 ] +Uplifting [mode_stdchar] best 2899346 combination zp ZP_BYTE:292 [ mode_stdchar::$27 ] Attempting to uplift remaining variables inzp ZP_BYTE:209 [ keyboard_key_pressed::return#0 ] -Uplifting [keyboard_key_pressed] best 2871343 combination reg byte a [ keyboard_key_pressed::return#0 ] +Uplifting [keyboard_key_pressed] best 2871743 combination reg byte a [ keyboard_key_pressed::return#0 ] Attempting to uplift remaining variables inzp ZP_BYTE:5 [ mode_8bppchunkybmm::i#2 mode_8bppchunkybmm::i#1 ] -Uplifting [mode_8bppchunkybmm] best 2870143 combination reg byte x [ mode_8bppchunkybmm::i#2 mode_8bppchunkybmm::i#1 ] +Uplifting [mode_8bppchunkybmm] best 2870543 combination reg byte x [ mode_8bppchunkybmm::i#2 mode_8bppchunkybmm::i#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:16 [ mode_8bpppixelcell::i#2 mode_8bpppixelcell::i#1 ] -Uplifting [mode_8bpppixelcell] best 2868943 combination reg byte x [ mode_8bpppixelcell::i#2 mode_8bpppixelcell::i#1 ] +Uplifting [mode_8bpppixelcell] best 2869343 combination reg byte x [ mode_8bpppixelcell::i#2 mode_8bpppixelcell::i#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:31 [ mode_sixsfred::i#2 mode_sixsfred::i#1 ] -Uplifting [mode_sixsfred] best 2867743 combination reg byte x [ mode_sixsfred::i#2 mode_sixsfred::i#1 ] +Uplifting [mode_sixsfred] best 2868143 combination reg byte x [ mode_sixsfred::i#2 mode_sixsfred::i#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:44 [ mode_twoplanebitmap::i#2 mode_twoplanebitmap::i#1 ] -Uplifting [mode_twoplanebitmap] best 2866543 combination reg byte x [ mode_twoplanebitmap::i#2 mode_twoplanebitmap::i#1 ] +Uplifting [mode_twoplanebitmap] best 2866943 combination reg byte x [ mode_twoplanebitmap::i#2 mode_twoplanebitmap::i#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:57 [ mode_sixsfred2::i#2 mode_sixsfred2::i#1 ] -Uplifting [mode_sixsfred2] best 2865343 combination reg byte x [ mode_sixsfred2::i#2 mode_sixsfred2::i#1 ] +Uplifting [mode_sixsfred2] best 2865743 combination reg byte x [ mode_sixsfred2::i#2 mode_sixsfred2::i#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:70 [ mode_hicolmcchar::i#2 mode_hicolmcchar::i#1 ] -Uplifting [mode_hicolmcchar] best 2864143 combination reg byte x [ mode_hicolmcchar::i#2 mode_hicolmcchar::i#1 ] +Uplifting [mode_hicolmcchar] best 2864543 combination reg byte x [ mode_hicolmcchar::i#2 mode_hicolmcchar::i#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:77 [ mode_hicolecmchar::i#2 mode_hicolecmchar::i#1 ] -Uplifting [mode_hicolecmchar] best 2862943 combination reg byte x [ mode_hicolecmchar::i#2 mode_hicolecmchar::i#1 ] +Uplifting [mode_hicolecmchar] best 2863343 combination reg byte x [ mode_hicolecmchar::i#2 mode_hicolecmchar::i#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:84 [ mode_hicolstdchar::i#2 mode_hicolstdchar::i#1 ] -Uplifting [mode_hicolstdchar] best 2861743 combination reg byte x [ mode_hicolstdchar::i#2 mode_hicolstdchar::i#1 ] +Uplifting [mode_hicolstdchar] best 2862143 combination reg byte x [ mode_hicolstdchar::i#2 mode_hicolstdchar::i#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:91 [ mode_stdbitmap::i#2 mode_stdbitmap::i#1 ] -Uplifting [mode_stdbitmap] best 2860543 combination reg byte x [ mode_stdbitmap::i#2 mode_stdbitmap::i#1 ] +Uplifting [mode_stdbitmap] best 2860943 combination reg byte x [ mode_stdbitmap::i#2 mode_stdbitmap::i#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:132 [ mode_mcchar::i#2 mode_mcchar::i#1 ] -Uplifting [mode_mcchar] best 2859343 combination reg byte x [ mode_mcchar::i#2 mode_mcchar::i#1 ] +Uplifting [mode_mcchar] best 2859743 combination reg byte x [ mode_mcchar::i#2 mode_mcchar::i#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:139 [ mode_ecmchar::i#2 mode_ecmchar::i#1 ] -Uplifting [mode_ecmchar] best 2858143 combination reg byte x [ mode_ecmchar::i#2 mode_ecmchar::i#1 ] +Uplifting [mode_ecmchar] best 2858543 combination reg byte x [ mode_ecmchar::i#2 mode_ecmchar::i#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:146 [ mode_stdchar::i#2 mode_stdchar::i#1 ] -Uplifting [mode_stdchar] best 2856943 combination reg byte x [ mode_stdchar::i#2 mode_stdchar::i#1 ] +Uplifting [mode_stdchar] best 2857343 combination reg byte x [ mode_stdchar::i#2 mode_stdchar::i#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:133 [ mode_mcchar::cy#4 mode_mcchar::cy#1 ] -Uplifting [mode_mcchar] best 2856943 combination zp ZP_BYTE:133 [ mode_mcchar::cy#4 mode_mcchar::cy#1 ] +Uplifting [mode_mcchar] best 2857343 combination zp ZP_BYTE:133 [ mode_mcchar::cy#4 mode_mcchar::cy#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:140 [ mode_ecmchar::cy#4 mode_ecmchar::cy#1 ] -Uplifting [mode_ecmchar] best 2856943 combination zp ZP_BYTE:140 [ mode_ecmchar::cy#4 mode_ecmchar::cy#1 ] +Uplifting [mode_ecmchar] best 2857343 combination zp ZP_BYTE:140 [ mode_ecmchar::cy#4 mode_ecmchar::cy#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:147 [ mode_stdchar::cy#4 mode_stdchar::cy#1 ] -Uplifting [mode_stdchar] best 2856943 combination zp ZP_BYTE:147 [ mode_stdchar::cy#4 mode_stdchar::cy#1 ] +Uplifting [mode_stdchar] best 2857343 combination zp ZP_BYTE:147 [ mode_stdchar::cy#4 mode_stdchar::cy#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:32 [ mode_sixsfred::cy#4 mode_sixsfred::cy#1 ] -Uplifting [mode_sixsfred] best 2856943 combination zp ZP_BYTE:32 [ mode_sixsfred::cy#4 mode_sixsfred::cy#1 ] +Uplifting [mode_sixsfred] best 2857343 combination zp ZP_BYTE:32 [ mode_sixsfred::cy#4 mode_sixsfred::cy#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:36 [ mode_sixsfred::ay#4 mode_sixsfred::ay#1 ] -Uplifting [mode_sixsfred] best 2856943 combination zp ZP_BYTE:36 [ mode_sixsfred::ay#4 mode_sixsfred::ay#1 ] +Uplifting [mode_sixsfred] best 2857343 combination zp ZP_BYTE:36 [ mode_sixsfred::ay#4 mode_sixsfred::ay#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:62 [ mode_sixsfred2::ay#4 mode_sixsfred2::ay#1 ] -Uplifting [mode_sixsfred2] best 2856943 combination zp ZP_BYTE:62 [ mode_sixsfred2::ay#4 mode_sixsfred2::ay#1 ] +Uplifting [mode_sixsfred2] best 2857343 combination zp ZP_BYTE:62 [ mode_sixsfred2::ay#4 mode_sixsfred2::ay#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:17 [ mode_8bpppixelcell::ay#4 mode_8bpppixelcell::ay#1 ] -Uplifting [mode_8bpppixelcell] best 2856943 combination zp ZP_BYTE:17 [ mode_8bpppixelcell::ay#4 mode_8bpppixelcell::ay#1 ] +Uplifting [mode_8bpppixelcell] best 2857343 combination zp ZP_BYTE:17 [ mode_8bpppixelcell::ay#4 mode_8bpppixelcell::ay#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:45 [ mode_twoplanebitmap::cy#4 mode_twoplanebitmap::cy#1 ] -Uplifting [mode_twoplanebitmap] best 2856943 combination zp ZP_BYTE:45 [ mode_twoplanebitmap::cy#4 mode_twoplanebitmap::cy#1 ] +Uplifting [mode_twoplanebitmap] best 2857343 combination zp ZP_BYTE:45 [ mode_twoplanebitmap::cy#4 mode_twoplanebitmap::cy#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:58 [ mode_sixsfred2::cy#4 mode_sixsfred2::cy#1 ] -Uplifting [mode_sixsfred2] best 2856943 combination zp ZP_BYTE:58 [ mode_sixsfred2::cy#4 mode_sixsfred2::cy#1 ] +Uplifting [mode_sixsfred2] best 2857343 combination zp ZP_BYTE:58 [ mode_sixsfred2::cy#4 mode_sixsfred2::cy#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:49 [ mode_twoplanebitmap::ay#4 mode_twoplanebitmap::ay#1 ] -Uplifting [mode_twoplanebitmap] best 2856943 combination zp ZP_BYTE:49 [ mode_twoplanebitmap::ay#4 mode_twoplanebitmap::ay#1 ] +Uplifting [mode_twoplanebitmap] best 2857343 combination zp ZP_BYTE:49 [ mode_twoplanebitmap::ay#4 mode_twoplanebitmap::ay#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:92 [ mode_stdbitmap::cy#4 mode_stdbitmap::cy#1 ] -Uplifting [mode_stdbitmap] best 2856943 combination zp ZP_BYTE:92 [ mode_stdbitmap::cy#4 mode_stdbitmap::cy#1 ] +Uplifting [mode_stdbitmap] best 2857343 combination zp ZP_BYTE:92 [ mode_stdbitmap::cy#4 mode_stdbitmap::cy#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:96 [ mode_stdbitmap::l#2 mode_stdbitmap::l#1 ] -Uplifting [mode_stdbitmap] best 2856943 combination zp ZP_BYTE:96 [ mode_stdbitmap::l#2 mode_stdbitmap::l#1 ] +Uplifting [mode_stdbitmap] best 2857343 combination zp ZP_BYTE:96 [ mode_stdbitmap::l#2 mode_stdbitmap::l#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:71 [ mode_hicolmcchar::cy#4 mode_hicolmcchar::cy#1 ] -Uplifting [mode_hicolmcchar] best 2856943 combination zp ZP_BYTE:71 [ mode_hicolmcchar::cy#4 mode_hicolmcchar::cy#1 ] +Uplifting [mode_hicolmcchar] best 2857343 combination zp ZP_BYTE:71 [ mode_hicolmcchar::cy#4 mode_hicolmcchar::cy#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:78 [ mode_hicolecmchar::cy#4 mode_hicolecmchar::cy#1 ] -Uplifting [mode_hicolecmchar] best 2856943 combination zp ZP_BYTE:78 [ mode_hicolecmchar::cy#4 mode_hicolecmchar::cy#1 ] +Uplifting [mode_hicolecmchar] best 2857343 combination zp ZP_BYTE:78 [ mode_hicolecmchar::cy#4 mode_hicolecmchar::cy#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:85 [ mode_hicolstdchar::cy#4 mode_hicolstdchar::cy#1 ] -Uplifting [mode_hicolstdchar] best 2856943 combination zp ZP_BYTE:85 [ mode_hicolstdchar::cy#4 mode_hicolstdchar::cy#1 ] +Uplifting [mode_hicolstdchar] best 2857343 combination zp ZP_BYTE:85 [ mode_hicolstdchar::cy#4 mode_hicolstdchar::cy#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:6 [ mode_8bppchunkybmm::y#6 mode_8bppchunkybmm::y#1 ] -Uplifting [mode_8bppchunkybmm] best 2856943 combination zp ZP_BYTE:6 [ mode_8bppchunkybmm::y#6 mode_8bppchunkybmm::y#1 ] +Uplifting [mode_8bppchunkybmm] best 2857343 combination zp ZP_BYTE:6 [ mode_8bppchunkybmm::y#6 mode_8bppchunkybmm::y#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:129 [ bitmap_init::y#2 bitmap_init::y#1 ] -Uplifting [bitmap_init] best 2855443 combination reg byte x [ bitmap_init::y#2 bitmap_init::y#1 ] +Uplifting [bitmap_init] best 2855643 combination reg byte x [ bitmap_init::y#2 bitmap_init::y#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:161 [ keyboard_key_pressed::return#2 ] -Uplifting [keyboard_key_pressed] best 2854843 combination reg byte a [ keyboard_key_pressed::return#2 ] +Uplifting [keyboard_key_pressed] best 2855043 combination reg byte a [ keyboard_key_pressed::return#2 ] Attempting to uplift remaining variables inzp ZP_BYTE:163 [ keyboard_key_pressed::return#24 ] -Uplifting [keyboard_key_pressed] best 2854243 combination reg byte a [ keyboard_key_pressed::return#24 ] +Uplifting [keyboard_key_pressed] best 2854443 combination reg byte a [ keyboard_key_pressed::return#24 ] Attempting to uplift remaining variables inzp ZP_BYTE:164 [ menu::$33 ] -Uplifting [menu] best 2853643 combination reg byte a [ menu::$33 ] +Uplifting [menu] best 2853843 combination reg byte a [ menu::$33 ] Attempting to uplift remaining variables inzp ZP_BYTE:165 [ keyboard_key_pressed::return#25 ] -Uplifting [keyboard_key_pressed] best 2853043 combination reg byte a [ keyboard_key_pressed::return#25 ] +Uplifting [keyboard_key_pressed] best 2853243 combination reg byte a [ keyboard_key_pressed::return#25 ] Attempting to uplift remaining variables inzp ZP_BYTE:166 [ menu::$37 ] -Uplifting [menu] best 2852443 combination reg byte a [ menu::$37 ] +Uplifting [menu] best 2852643 combination reg byte a [ menu::$37 ] Attempting to uplift remaining variables inzp ZP_BYTE:167 [ keyboard_key_pressed::return#26 ] -Uplifting [keyboard_key_pressed] best 2851843 combination reg byte a [ keyboard_key_pressed::return#26 ] +Uplifting [keyboard_key_pressed] best 2852043 combination reg byte a [ keyboard_key_pressed::return#26 ] Attempting to uplift remaining variables inzp ZP_BYTE:168 [ menu::$41 ] -Uplifting [menu] best 2851243 combination reg byte a [ menu::$41 ] +Uplifting [menu] best 2851443 combination reg byte a [ menu::$41 ] Attempting to uplift remaining variables inzp ZP_BYTE:169 [ keyboard_key_pressed::return#27 ] -Uplifting [keyboard_key_pressed] best 2850643 combination reg byte a [ keyboard_key_pressed::return#27 ] +Uplifting [keyboard_key_pressed] best 2850843 combination reg byte a [ keyboard_key_pressed::return#27 ] Attempting to uplift remaining variables inzp ZP_BYTE:170 [ menu::$45 ] -Uplifting [menu] best 2850043 combination reg byte a [ menu::$45 ] +Uplifting [menu] best 2850243 combination reg byte a [ menu::$45 ] Attempting to uplift remaining variables inzp ZP_BYTE:171 [ keyboard_key_pressed::return#28 ] -Uplifting [keyboard_key_pressed] best 2849443 combination reg byte a [ keyboard_key_pressed::return#28 ] +Uplifting [keyboard_key_pressed] best 2849643 combination reg byte a [ keyboard_key_pressed::return#28 ] Attempting to uplift remaining variables inzp ZP_BYTE:172 [ menu::$49 ] -Uplifting [menu] best 2848843 combination reg byte a [ menu::$49 ] +Uplifting [menu] best 2849043 combination reg byte a [ menu::$49 ] Attempting to uplift remaining variables inzp ZP_BYTE:173 [ keyboard_key_pressed::return#29 ] -Uplifting [keyboard_key_pressed] best 2848243 combination reg byte a [ keyboard_key_pressed::return#29 ] +Uplifting [keyboard_key_pressed] best 2848443 combination reg byte a [ keyboard_key_pressed::return#29 ] Attempting to uplift remaining variables inzp ZP_BYTE:174 [ menu::$53 ] -Uplifting [menu] best 2847643 combination reg byte a [ menu::$53 ] +Uplifting [menu] best 2847843 combination reg byte a [ menu::$53 ] Attempting to uplift remaining variables inzp ZP_BYTE:175 [ keyboard_key_pressed::return#30 ] -Uplifting [keyboard_key_pressed] best 2847043 combination reg byte a [ keyboard_key_pressed::return#30 ] +Uplifting [keyboard_key_pressed] best 2847243 combination reg byte a [ keyboard_key_pressed::return#30 ] Attempting to uplift remaining variables inzp ZP_BYTE:176 [ menu::$57 ] -Uplifting [menu] best 2846443 combination reg byte a [ menu::$57 ] +Uplifting [menu] best 2846643 combination reg byte a [ menu::$57 ] Attempting to uplift remaining variables inzp ZP_BYTE:177 [ keyboard_key_pressed::return#10 ] -Uplifting [keyboard_key_pressed] best 2845843 combination reg byte a [ keyboard_key_pressed::return#10 ] +Uplifting [keyboard_key_pressed] best 2846043 combination reg byte a [ keyboard_key_pressed::return#10 ] Attempting to uplift remaining variables inzp ZP_BYTE:178 [ menu::$61 ] -Uplifting [menu] best 2845243 combination reg byte a [ menu::$61 ] +Uplifting [menu] best 2845443 combination reg byte a [ menu::$61 ] Attempting to uplift remaining variables inzp ZP_BYTE:179 [ keyboard_key_pressed::return#11 ] -Uplifting [keyboard_key_pressed] best 2844643 combination reg byte a [ keyboard_key_pressed::return#11 ] +Uplifting [keyboard_key_pressed] best 2844843 combination reg byte a [ keyboard_key_pressed::return#11 ] Attempting to uplift remaining variables inzp ZP_BYTE:180 [ menu::$65 ] -Uplifting [menu] best 2844043 combination reg byte a [ menu::$65 ] +Uplifting [menu] best 2844243 combination reg byte a [ menu::$65 ] Attempting to uplift remaining variables inzp ZP_BYTE:181 [ keyboard_key_pressed::return#12 ] -Uplifting [keyboard_key_pressed] best 2843443 combination reg byte a [ keyboard_key_pressed::return#12 ] +Uplifting [keyboard_key_pressed] best 2843643 combination reg byte a [ keyboard_key_pressed::return#12 ] Attempting to uplift remaining variables inzp ZP_BYTE:182 [ menu::$69 ] -Uplifting [menu] best 2842843 combination reg byte a [ menu::$69 ] +Uplifting [menu] best 2843043 combination reg byte a [ menu::$69 ] Attempting to uplift remaining variables inzp ZP_BYTE:183 [ keyboard_key_pressed::return#13 ] -Uplifting [keyboard_key_pressed] best 2842243 combination reg byte a [ keyboard_key_pressed::return#13 ] +Uplifting [keyboard_key_pressed] best 2842443 combination reg byte a [ keyboard_key_pressed::return#13 ] Attempting to uplift remaining variables inzp ZP_BYTE:184 [ menu::$73 ] -Uplifting [menu] best 2841643 combination reg byte a [ menu::$73 ] +Uplifting [menu] best 2841843 combination reg byte a [ menu::$73 ] Attempting to uplift remaining variables inzp ZP_BYTE:271 [ bitmap_init::$0 ] -Uplifting [bitmap_init] best 2841043 combination reg byte a [ bitmap_init::$0 ] +Uplifting [bitmap_init] best 2841243 combination reg byte a [ bitmap_init::$0 ] Attempting to uplift remaining variables inzp ZP_BYTE:273 [ bitmap_init::$7 ] -Uplifting [bitmap_init] best 2840443 combination reg byte a [ bitmap_init::$7 ] +Uplifting [bitmap_init] best 2840643 combination reg byte a [ bitmap_init::$7 ] Attempting to uplift remaining variables inzp ZP_BYTE:274 [ bitmap_init::$8 ] -Uplifting [bitmap_init] best 2839843 combination reg byte a [ bitmap_init::$8 ] +Uplifting [bitmap_init] best 2840043 combination reg byte a [ bitmap_init::$8 ] Attempting to uplift remaining variables inzp ZP_BYTE:275 [ bitmap_init::$9 ] -Uplifting [bitmap_init] best 2839243 combination reg byte a [ bitmap_init::$9 ] +Uplifting [bitmap_init] best 2839443 combination reg byte a [ bitmap_init::$9 ] Attempting to uplift remaining variables inzp ZP_BYTE:276 [ bitmap_init::$10 ] -Uplifting [bitmap_init] best 2838643 combination reg byte a [ bitmap_init::$10 ] +Uplifting [bitmap_init] best 2838843 combination reg byte a [ bitmap_init::$10 ] Attempting to uplift remaining variables inzp ZP_BYTE:40 [ mode_sixsfred::by#4 mode_sixsfred::by#1 ] -Uplifting [mode_sixsfred] best 2838643 combination zp ZP_BYTE:40 [ mode_sixsfred::by#4 mode_sixsfred::by#1 ] +Uplifting [mode_sixsfred] best 2838843 combination zp ZP_BYTE:40 [ mode_sixsfred::by#4 mode_sixsfred::by#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:53 [ mode_twoplanebitmap::by#4 mode_twoplanebitmap::by#1 ] -Uplifting [mode_twoplanebitmap] best 2838643 combination zp ZP_BYTE:53 [ mode_twoplanebitmap::by#4 mode_twoplanebitmap::by#1 ] +Uplifting [mode_twoplanebitmap] best 2838843 combination zp ZP_BYTE:53 [ mode_twoplanebitmap::by#4 mode_twoplanebitmap::by#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:66 [ mode_sixsfred2::by#4 mode_sixsfred2::by#1 ] -Uplifting [mode_sixsfred2] best 2838643 combination zp ZP_BYTE:66 [ mode_sixsfred2::by#4 mode_sixsfred2::by#1 ] +Uplifting [mode_sixsfred2] best 2838843 combination zp ZP_BYTE:66 [ mode_sixsfred2::by#4 mode_sixsfred2::by#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:123 [ bitmap_clear::y#4 bitmap_clear::y#1 ] -Uplifting [bitmap_clear] best 2838643 combination zp ZP_BYTE:123 [ bitmap_clear::y#4 bitmap_clear::y#1 ] +Uplifting [bitmap_clear] best 2838843 combination zp ZP_BYTE:123 [ bitmap_clear::y#4 bitmap_clear::y#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:21 [ mode_8bpppixelcell::ch#8 mode_8bpppixelcell::ch#1 ] -Uplifting [mode_8bpppixelcell] best 2838643 combination zp ZP_BYTE:21 [ mode_8bpppixelcell::ch#8 mode_8bpppixelcell::ch#1 ] +Uplifting [mode_8bpppixelcell] best 2838843 combination zp ZP_BYTE:21 [ mode_8bpppixelcell::ch#8 mode_8bpppixelcell::ch#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:98 [ bitmap_line_xdyi::xd#5 bitmap_line_xdyi::xd#1 bitmap_line_xdyi::xd#0 ] -Uplifting [bitmap_line_xdyi] best 2838643 combination zp ZP_BYTE:98 [ bitmap_line_xdyi::xd#5 bitmap_line_xdyi::xd#1 bitmap_line_xdyi::xd#0 ] +Uplifting [bitmap_line_xdyi] best 2838843 combination zp ZP_BYTE:98 [ bitmap_line_xdyi::xd#5 bitmap_line_xdyi::xd#1 bitmap_line_xdyi::xd#0 ] Attempting to uplift remaining variables inzp ZP_BYTE:106 [ bitmap_line_ydxi::yd#5 bitmap_line_ydxi::yd#0 bitmap_line_ydxi::yd#1 ] -Uplifting [bitmap_line_ydxi] best 2838643 combination zp ZP_BYTE:106 [ bitmap_line_ydxi::yd#5 bitmap_line_ydxi::yd#0 bitmap_line_ydxi::yd#1 ] +Uplifting [bitmap_line_ydxi] best 2838843 combination zp ZP_BYTE:106 [ bitmap_line_ydxi::yd#5 bitmap_line_ydxi::yd#0 bitmap_line_ydxi::yd#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:112 [ bitmap_line_xdyd::xd#5 bitmap_line_xdyd::xd#1 bitmap_line_xdyd::xd#0 ] -Uplifting [bitmap_line_xdyd] best 2838643 combination zp ZP_BYTE:112 [ bitmap_line_xdyd::xd#5 bitmap_line_xdyd::xd#1 bitmap_line_xdyd::xd#0 ] +Uplifting [bitmap_line_xdyd] best 2838843 combination zp ZP_BYTE:112 [ bitmap_line_xdyd::xd#5 bitmap_line_xdyd::xd#1 bitmap_line_xdyd::xd#0 ] Attempting to uplift remaining variables inzp ZP_BYTE:118 [ bitmap_line_ydxd::yd#5 bitmap_line_ydxd::yd#0 bitmap_line_ydxd::yd#1 ] -Uplifting [bitmap_line_ydxd] best 2838643 combination zp ZP_BYTE:118 [ bitmap_line_ydxd::yd#5 bitmap_line_ydxd::yd#0 bitmap_line_ydxd::yd#1 ] +Uplifting [bitmap_line_ydxd] best 2838843 combination zp ZP_BYTE:118 [ bitmap_line_ydxd::yd#5 bitmap_line_ydxd::yd#0 bitmap_line_ydxd::yd#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:12 [ dtv_control#114 dtv_control#145 dtv_control#17 ] -Uplifting [] best 2838643 combination zp ZP_BYTE:12 [ dtv_control#114 dtv_control#145 dtv_control#17 ] +Uplifting [] best 2838843 combination zp ZP_BYTE:12 [ dtv_control#114 dtv_control#145 dtv_control#17 ] Attempting to uplift remaining variables inzp ZP_BYTE:272 [ bitmap_init::$6 ] -Uplifting [bitmap_init] best 2838643 combination zp ZP_BYTE:272 [ bitmap_init::$6 ] +Uplifting [bitmap_init] best 2838843 combination zp ZP_BYTE:272 [ bitmap_init::$6 ] Attempting to uplift remaining variables inzp ZP_BYTE:97 [ bitmap_line_xdyi::yd#2 bitmap_line_xdyi::yd#1 bitmap_line_xdyi::yd#0 ] -Uplifting [bitmap_line_xdyi] best 2838643 combination zp ZP_BYTE:97 [ bitmap_line_xdyi::yd#2 bitmap_line_xdyi::yd#1 bitmap_line_xdyi::yd#0 ] +Uplifting [bitmap_line_xdyi] best 2838843 combination zp ZP_BYTE:97 [ bitmap_line_xdyi::yd#2 bitmap_line_xdyi::yd#1 bitmap_line_xdyi::yd#0 ] Attempting to uplift remaining variables inzp ZP_BYTE:105 [ bitmap_line_ydxi::xd#2 bitmap_line_ydxi::xd#0 bitmap_line_ydxi::xd#1 ] -Uplifting [bitmap_line_ydxi] best 2838643 combination zp ZP_BYTE:105 [ bitmap_line_ydxi::xd#2 bitmap_line_ydxi::xd#0 bitmap_line_ydxi::xd#1 ] +Uplifting [bitmap_line_ydxi] best 2838843 combination zp ZP_BYTE:105 [ bitmap_line_ydxi::xd#2 bitmap_line_ydxi::xd#0 bitmap_line_ydxi::xd#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:111 [ bitmap_line_xdyd::yd#2 bitmap_line_xdyd::yd#1 bitmap_line_xdyd::yd#0 ] -Uplifting [bitmap_line_xdyd] best 2838643 combination zp ZP_BYTE:111 [ bitmap_line_xdyd::yd#2 bitmap_line_xdyd::yd#1 bitmap_line_xdyd::yd#0 ] +Uplifting [bitmap_line_xdyd] best 2838843 combination zp ZP_BYTE:111 [ bitmap_line_xdyd::yd#2 bitmap_line_xdyd::yd#1 bitmap_line_xdyd::yd#0 ] Attempting to uplift remaining variables inzp ZP_BYTE:117 [ bitmap_line_ydxd::xd#2 bitmap_line_ydxd::xd#0 bitmap_line_ydxd::xd#1 ] -Uplifting [bitmap_line_ydxd] best 2838643 combination zp ZP_BYTE:117 [ bitmap_line_ydxd::xd#2 bitmap_line_ydxd::xd#0 bitmap_line_ydxd::xd#1 ] +Uplifting [bitmap_line_ydxd] best 2838843 combination zp ZP_BYTE:117 [ bitmap_line_ydxd::xd#2 bitmap_line_ydxd::xd#0 bitmap_line_ydxd::xd#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:99 [ bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x1#1 bitmap_line_xdyi::x1#0 ] -Uplifting [bitmap_line_xdyi] best 2838643 combination zp ZP_BYTE:99 [ bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x1#1 bitmap_line_xdyi::x1#0 ] +Uplifting [bitmap_line_xdyi] best 2838843 combination zp ZP_BYTE:99 [ bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x1#1 bitmap_line_xdyi::x1#0 ] Attempting to uplift remaining variables inzp ZP_BYTE:107 [ bitmap_line_ydxi::y1#6 bitmap_line_ydxi::y1#0 bitmap_line_ydxi::y1#1 ] -Uplifting [bitmap_line_ydxi] best 2838643 combination zp ZP_BYTE:107 [ bitmap_line_ydxi::y1#6 bitmap_line_ydxi::y1#0 bitmap_line_ydxi::y1#1 ] +Uplifting [bitmap_line_ydxi] best 2838843 combination zp ZP_BYTE:107 [ bitmap_line_ydxi::y1#6 bitmap_line_ydxi::y1#0 bitmap_line_ydxi::y1#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:113 [ bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x1#1 bitmap_line_xdyd::x1#0 ] -Uplifting [bitmap_line_xdyd] best 2838643 combination zp ZP_BYTE:113 [ bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x1#1 bitmap_line_xdyd::x1#0 ] +Uplifting [bitmap_line_xdyd] best 2838843 combination zp ZP_BYTE:113 [ bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x1#1 bitmap_line_xdyd::x1#0 ] Attempting to uplift remaining variables inzp ZP_BYTE:119 [ bitmap_line_ydxd::y1#6 bitmap_line_ydxd::y1#0 bitmap_line_ydxd::y1#1 ] -Uplifting [bitmap_line_ydxd] best 2838643 combination zp ZP_BYTE:119 [ bitmap_line_ydxd::y1#6 bitmap_line_ydxd::y1#0 bitmap_line_ydxd::y1#1 ] +Uplifting [bitmap_line_ydxd] best 2838843 combination zp ZP_BYTE:119 [ bitmap_line_ydxd::y1#6 bitmap_line_ydxd::y1#0 bitmap_line_ydxd::y1#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:250 [ bitmap_line::y0#0 ] -Uplifting [bitmap_line] best 2838643 combination zp ZP_BYTE:250 [ bitmap_line::y0#0 ] +Uplifting [bitmap_line] best 2838843 combination zp ZP_BYTE:250 [ bitmap_line::y0#0 ] Attempting to uplift remaining variables inzp ZP_BYTE:249 [ bitmap_line::x1#0 ] -Uplifting [bitmap_line] best 2838643 combination zp ZP_BYTE:249 [ bitmap_line::x1#0 ] +Uplifting [bitmap_line] best 2838843 combination zp ZP_BYTE:249 [ bitmap_line::x1#0 ] Attempting to uplift remaining variables inzp ZP_BYTE:248 [ bitmap_line::x0#0 ] -Uplifting [bitmap_line] best 2838643 combination zp ZP_BYTE:248 [ bitmap_line::x0#0 ] +Uplifting [bitmap_line] best 2838843 combination zp ZP_BYTE:248 [ bitmap_line::x0#0 ] Attempting to uplift remaining variables inzp ZP_BYTE:205 [ keyboard_key_pressed::rowidx#0 ] -Uplifting [keyboard_key_pressed] best 2838639 combination reg byte a [ keyboard_key_pressed::rowidx#0 ] +Uplifting [keyboard_key_pressed] best 2838839 combination reg byte a [ keyboard_key_pressed::rowidx#0 ] Attempting to uplift remaining variables inzp ZP_BYTE:208 [ keyboard_key_pressed::$2 ] -Uplifting [keyboard_key_pressed] best 2838633 combination reg byte a [ keyboard_key_pressed::$2 ] +Uplifting [keyboard_key_pressed] best 2838833 combination reg byte a [ keyboard_key_pressed::$2 ] Attempting to uplift remaining variables inzp ZP_BYTE:265 [ bitmap_plot::$1 ] -Uplifting [bitmap_plot] best 2838627 combination reg byte a [ bitmap_plot::$1 ] +Uplifting [bitmap_plot] best 2838827 combination reg byte a [ bitmap_plot::$1 ] Attempting to uplift remaining variables inzp ZP_BYTE:14 [ keyboard_key_pressed::key#20 ] -Uplifting [keyboard_key_pressed] best 2838565 combination reg byte y [ keyboard_key_pressed::key#20 ] +Uplifting [keyboard_key_pressed] best 2838765 combination reg byte y [ keyboard_key_pressed::key#20 ] Attempting to uplift remaining variables inzp ZP_BYTE:210 [ keyboard_matrix_read::return#0 ] -Uplifting [keyboard_matrix_read] best 2838559 combination reg byte a [ keyboard_matrix_read::return#0 ] +Uplifting [keyboard_matrix_read] best 2838759 combination reg byte a [ keyboard_matrix_read::return#0 ] Attempting to uplift remaining variables inzp ZP_BYTE:253 [ bitmap_line::yd#1 ] -Uplifting [bitmap_line] best 2838559 combination zp ZP_BYTE:253 [ bitmap_line::yd#1 ] +Uplifting [bitmap_line] best 2838759 combination zp ZP_BYTE:253 [ bitmap_line::yd#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:254 [ bitmap_line::yd#0 ] -Uplifting [bitmap_line] best 2838559 combination zp ZP_BYTE:254 [ bitmap_line::yd#0 ] +Uplifting [bitmap_line] best 2838759 combination zp ZP_BYTE:254 [ bitmap_line::yd#0 ] Attempting to uplift remaining variables inzp ZP_BYTE:256 [ bitmap_line::yd#3 ] -Uplifting [bitmap_line] best 2838559 combination zp ZP_BYTE:256 [ bitmap_line::yd#3 ] +Uplifting [bitmap_line] best 2838759 combination zp ZP_BYTE:256 [ bitmap_line::yd#3 ] Attempting to uplift remaining variables inzp ZP_BYTE:257 [ bitmap_line::yd#10 ] -Uplifting [bitmap_line] best 2838559 combination zp ZP_BYTE:257 [ bitmap_line::yd#10 ] +Uplifting [bitmap_line] best 2838759 combination zp ZP_BYTE:257 [ bitmap_line::yd#10 ] Attempting to uplift remaining variables inzp ZP_BYTE:252 [ bitmap_line::xd#1 ] -Uplifting [bitmap_line] best 2838559 combination zp ZP_BYTE:252 [ bitmap_line::xd#1 ] +Uplifting [bitmap_line] best 2838759 combination zp ZP_BYTE:252 [ bitmap_line::xd#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:255 [ bitmap_line::xd#0 ] -Uplifting [bitmap_line] best 2838559 combination zp ZP_BYTE:255 [ bitmap_line::xd#0 ] +Uplifting [bitmap_line] best 2838759 combination zp ZP_BYTE:255 [ bitmap_line::xd#0 ] Attempting to uplift remaining variables inzp ZP_BYTE:204 [ keyboard_key_pressed::colidx#0 ] -Uplifting [keyboard_key_pressed] best 2838559 combination zp ZP_BYTE:204 [ keyboard_key_pressed::colidx#0 ] +Uplifting [keyboard_key_pressed] best 2838759 combination zp ZP_BYTE:204 [ keyboard_key_pressed::colidx#0 ] Coalescing zero page register with common assignment [ zp ZP_BYTE:97 [ bitmap_line_xdyi::yd#2 bitmap_line_xdyi::yd#1 bitmap_line_xdyi::yd#0 ] ] with [ zp ZP_BYTE:253 [ bitmap_line::yd#1 ] ] - score: 1 Coalescing zero page register with common assignment [ zp ZP_BYTE:97 [ bitmap_line_xdyi::yd#2 bitmap_line_xdyi::yd#1 bitmap_line_xdyi::yd#0 bitmap_line::yd#1 ] ] with [ zp ZP_BYTE:257 [ bitmap_line::yd#10 ] ] - score: 1 Coalescing zero page register with common assignment [ zp ZP_BYTE:98 [ bitmap_line_xdyi::xd#5 bitmap_line_xdyi::xd#1 bitmap_line_xdyi::xd#0 ] ] with [ zp ZP_BYTE:252 [ bitmap_line::xd#1 ] ] - score: 1 @@ -19739,6 +19743,7 @@ mode_8bpppixelcell: { inc ch //SEG518 [278] if((byte) mode_8bpppixelcell::ch#1!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto mode_8bpppixelcell::@4 -- vbuz1_neq_0_then_la1 lda ch + cmp #0 bne b4_from_b13 jmp b14 //SEG519 mode_8bpppixelcell::@14 @@ -25102,7 +25107,7 @@ reg byte a [ print_str_lines::ch#0 ] FINAL ASSEMBLER -Score: 2305878 +Score: 2306078 //SEG0 Basic Upstart .pc = $801 "Basic" @@ -26225,6 +26230,7 @@ mode_8bpppixelcell: { inc ch //SEG518 [278] if((byte) mode_8bpppixelcell::ch#1!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto mode_8bpppixelcell::@4 -- vbuz1_neq_0_then_la1 lda ch + cmp #0 bne b4 //SEG519 mode_8bpppixelcell::@14 //SEG520 [279] *((const byte*) PROCPORT#0) ← (const byte) PROCPORT_RAM_IO#0 -- _deref_pbuc1=vbuc2 diff --git a/src/test/ref/examples/bresenham/bitmap-bresenham.log b/src/test/ref/examples/bresenham/bitmap-bresenham.log index a1b977932..b0c6e6383 100644 --- a/src/test/ref/examples/bresenham/bitmap-bresenham.log +++ b/src/test/ref/examples/bresenham/bitmap-bresenham.log @@ -3424,6 +3424,7 @@ bitmap_init: { lsr bits //SEG338 [178] if((byte) bitmap_init::bits#1!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto bitmap_init::@10 -- vbuz1_neq_0_then_la1 lda bits + cmp #0 bne b10_from_b1 //SEG339 [179] phi from bitmap_init::@1 to bitmap_init::@2 [phi:bitmap_init::@1->bitmap_init::@2] b2_from_b1: @@ -3437,6 +3438,7 @@ bitmap_init: { inc x //SEG343 [181] if((byte) bitmap_init::x#1!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto bitmap_init::@1 -- vbuz1_neq_0_then_la1 lda x + cmp #0 bne b1_from_b2 //SEG344 [182] phi from bitmap_init::@2 to bitmap_init::@3 [phi:bitmap_init::@2->bitmap_init::@3] b3_from_b2: @@ -3508,6 +3510,7 @@ bitmap_init: { inc y //SEG365 [194] if((byte) bitmap_init::y#1!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto bitmap_init::@3 -- vbuz1_neq_0_then_la1 lda y + cmp #0 bne b3_from_b4 jmp breturn //SEG366 bitmap_init::@return @@ -3750,17 +3753,17 @@ Uplift Scope [bitmap_line] 6.25: zp ZP_BYTE:43 [ bitmap_line::y1#0 ] 5.95: zp ZP Uplift Scope [main] Uplift Scope [] -Uplifting [bitmap_plot] best 316421 combination reg byte y [ bitmap_plot::y#4 bitmap_plot::y#1 bitmap_plot::y#0 bitmap_plot::y#3 bitmap_plot::y#2 ] reg byte x [ bitmap_plot::x#4 bitmap_plot::x#1 bitmap_plot::x#0 bitmap_plot::x#3 bitmap_plot::x#2 ] zp ZP_WORD:53 [ bitmap_plot::plotter_y#0 ] reg byte a [ bitmap_plot::$1 ] zp ZP_WORD:51 [ bitmap_plot::plotter_x#0 ] zp ZP_WORD:55 [ bitmap_plot::$0 ] -Uplifting [bitmap_line_xdyi] best 307415 combination zp ZP_BYTE:8 [ 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 ] zp ZP_BYTE:7 [ 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 ] zp ZP_BYTE:50 [ bitmap_line_xdyi::$6 ] reg byte x [ 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 ] zp ZP_BYTE:4 [ bitmap_line_xdyi::xd#5 bitmap_line_xdyi::xd#1 bitmap_line_xdyi::xd#0 ] zp ZP_BYTE:3 [ bitmap_line_xdyi::yd#2 bitmap_line_xdyi::yd#1 bitmap_line_xdyi::yd#0 ] zp ZP_BYTE:5 [ bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x1#1 bitmap_line_xdyi::x1#0 ] +Uplifting [bitmap_plot] best 316481 combination reg byte y [ bitmap_plot::y#4 bitmap_plot::y#1 bitmap_plot::y#0 bitmap_plot::y#3 bitmap_plot::y#2 ] reg byte x [ bitmap_plot::x#4 bitmap_plot::x#1 bitmap_plot::x#0 bitmap_plot::x#3 bitmap_plot::x#2 ] zp ZP_WORD:53 [ bitmap_plot::plotter_y#0 ] reg byte a [ bitmap_plot::$1 ] zp ZP_WORD:51 [ bitmap_plot::plotter_x#0 ] zp ZP_WORD:55 [ bitmap_plot::$0 ] +Uplifting [bitmap_line_xdyi] best 307475 combination zp ZP_BYTE:8 [ 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 ] zp ZP_BYTE:7 [ 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 ] zp ZP_BYTE:50 [ bitmap_line_xdyi::$6 ] reg byte x [ 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 ] zp ZP_BYTE:4 [ bitmap_line_xdyi::xd#5 bitmap_line_xdyi::xd#1 bitmap_line_xdyi::xd#0 ] zp ZP_BYTE:3 [ bitmap_line_xdyi::yd#2 bitmap_line_xdyi::yd#1 bitmap_line_xdyi::yd#0 ] zp ZP_BYTE:5 [ bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x1#1 bitmap_line_xdyi::x1#0 ] Limited combination testing to 100 combinations of 256 possible. -Uplifting [bitmap_line_xdyd] best 298409 combination zp ZP_BYTE:22 [ 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 ] zp ZP_BYTE:21 [ 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 ] zp ZP_BYTE:59 [ bitmap_line_xdyd::$6 ] reg byte x [ 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 ] zp ZP_BYTE:18 [ bitmap_line_xdyd::xd#5 bitmap_line_xdyd::xd#1 bitmap_line_xdyd::xd#0 ] zp ZP_BYTE:17 [ bitmap_line_xdyd::yd#2 bitmap_line_xdyd::yd#1 bitmap_line_xdyd::yd#0 ] zp ZP_BYTE:19 [ bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x1#1 bitmap_line_xdyd::x1#0 ] +Uplifting [bitmap_line_xdyd] best 298469 combination zp ZP_BYTE:22 [ 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 ] zp ZP_BYTE:21 [ 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 ] zp ZP_BYTE:59 [ bitmap_line_xdyd::$6 ] reg byte x [ 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 ] zp ZP_BYTE:18 [ bitmap_line_xdyd::xd#5 bitmap_line_xdyd::xd#1 bitmap_line_xdyd::xd#0 ] zp ZP_BYTE:17 [ bitmap_line_xdyd::yd#2 bitmap_line_xdyd::yd#1 bitmap_line_xdyd::yd#0 ] zp ZP_BYTE:19 [ bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x1#1 bitmap_line_xdyd::x1#0 ] Limited combination testing to 100 combinations of 256 possible. -Uplifting [bitmap_line_ydxi] best 286403 combination zp ZP_BYTE:16 [ 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 ] reg byte x [ bitmap_line_ydxi::x#3 bitmap_line_ydxi::x#5 bitmap_line_ydxi::x#0 bitmap_line_ydxi::x#1 bitmap_line_ydxi::x#6 bitmap_line_ydxi::x#2 ] reg byte y [ bitmap_line_ydxi::$6 ] zp ZP_BYTE:15 [ bitmap_line_ydxi::y#3 bitmap_line_ydxi::y#6 bitmap_line_ydxi::y#0 bitmap_line_ydxi::y#1 bitmap_line_ydxi::y#2 ] zp ZP_BYTE:12 [ bitmap_line_ydxi::yd#5 bitmap_line_ydxi::yd#0 bitmap_line_ydxi::yd#1 ] zp ZP_BYTE:11 [ bitmap_line_ydxi::xd#2 bitmap_line_ydxi::xd#0 bitmap_line_ydxi::xd#1 ] zp ZP_BYTE:13 [ bitmap_line_ydxi::y1#6 bitmap_line_ydxi::y1#0 bitmap_line_ydxi::y1#1 ] +Uplifting [bitmap_line_ydxi] best 286463 combination zp ZP_BYTE:16 [ 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 ] reg byte x [ bitmap_line_ydxi::x#3 bitmap_line_ydxi::x#5 bitmap_line_ydxi::x#0 bitmap_line_ydxi::x#1 bitmap_line_ydxi::x#6 bitmap_line_ydxi::x#2 ] reg byte y [ bitmap_line_ydxi::$6 ] zp ZP_BYTE:15 [ bitmap_line_ydxi::y#3 bitmap_line_ydxi::y#6 bitmap_line_ydxi::y#0 bitmap_line_ydxi::y#1 bitmap_line_ydxi::y#2 ] zp ZP_BYTE:12 [ bitmap_line_ydxi::yd#5 bitmap_line_ydxi::yd#0 bitmap_line_ydxi::yd#1 ] zp ZP_BYTE:11 [ bitmap_line_ydxi::xd#2 bitmap_line_ydxi::xd#0 bitmap_line_ydxi::xd#1 ] zp ZP_BYTE:13 [ bitmap_line_ydxi::y1#6 bitmap_line_ydxi::y1#0 bitmap_line_ydxi::y1#1 ] Limited combination testing to 100 combinations of 256 possible. -Uplifting [bitmap_line_ydxd] best 274397 combination zp ZP_BYTE:28 [ 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 ] reg byte x [ 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 ] reg byte y [ bitmap_line_ydxd::$6 ] zp ZP_BYTE:27 [ 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 ZP_BYTE:24 [ bitmap_line_ydxd::yd#5 bitmap_line_ydxd::yd#0 bitmap_line_ydxd::yd#1 ] zp ZP_BYTE:23 [ bitmap_line_ydxd::xd#2 bitmap_line_ydxd::xd#0 bitmap_line_ydxd::xd#1 ] zp ZP_BYTE:25 [ bitmap_line_ydxd::y1#6 bitmap_line_ydxd::y1#0 bitmap_line_ydxd::y1#1 ] +Uplifting [bitmap_line_ydxd] best 274457 combination zp ZP_BYTE:28 [ 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 ] reg byte x [ 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 ] reg byte y [ bitmap_line_ydxd::$6 ] zp ZP_BYTE:27 [ 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 ZP_BYTE:24 [ bitmap_line_ydxd::yd#5 bitmap_line_ydxd::yd#0 bitmap_line_ydxd::yd#1 ] zp ZP_BYTE:23 [ bitmap_line_ydxd::xd#2 bitmap_line_ydxd::xd#0 bitmap_line_ydxd::xd#1 ] zp ZP_BYTE:25 [ bitmap_line_ydxd::y1#6 bitmap_line_ydxd::y1#0 bitmap_line_ydxd::y1#1 ] Limited combination testing to 100 combinations of 256 possible. -Uplifting [bitmap_clear] best 273497 combination zp ZP_WORD:32 [ bitmap_clear::bitmap#2 bitmap_clear::bitmap#3 bitmap_clear::bitmap#5 bitmap_clear::bitmap#1 ] reg byte x [ bitmap_clear::x#2 bitmap_clear::x#1 ] zp ZP_BYTE:31 [ bitmap_clear::y#4 bitmap_clear::y#1 ] zp ZP_WORD:61 [ bitmap_clear::$3 ] -Uplifting [lines] best 273497 combination zp ZP_BYTE:2 [ lines::l#2 lines::l#1 ] +Uplifting [bitmap_clear] best 273557 combination zp ZP_WORD:32 [ bitmap_clear::bitmap#2 bitmap_clear::bitmap#3 bitmap_clear::bitmap#5 bitmap_clear::bitmap#1 ] reg byte x [ bitmap_clear::x#2 bitmap_clear::x#1 ] zp ZP_BYTE:31 [ bitmap_clear::y#4 bitmap_clear::y#1 ] zp ZP_WORD:61 [ bitmap_clear::$3 ] +Uplifting [lines] best 273557 combination zp ZP_BYTE:2 [ lines::l#2 lines::l#1 ] Uplifting [bitmap_init] best 273047 combination zp ZP_WORD:38 [ bitmap_init::yoffs#2 bitmap_init::yoffs#4 bitmap_init::yoffs#1 ] reg byte y [ bitmap_init::bits#3 bitmap_init::bits#4 bitmap_init::bits#1 ] reg byte x [ bitmap_init::x#2 bitmap_init::x#1 ] reg byte x [ bitmap_init::y#2 bitmap_init::y#1 ] reg byte a [ bitmap_init::$0 ] zp ZP_BYTE:65 [ bitmap_init::$7 ] zp ZP_BYTE:66 [ bitmap_init::$8 ] zp ZP_BYTE:67 [ bitmap_init::$9 ] zp ZP_BYTE:68 [ bitmap_init::$10 ] zp ZP_BYTE:64 [ bitmap_init::$6 ] Limited combination testing to 100 combinations of 138240 possible. Uplifting [init_screen] best 273047 combination zp ZP_WORD:29 [ init_screen::c#2 init_screen::c#1 ] diff --git a/src/test/ref/examples/chargen/chargen-analysis.log b/src/test/ref/examples/chargen/chargen-analysis.log index f7ef3ac0b..9238ab5bb 100644 --- a/src/test/ref/examples/chargen/chargen-analysis.log +++ b/src/test/ref/examples/chargen/chargen-analysis.log @@ -2508,6 +2508,7 @@ main: { sta _27 //SEG105 [46] if((byte~) main::$27!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@9 -- vbuz1_neq_0_then_la1 lda _27 + cmp #0 bne b9_from_b34 //SEG106 [47] phi from main::@34 to main::@19 [phi:main::@34->main::@19] b19_from_b34: @@ -2896,6 +2897,7 @@ mul8u: { b1: //SEG233 [105] if((byte) mul8u::a#2!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto mul8u::@2 -- vbuz1_neq_0_then_la1 lda a + cmp #0 bne b2 jmp breturn //SEG234 mul8u::@return @@ -3197,47 +3199,47 @@ Uplift Scope [print_str_at] 35.5: zp ZP_WORD:26 [ print_str_at::str#5 print_str_ Uplift Scope [keyboard_matrix_read] 4: zp ZP_BYTE:56 [ keyboard_matrix_read::rowid#0 ] 4: zp ZP_BYTE:57 [ keyboard_matrix_read::return#2 ] 1.33: zp ZP_BYTE:60 [ keyboard_matrix_read::return#0 ] Uplift Scope [] -Uplifting [plot_chargen] best 817609 combination reg byte a [ plot_chargen::$10 ] reg byte x [ plot_chargen::x#2 plot_chargen::x#1 ] zp ZP_BYTE:15 [ plot_chargen::bits#2 plot_chargen::bits#0 plot_chargen::bits#1 ] zp ZP_WORD:16 [ plot_chargen::sc#3 plot_chargen::sc#7 plot_chargen::sc#2 plot_chargen::sc#0 plot_chargen::sc#1 ] reg byte a [ plot_chargen::c#2 ] zp ZP_BYTE:14 [ plot_chargen::y#2 plot_chargen::y#1 ] zp ZP_BYTE:10 [ plot_chargen::shift#2 plot_chargen::shift#1 ] zp ZP_BYTE:9 [ plot_chargen::ch#2 plot_chargen::ch#1 ] zp ZP_BYTE:11 [ plot_chargen::pos#2 plot_chargen::pos#0 plot_chargen::pos#1 ] zp ZP_WORD:12 [ plot_chargen::chargen#5 plot_chargen::chargen#0 plot_chargen::chargen#1 ] zp ZP_WORD:44 [ plot_chargen::$0 ] zp ZP_WORD:46 [ plot_chargen::$1 ] zp ZP_WORD:50 [ plot_chargen::$8 ] +Uplifting [plot_chargen] best 819629 combination reg byte a [ plot_chargen::$10 ] reg byte x [ plot_chargen::x#2 plot_chargen::x#1 ] zp ZP_BYTE:15 [ plot_chargen::bits#2 plot_chargen::bits#0 plot_chargen::bits#1 ] zp ZP_WORD:16 [ plot_chargen::sc#3 plot_chargen::sc#7 plot_chargen::sc#2 plot_chargen::sc#0 plot_chargen::sc#1 ] reg byte a [ plot_chargen::c#2 ] zp ZP_BYTE:14 [ plot_chargen::y#2 plot_chargen::y#1 ] zp ZP_BYTE:10 [ plot_chargen::shift#2 plot_chargen::shift#1 ] zp ZP_BYTE:9 [ plot_chargen::ch#2 plot_chargen::ch#1 ] zp ZP_BYTE:11 [ plot_chargen::pos#2 plot_chargen::pos#0 plot_chargen::pos#1 ] zp ZP_WORD:12 [ plot_chargen::chargen#5 plot_chargen::chargen#0 plot_chargen::chargen#1 ] zp ZP_WORD:44 [ plot_chargen::$0 ] zp ZP_WORD:46 [ plot_chargen::$1 ] zp ZP_WORD:50 [ plot_chargen::$8 ] Limited combination testing to 100 combinations of 4608 possible. -Uplifting [mul8u] best 810606 combination zp ZP_WORD:21 [ mul8u::res#2 mul8u::res#6 mul8u::res#1 ] zp ZP_WORD:23 [ mul8u::mb#2 mul8u::mb#1 ] reg byte a [ mul8u::$1 ] reg byte x [ mul8u::a#2 mul8u::a#1 mul8u::a#0 ] zp ZP_WORD:48 [ mul8u::return#2 ] -Uplifting [main] best 808806 combination reg byte a [ main::pressed#2 main::pressed#1 ] zp ZP_BYTE:7 [ main::ch#2 main::ch#1 ] reg byte a [ main::key#0 ] zp ZP_BYTE:5 [ main::cur_pos#18 main::cur_pos#20 main::cur_pos#22 main::cur_pos#24 main::cur_pos#12 ] zp ZP_WORD:2 [ main::sc#2 main::sc#1 ] zp ZP_BYTE:4 [ main::i#2 main::i#1 ] zp ZP_BYTE:31 [ main::$15 ] zp ZP_BYTE:33 [ main::$18 ] zp ZP_BYTE:35 [ main::$21 ] zp ZP_BYTE:37 [ main::$24 ] zp ZP_BYTE:39 [ main::$27 ] zp ZP_BYTE:6 [ main::shift#10 ] +Uplifting [mul8u] best 810626 combination zp ZP_WORD:21 [ mul8u::res#2 mul8u::res#6 mul8u::res#1 ] zp ZP_WORD:23 [ mul8u::mb#2 mul8u::mb#1 ] reg byte a [ mul8u::$1 ] reg byte x [ mul8u::a#2 mul8u::a#1 mul8u::a#0 ] zp ZP_WORD:48 [ mul8u::return#2 ] +Uplifting [main] best 808826 combination reg byte a [ main::pressed#2 main::pressed#1 ] zp ZP_BYTE:7 [ main::ch#2 main::ch#1 ] reg byte a [ main::key#0 ] zp ZP_BYTE:5 [ main::cur_pos#18 main::cur_pos#20 main::cur_pos#22 main::cur_pos#24 main::cur_pos#12 ] zp ZP_WORD:2 [ main::sc#2 main::sc#1 ] zp ZP_BYTE:4 [ main::i#2 main::i#1 ] zp ZP_BYTE:31 [ main::$15 ] zp ZP_BYTE:33 [ main::$18 ] zp ZP_BYTE:35 [ main::$21 ] zp ZP_BYTE:37 [ main::$24 ] zp ZP_BYTE:39 [ main::$27 ] zp ZP_BYTE:6 [ main::shift#10 ] Limited combination testing to 100 combinations of 262144 possible. -Uplifting [keyboard_key_pressed] best 807969 combination reg byte x [ keyboard_key_pressed::key#6 keyboard_key_pressed::key#5 ] reg byte a [ keyboard_key_pressed::return#14 ] reg byte a [ keyboard_key_pressed::return#2 ] reg byte a [ keyboard_key_pressed::return#10 ] zp ZP_BYTE:34 [ keyboard_key_pressed::return#11 ] zp ZP_BYTE:36 [ keyboard_key_pressed::return#12 ] zp ZP_BYTE:38 [ keyboard_key_pressed::return#13 ] zp ZP_BYTE:59 [ keyboard_key_pressed::return#0 ] zp ZP_BYTE:55 [ keyboard_key_pressed::rowidx#0 ] zp ZP_BYTE:58 [ keyboard_key_pressed::$2 ] zp ZP_BYTE:54 [ keyboard_key_pressed::colidx#0 ] +Uplifting [keyboard_key_pressed] best 807989 combination reg byte x [ keyboard_key_pressed::key#6 keyboard_key_pressed::key#5 ] reg byte a [ keyboard_key_pressed::return#14 ] reg byte a [ keyboard_key_pressed::return#2 ] reg byte a [ keyboard_key_pressed::return#10 ] zp ZP_BYTE:34 [ keyboard_key_pressed::return#11 ] zp ZP_BYTE:36 [ keyboard_key_pressed::return#12 ] zp ZP_BYTE:38 [ keyboard_key_pressed::return#13 ] zp ZP_BYTE:59 [ keyboard_key_pressed::return#0 ] zp ZP_BYTE:55 [ keyboard_key_pressed::rowidx#0 ] zp ZP_BYTE:58 [ keyboard_key_pressed::$2 ] zp ZP_BYTE:54 [ keyboard_key_pressed::colidx#0 ] Limited combination testing to 100 combinations of 2359296 possible. -Uplifting [keyboard_get_keycode] best 806763 combination reg byte a [ keyboard_get_keycode::return#2 ] reg byte x [ keyboard_get_keycode::ch#0 ] reg byte a [ keyboard_get_keycode::return#0 ] -Uplifting [print_str_at] best 806763 combination zp ZP_WORD:26 [ print_str_at::str#5 print_str_at::str#7 print_str_at::str#4 ] zp ZP_WORD:28 [ print_str_at::at#5 print_str_at::at#7 print_str_at::at#4 ] -Uplifting [keyboard_matrix_read] best 806745 combination reg byte x [ keyboard_matrix_read::rowid#0 ] reg byte a [ keyboard_matrix_read::return#2 ] reg byte a [ keyboard_matrix_read::return#0 ] -Uplifting [] best 806745 combination +Uplifting [keyboard_get_keycode] best 806783 combination reg byte a [ keyboard_get_keycode::return#2 ] reg byte x [ keyboard_get_keycode::ch#0 ] reg byte a [ keyboard_get_keycode::return#0 ] +Uplifting [print_str_at] best 806783 combination zp ZP_WORD:26 [ print_str_at::str#5 print_str_at::str#7 print_str_at::str#4 ] zp ZP_WORD:28 [ print_str_at::at#5 print_str_at::at#7 print_str_at::at#4 ] +Uplifting [keyboard_matrix_read] best 806765 combination reg byte x [ keyboard_matrix_read::rowid#0 ] reg byte a [ keyboard_matrix_read::return#2 ] reg byte a [ keyboard_matrix_read::return#0 ] +Uplifting [] best 806765 combination Attempting to uplift remaining variables inzp ZP_BYTE:15 [ plot_chargen::bits#2 plot_chargen::bits#0 plot_chargen::bits#1 ] -Uplifting [plot_chargen] best 806745 combination zp ZP_BYTE:15 [ plot_chargen::bits#2 plot_chargen::bits#0 plot_chargen::bits#1 ] +Uplifting [plot_chargen] best 806765 combination zp ZP_BYTE:15 [ plot_chargen::bits#2 plot_chargen::bits#0 plot_chargen::bits#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:14 [ plot_chargen::y#2 plot_chargen::y#1 ] -Uplifting [plot_chargen] best 806745 combination zp ZP_BYTE:14 [ plot_chargen::y#2 plot_chargen::y#1 ] +Uplifting [plot_chargen] best 806765 combination zp ZP_BYTE:14 [ plot_chargen::y#2 plot_chargen::y#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:10 [ plot_chargen::shift#2 plot_chargen::shift#1 ] -Uplifting [plot_chargen] best 806439 combination reg byte x [ plot_chargen::shift#2 plot_chargen::shift#1 ] +Uplifting [plot_chargen] best 806459 combination reg byte x [ plot_chargen::shift#2 plot_chargen::shift#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:7 [ main::ch#2 main::ch#1 ] -Uplifting [main] best 806439 combination zp ZP_BYTE:7 [ main::ch#2 main::ch#1 ] +Uplifting [main] best 806459 combination zp ZP_BYTE:7 [ main::ch#2 main::ch#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:9 [ plot_chargen::ch#2 plot_chargen::ch#1 ] -Uplifting [plot_chargen] best 806133 combination reg byte a [ plot_chargen::ch#2 plot_chargen::ch#1 ] +Uplifting [plot_chargen] best 806153 combination reg byte a [ plot_chargen::ch#2 plot_chargen::ch#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:11 [ plot_chargen::pos#2 plot_chargen::pos#0 plot_chargen::pos#1 ] -Uplifting [plot_chargen] best 805804 combination reg byte y [ plot_chargen::pos#2 plot_chargen::pos#0 plot_chargen::pos#1 ] +Uplifting [plot_chargen] best 805824 combination reg byte y [ plot_chargen::pos#2 plot_chargen::pos#0 plot_chargen::pos#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:5 [ main::cur_pos#18 main::cur_pos#20 main::cur_pos#22 main::cur_pos#24 main::cur_pos#12 ] -Uplifting [main] best 805804 combination zp ZP_BYTE:5 [ main::cur_pos#18 main::cur_pos#20 main::cur_pos#22 main::cur_pos#24 main::cur_pos#12 ] +Uplifting [main] best 805824 combination zp ZP_BYTE:5 [ main::cur_pos#18 main::cur_pos#20 main::cur_pos#22 main::cur_pos#24 main::cur_pos#12 ] Attempting to uplift remaining variables inzp ZP_BYTE:4 [ main::i#2 main::i#1 ] -Uplifting [main] best 805804 combination zp ZP_BYTE:4 [ main::i#2 main::i#1 ] +Uplifting [main] best 805824 combination zp ZP_BYTE:4 [ main::i#2 main::i#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:31 [ main::$15 ] -Uplifting [main] best 805744 combination reg byte a [ main::$15 ] +Uplifting [main] best 805764 combination reg byte a [ main::$15 ] Attempting to uplift remaining variables inzp ZP_BYTE:33 [ main::$18 ] -Uplifting [main] best 805684 combination reg byte a [ main::$18 ] +Uplifting [main] best 805704 combination reg byte a [ main::$18 ] Attempting to uplift remaining variables inzp ZP_BYTE:34 [ keyboard_key_pressed::return#11 ] -Uplifting [keyboard_key_pressed] best 805624 combination reg byte a [ keyboard_key_pressed::return#11 ] +Uplifting [keyboard_key_pressed] best 805644 combination reg byte a [ keyboard_key_pressed::return#11 ] Attempting to uplift remaining variables inzp ZP_BYTE:35 [ main::$21 ] -Uplifting [main] best 805564 combination reg byte a [ main::$21 ] +Uplifting [main] best 805584 combination reg byte a [ main::$21 ] Attempting to uplift remaining variables inzp ZP_BYTE:36 [ keyboard_key_pressed::return#12 ] -Uplifting [keyboard_key_pressed] best 805504 combination reg byte a [ keyboard_key_pressed::return#12 ] +Uplifting [keyboard_key_pressed] best 805524 combination reg byte a [ keyboard_key_pressed::return#12 ] Attempting to uplift remaining variables inzp ZP_BYTE:37 [ main::$24 ] -Uplifting [main] best 805444 combination reg byte a [ main::$24 ] +Uplifting [main] best 805464 combination reg byte a [ main::$24 ] Attempting to uplift remaining variables inzp ZP_BYTE:38 [ keyboard_key_pressed::return#13 ] -Uplifting [keyboard_key_pressed] best 805384 combination reg byte a [ keyboard_key_pressed::return#13 ] +Uplifting [keyboard_key_pressed] best 805404 combination reg byte a [ keyboard_key_pressed::return#13 ] Attempting to uplift remaining variables inzp ZP_BYTE:39 [ main::$27 ] Uplifting [main] best 805344 combination reg byte a [ main::$27 ] Attempting to uplift remaining variables inzp ZP_BYTE:59 [ keyboard_key_pressed::return#0 ] diff --git a/src/test/ref/examples/multiplexer/simple-multiplexer.asm b/src/test/ref/examples/multiplexer/simple-multiplexer.asm index 710dc4bc8..7c11a3d58 100644 --- a/src/test/ref/examples/multiplexer/simple-multiplexer.asm +++ b/src/test/ref/examples/multiplexer/simple-multiplexer.asm @@ -140,6 +140,7 @@ plexShowSprite: { inc plex_show_idx asl plex_sprite_msb lda plex_sprite_msb + cmp #0 bne breturn lda #1 sta plex_sprite_msb diff --git a/src/test/ref/examples/multiplexer/simple-multiplexer.log b/src/test/ref/examples/multiplexer/simple-multiplexer.log index 0e36ff998..eea8de1b0 100644 --- a/src/test/ref/examples/multiplexer/simple-multiplexer.log +++ b/src/test/ref/examples/multiplexer/simple-multiplexer.log @@ -2276,6 +2276,7 @@ loop: { sta _4 //SEG49 [26] if((byte~) loop::$4!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto loop::@8 -- vbuz1_neq_0_then_la1 lda _4 + cmp #0 bne b8 //SEG50 [27] phi from loop::@8 to loop::@11 [phi:loop::@8->loop::@11] b11_from_b8: @@ -2423,6 +2424,7 @@ plexShowSprite: { sta _4 //SEG93 [48] if((byte~) plexShowSprite::$4!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto plexShowSprite::@1 -- vbuz1_neq_0_then_la1 lda _4 + cmp #0 bne b1 jmp b4 //SEG94 plexShowSprite::@4 @@ -2452,6 +2454,7 @@ plexShowSprite: { asl plex_sprite_msb //SEG102 [55] if((byte) plex_sprite_msb#25!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto plexShowSprite::@8 -- vbuz1_neq_0_then_la1 lda plex_sprite_msb + cmp #0 bne b8_from_b2 //SEG103 [56] phi from plexShowSprite::@2 to plexShowSprite::@return [phi:plexShowSprite::@2->plexShowSprite::@return] breturn_from_b2: @@ -2866,60 +2869,60 @@ Uplift Scope [plexInit] 38.5: zp ZP_BYTE:17 [ plexInit::i#2 plexInit::i#1 ] Uplift Scope [plexShowSprite] 4: zp ZP_BYTE:22 [ plexShowSprite::plexFreeAdd1_$0#0 ] 4: zp ZP_BYTE:23 [ plexShowSprite::plexFreeAdd1_$1#0 ] 4: zp ZP_BYTE:25 [ plexShowSprite::$3 ] 4: zp ZP_BYTE:26 [ plexShowSprite::$4 ] 4: zp ZP_BYTE:27 [ plexShowSprite::$6 ] 4: zp ZP_BYTE:28 [ plexShowSprite::$7 ] 3: zp ZP_BYTE:21 [ plexShowSprite::plexFreeAdd1_ypos#0 ] 2: zp ZP_BYTE:24 [ plexShowSprite::xpos_idx#0 ] 0.6: zp ZP_BYTE:20 [ plexShowSprite::plex_sprite_idx2#0 ] Uplift Scope [main] -Uplifting [plexSort] best 82385 combination reg byte x [ plexSort::s#3 plexSort::s#1 plexSort::s#6 ] reg byte x [ plexSort::plexFreePrepare1_s#2 plexSort::plexFreePrepare1_s#1 ] zp ZP_BYTE:31 [ plexSort::s#2 ] zp ZP_BYTE:10 [ plexSort::m#2 plexSort::m#1 ] zp ZP_BYTE:30 [ plexSort::nxt_y#0 ] zp ZP_BYTE:29 [ plexSort::nxt_idx#0 ] +Uplifting [plexSort] best 82589 combination reg byte x [ plexSort::s#3 plexSort::s#1 plexSort::s#6 ] reg byte x [ plexSort::plexFreePrepare1_s#2 plexSort::plexFreePrepare1_s#1 ] zp ZP_BYTE:31 [ plexSort::s#2 ] zp ZP_BYTE:10 [ plexSort::m#2 plexSort::m#1 ] zp ZP_BYTE:30 [ plexSort::nxt_y#0 ] zp ZP_BYTE:29 [ plexSort::nxt_idx#0 ] Limited combination testing to 10 combinations of 972 possible. -Uplifting [loop] best 81185 combination zp ZP_BYTE:19 [ loop::plexFreeNextYpos1_return#0 ] reg byte x [ loop::sy#2 loop::sy#1 ] zp ZP_BYTE:3 [ loop::y_idx#2 loop::y_idx#3 loop::y_idx#1 ] zp ZP_BYTE:18 [ loop::$4 ] zp ZP_BYTE:9 [ loop::ss#6 loop::ss#1 ] zp ZP_BYTE:2 [ loop::sin_idx#6 loop::sin_idx#1 ] +Uplifting [loop] best 81389 combination zp ZP_BYTE:19 [ loop::plexFreeNextYpos1_return#0 ] reg byte x [ loop::sy#2 loop::sy#1 ] zp ZP_BYTE:3 [ loop::y_idx#2 loop::y_idx#3 loop::y_idx#1 ] zp ZP_BYTE:18 [ loop::$4 ] zp ZP_BYTE:9 [ loop::ss#6 loop::ss#1 ] zp ZP_BYTE:2 [ loop::sin_idx#6 loop::sin_idx#1 ] Limited combination testing to 10 combinations of 1296 possible. -Uplifting [init] best 80935 combination reg byte x [ init::ss#2 init::ss#1 ] reg byte x [ init::sx#2 init::sx#1 ] zp ZP_BYTE:32 [ init::$6 ] zp ZP_WORD:14 [ init::xp#2 init::xp#1 ] +Uplifting [init] best 81139 combination reg byte x [ init::ss#2 init::ss#1 ] reg byte x [ init::sx#2 init::sx#1 ] zp ZP_BYTE:32 [ init::$6 ] zp ZP_WORD:14 [ init::xp#2 init::xp#1 ] Limited combination testing to 10 combinations of 36 possible. -Uplifting [] best 80935 combination zp ZP_BYTE:8 [ plex_sprite_msb#44 plex_sprite_msb#16 plex_sprite_msb#25 ] zp ZP_BYTE:5 [ plex_free_next#17 plex_free_next#13 ] zp ZP_BYTE:7 [ plex_show_idx#44 plex_show_idx#15 ] zp ZP_BYTE:6 [ plex_sprite_idx#44 plex_sprite_idx#15 ] +Uplifting [] best 81139 combination zp ZP_BYTE:8 [ plex_sprite_msb#44 plex_sprite_msb#16 plex_sprite_msb#25 ] zp ZP_BYTE:5 [ plex_free_next#17 plex_free_next#13 ] zp ZP_BYTE:7 [ plex_show_idx#44 plex_show_idx#15 ] zp ZP_BYTE:6 [ plex_sprite_idx#44 plex_sprite_idx#15 ] Limited combination testing to 10 combinations of 81 possible. -Uplifting [plexInit] best 80815 combination reg byte x [ plexInit::i#2 plexInit::i#1 ] -Uplifting [plexShowSprite] best 80805 combination reg byte a [ plexShowSprite::plexFreeAdd1_$0#0 ] reg byte a [ plexShowSprite::plexFreeAdd1_$1#0 ] zp ZP_BYTE:25 [ plexShowSprite::$3 ] zp ZP_BYTE:26 [ plexShowSprite::$4 ] zp ZP_BYTE:27 [ plexShowSprite::$6 ] zp ZP_BYTE:28 [ plexShowSprite::$7 ] zp ZP_BYTE:21 [ plexShowSprite::plexFreeAdd1_ypos#0 ] zp ZP_BYTE:24 [ plexShowSprite::xpos_idx#0 ] zp ZP_BYTE:20 [ plexShowSprite::plex_sprite_idx2#0 ] +Uplifting [plexInit] best 81019 combination reg byte x [ plexInit::i#2 plexInit::i#1 ] +Uplifting [plexShowSprite] best 81009 combination reg byte a [ plexShowSprite::plexFreeAdd1_$0#0 ] reg byte a [ plexShowSprite::plexFreeAdd1_$1#0 ] zp ZP_BYTE:25 [ plexShowSprite::$3 ] zp ZP_BYTE:26 [ plexShowSprite::$4 ] zp ZP_BYTE:27 [ plexShowSprite::$6 ] zp ZP_BYTE:28 [ plexShowSprite::$7 ] zp ZP_BYTE:21 [ plexShowSprite::plexFreeAdd1_ypos#0 ] zp ZP_BYTE:24 [ plexShowSprite::xpos_idx#0 ] zp ZP_BYTE:20 [ plexShowSprite::plex_sprite_idx2#0 ] Limited combination testing to 10 combinations of 147456 possible. -Uplifting [main] best 80805 combination +Uplifting [main] best 81009 combination Attempting to uplift remaining variables inzp ZP_BYTE:19 [ loop::plexFreeNextYpos1_return#0 ] -Uplifting [loop] best 80805 combination zp ZP_BYTE:19 [ loop::plexFreeNextYpos1_return#0 ] +Uplifting [loop] best 81009 combination zp ZP_BYTE:19 [ loop::plexFreeNextYpos1_return#0 ] Attempting to uplift remaining variables inzp ZP_BYTE:3 [ loop::y_idx#2 loop::y_idx#3 loop::y_idx#1 ] -Uplifting [loop] best 80275 combination reg byte y [ loop::y_idx#2 loop::y_idx#3 loop::y_idx#1 ] +Uplifting [loop] best 80479 combination reg byte y [ loop::y_idx#2 loop::y_idx#3 loop::y_idx#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:18 [ loop::$4 ] -Uplifting [loop] best 79875 combination reg byte a [ loop::$4 ] +Uplifting [loop] best 79879 combination reg byte a [ loop::$4 ] Attempting to uplift remaining variables inzp ZP_BYTE:31 [ plexSort::s#2 ] -Uplifting [plexSort] best 79275 combination reg byte x [ plexSort::s#2 ] +Uplifting [plexSort] best 79279 combination reg byte x [ plexSort::s#2 ] Attempting to uplift remaining variables inzp ZP_BYTE:10 [ plexSort::m#2 plexSort::m#1 ] -Uplifting [plexSort] best 79275 combination zp ZP_BYTE:10 [ plexSort::m#2 plexSort::m#1 ] +Uplifting [plexSort] best 79279 combination zp ZP_BYTE:10 [ plexSort::m#2 plexSort::m#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:9 [ loop::ss#6 loop::ss#1 ] -Uplifting [loop] best 79275 combination zp ZP_BYTE:9 [ loop::ss#6 loop::ss#1 ] +Uplifting [loop] best 79279 combination zp ZP_BYTE:9 [ loop::ss#6 loop::ss#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:30 [ plexSort::nxt_y#0 ] -Uplifting [plexSort] best 79275 combination zp ZP_BYTE:30 [ plexSort::nxt_y#0 ] +Uplifting [plexSort] best 79279 combination zp ZP_BYTE:30 [ plexSort::nxt_y#0 ] Attempting to uplift remaining variables inzp ZP_BYTE:29 [ plexSort::nxt_idx#0 ] -Uplifting [plexSort] best 79275 combination zp ZP_BYTE:29 [ plexSort::nxt_idx#0 ] +Uplifting [plexSort] best 79279 combination zp ZP_BYTE:29 [ plexSort::nxt_idx#0 ] Attempting to uplift remaining variables inzp ZP_BYTE:8 [ plex_sprite_msb#44 plex_sprite_msb#16 plex_sprite_msb#25 ] -Uplifting [] best 79275 combination zp ZP_BYTE:8 [ plex_sprite_msb#44 plex_sprite_msb#16 plex_sprite_msb#25 ] +Uplifting [] best 79279 combination zp ZP_BYTE:8 [ plex_sprite_msb#44 plex_sprite_msb#16 plex_sprite_msb#25 ] Attempting to uplift remaining variables inzp ZP_BYTE:5 [ plex_free_next#17 plex_free_next#13 ] -Uplifting [] best 79275 combination zp ZP_BYTE:5 [ plex_free_next#17 plex_free_next#13 ] +Uplifting [] best 79279 combination zp ZP_BYTE:5 [ plex_free_next#17 plex_free_next#13 ] Attempting to uplift remaining variables inzp ZP_BYTE:32 [ init::$6 ] -Uplifting [init] best 79235 combination reg byte a [ init::$6 ] +Uplifting [init] best 79239 combination reg byte a [ init::$6 ] Attempting to uplift remaining variables inzp ZP_BYTE:7 [ plex_show_idx#44 plex_show_idx#15 ] -Uplifting [] best 79235 combination zp ZP_BYTE:7 [ plex_show_idx#44 plex_show_idx#15 ] +Uplifting [] best 79239 combination zp ZP_BYTE:7 [ plex_show_idx#44 plex_show_idx#15 ] Attempting to uplift remaining variables inzp ZP_BYTE:6 [ plex_sprite_idx#44 plex_sprite_idx#15 ] -Uplifting [] best 78927 combination reg byte x [ plex_sprite_idx#44 plex_sprite_idx#15 ] +Uplifting [] best 78931 combination reg byte x [ plex_sprite_idx#44 plex_sprite_idx#15 ] Attempting to uplift remaining variables inzp ZP_BYTE:2 [ loop::sin_idx#6 loop::sin_idx#1 ] -Uplifting [loop] best 78927 combination zp ZP_BYTE:2 [ loop::sin_idx#6 loop::sin_idx#1 ] +Uplifting [loop] best 78931 combination zp ZP_BYTE:2 [ loop::sin_idx#6 loop::sin_idx#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:25 [ plexShowSprite::$3 ] -Uplifting [plexShowSprite] best 78921 combination reg byte a [ plexShowSprite::$3 ] +Uplifting [plexShowSprite] best 78925 combination reg byte a [ plexShowSprite::$3 ] Attempting to uplift remaining variables inzp ZP_BYTE:26 [ plexShowSprite::$4 ] -Uplifting [plexShowSprite] best 78917 combination reg byte a [ plexShowSprite::$4 ] +Uplifting [plexShowSprite] best 78919 combination reg byte a [ plexShowSprite::$4 ] Attempting to uplift remaining variables inzp ZP_BYTE:27 [ plexShowSprite::$6 ] -Uplifting [plexShowSprite] best 78911 combination reg byte a [ plexShowSprite::$6 ] +Uplifting [plexShowSprite] best 78913 combination reg byte a [ plexShowSprite::$6 ] Attempting to uplift remaining variables inzp ZP_BYTE:28 [ plexShowSprite::$7 ] -Uplifting [plexShowSprite] best 78907 combination reg byte x [ plexShowSprite::$7 ] +Uplifting [plexShowSprite] best 78909 combination reg byte x [ plexShowSprite::$7 ] Attempting to uplift remaining variables inzp ZP_BYTE:21 [ plexShowSprite::plexFreeAdd1_ypos#0 ] -Uplifting [plexShowSprite] best 78898 combination reg byte a [ plexShowSprite::plexFreeAdd1_ypos#0 ] +Uplifting [plexShowSprite] best 78900 combination reg byte a [ plexShowSprite::plexFreeAdd1_ypos#0 ] Attempting to uplift remaining variables inzp ZP_BYTE:24 [ plexShowSprite::xpos_idx#0 ] -Uplifting [plexShowSprite] best 78898 combination zp ZP_BYTE:24 [ plexShowSprite::xpos_idx#0 ] +Uplifting [plexShowSprite] best 78900 combination zp ZP_BYTE:24 [ plexShowSprite::xpos_idx#0 ] Attempting to uplift remaining variables inzp ZP_BYTE:20 [ plexShowSprite::plex_sprite_idx2#0 ] -Uplifting [plexShowSprite] best 78898 combination zp ZP_BYTE:20 [ plexShowSprite::plex_sprite_idx2#0 ] +Uplifting [plexShowSprite] best 78900 combination zp ZP_BYTE:20 [ plexShowSprite::plex_sprite_idx2#0 ] Coalescing zero page register [ zp ZP_BYTE:5 [ plex_free_next#17 plex_free_next#13 ] ] with [ zp ZP_BYTE:10 [ plexSort::m#2 plexSort::m#1 ] ] Coalescing zero page register [ zp ZP_BYTE:7 [ plex_show_idx#44 plex_show_idx#15 ] ] with [ zp ZP_BYTE:29 [ plexSort::nxt_idx#0 ] ] Coalescing zero page register [ zp ZP_BYTE:8 [ plex_sprite_msb#44 plex_sprite_msb#16 plex_sprite_msb#25 ] ] with [ zp ZP_BYTE:30 [ plexSort::nxt_y#0 ] ] @@ -3231,6 +3234,7 @@ plexShowSprite: { asl plex_sprite_msb //SEG102 [55] if((byte) plex_sprite_msb#25!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto plexShowSprite::@8 -- vbuz1_neq_0_then_la1 lda plex_sprite_msb + cmp #0 bne b8_from_b2 //SEG103 [56] phi from plexShowSprite::@2 to plexShowSprite::@return [phi:plexShowSprite::@2->plexShowSprite::@return] breturn_from_b2: @@ -3832,7 +3836,7 @@ reg byte a [ init::$6 ] FINAL ASSEMBLER -Score: 63464 +Score: 63466 //SEG0 Basic Upstart .pc = $801 "Basic" @@ -4079,6 +4083,7 @@ plexShowSprite: { asl plex_sprite_msb //SEG102 [55] if((byte) plex_sprite_msb#25!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto plexShowSprite::@8 -- vbuz1_neq_0_then_la1 lda plex_sprite_msb + cmp #0 bne breturn //SEG103 [56] phi from plexShowSprite::@2 to plexShowSprite::@return [phi:plexShowSprite::@2->plexShowSprite::@return] //SEG104 [56] phi (byte) plex_sprite_msb#16 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:plexShowSprite::@2->plexShowSprite::@return#0] -- vbuz1=vbuc1 diff --git a/src/test/ref/examples/rotate/rotate.log b/src/test/ref/examples/rotate/rotate.log index f6e6507ae..4371049fb 100644 --- a/src/test/ref/examples/rotate/rotate.log +++ b/src/test/ref/examples/rotate/rotate.log @@ -2520,6 +2520,7 @@ mulf_init: { sta _2 //SEG174 [98] if((byte~) mulf_init::$2!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto mulf_init::@2 -- vbuz1_neq_0_then_la1 lda _2 + cmp #0 bne b2_from_b1 jmp b5 //SEG175 mulf_init::@5 @@ -2628,6 +2629,7 @@ mulf_init: { sta x_255 //SEG205 [115] if((byte) mulf_init::x_255#1!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto mulf_init::@12 -- vbuz1_neq_0_then_la1 lda x_255 + cmp #0 bne b12_from_b3 //SEG206 [116] phi from mulf_init::@3 to mulf_init::@4 [phi:mulf_init::@3->mulf_init::@4] b4_from_b3: @@ -2890,33 +2892,33 @@ Uplift Scope [mulf8u_prepared] 4: zp ZP_WORD:63 [ mulf8u_prepared::return#2 ] 1. Uplift Scope [main] Uplift Scope [] -Uplifting [anim] best 53479 combination zp ZP_BYTE:4 [ anim::sprite_msb#10 anim::sprite_msb#5 anim::sprite_msb#2 anim::sprite_msb#1 ] zp ZP_WORD:28 [ anim::$4 ] zp ZP_WORD:34 [ anim::$6 ] zp ZP_WORD:40 [ anim::$9 ] zp ZP_WORD:42 [ anim::$10 ] zp ZP_WORD:48 [ anim::$11 ] zp ZP_WORD:50 [ anim::$12 ] reg byte a [ anim::$15 ] reg byte a [ anim::$18 ] reg byte a [ anim::$22 ] zp ZP_BYTE:62 [ anim::$25 ] zp ZP_BYTE:3 [ anim::i#10 anim::i#1 ] zp ZP_BYTE:54 [ anim::$13 ] zp ZP_BYTE:61 [ anim::i2#0 ] zp ZP_BYTE:60 [ anim::ypos#0 ] zp ZP_WORD:56 [ anim::xpos#0 ] zp ZP_WORD:44 [ anim::xr#1 ] zp ZP_WORD:52 [ anim::yr#1 ] zp ZP_BYTE:25 [ anim::y#0 ] zp ZP_WORD:30 [ anim::xr#0 ] zp ZP_WORD:36 [ anim::yr#0 ] zp ZP_BYTE:24 [ anim::x#0 ] zp ZP_BYTE:2 [ anim::angle#10 anim::angle#1 ] +Uplifting [anim] best 53519 combination zp ZP_BYTE:4 [ anim::sprite_msb#10 anim::sprite_msb#5 anim::sprite_msb#2 anim::sprite_msb#1 ] zp ZP_WORD:28 [ anim::$4 ] zp ZP_WORD:34 [ anim::$6 ] zp ZP_WORD:40 [ anim::$9 ] zp ZP_WORD:42 [ anim::$10 ] zp ZP_WORD:48 [ anim::$11 ] zp ZP_WORD:50 [ anim::$12 ] reg byte a [ anim::$15 ] reg byte a [ anim::$18 ] reg byte a [ anim::$22 ] zp ZP_BYTE:62 [ anim::$25 ] zp ZP_BYTE:3 [ anim::i#10 anim::i#1 ] zp ZP_BYTE:54 [ anim::$13 ] zp ZP_BYTE:61 [ anim::i2#0 ] zp ZP_BYTE:60 [ anim::ypos#0 ] zp ZP_WORD:56 [ anim::xpos#0 ] zp ZP_WORD:44 [ anim::xr#1 ] zp ZP_WORD:52 [ anim::yr#1 ] zp ZP_BYTE:25 [ anim::y#0 ] zp ZP_WORD:30 [ anim::xr#0 ] zp ZP_WORD:36 [ anim::yr#0 ] zp ZP_BYTE:24 [ anim::x#0 ] zp ZP_BYTE:2 [ anim::angle#10 anim::angle#1 ] Limited combination testing to 100 combinations of 368640 possible. -Uplifting [mulf8s_prepared] best 52258 combination reg byte y [ mulf8s_prepared::b#4 mulf8s_prepared::b#0 mulf8s_prepared::b#2 mulf8s_prepared::b#1 mulf8s_prepared::b#3 ] zp ZP_WORD:26 [ mulf8s_prepared::return#2 ] zp ZP_WORD:32 [ mulf8s_prepared::return#3 ] zp ZP_WORD:38 [ mulf8s_prepared::return#4 ] zp ZP_WORD:46 [ mulf8s_prepared::return#10 ] zp ZP_WORD:6 [ mulf8s_prepared::m#4 mulf8s_prepared::m#5 mulf8s_prepared::m#1 mulf8s_prepared::m#0 mulf8s_prepared::m#2 ] reg byte a [ mulf8s_prepared::$5 ] reg byte a [ mulf8s_prepared::$15 ] reg byte a [ mulf8s_prepared::$11 ] zp ZP_BYTE:68 [ mulf8s_prepared::$16 ] +Uplifting [mulf8s_prepared] best 52298 combination reg byte y [ mulf8s_prepared::b#4 mulf8s_prepared::b#0 mulf8s_prepared::b#2 mulf8s_prepared::b#1 mulf8s_prepared::b#3 ] zp ZP_WORD:26 [ mulf8s_prepared::return#2 ] zp ZP_WORD:32 [ mulf8s_prepared::return#3 ] zp ZP_WORD:38 [ mulf8s_prepared::return#4 ] zp ZP_WORD:46 [ mulf8s_prepared::return#10 ] zp ZP_WORD:6 [ mulf8s_prepared::m#4 mulf8s_prepared::m#5 mulf8s_prepared::m#1 mulf8s_prepared::m#0 mulf8s_prepared::m#2 ] reg byte a [ mulf8s_prepared::$5 ] reg byte a [ mulf8s_prepared::$15 ] reg byte a [ mulf8s_prepared::$11 ] zp ZP_BYTE:68 [ mulf8s_prepared::$16 ] Limited combination testing to 100 combinations of 512 possible. -Uplifting [mulf8u_prepare] best 51655 combination reg byte a [ mulf8u_prepare::a#2 mulf8u_prepare::a#3 mulf8u_prepare::a#4 ] -Uplifting [mulf_init] best 51425 combination zp ZP_WORD:16 [ mulf_init::sqr#3 mulf_init::sqr#4 mulf_init::sqr#1 mulf_init::sqr#2 ] reg byte x [ mulf_init::c#2 mulf_init::c#1 ] zp ZP_BYTE:15 [ mulf_init::x_2#3 mulf_init::x_2#2 mulf_init::x_2#1 ] reg byte a [ mulf_init::$2 ] reg byte a [ mulf_init::$5 ] reg byte a [ mulf_init::$6 ] zp ZP_WORD:19 [ mulf_init::sqr2_lo#2 mulf_init::sqr2_lo#1 ] zp ZP_WORD:11 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_lo#1 ] zp ZP_BYTE:18 [ mulf_init::x_255#2 mulf_init::x_255#1 ] zp ZP_WORD:21 [ mulf_init::sqr2_hi#2 mulf_init::sqr2_hi#1 ] zp ZP_BYTE:23 [ mulf_init::dir#2 mulf_init::dir#3 ] zp ZP_WORD:13 [ mulf_init::sqr1_hi#2 mulf_init::sqr1_hi#1 ] +Uplifting [mulf8u_prepare] best 51695 combination reg byte a [ mulf8u_prepare::a#2 mulf8u_prepare::a#3 mulf8u_prepare::a#4 ] +Uplifting [mulf_init] best 51445 combination zp ZP_WORD:16 [ mulf_init::sqr#3 mulf_init::sqr#4 mulf_init::sqr#1 mulf_init::sqr#2 ] reg byte x [ mulf_init::c#2 mulf_init::c#1 ] zp ZP_BYTE:15 [ mulf_init::x_2#3 mulf_init::x_2#2 mulf_init::x_2#1 ] reg byte a [ mulf_init::$2 ] reg byte a [ mulf_init::$5 ] reg byte a [ mulf_init::$6 ] zp ZP_WORD:19 [ mulf_init::sqr2_lo#2 mulf_init::sqr2_lo#1 ] zp ZP_WORD:11 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_lo#1 ] zp ZP_BYTE:18 [ mulf_init::x_255#2 mulf_init::x_255#1 ] zp ZP_WORD:21 [ mulf_init::sqr2_hi#2 mulf_init::sqr2_hi#1 ] zp ZP_BYTE:23 [ mulf_init::dir#2 mulf_init::dir#3 ] zp ZP_WORD:13 [ mulf_init::sqr1_hi#2 mulf_init::sqr1_hi#1 ] Limited combination testing to 100 combinations of 1024 possible. -Uplifting [init] best 51275 combination reg byte x [ init::i#2 init::i#1 ] -Uplifting [mulf8u_prepared] best 51275 combination zp ZP_WORD:63 [ mulf8u_prepared::return#2 ] zp ZP_WORD:69 [ mulf8u_prepared::return#0 ] -Uplifting [main] best 51275 combination -Uplifting [] best 51275 combination +Uplifting [init] best 51295 combination reg byte x [ init::i#2 init::i#1 ] +Uplifting [mulf8u_prepared] best 51295 combination zp ZP_WORD:63 [ mulf8u_prepared::return#2 ] zp ZP_WORD:69 [ mulf8u_prepared::return#0 ] +Uplifting [main] best 51295 combination +Uplifting [] best 51295 combination Attempting to uplift remaining variables inzp ZP_BYTE:4 [ anim::sprite_msb#10 anim::sprite_msb#5 anim::sprite_msb#2 anim::sprite_msb#1 ] -Uplifting [anim] best 51275 combination zp ZP_BYTE:4 [ anim::sprite_msb#10 anim::sprite_msb#5 anim::sprite_msb#2 anim::sprite_msb#1 ] +Uplifting [anim] best 51295 combination zp ZP_BYTE:4 [ anim::sprite_msb#10 anim::sprite_msb#5 anim::sprite_msb#2 anim::sprite_msb#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:62 [ anim::$25 ] -Uplifting [anim] best 50675 combination reg byte a [ anim::$25 ] +Uplifting [anim] best 50695 combination reg byte a [ anim::$25 ] Attempting to uplift remaining variables inzp ZP_BYTE:3 [ anim::i#10 anim::i#1 ] -Uplifting [anim] best 50675 combination zp ZP_BYTE:3 [ anim::i#10 anim::i#1 ] +Uplifting [anim] best 50695 combination zp ZP_BYTE:3 [ anim::i#10 anim::i#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:54 [ anim::$13 ] -Uplifting [anim] best 50075 combination reg byte a [ anim::$13 ] +Uplifting [anim] best 50095 combination reg byte a [ anim::$13 ] Attempting to uplift remaining variables inzp ZP_BYTE:61 [ anim::i2#0 ] -Uplifting [anim] best 49375 combination reg byte x [ anim::i2#0 ] +Uplifting [anim] best 49395 combination reg byte x [ anim::i2#0 ] Attempting to uplift remaining variables inzp ZP_BYTE:60 [ anim::ypos#0 ] -Uplifting [anim] best 49175 combination reg byte y [ anim::ypos#0 ] +Uplifting [anim] best 49195 combination reg byte y [ anim::ypos#0 ] Attempting to uplift remaining variables inzp ZP_BYTE:15 [ mulf_init::x_2#3 mulf_init::x_2#2 mulf_init::x_2#1 ] -Uplifting [mulf_init] best 49175 combination zp ZP_BYTE:15 [ mulf_init::x_2#3 mulf_init::x_2#2 mulf_init::x_2#1 ] +Uplifting [mulf_init] best 49195 combination zp ZP_BYTE:15 [ mulf_init::x_2#3 mulf_init::x_2#2 mulf_init::x_2#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:25 [ anim::y#0 ] -Uplifting [anim] best 49175 combination zp ZP_BYTE:25 [ anim::y#0 ] +Uplifting [anim] best 49195 combination zp ZP_BYTE:25 [ anim::y#0 ] Attempting to uplift remaining variables inzp ZP_BYTE:18 [ mulf_init::x_255#2 mulf_init::x_255#1 ] Uplifting [mulf_init] best 49055 combination reg byte x [ mulf_init::x_255#2 mulf_init::x_255#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:24 [ anim::x#0 ] diff --git a/src/test/ref/examples/scrollbig/scrollbig.asm b/src/test/ref/examples/scrollbig/scrollbig.asm index 0f284f7e0..15e446bc3 100644 --- a/src/test/ref/examples/scrollbig/scrollbig.asm +++ b/src/test/ref/examples/scrollbig/scrollbig.asm @@ -53,6 +53,7 @@ scroll_bit: { .label sc = 5 lsr current_bit lda current_bit + cmp #0 bne b1 jsr next_char sta c diff --git a/src/test/ref/examples/scrollbig/scrollbig.log b/src/test/ref/examples/scrollbig/scrollbig.log index a9810874f..d41f872c3 100644 --- a/src/test/ref/examples/scrollbig/scrollbig.log +++ b/src/test/ref/examples/scrollbig/scrollbig.log @@ -1716,6 +1716,7 @@ scroll_bit: { lsr current_bit //SEG54 [20] if((byte) current_bit#5!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto scroll_bit::@1 -- vbuz1_neq_0_then_la1 lda current_bit + cmp #0 bne b1_from_scroll_bit //SEG55 [21] phi from scroll_bit to scroll_bit::@4 [phi:scroll_bit->scroll_bit::@4] b4_from_scroll_bit: @@ -2092,18 +2093,18 @@ Uplift Scope [next_char] 8.5: zp ZP_BYTE:13 [ next_char::return#1 next_char::c#0 Uplift Scope [main] Uplift Scope [scroll_soft] -Uplifting [scroll_bit] best 28236 combination reg byte a [ scroll_bit::bits#0 ] reg byte a [ scroll_bit::$9 ] reg byte x [ scroll_bit::r#2 scroll_bit::r#1 ] zp ZP_WORD:7 [ scroll_bit::sc#2 scroll_bit::sc#1 ] reg byte a [ scroll_bit::b#2 ] zp ZP_BYTE:17 [ scroll_bit::$3 ] zp ZP_WORD:18 [ scroll_bit::c#0 ] zp ZP_WORD:20 [ scroll_bit::$4 ] +Uplifting [scroll_bit] best 28238 combination reg byte a [ scroll_bit::bits#0 ] reg byte a [ scroll_bit::$9 ] reg byte x [ scroll_bit::r#2 scroll_bit::r#1 ] zp ZP_WORD:7 [ scroll_bit::sc#2 scroll_bit::sc#1 ] reg byte a [ scroll_bit::b#2 ] zp ZP_BYTE:17 [ scroll_bit::$3 ] zp ZP_WORD:18 [ scroll_bit::c#0 ] zp ZP_WORD:20 [ scroll_bit::$4 ] Limited combination testing to 100 combinations of 512 possible. -Uplifting [scroll_hard] best 24936 combination reg byte x [ scroll_hard::i#2 scroll_hard::i#1 ] -Uplifting [] best 24624 combination zp ZP_WORD:4 [ current_chargen#27 current_chargen#11 current_chargen#19 current_chargen#5 ] zp ZP_BYTE:3 [ current_bit#29 current_bit#12 current_bit#21 current_bit#5 ] zp ZP_WORD:11 [ nxt#18 nxt#31 nxt#14 nxt#36 nxt#19 ] reg byte x [ scroll#18 scroll#10 scroll#3 ] -Uplifting [fillscreen] best 24624 combination zp ZP_WORD:14 [ fillscreen::cursor#2 fillscreen::cursor#1 ] -Uplifting [next_char] best 24606 combination reg byte a [ next_char::return#1 next_char::c#0 next_char::c#1 ] reg byte a [ next_char::return#0 ] -Uplifting [main] best 24606 combination -Uplifting [scroll_soft] best 24606 combination +Uplifting [scroll_hard] best 24938 combination reg byte x [ scroll_hard::i#2 scroll_hard::i#1 ] +Uplifting [] best 24626 combination zp ZP_WORD:4 [ current_chargen#27 current_chargen#11 current_chargen#19 current_chargen#5 ] zp ZP_BYTE:3 [ current_bit#29 current_bit#12 current_bit#21 current_bit#5 ] zp ZP_WORD:11 [ nxt#18 nxt#31 nxt#14 nxt#36 nxt#19 ] reg byte x [ scroll#18 scroll#10 scroll#3 ] +Uplifting [fillscreen] best 24626 combination zp ZP_WORD:14 [ fillscreen::cursor#2 fillscreen::cursor#1 ] +Uplifting [next_char] best 24608 combination reg byte a [ next_char::return#1 next_char::c#0 next_char::c#1 ] reg byte a [ next_char::return#0 ] +Uplifting [main] best 24608 combination +Uplifting [scroll_soft] best 24608 combination Attempting to uplift remaining variables inzp ZP_BYTE:3 [ current_bit#29 current_bit#12 current_bit#21 current_bit#5 ] -Uplifting [] best 24606 combination zp ZP_BYTE:3 [ current_bit#29 current_bit#12 current_bit#21 current_bit#5 ] +Uplifting [] best 24608 combination zp ZP_BYTE:3 [ current_bit#29 current_bit#12 current_bit#21 current_bit#5 ] Attempting to uplift remaining variables inzp ZP_BYTE:17 [ scroll_bit::$3 ] -Uplifting [scroll_bit] best 24600 combination reg byte a [ scroll_bit::$3 ] +Uplifting [scroll_bit] best 24602 combination reg byte a [ scroll_bit::$3 ] Coalescing zero page register with common assignment [ zp ZP_WORD:4 [ current_chargen#27 current_chargen#11 current_chargen#19 current_chargen#5 ] ] with [ zp ZP_WORD:20 [ scroll_bit::$4 ] ] - score: 1 Coalescing zero page register with common assignment [ zp ZP_WORD:4 [ current_chargen#27 current_chargen#11 current_chargen#19 current_chargen#5 scroll_bit::$4 ] ] with [ zp ZP_WORD:18 [ scroll_bit::c#0 ] ] - score: 1 Coalescing zero page register [ zp ZP_WORD:4 [ current_chargen#27 current_chargen#11 current_chargen#19 current_chargen#5 scroll_bit::$4 scroll_bit::c#0 ] ] with [ zp ZP_WORD:14 [ fillscreen::cursor#2 fillscreen::cursor#1 ] ] @@ -2251,6 +2252,7 @@ scroll_bit: { lsr current_bit //SEG54 [20] if((byte) current_bit#5!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto scroll_bit::@1 -- vbuz1_neq_0_then_la1 lda current_bit + cmp #0 bne b1_from_scroll_bit //SEG55 [21] phi from scroll_bit to scroll_bit::@4 [phi:scroll_bit->scroll_bit::@4] b4_from_scroll_bit: @@ -2721,7 +2723,7 @@ reg byte a [ scroll_bit::$9 ] FINAL ASSEMBLER -Score: 20826 +Score: 20828 //SEG0 Basic Upstart .pc = $801 "Basic" @@ -2833,6 +2835,7 @@ scroll_bit: { lsr current_bit //SEG54 [20] if((byte) current_bit#5!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto scroll_bit::@1 -- vbuz1_neq_0_then_la1 lda current_bit + cmp #0 bne b1 //SEG55 [21] phi from scroll_bit to scroll_bit::@4 [phi:scroll_bit->scroll_bit::@4] //SEG56 scroll_bit::@4 diff --git a/src/test/ref/examples/sinplotter/sine-plotter.log b/src/test/ref/examples/sinplotter/sine-plotter.log index 0cd4169ac..53158a0cf 100644 --- a/src/test/ref/examples/sinplotter/sine-plotter.log +++ b/src/test/ref/examples/sinplotter/sine-plotter.log @@ -4916,6 +4916,7 @@ bitmap_init: { lsr bits //SEG391 [204] if((byte) bitmap_init::bits#1!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto bitmap_init::@10 -- vbuz1_neq_0_then_la1 lda bits + cmp #0 bne b10_from_b1 //SEG392 [205] phi from bitmap_init::@1 to bitmap_init::@2 [phi:bitmap_init::@1->bitmap_init::@2] b2_from_b1: @@ -4929,6 +4930,7 @@ bitmap_init: { inc x //SEG396 [207] if((byte) bitmap_init::x#1!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto bitmap_init::@1 -- vbuz1_neq_0_then_la1 lda x + cmp #0 bne b1_from_b2 //SEG397 [208] phi from bitmap_init::@2 to bitmap_init::@3 [phi:bitmap_init::@2->bitmap_init::@3] b3_from_b2: @@ -5000,6 +5002,7 @@ bitmap_init: { inc y //SEG418 [220] if((byte) bitmap_init::y#1!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto bitmap_init::@3 -- vbuz1_neq_0_then_la1 lda y + cmp #0 bne b3_from_b4 jmp breturn //SEG419 bitmap_init::@return @@ -5406,10 +5409,10 @@ Uplift Scope [div32u16u] 4: zp ZP_DWORD:89 [ div32u16u::return#2 ] 4: zp ZP_WORD Uplift Scope [] 0.8: zp ZP_WORD:186 [ rem16u#1 ] Uplift Scope [main] -Uplifting [mul16u] best 36769 combination zp ZP_DWORD:27 [ mul16u::res#2 mul16u::res#6 mul16u::res#1 ] zp ZP_DWORD:31 [ mul16u::mb#2 mul16u::mb#0 mul16u::mb#1 ] reg byte a [ mul16u::$1 ] zp ZP_WORD:25 [ mul16u::a#3 mul16u::a#6 mul16u::a#8 mul16u::a#2 mul16u::a#0 ] zp ZP_WORD:23 [ mul16u::b#2 mul16u::b#1 ] zp ZP_DWORD:113 [ mul16u::return#2 ] zp ZP_DWORD:158 [ mul16u::return#3 ] -Uplifting [wrap_y] best 36586 combination zp ZP_WORD:9 [ wrap_y::y#6 wrap_y::y#4 wrap_y::y#9 wrap_y::y#0 wrap_y::y#1 wrap_y::y#2 wrap_y::y#3 ] reg byte a [ wrap_y::return#0 ] reg byte a [ wrap_y::return#1 ] reg byte a [ wrap_y::return#2 ] -Uplifting [bitmap_clear] best 35686 combination zp ZP_WORD:55 [ bitmap_clear::bitmap#2 bitmap_clear::bitmap#3 bitmap_clear::bitmap#5 bitmap_clear::bitmap#1 ] reg byte x [ bitmap_clear::x#2 bitmap_clear::x#1 ] zp ZP_BYTE:54 [ bitmap_clear::y#4 bitmap_clear::y#1 ] zp ZP_WORD:188 [ bitmap_clear::$3 ] -Uplifting [divr16u] best 35476 combination zp ZP_WORD:47 [ divr16u::rem#5 divr16u::rem#10 divr16u::rem#4 divr16u::rem#11 divr16u::rem#6 divr16u::rem#0 divr16u::rem#1 divr16u::rem#2 ] zp ZP_WORD:51 [ divr16u::quotient#3 divr16u::return#0 divr16u::quotient#1 divr16u::quotient#2 ] reg byte a [ divr16u::$1 ] reg byte a [ divr16u::$2 ] reg byte x [ divr16u::i#2 divr16u::i#1 ] zp ZP_WORD:49 [ divr16u::dividend#3 divr16u::dividend#5 divr16u::dividend#0 ] zp ZP_WORD:172 [ divr16u::return#2 ] zp ZP_WORD:176 [ divr16u::return#3 ] +Uplifting [mul16u] best 36829 combination zp ZP_DWORD:27 [ mul16u::res#2 mul16u::res#6 mul16u::res#1 ] zp ZP_DWORD:31 [ mul16u::mb#2 mul16u::mb#0 mul16u::mb#1 ] reg byte a [ mul16u::$1 ] zp ZP_WORD:25 [ mul16u::a#3 mul16u::a#6 mul16u::a#8 mul16u::a#2 mul16u::a#0 ] zp ZP_WORD:23 [ mul16u::b#2 mul16u::b#1 ] zp ZP_DWORD:113 [ mul16u::return#2 ] zp ZP_DWORD:158 [ mul16u::return#3 ] +Uplifting [wrap_y] best 36646 combination zp ZP_WORD:9 [ wrap_y::y#6 wrap_y::y#4 wrap_y::y#9 wrap_y::y#0 wrap_y::y#1 wrap_y::y#2 wrap_y::y#3 ] reg byte a [ wrap_y::return#0 ] reg byte a [ wrap_y::return#1 ] reg byte a [ wrap_y::return#2 ] +Uplifting [bitmap_clear] best 35746 combination zp ZP_WORD:55 [ bitmap_clear::bitmap#2 bitmap_clear::bitmap#3 bitmap_clear::bitmap#5 bitmap_clear::bitmap#1 ] reg byte x [ bitmap_clear::x#2 bitmap_clear::x#1 ] zp ZP_BYTE:54 [ bitmap_clear::y#4 bitmap_clear::y#1 ] zp ZP_WORD:188 [ bitmap_clear::$3 ] +Uplifting [divr16u] best 35536 combination zp ZP_WORD:47 [ divr16u::rem#5 divr16u::rem#10 divr16u::rem#4 divr16u::rem#11 divr16u::rem#6 divr16u::rem#0 divr16u::rem#1 divr16u::rem#2 ] zp ZP_WORD:51 [ divr16u::quotient#3 divr16u::return#0 divr16u::quotient#1 divr16u::quotient#2 ] reg byte a [ divr16u::$1 ] reg byte a [ divr16u::$2 ] reg byte x [ divr16u::i#2 divr16u::i#1 ] zp ZP_WORD:49 [ divr16u::dividend#3 divr16u::dividend#5 divr16u::dividend#0 ] zp ZP_WORD:172 [ divr16u::return#2 ] zp ZP_WORD:176 [ divr16u::return#3 ] Uplifting [bitmap_init] best 35036 combination zp ZP_WORD:61 [ bitmap_init::yoffs#2 bitmap_init::yoffs#4 bitmap_init::yoffs#1 ] reg byte a [ bitmap_init::bits#3 bitmap_init::bits#4 bitmap_init::bits#1 ] reg byte x [ bitmap_init::y#2 bitmap_init::y#1 ] reg byte x [ bitmap_init::x#2 bitmap_init::x#1 ] reg byte a [ bitmap_init::$4 ] zp ZP_BYTE:192 [ bitmap_init::$5 ] zp ZP_BYTE:193 [ bitmap_init::$6 ] zp ZP_BYTE:194 [ bitmap_init::$7 ] zp ZP_BYTE:190 [ bitmap_init::$3 ] Limited combination testing to 100 combinations of 61440 possible. Uplifting [render_sine] best 34956 combination zp ZP_WORD:65 [ render_sine::$0 ] zp ZP_WORD:67 [ render_sine::$1 ] zp ZP_WORD:69 [ render_sine::sin_val#0 ] zp ZP_WORD:73 [ render_sine::$4 ] zp ZP_WORD:75 [ render_sine::$5 ] zp ZP_WORD:77 [ render_sine::sin2_val#0 ] zp ZP_WORD:4 [ render_sine::xpos#3 render_sine::xpos#8 render_sine::xpos#1 ] zp ZP_WORD:2 [ render_sine::sin_idx#2 render_sine::sin_idx#1 ] reg byte x [ render_sine::ypos#0 ] reg byte x [ render_sine::ypos2#0 ] diff --git a/src/test/ref/examples/tetris/tetris.asm b/src/test/ref/examples/tetris/tetris.asm index f9de66ca5..f975c8ba7 100644 --- a/src/test/ref/examples/tetris/tetris.asm +++ b/src/test/ref/examples/tetris/tetris.asm @@ -34,6 +34,7 @@ .const COLLISION_LEFT = 4 .const COLLISION_RIGHT = 8 .label SCREEN = $400 + .label CHARSET = $2000 .label keyboard_events_size = $13 .label current_ypos = 2 .label current_xpos = $11 @@ -883,3 +884,9 @@ sid_rnd_init: { playfield: .fill PLAYFIELD_LINES*PLAYFIELD_COLS, 0 playfield_lines_idx: .fill PLAYFIELD_LINES+1, 0 screen_lines: .fill 2*(PLAYFIELD_LINES+3), 0 +.pc = CHARSET "Inline" + .var charset = LoadPicture("charset.png", List().add($000000, $ffffff, $523fa0, $77c1c9)) + .for (var c=0; c<16; c++) + .for (var y=0;y<8; y++) + .byte charset.getMulticolorByte(c,y) + diff --git a/src/test/ref/examples/tetris/tetris.cfg b/src/test/ref/examples/tetris/tetris.cfg index 559868957..744d28918 100644 --- a/src/test/ref/examples/tetris/tetris.cfg +++ b/src/test/ref/examples/tetris/tetris.cfg @@ -1,716 +1,723 @@ @begin: scope:[] from [0] phi() + to:@22 +@22: scope:[] from @begin + kickasm(location (const byte*) CHARSET#0) {{ .var charset = LoadPicture("charset.png", List().add($000000, $ffffff, $523fa0, $77c1c9)) + .for (var c=0; c<16; c++) + .for (var y=0;y<8; y++) + .byte charset.getMulticolorByte(c,y) + }} to:@25 -@25: scope:[] from @begin - [1] phi() - [2] call main +@25: scope:[] from @22 + [2] phi() + [3] call main to:@end @end: scope:[] from @25 - [3] phi() -main: scope:[main] from @25 [4] phi() - [5] call sid_rnd_init +main: scope:[main] from @25 + [5] phi() + [6] call sid_rnd_init to:main::@21 main::@21: scope:[main] from main asm { sei } - [7] call render_init + [8] call render_init to:main::@22 main::@22: scope:[main] from main::@21 - [8] phi() - [9] call tables_init + [9] phi() + [10] call tables_init to:main::@23 main::@23: scope:[main] from main::@22 - [10] phi() - [11] call spawn_current + [11] phi() + [12] call spawn_current to:main::@24 main::@24: scope:[main] from main::@23 - [12] phi() - [13] call render_playfield + [13] phi() + [14] call render_playfield to:main::@25 main::@25: scope:[main] from main::@24 - [14] (byte*~) current_piece_gfx#87 ← (byte*) current_piece_gfx#10 - [15] (byte~) current_piece_color#75 ← (byte) current_piece_color#15 - [16] call render_current - [17] (byte*~) current_piece#71 ← (byte*)*((const word[]) PIECES#0 + (byte~) spawn_current::$3) + [15] (byte*~) current_piece_gfx#87 ← (byte*) current_piece_gfx#10 + [16] (byte~) current_piece_color#75 ← (byte) current_piece_color#15 + [17] call render_current + [18] (byte*~) current_piece#71 ← (byte*)*((const word[]) PIECES#0 + (byte~) spawn_current::$3) to:main::@1 main::@1: scope:[main] from main::@10 main::@25 - [18] (byte) current_movedown_counter#15 ← phi( main::@10/(byte) current_movedown_counter#12 main::@25/(byte/signed byte/word/signed word/dword/signed dword) 0 ) - [18] (byte) keyboard_events_size#19 ← phi( main::@10/(byte) keyboard_events_size#16 main::@25/(byte/signed byte/word/signed word/dword/signed dword) 0 ) - [18] (byte) current_piece_color#11 ← phi( main::@10/(byte) current_piece_color#13 main::@25/(byte) current_piece_color#15 ) - [18] (byte) current_ypos#12 ← phi( main::@10/(byte) current_ypos#16 main::@25/(byte/signed byte/word/signed word/dword/signed dword) 0 ) - [18] (byte) current_xpos#16 ← phi( main::@10/(byte) current_xpos#23 main::@25/(byte/signed byte/word/signed word/dword/signed dword) 3 ) - [18] (byte*) current_piece_gfx#15 ← phi( main::@10/(byte*) current_piece_gfx#18 main::@25/(byte*) current_piece_gfx#10 ) - [18] (byte) current_orientation#15 ← phi( main::@10/(byte) current_orientation#23 main::@25/(byte/signed byte/word/signed word/dword/signed dword) 0 ) - [18] (byte*) current_piece#11 ← phi( main::@10/(byte*) current_piece#13 main::@25/(byte*~) current_piece#71 ) + [19] (byte) current_movedown_counter#15 ← phi( main::@10/(byte) current_movedown_counter#12 main::@25/(byte/signed byte/word/signed word/dword/signed dword) 0 ) + [19] (byte) keyboard_events_size#19 ← phi( main::@10/(byte) keyboard_events_size#16 main::@25/(byte/signed byte/word/signed word/dword/signed dword) 0 ) + [19] (byte) current_piece_color#11 ← phi( main::@10/(byte) current_piece_color#13 main::@25/(byte) current_piece_color#15 ) + [19] (byte) current_ypos#12 ← phi( main::@10/(byte) current_ypos#16 main::@25/(byte/signed byte/word/signed word/dword/signed dword) 0 ) + [19] (byte) current_xpos#16 ← phi( main::@10/(byte) current_xpos#23 main::@25/(byte/signed byte/word/signed word/dword/signed dword) 3 ) + [19] (byte*) current_piece_gfx#15 ← phi( main::@10/(byte*) current_piece_gfx#18 main::@25/(byte*) current_piece_gfx#10 ) + [19] (byte) current_orientation#15 ← phi( main::@10/(byte) current_orientation#23 main::@25/(byte/signed byte/word/signed word/dword/signed dword) 0 ) + [19] (byte*) current_piece#11 ← phi( main::@10/(byte*) current_piece#13 main::@25/(byte*~) current_piece#71 ) to:main::@4 main::@4: scope:[main] from main::@1 main::@4 - [19] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@4 + [20] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@4 to:main::@7 main::@7: scope:[main] from main::@4 main::@7 - [20] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 254) goto main::@7 + [21] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 254) goto main::@7 to:main::@9 main::@9: scope:[main] from main::@7 - [21] *((const byte*) BORDERCOL#0) ← ++ *((const byte*) BORDERCOL#0) - [22] call keyboard_event_scan + [22] *((const byte*) BORDERCOL#0) ← ++ *((const byte*) BORDERCOL#0) + [23] call keyboard_event_scan to:main::@27 main::@27: scope:[main] from main::@9 - [23] phi() - [24] call keyboard_event_get - [25] (byte) keyboard_event_get::return#3 ← (byte) keyboard_event_get::return#2 + [24] phi() + [25] call keyboard_event_get + [26] (byte) keyboard_event_get::return#3 ← (byte) keyboard_event_get::return#2 to:main::@28 main::@28: scope:[main] from main::@27 - [26] (byte) main::key_event#0 ← (byte) keyboard_event_get::return#3 - [27] (byte) play_move_down::key_event#0 ← (byte) main::key_event#0 - [28] call play_move_down - [29] (byte) play_move_down::return#0 ← (byte) play_move_down::return#3 + [27] (byte) main::key_event#0 ← (byte) keyboard_event_get::return#3 + [28] (byte) play_move_down::key_event#0 ← (byte) main::key_event#0 + [29] call play_move_down + [30] (byte) play_move_down::return#0 ← (byte) play_move_down::return#3 to:main::@29 main::@29: scope:[main] from main::@28 - [30] (byte~) main::$10 ← (byte) play_move_down::return#0 - [31] (byte) main::render#1 ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte~) main::$10 - [32] (byte) play_move_leftright::key_event#0 ← (byte) main::key_event#0 - [33] call play_move_leftright - [34] (byte) play_move_leftright::return#0 ← (byte) play_move_leftright::return#2 + [31] (byte~) main::$10 ← (byte) play_move_down::return#0 + [32] (byte) main::render#1 ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte~) main::$10 + [33] (byte) play_move_leftright::key_event#0 ← (byte) main::key_event#0 + [34] call play_move_leftright + [35] (byte) play_move_leftright::return#0 ← (byte) play_move_leftright::return#2 to:main::@30 main::@30: scope:[main] from main::@29 - [35] (byte~) main::$11 ← (byte) play_move_leftright::return#0 - [36] (byte) main::render#2 ← (byte) main::render#1 + (byte~) main::$11 - [37] (byte) play_move_rotate::key_event#0 ← (byte) main::key_event#0 - [38] call play_move_rotate - [39] (byte) play_move_rotate::return#0 ← (byte) play_move_rotate::return#2 + [36] (byte~) main::$11 ← (byte) play_move_leftright::return#0 + [37] (byte) main::render#2 ← (byte) main::render#1 + (byte~) main::$11 + [38] (byte) play_move_rotate::key_event#0 ← (byte) main::key_event#0 + [39] call play_move_rotate + [40] (byte) play_move_rotate::return#0 ← (byte) play_move_rotate::return#2 to:main::@31 main::@31: scope:[main] from main::@30 - [40] (byte~) main::$12 ← (byte) play_move_rotate::return#0 - [41] (byte) main::render#3 ← (byte) main::render#2 + (byte~) main::$12 - [42] if((byte) main::render#3==(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@10 + [41] (byte~) main::$12 ← (byte) play_move_rotate::return#0 + [42] (byte) main::render#3 ← (byte) main::render#2 + (byte~) main::$12 + [43] if((byte) main::render#3==(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@10 to:main::@19 main::@19: scope:[main] from main::@31 - [43] phi() - [44] call render_playfield + [44] phi() + [45] call render_playfield to:main::@32 main::@32: scope:[main] from main::@19 - [45] (byte~) current_ypos#71 ← (byte) current_ypos#16 - [46] (byte~) current_xpos#96 ← (byte) current_xpos#23 - [47] (byte*~) current_piece_gfx#88 ← (byte*) current_piece_gfx#18 - [48] (byte~) current_piece_color#76 ← (byte) current_piece_color#13 - [49] call render_current + [46] (byte~) current_ypos#71 ← (byte) current_ypos#16 + [47] (byte~) current_xpos#96 ← (byte) current_xpos#23 + [48] (byte*~) current_piece_gfx#88 ← (byte*) current_piece_gfx#18 + [49] (byte~) current_piece_color#76 ← (byte) current_piece_color#13 + [50] call render_current to:main::@10 main::@10: scope:[main] from main::@31 main::@32 - [50] *((const byte*) BORDERCOL#0) ← -- *((const byte*) BORDERCOL#0) + [51] *((const byte*) BORDERCOL#0) ← -- *((const byte*) BORDERCOL#0) to:main::@1 render_current: scope:[render_current] from main::@25 main::@32 - [51] (byte) current_piece_color#67 ← phi( main::@25/(byte~) current_piece_color#75 main::@32/(byte~) current_piece_color#76 ) - [51] (byte*) current_piece_gfx#64 ← phi( main::@25/(byte*~) current_piece_gfx#87 main::@32/(byte*~) current_piece_gfx#88 ) - [51] (byte) current_xpos#63 ← phi( main::@25/(byte/signed byte/word/signed word/dword/signed dword) 3 main::@32/(byte~) current_xpos#96 ) - [51] (byte) current_ypos#22 ← phi( main::@25/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@32/(byte~) current_ypos#71 ) - [52] (byte) render_current::ypos2#0 ← (byte) current_ypos#22 << (byte/signed byte/word/signed word/dword/signed dword) 1 + [52] (byte) current_piece_color#67 ← phi( main::@25/(byte~) current_piece_color#75 main::@32/(byte~) current_piece_color#76 ) + [52] (byte*) current_piece_gfx#64 ← phi( main::@25/(byte*~) current_piece_gfx#87 main::@32/(byte*~) current_piece_gfx#88 ) + [52] (byte) current_xpos#63 ← phi( main::@25/(byte/signed byte/word/signed word/dword/signed dword) 3 main::@32/(byte~) current_xpos#96 ) + [52] (byte) current_ypos#22 ← phi( main::@25/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@32/(byte~) current_ypos#71 ) + [53] (byte) render_current::ypos2#0 ← (byte) current_ypos#22 << (byte/signed byte/word/signed word/dword/signed dword) 1 to:render_current::@1 render_current::@1: scope:[render_current] from render_current render_current::@2 - [53] (byte) render_current::i#4 ← phi( render_current/(byte/signed byte/word/signed word/dword/signed dword) 0 render_current::@2/(byte) render_current::i#8 ) - [53] (byte) render_current::l#3 ← phi( render_current/(byte/signed byte/word/signed word/dword/signed dword) 0 render_current::@2/(byte) render_current::l#1 ) - [53] (byte) render_current::ypos2#2 ← phi( render_current/(byte) render_current::ypos2#0 render_current::@2/(byte) render_current::ypos2#1 ) - [54] if((byte) render_current::ypos2#2>=(byte/signed byte/word/signed word/dword/signed dword) 2*(const byte) PLAYFIELD_LINES#0) goto render_current::@2 + [54] (byte) render_current::i#4 ← phi( render_current/(byte/signed byte/word/signed word/dword/signed dword) 0 render_current::@2/(byte) render_current::i#8 ) + [54] (byte) render_current::l#3 ← phi( render_current/(byte/signed byte/word/signed word/dword/signed dword) 0 render_current::@2/(byte) render_current::l#1 ) + [54] (byte) render_current::ypos2#2 ← phi( render_current/(byte) render_current::ypos2#0 render_current::@2/(byte) render_current::ypos2#1 ) + [55] if((byte) render_current::ypos2#2>=(byte/signed byte/word/signed word/dword/signed dword) 2*(const byte) PLAYFIELD_LINES#0) goto render_current::@2 to:render_current::@6 render_current::@6: scope:[render_current] from render_current::@1 - [55] (byte*) render_current::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0+3]) screen_lines#0 + (byte) render_current::ypos2#2) - [56] (byte) render_current::xpos#0 ← (byte) current_xpos#63 + [56] (byte*) render_current::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0+3]) screen_lines#0 + (byte) render_current::ypos2#2) + [57] (byte) render_current::xpos#0 ← (byte) current_xpos#63 to:render_current::@3 render_current::@3: scope:[render_current] from render_current::@4 render_current::@6 - [57] (byte) render_current::c#2 ← phi( render_current::@4/(byte) render_current::c#1 render_current::@6/(byte/signed byte/word/signed word/dword/signed dword) 0 ) - [57] (byte) render_current::xpos#2 ← phi( render_current::@4/(byte) render_current::xpos#1 render_current::@6/(byte) render_current::xpos#0 ) - [57] (byte) render_current::i#2 ← phi( render_current::@4/(byte) render_current::i#1 render_current::@6/(byte) render_current::i#4 ) - [58] (byte) render_current::current_cell#0 ← *((byte*) current_piece_gfx#64 + (byte) render_current::i#2) - [59] (byte) render_current::i#1 ← ++ (byte) render_current::i#2 - [60] if((byte) render_current::current_cell#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto render_current::@4 + [58] (byte) render_current::c#2 ← phi( render_current::@4/(byte) render_current::c#1 render_current::@6/(byte/signed byte/word/signed word/dword/signed dword) 0 ) + [58] (byte) render_current::xpos#2 ← phi( render_current::@4/(byte) render_current::xpos#1 render_current::@6/(byte) render_current::xpos#0 ) + [58] (byte) render_current::i#2 ← phi( render_current::@4/(byte) render_current::i#1 render_current::@6/(byte) render_current::i#4 ) + [59] (byte) render_current::current_cell#0 ← *((byte*) current_piece_gfx#64 + (byte) render_current::i#2) + [60] (byte) render_current::i#1 ← ++ (byte) render_current::i#2 + [61] if((byte) render_current::current_cell#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto render_current::@4 to:render_current::@7 render_current::@7: scope:[render_current] from render_current::@3 - [61] if((byte) render_current::xpos#2>=(const byte) PLAYFIELD_COLS#0) goto render_current::@4 + [62] if((byte) render_current::xpos#2>=(const byte) PLAYFIELD_COLS#0) goto render_current::@4 to:render_current::@8 render_current::@8: scope:[render_current] from render_current::@7 - [62] *((byte*) render_current::screen_line#0 + (byte) render_current::xpos#2) ← (byte) current_piece_color#67 + [63] *((byte*) render_current::screen_line#0 + (byte) render_current::xpos#2) ← (byte) current_piece_color#67 to:render_current::@4 render_current::@4: scope:[render_current] from render_current::@3 render_current::@7 render_current::@8 - [63] (byte) render_current::xpos#1 ← ++ (byte) render_current::xpos#2 - [64] (byte) render_current::c#1 ← ++ (byte) render_current::c#2 - [65] if((byte) render_current::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_current::@3 + [64] (byte) render_current::xpos#1 ← ++ (byte) render_current::xpos#2 + [65] (byte) render_current::c#1 ← ++ (byte) render_current::c#2 + [66] if((byte) render_current::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_current::@3 to:render_current::@2 render_current::@2: scope:[render_current] from render_current::@1 render_current::@4 - [66] (byte) render_current::i#8 ← phi( render_current::@1/(byte) render_current::i#4 render_current::@4/(byte) render_current::i#1 ) - [67] (byte) render_current::ypos2#1 ← (byte) render_current::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 - [68] (byte) render_current::l#1 ← ++ (byte) render_current::l#3 - [69] if((byte) render_current::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_current::@1 + [67] (byte) render_current::i#8 ← phi( render_current::@1/(byte) render_current::i#4 render_current::@4/(byte) render_current::i#1 ) + [68] (byte) render_current::ypos2#1 ← (byte) render_current::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 + [69] (byte) render_current::l#1 ← ++ (byte) render_current::l#3 + [70] if((byte) render_current::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_current::@1 to:render_current::@return render_current::@return: scope:[render_current] from render_current::@2 - [70] return + [71] return to:@return render_playfield: scope:[render_playfield] from main::@19 main::@24 - [71] phi() + [72] phi() to:render_playfield::@1 render_playfield::@1: scope:[render_playfield] from render_playfield render_playfield::@3 - [72] (byte) render_playfield::i#3 ← phi( render_playfield/(byte/signed byte/word/signed word/dword/signed dword) 0 render_playfield::@3/(byte) render_playfield::i#1 ) - [72] (byte) render_playfield::l#2 ← phi( render_playfield/(byte/signed byte/word/signed word/dword/signed dword) 0 render_playfield::@3/(byte) render_playfield::l#1 ) - [73] (byte~) render_playfield::$1 ← (byte) render_playfield::l#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 - [74] (byte*) render_playfield::line#0 ← *((const byte*[PLAYFIELD_LINES#0+3]) screen_lines#0 + (byte~) render_playfield::$1) + [73] (byte) render_playfield::i#3 ← phi( render_playfield/(byte/signed byte/word/signed word/dword/signed dword) 0 render_playfield::@3/(byte) render_playfield::i#1 ) + [73] (byte) render_playfield::l#2 ← phi( render_playfield/(byte/signed byte/word/signed word/dword/signed dword) 0 render_playfield::@3/(byte) render_playfield::l#1 ) + [74] (byte~) render_playfield::$1 ← (byte) render_playfield::l#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 + [75] (byte*) render_playfield::line#0 ← *((const byte*[PLAYFIELD_LINES#0+3]) screen_lines#0 + (byte~) render_playfield::$1) to:render_playfield::@2 render_playfield::@2: scope:[render_playfield] from render_playfield::@1 render_playfield::@2 - [75] (byte) render_playfield::c#2 ← phi( render_playfield::@1/(byte/signed byte/word/signed word/dword/signed dword) 0 render_playfield::@2/(byte) render_playfield::c#1 ) - [75] (byte*) render_playfield::line#2 ← phi( render_playfield::@1/(byte*) render_playfield::line#0 render_playfield::@2/(byte*) render_playfield::line#1 ) - [75] (byte) render_playfield::i#2 ← phi( render_playfield::@1/(byte) render_playfield::i#3 render_playfield::@2/(byte) render_playfield::i#1 ) - [76] *((byte*) render_playfield::line#2) ← *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) render_playfield::i#2) - [77] (byte*) render_playfield::line#1 ← ++ (byte*) render_playfield::line#2 - [78] (byte) render_playfield::i#1 ← ++ (byte) render_playfield::i#2 - [79] (byte) render_playfield::c#1 ← ++ (byte) render_playfield::c#2 - [80] if((byte) render_playfield::c#1!=(const byte) PLAYFIELD_COLS#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_playfield::@2 + [76] (byte) render_playfield::c#2 ← phi( render_playfield::@1/(byte/signed byte/word/signed word/dword/signed dword) 0 render_playfield::@2/(byte) render_playfield::c#1 ) + [76] (byte*) render_playfield::line#2 ← phi( render_playfield::@1/(byte*) render_playfield::line#0 render_playfield::@2/(byte*) render_playfield::line#1 ) + [76] (byte) render_playfield::i#2 ← phi( render_playfield::@1/(byte) render_playfield::i#3 render_playfield::@2/(byte) render_playfield::i#1 ) + [77] *((byte*) render_playfield::line#2) ← *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) render_playfield::i#2) + [78] (byte*) render_playfield::line#1 ← ++ (byte*) render_playfield::line#2 + [79] (byte) render_playfield::i#1 ← ++ (byte) render_playfield::i#2 + [80] (byte) render_playfield::c#1 ← ++ (byte) render_playfield::c#2 + [81] if((byte) render_playfield::c#1!=(const byte) PLAYFIELD_COLS#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_playfield::@2 to:render_playfield::@3 render_playfield::@3: scope:[render_playfield] from render_playfield::@2 - [81] (byte) render_playfield::l#1 ← ++ (byte) render_playfield::l#2 - [82] if((byte) render_playfield::l#1!=(const byte) PLAYFIELD_LINES#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_playfield::@1 + [82] (byte) render_playfield::l#1 ← ++ (byte) render_playfield::l#2 + [83] if((byte) render_playfield::l#1!=(const byte) PLAYFIELD_LINES#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_playfield::@1 to:render_playfield::@return render_playfield::@return: scope:[render_playfield] from render_playfield::@3 - [83] return + [84] return to:@return play_move_rotate: scope:[play_move_rotate] from main::@30 - [84] if((byte) play_move_rotate::key_event#0==(const byte) KEY_Z#0) goto play_move_rotate::@1 + [85] if((byte) play_move_rotate::key_event#0==(const byte) KEY_Z#0) goto play_move_rotate::@1 to:play_move_rotate::@6 play_move_rotate::@6: scope:[play_move_rotate] from play_move_rotate - [85] if((byte) play_move_rotate::key_event#0==(const byte) KEY_X#0) goto play_move_rotate::@2 + [86] if((byte) play_move_rotate::key_event#0==(const byte) KEY_X#0) goto play_move_rotate::@2 to:play_move_rotate::@return play_move_rotate::@return: scope:[play_move_rotate] from play_move_rotate::@11 play_move_rotate::@14 play_move_rotate::@6 - [86] (byte*) current_piece_gfx#18 ← phi( play_move_rotate::@11/(byte*) current_piece_gfx#8 play_move_rotate::@14/(byte*) current_piece_gfx#17 play_move_rotate::@6/(byte*) current_piece_gfx#17 ) - [86] (byte) current_orientation#23 ← phi( play_move_rotate::@11/(byte) current_orientation#8 play_move_rotate::@14/(byte) current_orientation#18 play_move_rotate::@6/(byte) current_orientation#18 ) - [86] (byte) play_move_rotate::return#2 ← phi( play_move_rotate::@11/(byte/signed byte/word/signed word/dword/signed dword) 1 play_move_rotate::@14/(byte/signed byte/word/signed word/dword/signed dword) 0 play_move_rotate::@6/(byte/signed byte/word/signed word/dword/signed dword) 0 ) - [87] return + [87] (byte*) current_piece_gfx#18 ← phi( play_move_rotate::@11/(byte*) current_piece_gfx#8 play_move_rotate::@14/(byte*) current_piece_gfx#17 play_move_rotate::@6/(byte*) current_piece_gfx#17 ) + [87] (byte) current_orientation#23 ← phi( play_move_rotate::@11/(byte) current_orientation#8 play_move_rotate::@14/(byte) current_orientation#18 play_move_rotate::@6/(byte) current_orientation#18 ) + [87] (byte) play_move_rotate::return#2 ← phi( play_move_rotate::@11/(byte/signed byte/word/signed word/dword/signed dword) 1 play_move_rotate::@14/(byte/signed byte/word/signed word/dword/signed dword) 0 play_move_rotate::@6/(byte/signed byte/word/signed word/dword/signed dword) 0 ) + [88] return to:@return play_move_rotate::@2: scope:[play_move_rotate] from play_move_rotate::@6 - [88] (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 ← (byte) current_orientation#18 + (byte/signed byte/word/signed word/dword/signed dword) 16 - [89] (byte) play_move_rotate::orientation#2 ← (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 & (byte/signed byte/word/signed word/dword/signed dword) 63 + [89] (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 ← (byte) current_orientation#18 + (byte/signed byte/word/signed word/dword/signed dword) 16 + [90] (byte) play_move_rotate::orientation#2 ← (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 & (byte/signed byte/word/signed word/dword/signed dword) 63 to:play_move_rotate::@4 play_move_rotate::@4: scope:[play_move_rotate] from play_move_rotate::@1 play_move_rotate::@2 - [90] (byte) play_move_rotate::orientation#3 ← phi( play_move_rotate::@1/(byte) play_move_rotate::orientation#1 play_move_rotate::@2/(byte) play_move_rotate::orientation#2 ) - [91] (byte) collision::xpos#3 ← (byte) current_xpos#23 - [92] (byte) collision::ypos#3 ← (byte) current_ypos#16 - [93] (byte) collision::orientation#3 ← (byte) play_move_rotate::orientation#3 - [94] (byte*~) current_piece#75 ← (byte*) current_piece#13 - [95] call collision - [96] (byte) collision::return#13 ← (byte) collision::return#14 + [91] (byte) play_move_rotate::orientation#3 ← phi( play_move_rotate::@1/(byte) play_move_rotate::orientation#1 play_move_rotate::@2/(byte) play_move_rotate::orientation#2 ) + [92] (byte) collision::xpos#3 ← (byte) current_xpos#23 + [93] (byte) collision::ypos#3 ← (byte) current_ypos#16 + [94] (byte) collision::orientation#3 ← (byte) play_move_rotate::orientation#3 + [95] (byte*~) current_piece#75 ← (byte*) current_piece#13 + [96] call collision + [97] (byte) collision::return#13 ← (byte) collision::return#14 to:play_move_rotate::@14 play_move_rotate::@14: scope:[play_move_rotate] from play_move_rotate::@4 - [97] (byte~) play_move_rotate::$6 ← (byte) collision::return#13 - [98] if((byte~) play_move_rotate::$6!=(const byte) COLLISION_NONE#0) goto play_move_rotate::@return + [98] (byte~) play_move_rotate::$6 ← (byte) collision::return#13 + [99] if((byte~) play_move_rotate::$6!=(const byte) COLLISION_NONE#0) goto play_move_rotate::@return to:play_move_rotate::@11 play_move_rotate::@11: scope:[play_move_rotate] from play_move_rotate::@14 - [99] (byte) current_orientation#8 ← (byte) play_move_rotate::orientation#3 - [100] (byte*) current_piece_gfx#8 ← (byte*) current_piece#13 + (byte) current_orientation#8 + [100] (byte) current_orientation#8 ← (byte) play_move_rotate::orientation#3 + [101] (byte*) current_piece_gfx#8 ← (byte*) current_piece#13 + (byte) current_orientation#8 to:play_move_rotate::@return play_move_rotate::@1: scope:[play_move_rotate] from play_move_rotate - [101] (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 ← (byte) current_orientation#18 - (byte/signed byte/word/signed word/dword/signed dword) 16 - [102] (byte) play_move_rotate::orientation#1 ← (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 & (byte/signed byte/word/signed word/dword/signed dword) 63 + [102] (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 ← (byte) current_orientation#18 - (byte/signed byte/word/signed word/dword/signed dword) 16 + [103] (byte) play_move_rotate::orientation#1 ← (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 & (byte/signed byte/word/signed word/dword/signed dword) 63 to:play_move_rotate::@4 collision: scope:[collision] from play_move_down::@12 play_move_leftright::@1 play_move_leftright::@7 play_move_rotate::@4 - [103] (byte) collision::xpos#5 ← phi( play_move_down::@12/(byte) collision::xpos#0 play_move_leftright::@1/(byte) collision::xpos#1 play_move_leftright::@7/(byte) collision::xpos#2 play_move_rotate::@4/(byte) collision::xpos#3 ) - [103] (byte) collision::ypos#4 ← phi( play_move_down::@12/(byte) collision::ypos#0 play_move_leftright::@1/(byte) collision::ypos#1 play_move_leftright::@7/(byte) collision::ypos#2 play_move_rotate::@4/(byte) collision::ypos#3 ) - [103] (byte) collision::orientation#4 ← phi( play_move_down::@12/(byte) collision::orientation#0 play_move_leftright::@1/(byte) collision::orientation#1 play_move_leftright::@7/(byte) collision::orientation#2 play_move_rotate::@4/(byte) collision::orientation#3 ) - [103] (byte*) current_piece#15 ← phi( play_move_down::@12/(byte*~) current_piece#72 play_move_leftright::@1/(byte*~) current_piece#73 play_move_leftright::@7/(byte*~) current_piece#74 play_move_rotate::@4/(byte*~) current_piece#75 ) - [104] (byte*) collision::piece_gfx#0 ← (byte*) current_piece#15 + (byte) collision::orientation#4 - [105] (byte) collision::ypos2#0 ← (byte) collision::ypos#4 << (byte/signed byte/word/signed word/dword/signed dword) 1 + [104] (byte) collision::xpos#5 ← phi( play_move_down::@12/(byte) collision::xpos#0 play_move_leftright::@1/(byte) collision::xpos#1 play_move_leftright::@7/(byte) collision::xpos#2 play_move_rotate::@4/(byte) collision::xpos#3 ) + [104] (byte) collision::ypos#4 ← phi( play_move_down::@12/(byte) collision::ypos#0 play_move_leftright::@1/(byte) collision::ypos#1 play_move_leftright::@7/(byte) collision::ypos#2 play_move_rotate::@4/(byte) collision::ypos#3 ) + [104] (byte) collision::orientation#4 ← phi( play_move_down::@12/(byte) collision::orientation#0 play_move_leftright::@1/(byte) collision::orientation#1 play_move_leftright::@7/(byte) collision::orientation#2 play_move_rotate::@4/(byte) collision::orientation#3 ) + [104] (byte*) current_piece#15 ← phi( play_move_down::@12/(byte*~) current_piece#72 play_move_leftright::@1/(byte*~) current_piece#73 play_move_leftright::@7/(byte*~) current_piece#74 play_move_rotate::@4/(byte*~) current_piece#75 ) + [105] (byte*) collision::piece_gfx#0 ← (byte*) current_piece#15 + (byte) collision::orientation#4 + [106] (byte) collision::ypos2#0 ← (byte) collision::ypos#4 << (byte/signed byte/word/signed word/dword/signed dword) 1 to:collision::@1 collision::@1: scope:[collision] from collision collision::@20 - [106] (byte) collision::l#6 ← phi( collision/(byte/signed byte/word/signed word/dword/signed dword) 0 collision::@20/(byte) collision::l#1 ) - [106] (byte) collision::i#3 ← phi( collision/(byte/signed byte/word/signed word/dword/signed dword) 0 collision::@20/(byte~) collision::i#11 ) - [106] (byte) collision::ypos2#2 ← phi( collision/(byte) collision::ypos2#0 collision::@20/(byte) collision::ypos2#1 ) - [107] (byte*) collision::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) collision::ypos2#2) - [108] (byte~) collision::col#9 ← (byte) collision::xpos#5 + [107] (byte) collision::l#6 ← phi( collision/(byte/signed byte/word/signed word/dword/signed dword) 0 collision::@20/(byte) collision::l#1 ) + [107] (byte) collision::i#3 ← phi( collision/(byte/signed byte/word/signed word/dword/signed dword) 0 collision::@20/(byte~) collision::i#11 ) + [107] (byte) collision::ypos2#2 ← phi( collision/(byte) collision::ypos2#0 collision::@20/(byte) collision::ypos2#1 ) + [108] (byte*) collision::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) collision::ypos2#2) + [109] (byte~) collision::col#9 ← (byte) collision::xpos#5 to:collision::@2 collision::@2: scope:[collision] from collision::@1 collision::@21 - [109] (byte) collision::c#2 ← phi( collision::@1/(byte/signed byte/word/signed word/dword/signed dword) 0 collision::@21/(byte) collision::c#1 ) - [109] (byte) collision::col#2 ← phi( collision::@1/(byte~) collision::col#9 collision::@21/(byte) collision::col#1 ) - [109] (byte) collision::i#2 ← phi( collision::@1/(byte) collision::i#3 collision::@21/(byte~) collision::i#13 ) - [110] (byte) collision::i#1 ← ++ (byte) collision::i#2 - [111] if(*((byte*) collision::piece_gfx#0 + (byte) collision::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto collision::@3 + [110] (byte) collision::c#2 ← phi( collision::@1/(byte/signed byte/word/signed word/dword/signed dword) 0 collision::@21/(byte) collision::c#1 ) + [110] (byte) collision::col#2 ← phi( collision::@1/(byte~) collision::col#9 collision::@21/(byte) collision::col#1 ) + [110] (byte) collision::i#2 ← phi( collision::@1/(byte) collision::i#3 collision::@21/(byte~) collision::i#13 ) + [111] (byte) collision::i#1 ← ++ (byte) collision::i#2 + [112] if(*((byte*) collision::piece_gfx#0 + (byte) collision::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto collision::@3 to:collision::@8 collision::@8: scope:[collision] from collision::@2 - [112] if((byte) collision::ypos2#2<(byte/signed byte/word/signed word/dword/signed dword) 2*(const byte) PLAYFIELD_LINES#0) goto collision::@4 + [113] if((byte) collision::ypos2#2<(byte/signed byte/word/signed word/dword/signed dword) 2*(const byte) PLAYFIELD_LINES#0) goto collision::@4 to:collision::@return collision::@return: scope:[collision] from collision::@17 collision::@4 collision::@5 collision::@6 collision::@8 - [113] (byte) collision::return#14 ← phi( collision::@4/(const byte) COLLISION_LEFT#0 collision::@5/(const byte) COLLISION_RIGHT#0 collision::@6/(const byte) COLLISION_PLAYFIELD#0 collision::@17/(const byte) COLLISION_NONE#0 collision::@8/(const byte) COLLISION_BOTTOM#0 ) - [114] return + [114] (byte) collision::return#14 ← phi( collision::@4/(const byte) COLLISION_LEFT#0 collision::@5/(const byte) COLLISION_RIGHT#0 collision::@6/(const byte) COLLISION_PLAYFIELD#0 collision::@17/(const byte) COLLISION_NONE#0 collision::@8/(const byte) COLLISION_BOTTOM#0 ) + [115] return to:@return collision::@4: scope:[collision] from collision::@8 - [115] (byte~) collision::$7 ← (byte) collision::col#2 & (byte/word/signed word/dword/signed dword) 128 - [116] if((byte~) collision::$7==(byte/signed byte/word/signed word/dword/signed dword) 0) goto collision::@5 + [116] (byte~) collision::$7 ← (byte) collision::col#2 & (byte/word/signed word/dword/signed dword) 128 + [117] if((byte~) collision::$7==(byte/signed byte/word/signed word/dword/signed dword) 0) goto collision::@5 to:collision::@return collision::@5: scope:[collision] from collision::@4 - [117] if((byte) collision::col#2<(const byte) PLAYFIELD_COLS#0) goto collision::@6 + [118] if((byte) collision::col#2<(const byte) PLAYFIELD_COLS#0) goto collision::@6 to:collision::@return collision::@6: scope:[collision] from collision::@5 - [118] if(*((byte*) collision::playfield_line#0 + (byte) collision::col#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto collision::@3 + [119] if(*((byte*) collision::playfield_line#0 + (byte) collision::col#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto collision::@3 to:collision::@return collision::@3: scope:[collision] from collision::@2 collision::@6 - [119] (byte) collision::col#1 ← ++ (byte) collision::col#2 - [120] (byte) collision::c#1 ← ++ (byte) collision::c#2 - [121] if((byte) collision::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto collision::@21 + [120] (byte) collision::col#1 ← ++ (byte) collision::col#2 + [121] (byte) collision::c#1 ← ++ (byte) collision::c#2 + [122] if((byte) collision::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto collision::@21 to:collision::@17 collision::@17: scope:[collision] from collision::@3 - [122] (byte) collision::ypos2#1 ← (byte) collision::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 - [123] (byte) collision::l#1 ← ++ (byte) collision::l#6 - [124] if((byte) collision::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto collision::@20 + [123] (byte) collision::ypos2#1 ← (byte) collision::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 + [124] (byte) collision::l#1 ← ++ (byte) collision::l#6 + [125] if((byte) collision::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto collision::@20 to:collision::@return collision::@20: scope:[collision] from collision::@17 - [125] (byte~) collision::i#11 ← (byte) collision::i#1 + [126] (byte~) collision::i#11 ← (byte) collision::i#1 to:collision::@1 collision::@21: scope:[collision] from collision::@3 - [126] (byte~) collision::i#13 ← (byte) collision::i#1 + [127] (byte~) collision::i#13 ← (byte) collision::i#1 to:collision::@2 play_move_leftright: scope:[play_move_leftright] from main::@29 - [127] if((byte) play_move_leftright::key_event#0==(const byte) KEY_COMMA#0) goto play_move_leftright::@1 + [128] if((byte) play_move_leftright::key_event#0==(const byte) KEY_COMMA#0) goto play_move_leftright::@1 to:play_move_leftright::@6 play_move_leftright::@6: scope:[play_move_leftright] from play_move_leftright - [128] if((byte) play_move_leftright::key_event#0!=(const byte) KEY_DOT#0) goto play_move_leftright::@return + [129] if((byte) play_move_leftright::key_event#0!=(const byte) KEY_DOT#0) goto play_move_leftright::@return to:play_move_leftright::@7 play_move_leftright::@7: scope:[play_move_leftright] from play_move_leftright::@6 - [129] (byte) collision::xpos#2 ← (byte) current_xpos#19 + (byte/signed byte/word/signed word/dword/signed dword) 1 - [130] (byte) collision::ypos#2 ← (byte) current_ypos#16 - [131] (byte) collision::orientation#2 ← (byte) current_orientation#18 - [132] (byte*~) current_piece#74 ← (byte*) current_piece#13 - [133] call collision - [134] (byte) collision::return#12 ← (byte) collision::return#14 + [130] (byte) collision::xpos#2 ← (byte) current_xpos#19 + (byte/signed byte/word/signed word/dword/signed dword) 1 + [131] (byte) collision::ypos#2 ← (byte) current_ypos#16 + [132] (byte) collision::orientation#2 ← (byte) current_orientation#18 + [133] (byte*~) current_piece#74 ← (byte*) current_piece#13 + [134] call collision + [135] (byte) collision::return#12 ← (byte) collision::return#14 to:play_move_leftright::@15 play_move_leftright::@15: scope:[play_move_leftright] from play_move_leftright::@7 - [135] (byte~) play_move_leftright::$4 ← (byte) collision::return#12 - [136] if((byte~) play_move_leftright::$4!=(const byte) COLLISION_NONE#0) goto play_move_leftright::@return + [136] (byte~) play_move_leftright::$4 ← (byte) collision::return#12 + [137] if((byte~) play_move_leftright::$4!=(const byte) COLLISION_NONE#0) goto play_move_leftright::@return to:play_move_leftright::@8 play_move_leftright::@8: scope:[play_move_leftright] from play_move_leftright::@15 - [137] (byte) current_xpos#7 ← ++ (byte) current_xpos#19 + [138] (byte) current_xpos#7 ← ++ (byte) current_xpos#19 to:play_move_leftright::@return play_move_leftright::@return: scope:[play_move_leftright] from play_move_leftright::@11 play_move_leftright::@14 play_move_leftright::@15 play_move_leftright::@6 play_move_leftright::@8 - [138] (byte) current_xpos#23 ← phi( play_move_leftright::@11/(byte) current_xpos#9 play_move_leftright::@15/(byte) current_xpos#19 play_move_leftright::@8/(byte) current_xpos#7 play_move_leftright::@14/(byte) current_xpos#19 play_move_leftright::@6/(byte) current_xpos#19 ) - [138] (byte) play_move_leftright::return#2 ← phi( play_move_leftright::@11/(byte/signed byte/word/signed word/dword/signed dword) 1 play_move_leftright::@15/(byte/signed byte/word/signed word/dword/signed dword) 0 play_move_leftright::@8/(byte/signed byte/word/signed word/dword/signed dword) 1 play_move_leftright::@14/(byte/signed byte/word/signed word/dword/signed dword) 0 play_move_leftright::@6/(byte/signed byte/word/signed word/dword/signed dword) 0 ) - [139] return + [139] (byte) current_xpos#23 ← phi( play_move_leftright::@11/(byte) current_xpos#9 play_move_leftright::@15/(byte) current_xpos#19 play_move_leftright::@8/(byte) current_xpos#7 play_move_leftright::@14/(byte) current_xpos#19 play_move_leftright::@6/(byte) current_xpos#19 ) + [139] (byte) play_move_leftright::return#2 ← phi( play_move_leftright::@11/(byte/signed byte/word/signed word/dword/signed dword) 1 play_move_leftright::@15/(byte/signed byte/word/signed word/dword/signed dword) 0 play_move_leftright::@8/(byte/signed byte/word/signed word/dword/signed dword) 1 play_move_leftright::@14/(byte/signed byte/word/signed word/dword/signed dword) 0 play_move_leftright::@6/(byte/signed byte/word/signed word/dword/signed dword) 0 ) + [140] return to:@return play_move_leftright::@1: scope:[play_move_leftright] from play_move_leftright - [140] (byte) collision::xpos#1 ← (byte) current_xpos#19 - (byte/signed byte/word/signed word/dword/signed dword) 1 - [141] (byte) collision::ypos#1 ← (byte) current_ypos#16 - [142] (byte) collision::orientation#1 ← (byte) current_orientation#18 - [143] (byte*~) current_piece#73 ← (byte*) current_piece#13 - [144] call collision - [145] (byte) collision::return#1 ← (byte) collision::return#14 + [141] (byte) collision::xpos#1 ← (byte) current_xpos#19 - (byte/signed byte/word/signed word/dword/signed dword) 1 + [142] (byte) collision::ypos#1 ← (byte) current_ypos#16 + [143] (byte) collision::orientation#1 ← (byte) current_orientation#18 + [144] (byte*~) current_piece#73 ← (byte*) current_piece#13 + [145] call collision + [146] (byte) collision::return#1 ← (byte) collision::return#14 to:play_move_leftright::@14 play_move_leftright::@14: scope:[play_move_leftright] from play_move_leftright::@1 - [146] (byte~) play_move_leftright::$8 ← (byte) collision::return#1 - [147] if((byte~) play_move_leftright::$8!=(const byte) COLLISION_NONE#0) goto play_move_leftright::@return + [147] (byte~) play_move_leftright::$8 ← (byte) collision::return#1 + [148] if((byte~) play_move_leftright::$8!=(const byte) COLLISION_NONE#0) goto play_move_leftright::@return to:play_move_leftright::@11 play_move_leftright::@11: scope:[play_move_leftright] from play_move_leftright::@14 - [148] (byte) current_xpos#9 ← -- (byte) current_xpos#19 + [149] (byte) current_xpos#9 ← -- (byte) current_xpos#19 to:play_move_leftright::@return play_move_down: scope:[play_move_down] from main::@28 - [149] (byte) current_movedown_counter#10 ← ++ (byte) current_movedown_counter#15 - [150] if((byte) play_move_down::key_event#0!=(const byte) KEY_SPACE#0) goto play_move_down::@1 + [150] (byte) current_movedown_counter#10 ← ++ (byte) current_movedown_counter#15 + [151] if((byte) play_move_down::key_event#0!=(const byte) KEY_SPACE#0) goto play_move_down::@1 to:play_move_down::@8 play_move_down::@8: scope:[play_move_down] from play_move_down - [151] phi() + [152] phi() to:play_move_down::@1 play_move_down::@1: scope:[play_move_down] from play_move_down play_move_down::@8 - [152] (byte) play_move_down::movedown#10 ← phi( play_move_down/(byte/signed byte/word/signed word/dword/signed dword) 0 play_move_down::@8/(byte/signed byte/word/signed word/dword/signed dword) 1 ) - [153] call keyboard_event_pressed - [154] (byte) keyboard_event_pressed::return#12 ← (byte) keyboard_event_pressed::return#11 + [153] (byte) play_move_down::movedown#10 ← phi( play_move_down/(byte/signed byte/word/signed word/dword/signed dword) 0 play_move_down::@8/(byte/signed byte/word/signed word/dword/signed dword) 1 ) + [154] call keyboard_event_pressed + [155] (byte) keyboard_event_pressed::return#12 ← (byte) keyboard_event_pressed::return#11 to:play_move_down::@17 play_move_down::@17: scope:[play_move_down] from play_move_down::@1 - [155] (byte~) play_move_down::$2 ← (byte) keyboard_event_pressed::return#12 - [156] if((byte~) play_move_down::$2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_move_down::@2 + [156] (byte~) play_move_down::$2 ← (byte) keyboard_event_pressed::return#12 + [157] if((byte~) play_move_down::$2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_move_down::@2 to:play_move_down::@9 play_move_down::@9: scope:[play_move_down] from play_move_down::@17 - [157] if((byte) current_movedown_counter#10<(const byte) current_movedown_fast#0) goto play_move_down::@2 + [158] if((byte) current_movedown_counter#10<(const byte) current_movedown_fast#0) goto play_move_down::@2 to:play_move_down::@10 play_move_down::@10: scope:[play_move_down] from play_move_down::@9 - [158] (byte) play_move_down::movedown#2 ← ++ (byte) play_move_down::movedown#10 + [159] (byte) play_move_down::movedown#2 ← ++ (byte) play_move_down::movedown#10 to:play_move_down::@2 play_move_down::@2: scope:[play_move_down] from play_move_down::@10 play_move_down::@17 play_move_down::@9 - [159] (byte) play_move_down::movedown#7 ← phi( play_move_down::@10/(byte) play_move_down::movedown#2 play_move_down::@17/(byte) play_move_down::movedown#10 play_move_down::@9/(byte) play_move_down::movedown#10 ) - [160] if((byte) current_movedown_counter#10<(const byte) current_movedown_slow#0) goto play_move_down::@4 + [160] (byte) play_move_down::movedown#7 ← phi( play_move_down::@10/(byte) play_move_down::movedown#2 play_move_down::@17/(byte) play_move_down::movedown#10 play_move_down::@9/(byte) play_move_down::movedown#10 ) + [161] if((byte) current_movedown_counter#10<(const byte) current_movedown_slow#0) goto play_move_down::@4 to:play_move_down::@11 play_move_down::@11: scope:[play_move_down] from play_move_down::@2 - [161] (byte) play_move_down::movedown#3 ← ++ (byte) play_move_down::movedown#7 + [162] (byte) play_move_down::movedown#3 ← ++ (byte) play_move_down::movedown#7 to:play_move_down::@4 play_move_down::@4: scope:[play_move_down] from play_move_down::@11 play_move_down::@2 - [162] (byte) play_move_down::movedown#6 ← phi( play_move_down::@11/(byte) play_move_down::movedown#3 play_move_down::@2/(byte) play_move_down::movedown#7 ) - [163] if((byte) play_move_down::movedown#6==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_move_down::@return + [163] (byte) play_move_down::movedown#6 ← phi( play_move_down::@11/(byte) play_move_down::movedown#3 play_move_down::@2/(byte) play_move_down::movedown#7 ) + [164] if((byte) play_move_down::movedown#6==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_move_down::@return to:play_move_down::@12 play_move_down::@12: scope:[play_move_down] from play_move_down::@4 - [164] (byte) collision::ypos#0 ← (byte) current_ypos#12 + (byte/signed byte/word/signed word/dword/signed dword) 1 - [165] (byte) collision::xpos#0 ← (byte) current_xpos#16 - [166] (byte) collision::orientation#0 ← (byte) current_orientation#15 - [167] (byte*~) current_piece#72 ← (byte*) current_piece#11 - [168] call collision - [169] (byte) collision::return#0 ← (byte) collision::return#14 + [165] (byte) collision::ypos#0 ← (byte) current_ypos#12 + (byte/signed byte/word/signed word/dword/signed dword) 1 + [166] (byte) collision::xpos#0 ← (byte) current_xpos#16 + [167] (byte) collision::orientation#0 ← (byte) current_orientation#15 + [168] (byte*~) current_piece#72 ← (byte*) current_piece#11 + [169] call collision + [170] (byte) collision::return#0 ← (byte) collision::return#14 to:play_move_down::@18 play_move_down::@18: scope:[play_move_down] from play_move_down::@12 - [170] (byte~) play_move_down::$12 ← (byte) collision::return#0 - [171] if((byte~) play_move_down::$12==(const byte) COLLISION_NONE#0) goto play_move_down::@6 + [171] (byte~) play_move_down::$12 ← (byte) collision::return#0 + [172] if((byte~) play_move_down::$12==(const byte) COLLISION_NONE#0) goto play_move_down::@6 to:play_move_down::@13 play_move_down::@13: scope:[play_move_down] from play_move_down::@18 - [172] phi() - [173] call lock_current + [173] phi() + [174] call lock_current to:play_move_down::@19 play_move_down::@19: scope:[play_move_down] from play_move_down::@13 - [174] phi() - [175] call remove_lines + [175] phi() + [176] call remove_lines to:play_move_down::@20 play_move_down::@20: scope:[play_move_down] from play_move_down::@19 - [176] phi() - [177] call spawn_current - [178] (byte*~) current_piece#76 ← (byte*)*((const word[]) PIECES#0 + (byte~) spawn_current::$3) + [177] phi() + [178] call spawn_current + [179] (byte*~) current_piece#76 ← (byte*)*((const word[]) PIECES#0 + (byte~) spawn_current::$3) to:play_move_down::@7 play_move_down::@7: scope:[play_move_down] from play_move_down::@20 play_move_down::@6 - [179] (byte) current_piece_color#23 ← phi( play_move_down::@20/(byte) current_piece_color#15 play_move_down::@6/(byte) current_piece_color#11 ) - [179] (byte) current_xpos#36 ← phi( play_move_down::@20/(byte/signed byte/word/signed word/dword/signed dword) 3 play_move_down::@6/(byte) current_xpos#16 ) - [179] (byte*) current_piece_gfx#29 ← phi( play_move_down::@20/(byte*) current_piece_gfx#10 play_move_down::@6/(byte*) current_piece_gfx#15 ) - [179] (byte) current_orientation#33 ← phi( play_move_down::@20/(byte/signed byte/word/signed word/dword/signed dword) 0 play_move_down::@6/(byte) current_orientation#15 ) - [179] (byte*) current_piece#23 ← phi( play_move_down::@20/(byte*~) current_piece#76 play_move_down::@6/(byte*) current_piece#11 ) - [179] (byte) current_ypos#31 ← phi( play_move_down::@20/(byte/signed byte/word/signed word/dword/signed dword) 0 play_move_down::@6/(byte) current_ypos#4 ) + [180] (byte) current_piece_color#23 ← phi( play_move_down::@20/(byte) current_piece_color#15 play_move_down::@6/(byte) current_piece_color#11 ) + [180] (byte) current_xpos#36 ← phi( play_move_down::@20/(byte/signed byte/word/signed word/dword/signed dword) 3 play_move_down::@6/(byte) current_xpos#16 ) + [180] (byte*) current_piece_gfx#29 ← phi( play_move_down::@20/(byte*) current_piece_gfx#10 play_move_down::@6/(byte*) current_piece_gfx#15 ) + [180] (byte) current_orientation#33 ← phi( play_move_down::@20/(byte/signed byte/word/signed word/dword/signed dword) 0 play_move_down::@6/(byte) current_orientation#15 ) + [180] (byte*) current_piece#23 ← phi( play_move_down::@20/(byte*~) current_piece#76 play_move_down::@6/(byte*) current_piece#11 ) + [180] (byte) current_ypos#31 ← phi( play_move_down::@20/(byte/signed byte/word/signed word/dword/signed dword) 0 play_move_down::@6/(byte) current_ypos#4 ) to:play_move_down::@return play_move_down::@return: scope:[play_move_down] from play_move_down::@4 play_move_down::@7 - [180] (byte) current_piece_color#13 ← phi( play_move_down::@4/(byte) current_piece_color#11 play_move_down::@7/(byte) current_piece_color#23 ) - [180] (byte) current_xpos#19 ← phi( play_move_down::@4/(byte) current_xpos#16 play_move_down::@7/(byte) current_xpos#36 ) - [180] (byte*) current_piece_gfx#17 ← phi( play_move_down::@4/(byte*) current_piece_gfx#15 play_move_down::@7/(byte*) current_piece_gfx#29 ) - [180] (byte) current_orientation#18 ← phi( play_move_down::@4/(byte) current_orientation#15 play_move_down::@7/(byte) current_orientation#33 ) - [180] (byte*) current_piece#13 ← phi( play_move_down::@4/(byte*) current_piece#11 play_move_down::@7/(byte*) current_piece#23 ) - [180] (byte) current_ypos#16 ← phi( play_move_down::@4/(byte) current_ypos#12 play_move_down::@7/(byte) current_ypos#31 ) - [180] (byte) current_movedown_counter#12 ← phi( play_move_down::@4/(byte) current_movedown_counter#10 play_move_down::@7/(byte/signed byte/word/signed word/dword/signed dword) 0 ) - [180] (byte) play_move_down::return#3 ← phi( play_move_down::@4/(byte/signed byte/word/signed word/dword/signed dword) 0 play_move_down::@7/(byte/signed byte/word/signed word/dword/signed dword) 1 ) - [181] return + [181] (byte) current_piece_color#13 ← phi( play_move_down::@4/(byte) current_piece_color#11 play_move_down::@7/(byte) current_piece_color#23 ) + [181] (byte) current_xpos#19 ← phi( play_move_down::@4/(byte) current_xpos#16 play_move_down::@7/(byte) current_xpos#36 ) + [181] (byte*) current_piece_gfx#17 ← phi( play_move_down::@4/(byte*) current_piece_gfx#15 play_move_down::@7/(byte*) current_piece_gfx#29 ) + [181] (byte) current_orientation#18 ← phi( play_move_down::@4/(byte) current_orientation#15 play_move_down::@7/(byte) current_orientation#33 ) + [181] (byte*) current_piece#13 ← phi( play_move_down::@4/(byte*) current_piece#11 play_move_down::@7/(byte*) current_piece#23 ) + [181] (byte) current_ypos#16 ← phi( play_move_down::@4/(byte) current_ypos#12 play_move_down::@7/(byte) current_ypos#31 ) + [181] (byte) current_movedown_counter#12 ← phi( play_move_down::@4/(byte) current_movedown_counter#10 play_move_down::@7/(byte/signed byte/word/signed word/dword/signed dword) 0 ) + [181] (byte) play_move_down::return#3 ← phi( play_move_down::@4/(byte/signed byte/word/signed word/dword/signed dword) 0 play_move_down::@7/(byte/signed byte/word/signed word/dword/signed dword) 1 ) + [182] return to:@return play_move_down::@6: scope:[play_move_down] from play_move_down::@18 - [182] (byte) current_ypos#4 ← ++ (byte) current_ypos#12 + [183] (byte) current_ypos#4 ← ++ (byte) current_ypos#12 to:play_move_down::@7 spawn_current: scope:[spawn_current] from main::@23 play_move_down::@20 - [183] phi() + [184] phi() to:spawn_current::@1 spawn_current::@1: scope:[spawn_current] from spawn_current spawn_current::@7 - [184] (byte) spawn_current::piece_idx#2 ← phi( spawn_current/(byte/signed byte/word/signed word/dword/signed dword) 7 spawn_current::@7/(byte) spawn_current::piece_idx#1 ) - [185] if((byte) spawn_current::piece_idx#2==(byte/signed byte/word/signed word/dword/signed dword) 7) goto spawn_current::@2 + [185] (byte) spawn_current::piece_idx#2 ← phi( spawn_current/(byte/signed byte/word/signed word/dword/signed dword) 7 spawn_current::@7/(byte) spawn_current::piece_idx#1 ) + [186] if((byte) spawn_current::piece_idx#2==(byte/signed byte/word/signed word/dword/signed dword) 7) goto spawn_current::@2 to:spawn_current::@3 spawn_current::@3: scope:[spawn_current] from spawn_current::@1 - [186] (byte~) spawn_current::$3 ← (byte) spawn_current::piece_idx#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 - [187] (byte*) current_piece_gfx#10 ← (byte*)*((const word[]) PIECES#0 + (byte~) spawn_current::$3) + (byte/signed byte/word/signed word/dword/signed dword) 0 - [188] (byte) current_piece_color#15 ← *((const byte[]) PIECES_COLORS#0 + (byte) spawn_current::piece_idx#2) + [187] (byte~) spawn_current::$3 ← (byte) spawn_current::piece_idx#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 + [188] (byte*) current_piece_gfx#10 ← (byte*)*((const word[]) PIECES#0 + (byte~) spawn_current::$3) + (byte/signed byte/word/signed word/dword/signed dword) 0 + [189] (byte) current_piece_color#15 ← *((const byte[]) PIECES_COLORS#0 + (byte) spawn_current::piece_idx#2) to:spawn_current::@return spawn_current::@return: scope:[spawn_current] from spawn_current::@3 - [189] return + [190] return to:@return spawn_current::@2: scope:[spawn_current] from spawn_current::@1 - [190] phi() - [191] call sid_rnd - [192] (byte) sid_rnd::return#2 ← (byte) sid_rnd::return#0 + [191] phi() + [192] call sid_rnd + [193] (byte) sid_rnd::return#2 ← (byte) sid_rnd::return#0 to:spawn_current::@7 spawn_current::@7: scope:[spawn_current] from spawn_current::@2 - [193] (byte~) spawn_current::$1 ← (byte) sid_rnd::return#2 - [194] (byte) spawn_current::piece_idx#1 ← (byte~) spawn_current::$1 & (byte/signed byte/word/signed word/dword/signed dword) 7 + [194] (byte~) spawn_current::$1 ← (byte) sid_rnd::return#2 + [195] (byte) spawn_current::piece_idx#1 ← (byte~) spawn_current::$1 & (byte/signed byte/word/signed word/dword/signed dword) 7 to:spawn_current::@1 sid_rnd: scope:[sid_rnd] from spawn_current::@2 - [195] (byte) sid_rnd::return#0 ← *((const byte*) SID_VOICE3_OSC#0) + [196] (byte) sid_rnd::return#0 ← *((const byte*) SID_VOICE3_OSC#0) to:sid_rnd::@return sid_rnd::@return: scope:[sid_rnd] from sid_rnd - [196] return + [197] return to:@return remove_lines: scope:[remove_lines] from play_move_down::@19 - [197] phi() + [198] phi() to:remove_lines::@1 remove_lines::@1: scope:[remove_lines] from remove_lines remove_lines::@4 - [198] (byte) remove_lines::y#8 ← phi( remove_lines/(byte/signed byte/word/signed word/dword/signed dword) 0 remove_lines::@4/(byte) remove_lines::y#1 ) - [198] (byte) remove_lines::w#12 ← phi( remove_lines/(const byte) PLAYFIELD_LINES#0*(const byte) PLAYFIELD_COLS#0-(byte/signed byte/word/signed word/dword/signed dword) 1 remove_lines::@4/(byte) remove_lines::w#11 ) - [198] (byte) remove_lines::r#3 ← phi( remove_lines/(const byte) PLAYFIELD_LINES#0*(const byte) PLAYFIELD_COLS#0-(byte/signed byte/word/signed word/dword/signed dword) 1 remove_lines::@4/(byte) remove_lines::r#1 ) + [199] (byte) remove_lines::y#8 ← phi( remove_lines/(byte/signed byte/word/signed word/dword/signed dword) 0 remove_lines::@4/(byte) remove_lines::y#1 ) + [199] (byte) remove_lines::w#12 ← phi( remove_lines/(const byte) PLAYFIELD_LINES#0*(const byte) PLAYFIELD_COLS#0-(byte/signed byte/word/signed word/dword/signed dword) 1 remove_lines::@4/(byte) remove_lines::w#11 ) + [199] (byte) remove_lines::r#3 ← phi( remove_lines/(const byte) PLAYFIELD_LINES#0*(const byte) PLAYFIELD_COLS#0-(byte/signed byte/word/signed word/dword/signed dword) 1 remove_lines::@4/(byte) remove_lines::r#1 ) to:remove_lines::@2 remove_lines::@2: scope:[remove_lines] from remove_lines::@1 remove_lines::@3 - [199] (byte) remove_lines::full#4 ← phi( remove_lines::@1/(byte/signed byte/word/signed word/dword/signed dword) 1 remove_lines::@3/(byte) remove_lines::full#2 ) - [199] (byte) remove_lines::x#2 ← phi( remove_lines::@1/(byte/signed byte/word/signed word/dword/signed dword) 0 remove_lines::@3/(byte) remove_lines::x#1 ) - [199] (byte) remove_lines::w#4 ← phi( remove_lines::@1/(byte) remove_lines::w#12 remove_lines::@3/(byte) remove_lines::w#1 ) - [199] (byte) remove_lines::r#2 ← phi( remove_lines::@1/(byte) remove_lines::r#3 remove_lines::@3/(byte) remove_lines::r#1 ) - [200] (byte) remove_lines::c#0 ← *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) remove_lines::r#2) - [201] (byte) remove_lines::r#1 ← -- (byte) remove_lines::r#2 - [202] if((byte) remove_lines::c#0!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto remove_lines::@17 + [200] (byte) remove_lines::full#4 ← phi( remove_lines::@1/(byte/signed byte/word/signed word/dword/signed dword) 1 remove_lines::@3/(byte) remove_lines::full#2 ) + [200] (byte) remove_lines::x#2 ← phi( remove_lines::@1/(byte/signed byte/word/signed word/dword/signed dword) 0 remove_lines::@3/(byte) remove_lines::x#1 ) + [200] (byte) remove_lines::w#4 ← phi( remove_lines::@1/(byte) remove_lines::w#12 remove_lines::@3/(byte) remove_lines::w#1 ) + [200] (byte) remove_lines::r#2 ← phi( remove_lines::@1/(byte) remove_lines::r#3 remove_lines::@3/(byte) remove_lines::r#1 ) + [201] (byte) remove_lines::c#0 ← *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) remove_lines::r#2) + [202] (byte) remove_lines::r#1 ← -- (byte) remove_lines::r#2 + [203] if((byte) remove_lines::c#0!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto remove_lines::@17 to:remove_lines::@3 remove_lines::@3: scope:[remove_lines] from remove_lines::@17 remove_lines::@2 - [203] (byte) remove_lines::full#2 ← phi( remove_lines::@17/(byte) remove_lines::full#4 remove_lines::@2/(byte/signed byte/word/signed word/dword/signed dword) 0 ) - [204] *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) remove_lines::w#4) ← (byte) remove_lines::c#0 - [205] (byte) remove_lines::w#1 ← -- (byte) remove_lines::w#4 - [206] (byte) remove_lines::x#1 ← ++ (byte) remove_lines::x#2 - [207] if((byte) remove_lines::x#1!=(const byte) PLAYFIELD_COLS#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto remove_lines::@2 + [204] (byte) remove_lines::full#2 ← phi( remove_lines::@17/(byte) remove_lines::full#4 remove_lines::@2/(byte/signed byte/word/signed word/dword/signed dword) 0 ) + [205] *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) remove_lines::w#4) ← (byte) remove_lines::c#0 + [206] (byte) remove_lines::w#1 ← -- (byte) remove_lines::w#4 + [207] (byte) remove_lines::x#1 ← ++ (byte) remove_lines::x#2 + [208] if((byte) remove_lines::x#1!=(const byte) PLAYFIELD_COLS#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto remove_lines::@2 to:remove_lines::@9 remove_lines::@9: scope:[remove_lines] from remove_lines::@3 - [208] if((byte) remove_lines::full#2!=(byte/signed byte/word/signed word/dword/signed dword) 1) goto remove_lines::@4 + [209] if((byte) remove_lines::full#2!=(byte/signed byte/word/signed word/dword/signed dword) 1) goto remove_lines::@4 to:remove_lines::@10 remove_lines::@10: scope:[remove_lines] from remove_lines::@9 - [209] (byte) remove_lines::w#2 ← (byte) remove_lines::w#1 + (const byte) PLAYFIELD_COLS#0 + [210] (byte) remove_lines::w#2 ← (byte) remove_lines::w#1 + (const byte) PLAYFIELD_COLS#0 to:remove_lines::@4 remove_lines::@4: scope:[remove_lines] from remove_lines::@10 remove_lines::@9 - [210] (byte) remove_lines::w#11 ← phi( remove_lines::@10/(byte) remove_lines::w#2 remove_lines::@9/(byte) remove_lines::w#1 ) - [211] (byte) remove_lines::y#1 ← ++ (byte) remove_lines::y#8 - [212] if((byte) remove_lines::y#1!=(const byte) PLAYFIELD_LINES#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto remove_lines::@1 + [211] (byte) remove_lines::w#11 ← phi( remove_lines::@10/(byte) remove_lines::w#2 remove_lines::@9/(byte) remove_lines::w#1 ) + [212] (byte) remove_lines::y#1 ← ++ (byte) remove_lines::y#8 + [213] if((byte) remove_lines::y#1!=(const byte) PLAYFIELD_LINES#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto remove_lines::@1 to:remove_lines::@5 remove_lines::@5: scope:[remove_lines] from remove_lines::@4 remove_lines::@6 - [213] (byte) remove_lines::w#6 ← phi( remove_lines::@4/(byte) remove_lines::w#11 remove_lines::@6/(byte) remove_lines::w#3 ) - [214] if((byte) remove_lines::w#6!=(byte/word/signed word/dword/signed dword) 255) goto remove_lines::@6 + [214] (byte) remove_lines::w#6 ← phi( remove_lines::@4/(byte) remove_lines::w#11 remove_lines::@6/(byte) remove_lines::w#3 ) + [215] if((byte) remove_lines::w#6!=(byte/word/signed word/dword/signed dword) 255) goto remove_lines::@6 to:remove_lines::@return remove_lines::@return: scope:[remove_lines] from remove_lines::@5 - [215] return + [216] return to:@return remove_lines::@6: scope:[remove_lines] from remove_lines::@5 - [216] *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) remove_lines::w#6) ← (byte/signed byte/word/signed word/dword/signed dword) 0 - [217] (byte) remove_lines::w#3 ← -- (byte) remove_lines::w#6 + [217] *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) remove_lines::w#6) ← (byte/signed byte/word/signed word/dword/signed dword) 0 + [218] (byte) remove_lines::w#3 ← -- (byte) remove_lines::w#6 to:remove_lines::@5 remove_lines::@17: scope:[remove_lines] from remove_lines::@2 - [218] phi() + [219] phi() to:remove_lines::@3 lock_current: scope:[lock_current] from play_move_down::@13 - [219] (byte) lock_current::ypos2#0 ← (byte) current_ypos#12 << (byte/signed byte/word/signed word/dword/signed dword) 1 + [220] (byte) lock_current::ypos2#0 ← (byte) current_ypos#12 << (byte/signed byte/word/signed word/dword/signed dword) 1 to:lock_current::@1 lock_current::@1: scope:[lock_current] from lock_current lock_current::@7 - [220] (byte) lock_current::l#6 ← phi( lock_current/(byte/signed byte/word/signed word/dword/signed dword) 0 lock_current::@7/(byte) lock_current::l#1 ) - [220] (byte) lock_current::i#3 ← phi( lock_current/(byte/signed byte/word/signed word/dword/signed dword) 0 lock_current::@7/(byte~) lock_current::i#7 ) - [220] (byte) lock_current::ypos2#2 ← phi( lock_current/(byte) lock_current::ypos2#0 lock_current::@7/(byte) lock_current::ypos2#1 ) - [221] (byte*) lock_current::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) lock_current::ypos2#2) - [222] (byte) lock_current::col#0 ← (byte) current_xpos#16 + [221] (byte) lock_current::l#6 ← phi( lock_current/(byte/signed byte/word/signed word/dword/signed dword) 0 lock_current::@7/(byte) lock_current::l#1 ) + [221] (byte) lock_current::i#3 ← phi( lock_current/(byte/signed byte/word/signed word/dword/signed dword) 0 lock_current::@7/(byte~) lock_current::i#7 ) + [221] (byte) lock_current::ypos2#2 ← phi( lock_current/(byte) lock_current::ypos2#0 lock_current::@7/(byte) lock_current::ypos2#1 ) + [222] (byte*) lock_current::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) lock_current::ypos2#2) + [223] (byte) lock_current::col#0 ← (byte) current_xpos#16 to:lock_current::@2 lock_current::@2: scope:[lock_current] from lock_current::@1 lock_current::@8 - [223] (byte) lock_current::c#2 ← phi( lock_current::@1/(byte/signed byte/word/signed word/dword/signed dword) 0 lock_current::@8/(byte) lock_current::c#1 ) - [223] (byte) lock_current::col#2 ← phi( lock_current::@1/(byte) lock_current::col#0 lock_current::@8/(byte) lock_current::col#1 ) - [223] (byte) lock_current::i#2 ← phi( lock_current::@1/(byte) lock_current::i#3 lock_current::@8/(byte~) lock_current::i#9 ) - [224] (byte) lock_current::i#1 ← ++ (byte) lock_current::i#2 - [225] if(*((byte*) current_piece_gfx#15 + (byte) lock_current::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto lock_current::@3 + [224] (byte) lock_current::c#2 ← phi( lock_current::@1/(byte/signed byte/word/signed word/dword/signed dword) 0 lock_current::@8/(byte) lock_current::c#1 ) + [224] (byte) lock_current::col#2 ← phi( lock_current::@1/(byte) lock_current::col#0 lock_current::@8/(byte) lock_current::col#1 ) + [224] (byte) lock_current::i#2 ← phi( lock_current::@1/(byte) lock_current::i#3 lock_current::@8/(byte~) lock_current::i#9 ) + [225] (byte) lock_current::i#1 ← ++ (byte) lock_current::i#2 + [226] if(*((byte*) current_piece_gfx#15 + (byte) lock_current::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto lock_current::@3 to:lock_current::@4 lock_current::@4: scope:[lock_current] from lock_current::@2 - [226] *((byte*) lock_current::playfield_line#0 + (byte) lock_current::col#2) ← (byte) current_piece_color#11 + [227] *((byte*) lock_current::playfield_line#0 + (byte) lock_current::col#2) ← (byte) current_piece_color#11 to:lock_current::@3 lock_current::@3: scope:[lock_current] from lock_current::@2 lock_current::@4 - [227] (byte) lock_current::col#1 ← ++ (byte) lock_current::col#2 - [228] (byte) lock_current::c#1 ← ++ (byte) lock_current::c#2 - [229] if((byte) lock_current::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto lock_current::@8 + [228] (byte) lock_current::col#1 ← ++ (byte) lock_current::col#2 + [229] (byte) lock_current::c#1 ← ++ (byte) lock_current::c#2 + [230] if((byte) lock_current::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto lock_current::@8 to:lock_current::@5 lock_current::@5: scope:[lock_current] from lock_current::@3 - [230] (byte) lock_current::ypos2#1 ← (byte) lock_current::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 - [231] (byte) lock_current::l#1 ← ++ (byte) lock_current::l#6 - [232] if((byte) lock_current::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto lock_current::@7 + [231] (byte) lock_current::ypos2#1 ← (byte) lock_current::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 + [232] (byte) lock_current::l#1 ← ++ (byte) lock_current::l#6 + [233] if((byte) lock_current::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto lock_current::@7 to:lock_current::@return lock_current::@return: scope:[lock_current] from lock_current::@5 - [233] return + [234] return to:@return lock_current::@7: scope:[lock_current] from lock_current::@5 - [234] (byte~) lock_current::i#7 ← (byte) lock_current::i#1 + [235] (byte~) lock_current::i#7 ← (byte) lock_current::i#1 to:lock_current::@1 lock_current::@8: scope:[lock_current] from lock_current::@3 - [235] (byte~) lock_current::i#9 ← (byte) lock_current::i#1 + [236] (byte~) lock_current::i#9 ← (byte) lock_current::i#1 to:lock_current::@2 keyboard_event_pressed: scope:[keyboard_event_pressed] from keyboard_event_scan::@10 keyboard_event_scan::@11 keyboard_event_scan::@20 keyboard_event_scan::@9 play_move_down::@1 - [236] (byte) keyboard_event_pressed::keycode#5 ← phi( keyboard_event_scan::@10/(const byte) KEY_CTRL#0 keyboard_event_scan::@11/(const byte) KEY_COMMODORE#0 keyboard_event_scan::@20/(const byte) KEY_LSHIFT#0 keyboard_event_scan::@9/(const byte) KEY_RSHIFT#0 play_move_down::@1/(const byte) KEY_SPACE#0 ) - [237] (byte~) keyboard_event_pressed::$0 ← (byte) keyboard_event_pressed::keycode#5 >> (byte/signed byte/word/signed word/dword/signed dword) 3 - [238] (byte) keyboard_event_pressed::row_bits#0 ← *((const byte[8]) keyboard_scan_values#0 + (byte~) keyboard_event_pressed::$0) - [239] (byte~) keyboard_event_pressed::$1 ← (byte) keyboard_event_pressed::keycode#5 & (byte/signed byte/word/signed word/dword/signed dword) 7 - [240] (byte) keyboard_event_pressed::return#11 ← (byte) keyboard_event_pressed::row_bits#0 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte~) keyboard_event_pressed::$1) + [237] (byte) keyboard_event_pressed::keycode#5 ← phi( keyboard_event_scan::@10/(const byte) KEY_CTRL#0 keyboard_event_scan::@11/(const byte) KEY_COMMODORE#0 keyboard_event_scan::@20/(const byte) KEY_LSHIFT#0 keyboard_event_scan::@9/(const byte) KEY_RSHIFT#0 play_move_down::@1/(const byte) KEY_SPACE#0 ) + [238] (byte~) keyboard_event_pressed::$0 ← (byte) keyboard_event_pressed::keycode#5 >> (byte/signed byte/word/signed word/dword/signed dword) 3 + [239] (byte) keyboard_event_pressed::row_bits#0 ← *((const byte[8]) keyboard_scan_values#0 + (byte~) keyboard_event_pressed::$0) + [240] (byte~) keyboard_event_pressed::$1 ← (byte) keyboard_event_pressed::keycode#5 & (byte/signed byte/word/signed word/dword/signed dword) 7 + [241] (byte) keyboard_event_pressed::return#11 ← (byte) keyboard_event_pressed::row_bits#0 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte~) keyboard_event_pressed::$1) to:keyboard_event_pressed::@return keyboard_event_pressed::@return: scope:[keyboard_event_pressed] from keyboard_event_pressed - [241] return + [242] return to:@return keyboard_event_get: scope:[keyboard_event_get] from main::@27 - [242] if((byte) keyboard_events_size#13==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_get::@return + [243] if((byte) keyboard_events_size#13==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_get::@return to:keyboard_event_get::@3 keyboard_event_get::@3: scope:[keyboard_event_get] from keyboard_event_get - [243] (byte) keyboard_events_size#4 ← -- (byte) keyboard_events_size#13 - [244] (byte) keyboard_event_get::return#1 ← *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#4) + [244] (byte) keyboard_events_size#4 ← -- (byte) keyboard_events_size#13 + [245] (byte) keyboard_event_get::return#1 ← *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#4) to:keyboard_event_get::@return keyboard_event_get::@return: scope:[keyboard_event_get] from keyboard_event_get keyboard_event_get::@3 - [245] (byte) keyboard_events_size#16 ← phi( keyboard_event_get/(byte) keyboard_events_size#13 keyboard_event_get::@3/(byte) keyboard_events_size#4 ) - [245] (byte) keyboard_event_get::return#2 ← phi( keyboard_event_get/(byte/word/signed word/dword/signed dword) 255 keyboard_event_get::@3/(byte) keyboard_event_get::return#1 ) - [246] return + [246] (byte) keyboard_events_size#16 ← phi( keyboard_event_get/(byte) keyboard_events_size#13 keyboard_event_get::@3/(byte) keyboard_events_size#4 ) + [246] (byte) keyboard_event_get::return#2 ← phi( keyboard_event_get/(byte/word/signed word/dword/signed dword) 255 keyboard_event_get::@3/(byte) keyboard_event_get::return#1 ) + [247] return to:@return keyboard_event_scan: scope:[keyboard_event_scan] from main::@9 - [247] phi() + [248] phi() to:keyboard_event_scan::@1 keyboard_event_scan::@1: scope:[keyboard_event_scan] from keyboard_event_scan keyboard_event_scan::@3 - [248] (byte) keyboard_events_size#29 ← phi( keyboard_event_scan/(byte) keyboard_events_size#19 keyboard_event_scan::@3/(byte) keyboard_events_size#13 ) - [248] (byte) keyboard_event_scan::keycode#11 ← phi( keyboard_event_scan/(byte/signed byte/word/signed word/dword/signed dword) 0 keyboard_event_scan::@3/(byte) keyboard_event_scan::keycode#14 ) - [248] (byte) keyboard_event_scan::row#2 ← phi( keyboard_event_scan/(byte/signed byte/word/signed word/dword/signed dword) 0 keyboard_event_scan::@3/(byte) keyboard_event_scan::row#1 ) - [249] (byte) keyboard_matrix_read::rowid#0 ← (byte) keyboard_event_scan::row#2 - [250] call keyboard_matrix_read - [251] (byte) keyboard_matrix_read::return#2 ← (byte) keyboard_matrix_read::return#0 + [249] (byte) keyboard_events_size#29 ← phi( keyboard_event_scan/(byte) keyboard_events_size#19 keyboard_event_scan::@3/(byte) keyboard_events_size#13 ) + [249] (byte) keyboard_event_scan::keycode#11 ← phi( keyboard_event_scan/(byte/signed byte/word/signed word/dword/signed dword) 0 keyboard_event_scan::@3/(byte) keyboard_event_scan::keycode#14 ) + [249] (byte) keyboard_event_scan::row#2 ← phi( keyboard_event_scan/(byte/signed byte/word/signed word/dword/signed dword) 0 keyboard_event_scan::@3/(byte) keyboard_event_scan::row#1 ) + [250] (byte) keyboard_matrix_read::rowid#0 ← (byte) keyboard_event_scan::row#2 + [251] call keyboard_matrix_read + [252] (byte) keyboard_matrix_read::return#2 ← (byte) keyboard_matrix_read::return#0 to:keyboard_event_scan::@25 keyboard_event_scan::@25: scope:[keyboard_event_scan] from keyboard_event_scan::@1 - [252] (byte) keyboard_event_scan::row_scan#0 ← (byte) keyboard_matrix_read::return#2 - [253] if((byte) keyboard_event_scan::row_scan#0!=*((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2)) goto keyboard_event_scan::@4 + [253] (byte) keyboard_event_scan::row_scan#0 ← (byte) keyboard_matrix_read::return#2 + [254] if((byte) keyboard_event_scan::row_scan#0!=*((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2)) goto keyboard_event_scan::@4 to:keyboard_event_scan::@13 keyboard_event_scan::@13: scope:[keyboard_event_scan] from keyboard_event_scan::@25 - [254] (byte) keyboard_event_scan::keycode#1 ← (byte) keyboard_event_scan::keycode#11 + (byte/signed byte/word/signed word/dword/signed dword) 8 + [255] (byte) keyboard_event_scan::keycode#1 ← (byte) keyboard_event_scan::keycode#11 + (byte/signed byte/word/signed word/dword/signed dword) 8 to:keyboard_event_scan::@3 keyboard_event_scan::@3: scope:[keyboard_event_scan] from keyboard_event_scan::@13 keyboard_event_scan::@19 - [255] (byte) keyboard_events_size#13 ← phi( keyboard_event_scan::@13/(byte) keyboard_events_size#29 keyboard_event_scan::@19/(byte) keyboard_events_size#30 ) - [255] (byte) keyboard_event_scan::keycode#14 ← phi( keyboard_event_scan::@13/(byte) keyboard_event_scan::keycode#1 keyboard_event_scan::@19/(byte) keyboard_event_scan::keycode#15 ) - [256] (byte) keyboard_event_scan::row#1 ← ++ (byte) keyboard_event_scan::row#2 - [257] if((byte) keyboard_event_scan::row#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto keyboard_event_scan::@1 + [256] (byte) keyboard_events_size#13 ← phi( keyboard_event_scan::@13/(byte) keyboard_events_size#29 keyboard_event_scan::@19/(byte) keyboard_events_size#30 ) + [256] (byte) keyboard_event_scan::keycode#14 ← phi( keyboard_event_scan::@13/(byte) keyboard_event_scan::keycode#1 keyboard_event_scan::@19/(byte) keyboard_event_scan::keycode#15 ) + [257] (byte) keyboard_event_scan::row#1 ← ++ (byte) keyboard_event_scan::row#2 + [258] if((byte) keyboard_event_scan::row#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto keyboard_event_scan::@1 to:keyboard_event_scan::@20 keyboard_event_scan::@20: scope:[keyboard_event_scan] from keyboard_event_scan::@3 - [258] phi() - [259] call keyboard_event_pressed - [260] (byte) keyboard_event_pressed::return#0 ← (byte) keyboard_event_pressed::return#11 + [259] phi() + [260] call keyboard_event_pressed + [261] (byte) keyboard_event_pressed::return#0 ← (byte) keyboard_event_pressed::return#11 to:keyboard_event_scan::@26 keyboard_event_scan::@26: scope:[keyboard_event_scan] from keyboard_event_scan::@20 - [261] (byte~) keyboard_event_scan::$14 ← (byte) keyboard_event_pressed::return#0 - [262] if((byte~) keyboard_event_scan::$14==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@9 + [262] (byte~) keyboard_event_scan::$14 ← (byte) keyboard_event_pressed::return#0 + [263] if((byte~) keyboard_event_scan::$14==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@9 to:keyboard_event_scan::@21 keyboard_event_scan::@21: scope:[keyboard_event_scan] from keyboard_event_scan::@26 - [263] phi() + [264] phi() to:keyboard_event_scan::@9 keyboard_event_scan::@9: scope:[keyboard_event_scan] from keyboard_event_scan::@21 keyboard_event_scan::@26 - [264] phi() - [265] call keyboard_event_pressed - [266] (byte) keyboard_event_pressed::return#1 ← (byte) keyboard_event_pressed::return#11 + [265] phi() + [266] call keyboard_event_pressed + [267] (byte) keyboard_event_pressed::return#1 ← (byte) keyboard_event_pressed::return#11 to:keyboard_event_scan::@27 keyboard_event_scan::@27: scope:[keyboard_event_scan] from keyboard_event_scan::@9 - [267] (byte~) keyboard_event_scan::$18 ← (byte) keyboard_event_pressed::return#1 - [268] if((byte~) keyboard_event_scan::$18==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@10 + [268] (byte~) keyboard_event_scan::$18 ← (byte) keyboard_event_pressed::return#1 + [269] if((byte~) keyboard_event_scan::$18==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@10 to:keyboard_event_scan::@22 keyboard_event_scan::@22: scope:[keyboard_event_scan] from keyboard_event_scan::@27 - [269] phi() + [270] phi() to:keyboard_event_scan::@10 keyboard_event_scan::@10: scope:[keyboard_event_scan] from keyboard_event_scan::@22 keyboard_event_scan::@27 - [270] phi() - [271] call keyboard_event_pressed - [272] (byte) keyboard_event_pressed::return#2 ← (byte) keyboard_event_pressed::return#11 + [271] phi() + [272] call keyboard_event_pressed + [273] (byte) keyboard_event_pressed::return#2 ← (byte) keyboard_event_pressed::return#11 to:keyboard_event_scan::@28 keyboard_event_scan::@28: scope:[keyboard_event_scan] from keyboard_event_scan::@10 - [273] (byte~) keyboard_event_scan::$22 ← (byte) keyboard_event_pressed::return#2 - [274] if((byte~) keyboard_event_scan::$22==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@11 + [274] (byte~) keyboard_event_scan::$22 ← (byte) keyboard_event_pressed::return#2 + [275] if((byte~) keyboard_event_scan::$22==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@11 to:keyboard_event_scan::@23 keyboard_event_scan::@23: scope:[keyboard_event_scan] from keyboard_event_scan::@28 - [275] phi() + [276] phi() to:keyboard_event_scan::@11 keyboard_event_scan::@11: scope:[keyboard_event_scan] from keyboard_event_scan::@23 keyboard_event_scan::@28 - [276] phi() - [277] call keyboard_event_pressed - [278] (byte) keyboard_event_pressed::return#10 ← (byte) keyboard_event_pressed::return#11 + [277] phi() + [278] call keyboard_event_pressed + [279] (byte) keyboard_event_pressed::return#10 ← (byte) keyboard_event_pressed::return#11 to:keyboard_event_scan::@29 keyboard_event_scan::@29: scope:[keyboard_event_scan] from keyboard_event_scan::@11 - [279] (byte~) keyboard_event_scan::$26 ← (byte) keyboard_event_pressed::return#10 - [280] if((byte~) keyboard_event_scan::$26==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@return + [280] (byte~) keyboard_event_scan::$26 ← (byte) keyboard_event_pressed::return#10 + [281] if((byte~) keyboard_event_scan::$26==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@return to:keyboard_event_scan::@24 keyboard_event_scan::@24: scope:[keyboard_event_scan] from keyboard_event_scan::@29 - [281] phi() + [282] phi() to:keyboard_event_scan::@return keyboard_event_scan::@return: scope:[keyboard_event_scan] from keyboard_event_scan::@24 keyboard_event_scan::@29 - [282] return + [283] return to:@return keyboard_event_scan::@4: scope:[keyboard_event_scan] from keyboard_event_scan::@25 keyboard_event_scan::@5 - [283] (byte) keyboard_events_size#10 ← phi( keyboard_event_scan::@25/(byte) keyboard_events_size#29 keyboard_event_scan::@5/(byte) keyboard_events_size#30 ) - [283] (byte) keyboard_event_scan::keycode#10 ← phi( keyboard_event_scan::@25/(byte) keyboard_event_scan::keycode#11 keyboard_event_scan::@5/(byte) keyboard_event_scan::keycode#15 ) - [283] (byte) keyboard_event_scan::col#2 ← phi( keyboard_event_scan::@25/(byte/signed byte/word/signed word/dword/signed dword) 0 keyboard_event_scan::@5/(byte) keyboard_event_scan::col#1 ) - [284] (byte~) keyboard_event_scan::$3 ← (byte) keyboard_event_scan::row_scan#0 ^ *((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2) - [285] (byte~) keyboard_event_scan::$4 ← (byte~) keyboard_event_scan::$3 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_event_scan::col#2) - [286] if((byte~) keyboard_event_scan::$4==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@5 + [284] (byte) keyboard_events_size#10 ← phi( keyboard_event_scan::@25/(byte) keyboard_events_size#29 keyboard_event_scan::@5/(byte) keyboard_events_size#30 ) + [284] (byte) keyboard_event_scan::keycode#10 ← phi( keyboard_event_scan::@25/(byte) keyboard_event_scan::keycode#11 keyboard_event_scan::@5/(byte) keyboard_event_scan::keycode#15 ) + [284] (byte) keyboard_event_scan::col#2 ← phi( keyboard_event_scan::@25/(byte/signed byte/word/signed word/dword/signed dword) 0 keyboard_event_scan::@5/(byte) keyboard_event_scan::col#1 ) + [285] (byte~) keyboard_event_scan::$3 ← (byte) keyboard_event_scan::row_scan#0 ^ *((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2) + [286] (byte~) keyboard_event_scan::$4 ← (byte~) keyboard_event_scan::$3 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_event_scan::col#2) + [287] if((byte~) keyboard_event_scan::$4==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@5 to:keyboard_event_scan::@15 keyboard_event_scan::@15: scope:[keyboard_event_scan] from keyboard_event_scan::@4 - [287] if((byte) keyboard_events_size#10==(byte/signed byte/word/signed word/dword/signed dword) 8) goto keyboard_event_scan::@5 + [288] if((byte) keyboard_events_size#10==(byte/signed byte/word/signed word/dword/signed dword) 8) goto keyboard_event_scan::@5 to:keyboard_event_scan::@16 keyboard_event_scan::@16: scope:[keyboard_event_scan] from keyboard_event_scan::@15 - [288] (byte) keyboard_event_scan::event_type#0 ← (byte) keyboard_event_scan::row_scan#0 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_event_scan::col#2) - [289] if((byte) keyboard_event_scan::event_type#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@7 + [289] (byte) keyboard_event_scan::event_type#0 ← (byte) keyboard_event_scan::row_scan#0 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_event_scan::col#2) + [290] if((byte) keyboard_event_scan::event_type#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@7 to:keyboard_event_scan::@17 keyboard_event_scan::@17: scope:[keyboard_event_scan] from keyboard_event_scan::@16 - [290] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte) keyboard_event_scan::keycode#10 - [291] (byte) keyboard_events_size#2 ← ++ (byte) keyboard_events_size#10 + [291] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte) keyboard_event_scan::keycode#10 + [292] (byte) keyboard_events_size#2 ← ++ (byte) keyboard_events_size#10 to:keyboard_event_scan::@5 keyboard_event_scan::@5: scope:[keyboard_event_scan] from keyboard_event_scan::@15 keyboard_event_scan::@17 keyboard_event_scan::@4 keyboard_event_scan::@7 - [292] (byte) keyboard_events_size#30 ← phi( keyboard_event_scan::@17/(byte) keyboard_events_size#2 keyboard_event_scan::@4/(byte) keyboard_events_size#10 keyboard_event_scan::@15/(byte) keyboard_events_size#10 keyboard_event_scan::@7/(byte) keyboard_events_size#1 ) - [293] (byte) keyboard_event_scan::keycode#15 ← ++ (byte) keyboard_event_scan::keycode#10 - [294] (byte) keyboard_event_scan::col#1 ← ++ (byte) keyboard_event_scan::col#2 - [295] if((byte) keyboard_event_scan::col#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto keyboard_event_scan::@4 + [293] (byte) keyboard_events_size#30 ← phi( keyboard_event_scan::@17/(byte) keyboard_events_size#2 keyboard_event_scan::@4/(byte) keyboard_events_size#10 keyboard_event_scan::@15/(byte) keyboard_events_size#10 keyboard_event_scan::@7/(byte) keyboard_events_size#1 ) + [294] (byte) keyboard_event_scan::keycode#15 ← ++ (byte) keyboard_event_scan::keycode#10 + [295] (byte) keyboard_event_scan::col#1 ← ++ (byte) keyboard_event_scan::col#2 + [296] if((byte) keyboard_event_scan::col#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto keyboard_event_scan::@4 to:keyboard_event_scan::@19 keyboard_event_scan::@19: scope:[keyboard_event_scan] from keyboard_event_scan::@5 - [296] *((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2) ← (byte) keyboard_event_scan::row_scan#0 + [297] *((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2) ← (byte) keyboard_event_scan::row_scan#0 to:keyboard_event_scan::@3 keyboard_event_scan::@7: scope:[keyboard_event_scan] from keyboard_event_scan::@16 - [297] (byte/word/dword~) keyboard_event_scan::$11 ← (byte) keyboard_event_scan::keycode#10 | (byte/signed byte/word/signed word/dword/signed dword) 64 - [298] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte/word/dword~) keyboard_event_scan::$11 - [299] (byte) keyboard_events_size#1 ← ++ (byte) keyboard_events_size#10 + [298] (byte/word/dword~) keyboard_event_scan::$11 ← (byte) keyboard_event_scan::keycode#10 | (byte/signed byte/word/signed word/dword/signed dword) 64 + [299] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte/word/dword~) keyboard_event_scan::$11 + [300] (byte) keyboard_events_size#1 ← ++ (byte) keyboard_events_size#10 to:keyboard_event_scan::@5 keyboard_matrix_read: scope:[keyboard_matrix_read] from keyboard_event_scan::@1 - [300] *((const byte*) CIA1_PORT_A#0) ← *((const byte[8]) keyboard_matrix_row_bitmask#0 + (byte) keyboard_matrix_read::rowid#0) - [301] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) + [301] *((const byte*) CIA1_PORT_A#0) ← *((const byte[8]) keyboard_matrix_row_bitmask#0 + (byte) keyboard_matrix_read::rowid#0) + [302] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) to:keyboard_matrix_read::@return keyboard_matrix_read::@return: scope:[keyboard_matrix_read] from keyboard_matrix_read - [302] return + [303] return to:@return tables_init: scope:[tables_init] from main::@22 - [303] phi() + [304] phi() to:tables_init::@1 tables_init::@1: scope:[tables_init] from tables_init tables_init::@1 - [304] (byte) tables_init::idx#2 ← phi( tables_init/(byte/signed byte/word/signed word/dword/signed dword) 0 tables_init::@1/(byte) tables_init::idx#1 ) - [304] (byte*) tables_init::pli#2 ← phi( tables_init/(const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 tables_init::@1/(byte*) tables_init::pli#1 ) - [304] (byte) tables_init::j#2 ← phi( tables_init/(byte/signed byte/word/signed word/dword/signed dword) 0 tables_init::@1/(byte) tables_init::j#1 ) - [305] (byte~) tables_init::$1 ← (byte) tables_init::j#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 - [306] *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte~) tables_init::$1) ← (byte*) tables_init::pli#2 - [307] *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0 + (byte) tables_init::j#2) ← (byte) tables_init::idx#2 - [308] (byte*) tables_init::pli#1 ← (byte*) tables_init::pli#2 + (const byte) PLAYFIELD_COLS#0 - [309] (byte) tables_init::idx#1 ← (byte) tables_init::idx#2 + (const byte) PLAYFIELD_COLS#0 - [310] (byte) tables_init::j#1 ← ++ (byte) tables_init::j#2 - [311] if((byte) tables_init::j#1!=(const byte) PLAYFIELD_LINES#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto tables_init::@1 + [305] (byte) tables_init::idx#2 ← phi( tables_init/(byte/signed byte/word/signed word/dword/signed dword) 0 tables_init::@1/(byte) tables_init::idx#1 ) + [305] (byte*) tables_init::pli#2 ← phi( tables_init/(const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 tables_init::@1/(byte*) tables_init::pli#1 ) + [305] (byte) tables_init::j#2 ← phi( tables_init/(byte/signed byte/word/signed word/dword/signed dword) 0 tables_init::@1/(byte) tables_init::j#1 ) + [306] (byte~) tables_init::$1 ← (byte) tables_init::j#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 + [307] *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte~) tables_init::$1) ← (byte*) tables_init::pli#2 + [308] *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0 + (byte) tables_init::j#2) ← (byte) tables_init::idx#2 + [309] (byte*) tables_init::pli#1 ← (byte*) tables_init::pli#2 + (const byte) PLAYFIELD_COLS#0 + [310] (byte) tables_init::idx#1 ← (byte) tables_init::idx#2 + (const byte) PLAYFIELD_COLS#0 + [311] (byte) tables_init::j#1 ← ++ (byte) tables_init::j#2 + [312] if((byte) tables_init::j#1!=(const byte) PLAYFIELD_LINES#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto tables_init::@1 to:tables_init::@2 tables_init::@2: scope:[tables_init] from tables_init::@1 - [312] *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0+(const byte) PLAYFIELD_LINES#0) ← (const byte) PLAYFIELD_COLS#0*(const byte) PLAYFIELD_LINES#0 + [313] *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0+(const byte) PLAYFIELD_LINES#0) ← (const byte) PLAYFIELD_COLS#0*(const byte) PLAYFIELD_LINES#0 to:tables_init::@return tables_init::@return: scope:[tables_init] from tables_init::@2 - [313] return + [314] return to:@return render_init: scope:[render_init] from main::@21 - [314] phi() - [315] call fill + [315] phi() + [316] call fill to:render_init::@7 render_init::@7: scope:[render_init] from render_init - [316] phi() - [317] call fill + [317] phi() + [318] call fill to:render_init::@1 render_init::@1: scope:[render_init] from render_init::@1 render_init::@7 - [318] (byte*) render_init::li#2 ← phi( render_init::@1/(byte*) render_init::li#1 render_init::@7/(const byte*) COLS#0+(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 15 ) - [318] (byte) render_init::i#2 ← phi( render_init::@1/(byte) render_init::i#1 render_init::@7/(byte/signed byte/word/signed word/dword/signed dword) 0 ) - [319] (byte~) render_init::$5 ← (byte) render_init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 - [320] *((const byte*[PLAYFIELD_LINES#0+3]) screen_lines#0 + (byte~) render_init::$5) ← (byte*) render_init::li#2 - [321] (byte*) render_init::li#1 ← (byte*) render_init::li#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 - [322] (byte) render_init::i#1 ← ++ (byte) render_init::i#2 - [323] if((byte) render_init::i#1!=(const byte) PLAYFIELD_LINES#0+(byte/signed byte/word/signed word/dword/signed dword) 2+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_init::@1 + [319] (byte*) render_init::li#2 ← phi( render_init::@1/(byte*) render_init::li#1 render_init::@7/(const byte*) COLS#0+(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 15 ) + [319] (byte) render_init::i#2 ← phi( render_init::@1/(byte) render_init::i#1 render_init::@7/(byte/signed byte/word/signed word/dword/signed dword) 0 ) + [320] (byte~) render_init::$5 ← (byte) render_init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 + [321] *((const byte*[PLAYFIELD_LINES#0+3]) screen_lines#0 + (byte~) render_init::$5) ← (byte*) render_init::li#2 + [322] (byte*) render_init::li#1 ← (byte*) render_init::li#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 + [323] (byte) render_init::i#1 ← ++ (byte) render_init::i#2 + [324] if((byte) render_init::i#1!=(const byte) PLAYFIELD_LINES#0+(byte/signed byte/word/signed word/dword/signed dword) 2+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_init::@1 to:render_init::@2 render_init::@2: scope:[render_init] from render_init::@1 render_init::@5 - [324] (byte) render_init::l#4 ← phi( render_init::@1/(byte/signed byte/word/signed word/dword/signed dword) 0 render_init::@5/(byte) render_init::l#1 ) - [324] (byte*) render_init::line#4 ← phi( render_init::@1/(const byte*) COLS#0+(byte/signed byte/word/signed word/dword/signed dword) 14 render_init::@5/(byte*) render_init::line#1 ) + [325] (byte) render_init::l#4 ← phi( render_init::@1/(byte/signed byte/word/signed word/dword/signed dword) 0 render_init::@5/(byte) render_init::l#1 ) + [325] (byte*) render_init::line#4 ← phi( render_init::@1/(const byte*) COLS#0+(byte/signed byte/word/signed word/dword/signed dword) 14 render_init::@5/(byte*) render_init::line#1 ) to:render_init::@3 render_init::@3: scope:[render_init] from render_init::@2 render_init::@3 - [325] (byte) render_init::c#2 ← phi( render_init::@2/(byte/signed byte/word/signed word/dword/signed dword) 0 render_init::@3/(byte) render_init::c#1 ) - [326] (byte*~) render_init::$10 ← (byte*) render_init::line#4 + (byte) render_init::c#2 - [327] *((byte*~) render_init::$10) ← (const byte) DARK_GREY#0 - [328] (byte) render_init::c#1 ← ++ (byte) render_init::c#2 - [329] if((byte) render_init::c#1!=(const byte) PLAYFIELD_COLS#0+(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_init::@3 + [326] (byte) render_init::c#2 ← phi( render_init::@2/(byte/signed byte/word/signed word/dword/signed dword) 0 render_init::@3/(byte) render_init::c#1 ) + [327] (byte*~) render_init::$10 ← (byte*) render_init::line#4 + (byte) render_init::c#2 + [328] *((byte*~) render_init::$10) ← (const byte) DARK_GREY#0 + [329] (byte) render_init::c#1 ← ++ (byte) render_init::c#2 + [330] if((byte) render_init::c#1!=(const byte) PLAYFIELD_COLS#0+(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_init::@3 to:render_init::@5 render_init::@5: scope:[render_init] from render_init::@3 - [330] (byte*) render_init::line#1 ← (byte*) render_init::line#4 + (byte/signed byte/word/signed word/dword/signed dword) 40 - [331] (byte) render_init::l#1 ← ++ (byte) render_init::l#4 - [332] if((byte) render_init::l#1!=(const byte) PLAYFIELD_LINES#0+(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_init::@2 + [331] (byte*) render_init::line#1 ← (byte*) render_init::line#4 + (byte/signed byte/word/signed word/dword/signed dword) 40 + [332] (byte) render_init::l#1 ← ++ (byte) render_init::l#4 + [333] if((byte) render_init::l#1!=(const byte) PLAYFIELD_LINES#0+(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_init::@2 to:render_init::@return render_init::@return: scope:[render_init] from render_init::@5 - [333] return + [334] return to:@return fill: scope:[fill] from render_init render_init::@7 - [334] (byte) fill::val#3 ← phi( render_init/(byte/word/signed word/dword/signed dword) 160 render_init::@7/(const byte) BLACK#0 ) - [334] (byte*) fill::addr#0 ← phi( render_init/(const byte*) SCREEN#0 render_init::@7/(const byte*) COLS#0 ) - [335] (byte*) fill::end#0 ← (byte*) fill::addr#0 + (word/signed word/dword/signed dword) 1000 + [335] (byte) fill::val#3 ← phi( render_init/(byte/word/signed word/dword/signed dword) 160 render_init::@7/(const byte) BLACK#0 ) + [335] (byte*) fill::addr#0 ← phi( render_init/(const byte*) SCREEN#0 render_init::@7/(const byte*) COLS#0 ) + [336] (byte*) fill::end#0 ← (byte*) fill::addr#0 + (word/signed word/dword/signed dword) 1000 to:fill::@1 fill::@1: scope:[fill] from fill fill::@1 - [336] (byte*) fill::addr#2 ← phi( fill/(byte*) fill::addr#0 fill::@1/(byte*) fill::addr#1 ) - [337] *((byte*) fill::addr#2) ← (byte) fill::val#3 - [338] (byte*) fill::addr#1 ← ++ (byte*) fill::addr#2 - [339] if((byte*) fill::addr#1!=(byte*) fill::end#0) goto fill::@1 + [337] (byte*) fill::addr#2 ← phi( fill/(byte*) fill::addr#0 fill::@1/(byte*) fill::addr#1 ) + [338] *((byte*) fill::addr#2) ← (byte) fill::val#3 + [339] (byte*) fill::addr#1 ← ++ (byte*) fill::addr#2 + [340] if((byte*) fill::addr#1!=(byte*) fill::end#0) goto fill::@1 to:fill::@return fill::@return: scope:[fill] from fill::@1 - [340] return + [341] return to:@return sid_rnd_init: scope:[sid_rnd_init] from main - [341] *((const word*) SID_VOICE3_FREQ#0) ← (word/dword/signed dword) 65535 - [342] *((const byte*) SID_VOICE3_CONTROL#0) ← (const byte) SID_CONTROL_NOISE#0 + [342] *((const word*) SID_VOICE3_FREQ#0) ← (word/dword/signed dword) 65535 + [343] *((const byte*) SID_VOICE3_CONTROL#0) ← (const byte) SID_CONTROL_NOISE#0 to:sid_rnd_init::@return sid_rnd_init::@return: scope:[sid_rnd_init] from sid_rnd_init - [343] return + [344] return to:@return diff --git a/src/test/ref/examples/tetris/tetris.log b/src/test/ref/examples/tetris/tetris.log index c50426c49..888602bc5 100644 --- a/src/test/ref/examples/tetris/tetris.log +++ b/src/test/ref/examples/tetris/tetris.log @@ -1573,6 +1573,12 @@ tables_init::@return: scope:[tables_init] from tables_init::@2 (byte) current_orientation#50 ← phi( @17/(byte) current_orientation#61 ) (byte*) current_piece#41 ← phi( @17/(byte*) current_piece#53 ) (byte*) SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 + (byte*) CHARSET#0 ← ((byte*)) (word/signed word/dword/signed dword) 8192 + kickasm(location (byte*) CHARSET#0) {{ .var charset = LoadPicture("charset.png", List().add($000000, $ffffff, $523fa0, $77c1c9)) + .for (var c=0; c<16; c++) + .for (var y=0;y<8; y++) + .byte charset.getMulticolorByte(c,y) + }} (byte/signed word/word/dword/signed dword~) $24 ← (byte) PLAYFIELD_LINES#0 + (byte/signed byte/word/signed word/dword/signed dword) 3 (byte*[$24]) screen_lines#0 ← { fill( $24, 0) } to:@25 @@ -1864,6 +1870,8 @@ SYMBOL TABLE SSA (byte) BLACK#0 (byte*) BORDERCOL (byte*) BORDERCOL#0 +(byte*) CHARSET +(byte*) CHARSET#0 (byte*) CIA1_PORT_A (byte*) CIA1_PORT_A#0 (byte*) CIA1_PORT_B @@ -4153,6 +4161,7 @@ Constant (const byte) remove_lines::full#1 = 0 Constant (const byte) tables_init::idx#0 = 0 Constant (const byte) tables_init::j#0 = 0 Constant (const byte*) SCREEN#0 = ((byte*))1024 +Constant (const byte*) CHARSET#0 = ((byte*))8192 Constant (const word) fill::size#0 = 1000 Constant (const byte) fill::val#0 = 160 Constant (const word) fill::size#1 = 1000 @@ -4305,7 +4314,6 @@ Culled Empty Block (label) collision::@13 Culled Empty Block (label) collision::@7 Culled Empty Block (label) collision::@15 Culled Empty Block (label) collision::@18 -Culled Empty Block (label) @22 Culled Empty Block (label) render_init::@8 Culled Empty Block (label) render_init::@4 Culled Empty Block (label) render_current::@5 @@ -4571,168 +4579,168 @@ Adding NOP phi() at start of tables_init Adding NOP phi() at start of render_init Adding NOP phi() at start of render_init::@7 CALL GRAPH -Calls in [] to main:2 -Calls in [main] to sid_rnd_init:5 render_init:7 tables_init:9 spawn_current:11 render_playfield:13 render_current:16 keyboard_event_scan:24 keyboard_event_get:26 play_move_down:30 play_move_leftright:35 play_move_rotate:40 render_playfield:46 render_current:51 -Calls in [play_move_rotate] to collision:129 -Calls in [play_move_leftright] to collision:181 collision:198 -Calls in [play_move_down] to keyboard_event_pressed:209 collision:229 lock_current:234 remove_lines:236 spawn_current:238 -Calls in [spawn_current] to sid_rnd:276 -Calls in [keyboard_event_scan] to keyboard_matrix_read:360 keyboard_event_pressed:371 keyboard_event_pressed:377 keyboard_event_pressed:383 keyboard_event_pressed:389 -Calls in [render_init] to fill:444 fill:446 +Calls in [] to main:3 +Calls in [main] to sid_rnd_init:6 render_init:8 tables_init:10 spawn_current:12 render_playfield:14 render_current:17 keyboard_event_scan:25 keyboard_event_get:27 play_move_down:31 play_move_leftright:36 play_move_rotate:41 render_playfield:47 render_current:52 +Calls in [play_move_rotate] to collision:130 +Calls in [play_move_leftright] to collision:182 collision:199 +Calls in [play_move_down] to keyboard_event_pressed:210 collision:230 lock_current:235 remove_lines:237 spawn_current:239 +Calls in [spawn_current] to sid_rnd:277 +Calls in [keyboard_event_scan] to keyboard_matrix_read:361 keyboard_event_pressed:372 keyboard_event_pressed:378 keyboard_event_pressed:384 keyboard_event_pressed:390 +Calls in [render_init] to fill:445 fill:447 Created 98 initial phi equivalence classes -Not coalescing [14] current_piece_gfx#87 ← current_piece_gfx#10 -Not coalescing [15] current_piece_color#75 ← current_piece_color#15 -Coalesced [18] current_piece_gfx#86 ← current_piece_gfx#10 -Coalesced [19] current_piece_color#74 ← current_piece_color#15 -Not coalescing [47] current_ypos#71 ← current_ypos#16 -Not coalescing [48] current_xpos#96 ← current_xpos#23 -Not coalescing [49] current_piece_gfx#88 ← current_piece_gfx#18 -Not coalescing [50] current_piece_color#76 ← current_piece_color#13 -Coalesced [53] current_piece#70 ← current_piece#13 -Coalesced [54] current_orientation#74 ← current_orientation#23 -Coalesced [55] current_piece_gfx#85 ← current_piece_gfx#18 -Coalesced [56] current_xpos#95 ← current_xpos#23 -Coalesced [57] current_ypos#70 ← current_ypos#16 -Coalesced [58] current_piece_color#73 ← current_piece_color#13 -Coalesced [59] keyboard_events_size#72 ← keyboard_events_size#16 -Coalesced [60] current_movedown_counter#47 ← current_movedown_counter#12 -Coalesced [63] render_current::ypos2#10 ← render_current::ypos2#0 -Coalesced [68] render_current::i#12 ← render_current::i#4 -Coalesced [69] render_current::xpos#8 ← render_current::xpos#0 -Coalesced [79] render_current::i#14 ← render_current::i#1 -Coalesced [85] render_current::ypos2#11 ← render_current::ypos2#1 -Coalesced [86] render_current::l#10 ← render_current::l#1 -Coalesced [87] render_current::i#10 ← render_current::i#8 -Coalesced (already) [88] render_current::i#11 ← render_current::i#1 -Coalesced [89] render_current::xpos#7 ← render_current::xpos#1 -Coalesced [90] render_current::c#7 ← render_current::c#1 -Coalesced (already) [91] render_current::i#13 ← render_current::i#4 -Coalesced [96] render_playfield::i#6 ← render_playfield::i#3 -Coalesced [97] render_playfield::line#3 ← render_playfield::line#0 -Coalesced [107] render_playfield::l#5 ← render_playfield::l#1 -Coalesced [108] render_playfield::i#5 ← render_playfield::i#1 -Coalesced (already) [109] render_playfield::i#7 ← render_playfield::i#1 -Coalesced [110] render_playfield::line#4 ← render_playfield::line#1 -Coalesced [111] render_playfield::c#3 ← render_playfield::c#1 -Coalesced [114] current_orientation#77 ← current_orientation#18 -Coalesced [115] current_piece_gfx#91 ← current_piece_gfx#17 -Coalesced [120] play_move_rotate::orientation#7 ← play_move_rotate::orientation#2 -Not coalescing [125] current_piece#75 ← current_piece#13 -Coalesced [126] collision::orientation#8 ← collision::orientation#3 -Coalesced [127] collision::ypos#8 ← collision::ypos#3 -Coalesced [128] collision::xpos#17 ← collision::xpos#3 -Coalesced [135] current_orientation#75 ← current_orientation#8 -Coalesced [136] current_piece_gfx#89 ← current_piece_gfx#8 -Coalesced (already) [137] current_orientation#76 ← current_orientation#18 -Coalesced (already) [138] current_piece_gfx#90 ← current_piece_gfx#17 -Coalesced [141] play_move_rotate::orientation#6 ← play_move_rotate::orientation#1 -Coalesced [145] collision::ypos2#11 ← collision::ypos2#0 -Coalesced [148] collision::i#12 ← collision::i#3 -Not coalescing [149] collision::col#9 ← collision::xpos#5 -Coalesced [166] collision::ypos2#12 ← collision::ypos2#1 -Not coalescing [167] collision::i#11 ← collision::i#1 -Coalesced [168] collision::l#11 ← collision::l#1 -Not coalescing [169] collision::i#13 ← collision::i#1 -Coalesced [170] collision::col#10 ← collision::col#1 -Coalesced [171] collision::c#9 ← collision::c#1 -Not coalescing [177] current_piece#74 ← current_piece#13 -Coalesced [178] collision::orientation#7 ← collision::orientation#2 -Coalesced [179] collision::ypos#7 ← collision::ypos#2 -Coalesced [180] collision::xpos#16 ← collision::xpos#2 -Coalesced [186] current_xpos#99 ← current_xpos#7 -Coalesced [189] current_xpos#98 ← current_xpos#19 -Coalesced (already) [190] current_xpos#101 ← current_xpos#19 -Not coalescing [194] current_piece#73 ← current_piece#13 -Coalesced [195] collision::orientation#6 ← collision::orientation#1 -Coalesced [196] collision::ypos#6 ← collision::ypos#1 -Coalesced [197] collision::xpos#15 ← collision::xpos#1 -Coalesced [203] current_xpos#97 ← current_xpos#9 -Coalesced (already) [204] current_xpos#100 ← current_xpos#19 -Coalesced [215] play_move_down::movedown#13 ← play_move_down::movedown#2 -Coalesced [219] play_move_down::movedown#16 ← play_move_down::movedown#3 -Not coalescing [225] current_piece#72 ← current_piece#11 -Coalesced [226] collision::orientation#5 ← collision::orientation#0 -Coalesced [227] collision::ypos#5 ← collision::ypos#0 -Coalesced [228] collision::xpos#14 ← collision::xpos#0 -Coalesced [240] current_piece_gfx#92 ← current_piece_gfx#10 -Coalesced [241] current_piece_color#77 ← current_piece_color#15 -Coalesced [243] current_ypos#74 ← current_ypos#31 -Coalesced [244] current_piece#79 ← current_piece#23 -Coalesced [245] current_orientation#80 ← current_orientation#33 -Coalesced (already) [246] current_piece_gfx#95 ← current_piece_gfx#29 -Coalesced [247] current_xpos#104 ← current_xpos#36 -Coalesced (already) [248] current_piece_color#80 ← current_piece_color#23 -Coalesced [252] current_ypos#72 ← current_ypos#4 -Coalesced (already) [253] current_piece#77 ← current_piece#11 -Coalesced (already) [254] current_orientation#78 ← current_orientation#15 -Coalesced (already) [255] current_piece_gfx#93 ← current_piece_gfx#15 -Coalesced (already) [256] current_xpos#102 ← current_xpos#16 -Coalesced (already) [257] current_piece_color#78 ← current_piece_color#11 -Coalesced [258] current_movedown_counter#48 ← current_movedown_counter#10 -Coalesced (already) [259] current_ypos#73 ← current_ypos#12 -Coalesced (already) [260] current_piece#78 ← current_piece#11 -Coalesced (already) [261] current_orientation#79 ← current_orientation#15 -Coalesced (already) [262] current_piece_gfx#94 ← current_piece_gfx#15 -Coalesced (already) [263] current_xpos#103 ← current_xpos#16 -Coalesced (already) [264] current_piece_color#79 ← current_piece_color#11 -Coalesced [265] play_move_down::movedown#17 ← play_move_down::movedown#7 -Coalesced [266] play_move_down::movedown#15 ← play_move_down::movedown#10 -Coalesced (already) [267] play_move_down::movedown#14 ← play_move_down::movedown#10 -Coalesced [280] spawn_current::piece_idx#4 ← spawn_current::piece_idx#1 -Coalesced [285] remove_lines::r#10 ← remove_lines::r#3 -Coalesced [286] remove_lines::w#14 ← remove_lines::w#12 -Coalesced [299] remove_lines::w#16 ← remove_lines::w#2 -Coalesced [303] remove_lines::w#18 ← remove_lines::w#11 -Coalesced [309] remove_lines::w#19 ← remove_lines::w#3 -Coalesced [310] remove_lines::r#9 ← remove_lines::r#1 -Coalesced [311] remove_lines::w#13 ← remove_lines::w#11 -Coalesced [312] remove_lines::y#9 ← remove_lines::y#1 -Coalesced [313] remove_lines::w#17 ← remove_lines::w#1 -Coalesced (already) [314] remove_lines::r#11 ← remove_lines::r#1 -Coalesced (already) [315] remove_lines::w#15 ← remove_lines::w#1 -Coalesced [316] remove_lines::x#5 ← remove_lines::x#1 -Coalesced [317] remove_lines::full#5 ← remove_lines::full#2 -Coalesced (already) [318] remove_lines::full#6 ← remove_lines::full#4 -Coalesced [320] lock_current::ypos2#7 ← lock_current::ypos2#0 -Coalesced [324] lock_current::i#8 ← lock_current::i#3 -Coalesced [325] lock_current::col#5 ← lock_current::col#0 -Coalesced [337] lock_current::ypos2#8 ← lock_current::ypos2#1 -Not coalescing [338] lock_current::i#7 ← lock_current::i#1 -Coalesced [339] lock_current::l#7 ← lock_current::l#1 -Not coalescing [340] lock_current::i#9 ← lock_current::i#1 -Coalesced [341] lock_current::col#6 ← lock_current::col#1 -Coalesced [342] lock_current::c#5 ← lock_current::c#1 -Coalesced [352] keyboard_event_get::return#6 ← keyboard_event_get::return#1 -Coalesced [353] keyboard_events_size#74 ← keyboard_events_size#4 -Coalesced [356] keyboard_events_size#73 ← keyboard_events_size#13 -Coalesced [357] keyboard_events_size#75 ← keyboard_events_size#19 -Coalesced [365] keyboard_event_scan::keycode#17 ← keyboard_event_scan::keycode#1 -Coalesced (already) [366] keyboard_events_size#77 ← keyboard_events_size#29 -Coalesced [395] keyboard_event_scan::row#15 ← keyboard_event_scan::row#1 -Coalesced [396] keyboard_event_scan::keycode#16 ← keyboard_event_scan::keycode#14 -Coalesced (already) [397] keyboard_events_size#76 ← keyboard_events_size#13 -Coalesced [398] keyboard_event_scan::keycode#19 ← keyboard_event_scan::keycode#11 -Coalesced [399] keyboard_events_size#79 ← keyboard_events_size#29 -Coalesced [409] keyboard_events_size#81 ← keyboard_events_size#2 -Coalesced [415] keyboard_event_scan::keycode#18 ← keyboard_event_scan::keycode#15 -Coalesced [416] keyboard_events_size#78 ← keyboard_events_size#30 -Coalesced [417] keyboard_event_scan::col#9 ← keyboard_event_scan::col#1 -Coalesced (already) [418] keyboard_event_scan::keycode#20 ← keyboard_event_scan::keycode#15 -Coalesced (already) [419] keyboard_events_size#80 ← keyboard_events_size#30 -Coalesced [423] keyboard_events_size#84 ← keyboard_events_size#1 -Coalesced (already) [424] keyboard_events_size#83 ← keyboard_events_size#10 -Coalesced (already) [425] keyboard_events_size#82 ← keyboard_events_size#10 -Coalesced [440] tables_init::j#3 ← tables_init::j#1 -Coalesced [441] tables_init::pli#3 ← tables_init::pli#1 -Coalesced [442] tables_init::idx#3 ← tables_init::idx#1 -Coalesced [463] render_init::line#5 ← render_init::line#1 -Coalesced [464] render_init::l#5 ← render_init::l#1 -Coalesced [465] render_init::c#3 ← render_init::c#1 -Coalesced [466] render_init::i#3 ← render_init::i#1 -Coalesced [467] render_init::li#3 ← render_init::li#1 -Coalesced [470] fill::addr#3 ← fill::addr#0 -Coalesced [476] fill::addr#4 ← fill::addr#1 +Not coalescing [15] current_piece_gfx#87 ← current_piece_gfx#10 +Not coalescing [16] current_piece_color#75 ← current_piece_color#15 +Coalesced [19] current_piece_gfx#86 ← current_piece_gfx#10 +Coalesced [20] current_piece_color#74 ← current_piece_color#15 +Not coalescing [48] current_ypos#71 ← current_ypos#16 +Not coalescing [49] current_xpos#96 ← current_xpos#23 +Not coalescing [50] current_piece_gfx#88 ← current_piece_gfx#18 +Not coalescing [51] current_piece_color#76 ← current_piece_color#13 +Coalesced [54] current_piece#70 ← current_piece#13 +Coalesced [55] current_orientation#74 ← current_orientation#23 +Coalesced [56] current_piece_gfx#85 ← current_piece_gfx#18 +Coalesced [57] current_xpos#95 ← current_xpos#23 +Coalesced [58] current_ypos#70 ← current_ypos#16 +Coalesced [59] current_piece_color#73 ← current_piece_color#13 +Coalesced [60] keyboard_events_size#72 ← keyboard_events_size#16 +Coalesced [61] current_movedown_counter#47 ← current_movedown_counter#12 +Coalesced [64] render_current::ypos2#10 ← render_current::ypos2#0 +Coalesced [69] render_current::i#12 ← render_current::i#4 +Coalesced [70] render_current::xpos#8 ← render_current::xpos#0 +Coalesced [80] render_current::i#14 ← render_current::i#1 +Coalesced [86] render_current::ypos2#11 ← render_current::ypos2#1 +Coalesced [87] render_current::l#10 ← render_current::l#1 +Coalesced [88] render_current::i#10 ← render_current::i#8 +Coalesced (already) [89] render_current::i#11 ← render_current::i#1 +Coalesced [90] render_current::xpos#7 ← render_current::xpos#1 +Coalesced [91] render_current::c#7 ← render_current::c#1 +Coalesced (already) [92] render_current::i#13 ← render_current::i#4 +Coalesced [97] render_playfield::i#6 ← render_playfield::i#3 +Coalesced [98] render_playfield::line#3 ← render_playfield::line#0 +Coalesced [108] render_playfield::l#5 ← render_playfield::l#1 +Coalesced [109] render_playfield::i#5 ← render_playfield::i#1 +Coalesced (already) [110] render_playfield::i#7 ← render_playfield::i#1 +Coalesced [111] render_playfield::line#4 ← render_playfield::line#1 +Coalesced [112] render_playfield::c#3 ← render_playfield::c#1 +Coalesced [115] current_orientation#77 ← current_orientation#18 +Coalesced [116] current_piece_gfx#91 ← current_piece_gfx#17 +Coalesced [121] play_move_rotate::orientation#7 ← play_move_rotate::orientation#2 +Not coalescing [126] current_piece#75 ← current_piece#13 +Coalesced [127] collision::orientation#8 ← collision::orientation#3 +Coalesced [128] collision::ypos#8 ← collision::ypos#3 +Coalesced [129] collision::xpos#17 ← collision::xpos#3 +Coalesced [136] current_orientation#75 ← current_orientation#8 +Coalesced [137] current_piece_gfx#89 ← current_piece_gfx#8 +Coalesced (already) [138] current_orientation#76 ← current_orientation#18 +Coalesced (already) [139] current_piece_gfx#90 ← current_piece_gfx#17 +Coalesced [142] play_move_rotate::orientation#6 ← play_move_rotate::orientation#1 +Coalesced [146] collision::ypos2#11 ← collision::ypos2#0 +Coalesced [149] collision::i#12 ← collision::i#3 +Not coalescing [150] collision::col#9 ← collision::xpos#5 +Coalesced [167] collision::ypos2#12 ← collision::ypos2#1 +Not coalescing [168] collision::i#11 ← collision::i#1 +Coalesced [169] collision::l#11 ← collision::l#1 +Not coalescing [170] collision::i#13 ← collision::i#1 +Coalesced [171] collision::col#10 ← collision::col#1 +Coalesced [172] collision::c#9 ← collision::c#1 +Not coalescing [178] current_piece#74 ← current_piece#13 +Coalesced [179] collision::orientation#7 ← collision::orientation#2 +Coalesced [180] collision::ypos#7 ← collision::ypos#2 +Coalesced [181] collision::xpos#16 ← collision::xpos#2 +Coalesced [187] current_xpos#99 ← current_xpos#7 +Coalesced [190] current_xpos#98 ← current_xpos#19 +Coalesced (already) [191] current_xpos#101 ← current_xpos#19 +Not coalescing [195] current_piece#73 ← current_piece#13 +Coalesced [196] collision::orientation#6 ← collision::orientation#1 +Coalesced [197] collision::ypos#6 ← collision::ypos#1 +Coalesced [198] collision::xpos#15 ← collision::xpos#1 +Coalesced [204] current_xpos#97 ← current_xpos#9 +Coalesced (already) [205] current_xpos#100 ← current_xpos#19 +Coalesced [216] play_move_down::movedown#13 ← play_move_down::movedown#2 +Coalesced [220] play_move_down::movedown#16 ← play_move_down::movedown#3 +Not coalescing [226] current_piece#72 ← current_piece#11 +Coalesced [227] collision::orientation#5 ← collision::orientation#0 +Coalesced [228] collision::ypos#5 ← collision::ypos#0 +Coalesced [229] collision::xpos#14 ← collision::xpos#0 +Coalesced [241] current_piece_gfx#92 ← current_piece_gfx#10 +Coalesced [242] current_piece_color#77 ← current_piece_color#15 +Coalesced [244] current_ypos#74 ← current_ypos#31 +Coalesced [245] current_piece#79 ← current_piece#23 +Coalesced [246] current_orientation#80 ← current_orientation#33 +Coalesced (already) [247] current_piece_gfx#95 ← current_piece_gfx#29 +Coalesced [248] current_xpos#104 ← current_xpos#36 +Coalesced (already) [249] current_piece_color#80 ← current_piece_color#23 +Coalesced [253] current_ypos#72 ← current_ypos#4 +Coalesced (already) [254] current_piece#77 ← current_piece#11 +Coalesced (already) [255] current_orientation#78 ← current_orientation#15 +Coalesced (already) [256] current_piece_gfx#93 ← current_piece_gfx#15 +Coalesced (already) [257] current_xpos#102 ← current_xpos#16 +Coalesced (already) [258] current_piece_color#78 ← current_piece_color#11 +Coalesced [259] current_movedown_counter#48 ← current_movedown_counter#10 +Coalesced (already) [260] current_ypos#73 ← current_ypos#12 +Coalesced (already) [261] current_piece#78 ← current_piece#11 +Coalesced (already) [262] current_orientation#79 ← current_orientation#15 +Coalesced (already) [263] current_piece_gfx#94 ← current_piece_gfx#15 +Coalesced (already) [264] current_xpos#103 ← current_xpos#16 +Coalesced (already) [265] current_piece_color#79 ← current_piece_color#11 +Coalesced [266] play_move_down::movedown#17 ← play_move_down::movedown#7 +Coalesced [267] play_move_down::movedown#15 ← play_move_down::movedown#10 +Coalesced (already) [268] play_move_down::movedown#14 ← play_move_down::movedown#10 +Coalesced [281] spawn_current::piece_idx#4 ← spawn_current::piece_idx#1 +Coalesced [286] remove_lines::r#10 ← remove_lines::r#3 +Coalesced [287] remove_lines::w#14 ← remove_lines::w#12 +Coalesced [300] remove_lines::w#16 ← remove_lines::w#2 +Coalesced [304] remove_lines::w#18 ← remove_lines::w#11 +Coalesced [310] remove_lines::w#19 ← remove_lines::w#3 +Coalesced [311] remove_lines::r#9 ← remove_lines::r#1 +Coalesced [312] remove_lines::w#13 ← remove_lines::w#11 +Coalesced [313] remove_lines::y#9 ← remove_lines::y#1 +Coalesced [314] remove_lines::w#17 ← remove_lines::w#1 +Coalesced (already) [315] remove_lines::r#11 ← remove_lines::r#1 +Coalesced (already) [316] remove_lines::w#15 ← remove_lines::w#1 +Coalesced [317] remove_lines::x#5 ← remove_lines::x#1 +Coalesced [318] remove_lines::full#5 ← remove_lines::full#2 +Coalesced (already) [319] remove_lines::full#6 ← remove_lines::full#4 +Coalesced [321] lock_current::ypos2#7 ← lock_current::ypos2#0 +Coalesced [325] lock_current::i#8 ← lock_current::i#3 +Coalesced [326] lock_current::col#5 ← lock_current::col#0 +Coalesced [338] lock_current::ypos2#8 ← lock_current::ypos2#1 +Not coalescing [339] lock_current::i#7 ← lock_current::i#1 +Coalesced [340] lock_current::l#7 ← lock_current::l#1 +Not coalescing [341] lock_current::i#9 ← lock_current::i#1 +Coalesced [342] lock_current::col#6 ← lock_current::col#1 +Coalesced [343] lock_current::c#5 ← lock_current::c#1 +Coalesced [353] keyboard_event_get::return#6 ← keyboard_event_get::return#1 +Coalesced [354] keyboard_events_size#74 ← keyboard_events_size#4 +Coalesced [357] keyboard_events_size#73 ← keyboard_events_size#13 +Coalesced [358] keyboard_events_size#75 ← keyboard_events_size#19 +Coalesced [366] keyboard_event_scan::keycode#17 ← keyboard_event_scan::keycode#1 +Coalesced (already) [367] keyboard_events_size#77 ← keyboard_events_size#29 +Coalesced [396] keyboard_event_scan::row#15 ← keyboard_event_scan::row#1 +Coalesced [397] keyboard_event_scan::keycode#16 ← keyboard_event_scan::keycode#14 +Coalesced (already) [398] keyboard_events_size#76 ← keyboard_events_size#13 +Coalesced [399] keyboard_event_scan::keycode#19 ← keyboard_event_scan::keycode#11 +Coalesced [400] keyboard_events_size#79 ← keyboard_events_size#29 +Coalesced [410] keyboard_events_size#81 ← keyboard_events_size#2 +Coalesced [416] keyboard_event_scan::keycode#18 ← keyboard_event_scan::keycode#15 +Coalesced [417] keyboard_events_size#78 ← keyboard_events_size#30 +Coalesced [418] keyboard_event_scan::col#9 ← keyboard_event_scan::col#1 +Coalesced (already) [419] keyboard_event_scan::keycode#20 ← keyboard_event_scan::keycode#15 +Coalesced (already) [420] keyboard_events_size#80 ← keyboard_events_size#30 +Coalesced [424] keyboard_events_size#84 ← keyboard_events_size#1 +Coalesced (already) [425] keyboard_events_size#83 ← keyboard_events_size#10 +Coalesced (already) [426] keyboard_events_size#82 ← keyboard_events_size#10 +Coalesced [441] tables_init::j#3 ← tables_init::j#1 +Coalesced [442] tables_init::pli#3 ← tables_init::pli#1 +Coalesced [443] tables_init::idx#3 ← tables_init::idx#1 +Coalesced [464] render_init::line#5 ← render_init::line#1 +Coalesced [465] render_init::l#5 ← render_init::l#1 +Coalesced [466] render_init::c#3 ← render_init::c#1 +Coalesced [467] render_init::i#3 ← render_init::i#1 +Coalesced [468] render_init::li#3 ← render_init::li#1 +Coalesced [471] fill::addr#3 ← fill::addr#0 +Coalesced [477] fill::addr#4 ← fill::addr#1 Coalesced down to 64 phi equivalence classes Culled Empty Block (label) render_current::@14 Culled Empty Block (label) render_current::@11 @@ -4799,725 +4807,733 @@ Adding NOP phi() at start of render_init::@7 FINAL CONTROL FLOW GRAPH @begin: scope:[] from [0] phi() + to:@22 +@22: scope:[] from @begin + kickasm(location (const byte*) CHARSET#0) {{ .var charset = LoadPicture("charset.png", List().add($000000, $ffffff, $523fa0, $77c1c9)) + .for (var c=0; c<16; c++) + .for (var y=0;y<8; y++) + .byte charset.getMulticolorByte(c,y) + }} to:@25 -@25: scope:[] from @begin - [1] phi() - [2] call main +@25: scope:[] from @22 + [2] phi() + [3] call main to:@end @end: scope:[] from @25 - [3] phi() -main: scope:[main] from @25 [4] phi() - [5] call sid_rnd_init +main: scope:[main] from @25 + [5] phi() + [6] call sid_rnd_init to:main::@21 main::@21: scope:[main] from main asm { sei } - [7] call render_init + [8] call render_init to:main::@22 main::@22: scope:[main] from main::@21 - [8] phi() - [9] call tables_init + [9] phi() + [10] call tables_init to:main::@23 main::@23: scope:[main] from main::@22 - [10] phi() - [11] call spawn_current + [11] phi() + [12] call spawn_current to:main::@24 main::@24: scope:[main] from main::@23 - [12] phi() - [13] call render_playfield + [13] phi() + [14] call render_playfield to:main::@25 main::@25: scope:[main] from main::@24 - [14] (byte*~) current_piece_gfx#87 ← (byte*) current_piece_gfx#10 - [15] (byte~) current_piece_color#75 ← (byte) current_piece_color#15 - [16] call render_current - [17] (byte*~) current_piece#71 ← (byte*)*((const word[]) PIECES#0 + (byte~) spawn_current::$3) + [15] (byte*~) current_piece_gfx#87 ← (byte*) current_piece_gfx#10 + [16] (byte~) current_piece_color#75 ← (byte) current_piece_color#15 + [17] call render_current + [18] (byte*~) current_piece#71 ← (byte*)*((const word[]) PIECES#0 + (byte~) spawn_current::$3) to:main::@1 main::@1: scope:[main] from main::@10 main::@25 - [18] (byte) current_movedown_counter#15 ← phi( main::@10/(byte) current_movedown_counter#12 main::@25/(byte/signed byte/word/signed word/dword/signed dword) 0 ) - [18] (byte) keyboard_events_size#19 ← phi( main::@10/(byte) keyboard_events_size#16 main::@25/(byte/signed byte/word/signed word/dword/signed dword) 0 ) - [18] (byte) current_piece_color#11 ← phi( main::@10/(byte) current_piece_color#13 main::@25/(byte) current_piece_color#15 ) - [18] (byte) current_ypos#12 ← phi( main::@10/(byte) current_ypos#16 main::@25/(byte/signed byte/word/signed word/dword/signed dword) 0 ) - [18] (byte) current_xpos#16 ← phi( main::@10/(byte) current_xpos#23 main::@25/(byte/signed byte/word/signed word/dword/signed dword) 3 ) - [18] (byte*) current_piece_gfx#15 ← phi( main::@10/(byte*) current_piece_gfx#18 main::@25/(byte*) current_piece_gfx#10 ) - [18] (byte) current_orientation#15 ← phi( main::@10/(byte) current_orientation#23 main::@25/(byte/signed byte/word/signed word/dword/signed dword) 0 ) - [18] (byte*) current_piece#11 ← phi( main::@10/(byte*) current_piece#13 main::@25/(byte*~) current_piece#71 ) + [19] (byte) current_movedown_counter#15 ← phi( main::@10/(byte) current_movedown_counter#12 main::@25/(byte/signed byte/word/signed word/dword/signed dword) 0 ) + [19] (byte) keyboard_events_size#19 ← phi( main::@10/(byte) keyboard_events_size#16 main::@25/(byte/signed byte/word/signed word/dword/signed dword) 0 ) + [19] (byte) current_piece_color#11 ← phi( main::@10/(byte) current_piece_color#13 main::@25/(byte) current_piece_color#15 ) + [19] (byte) current_ypos#12 ← phi( main::@10/(byte) current_ypos#16 main::@25/(byte/signed byte/word/signed word/dword/signed dword) 0 ) + [19] (byte) current_xpos#16 ← phi( main::@10/(byte) current_xpos#23 main::@25/(byte/signed byte/word/signed word/dword/signed dword) 3 ) + [19] (byte*) current_piece_gfx#15 ← phi( main::@10/(byte*) current_piece_gfx#18 main::@25/(byte*) current_piece_gfx#10 ) + [19] (byte) current_orientation#15 ← phi( main::@10/(byte) current_orientation#23 main::@25/(byte/signed byte/word/signed word/dword/signed dword) 0 ) + [19] (byte*) current_piece#11 ← phi( main::@10/(byte*) current_piece#13 main::@25/(byte*~) current_piece#71 ) to:main::@4 main::@4: scope:[main] from main::@1 main::@4 - [19] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@4 + [20] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@4 to:main::@7 main::@7: scope:[main] from main::@4 main::@7 - [20] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 254) goto main::@7 + [21] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 254) goto main::@7 to:main::@9 main::@9: scope:[main] from main::@7 - [21] *((const byte*) BORDERCOL#0) ← ++ *((const byte*) BORDERCOL#0) - [22] call keyboard_event_scan + [22] *((const byte*) BORDERCOL#0) ← ++ *((const byte*) BORDERCOL#0) + [23] call keyboard_event_scan to:main::@27 main::@27: scope:[main] from main::@9 - [23] phi() - [24] call keyboard_event_get - [25] (byte) keyboard_event_get::return#3 ← (byte) keyboard_event_get::return#2 + [24] phi() + [25] call keyboard_event_get + [26] (byte) keyboard_event_get::return#3 ← (byte) keyboard_event_get::return#2 to:main::@28 main::@28: scope:[main] from main::@27 - [26] (byte) main::key_event#0 ← (byte) keyboard_event_get::return#3 - [27] (byte) play_move_down::key_event#0 ← (byte) main::key_event#0 - [28] call play_move_down - [29] (byte) play_move_down::return#0 ← (byte) play_move_down::return#3 + [27] (byte) main::key_event#0 ← (byte) keyboard_event_get::return#3 + [28] (byte) play_move_down::key_event#0 ← (byte) main::key_event#0 + [29] call play_move_down + [30] (byte) play_move_down::return#0 ← (byte) play_move_down::return#3 to:main::@29 main::@29: scope:[main] from main::@28 - [30] (byte~) main::$10 ← (byte) play_move_down::return#0 - [31] (byte) main::render#1 ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte~) main::$10 - [32] (byte) play_move_leftright::key_event#0 ← (byte) main::key_event#0 - [33] call play_move_leftright - [34] (byte) play_move_leftright::return#0 ← (byte) play_move_leftright::return#2 + [31] (byte~) main::$10 ← (byte) play_move_down::return#0 + [32] (byte) main::render#1 ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte~) main::$10 + [33] (byte) play_move_leftright::key_event#0 ← (byte) main::key_event#0 + [34] call play_move_leftright + [35] (byte) play_move_leftright::return#0 ← (byte) play_move_leftright::return#2 to:main::@30 main::@30: scope:[main] from main::@29 - [35] (byte~) main::$11 ← (byte) play_move_leftright::return#0 - [36] (byte) main::render#2 ← (byte) main::render#1 + (byte~) main::$11 - [37] (byte) play_move_rotate::key_event#0 ← (byte) main::key_event#0 - [38] call play_move_rotate - [39] (byte) play_move_rotate::return#0 ← (byte) play_move_rotate::return#2 + [36] (byte~) main::$11 ← (byte) play_move_leftright::return#0 + [37] (byte) main::render#2 ← (byte) main::render#1 + (byte~) main::$11 + [38] (byte) play_move_rotate::key_event#0 ← (byte) main::key_event#0 + [39] call play_move_rotate + [40] (byte) play_move_rotate::return#0 ← (byte) play_move_rotate::return#2 to:main::@31 main::@31: scope:[main] from main::@30 - [40] (byte~) main::$12 ← (byte) play_move_rotate::return#0 - [41] (byte) main::render#3 ← (byte) main::render#2 + (byte~) main::$12 - [42] if((byte) main::render#3==(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@10 + [41] (byte~) main::$12 ← (byte) play_move_rotate::return#0 + [42] (byte) main::render#3 ← (byte) main::render#2 + (byte~) main::$12 + [43] if((byte) main::render#3==(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@10 to:main::@19 main::@19: scope:[main] from main::@31 - [43] phi() - [44] call render_playfield + [44] phi() + [45] call render_playfield to:main::@32 main::@32: scope:[main] from main::@19 - [45] (byte~) current_ypos#71 ← (byte) current_ypos#16 - [46] (byte~) current_xpos#96 ← (byte) current_xpos#23 - [47] (byte*~) current_piece_gfx#88 ← (byte*) current_piece_gfx#18 - [48] (byte~) current_piece_color#76 ← (byte) current_piece_color#13 - [49] call render_current + [46] (byte~) current_ypos#71 ← (byte) current_ypos#16 + [47] (byte~) current_xpos#96 ← (byte) current_xpos#23 + [48] (byte*~) current_piece_gfx#88 ← (byte*) current_piece_gfx#18 + [49] (byte~) current_piece_color#76 ← (byte) current_piece_color#13 + [50] call render_current to:main::@10 main::@10: scope:[main] from main::@31 main::@32 - [50] *((const byte*) BORDERCOL#0) ← -- *((const byte*) BORDERCOL#0) + [51] *((const byte*) BORDERCOL#0) ← -- *((const byte*) BORDERCOL#0) to:main::@1 render_current: scope:[render_current] from main::@25 main::@32 - [51] (byte) current_piece_color#67 ← phi( main::@25/(byte~) current_piece_color#75 main::@32/(byte~) current_piece_color#76 ) - [51] (byte*) current_piece_gfx#64 ← phi( main::@25/(byte*~) current_piece_gfx#87 main::@32/(byte*~) current_piece_gfx#88 ) - [51] (byte) current_xpos#63 ← phi( main::@25/(byte/signed byte/word/signed word/dword/signed dword) 3 main::@32/(byte~) current_xpos#96 ) - [51] (byte) current_ypos#22 ← phi( main::@25/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@32/(byte~) current_ypos#71 ) - [52] (byte) render_current::ypos2#0 ← (byte) current_ypos#22 << (byte/signed byte/word/signed word/dword/signed dword) 1 + [52] (byte) current_piece_color#67 ← phi( main::@25/(byte~) current_piece_color#75 main::@32/(byte~) current_piece_color#76 ) + [52] (byte*) current_piece_gfx#64 ← phi( main::@25/(byte*~) current_piece_gfx#87 main::@32/(byte*~) current_piece_gfx#88 ) + [52] (byte) current_xpos#63 ← phi( main::@25/(byte/signed byte/word/signed word/dword/signed dword) 3 main::@32/(byte~) current_xpos#96 ) + [52] (byte) current_ypos#22 ← phi( main::@25/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@32/(byte~) current_ypos#71 ) + [53] (byte) render_current::ypos2#0 ← (byte) current_ypos#22 << (byte/signed byte/word/signed word/dword/signed dword) 1 to:render_current::@1 render_current::@1: scope:[render_current] from render_current render_current::@2 - [53] (byte) render_current::i#4 ← phi( render_current/(byte/signed byte/word/signed word/dword/signed dword) 0 render_current::@2/(byte) render_current::i#8 ) - [53] (byte) render_current::l#3 ← phi( render_current/(byte/signed byte/word/signed word/dword/signed dword) 0 render_current::@2/(byte) render_current::l#1 ) - [53] (byte) render_current::ypos2#2 ← phi( render_current/(byte) render_current::ypos2#0 render_current::@2/(byte) render_current::ypos2#1 ) - [54] if((byte) render_current::ypos2#2>=(byte/signed byte/word/signed word/dword/signed dword) 2*(const byte) PLAYFIELD_LINES#0) goto render_current::@2 + [54] (byte) render_current::i#4 ← phi( render_current/(byte/signed byte/word/signed word/dword/signed dword) 0 render_current::@2/(byte) render_current::i#8 ) + [54] (byte) render_current::l#3 ← phi( render_current/(byte/signed byte/word/signed word/dword/signed dword) 0 render_current::@2/(byte) render_current::l#1 ) + [54] (byte) render_current::ypos2#2 ← phi( render_current/(byte) render_current::ypos2#0 render_current::@2/(byte) render_current::ypos2#1 ) + [55] if((byte) render_current::ypos2#2>=(byte/signed byte/word/signed word/dword/signed dword) 2*(const byte) PLAYFIELD_LINES#0) goto render_current::@2 to:render_current::@6 render_current::@6: scope:[render_current] from render_current::@1 - [55] (byte*) render_current::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0+3]) screen_lines#0 + (byte) render_current::ypos2#2) - [56] (byte) render_current::xpos#0 ← (byte) current_xpos#63 + [56] (byte*) render_current::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0+3]) screen_lines#0 + (byte) render_current::ypos2#2) + [57] (byte) render_current::xpos#0 ← (byte) current_xpos#63 to:render_current::@3 render_current::@3: scope:[render_current] from render_current::@4 render_current::@6 - [57] (byte) render_current::c#2 ← phi( render_current::@4/(byte) render_current::c#1 render_current::@6/(byte/signed byte/word/signed word/dword/signed dword) 0 ) - [57] (byte) render_current::xpos#2 ← phi( render_current::@4/(byte) render_current::xpos#1 render_current::@6/(byte) render_current::xpos#0 ) - [57] (byte) render_current::i#2 ← phi( render_current::@4/(byte) render_current::i#1 render_current::@6/(byte) render_current::i#4 ) - [58] (byte) render_current::current_cell#0 ← *((byte*) current_piece_gfx#64 + (byte) render_current::i#2) - [59] (byte) render_current::i#1 ← ++ (byte) render_current::i#2 - [60] if((byte) render_current::current_cell#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto render_current::@4 + [58] (byte) render_current::c#2 ← phi( render_current::@4/(byte) render_current::c#1 render_current::@6/(byte/signed byte/word/signed word/dword/signed dword) 0 ) + [58] (byte) render_current::xpos#2 ← phi( render_current::@4/(byte) render_current::xpos#1 render_current::@6/(byte) render_current::xpos#0 ) + [58] (byte) render_current::i#2 ← phi( render_current::@4/(byte) render_current::i#1 render_current::@6/(byte) render_current::i#4 ) + [59] (byte) render_current::current_cell#0 ← *((byte*) current_piece_gfx#64 + (byte) render_current::i#2) + [60] (byte) render_current::i#1 ← ++ (byte) render_current::i#2 + [61] if((byte) render_current::current_cell#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto render_current::@4 to:render_current::@7 render_current::@7: scope:[render_current] from render_current::@3 - [61] if((byte) render_current::xpos#2>=(const byte) PLAYFIELD_COLS#0) goto render_current::@4 + [62] if((byte) render_current::xpos#2>=(const byte) PLAYFIELD_COLS#0) goto render_current::@4 to:render_current::@8 render_current::@8: scope:[render_current] from render_current::@7 - [62] *((byte*) render_current::screen_line#0 + (byte) render_current::xpos#2) ← (byte) current_piece_color#67 + [63] *((byte*) render_current::screen_line#0 + (byte) render_current::xpos#2) ← (byte) current_piece_color#67 to:render_current::@4 render_current::@4: scope:[render_current] from render_current::@3 render_current::@7 render_current::@8 - [63] (byte) render_current::xpos#1 ← ++ (byte) render_current::xpos#2 - [64] (byte) render_current::c#1 ← ++ (byte) render_current::c#2 - [65] if((byte) render_current::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_current::@3 + [64] (byte) render_current::xpos#1 ← ++ (byte) render_current::xpos#2 + [65] (byte) render_current::c#1 ← ++ (byte) render_current::c#2 + [66] if((byte) render_current::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_current::@3 to:render_current::@2 render_current::@2: scope:[render_current] from render_current::@1 render_current::@4 - [66] (byte) render_current::i#8 ← phi( render_current::@1/(byte) render_current::i#4 render_current::@4/(byte) render_current::i#1 ) - [67] (byte) render_current::ypos2#1 ← (byte) render_current::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 - [68] (byte) render_current::l#1 ← ++ (byte) render_current::l#3 - [69] if((byte) render_current::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_current::@1 + [67] (byte) render_current::i#8 ← phi( render_current::@1/(byte) render_current::i#4 render_current::@4/(byte) render_current::i#1 ) + [68] (byte) render_current::ypos2#1 ← (byte) render_current::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 + [69] (byte) render_current::l#1 ← ++ (byte) render_current::l#3 + [70] if((byte) render_current::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_current::@1 to:render_current::@return render_current::@return: scope:[render_current] from render_current::@2 - [70] return + [71] return to:@return render_playfield: scope:[render_playfield] from main::@19 main::@24 - [71] phi() + [72] phi() to:render_playfield::@1 render_playfield::@1: scope:[render_playfield] from render_playfield render_playfield::@3 - [72] (byte) render_playfield::i#3 ← phi( render_playfield/(byte/signed byte/word/signed word/dword/signed dword) 0 render_playfield::@3/(byte) render_playfield::i#1 ) - [72] (byte) render_playfield::l#2 ← phi( render_playfield/(byte/signed byte/word/signed word/dword/signed dword) 0 render_playfield::@3/(byte) render_playfield::l#1 ) - [73] (byte~) render_playfield::$1 ← (byte) render_playfield::l#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 - [74] (byte*) render_playfield::line#0 ← *((const byte*[PLAYFIELD_LINES#0+3]) screen_lines#0 + (byte~) render_playfield::$1) + [73] (byte) render_playfield::i#3 ← phi( render_playfield/(byte/signed byte/word/signed word/dword/signed dword) 0 render_playfield::@3/(byte) render_playfield::i#1 ) + [73] (byte) render_playfield::l#2 ← phi( render_playfield/(byte/signed byte/word/signed word/dword/signed dword) 0 render_playfield::@3/(byte) render_playfield::l#1 ) + [74] (byte~) render_playfield::$1 ← (byte) render_playfield::l#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 + [75] (byte*) render_playfield::line#0 ← *((const byte*[PLAYFIELD_LINES#0+3]) screen_lines#0 + (byte~) render_playfield::$1) to:render_playfield::@2 render_playfield::@2: scope:[render_playfield] from render_playfield::@1 render_playfield::@2 - [75] (byte) render_playfield::c#2 ← phi( render_playfield::@1/(byte/signed byte/word/signed word/dword/signed dword) 0 render_playfield::@2/(byte) render_playfield::c#1 ) - [75] (byte*) render_playfield::line#2 ← phi( render_playfield::@1/(byte*) render_playfield::line#0 render_playfield::@2/(byte*) render_playfield::line#1 ) - [75] (byte) render_playfield::i#2 ← phi( render_playfield::@1/(byte) render_playfield::i#3 render_playfield::@2/(byte) render_playfield::i#1 ) - [76] *((byte*) render_playfield::line#2) ← *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) render_playfield::i#2) - [77] (byte*) render_playfield::line#1 ← ++ (byte*) render_playfield::line#2 - [78] (byte) render_playfield::i#1 ← ++ (byte) render_playfield::i#2 - [79] (byte) render_playfield::c#1 ← ++ (byte) render_playfield::c#2 - [80] if((byte) render_playfield::c#1!=(const byte) PLAYFIELD_COLS#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_playfield::@2 + [76] (byte) render_playfield::c#2 ← phi( render_playfield::@1/(byte/signed byte/word/signed word/dword/signed dword) 0 render_playfield::@2/(byte) render_playfield::c#1 ) + [76] (byte*) render_playfield::line#2 ← phi( render_playfield::@1/(byte*) render_playfield::line#0 render_playfield::@2/(byte*) render_playfield::line#1 ) + [76] (byte) render_playfield::i#2 ← phi( render_playfield::@1/(byte) render_playfield::i#3 render_playfield::@2/(byte) render_playfield::i#1 ) + [77] *((byte*) render_playfield::line#2) ← *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) render_playfield::i#2) + [78] (byte*) render_playfield::line#1 ← ++ (byte*) render_playfield::line#2 + [79] (byte) render_playfield::i#1 ← ++ (byte) render_playfield::i#2 + [80] (byte) render_playfield::c#1 ← ++ (byte) render_playfield::c#2 + [81] if((byte) render_playfield::c#1!=(const byte) PLAYFIELD_COLS#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_playfield::@2 to:render_playfield::@3 render_playfield::@3: scope:[render_playfield] from render_playfield::@2 - [81] (byte) render_playfield::l#1 ← ++ (byte) render_playfield::l#2 - [82] if((byte) render_playfield::l#1!=(const byte) PLAYFIELD_LINES#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_playfield::@1 + [82] (byte) render_playfield::l#1 ← ++ (byte) render_playfield::l#2 + [83] if((byte) render_playfield::l#1!=(const byte) PLAYFIELD_LINES#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_playfield::@1 to:render_playfield::@return render_playfield::@return: scope:[render_playfield] from render_playfield::@3 - [83] return + [84] return to:@return play_move_rotate: scope:[play_move_rotate] from main::@30 - [84] if((byte) play_move_rotate::key_event#0==(const byte) KEY_Z#0) goto play_move_rotate::@1 + [85] if((byte) play_move_rotate::key_event#0==(const byte) KEY_Z#0) goto play_move_rotate::@1 to:play_move_rotate::@6 play_move_rotate::@6: scope:[play_move_rotate] from play_move_rotate - [85] if((byte) play_move_rotate::key_event#0==(const byte) KEY_X#0) goto play_move_rotate::@2 + [86] if((byte) play_move_rotate::key_event#0==(const byte) KEY_X#0) goto play_move_rotate::@2 to:play_move_rotate::@return play_move_rotate::@return: scope:[play_move_rotate] from play_move_rotate::@11 play_move_rotate::@14 play_move_rotate::@6 - [86] (byte*) current_piece_gfx#18 ← phi( play_move_rotate::@11/(byte*) current_piece_gfx#8 play_move_rotate::@14/(byte*) current_piece_gfx#17 play_move_rotate::@6/(byte*) current_piece_gfx#17 ) - [86] (byte) current_orientation#23 ← phi( play_move_rotate::@11/(byte) current_orientation#8 play_move_rotate::@14/(byte) current_orientation#18 play_move_rotate::@6/(byte) current_orientation#18 ) - [86] (byte) play_move_rotate::return#2 ← phi( play_move_rotate::@11/(byte/signed byte/word/signed word/dword/signed dword) 1 play_move_rotate::@14/(byte/signed byte/word/signed word/dword/signed dword) 0 play_move_rotate::@6/(byte/signed byte/word/signed word/dword/signed dword) 0 ) - [87] return + [87] (byte*) current_piece_gfx#18 ← phi( play_move_rotate::@11/(byte*) current_piece_gfx#8 play_move_rotate::@14/(byte*) current_piece_gfx#17 play_move_rotate::@6/(byte*) current_piece_gfx#17 ) + [87] (byte) current_orientation#23 ← phi( play_move_rotate::@11/(byte) current_orientation#8 play_move_rotate::@14/(byte) current_orientation#18 play_move_rotate::@6/(byte) current_orientation#18 ) + [87] (byte) play_move_rotate::return#2 ← phi( play_move_rotate::@11/(byte/signed byte/word/signed word/dword/signed dword) 1 play_move_rotate::@14/(byte/signed byte/word/signed word/dword/signed dword) 0 play_move_rotate::@6/(byte/signed byte/word/signed word/dword/signed dword) 0 ) + [88] return to:@return play_move_rotate::@2: scope:[play_move_rotate] from play_move_rotate::@6 - [88] (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 ← (byte) current_orientation#18 + (byte/signed byte/word/signed word/dword/signed dword) 16 - [89] (byte) play_move_rotate::orientation#2 ← (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 & (byte/signed byte/word/signed word/dword/signed dword) 63 + [89] (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 ← (byte) current_orientation#18 + (byte/signed byte/word/signed word/dword/signed dword) 16 + [90] (byte) play_move_rotate::orientation#2 ← (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 & (byte/signed byte/word/signed word/dword/signed dword) 63 to:play_move_rotate::@4 play_move_rotate::@4: scope:[play_move_rotate] from play_move_rotate::@1 play_move_rotate::@2 - [90] (byte) play_move_rotate::orientation#3 ← phi( play_move_rotate::@1/(byte) play_move_rotate::orientation#1 play_move_rotate::@2/(byte) play_move_rotate::orientation#2 ) - [91] (byte) collision::xpos#3 ← (byte) current_xpos#23 - [92] (byte) collision::ypos#3 ← (byte) current_ypos#16 - [93] (byte) collision::orientation#3 ← (byte) play_move_rotate::orientation#3 - [94] (byte*~) current_piece#75 ← (byte*) current_piece#13 - [95] call collision - [96] (byte) collision::return#13 ← (byte) collision::return#14 + [91] (byte) play_move_rotate::orientation#3 ← phi( play_move_rotate::@1/(byte) play_move_rotate::orientation#1 play_move_rotate::@2/(byte) play_move_rotate::orientation#2 ) + [92] (byte) collision::xpos#3 ← (byte) current_xpos#23 + [93] (byte) collision::ypos#3 ← (byte) current_ypos#16 + [94] (byte) collision::orientation#3 ← (byte) play_move_rotate::orientation#3 + [95] (byte*~) current_piece#75 ← (byte*) current_piece#13 + [96] call collision + [97] (byte) collision::return#13 ← (byte) collision::return#14 to:play_move_rotate::@14 play_move_rotate::@14: scope:[play_move_rotate] from play_move_rotate::@4 - [97] (byte~) play_move_rotate::$6 ← (byte) collision::return#13 - [98] if((byte~) play_move_rotate::$6!=(const byte) COLLISION_NONE#0) goto play_move_rotate::@return + [98] (byte~) play_move_rotate::$6 ← (byte) collision::return#13 + [99] if((byte~) play_move_rotate::$6!=(const byte) COLLISION_NONE#0) goto play_move_rotate::@return to:play_move_rotate::@11 play_move_rotate::@11: scope:[play_move_rotate] from play_move_rotate::@14 - [99] (byte) current_orientation#8 ← (byte) play_move_rotate::orientation#3 - [100] (byte*) current_piece_gfx#8 ← (byte*) current_piece#13 + (byte) current_orientation#8 + [100] (byte) current_orientation#8 ← (byte) play_move_rotate::orientation#3 + [101] (byte*) current_piece_gfx#8 ← (byte*) current_piece#13 + (byte) current_orientation#8 to:play_move_rotate::@return play_move_rotate::@1: scope:[play_move_rotate] from play_move_rotate - [101] (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 ← (byte) current_orientation#18 - (byte/signed byte/word/signed word/dword/signed dword) 16 - [102] (byte) play_move_rotate::orientation#1 ← (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 & (byte/signed byte/word/signed word/dword/signed dword) 63 + [102] (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 ← (byte) current_orientation#18 - (byte/signed byte/word/signed word/dword/signed dword) 16 + [103] (byte) play_move_rotate::orientation#1 ← (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 & (byte/signed byte/word/signed word/dword/signed dword) 63 to:play_move_rotate::@4 collision: scope:[collision] from play_move_down::@12 play_move_leftright::@1 play_move_leftright::@7 play_move_rotate::@4 - [103] (byte) collision::xpos#5 ← phi( play_move_down::@12/(byte) collision::xpos#0 play_move_leftright::@1/(byte) collision::xpos#1 play_move_leftright::@7/(byte) collision::xpos#2 play_move_rotate::@4/(byte) collision::xpos#3 ) - [103] (byte) collision::ypos#4 ← phi( play_move_down::@12/(byte) collision::ypos#0 play_move_leftright::@1/(byte) collision::ypos#1 play_move_leftright::@7/(byte) collision::ypos#2 play_move_rotate::@4/(byte) collision::ypos#3 ) - [103] (byte) collision::orientation#4 ← phi( play_move_down::@12/(byte) collision::orientation#0 play_move_leftright::@1/(byte) collision::orientation#1 play_move_leftright::@7/(byte) collision::orientation#2 play_move_rotate::@4/(byte) collision::orientation#3 ) - [103] (byte*) current_piece#15 ← phi( play_move_down::@12/(byte*~) current_piece#72 play_move_leftright::@1/(byte*~) current_piece#73 play_move_leftright::@7/(byte*~) current_piece#74 play_move_rotate::@4/(byte*~) current_piece#75 ) - [104] (byte*) collision::piece_gfx#0 ← (byte*) current_piece#15 + (byte) collision::orientation#4 - [105] (byte) collision::ypos2#0 ← (byte) collision::ypos#4 << (byte/signed byte/word/signed word/dword/signed dword) 1 + [104] (byte) collision::xpos#5 ← phi( play_move_down::@12/(byte) collision::xpos#0 play_move_leftright::@1/(byte) collision::xpos#1 play_move_leftright::@7/(byte) collision::xpos#2 play_move_rotate::@4/(byte) collision::xpos#3 ) + [104] (byte) collision::ypos#4 ← phi( play_move_down::@12/(byte) collision::ypos#0 play_move_leftright::@1/(byte) collision::ypos#1 play_move_leftright::@7/(byte) collision::ypos#2 play_move_rotate::@4/(byte) collision::ypos#3 ) + [104] (byte) collision::orientation#4 ← phi( play_move_down::@12/(byte) collision::orientation#0 play_move_leftright::@1/(byte) collision::orientation#1 play_move_leftright::@7/(byte) collision::orientation#2 play_move_rotate::@4/(byte) collision::orientation#3 ) + [104] (byte*) current_piece#15 ← phi( play_move_down::@12/(byte*~) current_piece#72 play_move_leftright::@1/(byte*~) current_piece#73 play_move_leftright::@7/(byte*~) current_piece#74 play_move_rotate::@4/(byte*~) current_piece#75 ) + [105] (byte*) collision::piece_gfx#0 ← (byte*) current_piece#15 + (byte) collision::orientation#4 + [106] (byte) collision::ypos2#0 ← (byte) collision::ypos#4 << (byte/signed byte/word/signed word/dword/signed dword) 1 to:collision::@1 collision::@1: scope:[collision] from collision collision::@20 - [106] (byte) collision::l#6 ← phi( collision/(byte/signed byte/word/signed word/dword/signed dword) 0 collision::@20/(byte) collision::l#1 ) - [106] (byte) collision::i#3 ← phi( collision/(byte/signed byte/word/signed word/dword/signed dword) 0 collision::@20/(byte~) collision::i#11 ) - [106] (byte) collision::ypos2#2 ← phi( collision/(byte) collision::ypos2#0 collision::@20/(byte) collision::ypos2#1 ) - [107] (byte*) collision::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) collision::ypos2#2) - [108] (byte~) collision::col#9 ← (byte) collision::xpos#5 + [107] (byte) collision::l#6 ← phi( collision/(byte/signed byte/word/signed word/dword/signed dword) 0 collision::@20/(byte) collision::l#1 ) + [107] (byte) collision::i#3 ← phi( collision/(byte/signed byte/word/signed word/dword/signed dword) 0 collision::@20/(byte~) collision::i#11 ) + [107] (byte) collision::ypos2#2 ← phi( collision/(byte) collision::ypos2#0 collision::@20/(byte) collision::ypos2#1 ) + [108] (byte*) collision::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) collision::ypos2#2) + [109] (byte~) collision::col#9 ← (byte) collision::xpos#5 to:collision::@2 collision::@2: scope:[collision] from collision::@1 collision::@21 - [109] (byte) collision::c#2 ← phi( collision::@1/(byte/signed byte/word/signed word/dword/signed dword) 0 collision::@21/(byte) collision::c#1 ) - [109] (byte) collision::col#2 ← phi( collision::@1/(byte~) collision::col#9 collision::@21/(byte) collision::col#1 ) - [109] (byte) collision::i#2 ← phi( collision::@1/(byte) collision::i#3 collision::@21/(byte~) collision::i#13 ) - [110] (byte) collision::i#1 ← ++ (byte) collision::i#2 - [111] if(*((byte*) collision::piece_gfx#0 + (byte) collision::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto collision::@3 + [110] (byte) collision::c#2 ← phi( collision::@1/(byte/signed byte/word/signed word/dword/signed dword) 0 collision::@21/(byte) collision::c#1 ) + [110] (byte) collision::col#2 ← phi( collision::@1/(byte~) collision::col#9 collision::@21/(byte) collision::col#1 ) + [110] (byte) collision::i#2 ← phi( collision::@1/(byte) collision::i#3 collision::@21/(byte~) collision::i#13 ) + [111] (byte) collision::i#1 ← ++ (byte) collision::i#2 + [112] if(*((byte*) collision::piece_gfx#0 + (byte) collision::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto collision::@3 to:collision::@8 collision::@8: scope:[collision] from collision::@2 - [112] if((byte) collision::ypos2#2<(byte/signed byte/word/signed word/dword/signed dword) 2*(const byte) PLAYFIELD_LINES#0) goto collision::@4 + [113] if((byte) collision::ypos2#2<(byte/signed byte/word/signed word/dword/signed dword) 2*(const byte) PLAYFIELD_LINES#0) goto collision::@4 to:collision::@return collision::@return: scope:[collision] from collision::@17 collision::@4 collision::@5 collision::@6 collision::@8 - [113] (byte) collision::return#14 ← phi( collision::@4/(const byte) COLLISION_LEFT#0 collision::@5/(const byte) COLLISION_RIGHT#0 collision::@6/(const byte) COLLISION_PLAYFIELD#0 collision::@17/(const byte) COLLISION_NONE#0 collision::@8/(const byte) COLLISION_BOTTOM#0 ) - [114] return + [114] (byte) collision::return#14 ← phi( collision::@4/(const byte) COLLISION_LEFT#0 collision::@5/(const byte) COLLISION_RIGHT#0 collision::@6/(const byte) COLLISION_PLAYFIELD#0 collision::@17/(const byte) COLLISION_NONE#0 collision::@8/(const byte) COLLISION_BOTTOM#0 ) + [115] return to:@return collision::@4: scope:[collision] from collision::@8 - [115] (byte~) collision::$7 ← (byte) collision::col#2 & (byte/word/signed word/dword/signed dword) 128 - [116] if((byte~) collision::$7==(byte/signed byte/word/signed word/dword/signed dword) 0) goto collision::@5 + [116] (byte~) collision::$7 ← (byte) collision::col#2 & (byte/word/signed word/dword/signed dword) 128 + [117] if((byte~) collision::$7==(byte/signed byte/word/signed word/dword/signed dword) 0) goto collision::@5 to:collision::@return collision::@5: scope:[collision] from collision::@4 - [117] if((byte) collision::col#2<(const byte) PLAYFIELD_COLS#0) goto collision::@6 + [118] if((byte) collision::col#2<(const byte) PLAYFIELD_COLS#0) goto collision::@6 to:collision::@return collision::@6: scope:[collision] from collision::@5 - [118] if(*((byte*) collision::playfield_line#0 + (byte) collision::col#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto collision::@3 + [119] if(*((byte*) collision::playfield_line#0 + (byte) collision::col#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto collision::@3 to:collision::@return collision::@3: scope:[collision] from collision::@2 collision::@6 - [119] (byte) collision::col#1 ← ++ (byte) collision::col#2 - [120] (byte) collision::c#1 ← ++ (byte) collision::c#2 - [121] if((byte) collision::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto collision::@21 + [120] (byte) collision::col#1 ← ++ (byte) collision::col#2 + [121] (byte) collision::c#1 ← ++ (byte) collision::c#2 + [122] if((byte) collision::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto collision::@21 to:collision::@17 collision::@17: scope:[collision] from collision::@3 - [122] (byte) collision::ypos2#1 ← (byte) collision::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 - [123] (byte) collision::l#1 ← ++ (byte) collision::l#6 - [124] if((byte) collision::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto collision::@20 + [123] (byte) collision::ypos2#1 ← (byte) collision::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 + [124] (byte) collision::l#1 ← ++ (byte) collision::l#6 + [125] if((byte) collision::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto collision::@20 to:collision::@return collision::@20: scope:[collision] from collision::@17 - [125] (byte~) collision::i#11 ← (byte) collision::i#1 + [126] (byte~) collision::i#11 ← (byte) collision::i#1 to:collision::@1 collision::@21: scope:[collision] from collision::@3 - [126] (byte~) collision::i#13 ← (byte) collision::i#1 + [127] (byte~) collision::i#13 ← (byte) collision::i#1 to:collision::@2 play_move_leftright: scope:[play_move_leftright] from main::@29 - [127] if((byte) play_move_leftright::key_event#0==(const byte) KEY_COMMA#0) goto play_move_leftright::@1 + [128] if((byte) play_move_leftright::key_event#0==(const byte) KEY_COMMA#0) goto play_move_leftright::@1 to:play_move_leftright::@6 play_move_leftright::@6: scope:[play_move_leftright] from play_move_leftright - [128] if((byte) play_move_leftright::key_event#0!=(const byte) KEY_DOT#0) goto play_move_leftright::@return + [129] if((byte) play_move_leftright::key_event#0!=(const byte) KEY_DOT#0) goto play_move_leftright::@return to:play_move_leftright::@7 play_move_leftright::@7: scope:[play_move_leftright] from play_move_leftright::@6 - [129] (byte) collision::xpos#2 ← (byte) current_xpos#19 + (byte/signed byte/word/signed word/dword/signed dword) 1 - [130] (byte) collision::ypos#2 ← (byte) current_ypos#16 - [131] (byte) collision::orientation#2 ← (byte) current_orientation#18 - [132] (byte*~) current_piece#74 ← (byte*) current_piece#13 - [133] call collision - [134] (byte) collision::return#12 ← (byte) collision::return#14 + [130] (byte) collision::xpos#2 ← (byte) current_xpos#19 + (byte/signed byte/word/signed word/dword/signed dword) 1 + [131] (byte) collision::ypos#2 ← (byte) current_ypos#16 + [132] (byte) collision::orientation#2 ← (byte) current_orientation#18 + [133] (byte*~) current_piece#74 ← (byte*) current_piece#13 + [134] call collision + [135] (byte) collision::return#12 ← (byte) collision::return#14 to:play_move_leftright::@15 play_move_leftright::@15: scope:[play_move_leftright] from play_move_leftright::@7 - [135] (byte~) play_move_leftright::$4 ← (byte) collision::return#12 - [136] if((byte~) play_move_leftright::$4!=(const byte) COLLISION_NONE#0) goto play_move_leftright::@return + [136] (byte~) play_move_leftright::$4 ← (byte) collision::return#12 + [137] if((byte~) play_move_leftright::$4!=(const byte) COLLISION_NONE#0) goto play_move_leftright::@return to:play_move_leftright::@8 play_move_leftright::@8: scope:[play_move_leftright] from play_move_leftright::@15 - [137] (byte) current_xpos#7 ← ++ (byte) current_xpos#19 + [138] (byte) current_xpos#7 ← ++ (byte) current_xpos#19 to:play_move_leftright::@return play_move_leftright::@return: scope:[play_move_leftright] from play_move_leftright::@11 play_move_leftright::@14 play_move_leftright::@15 play_move_leftright::@6 play_move_leftright::@8 - [138] (byte) current_xpos#23 ← phi( play_move_leftright::@11/(byte) current_xpos#9 play_move_leftright::@15/(byte) current_xpos#19 play_move_leftright::@8/(byte) current_xpos#7 play_move_leftright::@14/(byte) current_xpos#19 play_move_leftright::@6/(byte) current_xpos#19 ) - [138] (byte) play_move_leftright::return#2 ← phi( play_move_leftright::@11/(byte/signed byte/word/signed word/dword/signed dword) 1 play_move_leftright::@15/(byte/signed byte/word/signed word/dword/signed dword) 0 play_move_leftright::@8/(byte/signed byte/word/signed word/dword/signed dword) 1 play_move_leftright::@14/(byte/signed byte/word/signed word/dword/signed dword) 0 play_move_leftright::@6/(byte/signed byte/word/signed word/dword/signed dword) 0 ) - [139] return + [139] (byte) current_xpos#23 ← phi( play_move_leftright::@11/(byte) current_xpos#9 play_move_leftright::@15/(byte) current_xpos#19 play_move_leftright::@8/(byte) current_xpos#7 play_move_leftright::@14/(byte) current_xpos#19 play_move_leftright::@6/(byte) current_xpos#19 ) + [139] (byte) play_move_leftright::return#2 ← phi( play_move_leftright::@11/(byte/signed byte/word/signed word/dword/signed dword) 1 play_move_leftright::@15/(byte/signed byte/word/signed word/dword/signed dword) 0 play_move_leftright::@8/(byte/signed byte/word/signed word/dword/signed dword) 1 play_move_leftright::@14/(byte/signed byte/word/signed word/dword/signed dword) 0 play_move_leftright::@6/(byte/signed byte/word/signed word/dword/signed dword) 0 ) + [140] return to:@return play_move_leftright::@1: scope:[play_move_leftright] from play_move_leftright - [140] (byte) collision::xpos#1 ← (byte) current_xpos#19 - (byte/signed byte/word/signed word/dword/signed dword) 1 - [141] (byte) collision::ypos#1 ← (byte) current_ypos#16 - [142] (byte) collision::orientation#1 ← (byte) current_orientation#18 - [143] (byte*~) current_piece#73 ← (byte*) current_piece#13 - [144] call collision - [145] (byte) collision::return#1 ← (byte) collision::return#14 + [141] (byte) collision::xpos#1 ← (byte) current_xpos#19 - (byte/signed byte/word/signed word/dword/signed dword) 1 + [142] (byte) collision::ypos#1 ← (byte) current_ypos#16 + [143] (byte) collision::orientation#1 ← (byte) current_orientation#18 + [144] (byte*~) current_piece#73 ← (byte*) current_piece#13 + [145] call collision + [146] (byte) collision::return#1 ← (byte) collision::return#14 to:play_move_leftright::@14 play_move_leftright::@14: scope:[play_move_leftright] from play_move_leftright::@1 - [146] (byte~) play_move_leftright::$8 ← (byte) collision::return#1 - [147] if((byte~) play_move_leftright::$8!=(const byte) COLLISION_NONE#0) goto play_move_leftright::@return + [147] (byte~) play_move_leftright::$8 ← (byte) collision::return#1 + [148] if((byte~) play_move_leftright::$8!=(const byte) COLLISION_NONE#0) goto play_move_leftright::@return to:play_move_leftright::@11 play_move_leftright::@11: scope:[play_move_leftright] from play_move_leftright::@14 - [148] (byte) current_xpos#9 ← -- (byte) current_xpos#19 + [149] (byte) current_xpos#9 ← -- (byte) current_xpos#19 to:play_move_leftright::@return play_move_down: scope:[play_move_down] from main::@28 - [149] (byte) current_movedown_counter#10 ← ++ (byte) current_movedown_counter#15 - [150] if((byte) play_move_down::key_event#0!=(const byte) KEY_SPACE#0) goto play_move_down::@1 + [150] (byte) current_movedown_counter#10 ← ++ (byte) current_movedown_counter#15 + [151] if((byte) play_move_down::key_event#0!=(const byte) KEY_SPACE#0) goto play_move_down::@1 to:play_move_down::@8 play_move_down::@8: scope:[play_move_down] from play_move_down - [151] phi() + [152] phi() to:play_move_down::@1 play_move_down::@1: scope:[play_move_down] from play_move_down play_move_down::@8 - [152] (byte) play_move_down::movedown#10 ← phi( play_move_down/(byte/signed byte/word/signed word/dword/signed dword) 0 play_move_down::@8/(byte/signed byte/word/signed word/dword/signed dword) 1 ) - [153] call keyboard_event_pressed - [154] (byte) keyboard_event_pressed::return#12 ← (byte) keyboard_event_pressed::return#11 + [153] (byte) play_move_down::movedown#10 ← phi( play_move_down/(byte/signed byte/word/signed word/dword/signed dword) 0 play_move_down::@8/(byte/signed byte/word/signed word/dword/signed dword) 1 ) + [154] call keyboard_event_pressed + [155] (byte) keyboard_event_pressed::return#12 ← (byte) keyboard_event_pressed::return#11 to:play_move_down::@17 play_move_down::@17: scope:[play_move_down] from play_move_down::@1 - [155] (byte~) play_move_down::$2 ← (byte) keyboard_event_pressed::return#12 - [156] if((byte~) play_move_down::$2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_move_down::@2 + [156] (byte~) play_move_down::$2 ← (byte) keyboard_event_pressed::return#12 + [157] if((byte~) play_move_down::$2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_move_down::@2 to:play_move_down::@9 play_move_down::@9: scope:[play_move_down] from play_move_down::@17 - [157] if((byte) current_movedown_counter#10<(const byte) current_movedown_fast#0) goto play_move_down::@2 + [158] if((byte) current_movedown_counter#10<(const byte) current_movedown_fast#0) goto play_move_down::@2 to:play_move_down::@10 play_move_down::@10: scope:[play_move_down] from play_move_down::@9 - [158] (byte) play_move_down::movedown#2 ← ++ (byte) play_move_down::movedown#10 + [159] (byte) play_move_down::movedown#2 ← ++ (byte) play_move_down::movedown#10 to:play_move_down::@2 play_move_down::@2: scope:[play_move_down] from play_move_down::@10 play_move_down::@17 play_move_down::@9 - [159] (byte) play_move_down::movedown#7 ← phi( play_move_down::@10/(byte) play_move_down::movedown#2 play_move_down::@17/(byte) play_move_down::movedown#10 play_move_down::@9/(byte) play_move_down::movedown#10 ) - [160] if((byte) current_movedown_counter#10<(const byte) current_movedown_slow#0) goto play_move_down::@4 + [160] (byte) play_move_down::movedown#7 ← phi( play_move_down::@10/(byte) play_move_down::movedown#2 play_move_down::@17/(byte) play_move_down::movedown#10 play_move_down::@9/(byte) play_move_down::movedown#10 ) + [161] if((byte) current_movedown_counter#10<(const byte) current_movedown_slow#0) goto play_move_down::@4 to:play_move_down::@11 play_move_down::@11: scope:[play_move_down] from play_move_down::@2 - [161] (byte) play_move_down::movedown#3 ← ++ (byte) play_move_down::movedown#7 + [162] (byte) play_move_down::movedown#3 ← ++ (byte) play_move_down::movedown#7 to:play_move_down::@4 play_move_down::@4: scope:[play_move_down] from play_move_down::@11 play_move_down::@2 - [162] (byte) play_move_down::movedown#6 ← phi( play_move_down::@11/(byte) play_move_down::movedown#3 play_move_down::@2/(byte) play_move_down::movedown#7 ) - [163] if((byte) play_move_down::movedown#6==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_move_down::@return + [163] (byte) play_move_down::movedown#6 ← phi( play_move_down::@11/(byte) play_move_down::movedown#3 play_move_down::@2/(byte) play_move_down::movedown#7 ) + [164] if((byte) play_move_down::movedown#6==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_move_down::@return to:play_move_down::@12 play_move_down::@12: scope:[play_move_down] from play_move_down::@4 - [164] (byte) collision::ypos#0 ← (byte) current_ypos#12 + (byte/signed byte/word/signed word/dword/signed dword) 1 - [165] (byte) collision::xpos#0 ← (byte) current_xpos#16 - [166] (byte) collision::orientation#0 ← (byte) current_orientation#15 - [167] (byte*~) current_piece#72 ← (byte*) current_piece#11 - [168] call collision - [169] (byte) collision::return#0 ← (byte) collision::return#14 + [165] (byte) collision::ypos#0 ← (byte) current_ypos#12 + (byte/signed byte/word/signed word/dword/signed dword) 1 + [166] (byte) collision::xpos#0 ← (byte) current_xpos#16 + [167] (byte) collision::orientation#0 ← (byte) current_orientation#15 + [168] (byte*~) current_piece#72 ← (byte*) current_piece#11 + [169] call collision + [170] (byte) collision::return#0 ← (byte) collision::return#14 to:play_move_down::@18 play_move_down::@18: scope:[play_move_down] from play_move_down::@12 - [170] (byte~) play_move_down::$12 ← (byte) collision::return#0 - [171] if((byte~) play_move_down::$12==(const byte) COLLISION_NONE#0) goto play_move_down::@6 + [171] (byte~) play_move_down::$12 ← (byte) collision::return#0 + [172] if((byte~) play_move_down::$12==(const byte) COLLISION_NONE#0) goto play_move_down::@6 to:play_move_down::@13 play_move_down::@13: scope:[play_move_down] from play_move_down::@18 - [172] phi() - [173] call lock_current + [173] phi() + [174] call lock_current to:play_move_down::@19 play_move_down::@19: scope:[play_move_down] from play_move_down::@13 - [174] phi() - [175] call remove_lines + [175] phi() + [176] call remove_lines to:play_move_down::@20 play_move_down::@20: scope:[play_move_down] from play_move_down::@19 - [176] phi() - [177] call spawn_current - [178] (byte*~) current_piece#76 ← (byte*)*((const word[]) PIECES#0 + (byte~) spawn_current::$3) + [177] phi() + [178] call spawn_current + [179] (byte*~) current_piece#76 ← (byte*)*((const word[]) PIECES#0 + (byte~) spawn_current::$3) to:play_move_down::@7 play_move_down::@7: scope:[play_move_down] from play_move_down::@20 play_move_down::@6 - [179] (byte) current_piece_color#23 ← phi( play_move_down::@20/(byte) current_piece_color#15 play_move_down::@6/(byte) current_piece_color#11 ) - [179] (byte) current_xpos#36 ← phi( play_move_down::@20/(byte/signed byte/word/signed word/dword/signed dword) 3 play_move_down::@6/(byte) current_xpos#16 ) - [179] (byte*) current_piece_gfx#29 ← phi( play_move_down::@20/(byte*) current_piece_gfx#10 play_move_down::@6/(byte*) current_piece_gfx#15 ) - [179] (byte) current_orientation#33 ← phi( play_move_down::@20/(byte/signed byte/word/signed word/dword/signed dword) 0 play_move_down::@6/(byte) current_orientation#15 ) - [179] (byte*) current_piece#23 ← phi( play_move_down::@20/(byte*~) current_piece#76 play_move_down::@6/(byte*) current_piece#11 ) - [179] (byte) current_ypos#31 ← phi( play_move_down::@20/(byte/signed byte/word/signed word/dword/signed dword) 0 play_move_down::@6/(byte) current_ypos#4 ) + [180] (byte) current_piece_color#23 ← phi( play_move_down::@20/(byte) current_piece_color#15 play_move_down::@6/(byte) current_piece_color#11 ) + [180] (byte) current_xpos#36 ← phi( play_move_down::@20/(byte/signed byte/word/signed word/dword/signed dword) 3 play_move_down::@6/(byte) current_xpos#16 ) + [180] (byte*) current_piece_gfx#29 ← phi( play_move_down::@20/(byte*) current_piece_gfx#10 play_move_down::@6/(byte*) current_piece_gfx#15 ) + [180] (byte) current_orientation#33 ← phi( play_move_down::@20/(byte/signed byte/word/signed word/dword/signed dword) 0 play_move_down::@6/(byte) current_orientation#15 ) + [180] (byte*) current_piece#23 ← phi( play_move_down::@20/(byte*~) current_piece#76 play_move_down::@6/(byte*) current_piece#11 ) + [180] (byte) current_ypos#31 ← phi( play_move_down::@20/(byte/signed byte/word/signed word/dword/signed dword) 0 play_move_down::@6/(byte) current_ypos#4 ) to:play_move_down::@return play_move_down::@return: scope:[play_move_down] from play_move_down::@4 play_move_down::@7 - [180] (byte) current_piece_color#13 ← phi( play_move_down::@4/(byte) current_piece_color#11 play_move_down::@7/(byte) current_piece_color#23 ) - [180] (byte) current_xpos#19 ← phi( play_move_down::@4/(byte) current_xpos#16 play_move_down::@7/(byte) current_xpos#36 ) - [180] (byte*) current_piece_gfx#17 ← phi( play_move_down::@4/(byte*) current_piece_gfx#15 play_move_down::@7/(byte*) current_piece_gfx#29 ) - [180] (byte) current_orientation#18 ← phi( play_move_down::@4/(byte) current_orientation#15 play_move_down::@7/(byte) current_orientation#33 ) - [180] (byte*) current_piece#13 ← phi( play_move_down::@4/(byte*) current_piece#11 play_move_down::@7/(byte*) current_piece#23 ) - [180] (byte) current_ypos#16 ← phi( play_move_down::@4/(byte) current_ypos#12 play_move_down::@7/(byte) current_ypos#31 ) - [180] (byte) current_movedown_counter#12 ← phi( play_move_down::@4/(byte) current_movedown_counter#10 play_move_down::@7/(byte/signed byte/word/signed word/dword/signed dword) 0 ) - [180] (byte) play_move_down::return#3 ← phi( play_move_down::@4/(byte/signed byte/word/signed word/dword/signed dword) 0 play_move_down::@7/(byte/signed byte/word/signed word/dword/signed dword) 1 ) - [181] return + [181] (byte) current_piece_color#13 ← phi( play_move_down::@4/(byte) current_piece_color#11 play_move_down::@7/(byte) current_piece_color#23 ) + [181] (byte) current_xpos#19 ← phi( play_move_down::@4/(byte) current_xpos#16 play_move_down::@7/(byte) current_xpos#36 ) + [181] (byte*) current_piece_gfx#17 ← phi( play_move_down::@4/(byte*) current_piece_gfx#15 play_move_down::@7/(byte*) current_piece_gfx#29 ) + [181] (byte) current_orientation#18 ← phi( play_move_down::@4/(byte) current_orientation#15 play_move_down::@7/(byte) current_orientation#33 ) + [181] (byte*) current_piece#13 ← phi( play_move_down::@4/(byte*) current_piece#11 play_move_down::@7/(byte*) current_piece#23 ) + [181] (byte) current_ypos#16 ← phi( play_move_down::@4/(byte) current_ypos#12 play_move_down::@7/(byte) current_ypos#31 ) + [181] (byte) current_movedown_counter#12 ← phi( play_move_down::@4/(byte) current_movedown_counter#10 play_move_down::@7/(byte/signed byte/word/signed word/dword/signed dword) 0 ) + [181] (byte) play_move_down::return#3 ← phi( play_move_down::@4/(byte/signed byte/word/signed word/dword/signed dword) 0 play_move_down::@7/(byte/signed byte/word/signed word/dword/signed dword) 1 ) + [182] return to:@return play_move_down::@6: scope:[play_move_down] from play_move_down::@18 - [182] (byte) current_ypos#4 ← ++ (byte) current_ypos#12 + [183] (byte) current_ypos#4 ← ++ (byte) current_ypos#12 to:play_move_down::@7 spawn_current: scope:[spawn_current] from main::@23 play_move_down::@20 - [183] phi() + [184] phi() to:spawn_current::@1 spawn_current::@1: scope:[spawn_current] from spawn_current spawn_current::@7 - [184] (byte) spawn_current::piece_idx#2 ← phi( spawn_current/(byte/signed byte/word/signed word/dword/signed dword) 7 spawn_current::@7/(byte) spawn_current::piece_idx#1 ) - [185] if((byte) spawn_current::piece_idx#2==(byte/signed byte/word/signed word/dword/signed dword) 7) goto spawn_current::@2 + [185] (byte) spawn_current::piece_idx#2 ← phi( spawn_current/(byte/signed byte/word/signed word/dword/signed dword) 7 spawn_current::@7/(byte) spawn_current::piece_idx#1 ) + [186] if((byte) spawn_current::piece_idx#2==(byte/signed byte/word/signed word/dword/signed dword) 7) goto spawn_current::@2 to:spawn_current::@3 spawn_current::@3: scope:[spawn_current] from spawn_current::@1 - [186] (byte~) spawn_current::$3 ← (byte) spawn_current::piece_idx#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 - [187] (byte*) current_piece_gfx#10 ← (byte*)*((const word[]) PIECES#0 + (byte~) spawn_current::$3) + (byte/signed byte/word/signed word/dword/signed dword) 0 - [188] (byte) current_piece_color#15 ← *((const byte[]) PIECES_COLORS#0 + (byte) spawn_current::piece_idx#2) + [187] (byte~) spawn_current::$3 ← (byte) spawn_current::piece_idx#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 + [188] (byte*) current_piece_gfx#10 ← (byte*)*((const word[]) PIECES#0 + (byte~) spawn_current::$3) + (byte/signed byte/word/signed word/dword/signed dword) 0 + [189] (byte) current_piece_color#15 ← *((const byte[]) PIECES_COLORS#0 + (byte) spawn_current::piece_idx#2) to:spawn_current::@return spawn_current::@return: scope:[spawn_current] from spawn_current::@3 - [189] return + [190] return to:@return spawn_current::@2: scope:[spawn_current] from spawn_current::@1 - [190] phi() - [191] call sid_rnd - [192] (byte) sid_rnd::return#2 ← (byte) sid_rnd::return#0 + [191] phi() + [192] call sid_rnd + [193] (byte) sid_rnd::return#2 ← (byte) sid_rnd::return#0 to:spawn_current::@7 spawn_current::@7: scope:[spawn_current] from spawn_current::@2 - [193] (byte~) spawn_current::$1 ← (byte) sid_rnd::return#2 - [194] (byte) spawn_current::piece_idx#1 ← (byte~) spawn_current::$1 & (byte/signed byte/word/signed word/dword/signed dword) 7 + [194] (byte~) spawn_current::$1 ← (byte) sid_rnd::return#2 + [195] (byte) spawn_current::piece_idx#1 ← (byte~) spawn_current::$1 & (byte/signed byte/word/signed word/dword/signed dword) 7 to:spawn_current::@1 sid_rnd: scope:[sid_rnd] from spawn_current::@2 - [195] (byte) sid_rnd::return#0 ← *((const byte*) SID_VOICE3_OSC#0) + [196] (byte) sid_rnd::return#0 ← *((const byte*) SID_VOICE3_OSC#0) to:sid_rnd::@return sid_rnd::@return: scope:[sid_rnd] from sid_rnd - [196] return + [197] return to:@return remove_lines: scope:[remove_lines] from play_move_down::@19 - [197] phi() + [198] phi() to:remove_lines::@1 remove_lines::@1: scope:[remove_lines] from remove_lines remove_lines::@4 - [198] (byte) remove_lines::y#8 ← phi( remove_lines/(byte/signed byte/word/signed word/dword/signed dword) 0 remove_lines::@4/(byte) remove_lines::y#1 ) - [198] (byte) remove_lines::w#12 ← phi( remove_lines/(const byte) PLAYFIELD_LINES#0*(const byte) PLAYFIELD_COLS#0-(byte/signed byte/word/signed word/dword/signed dword) 1 remove_lines::@4/(byte) remove_lines::w#11 ) - [198] (byte) remove_lines::r#3 ← phi( remove_lines/(const byte) PLAYFIELD_LINES#0*(const byte) PLAYFIELD_COLS#0-(byte/signed byte/word/signed word/dword/signed dword) 1 remove_lines::@4/(byte) remove_lines::r#1 ) + [199] (byte) remove_lines::y#8 ← phi( remove_lines/(byte/signed byte/word/signed word/dword/signed dword) 0 remove_lines::@4/(byte) remove_lines::y#1 ) + [199] (byte) remove_lines::w#12 ← phi( remove_lines/(const byte) PLAYFIELD_LINES#0*(const byte) PLAYFIELD_COLS#0-(byte/signed byte/word/signed word/dword/signed dword) 1 remove_lines::@4/(byte) remove_lines::w#11 ) + [199] (byte) remove_lines::r#3 ← phi( remove_lines/(const byte) PLAYFIELD_LINES#0*(const byte) PLAYFIELD_COLS#0-(byte/signed byte/word/signed word/dword/signed dword) 1 remove_lines::@4/(byte) remove_lines::r#1 ) to:remove_lines::@2 remove_lines::@2: scope:[remove_lines] from remove_lines::@1 remove_lines::@3 - [199] (byte) remove_lines::full#4 ← phi( remove_lines::@1/(byte/signed byte/word/signed word/dword/signed dword) 1 remove_lines::@3/(byte) remove_lines::full#2 ) - [199] (byte) remove_lines::x#2 ← phi( remove_lines::@1/(byte/signed byte/word/signed word/dword/signed dword) 0 remove_lines::@3/(byte) remove_lines::x#1 ) - [199] (byte) remove_lines::w#4 ← phi( remove_lines::@1/(byte) remove_lines::w#12 remove_lines::@3/(byte) remove_lines::w#1 ) - [199] (byte) remove_lines::r#2 ← phi( remove_lines::@1/(byte) remove_lines::r#3 remove_lines::@3/(byte) remove_lines::r#1 ) - [200] (byte) remove_lines::c#0 ← *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) remove_lines::r#2) - [201] (byte) remove_lines::r#1 ← -- (byte) remove_lines::r#2 - [202] if((byte) remove_lines::c#0!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto remove_lines::@17 + [200] (byte) remove_lines::full#4 ← phi( remove_lines::@1/(byte/signed byte/word/signed word/dword/signed dword) 1 remove_lines::@3/(byte) remove_lines::full#2 ) + [200] (byte) remove_lines::x#2 ← phi( remove_lines::@1/(byte/signed byte/word/signed word/dword/signed dword) 0 remove_lines::@3/(byte) remove_lines::x#1 ) + [200] (byte) remove_lines::w#4 ← phi( remove_lines::@1/(byte) remove_lines::w#12 remove_lines::@3/(byte) remove_lines::w#1 ) + [200] (byte) remove_lines::r#2 ← phi( remove_lines::@1/(byte) remove_lines::r#3 remove_lines::@3/(byte) remove_lines::r#1 ) + [201] (byte) remove_lines::c#0 ← *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) remove_lines::r#2) + [202] (byte) remove_lines::r#1 ← -- (byte) remove_lines::r#2 + [203] if((byte) remove_lines::c#0!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto remove_lines::@17 to:remove_lines::@3 remove_lines::@3: scope:[remove_lines] from remove_lines::@17 remove_lines::@2 - [203] (byte) remove_lines::full#2 ← phi( remove_lines::@17/(byte) remove_lines::full#4 remove_lines::@2/(byte/signed byte/word/signed word/dword/signed dword) 0 ) - [204] *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) remove_lines::w#4) ← (byte) remove_lines::c#0 - [205] (byte) remove_lines::w#1 ← -- (byte) remove_lines::w#4 - [206] (byte) remove_lines::x#1 ← ++ (byte) remove_lines::x#2 - [207] if((byte) remove_lines::x#1!=(const byte) PLAYFIELD_COLS#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto remove_lines::@2 + [204] (byte) remove_lines::full#2 ← phi( remove_lines::@17/(byte) remove_lines::full#4 remove_lines::@2/(byte/signed byte/word/signed word/dword/signed dword) 0 ) + [205] *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) remove_lines::w#4) ← (byte) remove_lines::c#0 + [206] (byte) remove_lines::w#1 ← -- (byte) remove_lines::w#4 + [207] (byte) remove_lines::x#1 ← ++ (byte) remove_lines::x#2 + [208] if((byte) remove_lines::x#1!=(const byte) PLAYFIELD_COLS#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto remove_lines::@2 to:remove_lines::@9 remove_lines::@9: scope:[remove_lines] from remove_lines::@3 - [208] if((byte) remove_lines::full#2!=(byte/signed byte/word/signed word/dword/signed dword) 1) goto remove_lines::@4 + [209] if((byte) remove_lines::full#2!=(byte/signed byte/word/signed word/dword/signed dword) 1) goto remove_lines::@4 to:remove_lines::@10 remove_lines::@10: scope:[remove_lines] from remove_lines::@9 - [209] (byte) remove_lines::w#2 ← (byte) remove_lines::w#1 + (const byte) PLAYFIELD_COLS#0 + [210] (byte) remove_lines::w#2 ← (byte) remove_lines::w#1 + (const byte) PLAYFIELD_COLS#0 to:remove_lines::@4 remove_lines::@4: scope:[remove_lines] from remove_lines::@10 remove_lines::@9 - [210] (byte) remove_lines::w#11 ← phi( remove_lines::@10/(byte) remove_lines::w#2 remove_lines::@9/(byte) remove_lines::w#1 ) - [211] (byte) remove_lines::y#1 ← ++ (byte) remove_lines::y#8 - [212] if((byte) remove_lines::y#1!=(const byte) PLAYFIELD_LINES#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto remove_lines::@1 + [211] (byte) remove_lines::w#11 ← phi( remove_lines::@10/(byte) remove_lines::w#2 remove_lines::@9/(byte) remove_lines::w#1 ) + [212] (byte) remove_lines::y#1 ← ++ (byte) remove_lines::y#8 + [213] if((byte) remove_lines::y#1!=(const byte) PLAYFIELD_LINES#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto remove_lines::@1 to:remove_lines::@5 remove_lines::@5: scope:[remove_lines] from remove_lines::@4 remove_lines::@6 - [213] (byte) remove_lines::w#6 ← phi( remove_lines::@4/(byte) remove_lines::w#11 remove_lines::@6/(byte) remove_lines::w#3 ) - [214] if((byte) remove_lines::w#6!=(byte/word/signed word/dword/signed dword) 255) goto remove_lines::@6 + [214] (byte) remove_lines::w#6 ← phi( remove_lines::@4/(byte) remove_lines::w#11 remove_lines::@6/(byte) remove_lines::w#3 ) + [215] if((byte) remove_lines::w#6!=(byte/word/signed word/dword/signed dword) 255) goto remove_lines::@6 to:remove_lines::@return remove_lines::@return: scope:[remove_lines] from remove_lines::@5 - [215] return + [216] return to:@return remove_lines::@6: scope:[remove_lines] from remove_lines::@5 - [216] *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) remove_lines::w#6) ← (byte/signed byte/word/signed word/dword/signed dword) 0 - [217] (byte) remove_lines::w#3 ← -- (byte) remove_lines::w#6 + [217] *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) remove_lines::w#6) ← (byte/signed byte/word/signed word/dword/signed dword) 0 + [218] (byte) remove_lines::w#3 ← -- (byte) remove_lines::w#6 to:remove_lines::@5 remove_lines::@17: scope:[remove_lines] from remove_lines::@2 - [218] phi() + [219] phi() to:remove_lines::@3 lock_current: scope:[lock_current] from play_move_down::@13 - [219] (byte) lock_current::ypos2#0 ← (byte) current_ypos#12 << (byte/signed byte/word/signed word/dword/signed dword) 1 + [220] (byte) lock_current::ypos2#0 ← (byte) current_ypos#12 << (byte/signed byte/word/signed word/dword/signed dword) 1 to:lock_current::@1 lock_current::@1: scope:[lock_current] from lock_current lock_current::@7 - [220] (byte) lock_current::l#6 ← phi( lock_current/(byte/signed byte/word/signed word/dword/signed dword) 0 lock_current::@7/(byte) lock_current::l#1 ) - [220] (byte) lock_current::i#3 ← phi( lock_current/(byte/signed byte/word/signed word/dword/signed dword) 0 lock_current::@7/(byte~) lock_current::i#7 ) - [220] (byte) lock_current::ypos2#2 ← phi( lock_current/(byte) lock_current::ypos2#0 lock_current::@7/(byte) lock_current::ypos2#1 ) - [221] (byte*) lock_current::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) lock_current::ypos2#2) - [222] (byte) lock_current::col#0 ← (byte) current_xpos#16 + [221] (byte) lock_current::l#6 ← phi( lock_current/(byte/signed byte/word/signed word/dword/signed dword) 0 lock_current::@7/(byte) lock_current::l#1 ) + [221] (byte) lock_current::i#3 ← phi( lock_current/(byte/signed byte/word/signed word/dword/signed dword) 0 lock_current::@7/(byte~) lock_current::i#7 ) + [221] (byte) lock_current::ypos2#2 ← phi( lock_current/(byte) lock_current::ypos2#0 lock_current::@7/(byte) lock_current::ypos2#1 ) + [222] (byte*) lock_current::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) lock_current::ypos2#2) + [223] (byte) lock_current::col#0 ← (byte) current_xpos#16 to:lock_current::@2 lock_current::@2: scope:[lock_current] from lock_current::@1 lock_current::@8 - [223] (byte) lock_current::c#2 ← phi( lock_current::@1/(byte/signed byte/word/signed word/dword/signed dword) 0 lock_current::@8/(byte) lock_current::c#1 ) - [223] (byte) lock_current::col#2 ← phi( lock_current::@1/(byte) lock_current::col#0 lock_current::@8/(byte) lock_current::col#1 ) - [223] (byte) lock_current::i#2 ← phi( lock_current::@1/(byte) lock_current::i#3 lock_current::@8/(byte~) lock_current::i#9 ) - [224] (byte) lock_current::i#1 ← ++ (byte) lock_current::i#2 - [225] if(*((byte*) current_piece_gfx#15 + (byte) lock_current::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto lock_current::@3 + [224] (byte) lock_current::c#2 ← phi( lock_current::@1/(byte/signed byte/word/signed word/dword/signed dword) 0 lock_current::@8/(byte) lock_current::c#1 ) + [224] (byte) lock_current::col#2 ← phi( lock_current::@1/(byte) lock_current::col#0 lock_current::@8/(byte) lock_current::col#1 ) + [224] (byte) lock_current::i#2 ← phi( lock_current::@1/(byte) lock_current::i#3 lock_current::@8/(byte~) lock_current::i#9 ) + [225] (byte) lock_current::i#1 ← ++ (byte) lock_current::i#2 + [226] if(*((byte*) current_piece_gfx#15 + (byte) lock_current::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto lock_current::@3 to:lock_current::@4 lock_current::@4: scope:[lock_current] from lock_current::@2 - [226] *((byte*) lock_current::playfield_line#0 + (byte) lock_current::col#2) ← (byte) current_piece_color#11 + [227] *((byte*) lock_current::playfield_line#0 + (byte) lock_current::col#2) ← (byte) current_piece_color#11 to:lock_current::@3 lock_current::@3: scope:[lock_current] from lock_current::@2 lock_current::@4 - [227] (byte) lock_current::col#1 ← ++ (byte) lock_current::col#2 - [228] (byte) lock_current::c#1 ← ++ (byte) lock_current::c#2 - [229] if((byte) lock_current::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto lock_current::@8 + [228] (byte) lock_current::col#1 ← ++ (byte) lock_current::col#2 + [229] (byte) lock_current::c#1 ← ++ (byte) lock_current::c#2 + [230] if((byte) lock_current::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto lock_current::@8 to:lock_current::@5 lock_current::@5: scope:[lock_current] from lock_current::@3 - [230] (byte) lock_current::ypos2#1 ← (byte) lock_current::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 - [231] (byte) lock_current::l#1 ← ++ (byte) lock_current::l#6 - [232] if((byte) lock_current::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto lock_current::@7 + [231] (byte) lock_current::ypos2#1 ← (byte) lock_current::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 + [232] (byte) lock_current::l#1 ← ++ (byte) lock_current::l#6 + [233] if((byte) lock_current::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto lock_current::@7 to:lock_current::@return lock_current::@return: scope:[lock_current] from lock_current::@5 - [233] return + [234] return to:@return lock_current::@7: scope:[lock_current] from lock_current::@5 - [234] (byte~) lock_current::i#7 ← (byte) lock_current::i#1 + [235] (byte~) lock_current::i#7 ← (byte) lock_current::i#1 to:lock_current::@1 lock_current::@8: scope:[lock_current] from lock_current::@3 - [235] (byte~) lock_current::i#9 ← (byte) lock_current::i#1 + [236] (byte~) lock_current::i#9 ← (byte) lock_current::i#1 to:lock_current::@2 keyboard_event_pressed: scope:[keyboard_event_pressed] from keyboard_event_scan::@10 keyboard_event_scan::@11 keyboard_event_scan::@20 keyboard_event_scan::@9 play_move_down::@1 - [236] (byte) keyboard_event_pressed::keycode#5 ← phi( keyboard_event_scan::@10/(const byte) KEY_CTRL#0 keyboard_event_scan::@11/(const byte) KEY_COMMODORE#0 keyboard_event_scan::@20/(const byte) KEY_LSHIFT#0 keyboard_event_scan::@9/(const byte) KEY_RSHIFT#0 play_move_down::@1/(const byte) KEY_SPACE#0 ) - [237] (byte~) keyboard_event_pressed::$0 ← (byte) keyboard_event_pressed::keycode#5 >> (byte/signed byte/word/signed word/dword/signed dword) 3 - [238] (byte) keyboard_event_pressed::row_bits#0 ← *((const byte[8]) keyboard_scan_values#0 + (byte~) keyboard_event_pressed::$0) - [239] (byte~) keyboard_event_pressed::$1 ← (byte) keyboard_event_pressed::keycode#5 & (byte/signed byte/word/signed word/dword/signed dword) 7 - [240] (byte) keyboard_event_pressed::return#11 ← (byte) keyboard_event_pressed::row_bits#0 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte~) keyboard_event_pressed::$1) + [237] (byte) keyboard_event_pressed::keycode#5 ← phi( keyboard_event_scan::@10/(const byte) KEY_CTRL#0 keyboard_event_scan::@11/(const byte) KEY_COMMODORE#0 keyboard_event_scan::@20/(const byte) KEY_LSHIFT#0 keyboard_event_scan::@9/(const byte) KEY_RSHIFT#0 play_move_down::@1/(const byte) KEY_SPACE#0 ) + [238] (byte~) keyboard_event_pressed::$0 ← (byte) keyboard_event_pressed::keycode#5 >> (byte/signed byte/word/signed word/dword/signed dword) 3 + [239] (byte) keyboard_event_pressed::row_bits#0 ← *((const byte[8]) keyboard_scan_values#0 + (byte~) keyboard_event_pressed::$0) + [240] (byte~) keyboard_event_pressed::$1 ← (byte) keyboard_event_pressed::keycode#5 & (byte/signed byte/word/signed word/dword/signed dword) 7 + [241] (byte) keyboard_event_pressed::return#11 ← (byte) keyboard_event_pressed::row_bits#0 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte~) keyboard_event_pressed::$1) to:keyboard_event_pressed::@return keyboard_event_pressed::@return: scope:[keyboard_event_pressed] from keyboard_event_pressed - [241] return + [242] return to:@return keyboard_event_get: scope:[keyboard_event_get] from main::@27 - [242] if((byte) keyboard_events_size#13==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_get::@return + [243] if((byte) keyboard_events_size#13==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_get::@return to:keyboard_event_get::@3 keyboard_event_get::@3: scope:[keyboard_event_get] from keyboard_event_get - [243] (byte) keyboard_events_size#4 ← -- (byte) keyboard_events_size#13 - [244] (byte) keyboard_event_get::return#1 ← *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#4) + [244] (byte) keyboard_events_size#4 ← -- (byte) keyboard_events_size#13 + [245] (byte) keyboard_event_get::return#1 ← *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#4) to:keyboard_event_get::@return keyboard_event_get::@return: scope:[keyboard_event_get] from keyboard_event_get keyboard_event_get::@3 - [245] (byte) keyboard_events_size#16 ← phi( keyboard_event_get/(byte) keyboard_events_size#13 keyboard_event_get::@3/(byte) keyboard_events_size#4 ) - [245] (byte) keyboard_event_get::return#2 ← phi( keyboard_event_get/(byte/word/signed word/dword/signed dword) 255 keyboard_event_get::@3/(byte) keyboard_event_get::return#1 ) - [246] return + [246] (byte) keyboard_events_size#16 ← phi( keyboard_event_get/(byte) keyboard_events_size#13 keyboard_event_get::@3/(byte) keyboard_events_size#4 ) + [246] (byte) keyboard_event_get::return#2 ← phi( keyboard_event_get/(byte/word/signed word/dword/signed dword) 255 keyboard_event_get::@3/(byte) keyboard_event_get::return#1 ) + [247] return to:@return keyboard_event_scan: scope:[keyboard_event_scan] from main::@9 - [247] phi() + [248] phi() to:keyboard_event_scan::@1 keyboard_event_scan::@1: scope:[keyboard_event_scan] from keyboard_event_scan keyboard_event_scan::@3 - [248] (byte) keyboard_events_size#29 ← phi( keyboard_event_scan/(byte) keyboard_events_size#19 keyboard_event_scan::@3/(byte) keyboard_events_size#13 ) - [248] (byte) keyboard_event_scan::keycode#11 ← phi( keyboard_event_scan/(byte/signed byte/word/signed word/dword/signed dword) 0 keyboard_event_scan::@3/(byte) keyboard_event_scan::keycode#14 ) - [248] (byte) keyboard_event_scan::row#2 ← phi( keyboard_event_scan/(byte/signed byte/word/signed word/dword/signed dword) 0 keyboard_event_scan::@3/(byte) keyboard_event_scan::row#1 ) - [249] (byte) keyboard_matrix_read::rowid#0 ← (byte) keyboard_event_scan::row#2 - [250] call keyboard_matrix_read - [251] (byte) keyboard_matrix_read::return#2 ← (byte) keyboard_matrix_read::return#0 + [249] (byte) keyboard_events_size#29 ← phi( keyboard_event_scan/(byte) keyboard_events_size#19 keyboard_event_scan::@3/(byte) keyboard_events_size#13 ) + [249] (byte) keyboard_event_scan::keycode#11 ← phi( keyboard_event_scan/(byte/signed byte/word/signed word/dword/signed dword) 0 keyboard_event_scan::@3/(byte) keyboard_event_scan::keycode#14 ) + [249] (byte) keyboard_event_scan::row#2 ← phi( keyboard_event_scan/(byte/signed byte/word/signed word/dword/signed dword) 0 keyboard_event_scan::@3/(byte) keyboard_event_scan::row#1 ) + [250] (byte) keyboard_matrix_read::rowid#0 ← (byte) keyboard_event_scan::row#2 + [251] call keyboard_matrix_read + [252] (byte) keyboard_matrix_read::return#2 ← (byte) keyboard_matrix_read::return#0 to:keyboard_event_scan::@25 keyboard_event_scan::@25: scope:[keyboard_event_scan] from keyboard_event_scan::@1 - [252] (byte) keyboard_event_scan::row_scan#0 ← (byte) keyboard_matrix_read::return#2 - [253] if((byte) keyboard_event_scan::row_scan#0!=*((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2)) goto keyboard_event_scan::@4 + [253] (byte) keyboard_event_scan::row_scan#0 ← (byte) keyboard_matrix_read::return#2 + [254] if((byte) keyboard_event_scan::row_scan#0!=*((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2)) goto keyboard_event_scan::@4 to:keyboard_event_scan::@13 keyboard_event_scan::@13: scope:[keyboard_event_scan] from keyboard_event_scan::@25 - [254] (byte) keyboard_event_scan::keycode#1 ← (byte) keyboard_event_scan::keycode#11 + (byte/signed byte/word/signed word/dword/signed dword) 8 + [255] (byte) keyboard_event_scan::keycode#1 ← (byte) keyboard_event_scan::keycode#11 + (byte/signed byte/word/signed word/dword/signed dword) 8 to:keyboard_event_scan::@3 keyboard_event_scan::@3: scope:[keyboard_event_scan] from keyboard_event_scan::@13 keyboard_event_scan::@19 - [255] (byte) keyboard_events_size#13 ← phi( keyboard_event_scan::@13/(byte) keyboard_events_size#29 keyboard_event_scan::@19/(byte) keyboard_events_size#30 ) - [255] (byte) keyboard_event_scan::keycode#14 ← phi( keyboard_event_scan::@13/(byte) keyboard_event_scan::keycode#1 keyboard_event_scan::@19/(byte) keyboard_event_scan::keycode#15 ) - [256] (byte) keyboard_event_scan::row#1 ← ++ (byte) keyboard_event_scan::row#2 - [257] if((byte) keyboard_event_scan::row#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto keyboard_event_scan::@1 + [256] (byte) keyboard_events_size#13 ← phi( keyboard_event_scan::@13/(byte) keyboard_events_size#29 keyboard_event_scan::@19/(byte) keyboard_events_size#30 ) + [256] (byte) keyboard_event_scan::keycode#14 ← phi( keyboard_event_scan::@13/(byte) keyboard_event_scan::keycode#1 keyboard_event_scan::@19/(byte) keyboard_event_scan::keycode#15 ) + [257] (byte) keyboard_event_scan::row#1 ← ++ (byte) keyboard_event_scan::row#2 + [258] if((byte) keyboard_event_scan::row#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto keyboard_event_scan::@1 to:keyboard_event_scan::@20 keyboard_event_scan::@20: scope:[keyboard_event_scan] from keyboard_event_scan::@3 - [258] phi() - [259] call keyboard_event_pressed - [260] (byte) keyboard_event_pressed::return#0 ← (byte) keyboard_event_pressed::return#11 + [259] phi() + [260] call keyboard_event_pressed + [261] (byte) keyboard_event_pressed::return#0 ← (byte) keyboard_event_pressed::return#11 to:keyboard_event_scan::@26 keyboard_event_scan::@26: scope:[keyboard_event_scan] from keyboard_event_scan::@20 - [261] (byte~) keyboard_event_scan::$14 ← (byte) keyboard_event_pressed::return#0 - [262] if((byte~) keyboard_event_scan::$14==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@9 + [262] (byte~) keyboard_event_scan::$14 ← (byte) keyboard_event_pressed::return#0 + [263] if((byte~) keyboard_event_scan::$14==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@9 to:keyboard_event_scan::@21 keyboard_event_scan::@21: scope:[keyboard_event_scan] from keyboard_event_scan::@26 - [263] phi() + [264] phi() to:keyboard_event_scan::@9 keyboard_event_scan::@9: scope:[keyboard_event_scan] from keyboard_event_scan::@21 keyboard_event_scan::@26 - [264] phi() - [265] call keyboard_event_pressed - [266] (byte) keyboard_event_pressed::return#1 ← (byte) keyboard_event_pressed::return#11 + [265] phi() + [266] call keyboard_event_pressed + [267] (byte) keyboard_event_pressed::return#1 ← (byte) keyboard_event_pressed::return#11 to:keyboard_event_scan::@27 keyboard_event_scan::@27: scope:[keyboard_event_scan] from keyboard_event_scan::@9 - [267] (byte~) keyboard_event_scan::$18 ← (byte) keyboard_event_pressed::return#1 - [268] if((byte~) keyboard_event_scan::$18==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@10 + [268] (byte~) keyboard_event_scan::$18 ← (byte) keyboard_event_pressed::return#1 + [269] if((byte~) keyboard_event_scan::$18==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@10 to:keyboard_event_scan::@22 keyboard_event_scan::@22: scope:[keyboard_event_scan] from keyboard_event_scan::@27 - [269] phi() + [270] phi() to:keyboard_event_scan::@10 keyboard_event_scan::@10: scope:[keyboard_event_scan] from keyboard_event_scan::@22 keyboard_event_scan::@27 - [270] phi() - [271] call keyboard_event_pressed - [272] (byte) keyboard_event_pressed::return#2 ← (byte) keyboard_event_pressed::return#11 + [271] phi() + [272] call keyboard_event_pressed + [273] (byte) keyboard_event_pressed::return#2 ← (byte) keyboard_event_pressed::return#11 to:keyboard_event_scan::@28 keyboard_event_scan::@28: scope:[keyboard_event_scan] from keyboard_event_scan::@10 - [273] (byte~) keyboard_event_scan::$22 ← (byte) keyboard_event_pressed::return#2 - [274] if((byte~) keyboard_event_scan::$22==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@11 + [274] (byte~) keyboard_event_scan::$22 ← (byte) keyboard_event_pressed::return#2 + [275] if((byte~) keyboard_event_scan::$22==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@11 to:keyboard_event_scan::@23 keyboard_event_scan::@23: scope:[keyboard_event_scan] from keyboard_event_scan::@28 - [275] phi() + [276] phi() to:keyboard_event_scan::@11 keyboard_event_scan::@11: scope:[keyboard_event_scan] from keyboard_event_scan::@23 keyboard_event_scan::@28 - [276] phi() - [277] call keyboard_event_pressed - [278] (byte) keyboard_event_pressed::return#10 ← (byte) keyboard_event_pressed::return#11 + [277] phi() + [278] call keyboard_event_pressed + [279] (byte) keyboard_event_pressed::return#10 ← (byte) keyboard_event_pressed::return#11 to:keyboard_event_scan::@29 keyboard_event_scan::@29: scope:[keyboard_event_scan] from keyboard_event_scan::@11 - [279] (byte~) keyboard_event_scan::$26 ← (byte) keyboard_event_pressed::return#10 - [280] if((byte~) keyboard_event_scan::$26==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@return + [280] (byte~) keyboard_event_scan::$26 ← (byte) keyboard_event_pressed::return#10 + [281] if((byte~) keyboard_event_scan::$26==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@return to:keyboard_event_scan::@24 keyboard_event_scan::@24: scope:[keyboard_event_scan] from keyboard_event_scan::@29 - [281] phi() + [282] phi() to:keyboard_event_scan::@return keyboard_event_scan::@return: scope:[keyboard_event_scan] from keyboard_event_scan::@24 keyboard_event_scan::@29 - [282] return + [283] return to:@return keyboard_event_scan::@4: scope:[keyboard_event_scan] from keyboard_event_scan::@25 keyboard_event_scan::@5 - [283] (byte) keyboard_events_size#10 ← phi( keyboard_event_scan::@25/(byte) keyboard_events_size#29 keyboard_event_scan::@5/(byte) keyboard_events_size#30 ) - [283] (byte) keyboard_event_scan::keycode#10 ← phi( keyboard_event_scan::@25/(byte) keyboard_event_scan::keycode#11 keyboard_event_scan::@5/(byte) keyboard_event_scan::keycode#15 ) - [283] (byte) keyboard_event_scan::col#2 ← phi( keyboard_event_scan::@25/(byte/signed byte/word/signed word/dword/signed dword) 0 keyboard_event_scan::@5/(byte) keyboard_event_scan::col#1 ) - [284] (byte~) keyboard_event_scan::$3 ← (byte) keyboard_event_scan::row_scan#0 ^ *((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2) - [285] (byte~) keyboard_event_scan::$4 ← (byte~) keyboard_event_scan::$3 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_event_scan::col#2) - [286] if((byte~) keyboard_event_scan::$4==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@5 + [284] (byte) keyboard_events_size#10 ← phi( keyboard_event_scan::@25/(byte) keyboard_events_size#29 keyboard_event_scan::@5/(byte) keyboard_events_size#30 ) + [284] (byte) keyboard_event_scan::keycode#10 ← phi( keyboard_event_scan::@25/(byte) keyboard_event_scan::keycode#11 keyboard_event_scan::@5/(byte) keyboard_event_scan::keycode#15 ) + [284] (byte) keyboard_event_scan::col#2 ← phi( keyboard_event_scan::@25/(byte/signed byte/word/signed word/dword/signed dword) 0 keyboard_event_scan::@5/(byte) keyboard_event_scan::col#1 ) + [285] (byte~) keyboard_event_scan::$3 ← (byte) keyboard_event_scan::row_scan#0 ^ *((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2) + [286] (byte~) keyboard_event_scan::$4 ← (byte~) keyboard_event_scan::$3 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_event_scan::col#2) + [287] if((byte~) keyboard_event_scan::$4==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@5 to:keyboard_event_scan::@15 keyboard_event_scan::@15: scope:[keyboard_event_scan] from keyboard_event_scan::@4 - [287] if((byte) keyboard_events_size#10==(byte/signed byte/word/signed word/dword/signed dword) 8) goto keyboard_event_scan::@5 + [288] if((byte) keyboard_events_size#10==(byte/signed byte/word/signed word/dword/signed dword) 8) goto keyboard_event_scan::@5 to:keyboard_event_scan::@16 keyboard_event_scan::@16: scope:[keyboard_event_scan] from keyboard_event_scan::@15 - [288] (byte) keyboard_event_scan::event_type#0 ← (byte) keyboard_event_scan::row_scan#0 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_event_scan::col#2) - [289] if((byte) keyboard_event_scan::event_type#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@7 + [289] (byte) keyboard_event_scan::event_type#0 ← (byte) keyboard_event_scan::row_scan#0 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_event_scan::col#2) + [290] if((byte) keyboard_event_scan::event_type#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@7 to:keyboard_event_scan::@17 keyboard_event_scan::@17: scope:[keyboard_event_scan] from keyboard_event_scan::@16 - [290] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte) keyboard_event_scan::keycode#10 - [291] (byte) keyboard_events_size#2 ← ++ (byte) keyboard_events_size#10 + [291] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte) keyboard_event_scan::keycode#10 + [292] (byte) keyboard_events_size#2 ← ++ (byte) keyboard_events_size#10 to:keyboard_event_scan::@5 keyboard_event_scan::@5: scope:[keyboard_event_scan] from keyboard_event_scan::@15 keyboard_event_scan::@17 keyboard_event_scan::@4 keyboard_event_scan::@7 - [292] (byte) keyboard_events_size#30 ← phi( keyboard_event_scan::@17/(byte) keyboard_events_size#2 keyboard_event_scan::@4/(byte) keyboard_events_size#10 keyboard_event_scan::@15/(byte) keyboard_events_size#10 keyboard_event_scan::@7/(byte) keyboard_events_size#1 ) - [293] (byte) keyboard_event_scan::keycode#15 ← ++ (byte) keyboard_event_scan::keycode#10 - [294] (byte) keyboard_event_scan::col#1 ← ++ (byte) keyboard_event_scan::col#2 - [295] if((byte) keyboard_event_scan::col#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto keyboard_event_scan::@4 + [293] (byte) keyboard_events_size#30 ← phi( keyboard_event_scan::@17/(byte) keyboard_events_size#2 keyboard_event_scan::@4/(byte) keyboard_events_size#10 keyboard_event_scan::@15/(byte) keyboard_events_size#10 keyboard_event_scan::@7/(byte) keyboard_events_size#1 ) + [294] (byte) keyboard_event_scan::keycode#15 ← ++ (byte) keyboard_event_scan::keycode#10 + [295] (byte) keyboard_event_scan::col#1 ← ++ (byte) keyboard_event_scan::col#2 + [296] if((byte) keyboard_event_scan::col#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto keyboard_event_scan::@4 to:keyboard_event_scan::@19 keyboard_event_scan::@19: scope:[keyboard_event_scan] from keyboard_event_scan::@5 - [296] *((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2) ← (byte) keyboard_event_scan::row_scan#0 + [297] *((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2) ← (byte) keyboard_event_scan::row_scan#0 to:keyboard_event_scan::@3 keyboard_event_scan::@7: scope:[keyboard_event_scan] from keyboard_event_scan::@16 - [297] (byte/word/dword~) keyboard_event_scan::$11 ← (byte) keyboard_event_scan::keycode#10 | (byte/signed byte/word/signed word/dword/signed dword) 64 - [298] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte/word/dword~) keyboard_event_scan::$11 - [299] (byte) keyboard_events_size#1 ← ++ (byte) keyboard_events_size#10 + [298] (byte/word/dword~) keyboard_event_scan::$11 ← (byte) keyboard_event_scan::keycode#10 | (byte/signed byte/word/signed word/dword/signed dword) 64 + [299] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte/word/dword~) keyboard_event_scan::$11 + [300] (byte) keyboard_events_size#1 ← ++ (byte) keyboard_events_size#10 to:keyboard_event_scan::@5 keyboard_matrix_read: scope:[keyboard_matrix_read] from keyboard_event_scan::@1 - [300] *((const byte*) CIA1_PORT_A#0) ← *((const byte[8]) keyboard_matrix_row_bitmask#0 + (byte) keyboard_matrix_read::rowid#0) - [301] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) + [301] *((const byte*) CIA1_PORT_A#0) ← *((const byte[8]) keyboard_matrix_row_bitmask#0 + (byte) keyboard_matrix_read::rowid#0) + [302] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) to:keyboard_matrix_read::@return keyboard_matrix_read::@return: scope:[keyboard_matrix_read] from keyboard_matrix_read - [302] return + [303] return to:@return tables_init: scope:[tables_init] from main::@22 - [303] phi() + [304] phi() to:tables_init::@1 tables_init::@1: scope:[tables_init] from tables_init tables_init::@1 - [304] (byte) tables_init::idx#2 ← phi( tables_init/(byte/signed byte/word/signed word/dword/signed dword) 0 tables_init::@1/(byte) tables_init::idx#1 ) - [304] (byte*) tables_init::pli#2 ← phi( tables_init/(const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 tables_init::@1/(byte*) tables_init::pli#1 ) - [304] (byte) tables_init::j#2 ← phi( tables_init/(byte/signed byte/word/signed word/dword/signed dword) 0 tables_init::@1/(byte) tables_init::j#1 ) - [305] (byte~) tables_init::$1 ← (byte) tables_init::j#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 - [306] *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte~) tables_init::$1) ← (byte*) tables_init::pli#2 - [307] *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0 + (byte) tables_init::j#2) ← (byte) tables_init::idx#2 - [308] (byte*) tables_init::pli#1 ← (byte*) tables_init::pli#2 + (const byte) PLAYFIELD_COLS#0 - [309] (byte) tables_init::idx#1 ← (byte) tables_init::idx#2 + (const byte) PLAYFIELD_COLS#0 - [310] (byte) tables_init::j#1 ← ++ (byte) tables_init::j#2 - [311] if((byte) tables_init::j#1!=(const byte) PLAYFIELD_LINES#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto tables_init::@1 + [305] (byte) tables_init::idx#2 ← phi( tables_init/(byte/signed byte/word/signed word/dword/signed dword) 0 tables_init::@1/(byte) tables_init::idx#1 ) + [305] (byte*) tables_init::pli#2 ← phi( tables_init/(const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 tables_init::@1/(byte*) tables_init::pli#1 ) + [305] (byte) tables_init::j#2 ← phi( tables_init/(byte/signed byte/word/signed word/dword/signed dword) 0 tables_init::@1/(byte) tables_init::j#1 ) + [306] (byte~) tables_init::$1 ← (byte) tables_init::j#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 + [307] *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte~) tables_init::$1) ← (byte*) tables_init::pli#2 + [308] *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0 + (byte) tables_init::j#2) ← (byte) tables_init::idx#2 + [309] (byte*) tables_init::pli#1 ← (byte*) tables_init::pli#2 + (const byte) PLAYFIELD_COLS#0 + [310] (byte) tables_init::idx#1 ← (byte) tables_init::idx#2 + (const byte) PLAYFIELD_COLS#0 + [311] (byte) tables_init::j#1 ← ++ (byte) tables_init::j#2 + [312] if((byte) tables_init::j#1!=(const byte) PLAYFIELD_LINES#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto tables_init::@1 to:tables_init::@2 tables_init::@2: scope:[tables_init] from tables_init::@1 - [312] *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0+(const byte) PLAYFIELD_LINES#0) ← (const byte) PLAYFIELD_COLS#0*(const byte) PLAYFIELD_LINES#0 + [313] *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0+(const byte) PLAYFIELD_LINES#0) ← (const byte) PLAYFIELD_COLS#0*(const byte) PLAYFIELD_LINES#0 to:tables_init::@return tables_init::@return: scope:[tables_init] from tables_init::@2 - [313] return + [314] return to:@return render_init: scope:[render_init] from main::@21 - [314] phi() - [315] call fill + [315] phi() + [316] call fill to:render_init::@7 render_init::@7: scope:[render_init] from render_init - [316] phi() - [317] call fill + [317] phi() + [318] call fill to:render_init::@1 render_init::@1: scope:[render_init] from render_init::@1 render_init::@7 - [318] (byte*) render_init::li#2 ← phi( render_init::@1/(byte*) render_init::li#1 render_init::@7/(const byte*) COLS#0+(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 15 ) - [318] (byte) render_init::i#2 ← phi( render_init::@1/(byte) render_init::i#1 render_init::@7/(byte/signed byte/word/signed word/dword/signed dword) 0 ) - [319] (byte~) render_init::$5 ← (byte) render_init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 - [320] *((const byte*[PLAYFIELD_LINES#0+3]) screen_lines#0 + (byte~) render_init::$5) ← (byte*) render_init::li#2 - [321] (byte*) render_init::li#1 ← (byte*) render_init::li#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 - [322] (byte) render_init::i#1 ← ++ (byte) render_init::i#2 - [323] if((byte) render_init::i#1!=(const byte) PLAYFIELD_LINES#0+(byte/signed byte/word/signed word/dword/signed dword) 2+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_init::@1 + [319] (byte*) render_init::li#2 ← phi( render_init::@1/(byte*) render_init::li#1 render_init::@7/(const byte*) COLS#0+(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 15 ) + [319] (byte) render_init::i#2 ← phi( render_init::@1/(byte) render_init::i#1 render_init::@7/(byte/signed byte/word/signed word/dword/signed dword) 0 ) + [320] (byte~) render_init::$5 ← (byte) render_init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 + [321] *((const byte*[PLAYFIELD_LINES#0+3]) screen_lines#0 + (byte~) render_init::$5) ← (byte*) render_init::li#2 + [322] (byte*) render_init::li#1 ← (byte*) render_init::li#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 + [323] (byte) render_init::i#1 ← ++ (byte) render_init::i#2 + [324] if((byte) render_init::i#1!=(const byte) PLAYFIELD_LINES#0+(byte/signed byte/word/signed word/dword/signed dword) 2+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_init::@1 to:render_init::@2 render_init::@2: scope:[render_init] from render_init::@1 render_init::@5 - [324] (byte) render_init::l#4 ← phi( render_init::@1/(byte/signed byte/word/signed word/dword/signed dword) 0 render_init::@5/(byte) render_init::l#1 ) - [324] (byte*) render_init::line#4 ← phi( render_init::@1/(const byte*) COLS#0+(byte/signed byte/word/signed word/dword/signed dword) 14 render_init::@5/(byte*) render_init::line#1 ) + [325] (byte) render_init::l#4 ← phi( render_init::@1/(byte/signed byte/word/signed word/dword/signed dword) 0 render_init::@5/(byte) render_init::l#1 ) + [325] (byte*) render_init::line#4 ← phi( render_init::@1/(const byte*) COLS#0+(byte/signed byte/word/signed word/dword/signed dword) 14 render_init::@5/(byte*) render_init::line#1 ) to:render_init::@3 render_init::@3: scope:[render_init] from render_init::@2 render_init::@3 - [325] (byte) render_init::c#2 ← phi( render_init::@2/(byte/signed byte/word/signed word/dword/signed dword) 0 render_init::@3/(byte) render_init::c#1 ) - [326] (byte*~) render_init::$10 ← (byte*) render_init::line#4 + (byte) render_init::c#2 - [327] *((byte*~) render_init::$10) ← (const byte) DARK_GREY#0 - [328] (byte) render_init::c#1 ← ++ (byte) render_init::c#2 - [329] if((byte) render_init::c#1!=(const byte) PLAYFIELD_COLS#0+(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_init::@3 + [326] (byte) render_init::c#2 ← phi( render_init::@2/(byte/signed byte/word/signed word/dword/signed dword) 0 render_init::@3/(byte) render_init::c#1 ) + [327] (byte*~) render_init::$10 ← (byte*) render_init::line#4 + (byte) render_init::c#2 + [328] *((byte*~) render_init::$10) ← (const byte) DARK_GREY#0 + [329] (byte) render_init::c#1 ← ++ (byte) render_init::c#2 + [330] if((byte) render_init::c#1!=(const byte) PLAYFIELD_COLS#0+(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_init::@3 to:render_init::@5 render_init::@5: scope:[render_init] from render_init::@3 - [330] (byte*) render_init::line#1 ← (byte*) render_init::line#4 + (byte/signed byte/word/signed word/dword/signed dword) 40 - [331] (byte) render_init::l#1 ← ++ (byte) render_init::l#4 - [332] if((byte) render_init::l#1!=(const byte) PLAYFIELD_LINES#0+(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_init::@2 + [331] (byte*) render_init::line#1 ← (byte*) render_init::line#4 + (byte/signed byte/word/signed word/dword/signed dword) 40 + [332] (byte) render_init::l#1 ← ++ (byte) render_init::l#4 + [333] if((byte) render_init::l#1!=(const byte) PLAYFIELD_LINES#0+(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_init::@2 to:render_init::@return render_init::@return: scope:[render_init] from render_init::@5 - [333] return + [334] return to:@return fill: scope:[fill] from render_init render_init::@7 - [334] (byte) fill::val#3 ← phi( render_init/(byte/word/signed word/dword/signed dword) 160 render_init::@7/(const byte) BLACK#0 ) - [334] (byte*) fill::addr#0 ← phi( render_init/(const byte*) SCREEN#0 render_init::@7/(const byte*) COLS#0 ) - [335] (byte*) fill::end#0 ← (byte*) fill::addr#0 + (word/signed word/dword/signed dword) 1000 + [335] (byte) fill::val#3 ← phi( render_init/(byte/word/signed word/dword/signed dword) 160 render_init::@7/(const byte) BLACK#0 ) + [335] (byte*) fill::addr#0 ← phi( render_init/(const byte*) SCREEN#0 render_init::@7/(const byte*) COLS#0 ) + [336] (byte*) fill::end#0 ← (byte*) fill::addr#0 + (word/signed word/dword/signed dword) 1000 to:fill::@1 fill::@1: scope:[fill] from fill fill::@1 - [336] (byte*) fill::addr#2 ← phi( fill/(byte*) fill::addr#0 fill::@1/(byte*) fill::addr#1 ) - [337] *((byte*) fill::addr#2) ← (byte) fill::val#3 - [338] (byte*) fill::addr#1 ← ++ (byte*) fill::addr#2 - [339] if((byte*) fill::addr#1!=(byte*) fill::end#0) goto fill::@1 + [337] (byte*) fill::addr#2 ← phi( fill/(byte*) fill::addr#0 fill::@1/(byte*) fill::addr#1 ) + [338] *((byte*) fill::addr#2) ← (byte) fill::val#3 + [339] (byte*) fill::addr#1 ← ++ (byte*) fill::addr#2 + [340] if((byte*) fill::addr#1!=(byte*) fill::end#0) goto fill::@1 to:fill::@return fill::@return: scope:[fill] from fill::@1 - [340] return + [341] return to:@return sid_rnd_init: scope:[sid_rnd_init] from main - [341] *((const word*) SID_VOICE3_FREQ#0) ← (word/dword/signed dword) 65535 - [342] *((const byte*) SID_VOICE3_CONTROL#0) ← (const byte) SID_CONTROL_NOISE#0 + [342] *((const word*) SID_VOICE3_FREQ#0) ← (word/dword/signed dword) 65535 + [343] *((const byte*) SID_VOICE3_CONTROL#0) ← (const byte) SID_CONTROL_NOISE#0 to:sid_rnd_init::@return sid_rnd_init::@return: scope:[sid_rnd_init] from sid_rnd_init - [343] return + [344] return to:@return VARIABLE REGISTER WEIGHTS (byte) BLACK (byte*) BORDERCOL +(byte*) CHARSET (byte*) CIA1_PORT_A (byte*) CIA1_PORT_B (byte) COLLISION_BOTTOM @@ -6340,6 +6356,7 @@ INITIAL ASM .const COLLISION_LEFT = 4 .const COLLISION_RIGHT = 8 .label SCREEN = $400 + .label CHARSET = $2000 .label keyboard_events_size = $3a .label current_ypos = 2 .label current_xpos = $27 @@ -6365,21 +6382,25 @@ INITIAL ASM .label current_piece_75 = $15 //SEG2 @begin bbegin: -//SEG3 [1] phi from @begin to @25 [phi:@begin->@25] -b25_from_bbegin: + jmp b22 +//SEG3 @22 +b22: +//SEG4 kickasm(location (const byte*) CHARSET#0) {{ .var charset = LoadPicture("charset.png", List().add($000000, $ffffff, $523fa0, $77c1c9)) .for (var c=0; c<16; c++) .for (var y=0;y<8; y++) .byte charset.getMulticolorByte(c,y) }} +//SEG5 [2] phi from @22 to @25 [phi:@22->@25] +b25_from_b22: jmp b25 -//SEG4 @25 +//SEG6 @25 b25: -//SEG5 [2] call main -//SEG6 [4] phi from @25 to main [phi:@25->main] +//SEG7 [3] call main +//SEG8 [5] phi from @25 to main [phi:@25->main] main_from_b25: jsr main -//SEG7 [3] phi from @25 to @end [phi:@25->@end] +//SEG9 [4] phi from @25 to @end [phi:@25->@end] bend_from_b25: jmp bend -//SEG8 @end +//SEG10 @end bend: -//SEG9 main +//SEG11 main main: { .label _10 = $4d .label _11 = $51 @@ -6388,248 +6409,248 @@ main: { .label render = $4e .label render_2 = $52 .label render_3 = $56 - //SEG10 [5] call sid_rnd_init + //SEG12 [6] call sid_rnd_init jsr sid_rnd_init jmp b21 - //SEG11 main::@21 + //SEG13 main::@21 b21: - //SEG12 asm { sei } + //SEG14 asm { sei } sei - //SEG13 [7] call render_init - //SEG14 [314] phi from main::@21 to render_init [phi:main::@21->render_init] + //SEG15 [8] call render_init + //SEG16 [315] phi from main::@21 to render_init [phi:main::@21->render_init] render_init_from_b21: jsr render_init - //SEG15 [8] phi from main::@21 to main::@22 [phi:main::@21->main::@22] + //SEG17 [9] phi from main::@21 to main::@22 [phi:main::@21->main::@22] b22_from_b21: jmp b22 - //SEG16 main::@22 + //SEG18 main::@22 b22: - //SEG17 [9] call tables_init - //SEG18 [303] phi from main::@22 to tables_init [phi:main::@22->tables_init] + //SEG19 [10] call tables_init + //SEG20 [304] phi from main::@22 to tables_init [phi:main::@22->tables_init] tables_init_from_b22: jsr tables_init - //SEG19 [10] phi from main::@22 to main::@23 [phi:main::@22->main::@23] + //SEG21 [11] phi from main::@22 to main::@23 [phi:main::@22->main::@23] b23_from_b22: jmp b23 - //SEG20 main::@23 + //SEG22 main::@23 b23: - //SEG21 [11] call spawn_current - //SEG22 [183] phi from main::@23 to spawn_current [phi:main::@23->spawn_current] + //SEG23 [12] call spawn_current + //SEG24 [184] phi from main::@23 to spawn_current [phi:main::@23->spawn_current] spawn_current_from_b23: jsr spawn_current - //SEG23 [12] phi from main::@23 to main::@24 [phi:main::@23->main::@24] + //SEG25 [13] phi from main::@23 to main::@24 [phi:main::@23->main::@24] b24_from_b23: jmp b24 - //SEG24 main::@24 + //SEG26 main::@24 b24: - //SEG25 [13] call render_playfield - //SEG26 [71] phi from main::@24 to render_playfield [phi:main::@24->render_playfield] + //SEG27 [14] call render_playfield + //SEG28 [72] phi from main::@24 to render_playfield [phi:main::@24->render_playfield] render_playfield_from_b24: jsr render_playfield jmp b25 - //SEG27 main::@25 + //SEG29 main::@25 b25: - //SEG28 [14] (byte*~) current_piece_gfx#87 ← (byte*) current_piece_gfx#10 -- pbuz1=pbuz2 + //SEG30 [15] (byte*~) current_piece_gfx#87 ← (byte*) current_piece_gfx#10 -- pbuz1=pbuz2 lda current_piece_gfx sta current_piece_gfx_87 lda current_piece_gfx+1 sta current_piece_gfx_87+1 - //SEG29 [15] (byte~) current_piece_color#75 ← (byte) current_piece_color#15 -- vbuz1=vbuz2 + //SEG31 [16] (byte~) current_piece_color#75 ← (byte) current_piece_color#15 -- vbuz1=vbuz2 lda current_piece_color sta current_piece_color_75 - //SEG30 [16] call render_current - //SEG31 [51] phi from main::@25 to render_current [phi:main::@25->render_current] + //SEG32 [17] call render_current + //SEG33 [52] phi from main::@25 to render_current [phi:main::@25->render_current] render_current_from_b25: - //SEG32 [51] phi (byte) current_piece_color#67 = (byte~) current_piece_color#75 [phi:main::@25->render_current#0] -- register_copy - //SEG33 [51] phi (byte*) current_piece_gfx#64 = (byte*~) current_piece_gfx#87 [phi:main::@25->render_current#1] -- register_copy - //SEG34 [51] phi (byte) current_xpos#63 = (byte/signed byte/word/signed word/dword/signed dword) 3 [phi:main::@25->render_current#2] -- vbuz1=vbuc1 + //SEG34 [52] phi (byte) current_piece_color#67 = (byte~) current_piece_color#75 [phi:main::@25->render_current#0] -- register_copy + //SEG35 [52] phi (byte*) current_piece_gfx#64 = (byte*~) current_piece_gfx#87 [phi:main::@25->render_current#1] -- register_copy + //SEG36 [52] phi (byte) current_xpos#63 = (byte/signed byte/word/signed word/dword/signed dword) 3 [phi:main::@25->render_current#2] -- vbuz1=vbuc1 lda #3 sta current_xpos_63 - //SEG35 [51] phi (byte) current_ypos#22 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@25->render_current#3] -- vbuz1=vbuc1 + //SEG37 [52] phi (byte) current_ypos#22 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@25->render_current#3] -- vbuz1=vbuc1 lda #0 sta current_ypos_22 jsr render_current - //SEG36 [17] (byte*~) current_piece#71 ← (byte*)*((const word[]) PIECES#0 + (byte~) spawn_current::$3) -- pbuz1=pptc1_derefidx_vbuz2 + //SEG38 [18] (byte*~) current_piece#71 ← (byte*)*((const word[]) PIECES#0 + (byte~) spawn_current::$3) -- pbuz1=pptc1_derefidx_vbuz2 ldy spawn_current._3 lda PIECES,y sta current_piece lda PIECES+1,y sta current_piece+1 - //SEG37 [18] phi from main::@25 to main::@1 [phi:main::@25->main::@1] + //SEG39 [19] phi from main::@25 to main::@1 [phi:main::@25->main::@1] b1_from_b25: - //SEG38 [18] phi (byte) current_movedown_counter#15 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@25->main::@1#0] -- vbuz1=vbuc1 + //SEG40 [19] phi (byte) current_movedown_counter#15 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@25->main::@1#0] -- vbuz1=vbuc1 lda #0 sta current_movedown_counter - //SEG39 [18] phi (byte) keyboard_events_size#19 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@25->main::@1#1] -- vbuz1=vbuc1 + //SEG41 [19] phi (byte) keyboard_events_size#19 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@25->main::@1#1] -- vbuz1=vbuc1 lda #0 sta keyboard_events_size - //SEG40 [18] phi (byte) current_piece_color#11 = (byte) current_piece_color#15 [phi:main::@25->main::@1#2] -- register_copy - //SEG41 [18] phi (byte) current_ypos#12 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@25->main::@1#3] -- vbuz1=vbuc1 + //SEG42 [19] phi (byte) current_piece_color#11 = (byte) current_piece_color#15 [phi:main::@25->main::@1#2] -- register_copy + //SEG43 [19] phi (byte) current_ypos#12 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@25->main::@1#3] -- vbuz1=vbuc1 lda #0 sta current_ypos - //SEG42 [18] phi (byte) current_xpos#16 = (byte/signed byte/word/signed word/dword/signed dword) 3 [phi:main::@25->main::@1#4] -- vbuz1=vbuc1 + //SEG44 [19] phi (byte) current_xpos#16 = (byte/signed byte/word/signed word/dword/signed dword) 3 [phi:main::@25->main::@1#4] -- vbuz1=vbuc1 lda #3 sta current_xpos - //SEG43 [18] phi (byte*) current_piece_gfx#15 = (byte*) current_piece_gfx#10 [phi:main::@25->main::@1#5] -- register_copy - //SEG44 [18] phi (byte) current_orientation#15 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@25->main::@1#6] -- vbuz1=vbuc1 + //SEG45 [19] phi (byte*) current_piece_gfx#15 = (byte*) current_piece_gfx#10 [phi:main::@25->main::@1#5] -- register_copy + //SEG46 [19] phi (byte) current_orientation#15 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@25->main::@1#6] -- vbuz1=vbuc1 lda #0 sta current_orientation - //SEG45 [18] phi (byte*) current_piece#11 = (byte*~) current_piece#71 [phi:main::@25->main::@1#7] -- register_copy + //SEG47 [19] phi (byte*) current_piece#11 = (byte*~) current_piece#71 [phi:main::@25->main::@1#7] -- register_copy jmp b1 - //SEG46 main::@1 + //SEG48 main::@1 b1: jmp b4 - //SEG47 main::@4 + //SEG49 main::@4 b4: - //SEG48 [19] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@4 -- _deref_pbuc1_neq_vbuc2_then_la1 + //SEG50 [20] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@4 -- _deref_pbuc1_neq_vbuc2_then_la1 lda RASTER cmp #$ff bne b4 jmp b7 - //SEG49 main::@7 + //SEG51 main::@7 b7: - //SEG50 [20] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 254) goto main::@7 -- _deref_pbuc1_neq_vbuc2_then_la1 + //SEG52 [21] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 254) goto main::@7 -- _deref_pbuc1_neq_vbuc2_then_la1 lda RASTER cmp #$fe bne b7 jmp b9 - //SEG51 main::@9 + //SEG53 main::@9 b9: - //SEG52 [21] *((const byte*) BORDERCOL#0) ← ++ *((const byte*) BORDERCOL#0) -- _deref_pbuc1=_inc__deref_pbuc1 + //SEG54 [22] *((const byte*) BORDERCOL#0) ← ++ *((const byte*) BORDERCOL#0) -- _deref_pbuc1=_inc__deref_pbuc1 inc BORDERCOL - //SEG53 [22] call keyboard_event_scan - //SEG54 [247] phi from main::@9 to keyboard_event_scan [phi:main::@9->keyboard_event_scan] + //SEG55 [23] call keyboard_event_scan + //SEG56 [248] phi from main::@9 to keyboard_event_scan [phi:main::@9->keyboard_event_scan] keyboard_event_scan_from_b9: jsr keyboard_event_scan - //SEG55 [23] phi from main::@9 to main::@27 [phi:main::@9->main::@27] + //SEG57 [24] phi from main::@9 to main::@27 [phi:main::@9->main::@27] b27_from_b9: jmp b27 - //SEG56 main::@27 + //SEG58 main::@27 b27: - //SEG57 [24] call keyboard_event_get + //SEG59 [25] call keyboard_event_get jsr keyboard_event_get - //SEG58 [25] (byte) keyboard_event_get::return#3 ← (byte) keyboard_event_get::return#2 -- vbuz1=vbuz2 + //SEG60 [26] (byte) keyboard_event_get::return#3 ← (byte) keyboard_event_get::return#2 -- vbuz1=vbuz2 lda keyboard_event_get.return sta keyboard_event_get.return_3 jmp b28 - //SEG59 main::@28 + //SEG61 main::@28 b28: - //SEG60 [26] (byte) main::key_event#0 ← (byte) keyboard_event_get::return#3 -- vbuz1=vbuz2 + //SEG62 [27] (byte) main::key_event#0 ← (byte) keyboard_event_get::return#3 -- vbuz1=vbuz2 lda keyboard_event_get.return_3 sta key_event - //SEG61 [27] (byte) play_move_down::key_event#0 ← (byte) main::key_event#0 -- vbuz1=vbuz2 + //SEG63 [28] (byte) play_move_down::key_event#0 ← (byte) main::key_event#0 -- vbuz1=vbuz2 lda key_event sta play_move_down.key_event - //SEG62 [28] call play_move_down + //SEG64 [29] call play_move_down jsr play_move_down - //SEG63 [29] (byte) play_move_down::return#0 ← (byte) play_move_down::return#3 -- vbuz1=vbuz2 + //SEG65 [30] (byte) play_move_down::return#0 ← (byte) play_move_down::return#3 -- vbuz1=vbuz2 lda play_move_down.return_3 sta play_move_down.return jmp b29 - //SEG64 main::@29 + //SEG66 main::@29 b29: - //SEG65 [30] (byte~) main::$10 ← (byte) play_move_down::return#0 -- vbuz1=vbuz2 + //SEG67 [31] (byte~) main::$10 ← (byte) play_move_down::return#0 -- vbuz1=vbuz2 lda play_move_down.return sta _10 - //SEG66 [31] (byte) main::render#1 ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte~) main::$10 -- vbuz1=vbuc1_plus_vbuz2 + //SEG68 [32] (byte) main::render#1 ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte~) main::$10 -- vbuz1=vbuc1_plus_vbuz2 lda #0 clc adc _10 sta render - //SEG67 [32] (byte) play_move_leftright::key_event#0 ← (byte) main::key_event#0 -- vbuz1=vbuz2 + //SEG69 [33] (byte) play_move_leftright::key_event#0 ← (byte) main::key_event#0 -- vbuz1=vbuz2 lda key_event sta play_move_leftright.key_event - //SEG68 [33] call play_move_leftright + //SEG70 [34] call play_move_leftright jsr play_move_leftright - //SEG69 [34] (byte) play_move_leftright::return#0 ← (byte) play_move_leftright::return#2 -- vbuz1=vbuz2 + //SEG71 [35] (byte) play_move_leftright::return#0 ← (byte) play_move_leftright::return#2 -- vbuz1=vbuz2 lda play_move_leftright.return_2 sta play_move_leftright.return jmp b30 - //SEG70 main::@30 + //SEG72 main::@30 b30: - //SEG71 [35] (byte~) main::$11 ← (byte) play_move_leftright::return#0 -- vbuz1=vbuz2 + //SEG73 [36] (byte~) main::$11 ← (byte) play_move_leftright::return#0 -- vbuz1=vbuz2 lda play_move_leftright.return sta _11 - //SEG72 [36] (byte) main::render#2 ← (byte) main::render#1 + (byte~) main::$11 -- vbuz1=vbuz2_plus_vbuz3 + //SEG74 [37] (byte) main::render#2 ← (byte) main::render#1 + (byte~) main::$11 -- vbuz1=vbuz2_plus_vbuz3 lda render clc adc _11 sta render_2 - //SEG73 [37] (byte) play_move_rotate::key_event#0 ← (byte) main::key_event#0 -- vbuz1=vbuz2 + //SEG75 [38] (byte) play_move_rotate::key_event#0 ← (byte) main::key_event#0 -- vbuz1=vbuz2 lda key_event sta play_move_rotate.key_event - //SEG74 [38] call play_move_rotate + //SEG76 [39] call play_move_rotate jsr play_move_rotate - //SEG75 [39] (byte) play_move_rotate::return#0 ← (byte) play_move_rotate::return#2 -- vbuz1=vbuz2 + //SEG77 [40] (byte) play_move_rotate::return#0 ← (byte) play_move_rotate::return#2 -- vbuz1=vbuz2 lda play_move_rotate.return_2 sta play_move_rotate.return jmp b31 - //SEG76 main::@31 + //SEG78 main::@31 b31: - //SEG77 [40] (byte~) main::$12 ← (byte) play_move_rotate::return#0 -- vbuz1=vbuz2 + //SEG79 [41] (byte~) main::$12 ← (byte) play_move_rotate::return#0 -- vbuz1=vbuz2 lda play_move_rotate.return sta _12 - //SEG78 [41] (byte) main::render#3 ← (byte) main::render#2 + (byte~) main::$12 -- vbuz1=vbuz2_plus_vbuz3 + //SEG80 [42] (byte) main::render#3 ← (byte) main::render#2 + (byte~) main::$12 -- vbuz1=vbuz2_plus_vbuz3 lda render_2 clc adc _12 sta render_3 - //SEG79 [42] if((byte) main::render#3==(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@10 -- vbuz1_eq_0_then_la1 + //SEG81 [43] if((byte) main::render#3==(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@10 -- vbuz1_eq_0_then_la1 lda render_3 cmp #0 beq b10 - //SEG80 [43] phi from main::@31 to main::@19 [phi:main::@31->main::@19] + //SEG82 [44] phi from main::@31 to main::@19 [phi:main::@31->main::@19] b19_from_b31: jmp b19 - //SEG81 main::@19 + //SEG83 main::@19 b19: - //SEG82 [44] call render_playfield - //SEG83 [71] phi from main::@19 to render_playfield [phi:main::@19->render_playfield] + //SEG84 [45] call render_playfield + //SEG85 [72] phi from main::@19 to render_playfield [phi:main::@19->render_playfield] render_playfield_from_b19: jsr render_playfield jmp b32 - //SEG84 main::@32 + //SEG86 main::@32 b32: - //SEG85 [45] (byte~) current_ypos#71 ← (byte) current_ypos#16 -- vbuz1=vbuz2 + //SEG87 [46] (byte~) current_ypos#71 ← (byte) current_ypos#16 -- vbuz1=vbuz2 lda current_ypos sta current_ypos_71 - //SEG86 [46] (byte~) current_xpos#96 ← (byte) current_xpos#23 -- vbuz1=vbuz2 + //SEG88 [47] (byte~) current_xpos#96 ← (byte) current_xpos#23 -- vbuz1=vbuz2 lda current_xpos sta current_xpos_96 - //SEG87 [47] (byte*~) current_piece_gfx#88 ← (byte*) current_piece_gfx#18 -- pbuz1=pbuz2 + //SEG89 [48] (byte*~) current_piece_gfx#88 ← (byte*) current_piece_gfx#18 -- pbuz1=pbuz2 lda current_piece_gfx sta current_piece_gfx_88 lda current_piece_gfx+1 sta current_piece_gfx_88+1 - //SEG88 [48] (byte~) current_piece_color#76 ← (byte) current_piece_color#13 -- vbuz1=vbuz2 + //SEG90 [49] (byte~) current_piece_color#76 ← (byte) current_piece_color#13 -- vbuz1=vbuz2 lda current_piece_color sta current_piece_color_76 - //SEG89 [49] call render_current - //SEG90 [51] phi from main::@32 to render_current [phi:main::@32->render_current] + //SEG91 [50] call render_current + //SEG92 [52] phi from main::@32 to render_current [phi:main::@32->render_current] render_current_from_b32: - //SEG91 [51] phi (byte) current_piece_color#67 = (byte~) current_piece_color#76 [phi:main::@32->render_current#0] -- register_copy - //SEG92 [51] phi (byte*) current_piece_gfx#64 = (byte*~) current_piece_gfx#88 [phi:main::@32->render_current#1] -- register_copy - //SEG93 [51] phi (byte) current_xpos#63 = (byte~) current_xpos#96 [phi:main::@32->render_current#2] -- register_copy - //SEG94 [51] phi (byte) current_ypos#22 = (byte~) current_ypos#71 [phi:main::@32->render_current#3] -- register_copy + //SEG93 [52] phi (byte) current_piece_color#67 = (byte~) current_piece_color#76 [phi:main::@32->render_current#0] -- register_copy + //SEG94 [52] phi (byte*) current_piece_gfx#64 = (byte*~) current_piece_gfx#88 [phi:main::@32->render_current#1] -- register_copy + //SEG95 [52] phi (byte) current_xpos#63 = (byte~) current_xpos#96 [phi:main::@32->render_current#2] -- register_copy + //SEG96 [52] phi (byte) current_ypos#22 = (byte~) current_ypos#71 [phi:main::@32->render_current#3] -- register_copy jsr render_current jmp b10 - //SEG95 main::@10 + //SEG97 main::@10 b10: - //SEG96 [50] *((const byte*) BORDERCOL#0) ← -- *((const byte*) BORDERCOL#0) -- _deref_pbuc1=_dec__deref_pbuc1 + //SEG98 [51] *((const byte*) BORDERCOL#0) ← -- *((const byte*) BORDERCOL#0) -- _deref_pbuc1=_dec__deref_pbuc1 dec BORDERCOL - //SEG97 [18] phi from main::@10 to main::@1 [phi:main::@10->main::@1] + //SEG99 [19] phi from main::@10 to main::@1 [phi:main::@10->main::@1] b1_from_b10: - //SEG98 [18] phi (byte) current_movedown_counter#15 = (byte) current_movedown_counter#12 [phi:main::@10->main::@1#0] -- register_copy - //SEG99 [18] phi (byte) keyboard_events_size#19 = (byte) keyboard_events_size#16 [phi:main::@10->main::@1#1] -- register_copy - //SEG100 [18] phi (byte) current_piece_color#11 = (byte) current_piece_color#13 [phi:main::@10->main::@1#2] -- register_copy - //SEG101 [18] phi (byte) current_ypos#12 = (byte) current_ypos#16 [phi:main::@10->main::@1#3] -- register_copy - //SEG102 [18] phi (byte) current_xpos#16 = (byte) current_xpos#23 [phi:main::@10->main::@1#4] -- register_copy - //SEG103 [18] phi (byte*) current_piece_gfx#15 = (byte*) current_piece_gfx#18 [phi:main::@10->main::@1#5] -- register_copy - //SEG104 [18] phi (byte) current_orientation#15 = (byte) current_orientation#23 [phi:main::@10->main::@1#6] -- register_copy - //SEG105 [18] phi (byte*) current_piece#11 = (byte*) current_piece#13 [phi:main::@10->main::@1#7] -- register_copy + //SEG100 [19] phi (byte) current_movedown_counter#15 = (byte) current_movedown_counter#12 [phi:main::@10->main::@1#0] -- register_copy + //SEG101 [19] phi (byte) keyboard_events_size#19 = (byte) keyboard_events_size#16 [phi:main::@10->main::@1#1] -- register_copy + //SEG102 [19] phi (byte) current_piece_color#11 = (byte) current_piece_color#13 [phi:main::@10->main::@1#2] -- register_copy + //SEG103 [19] phi (byte) current_ypos#12 = (byte) current_ypos#16 [phi:main::@10->main::@1#3] -- register_copy + //SEG104 [19] phi (byte) current_xpos#16 = (byte) current_xpos#23 [phi:main::@10->main::@1#4] -- register_copy + //SEG105 [19] phi (byte*) current_piece_gfx#15 = (byte*) current_piece_gfx#18 [phi:main::@10->main::@1#5] -- register_copy + //SEG106 [19] phi (byte) current_orientation#15 = (byte) current_orientation#23 [phi:main::@10->main::@1#6] -- register_copy + //SEG107 [19] phi (byte*) current_piece#11 = (byte*) current_piece#13 [phi:main::@10->main::@1#7] -- register_copy jmp b1 } -//SEG106 render_current +//SEG108 render_current render_current: { .label ypos2 = 9 .label l = $a @@ -6638,202 +6659,202 @@ render_current: { .label current_cell = $59 .label i = $b .label c = $d - //SEG107 [52] (byte) render_current::ypos2#0 ← (byte) current_ypos#22 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_rol_1 + //SEG109 [53] (byte) render_current::ypos2#0 ← (byte) current_ypos#22 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_rol_1 lda current_ypos_22 asl sta ypos2 - //SEG108 [53] phi from render_current to render_current::@1 [phi:render_current->render_current::@1] + //SEG110 [54] phi from render_current to render_current::@1 [phi:render_current->render_current::@1] b1_from_render_current: - //SEG109 [53] phi (byte) render_current::i#4 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_current->render_current::@1#0] -- vbuz1=vbuc1 + //SEG111 [54] phi (byte) render_current::i#4 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_current->render_current::@1#0] -- vbuz1=vbuc1 lda #0 sta i - //SEG110 [53] phi (byte) render_current::l#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_current->render_current::@1#1] -- vbuz1=vbuc1 + //SEG112 [54] phi (byte) render_current::l#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_current->render_current::@1#1] -- vbuz1=vbuc1 lda #0 sta l - //SEG111 [53] phi (byte) render_current::ypos2#2 = (byte) render_current::ypos2#0 [phi:render_current->render_current::@1#2] -- register_copy + //SEG113 [54] phi (byte) render_current::ypos2#2 = (byte) render_current::ypos2#0 [phi:render_current->render_current::@1#2] -- register_copy jmp b1 - //SEG112 [53] phi from render_current::@2 to render_current::@1 [phi:render_current::@2->render_current::@1] + //SEG114 [54] phi from render_current::@2 to render_current::@1 [phi:render_current::@2->render_current::@1] b1_from_b2: - //SEG113 [53] phi (byte) render_current::i#4 = (byte) render_current::i#8 [phi:render_current::@2->render_current::@1#0] -- register_copy - //SEG114 [53] phi (byte) render_current::l#3 = (byte) render_current::l#1 [phi:render_current::@2->render_current::@1#1] -- register_copy - //SEG115 [53] phi (byte) render_current::ypos2#2 = (byte) render_current::ypos2#1 [phi:render_current::@2->render_current::@1#2] -- register_copy + //SEG115 [54] phi (byte) render_current::i#4 = (byte) render_current::i#8 [phi:render_current::@2->render_current::@1#0] -- register_copy + //SEG116 [54] phi (byte) render_current::l#3 = (byte) render_current::l#1 [phi:render_current::@2->render_current::@1#1] -- register_copy + //SEG117 [54] phi (byte) render_current::ypos2#2 = (byte) render_current::ypos2#1 [phi:render_current::@2->render_current::@1#2] -- register_copy jmp b1 - //SEG116 render_current::@1 + //SEG118 render_current::@1 b1: - //SEG117 [54] if((byte) render_current::ypos2#2>=(byte/signed byte/word/signed word/dword/signed dword) 2*(const byte) PLAYFIELD_LINES#0) goto render_current::@2 -- vbuz1_ge_vbuc1_then_la1 + //SEG119 [55] if((byte) render_current::ypos2#2>=(byte/signed byte/word/signed word/dword/signed dword) 2*(const byte) PLAYFIELD_LINES#0) goto render_current::@2 -- vbuz1_ge_vbuc1_then_la1 lda ypos2 cmp #2*PLAYFIELD_LINES bcs b2_from_b1 jmp b6 - //SEG118 render_current::@6 + //SEG120 render_current::@6 b6: - //SEG119 [55] (byte*) render_current::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0+3]) screen_lines#0 + (byte) render_current::ypos2#2) -- pbuz1=pptc1_derefidx_vbuz2 + //SEG121 [56] (byte*) render_current::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0+3]) screen_lines#0 + (byte) render_current::ypos2#2) -- pbuz1=pptc1_derefidx_vbuz2 ldy ypos2 lda screen_lines,y sta screen_line lda screen_lines+1,y sta screen_line+1 - //SEG120 [56] (byte) render_current::xpos#0 ← (byte) current_xpos#63 -- vbuz1=vbuz2 + //SEG122 [57] (byte) render_current::xpos#0 ← (byte) current_xpos#63 -- vbuz1=vbuz2 lda current_xpos_63 sta xpos - //SEG121 [57] phi from render_current::@6 to render_current::@3 [phi:render_current::@6->render_current::@3] + //SEG123 [58] phi from render_current::@6 to render_current::@3 [phi:render_current::@6->render_current::@3] b3_from_b6: - //SEG122 [57] phi (byte) render_current::c#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_current::@6->render_current::@3#0] -- vbuz1=vbuc1 + //SEG124 [58] phi (byte) render_current::c#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_current::@6->render_current::@3#0] -- vbuz1=vbuc1 lda #0 sta c - //SEG123 [57] phi (byte) render_current::xpos#2 = (byte) render_current::xpos#0 [phi:render_current::@6->render_current::@3#1] -- register_copy - //SEG124 [57] phi (byte) render_current::i#2 = (byte) render_current::i#4 [phi:render_current::@6->render_current::@3#2] -- register_copy + //SEG125 [58] phi (byte) render_current::xpos#2 = (byte) render_current::xpos#0 [phi:render_current::@6->render_current::@3#1] -- register_copy + //SEG126 [58] phi (byte) render_current::i#2 = (byte) render_current::i#4 [phi:render_current::@6->render_current::@3#2] -- register_copy jmp b3 - //SEG125 [57] phi from render_current::@4 to render_current::@3 [phi:render_current::@4->render_current::@3] + //SEG127 [58] phi from render_current::@4 to render_current::@3 [phi:render_current::@4->render_current::@3] b3_from_b4: - //SEG126 [57] phi (byte) render_current::c#2 = (byte) render_current::c#1 [phi:render_current::@4->render_current::@3#0] -- register_copy - //SEG127 [57] phi (byte) render_current::xpos#2 = (byte) render_current::xpos#1 [phi:render_current::@4->render_current::@3#1] -- register_copy - //SEG128 [57] phi (byte) render_current::i#2 = (byte) render_current::i#1 [phi:render_current::@4->render_current::@3#2] -- register_copy + //SEG128 [58] phi (byte) render_current::c#2 = (byte) render_current::c#1 [phi:render_current::@4->render_current::@3#0] -- register_copy + //SEG129 [58] phi (byte) render_current::xpos#2 = (byte) render_current::xpos#1 [phi:render_current::@4->render_current::@3#1] -- register_copy + //SEG130 [58] phi (byte) render_current::i#2 = (byte) render_current::i#1 [phi:render_current::@4->render_current::@3#2] -- register_copy jmp b3 - //SEG129 render_current::@3 + //SEG131 render_current::@3 b3: - //SEG130 [58] (byte) render_current::current_cell#0 ← *((byte*) current_piece_gfx#64 + (byte) render_current::i#2) -- vbuz1=pbuz2_derefidx_vbuz3 + //SEG132 [59] (byte) render_current::current_cell#0 ← *((byte*) current_piece_gfx#64 + (byte) render_current::i#2) -- vbuz1=pbuz2_derefidx_vbuz3 ldy i lda (current_piece_gfx_64),y sta current_cell - //SEG131 [59] (byte) render_current::i#1 ← ++ (byte) render_current::i#2 -- vbuz1=_inc_vbuz1 + //SEG133 [60] (byte) render_current::i#1 ← ++ (byte) render_current::i#2 -- vbuz1=_inc_vbuz1 inc i - //SEG132 [60] if((byte) render_current::current_cell#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto render_current::@4 -- vbuz1_eq_0_then_la1 + //SEG134 [61] if((byte) render_current::current_cell#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto render_current::@4 -- vbuz1_eq_0_then_la1 lda current_cell cmp #0 beq b4 jmp b7 - //SEG133 render_current::@7 + //SEG135 render_current::@7 b7: - //SEG134 [61] if((byte) render_current::xpos#2>=(const byte) PLAYFIELD_COLS#0) goto render_current::@4 -- vbuz1_ge_vbuc1_then_la1 + //SEG136 [62] if((byte) render_current::xpos#2>=(const byte) PLAYFIELD_COLS#0) goto render_current::@4 -- vbuz1_ge_vbuc1_then_la1 lda xpos cmp #PLAYFIELD_COLS bcs b4 jmp b8 - //SEG135 render_current::@8 + //SEG137 render_current::@8 b8: - //SEG136 [62] *((byte*) render_current::screen_line#0 + (byte) render_current::xpos#2) ← (byte) current_piece_color#67 -- pbuz1_derefidx_vbuz2=vbuz3 + //SEG138 [63] *((byte*) render_current::screen_line#0 + (byte) render_current::xpos#2) ← (byte) current_piece_color#67 -- pbuz1_derefidx_vbuz2=vbuz3 lda current_piece_color_67 ldy xpos sta (screen_line),y jmp b4 - //SEG137 render_current::@4 + //SEG139 render_current::@4 b4: - //SEG138 [63] (byte) render_current::xpos#1 ← ++ (byte) render_current::xpos#2 -- vbuz1=_inc_vbuz1 + //SEG140 [64] (byte) render_current::xpos#1 ← ++ (byte) render_current::xpos#2 -- vbuz1=_inc_vbuz1 inc xpos - //SEG139 [64] (byte) render_current::c#1 ← ++ (byte) render_current::c#2 -- vbuz1=_inc_vbuz1 + //SEG141 [65] (byte) render_current::c#1 ← ++ (byte) render_current::c#2 -- vbuz1=_inc_vbuz1 inc c - //SEG140 [65] if((byte) render_current::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_current::@3 -- vbuz1_neq_vbuc1_then_la1 + //SEG142 [66] if((byte) render_current::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_current::@3 -- vbuz1_neq_vbuc1_then_la1 lda c cmp #4 bne b3_from_b4 - //SEG141 [66] phi from render_current::@1 render_current::@4 to render_current::@2 [phi:render_current::@1/render_current::@4->render_current::@2] + //SEG143 [67] phi from render_current::@1 render_current::@4 to render_current::@2 [phi:render_current::@1/render_current::@4->render_current::@2] b2_from_b1: b2_from_b4: - //SEG142 [66] phi (byte) render_current::i#8 = (byte) render_current::i#4 [phi:render_current::@1/render_current::@4->render_current::@2#0] -- register_copy + //SEG144 [67] phi (byte) render_current::i#8 = (byte) render_current::i#4 [phi:render_current::@1/render_current::@4->render_current::@2#0] -- register_copy jmp b2 - //SEG143 render_current::@2 + //SEG145 render_current::@2 b2: - //SEG144 [67] (byte) render_current::ypos2#1 ← (byte) render_current::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 -- vbuz1=vbuz1_plus_2 + //SEG146 [68] (byte) render_current::ypos2#1 ← (byte) render_current::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 -- vbuz1=vbuz1_plus_2 lda ypos2 clc adc #2 sta ypos2 - //SEG145 [68] (byte) render_current::l#1 ← ++ (byte) render_current::l#3 -- vbuz1=_inc_vbuz1 + //SEG147 [69] (byte) render_current::l#1 ← ++ (byte) render_current::l#3 -- vbuz1=_inc_vbuz1 inc l - //SEG146 [69] if((byte) render_current::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_current::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG148 [70] if((byte) render_current::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_current::@1 -- vbuz1_neq_vbuc1_then_la1 lda l cmp #4 bne b1_from_b2 jmp breturn - //SEG147 render_current::@return + //SEG149 render_current::@return breturn: - //SEG148 [70] return + //SEG150 [71] return rts } -//SEG149 render_playfield +//SEG151 render_playfield render_playfield: { .label _1 = $5a .label line = $10 .label i = $f .label c = $12 .label l = $e - //SEG150 [72] phi from render_playfield to render_playfield::@1 [phi:render_playfield->render_playfield::@1] + //SEG152 [73] phi from render_playfield to render_playfield::@1 [phi:render_playfield->render_playfield::@1] b1_from_render_playfield: - //SEG151 [72] phi (byte) render_playfield::i#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_playfield->render_playfield::@1#0] -- vbuz1=vbuc1 + //SEG153 [73] phi (byte) render_playfield::i#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_playfield->render_playfield::@1#0] -- vbuz1=vbuc1 lda #0 sta i - //SEG152 [72] phi (byte) render_playfield::l#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_playfield->render_playfield::@1#1] -- vbuz1=vbuc1 + //SEG154 [73] phi (byte) render_playfield::l#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_playfield->render_playfield::@1#1] -- vbuz1=vbuc1 lda #0 sta l jmp b1 - //SEG153 [72] phi from render_playfield::@3 to render_playfield::@1 [phi:render_playfield::@3->render_playfield::@1] + //SEG155 [73] phi from render_playfield::@3 to render_playfield::@1 [phi:render_playfield::@3->render_playfield::@1] b1_from_b3: - //SEG154 [72] phi (byte) render_playfield::i#3 = (byte) render_playfield::i#1 [phi:render_playfield::@3->render_playfield::@1#0] -- register_copy - //SEG155 [72] phi (byte) render_playfield::l#2 = (byte) render_playfield::l#1 [phi:render_playfield::@3->render_playfield::@1#1] -- register_copy + //SEG156 [73] phi (byte) render_playfield::i#3 = (byte) render_playfield::i#1 [phi:render_playfield::@3->render_playfield::@1#0] -- register_copy + //SEG157 [73] phi (byte) render_playfield::l#2 = (byte) render_playfield::l#1 [phi:render_playfield::@3->render_playfield::@1#1] -- register_copy jmp b1 - //SEG156 render_playfield::@1 + //SEG158 render_playfield::@1 b1: - //SEG157 [73] (byte~) render_playfield::$1 ← (byte) render_playfield::l#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_rol_1 + //SEG159 [74] (byte~) render_playfield::$1 ← (byte) render_playfield::l#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_rol_1 lda l asl sta _1 - //SEG158 [74] (byte*) render_playfield::line#0 ← *((const byte*[PLAYFIELD_LINES#0+3]) screen_lines#0 + (byte~) render_playfield::$1) -- pbuz1=pptc1_derefidx_vbuz2 + //SEG160 [75] (byte*) render_playfield::line#0 ← *((const byte*[PLAYFIELD_LINES#0+3]) screen_lines#0 + (byte~) render_playfield::$1) -- pbuz1=pptc1_derefidx_vbuz2 ldy _1 lda screen_lines,y sta line lda screen_lines+1,y sta line+1 - //SEG159 [75] phi from render_playfield::@1 to render_playfield::@2 [phi:render_playfield::@1->render_playfield::@2] + //SEG161 [76] phi from render_playfield::@1 to render_playfield::@2 [phi:render_playfield::@1->render_playfield::@2] b2_from_b1: - //SEG160 [75] phi (byte) render_playfield::c#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_playfield::@1->render_playfield::@2#0] -- vbuz1=vbuc1 + //SEG162 [76] phi (byte) render_playfield::c#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_playfield::@1->render_playfield::@2#0] -- vbuz1=vbuc1 lda #0 sta c - //SEG161 [75] phi (byte*) render_playfield::line#2 = (byte*) render_playfield::line#0 [phi:render_playfield::@1->render_playfield::@2#1] -- register_copy - //SEG162 [75] phi (byte) render_playfield::i#2 = (byte) render_playfield::i#3 [phi:render_playfield::@1->render_playfield::@2#2] -- register_copy + //SEG163 [76] phi (byte*) render_playfield::line#2 = (byte*) render_playfield::line#0 [phi:render_playfield::@1->render_playfield::@2#1] -- register_copy + //SEG164 [76] phi (byte) render_playfield::i#2 = (byte) render_playfield::i#3 [phi:render_playfield::@1->render_playfield::@2#2] -- register_copy jmp b2 - //SEG163 [75] phi from render_playfield::@2 to render_playfield::@2 [phi:render_playfield::@2->render_playfield::@2] + //SEG165 [76] phi from render_playfield::@2 to render_playfield::@2 [phi:render_playfield::@2->render_playfield::@2] b2_from_b2: - //SEG164 [75] phi (byte) render_playfield::c#2 = (byte) render_playfield::c#1 [phi:render_playfield::@2->render_playfield::@2#0] -- register_copy - //SEG165 [75] phi (byte*) render_playfield::line#2 = (byte*) render_playfield::line#1 [phi:render_playfield::@2->render_playfield::@2#1] -- register_copy - //SEG166 [75] phi (byte) render_playfield::i#2 = (byte) render_playfield::i#1 [phi:render_playfield::@2->render_playfield::@2#2] -- register_copy + //SEG166 [76] phi (byte) render_playfield::c#2 = (byte) render_playfield::c#1 [phi:render_playfield::@2->render_playfield::@2#0] -- register_copy + //SEG167 [76] phi (byte*) render_playfield::line#2 = (byte*) render_playfield::line#1 [phi:render_playfield::@2->render_playfield::@2#1] -- register_copy + //SEG168 [76] phi (byte) render_playfield::i#2 = (byte) render_playfield::i#1 [phi:render_playfield::@2->render_playfield::@2#2] -- register_copy jmp b2 - //SEG167 render_playfield::@2 + //SEG169 render_playfield::@2 b2: - //SEG168 [76] *((byte*) render_playfield::line#2) ← *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) render_playfield::i#2) -- _deref_pbuz1=pbuc1_derefidx_vbuz2 + //SEG170 [77] *((byte*) render_playfield::line#2) ← *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) render_playfield::i#2) -- _deref_pbuz1=pbuc1_derefidx_vbuz2 ldy i lda playfield,y ldy #0 sta (line),y - //SEG169 [77] (byte*) render_playfield::line#1 ← ++ (byte*) render_playfield::line#2 -- pbuz1=_inc_pbuz1 + //SEG171 [78] (byte*) render_playfield::line#1 ← ++ (byte*) render_playfield::line#2 -- pbuz1=_inc_pbuz1 inc line bne !+ inc line+1 !: - //SEG170 [78] (byte) render_playfield::i#1 ← ++ (byte) render_playfield::i#2 -- vbuz1=_inc_vbuz1 + //SEG172 [79] (byte) render_playfield::i#1 ← ++ (byte) render_playfield::i#2 -- vbuz1=_inc_vbuz1 inc i - //SEG171 [79] (byte) render_playfield::c#1 ← ++ (byte) render_playfield::c#2 -- vbuz1=_inc_vbuz1 + //SEG173 [80] (byte) render_playfield::c#1 ← ++ (byte) render_playfield::c#2 -- vbuz1=_inc_vbuz1 inc c - //SEG172 [80] if((byte) render_playfield::c#1!=(const byte) PLAYFIELD_COLS#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_playfield::@2 -- vbuz1_neq_vbuc1_then_la1 + //SEG174 [81] if((byte) render_playfield::c#1!=(const byte) PLAYFIELD_COLS#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_playfield::@2 -- vbuz1_neq_vbuc1_then_la1 lda c cmp #PLAYFIELD_COLS-1+1 bne b2_from_b2 jmp b3 - //SEG173 render_playfield::@3 + //SEG175 render_playfield::@3 b3: - //SEG174 [81] (byte) render_playfield::l#1 ← ++ (byte) render_playfield::l#2 -- vbuz1=_inc_vbuz1 + //SEG176 [82] (byte) render_playfield::l#1 ← ++ (byte) render_playfield::l#2 -- vbuz1=_inc_vbuz1 inc l - //SEG175 [82] if((byte) render_playfield::l#1!=(const byte) PLAYFIELD_LINES#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_playfield::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG177 [83] if((byte) render_playfield::l#1!=(const byte) PLAYFIELD_LINES#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_playfield::@1 -- vbuz1_neq_vbuc1_then_la1 lda l cmp #PLAYFIELD_LINES-1+1 bne b1_from_b3 jmp breturn - //SEG176 render_playfield::@return + //SEG178 render_playfield::@return breturn: - //SEG177 [83] return + //SEG179 [84] return rts } -//SEG178 play_move_rotate +//SEG180 play_move_rotate play_move_rotate: { .label _2 = $5b .label _4 = $5e @@ -6842,90 +6863,90 @@ play_move_rotate: { .label return = $54 .label orientation = $14 .label return_2 = $13 - //SEG179 [84] if((byte) play_move_rotate::key_event#0==(const byte) KEY_Z#0) goto play_move_rotate::@1 -- vbuz1_eq_vbuc1_then_la1 + //SEG181 [85] if((byte) play_move_rotate::key_event#0==(const byte) KEY_Z#0) goto play_move_rotate::@1 -- vbuz1_eq_vbuc1_then_la1 lda key_event cmp #KEY_Z beq b1 jmp b6 - //SEG180 play_move_rotate::@6 + //SEG182 play_move_rotate::@6 b6: - //SEG181 [85] if((byte) play_move_rotate::key_event#0==(const byte) KEY_X#0) goto play_move_rotate::@2 -- vbuz1_eq_vbuc1_then_la1 + //SEG183 [86] if((byte) play_move_rotate::key_event#0==(const byte) KEY_X#0) goto play_move_rotate::@2 -- vbuz1_eq_vbuc1_then_la1 lda key_event cmp #KEY_X beq b2 - //SEG182 [86] phi from play_move_rotate::@14 play_move_rotate::@6 to play_move_rotate::@return [phi:play_move_rotate::@14/play_move_rotate::@6->play_move_rotate::@return] + //SEG184 [87] phi from play_move_rotate::@14 play_move_rotate::@6 to play_move_rotate::@return [phi:play_move_rotate::@14/play_move_rotate::@6->play_move_rotate::@return] breturn_from_b14: breturn_from_b6: - //SEG183 [86] phi (byte*) current_piece_gfx#18 = (byte*) current_piece_gfx#17 [phi:play_move_rotate::@14/play_move_rotate::@6->play_move_rotate::@return#0] -- register_copy - //SEG184 [86] phi (byte) current_orientation#23 = (byte) current_orientation#18 [phi:play_move_rotate::@14/play_move_rotate::@6->play_move_rotate::@return#1] -- register_copy - //SEG185 [86] phi (byte) play_move_rotate::return#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_rotate::@14/play_move_rotate::@6->play_move_rotate::@return#2] -- vbuz1=vbuc1 + //SEG185 [87] phi (byte*) current_piece_gfx#18 = (byte*) current_piece_gfx#17 [phi:play_move_rotate::@14/play_move_rotate::@6->play_move_rotate::@return#0] -- register_copy + //SEG186 [87] phi (byte) current_orientation#23 = (byte) current_orientation#18 [phi:play_move_rotate::@14/play_move_rotate::@6->play_move_rotate::@return#1] -- register_copy + //SEG187 [87] phi (byte) play_move_rotate::return#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_rotate::@14/play_move_rotate::@6->play_move_rotate::@return#2] -- vbuz1=vbuc1 lda #0 sta return_2 jmp breturn - //SEG186 play_move_rotate::@return + //SEG188 play_move_rotate::@return breturn: - //SEG187 [87] return + //SEG189 [88] return rts - //SEG188 play_move_rotate::@2 + //SEG190 play_move_rotate::@2 b2: - //SEG189 [88] (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 ← (byte) current_orientation#18 + (byte/signed byte/word/signed word/dword/signed dword) 16 -- vbuz1=vbuz2_plus_vbuc1 + //SEG191 [89] (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 ← (byte) current_orientation#18 + (byte/signed byte/word/signed word/dword/signed dword) 16 -- vbuz1=vbuz2_plus_vbuc1 lda #$10 clc adc current_orientation sta _2 - //SEG190 [89] (byte) play_move_rotate::orientation#2 ← (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 & (byte/signed byte/word/signed word/dword/signed dword) 63 -- vbuz1=vbuz2_band_vbuc1 + //SEG192 [90] (byte) play_move_rotate::orientation#2 ← (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 & (byte/signed byte/word/signed word/dword/signed dword) 63 -- vbuz1=vbuz2_band_vbuc1 lda #$3f and _2 sta orientation - //SEG191 [90] phi from play_move_rotate::@1 play_move_rotate::@2 to play_move_rotate::@4 [phi:play_move_rotate::@1/play_move_rotate::@2->play_move_rotate::@4] + //SEG193 [91] phi from play_move_rotate::@1 play_move_rotate::@2 to play_move_rotate::@4 [phi:play_move_rotate::@1/play_move_rotate::@2->play_move_rotate::@4] b4_from_b1: b4_from_b2: - //SEG192 [90] phi (byte) play_move_rotate::orientation#3 = (byte) play_move_rotate::orientation#1 [phi:play_move_rotate::@1/play_move_rotate::@2->play_move_rotate::@4#0] -- register_copy + //SEG194 [91] phi (byte) play_move_rotate::orientation#3 = (byte) play_move_rotate::orientation#1 [phi:play_move_rotate::@1/play_move_rotate::@2->play_move_rotate::@4#0] -- register_copy jmp b4 - //SEG193 play_move_rotate::@4 + //SEG195 play_move_rotate::@4 b4: - //SEG194 [91] (byte) collision::xpos#3 ← (byte) current_xpos#23 -- vbuz1=vbuz2 + //SEG196 [92] (byte) collision::xpos#3 ← (byte) current_xpos#23 -- vbuz1=vbuz2 lda current_xpos sta collision.xpos - //SEG195 [92] (byte) collision::ypos#3 ← (byte) current_ypos#16 -- vbuz1=vbuz2 + //SEG197 [93] (byte) collision::ypos#3 ← (byte) current_ypos#16 -- vbuz1=vbuz2 lda current_ypos sta collision.ypos - //SEG196 [93] (byte) collision::orientation#3 ← (byte) play_move_rotate::orientation#3 -- vbuz1=vbuz2 + //SEG198 [94] (byte) collision::orientation#3 ← (byte) play_move_rotate::orientation#3 -- vbuz1=vbuz2 lda orientation sta collision.orientation - //SEG197 [94] (byte*~) current_piece#75 ← (byte*) current_piece#13 -- pbuz1=pbuz2 + //SEG199 [95] (byte*~) current_piece#75 ← (byte*) current_piece#13 -- pbuz1=pbuz2 lda current_piece sta current_piece_75 lda current_piece+1 sta current_piece_75+1 - //SEG198 [95] call collision - //SEG199 [103] phi from play_move_rotate::@4 to collision [phi:play_move_rotate::@4->collision] + //SEG200 [96] call collision + //SEG201 [104] phi from play_move_rotate::@4 to collision [phi:play_move_rotate::@4->collision] collision_from_b4: - //SEG200 [103] phi (byte) collision::xpos#5 = (byte) collision::xpos#3 [phi:play_move_rotate::@4->collision#0] -- register_copy - //SEG201 [103] phi (byte) collision::ypos#4 = (byte) collision::ypos#3 [phi:play_move_rotate::@4->collision#1] -- register_copy - //SEG202 [103] phi (byte) collision::orientation#4 = (byte) collision::orientation#3 [phi:play_move_rotate::@4->collision#2] -- register_copy - //SEG203 [103] phi (byte*) current_piece#15 = (byte*~) current_piece#75 [phi:play_move_rotate::@4->collision#3] -- register_copy + //SEG202 [104] phi (byte) collision::xpos#5 = (byte) collision::xpos#3 [phi:play_move_rotate::@4->collision#0] -- register_copy + //SEG203 [104] phi (byte) collision::ypos#4 = (byte) collision::ypos#3 [phi:play_move_rotate::@4->collision#1] -- register_copy + //SEG204 [104] phi (byte) collision::orientation#4 = (byte) collision::orientation#3 [phi:play_move_rotate::@4->collision#2] -- register_copy + //SEG205 [104] phi (byte*) current_piece#15 = (byte*~) current_piece#75 [phi:play_move_rotate::@4->collision#3] -- register_copy jsr collision - //SEG204 [96] (byte) collision::return#13 ← (byte) collision::return#14 -- vbuz1=vbuz2 + //SEG206 [97] (byte) collision::return#13 ← (byte) collision::return#14 -- vbuz1=vbuz2 lda collision.return_14 sta collision.return_13 jmp b14 - //SEG205 play_move_rotate::@14 + //SEG207 play_move_rotate::@14 b14: - //SEG206 [97] (byte~) play_move_rotate::$6 ← (byte) collision::return#13 -- vbuz1=vbuz2 + //SEG208 [98] (byte~) play_move_rotate::$6 ← (byte) collision::return#13 -- vbuz1=vbuz2 lda collision.return_13 sta _6 - //SEG207 [98] if((byte~) play_move_rotate::$6!=(const byte) COLLISION_NONE#0) goto play_move_rotate::@return -- vbuz1_neq_vbuc1_then_la1 + //SEG209 [99] if((byte~) play_move_rotate::$6!=(const byte) COLLISION_NONE#0) goto play_move_rotate::@return -- vbuz1_neq_vbuc1_then_la1 lda _6 cmp #COLLISION_NONE bne breturn_from_b14 jmp b11 - //SEG208 play_move_rotate::@11 + //SEG210 play_move_rotate::@11 b11: - //SEG209 [99] (byte) current_orientation#8 ← (byte) play_move_rotate::orientation#3 -- vbuz1=vbuz2 + //SEG211 [100] (byte) current_orientation#8 ← (byte) play_move_rotate::orientation#3 -- vbuz1=vbuz2 lda orientation sta current_orientation - //SEG210 [100] (byte*) current_piece_gfx#8 ← (byte*) current_piece#13 + (byte) current_orientation#8 -- pbuz1=pbuz2_plus_vbuz3 + //SEG212 [101] (byte*) current_piece_gfx#8 ← (byte*) current_piece#13 + (byte) current_orientation#8 -- pbuz1=pbuz2_plus_vbuz3 lda current_orientation clc adc current_piece @@ -6933,28 +6954,28 @@ play_move_rotate: { lda #0 adc current_piece+1 sta current_piece_gfx+1 - //SEG211 [86] phi from play_move_rotate::@11 to play_move_rotate::@return [phi:play_move_rotate::@11->play_move_rotate::@return] + //SEG213 [87] phi from play_move_rotate::@11 to play_move_rotate::@return [phi:play_move_rotate::@11->play_move_rotate::@return] breturn_from_b11: - //SEG212 [86] phi (byte*) current_piece_gfx#18 = (byte*) current_piece_gfx#8 [phi:play_move_rotate::@11->play_move_rotate::@return#0] -- register_copy - //SEG213 [86] phi (byte) current_orientation#23 = (byte) current_orientation#8 [phi:play_move_rotate::@11->play_move_rotate::@return#1] -- register_copy - //SEG214 [86] phi (byte) play_move_rotate::return#2 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_move_rotate::@11->play_move_rotate::@return#2] -- vbuz1=vbuc1 + //SEG214 [87] phi (byte*) current_piece_gfx#18 = (byte*) current_piece_gfx#8 [phi:play_move_rotate::@11->play_move_rotate::@return#0] -- register_copy + //SEG215 [87] phi (byte) current_orientation#23 = (byte) current_orientation#8 [phi:play_move_rotate::@11->play_move_rotate::@return#1] -- register_copy + //SEG216 [87] phi (byte) play_move_rotate::return#2 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_move_rotate::@11->play_move_rotate::@return#2] -- vbuz1=vbuc1 lda #1 sta return_2 jmp breturn - //SEG215 play_move_rotate::@1 + //SEG217 play_move_rotate::@1 b1: - //SEG216 [101] (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 ← (byte) current_orientation#18 - (byte/signed byte/word/signed word/dword/signed dword) 16 -- vbuz1=vbuz2_minus_vbuc1 + //SEG218 [102] (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 ← (byte) current_orientation#18 - (byte/signed byte/word/signed word/dword/signed dword) 16 -- vbuz1=vbuz2_minus_vbuc1 lda current_orientation sec sbc #$10 sta _4 - //SEG217 [102] (byte) play_move_rotate::orientation#1 ← (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 & (byte/signed byte/word/signed word/dword/signed dword) 63 -- vbuz1=vbuz2_band_vbuc1 + //SEG219 [103] (byte) play_move_rotate::orientation#1 ← (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 & (byte/signed byte/word/signed word/dword/signed dword) 63 -- vbuz1=vbuz2_band_vbuc1 lda #$3f and _4 sta orientation jmp b4_from_b1 } -//SEG218 collision +//SEG220 collision collision: { .label _7 = $64 .label xpos = $19 @@ -6976,7 +6997,7 @@ collision: { .label i_3 = $1c .label i_11 = $1c .label i_13 = $1c - //SEG219 [104] (byte*) collision::piece_gfx#0 ← (byte*) current_piece#15 + (byte) collision::orientation#4 -- pbuz1=pbuz2_plus_vbuz3 + //SEG221 [105] (byte*) collision::piece_gfx#0 ← (byte*) current_piece#15 + (byte) collision::orientation#4 -- pbuz1=pbuz2_plus_vbuz3 lda orientation clc adc current_piece_15 @@ -6984,290 +7005,290 @@ collision: { lda #0 adc current_piece_15+1 sta piece_gfx+1 - //SEG220 [105] (byte) collision::ypos2#0 ← (byte) collision::ypos#4 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_rol_1 + //SEG222 [106] (byte) collision::ypos2#0 ← (byte) collision::ypos#4 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_rol_1 lda ypos asl sta ypos2 - //SEG221 [106] phi from collision to collision::@1 [phi:collision->collision::@1] + //SEG223 [107] phi from collision to collision::@1 [phi:collision->collision::@1] b1_from_collision: - //SEG222 [106] phi (byte) collision::l#6 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:collision->collision::@1#0] -- vbuz1=vbuc1 + //SEG224 [107] phi (byte) collision::l#6 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:collision->collision::@1#0] -- vbuz1=vbuc1 lda #0 sta l - //SEG223 [106] phi (byte) collision::i#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:collision->collision::@1#1] -- vbuz1=vbuc1 + //SEG225 [107] phi (byte) collision::i#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:collision->collision::@1#1] -- vbuz1=vbuc1 lda #0 sta i_3 - //SEG224 [106] phi (byte) collision::ypos2#2 = (byte) collision::ypos2#0 [phi:collision->collision::@1#2] -- register_copy + //SEG226 [107] phi (byte) collision::ypos2#2 = (byte) collision::ypos2#0 [phi:collision->collision::@1#2] -- register_copy jmp b1 - //SEG225 collision::@1 + //SEG227 collision::@1 b1: - //SEG226 [107] (byte*) collision::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) collision::ypos2#2) -- pbuz1=pptc1_derefidx_vbuz2 + //SEG228 [108] (byte*) collision::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) collision::ypos2#2) -- pbuz1=pptc1_derefidx_vbuz2 ldy ypos2 lda playfield_lines,y sta playfield_line lda playfield_lines+1,y sta playfield_line+1 - //SEG227 [108] (byte~) collision::col#9 ← (byte) collision::xpos#5 -- vbuz1=vbuz2 + //SEG229 [109] (byte~) collision::col#9 ← (byte) collision::xpos#5 -- vbuz1=vbuz2 lda xpos sta col - //SEG228 [109] phi from collision::@1 to collision::@2 [phi:collision::@1->collision::@2] + //SEG230 [110] phi from collision::@1 to collision::@2 [phi:collision::@1->collision::@2] b2_from_b1: - //SEG229 [109] phi (byte) collision::c#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:collision::@1->collision::@2#0] -- vbuz1=vbuc1 + //SEG231 [110] phi (byte) collision::c#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:collision::@1->collision::@2#0] -- vbuz1=vbuc1 lda #0 sta c - //SEG230 [109] phi (byte) collision::col#2 = (byte~) collision::col#9 [phi:collision::@1->collision::@2#1] -- register_copy - //SEG231 [109] phi (byte) collision::i#2 = (byte) collision::i#3 [phi:collision::@1->collision::@2#2] -- register_copy + //SEG232 [110] phi (byte) collision::col#2 = (byte~) collision::col#9 [phi:collision::@1->collision::@2#1] -- register_copy + //SEG233 [110] phi (byte) collision::i#2 = (byte) collision::i#3 [phi:collision::@1->collision::@2#2] -- register_copy jmp b2 - //SEG232 collision::@2 + //SEG234 collision::@2 b2: - //SEG233 [110] (byte) collision::i#1 ← ++ (byte) collision::i#2 -- vbuz1=_inc_vbuz2 + //SEG235 [111] (byte) collision::i#1 ← ++ (byte) collision::i#2 -- vbuz1=_inc_vbuz2 ldy i_2 iny sty i - //SEG234 [111] if(*((byte*) collision::piece_gfx#0 + (byte) collision::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto collision::@3 -- pbuz1_derefidx_vbuz2_eq_0_then_la1 + //SEG236 [112] if(*((byte*) collision::piece_gfx#0 + (byte) collision::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto collision::@3 -- pbuz1_derefidx_vbuz2_eq_0_then_la1 ldy i_2 lda (piece_gfx),y cmp #0 beq b3 jmp b8 - //SEG235 collision::@8 + //SEG237 collision::@8 b8: - //SEG236 [112] if((byte) collision::ypos2#2<(byte/signed byte/word/signed word/dword/signed dword) 2*(const byte) PLAYFIELD_LINES#0) goto collision::@4 -- vbuz1_lt_vbuc1_then_la1 + //SEG238 [113] if((byte) collision::ypos2#2<(byte/signed byte/word/signed word/dword/signed dword) 2*(const byte) PLAYFIELD_LINES#0) goto collision::@4 -- vbuz1_lt_vbuc1_then_la1 lda ypos2 cmp #2*PLAYFIELD_LINES bcc b4 - //SEG237 [113] phi from collision::@8 to collision::@return [phi:collision::@8->collision::@return] + //SEG239 [114] phi from collision::@8 to collision::@return [phi:collision::@8->collision::@return] breturn_from_b8: - //SEG238 [113] phi (byte) collision::return#14 = (const byte) COLLISION_BOTTOM#0 [phi:collision::@8->collision::@return#0] -- vbuz1=vbuc1 + //SEG240 [114] phi (byte) collision::return#14 = (const byte) COLLISION_BOTTOM#0 [phi:collision::@8->collision::@return#0] -- vbuz1=vbuc1 lda #COLLISION_BOTTOM sta return_14 jmp breturn - //SEG239 collision::@return + //SEG241 collision::@return breturn: - //SEG240 [114] return + //SEG242 [115] return rts - //SEG241 collision::@4 + //SEG243 collision::@4 b4: - //SEG242 [115] (byte~) collision::$7 ← (byte) collision::col#2 & (byte/word/signed word/dword/signed dword) 128 -- vbuz1=vbuz2_band_vbuc1 + //SEG244 [116] (byte~) collision::$7 ← (byte) collision::col#2 & (byte/word/signed word/dword/signed dword) 128 -- vbuz1=vbuz2_band_vbuc1 lda #$80 and col sta _7 - //SEG243 [116] if((byte~) collision::$7==(byte/signed byte/word/signed word/dword/signed dword) 0) goto collision::@5 -- vbuz1_eq_0_then_la1 + //SEG245 [117] if((byte~) collision::$7==(byte/signed byte/word/signed word/dword/signed dword) 0) goto collision::@5 -- vbuz1_eq_0_then_la1 lda _7 cmp #0 beq b5 - //SEG244 [113] phi from collision::@4 to collision::@return [phi:collision::@4->collision::@return] + //SEG246 [114] phi from collision::@4 to collision::@return [phi:collision::@4->collision::@return] breturn_from_b4: - //SEG245 [113] phi (byte) collision::return#14 = (const byte) COLLISION_LEFT#0 [phi:collision::@4->collision::@return#0] -- vbuz1=vbuc1 + //SEG247 [114] phi (byte) collision::return#14 = (const byte) COLLISION_LEFT#0 [phi:collision::@4->collision::@return#0] -- vbuz1=vbuc1 lda #COLLISION_LEFT sta return_14 jmp breturn - //SEG246 collision::@5 + //SEG248 collision::@5 b5: - //SEG247 [117] if((byte) collision::col#2<(const byte) PLAYFIELD_COLS#0) goto collision::@6 -- vbuz1_lt_vbuc1_then_la1 + //SEG249 [118] if((byte) collision::col#2<(const byte) PLAYFIELD_COLS#0) goto collision::@6 -- vbuz1_lt_vbuc1_then_la1 lda col cmp #PLAYFIELD_COLS bcc b6 - //SEG248 [113] phi from collision::@5 to collision::@return [phi:collision::@5->collision::@return] + //SEG250 [114] phi from collision::@5 to collision::@return [phi:collision::@5->collision::@return] breturn_from_b5: - //SEG249 [113] phi (byte) collision::return#14 = (const byte) COLLISION_RIGHT#0 [phi:collision::@5->collision::@return#0] -- vbuz1=vbuc1 + //SEG251 [114] phi (byte) collision::return#14 = (const byte) COLLISION_RIGHT#0 [phi:collision::@5->collision::@return#0] -- vbuz1=vbuc1 lda #COLLISION_RIGHT sta return_14 jmp breturn - //SEG250 collision::@6 + //SEG252 collision::@6 b6: - //SEG251 [118] if(*((byte*) collision::playfield_line#0 + (byte) collision::col#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto collision::@3 -- pbuz1_derefidx_vbuz2_eq_0_then_la1 + //SEG253 [119] if(*((byte*) collision::playfield_line#0 + (byte) collision::col#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto collision::@3 -- pbuz1_derefidx_vbuz2_eq_0_then_la1 ldy col lda (playfield_line),y cmp #0 beq b3 - //SEG252 [113] phi from collision::@6 to collision::@return [phi:collision::@6->collision::@return] + //SEG254 [114] phi from collision::@6 to collision::@return [phi:collision::@6->collision::@return] breturn_from_b6: - //SEG253 [113] phi (byte) collision::return#14 = (const byte) COLLISION_PLAYFIELD#0 [phi:collision::@6->collision::@return#0] -- vbuz1=vbuc1 + //SEG255 [114] phi (byte) collision::return#14 = (const byte) COLLISION_PLAYFIELD#0 [phi:collision::@6->collision::@return#0] -- vbuz1=vbuc1 lda #COLLISION_PLAYFIELD sta return_14 jmp breturn - //SEG254 collision::@3 + //SEG256 collision::@3 b3: - //SEG255 [119] (byte) collision::col#1 ← ++ (byte) collision::col#2 -- vbuz1=_inc_vbuz1 + //SEG257 [120] (byte) collision::col#1 ← ++ (byte) collision::col#2 -- vbuz1=_inc_vbuz1 inc col - //SEG256 [120] (byte) collision::c#1 ← ++ (byte) collision::c#2 -- vbuz1=_inc_vbuz1 + //SEG258 [121] (byte) collision::c#1 ← ++ (byte) collision::c#2 -- vbuz1=_inc_vbuz1 inc c - //SEG257 [121] if((byte) collision::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto collision::@21 -- vbuz1_neq_vbuc1_then_la1 + //SEG259 [122] if((byte) collision::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto collision::@21 -- vbuz1_neq_vbuc1_then_la1 lda c cmp #4 bne b21 jmp b17 - //SEG258 collision::@17 + //SEG260 collision::@17 b17: - //SEG259 [122] (byte) collision::ypos2#1 ← (byte) collision::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 -- vbuz1=vbuz1_plus_2 + //SEG261 [123] (byte) collision::ypos2#1 ← (byte) collision::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 -- vbuz1=vbuz1_plus_2 lda ypos2 clc adc #2 sta ypos2 - //SEG260 [123] (byte) collision::l#1 ← ++ (byte) collision::l#6 -- vbuz1=_inc_vbuz1 + //SEG262 [124] (byte) collision::l#1 ← ++ (byte) collision::l#6 -- vbuz1=_inc_vbuz1 inc l - //SEG261 [124] if((byte) collision::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto collision::@20 -- vbuz1_neq_vbuc1_then_la1 + //SEG263 [125] if((byte) collision::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto collision::@20 -- vbuz1_neq_vbuc1_then_la1 lda l cmp #4 bne b20 - //SEG262 [113] phi from collision::@17 to collision::@return [phi:collision::@17->collision::@return] + //SEG264 [114] phi from collision::@17 to collision::@return [phi:collision::@17->collision::@return] breturn_from_b17: - //SEG263 [113] phi (byte) collision::return#14 = (const byte) COLLISION_NONE#0 [phi:collision::@17->collision::@return#0] -- vbuz1=vbuc1 + //SEG265 [114] phi (byte) collision::return#14 = (const byte) COLLISION_NONE#0 [phi:collision::@17->collision::@return#0] -- vbuz1=vbuc1 lda #COLLISION_NONE sta return_14 jmp breturn - //SEG264 collision::@20 + //SEG266 collision::@20 b20: - //SEG265 [125] (byte~) collision::i#11 ← (byte) collision::i#1 -- vbuz1=vbuz2 + //SEG267 [126] (byte~) collision::i#11 ← (byte) collision::i#1 -- vbuz1=vbuz2 lda i sta i_11 - //SEG266 [106] phi from collision::@20 to collision::@1 [phi:collision::@20->collision::@1] + //SEG268 [107] phi from collision::@20 to collision::@1 [phi:collision::@20->collision::@1] b1_from_b20: - //SEG267 [106] phi (byte) collision::l#6 = (byte) collision::l#1 [phi:collision::@20->collision::@1#0] -- register_copy - //SEG268 [106] phi (byte) collision::i#3 = (byte~) collision::i#11 [phi:collision::@20->collision::@1#1] -- register_copy - //SEG269 [106] phi (byte) collision::ypos2#2 = (byte) collision::ypos2#1 [phi:collision::@20->collision::@1#2] -- register_copy + //SEG269 [107] phi (byte) collision::l#6 = (byte) collision::l#1 [phi:collision::@20->collision::@1#0] -- register_copy + //SEG270 [107] phi (byte) collision::i#3 = (byte~) collision::i#11 [phi:collision::@20->collision::@1#1] -- register_copy + //SEG271 [107] phi (byte) collision::ypos2#2 = (byte) collision::ypos2#1 [phi:collision::@20->collision::@1#2] -- register_copy jmp b1 - //SEG270 collision::@21 + //SEG272 collision::@21 b21: - //SEG271 [126] (byte~) collision::i#13 ← (byte) collision::i#1 -- vbuz1=vbuz2 + //SEG273 [127] (byte~) collision::i#13 ← (byte) collision::i#1 -- vbuz1=vbuz2 lda i sta i_13 - //SEG272 [109] phi from collision::@21 to collision::@2 [phi:collision::@21->collision::@2] + //SEG274 [110] phi from collision::@21 to collision::@2 [phi:collision::@21->collision::@2] b2_from_b21: - //SEG273 [109] phi (byte) collision::c#2 = (byte) collision::c#1 [phi:collision::@21->collision::@2#0] -- register_copy - //SEG274 [109] phi (byte) collision::col#2 = (byte) collision::col#1 [phi:collision::@21->collision::@2#1] -- register_copy - //SEG275 [109] phi (byte) collision::i#2 = (byte~) collision::i#13 [phi:collision::@21->collision::@2#2] -- register_copy + //SEG275 [110] phi (byte) collision::c#2 = (byte) collision::c#1 [phi:collision::@21->collision::@2#0] -- register_copy + //SEG276 [110] phi (byte) collision::col#2 = (byte) collision::col#1 [phi:collision::@21->collision::@2#1] -- register_copy + //SEG277 [110] phi (byte) collision::i#2 = (byte~) collision::i#13 [phi:collision::@21->collision::@2#2] -- register_copy jmp b2 } -//SEG276 play_move_leftright +//SEG278 play_move_leftright play_move_leftright: { .label _4 = $66 .label _8 = $68 .label key_event = $4f .label return = $50 .label return_2 = $20 - //SEG277 [127] if((byte) play_move_leftright::key_event#0==(const byte) KEY_COMMA#0) goto play_move_leftright::@1 -- vbuz1_eq_vbuc1_then_la1 + //SEG279 [128] if((byte) play_move_leftright::key_event#0==(const byte) KEY_COMMA#0) goto play_move_leftright::@1 -- vbuz1_eq_vbuc1_then_la1 lda key_event cmp #KEY_COMMA beq b1 jmp b6 - //SEG278 play_move_leftright::@6 + //SEG280 play_move_leftright::@6 b6: - //SEG279 [128] if((byte) play_move_leftright::key_event#0!=(const byte) KEY_DOT#0) goto play_move_leftright::@return -- vbuz1_neq_vbuc1_then_la1 + //SEG281 [129] if((byte) play_move_leftright::key_event#0!=(const byte) KEY_DOT#0) goto play_move_leftright::@return -- vbuz1_neq_vbuc1_then_la1 lda key_event cmp #KEY_DOT bne breturn_from_b6 jmp b7 - //SEG280 play_move_leftright::@7 + //SEG282 play_move_leftright::@7 b7: - //SEG281 [129] (byte) collision::xpos#2 ← (byte) current_xpos#19 + (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_plus_1 + //SEG283 [130] (byte) collision::xpos#2 ← (byte) current_xpos#19 + (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_plus_1 ldy current_xpos iny sty collision.xpos - //SEG282 [130] (byte) collision::ypos#2 ← (byte) current_ypos#16 -- vbuz1=vbuz2 + //SEG284 [131] (byte) collision::ypos#2 ← (byte) current_ypos#16 -- vbuz1=vbuz2 lda current_ypos sta collision.ypos - //SEG283 [131] (byte) collision::orientation#2 ← (byte) current_orientation#18 -- vbuz1=vbuz2 + //SEG285 [132] (byte) collision::orientation#2 ← (byte) current_orientation#18 -- vbuz1=vbuz2 lda current_orientation sta collision.orientation - //SEG284 [132] (byte*~) current_piece#74 ← (byte*) current_piece#13 -- pbuz1=pbuz2 + //SEG286 [133] (byte*~) current_piece#74 ← (byte*) current_piece#13 -- pbuz1=pbuz2 lda current_piece sta current_piece_74 lda current_piece+1 sta current_piece_74+1 - //SEG285 [133] call collision - //SEG286 [103] phi from play_move_leftright::@7 to collision [phi:play_move_leftright::@7->collision] + //SEG287 [134] call collision + //SEG288 [104] phi from play_move_leftright::@7 to collision [phi:play_move_leftright::@7->collision] collision_from_b7: - //SEG287 [103] phi (byte) collision::xpos#5 = (byte) collision::xpos#2 [phi:play_move_leftright::@7->collision#0] -- register_copy - //SEG288 [103] phi (byte) collision::ypos#4 = (byte) collision::ypos#2 [phi:play_move_leftright::@7->collision#1] -- register_copy - //SEG289 [103] phi (byte) collision::orientation#4 = (byte) collision::orientation#2 [phi:play_move_leftright::@7->collision#2] -- register_copy - //SEG290 [103] phi (byte*) current_piece#15 = (byte*~) current_piece#74 [phi:play_move_leftright::@7->collision#3] -- register_copy + //SEG289 [104] phi (byte) collision::xpos#5 = (byte) collision::xpos#2 [phi:play_move_leftright::@7->collision#0] -- register_copy + //SEG290 [104] phi (byte) collision::ypos#4 = (byte) collision::ypos#2 [phi:play_move_leftright::@7->collision#1] -- register_copy + //SEG291 [104] phi (byte) collision::orientation#4 = (byte) collision::orientation#2 [phi:play_move_leftright::@7->collision#2] -- register_copy + //SEG292 [104] phi (byte*) current_piece#15 = (byte*~) current_piece#74 [phi:play_move_leftright::@7->collision#3] -- register_copy jsr collision - //SEG291 [134] (byte) collision::return#12 ← (byte) collision::return#14 -- vbuz1=vbuz2 + //SEG293 [135] (byte) collision::return#12 ← (byte) collision::return#14 -- vbuz1=vbuz2 lda collision.return_14 sta collision.return_12 jmp b15 - //SEG292 play_move_leftright::@15 + //SEG294 play_move_leftright::@15 b15: - //SEG293 [135] (byte~) play_move_leftright::$4 ← (byte) collision::return#12 -- vbuz1=vbuz2 + //SEG295 [136] (byte~) play_move_leftright::$4 ← (byte) collision::return#12 -- vbuz1=vbuz2 lda collision.return_12 sta _4 - //SEG294 [136] if((byte~) play_move_leftright::$4!=(const byte) COLLISION_NONE#0) goto play_move_leftright::@return -- vbuz1_neq_vbuc1_then_la1 + //SEG296 [137] if((byte~) play_move_leftright::$4!=(const byte) COLLISION_NONE#0) goto play_move_leftright::@return -- vbuz1_neq_vbuc1_then_la1 lda _4 cmp #COLLISION_NONE bne breturn_from_b15 jmp b8 - //SEG295 play_move_leftright::@8 + //SEG297 play_move_leftright::@8 b8: - //SEG296 [137] (byte) current_xpos#7 ← ++ (byte) current_xpos#19 -- vbuz1=_inc_vbuz1 + //SEG298 [138] (byte) current_xpos#7 ← ++ (byte) current_xpos#19 -- vbuz1=_inc_vbuz1 inc current_xpos - //SEG297 [138] phi from play_move_leftright::@11 play_move_leftright::@8 to play_move_leftright::@return [phi:play_move_leftright::@11/play_move_leftright::@8->play_move_leftright::@return] + //SEG299 [139] phi from play_move_leftright::@11 play_move_leftright::@8 to play_move_leftright::@return [phi:play_move_leftright::@11/play_move_leftright::@8->play_move_leftright::@return] breturn_from_b11: breturn_from_b8: - //SEG298 [138] phi (byte) current_xpos#23 = (byte) current_xpos#9 [phi:play_move_leftright::@11/play_move_leftright::@8->play_move_leftright::@return#0] -- register_copy - //SEG299 [138] phi (byte) play_move_leftright::return#2 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_move_leftright::@11/play_move_leftright::@8->play_move_leftright::@return#1] -- vbuz1=vbuc1 + //SEG300 [139] phi (byte) current_xpos#23 = (byte) current_xpos#9 [phi:play_move_leftright::@11/play_move_leftright::@8->play_move_leftright::@return#0] -- register_copy + //SEG301 [139] phi (byte) play_move_leftright::return#2 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_move_leftright::@11/play_move_leftright::@8->play_move_leftright::@return#1] -- vbuz1=vbuc1 lda #1 sta return_2 jmp breturn - //SEG300 [138] phi from play_move_leftright::@14 play_move_leftright::@15 play_move_leftright::@6 to play_move_leftright::@return [phi:play_move_leftright::@14/play_move_leftright::@15/play_move_leftright::@6->play_move_leftright::@return] + //SEG302 [139] phi from play_move_leftright::@14 play_move_leftright::@15 play_move_leftright::@6 to play_move_leftright::@return [phi:play_move_leftright::@14/play_move_leftright::@15/play_move_leftright::@6->play_move_leftright::@return] breturn_from_b14: breturn_from_b15: breturn_from_b6: - //SEG301 [138] phi (byte) current_xpos#23 = (byte) current_xpos#19 [phi:play_move_leftright::@14/play_move_leftright::@15/play_move_leftright::@6->play_move_leftright::@return#0] -- register_copy - //SEG302 [138] phi (byte) play_move_leftright::return#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_leftright::@14/play_move_leftright::@15/play_move_leftright::@6->play_move_leftright::@return#1] -- vbuz1=vbuc1 + //SEG303 [139] phi (byte) current_xpos#23 = (byte) current_xpos#19 [phi:play_move_leftright::@14/play_move_leftright::@15/play_move_leftright::@6->play_move_leftright::@return#0] -- register_copy + //SEG304 [139] phi (byte) play_move_leftright::return#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_leftright::@14/play_move_leftright::@15/play_move_leftright::@6->play_move_leftright::@return#1] -- vbuz1=vbuc1 lda #0 sta return_2 jmp breturn - //SEG303 play_move_leftright::@return + //SEG305 play_move_leftright::@return breturn: - //SEG304 [139] return + //SEG306 [140] return rts - //SEG305 play_move_leftright::@1 + //SEG307 play_move_leftright::@1 b1: - //SEG306 [140] (byte) collision::xpos#1 ← (byte) current_xpos#19 - (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_minus_1 + //SEG308 [141] (byte) collision::xpos#1 ← (byte) current_xpos#19 - (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_minus_1 ldx current_xpos dex stx collision.xpos - //SEG307 [141] (byte) collision::ypos#1 ← (byte) current_ypos#16 -- vbuz1=vbuz2 + //SEG309 [142] (byte) collision::ypos#1 ← (byte) current_ypos#16 -- vbuz1=vbuz2 lda current_ypos sta collision.ypos - //SEG308 [142] (byte) collision::orientation#1 ← (byte) current_orientation#18 -- vbuz1=vbuz2 + //SEG310 [143] (byte) collision::orientation#1 ← (byte) current_orientation#18 -- vbuz1=vbuz2 lda current_orientation sta collision.orientation - //SEG309 [143] (byte*~) current_piece#73 ← (byte*) current_piece#13 -- pbuz1=pbuz2 + //SEG311 [144] (byte*~) current_piece#73 ← (byte*) current_piece#13 -- pbuz1=pbuz2 lda current_piece sta current_piece_73 lda current_piece+1 sta current_piece_73+1 - //SEG310 [144] call collision - //SEG311 [103] phi from play_move_leftright::@1 to collision [phi:play_move_leftright::@1->collision] + //SEG312 [145] call collision + //SEG313 [104] phi from play_move_leftright::@1 to collision [phi:play_move_leftright::@1->collision] collision_from_b1: - //SEG312 [103] phi (byte) collision::xpos#5 = (byte) collision::xpos#1 [phi:play_move_leftright::@1->collision#0] -- register_copy - //SEG313 [103] phi (byte) collision::ypos#4 = (byte) collision::ypos#1 [phi:play_move_leftright::@1->collision#1] -- register_copy - //SEG314 [103] phi (byte) collision::orientation#4 = (byte) collision::orientation#1 [phi:play_move_leftright::@1->collision#2] -- register_copy - //SEG315 [103] phi (byte*) current_piece#15 = (byte*~) current_piece#73 [phi:play_move_leftright::@1->collision#3] -- register_copy + //SEG314 [104] phi (byte) collision::xpos#5 = (byte) collision::xpos#1 [phi:play_move_leftright::@1->collision#0] -- register_copy + //SEG315 [104] phi (byte) collision::ypos#4 = (byte) collision::ypos#1 [phi:play_move_leftright::@1->collision#1] -- register_copy + //SEG316 [104] phi (byte) collision::orientation#4 = (byte) collision::orientation#1 [phi:play_move_leftright::@1->collision#2] -- register_copy + //SEG317 [104] phi (byte*) current_piece#15 = (byte*~) current_piece#73 [phi:play_move_leftright::@1->collision#3] -- register_copy jsr collision - //SEG316 [145] (byte) collision::return#1 ← (byte) collision::return#14 -- vbuz1=vbuz2 + //SEG318 [146] (byte) collision::return#1 ← (byte) collision::return#14 -- vbuz1=vbuz2 lda collision.return_14 sta collision.return_1 jmp b14 - //SEG317 play_move_leftright::@14 + //SEG319 play_move_leftright::@14 b14: - //SEG318 [146] (byte~) play_move_leftright::$8 ← (byte) collision::return#1 -- vbuz1=vbuz2 + //SEG320 [147] (byte~) play_move_leftright::$8 ← (byte) collision::return#1 -- vbuz1=vbuz2 lda collision.return_1 sta _8 - //SEG319 [147] if((byte~) play_move_leftright::$8!=(const byte) COLLISION_NONE#0) goto play_move_leftright::@return -- vbuz1_neq_vbuc1_then_la1 + //SEG321 [148] if((byte~) play_move_leftright::$8!=(const byte) COLLISION_NONE#0) goto play_move_leftright::@return -- vbuz1_neq_vbuc1_then_la1 lda _8 cmp #COLLISION_NONE bne breturn_from_b14 jmp b11 - //SEG320 play_move_leftright::@11 + //SEG322 play_move_leftright::@11 b11: - //SEG321 [148] (byte) current_xpos#9 ← -- (byte) current_xpos#19 -- vbuz1=_dec_vbuz1 + //SEG323 [149] (byte) current_xpos#9 ← -- (byte) current_xpos#19 -- vbuz1=_dec_vbuz1 dec current_xpos jmp breturn_from_b11 } -//SEG322 play_move_down +//SEG324 play_move_down play_move_down: { .label _2 = $6a .label _12 = $6c @@ -7275,302 +7296,302 @@ play_move_down: { .label return = $4c .label movedown = $21 .label return_3 = $29 - //SEG323 [149] (byte) current_movedown_counter#10 ← ++ (byte) current_movedown_counter#15 -- vbuz1=_inc_vbuz1 + //SEG325 [150] (byte) current_movedown_counter#10 ← ++ (byte) current_movedown_counter#15 -- vbuz1=_inc_vbuz1 inc current_movedown_counter - //SEG324 [150] if((byte) play_move_down::key_event#0!=(const byte) KEY_SPACE#0) goto play_move_down::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG326 [151] if((byte) play_move_down::key_event#0!=(const byte) KEY_SPACE#0) goto play_move_down::@1 -- vbuz1_neq_vbuc1_then_la1 lda key_event cmp #KEY_SPACE bne b1_from_play_move_down - //SEG325 [151] phi from play_move_down to play_move_down::@8 [phi:play_move_down->play_move_down::@8] + //SEG327 [152] phi from play_move_down to play_move_down::@8 [phi:play_move_down->play_move_down::@8] b8_from_play_move_down: jmp b8 - //SEG326 play_move_down::@8 + //SEG328 play_move_down::@8 b8: - //SEG327 [152] phi from play_move_down::@8 to play_move_down::@1 [phi:play_move_down::@8->play_move_down::@1] + //SEG329 [153] phi from play_move_down::@8 to play_move_down::@1 [phi:play_move_down::@8->play_move_down::@1] b1_from_b8: - //SEG328 [152] phi (byte) play_move_down::movedown#10 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_move_down::@8->play_move_down::@1#0] -- vbuz1=vbuc1 + //SEG330 [153] phi (byte) play_move_down::movedown#10 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_move_down::@8->play_move_down::@1#0] -- vbuz1=vbuc1 lda #1 sta movedown jmp b1 - //SEG329 [152] phi from play_move_down to play_move_down::@1 [phi:play_move_down->play_move_down::@1] + //SEG331 [153] phi from play_move_down to play_move_down::@1 [phi:play_move_down->play_move_down::@1] b1_from_play_move_down: - //SEG330 [152] phi (byte) play_move_down::movedown#10 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_down->play_move_down::@1#0] -- vbuz1=vbuc1 + //SEG332 [153] phi (byte) play_move_down::movedown#10 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_down->play_move_down::@1#0] -- vbuz1=vbuc1 lda #0 sta movedown jmp b1 - //SEG331 play_move_down::@1 + //SEG333 play_move_down::@1 b1: - //SEG332 [153] call keyboard_event_pressed - //SEG333 [236] phi from play_move_down::@1 to keyboard_event_pressed [phi:play_move_down::@1->keyboard_event_pressed] + //SEG334 [154] call keyboard_event_pressed + //SEG335 [237] phi from play_move_down::@1 to keyboard_event_pressed [phi:play_move_down::@1->keyboard_event_pressed] keyboard_event_pressed_from_b1: - //SEG334 [236] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_SPACE#0 [phi:play_move_down::@1->keyboard_event_pressed#0] -- vbuz1=vbuc1 + //SEG336 [237] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_SPACE#0 [phi:play_move_down::@1->keyboard_event_pressed#0] -- vbuz1=vbuc1 lda #KEY_SPACE sta keyboard_event_pressed.keycode jsr keyboard_event_pressed - //SEG335 [154] (byte) keyboard_event_pressed::return#12 ← (byte) keyboard_event_pressed::return#11 -- vbuz1=vbuz2 + //SEG337 [155] (byte) keyboard_event_pressed::return#12 ← (byte) keyboard_event_pressed::return#11 -- vbuz1=vbuz2 lda keyboard_event_pressed.return_11 sta keyboard_event_pressed.return_12 jmp b17 - //SEG336 play_move_down::@17 + //SEG338 play_move_down::@17 b17: - //SEG337 [155] (byte~) play_move_down::$2 ← (byte) keyboard_event_pressed::return#12 -- vbuz1=vbuz2 + //SEG339 [156] (byte~) play_move_down::$2 ← (byte) keyboard_event_pressed::return#12 -- vbuz1=vbuz2 lda keyboard_event_pressed.return_12 sta _2 - //SEG338 [156] if((byte~) play_move_down::$2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_move_down::@2 -- vbuz1_eq_0_then_la1 + //SEG340 [157] if((byte~) play_move_down::$2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_move_down::@2 -- vbuz1_eq_0_then_la1 lda _2 cmp #0 beq b2_from_b17 jmp b9 - //SEG339 play_move_down::@9 + //SEG341 play_move_down::@9 b9: - //SEG340 [157] if((byte) current_movedown_counter#10<(const byte) current_movedown_fast#0) goto play_move_down::@2 -- vbuz1_lt_vbuc1_then_la1 + //SEG342 [158] if((byte) current_movedown_counter#10<(const byte) current_movedown_fast#0) goto play_move_down::@2 -- vbuz1_lt_vbuc1_then_la1 lda current_movedown_counter cmp #current_movedown_fast bcc b2_from_b9 jmp b10 - //SEG341 play_move_down::@10 + //SEG343 play_move_down::@10 b10: - //SEG342 [158] (byte) play_move_down::movedown#2 ← ++ (byte) play_move_down::movedown#10 -- vbuz1=_inc_vbuz1 + //SEG344 [159] (byte) play_move_down::movedown#2 ← ++ (byte) play_move_down::movedown#10 -- vbuz1=_inc_vbuz1 inc movedown - //SEG343 [159] phi from play_move_down::@10 play_move_down::@17 play_move_down::@9 to play_move_down::@2 [phi:play_move_down::@10/play_move_down::@17/play_move_down::@9->play_move_down::@2] + //SEG345 [160] phi from play_move_down::@10 play_move_down::@17 play_move_down::@9 to play_move_down::@2 [phi:play_move_down::@10/play_move_down::@17/play_move_down::@9->play_move_down::@2] b2_from_b10: b2_from_b17: b2_from_b9: - //SEG344 [159] phi (byte) play_move_down::movedown#7 = (byte) play_move_down::movedown#2 [phi:play_move_down::@10/play_move_down::@17/play_move_down::@9->play_move_down::@2#0] -- register_copy + //SEG346 [160] phi (byte) play_move_down::movedown#7 = (byte) play_move_down::movedown#2 [phi:play_move_down::@10/play_move_down::@17/play_move_down::@9->play_move_down::@2#0] -- register_copy jmp b2 - //SEG345 play_move_down::@2 + //SEG347 play_move_down::@2 b2: - //SEG346 [160] if((byte) current_movedown_counter#10<(const byte) current_movedown_slow#0) goto play_move_down::@4 -- vbuz1_lt_vbuc1_then_la1 + //SEG348 [161] if((byte) current_movedown_counter#10<(const byte) current_movedown_slow#0) goto play_move_down::@4 -- vbuz1_lt_vbuc1_then_la1 lda current_movedown_counter cmp #current_movedown_slow bcc b4_from_b2 jmp b11 - //SEG347 play_move_down::@11 + //SEG349 play_move_down::@11 b11: - //SEG348 [161] (byte) play_move_down::movedown#3 ← ++ (byte) play_move_down::movedown#7 -- vbuz1=_inc_vbuz1 + //SEG350 [162] (byte) play_move_down::movedown#3 ← ++ (byte) play_move_down::movedown#7 -- vbuz1=_inc_vbuz1 inc movedown - //SEG349 [162] phi from play_move_down::@11 play_move_down::@2 to play_move_down::@4 [phi:play_move_down::@11/play_move_down::@2->play_move_down::@4] + //SEG351 [163] phi from play_move_down::@11 play_move_down::@2 to play_move_down::@4 [phi:play_move_down::@11/play_move_down::@2->play_move_down::@4] b4_from_b11: b4_from_b2: - //SEG350 [162] phi (byte) play_move_down::movedown#6 = (byte) play_move_down::movedown#3 [phi:play_move_down::@11/play_move_down::@2->play_move_down::@4#0] -- register_copy + //SEG352 [163] phi (byte) play_move_down::movedown#6 = (byte) play_move_down::movedown#3 [phi:play_move_down::@11/play_move_down::@2->play_move_down::@4#0] -- register_copy jmp b4 - //SEG351 play_move_down::@4 + //SEG353 play_move_down::@4 b4: - //SEG352 [163] if((byte) play_move_down::movedown#6==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_move_down::@return -- vbuz1_eq_0_then_la1 + //SEG354 [164] if((byte) play_move_down::movedown#6==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_move_down::@return -- vbuz1_eq_0_then_la1 lda movedown cmp #0 beq breturn_from_b4 jmp b12 - //SEG353 play_move_down::@12 + //SEG355 play_move_down::@12 b12: - //SEG354 [164] (byte) collision::ypos#0 ← (byte) current_ypos#12 + (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_plus_1 + //SEG356 [165] (byte) collision::ypos#0 ← (byte) current_ypos#12 + (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_plus_1 ldy current_ypos iny sty collision.ypos - //SEG355 [165] (byte) collision::xpos#0 ← (byte) current_xpos#16 -- vbuz1=vbuz2 + //SEG357 [166] (byte) collision::xpos#0 ← (byte) current_xpos#16 -- vbuz1=vbuz2 lda current_xpos sta collision.xpos - //SEG356 [166] (byte) collision::orientation#0 ← (byte) current_orientation#15 -- vbuz1=vbuz2 + //SEG358 [167] (byte) collision::orientation#0 ← (byte) current_orientation#15 -- vbuz1=vbuz2 lda current_orientation sta collision.orientation - //SEG357 [167] (byte*~) current_piece#72 ← (byte*) current_piece#11 -- pbuz1=pbuz2 + //SEG359 [168] (byte*~) current_piece#72 ← (byte*) current_piece#11 -- pbuz1=pbuz2 lda current_piece sta current_piece_72 lda current_piece+1 sta current_piece_72+1 - //SEG358 [168] call collision - //SEG359 [103] phi from play_move_down::@12 to collision [phi:play_move_down::@12->collision] + //SEG360 [169] call collision + //SEG361 [104] phi from play_move_down::@12 to collision [phi:play_move_down::@12->collision] collision_from_b12: - //SEG360 [103] phi (byte) collision::xpos#5 = (byte) collision::xpos#0 [phi:play_move_down::@12->collision#0] -- register_copy - //SEG361 [103] phi (byte) collision::ypos#4 = (byte) collision::ypos#0 [phi:play_move_down::@12->collision#1] -- register_copy - //SEG362 [103] phi (byte) collision::orientation#4 = (byte) collision::orientation#0 [phi:play_move_down::@12->collision#2] -- register_copy - //SEG363 [103] phi (byte*) current_piece#15 = (byte*~) current_piece#72 [phi:play_move_down::@12->collision#3] -- register_copy + //SEG362 [104] phi (byte) collision::xpos#5 = (byte) collision::xpos#0 [phi:play_move_down::@12->collision#0] -- register_copy + //SEG363 [104] phi (byte) collision::ypos#4 = (byte) collision::ypos#0 [phi:play_move_down::@12->collision#1] -- register_copy + //SEG364 [104] phi (byte) collision::orientation#4 = (byte) collision::orientation#0 [phi:play_move_down::@12->collision#2] -- register_copy + //SEG365 [104] phi (byte*) current_piece#15 = (byte*~) current_piece#72 [phi:play_move_down::@12->collision#3] -- register_copy jsr collision - //SEG364 [169] (byte) collision::return#0 ← (byte) collision::return#14 -- vbuz1=vbuz2 + //SEG366 [170] (byte) collision::return#0 ← (byte) collision::return#14 -- vbuz1=vbuz2 lda collision.return_14 sta collision.return jmp b18 - //SEG365 play_move_down::@18 + //SEG367 play_move_down::@18 b18: - //SEG366 [170] (byte~) play_move_down::$12 ← (byte) collision::return#0 -- vbuz1=vbuz2 + //SEG368 [171] (byte~) play_move_down::$12 ← (byte) collision::return#0 -- vbuz1=vbuz2 lda collision.return sta _12 - //SEG367 [171] if((byte~) play_move_down::$12==(const byte) COLLISION_NONE#0) goto play_move_down::@6 -- vbuz1_eq_vbuc1_then_la1 + //SEG369 [172] if((byte~) play_move_down::$12==(const byte) COLLISION_NONE#0) goto play_move_down::@6 -- vbuz1_eq_vbuc1_then_la1 lda _12 cmp #COLLISION_NONE beq b6 - //SEG368 [172] phi from play_move_down::@18 to play_move_down::@13 [phi:play_move_down::@18->play_move_down::@13] + //SEG370 [173] phi from play_move_down::@18 to play_move_down::@13 [phi:play_move_down::@18->play_move_down::@13] b13_from_b18: jmp b13 - //SEG369 play_move_down::@13 + //SEG371 play_move_down::@13 b13: - //SEG370 [173] call lock_current + //SEG372 [174] call lock_current jsr lock_current - //SEG371 [174] phi from play_move_down::@13 to play_move_down::@19 [phi:play_move_down::@13->play_move_down::@19] + //SEG373 [175] phi from play_move_down::@13 to play_move_down::@19 [phi:play_move_down::@13->play_move_down::@19] b19_from_b13: jmp b19 - //SEG372 play_move_down::@19 + //SEG374 play_move_down::@19 b19: - //SEG373 [175] call remove_lines - //SEG374 [197] phi from play_move_down::@19 to remove_lines [phi:play_move_down::@19->remove_lines] + //SEG375 [176] call remove_lines + //SEG376 [198] phi from play_move_down::@19 to remove_lines [phi:play_move_down::@19->remove_lines] remove_lines_from_b19: jsr remove_lines - //SEG375 [176] phi from play_move_down::@19 to play_move_down::@20 [phi:play_move_down::@19->play_move_down::@20] + //SEG377 [177] phi from play_move_down::@19 to play_move_down::@20 [phi:play_move_down::@19->play_move_down::@20] b20_from_b19: jmp b20 - //SEG376 play_move_down::@20 + //SEG378 play_move_down::@20 b20: - //SEG377 [177] call spawn_current - //SEG378 [183] phi from play_move_down::@20 to spawn_current [phi:play_move_down::@20->spawn_current] + //SEG379 [178] call spawn_current + //SEG380 [184] phi from play_move_down::@20 to spawn_current [phi:play_move_down::@20->spawn_current] spawn_current_from_b20: jsr spawn_current - //SEG379 [178] (byte*~) current_piece#76 ← (byte*)*((const word[]) PIECES#0 + (byte~) spawn_current::$3) -- pbuz1=pptc1_derefidx_vbuz2 + //SEG381 [179] (byte*~) current_piece#76 ← (byte*)*((const word[]) PIECES#0 + (byte~) spawn_current::$3) -- pbuz1=pptc1_derefidx_vbuz2 ldy spawn_current._3 lda PIECES,y sta current_piece lda PIECES+1,y sta current_piece+1 - //SEG380 [179] phi from play_move_down::@20 to play_move_down::@7 [phi:play_move_down::@20->play_move_down::@7] + //SEG382 [180] phi from play_move_down::@20 to play_move_down::@7 [phi:play_move_down::@20->play_move_down::@7] b7_from_b20: - //SEG381 [179] phi (byte) current_piece_color#23 = (byte) current_piece_color#15 [phi:play_move_down::@20->play_move_down::@7#0] -- register_copy - //SEG382 [179] phi (byte) current_xpos#36 = (byte/signed byte/word/signed word/dword/signed dword) 3 [phi:play_move_down::@20->play_move_down::@7#1] -- vbuz1=vbuc1 + //SEG383 [180] phi (byte) current_piece_color#23 = (byte) current_piece_color#15 [phi:play_move_down::@20->play_move_down::@7#0] -- register_copy + //SEG384 [180] phi (byte) current_xpos#36 = (byte/signed byte/word/signed word/dword/signed dword) 3 [phi:play_move_down::@20->play_move_down::@7#1] -- vbuz1=vbuc1 lda #3 sta current_xpos - //SEG383 [179] phi (byte*) current_piece_gfx#29 = (byte*) current_piece_gfx#10 [phi:play_move_down::@20->play_move_down::@7#2] -- register_copy - //SEG384 [179] phi (byte) current_orientation#33 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_down::@20->play_move_down::@7#3] -- vbuz1=vbuc1 + //SEG385 [180] phi (byte*) current_piece_gfx#29 = (byte*) current_piece_gfx#10 [phi:play_move_down::@20->play_move_down::@7#2] -- register_copy + //SEG386 [180] phi (byte) current_orientation#33 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_down::@20->play_move_down::@7#3] -- vbuz1=vbuc1 lda #0 sta current_orientation - //SEG385 [179] phi (byte*) current_piece#23 = (byte*~) current_piece#76 [phi:play_move_down::@20->play_move_down::@7#4] -- register_copy - //SEG386 [179] phi (byte) current_ypos#31 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_down::@20->play_move_down::@7#5] -- vbuz1=vbuc1 + //SEG387 [180] phi (byte*) current_piece#23 = (byte*~) current_piece#76 [phi:play_move_down::@20->play_move_down::@7#4] -- register_copy + //SEG388 [180] phi (byte) current_ypos#31 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_down::@20->play_move_down::@7#5] -- vbuz1=vbuc1 lda #0 sta current_ypos jmp b7 - //SEG387 play_move_down::@7 + //SEG389 play_move_down::@7 b7: - //SEG388 [180] phi from play_move_down::@7 to play_move_down::@return [phi:play_move_down::@7->play_move_down::@return] + //SEG390 [181] phi from play_move_down::@7 to play_move_down::@return [phi:play_move_down::@7->play_move_down::@return] breturn_from_b7: - //SEG389 [180] phi (byte) current_piece_color#13 = (byte) current_piece_color#23 [phi:play_move_down::@7->play_move_down::@return#0] -- register_copy - //SEG390 [180] phi (byte) current_xpos#19 = (byte) current_xpos#36 [phi:play_move_down::@7->play_move_down::@return#1] -- register_copy - //SEG391 [180] phi (byte*) current_piece_gfx#17 = (byte*) current_piece_gfx#29 [phi:play_move_down::@7->play_move_down::@return#2] -- register_copy - //SEG392 [180] phi (byte) current_orientation#18 = (byte) current_orientation#33 [phi:play_move_down::@7->play_move_down::@return#3] -- register_copy - //SEG393 [180] phi (byte*) current_piece#13 = (byte*) current_piece#23 [phi:play_move_down::@7->play_move_down::@return#4] -- register_copy - //SEG394 [180] phi (byte) current_ypos#16 = (byte) current_ypos#31 [phi:play_move_down::@7->play_move_down::@return#5] -- register_copy - //SEG395 [180] phi (byte) current_movedown_counter#12 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_down::@7->play_move_down::@return#6] -- vbuz1=vbuc1 + //SEG391 [181] phi (byte) current_piece_color#13 = (byte) current_piece_color#23 [phi:play_move_down::@7->play_move_down::@return#0] -- register_copy + //SEG392 [181] phi (byte) current_xpos#19 = (byte) current_xpos#36 [phi:play_move_down::@7->play_move_down::@return#1] -- register_copy + //SEG393 [181] phi (byte*) current_piece_gfx#17 = (byte*) current_piece_gfx#29 [phi:play_move_down::@7->play_move_down::@return#2] -- register_copy + //SEG394 [181] phi (byte) current_orientation#18 = (byte) current_orientation#33 [phi:play_move_down::@7->play_move_down::@return#3] -- register_copy + //SEG395 [181] phi (byte*) current_piece#13 = (byte*) current_piece#23 [phi:play_move_down::@7->play_move_down::@return#4] -- register_copy + //SEG396 [181] phi (byte) current_ypos#16 = (byte) current_ypos#31 [phi:play_move_down::@7->play_move_down::@return#5] -- register_copy + //SEG397 [181] phi (byte) current_movedown_counter#12 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_down::@7->play_move_down::@return#6] -- vbuz1=vbuc1 lda #0 sta current_movedown_counter - //SEG396 [180] phi (byte) play_move_down::return#3 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_move_down::@7->play_move_down::@return#7] -- vbuz1=vbuc1 + //SEG398 [181] phi (byte) play_move_down::return#3 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_move_down::@7->play_move_down::@return#7] -- vbuz1=vbuc1 lda #1 sta return_3 jmp breturn - //SEG397 [180] phi from play_move_down::@4 to play_move_down::@return [phi:play_move_down::@4->play_move_down::@return] + //SEG399 [181] phi from play_move_down::@4 to play_move_down::@return [phi:play_move_down::@4->play_move_down::@return] breturn_from_b4: - //SEG398 [180] phi (byte) current_piece_color#13 = (byte) current_piece_color#11 [phi:play_move_down::@4->play_move_down::@return#0] -- register_copy - //SEG399 [180] phi (byte) current_xpos#19 = (byte) current_xpos#16 [phi:play_move_down::@4->play_move_down::@return#1] -- register_copy - //SEG400 [180] phi (byte*) current_piece_gfx#17 = (byte*) current_piece_gfx#15 [phi:play_move_down::@4->play_move_down::@return#2] -- register_copy - //SEG401 [180] phi (byte) current_orientation#18 = (byte) current_orientation#15 [phi:play_move_down::@4->play_move_down::@return#3] -- register_copy - //SEG402 [180] phi (byte*) current_piece#13 = (byte*) current_piece#11 [phi:play_move_down::@4->play_move_down::@return#4] -- register_copy - //SEG403 [180] phi (byte) current_ypos#16 = (byte) current_ypos#12 [phi:play_move_down::@4->play_move_down::@return#5] -- register_copy - //SEG404 [180] phi (byte) current_movedown_counter#12 = (byte) current_movedown_counter#10 [phi:play_move_down::@4->play_move_down::@return#6] -- register_copy - //SEG405 [180] phi (byte) play_move_down::return#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_down::@4->play_move_down::@return#7] -- vbuz1=vbuc1 + //SEG400 [181] phi (byte) current_piece_color#13 = (byte) current_piece_color#11 [phi:play_move_down::@4->play_move_down::@return#0] -- register_copy + //SEG401 [181] phi (byte) current_xpos#19 = (byte) current_xpos#16 [phi:play_move_down::@4->play_move_down::@return#1] -- register_copy + //SEG402 [181] phi (byte*) current_piece_gfx#17 = (byte*) current_piece_gfx#15 [phi:play_move_down::@4->play_move_down::@return#2] -- register_copy + //SEG403 [181] phi (byte) current_orientation#18 = (byte) current_orientation#15 [phi:play_move_down::@4->play_move_down::@return#3] -- register_copy + //SEG404 [181] phi (byte*) current_piece#13 = (byte*) current_piece#11 [phi:play_move_down::@4->play_move_down::@return#4] -- register_copy + //SEG405 [181] phi (byte) current_ypos#16 = (byte) current_ypos#12 [phi:play_move_down::@4->play_move_down::@return#5] -- register_copy + //SEG406 [181] phi (byte) current_movedown_counter#12 = (byte) current_movedown_counter#10 [phi:play_move_down::@4->play_move_down::@return#6] -- register_copy + //SEG407 [181] phi (byte) play_move_down::return#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_down::@4->play_move_down::@return#7] -- vbuz1=vbuc1 lda #0 sta return_3 jmp breturn - //SEG406 play_move_down::@return + //SEG408 play_move_down::@return breturn: - //SEG407 [181] return + //SEG409 [182] return rts - //SEG408 play_move_down::@6 + //SEG410 play_move_down::@6 b6: - //SEG409 [182] (byte) current_ypos#4 ← ++ (byte) current_ypos#12 -- vbuz1=_inc_vbuz1 + //SEG411 [183] (byte) current_ypos#4 ← ++ (byte) current_ypos#12 -- vbuz1=_inc_vbuz1 inc current_ypos - //SEG410 [179] phi from play_move_down::@6 to play_move_down::@7 [phi:play_move_down::@6->play_move_down::@7] + //SEG412 [180] phi from play_move_down::@6 to play_move_down::@7 [phi:play_move_down::@6->play_move_down::@7] b7_from_b6: - //SEG411 [179] phi (byte) current_piece_color#23 = (byte) current_piece_color#11 [phi:play_move_down::@6->play_move_down::@7#0] -- register_copy - //SEG412 [179] phi (byte) current_xpos#36 = (byte) current_xpos#16 [phi:play_move_down::@6->play_move_down::@7#1] -- register_copy - //SEG413 [179] phi (byte*) current_piece_gfx#29 = (byte*) current_piece_gfx#15 [phi:play_move_down::@6->play_move_down::@7#2] -- register_copy - //SEG414 [179] phi (byte) current_orientation#33 = (byte) current_orientation#15 [phi:play_move_down::@6->play_move_down::@7#3] -- register_copy - //SEG415 [179] phi (byte*) current_piece#23 = (byte*) current_piece#11 [phi:play_move_down::@6->play_move_down::@7#4] -- register_copy - //SEG416 [179] phi (byte) current_ypos#31 = (byte) current_ypos#4 [phi:play_move_down::@6->play_move_down::@7#5] -- register_copy + //SEG413 [180] phi (byte) current_piece_color#23 = (byte) current_piece_color#11 [phi:play_move_down::@6->play_move_down::@7#0] -- register_copy + //SEG414 [180] phi (byte) current_xpos#36 = (byte) current_xpos#16 [phi:play_move_down::@6->play_move_down::@7#1] -- register_copy + //SEG415 [180] phi (byte*) current_piece_gfx#29 = (byte*) current_piece_gfx#15 [phi:play_move_down::@6->play_move_down::@7#2] -- register_copy + //SEG416 [180] phi (byte) current_orientation#33 = (byte) current_orientation#15 [phi:play_move_down::@6->play_move_down::@7#3] -- register_copy + //SEG417 [180] phi (byte*) current_piece#23 = (byte*) current_piece#11 [phi:play_move_down::@6->play_move_down::@7#4] -- register_copy + //SEG418 [180] phi (byte) current_ypos#31 = (byte) current_ypos#4 [phi:play_move_down::@6->play_move_down::@7#5] -- register_copy jmp b7 } -//SEG417 spawn_current +//SEG419 spawn_current spawn_current: { .label _1 = $6f .label _3 = $6d .label piece_idx = $2a - //SEG418 [184] phi from spawn_current to spawn_current::@1 [phi:spawn_current->spawn_current::@1] + //SEG420 [185] phi from spawn_current to spawn_current::@1 [phi:spawn_current->spawn_current::@1] b1_from_spawn_current: - //SEG419 [184] phi (byte) spawn_current::piece_idx#2 = (byte/signed byte/word/signed word/dword/signed dword) 7 [phi:spawn_current->spawn_current::@1#0] -- vbuz1=vbuc1 + //SEG421 [185] phi (byte) spawn_current::piece_idx#2 = (byte/signed byte/word/signed word/dword/signed dword) 7 [phi:spawn_current->spawn_current::@1#0] -- vbuz1=vbuc1 lda #7 sta piece_idx jmp b1 - //SEG420 spawn_current::@1 + //SEG422 spawn_current::@1 b1: - //SEG421 [185] if((byte) spawn_current::piece_idx#2==(byte/signed byte/word/signed word/dword/signed dword) 7) goto spawn_current::@2 -- vbuz1_eq_vbuc1_then_la1 + //SEG423 [186] if((byte) spawn_current::piece_idx#2==(byte/signed byte/word/signed word/dword/signed dword) 7) goto spawn_current::@2 -- vbuz1_eq_vbuc1_then_la1 lda piece_idx cmp #7 beq b2_from_b1 jmp b3 - //SEG422 spawn_current::@3 + //SEG424 spawn_current::@3 b3: - //SEG423 [186] (byte~) spawn_current::$3 ← (byte) spawn_current::piece_idx#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_rol_1 + //SEG425 [187] (byte~) spawn_current::$3 ← (byte) spawn_current::piece_idx#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_rol_1 lda piece_idx asl sta _3 - //SEG424 [187] (byte*) current_piece_gfx#10 ← (byte*)*((const word[]) PIECES#0 + (byte~) spawn_current::$3) + (byte/signed byte/word/signed word/dword/signed dword) 0 -- pbuz1=pptc1_derefidx_vbuz2_plus_0 + //SEG426 [188] (byte*) current_piece_gfx#10 ← (byte*)*((const word[]) PIECES#0 + (byte~) spawn_current::$3) + (byte/signed byte/word/signed word/dword/signed dword) 0 -- pbuz1=pptc1_derefidx_vbuz2_plus_0 ldy _3 lda PIECES,y sta current_piece_gfx lda PIECES+1,y sta current_piece_gfx+1 - //SEG425 [188] (byte) current_piece_color#15 ← *((const byte[]) PIECES_COLORS#0 + (byte) spawn_current::piece_idx#2) -- vbuz1=pbuc1_derefidx_vbuz2 + //SEG427 [189] (byte) current_piece_color#15 ← *((const byte[]) PIECES_COLORS#0 + (byte) spawn_current::piece_idx#2) -- vbuz1=pbuc1_derefidx_vbuz2 ldy piece_idx lda PIECES_COLORS,y sta current_piece_color jmp breturn - //SEG426 spawn_current::@return + //SEG428 spawn_current::@return breturn: - //SEG427 [189] return + //SEG429 [190] return rts - //SEG428 [190] phi from spawn_current::@1 to spawn_current::@2 [phi:spawn_current::@1->spawn_current::@2] + //SEG430 [191] phi from spawn_current::@1 to spawn_current::@2 [phi:spawn_current::@1->spawn_current::@2] b2_from_b1: jmp b2 - //SEG429 spawn_current::@2 + //SEG431 spawn_current::@2 b2: - //SEG430 [191] call sid_rnd + //SEG432 [192] call sid_rnd jsr sid_rnd - //SEG431 [192] (byte) sid_rnd::return#2 ← (byte) sid_rnd::return#0 -- vbuz1=vbuz2 + //SEG433 [193] (byte) sid_rnd::return#2 ← (byte) sid_rnd::return#0 -- vbuz1=vbuz2 lda sid_rnd.return sta sid_rnd.return_2 jmp b7 - //SEG432 spawn_current::@7 + //SEG434 spawn_current::@7 b7: - //SEG433 [193] (byte~) spawn_current::$1 ← (byte) sid_rnd::return#2 -- vbuz1=vbuz2 + //SEG435 [194] (byte~) spawn_current::$1 ← (byte) sid_rnd::return#2 -- vbuz1=vbuz2 lda sid_rnd.return_2 sta _1 - //SEG434 [194] (byte) spawn_current::piece_idx#1 ← (byte~) spawn_current::$1 & (byte/signed byte/word/signed word/dword/signed dword) 7 -- vbuz1=vbuz2_band_vbuc1 + //SEG436 [195] (byte) spawn_current::piece_idx#1 ← (byte~) spawn_current::$1 & (byte/signed byte/word/signed word/dword/signed dword) 7 -- vbuz1=vbuz2_band_vbuc1 lda #7 and _1 sta piece_idx - //SEG435 [184] phi from spawn_current::@7 to spawn_current::@1 [phi:spawn_current::@7->spawn_current::@1] + //SEG437 [185] phi from spawn_current::@7 to spawn_current::@1 [phi:spawn_current::@7->spawn_current::@1] b1_from_b7: - //SEG436 [184] phi (byte) spawn_current::piece_idx#2 = (byte) spawn_current::piece_idx#1 [phi:spawn_current::@7->spawn_current::@1#0] -- register_copy + //SEG438 [185] phi (byte) spawn_current::piece_idx#2 = (byte) spawn_current::piece_idx#1 [phi:spawn_current::@7->spawn_current::@1#0] -- register_copy jmp b1 } -//SEG437 sid_rnd +//SEG439 sid_rnd sid_rnd: { .label return = $70 .label return_2 = $6e - //SEG438 [195] (byte) sid_rnd::return#0 ← *((const byte*) SID_VOICE3_OSC#0) -- vbuz1=_deref_pbuc1 + //SEG440 [196] (byte) sid_rnd::return#0 ← *((const byte*) SID_VOICE3_OSC#0) -- vbuz1=_deref_pbuc1 lda SID_VOICE3_OSC sta return jmp breturn - //SEG439 sid_rnd::@return + //SEG441 sid_rnd::@return breturn: - //SEG440 [196] return + //SEG442 [197] return rts } -//SEG441 remove_lines +//SEG443 remove_lines remove_lines: { .label c = $71 .label r = $2c @@ -7578,140 +7599,140 @@ remove_lines: { .label x = $2d .label y = $2b .label full = $2e - //SEG442 [198] phi from remove_lines to remove_lines::@1 [phi:remove_lines->remove_lines::@1] + //SEG444 [199] phi from remove_lines to remove_lines::@1 [phi:remove_lines->remove_lines::@1] b1_from_remove_lines: - //SEG443 [198] phi (byte) remove_lines::y#8 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:remove_lines->remove_lines::@1#0] -- vbuz1=vbuc1 + //SEG445 [199] phi (byte) remove_lines::y#8 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:remove_lines->remove_lines::@1#0] -- vbuz1=vbuc1 lda #0 sta y - //SEG444 [198] phi (byte) remove_lines::w#12 = (const byte) PLAYFIELD_LINES#0*(const byte) PLAYFIELD_COLS#0-(byte/signed byte/word/signed word/dword/signed dword) 1 [phi:remove_lines->remove_lines::@1#1] -- vbuz1=vbuc1 + //SEG446 [199] phi (byte) remove_lines::w#12 = (const byte) PLAYFIELD_LINES#0*(const byte) PLAYFIELD_COLS#0-(byte/signed byte/word/signed word/dword/signed dword) 1 [phi:remove_lines->remove_lines::@1#1] -- vbuz1=vbuc1 lda #PLAYFIELD_LINES*PLAYFIELD_COLS-1 sta w - //SEG445 [198] phi (byte) remove_lines::r#3 = (const byte) PLAYFIELD_LINES#0*(const byte) PLAYFIELD_COLS#0-(byte/signed byte/word/signed word/dword/signed dword) 1 [phi:remove_lines->remove_lines::@1#2] -- vbuz1=vbuc1 + //SEG447 [199] phi (byte) remove_lines::r#3 = (const byte) PLAYFIELD_LINES#0*(const byte) PLAYFIELD_COLS#0-(byte/signed byte/word/signed word/dword/signed dword) 1 [phi:remove_lines->remove_lines::@1#2] -- vbuz1=vbuc1 lda #PLAYFIELD_LINES*PLAYFIELD_COLS-1 sta r jmp b1 - //SEG446 [198] phi from remove_lines::@4 to remove_lines::@1 [phi:remove_lines::@4->remove_lines::@1] + //SEG448 [199] phi from remove_lines::@4 to remove_lines::@1 [phi:remove_lines::@4->remove_lines::@1] b1_from_b4: - //SEG447 [198] phi (byte) remove_lines::y#8 = (byte) remove_lines::y#1 [phi:remove_lines::@4->remove_lines::@1#0] -- register_copy - //SEG448 [198] phi (byte) remove_lines::w#12 = (byte) remove_lines::w#11 [phi:remove_lines::@4->remove_lines::@1#1] -- register_copy - //SEG449 [198] phi (byte) remove_lines::r#3 = (byte) remove_lines::r#1 [phi:remove_lines::@4->remove_lines::@1#2] -- register_copy + //SEG449 [199] phi (byte) remove_lines::y#8 = (byte) remove_lines::y#1 [phi:remove_lines::@4->remove_lines::@1#0] -- register_copy + //SEG450 [199] phi (byte) remove_lines::w#12 = (byte) remove_lines::w#11 [phi:remove_lines::@4->remove_lines::@1#1] -- register_copy + //SEG451 [199] phi (byte) remove_lines::r#3 = (byte) remove_lines::r#1 [phi:remove_lines::@4->remove_lines::@1#2] -- register_copy jmp b1 - //SEG450 remove_lines::@1 + //SEG452 remove_lines::@1 b1: - //SEG451 [199] phi from remove_lines::@1 to remove_lines::@2 [phi:remove_lines::@1->remove_lines::@2] + //SEG453 [200] phi from remove_lines::@1 to remove_lines::@2 [phi:remove_lines::@1->remove_lines::@2] b2_from_b1: - //SEG452 [199] phi (byte) remove_lines::full#4 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:remove_lines::@1->remove_lines::@2#0] -- vbuz1=vbuc1 + //SEG454 [200] phi (byte) remove_lines::full#4 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:remove_lines::@1->remove_lines::@2#0] -- vbuz1=vbuc1 lda #1 sta full - //SEG453 [199] phi (byte) remove_lines::x#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:remove_lines::@1->remove_lines::@2#1] -- vbuz1=vbuc1 + //SEG455 [200] phi (byte) remove_lines::x#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:remove_lines::@1->remove_lines::@2#1] -- vbuz1=vbuc1 lda #0 sta x - //SEG454 [199] phi (byte) remove_lines::w#4 = (byte) remove_lines::w#12 [phi:remove_lines::@1->remove_lines::@2#2] -- register_copy - //SEG455 [199] phi (byte) remove_lines::r#2 = (byte) remove_lines::r#3 [phi:remove_lines::@1->remove_lines::@2#3] -- register_copy + //SEG456 [200] phi (byte) remove_lines::w#4 = (byte) remove_lines::w#12 [phi:remove_lines::@1->remove_lines::@2#2] -- register_copy + //SEG457 [200] phi (byte) remove_lines::r#2 = (byte) remove_lines::r#3 [phi:remove_lines::@1->remove_lines::@2#3] -- register_copy jmp b2 - //SEG456 [199] phi from remove_lines::@3 to remove_lines::@2 [phi:remove_lines::@3->remove_lines::@2] + //SEG458 [200] phi from remove_lines::@3 to remove_lines::@2 [phi:remove_lines::@3->remove_lines::@2] b2_from_b3: - //SEG457 [199] phi (byte) remove_lines::full#4 = (byte) remove_lines::full#2 [phi:remove_lines::@3->remove_lines::@2#0] -- register_copy - //SEG458 [199] phi (byte) remove_lines::x#2 = (byte) remove_lines::x#1 [phi:remove_lines::@3->remove_lines::@2#1] -- register_copy - //SEG459 [199] phi (byte) remove_lines::w#4 = (byte) remove_lines::w#1 [phi:remove_lines::@3->remove_lines::@2#2] -- register_copy - //SEG460 [199] phi (byte) remove_lines::r#2 = (byte) remove_lines::r#1 [phi:remove_lines::@3->remove_lines::@2#3] -- register_copy + //SEG459 [200] phi (byte) remove_lines::full#4 = (byte) remove_lines::full#2 [phi:remove_lines::@3->remove_lines::@2#0] -- register_copy + //SEG460 [200] phi (byte) remove_lines::x#2 = (byte) remove_lines::x#1 [phi:remove_lines::@3->remove_lines::@2#1] -- register_copy + //SEG461 [200] phi (byte) remove_lines::w#4 = (byte) remove_lines::w#1 [phi:remove_lines::@3->remove_lines::@2#2] -- register_copy + //SEG462 [200] phi (byte) remove_lines::r#2 = (byte) remove_lines::r#1 [phi:remove_lines::@3->remove_lines::@2#3] -- register_copy jmp b2 - //SEG461 remove_lines::@2 + //SEG463 remove_lines::@2 b2: - //SEG462 [200] (byte) remove_lines::c#0 ← *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) remove_lines::r#2) -- vbuz1=pbuc1_derefidx_vbuz2 + //SEG464 [201] (byte) remove_lines::c#0 ← *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) remove_lines::r#2) -- vbuz1=pbuc1_derefidx_vbuz2 ldy r lda playfield,y sta c - //SEG463 [201] (byte) remove_lines::r#1 ← -- (byte) remove_lines::r#2 -- vbuz1=_dec_vbuz1 + //SEG465 [202] (byte) remove_lines::r#1 ← -- (byte) remove_lines::r#2 -- vbuz1=_dec_vbuz1 dec r - //SEG464 [202] if((byte) remove_lines::c#0!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto remove_lines::@17 -- vbuz1_neq_0_then_la1 + //SEG466 [203] if((byte) remove_lines::c#0!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto remove_lines::@17 -- vbuz1_neq_0_then_la1 lda c cmp #0 bne b17_from_b2 - //SEG465 [203] phi from remove_lines::@2 to remove_lines::@3 [phi:remove_lines::@2->remove_lines::@3] + //SEG467 [204] phi from remove_lines::@2 to remove_lines::@3 [phi:remove_lines::@2->remove_lines::@3] b3_from_b2: - //SEG466 [203] phi (byte) remove_lines::full#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:remove_lines::@2->remove_lines::@3#0] -- vbuz1=vbuc1 + //SEG468 [204] phi (byte) remove_lines::full#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:remove_lines::@2->remove_lines::@3#0] -- vbuz1=vbuc1 lda #0 sta full jmp b3 - //SEG467 remove_lines::@3 + //SEG469 remove_lines::@3 b3: - //SEG468 [204] *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) remove_lines::w#4) ← (byte) remove_lines::c#0 -- pbuc1_derefidx_vbuz1=vbuz2 + //SEG470 [205] *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) remove_lines::w#4) ← (byte) remove_lines::c#0 -- pbuc1_derefidx_vbuz1=vbuz2 lda c ldy w sta playfield,y - //SEG469 [205] (byte) remove_lines::w#1 ← -- (byte) remove_lines::w#4 -- vbuz1=_dec_vbuz1 + //SEG471 [206] (byte) remove_lines::w#1 ← -- (byte) remove_lines::w#4 -- vbuz1=_dec_vbuz1 dec w - //SEG470 [206] (byte) remove_lines::x#1 ← ++ (byte) remove_lines::x#2 -- vbuz1=_inc_vbuz1 + //SEG472 [207] (byte) remove_lines::x#1 ← ++ (byte) remove_lines::x#2 -- vbuz1=_inc_vbuz1 inc x - //SEG471 [207] if((byte) remove_lines::x#1!=(const byte) PLAYFIELD_COLS#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto remove_lines::@2 -- vbuz1_neq_vbuc1_then_la1 + //SEG473 [208] if((byte) remove_lines::x#1!=(const byte) PLAYFIELD_COLS#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto remove_lines::@2 -- vbuz1_neq_vbuc1_then_la1 lda x cmp #PLAYFIELD_COLS-1+1 bne b2_from_b3 jmp b9 - //SEG472 remove_lines::@9 + //SEG474 remove_lines::@9 b9: - //SEG473 [208] if((byte) remove_lines::full#2!=(byte/signed byte/word/signed word/dword/signed dword) 1) goto remove_lines::@4 -- vbuz1_neq_vbuc1_then_la1 + //SEG475 [209] if((byte) remove_lines::full#2!=(byte/signed byte/word/signed word/dword/signed dword) 1) goto remove_lines::@4 -- vbuz1_neq_vbuc1_then_la1 lda full cmp #1 bne b4_from_b9 jmp b10 - //SEG474 remove_lines::@10 + //SEG476 remove_lines::@10 b10: - //SEG475 [209] (byte) remove_lines::w#2 ← (byte) remove_lines::w#1 + (const byte) PLAYFIELD_COLS#0 -- vbuz1=vbuz1_plus_vbuc1 + //SEG477 [210] (byte) remove_lines::w#2 ← (byte) remove_lines::w#1 + (const byte) PLAYFIELD_COLS#0 -- vbuz1=vbuz1_plus_vbuc1 lda #PLAYFIELD_COLS clc adc w sta w - //SEG476 [210] phi from remove_lines::@10 remove_lines::@9 to remove_lines::@4 [phi:remove_lines::@10/remove_lines::@9->remove_lines::@4] + //SEG478 [211] phi from remove_lines::@10 remove_lines::@9 to remove_lines::@4 [phi:remove_lines::@10/remove_lines::@9->remove_lines::@4] b4_from_b10: b4_from_b9: - //SEG477 [210] phi (byte) remove_lines::w#11 = (byte) remove_lines::w#2 [phi:remove_lines::@10/remove_lines::@9->remove_lines::@4#0] -- register_copy + //SEG479 [211] phi (byte) remove_lines::w#11 = (byte) remove_lines::w#2 [phi:remove_lines::@10/remove_lines::@9->remove_lines::@4#0] -- register_copy jmp b4 - //SEG478 remove_lines::@4 + //SEG480 remove_lines::@4 b4: - //SEG479 [211] (byte) remove_lines::y#1 ← ++ (byte) remove_lines::y#8 -- vbuz1=_inc_vbuz1 + //SEG481 [212] (byte) remove_lines::y#1 ← ++ (byte) remove_lines::y#8 -- vbuz1=_inc_vbuz1 inc y - //SEG480 [212] if((byte) remove_lines::y#1!=(const byte) PLAYFIELD_LINES#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto remove_lines::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG482 [213] if((byte) remove_lines::y#1!=(const byte) PLAYFIELD_LINES#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto remove_lines::@1 -- vbuz1_neq_vbuc1_then_la1 lda y cmp #PLAYFIELD_LINES-1+1 bne b1_from_b4 - //SEG481 [213] phi from remove_lines::@4 remove_lines::@6 to remove_lines::@5 [phi:remove_lines::@4/remove_lines::@6->remove_lines::@5] + //SEG483 [214] phi from remove_lines::@4 remove_lines::@6 to remove_lines::@5 [phi:remove_lines::@4/remove_lines::@6->remove_lines::@5] b5_from_b4: b5_from_b6: - //SEG482 [213] phi (byte) remove_lines::w#6 = (byte) remove_lines::w#11 [phi:remove_lines::@4/remove_lines::@6->remove_lines::@5#0] -- register_copy + //SEG484 [214] phi (byte) remove_lines::w#6 = (byte) remove_lines::w#11 [phi:remove_lines::@4/remove_lines::@6->remove_lines::@5#0] -- register_copy jmp b5 - //SEG483 remove_lines::@5 + //SEG485 remove_lines::@5 b5: - //SEG484 [214] if((byte) remove_lines::w#6!=(byte/word/signed word/dword/signed dword) 255) goto remove_lines::@6 -- vbuz1_neq_vbuc1_then_la1 + //SEG486 [215] if((byte) remove_lines::w#6!=(byte/word/signed word/dword/signed dword) 255) goto remove_lines::@6 -- vbuz1_neq_vbuc1_then_la1 lda w cmp #$ff bne b6 jmp breturn - //SEG485 remove_lines::@return + //SEG487 remove_lines::@return breturn: - //SEG486 [215] return + //SEG488 [216] return rts - //SEG487 remove_lines::@6 + //SEG489 remove_lines::@6 b6: - //SEG488 [216] *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) remove_lines::w#6) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- pbuc1_derefidx_vbuz1=vbuc2 + //SEG490 [217] *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) remove_lines::w#6) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- pbuc1_derefidx_vbuz1=vbuc2 ldy w lda #0 sta playfield,y - //SEG489 [217] (byte) remove_lines::w#3 ← -- (byte) remove_lines::w#6 -- vbuz1=_dec_vbuz1 + //SEG491 [218] (byte) remove_lines::w#3 ← -- (byte) remove_lines::w#6 -- vbuz1=_dec_vbuz1 dec w jmp b5_from_b6 - //SEG490 [218] phi from remove_lines::@2 to remove_lines::@17 [phi:remove_lines::@2->remove_lines::@17] + //SEG492 [219] phi from remove_lines::@2 to remove_lines::@17 [phi:remove_lines::@2->remove_lines::@17] b17_from_b2: jmp b17 - //SEG491 remove_lines::@17 + //SEG493 remove_lines::@17 b17: - //SEG492 [203] phi from remove_lines::@17 to remove_lines::@3 [phi:remove_lines::@17->remove_lines::@3] + //SEG494 [204] phi from remove_lines::@17 to remove_lines::@3 [phi:remove_lines::@17->remove_lines::@3] b3_from_b17: - //SEG493 [203] phi (byte) remove_lines::full#2 = (byte) remove_lines::full#4 [phi:remove_lines::@17->remove_lines::@3#0] -- register_copy + //SEG495 [204] phi (byte) remove_lines::full#2 = (byte) remove_lines::full#4 [phi:remove_lines::@17->remove_lines::@3#0] -- register_copy jmp b3 } -//SEG494 lock_current +//SEG496 lock_current lock_current: { .label ypos2 = $30 .label playfield_line = $72 @@ -7723,111 +7744,111 @@ lock_current: { .label i_3 = $32 .label i_7 = $32 .label i_9 = $32 - //SEG495 [219] (byte) lock_current::ypos2#0 ← (byte) current_ypos#12 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_rol_1 + //SEG497 [220] (byte) lock_current::ypos2#0 ← (byte) current_ypos#12 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_rol_1 lda current_ypos asl sta ypos2 - //SEG496 [220] phi from lock_current to lock_current::@1 [phi:lock_current->lock_current::@1] + //SEG498 [221] phi from lock_current to lock_current::@1 [phi:lock_current->lock_current::@1] b1_from_lock_current: - //SEG497 [220] phi (byte) lock_current::l#6 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:lock_current->lock_current::@1#0] -- vbuz1=vbuc1 + //SEG499 [221] phi (byte) lock_current::l#6 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:lock_current->lock_current::@1#0] -- vbuz1=vbuc1 lda #0 sta l - //SEG498 [220] phi (byte) lock_current::i#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:lock_current->lock_current::@1#1] -- vbuz1=vbuc1 + //SEG500 [221] phi (byte) lock_current::i#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:lock_current->lock_current::@1#1] -- vbuz1=vbuc1 lda #0 sta i_3 - //SEG499 [220] phi (byte) lock_current::ypos2#2 = (byte) lock_current::ypos2#0 [phi:lock_current->lock_current::@1#2] -- register_copy + //SEG501 [221] phi (byte) lock_current::ypos2#2 = (byte) lock_current::ypos2#0 [phi:lock_current->lock_current::@1#2] -- register_copy jmp b1 - //SEG500 lock_current::@1 + //SEG502 lock_current::@1 b1: - //SEG501 [221] (byte*) lock_current::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) lock_current::ypos2#2) -- pbuz1=pptc1_derefidx_vbuz2 + //SEG503 [222] (byte*) lock_current::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) lock_current::ypos2#2) -- pbuz1=pptc1_derefidx_vbuz2 ldy ypos2 lda playfield_lines,y sta playfield_line lda playfield_lines+1,y sta playfield_line+1 - //SEG502 [222] (byte) lock_current::col#0 ← (byte) current_xpos#16 -- vbuz1=vbuz2 + //SEG504 [223] (byte) lock_current::col#0 ← (byte) current_xpos#16 -- vbuz1=vbuz2 lda current_xpos sta col - //SEG503 [223] phi from lock_current::@1 to lock_current::@2 [phi:lock_current::@1->lock_current::@2] + //SEG505 [224] phi from lock_current::@1 to lock_current::@2 [phi:lock_current::@1->lock_current::@2] b2_from_b1: - //SEG504 [223] phi (byte) lock_current::c#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:lock_current::@1->lock_current::@2#0] -- vbuz1=vbuc1 + //SEG506 [224] phi (byte) lock_current::c#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:lock_current::@1->lock_current::@2#0] -- vbuz1=vbuc1 lda #0 sta c - //SEG505 [223] phi (byte) lock_current::col#2 = (byte) lock_current::col#0 [phi:lock_current::@1->lock_current::@2#1] -- register_copy - //SEG506 [223] phi (byte) lock_current::i#2 = (byte) lock_current::i#3 [phi:lock_current::@1->lock_current::@2#2] -- register_copy + //SEG507 [224] phi (byte) lock_current::col#2 = (byte) lock_current::col#0 [phi:lock_current::@1->lock_current::@2#1] -- register_copy + //SEG508 [224] phi (byte) lock_current::i#2 = (byte) lock_current::i#3 [phi:lock_current::@1->lock_current::@2#2] -- register_copy jmp b2 - //SEG507 lock_current::@2 + //SEG509 lock_current::@2 b2: - //SEG508 [224] (byte) lock_current::i#1 ← ++ (byte) lock_current::i#2 -- vbuz1=_inc_vbuz2 + //SEG510 [225] (byte) lock_current::i#1 ← ++ (byte) lock_current::i#2 -- vbuz1=_inc_vbuz2 ldy i_2 iny sty i - //SEG509 [225] if(*((byte*) current_piece_gfx#15 + (byte) lock_current::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto lock_current::@3 -- pbuz1_derefidx_vbuz2_eq_0_then_la1 + //SEG511 [226] if(*((byte*) current_piece_gfx#15 + (byte) lock_current::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto lock_current::@3 -- pbuz1_derefidx_vbuz2_eq_0_then_la1 ldy i_2 lda (current_piece_gfx),y cmp #0 beq b3 jmp b4 - //SEG510 lock_current::@4 + //SEG512 lock_current::@4 b4: - //SEG511 [226] *((byte*) lock_current::playfield_line#0 + (byte) lock_current::col#2) ← (byte) current_piece_color#11 -- pbuz1_derefidx_vbuz2=vbuz3 + //SEG513 [227] *((byte*) lock_current::playfield_line#0 + (byte) lock_current::col#2) ← (byte) current_piece_color#11 -- pbuz1_derefidx_vbuz2=vbuz3 lda current_piece_color ldy col sta (playfield_line),y jmp b3 - //SEG512 lock_current::@3 + //SEG514 lock_current::@3 b3: - //SEG513 [227] (byte) lock_current::col#1 ← ++ (byte) lock_current::col#2 -- vbuz1=_inc_vbuz1 + //SEG515 [228] (byte) lock_current::col#1 ← ++ (byte) lock_current::col#2 -- vbuz1=_inc_vbuz1 inc col - //SEG514 [228] (byte) lock_current::c#1 ← ++ (byte) lock_current::c#2 -- vbuz1=_inc_vbuz1 + //SEG516 [229] (byte) lock_current::c#1 ← ++ (byte) lock_current::c#2 -- vbuz1=_inc_vbuz1 inc c - //SEG515 [229] if((byte) lock_current::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto lock_current::@8 -- vbuz1_neq_vbuc1_then_la1 + //SEG517 [230] if((byte) lock_current::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto lock_current::@8 -- vbuz1_neq_vbuc1_then_la1 lda c cmp #4 bne b8 jmp b5 - //SEG516 lock_current::@5 + //SEG518 lock_current::@5 b5: - //SEG517 [230] (byte) lock_current::ypos2#1 ← (byte) lock_current::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 -- vbuz1=vbuz1_plus_2 + //SEG519 [231] (byte) lock_current::ypos2#1 ← (byte) lock_current::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 -- vbuz1=vbuz1_plus_2 lda ypos2 clc adc #2 sta ypos2 - //SEG518 [231] (byte) lock_current::l#1 ← ++ (byte) lock_current::l#6 -- vbuz1=_inc_vbuz1 + //SEG520 [232] (byte) lock_current::l#1 ← ++ (byte) lock_current::l#6 -- vbuz1=_inc_vbuz1 inc l - //SEG519 [232] if((byte) lock_current::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto lock_current::@7 -- vbuz1_neq_vbuc1_then_la1 + //SEG521 [233] if((byte) lock_current::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto lock_current::@7 -- vbuz1_neq_vbuc1_then_la1 lda l cmp #4 bne b7 jmp breturn - //SEG520 lock_current::@return + //SEG522 lock_current::@return breturn: - //SEG521 [233] return + //SEG523 [234] return rts - //SEG522 lock_current::@7 + //SEG524 lock_current::@7 b7: - //SEG523 [234] (byte~) lock_current::i#7 ← (byte) lock_current::i#1 -- vbuz1=vbuz2 + //SEG525 [235] (byte~) lock_current::i#7 ← (byte) lock_current::i#1 -- vbuz1=vbuz2 lda i sta i_7 - //SEG524 [220] phi from lock_current::@7 to lock_current::@1 [phi:lock_current::@7->lock_current::@1] + //SEG526 [221] phi from lock_current::@7 to lock_current::@1 [phi:lock_current::@7->lock_current::@1] b1_from_b7: - //SEG525 [220] phi (byte) lock_current::l#6 = (byte) lock_current::l#1 [phi:lock_current::@7->lock_current::@1#0] -- register_copy - //SEG526 [220] phi (byte) lock_current::i#3 = (byte~) lock_current::i#7 [phi:lock_current::@7->lock_current::@1#1] -- register_copy - //SEG527 [220] phi (byte) lock_current::ypos2#2 = (byte) lock_current::ypos2#1 [phi:lock_current::@7->lock_current::@1#2] -- register_copy + //SEG527 [221] phi (byte) lock_current::l#6 = (byte) lock_current::l#1 [phi:lock_current::@7->lock_current::@1#0] -- register_copy + //SEG528 [221] phi (byte) lock_current::i#3 = (byte~) lock_current::i#7 [phi:lock_current::@7->lock_current::@1#1] -- register_copy + //SEG529 [221] phi (byte) lock_current::ypos2#2 = (byte) lock_current::ypos2#1 [phi:lock_current::@7->lock_current::@1#2] -- register_copy jmp b1 - //SEG528 lock_current::@8 + //SEG530 lock_current::@8 b8: - //SEG529 [235] (byte~) lock_current::i#9 ← (byte) lock_current::i#1 -- vbuz1=vbuz2 + //SEG531 [236] (byte~) lock_current::i#9 ← (byte) lock_current::i#1 -- vbuz1=vbuz2 lda i sta i_9 - //SEG530 [223] phi from lock_current::@8 to lock_current::@2 [phi:lock_current::@8->lock_current::@2] + //SEG532 [224] phi from lock_current::@8 to lock_current::@2 [phi:lock_current::@8->lock_current::@2] b2_from_b8: - //SEG531 [223] phi (byte) lock_current::c#2 = (byte) lock_current::c#1 [phi:lock_current::@8->lock_current::@2#0] -- register_copy - //SEG532 [223] phi (byte) lock_current::col#2 = (byte) lock_current::col#1 [phi:lock_current::@8->lock_current::@2#1] -- register_copy - //SEG533 [223] phi (byte) lock_current::i#2 = (byte~) lock_current::i#9 [phi:lock_current::@8->lock_current::@2#2] -- register_copy + //SEG533 [224] phi (byte) lock_current::c#2 = (byte) lock_current::c#1 [phi:lock_current::@8->lock_current::@2#0] -- register_copy + //SEG534 [224] phi (byte) lock_current::col#2 = (byte) lock_current::col#1 [phi:lock_current::@8->lock_current::@2#1] -- register_copy + //SEG535 [224] phi (byte) lock_current::i#2 = (byte~) lock_current::i#9 [phi:lock_current::@8->lock_current::@2#2] -- register_copy jmp b2 } -//SEG534 keyboard_event_pressed +//SEG536 keyboard_event_pressed keyboard_event_pressed: { .label _0 = $75 .label _1 = $77 @@ -7839,66 +7860,66 @@ keyboard_event_pressed: { .label keycode = $35 .label return_11 = $78 .label return_12 = $69 - //SEG535 [237] (byte~) keyboard_event_pressed::$0 ← (byte) keyboard_event_pressed::keycode#5 >> (byte/signed byte/word/signed word/dword/signed dword) 3 -- vbuz1=vbuz2_ror_3 + //SEG537 [238] (byte~) keyboard_event_pressed::$0 ← (byte) keyboard_event_pressed::keycode#5 >> (byte/signed byte/word/signed word/dword/signed dword) 3 -- vbuz1=vbuz2_ror_3 lda keycode lsr lsr lsr sta _0 - //SEG536 [238] (byte) keyboard_event_pressed::row_bits#0 ← *((const byte[8]) keyboard_scan_values#0 + (byte~) keyboard_event_pressed::$0) -- vbuz1=pbuc1_derefidx_vbuz2 + //SEG538 [239] (byte) keyboard_event_pressed::row_bits#0 ← *((const byte[8]) keyboard_scan_values#0 + (byte~) keyboard_event_pressed::$0) -- vbuz1=pbuc1_derefidx_vbuz2 ldy _0 lda keyboard_scan_values,y sta row_bits - //SEG537 [239] (byte~) keyboard_event_pressed::$1 ← (byte) keyboard_event_pressed::keycode#5 & (byte/signed byte/word/signed word/dword/signed dword) 7 -- vbuz1=vbuz2_band_vbuc1 + //SEG539 [240] (byte~) keyboard_event_pressed::$1 ← (byte) keyboard_event_pressed::keycode#5 & (byte/signed byte/word/signed word/dword/signed dword) 7 -- vbuz1=vbuz2_band_vbuc1 lda #7 and keycode sta _1 - //SEG538 [240] (byte) keyboard_event_pressed::return#11 ← (byte) keyboard_event_pressed::row_bits#0 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte~) keyboard_event_pressed::$1) -- vbuz1=vbuz2_band_pbuc1_derefidx_vbuz3 + //SEG540 [241] (byte) keyboard_event_pressed::return#11 ← (byte) keyboard_event_pressed::row_bits#0 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte~) keyboard_event_pressed::$1) -- vbuz1=vbuz2_band_pbuc1_derefidx_vbuz3 lda row_bits ldy _1 and keyboard_matrix_col_bitmask,y sta return_11 jmp breturn - //SEG539 keyboard_event_pressed::@return + //SEG541 keyboard_event_pressed::@return breturn: - //SEG540 [241] return + //SEG542 [242] return rts } -//SEG541 keyboard_event_get +//SEG543 keyboard_event_get keyboard_event_get: { .label return = $36 .label return_3 = $49 - //SEG542 [242] if((byte) keyboard_events_size#13==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_get::@return -- vbuz1_eq_0_then_la1 + //SEG544 [243] if((byte) keyboard_events_size#13==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_get::@return -- vbuz1_eq_0_then_la1 lda keyboard_events_size cmp #0 beq breturn_from_keyboard_event_get jmp b3 - //SEG543 keyboard_event_get::@3 + //SEG545 keyboard_event_get::@3 b3: - //SEG544 [243] (byte) keyboard_events_size#4 ← -- (byte) keyboard_events_size#13 -- vbuz1=_dec_vbuz1 + //SEG546 [244] (byte) keyboard_events_size#4 ← -- (byte) keyboard_events_size#13 -- vbuz1=_dec_vbuz1 dec keyboard_events_size - //SEG545 [244] (byte) keyboard_event_get::return#1 ← *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#4) -- vbuz1=pbuc1_derefidx_vbuz2 + //SEG547 [245] (byte) keyboard_event_get::return#1 ← *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#4) -- vbuz1=pbuc1_derefidx_vbuz2 ldy keyboard_events_size lda keyboard_events,y sta return - //SEG546 [245] phi from keyboard_event_get::@3 to keyboard_event_get::@return [phi:keyboard_event_get::@3->keyboard_event_get::@return] + //SEG548 [246] phi from keyboard_event_get::@3 to keyboard_event_get::@return [phi:keyboard_event_get::@3->keyboard_event_get::@return] breturn_from_b3: - //SEG547 [245] phi (byte) keyboard_events_size#16 = (byte) keyboard_events_size#4 [phi:keyboard_event_get::@3->keyboard_event_get::@return#0] -- register_copy - //SEG548 [245] phi (byte) keyboard_event_get::return#2 = (byte) keyboard_event_get::return#1 [phi:keyboard_event_get::@3->keyboard_event_get::@return#1] -- register_copy + //SEG549 [246] phi (byte) keyboard_events_size#16 = (byte) keyboard_events_size#4 [phi:keyboard_event_get::@3->keyboard_event_get::@return#0] -- register_copy + //SEG550 [246] phi (byte) keyboard_event_get::return#2 = (byte) keyboard_event_get::return#1 [phi:keyboard_event_get::@3->keyboard_event_get::@return#1] -- register_copy jmp breturn - //SEG549 [245] phi from keyboard_event_get to keyboard_event_get::@return [phi:keyboard_event_get->keyboard_event_get::@return] + //SEG551 [246] phi from keyboard_event_get to keyboard_event_get::@return [phi:keyboard_event_get->keyboard_event_get::@return] breturn_from_keyboard_event_get: - //SEG550 [245] phi (byte) keyboard_events_size#16 = (byte) keyboard_events_size#13 [phi:keyboard_event_get->keyboard_event_get::@return#0] -- register_copy - //SEG551 [245] phi (byte) keyboard_event_get::return#2 = (byte/word/signed word/dword/signed dword) 255 [phi:keyboard_event_get->keyboard_event_get::@return#1] -- vbuz1=vbuc1 + //SEG552 [246] phi (byte) keyboard_events_size#16 = (byte) keyboard_events_size#13 [phi:keyboard_event_get->keyboard_event_get::@return#0] -- register_copy + //SEG553 [246] phi (byte) keyboard_event_get::return#2 = (byte/word/signed word/dword/signed dword) 255 [phi:keyboard_event_get->keyboard_event_get::@return#1] -- vbuz1=vbuc1 lda #$ff sta return jmp breturn - //SEG552 keyboard_event_get::@return + //SEG554 keyboard_event_get::@return breturn: - //SEG553 [246] return + //SEG555 [247] return rts } -//SEG554 keyboard_event_scan +//SEG556 keyboard_event_scan keyboard_event_scan: { .label _3 = $84 .label _4 = $85 @@ -7912,352 +7933,352 @@ keyboard_event_scan: { .label row = $37 .label col = $38 .label event_type = $86 - //SEG555 [248] phi from keyboard_event_scan to keyboard_event_scan::@1 [phi:keyboard_event_scan->keyboard_event_scan::@1] + //SEG557 [249] phi from keyboard_event_scan to keyboard_event_scan::@1 [phi:keyboard_event_scan->keyboard_event_scan::@1] b1_from_keyboard_event_scan: - //SEG556 [248] phi (byte) keyboard_events_size#29 = (byte) keyboard_events_size#19 [phi:keyboard_event_scan->keyboard_event_scan::@1#0] -- register_copy - //SEG557 [248] phi (byte) keyboard_event_scan::keycode#11 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:keyboard_event_scan->keyboard_event_scan::@1#1] -- vbuz1=vbuc1 + //SEG558 [249] phi (byte) keyboard_events_size#29 = (byte) keyboard_events_size#19 [phi:keyboard_event_scan->keyboard_event_scan::@1#0] -- register_copy + //SEG559 [249] phi (byte) keyboard_event_scan::keycode#11 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:keyboard_event_scan->keyboard_event_scan::@1#1] -- vbuz1=vbuc1 lda #0 sta keycode - //SEG558 [248] phi (byte) keyboard_event_scan::row#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:keyboard_event_scan->keyboard_event_scan::@1#2] -- vbuz1=vbuc1 + //SEG560 [249] phi (byte) keyboard_event_scan::row#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:keyboard_event_scan->keyboard_event_scan::@1#2] -- vbuz1=vbuc1 lda #0 sta row jmp b1 - //SEG559 [248] phi from keyboard_event_scan::@3 to keyboard_event_scan::@1 [phi:keyboard_event_scan::@3->keyboard_event_scan::@1] + //SEG561 [249] phi from keyboard_event_scan::@3 to keyboard_event_scan::@1 [phi:keyboard_event_scan::@3->keyboard_event_scan::@1] b1_from_b3: - //SEG560 [248] phi (byte) keyboard_events_size#29 = (byte) keyboard_events_size#13 [phi:keyboard_event_scan::@3->keyboard_event_scan::@1#0] -- register_copy - //SEG561 [248] phi (byte) keyboard_event_scan::keycode#11 = (byte) keyboard_event_scan::keycode#14 [phi:keyboard_event_scan::@3->keyboard_event_scan::@1#1] -- register_copy - //SEG562 [248] phi (byte) keyboard_event_scan::row#2 = (byte) keyboard_event_scan::row#1 [phi:keyboard_event_scan::@3->keyboard_event_scan::@1#2] -- register_copy + //SEG562 [249] phi (byte) keyboard_events_size#29 = (byte) keyboard_events_size#13 [phi:keyboard_event_scan::@3->keyboard_event_scan::@1#0] -- register_copy + //SEG563 [249] phi (byte) keyboard_event_scan::keycode#11 = (byte) keyboard_event_scan::keycode#14 [phi:keyboard_event_scan::@3->keyboard_event_scan::@1#1] -- register_copy + //SEG564 [249] phi (byte) keyboard_event_scan::row#2 = (byte) keyboard_event_scan::row#1 [phi:keyboard_event_scan::@3->keyboard_event_scan::@1#2] -- register_copy jmp b1 - //SEG563 keyboard_event_scan::@1 + //SEG565 keyboard_event_scan::@1 b1: - //SEG564 [249] (byte) keyboard_matrix_read::rowid#0 ← (byte) keyboard_event_scan::row#2 -- vbuz1=vbuz2 + //SEG566 [250] (byte) keyboard_matrix_read::rowid#0 ← (byte) keyboard_event_scan::row#2 -- vbuz1=vbuz2 lda row sta keyboard_matrix_read.rowid - //SEG565 [250] call keyboard_matrix_read + //SEG567 [251] call keyboard_matrix_read jsr keyboard_matrix_read - //SEG566 [251] (byte) keyboard_matrix_read::return#2 ← (byte) keyboard_matrix_read::return#0 -- vbuz1=vbuz2 + //SEG568 [252] (byte) keyboard_matrix_read::return#2 ← (byte) keyboard_matrix_read::return#0 -- vbuz1=vbuz2 lda keyboard_matrix_read.return sta keyboard_matrix_read.return_2 jmp b25 - //SEG567 keyboard_event_scan::@25 + //SEG569 keyboard_event_scan::@25 b25: - //SEG568 [252] (byte) keyboard_event_scan::row_scan#0 ← (byte) keyboard_matrix_read::return#2 -- vbuz1=vbuz2 + //SEG570 [253] (byte) keyboard_event_scan::row_scan#0 ← (byte) keyboard_matrix_read::return#2 -- vbuz1=vbuz2 lda keyboard_matrix_read.return_2 sta row_scan - //SEG569 [253] if((byte) keyboard_event_scan::row_scan#0!=*((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2)) goto keyboard_event_scan::@4 -- vbuz1_neq_pbuc1_derefidx_vbuz2_then_la1 + //SEG571 [254] if((byte) keyboard_event_scan::row_scan#0!=*((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2)) goto keyboard_event_scan::@4 -- vbuz1_neq_pbuc1_derefidx_vbuz2_then_la1 lda row_scan ldy row cmp keyboard_scan_values,y bne b4_from_b25 jmp b13 - //SEG570 keyboard_event_scan::@13 + //SEG572 keyboard_event_scan::@13 b13: - //SEG571 [254] (byte) keyboard_event_scan::keycode#1 ← (byte) keyboard_event_scan::keycode#11 + (byte/signed byte/word/signed word/dword/signed dword) 8 -- vbuz1=vbuz1_plus_vbuc1 + //SEG573 [255] (byte) keyboard_event_scan::keycode#1 ← (byte) keyboard_event_scan::keycode#11 + (byte/signed byte/word/signed word/dword/signed dword) 8 -- vbuz1=vbuz1_plus_vbuc1 lda #8 clc adc keycode sta keycode - //SEG572 [255] phi from keyboard_event_scan::@13 keyboard_event_scan::@19 to keyboard_event_scan::@3 [phi:keyboard_event_scan::@13/keyboard_event_scan::@19->keyboard_event_scan::@3] + //SEG574 [256] phi from keyboard_event_scan::@13 keyboard_event_scan::@19 to keyboard_event_scan::@3 [phi:keyboard_event_scan::@13/keyboard_event_scan::@19->keyboard_event_scan::@3] b3_from_b13: b3_from_b19: - //SEG573 [255] phi (byte) keyboard_events_size#13 = (byte) keyboard_events_size#29 [phi:keyboard_event_scan::@13/keyboard_event_scan::@19->keyboard_event_scan::@3#0] -- register_copy - //SEG574 [255] phi (byte) keyboard_event_scan::keycode#14 = (byte) keyboard_event_scan::keycode#1 [phi:keyboard_event_scan::@13/keyboard_event_scan::@19->keyboard_event_scan::@3#1] -- register_copy + //SEG575 [256] phi (byte) keyboard_events_size#13 = (byte) keyboard_events_size#29 [phi:keyboard_event_scan::@13/keyboard_event_scan::@19->keyboard_event_scan::@3#0] -- register_copy + //SEG576 [256] phi (byte) keyboard_event_scan::keycode#14 = (byte) keyboard_event_scan::keycode#1 [phi:keyboard_event_scan::@13/keyboard_event_scan::@19->keyboard_event_scan::@3#1] -- register_copy jmp b3 - //SEG575 keyboard_event_scan::@3 + //SEG577 keyboard_event_scan::@3 b3: - //SEG576 [256] (byte) keyboard_event_scan::row#1 ← ++ (byte) keyboard_event_scan::row#2 -- vbuz1=_inc_vbuz1 + //SEG578 [257] (byte) keyboard_event_scan::row#1 ← ++ (byte) keyboard_event_scan::row#2 -- vbuz1=_inc_vbuz1 inc row - //SEG577 [257] if((byte) keyboard_event_scan::row#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto keyboard_event_scan::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG579 [258] if((byte) keyboard_event_scan::row#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto keyboard_event_scan::@1 -- vbuz1_neq_vbuc1_then_la1 lda row cmp #8 bne b1_from_b3 - //SEG578 [258] phi from keyboard_event_scan::@3 to keyboard_event_scan::@20 [phi:keyboard_event_scan::@3->keyboard_event_scan::@20] + //SEG580 [259] phi from keyboard_event_scan::@3 to keyboard_event_scan::@20 [phi:keyboard_event_scan::@3->keyboard_event_scan::@20] b20_from_b3: jmp b20 - //SEG579 keyboard_event_scan::@20 + //SEG581 keyboard_event_scan::@20 b20: - //SEG580 [259] call keyboard_event_pressed - //SEG581 [236] phi from keyboard_event_scan::@20 to keyboard_event_pressed [phi:keyboard_event_scan::@20->keyboard_event_pressed] + //SEG582 [260] call keyboard_event_pressed + //SEG583 [237] phi from keyboard_event_scan::@20 to keyboard_event_pressed [phi:keyboard_event_scan::@20->keyboard_event_pressed] keyboard_event_pressed_from_b20: - //SEG582 [236] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_LSHIFT#0 [phi:keyboard_event_scan::@20->keyboard_event_pressed#0] -- vbuz1=vbuc1 + //SEG584 [237] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_LSHIFT#0 [phi:keyboard_event_scan::@20->keyboard_event_pressed#0] -- vbuz1=vbuc1 lda #KEY_LSHIFT sta keyboard_event_pressed.keycode jsr keyboard_event_pressed - //SEG583 [260] (byte) keyboard_event_pressed::return#0 ← (byte) keyboard_event_pressed::return#11 -- vbuz1=vbuz2 + //SEG585 [261] (byte) keyboard_event_pressed::return#0 ← (byte) keyboard_event_pressed::return#11 -- vbuz1=vbuz2 lda keyboard_event_pressed.return_11 sta keyboard_event_pressed.return jmp b26 - //SEG584 keyboard_event_scan::@26 + //SEG586 keyboard_event_scan::@26 b26: - //SEG585 [261] (byte~) keyboard_event_scan::$14 ← (byte) keyboard_event_pressed::return#0 -- vbuz1=vbuz2 + //SEG587 [262] (byte~) keyboard_event_scan::$14 ← (byte) keyboard_event_pressed::return#0 -- vbuz1=vbuz2 lda keyboard_event_pressed.return sta _14 - //SEG586 [262] if((byte~) keyboard_event_scan::$14==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@9 -- vbuz1_eq_0_then_la1 + //SEG588 [263] if((byte~) keyboard_event_scan::$14==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@9 -- vbuz1_eq_0_then_la1 lda _14 cmp #0 beq b9_from_b26 - //SEG587 [263] phi from keyboard_event_scan::@26 to keyboard_event_scan::@21 [phi:keyboard_event_scan::@26->keyboard_event_scan::@21] + //SEG589 [264] phi from keyboard_event_scan::@26 to keyboard_event_scan::@21 [phi:keyboard_event_scan::@26->keyboard_event_scan::@21] b21_from_b26: jmp b21 - //SEG588 keyboard_event_scan::@21 + //SEG590 keyboard_event_scan::@21 b21: - //SEG589 [264] phi from keyboard_event_scan::@21 keyboard_event_scan::@26 to keyboard_event_scan::@9 [phi:keyboard_event_scan::@21/keyboard_event_scan::@26->keyboard_event_scan::@9] + //SEG591 [265] phi from keyboard_event_scan::@21 keyboard_event_scan::@26 to keyboard_event_scan::@9 [phi:keyboard_event_scan::@21/keyboard_event_scan::@26->keyboard_event_scan::@9] b9_from_b21: b9_from_b26: jmp b9 - //SEG590 keyboard_event_scan::@9 + //SEG592 keyboard_event_scan::@9 b9: - //SEG591 [265] call keyboard_event_pressed - //SEG592 [236] phi from keyboard_event_scan::@9 to keyboard_event_pressed [phi:keyboard_event_scan::@9->keyboard_event_pressed] + //SEG593 [266] call keyboard_event_pressed + //SEG594 [237] phi from keyboard_event_scan::@9 to keyboard_event_pressed [phi:keyboard_event_scan::@9->keyboard_event_pressed] keyboard_event_pressed_from_b9: - //SEG593 [236] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_RSHIFT#0 [phi:keyboard_event_scan::@9->keyboard_event_pressed#0] -- vbuz1=vbuc1 + //SEG595 [237] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_RSHIFT#0 [phi:keyboard_event_scan::@9->keyboard_event_pressed#0] -- vbuz1=vbuc1 lda #KEY_RSHIFT sta keyboard_event_pressed.keycode jsr keyboard_event_pressed - //SEG594 [266] (byte) keyboard_event_pressed::return#1 ← (byte) keyboard_event_pressed::return#11 -- vbuz1=vbuz2 + //SEG596 [267] (byte) keyboard_event_pressed::return#1 ← (byte) keyboard_event_pressed::return#11 -- vbuz1=vbuz2 lda keyboard_event_pressed.return_11 sta keyboard_event_pressed.return_1 jmp b27 - //SEG595 keyboard_event_scan::@27 + //SEG597 keyboard_event_scan::@27 b27: - //SEG596 [267] (byte~) keyboard_event_scan::$18 ← (byte) keyboard_event_pressed::return#1 -- vbuz1=vbuz2 + //SEG598 [268] (byte~) keyboard_event_scan::$18 ← (byte) keyboard_event_pressed::return#1 -- vbuz1=vbuz2 lda keyboard_event_pressed.return_1 sta _18 - //SEG597 [268] if((byte~) keyboard_event_scan::$18==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@10 -- vbuz1_eq_0_then_la1 + //SEG599 [269] if((byte~) keyboard_event_scan::$18==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@10 -- vbuz1_eq_0_then_la1 lda _18 cmp #0 beq b10_from_b27 - //SEG598 [269] phi from keyboard_event_scan::@27 to keyboard_event_scan::@22 [phi:keyboard_event_scan::@27->keyboard_event_scan::@22] + //SEG600 [270] phi from keyboard_event_scan::@27 to keyboard_event_scan::@22 [phi:keyboard_event_scan::@27->keyboard_event_scan::@22] b22_from_b27: jmp b22 - //SEG599 keyboard_event_scan::@22 + //SEG601 keyboard_event_scan::@22 b22: - //SEG600 [270] phi from keyboard_event_scan::@22 keyboard_event_scan::@27 to keyboard_event_scan::@10 [phi:keyboard_event_scan::@22/keyboard_event_scan::@27->keyboard_event_scan::@10] + //SEG602 [271] phi from keyboard_event_scan::@22 keyboard_event_scan::@27 to keyboard_event_scan::@10 [phi:keyboard_event_scan::@22/keyboard_event_scan::@27->keyboard_event_scan::@10] b10_from_b22: b10_from_b27: jmp b10 - //SEG601 keyboard_event_scan::@10 + //SEG603 keyboard_event_scan::@10 b10: - //SEG602 [271] call keyboard_event_pressed - //SEG603 [236] phi from keyboard_event_scan::@10 to keyboard_event_pressed [phi:keyboard_event_scan::@10->keyboard_event_pressed] + //SEG604 [272] call keyboard_event_pressed + //SEG605 [237] phi from keyboard_event_scan::@10 to keyboard_event_pressed [phi:keyboard_event_scan::@10->keyboard_event_pressed] keyboard_event_pressed_from_b10: - //SEG604 [236] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_CTRL#0 [phi:keyboard_event_scan::@10->keyboard_event_pressed#0] -- vbuz1=vbuc1 + //SEG606 [237] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_CTRL#0 [phi:keyboard_event_scan::@10->keyboard_event_pressed#0] -- vbuz1=vbuc1 lda #KEY_CTRL sta keyboard_event_pressed.keycode jsr keyboard_event_pressed - //SEG605 [272] (byte) keyboard_event_pressed::return#2 ← (byte) keyboard_event_pressed::return#11 -- vbuz1=vbuz2 + //SEG607 [273] (byte) keyboard_event_pressed::return#2 ← (byte) keyboard_event_pressed::return#11 -- vbuz1=vbuz2 lda keyboard_event_pressed.return_11 sta keyboard_event_pressed.return_2 jmp b28 - //SEG606 keyboard_event_scan::@28 + //SEG608 keyboard_event_scan::@28 b28: - //SEG607 [273] (byte~) keyboard_event_scan::$22 ← (byte) keyboard_event_pressed::return#2 -- vbuz1=vbuz2 + //SEG609 [274] (byte~) keyboard_event_scan::$22 ← (byte) keyboard_event_pressed::return#2 -- vbuz1=vbuz2 lda keyboard_event_pressed.return_2 sta _22 - //SEG608 [274] if((byte~) keyboard_event_scan::$22==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@11 -- vbuz1_eq_0_then_la1 + //SEG610 [275] if((byte~) keyboard_event_scan::$22==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@11 -- vbuz1_eq_0_then_la1 lda _22 cmp #0 beq b11_from_b28 - //SEG609 [275] phi from keyboard_event_scan::@28 to keyboard_event_scan::@23 [phi:keyboard_event_scan::@28->keyboard_event_scan::@23] + //SEG611 [276] phi from keyboard_event_scan::@28 to keyboard_event_scan::@23 [phi:keyboard_event_scan::@28->keyboard_event_scan::@23] b23_from_b28: jmp b23 - //SEG610 keyboard_event_scan::@23 + //SEG612 keyboard_event_scan::@23 b23: - //SEG611 [276] phi from keyboard_event_scan::@23 keyboard_event_scan::@28 to keyboard_event_scan::@11 [phi:keyboard_event_scan::@23/keyboard_event_scan::@28->keyboard_event_scan::@11] + //SEG613 [277] phi from keyboard_event_scan::@23 keyboard_event_scan::@28 to keyboard_event_scan::@11 [phi:keyboard_event_scan::@23/keyboard_event_scan::@28->keyboard_event_scan::@11] b11_from_b23: b11_from_b28: jmp b11 - //SEG612 keyboard_event_scan::@11 + //SEG614 keyboard_event_scan::@11 b11: - //SEG613 [277] call keyboard_event_pressed - //SEG614 [236] phi from keyboard_event_scan::@11 to keyboard_event_pressed [phi:keyboard_event_scan::@11->keyboard_event_pressed] + //SEG615 [278] call keyboard_event_pressed + //SEG616 [237] phi from keyboard_event_scan::@11 to keyboard_event_pressed [phi:keyboard_event_scan::@11->keyboard_event_pressed] keyboard_event_pressed_from_b11: - //SEG615 [236] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_COMMODORE#0 [phi:keyboard_event_scan::@11->keyboard_event_pressed#0] -- vbuz1=vbuc1 + //SEG617 [237] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_COMMODORE#0 [phi:keyboard_event_scan::@11->keyboard_event_pressed#0] -- vbuz1=vbuc1 lda #KEY_COMMODORE sta keyboard_event_pressed.keycode jsr keyboard_event_pressed - //SEG616 [278] (byte) keyboard_event_pressed::return#10 ← (byte) keyboard_event_pressed::return#11 -- vbuz1=vbuz2 + //SEG618 [279] (byte) keyboard_event_pressed::return#10 ← (byte) keyboard_event_pressed::return#11 -- vbuz1=vbuz2 lda keyboard_event_pressed.return_11 sta keyboard_event_pressed.return_10 jmp b29 - //SEG617 keyboard_event_scan::@29 + //SEG619 keyboard_event_scan::@29 b29: - //SEG618 [279] (byte~) keyboard_event_scan::$26 ← (byte) keyboard_event_pressed::return#10 -- vbuz1=vbuz2 + //SEG620 [280] (byte~) keyboard_event_scan::$26 ← (byte) keyboard_event_pressed::return#10 -- vbuz1=vbuz2 lda keyboard_event_pressed.return_10 sta _26 - //SEG619 [280] if((byte~) keyboard_event_scan::$26==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@return -- vbuz1_eq_0_then_la1 + //SEG621 [281] if((byte~) keyboard_event_scan::$26==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@return -- vbuz1_eq_0_then_la1 lda _26 cmp #0 beq breturn - //SEG620 [281] phi from keyboard_event_scan::@29 to keyboard_event_scan::@24 [phi:keyboard_event_scan::@29->keyboard_event_scan::@24] + //SEG622 [282] phi from keyboard_event_scan::@29 to keyboard_event_scan::@24 [phi:keyboard_event_scan::@29->keyboard_event_scan::@24] b24_from_b29: jmp b24 - //SEG621 keyboard_event_scan::@24 + //SEG623 keyboard_event_scan::@24 b24: jmp breturn - //SEG622 keyboard_event_scan::@return + //SEG624 keyboard_event_scan::@return breturn: - //SEG623 [282] return + //SEG625 [283] return rts - //SEG624 [283] phi from keyboard_event_scan::@25 to keyboard_event_scan::@4 [phi:keyboard_event_scan::@25->keyboard_event_scan::@4] + //SEG626 [284] phi from keyboard_event_scan::@25 to keyboard_event_scan::@4 [phi:keyboard_event_scan::@25->keyboard_event_scan::@4] b4_from_b25: - //SEG625 [283] phi (byte) keyboard_events_size#10 = (byte) keyboard_events_size#29 [phi:keyboard_event_scan::@25->keyboard_event_scan::@4#0] -- register_copy - //SEG626 [283] phi (byte) keyboard_event_scan::keycode#10 = (byte) keyboard_event_scan::keycode#11 [phi:keyboard_event_scan::@25->keyboard_event_scan::@4#1] -- register_copy - //SEG627 [283] phi (byte) keyboard_event_scan::col#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:keyboard_event_scan::@25->keyboard_event_scan::@4#2] -- vbuz1=vbuc1 + //SEG627 [284] phi (byte) keyboard_events_size#10 = (byte) keyboard_events_size#29 [phi:keyboard_event_scan::@25->keyboard_event_scan::@4#0] -- register_copy + //SEG628 [284] phi (byte) keyboard_event_scan::keycode#10 = (byte) keyboard_event_scan::keycode#11 [phi:keyboard_event_scan::@25->keyboard_event_scan::@4#1] -- register_copy + //SEG629 [284] phi (byte) keyboard_event_scan::col#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:keyboard_event_scan::@25->keyboard_event_scan::@4#2] -- vbuz1=vbuc1 lda #0 sta col jmp b4 - //SEG628 [283] phi from keyboard_event_scan::@5 to keyboard_event_scan::@4 [phi:keyboard_event_scan::@5->keyboard_event_scan::@4] + //SEG630 [284] phi from keyboard_event_scan::@5 to keyboard_event_scan::@4 [phi:keyboard_event_scan::@5->keyboard_event_scan::@4] b4_from_b5: - //SEG629 [283] phi (byte) keyboard_events_size#10 = (byte) keyboard_events_size#30 [phi:keyboard_event_scan::@5->keyboard_event_scan::@4#0] -- register_copy - //SEG630 [283] phi (byte) keyboard_event_scan::keycode#10 = (byte) keyboard_event_scan::keycode#15 [phi:keyboard_event_scan::@5->keyboard_event_scan::@4#1] -- register_copy - //SEG631 [283] phi (byte) keyboard_event_scan::col#2 = (byte) keyboard_event_scan::col#1 [phi:keyboard_event_scan::@5->keyboard_event_scan::@4#2] -- register_copy + //SEG631 [284] phi (byte) keyboard_events_size#10 = (byte) keyboard_events_size#30 [phi:keyboard_event_scan::@5->keyboard_event_scan::@4#0] -- register_copy + //SEG632 [284] phi (byte) keyboard_event_scan::keycode#10 = (byte) keyboard_event_scan::keycode#15 [phi:keyboard_event_scan::@5->keyboard_event_scan::@4#1] -- register_copy + //SEG633 [284] phi (byte) keyboard_event_scan::col#2 = (byte) keyboard_event_scan::col#1 [phi:keyboard_event_scan::@5->keyboard_event_scan::@4#2] -- register_copy jmp b4 - //SEG632 keyboard_event_scan::@4 + //SEG634 keyboard_event_scan::@4 b4: - //SEG633 [284] (byte~) keyboard_event_scan::$3 ← (byte) keyboard_event_scan::row_scan#0 ^ *((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2) -- vbuz1=vbuz2_bxor_pbuc1_derefidx_vbuz3 + //SEG635 [285] (byte~) keyboard_event_scan::$3 ← (byte) keyboard_event_scan::row_scan#0 ^ *((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2) -- vbuz1=vbuz2_bxor_pbuc1_derefidx_vbuz3 lda row_scan ldy row eor keyboard_scan_values,y sta _3 - //SEG634 [285] (byte~) keyboard_event_scan::$4 ← (byte~) keyboard_event_scan::$3 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_event_scan::col#2) -- vbuz1=vbuz2_band_pbuc1_derefidx_vbuz3 + //SEG636 [286] (byte~) keyboard_event_scan::$4 ← (byte~) keyboard_event_scan::$3 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_event_scan::col#2) -- vbuz1=vbuz2_band_pbuc1_derefidx_vbuz3 lda _3 ldy col and keyboard_matrix_col_bitmask,y sta _4 - //SEG635 [286] if((byte~) keyboard_event_scan::$4==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@5 -- vbuz1_eq_0_then_la1 + //SEG637 [287] if((byte~) keyboard_event_scan::$4==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@5 -- vbuz1_eq_0_then_la1 lda _4 cmp #0 beq b5_from_b4 jmp b15 - //SEG636 keyboard_event_scan::@15 + //SEG638 keyboard_event_scan::@15 b15: - //SEG637 [287] if((byte) keyboard_events_size#10==(byte/signed byte/word/signed word/dword/signed dword) 8) goto keyboard_event_scan::@5 -- vbuz1_eq_vbuc1_then_la1 + //SEG639 [288] if((byte) keyboard_events_size#10==(byte/signed byte/word/signed word/dword/signed dword) 8) goto keyboard_event_scan::@5 -- vbuz1_eq_vbuc1_then_la1 lda keyboard_events_size cmp #8 beq b5_from_b15 jmp b16 - //SEG638 keyboard_event_scan::@16 + //SEG640 keyboard_event_scan::@16 b16: - //SEG639 [288] (byte) keyboard_event_scan::event_type#0 ← (byte) keyboard_event_scan::row_scan#0 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_event_scan::col#2) -- vbuz1=vbuz2_band_pbuc1_derefidx_vbuz3 + //SEG641 [289] (byte) keyboard_event_scan::event_type#0 ← (byte) keyboard_event_scan::row_scan#0 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_event_scan::col#2) -- vbuz1=vbuz2_band_pbuc1_derefidx_vbuz3 lda row_scan ldy col and keyboard_matrix_col_bitmask,y sta event_type - //SEG640 [289] if((byte) keyboard_event_scan::event_type#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@7 -- vbuz1_eq_0_then_la1 + //SEG642 [290] if((byte) keyboard_event_scan::event_type#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@7 -- vbuz1_eq_0_then_la1 lda event_type cmp #0 beq b7 jmp b17 - //SEG641 keyboard_event_scan::@17 + //SEG643 keyboard_event_scan::@17 b17: - //SEG642 [290] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte) keyboard_event_scan::keycode#10 -- pbuc1_derefidx_vbuz1=vbuz2 + //SEG644 [291] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte) keyboard_event_scan::keycode#10 -- pbuc1_derefidx_vbuz1=vbuz2 lda keycode ldy keyboard_events_size sta keyboard_events,y - //SEG643 [291] (byte) keyboard_events_size#2 ← ++ (byte) keyboard_events_size#10 -- vbuz1=_inc_vbuz1 + //SEG645 [292] (byte) keyboard_events_size#2 ← ++ (byte) keyboard_events_size#10 -- vbuz1=_inc_vbuz1 inc keyboard_events_size - //SEG644 [292] phi from keyboard_event_scan::@15 keyboard_event_scan::@17 keyboard_event_scan::@4 keyboard_event_scan::@7 to keyboard_event_scan::@5 [phi:keyboard_event_scan::@15/keyboard_event_scan::@17/keyboard_event_scan::@4/keyboard_event_scan::@7->keyboard_event_scan::@5] + //SEG646 [293] phi from keyboard_event_scan::@15 keyboard_event_scan::@17 keyboard_event_scan::@4 keyboard_event_scan::@7 to keyboard_event_scan::@5 [phi:keyboard_event_scan::@15/keyboard_event_scan::@17/keyboard_event_scan::@4/keyboard_event_scan::@7->keyboard_event_scan::@5] b5_from_b15: b5_from_b17: b5_from_b4: b5_from_b7: - //SEG645 [292] phi (byte) keyboard_events_size#30 = (byte) keyboard_events_size#10 [phi:keyboard_event_scan::@15/keyboard_event_scan::@17/keyboard_event_scan::@4/keyboard_event_scan::@7->keyboard_event_scan::@5#0] -- register_copy + //SEG647 [293] phi (byte) keyboard_events_size#30 = (byte) keyboard_events_size#10 [phi:keyboard_event_scan::@15/keyboard_event_scan::@17/keyboard_event_scan::@4/keyboard_event_scan::@7->keyboard_event_scan::@5#0] -- register_copy jmp b5 - //SEG646 keyboard_event_scan::@5 + //SEG648 keyboard_event_scan::@5 b5: - //SEG647 [293] (byte) keyboard_event_scan::keycode#15 ← ++ (byte) keyboard_event_scan::keycode#10 -- vbuz1=_inc_vbuz1 + //SEG649 [294] (byte) keyboard_event_scan::keycode#15 ← ++ (byte) keyboard_event_scan::keycode#10 -- vbuz1=_inc_vbuz1 inc keycode - //SEG648 [294] (byte) keyboard_event_scan::col#1 ← ++ (byte) keyboard_event_scan::col#2 -- vbuz1=_inc_vbuz1 + //SEG650 [295] (byte) keyboard_event_scan::col#1 ← ++ (byte) keyboard_event_scan::col#2 -- vbuz1=_inc_vbuz1 inc col - //SEG649 [295] if((byte) keyboard_event_scan::col#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto keyboard_event_scan::@4 -- vbuz1_neq_vbuc1_then_la1 + //SEG651 [296] if((byte) keyboard_event_scan::col#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto keyboard_event_scan::@4 -- vbuz1_neq_vbuc1_then_la1 lda col cmp #8 bne b4_from_b5 jmp b19 - //SEG650 keyboard_event_scan::@19 + //SEG652 keyboard_event_scan::@19 b19: - //SEG651 [296] *((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2) ← (byte) keyboard_event_scan::row_scan#0 -- pbuc1_derefidx_vbuz1=vbuz2 + //SEG653 [297] *((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2) ← (byte) keyboard_event_scan::row_scan#0 -- pbuc1_derefidx_vbuz1=vbuz2 lda row_scan ldy row sta keyboard_scan_values,y jmp b3_from_b19 - //SEG652 keyboard_event_scan::@7 + //SEG654 keyboard_event_scan::@7 b7: - //SEG653 [297] (byte/word/dword~) keyboard_event_scan::$11 ← (byte) keyboard_event_scan::keycode#10 | (byte/signed byte/word/signed word/dword/signed dword) 64 -- vbuz1=vbuz2_bor_vbuc1 + //SEG655 [298] (byte/word/dword~) keyboard_event_scan::$11 ← (byte) keyboard_event_scan::keycode#10 | (byte/signed byte/word/signed word/dword/signed dword) 64 -- vbuz1=vbuz2_bor_vbuc1 lda #$40 ora keycode sta _11 - //SEG654 [298] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte/word/dword~) keyboard_event_scan::$11 -- pbuc1_derefidx_vbuz1=vbuz2 + //SEG656 [299] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte/word/dword~) keyboard_event_scan::$11 -- pbuc1_derefidx_vbuz1=vbuz2 lda _11 ldy keyboard_events_size sta keyboard_events,y - //SEG655 [299] (byte) keyboard_events_size#1 ← ++ (byte) keyboard_events_size#10 -- vbuz1=_inc_vbuz1 + //SEG657 [300] (byte) keyboard_events_size#1 ← ++ (byte) keyboard_events_size#10 -- vbuz1=_inc_vbuz1 inc keyboard_events_size jmp b5_from_b7 } -//SEG656 keyboard_matrix_read +//SEG658 keyboard_matrix_read keyboard_matrix_read: { .label return = $88 .label rowid = $79 .label return_2 = $7a - //SEG657 [300] *((const byte*) CIA1_PORT_A#0) ← *((const byte[8]) keyboard_matrix_row_bitmask#0 + (byte) keyboard_matrix_read::rowid#0) -- _deref_pbuc1=pbuc2_derefidx_vbuz1 + //SEG659 [301] *((const byte*) CIA1_PORT_A#0) ← *((const byte[8]) keyboard_matrix_row_bitmask#0 + (byte) keyboard_matrix_read::rowid#0) -- _deref_pbuc1=pbuc2_derefidx_vbuz1 ldy rowid lda keyboard_matrix_row_bitmask,y sta CIA1_PORT_A - //SEG658 [301] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) -- vbuz1=_bnot__deref_pbuc1 + //SEG660 [302] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) -- vbuz1=_bnot__deref_pbuc1 lda CIA1_PORT_B eor #$ff sta return jmp breturn - //SEG659 keyboard_matrix_read::@return + //SEG661 keyboard_matrix_read::@return breturn: - //SEG660 [302] return + //SEG662 [303] return rts } -//SEG661 tables_init +//SEG663 tables_init tables_init: { .label _1 = $89 .label pli = $3c .label idx = $3e .label j = $3b - //SEG662 [304] phi from tables_init to tables_init::@1 [phi:tables_init->tables_init::@1] + //SEG664 [305] phi from tables_init to tables_init::@1 [phi:tables_init->tables_init::@1] b1_from_tables_init: - //SEG663 [304] phi (byte) tables_init::idx#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:tables_init->tables_init::@1#0] -- vbuz1=vbuc1 + //SEG665 [305] phi (byte) tables_init::idx#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:tables_init->tables_init::@1#0] -- vbuz1=vbuc1 lda #0 sta idx - //SEG664 [304] phi (byte*) tables_init::pli#2 = (const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 [phi:tables_init->tables_init::@1#1] -- pbuz1=pbuc1 + //SEG666 [305] phi (byte*) tables_init::pli#2 = (const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 [phi:tables_init->tables_init::@1#1] -- pbuz1=pbuc1 lda #playfield sta pli+1 - //SEG665 [304] phi (byte) tables_init::j#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:tables_init->tables_init::@1#2] -- vbuz1=vbuc1 + //SEG667 [305] phi (byte) tables_init::j#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:tables_init->tables_init::@1#2] -- vbuz1=vbuc1 lda #0 sta j jmp b1 - //SEG666 [304] phi from tables_init::@1 to tables_init::@1 [phi:tables_init::@1->tables_init::@1] + //SEG668 [305] phi from tables_init::@1 to tables_init::@1 [phi:tables_init::@1->tables_init::@1] b1_from_b1: - //SEG667 [304] phi (byte) tables_init::idx#2 = (byte) tables_init::idx#1 [phi:tables_init::@1->tables_init::@1#0] -- register_copy - //SEG668 [304] phi (byte*) tables_init::pli#2 = (byte*) tables_init::pli#1 [phi:tables_init::@1->tables_init::@1#1] -- register_copy - //SEG669 [304] phi (byte) tables_init::j#2 = (byte) tables_init::j#1 [phi:tables_init::@1->tables_init::@1#2] -- register_copy + //SEG669 [305] phi (byte) tables_init::idx#2 = (byte) tables_init::idx#1 [phi:tables_init::@1->tables_init::@1#0] -- register_copy + //SEG670 [305] phi (byte*) tables_init::pli#2 = (byte*) tables_init::pli#1 [phi:tables_init::@1->tables_init::@1#1] -- register_copy + //SEG671 [305] phi (byte) tables_init::j#2 = (byte) tables_init::j#1 [phi:tables_init::@1->tables_init::@1#2] -- register_copy jmp b1 - //SEG670 tables_init::@1 + //SEG672 tables_init::@1 b1: - //SEG671 [305] (byte~) tables_init::$1 ← (byte) tables_init::j#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_rol_1 + //SEG673 [306] (byte~) tables_init::$1 ← (byte) tables_init::j#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_rol_1 lda j asl sta _1 - //SEG672 [306] *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte~) tables_init::$1) ← (byte*) tables_init::pli#2 -- pptc1_derefidx_vbuz1=pbuz2 + //SEG674 [307] *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte~) tables_init::$1) ← (byte*) tables_init::pli#2 -- pptc1_derefidx_vbuz1=pbuz2 ldy _1 lda pli sta playfield_lines,y lda pli+1 sta playfield_lines+1,y - //SEG673 [307] *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0 + (byte) tables_init::j#2) ← (byte) tables_init::idx#2 -- pbuc1_derefidx_vbuz1=vbuz2 + //SEG675 [308] *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0 + (byte) tables_init::j#2) ← (byte) tables_init::idx#2 -- pbuc1_derefidx_vbuz1=vbuz2 lda idx ldy j sta playfield_lines_idx,y - //SEG674 [308] (byte*) tables_init::pli#1 ← (byte*) tables_init::pli#2 + (const byte) PLAYFIELD_COLS#0 -- pbuz1=pbuz1_plus_vbuc1 + //SEG676 [309] (byte*) tables_init::pli#1 ← (byte*) tables_init::pli#2 + (const byte) PLAYFIELD_COLS#0 -- pbuz1=pbuz1_plus_vbuc1 lda pli clc adc #PLAYFIELD_COLS @@ -8265,30 +8286,30 @@ tables_init: { bcc !+ inc pli+1 !: - //SEG675 [309] (byte) tables_init::idx#1 ← (byte) tables_init::idx#2 + (const byte) PLAYFIELD_COLS#0 -- vbuz1=vbuz1_plus_vbuc1 + //SEG677 [310] (byte) tables_init::idx#1 ← (byte) tables_init::idx#2 + (const byte) PLAYFIELD_COLS#0 -- vbuz1=vbuz1_plus_vbuc1 lda #PLAYFIELD_COLS clc adc idx sta idx - //SEG676 [310] (byte) tables_init::j#1 ← ++ (byte) tables_init::j#2 -- vbuz1=_inc_vbuz1 + //SEG678 [311] (byte) tables_init::j#1 ← ++ (byte) tables_init::j#2 -- vbuz1=_inc_vbuz1 inc j - //SEG677 [311] if((byte) tables_init::j#1!=(const byte) PLAYFIELD_LINES#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto tables_init::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG679 [312] if((byte) tables_init::j#1!=(const byte) PLAYFIELD_LINES#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto tables_init::@1 -- vbuz1_neq_vbuc1_then_la1 lda j cmp #PLAYFIELD_LINES-1+1 bne b1_from_b1 jmp b2 - //SEG678 tables_init::@2 + //SEG680 tables_init::@2 b2: - //SEG679 [312] *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0+(const byte) PLAYFIELD_LINES#0) ← (const byte) PLAYFIELD_COLS#0*(const byte) PLAYFIELD_LINES#0 -- _deref_pbuc1=vbuc2 + //SEG681 [313] *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0+(const byte) PLAYFIELD_LINES#0) ← (const byte) PLAYFIELD_COLS#0*(const byte) PLAYFIELD_LINES#0 -- _deref_pbuc1=vbuc2 lda #PLAYFIELD_COLS*PLAYFIELD_LINES sta playfield_lines_idx+PLAYFIELD_LINES jmp breturn - //SEG680 tables_init::@return + //SEG682 tables_init::@return breturn: - //SEG681 [313] return + //SEG683 [314] return rts } -//SEG682 render_init +//SEG684 render_init render_init: { .label _5 = $8a .label _10 = $8b @@ -8297,64 +8318,64 @@ render_init: { .label c = $45 .label line = $42 .label l = $44 - //SEG683 [315] call fill - //SEG684 [334] phi from render_init to fill [phi:render_init->fill] + //SEG685 [316] call fill + //SEG686 [335] phi from render_init to fill [phi:render_init->fill] fill_from_render_init: - //SEG685 [334] phi (byte) fill::val#3 = (byte/word/signed word/dword/signed dword) 160 [phi:render_init->fill#0] -- vbuz1=vbuc1 + //SEG687 [335] phi (byte) fill::val#3 = (byte/word/signed word/dword/signed dword) 160 [phi:render_init->fill#0] -- vbuz1=vbuc1 lda #$a0 sta fill.val - //SEG686 [334] phi (byte*) fill::addr#0 = (const byte*) SCREEN#0 [phi:render_init->fill#1] -- pbuz1=pbuc1 + //SEG688 [335] phi (byte*) fill::addr#0 = (const byte*) SCREEN#0 [phi:render_init->fill#1] -- pbuz1=pbuc1 lda #SCREEN sta fill.addr+1 jsr fill - //SEG687 [316] phi from render_init to render_init::@7 [phi:render_init->render_init::@7] + //SEG689 [317] phi from render_init to render_init::@7 [phi:render_init->render_init::@7] b7_from_render_init: jmp b7 - //SEG688 render_init::@7 + //SEG690 render_init::@7 b7: - //SEG689 [317] call fill - //SEG690 [334] phi from render_init::@7 to fill [phi:render_init::@7->fill] + //SEG691 [318] call fill + //SEG692 [335] phi from render_init::@7 to fill [phi:render_init::@7->fill] fill_from_b7: - //SEG691 [334] phi (byte) fill::val#3 = (const byte) BLACK#0 [phi:render_init::@7->fill#0] -- vbuz1=vbuc1 + //SEG693 [335] phi (byte) fill::val#3 = (const byte) BLACK#0 [phi:render_init::@7->fill#0] -- vbuz1=vbuc1 lda #BLACK sta fill.val - //SEG692 [334] phi (byte*) fill::addr#0 = (const byte*) COLS#0 [phi:render_init::@7->fill#1] -- pbuz1=pbuc1 + //SEG694 [335] phi (byte*) fill::addr#0 = (const byte*) COLS#0 [phi:render_init::@7->fill#1] -- pbuz1=pbuc1 lda #COLS sta fill.addr+1 jsr fill - //SEG693 [318] phi from render_init::@7 to render_init::@1 [phi:render_init::@7->render_init::@1] + //SEG695 [319] phi from render_init::@7 to render_init::@1 [phi:render_init::@7->render_init::@1] b1_from_b7: - //SEG694 [318] phi (byte*) render_init::li#2 = (const byte*) COLS#0+(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 15 [phi:render_init::@7->render_init::@1#0] -- pbuz1=pbuc1 + //SEG696 [319] phi (byte*) render_init::li#2 = (const byte*) COLS#0+(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 15 [phi:render_init::@7->render_init::@1#0] -- pbuz1=pbuc1 lda #COLS+$28+$f sta li+1 - //SEG695 [318] phi (byte) render_init::i#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_init::@7->render_init::@1#1] -- vbuz1=vbuc1 + //SEG697 [319] phi (byte) render_init::i#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_init::@7->render_init::@1#1] -- vbuz1=vbuc1 lda #0 sta i jmp b1 - //SEG696 [318] phi from render_init::@1 to render_init::@1 [phi:render_init::@1->render_init::@1] + //SEG698 [319] phi from render_init::@1 to render_init::@1 [phi:render_init::@1->render_init::@1] b1_from_b1: - //SEG697 [318] phi (byte*) render_init::li#2 = (byte*) render_init::li#1 [phi:render_init::@1->render_init::@1#0] -- register_copy - //SEG698 [318] phi (byte) render_init::i#2 = (byte) render_init::i#1 [phi:render_init::@1->render_init::@1#1] -- register_copy + //SEG699 [319] phi (byte*) render_init::li#2 = (byte*) render_init::li#1 [phi:render_init::@1->render_init::@1#0] -- register_copy + //SEG700 [319] phi (byte) render_init::i#2 = (byte) render_init::i#1 [phi:render_init::@1->render_init::@1#1] -- register_copy jmp b1 - //SEG699 render_init::@1 + //SEG701 render_init::@1 b1: - //SEG700 [319] (byte~) render_init::$5 ← (byte) render_init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_rol_1 + //SEG702 [320] (byte~) render_init::$5 ← (byte) render_init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_rol_1 lda i asl sta _5 - //SEG701 [320] *((const byte*[PLAYFIELD_LINES#0+3]) screen_lines#0 + (byte~) render_init::$5) ← (byte*) render_init::li#2 -- pptc1_derefidx_vbuz1=pbuz2 + //SEG703 [321] *((const byte*[PLAYFIELD_LINES#0+3]) screen_lines#0 + (byte~) render_init::$5) ← (byte*) render_init::li#2 -- pptc1_derefidx_vbuz1=pbuz2 ldy _5 lda li sta screen_lines,y lda li+1 sta screen_lines+1,y - //SEG702 [321] (byte*) render_init::li#1 ← (byte*) render_init::li#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 -- pbuz1=pbuz1_plus_vbuc1 + //SEG704 [322] (byte*) render_init::li#1 ← (byte*) render_init::li#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 -- pbuz1=pbuz1_plus_vbuc1 lda li clc adc #$28 @@ -8362,43 +8383,43 @@ render_init: { bcc !+ inc li+1 !: - //SEG703 [322] (byte) render_init::i#1 ← ++ (byte) render_init::i#2 -- vbuz1=_inc_vbuz1 + //SEG705 [323] (byte) render_init::i#1 ← ++ (byte) render_init::i#2 -- vbuz1=_inc_vbuz1 inc i - //SEG704 [323] if((byte) render_init::i#1!=(const byte) PLAYFIELD_LINES#0+(byte/signed byte/word/signed word/dword/signed dword) 2+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_init::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG706 [324] if((byte) render_init::i#1!=(const byte) PLAYFIELD_LINES#0+(byte/signed byte/word/signed word/dword/signed dword) 2+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_init::@1 -- vbuz1_neq_vbuc1_then_la1 lda i cmp #PLAYFIELD_LINES+2+1 bne b1_from_b1 - //SEG705 [324] phi from render_init::@1 to render_init::@2 [phi:render_init::@1->render_init::@2] + //SEG707 [325] phi from render_init::@1 to render_init::@2 [phi:render_init::@1->render_init::@2] b2_from_b1: - //SEG706 [324] phi (byte) render_init::l#4 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_init::@1->render_init::@2#0] -- vbuz1=vbuc1 + //SEG708 [325] phi (byte) render_init::l#4 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_init::@1->render_init::@2#0] -- vbuz1=vbuc1 lda #0 sta l - //SEG707 [324] phi (byte*) render_init::line#4 = (const byte*) COLS#0+(byte/signed byte/word/signed word/dword/signed dword) 14 [phi:render_init::@1->render_init::@2#1] -- pbuz1=pbuc1 + //SEG709 [325] phi (byte*) render_init::line#4 = (const byte*) COLS#0+(byte/signed byte/word/signed word/dword/signed dword) 14 [phi:render_init::@1->render_init::@2#1] -- pbuz1=pbuc1 lda #COLS+$e sta line+1 jmp b2 - //SEG708 [324] phi from render_init::@5 to render_init::@2 [phi:render_init::@5->render_init::@2] + //SEG710 [325] phi from render_init::@5 to render_init::@2 [phi:render_init::@5->render_init::@2] b2_from_b5: - //SEG709 [324] phi (byte) render_init::l#4 = (byte) render_init::l#1 [phi:render_init::@5->render_init::@2#0] -- register_copy - //SEG710 [324] phi (byte*) render_init::line#4 = (byte*) render_init::line#1 [phi:render_init::@5->render_init::@2#1] -- register_copy + //SEG711 [325] phi (byte) render_init::l#4 = (byte) render_init::l#1 [phi:render_init::@5->render_init::@2#0] -- register_copy + //SEG712 [325] phi (byte*) render_init::line#4 = (byte*) render_init::line#1 [phi:render_init::@5->render_init::@2#1] -- register_copy jmp b2 - //SEG711 render_init::@2 + //SEG713 render_init::@2 b2: - //SEG712 [325] phi from render_init::@2 to render_init::@3 [phi:render_init::@2->render_init::@3] + //SEG714 [326] phi from render_init::@2 to render_init::@3 [phi:render_init::@2->render_init::@3] b3_from_b2: - //SEG713 [325] phi (byte) render_init::c#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_init::@2->render_init::@3#0] -- vbuz1=vbuc1 + //SEG715 [326] phi (byte) render_init::c#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_init::@2->render_init::@3#0] -- vbuz1=vbuc1 lda #0 sta c jmp b3 - //SEG714 [325] phi from render_init::@3 to render_init::@3 [phi:render_init::@3->render_init::@3] + //SEG716 [326] phi from render_init::@3 to render_init::@3 [phi:render_init::@3->render_init::@3] b3_from_b3: - //SEG715 [325] phi (byte) render_init::c#2 = (byte) render_init::c#1 [phi:render_init::@3->render_init::@3#0] -- register_copy + //SEG717 [326] phi (byte) render_init::c#2 = (byte) render_init::c#1 [phi:render_init::@3->render_init::@3#0] -- register_copy jmp b3 - //SEG716 render_init::@3 + //SEG718 render_init::@3 b3: - //SEG717 [326] (byte*~) render_init::$10 ← (byte*) render_init::line#4 + (byte) render_init::c#2 -- pbuz1=pbuz2_plus_vbuz3 + //SEG719 [327] (byte*~) render_init::$10 ← (byte*) render_init::line#4 + (byte) render_init::c#2 -- pbuz1=pbuz2_plus_vbuz3 lda c clc adc line @@ -8406,20 +8427,20 @@ render_init: { lda #0 adc line+1 sta _10+1 - //SEG718 [327] *((byte*~) render_init::$10) ← (const byte) DARK_GREY#0 -- _deref_pbuz1=vbuc1 + //SEG720 [328] *((byte*~) render_init::$10) ← (const byte) DARK_GREY#0 -- _deref_pbuz1=vbuc1 lda #DARK_GREY ldy #0 sta (_10),y - //SEG719 [328] (byte) render_init::c#1 ← ++ (byte) render_init::c#2 -- vbuz1=_inc_vbuz1 + //SEG721 [329] (byte) render_init::c#1 ← ++ (byte) render_init::c#2 -- vbuz1=_inc_vbuz1 inc c - //SEG720 [329] if((byte) render_init::c#1!=(const byte) PLAYFIELD_COLS#0+(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_init::@3 -- vbuz1_neq_vbuc1_then_la1 + //SEG722 [330] if((byte) render_init::c#1!=(const byte) PLAYFIELD_COLS#0+(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_init::@3 -- vbuz1_neq_vbuc1_then_la1 lda c cmp #PLAYFIELD_COLS+1+1 bne b3_from_b3 jmp b5 - //SEG721 render_init::@5 + //SEG723 render_init::@5 b5: - //SEG722 [330] (byte*) render_init::line#1 ← (byte*) render_init::line#4 + (byte/signed byte/word/signed word/dword/signed dword) 40 -- pbuz1=pbuz1_plus_vbuc1 + //SEG724 [331] (byte*) render_init::line#1 ← (byte*) render_init::line#4 + (byte/signed byte/word/signed word/dword/signed dword) 40 -- pbuz1=pbuz1_plus_vbuc1 lda line clc adc #$28 @@ -8427,24 +8448,24 @@ render_init: { bcc !+ inc line+1 !: - //SEG723 [331] (byte) render_init::l#1 ← ++ (byte) render_init::l#4 -- vbuz1=_inc_vbuz1 + //SEG725 [332] (byte) render_init::l#1 ← ++ (byte) render_init::l#4 -- vbuz1=_inc_vbuz1 inc l - //SEG724 [332] if((byte) render_init::l#1!=(const byte) PLAYFIELD_LINES#0+(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_init::@2 -- vbuz1_neq_vbuc1_then_la1 + //SEG726 [333] if((byte) render_init::l#1!=(const byte) PLAYFIELD_LINES#0+(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_init::@2 -- vbuz1_neq_vbuc1_then_la1 lda l cmp #PLAYFIELD_LINES+1+1 bne b2_from_b5 jmp breturn - //SEG725 render_init::@return + //SEG727 render_init::@return breturn: - //SEG726 [333] return + //SEG728 [334] return rts } -//SEG727 fill +//SEG729 fill fill: { .label end = $8d .label addr = $47 .label val = $46 - //SEG728 [335] (byte*) fill::end#0 ← (byte*) fill::addr#0 + (word/signed word/dword/signed dword) 1000 -- pbuz1=pbuz2_plus_vwuc1 + //SEG730 [336] (byte*) fill::end#0 ← (byte*) fill::addr#0 + (word/signed word/dword/signed dword) 1000 -- pbuz1=pbuz2_plus_vwuc1 lda addr clc adc #<$3e8 @@ -8452,23 +8473,23 @@ fill: { lda addr+1 adc #>$3e8 sta end+1 - //SEG729 [336] phi from fill fill::@1 to fill::@1 [phi:fill/fill::@1->fill::@1] + //SEG731 [337] phi from fill fill::@1 to fill::@1 [phi:fill/fill::@1->fill::@1] b1_from_fill: b1_from_b1: - //SEG730 [336] phi (byte*) fill::addr#2 = (byte*) fill::addr#0 [phi:fill/fill::@1->fill::@1#0] -- register_copy + //SEG732 [337] phi (byte*) fill::addr#2 = (byte*) fill::addr#0 [phi:fill/fill::@1->fill::@1#0] -- register_copy jmp b1 - //SEG731 fill::@1 + //SEG733 fill::@1 b1: - //SEG732 [337] *((byte*) fill::addr#2) ← (byte) fill::val#3 -- _deref_pbuz1=vbuz2 + //SEG734 [338] *((byte*) fill::addr#2) ← (byte) fill::val#3 -- _deref_pbuz1=vbuz2 lda val ldy #0 sta (addr),y - //SEG733 [338] (byte*) fill::addr#1 ← ++ (byte*) fill::addr#2 -- pbuz1=_inc_pbuz1 + //SEG735 [339] (byte*) fill::addr#1 ← ++ (byte*) fill::addr#2 -- pbuz1=_inc_pbuz1 inc addr bne !+ inc addr+1 !: - //SEG734 [339] if((byte*) fill::addr#1!=(byte*) fill::end#0) goto fill::@1 -- pbuz1_neq_pbuz2_then_la1 + //SEG736 [340] if((byte*) fill::addr#1!=(byte*) fill::end#0) goto fill::@1 -- pbuz1_neq_pbuz2_then_la1 lda addr+1 cmp end+1 bne b1_from_b1 @@ -8476,25 +8497,25 @@ fill: { cmp end bne b1_from_b1 jmp breturn - //SEG735 fill::@return + //SEG737 fill::@return breturn: - //SEG736 [340] return + //SEG738 [341] return rts } -//SEG737 sid_rnd_init +//SEG739 sid_rnd_init sid_rnd_init: { - //SEG738 [341] *((const word*) SID_VOICE3_FREQ#0) ← (word/dword/signed dword) 65535 -- _deref_pwuc1=vwuc2 + //SEG740 [342] *((const word*) SID_VOICE3_FREQ#0) ← (word/dword/signed dword) 65535 -- _deref_pwuc1=vwuc2 lda #<$ffff sta SID_VOICE3_FREQ lda #>$ffff sta SID_VOICE3_FREQ+1 - //SEG739 [342] *((const byte*) SID_VOICE3_CONTROL#0) ← (const byte) SID_CONTROL_NOISE#0 -- _deref_pbuc1=vbuc2 + //SEG741 [343] *((const byte*) SID_VOICE3_CONTROL#0) ← (const byte) SID_CONTROL_NOISE#0 -- _deref_pbuc1=vbuc2 lda #SID_CONTROL_NOISE sta SID_VOICE3_CONTROL jmp breturn - //SEG740 sid_rnd_init::@return + //SEG742 sid_rnd_init::@return breturn: - //SEG741 [343] return + //SEG743 [344] return rts } keyboard_matrix_row_bitmask: .byte $fe, $fd, $fb, $f7, $ef, $df, $bf, $7f @@ -8521,41 +8542,47 @@ sid_rnd_init: { playfield: .fill PLAYFIELD_LINES*PLAYFIELD_COLS, 0 playfield_lines_idx: .fill PLAYFIELD_LINES+1, 0 screen_lines: .fill 2*(PLAYFIELD_LINES+3), 0 +.pc = CHARSET "Inline" + .var charset = LoadPicture("charset.png", List().add($000000, $ffffff, $523fa0, $77c1c9)) + .for (var c=0; c<16; c++) + .for (var y=0;y<8; y++) + .byte charset.getMulticolorByte(c,y) + REGISTER UPLIFT POTENTIAL REGISTERS -Statement [14] (byte*~) current_piece_gfx#87 ← (byte*) current_piece_gfx#10 [ current_piece_gfx#87 current_piece_gfx#10 current_piece_color#15 spawn_current::$3 ] ( main:2 [ current_piece_gfx#87 current_piece_gfx#10 current_piece_color#15 spawn_current::$3 ] ) always clobbers reg byte a +Statement [15] (byte*~) current_piece_gfx#87 ← (byte*) current_piece_gfx#10 [ current_piece_gfx#87 current_piece_gfx#10 current_piece_color#15 spawn_current::$3 ] ( main:3 [ current_piece_gfx#87 current_piece_gfx#10 current_piece_color#15 spawn_current::$3 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:40 [ current_piece_color#23 current_piece_color#11 current_piece_color#13 current_piece_color#15 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:109 [ spawn_current::$3 ] -Statement [17] (byte*~) current_piece#71 ← (byte*)*((const word[]) PIECES#0 + (byte~) spawn_current::$3) [ current_piece_gfx#10 current_piece_color#15 current_piece#71 ] ( main:2 [ current_piece_gfx#10 current_piece_color#15 current_piece#71 ] ) always clobbers reg byte a -Statement [19] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@4 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 keyboard_events_size#19 current_movedown_counter#15 ] ( main:2 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 keyboard_events_size#19 current_movedown_counter#15 ] ) always clobbers reg byte a +Statement [18] (byte*~) current_piece#71 ← (byte*)*((const word[]) PIECES#0 + (byte~) spawn_current::$3) [ current_piece_gfx#10 current_piece_color#15 current_piece#71 ] ( main:3 [ current_piece_gfx#10 current_piece_color#15 current_piece#71 ] ) always clobbers reg byte a +Statement [20] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@4 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 keyboard_events_size#19 current_movedown_counter#15 ] ( main:3 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 keyboard_events_size#19 current_movedown_counter#15 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:36 [ current_orientation#33 current_orientation#15 current_orientation#23 current_orientation#8 current_orientation#18 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:39 [ current_xpos#36 current_xpos#16 current_xpos#23 current_xpos#9 current_xpos#19 current_xpos#7 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:2 [ current_ypos#12 current_ypos#16 current_ypos#31 current_ypos#4 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:58 [ keyboard_events_size#10 keyboard_events_size#29 keyboard_events_size#19 keyboard_events_size#16 keyboard_events_size#13 keyboard_events_size#4 keyboard_events_size#30 keyboard_events_size#2 keyboard_events_size#1 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:3 [ current_movedown_counter#15 current_movedown_counter#12 current_movedown_counter#10 ] -Statement [20] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 254) goto main::@7 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 keyboard_events_size#19 current_movedown_counter#15 ] ( main:2 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 keyboard_events_size#19 current_movedown_counter#15 ] ) always clobbers reg byte a -Statement [31] (byte) main::render#1 ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte~) main::$10 [ current_piece#13 current_ypos#16 current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::key_event#0 main::render#1 current_orientation#18 current_piece_gfx#17 current_xpos#19 ] ( main:2 [ current_piece#13 current_ypos#16 current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::key_event#0 main::render#1 current_orientation#18 current_piece_gfx#17 current_xpos#19 ] ) always clobbers reg byte a +Statement [21] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 254) goto main::@7 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 keyboard_events_size#19 current_movedown_counter#15 ] ( main:3 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 keyboard_events_size#19 current_movedown_counter#15 ] ) always clobbers reg byte a +Statement [32] (byte) main::render#1 ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte~) main::$10 [ current_piece#13 current_ypos#16 current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::key_event#0 main::render#1 current_orientation#18 current_piece_gfx#17 current_xpos#19 ] ( main:3 [ current_piece#13 current_ypos#16 current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::key_event#0 main::render#1 current_orientation#18 current_piece_gfx#17 current_xpos#19 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:74 [ main::key_event#0 ] -Statement [36] (byte) main::render#2 ← (byte) main::render#1 + (byte~) main::$11 [ current_piece#13 current_xpos#23 current_ypos#16 current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::key_event#0 main::render#2 current_orientation#18 current_piece_gfx#17 ] ( main:2 [ current_piece#13 current_xpos#23 current_ypos#16 current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::key_event#0 main::render#2 current_orientation#18 current_piece_gfx#17 ] ) always clobbers reg byte a -Statement [41] (byte) main::render#3 ← (byte) main::render#2 + (byte~) main::$12 [ current_piece#13 current_orientation#23 current_piece_gfx#18 current_xpos#23 current_ypos#16 current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::render#3 ] ( main:2 [ current_piece#13 current_orientation#23 current_piece_gfx#18 current_xpos#23 current_ypos#16 current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::render#3 ] ) always clobbers reg byte a -Statement [47] (byte*~) current_piece_gfx#88 ← (byte*) current_piece_gfx#18 [ current_piece#13 current_orientation#23 current_piece_gfx#18 current_xpos#23 current_ypos#16 current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 current_ypos#71 current_xpos#96 current_piece_gfx#88 ] ( main:2 [ current_piece#13 current_orientation#23 current_piece_gfx#18 current_xpos#23 current_ypos#16 current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 current_ypos#71 current_xpos#96 current_piece_gfx#88 ] ) always clobbers reg byte a +Statement [37] (byte) main::render#2 ← (byte) main::render#1 + (byte~) main::$11 [ current_piece#13 current_xpos#23 current_ypos#16 current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::key_event#0 main::render#2 current_orientation#18 current_piece_gfx#17 ] ( main:3 [ current_piece#13 current_xpos#23 current_ypos#16 current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::key_event#0 main::render#2 current_orientation#18 current_piece_gfx#17 ] ) always clobbers reg byte a +Statement [42] (byte) main::render#3 ← (byte) main::render#2 + (byte~) main::$12 [ current_piece#13 current_orientation#23 current_piece_gfx#18 current_xpos#23 current_ypos#16 current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::render#3 ] ( main:3 [ current_piece#13 current_orientation#23 current_piece_gfx#18 current_xpos#23 current_ypos#16 current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::render#3 ] ) always clobbers reg byte a +Statement [48] (byte*~) current_piece_gfx#88 ← (byte*) current_piece_gfx#18 [ current_piece#13 current_orientation#23 current_piece_gfx#18 current_xpos#23 current_ypos#16 current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 current_ypos#71 current_xpos#96 current_piece_gfx#88 ] ( main:3 [ current_piece#13 current_orientation#23 current_piece_gfx#18 current_xpos#23 current_ypos#16 current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 current_ypos#71 current_xpos#96 current_piece_gfx#88 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:4 [ current_ypos#22 current_ypos#71 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:5 [ current_xpos#63 current_xpos#96 ] -Statement [52] (byte) render_current::ypos2#0 ← (byte) current_ypos#22 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ current_xpos#63 current_piece_gfx#64 current_piece_color#67 render_current::ypos2#0 ] ( main:2::render_current:16 [ current_piece_gfx#10 current_piece_color#15 spawn_current::$3 current_xpos#63 current_piece_gfx#64 current_piece_color#67 render_current::ypos2#0 ] main:2::render_current:49 [ current_piece#13 current_orientation#23 current_piece_gfx#18 current_xpos#23 current_ypos#16 current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 current_xpos#63 current_piece_gfx#64 current_piece_color#67 render_current::ypos2#0 ] ) always clobbers reg byte a +Statement [53] (byte) render_current::ypos2#0 ← (byte) current_ypos#22 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ current_xpos#63 current_piece_gfx#64 current_piece_color#67 render_current::ypos2#0 ] ( main:3::render_current:17 [ current_piece_gfx#10 current_piece_color#15 spawn_current::$3 current_xpos#63 current_piece_gfx#64 current_piece_color#67 render_current::ypos2#0 ] main:3::render_current:50 [ current_piece#13 current_orientation#23 current_piece_gfx#18 current_xpos#23 current_ypos#16 current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 current_xpos#63 current_piece_gfx#64 current_piece_color#67 render_current::ypos2#0 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:8 [ current_piece_color#67 current_piece_color#75 current_piece_color#76 ] -Statement [55] (byte*) render_current::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0+3]) screen_lines#0 + (byte) render_current::ypos2#2) [ current_xpos#63 current_piece_gfx#64 current_piece_color#67 render_current::ypos2#2 render_current::l#3 render_current::i#4 render_current::screen_line#0 ] ( main:2::render_current:16 [ current_piece_gfx#10 current_piece_color#15 spawn_current::$3 current_xpos#63 current_piece_gfx#64 current_piece_color#67 render_current::ypos2#2 render_current::l#3 render_current::i#4 render_current::screen_line#0 ] main:2::render_current:49 [ current_piece#13 current_orientation#23 current_piece_gfx#18 current_xpos#23 current_ypos#16 current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 current_xpos#63 current_piece_gfx#64 current_piece_color#67 render_current::ypos2#2 render_current::l#3 render_current::i#4 render_current::screen_line#0 ] ) always clobbers reg byte a +Statement [56] (byte*) render_current::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0+3]) screen_lines#0 + (byte) render_current::ypos2#2) [ current_xpos#63 current_piece_gfx#64 current_piece_color#67 render_current::ypos2#2 render_current::l#3 render_current::i#4 render_current::screen_line#0 ] ( main:3::render_current:17 [ current_piece_gfx#10 current_piece_color#15 spawn_current::$3 current_xpos#63 current_piece_gfx#64 current_piece_color#67 render_current::ypos2#2 render_current::l#3 render_current::i#4 render_current::screen_line#0 ] main:3::render_current:50 [ current_piece#13 current_orientation#23 current_piece_gfx#18 current_xpos#23 current_ypos#16 current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 current_xpos#63 current_piece_gfx#64 current_piece_color#67 render_current::ypos2#2 render_current::l#3 render_current::i#4 render_current::screen_line#0 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:9 [ render_current::ypos2#2 render_current::ypos2#0 render_current::ypos2#1 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:10 [ render_current::l#3 render_current::l#1 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:11 [ render_current::i#2 render_current::i#1 render_current::i#4 render_current::i#8 ] -Statement [58] (byte) render_current::current_cell#0 ← *((byte*) current_piece_gfx#64 + (byte) render_current::i#2) [ current_xpos#63 current_piece_gfx#64 current_piece_color#67 render_current::ypos2#2 render_current::l#3 render_current::screen_line#0 render_current::i#2 render_current::xpos#2 render_current::c#2 render_current::current_cell#0 ] ( main:2::render_current:16 [ current_piece_gfx#10 current_piece_color#15 spawn_current::$3 current_xpos#63 current_piece_gfx#64 current_piece_color#67 render_current::ypos2#2 render_current::l#3 render_current::screen_line#0 render_current::i#2 render_current::xpos#2 render_current::c#2 render_current::current_cell#0 ] main:2::render_current:49 [ current_piece#13 current_orientation#23 current_piece_gfx#18 current_xpos#23 current_ypos#16 current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 current_xpos#63 current_piece_gfx#64 current_piece_color#67 render_current::ypos2#2 render_current::l#3 render_current::screen_line#0 render_current::i#2 render_current::xpos#2 render_current::c#2 render_current::current_cell#0 ] ) always clobbers reg byte a +Statement [59] (byte) render_current::current_cell#0 ← *((byte*) current_piece_gfx#64 + (byte) render_current::i#2) [ current_xpos#63 current_piece_gfx#64 current_piece_color#67 render_current::ypos2#2 render_current::l#3 render_current::screen_line#0 render_current::i#2 render_current::xpos#2 render_current::c#2 render_current::current_cell#0 ] ( main:3::render_current:17 [ current_piece_gfx#10 current_piece_color#15 spawn_current::$3 current_xpos#63 current_piece_gfx#64 current_piece_color#67 render_current::ypos2#2 render_current::l#3 render_current::screen_line#0 render_current::i#2 render_current::xpos#2 render_current::c#2 render_current::current_cell#0 ] main:3::render_current:50 [ current_piece#13 current_orientation#23 current_piece_gfx#18 current_xpos#23 current_ypos#16 current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 current_xpos#63 current_piece_gfx#64 current_piece_color#67 render_current::ypos2#2 render_current::l#3 render_current::screen_line#0 render_current::i#2 render_current::xpos#2 render_current::c#2 render_current::current_cell#0 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:12 [ render_current::xpos#2 render_current::xpos#1 render_current::xpos#0 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:13 [ render_current::c#2 render_current::c#1 ] -Statement [62] *((byte*) render_current::screen_line#0 + (byte) render_current::xpos#2) ← (byte) current_piece_color#67 [ current_xpos#63 current_piece_gfx#64 current_piece_color#67 render_current::ypos2#2 render_current::l#3 render_current::screen_line#0 render_current::xpos#2 render_current::c#2 render_current::i#1 ] ( main:2::render_current:16 [ current_piece_gfx#10 current_piece_color#15 spawn_current::$3 current_xpos#63 current_piece_gfx#64 current_piece_color#67 render_current::ypos2#2 render_current::l#3 render_current::screen_line#0 render_current::xpos#2 render_current::c#2 render_current::i#1 ] main:2::render_current:49 [ current_piece#13 current_orientation#23 current_piece_gfx#18 current_xpos#23 current_ypos#16 current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 current_xpos#63 current_piece_gfx#64 current_piece_color#67 render_current::ypos2#2 render_current::l#3 render_current::screen_line#0 render_current::xpos#2 render_current::c#2 render_current::i#1 ] ) always clobbers reg byte a -Statement [73] (byte~) render_playfield::$1 ← (byte) render_playfield::l#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ render_playfield::l#2 render_playfield::i#3 render_playfield::$1 ] ( main:2::render_playfield:13 [ current_piece_gfx#10 current_piece_color#15 spawn_current::$3 render_playfield::l#2 render_playfield::i#3 render_playfield::$1 ] main:2::render_playfield:44 [ current_piece#13 current_orientation#23 current_piece_gfx#18 current_xpos#23 current_ypos#16 current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 render_playfield::l#2 render_playfield::i#3 render_playfield::$1 ] ) always clobbers reg byte a +Statement [63] *((byte*) render_current::screen_line#0 + (byte) render_current::xpos#2) ← (byte) current_piece_color#67 [ current_xpos#63 current_piece_gfx#64 current_piece_color#67 render_current::ypos2#2 render_current::l#3 render_current::screen_line#0 render_current::xpos#2 render_current::c#2 render_current::i#1 ] ( main:3::render_current:17 [ current_piece_gfx#10 current_piece_color#15 spawn_current::$3 current_xpos#63 current_piece_gfx#64 current_piece_color#67 render_current::ypos2#2 render_current::l#3 render_current::screen_line#0 render_current::xpos#2 render_current::c#2 render_current::i#1 ] main:3::render_current:50 [ current_piece#13 current_orientation#23 current_piece_gfx#18 current_xpos#23 current_ypos#16 current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 current_xpos#63 current_piece_gfx#64 current_piece_color#67 render_current::ypos2#2 render_current::l#3 render_current::screen_line#0 render_current::xpos#2 render_current::c#2 render_current::i#1 ] ) always clobbers reg byte a +Statement [74] (byte~) render_playfield::$1 ← (byte) render_playfield::l#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ render_playfield::l#2 render_playfield::i#3 render_playfield::$1 ] ( main:3::render_playfield:14 [ current_piece_gfx#10 current_piece_color#15 spawn_current::$3 render_playfield::l#2 render_playfield::i#3 render_playfield::$1 ] main:3::render_playfield:45 [ current_piece#13 current_orientation#23 current_piece_gfx#18 current_xpos#23 current_ypos#16 current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 render_playfield::l#2 render_playfield::i#3 render_playfield::$1 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:14 [ render_playfield::l#2 render_playfield::l#1 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:15 [ render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 ] -Statement [74] (byte*) render_playfield::line#0 ← *((const byte*[PLAYFIELD_LINES#0+3]) screen_lines#0 + (byte~) render_playfield::$1) [ render_playfield::l#2 render_playfield::i#3 render_playfield::line#0 ] ( main:2::render_playfield:13 [ current_piece_gfx#10 current_piece_color#15 spawn_current::$3 render_playfield::l#2 render_playfield::i#3 render_playfield::line#0 ] main:2::render_playfield:44 [ current_piece#13 current_orientation#23 current_piece_gfx#18 current_xpos#23 current_ypos#16 current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 render_playfield::l#2 render_playfield::i#3 render_playfield::line#0 ] ) always clobbers reg byte a -Statement [76] *((byte*) render_playfield::line#2) ← *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) render_playfield::i#2) [ render_playfield::l#2 render_playfield::i#2 render_playfield::line#2 render_playfield::c#2 ] ( main:2::render_playfield:13 [ current_piece_gfx#10 current_piece_color#15 spawn_current::$3 render_playfield::l#2 render_playfield::i#2 render_playfield::line#2 render_playfield::c#2 ] main:2::render_playfield:44 [ current_piece#13 current_orientation#23 current_piece_gfx#18 current_xpos#23 current_ypos#16 current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 render_playfield::l#2 render_playfield::i#2 render_playfield::line#2 render_playfield::c#2 ] ) always clobbers reg byte a reg byte y +Statement [75] (byte*) render_playfield::line#0 ← *((const byte*[PLAYFIELD_LINES#0+3]) screen_lines#0 + (byte~) render_playfield::$1) [ render_playfield::l#2 render_playfield::i#3 render_playfield::line#0 ] ( main:3::render_playfield:14 [ current_piece_gfx#10 current_piece_color#15 spawn_current::$3 render_playfield::l#2 render_playfield::i#3 render_playfield::line#0 ] main:3::render_playfield:45 [ current_piece#13 current_orientation#23 current_piece_gfx#18 current_xpos#23 current_ypos#16 current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 render_playfield::l#2 render_playfield::i#3 render_playfield::line#0 ] ) always clobbers reg byte a +Statement [77] *((byte*) render_playfield::line#2) ← *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) render_playfield::i#2) [ render_playfield::l#2 render_playfield::i#2 render_playfield::line#2 render_playfield::c#2 ] ( main:3::render_playfield:14 [ current_piece_gfx#10 current_piece_color#15 spawn_current::$3 render_playfield::l#2 render_playfield::i#2 render_playfield::line#2 render_playfield::c#2 ] main:3::render_playfield:45 [ current_piece#13 current_orientation#23 current_piece_gfx#18 current_xpos#23 current_ypos#16 current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 render_playfield::l#2 render_playfield::i#2 render_playfield::line#2 render_playfield::c#2 ] ) always clobbers reg byte a reg byte y Removing always clobbered register reg byte y as potential for zp ZP_BYTE:40 [ current_piece_color#23 current_piece_color#11 current_piece_color#13 current_piece_color#15 ] Removing always clobbered register reg byte y as potential for zp ZP_BYTE:109 [ spawn_current::$3 ] Removing always clobbered register reg byte y as potential for zp ZP_BYTE:14 [ render_playfield::l#2 render_playfield::l#1 ] @@ -8567,170 +8594,170 @@ Removing always clobbered register reg byte y as potential for zp ZP_BYTE:39 [ c Removing always clobbered register reg byte y as potential for zp ZP_BYTE:2 [ current_ypos#12 current_ypos#16 current_ypos#31 current_ypos#4 ] Removing always clobbered register reg byte y as potential for zp ZP_BYTE:58 [ keyboard_events_size#10 keyboard_events_size#29 keyboard_events_size#19 keyboard_events_size#16 keyboard_events_size#13 keyboard_events_size#4 keyboard_events_size#30 keyboard_events_size#2 keyboard_events_size#1 ] Removing always clobbered register reg byte y as potential for zp ZP_BYTE:3 [ current_movedown_counter#15 current_movedown_counter#12 current_movedown_counter#10 ] -Statement [88] (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 ← (byte) current_orientation#18 + (byte/signed byte/word/signed word/dword/signed dword) 16 [ current_piece#13 current_xpos#23 current_ypos#16 current_orientation#18 current_piece_gfx#17 play_move_rotate::$2 ] ( main:2::play_move_rotate:38 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::render#2 current_piece#13 current_xpos#23 current_ypos#16 current_orientation#18 current_piece_gfx#17 play_move_rotate::$2 ] ) always clobbers reg byte a +Statement [89] (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 ← (byte) current_orientation#18 + (byte/signed byte/word/signed word/dword/signed dword) 16 [ current_piece#13 current_xpos#23 current_ypos#16 current_orientation#18 current_piece_gfx#17 play_move_rotate::$2 ] ( main:3::play_move_rotate:39 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::render#2 current_piece#13 current_xpos#23 current_ypos#16 current_orientation#18 current_piece_gfx#17 play_move_rotate::$2 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:82 [ main::render#2 ] -Statement [89] (byte) play_move_rotate::orientation#2 ← (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 & (byte/signed byte/word/signed word/dword/signed dword) 63 [ current_piece#13 current_xpos#23 current_ypos#16 current_orientation#18 current_piece_gfx#17 play_move_rotate::orientation#2 ] ( main:2::play_move_rotate:38 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::render#2 current_piece#13 current_xpos#23 current_ypos#16 current_orientation#18 current_piece_gfx#17 play_move_rotate::orientation#2 ] ) always clobbers reg byte a -Statement [94] (byte*~) current_piece#75 ← (byte*) current_piece#13 [ current_piece#13 current_xpos#23 current_ypos#16 current_orientation#18 current_piece_gfx#17 play_move_rotate::orientation#3 collision::xpos#3 collision::ypos#3 collision::orientation#3 current_piece#75 ] ( main:2::play_move_rotate:38 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::render#2 current_piece#13 current_xpos#23 current_ypos#16 current_orientation#18 current_piece_gfx#17 play_move_rotate::orientation#3 collision::xpos#3 collision::ypos#3 collision::orientation#3 current_piece#75 ] ) always clobbers reg byte a +Statement [90] (byte) play_move_rotate::orientation#2 ← (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 & (byte/signed byte/word/signed word/dword/signed dword) 63 [ current_piece#13 current_xpos#23 current_ypos#16 current_orientation#18 current_piece_gfx#17 play_move_rotate::orientation#2 ] ( main:3::play_move_rotate:39 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::render#2 current_piece#13 current_xpos#23 current_ypos#16 current_orientation#18 current_piece_gfx#17 play_move_rotate::orientation#2 ] ) always clobbers reg byte a +Statement [95] (byte*~) current_piece#75 ← (byte*) current_piece#13 [ current_piece#13 current_xpos#23 current_ypos#16 current_orientation#18 current_piece_gfx#17 play_move_rotate::orientation#3 collision::xpos#3 collision::ypos#3 collision::orientation#3 current_piece#75 ] ( main:3::play_move_rotate:39 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::render#2 current_piece#13 current_xpos#23 current_ypos#16 current_orientation#18 current_piece_gfx#17 play_move_rotate::orientation#3 collision::xpos#3 collision::ypos#3 collision::orientation#3 current_piece#75 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:20 [ play_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#2 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:25 [ collision::xpos#5 collision::xpos#0 collision::xpos#1 collision::xpos#2 collision::xpos#3 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:24 [ collision::ypos#4 collision::ypos#0 collision::ypos#1 collision::ypos#2 collision::ypos#3 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:23 [ collision::orientation#4 collision::orientation#0 collision::orientation#1 collision::orientation#2 collision::orientation#3 ] -Statement [100] (byte*) current_piece_gfx#8 ← (byte*) current_piece#13 + (byte) current_orientation#8 [ current_piece#13 current_xpos#23 current_ypos#16 current_orientation#8 current_piece_gfx#8 ] ( main:2::play_move_rotate:38 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::render#2 current_piece#13 current_xpos#23 current_ypos#16 current_orientation#8 current_piece_gfx#8 ] ) always clobbers reg byte a -Statement [101] (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 ← (byte) current_orientation#18 - (byte/signed byte/word/signed word/dword/signed dword) 16 [ current_piece#13 current_xpos#23 current_ypos#16 current_orientation#18 current_piece_gfx#17 play_move_rotate::$4 ] ( main:2::play_move_rotate:38 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::render#2 current_piece#13 current_xpos#23 current_ypos#16 current_orientation#18 current_piece_gfx#17 play_move_rotate::$4 ] ) always clobbers reg byte a -Statement [102] (byte) play_move_rotate::orientation#1 ← (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 & (byte/signed byte/word/signed word/dword/signed dword) 63 [ current_piece#13 current_xpos#23 current_ypos#16 current_orientation#18 current_piece_gfx#17 play_move_rotate::orientation#1 ] ( main:2::play_move_rotate:38 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::render#2 current_piece#13 current_xpos#23 current_ypos#16 current_orientation#18 current_piece_gfx#17 play_move_rotate::orientation#1 ] ) always clobbers reg byte a -Statement [104] (byte*) collision::piece_gfx#0 ← (byte*) current_piece#15 + (byte) collision::orientation#4 [ collision::ypos#4 collision::xpos#5 collision::piece_gfx#0 ] ( main:2::play_move_rotate:38::collision:95 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::render#2 current_piece#13 current_xpos#23 current_ypos#16 current_orientation#18 current_piece_gfx#17 play_move_rotate::orientation#3 collision::ypos#4 collision::xpos#5 collision::piece_gfx#0 ] main:2::play_move_leftright:33::collision:133 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::key_event#0 main::render#1 current_piece_gfx#17 current_piece#13 current_ypos#16 current_orientation#18 current_xpos#19 collision::ypos#4 collision::xpos#5 collision::piece_gfx#0 ] main:2::play_move_leftright:33::collision:144 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::key_event#0 main::render#1 current_piece_gfx#17 current_piece#13 current_ypos#16 current_orientation#18 current_xpos#19 collision::ypos#4 collision::xpos#5 collision::piece_gfx#0 ] main:2::play_move_down:28::collision:168 [ keyboard_events_size#16 main::key_event#0 current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 collision::ypos#4 collision::xpos#5 collision::piece_gfx#0 ] ) always clobbers reg byte a +Statement [101] (byte*) current_piece_gfx#8 ← (byte*) current_piece#13 + (byte) current_orientation#8 [ current_piece#13 current_xpos#23 current_ypos#16 current_orientation#8 current_piece_gfx#8 ] ( main:3::play_move_rotate:39 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::render#2 current_piece#13 current_xpos#23 current_ypos#16 current_orientation#8 current_piece_gfx#8 ] ) always clobbers reg byte a +Statement [102] (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 ← (byte) current_orientation#18 - (byte/signed byte/word/signed word/dword/signed dword) 16 [ current_piece#13 current_xpos#23 current_ypos#16 current_orientation#18 current_piece_gfx#17 play_move_rotate::$4 ] ( main:3::play_move_rotate:39 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::render#2 current_piece#13 current_xpos#23 current_ypos#16 current_orientation#18 current_piece_gfx#17 play_move_rotate::$4 ] ) always clobbers reg byte a +Statement [103] (byte) play_move_rotate::orientation#1 ← (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 & (byte/signed byte/word/signed word/dword/signed dword) 63 [ current_piece#13 current_xpos#23 current_ypos#16 current_orientation#18 current_piece_gfx#17 play_move_rotate::orientation#1 ] ( main:3::play_move_rotate:39 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::render#2 current_piece#13 current_xpos#23 current_ypos#16 current_orientation#18 current_piece_gfx#17 play_move_rotate::orientation#1 ] ) always clobbers reg byte a +Statement [105] (byte*) collision::piece_gfx#0 ← (byte*) current_piece#15 + (byte) collision::orientation#4 [ collision::ypos#4 collision::xpos#5 collision::piece_gfx#0 ] ( main:3::play_move_rotate:39::collision:96 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::render#2 current_piece#13 current_xpos#23 current_ypos#16 current_orientation#18 current_piece_gfx#17 play_move_rotate::orientation#3 collision::ypos#4 collision::xpos#5 collision::piece_gfx#0 ] main:3::play_move_leftright:34::collision:134 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::key_event#0 main::render#1 current_piece_gfx#17 current_piece#13 current_ypos#16 current_orientation#18 current_xpos#19 collision::ypos#4 collision::xpos#5 collision::piece_gfx#0 ] main:3::play_move_leftright:34::collision:145 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::key_event#0 main::render#1 current_piece_gfx#17 current_piece#13 current_ypos#16 current_orientation#18 current_xpos#19 collision::ypos#4 collision::xpos#5 collision::piece_gfx#0 ] main:3::play_move_down:29::collision:169 [ keyboard_events_size#16 main::key_event#0 current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 collision::ypos#4 collision::xpos#5 collision::piece_gfx#0 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:78 [ main::render#1 ] -Statement [105] (byte) collision::ypos2#0 ← (byte) collision::ypos#4 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ collision::xpos#5 collision::piece_gfx#0 collision::ypos2#0 ] ( main:2::play_move_rotate:38::collision:95 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::render#2 current_piece#13 current_xpos#23 current_ypos#16 current_orientation#18 current_piece_gfx#17 play_move_rotate::orientation#3 collision::xpos#5 collision::piece_gfx#0 collision::ypos2#0 ] main:2::play_move_leftright:33::collision:133 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::key_event#0 main::render#1 current_piece_gfx#17 current_piece#13 current_ypos#16 current_orientation#18 current_xpos#19 collision::xpos#5 collision::piece_gfx#0 collision::ypos2#0 ] main:2::play_move_leftright:33::collision:144 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::key_event#0 main::render#1 current_piece_gfx#17 current_piece#13 current_ypos#16 current_orientation#18 current_xpos#19 collision::xpos#5 collision::piece_gfx#0 collision::ypos2#0 ] main:2::play_move_down:28::collision:168 [ keyboard_events_size#16 main::key_event#0 current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 collision::xpos#5 collision::piece_gfx#0 collision::ypos2#0 ] ) always clobbers reg byte a -Statement [107] (byte*) collision::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) collision::ypos2#2) [ collision::xpos#5 collision::piece_gfx#0 collision::ypos2#2 collision::i#3 collision::l#6 collision::playfield_line#0 ] ( main:2::play_move_rotate:38::collision:95 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::render#2 current_piece#13 current_xpos#23 current_ypos#16 current_orientation#18 current_piece_gfx#17 play_move_rotate::orientation#3 collision::xpos#5 collision::piece_gfx#0 collision::ypos2#2 collision::i#3 collision::l#6 collision::playfield_line#0 ] main:2::play_move_leftright:33::collision:133 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::key_event#0 main::render#1 current_piece_gfx#17 current_piece#13 current_ypos#16 current_orientation#18 current_xpos#19 collision::xpos#5 collision::piece_gfx#0 collision::ypos2#2 collision::i#3 collision::l#6 collision::playfield_line#0 ] main:2::play_move_leftright:33::collision:144 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::key_event#0 main::render#1 current_piece_gfx#17 current_piece#13 current_ypos#16 current_orientation#18 current_xpos#19 collision::xpos#5 collision::piece_gfx#0 collision::ypos2#2 collision::i#3 collision::l#6 collision::playfield_line#0 ] main:2::play_move_down:28::collision:168 [ keyboard_events_size#16 main::key_event#0 current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 collision::xpos#5 collision::piece_gfx#0 collision::ypos2#2 collision::i#3 collision::l#6 collision::playfield_line#0 ] ) always clobbers reg byte a +Statement [106] (byte) collision::ypos2#0 ← (byte) collision::ypos#4 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ collision::xpos#5 collision::piece_gfx#0 collision::ypos2#0 ] ( main:3::play_move_rotate:39::collision:96 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::render#2 current_piece#13 current_xpos#23 current_ypos#16 current_orientation#18 current_piece_gfx#17 play_move_rotate::orientation#3 collision::xpos#5 collision::piece_gfx#0 collision::ypos2#0 ] main:3::play_move_leftright:34::collision:134 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::key_event#0 main::render#1 current_piece_gfx#17 current_piece#13 current_ypos#16 current_orientation#18 current_xpos#19 collision::xpos#5 collision::piece_gfx#0 collision::ypos2#0 ] main:3::play_move_leftright:34::collision:145 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::key_event#0 main::render#1 current_piece_gfx#17 current_piece#13 current_ypos#16 current_orientation#18 current_xpos#19 collision::xpos#5 collision::piece_gfx#0 collision::ypos2#0 ] main:3::play_move_down:29::collision:169 [ keyboard_events_size#16 main::key_event#0 current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 collision::xpos#5 collision::piece_gfx#0 collision::ypos2#0 ] ) always clobbers reg byte a +Statement [108] (byte*) collision::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) collision::ypos2#2) [ collision::xpos#5 collision::piece_gfx#0 collision::ypos2#2 collision::i#3 collision::l#6 collision::playfield_line#0 ] ( main:3::play_move_rotate:39::collision:96 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::render#2 current_piece#13 current_xpos#23 current_ypos#16 current_orientation#18 current_piece_gfx#17 play_move_rotate::orientation#3 collision::xpos#5 collision::piece_gfx#0 collision::ypos2#2 collision::i#3 collision::l#6 collision::playfield_line#0 ] main:3::play_move_leftright:34::collision:134 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::key_event#0 main::render#1 current_piece_gfx#17 current_piece#13 current_ypos#16 current_orientation#18 current_xpos#19 collision::xpos#5 collision::piece_gfx#0 collision::ypos2#2 collision::i#3 collision::l#6 collision::playfield_line#0 ] main:3::play_move_leftright:34::collision:145 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::key_event#0 main::render#1 current_piece_gfx#17 current_piece#13 current_ypos#16 current_orientation#18 current_xpos#19 collision::xpos#5 collision::piece_gfx#0 collision::ypos2#2 collision::i#3 collision::l#6 collision::playfield_line#0 ] main:3::play_move_down:29::collision:169 [ keyboard_events_size#16 main::key_event#0 current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 collision::xpos#5 collision::piece_gfx#0 collision::ypos2#2 collision::i#3 collision::l#6 collision::playfield_line#0 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:26 [ collision::ypos2#2 collision::ypos2#0 collision::ypos2#1 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:28 [ collision::i#2 collision::i#3 collision::i#11 collision::i#13 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:27 [ collision::l#6 collision::l#1 ] -Statement [111] if(*((byte*) collision::piece_gfx#0 + (byte) collision::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto collision::@3 [ collision::xpos#5 collision::piece_gfx#0 collision::ypos2#2 collision::l#6 collision::playfield_line#0 collision::col#2 collision::c#2 collision::i#1 ] ( main:2::play_move_rotate:38::collision:95 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::render#2 current_piece#13 current_xpos#23 current_ypos#16 current_orientation#18 current_piece_gfx#17 play_move_rotate::orientation#3 collision::xpos#5 collision::piece_gfx#0 collision::ypos2#2 collision::l#6 collision::playfield_line#0 collision::col#2 collision::c#2 collision::i#1 ] main:2::play_move_leftright:33::collision:133 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::key_event#0 main::render#1 current_piece_gfx#17 current_piece#13 current_ypos#16 current_orientation#18 current_xpos#19 collision::xpos#5 collision::piece_gfx#0 collision::ypos2#2 collision::l#6 collision::playfield_line#0 collision::col#2 collision::c#2 collision::i#1 ] main:2::play_move_leftright:33::collision:144 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::key_event#0 main::render#1 current_piece_gfx#17 current_piece#13 current_ypos#16 current_orientation#18 current_xpos#19 collision::xpos#5 collision::piece_gfx#0 collision::ypos2#2 collision::l#6 collision::playfield_line#0 collision::col#2 collision::c#2 collision::i#1 ] main:2::play_move_down:28::collision:168 [ keyboard_events_size#16 main::key_event#0 current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 collision::xpos#5 collision::piece_gfx#0 collision::ypos2#2 collision::l#6 collision::playfield_line#0 collision::col#2 collision::c#2 collision::i#1 ] ) always clobbers reg byte a +Statement [112] if(*((byte*) collision::piece_gfx#0 + (byte) collision::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto collision::@3 [ collision::xpos#5 collision::piece_gfx#0 collision::ypos2#2 collision::l#6 collision::playfield_line#0 collision::col#2 collision::c#2 collision::i#1 ] ( main:3::play_move_rotate:39::collision:96 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::render#2 current_piece#13 current_xpos#23 current_ypos#16 current_orientation#18 current_piece_gfx#17 play_move_rotate::orientation#3 collision::xpos#5 collision::piece_gfx#0 collision::ypos2#2 collision::l#6 collision::playfield_line#0 collision::col#2 collision::c#2 collision::i#1 ] main:3::play_move_leftright:34::collision:134 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::key_event#0 main::render#1 current_piece_gfx#17 current_piece#13 current_ypos#16 current_orientation#18 current_xpos#19 collision::xpos#5 collision::piece_gfx#0 collision::ypos2#2 collision::l#6 collision::playfield_line#0 collision::col#2 collision::c#2 collision::i#1 ] main:3::play_move_leftright:34::collision:145 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::key_event#0 main::render#1 current_piece_gfx#17 current_piece#13 current_ypos#16 current_orientation#18 current_xpos#19 collision::xpos#5 collision::piece_gfx#0 collision::ypos2#2 collision::l#6 collision::playfield_line#0 collision::col#2 collision::c#2 collision::i#1 ] main:3::play_move_down:29::collision:169 [ keyboard_events_size#16 main::key_event#0 current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 collision::xpos#5 collision::piece_gfx#0 collision::ypos2#2 collision::l#6 collision::playfield_line#0 collision::col#2 collision::c#2 collision::i#1 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:29 [ collision::col#2 collision::col#9 collision::col#1 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:30 [ collision::c#2 collision::c#1 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:99 [ collision::i#1 ] -Statement [115] (byte~) collision::$7 ← (byte) collision::col#2 & (byte/word/signed word/dword/signed dword) 128 [ collision::xpos#5 collision::piece_gfx#0 collision::ypos2#2 collision::l#6 collision::playfield_line#0 collision::col#2 collision::c#2 collision::i#1 collision::$7 ] ( main:2::play_move_rotate:38::collision:95 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::render#2 current_piece#13 current_xpos#23 current_ypos#16 current_orientation#18 current_piece_gfx#17 play_move_rotate::orientation#3 collision::xpos#5 collision::piece_gfx#0 collision::ypos2#2 collision::l#6 collision::playfield_line#0 collision::col#2 collision::c#2 collision::i#1 collision::$7 ] main:2::play_move_leftright:33::collision:133 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::key_event#0 main::render#1 current_piece_gfx#17 current_piece#13 current_ypos#16 current_orientation#18 current_xpos#19 collision::xpos#5 collision::piece_gfx#0 collision::ypos2#2 collision::l#6 collision::playfield_line#0 collision::col#2 collision::c#2 collision::i#1 collision::$7 ] main:2::play_move_leftright:33::collision:144 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::key_event#0 main::render#1 current_piece_gfx#17 current_piece#13 current_ypos#16 current_orientation#18 current_xpos#19 collision::xpos#5 collision::piece_gfx#0 collision::ypos2#2 collision::l#6 collision::playfield_line#0 collision::col#2 collision::c#2 collision::i#1 collision::$7 ] main:2::play_move_down:28::collision:168 [ keyboard_events_size#16 main::key_event#0 current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 collision::xpos#5 collision::piece_gfx#0 collision::ypos2#2 collision::l#6 collision::playfield_line#0 collision::col#2 collision::c#2 collision::i#1 collision::$7 ] ) always clobbers reg byte a -Statement [118] if(*((byte*) collision::playfield_line#0 + (byte) collision::col#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto collision::@3 [ collision::xpos#5 collision::piece_gfx#0 collision::ypos2#2 collision::l#6 collision::playfield_line#0 collision::col#2 collision::c#2 collision::i#1 ] ( main:2::play_move_rotate:38::collision:95 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::render#2 current_piece#13 current_xpos#23 current_ypos#16 current_orientation#18 current_piece_gfx#17 play_move_rotate::orientation#3 collision::xpos#5 collision::piece_gfx#0 collision::ypos2#2 collision::l#6 collision::playfield_line#0 collision::col#2 collision::c#2 collision::i#1 ] main:2::play_move_leftright:33::collision:133 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::key_event#0 main::render#1 current_piece_gfx#17 current_piece#13 current_ypos#16 current_orientation#18 current_xpos#19 collision::xpos#5 collision::piece_gfx#0 collision::ypos2#2 collision::l#6 collision::playfield_line#0 collision::col#2 collision::c#2 collision::i#1 ] main:2::play_move_leftright:33::collision:144 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::key_event#0 main::render#1 current_piece_gfx#17 current_piece#13 current_ypos#16 current_orientation#18 current_xpos#19 collision::xpos#5 collision::piece_gfx#0 collision::ypos2#2 collision::l#6 collision::playfield_line#0 collision::col#2 collision::c#2 collision::i#1 ] main:2::play_move_down:28::collision:168 [ keyboard_events_size#16 main::key_event#0 current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 collision::xpos#5 collision::piece_gfx#0 collision::ypos2#2 collision::l#6 collision::playfield_line#0 collision::col#2 collision::c#2 collision::i#1 ] ) always clobbers reg byte a -Statement [132] (byte*~) current_piece#74 ← (byte*) current_piece#13 [ current_piece#13 current_ypos#16 current_orientation#18 current_piece#74 collision::orientation#2 collision::ypos#2 collision::xpos#2 current_xpos#19 ] ( main:2::play_move_leftright:33 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::key_event#0 main::render#1 current_piece_gfx#17 current_piece#13 current_ypos#16 current_orientation#18 current_piece#74 collision::orientation#2 collision::ypos#2 collision::xpos#2 current_xpos#19 ] ) always clobbers reg byte a -Statement [143] (byte*~) current_piece#73 ← (byte*) current_piece#13 [ current_piece#13 current_ypos#16 current_orientation#18 current_piece#73 collision::orientation#1 collision::ypos#1 collision::xpos#1 current_xpos#19 ] ( main:2::play_move_leftright:33 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::key_event#0 main::render#1 current_piece_gfx#17 current_piece#13 current_ypos#16 current_orientation#18 current_piece#73 collision::orientation#1 collision::ypos#1 collision::xpos#1 current_xpos#19 ] ) always clobbers reg byte a -Statement [167] (byte*~) current_piece#72 ← (byte*) current_piece#11 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_piece#72 collision::orientation#0 collision::ypos#0 collision::xpos#0 ] ( main:2::play_move_down:28 [ keyboard_events_size#16 main::key_event#0 current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_piece#72 collision::orientation#0 collision::ypos#0 collision::xpos#0 ] ) always clobbers reg byte a -Statement [178] (byte*~) current_piece#76 ← (byte*)*((const word[]) PIECES#0 + (byte~) spawn_current::$3) [ current_piece_gfx#10 current_piece_color#15 current_piece#76 ] ( main:2::play_move_down:28 [ keyboard_events_size#16 main::key_event#0 current_piece_gfx#10 current_piece_color#15 current_piece#76 ] ) always clobbers reg byte a -Statement [186] (byte~) spawn_current::$3 ← (byte) spawn_current::piece_idx#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ spawn_current::$3 spawn_current::piece_idx#2 ] ( main:2::spawn_current:11 [ spawn_current::$3 spawn_current::piece_idx#2 ] main:2::play_move_down:28::spawn_current:177 [ keyboard_events_size#16 main::key_event#0 spawn_current::$3 spawn_current::piece_idx#2 ] ) always clobbers reg byte a +Statement [116] (byte~) collision::$7 ← (byte) collision::col#2 & (byte/word/signed word/dword/signed dword) 128 [ collision::xpos#5 collision::piece_gfx#0 collision::ypos2#2 collision::l#6 collision::playfield_line#0 collision::col#2 collision::c#2 collision::i#1 collision::$7 ] ( main:3::play_move_rotate:39::collision:96 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::render#2 current_piece#13 current_xpos#23 current_ypos#16 current_orientation#18 current_piece_gfx#17 play_move_rotate::orientation#3 collision::xpos#5 collision::piece_gfx#0 collision::ypos2#2 collision::l#6 collision::playfield_line#0 collision::col#2 collision::c#2 collision::i#1 collision::$7 ] main:3::play_move_leftright:34::collision:134 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::key_event#0 main::render#1 current_piece_gfx#17 current_piece#13 current_ypos#16 current_orientation#18 current_xpos#19 collision::xpos#5 collision::piece_gfx#0 collision::ypos2#2 collision::l#6 collision::playfield_line#0 collision::col#2 collision::c#2 collision::i#1 collision::$7 ] main:3::play_move_leftright:34::collision:145 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::key_event#0 main::render#1 current_piece_gfx#17 current_piece#13 current_ypos#16 current_orientation#18 current_xpos#19 collision::xpos#5 collision::piece_gfx#0 collision::ypos2#2 collision::l#6 collision::playfield_line#0 collision::col#2 collision::c#2 collision::i#1 collision::$7 ] main:3::play_move_down:29::collision:169 [ keyboard_events_size#16 main::key_event#0 current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 collision::xpos#5 collision::piece_gfx#0 collision::ypos2#2 collision::l#6 collision::playfield_line#0 collision::col#2 collision::c#2 collision::i#1 collision::$7 ] ) always clobbers reg byte a +Statement [119] if(*((byte*) collision::playfield_line#0 + (byte) collision::col#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto collision::@3 [ collision::xpos#5 collision::piece_gfx#0 collision::ypos2#2 collision::l#6 collision::playfield_line#0 collision::col#2 collision::c#2 collision::i#1 ] ( main:3::play_move_rotate:39::collision:96 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::render#2 current_piece#13 current_xpos#23 current_ypos#16 current_orientation#18 current_piece_gfx#17 play_move_rotate::orientation#3 collision::xpos#5 collision::piece_gfx#0 collision::ypos2#2 collision::l#6 collision::playfield_line#0 collision::col#2 collision::c#2 collision::i#1 ] main:3::play_move_leftright:34::collision:134 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::key_event#0 main::render#1 current_piece_gfx#17 current_piece#13 current_ypos#16 current_orientation#18 current_xpos#19 collision::xpos#5 collision::piece_gfx#0 collision::ypos2#2 collision::l#6 collision::playfield_line#0 collision::col#2 collision::c#2 collision::i#1 ] main:3::play_move_leftright:34::collision:145 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::key_event#0 main::render#1 current_piece_gfx#17 current_piece#13 current_ypos#16 current_orientation#18 current_xpos#19 collision::xpos#5 collision::piece_gfx#0 collision::ypos2#2 collision::l#6 collision::playfield_line#0 collision::col#2 collision::c#2 collision::i#1 ] main:3::play_move_down:29::collision:169 [ keyboard_events_size#16 main::key_event#0 current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 collision::xpos#5 collision::piece_gfx#0 collision::ypos2#2 collision::l#6 collision::playfield_line#0 collision::col#2 collision::c#2 collision::i#1 ] ) always clobbers reg byte a +Statement [133] (byte*~) current_piece#74 ← (byte*) current_piece#13 [ current_piece#13 current_ypos#16 current_orientation#18 current_piece#74 collision::orientation#2 collision::ypos#2 collision::xpos#2 current_xpos#19 ] ( main:3::play_move_leftright:34 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::key_event#0 main::render#1 current_piece_gfx#17 current_piece#13 current_ypos#16 current_orientation#18 current_piece#74 collision::orientation#2 collision::ypos#2 collision::xpos#2 current_xpos#19 ] ) always clobbers reg byte a +Statement [144] (byte*~) current_piece#73 ← (byte*) current_piece#13 [ current_piece#13 current_ypos#16 current_orientation#18 current_piece#73 collision::orientation#1 collision::ypos#1 collision::xpos#1 current_xpos#19 ] ( main:3::play_move_leftright:34 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::key_event#0 main::render#1 current_piece_gfx#17 current_piece#13 current_ypos#16 current_orientation#18 current_piece#73 collision::orientation#1 collision::ypos#1 collision::xpos#1 current_xpos#19 ] ) always clobbers reg byte a +Statement [168] (byte*~) current_piece#72 ← (byte*) current_piece#11 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_piece#72 collision::orientation#0 collision::ypos#0 collision::xpos#0 ] ( main:3::play_move_down:29 [ keyboard_events_size#16 main::key_event#0 current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_piece#72 collision::orientation#0 collision::ypos#0 collision::xpos#0 ] ) always clobbers reg byte a +Statement [179] (byte*~) current_piece#76 ← (byte*)*((const word[]) PIECES#0 + (byte~) spawn_current::$3) [ current_piece_gfx#10 current_piece_color#15 current_piece#76 ] ( main:3::play_move_down:29 [ keyboard_events_size#16 main::key_event#0 current_piece_gfx#10 current_piece_color#15 current_piece#76 ] ) always clobbers reg byte a +Statement [187] (byte~) spawn_current::$3 ← (byte) spawn_current::piece_idx#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ spawn_current::$3 spawn_current::piece_idx#2 ] ( main:3::spawn_current:12 [ spawn_current::$3 spawn_current::piece_idx#2 ] main:3::play_move_down:29::spawn_current:178 [ keyboard_events_size#16 main::key_event#0 spawn_current::$3 spawn_current::piece_idx#2 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:42 [ spawn_current::piece_idx#2 spawn_current::piece_idx#1 ] -Statement [187] (byte*) current_piece_gfx#10 ← (byte*)*((const word[]) PIECES#0 + (byte~) spawn_current::$3) + (byte/signed byte/word/signed word/dword/signed dword) 0 [ current_piece_gfx#10 spawn_current::$3 spawn_current::piece_idx#2 ] ( main:2::spawn_current:11 [ current_piece_gfx#10 spawn_current::$3 spawn_current::piece_idx#2 ] main:2::play_move_down:28::spawn_current:177 [ keyboard_events_size#16 main::key_event#0 current_piece_gfx#10 spawn_current::$3 spawn_current::piece_idx#2 ] ) always clobbers reg byte a -Statement [188] (byte) current_piece_color#15 ← *((const byte[]) PIECES_COLORS#0 + (byte) spawn_current::piece_idx#2) [ current_piece_gfx#10 current_piece_color#15 spawn_current::$3 ] ( main:2::spawn_current:11 [ current_piece_gfx#10 current_piece_color#15 spawn_current::$3 ] main:2::play_move_down:28::spawn_current:177 [ keyboard_events_size#16 main::key_event#0 current_piece_gfx#10 current_piece_color#15 spawn_current::$3 ] ) always clobbers reg byte a -Statement [194] (byte) spawn_current::piece_idx#1 ← (byte~) spawn_current::$1 & (byte/signed byte/word/signed word/dword/signed dword) 7 [ spawn_current::piece_idx#1 ] ( main:2::spawn_current:11 [ spawn_current::piece_idx#1 ] main:2::play_move_down:28::spawn_current:177 [ keyboard_events_size#16 main::key_event#0 spawn_current::piece_idx#1 ] ) always clobbers reg byte a -Statement [209] (byte) remove_lines::w#2 ← (byte) remove_lines::w#1 + (const byte) PLAYFIELD_COLS#0 [ remove_lines::y#8 remove_lines::r#1 remove_lines::w#2 ] ( main:2::play_move_down:28::remove_lines:175 [ keyboard_events_size#16 main::key_event#0 remove_lines::y#8 remove_lines::r#1 remove_lines::w#2 ] ) always clobbers reg byte a +Statement [188] (byte*) current_piece_gfx#10 ← (byte*)*((const word[]) PIECES#0 + (byte~) spawn_current::$3) + (byte/signed byte/word/signed word/dword/signed dword) 0 [ current_piece_gfx#10 spawn_current::$3 spawn_current::piece_idx#2 ] ( main:3::spawn_current:12 [ current_piece_gfx#10 spawn_current::$3 spawn_current::piece_idx#2 ] main:3::play_move_down:29::spawn_current:178 [ keyboard_events_size#16 main::key_event#0 current_piece_gfx#10 spawn_current::$3 spawn_current::piece_idx#2 ] ) always clobbers reg byte a +Statement [189] (byte) current_piece_color#15 ← *((const byte[]) PIECES_COLORS#0 + (byte) spawn_current::piece_idx#2) [ current_piece_gfx#10 current_piece_color#15 spawn_current::$3 ] ( main:3::spawn_current:12 [ current_piece_gfx#10 current_piece_color#15 spawn_current::$3 ] main:3::play_move_down:29::spawn_current:178 [ keyboard_events_size#16 main::key_event#0 current_piece_gfx#10 current_piece_color#15 spawn_current::$3 ] ) always clobbers reg byte a +Statement [195] (byte) spawn_current::piece_idx#1 ← (byte~) spawn_current::$1 & (byte/signed byte/word/signed word/dword/signed dword) 7 [ spawn_current::piece_idx#1 ] ( main:3::spawn_current:12 [ spawn_current::piece_idx#1 ] main:3::play_move_down:29::spawn_current:178 [ keyboard_events_size#16 main::key_event#0 spawn_current::piece_idx#1 ] ) always clobbers reg byte a +Statement [210] (byte) remove_lines::w#2 ← (byte) remove_lines::w#1 + (const byte) PLAYFIELD_COLS#0 [ remove_lines::y#8 remove_lines::r#1 remove_lines::w#2 ] ( main:3::play_move_down:29::remove_lines:176 [ keyboard_events_size#16 main::key_event#0 remove_lines::y#8 remove_lines::r#1 remove_lines::w#2 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:43 [ remove_lines::y#8 remove_lines::y#1 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:44 [ remove_lines::r#2 remove_lines::r#3 remove_lines::r#1 ] -Statement [216] *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) remove_lines::w#6) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ remove_lines::w#6 ] ( main:2::play_move_down:28::remove_lines:175 [ keyboard_events_size#16 main::key_event#0 remove_lines::w#6 ] ) always clobbers reg byte a +Statement [217] *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) remove_lines::w#6) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ remove_lines::w#6 ] ( main:3::play_move_down:29::remove_lines:176 [ keyboard_events_size#16 main::key_event#0 remove_lines::w#6 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:47 [ remove_lines::w#6 remove_lines::w#4 remove_lines::w#12 remove_lines::w#11 remove_lines::w#1 remove_lines::w#2 remove_lines::w#3 ] -Statement [219] (byte) lock_current::ypos2#0 ← (byte) current_ypos#12 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ current_piece_gfx#15 current_xpos#16 current_piece_color#11 lock_current::ypos2#0 ] ( main:2::play_move_down:28::lock_current:173 [ keyboard_events_size#16 main::key_event#0 current_piece_gfx#15 current_xpos#16 current_piece_color#11 lock_current::ypos2#0 ] ) always clobbers reg byte a -Statement [221] (byte*) lock_current::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) lock_current::ypos2#2) [ current_piece_gfx#15 current_xpos#16 current_piece_color#11 lock_current::ypos2#2 lock_current::i#3 lock_current::l#6 lock_current::playfield_line#0 ] ( main:2::play_move_down:28::lock_current:173 [ keyboard_events_size#16 main::key_event#0 current_piece_gfx#15 current_xpos#16 current_piece_color#11 lock_current::ypos2#2 lock_current::i#3 lock_current::l#6 lock_current::playfield_line#0 ] ) always clobbers reg byte a +Statement [220] (byte) lock_current::ypos2#0 ← (byte) current_ypos#12 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ current_piece_gfx#15 current_xpos#16 current_piece_color#11 lock_current::ypos2#0 ] ( main:3::play_move_down:29::lock_current:174 [ keyboard_events_size#16 main::key_event#0 current_piece_gfx#15 current_xpos#16 current_piece_color#11 lock_current::ypos2#0 ] ) always clobbers reg byte a +Statement [222] (byte*) lock_current::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) lock_current::ypos2#2) [ current_piece_gfx#15 current_xpos#16 current_piece_color#11 lock_current::ypos2#2 lock_current::i#3 lock_current::l#6 lock_current::playfield_line#0 ] ( main:3::play_move_down:29::lock_current:174 [ keyboard_events_size#16 main::key_event#0 current_piece_gfx#15 current_xpos#16 current_piece_color#11 lock_current::ypos2#2 lock_current::i#3 lock_current::l#6 lock_current::playfield_line#0 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:48 [ lock_current::ypos2#2 lock_current::ypos2#0 lock_current::ypos2#1 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:50 [ lock_current::i#2 lock_current::i#3 lock_current::i#7 lock_current::i#9 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:49 [ lock_current::l#6 lock_current::l#1 ] -Statement [225] if(*((byte*) current_piece_gfx#15 + (byte) lock_current::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto lock_current::@3 [ current_piece_gfx#15 current_xpos#16 current_piece_color#11 lock_current::ypos2#2 lock_current::l#6 lock_current::playfield_line#0 lock_current::col#2 lock_current::c#2 lock_current::i#1 ] ( main:2::play_move_down:28::lock_current:173 [ keyboard_events_size#16 main::key_event#0 current_piece_gfx#15 current_xpos#16 current_piece_color#11 lock_current::ypos2#2 lock_current::l#6 lock_current::playfield_line#0 lock_current::col#2 lock_current::c#2 lock_current::i#1 ] ) always clobbers reg byte a +Statement [226] if(*((byte*) current_piece_gfx#15 + (byte) lock_current::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto lock_current::@3 [ current_piece_gfx#15 current_xpos#16 current_piece_color#11 lock_current::ypos2#2 lock_current::l#6 lock_current::playfield_line#0 lock_current::col#2 lock_current::c#2 lock_current::i#1 ] ( main:3::play_move_down:29::lock_current:174 [ keyboard_events_size#16 main::key_event#0 current_piece_gfx#15 current_xpos#16 current_piece_color#11 lock_current::ypos2#2 lock_current::l#6 lock_current::playfield_line#0 lock_current::col#2 lock_current::c#2 lock_current::i#1 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:51 [ lock_current::col#2 lock_current::col#0 lock_current::col#1 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:52 [ lock_current::c#2 lock_current::c#1 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:116 [ lock_current::i#1 ] -Statement [226] *((byte*) lock_current::playfield_line#0 + (byte) lock_current::col#2) ← (byte) current_piece_color#11 [ current_piece_gfx#15 current_xpos#16 current_piece_color#11 lock_current::ypos2#2 lock_current::l#6 lock_current::playfield_line#0 lock_current::col#2 lock_current::c#2 lock_current::i#1 ] ( main:2::play_move_down:28::lock_current:173 [ keyboard_events_size#16 main::key_event#0 current_piece_gfx#15 current_xpos#16 current_piece_color#11 lock_current::ypos2#2 lock_current::l#6 lock_current::playfield_line#0 lock_current::col#2 lock_current::c#2 lock_current::i#1 ] ) always clobbers reg byte a -Statement [237] (byte~) keyboard_event_pressed::$0 ← (byte) keyboard_event_pressed::keycode#5 >> (byte/signed byte/word/signed word/dword/signed dword) 3 [ keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] ( main:2::play_move_down:28::keyboard_event_pressed:153 [ keyboard_events_size#16 main::key_event#0 current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#10 play_move_down::movedown#10 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] main:2::keyboard_event_scan:22::keyboard_event_pressed:259 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#15 keyboard_events_size#13 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] main:2::keyboard_event_scan:22::keyboard_event_pressed:265 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#15 keyboard_events_size#13 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] main:2::keyboard_event_scan:22::keyboard_event_pressed:271 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#15 keyboard_events_size#13 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] main:2::keyboard_event_scan:22::keyboard_event_pressed:277 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#15 keyboard_events_size#13 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] ) always clobbers reg byte a +Statement [227] *((byte*) lock_current::playfield_line#0 + (byte) lock_current::col#2) ← (byte) current_piece_color#11 [ current_piece_gfx#15 current_xpos#16 current_piece_color#11 lock_current::ypos2#2 lock_current::l#6 lock_current::playfield_line#0 lock_current::col#2 lock_current::c#2 lock_current::i#1 ] ( main:3::play_move_down:29::lock_current:174 [ keyboard_events_size#16 main::key_event#0 current_piece_gfx#15 current_xpos#16 current_piece_color#11 lock_current::ypos2#2 lock_current::l#6 lock_current::playfield_line#0 lock_current::col#2 lock_current::c#2 lock_current::i#1 ] ) always clobbers reg byte a +Statement [238] (byte~) keyboard_event_pressed::$0 ← (byte) keyboard_event_pressed::keycode#5 >> (byte/signed byte/word/signed word/dword/signed dword) 3 [ keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] ( main:3::play_move_down:29::keyboard_event_pressed:154 [ keyboard_events_size#16 main::key_event#0 current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#10 play_move_down::movedown#10 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] main:3::keyboard_event_scan:23::keyboard_event_pressed:260 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#15 keyboard_events_size#13 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] main:3::keyboard_event_scan:23::keyboard_event_pressed:266 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#15 keyboard_events_size#13 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] main:3::keyboard_event_scan:23::keyboard_event_pressed:272 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#15 keyboard_events_size#13 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] main:3::keyboard_event_scan:23::keyboard_event_pressed:278 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#15 keyboard_events_size#13 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:33 [ play_move_down::movedown#6 play_move_down::movedown#3 play_move_down::movedown#7 play_move_down::movedown#2 play_move_down::movedown#10 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:53 [ keyboard_event_pressed::keycode#5 ] -Statement [239] (byte~) keyboard_event_pressed::$1 ← (byte) keyboard_event_pressed::keycode#5 & (byte/signed byte/word/signed word/dword/signed dword) 7 [ keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] ( main:2::play_move_down:28::keyboard_event_pressed:153 [ keyboard_events_size#16 main::key_event#0 current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#10 play_move_down::movedown#10 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:2::keyboard_event_scan:22::keyboard_event_pressed:259 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#15 keyboard_events_size#13 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:2::keyboard_event_scan:22::keyboard_event_pressed:265 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#15 keyboard_events_size#13 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:2::keyboard_event_scan:22::keyboard_event_pressed:271 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#15 keyboard_events_size#13 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:2::keyboard_event_scan:22::keyboard_event_pressed:277 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#15 keyboard_events_size#13 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] ) always clobbers reg byte a +Statement [240] (byte~) keyboard_event_pressed::$1 ← (byte) keyboard_event_pressed::keycode#5 & (byte/signed byte/word/signed word/dword/signed dword) 7 [ keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] ( main:3::play_move_down:29::keyboard_event_pressed:154 [ keyboard_events_size#16 main::key_event#0 current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#10 play_move_down::movedown#10 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:3::keyboard_event_scan:23::keyboard_event_pressed:260 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#15 keyboard_events_size#13 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:3::keyboard_event_scan:23::keyboard_event_pressed:266 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#15 keyboard_events_size#13 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:3::keyboard_event_scan:23::keyboard_event_pressed:272 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#15 keyboard_events_size#13 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:3::keyboard_event_scan:23::keyboard_event_pressed:278 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#15 keyboard_events_size#13 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:118 [ keyboard_event_pressed::row_bits#0 ] -Statement [240] (byte) keyboard_event_pressed::return#11 ← (byte) keyboard_event_pressed::row_bits#0 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte~) keyboard_event_pressed::$1) [ keyboard_event_pressed::return#11 ] ( main:2::play_move_down:28::keyboard_event_pressed:153 [ keyboard_events_size#16 main::key_event#0 current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#10 play_move_down::movedown#10 keyboard_event_pressed::return#11 ] main:2::keyboard_event_scan:22::keyboard_event_pressed:259 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#15 keyboard_events_size#13 keyboard_event_pressed::return#11 ] main:2::keyboard_event_scan:22::keyboard_event_pressed:265 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#15 keyboard_events_size#13 keyboard_event_pressed::return#11 ] main:2::keyboard_event_scan:22::keyboard_event_pressed:271 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#15 keyboard_events_size#13 keyboard_event_pressed::return#11 ] main:2::keyboard_event_scan:22::keyboard_event_pressed:277 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#15 keyboard_events_size#13 keyboard_event_pressed::return#11 ] ) always clobbers reg byte a -Statement [254] (byte) keyboard_event_scan::keycode#1 ← (byte) keyboard_event_scan::keycode#11 + (byte/signed byte/word/signed word/dword/signed dword) 8 [ keyboard_event_scan::row#2 keyboard_events_size#29 keyboard_event_scan::keycode#1 ] ( main:2::keyboard_event_scan:22 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#15 keyboard_event_scan::row#2 keyboard_events_size#29 keyboard_event_scan::keycode#1 ] ) always clobbers reg byte a +Statement [241] (byte) keyboard_event_pressed::return#11 ← (byte) keyboard_event_pressed::row_bits#0 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte~) keyboard_event_pressed::$1) [ keyboard_event_pressed::return#11 ] ( main:3::play_move_down:29::keyboard_event_pressed:154 [ keyboard_events_size#16 main::key_event#0 current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#10 play_move_down::movedown#10 keyboard_event_pressed::return#11 ] main:3::keyboard_event_scan:23::keyboard_event_pressed:260 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#15 keyboard_events_size#13 keyboard_event_pressed::return#11 ] main:3::keyboard_event_scan:23::keyboard_event_pressed:266 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#15 keyboard_events_size#13 keyboard_event_pressed::return#11 ] main:3::keyboard_event_scan:23::keyboard_event_pressed:272 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#15 keyboard_events_size#13 keyboard_event_pressed::return#11 ] main:3::keyboard_event_scan:23::keyboard_event_pressed:278 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#15 keyboard_events_size#13 keyboard_event_pressed::return#11 ] ) always clobbers reg byte a +Statement [255] (byte) keyboard_event_scan::keycode#1 ← (byte) keyboard_event_scan::keycode#11 + (byte/signed byte/word/signed word/dword/signed dword) 8 [ keyboard_event_scan::row#2 keyboard_events_size#29 keyboard_event_scan::keycode#1 ] ( main:3::keyboard_event_scan:23 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#15 keyboard_event_scan::row#2 keyboard_events_size#29 keyboard_event_scan::keycode#1 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:55 [ keyboard_event_scan::row#2 keyboard_event_scan::row#1 ] -Statement [284] (byte~) keyboard_event_scan::$3 ← (byte) keyboard_event_scan::row_scan#0 ^ *((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2) [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::$3 ] ( main:2::keyboard_event_scan:22 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#15 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::$3 ] ) always clobbers reg byte a +Statement [285] (byte~) keyboard_event_scan::$3 ← (byte) keyboard_event_scan::row_scan#0 ^ *((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2) [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::$3 ] ( main:3::keyboard_event_scan:23 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#15 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::$3 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:123 [ keyboard_event_scan::row_scan#0 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:56 [ keyboard_event_scan::col#2 keyboard_event_scan::col#1 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:57 [ keyboard_event_scan::keycode#10 keyboard_event_scan::keycode#11 keyboard_event_scan::keycode#14 keyboard_event_scan::keycode#1 keyboard_event_scan::keycode#15 ] -Statement [285] (byte~) keyboard_event_scan::$4 ← (byte~) keyboard_event_scan::$3 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_event_scan::col#2) [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::$4 ] ( main:2::keyboard_event_scan:22 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#15 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::$4 ] ) always clobbers reg byte a -Statement [288] (byte) keyboard_event_scan::event_type#0 ← (byte) keyboard_event_scan::row_scan#0 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_event_scan::col#2) [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::event_type#0 ] ( main:2::keyboard_event_scan:22 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#15 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::event_type#0 ] ) always clobbers reg byte a -Statement [290] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte) keyboard_event_scan::keycode#10 [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 ] ( main:2::keyboard_event_scan:22 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#15 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 ] ) always clobbers reg byte a -Statement [296] *((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2) ← (byte) keyboard_event_scan::row_scan#0 [ keyboard_event_scan::row#2 keyboard_event_scan::keycode#15 keyboard_events_size#30 ] ( main:2::keyboard_event_scan:22 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#15 keyboard_event_scan::row#2 keyboard_event_scan::keycode#15 keyboard_events_size#30 ] ) always clobbers reg byte a -Statement [297] (byte/word/dword~) keyboard_event_scan::$11 ← (byte) keyboard_event_scan::keycode#10 | (byte/signed byte/word/signed word/dword/signed dword) 64 [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::$11 ] ( main:2::keyboard_event_scan:22 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#15 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::$11 ] ) always clobbers reg byte a -Statement [300] *((const byte*) CIA1_PORT_A#0) ← *((const byte[8]) keyboard_matrix_row_bitmask#0 + (byte) keyboard_matrix_read::rowid#0) [ ] ( main:2::keyboard_event_scan:22::keyboard_matrix_read:250 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#15 keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#29 ] ) always clobbers reg byte a -Statement [301] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) [ keyboard_matrix_read::return#0 ] ( main:2::keyboard_event_scan:22::keyboard_matrix_read:250 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#15 keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#29 keyboard_matrix_read::return#0 ] ) always clobbers reg byte a -Statement [305] (byte~) tables_init::$1 ← (byte) tables_init::j#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ tables_init::j#2 tables_init::pli#2 tables_init::idx#2 tables_init::$1 ] ( main:2::tables_init:9 [ tables_init::j#2 tables_init::pli#2 tables_init::idx#2 tables_init::$1 ] ) always clobbers reg byte a +Statement [286] (byte~) keyboard_event_scan::$4 ← (byte~) keyboard_event_scan::$3 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_event_scan::col#2) [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::$4 ] ( main:3::keyboard_event_scan:23 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#15 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::$4 ] ) always clobbers reg byte a +Statement [289] (byte) keyboard_event_scan::event_type#0 ← (byte) keyboard_event_scan::row_scan#0 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_event_scan::col#2) [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::event_type#0 ] ( main:3::keyboard_event_scan:23 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#15 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::event_type#0 ] ) always clobbers reg byte a +Statement [291] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte) keyboard_event_scan::keycode#10 [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 ] ( main:3::keyboard_event_scan:23 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#15 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 ] ) always clobbers reg byte a +Statement [297] *((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2) ← (byte) keyboard_event_scan::row_scan#0 [ keyboard_event_scan::row#2 keyboard_event_scan::keycode#15 keyboard_events_size#30 ] ( main:3::keyboard_event_scan:23 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#15 keyboard_event_scan::row#2 keyboard_event_scan::keycode#15 keyboard_events_size#30 ] ) always clobbers reg byte a +Statement [298] (byte/word/dword~) keyboard_event_scan::$11 ← (byte) keyboard_event_scan::keycode#10 | (byte/signed byte/word/signed word/dword/signed dword) 64 [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::$11 ] ( main:3::keyboard_event_scan:23 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#15 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::$11 ] ) always clobbers reg byte a +Statement [301] *((const byte*) CIA1_PORT_A#0) ← *((const byte[8]) keyboard_matrix_row_bitmask#0 + (byte) keyboard_matrix_read::rowid#0) [ ] ( main:3::keyboard_event_scan:23::keyboard_matrix_read:251 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#15 keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#29 ] ) always clobbers reg byte a +Statement [302] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) [ keyboard_matrix_read::return#0 ] ( main:3::keyboard_event_scan:23::keyboard_matrix_read:251 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#15 keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#29 keyboard_matrix_read::return#0 ] ) always clobbers reg byte a +Statement [306] (byte~) tables_init::$1 ← (byte) tables_init::j#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ tables_init::j#2 tables_init::pli#2 tables_init::idx#2 tables_init::$1 ] ( main:3::tables_init:10 [ tables_init::j#2 tables_init::pli#2 tables_init::idx#2 tables_init::$1 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:59 [ tables_init::j#2 tables_init::j#1 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:62 [ tables_init::idx#2 tables_init::idx#1 ] -Statement [306] *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte~) tables_init::$1) ← (byte*) tables_init::pli#2 [ tables_init::j#2 tables_init::pli#2 tables_init::idx#2 ] ( main:2::tables_init:9 [ tables_init::j#2 tables_init::pli#2 tables_init::idx#2 ] ) always clobbers reg byte a -Statement [307] *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0 + (byte) tables_init::j#2) ← (byte) tables_init::idx#2 [ tables_init::j#2 tables_init::pli#2 tables_init::idx#2 ] ( main:2::tables_init:9 [ tables_init::j#2 tables_init::pli#2 tables_init::idx#2 ] ) always clobbers reg byte a -Statement [308] (byte*) tables_init::pli#1 ← (byte*) tables_init::pli#2 + (const byte) PLAYFIELD_COLS#0 [ tables_init::j#2 tables_init::idx#2 tables_init::pli#1 ] ( main:2::tables_init:9 [ tables_init::j#2 tables_init::idx#2 tables_init::pli#1 ] ) always clobbers reg byte a -Statement [309] (byte) tables_init::idx#1 ← (byte) tables_init::idx#2 + (const byte) PLAYFIELD_COLS#0 [ tables_init::j#2 tables_init::pli#1 tables_init::idx#1 ] ( main:2::tables_init:9 [ tables_init::j#2 tables_init::pli#1 tables_init::idx#1 ] ) always clobbers reg byte a -Statement [312] *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0+(const byte) PLAYFIELD_LINES#0) ← (const byte) PLAYFIELD_COLS#0*(const byte) PLAYFIELD_LINES#0 [ ] ( main:2::tables_init:9 [ ] ) always clobbers reg byte a -Statement [319] (byte~) render_init::$5 ← (byte) render_init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ render_init::i#2 render_init::li#2 render_init::$5 ] ( main:2::render_init:7 [ render_init::i#2 render_init::li#2 render_init::$5 ] ) always clobbers reg byte a +Statement [307] *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte~) tables_init::$1) ← (byte*) tables_init::pli#2 [ tables_init::j#2 tables_init::pli#2 tables_init::idx#2 ] ( main:3::tables_init:10 [ tables_init::j#2 tables_init::pli#2 tables_init::idx#2 ] ) always clobbers reg byte a +Statement [308] *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0 + (byte) tables_init::j#2) ← (byte) tables_init::idx#2 [ tables_init::j#2 tables_init::pli#2 tables_init::idx#2 ] ( main:3::tables_init:10 [ tables_init::j#2 tables_init::pli#2 tables_init::idx#2 ] ) always clobbers reg byte a +Statement [309] (byte*) tables_init::pli#1 ← (byte*) tables_init::pli#2 + (const byte) PLAYFIELD_COLS#0 [ tables_init::j#2 tables_init::idx#2 tables_init::pli#1 ] ( main:3::tables_init:10 [ tables_init::j#2 tables_init::idx#2 tables_init::pli#1 ] ) always clobbers reg byte a +Statement [310] (byte) tables_init::idx#1 ← (byte) tables_init::idx#2 + (const byte) PLAYFIELD_COLS#0 [ tables_init::j#2 tables_init::pli#1 tables_init::idx#1 ] ( main:3::tables_init:10 [ tables_init::j#2 tables_init::pli#1 tables_init::idx#1 ] ) always clobbers reg byte a +Statement [313] *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0+(const byte) PLAYFIELD_LINES#0) ← (const byte) PLAYFIELD_COLS#0*(const byte) PLAYFIELD_LINES#0 [ ] ( main:3::tables_init:10 [ ] ) always clobbers reg byte a +Statement [320] (byte~) render_init::$5 ← (byte) render_init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ render_init::i#2 render_init::li#2 render_init::$5 ] ( main:3::render_init:8 [ render_init::i#2 render_init::li#2 render_init::$5 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:63 [ render_init::i#2 render_init::i#1 ] -Statement [320] *((const byte*[PLAYFIELD_LINES#0+3]) screen_lines#0 + (byte~) render_init::$5) ← (byte*) render_init::li#2 [ render_init::i#2 render_init::li#2 ] ( main:2::render_init:7 [ render_init::i#2 render_init::li#2 ] ) always clobbers reg byte a -Statement [321] (byte*) render_init::li#1 ← (byte*) render_init::li#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ render_init::i#2 render_init::li#1 ] ( main:2::render_init:7 [ render_init::i#2 render_init::li#1 ] ) always clobbers reg byte a -Statement [326] (byte*~) render_init::$10 ← (byte*) render_init::line#4 + (byte) render_init::c#2 [ render_init::line#4 render_init::l#4 render_init::c#2 render_init::$10 ] ( main:2::render_init:7 [ render_init::line#4 render_init::l#4 render_init::c#2 render_init::$10 ] ) always clobbers reg byte a +Statement [321] *((const byte*[PLAYFIELD_LINES#0+3]) screen_lines#0 + (byte~) render_init::$5) ← (byte*) render_init::li#2 [ render_init::i#2 render_init::li#2 ] ( main:3::render_init:8 [ render_init::i#2 render_init::li#2 ] ) always clobbers reg byte a +Statement [322] (byte*) render_init::li#1 ← (byte*) render_init::li#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ render_init::i#2 render_init::li#1 ] ( main:3::render_init:8 [ render_init::i#2 render_init::li#1 ] ) always clobbers reg byte a +Statement [327] (byte*~) render_init::$10 ← (byte*) render_init::line#4 + (byte) render_init::c#2 [ render_init::line#4 render_init::l#4 render_init::c#2 render_init::$10 ] ( main:3::render_init:8 [ render_init::line#4 render_init::l#4 render_init::c#2 render_init::$10 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:68 [ render_init::l#4 render_init::l#1 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:69 [ render_init::c#2 render_init::c#1 ] -Statement [327] *((byte*~) render_init::$10) ← (const byte) DARK_GREY#0 [ render_init::line#4 render_init::l#4 render_init::c#2 ] ( main:2::render_init:7 [ render_init::line#4 render_init::l#4 render_init::c#2 ] ) always clobbers reg byte a reg byte y +Statement [328] *((byte*~) render_init::$10) ← (const byte) DARK_GREY#0 [ render_init::line#4 render_init::l#4 render_init::c#2 ] ( main:3::render_init:8 [ render_init::line#4 render_init::l#4 render_init::c#2 ] ) always clobbers reg byte a reg byte y Removing always clobbered register reg byte y as potential for zp ZP_BYTE:68 [ render_init::l#4 render_init::l#1 ] Removing always clobbered register reg byte y as potential for zp ZP_BYTE:69 [ render_init::c#2 render_init::c#1 ] -Statement [330] (byte*) render_init::line#1 ← (byte*) render_init::line#4 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ render_init::l#4 render_init::line#1 ] ( main:2::render_init:7 [ render_init::l#4 render_init::line#1 ] ) always clobbers reg byte a -Statement [335] (byte*) fill::end#0 ← (byte*) fill::addr#0 + (word/signed word/dword/signed dword) 1000 [ fill::addr#0 fill::val#3 fill::end#0 ] ( main:2::render_init:7::fill:315 [ fill::addr#0 fill::val#3 fill::end#0 ] main:2::render_init:7::fill:317 [ fill::addr#0 fill::val#3 fill::end#0 ] ) always clobbers reg byte a +Statement [331] (byte*) render_init::line#1 ← (byte*) render_init::line#4 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ render_init::l#4 render_init::line#1 ] ( main:3::render_init:8 [ render_init::l#4 render_init::line#1 ] ) always clobbers reg byte a +Statement [336] (byte*) fill::end#0 ← (byte*) fill::addr#0 + (word/signed word/dword/signed dword) 1000 [ fill::addr#0 fill::val#3 fill::end#0 ] ( main:3::render_init:8::fill:316 [ fill::addr#0 fill::val#3 fill::end#0 ] main:3::render_init:8::fill:318 [ fill::addr#0 fill::val#3 fill::end#0 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:70 [ fill::val#3 ] -Statement [337] *((byte*) fill::addr#2) ← (byte) fill::val#3 [ fill::val#3 fill::end#0 fill::addr#2 ] ( main:2::render_init:7::fill:315 [ fill::val#3 fill::end#0 fill::addr#2 ] main:2::render_init:7::fill:317 [ fill::val#3 fill::end#0 fill::addr#2 ] ) always clobbers reg byte a reg byte y +Statement [338] *((byte*) fill::addr#2) ← (byte) fill::val#3 [ fill::val#3 fill::end#0 fill::addr#2 ] ( main:3::render_init:8::fill:316 [ fill::val#3 fill::end#0 fill::addr#2 ] main:3::render_init:8::fill:318 [ fill::val#3 fill::end#0 fill::addr#2 ] ) always clobbers reg byte a reg byte y Removing always clobbered register reg byte y as potential for zp ZP_BYTE:70 [ fill::val#3 ] -Statement [339] if((byte*) fill::addr#1!=(byte*) fill::end#0) goto fill::@1 [ fill::val#3 fill::end#0 fill::addr#1 ] ( main:2::render_init:7::fill:315 [ fill::val#3 fill::end#0 fill::addr#1 ] main:2::render_init:7::fill:317 [ fill::val#3 fill::end#0 fill::addr#1 ] ) always clobbers reg byte a -Statement [341] *((const word*) SID_VOICE3_FREQ#0) ← (word/dword/signed dword) 65535 [ ] ( main:2::sid_rnd_init:5 [ ] ) always clobbers reg byte a -Statement [342] *((const byte*) SID_VOICE3_CONTROL#0) ← (const byte) SID_CONTROL_NOISE#0 [ ] ( main:2::sid_rnd_init:5 [ ] ) always clobbers reg byte a -Statement [14] (byte*~) current_piece_gfx#87 ← (byte*) current_piece_gfx#10 [ current_piece_gfx#87 current_piece_gfx#10 current_piece_color#15 spawn_current::$3 ] ( main:2 [ current_piece_gfx#87 current_piece_gfx#10 current_piece_color#15 spawn_current::$3 ] ) always clobbers reg byte a -Statement [17] (byte*~) current_piece#71 ← (byte*)*((const word[]) PIECES#0 + (byte~) spawn_current::$3) [ current_piece_gfx#10 current_piece_color#15 current_piece#71 ] ( main:2 [ current_piece_gfx#10 current_piece_color#15 current_piece#71 ] ) always clobbers reg byte a -Statement [19] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@4 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 keyboard_events_size#19 current_movedown_counter#15 ] ( main:2 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 keyboard_events_size#19 current_movedown_counter#15 ] ) always clobbers reg byte a -Statement [20] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 254) goto main::@7 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 keyboard_events_size#19 current_movedown_counter#15 ] ( main:2 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 keyboard_events_size#19 current_movedown_counter#15 ] ) always clobbers reg byte a -Statement [31] (byte) main::render#1 ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte~) main::$10 [ current_piece#13 current_ypos#16 current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::key_event#0 main::render#1 current_orientation#18 current_piece_gfx#17 current_xpos#19 ] ( main:2 [ current_piece#13 current_ypos#16 current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::key_event#0 main::render#1 current_orientation#18 current_piece_gfx#17 current_xpos#19 ] ) always clobbers reg byte a -Statement [36] (byte) main::render#2 ← (byte) main::render#1 + (byte~) main::$11 [ current_piece#13 current_xpos#23 current_ypos#16 current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::key_event#0 main::render#2 current_orientation#18 current_piece_gfx#17 ] ( main:2 [ current_piece#13 current_xpos#23 current_ypos#16 current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::key_event#0 main::render#2 current_orientation#18 current_piece_gfx#17 ] ) always clobbers reg byte a -Statement [41] (byte) main::render#3 ← (byte) main::render#2 + (byte~) main::$12 [ current_piece#13 current_orientation#23 current_piece_gfx#18 current_xpos#23 current_ypos#16 current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::render#3 ] ( main:2 [ current_piece#13 current_orientation#23 current_piece_gfx#18 current_xpos#23 current_ypos#16 current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::render#3 ] ) always clobbers reg byte a -Statement [47] (byte*~) current_piece_gfx#88 ← (byte*) current_piece_gfx#18 [ current_piece#13 current_orientation#23 current_piece_gfx#18 current_xpos#23 current_ypos#16 current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 current_ypos#71 current_xpos#96 current_piece_gfx#88 ] ( main:2 [ current_piece#13 current_orientation#23 current_piece_gfx#18 current_xpos#23 current_ypos#16 current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 current_ypos#71 current_xpos#96 current_piece_gfx#88 ] ) always clobbers reg byte a -Statement [52] (byte) render_current::ypos2#0 ← (byte) current_ypos#22 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ current_xpos#63 current_piece_gfx#64 current_piece_color#67 render_current::ypos2#0 ] ( main:2::render_current:16 [ current_piece_gfx#10 current_piece_color#15 spawn_current::$3 current_xpos#63 current_piece_gfx#64 current_piece_color#67 render_current::ypos2#0 ] main:2::render_current:49 [ current_piece#13 current_orientation#23 current_piece_gfx#18 current_xpos#23 current_ypos#16 current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 current_xpos#63 current_piece_gfx#64 current_piece_color#67 render_current::ypos2#0 ] ) always clobbers reg byte a -Statement [55] (byte*) render_current::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0+3]) screen_lines#0 + (byte) render_current::ypos2#2) [ current_xpos#63 current_piece_gfx#64 current_piece_color#67 render_current::ypos2#2 render_current::l#3 render_current::i#4 render_current::screen_line#0 ] ( main:2::render_current:16 [ current_piece_gfx#10 current_piece_color#15 spawn_current::$3 current_xpos#63 current_piece_gfx#64 current_piece_color#67 render_current::ypos2#2 render_current::l#3 render_current::i#4 render_current::screen_line#0 ] main:2::render_current:49 [ current_piece#13 current_orientation#23 current_piece_gfx#18 current_xpos#23 current_ypos#16 current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 current_xpos#63 current_piece_gfx#64 current_piece_color#67 render_current::ypos2#2 render_current::l#3 render_current::i#4 render_current::screen_line#0 ] ) always clobbers reg byte a -Statement [58] (byte) render_current::current_cell#0 ← *((byte*) current_piece_gfx#64 + (byte) render_current::i#2) [ current_xpos#63 current_piece_gfx#64 current_piece_color#67 render_current::ypos2#2 render_current::l#3 render_current::screen_line#0 render_current::i#2 render_current::xpos#2 render_current::c#2 render_current::current_cell#0 ] ( main:2::render_current:16 [ current_piece_gfx#10 current_piece_color#15 spawn_current::$3 current_xpos#63 current_piece_gfx#64 current_piece_color#67 render_current::ypos2#2 render_current::l#3 render_current::screen_line#0 render_current::i#2 render_current::xpos#2 render_current::c#2 render_current::current_cell#0 ] main:2::render_current:49 [ current_piece#13 current_orientation#23 current_piece_gfx#18 current_xpos#23 current_ypos#16 current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 current_xpos#63 current_piece_gfx#64 current_piece_color#67 render_current::ypos2#2 render_current::l#3 render_current::screen_line#0 render_current::i#2 render_current::xpos#2 render_current::c#2 render_current::current_cell#0 ] ) always clobbers reg byte a -Statement [62] *((byte*) render_current::screen_line#0 + (byte) render_current::xpos#2) ← (byte) current_piece_color#67 [ current_xpos#63 current_piece_gfx#64 current_piece_color#67 render_current::ypos2#2 render_current::l#3 render_current::screen_line#0 render_current::xpos#2 render_current::c#2 render_current::i#1 ] ( main:2::render_current:16 [ current_piece_gfx#10 current_piece_color#15 spawn_current::$3 current_xpos#63 current_piece_gfx#64 current_piece_color#67 render_current::ypos2#2 render_current::l#3 render_current::screen_line#0 render_current::xpos#2 render_current::c#2 render_current::i#1 ] main:2::render_current:49 [ current_piece#13 current_orientation#23 current_piece_gfx#18 current_xpos#23 current_ypos#16 current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 current_xpos#63 current_piece_gfx#64 current_piece_color#67 render_current::ypos2#2 render_current::l#3 render_current::screen_line#0 render_current::xpos#2 render_current::c#2 render_current::i#1 ] ) always clobbers reg byte a -Statement [73] (byte~) render_playfield::$1 ← (byte) render_playfield::l#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ render_playfield::l#2 render_playfield::i#3 render_playfield::$1 ] ( main:2::render_playfield:13 [ current_piece_gfx#10 current_piece_color#15 spawn_current::$3 render_playfield::l#2 render_playfield::i#3 render_playfield::$1 ] main:2::render_playfield:44 [ current_piece#13 current_orientation#23 current_piece_gfx#18 current_xpos#23 current_ypos#16 current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 render_playfield::l#2 render_playfield::i#3 render_playfield::$1 ] ) always clobbers reg byte a -Statement [74] (byte*) render_playfield::line#0 ← *((const byte*[PLAYFIELD_LINES#0+3]) screen_lines#0 + (byte~) render_playfield::$1) [ render_playfield::l#2 render_playfield::i#3 render_playfield::line#0 ] ( main:2::render_playfield:13 [ current_piece_gfx#10 current_piece_color#15 spawn_current::$3 render_playfield::l#2 render_playfield::i#3 render_playfield::line#0 ] main:2::render_playfield:44 [ current_piece#13 current_orientation#23 current_piece_gfx#18 current_xpos#23 current_ypos#16 current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 render_playfield::l#2 render_playfield::i#3 render_playfield::line#0 ] ) always clobbers reg byte a -Statement [76] *((byte*) render_playfield::line#2) ← *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) render_playfield::i#2) [ render_playfield::l#2 render_playfield::i#2 render_playfield::line#2 render_playfield::c#2 ] ( main:2::render_playfield:13 [ current_piece_gfx#10 current_piece_color#15 spawn_current::$3 render_playfield::l#2 render_playfield::i#2 render_playfield::line#2 render_playfield::c#2 ] main:2::render_playfield:44 [ current_piece#13 current_orientation#23 current_piece_gfx#18 current_xpos#23 current_ypos#16 current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 render_playfield::l#2 render_playfield::i#2 render_playfield::line#2 render_playfield::c#2 ] ) always clobbers reg byte a reg byte y -Statement [88] (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 ← (byte) current_orientation#18 + (byte/signed byte/word/signed word/dword/signed dword) 16 [ current_piece#13 current_xpos#23 current_ypos#16 current_orientation#18 current_piece_gfx#17 play_move_rotate::$2 ] ( main:2::play_move_rotate:38 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::render#2 current_piece#13 current_xpos#23 current_ypos#16 current_orientation#18 current_piece_gfx#17 play_move_rotate::$2 ] ) always clobbers reg byte a -Statement [89] (byte) play_move_rotate::orientation#2 ← (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 & (byte/signed byte/word/signed word/dword/signed dword) 63 [ current_piece#13 current_xpos#23 current_ypos#16 current_orientation#18 current_piece_gfx#17 play_move_rotate::orientation#2 ] ( main:2::play_move_rotate:38 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::render#2 current_piece#13 current_xpos#23 current_ypos#16 current_orientation#18 current_piece_gfx#17 play_move_rotate::orientation#2 ] ) always clobbers reg byte a -Statement [94] (byte*~) current_piece#75 ← (byte*) current_piece#13 [ current_piece#13 current_xpos#23 current_ypos#16 current_orientation#18 current_piece_gfx#17 play_move_rotate::orientation#3 collision::xpos#3 collision::ypos#3 collision::orientation#3 current_piece#75 ] ( main:2::play_move_rotate:38 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::render#2 current_piece#13 current_xpos#23 current_ypos#16 current_orientation#18 current_piece_gfx#17 play_move_rotate::orientation#3 collision::xpos#3 collision::ypos#3 collision::orientation#3 current_piece#75 ] ) always clobbers reg byte a -Statement [100] (byte*) current_piece_gfx#8 ← (byte*) current_piece#13 + (byte) current_orientation#8 [ current_piece#13 current_xpos#23 current_ypos#16 current_orientation#8 current_piece_gfx#8 ] ( main:2::play_move_rotate:38 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::render#2 current_piece#13 current_xpos#23 current_ypos#16 current_orientation#8 current_piece_gfx#8 ] ) always clobbers reg byte a -Statement [101] (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 ← (byte) current_orientation#18 - (byte/signed byte/word/signed word/dword/signed dword) 16 [ current_piece#13 current_xpos#23 current_ypos#16 current_orientation#18 current_piece_gfx#17 play_move_rotate::$4 ] ( main:2::play_move_rotate:38 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::render#2 current_piece#13 current_xpos#23 current_ypos#16 current_orientation#18 current_piece_gfx#17 play_move_rotate::$4 ] ) always clobbers reg byte a -Statement [102] (byte) play_move_rotate::orientation#1 ← (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 & (byte/signed byte/word/signed word/dword/signed dword) 63 [ current_piece#13 current_xpos#23 current_ypos#16 current_orientation#18 current_piece_gfx#17 play_move_rotate::orientation#1 ] ( main:2::play_move_rotate:38 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::render#2 current_piece#13 current_xpos#23 current_ypos#16 current_orientation#18 current_piece_gfx#17 play_move_rotate::orientation#1 ] ) always clobbers reg byte a -Statement [104] (byte*) collision::piece_gfx#0 ← (byte*) current_piece#15 + (byte) collision::orientation#4 [ collision::ypos#4 collision::xpos#5 collision::piece_gfx#0 ] ( main:2::play_move_rotate:38::collision:95 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::render#2 current_piece#13 current_xpos#23 current_ypos#16 current_orientation#18 current_piece_gfx#17 play_move_rotate::orientation#3 collision::ypos#4 collision::xpos#5 collision::piece_gfx#0 ] main:2::play_move_leftright:33::collision:133 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::key_event#0 main::render#1 current_piece_gfx#17 current_piece#13 current_ypos#16 current_orientation#18 current_xpos#19 collision::ypos#4 collision::xpos#5 collision::piece_gfx#0 ] main:2::play_move_leftright:33::collision:144 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::key_event#0 main::render#1 current_piece_gfx#17 current_piece#13 current_ypos#16 current_orientation#18 current_xpos#19 collision::ypos#4 collision::xpos#5 collision::piece_gfx#0 ] main:2::play_move_down:28::collision:168 [ keyboard_events_size#16 main::key_event#0 current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 collision::ypos#4 collision::xpos#5 collision::piece_gfx#0 ] ) always clobbers reg byte a -Statement [105] (byte) collision::ypos2#0 ← (byte) collision::ypos#4 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ collision::xpos#5 collision::piece_gfx#0 collision::ypos2#0 ] ( main:2::play_move_rotate:38::collision:95 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::render#2 current_piece#13 current_xpos#23 current_ypos#16 current_orientation#18 current_piece_gfx#17 play_move_rotate::orientation#3 collision::xpos#5 collision::piece_gfx#0 collision::ypos2#0 ] main:2::play_move_leftright:33::collision:133 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::key_event#0 main::render#1 current_piece_gfx#17 current_piece#13 current_ypos#16 current_orientation#18 current_xpos#19 collision::xpos#5 collision::piece_gfx#0 collision::ypos2#0 ] main:2::play_move_leftright:33::collision:144 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::key_event#0 main::render#1 current_piece_gfx#17 current_piece#13 current_ypos#16 current_orientation#18 current_xpos#19 collision::xpos#5 collision::piece_gfx#0 collision::ypos2#0 ] main:2::play_move_down:28::collision:168 [ keyboard_events_size#16 main::key_event#0 current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 collision::xpos#5 collision::piece_gfx#0 collision::ypos2#0 ] ) always clobbers reg byte a -Statement [107] (byte*) collision::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) collision::ypos2#2) [ collision::xpos#5 collision::piece_gfx#0 collision::ypos2#2 collision::i#3 collision::l#6 collision::playfield_line#0 ] ( main:2::play_move_rotate:38::collision:95 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::render#2 current_piece#13 current_xpos#23 current_ypos#16 current_orientation#18 current_piece_gfx#17 play_move_rotate::orientation#3 collision::xpos#5 collision::piece_gfx#0 collision::ypos2#2 collision::i#3 collision::l#6 collision::playfield_line#0 ] main:2::play_move_leftright:33::collision:133 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::key_event#0 main::render#1 current_piece_gfx#17 current_piece#13 current_ypos#16 current_orientation#18 current_xpos#19 collision::xpos#5 collision::piece_gfx#0 collision::ypos2#2 collision::i#3 collision::l#6 collision::playfield_line#0 ] main:2::play_move_leftright:33::collision:144 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::key_event#0 main::render#1 current_piece_gfx#17 current_piece#13 current_ypos#16 current_orientation#18 current_xpos#19 collision::xpos#5 collision::piece_gfx#0 collision::ypos2#2 collision::i#3 collision::l#6 collision::playfield_line#0 ] main:2::play_move_down:28::collision:168 [ keyboard_events_size#16 main::key_event#0 current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 collision::xpos#5 collision::piece_gfx#0 collision::ypos2#2 collision::i#3 collision::l#6 collision::playfield_line#0 ] ) always clobbers reg byte a -Statement [111] if(*((byte*) collision::piece_gfx#0 + (byte) collision::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto collision::@3 [ collision::xpos#5 collision::piece_gfx#0 collision::ypos2#2 collision::l#6 collision::playfield_line#0 collision::col#2 collision::c#2 collision::i#1 ] ( main:2::play_move_rotate:38::collision:95 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::render#2 current_piece#13 current_xpos#23 current_ypos#16 current_orientation#18 current_piece_gfx#17 play_move_rotate::orientation#3 collision::xpos#5 collision::piece_gfx#0 collision::ypos2#2 collision::l#6 collision::playfield_line#0 collision::col#2 collision::c#2 collision::i#1 ] main:2::play_move_leftright:33::collision:133 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::key_event#0 main::render#1 current_piece_gfx#17 current_piece#13 current_ypos#16 current_orientation#18 current_xpos#19 collision::xpos#5 collision::piece_gfx#0 collision::ypos2#2 collision::l#6 collision::playfield_line#0 collision::col#2 collision::c#2 collision::i#1 ] main:2::play_move_leftright:33::collision:144 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::key_event#0 main::render#1 current_piece_gfx#17 current_piece#13 current_ypos#16 current_orientation#18 current_xpos#19 collision::xpos#5 collision::piece_gfx#0 collision::ypos2#2 collision::l#6 collision::playfield_line#0 collision::col#2 collision::c#2 collision::i#1 ] main:2::play_move_down:28::collision:168 [ keyboard_events_size#16 main::key_event#0 current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 collision::xpos#5 collision::piece_gfx#0 collision::ypos2#2 collision::l#6 collision::playfield_line#0 collision::col#2 collision::c#2 collision::i#1 ] ) always clobbers reg byte a -Statement [115] (byte~) collision::$7 ← (byte) collision::col#2 & (byte/word/signed word/dword/signed dword) 128 [ collision::xpos#5 collision::piece_gfx#0 collision::ypos2#2 collision::l#6 collision::playfield_line#0 collision::col#2 collision::c#2 collision::i#1 collision::$7 ] ( main:2::play_move_rotate:38::collision:95 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::render#2 current_piece#13 current_xpos#23 current_ypos#16 current_orientation#18 current_piece_gfx#17 play_move_rotate::orientation#3 collision::xpos#5 collision::piece_gfx#0 collision::ypos2#2 collision::l#6 collision::playfield_line#0 collision::col#2 collision::c#2 collision::i#1 collision::$7 ] main:2::play_move_leftright:33::collision:133 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::key_event#0 main::render#1 current_piece_gfx#17 current_piece#13 current_ypos#16 current_orientation#18 current_xpos#19 collision::xpos#5 collision::piece_gfx#0 collision::ypos2#2 collision::l#6 collision::playfield_line#0 collision::col#2 collision::c#2 collision::i#1 collision::$7 ] main:2::play_move_leftright:33::collision:144 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::key_event#0 main::render#1 current_piece_gfx#17 current_piece#13 current_ypos#16 current_orientation#18 current_xpos#19 collision::xpos#5 collision::piece_gfx#0 collision::ypos2#2 collision::l#6 collision::playfield_line#0 collision::col#2 collision::c#2 collision::i#1 collision::$7 ] main:2::play_move_down:28::collision:168 [ keyboard_events_size#16 main::key_event#0 current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 collision::xpos#5 collision::piece_gfx#0 collision::ypos2#2 collision::l#6 collision::playfield_line#0 collision::col#2 collision::c#2 collision::i#1 collision::$7 ] ) always clobbers reg byte a -Statement [118] if(*((byte*) collision::playfield_line#0 + (byte) collision::col#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto collision::@3 [ collision::xpos#5 collision::piece_gfx#0 collision::ypos2#2 collision::l#6 collision::playfield_line#0 collision::col#2 collision::c#2 collision::i#1 ] ( main:2::play_move_rotate:38::collision:95 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::render#2 current_piece#13 current_xpos#23 current_ypos#16 current_orientation#18 current_piece_gfx#17 play_move_rotate::orientation#3 collision::xpos#5 collision::piece_gfx#0 collision::ypos2#2 collision::l#6 collision::playfield_line#0 collision::col#2 collision::c#2 collision::i#1 ] main:2::play_move_leftright:33::collision:133 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::key_event#0 main::render#1 current_piece_gfx#17 current_piece#13 current_ypos#16 current_orientation#18 current_xpos#19 collision::xpos#5 collision::piece_gfx#0 collision::ypos2#2 collision::l#6 collision::playfield_line#0 collision::col#2 collision::c#2 collision::i#1 ] main:2::play_move_leftright:33::collision:144 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::key_event#0 main::render#1 current_piece_gfx#17 current_piece#13 current_ypos#16 current_orientation#18 current_xpos#19 collision::xpos#5 collision::piece_gfx#0 collision::ypos2#2 collision::l#6 collision::playfield_line#0 collision::col#2 collision::c#2 collision::i#1 ] main:2::play_move_down:28::collision:168 [ keyboard_events_size#16 main::key_event#0 current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 collision::xpos#5 collision::piece_gfx#0 collision::ypos2#2 collision::l#6 collision::playfield_line#0 collision::col#2 collision::c#2 collision::i#1 ] ) always clobbers reg byte a -Statement [132] (byte*~) current_piece#74 ← (byte*) current_piece#13 [ current_piece#13 current_ypos#16 current_orientation#18 current_piece#74 collision::orientation#2 collision::ypos#2 collision::xpos#2 current_xpos#19 ] ( main:2::play_move_leftright:33 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::key_event#0 main::render#1 current_piece_gfx#17 current_piece#13 current_ypos#16 current_orientation#18 current_piece#74 collision::orientation#2 collision::ypos#2 collision::xpos#2 current_xpos#19 ] ) always clobbers reg byte a -Statement [143] (byte*~) current_piece#73 ← (byte*) current_piece#13 [ current_piece#13 current_ypos#16 current_orientation#18 current_piece#73 collision::orientation#1 collision::ypos#1 collision::xpos#1 current_xpos#19 ] ( main:2::play_move_leftright:33 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::key_event#0 main::render#1 current_piece_gfx#17 current_piece#13 current_ypos#16 current_orientation#18 current_piece#73 collision::orientation#1 collision::ypos#1 collision::xpos#1 current_xpos#19 ] ) always clobbers reg byte a -Statement [167] (byte*~) current_piece#72 ← (byte*) current_piece#11 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_piece#72 collision::orientation#0 collision::ypos#0 collision::xpos#0 ] ( main:2::play_move_down:28 [ keyboard_events_size#16 main::key_event#0 current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_piece#72 collision::orientation#0 collision::ypos#0 collision::xpos#0 ] ) always clobbers reg byte a -Statement [178] (byte*~) current_piece#76 ← (byte*)*((const word[]) PIECES#0 + (byte~) spawn_current::$3) [ current_piece_gfx#10 current_piece_color#15 current_piece#76 ] ( main:2::play_move_down:28 [ keyboard_events_size#16 main::key_event#0 current_piece_gfx#10 current_piece_color#15 current_piece#76 ] ) always clobbers reg byte a -Statement [186] (byte~) spawn_current::$3 ← (byte) spawn_current::piece_idx#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ spawn_current::$3 spawn_current::piece_idx#2 ] ( main:2::spawn_current:11 [ spawn_current::$3 spawn_current::piece_idx#2 ] main:2::play_move_down:28::spawn_current:177 [ keyboard_events_size#16 main::key_event#0 spawn_current::$3 spawn_current::piece_idx#2 ] ) always clobbers reg byte a -Statement [187] (byte*) current_piece_gfx#10 ← (byte*)*((const word[]) PIECES#0 + (byte~) spawn_current::$3) + (byte/signed byte/word/signed word/dword/signed dword) 0 [ current_piece_gfx#10 spawn_current::$3 spawn_current::piece_idx#2 ] ( main:2::spawn_current:11 [ current_piece_gfx#10 spawn_current::$3 spawn_current::piece_idx#2 ] main:2::play_move_down:28::spawn_current:177 [ keyboard_events_size#16 main::key_event#0 current_piece_gfx#10 spawn_current::$3 spawn_current::piece_idx#2 ] ) always clobbers reg byte a -Statement [188] (byte) current_piece_color#15 ← *((const byte[]) PIECES_COLORS#0 + (byte) spawn_current::piece_idx#2) [ current_piece_gfx#10 current_piece_color#15 spawn_current::$3 ] ( main:2::spawn_current:11 [ current_piece_gfx#10 current_piece_color#15 spawn_current::$3 ] main:2::play_move_down:28::spawn_current:177 [ keyboard_events_size#16 main::key_event#0 current_piece_gfx#10 current_piece_color#15 spawn_current::$3 ] ) always clobbers reg byte a -Statement [194] (byte) spawn_current::piece_idx#1 ← (byte~) spawn_current::$1 & (byte/signed byte/word/signed word/dword/signed dword) 7 [ spawn_current::piece_idx#1 ] ( main:2::spawn_current:11 [ spawn_current::piece_idx#1 ] main:2::play_move_down:28::spawn_current:177 [ keyboard_events_size#16 main::key_event#0 spawn_current::piece_idx#1 ] ) always clobbers reg byte a -Statement [209] (byte) remove_lines::w#2 ← (byte) remove_lines::w#1 + (const byte) PLAYFIELD_COLS#0 [ remove_lines::y#8 remove_lines::r#1 remove_lines::w#2 ] ( main:2::play_move_down:28::remove_lines:175 [ keyboard_events_size#16 main::key_event#0 remove_lines::y#8 remove_lines::r#1 remove_lines::w#2 ] ) always clobbers reg byte a -Statement [216] *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) remove_lines::w#6) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ remove_lines::w#6 ] ( main:2::play_move_down:28::remove_lines:175 [ keyboard_events_size#16 main::key_event#0 remove_lines::w#6 ] ) always clobbers reg byte a -Statement [219] (byte) lock_current::ypos2#0 ← (byte) current_ypos#12 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ current_piece_gfx#15 current_xpos#16 current_piece_color#11 lock_current::ypos2#0 ] ( main:2::play_move_down:28::lock_current:173 [ keyboard_events_size#16 main::key_event#0 current_piece_gfx#15 current_xpos#16 current_piece_color#11 lock_current::ypos2#0 ] ) always clobbers reg byte a -Statement [221] (byte*) lock_current::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) lock_current::ypos2#2) [ current_piece_gfx#15 current_xpos#16 current_piece_color#11 lock_current::ypos2#2 lock_current::i#3 lock_current::l#6 lock_current::playfield_line#0 ] ( main:2::play_move_down:28::lock_current:173 [ keyboard_events_size#16 main::key_event#0 current_piece_gfx#15 current_xpos#16 current_piece_color#11 lock_current::ypos2#2 lock_current::i#3 lock_current::l#6 lock_current::playfield_line#0 ] ) always clobbers reg byte a -Statement [225] if(*((byte*) current_piece_gfx#15 + (byte) lock_current::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto lock_current::@3 [ current_piece_gfx#15 current_xpos#16 current_piece_color#11 lock_current::ypos2#2 lock_current::l#6 lock_current::playfield_line#0 lock_current::col#2 lock_current::c#2 lock_current::i#1 ] ( main:2::play_move_down:28::lock_current:173 [ keyboard_events_size#16 main::key_event#0 current_piece_gfx#15 current_xpos#16 current_piece_color#11 lock_current::ypos2#2 lock_current::l#6 lock_current::playfield_line#0 lock_current::col#2 lock_current::c#2 lock_current::i#1 ] ) always clobbers reg byte a -Statement [226] *((byte*) lock_current::playfield_line#0 + (byte) lock_current::col#2) ← (byte) current_piece_color#11 [ current_piece_gfx#15 current_xpos#16 current_piece_color#11 lock_current::ypos2#2 lock_current::l#6 lock_current::playfield_line#0 lock_current::col#2 lock_current::c#2 lock_current::i#1 ] ( main:2::play_move_down:28::lock_current:173 [ keyboard_events_size#16 main::key_event#0 current_piece_gfx#15 current_xpos#16 current_piece_color#11 lock_current::ypos2#2 lock_current::l#6 lock_current::playfield_line#0 lock_current::col#2 lock_current::c#2 lock_current::i#1 ] ) always clobbers reg byte a -Statement [237] (byte~) keyboard_event_pressed::$0 ← (byte) keyboard_event_pressed::keycode#5 >> (byte/signed byte/word/signed word/dword/signed dword) 3 [ keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] ( main:2::play_move_down:28::keyboard_event_pressed:153 [ keyboard_events_size#16 main::key_event#0 current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#10 play_move_down::movedown#10 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] main:2::keyboard_event_scan:22::keyboard_event_pressed:259 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#15 keyboard_events_size#13 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] main:2::keyboard_event_scan:22::keyboard_event_pressed:265 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#15 keyboard_events_size#13 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] main:2::keyboard_event_scan:22::keyboard_event_pressed:271 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#15 keyboard_events_size#13 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] main:2::keyboard_event_scan:22::keyboard_event_pressed:277 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#15 keyboard_events_size#13 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] ) always clobbers reg byte a -Statement [239] (byte~) keyboard_event_pressed::$1 ← (byte) keyboard_event_pressed::keycode#5 & (byte/signed byte/word/signed word/dword/signed dword) 7 [ keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] ( main:2::play_move_down:28::keyboard_event_pressed:153 [ keyboard_events_size#16 main::key_event#0 current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#10 play_move_down::movedown#10 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:2::keyboard_event_scan:22::keyboard_event_pressed:259 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#15 keyboard_events_size#13 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:2::keyboard_event_scan:22::keyboard_event_pressed:265 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#15 keyboard_events_size#13 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:2::keyboard_event_scan:22::keyboard_event_pressed:271 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#15 keyboard_events_size#13 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:2::keyboard_event_scan:22::keyboard_event_pressed:277 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#15 keyboard_events_size#13 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] ) always clobbers reg byte a -Statement [240] (byte) keyboard_event_pressed::return#11 ← (byte) keyboard_event_pressed::row_bits#0 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte~) keyboard_event_pressed::$1) [ keyboard_event_pressed::return#11 ] ( main:2::play_move_down:28::keyboard_event_pressed:153 [ keyboard_events_size#16 main::key_event#0 current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#10 play_move_down::movedown#10 keyboard_event_pressed::return#11 ] main:2::keyboard_event_scan:22::keyboard_event_pressed:259 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#15 keyboard_events_size#13 keyboard_event_pressed::return#11 ] main:2::keyboard_event_scan:22::keyboard_event_pressed:265 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#15 keyboard_events_size#13 keyboard_event_pressed::return#11 ] main:2::keyboard_event_scan:22::keyboard_event_pressed:271 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#15 keyboard_events_size#13 keyboard_event_pressed::return#11 ] main:2::keyboard_event_scan:22::keyboard_event_pressed:277 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#15 keyboard_events_size#13 keyboard_event_pressed::return#11 ] ) always clobbers reg byte a -Statement [253] if((byte) keyboard_event_scan::row_scan#0!=*((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2)) goto keyboard_event_scan::@4 [ keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#29 keyboard_event_scan::row_scan#0 ] ( main:2::keyboard_event_scan:22 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#15 keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#29 keyboard_event_scan::row_scan#0 ] ) always clobbers reg byte a -Statement [254] (byte) keyboard_event_scan::keycode#1 ← (byte) keyboard_event_scan::keycode#11 + (byte/signed byte/word/signed word/dword/signed dword) 8 [ keyboard_event_scan::row#2 keyboard_events_size#29 keyboard_event_scan::keycode#1 ] ( main:2::keyboard_event_scan:22 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#15 keyboard_event_scan::row#2 keyboard_events_size#29 keyboard_event_scan::keycode#1 ] ) always clobbers reg byte a -Statement [284] (byte~) keyboard_event_scan::$3 ← (byte) keyboard_event_scan::row_scan#0 ^ *((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2) [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::$3 ] ( main:2::keyboard_event_scan:22 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#15 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::$3 ] ) always clobbers reg byte a -Statement [285] (byte~) keyboard_event_scan::$4 ← (byte~) keyboard_event_scan::$3 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_event_scan::col#2) [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::$4 ] ( main:2::keyboard_event_scan:22 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#15 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::$4 ] ) always clobbers reg byte a -Statement [288] (byte) keyboard_event_scan::event_type#0 ← (byte) keyboard_event_scan::row_scan#0 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_event_scan::col#2) [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::event_type#0 ] ( main:2::keyboard_event_scan:22 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#15 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::event_type#0 ] ) always clobbers reg byte a -Statement [290] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte) keyboard_event_scan::keycode#10 [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 ] ( main:2::keyboard_event_scan:22 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#15 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 ] ) always clobbers reg byte a -Statement [296] *((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2) ← (byte) keyboard_event_scan::row_scan#0 [ keyboard_event_scan::row#2 keyboard_event_scan::keycode#15 keyboard_events_size#30 ] ( main:2::keyboard_event_scan:22 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#15 keyboard_event_scan::row#2 keyboard_event_scan::keycode#15 keyboard_events_size#30 ] ) always clobbers reg byte a -Statement [297] (byte/word/dword~) keyboard_event_scan::$11 ← (byte) keyboard_event_scan::keycode#10 | (byte/signed byte/word/signed word/dword/signed dword) 64 [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::$11 ] ( main:2::keyboard_event_scan:22 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#15 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::$11 ] ) always clobbers reg byte a -Statement [300] *((const byte*) CIA1_PORT_A#0) ← *((const byte[8]) keyboard_matrix_row_bitmask#0 + (byte) keyboard_matrix_read::rowid#0) [ ] ( main:2::keyboard_event_scan:22::keyboard_matrix_read:250 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#15 keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#29 ] ) always clobbers reg byte a -Statement [301] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) [ keyboard_matrix_read::return#0 ] ( main:2::keyboard_event_scan:22::keyboard_matrix_read:250 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#15 keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#29 keyboard_matrix_read::return#0 ] ) always clobbers reg byte a -Statement [305] (byte~) tables_init::$1 ← (byte) tables_init::j#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ tables_init::j#2 tables_init::pli#2 tables_init::idx#2 tables_init::$1 ] ( main:2::tables_init:9 [ tables_init::j#2 tables_init::pli#2 tables_init::idx#2 tables_init::$1 ] ) always clobbers reg byte a -Statement [306] *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte~) tables_init::$1) ← (byte*) tables_init::pli#2 [ tables_init::j#2 tables_init::pli#2 tables_init::idx#2 ] ( main:2::tables_init:9 [ tables_init::j#2 tables_init::pli#2 tables_init::idx#2 ] ) always clobbers reg byte a -Statement [307] *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0 + (byte) tables_init::j#2) ← (byte) tables_init::idx#2 [ tables_init::j#2 tables_init::pli#2 tables_init::idx#2 ] ( main:2::tables_init:9 [ tables_init::j#2 tables_init::pli#2 tables_init::idx#2 ] ) always clobbers reg byte a -Statement [308] (byte*) tables_init::pli#1 ← (byte*) tables_init::pli#2 + (const byte) PLAYFIELD_COLS#0 [ tables_init::j#2 tables_init::idx#2 tables_init::pli#1 ] ( main:2::tables_init:9 [ tables_init::j#2 tables_init::idx#2 tables_init::pli#1 ] ) always clobbers reg byte a -Statement [309] (byte) tables_init::idx#1 ← (byte) tables_init::idx#2 + (const byte) PLAYFIELD_COLS#0 [ tables_init::j#2 tables_init::pli#1 tables_init::idx#1 ] ( main:2::tables_init:9 [ tables_init::j#2 tables_init::pli#1 tables_init::idx#1 ] ) always clobbers reg byte a -Statement [312] *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0+(const byte) PLAYFIELD_LINES#0) ← (const byte) PLAYFIELD_COLS#0*(const byte) PLAYFIELD_LINES#0 [ ] ( main:2::tables_init:9 [ ] ) always clobbers reg byte a -Statement [319] (byte~) render_init::$5 ← (byte) render_init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ render_init::i#2 render_init::li#2 render_init::$5 ] ( main:2::render_init:7 [ render_init::i#2 render_init::li#2 render_init::$5 ] ) always clobbers reg byte a -Statement [320] *((const byte*[PLAYFIELD_LINES#0+3]) screen_lines#0 + (byte~) render_init::$5) ← (byte*) render_init::li#2 [ render_init::i#2 render_init::li#2 ] ( main:2::render_init:7 [ render_init::i#2 render_init::li#2 ] ) always clobbers reg byte a -Statement [321] (byte*) render_init::li#1 ← (byte*) render_init::li#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ render_init::i#2 render_init::li#1 ] ( main:2::render_init:7 [ render_init::i#2 render_init::li#1 ] ) always clobbers reg byte a -Statement [326] (byte*~) render_init::$10 ← (byte*) render_init::line#4 + (byte) render_init::c#2 [ render_init::line#4 render_init::l#4 render_init::c#2 render_init::$10 ] ( main:2::render_init:7 [ render_init::line#4 render_init::l#4 render_init::c#2 render_init::$10 ] ) always clobbers reg byte a -Statement [327] *((byte*~) render_init::$10) ← (const byte) DARK_GREY#0 [ render_init::line#4 render_init::l#4 render_init::c#2 ] ( main:2::render_init:7 [ render_init::line#4 render_init::l#4 render_init::c#2 ] ) always clobbers reg byte a reg byte y -Statement [330] (byte*) render_init::line#1 ← (byte*) render_init::line#4 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ render_init::l#4 render_init::line#1 ] ( main:2::render_init:7 [ render_init::l#4 render_init::line#1 ] ) always clobbers reg byte a -Statement [335] (byte*) fill::end#0 ← (byte*) fill::addr#0 + (word/signed word/dword/signed dword) 1000 [ fill::addr#0 fill::val#3 fill::end#0 ] ( main:2::render_init:7::fill:315 [ fill::addr#0 fill::val#3 fill::end#0 ] main:2::render_init:7::fill:317 [ fill::addr#0 fill::val#3 fill::end#0 ] ) always clobbers reg byte a -Statement [337] *((byte*) fill::addr#2) ← (byte) fill::val#3 [ fill::val#3 fill::end#0 fill::addr#2 ] ( main:2::render_init:7::fill:315 [ fill::val#3 fill::end#0 fill::addr#2 ] main:2::render_init:7::fill:317 [ fill::val#3 fill::end#0 fill::addr#2 ] ) always clobbers reg byte a reg byte y -Statement [339] if((byte*) fill::addr#1!=(byte*) fill::end#0) goto fill::@1 [ fill::val#3 fill::end#0 fill::addr#1 ] ( main:2::render_init:7::fill:315 [ fill::val#3 fill::end#0 fill::addr#1 ] main:2::render_init:7::fill:317 [ fill::val#3 fill::end#0 fill::addr#1 ] ) always clobbers reg byte a -Statement [341] *((const word*) SID_VOICE3_FREQ#0) ← (word/dword/signed dword) 65535 [ ] ( main:2::sid_rnd_init:5 [ ] ) always clobbers reg byte a -Statement [342] *((const byte*) SID_VOICE3_CONTROL#0) ← (const byte) SID_CONTROL_NOISE#0 [ ] ( main:2::sid_rnd_init:5 [ ] ) always clobbers reg byte a +Statement [340] if((byte*) fill::addr#1!=(byte*) fill::end#0) goto fill::@1 [ fill::val#3 fill::end#0 fill::addr#1 ] ( main:3::render_init:8::fill:316 [ fill::val#3 fill::end#0 fill::addr#1 ] main:3::render_init:8::fill:318 [ fill::val#3 fill::end#0 fill::addr#1 ] ) always clobbers reg byte a +Statement [342] *((const word*) SID_VOICE3_FREQ#0) ← (word/dword/signed dword) 65535 [ ] ( main:3::sid_rnd_init:6 [ ] ) always clobbers reg byte a +Statement [343] *((const byte*) SID_VOICE3_CONTROL#0) ← (const byte) SID_CONTROL_NOISE#0 [ ] ( main:3::sid_rnd_init:6 [ ] ) always clobbers reg byte a +Statement [15] (byte*~) current_piece_gfx#87 ← (byte*) current_piece_gfx#10 [ current_piece_gfx#87 current_piece_gfx#10 current_piece_color#15 spawn_current::$3 ] ( main:3 [ current_piece_gfx#87 current_piece_gfx#10 current_piece_color#15 spawn_current::$3 ] ) always clobbers reg byte a +Statement [18] (byte*~) current_piece#71 ← (byte*)*((const word[]) PIECES#0 + (byte~) spawn_current::$3) [ current_piece_gfx#10 current_piece_color#15 current_piece#71 ] ( main:3 [ current_piece_gfx#10 current_piece_color#15 current_piece#71 ] ) always clobbers reg byte a +Statement [20] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@4 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 keyboard_events_size#19 current_movedown_counter#15 ] ( main:3 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 keyboard_events_size#19 current_movedown_counter#15 ] ) always clobbers reg byte a +Statement [21] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 254) goto main::@7 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 keyboard_events_size#19 current_movedown_counter#15 ] ( main:3 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 keyboard_events_size#19 current_movedown_counter#15 ] ) always clobbers reg byte a +Statement [32] (byte) main::render#1 ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte~) main::$10 [ current_piece#13 current_ypos#16 current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::key_event#0 main::render#1 current_orientation#18 current_piece_gfx#17 current_xpos#19 ] ( main:3 [ current_piece#13 current_ypos#16 current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::key_event#0 main::render#1 current_orientation#18 current_piece_gfx#17 current_xpos#19 ] ) always clobbers reg byte a +Statement [37] (byte) main::render#2 ← (byte) main::render#1 + (byte~) main::$11 [ current_piece#13 current_xpos#23 current_ypos#16 current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::key_event#0 main::render#2 current_orientation#18 current_piece_gfx#17 ] ( main:3 [ current_piece#13 current_xpos#23 current_ypos#16 current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::key_event#0 main::render#2 current_orientation#18 current_piece_gfx#17 ] ) always clobbers reg byte a +Statement [42] (byte) main::render#3 ← (byte) main::render#2 + (byte~) main::$12 [ current_piece#13 current_orientation#23 current_piece_gfx#18 current_xpos#23 current_ypos#16 current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::render#3 ] ( main:3 [ current_piece#13 current_orientation#23 current_piece_gfx#18 current_xpos#23 current_ypos#16 current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::render#3 ] ) always clobbers reg byte a +Statement [48] (byte*~) current_piece_gfx#88 ← (byte*) current_piece_gfx#18 [ current_piece#13 current_orientation#23 current_piece_gfx#18 current_xpos#23 current_ypos#16 current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 current_ypos#71 current_xpos#96 current_piece_gfx#88 ] ( main:3 [ current_piece#13 current_orientation#23 current_piece_gfx#18 current_xpos#23 current_ypos#16 current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 current_ypos#71 current_xpos#96 current_piece_gfx#88 ] ) always clobbers reg byte a +Statement [53] (byte) render_current::ypos2#0 ← (byte) current_ypos#22 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ current_xpos#63 current_piece_gfx#64 current_piece_color#67 render_current::ypos2#0 ] ( main:3::render_current:17 [ current_piece_gfx#10 current_piece_color#15 spawn_current::$3 current_xpos#63 current_piece_gfx#64 current_piece_color#67 render_current::ypos2#0 ] main:3::render_current:50 [ current_piece#13 current_orientation#23 current_piece_gfx#18 current_xpos#23 current_ypos#16 current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 current_xpos#63 current_piece_gfx#64 current_piece_color#67 render_current::ypos2#0 ] ) always clobbers reg byte a +Statement [56] (byte*) render_current::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0+3]) screen_lines#0 + (byte) render_current::ypos2#2) [ current_xpos#63 current_piece_gfx#64 current_piece_color#67 render_current::ypos2#2 render_current::l#3 render_current::i#4 render_current::screen_line#0 ] ( main:3::render_current:17 [ current_piece_gfx#10 current_piece_color#15 spawn_current::$3 current_xpos#63 current_piece_gfx#64 current_piece_color#67 render_current::ypos2#2 render_current::l#3 render_current::i#4 render_current::screen_line#0 ] main:3::render_current:50 [ current_piece#13 current_orientation#23 current_piece_gfx#18 current_xpos#23 current_ypos#16 current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 current_xpos#63 current_piece_gfx#64 current_piece_color#67 render_current::ypos2#2 render_current::l#3 render_current::i#4 render_current::screen_line#0 ] ) always clobbers reg byte a +Statement [59] (byte) render_current::current_cell#0 ← *((byte*) current_piece_gfx#64 + (byte) render_current::i#2) [ current_xpos#63 current_piece_gfx#64 current_piece_color#67 render_current::ypos2#2 render_current::l#3 render_current::screen_line#0 render_current::i#2 render_current::xpos#2 render_current::c#2 render_current::current_cell#0 ] ( main:3::render_current:17 [ current_piece_gfx#10 current_piece_color#15 spawn_current::$3 current_xpos#63 current_piece_gfx#64 current_piece_color#67 render_current::ypos2#2 render_current::l#3 render_current::screen_line#0 render_current::i#2 render_current::xpos#2 render_current::c#2 render_current::current_cell#0 ] main:3::render_current:50 [ current_piece#13 current_orientation#23 current_piece_gfx#18 current_xpos#23 current_ypos#16 current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 current_xpos#63 current_piece_gfx#64 current_piece_color#67 render_current::ypos2#2 render_current::l#3 render_current::screen_line#0 render_current::i#2 render_current::xpos#2 render_current::c#2 render_current::current_cell#0 ] ) always clobbers reg byte a +Statement [63] *((byte*) render_current::screen_line#0 + (byte) render_current::xpos#2) ← (byte) current_piece_color#67 [ current_xpos#63 current_piece_gfx#64 current_piece_color#67 render_current::ypos2#2 render_current::l#3 render_current::screen_line#0 render_current::xpos#2 render_current::c#2 render_current::i#1 ] ( main:3::render_current:17 [ current_piece_gfx#10 current_piece_color#15 spawn_current::$3 current_xpos#63 current_piece_gfx#64 current_piece_color#67 render_current::ypos2#2 render_current::l#3 render_current::screen_line#0 render_current::xpos#2 render_current::c#2 render_current::i#1 ] main:3::render_current:50 [ current_piece#13 current_orientation#23 current_piece_gfx#18 current_xpos#23 current_ypos#16 current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 current_xpos#63 current_piece_gfx#64 current_piece_color#67 render_current::ypos2#2 render_current::l#3 render_current::screen_line#0 render_current::xpos#2 render_current::c#2 render_current::i#1 ] ) always clobbers reg byte a +Statement [74] (byte~) render_playfield::$1 ← (byte) render_playfield::l#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ render_playfield::l#2 render_playfield::i#3 render_playfield::$1 ] ( main:3::render_playfield:14 [ current_piece_gfx#10 current_piece_color#15 spawn_current::$3 render_playfield::l#2 render_playfield::i#3 render_playfield::$1 ] main:3::render_playfield:45 [ current_piece#13 current_orientation#23 current_piece_gfx#18 current_xpos#23 current_ypos#16 current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 render_playfield::l#2 render_playfield::i#3 render_playfield::$1 ] ) always clobbers reg byte a +Statement [75] (byte*) render_playfield::line#0 ← *((const byte*[PLAYFIELD_LINES#0+3]) screen_lines#0 + (byte~) render_playfield::$1) [ render_playfield::l#2 render_playfield::i#3 render_playfield::line#0 ] ( main:3::render_playfield:14 [ current_piece_gfx#10 current_piece_color#15 spawn_current::$3 render_playfield::l#2 render_playfield::i#3 render_playfield::line#0 ] main:3::render_playfield:45 [ current_piece#13 current_orientation#23 current_piece_gfx#18 current_xpos#23 current_ypos#16 current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 render_playfield::l#2 render_playfield::i#3 render_playfield::line#0 ] ) always clobbers reg byte a +Statement [77] *((byte*) render_playfield::line#2) ← *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) render_playfield::i#2) [ render_playfield::l#2 render_playfield::i#2 render_playfield::line#2 render_playfield::c#2 ] ( main:3::render_playfield:14 [ current_piece_gfx#10 current_piece_color#15 spawn_current::$3 render_playfield::l#2 render_playfield::i#2 render_playfield::line#2 render_playfield::c#2 ] main:3::render_playfield:45 [ current_piece#13 current_orientation#23 current_piece_gfx#18 current_xpos#23 current_ypos#16 current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 render_playfield::l#2 render_playfield::i#2 render_playfield::line#2 render_playfield::c#2 ] ) always clobbers reg byte a reg byte y +Statement [89] (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 ← (byte) current_orientation#18 + (byte/signed byte/word/signed word/dword/signed dword) 16 [ current_piece#13 current_xpos#23 current_ypos#16 current_orientation#18 current_piece_gfx#17 play_move_rotate::$2 ] ( main:3::play_move_rotate:39 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::render#2 current_piece#13 current_xpos#23 current_ypos#16 current_orientation#18 current_piece_gfx#17 play_move_rotate::$2 ] ) always clobbers reg byte a +Statement [90] (byte) play_move_rotate::orientation#2 ← (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 & (byte/signed byte/word/signed word/dword/signed dword) 63 [ current_piece#13 current_xpos#23 current_ypos#16 current_orientation#18 current_piece_gfx#17 play_move_rotate::orientation#2 ] ( main:3::play_move_rotate:39 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::render#2 current_piece#13 current_xpos#23 current_ypos#16 current_orientation#18 current_piece_gfx#17 play_move_rotate::orientation#2 ] ) always clobbers reg byte a +Statement [95] (byte*~) current_piece#75 ← (byte*) current_piece#13 [ current_piece#13 current_xpos#23 current_ypos#16 current_orientation#18 current_piece_gfx#17 play_move_rotate::orientation#3 collision::xpos#3 collision::ypos#3 collision::orientation#3 current_piece#75 ] ( main:3::play_move_rotate:39 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::render#2 current_piece#13 current_xpos#23 current_ypos#16 current_orientation#18 current_piece_gfx#17 play_move_rotate::orientation#3 collision::xpos#3 collision::ypos#3 collision::orientation#3 current_piece#75 ] ) always clobbers reg byte a +Statement [101] (byte*) current_piece_gfx#8 ← (byte*) current_piece#13 + (byte) current_orientation#8 [ current_piece#13 current_xpos#23 current_ypos#16 current_orientation#8 current_piece_gfx#8 ] ( main:3::play_move_rotate:39 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::render#2 current_piece#13 current_xpos#23 current_ypos#16 current_orientation#8 current_piece_gfx#8 ] ) always clobbers reg byte a +Statement [102] (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 ← (byte) current_orientation#18 - (byte/signed byte/word/signed word/dword/signed dword) 16 [ current_piece#13 current_xpos#23 current_ypos#16 current_orientation#18 current_piece_gfx#17 play_move_rotate::$4 ] ( main:3::play_move_rotate:39 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::render#2 current_piece#13 current_xpos#23 current_ypos#16 current_orientation#18 current_piece_gfx#17 play_move_rotate::$4 ] ) always clobbers reg byte a +Statement [103] (byte) play_move_rotate::orientation#1 ← (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 & (byte/signed byte/word/signed word/dword/signed dword) 63 [ current_piece#13 current_xpos#23 current_ypos#16 current_orientation#18 current_piece_gfx#17 play_move_rotate::orientation#1 ] ( main:3::play_move_rotate:39 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::render#2 current_piece#13 current_xpos#23 current_ypos#16 current_orientation#18 current_piece_gfx#17 play_move_rotate::orientation#1 ] ) always clobbers reg byte a +Statement [105] (byte*) collision::piece_gfx#0 ← (byte*) current_piece#15 + (byte) collision::orientation#4 [ collision::ypos#4 collision::xpos#5 collision::piece_gfx#0 ] ( main:3::play_move_rotate:39::collision:96 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::render#2 current_piece#13 current_xpos#23 current_ypos#16 current_orientation#18 current_piece_gfx#17 play_move_rotate::orientation#3 collision::ypos#4 collision::xpos#5 collision::piece_gfx#0 ] main:3::play_move_leftright:34::collision:134 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::key_event#0 main::render#1 current_piece_gfx#17 current_piece#13 current_ypos#16 current_orientation#18 current_xpos#19 collision::ypos#4 collision::xpos#5 collision::piece_gfx#0 ] main:3::play_move_leftright:34::collision:145 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::key_event#0 main::render#1 current_piece_gfx#17 current_piece#13 current_ypos#16 current_orientation#18 current_xpos#19 collision::ypos#4 collision::xpos#5 collision::piece_gfx#0 ] main:3::play_move_down:29::collision:169 [ keyboard_events_size#16 main::key_event#0 current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 collision::ypos#4 collision::xpos#5 collision::piece_gfx#0 ] ) always clobbers reg byte a +Statement [106] (byte) collision::ypos2#0 ← (byte) collision::ypos#4 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ collision::xpos#5 collision::piece_gfx#0 collision::ypos2#0 ] ( main:3::play_move_rotate:39::collision:96 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::render#2 current_piece#13 current_xpos#23 current_ypos#16 current_orientation#18 current_piece_gfx#17 play_move_rotate::orientation#3 collision::xpos#5 collision::piece_gfx#0 collision::ypos2#0 ] main:3::play_move_leftright:34::collision:134 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::key_event#0 main::render#1 current_piece_gfx#17 current_piece#13 current_ypos#16 current_orientation#18 current_xpos#19 collision::xpos#5 collision::piece_gfx#0 collision::ypos2#0 ] main:3::play_move_leftright:34::collision:145 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::key_event#0 main::render#1 current_piece_gfx#17 current_piece#13 current_ypos#16 current_orientation#18 current_xpos#19 collision::xpos#5 collision::piece_gfx#0 collision::ypos2#0 ] main:3::play_move_down:29::collision:169 [ keyboard_events_size#16 main::key_event#0 current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 collision::xpos#5 collision::piece_gfx#0 collision::ypos2#0 ] ) always clobbers reg byte a +Statement [108] (byte*) collision::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) collision::ypos2#2) [ collision::xpos#5 collision::piece_gfx#0 collision::ypos2#2 collision::i#3 collision::l#6 collision::playfield_line#0 ] ( main:3::play_move_rotate:39::collision:96 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::render#2 current_piece#13 current_xpos#23 current_ypos#16 current_orientation#18 current_piece_gfx#17 play_move_rotate::orientation#3 collision::xpos#5 collision::piece_gfx#0 collision::ypos2#2 collision::i#3 collision::l#6 collision::playfield_line#0 ] main:3::play_move_leftright:34::collision:134 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::key_event#0 main::render#1 current_piece_gfx#17 current_piece#13 current_ypos#16 current_orientation#18 current_xpos#19 collision::xpos#5 collision::piece_gfx#0 collision::ypos2#2 collision::i#3 collision::l#6 collision::playfield_line#0 ] main:3::play_move_leftright:34::collision:145 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::key_event#0 main::render#1 current_piece_gfx#17 current_piece#13 current_ypos#16 current_orientation#18 current_xpos#19 collision::xpos#5 collision::piece_gfx#0 collision::ypos2#2 collision::i#3 collision::l#6 collision::playfield_line#0 ] main:3::play_move_down:29::collision:169 [ keyboard_events_size#16 main::key_event#0 current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 collision::xpos#5 collision::piece_gfx#0 collision::ypos2#2 collision::i#3 collision::l#6 collision::playfield_line#0 ] ) always clobbers reg byte a +Statement [112] if(*((byte*) collision::piece_gfx#0 + (byte) collision::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto collision::@3 [ collision::xpos#5 collision::piece_gfx#0 collision::ypos2#2 collision::l#6 collision::playfield_line#0 collision::col#2 collision::c#2 collision::i#1 ] ( main:3::play_move_rotate:39::collision:96 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::render#2 current_piece#13 current_xpos#23 current_ypos#16 current_orientation#18 current_piece_gfx#17 play_move_rotate::orientation#3 collision::xpos#5 collision::piece_gfx#0 collision::ypos2#2 collision::l#6 collision::playfield_line#0 collision::col#2 collision::c#2 collision::i#1 ] main:3::play_move_leftright:34::collision:134 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::key_event#0 main::render#1 current_piece_gfx#17 current_piece#13 current_ypos#16 current_orientation#18 current_xpos#19 collision::xpos#5 collision::piece_gfx#0 collision::ypos2#2 collision::l#6 collision::playfield_line#0 collision::col#2 collision::c#2 collision::i#1 ] main:3::play_move_leftright:34::collision:145 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::key_event#0 main::render#1 current_piece_gfx#17 current_piece#13 current_ypos#16 current_orientation#18 current_xpos#19 collision::xpos#5 collision::piece_gfx#0 collision::ypos2#2 collision::l#6 collision::playfield_line#0 collision::col#2 collision::c#2 collision::i#1 ] main:3::play_move_down:29::collision:169 [ keyboard_events_size#16 main::key_event#0 current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 collision::xpos#5 collision::piece_gfx#0 collision::ypos2#2 collision::l#6 collision::playfield_line#0 collision::col#2 collision::c#2 collision::i#1 ] ) always clobbers reg byte a +Statement [116] (byte~) collision::$7 ← (byte) collision::col#2 & (byte/word/signed word/dword/signed dword) 128 [ collision::xpos#5 collision::piece_gfx#0 collision::ypos2#2 collision::l#6 collision::playfield_line#0 collision::col#2 collision::c#2 collision::i#1 collision::$7 ] ( main:3::play_move_rotate:39::collision:96 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::render#2 current_piece#13 current_xpos#23 current_ypos#16 current_orientation#18 current_piece_gfx#17 play_move_rotate::orientation#3 collision::xpos#5 collision::piece_gfx#0 collision::ypos2#2 collision::l#6 collision::playfield_line#0 collision::col#2 collision::c#2 collision::i#1 collision::$7 ] main:3::play_move_leftright:34::collision:134 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::key_event#0 main::render#1 current_piece_gfx#17 current_piece#13 current_ypos#16 current_orientation#18 current_xpos#19 collision::xpos#5 collision::piece_gfx#0 collision::ypos2#2 collision::l#6 collision::playfield_line#0 collision::col#2 collision::c#2 collision::i#1 collision::$7 ] main:3::play_move_leftright:34::collision:145 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::key_event#0 main::render#1 current_piece_gfx#17 current_piece#13 current_ypos#16 current_orientation#18 current_xpos#19 collision::xpos#5 collision::piece_gfx#0 collision::ypos2#2 collision::l#6 collision::playfield_line#0 collision::col#2 collision::c#2 collision::i#1 collision::$7 ] main:3::play_move_down:29::collision:169 [ keyboard_events_size#16 main::key_event#0 current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 collision::xpos#5 collision::piece_gfx#0 collision::ypos2#2 collision::l#6 collision::playfield_line#0 collision::col#2 collision::c#2 collision::i#1 collision::$7 ] ) always clobbers reg byte a +Statement [119] if(*((byte*) collision::playfield_line#0 + (byte) collision::col#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto collision::@3 [ collision::xpos#5 collision::piece_gfx#0 collision::ypos2#2 collision::l#6 collision::playfield_line#0 collision::col#2 collision::c#2 collision::i#1 ] ( main:3::play_move_rotate:39::collision:96 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::render#2 current_piece#13 current_xpos#23 current_ypos#16 current_orientation#18 current_piece_gfx#17 play_move_rotate::orientation#3 collision::xpos#5 collision::piece_gfx#0 collision::ypos2#2 collision::l#6 collision::playfield_line#0 collision::col#2 collision::c#2 collision::i#1 ] main:3::play_move_leftright:34::collision:134 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::key_event#0 main::render#1 current_piece_gfx#17 current_piece#13 current_ypos#16 current_orientation#18 current_xpos#19 collision::xpos#5 collision::piece_gfx#0 collision::ypos2#2 collision::l#6 collision::playfield_line#0 collision::col#2 collision::c#2 collision::i#1 ] main:3::play_move_leftright:34::collision:145 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::key_event#0 main::render#1 current_piece_gfx#17 current_piece#13 current_ypos#16 current_orientation#18 current_xpos#19 collision::xpos#5 collision::piece_gfx#0 collision::ypos2#2 collision::l#6 collision::playfield_line#0 collision::col#2 collision::c#2 collision::i#1 ] main:3::play_move_down:29::collision:169 [ keyboard_events_size#16 main::key_event#0 current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 collision::xpos#5 collision::piece_gfx#0 collision::ypos2#2 collision::l#6 collision::playfield_line#0 collision::col#2 collision::c#2 collision::i#1 ] ) always clobbers reg byte a +Statement [133] (byte*~) current_piece#74 ← (byte*) current_piece#13 [ current_piece#13 current_ypos#16 current_orientation#18 current_piece#74 collision::orientation#2 collision::ypos#2 collision::xpos#2 current_xpos#19 ] ( main:3::play_move_leftright:34 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::key_event#0 main::render#1 current_piece_gfx#17 current_piece#13 current_ypos#16 current_orientation#18 current_piece#74 collision::orientation#2 collision::ypos#2 collision::xpos#2 current_xpos#19 ] ) always clobbers reg byte a +Statement [144] (byte*~) current_piece#73 ← (byte*) current_piece#13 [ current_piece#13 current_ypos#16 current_orientation#18 current_piece#73 collision::orientation#1 collision::ypos#1 collision::xpos#1 current_xpos#19 ] ( main:3::play_move_leftright:34 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::key_event#0 main::render#1 current_piece_gfx#17 current_piece#13 current_ypos#16 current_orientation#18 current_piece#73 collision::orientation#1 collision::ypos#1 collision::xpos#1 current_xpos#19 ] ) always clobbers reg byte a +Statement [168] (byte*~) current_piece#72 ← (byte*) current_piece#11 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_piece#72 collision::orientation#0 collision::ypos#0 collision::xpos#0 ] ( main:3::play_move_down:29 [ keyboard_events_size#16 main::key_event#0 current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_piece#72 collision::orientation#0 collision::ypos#0 collision::xpos#0 ] ) always clobbers reg byte a +Statement [179] (byte*~) current_piece#76 ← (byte*)*((const word[]) PIECES#0 + (byte~) spawn_current::$3) [ current_piece_gfx#10 current_piece_color#15 current_piece#76 ] ( main:3::play_move_down:29 [ keyboard_events_size#16 main::key_event#0 current_piece_gfx#10 current_piece_color#15 current_piece#76 ] ) always clobbers reg byte a +Statement [187] (byte~) spawn_current::$3 ← (byte) spawn_current::piece_idx#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ spawn_current::$3 spawn_current::piece_idx#2 ] ( main:3::spawn_current:12 [ spawn_current::$3 spawn_current::piece_idx#2 ] main:3::play_move_down:29::spawn_current:178 [ keyboard_events_size#16 main::key_event#0 spawn_current::$3 spawn_current::piece_idx#2 ] ) always clobbers reg byte a +Statement [188] (byte*) current_piece_gfx#10 ← (byte*)*((const word[]) PIECES#0 + (byte~) spawn_current::$3) + (byte/signed byte/word/signed word/dword/signed dword) 0 [ current_piece_gfx#10 spawn_current::$3 spawn_current::piece_idx#2 ] ( main:3::spawn_current:12 [ current_piece_gfx#10 spawn_current::$3 spawn_current::piece_idx#2 ] main:3::play_move_down:29::spawn_current:178 [ keyboard_events_size#16 main::key_event#0 current_piece_gfx#10 spawn_current::$3 spawn_current::piece_idx#2 ] ) always clobbers reg byte a +Statement [189] (byte) current_piece_color#15 ← *((const byte[]) PIECES_COLORS#0 + (byte) spawn_current::piece_idx#2) [ current_piece_gfx#10 current_piece_color#15 spawn_current::$3 ] ( main:3::spawn_current:12 [ current_piece_gfx#10 current_piece_color#15 spawn_current::$3 ] main:3::play_move_down:29::spawn_current:178 [ keyboard_events_size#16 main::key_event#0 current_piece_gfx#10 current_piece_color#15 spawn_current::$3 ] ) always clobbers reg byte a +Statement [195] (byte) spawn_current::piece_idx#1 ← (byte~) spawn_current::$1 & (byte/signed byte/word/signed word/dword/signed dword) 7 [ spawn_current::piece_idx#1 ] ( main:3::spawn_current:12 [ spawn_current::piece_idx#1 ] main:3::play_move_down:29::spawn_current:178 [ keyboard_events_size#16 main::key_event#0 spawn_current::piece_idx#1 ] ) always clobbers reg byte a +Statement [210] (byte) remove_lines::w#2 ← (byte) remove_lines::w#1 + (const byte) PLAYFIELD_COLS#0 [ remove_lines::y#8 remove_lines::r#1 remove_lines::w#2 ] ( main:3::play_move_down:29::remove_lines:176 [ keyboard_events_size#16 main::key_event#0 remove_lines::y#8 remove_lines::r#1 remove_lines::w#2 ] ) always clobbers reg byte a +Statement [217] *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) remove_lines::w#6) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ remove_lines::w#6 ] ( main:3::play_move_down:29::remove_lines:176 [ keyboard_events_size#16 main::key_event#0 remove_lines::w#6 ] ) always clobbers reg byte a +Statement [220] (byte) lock_current::ypos2#0 ← (byte) current_ypos#12 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ current_piece_gfx#15 current_xpos#16 current_piece_color#11 lock_current::ypos2#0 ] ( main:3::play_move_down:29::lock_current:174 [ keyboard_events_size#16 main::key_event#0 current_piece_gfx#15 current_xpos#16 current_piece_color#11 lock_current::ypos2#0 ] ) always clobbers reg byte a +Statement [222] (byte*) lock_current::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) lock_current::ypos2#2) [ current_piece_gfx#15 current_xpos#16 current_piece_color#11 lock_current::ypos2#2 lock_current::i#3 lock_current::l#6 lock_current::playfield_line#0 ] ( main:3::play_move_down:29::lock_current:174 [ keyboard_events_size#16 main::key_event#0 current_piece_gfx#15 current_xpos#16 current_piece_color#11 lock_current::ypos2#2 lock_current::i#3 lock_current::l#6 lock_current::playfield_line#0 ] ) always clobbers reg byte a +Statement [226] if(*((byte*) current_piece_gfx#15 + (byte) lock_current::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto lock_current::@3 [ current_piece_gfx#15 current_xpos#16 current_piece_color#11 lock_current::ypos2#2 lock_current::l#6 lock_current::playfield_line#0 lock_current::col#2 lock_current::c#2 lock_current::i#1 ] ( main:3::play_move_down:29::lock_current:174 [ keyboard_events_size#16 main::key_event#0 current_piece_gfx#15 current_xpos#16 current_piece_color#11 lock_current::ypos2#2 lock_current::l#6 lock_current::playfield_line#0 lock_current::col#2 lock_current::c#2 lock_current::i#1 ] ) always clobbers reg byte a +Statement [227] *((byte*) lock_current::playfield_line#0 + (byte) lock_current::col#2) ← (byte) current_piece_color#11 [ current_piece_gfx#15 current_xpos#16 current_piece_color#11 lock_current::ypos2#2 lock_current::l#6 lock_current::playfield_line#0 lock_current::col#2 lock_current::c#2 lock_current::i#1 ] ( main:3::play_move_down:29::lock_current:174 [ keyboard_events_size#16 main::key_event#0 current_piece_gfx#15 current_xpos#16 current_piece_color#11 lock_current::ypos2#2 lock_current::l#6 lock_current::playfield_line#0 lock_current::col#2 lock_current::c#2 lock_current::i#1 ] ) always clobbers reg byte a +Statement [238] (byte~) keyboard_event_pressed::$0 ← (byte) keyboard_event_pressed::keycode#5 >> (byte/signed byte/word/signed word/dword/signed dword) 3 [ keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] ( main:3::play_move_down:29::keyboard_event_pressed:154 [ keyboard_events_size#16 main::key_event#0 current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#10 play_move_down::movedown#10 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] main:3::keyboard_event_scan:23::keyboard_event_pressed:260 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#15 keyboard_events_size#13 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] main:3::keyboard_event_scan:23::keyboard_event_pressed:266 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#15 keyboard_events_size#13 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] main:3::keyboard_event_scan:23::keyboard_event_pressed:272 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#15 keyboard_events_size#13 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] main:3::keyboard_event_scan:23::keyboard_event_pressed:278 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#15 keyboard_events_size#13 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] ) always clobbers reg byte a +Statement [240] (byte~) keyboard_event_pressed::$1 ← (byte) keyboard_event_pressed::keycode#5 & (byte/signed byte/word/signed word/dword/signed dword) 7 [ keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] ( main:3::play_move_down:29::keyboard_event_pressed:154 [ keyboard_events_size#16 main::key_event#0 current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#10 play_move_down::movedown#10 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:3::keyboard_event_scan:23::keyboard_event_pressed:260 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#15 keyboard_events_size#13 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:3::keyboard_event_scan:23::keyboard_event_pressed:266 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#15 keyboard_events_size#13 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:3::keyboard_event_scan:23::keyboard_event_pressed:272 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#15 keyboard_events_size#13 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:3::keyboard_event_scan:23::keyboard_event_pressed:278 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#15 keyboard_events_size#13 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] ) always clobbers reg byte a +Statement [241] (byte) keyboard_event_pressed::return#11 ← (byte) keyboard_event_pressed::row_bits#0 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte~) keyboard_event_pressed::$1) [ keyboard_event_pressed::return#11 ] ( main:3::play_move_down:29::keyboard_event_pressed:154 [ keyboard_events_size#16 main::key_event#0 current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#10 play_move_down::movedown#10 keyboard_event_pressed::return#11 ] main:3::keyboard_event_scan:23::keyboard_event_pressed:260 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#15 keyboard_events_size#13 keyboard_event_pressed::return#11 ] main:3::keyboard_event_scan:23::keyboard_event_pressed:266 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#15 keyboard_events_size#13 keyboard_event_pressed::return#11 ] main:3::keyboard_event_scan:23::keyboard_event_pressed:272 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#15 keyboard_events_size#13 keyboard_event_pressed::return#11 ] main:3::keyboard_event_scan:23::keyboard_event_pressed:278 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#15 keyboard_events_size#13 keyboard_event_pressed::return#11 ] ) always clobbers reg byte a +Statement [254] if((byte) keyboard_event_scan::row_scan#0!=*((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2)) goto keyboard_event_scan::@4 [ keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#29 keyboard_event_scan::row_scan#0 ] ( main:3::keyboard_event_scan:23 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#15 keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#29 keyboard_event_scan::row_scan#0 ] ) always clobbers reg byte a +Statement [255] (byte) keyboard_event_scan::keycode#1 ← (byte) keyboard_event_scan::keycode#11 + (byte/signed byte/word/signed word/dword/signed dword) 8 [ keyboard_event_scan::row#2 keyboard_events_size#29 keyboard_event_scan::keycode#1 ] ( main:3::keyboard_event_scan:23 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#15 keyboard_event_scan::row#2 keyboard_events_size#29 keyboard_event_scan::keycode#1 ] ) always clobbers reg byte a +Statement [285] (byte~) keyboard_event_scan::$3 ← (byte) keyboard_event_scan::row_scan#0 ^ *((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2) [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::$3 ] ( main:3::keyboard_event_scan:23 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#15 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::$3 ] ) always clobbers reg byte a +Statement [286] (byte~) keyboard_event_scan::$4 ← (byte~) keyboard_event_scan::$3 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_event_scan::col#2) [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::$4 ] ( main:3::keyboard_event_scan:23 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#15 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::$4 ] ) always clobbers reg byte a +Statement [289] (byte) keyboard_event_scan::event_type#0 ← (byte) keyboard_event_scan::row_scan#0 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_event_scan::col#2) [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::event_type#0 ] ( main:3::keyboard_event_scan:23 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#15 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::event_type#0 ] ) always clobbers reg byte a +Statement [291] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte) keyboard_event_scan::keycode#10 [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 ] ( main:3::keyboard_event_scan:23 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#15 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 ] ) always clobbers reg byte a +Statement [297] *((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2) ← (byte) keyboard_event_scan::row_scan#0 [ keyboard_event_scan::row#2 keyboard_event_scan::keycode#15 keyboard_events_size#30 ] ( main:3::keyboard_event_scan:23 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#15 keyboard_event_scan::row#2 keyboard_event_scan::keycode#15 keyboard_events_size#30 ] ) always clobbers reg byte a +Statement [298] (byte/word/dword~) keyboard_event_scan::$11 ← (byte) keyboard_event_scan::keycode#10 | (byte/signed byte/word/signed word/dword/signed dword) 64 [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::$11 ] ( main:3::keyboard_event_scan:23 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#15 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::$11 ] ) always clobbers reg byte a +Statement [301] *((const byte*) CIA1_PORT_A#0) ← *((const byte[8]) keyboard_matrix_row_bitmask#0 + (byte) keyboard_matrix_read::rowid#0) [ ] ( main:3::keyboard_event_scan:23::keyboard_matrix_read:251 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#15 keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#29 ] ) always clobbers reg byte a +Statement [302] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) [ keyboard_matrix_read::return#0 ] ( main:3::keyboard_event_scan:23::keyboard_matrix_read:251 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#15 keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#29 keyboard_matrix_read::return#0 ] ) always clobbers reg byte a +Statement [306] (byte~) tables_init::$1 ← (byte) tables_init::j#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ tables_init::j#2 tables_init::pli#2 tables_init::idx#2 tables_init::$1 ] ( main:3::tables_init:10 [ tables_init::j#2 tables_init::pli#2 tables_init::idx#2 tables_init::$1 ] ) always clobbers reg byte a +Statement [307] *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte~) tables_init::$1) ← (byte*) tables_init::pli#2 [ tables_init::j#2 tables_init::pli#2 tables_init::idx#2 ] ( main:3::tables_init:10 [ tables_init::j#2 tables_init::pli#2 tables_init::idx#2 ] ) always clobbers reg byte a +Statement [308] *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0 + (byte) tables_init::j#2) ← (byte) tables_init::idx#2 [ tables_init::j#2 tables_init::pli#2 tables_init::idx#2 ] ( main:3::tables_init:10 [ tables_init::j#2 tables_init::pli#2 tables_init::idx#2 ] ) always clobbers reg byte a +Statement [309] (byte*) tables_init::pli#1 ← (byte*) tables_init::pli#2 + (const byte) PLAYFIELD_COLS#0 [ tables_init::j#2 tables_init::idx#2 tables_init::pli#1 ] ( main:3::tables_init:10 [ tables_init::j#2 tables_init::idx#2 tables_init::pli#1 ] ) always clobbers reg byte a +Statement [310] (byte) tables_init::idx#1 ← (byte) tables_init::idx#2 + (const byte) PLAYFIELD_COLS#0 [ tables_init::j#2 tables_init::pli#1 tables_init::idx#1 ] ( main:3::tables_init:10 [ tables_init::j#2 tables_init::pli#1 tables_init::idx#1 ] ) always clobbers reg byte a +Statement [313] *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0+(const byte) PLAYFIELD_LINES#0) ← (const byte) PLAYFIELD_COLS#0*(const byte) PLAYFIELD_LINES#0 [ ] ( main:3::tables_init:10 [ ] ) always clobbers reg byte a +Statement [320] (byte~) render_init::$5 ← (byte) render_init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ render_init::i#2 render_init::li#2 render_init::$5 ] ( main:3::render_init:8 [ render_init::i#2 render_init::li#2 render_init::$5 ] ) always clobbers reg byte a +Statement [321] *((const byte*[PLAYFIELD_LINES#0+3]) screen_lines#0 + (byte~) render_init::$5) ← (byte*) render_init::li#2 [ render_init::i#2 render_init::li#2 ] ( main:3::render_init:8 [ render_init::i#2 render_init::li#2 ] ) always clobbers reg byte a +Statement [322] (byte*) render_init::li#1 ← (byte*) render_init::li#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ render_init::i#2 render_init::li#1 ] ( main:3::render_init:8 [ render_init::i#2 render_init::li#1 ] ) always clobbers reg byte a +Statement [327] (byte*~) render_init::$10 ← (byte*) render_init::line#4 + (byte) render_init::c#2 [ render_init::line#4 render_init::l#4 render_init::c#2 render_init::$10 ] ( main:3::render_init:8 [ render_init::line#4 render_init::l#4 render_init::c#2 render_init::$10 ] ) always clobbers reg byte a +Statement [328] *((byte*~) render_init::$10) ← (const byte) DARK_GREY#0 [ render_init::line#4 render_init::l#4 render_init::c#2 ] ( main:3::render_init:8 [ render_init::line#4 render_init::l#4 render_init::c#2 ] ) always clobbers reg byte a reg byte y +Statement [331] (byte*) render_init::line#1 ← (byte*) render_init::line#4 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ render_init::l#4 render_init::line#1 ] ( main:3::render_init:8 [ render_init::l#4 render_init::line#1 ] ) always clobbers reg byte a +Statement [336] (byte*) fill::end#0 ← (byte*) fill::addr#0 + (word/signed word/dword/signed dword) 1000 [ fill::addr#0 fill::val#3 fill::end#0 ] ( main:3::render_init:8::fill:316 [ fill::addr#0 fill::val#3 fill::end#0 ] main:3::render_init:8::fill:318 [ fill::addr#0 fill::val#3 fill::end#0 ] ) always clobbers reg byte a +Statement [338] *((byte*) fill::addr#2) ← (byte) fill::val#3 [ fill::val#3 fill::end#0 fill::addr#2 ] ( main:3::render_init:8::fill:316 [ fill::val#3 fill::end#0 fill::addr#2 ] main:3::render_init:8::fill:318 [ fill::val#3 fill::end#0 fill::addr#2 ] ) always clobbers reg byte a reg byte y +Statement [340] if((byte*) fill::addr#1!=(byte*) fill::end#0) goto fill::@1 [ fill::val#3 fill::end#0 fill::addr#1 ] ( main:3::render_init:8::fill:316 [ fill::val#3 fill::end#0 fill::addr#1 ] main:3::render_init:8::fill:318 [ fill::val#3 fill::end#0 fill::addr#1 ] ) always clobbers reg byte a +Statement [342] *((const word*) SID_VOICE3_FREQ#0) ← (word/dword/signed dword) 65535 [ ] ( main:3::sid_rnd_init:6 [ ] ) always clobbers reg byte a +Statement [343] *((const byte*) SID_VOICE3_CONTROL#0) ← (const byte) SID_CONTROL_NOISE#0 [ ] ( main:3::sid_rnd_init:6 [ ] ) always clobbers reg byte a Potential registers zp ZP_BYTE:2 [ current_ypos#12 current_ypos#16 current_ypos#31 current_ypos#4 ] : zp ZP_BYTE:2 , reg byte x , Potential registers zp ZP_BYTE:3 [ current_movedown_counter#15 current_movedown_counter#12 current_movedown_counter#10 ] : zp ZP_BYTE:3 , reg byte x , Potential registers zp ZP_BYTE:4 [ current_ypos#22 current_ypos#71 ] : zp ZP_BYTE:4 , reg byte x , reg byte y , @@ -8880,163 +8907,163 @@ Uplift Scope [keyboard_event_pressed] 4: zp ZP_BYTE:105 [ keyboard_event_pressed Uplift Scope [keyboard_event_get] 22: zp ZP_BYTE:73 [ keyboard_event_get::return#3 ] 8.33: zp ZP_BYTE:54 [ keyboard_event_get::return#2 keyboard_event_get::return#1 ] Uplift Scope [sid_rnd_init] -Uplifting [keyboard_event_scan] best 598000 combination reg byte a [ keyboard_event_scan::$3 ] reg byte a [ keyboard_event_scan::$4 ] reg byte a [ keyboard_event_scan::event_type#0 ] reg byte a [ keyboard_event_scan::$11 ] zp ZP_BYTE:56 [ keyboard_event_scan::col#2 keyboard_event_scan::col#1 ] zp ZP_BYTE:57 [ keyboard_event_scan::keycode#10 keyboard_event_scan::keycode#11 keyboard_event_scan::keycode#14 keyboard_event_scan::keycode#1 keyboard_event_scan::keycode#15 ] zp ZP_BYTE:55 [ keyboard_event_scan::row#2 keyboard_event_scan::row#1 ] zp ZP_BYTE:123 [ keyboard_event_scan::row_scan#0 ] zp ZP_BYTE:125 [ keyboard_event_scan::$14 ] zp ZP_BYTE:127 [ keyboard_event_scan::$18 ] zp ZP_BYTE:129 [ keyboard_event_scan::$22 ] zp ZP_BYTE:131 [ keyboard_event_scan::$26 ] +Uplifting [keyboard_event_scan] best 598286 combination reg byte a [ keyboard_event_scan::$3 ] reg byte a [ keyboard_event_scan::$4 ] reg byte a [ keyboard_event_scan::event_type#0 ] reg byte a [ keyboard_event_scan::$11 ] zp ZP_BYTE:56 [ keyboard_event_scan::col#2 keyboard_event_scan::col#1 ] zp ZP_BYTE:57 [ keyboard_event_scan::keycode#10 keyboard_event_scan::keycode#11 keyboard_event_scan::keycode#14 keyboard_event_scan::keycode#1 keyboard_event_scan::keycode#15 ] zp ZP_BYTE:55 [ keyboard_event_scan::row#2 keyboard_event_scan::row#1 ] zp ZP_BYTE:123 [ keyboard_event_scan::row_scan#0 ] zp ZP_BYTE:125 [ keyboard_event_scan::$14 ] zp ZP_BYTE:127 [ keyboard_event_scan::$18 ] zp ZP_BYTE:129 [ keyboard_event_scan::$22 ] zp ZP_BYTE:131 [ keyboard_event_scan::$26 ] Limited combination testing to 100 combinations of 5308416 possible. -Uplifting [collision] best 583000 combination zp ZP_BYTE:28 [ collision::i#2 collision::i#3 collision::i#11 collision::i#13 ] reg byte a [ collision::$7 ] zp ZP_BYTE:29 [ collision::col#2 collision::col#9 collision::col#1 ] reg byte x [ collision::c#2 collision::c#1 ] zp ZP_BYTE:99 [ collision::i#1 ] zp ZP_BYTE:26 [ collision::ypos2#2 collision::ypos2#0 collision::ypos2#1 ] zp ZP_BYTE:27 [ collision::l#6 collision::l#1 ] zp ZP_WORD:97 [ collision::playfield_line#0 ] zp ZP_WORD:95 [ collision::piece_gfx#0 ] zp ZP_BYTE:23 [ collision::orientation#4 collision::orientation#0 collision::orientation#1 collision::orientation#2 collision::orientation#3 ] zp ZP_BYTE:24 [ collision::ypos#4 collision::ypos#0 collision::ypos#1 collision::ypos#2 collision::ypos#3 ] zp ZP_BYTE:25 [ collision::xpos#5 collision::xpos#0 collision::xpos#1 collision::xpos#2 collision::xpos#3 ] zp ZP_BYTE:92 [ collision::return#13 ] zp ZP_BYTE:101 [ collision::return#12 ] zp ZP_BYTE:103 [ collision::return#1 ] zp ZP_BYTE:107 [ collision::return#0 ] zp ZP_BYTE:31 [ collision::return#14 ] +Uplifting [collision] best 583286 combination zp ZP_BYTE:28 [ collision::i#2 collision::i#3 collision::i#11 collision::i#13 ] reg byte a [ collision::$7 ] zp ZP_BYTE:29 [ collision::col#2 collision::col#9 collision::col#1 ] reg byte x [ collision::c#2 collision::c#1 ] zp ZP_BYTE:99 [ collision::i#1 ] zp ZP_BYTE:26 [ collision::ypos2#2 collision::ypos2#0 collision::ypos2#1 ] zp ZP_BYTE:27 [ collision::l#6 collision::l#1 ] zp ZP_WORD:97 [ collision::playfield_line#0 ] zp ZP_WORD:95 [ collision::piece_gfx#0 ] zp ZP_BYTE:23 [ collision::orientation#4 collision::orientation#0 collision::orientation#1 collision::orientation#2 collision::orientation#3 ] zp ZP_BYTE:24 [ collision::ypos#4 collision::ypos#0 collision::ypos#1 collision::ypos#2 collision::ypos#3 ] zp ZP_BYTE:25 [ collision::xpos#5 collision::xpos#0 collision::xpos#1 collision::xpos#2 collision::xpos#3 ] zp ZP_BYTE:92 [ collision::return#13 ] zp ZP_BYTE:101 [ collision::return#12 ] zp ZP_BYTE:103 [ collision::return#1 ] zp ZP_BYTE:107 [ collision::return#0 ] zp ZP_BYTE:31 [ collision::return#14 ] Limited combination testing to 100 combinations of 80621568 possible. -Uplifting [lock_current] best 574000 combination zp ZP_BYTE:50 [ lock_current::i#2 lock_current::i#3 lock_current::i#7 lock_current::i#9 ] zp ZP_BYTE:51 [ lock_current::col#2 lock_current::col#0 lock_current::col#1 ] reg byte x [ lock_current::c#2 lock_current::c#1 ] zp ZP_BYTE:116 [ lock_current::i#1 ] zp ZP_BYTE:49 [ lock_current::l#6 lock_current::l#1 ] zp ZP_WORD:114 [ lock_current::playfield_line#0 ] zp ZP_BYTE:48 [ lock_current::ypos2#2 lock_current::ypos2#0 lock_current::ypos2#1 ] +Uplifting [lock_current] best 574286 combination zp ZP_BYTE:50 [ lock_current::i#2 lock_current::i#3 lock_current::i#7 lock_current::i#9 ] zp ZP_BYTE:51 [ lock_current::col#2 lock_current::col#0 lock_current::col#1 ] reg byte x [ lock_current::c#2 lock_current::c#1 ] zp ZP_BYTE:116 [ lock_current::i#1 ] zp ZP_BYTE:49 [ lock_current::l#6 lock_current::l#1 ] zp ZP_WORD:114 [ lock_current::playfield_line#0 ] zp ZP_BYTE:48 [ lock_current::ypos2#2 lock_current::ypos2#0 lock_current::ypos2#1 ] Limited combination testing to 100 combinations of 729 possible. -Uplifting [remove_lines] best 560300 combination reg byte y [ remove_lines::r#2 remove_lines::r#3 remove_lines::r#1 ] reg byte x [ remove_lines::w#6 remove_lines::w#4 remove_lines::w#12 remove_lines::w#11 remove_lines::w#1 remove_lines::w#2 remove_lines::w#3 ] zp ZP_BYTE:45 [ remove_lines::x#2 remove_lines::x#1 ] zp ZP_BYTE:46 [ remove_lines::full#4 remove_lines::full#2 ] zp ZP_BYTE:113 [ remove_lines::c#0 ] zp ZP_BYTE:43 [ remove_lines::y#8 remove_lines::y#1 ] +Uplifting [remove_lines] best 560586 combination reg byte y [ remove_lines::r#2 remove_lines::r#3 remove_lines::r#1 ] reg byte x [ remove_lines::w#6 remove_lines::w#4 remove_lines::w#12 remove_lines::w#11 remove_lines::w#1 remove_lines::w#2 remove_lines::w#3 ] zp ZP_BYTE:45 [ remove_lines::x#2 remove_lines::x#1 ] zp ZP_BYTE:46 [ remove_lines::full#4 remove_lines::full#2 ] zp ZP_BYTE:113 [ remove_lines::c#0 ] zp ZP_BYTE:43 [ remove_lines::y#8 remove_lines::y#1 ] Limited combination testing to 100 combinations of 1728 possible. -Uplifting [render_current] best 545300 combination zp ZP_BYTE:11 [ render_current::i#2 render_current::i#1 render_current::i#4 render_current::i#8 ] reg byte x [ render_current::c#2 render_current::c#1 ] zp ZP_BYTE:12 [ render_current::xpos#2 render_current::xpos#1 render_current::xpos#0 ] reg byte a [ render_current::current_cell#0 ] zp ZP_BYTE:10 [ render_current::l#3 render_current::l#1 ] zp ZP_BYTE:9 [ render_current::ypos2#2 render_current::ypos2#0 render_current::ypos2#1 ] zp ZP_WORD:87 [ render_current::screen_line#0 ] +Uplifting [render_current] best 545586 combination zp ZP_BYTE:11 [ render_current::i#2 render_current::i#1 render_current::i#4 render_current::i#8 ] reg byte x [ render_current::c#2 render_current::c#1 ] zp ZP_BYTE:12 [ render_current::xpos#2 render_current::xpos#1 render_current::xpos#0 ] reg byte a [ render_current::current_cell#0 ] zp ZP_BYTE:10 [ render_current::l#3 render_current::l#1 ] zp ZP_BYTE:9 [ render_current::ypos2#2 render_current::ypos2#0 render_current::ypos2#1 ] zp ZP_WORD:87 [ render_current::screen_line#0 ] Limited combination testing to 100 combinations of 972 possible. -Uplifting [] best 545266 combination zp ZP_BYTE:58 [ keyboard_events_size#10 keyboard_events_size#29 keyboard_events_size#19 keyboard_events_size#16 keyboard_events_size#13 keyboard_events_size#4 keyboard_events_size#30 keyboard_events_size#2 keyboard_events_size#1 ] zp ZP_BYTE:8 [ current_piece_color#67 current_piece_color#75 current_piece_color#76 ] zp ZP_WORD:6 [ current_piece_gfx#64 current_piece_gfx#87 current_piece_gfx#88 ] zp ZP_WORD:37 [ current_piece_gfx#29 current_piece_gfx#15 current_piece_gfx#18 current_piece_gfx#10 current_piece_gfx#8 current_piece_gfx#17 ] zp ZP_BYTE:40 [ current_piece_color#23 current_piece_color#11 current_piece_color#13 current_piece_color#15 ] zp ZP_WORD:21 [ current_piece#15 current_piece#72 current_piece#73 current_piece#74 current_piece#75 ] reg byte x [ current_ypos#22 current_ypos#71 ] zp ZP_BYTE:39 [ current_xpos#36 current_xpos#16 current_xpos#23 current_xpos#9 current_xpos#19 current_xpos#7 ] zp ZP_WORD:34 [ current_piece#23 current_piece#76 current_piece#11 current_piece#13 current_piece#71 ] zp ZP_BYTE:5 [ current_xpos#63 current_xpos#96 ] zp ZP_BYTE:2 [ current_ypos#12 current_ypos#16 current_ypos#31 current_ypos#4 ] zp ZP_BYTE:36 [ current_orientation#33 current_orientation#15 current_orientation#23 current_orientation#8 current_orientation#18 ] zp ZP_BYTE:3 [ current_movedown_counter#15 current_movedown_counter#12 current_movedown_counter#10 ] +Uplifting [] best 545552 combination zp ZP_BYTE:58 [ keyboard_events_size#10 keyboard_events_size#29 keyboard_events_size#19 keyboard_events_size#16 keyboard_events_size#13 keyboard_events_size#4 keyboard_events_size#30 keyboard_events_size#2 keyboard_events_size#1 ] zp ZP_BYTE:8 [ current_piece_color#67 current_piece_color#75 current_piece_color#76 ] zp ZP_WORD:6 [ current_piece_gfx#64 current_piece_gfx#87 current_piece_gfx#88 ] zp ZP_WORD:37 [ current_piece_gfx#29 current_piece_gfx#15 current_piece_gfx#18 current_piece_gfx#10 current_piece_gfx#8 current_piece_gfx#17 ] zp ZP_BYTE:40 [ current_piece_color#23 current_piece_color#11 current_piece_color#13 current_piece_color#15 ] zp ZP_WORD:21 [ current_piece#15 current_piece#72 current_piece#73 current_piece#74 current_piece#75 ] reg byte x [ current_ypos#22 current_ypos#71 ] zp ZP_BYTE:39 [ current_xpos#36 current_xpos#16 current_xpos#23 current_xpos#9 current_xpos#19 current_xpos#7 ] zp ZP_WORD:34 [ current_piece#23 current_piece#76 current_piece#11 current_piece#13 current_piece#71 ] zp ZP_BYTE:5 [ current_xpos#63 current_xpos#96 ] zp ZP_BYTE:2 [ current_ypos#12 current_ypos#16 current_ypos#31 current_ypos#4 ] zp ZP_BYTE:36 [ current_orientation#33 current_orientation#15 current_orientation#23 current_orientation#8 current_orientation#18 ] zp ZP_BYTE:3 [ current_movedown_counter#15 current_movedown_counter#12 current_movedown_counter#10 ] Limited combination testing to 100 combinations of 1728 possible. -Uplifting [render_playfield] best 535866 combination zp ZP_WORD:16 [ render_playfield::line#2 render_playfield::line#0 render_playfield::line#1 ] reg byte x [ render_playfield::c#2 render_playfield::c#1 ] zp ZP_BYTE:15 [ render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 ] reg byte a [ render_playfield::$1 ] zp ZP_BYTE:14 [ render_playfield::l#2 render_playfield::l#1 ] -Uplifting [render_init] best 534726 combination reg byte x [ render_init::c#2 render_init::c#1 ] zp ZP_WORD:139 [ render_init::$10 ] zp ZP_WORD:66 [ render_init::line#4 render_init::line#1 ] reg byte x [ render_init::i#2 render_init::i#1 ] reg byte a [ render_init::$5 ] zp ZP_BYTE:68 [ render_init::l#4 render_init::l#1 ] zp ZP_WORD:64 [ render_init::li#2 render_init::li#1 ] -Uplifting [spawn_current] best 533422 combination reg byte x [ spawn_current::piece_idx#2 spawn_current::piece_idx#1 ] reg byte a [ spawn_current::$1 ] zp ZP_BYTE:109 [ spawn_current::$3 ] -Uplifting [keyboard_matrix_read] best 532216 combination reg byte a [ keyboard_matrix_read::return#2 ] reg byte x [ keyboard_matrix_read::rowid#0 ] reg byte a [ keyboard_matrix_read::return#0 ] -Uplifting [sid_rnd] best 531313 combination reg byte a [ sid_rnd::return#2 ] reg byte a [ sid_rnd::return#0 ] -Uplifting [main] best 531073 combination reg byte a [ main::$10 ] reg byte a [ main::$11 ] reg byte a [ main::$12 ] reg byte a [ main::render#3 ] zp ZP_BYTE:78 [ main::render#1 ] zp ZP_BYTE:82 [ main::render#2 ] zp ZP_BYTE:74 [ main::key_event#0 ] +Uplifting [render_playfield] best 536152 combination zp ZP_WORD:16 [ render_playfield::line#2 render_playfield::line#0 render_playfield::line#1 ] reg byte x [ render_playfield::c#2 render_playfield::c#1 ] zp ZP_BYTE:15 [ render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 ] reg byte a [ render_playfield::$1 ] zp ZP_BYTE:14 [ render_playfield::l#2 render_playfield::l#1 ] +Uplifting [render_init] best 535012 combination reg byte x [ render_init::c#2 render_init::c#1 ] zp ZP_WORD:139 [ render_init::$10 ] zp ZP_WORD:66 [ render_init::line#4 render_init::line#1 ] reg byte x [ render_init::i#2 render_init::i#1 ] reg byte a [ render_init::$5 ] zp ZP_BYTE:68 [ render_init::l#4 render_init::l#1 ] zp ZP_WORD:64 [ render_init::li#2 render_init::li#1 ] +Uplifting [spawn_current] best 533708 combination reg byte x [ spawn_current::piece_idx#2 spawn_current::piece_idx#1 ] reg byte a [ spawn_current::$1 ] zp ZP_BYTE:109 [ spawn_current::$3 ] +Uplifting [keyboard_matrix_read] best 532502 combination reg byte a [ keyboard_matrix_read::return#2 ] reg byte x [ keyboard_matrix_read::rowid#0 ] reg byte a [ keyboard_matrix_read::return#0 ] +Uplifting [sid_rnd] best 531599 combination reg byte a [ sid_rnd::return#2 ] reg byte a [ sid_rnd::return#0 ] +Uplifting [main] best 531359 combination reg byte a [ main::$10 ] reg byte a [ main::$11 ] reg byte a [ main::$12 ] reg byte a [ main::render#3 ] zp ZP_BYTE:78 [ main::render#1 ] zp ZP_BYTE:82 [ main::render#2 ] zp ZP_BYTE:74 [ main::key_event#0 ] Limited combination testing to 100 combinations of 6912 possible. -Uplifting [tables_init] best 530903 combination reg byte x [ tables_init::j#2 tables_init::j#1 ] reg byte a [ tables_init::$1 ] zp ZP_BYTE:62 [ tables_init::idx#2 tables_init::idx#1 ] zp ZP_WORD:60 [ tables_init::pli#2 tables_init::pli#1 ] -Uplifting [play_move_down] best 530789 combination reg byte a [ play_move_down::return#0 ] reg byte x [ play_move_down::movedown#6 play_move_down::movedown#3 play_move_down::movedown#7 play_move_down::movedown#2 play_move_down::movedown#10 ] reg byte a [ play_move_down::key_event#0 ] reg byte a [ play_move_down::$2 ] zp ZP_BYTE:108 [ play_move_down::$12 ] zp ZP_BYTE:41 [ play_move_down::return#3 ] +Uplifting [tables_init] best 531189 combination reg byte x [ tables_init::j#2 tables_init::j#1 ] reg byte a [ tables_init::$1 ] zp ZP_BYTE:62 [ tables_init::idx#2 tables_init::idx#1 ] zp ZP_WORD:60 [ tables_init::pli#2 tables_init::pli#1 ] +Uplifting [play_move_down] best 531075 combination reg byte a [ play_move_down::return#0 ] reg byte x [ play_move_down::movedown#6 play_move_down::movedown#3 play_move_down::movedown#7 play_move_down::movedown#2 play_move_down::movedown#10 ] reg byte a [ play_move_down::key_event#0 ] reg byte a [ play_move_down::$2 ] zp ZP_BYTE:108 [ play_move_down::$12 ] zp ZP_BYTE:41 [ play_move_down::return#3 ] Limited combination testing to 100 combinations of 3072 possible. -Uplifting [play_move_rotate] best 530687 combination reg byte a [ play_move_rotate::return#0 ] zp ZP_BYTE:20 [ play_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#2 ] reg byte a [ play_move_rotate::key_event#0 ] reg byte a [ play_move_rotate::$2 ] zp ZP_BYTE:93 [ play_move_rotate::$6 ] zp ZP_BYTE:94 [ play_move_rotate::$4 ] zp ZP_BYTE:19 [ play_move_rotate::return#2 ] +Uplifting [play_move_rotate] best 530973 combination reg byte a [ play_move_rotate::return#0 ] zp ZP_BYTE:20 [ play_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#2 ] reg byte a [ play_move_rotate::key_event#0 ] reg byte a [ play_move_rotate::$2 ] zp ZP_BYTE:93 [ play_move_rotate::$6 ] zp ZP_BYTE:94 [ play_move_rotate::$4 ] zp ZP_BYTE:19 [ play_move_rotate::return#2 ] Limited combination testing to 100 combinations of 12288 possible. -Uplifting [play_move_leftright] best 530579 combination reg byte a [ play_move_leftright::return#0 ] reg byte a [ play_move_leftright::key_event#0 ] reg byte a [ play_move_leftright::$4 ] reg byte a [ play_move_leftright::$8 ] zp ZP_BYTE:32 [ play_move_leftright::return#2 ] +Uplifting [play_move_leftright] best 530865 combination reg byte a [ play_move_leftright::return#0 ] reg byte a [ play_move_leftright::key_event#0 ] reg byte a [ play_move_leftright::$4 ] reg byte a [ play_move_leftright::$8 ] zp ZP_BYTE:32 [ play_move_leftright::return#2 ] Limited combination testing to 100 combinations of 1024 possible. -Uplifting [fill] best 530563 combination zp ZP_WORD:71 [ fill::addr#2 fill::addr#0 fill::addr#1 ] zp ZP_WORD:141 [ fill::end#0 ] reg byte x [ fill::val#3 ] -Uplifting [keyboard_event_pressed] best 530543 combination reg byte a [ keyboard_event_pressed::return#12 ] reg byte a [ keyboard_event_pressed::$0 ] reg byte a [ keyboard_event_pressed::$1 ] reg byte a [ keyboard_event_pressed::return#0 ] zp ZP_BYTE:126 [ keyboard_event_pressed::return#1 ] zp ZP_BYTE:128 [ keyboard_event_pressed::return#2 ] zp ZP_BYTE:130 [ keyboard_event_pressed::return#10 ] zp ZP_BYTE:118 [ keyboard_event_pressed::row_bits#0 ] zp ZP_BYTE:120 [ keyboard_event_pressed::return#11 ] zp ZP_BYTE:53 [ keyboard_event_pressed::keycode#5 ] +Uplifting [fill] best 530849 combination zp ZP_WORD:71 [ fill::addr#2 fill::addr#0 fill::addr#1 ] zp ZP_WORD:141 [ fill::end#0 ] reg byte x [ fill::val#3 ] +Uplifting [keyboard_event_pressed] best 530829 combination reg byte a [ keyboard_event_pressed::return#12 ] reg byte a [ keyboard_event_pressed::$0 ] reg byte a [ keyboard_event_pressed::$1 ] reg byte a [ keyboard_event_pressed::return#0 ] zp ZP_BYTE:126 [ keyboard_event_pressed::return#1 ] zp ZP_BYTE:128 [ keyboard_event_pressed::return#2 ] zp ZP_BYTE:130 [ keyboard_event_pressed::return#10 ] zp ZP_BYTE:118 [ keyboard_event_pressed::row_bits#0 ] zp ZP_BYTE:120 [ keyboard_event_pressed::return#11 ] zp ZP_BYTE:53 [ keyboard_event_pressed::keycode#5 ] Limited combination testing to 100 combinations of 589824 possible. -Uplifting [keyboard_event_get] best 530447 combination reg byte a [ keyboard_event_get::return#3 ] reg byte a [ keyboard_event_get::return#2 keyboard_event_get::return#1 ] -Uplifting [sid_rnd_init] best 530447 combination +Uplifting [keyboard_event_get] best 530733 combination reg byte a [ keyboard_event_get::return#3 ] reg byte a [ keyboard_event_get::return#2 keyboard_event_get::return#1 ] +Uplifting [sid_rnd_init] best 530733 combination Attempting to uplift remaining variables inzp ZP_BYTE:58 [ keyboard_events_size#10 keyboard_events_size#29 keyboard_events_size#19 keyboard_events_size#16 keyboard_events_size#13 keyboard_events_size#4 keyboard_events_size#30 keyboard_events_size#2 keyboard_events_size#1 ] -Uplifting [] best 530447 combination zp ZP_BYTE:58 [ keyboard_events_size#10 keyboard_events_size#29 keyboard_events_size#19 keyboard_events_size#16 keyboard_events_size#13 keyboard_events_size#4 keyboard_events_size#30 keyboard_events_size#2 keyboard_events_size#1 ] +Uplifting [] best 530733 combination zp ZP_BYTE:58 [ keyboard_events_size#10 keyboard_events_size#29 keyboard_events_size#19 keyboard_events_size#16 keyboard_events_size#13 keyboard_events_size#4 keyboard_events_size#30 keyboard_events_size#2 keyboard_events_size#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:28 [ collision::i#2 collision::i#3 collision::i#11 collision::i#13 ] -Uplifting [collision] best 530447 combination zp ZP_BYTE:28 [ collision::i#2 collision::i#3 collision::i#11 collision::i#13 ] +Uplifting [collision] best 530733 combination zp ZP_BYTE:28 [ collision::i#2 collision::i#3 collision::i#11 collision::i#13 ] Attempting to uplift remaining variables inzp ZP_BYTE:50 [ lock_current::i#2 lock_current::i#3 lock_current::i#7 lock_current::i#9 ] -Uplifting [lock_current] best 530447 combination zp ZP_BYTE:50 [ lock_current::i#2 lock_current::i#3 lock_current::i#7 lock_current::i#9 ] +Uplifting [lock_current] best 530733 combination zp ZP_BYTE:50 [ lock_current::i#2 lock_current::i#3 lock_current::i#7 lock_current::i#9 ] Attempting to uplift remaining variables inzp ZP_BYTE:11 [ render_current::i#2 render_current::i#1 render_current::i#4 render_current::i#8 ] -Uplifting [render_current] best 530447 combination zp ZP_BYTE:11 [ render_current::i#2 render_current::i#1 render_current::i#4 render_current::i#8 ] +Uplifting [render_current] best 530733 combination zp ZP_BYTE:11 [ render_current::i#2 render_current::i#1 render_current::i#4 render_current::i#8 ] Attempting to uplift remaining variables inzp ZP_BYTE:56 [ keyboard_event_scan::col#2 keyboard_event_scan::col#1 ] -Uplifting [keyboard_event_scan] best 515447 combination reg byte x [ keyboard_event_scan::col#2 keyboard_event_scan::col#1 ] +Uplifting [keyboard_event_scan] best 515733 combination reg byte x [ keyboard_event_scan::col#2 keyboard_event_scan::col#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:45 [ remove_lines::x#2 remove_lines::x#1 ] -Uplifting [remove_lines] best 515447 combination zp ZP_BYTE:45 [ remove_lines::x#2 remove_lines::x#1 ] +Uplifting [remove_lines] best 515733 combination zp ZP_BYTE:45 [ remove_lines::x#2 remove_lines::x#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:12 [ render_current::xpos#2 render_current::xpos#1 render_current::xpos#0 ] -Uplifting [render_current] best 515447 combination zp ZP_BYTE:12 [ render_current::xpos#2 render_current::xpos#1 render_current::xpos#0 ] +Uplifting [render_current] best 515733 combination zp ZP_BYTE:12 [ render_current::xpos#2 render_current::xpos#1 render_current::xpos#0 ] Attempting to uplift remaining variables inzp ZP_BYTE:15 [ render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 ] -Uplifting [render_playfield] best 515447 combination zp ZP_BYTE:15 [ render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 ] +Uplifting [render_playfield] best 515733 combination zp ZP_BYTE:15 [ render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:51 [ lock_current::col#2 lock_current::col#0 lock_current::col#1 ] -Uplifting [lock_current] best 515447 combination zp ZP_BYTE:51 [ lock_current::col#2 lock_current::col#0 lock_current::col#1 ] +Uplifting [lock_current] best 515733 combination zp ZP_BYTE:51 [ lock_current::col#2 lock_current::col#0 lock_current::col#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:29 [ collision::col#2 collision::col#9 collision::col#1 ] -Uplifting [collision] best 515447 combination zp ZP_BYTE:29 [ collision::col#2 collision::col#9 collision::col#1 ] +Uplifting [collision] best 515733 combination zp ZP_BYTE:29 [ collision::col#2 collision::col#9 collision::col#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:57 [ keyboard_event_scan::keycode#10 keyboard_event_scan::keycode#11 keyboard_event_scan::keycode#14 keyboard_event_scan::keycode#1 keyboard_event_scan::keycode#15 ] -Uplifting [keyboard_event_scan] best 515447 combination zp ZP_BYTE:57 [ keyboard_event_scan::keycode#10 keyboard_event_scan::keycode#11 keyboard_event_scan::keycode#14 keyboard_event_scan::keycode#1 keyboard_event_scan::keycode#15 ] +Uplifting [keyboard_event_scan] best 515733 combination zp ZP_BYTE:57 [ keyboard_event_scan::keycode#10 keyboard_event_scan::keycode#11 keyboard_event_scan::keycode#14 keyboard_event_scan::keycode#1 keyboard_event_scan::keycode#15 ] Attempting to uplift remaining variables inzp ZP_BYTE:46 [ remove_lines::full#4 remove_lines::full#2 ] -Uplifting [remove_lines] best 515447 combination zp ZP_BYTE:46 [ remove_lines::full#4 remove_lines::full#2 ] +Uplifting [remove_lines] best 515733 combination zp ZP_BYTE:46 [ remove_lines::full#4 remove_lines::full#2 ] Attempting to uplift remaining variables inzp ZP_BYTE:113 [ remove_lines::c#0 ] -Uplifting [remove_lines] best 515447 combination zp ZP_BYTE:113 [ remove_lines::c#0 ] +Uplifting [remove_lines] best 515733 combination zp ZP_BYTE:113 [ remove_lines::c#0 ] Attempting to uplift remaining variables inzp ZP_BYTE:116 [ lock_current::i#1 ] -Uplifting [lock_current] best 515447 combination zp ZP_BYTE:116 [ lock_current::i#1 ] +Uplifting [lock_current] best 515733 combination zp ZP_BYTE:116 [ lock_current::i#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:55 [ keyboard_event_scan::row#2 keyboard_event_scan::row#1 ] -Uplifting [keyboard_event_scan] best 515447 combination zp ZP_BYTE:55 [ keyboard_event_scan::row#2 keyboard_event_scan::row#1 ] +Uplifting [keyboard_event_scan] best 515733 combination zp ZP_BYTE:55 [ keyboard_event_scan::row#2 keyboard_event_scan::row#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:14 [ render_playfield::l#2 render_playfield::l#1 ] -Uplifting [render_playfield] best 515447 combination zp ZP_BYTE:14 [ render_playfield::l#2 render_playfield::l#1 ] +Uplifting [render_playfield] best 515733 combination zp ZP_BYTE:14 [ render_playfield::l#2 render_playfield::l#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:43 [ remove_lines::y#8 remove_lines::y#1 ] -Uplifting [remove_lines] best 515447 combination zp ZP_BYTE:43 [ remove_lines::y#8 remove_lines::y#1 ] +Uplifting [remove_lines] best 515733 combination zp ZP_BYTE:43 [ remove_lines::y#8 remove_lines::y#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:10 [ render_current::l#3 render_current::l#1 ] -Uplifting [render_current] best 515447 combination zp ZP_BYTE:10 [ render_current::l#3 render_current::l#1 ] +Uplifting [render_current] best 515733 combination zp ZP_BYTE:10 [ render_current::l#3 render_current::l#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:99 [ collision::i#1 ] -Uplifting [collision] best 515447 combination zp ZP_BYTE:99 [ collision::i#1 ] +Uplifting [collision] best 515733 combination zp ZP_BYTE:99 [ collision::i#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:26 [ collision::ypos2#2 collision::ypos2#0 collision::ypos2#1 ] -Uplifting [collision] best 515447 combination zp ZP_BYTE:26 [ collision::ypos2#2 collision::ypos2#0 collision::ypos2#1 ] +Uplifting [collision] best 515733 combination zp ZP_BYTE:26 [ collision::ypos2#2 collision::ypos2#0 collision::ypos2#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:123 [ keyboard_event_scan::row_scan#0 ] -Uplifting [keyboard_event_scan] best 515447 combination zp ZP_BYTE:123 [ keyboard_event_scan::row_scan#0 ] +Uplifting [keyboard_event_scan] best 515733 combination zp ZP_BYTE:123 [ keyboard_event_scan::row_scan#0 ] Attempting to uplift remaining variables inzp ZP_BYTE:49 [ lock_current::l#6 lock_current::l#1 ] -Uplifting [lock_current] best 515447 combination zp ZP_BYTE:49 [ lock_current::l#6 lock_current::l#1 ] +Uplifting [lock_current] best 515733 combination zp ZP_BYTE:49 [ lock_current::l#6 lock_current::l#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:27 [ collision::l#6 collision::l#1 ] -Uplifting [collision] best 515447 combination zp ZP_BYTE:27 [ collision::l#6 collision::l#1 ] +Uplifting [collision] best 515733 combination zp ZP_BYTE:27 [ collision::l#6 collision::l#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:9 [ render_current::ypos2#2 render_current::ypos2#0 render_current::ypos2#1 ] -Uplifting [render_current] best 515447 combination zp ZP_BYTE:9 [ render_current::ypos2#2 render_current::ypos2#0 render_current::ypos2#1 ] +Uplifting [render_current] best 515733 combination zp ZP_BYTE:9 [ render_current::ypos2#2 render_current::ypos2#0 render_current::ypos2#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:48 [ lock_current::ypos2#2 lock_current::ypos2#0 lock_current::ypos2#1 ] -Uplifting [lock_current] best 515447 combination zp ZP_BYTE:48 [ lock_current::ypos2#2 lock_current::ypos2#0 lock_current::ypos2#1 ] +Uplifting [lock_current] best 515733 combination zp ZP_BYTE:48 [ lock_current::ypos2#2 lock_current::ypos2#0 lock_current::ypos2#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:8 [ current_piece_color#67 current_piece_color#75 current_piece_color#76 ] -Uplifting [] best 515447 combination zp ZP_BYTE:8 [ current_piece_color#67 current_piece_color#75 current_piece_color#76 ] +Uplifting [] best 515733 combination zp ZP_BYTE:8 [ current_piece_color#67 current_piece_color#75 current_piece_color#76 ] Attempting to uplift remaining variables inzp ZP_BYTE:40 [ current_piece_color#23 current_piece_color#11 current_piece_color#13 current_piece_color#15 ] -Uplifting [] best 515447 combination zp ZP_BYTE:40 [ current_piece_color#23 current_piece_color#11 current_piece_color#13 current_piece_color#15 ] +Uplifting [] best 515733 combination zp ZP_BYTE:40 [ current_piece_color#23 current_piece_color#11 current_piece_color#13 current_piece_color#15 ] Attempting to uplift remaining variables inzp ZP_BYTE:68 [ render_init::l#4 render_init::l#1 ] -Uplifting [render_init] best 515447 combination zp ZP_BYTE:68 [ render_init::l#4 render_init::l#1 ] +Uplifting [render_init] best 515733 combination zp ZP_BYTE:68 [ render_init::l#4 render_init::l#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:23 [ collision::orientation#4 collision::orientation#0 collision::orientation#1 collision::orientation#2 collision::orientation#3 ] -Uplifting [collision] best 515434 combination reg byte x [ collision::orientation#4 collision::orientation#0 collision::orientation#1 collision::orientation#2 collision::orientation#3 ] +Uplifting [collision] best 515720 combination reg byte x [ collision::orientation#4 collision::orientation#0 collision::orientation#1 collision::orientation#2 collision::orientation#3 ] Attempting to uplift remaining variables inzp ZP_BYTE:39 [ current_xpos#36 current_xpos#16 current_xpos#23 current_xpos#9 current_xpos#19 current_xpos#7 ] -Uplifting [] best 515434 combination zp ZP_BYTE:39 [ current_xpos#36 current_xpos#16 current_xpos#23 current_xpos#9 current_xpos#19 current_xpos#7 ] +Uplifting [] best 515720 combination zp ZP_BYTE:39 [ current_xpos#36 current_xpos#16 current_xpos#23 current_xpos#9 current_xpos#19 current_xpos#7 ] Attempting to uplift remaining variables inzp ZP_BYTE:62 [ tables_init::idx#2 tables_init::idx#1 ] -Uplifting [tables_init] best 515434 combination zp ZP_BYTE:62 [ tables_init::idx#2 tables_init::idx#1 ] +Uplifting [tables_init] best 515720 combination zp ZP_BYTE:62 [ tables_init::idx#2 tables_init::idx#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:5 [ current_xpos#63 current_xpos#96 ] -Uplifting [] best 515434 combination zp ZP_BYTE:5 [ current_xpos#63 current_xpos#96 ] +Uplifting [] best 515720 combination zp ZP_BYTE:5 [ current_xpos#63 current_xpos#96 ] Attempting to uplift remaining variables inzp ZP_BYTE:24 [ collision::ypos#4 collision::ypos#0 collision::ypos#1 collision::ypos#2 collision::ypos#3 ] -Uplifting [collision] best 515421 combination reg byte y [ collision::ypos#4 collision::ypos#0 collision::ypos#1 collision::ypos#2 collision::ypos#3 ] +Uplifting [collision] best 515707 combination reg byte y [ collision::ypos#4 collision::ypos#0 collision::ypos#1 collision::ypos#2 collision::ypos#3 ] Attempting to uplift remaining variables inzp ZP_BYTE:25 [ collision::xpos#5 collision::xpos#0 collision::xpos#1 collision::xpos#2 collision::xpos#3 ] -Uplifting [collision] best 515421 combination zp ZP_BYTE:25 [ collision::xpos#5 collision::xpos#0 collision::xpos#1 collision::xpos#2 collision::xpos#3 ] +Uplifting [collision] best 515707 combination zp ZP_BYTE:25 [ collision::xpos#5 collision::xpos#0 collision::xpos#1 collision::xpos#2 collision::xpos#3 ] Attempting to uplift remaining variables inzp ZP_BYTE:2 [ current_ypos#12 current_ypos#16 current_ypos#31 current_ypos#4 ] -Uplifting [] best 515421 combination zp ZP_BYTE:2 [ current_ypos#12 current_ypos#16 current_ypos#31 current_ypos#4 ] +Uplifting [] best 515707 combination zp ZP_BYTE:2 [ current_ypos#12 current_ypos#16 current_ypos#31 current_ypos#4 ] Attempting to uplift remaining variables inzp ZP_BYTE:36 [ current_orientation#33 current_orientation#15 current_orientation#23 current_orientation#8 current_orientation#18 ] -Uplifting [] best 515421 combination zp ZP_BYTE:36 [ current_orientation#33 current_orientation#15 current_orientation#23 current_orientation#8 current_orientation#18 ] +Uplifting [] best 515707 combination zp ZP_BYTE:36 [ current_orientation#33 current_orientation#15 current_orientation#23 current_orientation#8 current_orientation#18 ] Attempting to uplift remaining variables inzp ZP_BYTE:20 [ play_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#2 ] -Uplifting [play_move_rotate] best 515421 combination zp ZP_BYTE:20 [ play_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#2 ] +Uplifting [play_move_rotate] best 515707 combination zp ZP_BYTE:20 [ play_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#2 ] Attempting to uplift remaining variables inzp ZP_BYTE:78 [ main::render#1 ] -Uplifting [main] best 515421 combination zp ZP_BYTE:78 [ main::render#1 ] +Uplifting [main] best 515707 combination zp ZP_BYTE:78 [ main::render#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:82 [ main::render#2 ] -Uplifting [main] best 515421 combination zp ZP_BYTE:82 [ main::render#2 ] +Uplifting [main] best 515707 combination zp ZP_BYTE:82 [ main::render#2 ] Attempting to uplift remaining variables inzp ZP_BYTE:74 [ main::key_event#0 ] -Uplifting [main] best 515421 combination zp ZP_BYTE:74 [ main::key_event#0 ] +Uplifting [main] best 515707 combination zp ZP_BYTE:74 [ main::key_event#0 ] Attempting to uplift remaining variables inzp ZP_BYTE:92 [ collision::return#13 ] -Uplifting [collision] best 515415 combination reg byte a [ collision::return#13 ] +Uplifting [collision] best 515701 combination reg byte a [ collision::return#13 ] Attempting to uplift remaining variables inzp ZP_BYTE:93 [ play_move_rotate::$6 ] -Uplifting [play_move_rotate] best 515409 combination reg byte a [ play_move_rotate::$6 ] +Uplifting [play_move_rotate] best 515695 combination reg byte a [ play_move_rotate::$6 ] Attempting to uplift remaining variables inzp ZP_BYTE:94 [ play_move_rotate::$4 ] -Uplifting [play_move_rotate] best 515403 combination reg byte a [ play_move_rotate::$4 ] +Uplifting [play_move_rotate] best 515689 combination reg byte a [ play_move_rotate::$4 ] Attempting to uplift remaining variables inzp ZP_BYTE:101 [ collision::return#12 ] -Uplifting [collision] best 515397 combination reg byte a [ collision::return#12 ] +Uplifting [collision] best 515683 combination reg byte a [ collision::return#12 ] Attempting to uplift remaining variables inzp ZP_BYTE:103 [ collision::return#1 ] -Uplifting [collision] best 515391 combination reg byte a [ collision::return#1 ] +Uplifting [collision] best 515677 combination reg byte a [ collision::return#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:107 [ collision::return#0 ] -Uplifting [collision] best 515385 combination reg byte a [ collision::return#0 ] +Uplifting [collision] best 515671 combination reg byte a [ collision::return#0 ] Attempting to uplift remaining variables inzp ZP_BYTE:108 [ play_move_down::$12 ] -Uplifting [play_move_down] best 515379 combination reg byte a [ play_move_down::$12 ] +Uplifting [play_move_down] best 515665 combination reg byte a [ play_move_down::$12 ] Attempting to uplift remaining variables inzp ZP_BYTE:125 [ keyboard_event_scan::$14 ] -Uplifting [keyboard_event_scan] best 515373 combination reg byte a [ keyboard_event_scan::$14 ] +Uplifting [keyboard_event_scan] best 515659 combination reg byte a [ keyboard_event_scan::$14 ] Attempting to uplift remaining variables inzp ZP_BYTE:126 [ keyboard_event_pressed::return#1 ] -Uplifting [keyboard_event_pressed] best 515367 combination reg byte a [ keyboard_event_pressed::return#1 ] +Uplifting [keyboard_event_pressed] best 515653 combination reg byte a [ keyboard_event_pressed::return#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:127 [ keyboard_event_scan::$18 ] -Uplifting [keyboard_event_scan] best 515361 combination reg byte a [ keyboard_event_scan::$18 ] +Uplifting [keyboard_event_scan] best 515647 combination reg byte a [ keyboard_event_scan::$18 ] Attempting to uplift remaining variables inzp ZP_BYTE:128 [ keyboard_event_pressed::return#2 ] -Uplifting [keyboard_event_pressed] best 515355 combination reg byte a [ keyboard_event_pressed::return#2 ] +Uplifting [keyboard_event_pressed] best 515641 combination reg byte a [ keyboard_event_pressed::return#2 ] Attempting to uplift remaining variables inzp ZP_BYTE:129 [ keyboard_event_scan::$22 ] -Uplifting [keyboard_event_scan] best 515349 combination reg byte a [ keyboard_event_scan::$22 ] +Uplifting [keyboard_event_scan] best 515635 combination reg byte a [ keyboard_event_scan::$22 ] Attempting to uplift remaining variables inzp ZP_BYTE:130 [ keyboard_event_pressed::return#10 ] -Uplifting [keyboard_event_pressed] best 515343 combination reg byte a [ keyboard_event_pressed::return#10 ] +Uplifting [keyboard_event_pressed] best 515629 combination reg byte a [ keyboard_event_pressed::return#10 ] Attempting to uplift remaining variables inzp ZP_BYTE:131 [ keyboard_event_scan::$26 ] -Uplifting [keyboard_event_scan] best 515337 combination reg byte a [ keyboard_event_scan::$26 ] +Uplifting [keyboard_event_scan] best 515623 combination reg byte a [ keyboard_event_scan::$26 ] Attempting to uplift remaining variables inzp ZP_BYTE:19 [ play_move_rotate::return#2 ] -Uplifting [play_move_rotate] best 515301 combination reg byte a [ play_move_rotate::return#2 ] +Uplifting [play_move_rotate] best 515587 combination reg byte a [ play_move_rotate::return#2 ] Attempting to uplift remaining variables inzp ZP_BYTE:32 [ play_move_leftright::return#2 ] -Uplifting [play_move_leftright] best 515265 combination reg byte a [ play_move_leftright::return#2 ] +Uplifting [play_move_leftright] best 515551 combination reg byte a [ play_move_leftright::return#2 ] Attempting to uplift remaining variables inzp ZP_BYTE:41 [ play_move_down::return#3 ] -Uplifting [play_move_down] best 515249 combination reg byte x [ play_move_down::return#3 ] +Uplifting [play_move_down] best 515535 combination reg byte x [ play_move_down::return#3 ] Attempting to uplift remaining variables inzp ZP_BYTE:3 [ current_movedown_counter#15 current_movedown_counter#12 current_movedown_counter#10 ] -Uplifting [] best 515249 combination zp ZP_BYTE:3 [ current_movedown_counter#15 current_movedown_counter#12 current_movedown_counter#10 ] +Uplifting [] best 515535 combination zp ZP_BYTE:3 [ current_movedown_counter#15 current_movedown_counter#12 current_movedown_counter#10 ] Attempting to uplift remaining variables inzp ZP_BYTE:118 [ keyboard_event_pressed::row_bits#0 ] -Uplifting [keyboard_event_pressed] best 515249 combination zp ZP_BYTE:118 [ keyboard_event_pressed::row_bits#0 ] +Uplifting [keyboard_event_pressed] best 515535 combination zp ZP_BYTE:118 [ keyboard_event_pressed::row_bits#0 ] Attempting to uplift remaining variables inzp ZP_BYTE:120 [ keyboard_event_pressed::return#11 ] -Uplifting [keyboard_event_pressed] best 515231 combination reg byte a [ keyboard_event_pressed::return#11 ] +Uplifting [keyboard_event_pressed] best 515517 combination reg byte a [ keyboard_event_pressed::return#11 ] Attempting to uplift remaining variables inzp ZP_BYTE:31 [ collision::return#14 ] -Uplifting [collision] best 515204 combination reg byte a [ collision::return#14 ] +Uplifting [collision] best 515490 combination reg byte a [ collision::return#14 ] Attempting to uplift remaining variables inzp ZP_BYTE:53 [ keyboard_event_pressed::keycode#5 ] -Uplifting [keyboard_event_pressed] best 515204 combination zp ZP_BYTE:53 [ keyboard_event_pressed::keycode#5 ] +Uplifting [keyboard_event_pressed] best 515490 combination zp ZP_BYTE:53 [ keyboard_event_pressed::keycode#5 ] Attempting to uplift remaining variables inzp ZP_BYTE:109 [ spawn_current::$3 ] -Uplifting [spawn_current] best 515204 combination zp ZP_BYTE:109 [ spawn_current::$3 ] +Uplifting [spawn_current] best 515490 combination zp ZP_BYTE:109 [ spawn_current::$3 ] Coalescing zero page register with common assignment [ zp ZP_BYTE:2 [ current_ypos#12 current_ypos#16 current_ypos#31 current_ypos#4 ] ] with [ zp ZP_BYTE:48 [ lock_current::ypos2#2 lock_current::ypos2#0 lock_current::ypos2#1 ] ] - score: 1 Coalescing zero page register with common assignment [ zp ZP_WORD:21 [ current_piece#15 current_piece#72 current_piece#73 current_piece#74 current_piece#75 ] ] with [ zp ZP_WORD:95 [ collision::piece_gfx#0 ] ] - score: 1 Coalescing zero page register with common assignment [ zp ZP_BYTE:78 [ main::render#1 ] ] with [ zp ZP_BYTE:82 [ main::render#2 ] ] - score: 1 @@ -9131,6 +9158,7 @@ ASSEMBLER BEFORE OPTIMIZATION .const COLLISION_LEFT = 4 .const COLLISION_RIGHT = 8 .label SCREEN = $400 + .label CHARSET = $2000 .label keyboard_events_size = $13 .label current_ypos = 2 .label current_xpos = $11 @@ -9154,517 +9182,521 @@ ASSEMBLER BEFORE OPTIMIZATION .label current_piece_75 = 5 //SEG2 @begin bbegin: -//SEG3 [1] phi from @begin to @25 [phi:@begin->@25] -b25_from_bbegin: + jmp b22 +//SEG3 @22 +b22: +//SEG4 kickasm(location (const byte*) CHARSET#0) {{ .var charset = LoadPicture("charset.png", List().add($000000, $ffffff, $523fa0, $77c1c9)) .for (var c=0; c<16; c++) .for (var y=0;y<8; y++) .byte charset.getMulticolorByte(c,y) }} +//SEG5 [2] phi from @22 to @25 [phi:@22->@25] +b25_from_b22: jmp b25 -//SEG4 @25 +//SEG6 @25 b25: -//SEG5 [2] call main -//SEG6 [4] phi from @25 to main [phi:@25->main] +//SEG7 [3] call main +//SEG8 [5] phi from @25 to main [phi:@25->main] main_from_b25: jsr main -//SEG7 [3] phi from @25 to @end [phi:@25->@end] +//SEG9 [4] phi from @25 to @end [phi:@25->@end] bend_from_b25: jmp bend -//SEG8 @end +//SEG10 @end bend: -//SEG9 main +//SEG11 main main: { .label key_event = $14 .label render = $15 - //SEG10 [5] call sid_rnd_init + //SEG12 [6] call sid_rnd_init jsr sid_rnd_init jmp b21 - //SEG11 main::@21 + //SEG13 main::@21 b21: - //SEG12 asm { sei } + //SEG14 asm { sei } sei - //SEG13 [7] call render_init - //SEG14 [314] phi from main::@21 to render_init [phi:main::@21->render_init] + //SEG15 [8] call render_init + //SEG16 [315] phi from main::@21 to render_init [phi:main::@21->render_init] render_init_from_b21: jsr render_init - //SEG15 [8] phi from main::@21 to main::@22 [phi:main::@21->main::@22] + //SEG17 [9] phi from main::@21 to main::@22 [phi:main::@21->main::@22] b22_from_b21: jmp b22 - //SEG16 main::@22 + //SEG18 main::@22 b22: - //SEG17 [9] call tables_init - //SEG18 [303] phi from main::@22 to tables_init [phi:main::@22->tables_init] + //SEG19 [10] call tables_init + //SEG20 [304] phi from main::@22 to tables_init [phi:main::@22->tables_init] tables_init_from_b22: jsr tables_init - //SEG19 [10] phi from main::@22 to main::@23 [phi:main::@22->main::@23] + //SEG21 [11] phi from main::@22 to main::@23 [phi:main::@22->main::@23] b23_from_b22: jmp b23 - //SEG20 main::@23 + //SEG22 main::@23 b23: - //SEG21 [11] call spawn_current - //SEG22 [183] phi from main::@23 to spawn_current [phi:main::@23->spawn_current] + //SEG23 [12] call spawn_current + //SEG24 [184] phi from main::@23 to spawn_current [phi:main::@23->spawn_current] spawn_current_from_b23: jsr spawn_current - //SEG23 [12] phi from main::@23 to main::@24 [phi:main::@23->main::@24] + //SEG25 [13] phi from main::@23 to main::@24 [phi:main::@23->main::@24] b24_from_b23: jmp b24 - //SEG24 main::@24 + //SEG26 main::@24 b24: - //SEG25 [13] call render_playfield - //SEG26 [71] phi from main::@24 to render_playfield [phi:main::@24->render_playfield] + //SEG27 [14] call render_playfield + //SEG28 [72] phi from main::@24 to render_playfield [phi:main::@24->render_playfield] render_playfield_from_b24: jsr render_playfield jmp b25 - //SEG27 main::@25 + //SEG29 main::@25 b25: - //SEG28 [14] (byte*~) current_piece_gfx#87 ← (byte*) current_piece_gfx#10 -- pbuz1=pbuz2 + //SEG30 [15] (byte*~) current_piece_gfx#87 ← (byte*) current_piece_gfx#10 -- pbuz1=pbuz2 lda current_piece_gfx sta current_piece_gfx_87 lda current_piece_gfx+1 sta current_piece_gfx_87+1 - //SEG29 [15] (byte~) current_piece_color#75 ← (byte) current_piece_color#15 -- vbuz1=vbuz2 + //SEG31 [16] (byte~) current_piece_color#75 ← (byte) current_piece_color#15 -- vbuz1=vbuz2 lda current_piece_color sta current_piece_color_75 - //SEG30 [16] call render_current - //SEG31 [51] phi from main::@25 to render_current [phi:main::@25->render_current] + //SEG32 [17] call render_current + //SEG33 [52] phi from main::@25 to render_current [phi:main::@25->render_current] render_current_from_b25: - //SEG32 [51] phi (byte) current_piece_color#67 = (byte~) current_piece_color#75 [phi:main::@25->render_current#0] -- register_copy - //SEG33 [51] phi (byte*) current_piece_gfx#64 = (byte*~) current_piece_gfx#87 [phi:main::@25->render_current#1] -- register_copy - //SEG34 [51] phi (byte) current_xpos#63 = (byte/signed byte/word/signed word/dword/signed dword) 3 [phi:main::@25->render_current#2] -- vbuz1=vbuc1 + //SEG34 [52] phi (byte) current_piece_color#67 = (byte~) current_piece_color#75 [phi:main::@25->render_current#0] -- register_copy + //SEG35 [52] phi (byte*) current_piece_gfx#64 = (byte*~) current_piece_gfx#87 [phi:main::@25->render_current#1] -- register_copy + //SEG36 [52] phi (byte) current_xpos#63 = (byte/signed byte/word/signed word/dword/signed dword) 3 [phi:main::@25->render_current#2] -- vbuz1=vbuc1 lda #3 sta current_xpos_63 - //SEG35 [51] phi (byte) current_ypos#22 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@25->render_current#3] -- vbuxx=vbuc1 + //SEG37 [52] phi (byte) current_ypos#22 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@25->render_current#3] -- vbuxx=vbuc1 ldx #0 jsr render_current - //SEG36 [17] (byte*~) current_piece#71 ← (byte*)*((const word[]) PIECES#0 + (byte~) spawn_current::$3) -- pbuz1=pptc1_derefidx_vbuz2 + //SEG38 [18] (byte*~) current_piece#71 ← (byte*)*((const word[]) PIECES#0 + (byte~) spawn_current::$3) -- pbuz1=pptc1_derefidx_vbuz2 ldy spawn_current._3 lda PIECES,y sta current_piece lda PIECES+1,y sta current_piece+1 - //SEG37 [18] phi from main::@25 to main::@1 [phi:main::@25->main::@1] + //SEG39 [19] phi from main::@25 to main::@1 [phi:main::@25->main::@1] b1_from_b25: - //SEG38 [18] phi (byte) current_movedown_counter#15 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@25->main::@1#0] -- vbuz1=vbuc1 + //SEG40 [19] phi (byte) current_movedown_counter#15 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@25->main::@1#0] -- vbuz1=vbuc1 lda #0 sta current_movedown_counter - //SEG39 [18] phi (byte) keyboard_events_size#19 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@25->main::@1#1] -- vbuz1=vbuc1 + //SEG41 [19] phi (byte) keyboard_events_size#19 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@25->main::@1#1] -- vbuz1=vbuc1 lda #0 sta keyboard_events_size - //SEG40 [18] phi (byte) current_piece_color#11 = (byte) current_piece_color#15 [phi:main::@25->main::@1#2] -- register_copy - //SEG41 [18] phi (byte) current_ypos#12 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@25->main::@1#3] -- vbuz1=vbuc1 + //SEG42 [19] phi (byte) current_piece_color#11 = (byte) current_piece_color#15 [phi:main::@25->main::@1#2] -- register_copy + //SEG43 [19] phi (byte) current_ypos#12 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@25->main::@1#3] -- vbuz1=vbuc1 lda #0 sta current_ypos - //SEG42 [18] phi (byte) current_xpos#16 = (byte/signed byte/word/signed word/dword/signed dword) 3 [phi:main::@25->main::@1#4] -- vbuz1=vbuc1 + //SEG44 [19] phi (byte) current_xpos#16 = (byte/signed byte/word/signed word/dword/signed dword) 3 [phi:main::@25->main::@1#4] -- vbuz1=vbuc1 lda #3 sta current_xpos - //SEG43 [18] phi (byte*) current_piece_gfx#15 = (byte*) current_piece_gfx#10 [phi:main::@25->main::@1#5] -- register_copy - //SEG44 [18] phi (byte) current_orientation#15 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@25->main::@1#6] -- vbuz1=vbuc1 + //SEG45 [19] phi (byte*) current_piece_gfx#15 = (byte*) current_piece_gfx#10 [phi:main::@25->main::@1#5] -- register_copy + //SEG46 [19] phi (byte) current_orientation#15 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@25->main::@1#6] -- vbuz1=vbuc1 lda #0 sta current_orientation - //SEG45 [18] phi (byte*) current_piece#11 = (byte*~) current_piece#71 [phi:main::@25->main::@1#7] -- register_copy + //SEG47 [19] phi (byte*) current_piece#11 = (byte*~) current_piece#71 [phi:main::@25->main::@1#7] -- register_copy jmp b1 - //SEG46 main::@1 + //SEG48 main::@1 b1: jmp b4 - //SEG47 main::@4 + //SEG49 main::@4 b4: - //SEG48 [19] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@4 -- _deref_pbuc1_neq_vbuc2_then_la1 + //SEG50 [20] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@4 -- _deref_pbuc1_neq_vbuc2_then_la1 lda RASTER cmp #$ff bne b4 jmp b7 - //SEG49 main::@7 + //SEG51 main::@7 b7: - //SEG50 [20] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 254) goto main::@7 -- _deref_pbuc1_neq_vbuc2_then_la1 + //SEG52 [21] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 254) goto main::@7 -- _deref_pbuc1_neq_vbuc2_then_la1 lda RASTER cmp #$fe bne b7 jmp b9 - //SEG51 main::@9 + //SEG53 main::@9 b9: - //SEG52 [21] *((const byte*) BORDERCOL#0) ← ++ *((const byte*) BORDERCOL#0) -- _deref_pbuc1=_inc__deref_pbuc1 + //SEG54 [22] *((const byte*) BORDERCOL#0) ← ++ *((const byte*) BORDERCOL#0) -- _deref_pbuc1=_inc__deref_pbuc1 inc BORDERCOL - //SEG53 [22] call keyboard_event_scan - //SEG54 [247] phi from main::@9 to keyboard_event_scan [phi:main::@9->keyboard_event_scan] + //SEG55 [23] call keyboard_event_scan + //SEG56 [248] phi from main::@9 to keyboard_event_scan [phi:main::@9->keyboard_event_scan] keyboard_event_scan_from_b9: jsr keyboard_event_scan - //SEG55 [23] phi from main::@9 to main::@27 [phi:main::@9->main::@27] + //SEG57 [24] phi from main::@9 to main::@27 [phi:main::@9->main::@27] b27_from_b9: jmp b27 - //SEG56 main::@27 + //SEG58 main::@27 b27: - //SEG57 [24] call keyboard_event_get + //SEG59 [25] call keyboard_event_get jsr keyboard_event_get - //SEG58 [25] (byte) keyboard_event_get::return#3 ← (byte) keyboard_event_get::return#2 + //SEG60 [26] (byte) keyboard_event_get::return#3 ← (byte) keyboard_event_get::return#2 // (byte) keyboard_event_get::return#3 = (byte) keyboard_event_get::return#2 // register copy reg byte a jmp b28 - //SEG59 main::@28 + //SEG61 main::@28 b28: - //SEG60 [26] (byte) main::key_event#0 ← (byte) keyboard_event_get::return#3 -- vbuz1=vbuaa + //SEG62 [27] (byte) main::key_event#0 ← (byte) keyboard_event_get::return#3 -- vbuz1=vbuaa sta key_event - //SEG61 [27] (byte) play_move_down::key_event#0 ← (byte) main::key_event#0 -- vbuaa=vbuz1 + //SEG63 [28] (byte) play_move_down::key_event#0 ← (byte) main::key_event#0 -- vbuaa=vbuz1 lda key_event - //SEG62 [28] call play_move_down + //SEG64 [29] call play_move_down jsr play_move_down - //SEG63 [29] (byte) play_move_down::return#0 ← (byte) play_move_down::return#3 -- vbuaa=vbuxx + //SEG65 [30] (byte) play_move_down::return#0 ← (byte) play_move_down::return#3 -- vbuaa=vbuxx txa jmp b29 - //SEG64 main::@29 + //SEG66 main::@29 b29: - //SEG65 [30] (byte~) main::$10 ← (byte) play_move_down::return#0 + //SEG67 [31] (byte~) main::$10 ← (byte) play_move_down::return#0 // (byte~) main::$10 = (byte) play_move_down::return#0 // register copy reg byte a - //SEG66 [31] (byte) main::render#1 ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte~) main::$10 -- vbuz1=vbuc1_plus_vbuaa + //SEG68 [32] (byte) main::render#1 ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte~) main::$10 -- vbuz1=vbuc1_plus_vbuaa clc adc #0 sta render - //SEG67 [32] (byte) play_move_leftright::key_event#0 ← (byte) main::key_event#0 -- vbuaa=vbuz1 + //SEG69 [33] (byte) play_move_leftright::key_event#0 ← (byte) main::key_event#0 -- vbuaa=vbuz1 lda key_event - //SEG68 [33] call play_move_leftright + //SEG70 [34] call play_move_leftright jsr play_move_leftright - //SEG69 [34] (byte) play_move_leftright::return#0 ← (byte) play_move_leftright::return#2 + //SEG71 [35] (byte) play_move_leftright::return#0 ← (byte) play_move_leftright::return#2 // (byte) play_move_leftright::return#0 = (byte) play_move_leftright::return#2 // register copy reg byte a jmp b30 - //SEG70 main::@30 + //SEG72 main::@30 b30: - //SEG71 [35] (byte~) main::$11 ← (byte) play_move_leftright::return#0 + //SEG73 [36] (byte~) main::$11 ← (byte) play_move_leftright::return#0 // (byte~) main::$11 = (byte) play_move_leftright::return#0 // register copy reg byte a - //SEG72 [36] (byte) main::render#2 ← (byte) main::render#1 + (byte~) main::$11 -- vbuz1=vbuz1_plus_vbuaa + //SEG74 [37] (byte) main::render#2 ← (byte) main::render#1 + (byte~) main::$11 -- vbuz1=vbuz1_plus_vbuaa clc adc render sta render - //SEG73 [37] (byte) play_move_rotate::key_event#0 ← (byte) main::key_event#0 -- vbuaa=vbuz1 + //SEG75 [38] (byte) play_move_rotate::key_event#0 ← (byte) main::key_event#0 -- vbuaa=vbuz1 lda key_event - //SEG74 [38] call play_move_rotate + //SEG76 [39] call play_move_rotate jsr play_move_rotate - //SEG75 [39] (byte) play_move_rotate::return#0 ← (byte) play_move_rotate::return#2 + //SEG77 [40] (byte) play_move_rotate::return#0 ← (byte) play_move_rotate::return#2 // (byte) play_move_rotate::return#0 = (byte) play_move_rotate::return#2 // register copy reg byte a jmp b31 - //SEG76 main::@31 + //SEG78 main::@31 b31: - //SEG77 [40] (byte~) main::$12 ← (byte) play_move_rotate::return#0 + //SEG79 [41] (byte~) main::$12 ← (byte) play_move_rotate::return#0 // (byte~) main::$12 = (byte) play_move_rotate::return#0 // register copy reg byte a - //SEG78 [41] (byte) main::render#3 ← (byte) main::render#2 + (byte~) main::$12 -- vbuaa=vbuz1_plus_vbuaa + //SEG80 [42] (byte) main::render#3 ← (byte) main::render#2 + (byte~) main::$12 -- vbuaa=vbuz1_plus_vbuaa clc adc render - //SEG79 [42] if((byte) main::render#3==(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@10 -- vbuaa_eq_0_then_la1 + //SEG81 [43] if((byte) main::render#3==(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@10 -- vbuaa_eq_0_then_la1 cmp #0 beq b10 - //SEG80 [43] phi from main::@31 to main::@19 [phi:main::@31->main::@19] + //SEG82 [44] phi from main::@31 to main::@19 [phi:main::@31->main::@19] b19_from_b31: jmp b19 - //SEG81 main::@19 + //SEG83 main::@19 b19: - //SEG82 [44] call render_playfield - //SEG83 [71] phi from main::@19 to render_playfield [phi:main::@19->render_playfield] + //SEG84 [45] call render_playfield + //SEG85 [72] phi from main::@19 to render_playfield [phi:main::@19->render_playfield] render_playfield_from_b19: jsr render_playfield jmp b32 - //SEG84 main::@32 + //SEG86 main::@32 b32: - //SEG85 [45] (byte~) current_ypos#71 ← (byte) current_ypos#16 -- vbuxx=vbuz1 + //SEG87 [46] (byte~) current_ypos#71 ← (byte) current_ypos#16 -- vbuxx=vbuz1 ldx current_ypos - //SEG86 [46] (byte~) current_xpos#96 ← (byte) current_xpos#23 -- vbuz1=vbuz2 + //SEG88 [47] (byte~) current_xpos#96 ← (byte) current_xpos#23 -- vbuz1=vbuz2 lda current_xpos sta current_xpos_96 - //SEG87 [47] (byte*~) current_piece_gfx#88 ← (byte*) current_piece_gfx#18 -- pbuz1=pbuz2 + //SEG89 [48] (byte*~) current_piece_gfx#88 ← (byte*) current_piece_gfx#18 -- pbuz1=pbuz2 lda current_piece_gfx sta current_piece_gfx_88 lda current_piece_gfx+1 sta current_piece_gfx_88+1 - //SEG88 [48] (byte~) current_piece_color#76 ← (byte) current_piece_color#13 -- vbuz1=vbuz2 + //SEG90 [49] (byte~) current_piece_color#76 ← (byte) current_piece_color#13 -- vbuz1=vbuz2 lda current_piece_color sta current_piece_color_76 - //SEG89 [49] call render_current - //SEG90 [51] phi from main::@32 to render_current [phi:main::@32->render_current] + //SEG91 [50] call render_current + //SEG92 [52] phi from main::@32 to render_current [phi:main::@32->render_current] render_current_from_b32: - //SEG91 [51] phi (byte) current_piece_color#67 = (byte~) current_piece_color#76 [phi:main::@32->render_current#0] -- register_copy - //SEG92 [51] phi (byte*) current_piece_gfx#64 = (byte*~) current_piece_gfx#88 [phi:main::@32->render_current#1] -- register_copy - //SEG93 [51] phi (byte) current_xpos#63 = (byte~) current_xpos#96 [phi:main::@32->render_current#2] -- register_copy - //SEG94 [51] phi (byte) current_ypos#22 = (byte~) current_ypos#71 [phi:main::@32->render_current#3] -- register_copy + //SEG93 [52] phi (byte) current_piece_color#67 = (byte~) current_piece_color#76 [phi:main::@32->render_current#0] -- register_copy + //SEG94 [52] phi (byte*) current_piece_gfx#64 = (byte*~) current_piece_gfx#88 [phi:main::@32->render_current#1] -- register_copy + //SEG95 [52] phi (byte) current_xpos#63 = (byte~) current_xpos#96 [phi:main::@32->render_current#2] -- register_copy + //SEG96 [52] phi (byte) current_ypos#22 = (byte~) current_ypos#71 [phi:main::@32->render_current#3] -- register_copy jsr render_current jmp b10 - //SEG95 main::@10 + //SEG97 main::@10 b10: - //SEG96 [50] *((const byte*) BORDERCOL#0) ← -- *((const byte*) BORDERCOL#0) -- _deref_pbuc1=_dec__deref_pbuc1 + //SEG98 [51] *((const byte*) BORDERCOL#0) ← -- *((const byte*) BORDERCOL#0) -- _deref_pbuc1=_dec__deref_pbuc1 dec BORDERCOL - //SEG97 [18] phi from main::@10 to main::@1 [phi:main::@10->main::@1] + //SEG99 [19] phi from main::@10 to main::@1 [phi:main::@10->main::@1] b1_from_b10: - //SEG98 [18] phi (byte) current_movedown_counter#15 = (byte) current_movedown_counter#12 [phi:main::@10->main::@1#0] -- register_copy - //SEG99 [18] phi (byte) keyboard_events_size#19 = (byte) keyboard_events_size#16 [phi:main::@10->main::@1#1] -- register_copy - //SEG100 [18] phi (byte) current_piece_color#11 = (byte) current_piece_color#13 [phi:main::@10->main::@1#2] -- register_copy - //SEG101 [18] phi (byte) current_ypos#12 = (byte) current_ypos#16 [phi:main::@10->main::@1#3] -- register_copy - //SEG102 [18] phi (byte) current_xpos#16 = (byte) current_xpos#23 [phi:main::@10->main::@1#4] -- register_copy - //SEG103 [18] phi (byte*) current_piece_gfx#15 = (byte*) current_piece_gfx#18 [phi:main::@10->main::@1#5] -- register_copy - //SEG104 [18] phi (byte) current_orientation#15 = (byte) current_orientation#23 [phi:main::@10->main::@1#6] -- register_copy - //SEG105 [18] phi (byte*) current_piece#11 = (byte*) current_piece#13 [phi:main::@10->main::@1#7] -- register_copy + //SEG100 [19] phi (byte) current_movedown_counter#15 = (byte) current_movedown_counter#12 [phi:main::@10->main::@1#0] -- register_copy + //SEG101 [19] phi (byte) keyboard_events_size#19 = (byte) keyboard_events_size#16 [phi:main::@10->main::@1#1] -- register_copy + //SEG102 [19] phi (byte) current_piece_color#11 = (byte) current_piece_color#13 [phi:main::@10->main::@1#2] -- register_copy + //SEG103 [19] phi (byte) current_ypos#12 = (byte) current_ypos#16 [phi:main::@10->main::@1#3] -- register_copy + //SEG104 [19] phi (byte) current_xpos#16 = (byte) current_xpos#23 [phi:main::@10->main::@1#4] -- register_copy + //SEG105 [19] phi (byte*) current_piece_gfx#15 = (byte*) current_piece_gfx#18 [phi:main::@10->main::@1#5] -- register_copy + //SEG106 [19] phi (byte) current_orientation#15 = (byte) current_orientation#23 [phi:main::@10->main::@1#6] -- register_copy + //SEG107 [19] phi (byte*) current_piece#11 = (byte*) current_piece#13 [phi:main::@10->main::@1#7] -- register_copy jmp b1 } -//SEG106 render_current +//SEG108 render_current render_current: { .label ypos2 = 8 .label l = 9 .label screen_line = $16 .label xpos = $b .label i = $a - //SEG107 [52] (byte) render_current::ypos2#0 ← (byte) current_ypos#22 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuxx_rol_1 + //SEG109 [53] (byte) render_current::ypos2#0 ← (byte) current_ypos#22 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuxx_rol_1 txa asl sta ypos2 - //SEG108 [53] phi from render_current to render_current::@1 [phi:render_current->render_current::@1] + //SEG110 [54] phi from render_current to render_current::@1 [phi:render_current->render_current::@1] b1_from_render_current: - //SEG109 [53] phi (byte) render_current::i#4 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_current->render_current::@1#0] -- vbuz1=vbuc1 + //SEG111 [54] phi (byte) render_current::i#4 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_current->render_current::@1#0] -- vbuz1=vbuc1 lda #0 sta i - //SEG110 [53] phi (byte) render_current::l#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_current->render_current::@1#1] -- vbuz1=vbuc1 + //SEG112 [54] phi (byte) render_current::l#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_current->render_current::@1#1] -- vbuz1=vbuc1 lda #0 sta l - //SEG111 [53] phi (byte) render_current::ypos2#2 = (byte) render_current::ypos2#0 [phi:render_current->render_current::@1#2] -- register_copy + //SEG113 [54] phi (byte) render_current::ypos2#2 = (byte) render_current::ypos2#0 [phi:render_current->render_current::@1#2] -- register_copy jmp b1 - //SEG112 [53] phi from render_current::@2 to render_current::@1 [phi:render_current::@2->render_current::@1] + //SEG114 [54] phi from render_current::@2 to render_current::@1 [phi:render_current::@2->render_current::@1] b1_from_b2: - //SEG113 [53] phi (byte) render_current::i#4 = (byte) render_current::i#8 [phi:render_current::@2->render_current::@1#0] -- register_copy - //SEG114 [53] phi (byte) render_current::l#3 = (byte) render_current::l#1 [phi:render_current::@2->render_current::@1#1] -- register_copy - //SEG115 [53] phi (byte) render_current::ypos2#2 = (byte) render_current::ypos2#1 [phi:render_current::@2->render_current::@1#2] -- register_copy + //SEG115 [54] phi (byte) render_current::i#4 = (byte) render_current::i#8 [phi:render_current::@2->render_current::@1#0] -- register_copy + //SEG116 [54] phi (byte) render_current::l#3 = (byte) render_current::l#1 [phi:render_current::@2->render_current::@1#1] -- register_copy + //SEG117 [54] phi (byte) render_current::ypos2#2 = (byte) render_current::ypos2#1 [phi:render_current::@2->render_current::@1#2] -- register_copy jmp b1 - //SEG116 render_current::@1 + //SEG118 render_current::@1 b1: - //SEG117 [54] if((byte) render_current::ypos2#2>=(byte/signed byte/word/signed word/dword/signed dword) 2*(const byte) PLAYFIELD_LINES#0) goto render_current::@2 -- vbuz1_ge_vbuc1_then_la1 + //SEG119 [55] if((byte) render_current::ypos2#2>=(byte/signed byte/word/signed word/dword/signed dword) 2*(const byte) PLAYFIELD_LINES#0) goto render_current::@2 -- vbuz1_ge_vbuc1_then_la1 lda ypos2 cmp #2*PLAYFIELD_LINES bcs b2_from_b1 jmp b6 - //SEG118 render_current::@6 + //SEG120 render_current::@6 b6: - //SEG119 [55] (byte*) render_current::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0+3]) screen_lines#0 + (byte) render_current::ypos2#2) -- pbuz1=pptc1_derefidx_vbuz2 + //SEG121 [56] (byte*) render_current::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0+3]) screen_lines#0 + (byte) render_current::ypos2#2) -- pbuz1=pptc1_derefidx_vbuz2 ldy ypos2 lda screen_lines,y sta screen_line lda screen_lines+1,y sta screen_line+1 - //SEG120 [56] (byte) render_current::xpos#0 ← (byte) current_xpos#63 -- vbuz1=vbuz2 + //SEG122 [57] (byte) render_current::xpos#0 ← (byte) current_xpos#63 -- vbuz1=vbuz2 lda current_xpos_63 sta xpos - //SEG121 [57] phi from render_current::@6 to render_current::@3 [phi:render_current::@6->render_current::@3] + //SEG123 [58] phi from render_current::@6 to render_current::@3 [phi:render_current::@6->render_current::@3] b3_from_b6: - //SEG122 [57] phi (byte) render_current::c#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_current::@6->render_current::@3#0] -- vbuxx=vbuc1 + //SEG124 [58] phi (byte) render_current::c#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_current::@6->render_current::@3#0] -- vbuxx=vbuc1 ldx #0 - //SEG123 [57] phi (byte) render_current::xpos#2 = (byte) render_current::xpos#0 [phi:render_current::@6->render_current::@3#1] -- register_copy - //SEG124 [57] phi (byte) render_current::i#2 = (byte) render_current::i#4 [phi:render_current::@6->render_current::@3#2] -- register_copy + //SEG125 [58] phi (byte) render_current::xpos#2 = (byte) render_current::xpos#0 [phi:render_current::@6->render_current::@3#1] -- register_copy + //SEG126 [58] phi (byte) render_current::i#2 = (byte) render_current::i#4 [phi:render_current::@6->render_current::@3#2] -- register_copy jmp b3 - //SEG125 [57] phi from render_current::@4 to render_current::@3 [phi:render_current::@4->render_current::@3] + //SEG127 [58] phi from render_current::@4 to render_current::@3 [phi:render_current::@4->render_current::@3] b3_from_b4: - //SEG126 [57] phi (byte) render_current::c#2 = (byte) render_current::c#1 [phi:render_current::@4->render_current::@3#0] -- register_copy - //SEG127 [57] phi (byte) render_current::xpos#2 = (byte) render_current::xpos#1 [phi:render_current::@4->render_current::@3#1] -- register_copy - //SEG128 [57] phi (byte) render_current::i#2 = (byte) render_current::i#1 [phi:render_current::@4->render_current::@3#2] -- register_copy + //SEG128 [58] phi (byte) render_current::c#2 = (byte) render_current::c#1 [phi:render_current::@4->render_current::@3#0] -- register_copy + //SEG129 [58] phi (byte) render_current::xpos#2 = (byte) render_current::xpos#1 [phi:render_current::@4->render_current::@3#1] -- register_copy + //SEG130 [58] phi (byte) render_current::i#2 = (byte) render_current::i#1 [phi:render_current::@4->render_current::@3#2] -- register_copy jmp b3 - //SEG129 render_current::@3 + //SEG131 render_current::@3 b3: - //SEG130 [58] (byte) render_current::current_cell#0 ← *((byte*) current_piece_gfx#64 + (byte) render_current::i#2) -- vbuaa=pbuz1_derefidx_vbuz2 + //SEG132 [59] (byte) render_current::current_cell#0 ← *((byte*) current_piece_gfx#64 + (byte) render_current::i#2) -- vbuaa=pbuz1_derefidx_vbuz2 ldy i lda (current_piece_gfx_64),y - //SEG131 [59] (byte) render_current::i#1 ← ++ (byte) render_current::i#2 -- vbuz1=_inc_vbuz1 + //SEG133 [60] (byte) render_current::i#1 ← ++ (byte) render_current::i#2 -- vbuz1=_inc_vbuz1 inc i - //SEG132 [60] if((byte) render_current::current_cell#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto render_current::@4 -- vbuaa_eq_0_then_la1 + //SEG134 [61] if((byte) render_current::current_cell#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto render_current::@4 -- vbuaa_eq_0_then_la1 cmp #0 beq b4 jmp b7 - //SEG133 render_current::@7 + //SEG135 render_current::@7 b7: - //SEG134 [61] if((byte) render_current::xpos#2>=(const byte) PLAYFIELD_COLS#0) goto render_current::@4 -- vbuz1_ge_vbuc1_then_la1 + //SEG136 [62] if((byte) render_current::xpos#2>=(const byte) PLAYFIELD_COLS#0) goto render_current::@4 -- vbuz1_ge_vbuc1_then_la1 lda xpos cmp #PLAYFIELD_COLS bcs b4 jmp b8 - //SEG135 render_current::@8 + //SEG137 render_current::@8 b8: - //SEG136 [62] *((byte*) render_current::screen_line#0 + (byte) render_current::xpos#2) ← (byte) current_piece_color#67 -- pbuz1_derefidx_vbuz2=vbuz3 + //SEG138 [63] *((byte*) render_current::screen_line#0 + (byte) render_current::xpos#2) ← (byte) current_piece_color#67 -- pbuz1_derefidx_vbuz2=vbuz3 lda current_piece_color_67 ldy xpos sta (screen_line),y jmp b4 - //SEG137 render_current::@4 + //SEG139 render_current::@4 b4: - //SEG138 [63] (byte) render_current::xpos#1 ← ++ (byte) render_current::xpos#2 -- vbuz1=_inc_vbuz1 + //SEG140 [64] (byte) render_current::xpos#1 ← ++ (byte) render_current::xpos#2 -- vbuz1=_inc_vbuz1 inc xpos - //SEG139 [64] (byte) render_current::c#1 ← ++ (byte) render_current::c#2 -- vbuxx=_inc_vbuxx + //SEG141 [65] (byte) render_current::c#1 ← ++ (byte) render_current::c#2 -- vbuxx=_inc_vbuxx inx - //SEG140 [65] if((byte) render_current::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_current::@3 -- vbuxx_neq_vbuc1_then_la1 + //SEG142 [66] if((byte) render_current::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_current::@3 -- vbuxx_neq_vbuc1_then_la1 cpx #4 bne b3_from_b4 - //SEG141 [66] phi from render_current::@1 render_current::@4 to render_current::@2 [phi:render_current::@1/render_current::@4->render_current::@2] + //SEG143 [67] phi from render_current::@1 render_current::@4 to render_current::@2 [phi:render_current::@1/render_current::@4->render_current::@2] b2_from_b1: b2_from_b4: - //SEG142 [66] phi (byte) render_current::i#8 = (byte) render_current::i#4 [phi:render_current::@1/render_current::@4->render_current::@2#0] -- register_copy + //SEG144 [67] phi (byte) render_current::i#8 = (byte) render_current::i#4 [phi:render_current::@1/render_current::@4->render_current::@2#0] -- register_copy jmp b2 - //SEG143 render_current::@2 + //SEG145 render_current::@2 b2: - //SEG144 [67] (byte) render_current::ypos2#1 ← (byte) render_current::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 -- vbuz1=vbuz1_plus_2 + //SEG146 [68] (byte) render_current::ypos2#1 ← (byte) render_current::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 -- vbuz1=vbuz1_plus_2 lda ypos2 clc adc #2 sta ypos2 - //SEG145 [68] (byte) render_current::l#1 ← ++ (byte) render_current::l#3 -- vbuz1=_inc_vbuz1 + //SEG147 [69] (byte) render_current::l#1 ← ++ (byte) render_current::l#3 -- vbuz1=_inc_vbuz1 inc l - //SEG146 [69] if((byte) render_current::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_current::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG148 [70] if((byte) render_current::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_current::@1 -- vbuz1_neq_vbuc1_then_la1 lda l cmp #4 bne b1_from_b2 jmp breturn - //SEG147 render_current::@return + //SEG149 render_current::@return breturn: - //SEG148 [70] return + //SEG150 [71] return rts } -//SEG149 render_playfield +//SEG151 render_playfield render_playfield: { .label line = 5 .label i = 7 .label l = 4 - //SEG150 [72] phi from render_playfield to render_playfield::@1 [phi:render_playfield->render_playfield::@1] + //SEG152 [73] phi from render_playfield to render_playfield::@1 [phi:render_playfield->render_playfield::@1] b1_from_render_playfield: - //SEG151 [72] phi (byte) render_playfield::i#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_playfield->render_playfield::@1#0] -- vbuz1=vbuc1 + //SEG153 [73] phi (byte) render_playfield::i#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_playfield->render_playfield::@1#0] -- vbuz1=vbuc1 lda #0 sta i - //SEG152 [72] phi (byte) render_playfield::l#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_playfield->render_playfield::@1#1] -- vbuz1=vbuc1 + //SEG154 [73] phi (byte) render_playfield::l#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_playfield->render_playfield::@1#1] -- vbuz1=vbuc1 lda #0 sta l jmp b1 - //SEG153 [72] phi from render_playfield::@3 to render_playfield::@1 [phi:render_playfield::@3->render_playfield::@1] + //SEG155 [73] phi from render_playfield::@3 to render_playfield::@1 [phi:render_playfield::@3->render_playfield::@1] b1_from_b3: - //SEG154 [72] phi (byte) render_playfield::i#3 = (byte) render_playfield::i#1 [phi:render_playfield::@3->render_playfield::@1#0] -- register_copy - //SEG155 [72] phi (byte) render_playfield::l#2 = (byte) render_playfield::l#1 [phi:render_playfield::@3->render_playfield::@1#1] -- register_copy + //SEG156 [73] phi (byte) render_playfield::i#3 = (byte) render_playfield::i#1 [phi:render_playfield::@3->render_playfield::@1#0] -- register_copy + //SEG157 [73] phi (byte) render_playfield::l#2 = (byte) render_playfield::l#1 [phi:render_playfield::@3->render_playfield::@1#1] -- register_copy jmp b1 - //SEG156 render_playfield::@1 + //SEG158 render_playfield::@1 b1: - //SEG157 [73] (byte~) render_playfield::$1 ← (byte) render_playfield::l#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuaa=vbuz1_rol_1 + //SEG159 [74] (byte~) render_playfield::$1 ← (byte) render_playfield::l#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuaa=vbuz1_rol_1 lda l asl - //SEG158 [74] (byte*) render_playfield::line#0 ← *((const byte*[PLAYFIELD_LINES#0+3]) screen_lines#0 + (byte~) render_playfield::$1) -- pbuz1=pptc1_derefidx_vbuaa + //SEG160 [75] (byte*) render_playfield::line#0 ← *((const byte*[PLAYFIELD_LINES#0+3]) screen_lines#0 + (byte~) render_playfield::$1) -- pbuz1=pptc1_derefidx_vbuaa tay lda screen_lines,y sta line lda screen_lines+1,y sta line+1 - //SEG159 [75] phi from render_playfield::@1 to render_playfield::@2 [phi:render_playfield::@1->render_playfield::@2] + //SEG161 [76] phi from render_playfield::@1 to render_playfield::@2 [phi:render_playfield::@1->render_playfield::@2] b2_from_b1: - //SEG160 [75] phi (byte) render_playfield::c#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_playfield::@1->render_playfield::@2#0] -- vbuxx=vbuc1 + //SEG162 [76] phi (byte) render_playfield::c#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_playfield::@1->render_playfield::@2#0] -- vbuxx=vbuc1 ldx #0 - //SEG161 [75] phi (byte*) render_playfield::line#2 = (byte*) render_playfield::line#0 [phi:render_playfield::@1->render_playfield::@2#1] -- register_copy - //SEG162 [75] phi (byte) render_playfield::i#2 = (byte) render_playfield::i#3 [phi:render_playfield::@1->render_playfield::@2#2] -- register_copy + //SEG163 [76] phi (byte*) render_playfield::line#2 = (byte*) render_playfield::line#0 [phi:render_playfield::@1->render_playfield::@2#1] -- register_copy + //SEG164 [76] phi (byte) render_playfield::i#2 = (byte) render_playfield::i#3 [phi:render_playfield::@1->render_playfield::@2#2] -- register_copy jmp b2 - //SEG163 [75] phi from render_playfield::@2 to render_playfield::@2 [phi:render_playfield::@2->render_playfield::@2] + //SEG165 [76] phi from render_playfield::@2 to render_playfield::@2 [phi:render_playfield::@2->render_playfield::@2] b2_from_b2: - //SEG164 [75] phi (byte) render_playfield::c#2 = (byte) render_playfield::c#1 [phi:render_playfield::@2->render_playfield::@2#0] -- register_copy - //SEG165 [75] phi (byte*) render_playfield::line#2 = (byte*) render_playfield::line#1 [phi:render_playfield::@2->render_playfield::@2#1] -- register_copy - //SEG166 [75] phi (byte) render_playfield::i#2 = (byte) render_playfield::i#1 [phi:render_playfield::@2->render_playfield::@2#2] -- register_copy + //SEG166 [76] phi (byte) render_playfield::c#2 = (byte) render_playfield::c#1 [phi:render_playfield::@2->render_playfield::@2#0] -- register_copy + //SEG167 [76] phi (byte*) render_playfield::line#2 = (byte*) render_playfield::line#1 [phi:render_playfield::@2->render_playfield::@2#1] -- register_copy + //SEG168 [76] phi (byte) render_playfield::i#2 = (byte) render_playfield::i#1 [phi:render_playfield::@2->render_playfield::@2#2] -- register_copy jmp b2 - //SEG167 render_playfield::@2 + //SEG169 render_playfield::@2 b2: - //SEG168 [76] *((byte*) render_playfield::line#2) ← *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) render_playfield::i#2) -- _deref_pbuz1=pbuc1_derefidx_vbuz2 + //SEG170 [77] *((byte*) render_playfield::line#2) ← *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) render_playfield::i#2) -- _deref_pbuz1=pbuc1_derefidx_vbuz2 ldy i lda playfield,y ldy #0 sta (line),y - //SEG169 [77] (byte*) render_playfield::line#1 ← ++ (byte*) render_playfield::line#2 -- pbuz1=_inc_pbuz1 + //SEG171 [78] (byte*) render_playfield::line#1 ← ++ (byte*) render_playfield::line#2 -- pbuz1=_inc_pbuz1 inc line bne !+ inc line+1 !: - //SEG170 [78] (byte) render_playfield::i#1 ← ++ (byte) render_playfield::i#2 -- vbuz1=_inc_vbuz1 + //SEG172 [79] (byte) render_playfield::i#1 ← ++ (byte) render_playfield::i#2 -- vbuz1=_inc_vbuz1 inc i - //SEG171 [79] (byte) render_playfield::c#1 ← ++ (byte) render_playfield::c#2 -- vbuxx=_inc_vbuxx + //SEG173 [80] (byte) render_playfield::c#1 ← ++ (byte) render_playfield::c#2 -- vbuxx=_inc_vbuxx inx - //SEG172 [80] if((byte) render_playfield::c#1!=(const byte) PLAYFIELD_COLS#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_playfield::@2 -- vbuxx_neq_vbuc1_then_la1 + //SEG174 [81] if((byte) render_playfield::c#1!=(const byte) PLAYFIELD_COLS#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_playfield::@2 -- vbuxx_neq_vbuc1_then_la1 cpx #PLAYFIELD_COLS-1+1 bne b2_from_b2 jmp b3 - //SEG173 render_playfield::@3 + //SEG175 render_playfield::@3 b3: - //SEG174 [81] (byte) render_playfield::l#1 ← ++ (byte) render_playfield::l#2 -- vbuz1=_inc_vbuz1 + //SEG176 [82] (byte) render_playfield::l#1 ← ++ (byte) render_playfield::l#2 -- vbuz1=_inc_vbuz1 inc l - //SEG175 [82] if((byte) render_playfield::l#1!=(const byte) PLAYFIELD_LINES#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_playfield::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG177 [83] if((byte) render_playfield::l#1!=(const byte) PLAYFIELD_LINES#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_playfield::@1 -- vbuz1_neq_vbuc1_then_la1 lda l cmp #PLAYFIELD_LINES-1+1 bne b1_from_b3 jmp breturn - //SEG176 render_playfield::@return + //SEG178 render_playfield::@return breturn: - //SEG177 [83] return + //SEG179 [84] return rts } -//SEG178 play_move_rotate +//SEG180 play_move_rotate play_move_rotate: { .label orientation = 4 - //SEG179 [84] if((byte) play_move_rotate::key_event#0==(const byte) KEY_Z#0) goto play_move_rotate::@1 -- vbuaa_eq_vbuc1_then_la1 + //SEG181 [85] if((byte) play_move_rotate::key_event#0==(const byte) KEY_Z#0) goto play_move_rotate::@1 -- vbuaa_eq_vbuc1_then_la1 cmp #KEY_Z beq b1 jmp b6 - //SEG180 play_move_rotate::@6 + //SEG182 play_move_rotate::@6 b6: - //SEG181 [85] if((byte) play_move_rotate::key_event#0==(const byte) KEY_X#0) goto play_move_rotate::@2 -- vbuaa_eq_vbuc1_then_la1 + //SEG183 [86] if((byte) play_move_rotate::key_event#0==(const byte) KEY_X#0) goto play_move_rotate::@2 -- vbuaa_eq_vbuc1_then_la1 cmp #KEY_X beq b2 - //SEG182 [86] phi from play_move_rotate::@14 play_move_rotate::@6 to play_move_rotate::@return [phi:play_move_rotate::@14/play_move_rotate::@6->play_move_rotate::@return] + //SEG184 [87] phi from play_move_rotate::@14 play_move_rotate::@6 to play_move_rotate::@return [phi:play_move_rotate::@14/play_move_rotate::@6->play_move_rotate::@return] breturn_from_b14: breturn_from_b6: - //SEG183 [86] phi (byte*) current_piece_gfx#18 = (byte*) current_piece_gfx#17 [phi:play_move_rotate::@14/play_move_rotate::@6->play_move_rotate::@return#0] -- register_copy - //SEG184 [86] phi (byte) current_orientation#23 = (byte) current_orientation#18 [phi:play_move_rotate::@14/play_move_rotate::@6->play_move_rotate::@return#1] -- register_copy - //SEG185 [86] phi (byte) play_move_rotate::return#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_rotate::@14/play_move_rotate::@6->play_move_rotate::@return#2] -- vbuaa=vbuc1 + //SEG185 [87] phi (byte*) current_piece_gfx#18 = (byte*) current_piece_gfx#17 [phi:play_move_rotate::@14/play_move_rotate::@6->play_move_rotate::@return#0] -- register_copy + //SEG186 [87] phi (byte) current_orientation#23 = (byte) current_orientation#18 [phi:play_move_rotate::@14/play_move_rotate::@6->play_move_rotate::@return#1] -- register_copy + //SEG187 [87] phi (byte) play_move_rotate::return#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_rotate::@14/play_move_rotate::@6->play_move_rotate::@return#2] -- vbuaa=vbuc1 lda #0 jmp breturn - //SEG186 play_move_rotate::@return + //SEG188 play_move_rotate::@return breturn: - //SEG187 [87] return + //SEG189 [88] return rts - //SEG188 play_move_rotate::@2 + //SEG190 play_move_rotate::@2 b2: - //SEG189 [88] (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 ← (byte) current_orientation#18 + (byte/signed byte/word/signed word/dword/signed dword) 16 -- vbuaa=vbuz1_plus_vbuc1 + //SEG191 [89] (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 ← (byte) current_orientation#18 + (byte/signed byte/word/signed word/dword/signed dword) 16 -- vbuaa=vbuz1_plus_vbuc1 lda #$10 clc adc current_orientation - //SEG190 [89] (byte) play_move_rotate::orientation#2 ← (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 & (byte/signed byte/word/signed word/dword/signed dword) 63 -- vbuz1=vbuaa_band_vbuc1 + //SEG192 [90] (byte) play_move_rotate::orientation#2 ← (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 & (byte/signed byte/word/signed word/dword/signed dword) 63 -- vbuz1=vbuaa_band_vbuc1 and #$3f sta orientation - //SEG191 [90] phi from play_move_rotate::@1 play_move_rotate::@2 to play_move_rotate::@4 [phi:play_move_rotate::@1/play_move_rotate::@2->play_move_rotate::@4] + //SEG193 [91] phi from play_move_rotate::@1 play_move_rotate::@2 to play_move_rotate::@4 [phi:play_move_rotate::@1/play_move_rotate::@2->play_move_rotate::@4] b4_from_b1: b4_from_b2: - //SEG192 [90] phi (byte) play_move_rotate::orientation#3 = (byte) play_move_rotate::orientation#1 [phi:play_move_rotate::@1/play_move_rotate::@2->play_move_rotate::@4#0] -- register_copy + //SEG194 [91] phi (byte) play_move_rotate::orientation#3 = (byte) play_move_rotate::orientation#1 [phi:play_move_rotate::@1/play_move_rotate::@2->play_move_rotate::@4#0] -- register_copy jmp b4 - //SEG193 play_move_rotate::@4 + //SEG195 play_move_rotate::@4 b4: - //SEG194 [91] (byte) collision::xpos#3 ← (byte) current_xpos#23 -- vbuz1=vbuz2 + //SEG196 [92] (byte) collision::xpos#3 ← (byte) current_xpos#23 -- vbuz1=vbuz2 lda current_xpos sta collision.xpos - //SEG195 [92] (byte) collision::ypos#3 ← (byte) current_ypos#16 -- vbuyy=vbuz1 + //SEG197 [93] (byte) collision::ypos#3 ← (byte) current_ypos#16 -- vbuyy=vbuz1 ldy current_ypos - //SEG196 [93] (byte) collision::orientation#3 ← (byte) play_move_rotate::orientation#3 -- vbuxx=vbuz1 + //SEG198 [94] (byte) collision::orientation#3 ← (byte) play_move_rotate::orientation#3 -- vbuxx=vbuz1 ldx orientation - //SEG197 [94] (byte*~) current_piece#75 ← (byte*) current_piece#13 -- pbuz1=pbuz2 + //SEG199 [95] (byte*~) current_piece#75 ← (byte*) current_piece#13 -- pbuz1=pbuz2 lda current_piece sta current_piece_75 lda current_piece+1 sta current_piece_75+1 - //SEG198 [95] call collision - //SEG199 [103] phi from play_move_rotate::@4 to collision [phi:play_move_rotate::@4->collision] + //SEG200 [96] call collision + //SEG201 [104] phi from play_move_rotate::@4 to collision [phi:play_move_rotate::@4->collision] collision_from_b4: - //SEG200 [103] phi (byte) collision::xpos#5 = (byte) collision::xpos#3 [phi:play_move_rotate::@4->collision#0] -- register_copy - //SEG201 [103] phi (byte) collision::ypos#4 = (byte) collision::ypos#3 [phi:play_move_rotate::@4->collision#1] -- register_copy - //SEG202 [103] phi (byte) collision::orientation#4 = (byte) collision::orientation#3 [phi:play_move_rotate::@4->collision#2] -- register_copy - //SEG203 [103] phi (byte*) current_piece#15 = (byte*~) current_piece#75 [phi:play_move_rotate::@4->collision#3] -- register_copy + //SEG202 [104] phi (byte) collision::xpos#5 = (byte) collision::xpos#3 [phi:play_move_rotate::@4->collision#0] -- register_copy + //SEG203 [104] phi (byte) collision::ypos#4 = (byte) collision::ypos#3 [phi:play_move_rotate::@4->collision#1] -- register_copy + //SEG204 [104] phi (byte) collision::orientation#4 = (byte) collision::orientation#3 [phi:play_move_rotate::@4->collision#2] -- register_copy + //SEG205 [104] phi (byte*) current_piece#15 = (byte*~) current_piece#75 [phi:play_move_rotate::@4->collision#3] -- register_copy jsr collision - //SEG204 [96] (byte) collision::return#13 ← (byte) collision::return#14 + //SEG206 [97] (byte) collision::return#13 ← (byte) collision::return#14 // (byte) collision::return#13 = (byte) collision::return#14 // register copy reg byte a jmp b14 - //SEG205 play_move_rotate::@14 + //SEG207 play_move_rotate::@14 b14: - //SEG206 [97] (byte~) play_move_rotate::$6 ← (byte) collision::return#13 + //SEG208 [98] (byte~) play_move_rotate::$6 ← (byte) collision::return#13 // (byte~) play_move_rotate::$6 = (byte) collision::return#13 // register copy reg byte a - //SEG207 [98] if((byte~) play_move_rotate::$6!=(const byte) COLLISION_NONE#0) goto play_move_rotate::@return -- vbuaa_neq_vbuc1_then_la1 + //SEG209 [99] if((byte~) play_move_rotate::$6!=(const byte) COLLISION_NONE#0) goto play_move_rotate::@return -- vbuaa_neq_vbuc1_then_la1 cmp #COLLISION_NONE bne breturn_from_b14 jmp b11 - //SEG208 play_move_rotate::@11 + //SEG210 play_move_rotate::@11 b11: - //SEG209 [99] (byte) current_orientation#8 ← (byte) play_move_rotate::orientation#3 -- vbuz1=vbuz2 + //SEG211 [100] (byte) current_orientation#8 ← (byte) play_move_rotate::orientation#3 -- vbuz1=vbuz2 lda orientation sta current_orientation - //SEG210 [100] (byte*) current_piece_gfx#8 ← (byte*) current_piece#13 + (byte) current_orientation#8 -- pbuz1=pbuz2_plus_vbuz3 + //SEG212 [101] (byte*) current_piece_gfx#8 ← (byte*) current_piece#13 + (byte) current_orientation#8 -- pbuz1=pbuz2_plus_vbuz3 lda current_orientation clc adc current_piece @@ -9672,25 +9704,25 @@ play_move_rotate: { lda #0 adc current_piece+1 sta current_piece_gfx+1 - //SEG211 [86] phi from play_move_rotate::@11 to play_move_rotate::@return [phi:play_move_rotate::@11->play_move_rotate::@return] + //SEG213 [87] phi from play_move_rotate::@11 to play_move_rotate::@return [phi:play_move_rotate::@11->play_move_rotate::@return] breturn_from_b11: - //SEG212 [86] phi (byte*) current_piece_gfx#18 = (byte*) current_piece_gfx#8 [phi:play_move_rotate::@11->play_move_rotate::@return#0] -- register_copy - //SEG213 [86] phi (byte) current_orientation#23 = (byte) current_orientation#8 [phi:play_move_rotate::@11->play_move_rotate::@return#1] -- register_copy - //SEG214 [86] phi (byte) play_move_rotate::return#2 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_move_rotate::@11->play_move_rotate::@return#2] -- vbuaa=vbuc1 + //SEG214 [87] phi (byte*) current_piece_gfx#18 = (byte*) current_piece_gfx#8 [phi:play_move_rotate::@11->play_move_rotate::@return#0] -- register_copy + //SEG215 [87] phi (byte) current_orientation#23 = (byte) current_orientation#8 [phi:play_move_rotate::@11->play_move_rotate::@return#1] -- register_copy + //SEG216 [87] phi (byte) play_move_rotate::return#2 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_move_rotate::@11->play_move_rotate::@return#2] -- vbuaa=vbuc1 lda #1 jmp breturn - //SEG215 play_move_rotate::@1 + //SEG217 play_move_rotate::@1 b1: - //SEG216 [101] (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 ← (byte) current_orientation#18 - (byte/signed byte/word/signed word/dword/signed dword) 16 -- vbuaa=vbuz1_minus_vbuc1 + //SEG218 [102] (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 ← (byte) current_orientation#18 - (byte/signed byte/word/signed word/dword/signed dword) 16 -- vbuaa=vbuz1_minus_vbuc1 lda current_orientation sec sbc #$10 - //SEG217 [102] (byte) play_move_rotate::orientation#1 ← (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 & (byte/signed byte/word/signed word/dword/signed dword) 63 -- vbuz1=vbuaa_band_vbuc1 + //SEG219 [103] (byte) play_move_rotate::orientation#1 ← (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 & (byte/signed byte/word/signed word/dword/signed dword) 63 -- vbuz1=vbuaa_band_vbuc1 and #$3f sta orientation jmp b4_from_b1 } -//SEG218 collision +//SEG220 collision collision: { .label xpos = 7 .label piece_gfx = 5 @@ -9703,7 +9735,7 @@ collision: { .label i_3 = $a .label i_11 = $a .label i_13 = $a - //SEG219 [104] (byte*) collision::piece_gfx#0 ← (byte*) current_piece#15 + (byte) collision::orientation#4 -- pbuz1=pbuz1_plus_vbuxx + //SEG221 [105] (byte*) collision::piece_gfx#0 ← (byte*) current_piece#15 + (byte) collision::orientation#4 -- pbuz1=pbuz1_plus_vbuxx txa clc adc piece_gfx @@ -9711,667 +9743,667 @@ collision: { lda #0 adc piece_gfx+1 sta piece_gfx+1 - //SEG220 [105] (byte) collision::ypos2#0 ← (byte) collision::ypos#4 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuyy_rol_1 + //SEG222 [106] (byte) collision::ypos2#0 ← (byte) collision::ypos#4 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuyy_rol_1 tya asl sta ypos2 - //SEG221 [106] phi from collision to collision::@1 [phi:collision->collision::@1] + //SEG223 [107] phi from collision to collision::@1 [phi:collision->collision::@1] b1_from_collision: - //SEG222 [106] phi (byte) collision::l#6 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:collision->collision::@1#0] -- vbuz1=vbuc1 + //SEG224 [107] phi (byte) collision::l#6 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:collision->collision::@1#0] -- vbuz1=vbuc1 lda #0 sta l - //SEG223 [106] phi (byte) collision::i#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:collision->collision::@1#1] -- vbuz1=vbuc1 + //SEG225 [107] phi (byte) collision::i#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:collision->collision::@1#1] -- vbuz1=vbuc1 lda #0 sta i_3 - //SEG224 [106] phi (byte) collision::ypos2#2 = (byte) collision::ypos2#0 [phi:collision->collision::@1#2] -- register_copy + //SEG226 [107] phi (byte) collision::ypos2#2 = (byte) collision::ypos2#0 [phi:collision->collision::@1#2] -- register_copy jmp b1 - //SEG225 collision::@1 + //SEG227 collision::@1 b1: - //SEG226 [107] (byte*) collision::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) collision::ypos2#2) -- pbuz1=pptc1_derefidx_vbuz2 + //SEG228 [108] (byte*) collision::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) collision::ypos2#2) -- pbuz1=pptc1_derefidx_vbuz2 ldy ypos2 lda playfield_lines,y sta playfield_line lda playfield_lines+1,y sta playfield_line+1 - //SEG227 [108] (byte~) collision::col#9 ← (byte) collision::xpos#5 -- vbuz1=vbuz2 + //SEG229 [109] (byte~) collision::col#9 ← (byte) collision::xpos#5 -- vbuz1=vbuz2 lda xpos sta col - //SEG228 [109] phi from collision::@1 to collision::@2 [phi:collision::@1->collision::@2] + //SEG230 [110] phi from collision::@1 to collision::@2 [phi:collision::@1->collision::@2] b2_from_b1: - //SEG229 [109] phi (byte) collision::c#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:collision::@1->collision::@2#0] -- vbuxx=vbuc1 + //SEG231 [110] phi (byte) collision::c#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:collision::@1->collision::@2#0] -- vbuxx=vbuc1 ldx #0 - //SEG230 [109] phi (byte) collision::col#2 = (byte~) collision::col#9 [phi:collision::@1->collision::@2#1] -- register_copy - //SEG231 [109] phi (byte) collision::i#2 = (byte) collision::i#3 [phi:collision::@1->collision::@2#2] -- register_copy + //SEG232 [110] phi (byte) collision::col#2 = (byte~) collision::col#9 [phi:collision::@1->collision::@2#1] -- register_copy + //SEG233 [110] phi (byte) collision::i#2 = (byte) collision::i#3 [phi:collision::@1->collision::@2#2] -- register_copy jmp b2 - //SEG232 collision::@2 + //SEG234 collision::@2 b2: - //SEG233 [110] (byte) collision::i#1 ← ++ (byte) collision::i#2 -- vbuz1=_inc_vbuz2 + //SEG235 [111] (byte) collision::i#1 ← ++ (byte) collision::i#2 -- vbuz1=_inc_vbuz2 ldy i_2 iny sty i - //SEG234 [111] if(*((byte*) collision::piece_gfx#0 + (byte) collision::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto collision::@3 -- pbuz1_derefidx_vbuz2_eq_0_then_la1 + //SEG236 [112] if(*((byte*) collision::piece_gfx#0 + (byte) collision::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto collision::@3 -- pbuz1_derefidx_vbuz2_eq_0_then_la1 ldy i_2 lda (piece_gfx),y cmp #0 beq b3 jmp b8 - //SEG235 collision::@8 + //SEG237 collision::@8 b8: - //SEG236 [112] if((byte) collision::ypos2#2<(byte/signed byte/word/signed word/dword/signed dword) 2*(const byte) PLAYFIELD_LINES#0) goto collision::@4 -- vbuz1_lt_vbuc1_then_la1 + //SEG238 [113] if((byte) collision::ypos2#2<(byte/signed byte/word/signed word/dword/signed dword) 2*(const byte) PLAYFIELD_LINES#0) goto collision::@4 -- vbuz1_lt_vbuc1_then_la1 lda ypos2 cmp #2*PLAYFIELD_LINES bcc b4 - //SEG237 [113] phi from collision::@8 to collision::@return [phi:collision::@8->collision::@return] + //SEG239 [114] phi from collision::@8 to collision::@return [phi:collision::@8->collision::@return] breturn_from_b8: - //SEG238 [113] phi (byte) collision::return#14 = (const byte) COLLISION_BOTTOM#0 [phi:collision::@8->collision::@return#0] -- vbuaa=vbuc1 + //SEG240 [114] phi (byte) collision::return#14 = (const byte) COLLISION_BOTTOM#0 [phi:collision::@8->collision::@return#0] -- vbuaa=vbuc1 lda #COLLISION_BOTTOM jmp breturn - //SEG239 collision::@return + //SEG241 collision::@return breturn: - //SEG240 [114] return + //SEG242 [115] return rts - //SEG241 collision::@4 + //SEG243 collision::@4 b4: - //SEG242 [115] (byte~) collision::$7 ← (byte) collision::col#2 & (byte/word/signed word/dword/signed dword) 128 -- vbuaa=vbuz1_band_vbuc1 + //SEG244 [116] (byte~) collision::$7 ← (byte) collision::col#2 & (byte/word/signed word/dword/signed dword) 128 -- vbuaa=vbuz1_band_vbuc1 lda #$80 and col - //SEG243 [116] if((byte~) collision::$7==(byte/signed byte/word/signed word/dword/signed dword) 0) goto collision::@5 -- vbuaa_eq_0_then_la1 + //SEG245 [117] if((byte~) collision::$7==(byte/signed byte/word/signed word/dword/signed dword) 0) goto collision::@5 -- vbuaa_eq_0_then_la1 cmp #0 beq b5 - //SEG244 [113] phi from collision::@4 to collision::@return [phi:collision::@4->collision::@return] + //SEG246 [114] phi from collision::@4 to collision::@return [phi:collision::@4->collision::@return] breturn_from_b4: - //SEG245 [113] phi (byte) collision::return#14 = (const byte) COLLISION_LEFT#0 [phi:collision::@4->collision::@return#0] -- vbuaa=vbuc1 + //SEG247 [114] phi (byte) collision::return#14 = (const byte) COLLISION_LEFT#0 [phi:collision::@4->collision::@return#0] -- vbuaa=vbuc1 lda #COLLISION_LEFT jmp breturn - //SEG246 collision::@5 + //SEG248 collision::@5 b5: - //SEG247 [117] if((byte) collision::col#2<(const byte) PLAYFIELD_COLS#0) goto collision::@6 -- vbuz1_lt_vbuc1_then_la1 + //SEG249 [118] if((byte) collision::col#2<(const byte) PLAYFIELD_COLS#0) goto collision::@6 -- vbuz1_lt_vbuc1_then_la1 lda col cmp #PLAYFIELD_COLS bcc b6 - //SEG248 [113] phi from collision::@5 to collision::@return [phi:collision::@5->collision::@return] + //SEG250 [114] phi from collision::@5 to collision::@return [phi:collision::@5->collision::@return] breturn_from_b5: - //SEG249 [113] phi (byte) collision::return#14 = (const byte) COLLISION_RIGHT#0 [phi:collision::@5->collision::@return#0] -- vbuaa=vbuc1 + //SEG251 [114] phi (byte) collision::return#14 = (const byte) COLLISION_RIGHT#0 [phi:collision::@5->collision::@return#0] -- vbuaa=vbuc1 lda #COLLISION_RIGHT jmp breturn - //SEG250 collision::@6 + //SEG252 collision::@6 b6: - //SEG251 [118] if(*((byte*) collision::playfield_line#0 + (byte) collision::col#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto collision::@3 -- pbuz1_derefidx_vbuz2_eq_0_then_la1 + //SEG253 [119] if(*((byte*) collision::playfield_line#0 + (byte) collision::col#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto collision::@3 -- pbuz1_derefidx_vbuz2_eq_0_then_la1 ldy col lda (playfield_line),y cmp #0 beq b3 - //SEG252 [113] phi from collision::@6 to collision::@return [phi:collision::@6->collision::@return] + //SEG254 [114] phi from collision::@6 to collision::@return [phi:collision::@6->collision::@return] breturn_from_b6: - //SEG253 [113] phi (byte) collision::return#14 = (const byte) COLLISION_PLAYFIELD#0 [phi:collision::@6->collision::@return#0] -- vbuaa=vbuc1 + //SEG255 [114] phi (byte) collision::return#14 = (const byte) COLLISION_PLAYFIELD#0 [phi:collision::@6->collision::@return#0] -- vbuaa=vbuc1 lda #COLLISION_PLAYFIELD jmp breturn - //SEG254 collision::@3 + //SEG256 collision::@3 b3: - //SEG255 [119] (byte) collision::col#1 ← ++ (byte) collision::col#2 -- vbuz1=_inc_vbuz1 + //SEG257 [120] (byte) collision::col#1 ← ++ (byte) collision::col#2 -- vbuz1=_inc_vbuz1 inc col - //SEG256 [120] (byte) collision::c#1 ← ++ (byte) collision::c#2 -- vbuxx=_inc_vbuxx + //SEG258 [121] (byte) collision::c#1 ← ++ (byte) collision::c#2 -- vbuxx=_inc_vbuxx inx - //SEG257 [121] if((byte) collision::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto collision::@21 -- vbuxx_neq_vbuc1_then_la1 + //SEG259 [122] if((byte) collision::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto collision::@21 -- vbuxx_neq_vbuc1_then_la1 cpx #4 bne b21 jmp b17 - //SEG258 collision::@17 + //SEG260 collision::@17 b17: - //SEG259 [122] (byte) collision::ypos2#1 ← (byte) collision::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 -- vbuz1=vbuz1_plus_2 + //SEG261 [123] (byte) collision::ypos2#1 ← (byte) collision::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 -- vbuz1=vbuz1_plus_2 lda ypos2 clc adc #2 sta ypos2 - //SEG260 [123] (byte) collision::l#1 ← ++ (byte) collision::l#6 -- vbuz1=_inc_vbuz1 + //SEG262 [124] (byte) collision::l#1 ← ++ (byte) collision::l#6 -- vbuz1=_inc_vbuz1 inc l - //SEG261 [124] if((byte) collision::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto collision::@20 -- vbuz1_neq_vbuc1_then_la1 + //SEG263 [125] if((byte) collision::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto collision::@20 -- vbuz1_neq_vbuc1_then_la1 lda l cmp #4 bne b20 - //SEG262 [113] phi from collision::@17 to collision::@return [phi:collision::@17->collision::@return] + //SEG264 [114] phi from collision::@17 to collision::@return [phi:collision::@17->collision::@return] breturn_from_b17: - //SEG263 [113] phi (byte) collision::return#14 = (const byte) COLLISION_NONE#0 [phi:collision::@17->collision::@return#0] -- vbuaa=vbuc1 + //SEG265 [114] phi (byte) collision::return#14 = (const byte) COLLISION_NONE#0 [phi:collision::@17->collision::@return#0] -- vbuaa=vbuc1 lda #COLLISION_NONE jmp breturn - //SEG264 collision::@20 + //SEG266 collision::@20 b20: - //SEG265 [125] (byte~) collision::i#11 ← (byte) collision::i#1 -- vbuz1=vbuz2 + //SEG267 [126] (byte~) collision::i#11 ← (byte) collision::i#1 -- vbuz1=vbuz2 lda i sta i_11 - //SEG266 [106] phi from collision::@20 to collision::@1 [phi:collision::@20->collision::@1] + //SEG268 [107] phi from collision::@20 to collision::@1 [phi:collision::@20->collision::@1] b1_from_b20: - //SEG267 [106] phi (byte) collision::l#6 = (byte) collision::l#1 [phi:collision::@20->collision::@1#0] -- register_copy - //SEG268 [106] phi (byte) collision::i#3 = (byte~) collision::i#11 [phi:collision::@20->collision::@1#1] -- register_copy - //SEG269 [106] phi (byte) collision::ypos2#2 = (byte) collision::ypos2#1 [phi:collision::@20->collision::@1#2] -- register_copy + //SEG269 [107] phi (byte) collision::l#6 = (byte) collision::l#1 [phi:collision::@20->collision::@1#0] -- register_copy + //SEG270 [107] phi (byte) collision::i#3 = (byte~) collision::i#11 [phi:collision::@20->collision::@1#1] -- register_copy + //SEG271 [107] phi (byte) collision::ypos2#2 = (byte) collision::ypos2#1 [phi:collision::@20->collision::@1#2] -- register_copy jmp b1 - //SEG270 collision::@21 + //SEG272 collision::@21 b21: - //SEG271 [126] (byte~) collision::i#13 ← (byte) collision::i#1 -- vbuz1=vbuz2 + //SEG273 [127] (byte~) collision::i#13 ← (byte) collision::i#1 -- vbuz1=vbuz2 lda i sta i_13 - //SEG272 [109] phi from collision::@21 to collision::@2 [phi:collision::@21->collision::@2] + //SEG274 [110] phi from collision::@21 to collision::@2 [phi:collision::@21->collision::@2] b2_from_b21: - //SEG273 [109] phi (byte) collision::c#2 = (byte) collision::c#1 [phi:collision::@21->collision::@2#0] -- register_copy - //SEG274 [109] phi (byte) collision::col#2 = (byte) collision::col#1 [phi:collision::@21->collision::@2#1] -- register_copy - //SEG275 [109] phi (byte) collision::i#2 = (byte~) collision::i#13 [phi:collision::@21->collision::@2#2] -- register_copy + //SEG275 [110] phi (byte) collision::c#2 = (byte) collision::c#1 [phi:collision::@21->collision::@2#0] -- register_copy + //SEG276 [110] phi (byte) collision::col#2 = (byte) collision::col#1 [phi:collision::@21->collision::@2#1] -- register_copy + //SEG277 [110] phi (byte) collision::i#2 = (byte~) collision::i#13 [phi:collision::@21->collision::@2#2] -- register_copy jmp b2 } -//SEG276 play_move_leftright +//SEG278 play_move_leftright play_move_leftright: { - //SEG277 [127] if((byte) play_move_leftright::key_event#0==(const byte) KEY_COMMA#0) goto play_move_leftright::@1 -- vbuaa_eq_vbuc1_then_la1 + //SEG279 [128] if((byte) play_move_leftright::key_event#0==(const byte) KEY_COMMA#0) goto play_move_leftright::@1 -- vbuaa_eq_vbuc1_then_la1 cmp #KEY_COMMA beq b1 jmp b6 - //SEG278 play_move_leftright::@6 + //SEG280 play_move_leftright::@6 b6: - //SEG279 [128] if((byte) play_move_leftright::key_event#0!=(const byte) KEY_DOT#0) goto play_move_leftright::@return -- vbuaa_neq_vbuc1_then_la1 + //SEG281 [129] if((byte) play_move_leftright::key_event#0!=(const byte) KEY_DOT#0) goto play_move_leftright::@return -- vbuaa_neq_vbuc1_then_la1 cmp #KEY_DOT bne breturn_from_b6 jmp b7 - //SEG280 play_move_leftright::@7 + //SEG282 play_move_leftright::@7 b7: - //SEG281 [129] (byte) collision::xpos#2 ← (byte) current_xpos#19 + (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_plus_1 + //SEG283 [130] (byte) collision::xpos#2 ← (byte) current_xpos#19 + (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_plus_1 ldy current_xpos iny sty collision.xpos - //SEG282 [130] (byte) collision::ypos#2 ← (byte) current_ypos#16 -- vbuyy=vbuz1 + //SEG284 [131] (byte) collision::ypos#2 ← (byte) current_ypos#16 -- vbuyy=vbuz1 ldy current_ypos - //SEG283 [131] (byte) collision::orientation#2 ← (byte) current_orientation#18 -- vbuxx=vbuz1 + //SEG285 [132] (byte) collision::orientation#2 ← (byte) current_orientation#18 -- vbuxx=vbuz1 ldx current_orientation - //SEG284 [132] (byte*~) current_piece#74 ← (byte*) current_piece#13 -- pbuz1=pbuz2 + //SEG286 [133] (byte*~) current_piece#74 ← (byte*) current_piece#13 -- pbuz1=pbuz2 lda current_piece sta current_piece_74 lda current_piece+1 sta current_piece_74+1 - //SEG285 [133] call collision - //SEG286 [103] phi from play_move_leftright::@7 to collision [phi:play_move_leftright::@7->collision] + //SEG287 [134] call collision + //SEG288 [104] phi from play_move_leftright::@7 to collision [phi:play_move_leftright::@7->collision] collision_from_b7: - //SEG287 [103] phi (byte) collision::xpos#5 = (byte) collision::xpos#2 [phi:play_move_leftright::@7->collision#0] -- register_copy - //SEG288 [103] phi (byte) collision::ypos#4 = (byte) collision::ypos#2 [phi:play_move_leftright::@7->collision#1] -- register_copy - //SEG289 [103] phi (byte) collision::orientation#4 = (byte) collision::orientation#2 [phi:play_move_leftright::@7->collision#2] -- register_copy - //SEG290 [103] phi (byte*) current_piece#15 = (byte*~) current_piece#74 [phi:play_move_leftright::@7->collision#3] -- register_copy + //SEG289 [104] phi (byte) collision::xpos#5 = (byte) collision::xpos#2 [phi:play_move_leftright::@7->collision#0] -- register_copy + //SEG290 [104] phi (byte) collision::ypos#4 = (byte) collision::ypos#2 [phi:play_move_leftright::@7->collision#1] -- register_copy + //SEG291 [104] phi (byte) collision::orientation#4 = (byte) collision::orientation#2 [phi:play_move_leftright::@7->collision#2] -- register_copy + //SEG292 [104] phi (byte*) current_piece#15 = (byte*~) current_piece#74 [phi:play_move_leftright::@7->collision#3] -- register_copy jsr collision - //SEG291 [134] (byte) collision::return#12 ← (byte) collision::return#14 + //SEG293 [135] (byte) collision::return#12 ← (byte) collision::return#14 // (byte) collision::return#12 = (byte) collision::return#14 // register copy reg byte a jmp b15 - //SEG292 play_move_leftright::@15 + //SEG294 play_move_leftright::@15 b15: - //SEG293 [135] (byte~) play_move_leftright::$4 ← (byte) collision::return#12 + //SEG295 [136] (byte~) play_move_leftright::$4 ← (byte) collision::return#12 // (byte~) play_move_leftright::$4 = (byte) collision::return#12 // register copy reg byte a - //SEG294 [136] if((byte~) play_move_leftright::$4!=(const byte) COLLISION_NONE#0) goto play_move_leftright::@return -- vbuaa_neq_vbuc1_then_la1 + //SEG296 [137] if((byte~) play_move_leftright::$4!=(const byte) COLLISION_NONE#0) goto play_move_leftright::@return -- vbuaa_neq_vbuc1_then_la1 cmp #COLLISION_NONE bne breturn_from_b15 jmp b8 - //SEG295 play_move_leftright::@8 + //SEG297 play_move_leftright::@8 b8: - //SEG296 [137] (byte) current_xpos#7 ← ++ (byte) current_xpos#19 -- vbuz1=_inc_vbuz1 + //SEG298 [138] (byte) current_xpos#7 ← ++ (byte) current_xpos#19 -- vbuz1=_inc_vbuz1 inc current_xpos - //SEG297 [138] phi from play_move_leftright::@11 play_move_leftright::@8 to play_move_leftright::@return [phi:play_move_leftright::@11/play_move_leftright::@8->play_move_leftright::@return] + //SEG299 [139] phi from play_move_leftright::@11 play_move_leftright::@8 to play_move_leftright::@return [phi:play_move_leftright::@11/play_move_leftright::@8->play_move_leftright::@return] breturn_from_b11: breturn_from_b8: - //SEG298 [138] phi (byte) current_xpos#23 = (byte) current_xpos#9 [phi:play_move_leftright::@11/play_move_leftright::@8->play_move_leftright::@return#0] -- register_copy - //SEG299 [138] phi (byte) play_move_leftright::return#2 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_move_leftright::@11/play_move_leftright::@8->play_move_leftright::@return#1] -- vbuaa=vbuc1 + //SEG300 [139] phi (byte) current_xpos#23 = (byte) current_xpos#9 [phi:play_move_leftright::@11/play_move_leftright::@8->play_move_leftright::@return#0] -- register_copy + //SEG301 [139] phi (byte) play_move_leftright::return#2 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_move_leftright::@11/play_move_leftright::@8->play_move_leftright::@return#1] -- vbuaa=vbuc1 lda #1 jmp breturn - //SEG300 [138] phi from play_move_leftright::@14 play_move_leftright::@15 play_move_leftright::@6 to play_move_leftright::@return [phi:play_move_leftright::@14/play_move_leftright::@15/play_move_leftright::@6->play_move_leftright::@return] + //SEG302 [139] phi from play_move_leftright::@14 play_move_leftright::@15 play_move_leftright::@6 to play_move_leftright::@return [phi:play_move_leftright::@14/play_move_leftright::@15/play_move_leftright::@6->play_move_leftright::@return] breturn_from_b14: breturn_from_b15: breturn_from_b6: - //SEG301 [138] phi (byte) current_xpos#23 = (byte) current_xpos#19 [phi:play_move_leftright::@14/play_move_leftright::@15/play_move_leftright::@6->play_move_leftright::@return#0] -- register_copy - //SEG302 [138] phi (byte) play_move_leftright::return#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_leftright::@14/play_move_leftright::@15/play_move_leftright::@6->play_move_leftright::@return#1] -- vbuaa=vbuc1 + //SEG303 [139] phi (byte) current_xpos#23 = (byte) current_xpos#19 [phi:play_move_leftright::@14/play_move_leftright::@15/play_move_leftright::@6->play_move_leftright::@return#0] -- register_copy + //SEG304 [139] phi (byte) play_move_leftright::return#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_leftright::@14/play_move_leftright::@15/play_move_leftright::@6->play_move_leftright::@return#1] -- vbuaa=vbuc1 lda #0 jmp breturn - //SEG303 play_move_leftright::@return + //SEG305 play_move_leftright::@return breturn: - //SEG304 [139] return + //SEG306 [140] return rts - //SEG305 play_move_leftright::@1 + //SEG307 play_move_leftright::@1 b1: - //SEG306 [140] (byte) collision::xpos#1 ← (byte) current_xpos#19 - (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_minus_1 + //SEG308 [141] (byte) collision::xpos#1 ← (byte) current_xpos#19 - (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_minus_1 ldx current_xpos dex stx collision.xpos - //SEG307 [141] (byte) collision::ypos#1 ← (byte) current_ypos#16 -- vbuyy=vbuz1 + //SEG309 [142] (byte) collision::ypos#1 ← (byte) current_ypos#16 -- vbuyy=vbuz1 ldy current_ypos - //SEG308 [142] (byte) collision::orientation#1 ← (byte) current_orientation#18 -- vbuxx=vbuz1 + //SEG310 [143] (byte) collision::orientation#1 ← (byte) current_orientation#18 -- vbuxx=vbuz1 ldx current_orientation - //SEG309 [143] (byte*~) current_piece#73 ← (byte*) current_piece#13 -- pbuz1=pbuz2 + //SEG311 [144] (byte*~) current_piece#73 ← (byte*) current_piece#13 -- pbuz1=pbuz2 lda current_piece sta current_piece_73 lda current_piece+1 sta current_piece_73+1 - //SEG310 [144] call collision - //SEG311 [103] phi from play_move_leftright::@1 to collision [phi:play_move_leftright::@1->collision] + //SEG312 [145] call collision + //SEG313 [104] phi from play_move_leftright::@1 to collision [phi:play_move_leftright::@1->collision] collision_from_b1: - //SEG312 [103] phi (byte) collision::xpos#5 = (byte) collision::xpos#1 [phi:play_move_leftright::@1->collision#0] -- register_copy - //SEG313 [103] phi (byte) collision::ypos#4 = (byte) collision::ypos#1 [phi:play_move_leftright::@1->collision#1] -- register_copy - //SEG314 [103] phi (byte) collision::orientation#4 = (byte) collision::orientation#1 [phi:play_move_leftright::@1->collision#2] -- register_copy - //SEG315 [103] phi (byte*) current_piece#15 = (byte*~) current_piece#73 [phi:play_move_leftright::@1->collision#3] -- register_copy + //SEG314 [104] phi (byte) collision::xpos#5 = (byte) collision::xpos#1 [phi:play_move_leftright::@1->collision#0] -- register_copy + //SEG315 [104] phi (byte) collision::ypos#4 = (byte) collision::ypos#1 [phi:play_move_leftright::@1->collision#1] -- register_copy + //SEG316 [104] phi (byte) collision::orientation#4 = (byte) collision::orientation#1 [phi:play_move_leftright::@1->collision#2] -- register_copy + //SEG317 [104] phi (byte*) current_piece#15 = (byte*~) current_piece#73 [phi:play_move_leftright::@1->collision#3] -- register_copy jsr collision - //SEG316 [145] (byte) collision::return#1 ← (byte) collision::return#14 + //SEG318 [146] (byte) collision::return#1 ← (byte) collision::return#14 // (byte) collision::return#1 = (byte) collision::return#14 // register copy reg byte a jmp b14 - //SEG317 play_move_leftright::@14 + //SEG319 play_move_leftright::@14 b14: - //SEG318 [146] (byte~) play_move_leftright::$8 ← (byte) collision::return#1 + //SEG320 [147] (byte~) play_move_leftright::$8 ← (byte) collision::return#1 // (byte~) play_move_leftright::$8 = (byte) collision::return#1 // register copy reg byte a - //SEG319 [147] if((byte~) play_move_leftright::$8!=(const byte) COLLISION_NONE#0) goto play_move_leftright::@return -- vbuaa_neq_vbuc1_then_la1 + //SEG321 [148] if((byte~) play_move_leftright::$8!=(const byte) COLLISION_NONE#0) goto play_move_leftright::@return -- vbuaa_neq_vbuc1_then_la1 cmp #COLLISION_NONE bne breturn_from_b14 jmp b11 - //SEG320 play_move_leftright::@11 + //SEG322 play_move_leftright::@11 b11: - //SEG321 [148] (byte) current_xpos#9 ← -- (byte) current_xpos#19 -- vbuz1=_dec_vbuz1 + //SEG323 [149] (byte) current_xpos#9 ← -- (byte) current_xpos#19 -- vbuz1=_dec_vbuz1 dec current_xpos jmp breturn_from_b11 } -//SEG322 play_move_down +//SEG324 play_move_down play_move_down: { - //SEG323 [149] (byte) current_movedown_counter#10 ← ++ (byte) current_movedown_counter#15 -- vbuz1=_inc_vbuz1 + //SEG325 [150] (byte) current_movedown_counter#10 ← ++ (byte) current_movedown_counter#15 -- vbuz1=_inc_vbuz1 inc current_movedown_counter - //SEG324 [150] if((byte) play_move_down::key_event#0!=(const byte) KEY_SPACE#0) goto play_move_down::@1 -- vbuaa_neq_vbuc1_then_la1 + //SEG326 [151] if((byte) play_move_down::key_event#0!=(const byte) KEY_SPACE#0) goto play_move_down::@1 -- vbuaa_neq_vbuc1_then_la1 cmp #KEY_SPACE bne b1_from_play_move_down - //SEG325 [151] phi from play_move_down to play_move_down::@8 [phi:play_move_down->play_move_down::@8] + //SEG327 [152] phi from play_move_down to play_move_down::@8 [phi:play_move_down->play_move_down::@8] b8_from_play_move_down: jmp b8 - //SEG326 play_move_down::@8 + //SEG328 play_move_down::@8 b8: - //SEG327 [152] phi from play_move_down::@8 to play_move_down::@1 [phi:play_move_down::@8->play_move_down::@1] + //SEG329 [153] phi from play_move_down::@8 to play_move_down::@1 [phi:play_move_down::@8->play_move_down::@1] b1_from_b8: - //SEG328 [152] phi (byte) play_move_down::movedown#10 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_move_down::@8->play_move_down::@1#0] -- vbuxx=vbuc1 + //SEG330 [153] phi (byte) play_move_down::movedown#10 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_move_down::@8->play_move_down::@1#0] -- vbuxx=vbuc1 ldx #1 jmp b1 - //SEG329 [152] phi from play_move_down to play_move_down::@1 [phi:play_move_down->play_move_down::@1] + //SEG331 [153] phi from play_move_down to play_move_down::@1 [phi:play_move_down->play_move_down::@1] b1_from_play_move_down: - //SEG330 [152] phi (byte) play_move_down::movedown#10 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_down->play_move_down::@1#0] -- vbuxx=vbuc1 + //SEG332 [153] phi (byte) play_move_down::movedown#10 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_down->play_move_down::@1#0] -- vbuxx=vbuc1 ldx #0 jmp b1 - //SEG331 play_move_down::@1 + //SEG333 play_move_down::@1 b1: - //SEG332 [153] call keyboard_event_pressed - //SEG333 [236] phi from play_move_down::@1 to keyboard_event_pressed [phi:play_move_down::@1->keyboard_event_pressed] + //SEG334 [154] call keyboard_event_pressed + //SEG335 [237] phi from play_move_down::@1 to keyboard_event_pressed [phi:play_move_down::@1->keyboard_event_pressed] keyboard_event_pressed_from_b1: - //SEG334 [236] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_SPACE#0 [phi:play_move_down::@1->keyboard_event_pressed#0] -- vbuz1=vbuc1 + //SEG336 [237] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_SPACE#0 [phi:play_move_down::@1->keyboard_event_pressed#0] -- vbuz1=vbuc1 lda #KEY_SPACE sta keyboard_event_pressed.keycode jsr keyboard_event_pressed - //SEG335 [154] (byte) keyboard_event_pressed::return#12 ← (byte) keyboard_event_pressed::return#11 + //SEG337 [155] (byte) keyboard_event_pressed::return#12 ← (byte) keyboard_event_pressed::return#11 // (byte) keyboard_event_pressed::return#12 = (byte) keyboard_event_pressed::return#11 // register copy reg byte a jmp b17 - //SEG336 play_move_down::@17 + //SEG338 play_move_down::@17 b17: - //SEG337 [155] (byte~) play_move_down::$2 ← (byte) keyboard_event_pressed::return#12 + //SEG339 [156] (byte~) play_move_down::$2 ← (byte) keyboard_event_pressed::return#12 // (byte~) play_move_down::$2 = (byte) keyboard_event_pressed::return#12 // register copy reg byte a - //SEG338 [156] if((byte~) play_move_down::$2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_move_down::@2 -- vbuaa_eq_0_then_la1 + //SEG340 [157] if((byte~) play_move_down::$2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_move_down::@2 -- vbuaa_eq_0_then_la1 cmp #0 beq b2_from_b17 jmp b9 - //SEG339 play_move_down::@9 + //SEG341 play_move_down::@9 b9: - //SEG340 [157] if((byte) current_movedown_counter#10<(const byte) current_movedown_fast#0) goto play_move_down::@2 -- vbuz1_lt_vbuc1_then_la1 + //SEG342 [158] if((byte) current_movedown_counter#10<(const byte) current_movedown_fast#0) goto play_move_down::@2 -- vbuz1_lt_vbuc1_then_la1 lda current_movedown_counter cmp #current_movedown_fast bcc b2_from_b9 jmp b10 - //SEG341 play_move_down::@10 + //SEG343 play_move_down::@10 b10: - //SEG342 [158] (byte) play_move_down::movedown#2 ← ++ (byte) play_move_down::movedown#10 -- vbuxx=_inc_vbuxx + //SEG344 [159] (byte) play_move_down::movedown#2 ← ++ (byte) play_move_down::movedown#10 -- vbuxx=_inc_vbuxx inx - //SEG343 [159] phi from play_move_down::@10 play_move_down::@17 play_move_down::@9 to play_move_down::@2 [phi:play_move_down::@10/play_move_down::@17/play_move_down::@9->play_move_down::@2] + //SEG345 [160] phi from play_move_down::@10 play_move_down::@17 play_move_down::@9 to play_move_down::@2 [phi:play_move_down::@10/play_move_down::@17/play_move_down::@9->play_move_down::@2] b2_from_b10: b2_from_b17: b2_from_b9: - //SEG344 [159] phi (byte) play_move_down::movedown#7 = (byte) play_move_down::movedown#2 [phi:play_move_down::@10/play_move_down::@17/play_move_down::@9->play_move_down::@2#0] -- register_copy + //SEG346 [160] phi (byte) play_move_down::movedown#7 = (byte) play_move_down::movedown#2 [phi:play_move_down::@10/play_move_down::@17/play_move_down::@9->play_move_down::@2#0] -- register_copy jmp b2 - //SEG345 play_move_down::@2 + //SEG347 play_move_down::@2 b2: - //SEG346 [160] if((byte) current_movedown_counter#10<(const byte) current_movedown_slow#0) goto play_move_down::@4 -- vbuz1_lt_vbuc1_then_la1 + //SEG348 [161] if((byte) current_movedown_counter#10<(const byte) current_movedown_slow#0) goto play_move_down::@4 -- vbuz1_lt_vbuc1_then_la1 lda current_movedown_counter cmp #current_movedown_slow bcc b4_from_b2 jmp b11 - //SEG347 play_move_down::@11 + //SEG349 play_move_down::@11 b11: - //SEG348 [161] (byte) play_move_down::movedown#3 ← ++ (byte) play_move_down::movedown#7 -- vbuxx=_inc_vbuxx + //SEG350 [162] (byte) play_move_down::movedown#3 ← ++ (byte) play_move_down::movedown#7 -- vbuxx=_inc_vbuxx inx - //SEG349 [162] phi from play_move_down::@11 play_move_down::@2 to play_move_down::@4 [phi:play_move_down::@11/play_move_down::@2->play_move_down::@4] + //SEG351 [163] phi from play_move_down::@11 play_move_down::@2 to play_move_down::@4 [phi:play_move_down::@11/play_move_down::@2->play_move_down::@4] b4_from_b11: b4_from_b2: - //SEG350 [162] phi (byte) play_move_down::movedown#6 = (byte) play_move_down::movedown#3 [phi:play_move_down::@11/play_move_down::@2->play_move_down::@4#0] -- register_copy + //SEG352 [163] phi (byte) play_move_down::movedown#6 = (byte) play_move_down::movedown#3 [phi:play_move_down::@11/play_move_down::@2->play_move_down::@4#0] -- register_copy jmp b4 - //SEG351 play_move_down::@4 + //SEG353 play_move_down::@4 b4: - //SEG352 [163] if((byte) play_move_down::movedown#6==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_move_down::@return -- vbuxx_eq_0_then_la1 + //SEG354 [164] if((byte) play_move_down::movedown#6==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_move_down::@return -- vbuxx_eq_0_then_la1 cpx #0 beq breturn_from_b4 jmp b12 - //SEG353 play_move_down::@12 + //SEG355 play_move_down::@12 b12: - //SEG354 [164] (byte) collision::ypos#0 ← (byte) current_ypos#12 + (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuyy=vbuz1_plus_1 + //SEG356 [165] (byte) collision::ypos#0 ← (byte) current_ypos#12 + (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuyy=vbuz1_plus_1 ldy current_ypos iny - //SEG355 [165] (byte) collision::xpos#0 ← (byte) current_xpos#16 -- vbuz1=vbuz2 + //SEG357 [166] (byte) collision::xpos#0 ← (byte) current_xpos#16 -- vbuz1=vbuz2 lda current_xpos sta collision.xpos - //SEG356 [166] (byte) collision::orientation#0 ← (byte) current_orientation#15 -- vbuxx=vbuz1 + //SEG358 [167] (byte) collision::orientation#0 ← (byte) current_orientation#15 -- vbuxx=vbuz1 ldx current_orientation - //SEG357 [167] (byte*~) current_piece#72 ← (byte*) current_piece#11 -- pbuz1=pbuz2 + //SEG359 [168] (byte*~) current_piece#72 ← (byte*) current_piece#11 -- pbuz1=pbuz2 lda current_piece sta current_piece_72 lda current_piece+1 sta current_piece_72+1 - //SEG358 [168] call collision - //SEG359 [103] phi from play_move_down::@12 to collision [phi:play_move_down::@12->collision] + //SEG360 [169] call collision + //SEG361 [104] phi from play_move_down::@12 to collision [phi:play_move_down::@12->collision] collision_from_b12: - //SEG360 [103] phi (byte) collision::xpos#5 = (byte) collision::xpos#0 [phi:play_move_down::@12->collision#0] -- register_copy - //SEG361 [103] phi (byte) collision::ypos#4 = (byte) collision::ypos#0 [phi:play_move_down::@12->collision#1] -- register_copy - //SEG362 [103] phi (byte) collision::orientation#4 = (byte) collision::orientation#0 [phi:play_move_down::@12->collision#2] -- register_copy - //SEG363 [103] phi (byte*) current_piece#15 = (byte*~) current_piece#72 [phi:play_move_down::@12->collision#3] -- register_copy + //SEG362 [104] phi (byte) collision::xpos#5 = (byte) collision::xpos#0 [phi:play_move_down::@12->collision#0] -- register_copy + //SEG363 [104] phi (byte) collision::ypos#4 = (byte) collision::ypos#0 [phi:play_move_down::@12->collision#1] -- register_copy + //SEG364 [104] phi (byte) collision::orientation#4 = (byte) collision::orientation#0 [phi:play_move_down::@12->collision#2] -- register_copy + //SEG365 [104] phi (byte*) current_piece#15 = (byte*~) current_piece#72 [phi:play_move_down::@12->collision#3] -- register_copy jsr collision - //SEG364 [169] (byte) collision::return#0 ← (byte) collision::return#14 + //SEG366 [170] (byte) collision::return#0 ← (byte) collision::return#14 // (byte) collision::return#0 = (byte) collision::return#14 // register copy reg byte a jmp b18 - //SEG365 play_move_down::@18 + //SEG367 play_move_down::@18 b18: - //SEG366 [170] (byte~) play_move_down::$12 ← (byte) collision::return#0 + //SEG368 [171] (byte~) play_move_down::$12 ← (byte) collision::return#0 // (byte~) play_move_down::$12 = (byte) collision::return#0 // register copy reg byte a - //SEG367 [171] if((byte~) play_move_down::$12==(const byte) COLLISION_NONE#0) goto play_move_down::@6 -- vbuaa_eq_vbuc1_then_la1 + //SEG369 [172] if((byte~) play_move_down::$12==(const byte) COLLISION_NONE#0) goto play_move_down::@6 -- vbuaa_eq_vbuc1_then_la1 cmp #COLLISION_NONE beq b6 - //SEG368 [172] phi from play_move_down::@18 to play_move_down::@13 [phi:play_move_down::@18->play_move_down::@13] + //SEG370 [173] phi from play_move_down::@18 to play_move_down::@13 [phi:play_move_down::@18->play_move_down::@13] b13_from_b18: jmp b13 - //SEG369 play_move_down::@13 + //SEG371 play_move_down::@13 b13: - //SEG370 [173] call lock_current + //SEG372 [174] call lock_current jsr lock_current - //SEG371 [174] phi from play_move_down::@13 to play_move_down::@19 [phi:play_move_down::@13->play_move_down::@19] + //SEG373 [175] phi from play_move_down::@13 to play_move_down::@19 [phi:play_move_down::@13->play_move_down::@19] b19_from_b13: jmp b19 - //SEG372 play_move_down::@19 + //SEG374 play_move_down::@19 b19: - //SEG373 [175] call remove_lines - //SEG374 [197] phi from play_move_down::@19 to remove_lines [phi:play_move_down::@19->remove_lines] + //SEG375 [176] call remove_lines + //SEG376 [198] phi from play_move_down::@19 to remove_lines [phi:play_move_down::@19->remove_lines] remove_lines_from_b19: jsr remove_lines - //SEG375 [176] phi from play_move_down::@19 to play_move_down::@20 [phi:play_move_down::@19->play_move_down::@20] + //SEG377 [177] phi from play_move_down::@19 to play_move_down::@20 [phi:play_move_down::@19->play_move_down::@20] b20_from_b19: jmp b20 - //SEG376 play_move_down::@20 + //SEG378 play_move_down::@20 b20: - //SEG377 [177] call spawn_current - //SEG378 [183] phi from play_move_down::@20 to spawn_current [phi:play_move_down::@20->spawn_current] + //SEG379 [178] call spawn_current + //SEG380 [184] phi from play_move_down::@20 to spawn_current [phi:play_move_down::@20->spawn_current] spawn_current_from_b20: jsr spawn_current - //SEG379 [178] (byte*~) current_piece#76 ← (byte*)*((const word[]) PIECES#0 + (byte~) spawn_current::$3) -- pbuz1=pptc1_derefidx_vbuz2 + //SEG381 [179] (byte*~) current_piece#76 ← (byte*)*((const word[]) PIECES#0 + (byte~) spawn_current::$3) -- pbuz1=pptc1_derefidx_vbuz2 ldy spawn_current._3 lda PIECES,y sta current_piece lda PIECES+1,y sta current_piece+1 - //SEG380 [179] phi from play_move_down::@20 to play_move_down::@7 [phi:play_move_down::@20->play_move_down::@7] + //SEG382 [180] phi from play_move_down::@20 to play_move_down::@7 [phi:play_move_down::@20->play_move_down::@7] b7_from_b20: - //SEG381 [179] phi (byte) current_piece_color#23 = (byte) current_piece_color#15 [phi:play_move_down::@20->play_move_down::@7#0] -- register_copy - //SEG382 [179] phi (byte) current_xpos#36 = (byte/signed byte/word/signed word/dword/signed dword) 3 [phi:play_move_down::@20->play_move_down::@7#1] -- vbuz1=vbuc1 + //SEG383 [180] phi (byte) current_piece_color#23 = (byte) current_piece_color#15 [phi:play_move_down::@20->play_move_down::@7#0] -- register_copy + //SEG384 [180] phi (byte) current_xpos#36 = (byte/signed byte/word/signed word/dword/signed dword) 3 [phi:play_move_down::@20->play_move_down::@7#1] -- vbuz1=vbuc1 lda #3 sta current_xpos - //SEG383 [179] phi (byte*) current_piece_gfx#29 = (byte*) current_piece_gfx#10 [phi:play_move_down::@20->play_move_down::@7#2] -- register_copy - //SEG384 [179] phi (byte) current_orientation#33 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_down::@20->play_move_down::@7#3] -- vbuz1=vbuc1 + //SEG385 [180] phi (byte*) current_piece_gfx#29 = (byte*) current_piece_gfx#10 [phi:play_move_down::@20->play_move_down::@7#2] -- register_copy + //SEG386 [180] phi (byte) current_orientation#33 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_down::@20->play_move_down::@7#3] -- vbuz1=vbuc1 lda #0 sta current_orientation - //SEG385 [179] phi (byte*) current_piece#23 = (byte*~) current_piece#76 [phi:play_move_down::@20->play_move_down::@7#4] -- register_copy - //SEG386 [179] phi (byte) current_ypos#31 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_down::@20->play_move_down::@7#5] -- vbuz1=vbuc1 + //SEG387 [180] phi (byte*) current_piece#23 = (byte*~) current_piece#76 [phi:play_move_down::@20->play_move_down::@7#4] -- register_copy + //SEG388 [180] phi (byte) current_ypos#31 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_down::@20->play_move_down::@7#5] -- vbuz1=vbuc1 lda #0 sta current_ypos jmp b7 - //SEG387 play_move_down::@7 + //SEG389 play_move_down::@7 b7: - //SEG388 [180] phi from play_move_down::@7 to play_move_down::@return [phi:play_move_down::@7->play_move_down::@return] + //SEG390 [181] phi from play_move_down::@7 to play_move_down::@return [phi:play_move_down::@7->play_move_down::@return] breturn_from_b7: - //SEG389 [180] phi (byte) current_piece_color#13 = (byte) current_piece_color#23 [phi:play_move_down::@7->play_move_down::@return#0] -- register_copy - //SEG390 [180] phi (byte) current_xpos#19 = (byte) current_xpos#36 [phi:play_move_down::@7->play_move_down::@return#1] -- register_copy - //SEG391 [180] phi (byte*) current_piece_gfx#17 = (byte*) current_piece_gfx#29 [phi:play_move_down::@7->play_move_down::@return#2] -- register_copy - //SEG392 [180] phi (byte) current_orientation#18 = (byte) current_orientation#33 [phi:play_move_down::@7->play_move_down::@return#3] -- register_copy - //SEG393 [180] phi (byte*) current_piece#13 = (byte*) current_piece#23 [phi:play_move_down::@7->play_move_down::@return#4] -- register_copy - //SEG394 [180] phi (byte) current_ypos#16 = (byte) current_ypos#31 [phi:play_move_down::@7->play_move_down::@return#5] -- register_copy - //SEG395 [180] phi (byte) current_movedown_counter#12 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_down::@7->play_move_down::@return#6] -- vbuz1=vbuc1 + //SEG391 [181] phi (byte) current_piece_color#13 = (byte) current_piece_color#23 [phi:play_move_down::@7->play_move_down::@return#0] -- register_copy + //SEG392 [181] phi (byte) current_xpos#19 = (byte) current_xpos#36 [phi:play_move_down::@7->play_move_down::@return#1] -- register_copy + //SEG393 [181] phi (byte*) current_piece_gfx#17 = (byte*) current_piece_gfx#29 [phi:play_move_down::@7->play_move_down::@return#2] -- register_copy + //SEG394 [181] phi (byte) current_orientation#18 = (byte) current_orientation#33 [phi:play_move_down::@7->play_move_down::@return#3] -- register_copy + //SEG395 [181] phi (byte*) current_piece#13 = (byte*) current_piece#23 [phi:play_move_down::@7->play_move_down::@return#4] -- register_copy + //SEG396 [181] phi (byte) current_ypos#16 = (byte) current_ypos#31 [phi:play_move_down::@7->play_move_down::@return#5] -- register_copy + //SEG397 [181] phi (byte) current_movedown_counter#12 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_down::@7->play_move_down::@return#6] -- vbuz1=vbuc1 lda #0 sta current_movedown_counter - //SEG396 [180] phi (byte) play_move_down::return#3 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_move_down::@7->play_move_down::@return#7] -- vbuxx=vbuc1 + //SEG398 [181] phi (byte) play_move_down::return#3 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_move_down::@7->play_move_down::@return#7] -- vbuxx=vbuc1 ldx #1 jmp breturn - //SEG397 [180] phi from play_move_down::@4 to play_move_down::@return [phi:play_move_down::@4->play_move_down::@return] + //SEG399 [181] phi from play_move_down::@4 to play_move_down::@return [phi:play_move_down::@4->play_move_down::@return] breturn_from_b4: - //SEG398 [180] phi (byte) current_piece_color#13 = (byte) current_piece_color#11 [phi:play_move_down::@4->play_move_down::@return#0] -- register_copy - //SEG399 [180] phi (byte) current_xpos#19 = (byte) current_xpos#16 [phi:play_move_down::@4->play_move_down::@return#1] -- register_copy - //SEG400 [180] phi (byte*) current_piece_gfx#17 = (byte*) current_piece_gfx#15 [phi:play_move_down::@4->play_move_down::@return#2] -- register_copy - //SEG401 [180] phi (byte) current_orientation#18 = (byte) current_orientation#15 [phi:play_move_down::@4->play_move_down::@return#3] -- register_copy - //SEG402 [180] phi (byte*) current_piece#13 = (byte*) current_piece#11 [phi:play_move_down::@4->play_move_down::@return#4] -- register_copy - //SEG403 [180] phi (byte) current_ypos#16 = (byte) current_ypos#12 [phi:play_move_down::@4->play_move_down::@return#5] -- register_copy - //SEG404 [180] phi (byte) current_movedown_counter#12 = (byte) current_movedown_counter#10 [phi:play_move_down::@4->play_move_down::@return#6] -- register_copy - //SEG405 [180] phi (byte) play_move_down::return#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_down::@4->play_move_down::@return#7] -- vbuxx=vbuc1 + //SEG400 [181] phi (byte) current_piece_color#13 = (byte) current_piece_color#11 [phi:play_move_down::@4->play_move_down::@return#0] -- register_copy + //SEG401 [181] phi (byte) current_xpos#19 = (byte) current_xpos#16 [phi:play_move_down::@4->play_move_down::@return#1] -- register_copy + //SEG402 [181] phi (byte*) current_piece_gfx#17 = (byte*) current_piece_gfx#15 [phi:play_move_down::@4->play_move_down::@return#2] -- register_copy + //SEG403 [181] phi (byte) current_orientation#18 = (byte) current_orientation#15 [phi:play_move_down::@4->play_move_down::@return#3] -- register_copy + //SEG404 [181] phi (byte*) current_piece#13 = (byte*) current_piece#11 [phi:play_move_down::@4->play_move_down::@return#4] -- register_copy + //SEG405 [181] phi (byte) current_ypos#16 = (byte) current_ypos#12 [phi:play_move_down::@4->play_move_down::@return#5] -- register_copy + //SEG406 [181] phi (byte) current_movedown_counter#12 = (byte) current_movedown_counter#10 [phi:play_move_down::@4->play_move_down::@return#6] -- register_copy + //SEG407 [181] phi (byte) play_move_down::return#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_down::@4->play_move_down::@return#7] -- vbuxx=vbuc1 ldx #0 jmp breturn - //SEG406 play_move_down::@return + //SEG408 play_move_down::@return breturn: - //SEG407 [181] return + //SEG409 [182] return rts - //SEG408 play_move_down::@6 + //SEG410 play_move_down::@6 b6: - //SEG409 [182] (byte) current_ypos#4 ← ++ (byte) current_ypos#12 -- vbuz1=_inc_vbuz1 + //SEG411 [183] (byte) current_ypos#4 ← ++ (byte) current_ypos#12 -- vbuz1=_inc_vbuz1 inc current_ypos - //SEG410 [179] phi from play_move_down::@6 to play_move_down::@7 [phi:play_move_down::@6->play_move_down::@7] + //SEG412 [180] phi from play_move_down::@6 to play_move_down::@7 [phi:play_move_down::@6->play_move_down::@7] b7_from_b6: - //SEG411 [179] phi (byte) current_piece_color#23 = (byte) current_piece_color#11 [phi:play_move_down::@6->play_move_down::@7#0] -- register_copy - //SEG412 [179] phi (byte) current_xpos#36 = (byte) current_xpos#16 [phi:play_move_down::@6->play_move_down::@7#1] -- register_copy - //SEG413 [179] phi (byte*) current_piece_gfx#29 = (byte*) current_piece_gfx#15 [phi:play_move_down::@6->play_move_down::@7#2] -- register_copy - //SEG414 [179] phi (byte) current_orientation#33 = (byte) current_orientation#15 [phi:play_move_down::@6->play_move_down::@7#3] -- register_copy - //SEG415 [179] phi (byte*) current_piece#23 = (byte*) current_piece#11 [phi:play_move_down::@6->play_move_down::@7#4] -- register_copy - //SEG416 [179] phi (byte) current_ypos#31 = (byte) current_ypos#4 [phi:play_move_down::@6->play_move_down::@7#5] -- register_copy + //SEG413 [180] phi (byte) current_piece_color#23 = (byte) current_piece_color#11 [phi:play_move_down::@6->play_move_down::@7#0] -- register_copy + //SEG414 [180] phi (byte) current_xpos#36 = (byte) current_xpos#16 [phi:play_move_down::@6->play_move_down::@7#1] -- register_copy + //SEG415 [180] phi (byte*) current_piece_gfx#29 = (byte*) current_piece_gfx#15 [phi:play_move_down::@6->play_move_down::@7#2] -- register_copy + //SEG416 [180] phi (byte) current_orientation#33 = (byte) current_orientation#15 [phi:play_move_down::@6->play_move_down::@7#3] -- register_copy + //SEG417 [180] phi (byte*) current_piece#23 = (byte*) current_piece#11 [phi:play_move_down::@6->play_move_down::@7#4] -- register_copy + //SEG418 [180] phi (byte) current_ypos#31 = (byte) current_ypos#4 [phi:play_move_down::@6->play_move_down::@7#5] -- register_copy jmp b7 } -//SEG417 spawn_current +//SEG419 spawn_current spawn_current: { .label _3 = 2 - //SEG418 [184] phi from spawn_current to spawn_current::@1 [phi:spawn_current->spawn_current::@1] + //SEG420 [185] phi from spawn_current to spawn_current::@1 [phi:spawn_current->spawn_current::@1] b1_from_spawn_current: - //SEG419 [184] phi (byte) spawn_current::piece_idx#2 = (byte/signed byte/word/signed word/dword/signed dword) 7 [phi:spawn_current->spawn_current::@1#0] -- vbuxx=vbuc1 + //SEG421 [185] phi (byte) spawn_current::piece_idx#2 = (byte/signed byte/word/signed word/dword/signed dword) 7 [phi:spawn_current->spawn_current::@1#0] -- vbuxx=vbuc1 ldx #7 jmp b1 - //SEG420 spawn_current::@1 + //SEG422 spawn_current::@1 b1: - //SEG421 [185] if((byte) spawn_current::piece_idx#2==(byte/signed byte/word/signed word/dword/signed dword) 7) goto spawn_current::@2 -- vbuxx_eq_vbuc1_then_la1 + //SEG423 [186] if((byte) spawn_current::piece_idx#2==(byte/signed byte/word/signed word/dword/signed dword) 7) goto spawn_current::@2 -- vbuxx_eq_vbuc1_then_la1 cpx #7 beq b2_from_b1 jmp b3 - //SEG422 spawn_current::@3 + //SEG424 spawn_current::@3 b3: - //SEG423 [186] (byte~) spawn_current::$3 ← (byte) spawn_current::piece_idx#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuxx_rol_1 + //SEG425 [187] (byte~) spawn_current::$3 ← (byte) spawn_current::piece_idx#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuxx_rol_1 txa asl sta _3 - //SEG424 [187] (byte*) current_piece_gfx#10 ← (byte*)*((const word[]) PIECES#0 + (byte~) spawn_current::$3) + (byte/signed byte/word/signed word/dword/signed dword) 0 -- pbuz1=pptc1_derefidx_vbuz2_plus_0 + //SEG426 [188] (byte*) current_piece_gfx#10 ← (byte*)*((const word[]) PIECES#0 + (byte~) spawn_current::$3) + (byte/signed byte/word/signed word/dword/signed dword) 0 -- pbuz1=pptc1_derefidx_vbuz2_plus_0 ldy _3 lda PIECES,y sta current_piece_gfx lda PIECES+1,y sta current_piece_gfx+1 - //SEG425 [188] (byte) current_piece_color#15 ← *((const byte[]) PIECES_COLORS#0 + (byte) spawn_current::piece_idx#2) -- vbuz1=pbuc1_derefidx_vbuxx + //SEG427 [189] (byte) current_piece_color#15 ← *((const byte[]) PIECES_COLORS#0 + (byte) spawn_current::piece_idx#2) -- vbuz1=pbuc1_derefidx_vbuxx lda PIECES_COLORS,x sta current_piece_color jmp breturn - //SEG426 spawn_current::@return + //SEG428 spawn_current::@return breturn: - //SEG427 [189] return + //SEG429 [190] return rts - //SEG428 [190] phi from spawn_current::@1 to spawn_current::@2 [phi:spawn_current::@1->spawn_current::@2] + //SEG430 [191] phi from spawn_current::@1 to spawn_current::@2 [phi:spawn_current::@1->spawn_current::@2] b2_from_b1: jmp b2 - //SEG429 spawn_current::@2 + //SEG431 spawn_current::@2 b2: - //SEG430 [191] call sid_rnd + //SEG432 [192] call sid_rnd jsr sid_rnd - //SEG431 [192] (byte) sid_rnd::return#2 ← (byte) sid_rnd::return#0 + //SEG433 [193] (byte) sid_rnd::return#2 ← (byte) sid_rnd::return#0 // (byte) sid_rnd::return#2 = (byte) sid_rnd::return#0 // register copy reg byte a jmp b7 - //SEG432 spawn_current::@7 + //SEG434 spawn_current::@7 b7: - //SEG433 [193] (byte~) spawn_current::$1 ← (byte) sid_rnd::return#2 + //SEG435 [194] (byte~) spawn_current::$1 ← (byte) sid_rnd::return#2 // (byte~) spawn_current::$1 = (byte) sid_rnd::return#2 // register copy reg byte a - //SEG434 [194] (byte) spawn_current::piece_idx#1 ← (byte~) spawn_current::$1 & (byte/signed byte/word/signed word/dword/signed dword) 7 -- vbuxx=vbuaa_band_vbuc1 + //SEG436 [195] (byte) spawn_current::piece_idx#1 ← (byte~) spawn_current::$1 & (byte/signed byte/word/signed word/dword/signed dword) 7 -- vbuxx=vbuaa_band_vbuc1 and #7 tax - //SEG435 [184] phi from spawn_current::@7 to spawn_current::@1 [phi:spawn_current::@7->spawn_current::@1] + //SEG437 [185] phi from spawn_current::@7 to spawn_current::@1 [phi:spawn_current::@7->spawn_current::@1] b1_from_b7: - //SEG436 [184] phi (byte) spawn_current::piece_idx#2 = (byte) spawn_current::piece_idx#1 [phi:spawn_current::@7->spawn_current::@1#0] -- register_copy + //SEG438 [185] phi (byte) spawn_current::piece_idx#2 = (byte) spawn_current::piece_idx#1 [phi:spawn_current::@7->spawn_current::@1#0] -- register_copy jmp b1 } -//SEG437 sid_rnd +//SEG439 sid_rnd sid_rnd: { - //SEG438 [195] (byte) sid_rnd::return#0 ← *((const byte*) SID_VOICE3_OSC#0) -- vbuaa=_deref_pbuc1 + //SEG440 [196] (byte) sid_rnd::return#0 ← *((const byte*) SID_VOICE3_OSC#0) -- vbuaa=_deref_pbuc1 lda SID_VOICE3_OSC jmp breturn - //SEG439 sid_rnd::@return + //SEG441 sid_rnd::@return breturn: - //SEG440 [196] return + //SEG442 [197] return rts } -//SEG441 remove_lines +//SEG443 remove_lines remove_lines: { .label c = 7 .label x = 3 .label y = 2 .label full = 4 - //SEG442 [198] phi from remove_lines to remove_lines::@1 [phi:remove_lines->remove_lines::@1] + //SEG444 [199] phi from remove_lines to remove_lines::@1 [phi:remove_lines->remove_lines::@1] b1_from_remove_lines: - //SEG443 [198] phi (byte) remove_lines::y#8 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:remove_lines->remove_lines::@1#0] -- vbuz1=vbuc1 + //SEG445 [199] phi (byte) remove_lines::y#8 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:remove_lines->remove_lines::@1#0] -- vbuz1=vbuc1 lda #0 sta y - //SEG444 [198] phi (byte) remove_lines::w#12 = (const byte) PLAYFIELD_LINES#0*(const byte) PLAYFIELD_COLS#0-(byte/signed byte/word/signed word/dword/signed dword) 1 [phi:remove_lines->remove_lines::@1#1] -- vbuxx=vbuc1 + //SEG446 [199] phi (byte) remove_lines::w#12 = (const byte) PLAYFIELD_LINES#0*(const byte) PLAYFIELD_COLS#0-(byte/signed byte/word/signed word/dword/signed dword) 1 [phi:remove_lines->remove_lines::@1#1] -- vbuxx=vbuc1 ldx #PLAYFIELD_LINES*PLAYFIELD_COLS-1 - //SEG445 [198] phi (byte) remove_lines::r#3 = (const byte) PLAYFIELD_LINES#0*(const byte) PLAYFIELD_COLS#0-(byte/signed byte/word/signed word/dword/signed dword) 1 [phi:remove_lines->remove_lines::@1#2] -- vbuyy=vbuc1 + //SEG447 [199] phi (byte) remove_lines::r#3 = (const byte) PLAYFIELD_LINES#0*(const byte) PLAYFIELD_COLS#0-(byte/signed byte/word/signed word/dword/signed dword) 1 [phi:remove_lines->remove_lines::@1#2] -- vbuyy=vbuc1 ldy #PLAYFIELD_LINES*PLAYFIELD_COLS-1 jmp b1 - //SEG446 [198] phi from remove_lines::@4 to remove_lines::@1 [phi:remove_lines::@4->remove_lines::@1] + //SEG448 [199] phi from remove_lines::@4 to remove_lines::@1 [phi:remove_lines::@4->remove_lines::@1] b1_from_b4: - //SEG447 [198] phi (byte) remove_lines::y#8 = (byte) remove_lines::y#1 [phi:remove_lines::@4->remove_lines::@1#0] -- register_copy - //SEG448 [198] phi (byte) remove_lines::w#12 = (byte) remove_lines::w#11 [phi:remove_lines::@4->remove_lines::@1#1] -- register_copy - //SEG449 [198] phi (byte) remove_lines::r#3 = (byte) remove_lines::r#1 [phi:remove_lines::@4->remove_lines::@1#2] -- register_copy + //SEG449 [199] phi (byte) remove_lines::y#8 = (byte) remove_lines::y#1 [phi:remove_lines::@4->remove_lines::@1#0] -- register_copy + //SEG450 [199] phi (byte) remove_lines::w#12 = (byte) remove_lines::w#11 [phi:remove_lines::@4->remove_lines::@1#1] -- register_copy + //SEG451 [199] phi (byte) remove_lines::r#3 = (byte) remove_lines::r#1 [phi:remove_lines::@4->remove_lines::@1#2] -- register_copy jmp b1 - //SEG450 remove_lines::@1 + //SEG452 remove_lines::@1 b1: - //SEG451 [199] phi from remove_lines::@1 to remove_lines::@2 [phi:remove_lines::@1->remove_lines::@2] + //SEG453 [200] phi from remove_lines::@1 to remove_lines::@2 [phi:remove_lines::@1->remove_lines::@2] b2_from_b1: - //SEG452 [199] phi (byte) remove_lines::full#4 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:remove_lines::@1->remove_lines::@2#0] -- vbuz1=vbuc1 + //SEG454 [200] phi (byte) remove_lines::full#4 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:remove_lines::@1->remove_lines::@2#0] -- vbuz1=vbuc1 lda #1 sta full - //SEG453 [199] phi (byte) remove_lines::x#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:remove_lines::@1->remove_lines::@2#1] -- vbuz1=vbuc1 + //SEG455 [200] phi (byte) remove_lines::x#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:remove_lines::@1->remove_lines::@2#1] -- vbuz1=vbuc1 lda #0 sta x - //SEG454 [199] phi (byte) remove_lines::w#4 = (byte) remove_lines::w#12 [phi:remove_lines::@1->remove_lines::@2#2] -- register_copy - //SEG455 [199] phi (byte) remove_lines::r#2 = (byte) remove_lines::r#3 [phi:remove_lines::@1->remove_lines::@2#3] -- register_copy + //SEG456 [200] phi (byte) remove_lines::w#4 = (byte) remove_lines::w#12 [phi:remove_lines::@1->remove_lines::@2#2] -- register_copy + //SEG457 [200] phi (byte) remove_lines::r#2 = (byte) remove_lines::r#3 [phi:remove_lines::@1->remove_lines::@2#3] -- register_copy jmp b2 - //SEG456 [199] phi from remove_lines::@3 to remove_lines::@2 [phi:remove_lines::@3->remove_lines::@2] + //SEG458 [200] phi from remove_lines::@3 to remove_lines::@2 [phi:remove_lines::@3->remove_lines::@2] b2_from_b3: - //SEG457 [199] phi (byte) remove_lines::full#4 = (byte) remove_lines::full#2 [phi:remove_lines::@3->remove_lines::@2#0] -- register_copy - //SEG458 [199] phi (byte) remove_lines::x#2 = (byte) remove_lines::x#1 [phi:remove_lines::@3->remove_lines::@2#1] -- register_copy - //SEG459 [199] phi (byte) remove_lines::w#4 = (byte) remove_lines::w#1 [phi:remove_lines::@3->remove_lines::@2#2] -- register_copy - //SEG460 [199] phi (byte) remove_lines::r#2 = (byte) remove_lines::r#1 [phi:remove_lines::@3->remove_lines::@2#3] -- register_copy + //SEG459 [200] phi (byte) remove_lines::full#4 = (byte) remove_lines::full#2 [phi:remove_lines::@3->remove_lines::@2#0] -- register_copy + //SEG460 [200] phi (byte) remove_lines::x#2 = (byte) remove_lines::x#1 [phi:remove_lines::@3->remove_lines::@2#1] -- register_copy + //SEG461 [200] phi (byte) remove_lines::w#4 = (byte) remove_lines::w#1 [phi:remove_lines::@3->remove_lines::@2#2] -- register_copy + //SEG462 [200] phi (byte) remove_lines::r#2 = (byte) remove_lines::r#1 [phi:remove_lines::@3->remove_lines::@2#3] -- register_copy jmp b2 - //SEG461 remove_lines::@2 + //SEG463 remove_lines::@2 b2: - //SEG462 [200] (byte) remove_lines::c#0 ← *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) remove_lines::r#2) -- vbuz1=pbuc1_derefidx_vbuyy + //SEG464 [201] (byte) remove_lines::c#0 ← *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) remove_lines::r#2) -- vbuz1=pbuc1_derefidx_vbuyy lda playfield,y sta c - //SEG463 [201] (byte) remove_lines::r#1 ← -- (byte) remove_lines::r#2 -- vbuyy=_dec_vbuyy + //SEG465 [202] (byte) remove_lines::r#1 ← -- (byte) remove_lines::r#2 -- vbuyy=_dec_vbuyy dey - //SEG464 [202] if((byte) remove_lines::c#0!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto remove_lines::@17 -- vbuz1_neq_0_then_la1 + //SEG466 [203] if((byte) remove_lines::c#0!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto remove_lines::@17 -- vbuz1_neq_0_then_la1 lda c cmp #0 bne b17_from_b2 - //SEG465 [203] phi from remove_lines::@2 to remove_lines::@3 [phi:remove_lines::@2->remove_lines::@3] + //SEG467 [204] phi from remove_lines::@2 to remove_lines::@3 [phi:remove_lines::@2->remove_lines::@3] b3_from_b2: - //SEG466 [203] phi (byte) remove_lines::full#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:remove_lines::@2->remove_lines::@3#0] -- vbuz1=vbuc1 + //SEG468 [204] phi (byte) remove_lines::full#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:remove_lines::@2->remove_lines::@3#0] -- vbuz1=vbuc1 lda #0 sta full jmp b3 - //SEG467 remove_lines::@3 + //SEG469 remove_lines::@3 b3: - //SEG468 [204] *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) remove_lines::w#4) ← (byte) remove_lines::c#0 -- pbuc1_derefidx_vbuxx=vbuz1 + //SEG470 [205] *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) remove_lines::w#4) ← (byte) remove_lines::c#0 -- pbuc1_derefidx_vbuxx=vbuz1 lda c sta playfield,x - //SEG469 [205] (byte) remove_lines::w#1 ← -- (byte) remove_lines::w#4 -- vbuxx=_dec_vbuxx + //SEG471 [206] (byte) remove_lines::w#1 ← -- (byte) remove_lines::w#4 -- vbuxx=_dec_vbuxx dex - //SEG470 [206] (byte) remove_lines::x#1 ← ++ (byte) remove_lines::x#2 -- vbuz1=_inc_vbuz1 + //SEG472 [207] (byte) remove_lines::x#1 ← ++ (byte) remove_lines::x#2 -- vbuz1=_inc_vbuz1 inc x - //SEG471 [207] if((byte) remove_lines::x#1!=(const byte) PLAYFIELD_COLS#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto remove_lines::@2 -- vbuz1_neq_vbuc1_then_la1 + //SEG473 [208] if((byte) remove_lines::x#1!=(const byte) PLAYFIELD_COLS#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto remove_lines::@2 -- vbuz1_neq_vbuc1_then_la1 lda x cmp #PLAYFIELD_COLS-1+1 bne b2_from_b3 jmp b9 - //SEG472 remove_lines::@9 + //SEG474 remove_lines::@9 b9: - //SEG473 [208] if((byte) remove_lines::full#2!=(byte/signed byte/word/signed word/dword/signed dword) 1) goto remove_lines::@4 -- vbuz1_neq_vbuc1_then_la1 + //SEG475 [209] if((byte) remove_lines::full#2!=(byte/signed byte/word/signed word/dword/signed dword) 1) goto remove_lines::@4 -- vbuz1_neq_vbuc1_then_la1 lda full cmp #1 bne b4_from_b9 jmp b10 - //SEG474 remove_lines::@10 + //SEG476 remove_lines::@10 b10: - //SEG475 [209] (byte) remove_lines::w#2 ← (byte) remove_lines::w#1 + (const byte) PLAYFIELD_COLS#0 -- vbuxx=vbuxx_plus_vbuc1 + //SEG477 [210] (byte) remove_lines::w#2 ← (byte) remove_lines::w#1 + (const byte) PLAYFIELD_COLS#0 -- vbuxx=vbuxx_plus_vbuc1 txa clc adc #PLAYFIELD_COLS tax - //SEG476 [210] phi from remove_lines::@10 remove_lines::@9 to remove_lines::@4 [phi:remove_lines::@10/remove_lines::@9->remove_lines::@4] + //SEG478 [211] phi from remove_lines::@10 remove_lines::@9 to remove_lines::@4 [phi:remove_lines::@10/remove_lines::@9->remove_lines::@4] b4_from_b10: b4_from_b9: - //SEG477 [210] phi (byte) remove_lines::w#11 = (byte) remove_lines::w#2 [phi:remove_lines::@10/remove_lines::@9->remove_lines::@4#0] -- register_copy + //SEG479 [211] phi (byte) remove_lines::w#11 = (byte) remove_lines::w#2 [phi:remove_lines::@10/remove_lines::@9->remove_lines::@4#0] -- register_copy jmp b4 - //SEG478 remove_lines::@4 + //SEG480 remove_lines::@4 b4: - //SEG479 [211] (byte) remove_lines::y#1 ← ++ (byte) remove_lines::y#8 -- vbuz1=_inc_vbuz1 + //SEG481 [212] (byte) remove_lines::y#1 ← ++ (byte) remove_lines::y#8 -- vbuz1=_inc_vbuz1 inc y - //SEG480 [212] if((byte) remove_lines::y#1!=(const byte) PLAYFIELD_LINES#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto remove_lines::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG482 [213] if((byte) remove_lines::y#1!=(const byte) PLAYFIELD_LINES#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto remove_lines::@1 -- vbuz1_neq_vbuc1_then_la1 lda y cmp #PLAYFIELD_LINES-1+1 bne b1_from_b4 - //SEG481 [213] phi from remove_lines::@4 remove_lines::@6 to remove_lines::@5 [phi:remove_lines::@4/remove_lines::@6->remove_lines::@5] + //SEG483 [214] phi from remove_lines::@4 remove_lines::@6 to remove_lines::@5 [phi:remove_lines::@4/remove_lines::@6->remove_lines::@5] b5_from_b4: b5_from_b6: - //SEG482 [213] phi (byte) remove_lines::w#6 = (byte) remove_lines::w#11 [phi:remove_lines::@4/remove_lines::@6->remove_lines::@5#0] -- register_copy + //SEG484 [214] phi (byte) remove_lines::w#6 = (byte) remove_lines::w#11 [phi:remove_lines::@4/remove_lines::@6->remove_lines::@5#0] -- register_copy jmp b5 - //SEG483 remove_lines::@5 + //SEG485 remove_lines::@5 b5: - //SEG484 [214] if((byte) remove_lines::w#6!=(byte/word/signed word/dword/signed dword) 255) goto remove_lines::@6 -- vbuxx_neq_vbuc1_then_la1 + //SEG486 [215] if((byte) remove_lines::w#6!=(byte/word/signed word/dword/signed dword) 255) goto remove_lines::@6 -- vbuxx_neq_vbuc1_then_la1 cpx #$ff bne b6 jmp breturn - //SEG485 remove_lines::@return + //SEG487 remove_lines::@return breturn: - //SEG486 [215] return + //SEG488 [216] return rts - //SEG487 remove_lines::@6 + //SEG489 remove_lines::@6 b6: - //SEG488 [216] *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) remove_lines::w#6) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- pbuc1_derefidx_vbuxx=vbuc2 + //SEG490 [217] *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) remove_lines::w#6) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- pbuc1_derefidx_vbuxx=vbuc2 lda #0 sta playfield,x - //SEG489 [217] (byte) remove_lines::w#3 ← -- (byte) remove_lines::w#6 -- vbuxx=_dec_vbuxx + //SEG491 [218] (byte) remove_lines::w#3 ← -- (byte) remove_lines::w#6 -- vbuxx=_dec_vbuxx dex jmp b5_from_b6 - //SEG490 [218] phi from remove_lines::@2 to remove_lines::@17 [phi:remove_lines::@2->remove_lines::@17] + //SEG492 [219] phi from remove_lines::@2 to remove_lines::@17 [phi:remove_lines::@2->remove_lines::@17] b17_from_b2: jmp b17 - //SEG491 remove_lines::@17 + //SEG493 remove_lines::@17 b17: - //SEG492 [203] phi from remove_lines::@17 to remove_lines::@3 [phi:remove_lines::@17->remove_lines::@3] + //SEG494 [204] phi from remove_lines::@17 to remove_lines::@3 [phi:remove_lines::@17->remove_lines::@3] b3_from_b17: - //SEG493 [203] phi (byte) remove_lines::full#2 = (byte) remove_lines::full#4 [phi:remove_lines::@17->remove_lines::@3#0] -- register_copy + //SEG495 [204] phi (byte) remove_lines::full#2 = (byte) remove_lines::full#4 [phi:remove_lines::@17->remove_lines::@3#0] -- register_copy jmp b3 } -//SEG494 lock_current +//SEG496 lock_current lock_current: { .label ypos2 = 2 .label playfield_line = 5 @@ -10382,476 +10414,476 @@ lock_current: { .label i_3 = 4 .label i_7 = 4 .label i_9 = 4 - //SEG495 [219] (byte) lock_current::ypos2#0 ← (byte) current_ypos#12 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz1_rol_1 + //SEG497 [220] (byte) lock_current::ypos2#0 ← (byte) current_ypos#12 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz1_rol_1 asl ypos2 - //SEG496 [220] phi from lock_current to lock_current::@1 [phi:lock_current->lock_current::@1] + //SEG498 [221] phi from lock_current to lock_current::@1 [phi:lock_current->lock_current::@1] b1_from_lock_current: - //SEG497 [220] phi (byte) lock_current::l#6 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:lock_current->lock_current::@1#0] -- vbuz1=vbuc1 + //SEG499 [221] phi (byte) lock_current::l#6 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:lock_current->lock_current::@1#0] -- vbuz1=vbuc1 lda #0 sta l - //SEG498 [220] phi (byte) lock_current::i#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:lock_current->lock_current::@1#1] -- vbuz1=vbuc1 + //SEG500 [221] phi (byte) lock_current::i#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:lock_current->lock_current::@1#1] -- vbuz1=vbuc1 lda #0 sta i_3 - //SEG499 [220] phi (byte) lock_current::ypos2#2 = (byte) lock_current::ypos2#0 [phi:lock_current->lock_current::@1#2] -- register_copy + //SEG501 [221] phi (byte) lock_current::ypos2#2 = (byte) lock_current::ypos2#0 [phi:lock_current->lock_current::@1#2] -- register_copy jmp b1 - //SEG500 lock_current::@1 + //SEG502 lock_current::@1 b1: - //SEG501 [221] (byte*) lock_current::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) lock_current::ypos2#2) -- pbuz1=pptc1_derefidx_vbuz2 + //SEG503 [222] (byte*) lock_current::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) lock_current::ypos2#2) -- pbuz1=pptc1_derefidx_vbuz2 ldy ypos2 lda playfield_lines,y sta playfield_line lda playfield_lines+1,y sta playfield_line+1 - //SEG502 [222] (byte) lock_current::col#0 ← (byte) current_xpos#16 -- vbuz1=vbuz2 + //SEG504 [223] (byte) lock_current::col#0 ← (byte) current_xpos#16 -- vbuz1=vbuz2 lda current_xpos sta col - //SEG503 [223] phi from lock_current::@1 to lock_current::@2 [phi:lock_current::@1->lock_current::@2] + //SEG505 [224] phi from lock_current::@1 to lock_current::@2 [phi:lock_current::@1->lock_current::@2] b2_from_b1: - //SEG504 [223] phi (byte) lock_current::c#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:lock_current::@1->lock_current::@2#0] -- vbuxx=vbuc1 + //SEG506 [224] phi (byte) lock_current::c#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:lock_current::@1->lock_current::@2#0] -- vbuxx=vbuc1 ldx #0 - //SEG505 [223] phi (byte) lock_current::col#2 = (byte) lock_current::col#0 [phi:lock_current::@1->lock_current::@2#1] -- register_copy - //SEG506 [223] phi (byte) lock_current::i#2 = (byte) lock_current::i#3 [phi:lock_current::@1->lock_current::@2#2] -- register_copy + //SEG507 [224] phi (byte) lock_current::col#2 = (byte) lock_current::col#0 [phi:lock_current::@1->lock_current::@2#1] -- register_copy + //SEG508 [224] phi (byte) lock_current::i#2 = (byte) lock_current::i#3 [phi:lock_current::@1->lock_current::@2#2] -- register_copy jmp b2 - //SEG507 lock_current::@2 + //SEG509 lock_current::@2 b2: - //SEG508 [224] (byte) lock_current::i#1 ← ++ (byte) lock_current::i#2 -- vbuz1=_inc_vbuz2 + //SEG510 [225] (byte) lock_current::i#1 ← ++ (byte) lock_current::i#2 -- vbuz1=_inc_vbuz2 ldy i_2 iny sty i - //SEG509 [225] if(*((byte*) current_piece_gfx#15 + (byte) lock_current::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto lock_current::@3 -- pbuz1_derefidx_vbuz2_eq_0_then_la1 + //SEG511 [226] if(*((byte*) current_piece_gfx#15 + (byte) lock_current::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto lock_current::@3 -- pbuz1_derefidx_vbuz2_eq_0_then_la1 ldy i_2 lda (current_piece_gfx),y cmp #0 beq b3 jmp b4 - //SEG510 lock_current::@4 + //SEG512 lock_current::@4 b4: - //SEG511 [226] *((byte*) lock_current::playfield_line#0 + (byte) lock_current::col#2) ← (byte) current_piece_color#11 -- pbuz1_derefidx_vbuz2=vbuz3 + //SEG513 [227] *((byte*) lock_current::playfield_line#0 + (byte) lock_current::col#2) ← (byte) current_piece_color#11 -- pbuz1_derefidx_vbuz2=vbuz3 lda current_piece_color ldy col sta (playfield_line),y jmp b3 - //SEG512 lock_current::@3 + //SEG514 lock_current::@3 b3: - //SEG513 [227] (byte) lock_current::col#1 ← ++ (byte) lock_current::col#2 -- vbuz1=_inc_vbuz1 + //SEG515 [228] (byte) lock_current::col#1 ← ++ (byte) lock_current::col#2 -- vbuz1=_inc_vbuz1 inc col - //SEG514 [228] (byte) lock_current::c#1 ← ++ (byte) lock_current::c#2 -- vbuxx=_inc_vbuxx + //SEG516 [229] (byte) lock_current::c#1 ← ++ (byte) lock_current::c#2 -- vbuxx=_inc_vbuxx inx - //SEG515 [229] if((byte) lock_current::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto lock_current::@8 -- vbuxx_neq_vbuc1_then_la1 + //SEG517 [230] if((byte) lock_current::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto lock_current::@8 -- vbuxx_neq_vbuc1_then_la1 cpx #4 bne b8 jmp b5 - //SEG516 lock_current::@5 + //SEG518 lock_current::@5 b5: - //SEG517 [230] (byte) lock_current::ypos2#1 ← (byte) lock_current::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 -- vbuz1=vbuz1_plus_2 + //SEG519 [231] (byte) lock_current::ypos2#1 ← (byte) lock_current::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 -- vbuz1=vbuz1_plus_2 lda ypos2 clc adc #2 sta ypos2 - //SEG518 [231] (byte) lock_current::l#1 ← ++ (byte) lock_current::l#6 -- vbuz1=_inc_vbuz1 + //SEG520 [232] (byte) lock_current::l#1 ← ++ (byte) lock_current::l#6 -- vbuz1=_inc_vbuz1 inc l - //SEG519 [232] if((byte) lock_current::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto lock_current::@7 -- vbuz1_neq_vbuc1_then_la1 + //SEG521 [233] if((byte) lock_current::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto lock_current::@7 -- vbuz1_neq_vbuc1_then_la1 lda l cmp #4 bne b7 jmp breturn - //SEG520 lock_current::@return + //SEG522 lock_current::@return breturn: - //SEG521 [233] return + //SEG523 [234] return rts - //SEG522 lock_current::@7 + //SEG524 lock_current::@7 b7: - //SEG523 [234] (byte~) lock_current::i#7 ← (byte) lock_current::i#1 -- vbuz1=vbuz2 + //SEG525 [235] (byte~) lock_current::i#7 ← (byte) lock_current::i#1 -- vbuz1=vbuz2 lda i sta i_7 - //SEG524 [220] phi from lock_current::@7 to lock_current::@1 [phi:lock_current::@7->lock_current::@1] + //SEG526 [221] phi from lock_current::@7 to lock_current::@1 [phi:lock_current::@7->lock_current::@1] b1_from_b7: - //SEG525 [220] phi (byte) lock_current::l#6 = (byte) lock_current::l#1 [phi:lock_current::@7->lock_current::@1#0] -- register_copy - //SEG526 [220] phi (byte) lock_current::i#3 = (byte~) lock_current::i#7 [phi:lock_current::@7->lock_current::@1#1] -- register_copy - //SEG527 [220] phi (byte) lock_current::ypos2#2 = (byte) lock_current::ypos2#1 [phi:lock_current::@7->lock_current::@1#2] -- register_copy + //SEG527 [221] phi (byte) lock_current::l#6 = (byte) lock_current::l#1 [phi:lock_current::@7->lock_current::@1#0] -- register_copy + //SEG528 [221] phi (byte) lock_current::i#3 = (byte~) lock_current::i#7 [phi:lock_current::@7->lock_current::@1#1] -- register_copy + //SEG529 [221] phi (byte) lock_current::ypos2#2 = (byte) lock_current::ypos2#1 [phi:lock_current::@7->lock_current::@1#2] -- register_copy jmp b1 - //SEG528 lock_current::@8 + //SEG530 lock_current::@8 b8: - //SEG529 [235] (byte~) lock_current::i#9 ← (byte) lock_current::i#1 -- vbuz1=vbuz2 + //SEG531 [236] (byte~) lock_current::i#9 ← (byte) lock_current::i#1 -- vbuz1=vbuz2 lda i sta i_9 - //SEG530 [223] phi from lock_current::@8 to lock_current::@2 [phi:lock_current::@8->lock_current::@2] + //SEG532 [224] phi from lock_current::@8 to lock_current::@2 [phi:lock_current::@8->lock_current::@2] b2_from_b8: - //SEG531 [223] phi (byte) lock_current::c#2 = (byte) lock_current::c#1 [phi:lock_current::@8->lock_current::@2#0] -- register_copy - //SEG532 [223] phi (byte) lock_current::col#2 = (byte) lock_current::col#1 [phi:lock_current::@8->lock_current::@2#1] -- register_copy - //SEG533 [223] phi (byte) lock_current::i#2 = (byte~) lock_current::i#9 [phi:lock_current::@8->lock_current::@2#2] -- register_copy + //SEG533 [224] phi (byte) lock_current::c#2 = (byte) lock_current::c#1 [phi:lock_current::@8->lock_current::@2#0] -- register_copy + //SEG534 [224] phi (byte) lock_current::col#2 = (byte) lock_current::col#1 [phi:lock_current::@8->lock_current::@2#1] -- register_copy + //SEG535 [224] phi (byte) lock_current::i#2 = (byte~) lock_current::i#9 [phi:lock_current::@8->lock_current::@2#2] -- register_copy jmp b2 } -//SEG534 keyboard_event_pressed +//SEG536 keyboard_event_pressed keyboard_event_pressed: { .label row_bits = 7 .label keycode = 4 - //SEG535 [237] (byte~) keyboard_event_pressed::$0 ← (byte) keyboard_event_pressed::keycode#5 >> (byte/signed byte/word/signed word/dword/signed dword) 3 -- vbuaa=vbuz1_ror_3 + //SEG537 [238] (byte~) keyboard_event_pressed::$0 ← (byte) keyboard_event_pressed::keycode#5 >> (byte/signed byte/word/signed word/dword/signed dword) 3 -- vbuaa=vbuz1_ror_3 lda keycode lsr lsr lsr - //SEG536 [238] (byte) keyboard_event_pressed::row_bits#0 ← *((const byte[8]) keyboard_scan_values#0 + (byte~) keyboard_event_pressed::$0) -- vbuz1=pbuc1_derefidx_vbuaa + //SEG538 [239] (byte) keyboard_event_pressed::row_bits#0 ← *((const byte[8]) keyboard_scan_values#0 + (byte~) keyboard_event_pressed::$0) -- vbuz1=pbuc1_derefidx_vbuaa tay lda keyboard_scan_values,y sta row_bits - //SEG537 [239] (byte~) keyboard_event_pressed::$1 ← (byte) keyboard_event_pressed::keycode#5 & (byte/signed byte/word/signed word/dword/signed dword) 7 -- vbuaa=vbuz1_band_vbuc1 + //SEG539 [240] (byte~) keyboard_event_pressed::$1 ← (byte) keyboard_event_pressed::keycode#5 & (byte/signed byte/word/signed word/dword/signed dword) 7 -- vbuaa=vbuz1_band_vbuc1 lda #7 and keycode - //SEG538 [240] (byte) keyboard_event_pressed::return#11 ← (byte) keyboard_event_pressed::row_bits#0 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte~) keyboard_event_pressed::$1) -- vbuaa=vbuz1_band_pbuc1_derefidx_vbuaa + //SEG540 [241] (byte) keyboard_event_pressed::return#11 ← (byte) keyboard_event_pressed::row_bits#0 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte~) keyboard_event_pressed::$1) -- vbuaa=vbuz1_band_pbuc1_derefidx_vbuaa tay lda keyboard_matrix_col_bitmask,y and row_bits jmp breturn - //SEG539 keyboard_event_pressed::@return + //SEG541 keyboard_event_pressed::@return breturn: - //SEG540 [241] return + //SEG542 [242] return rts } -//SEG541 keyboard_event_get +//SEG543 keyboard_event_get keyboard_event_get: { - //SEG542 [242] if((byte) keyboard_events_size#13==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_get::@return -- vbuz1_eq_0_then_la1 + //SEG544 [243] if((byte) keyboard_events_size#13==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_get::@return -- vbuz1_eq_0_then_la1 lda keyboard_events_size cmp #0 beq breturn_from_keyboard_event_get jmp b3 - //SEG543 keyboard_event_get::@3 + //SEG545 keyboard_event_get::@3 b3: - //SEG544 [243] (byte) keyboard_events_size#4 ← -- (byte) keyboard_events_size#13 -- vbuz1=_dec_vbuz1 + //SEG546 [244] (byte) keyboard_events_size#4 ← -- (byte) keyboard_events_size#13 -- vbuz1=_dec_vbuz1 dec keyboard_events_size - //SEG545 [244] (byte) keyboard_event_get::return#1 ← *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#4) -- vbuaa=pbuc1_derefidx_vbuz1 + //SEG547 [245] (byte) keyboard_event_get::return#1 ← *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#4) -- vbuaa=pbuc1_derefidx_vbuz1 ldy keyboard_events_size lda keyboard_events,y - //SEG546 [245] phi from keyboard_event_get::@3 to keyboard_event_get::@return [phi:keyboard_event_get::@3->keyboard_event_get::@return] + //SEG548 [246] phi from keyboard_event_get::@3 to keyboard_event_get::@return [phi:keyboard_event_get::@3->keyboard_event_get::@return] breturn_from_b3: - //SEG547 [245] phi (byte) keyboard_events_size#16 = (byte) keyboard_events_size#4 [phi:keyboard_event_get::@3->keyboard_event_get::@return#0] -- register_copy - //SEG548 [245] phi (byte) keyboard_event_get::return#2 = (byte) keyboard_event_get::return#1 [phi:keyboard_event_get::@3->keyboard_event_get::@return#1] -- register_copy + //SEG549 [246] phi (byte) keyboard_events_size#16 = (byte) keyboard_events_size#4 [phi:keyboard_event_get::@3->keyboard_event_get::@return#0] -- register_copy + //SEG550 [246] phi (byte) keyboard_event_get::return#2 = (byte) keyboard_event_get::return#1 [phi:keyboard_event_get::@3->keyboard_event_get::@return#1] -- register_copy jmp breturn - //SEG549 [245] phi from keyboard_event_get to keyboard_event_get::@return [phi:keyboard_event_get->keyboard_event_get::@return] + //SEG551 [246] phi from keyboard_event_get to keyboard_event_get::@return [phi:keyboard_event_get->keyboard_event_get::@return] breturn_from_keyboard_event_get: - //SEG550 [245] phi (byte) keyboard_events_size#16 = (byte) keyboard_events_size#13 [phi:keyboard_event_get->keyboard_event_get::@return#0] -- register_copy - //SEG551 [245] phi (byte) keyboard_event_get::return#2 = (byte/word/signed word/dword/signed dword) 255 [phi:keyboard_event_get->keyboard_event_get::@return#1] -- vbuaa=vbuc1 + //SEG552 [246] phi (byte) keyboard_events_size#16 = (byte) keyboard_events_size#13 [phi:keyboard_event_get->keyboard_event_get::@return#0] -- register_copy + //SEG553 [246] phi (byte) keyboard_event_get::return#2 = (byte/word/signed word/dword/signed dword) 255 [phi:keyboard_event_get->keyboard_event_get::@return#1] -- vbuaa=vbuc1 lda #$ff jmp breturn - //SEG552 keyboard_event_get::@return + //SEG554 keyboard_event_get::@return breturn: - //SEG553 [246] return + //SEG555 [247] return rts } -//SEG554 keyboard_event_scan +//SEG556 keyboard_event_scan keyboard_event_scan: { .label row_scan = 8 .label keycode = 7 .label row = 4 - //SEG555 [248] phi from keyboard_event_scan to keyboard_event_scan::@1 [phi:keyboard_event_scan->keyboard_event_scan::@1] + //SEG557 [249] phi from keyboard_event_scan to keyboard_event_scan::@1 [phi:keyboard_event_scan->keyboard_event_scan::@1] b1_from_keyboard_event_scan: - //SEG556 [248] phi (byte) keyboard_events_size#29 = (byte) keyboard_events_size#19 [phi:keyboard_event_scan->keyboard_event_scan::@1#0] -- register_copy - //SEG557 [248] phi (byte) keyboard_event_scan::keycode#11 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:keyboard_event_scan->keyboard_event_scan::@1#1] -- vbuz1=vbuc1 + //SEG558 [249] phi (byte) keyboard_events_size#29 = (byte) keyboard_events_size#19 [phi:keyboard_event_scan->keyboard_event_scan::@1#0] -- register_copy + //SEG559 [249] phi (byte) keyboard_event_scan::keycode#11 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:keyboard_event_scan->keyboard_event_scan::@1#1] -- vbuz1=vbuc1 lda #0 sta keycode - //SEG558 [248] phi (byte) keyboard_event_scan::row#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:keyboard_event_scan->keyboard_event_scan::@1#2] -- vbuz1=vbuc1 + //SEG560 [249] phi (byte) keyboard_event_scan::row#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:keyboard_event_scan->keyboard_event_scan::@1#2] -- vbuz1=vbuc1 lda #0 sta row jmp b1 - //SEG559 [248] phi from keyboard_event_scan::@3 to keyboard_event_scan::@1 [phi:keyboard_event_scan::@3->keyboard_event_scan::@1] + //SEG561 [249] phi from keyboard_event_scan::@3 to keyboard_event_scan::@1 [phi:keyboard_event_scan::@3->keyboard_event_scan::@1] b1_from_b3: - //SEG560 [248] phi (byte) keyboard_events_size#29 = (byte) keyboard_events_size#13 [phi:keyboard_event_scan::@3->keyboard_event_scan::@1#0] -- register_copy - //SEG561 [248] phi (byte) keyboard_event_scan::keycode#11 = (byte) keyboard_event_scan::keycode#14 [phi:keyboard_event_scan::@3->keyboard_event_scan::@1#1] -- register_copy - //SEG562 [248] phi (byte) keyboard_event_scan::row#2 = (byte) keyboard_event_scan::row#1 [phi:keyboard_event_scan::@3->keyboard_event_scan::@1#2] -- register_copy + //SEG562 [249] phi (byte) keyboard_events_size#29 = (byte) keyboard_events_size#13 [phi:keyboard_event_scan::@3->keyboard_event_scan::@1#0] -- register_copy + //SEG563 [249] phi (byte) keyboard_event_scan::keycode#11 = (byte) keyboard_event_scan::keycode#14 [phi:keyboard_event_scan::@3->keyboard_event_scan::@1#1] -- register_copy + //SEG564 [249] phi (byte) keyboard_event_scan::row#2 = (byte) keyboard_event_scan::row#1 [phi:keyboard_event_scan::@3->keyboard_event_scan::@1#2] -- register_copy jmp b1 - //SEG563 keyboard_event_scan::@1 + //SEG565 keyboard_event_scan::@1 b1: - //SEG564 [249] (byte) keyboard_matrix_read::rowid#0 ← (byte) keyboard_event_scan::row#2 -- vbuxx=vbuz1 + //SEG566 [250] (byte) keyboard_matrix_read::rowid#0 ← (byte) keyboard_event_scan::row#2 -- vbuxx=vbuz1 ldx row - //SEG565 [250] call keyboard_matrix_read + //SEG567 [251] call keyboard_matrix_read jsr keyboard_matrix_read - //SEG566 [251] (byte) keyboard_matrix_read::return#2 ← (byte) keyboard_matrix_read::return#0 + //SEG568 [252] (byte) keyboard_matrix_read::return#2 ← (byte) keyboard_matrix_read::return#0 // (byte) keyboard_matrix_read::return#2 = (byte) keyboard_matrix_read::return#0 // register copy reg byte a jmp b25 - //SEG567 keyboard_event_scan::@25 + //SEG569 keyboard_event_scan::@25 b25: - //SEG568 [252] (byte) keyboard_event_scan::row_scan#0 ← (byte) keyboard_matrix_read::return#2 -- vbuz1=vbuaa + //SEG570 [253] (byte) keyboard_event_scan::row_scan#0 ← (byte) keyboard_matrix_read::return#2 -- vbuz1=vbuaa sta row_scan - //SEG569 [253] if((byte) keyboard_event_scan::row_scan#0!=*((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2)) goto keyboard_event_scan::@4 -- vbuz1_neq_pbuc1_derefidx_vbuz2_then_la1 + //SEG571 [254] if((byte) keyboard_event_scan::row_scan#0!=*((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2)) goto keyboard_event_scan::@4 -- vbuz1_neq_pbuc1_derefidx_vbuz2_then_la1 lda row_scan ldy row cmp keyboard_scan_values,y bne b4_from_b25 jmp b13 - //SEG570 keyboard_event_scan::@13 + //SEG572 keyboard_event_scan::@13 b13: - //SEG571 [254] (byte) keyboard_event_scan::keycode#1 ← (byte) keyboard_event_scan::keycode#11 + (byte/signed byte/word/signed word/dword/signed dword) 8 -- vbuz1=vbuz1_plus_vbuc1 + //SEG573 [255] (byte) keyboard_event_scan::keycode#1 ← (byte) keyboard_event_scan::keycode#11 + (byte/signed byte/word/signed word/dword/signed dword) 8 -- vbuz1=vbuz1_plus_vbuc1 lda #8 clc adc keycode sta keycode - //SEG572 [255] phi from keyboard_event_scan::@13 keyboard_event_scan::@19 to keyboard_event_scan::@3 [phi:keyboard_event_scan::@13/keyboard_event_scan::@19->keyboard_event_scan::@3] + //SEG574 [256] phi from keyboard_event_scan::@13 keyboard_event_scan::@19 to keyboard_event_scan::@3 [phi:keyboard_event_scan::@13/keyboard_event_scan::@19->keyboard_event_scan::@3] b3_from_b13: b3_from_b19: - //SEG573 [255] phi (byte) keyboard_events_size#13 = (byte) keyboard_events_size#29 [phi:keyboard_event_scan::@13/keyboard_event_scan::@19->keyboard_event_scan::@3#0] -- register_copy - //SEG574 [255] phi (byte) keyboard_event_scan::keycode#14 = (byte) keyboard_event_scan::keycode#1 [phi:keyboard_event_scan::@13/keyboard_event_scan::@19->keyboard_event_scan::@3#1] -- register_copy + //SEG575 [256] phi (byte) keyboard_events_size#13 = (byte) keyboard_events_size#29 [phi:keyboard_event_scan::@13/keyboard_event_scan::@19->keyboard_event_scan::@3#0] -- register_copy + //SEG576 [256] phi (byte) keyboard_event_scan::keycode#14 = (byte) keyboard_event_scan::keycode#1 [phi:keyboard_event_scan::@13/keyboard_event_scan::@19->keyboard_event_scan::@3#1] -- register_copy jmp b3 - //SEG575 keyboard_event_scan::@3 + //SEG577 keyboard_event_scan::@3 b3: - //SEG576 [256] (byte) keyboard_event_scan::row#1 ← ++ (byte) keyboard_event_scan::row#2 -- vbuz1=_inc_vbuz1 + //SEG578 [257] (byte) keyboard_event_scan::row#1 ← ++ (byte) keyboard_event_scan::row#2 -- vbuz1=_inc_vbuz1 inc row - //SEG577 [257] if((byte) keyboard_event_scan::row#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto keyboard_event_scan::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG579 [258] if((byte) keyboard_event_scan::row#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto keyboard_event_scan::@1 -- vbuz1_neq_vbuc1_then_la1 lda row cmp #8 bne b1_from_b3 - //SEG578 [258] phi from keyboard_event_scan::@3 to keyboard_event_scan::@20 [phi:keyboard_event_scan::@3->keyboard_event_scan::@20] + //SEG580 [259] phi from keyboard_event_scan::@3 to keyboard_event_scan::@20 [phi:keyboard_event_scan::@3->keyboard_event_scan::@20] b20_from_b3: jmp b20 - //SEG579 keyboard_event_scan::@20 + //SEG581 keyboard_event_scan::@20 b20: - //SEG580 [259] call keyboard_event_pressed - //SEG581 [236] phi from keyboard_event_scan::@20 to keyboard_event_pressed [phi:keyboard_event_scan::@20->keyboard_event_pressed] + //SEG582 [260] call keyboard_event_pressed + //SEG583 [237] phi from keyboard_event_scan::@20 to keyboard_event_pressed [phi:keyboard_event_scan::@20->keyboard_event_pressed] keyboard_event_pressed_from_b20: - //SEG582 [236] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_LSHIFT#0 [phi:keyboard_event_scan::@20->keyboard_event_pressed#0] -- vbuz1=vbuc1 + //SEG584 [237] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_LSHIFT#0 [phi:keyboard_event_scan::@20->keyboard_event_pressed#0] -- vbuz1=vbuc1 lda #KEY_LSHIFT sta keyboard_event_pressed.keycode jsr keyboard_event_pressed - //SEG583 [260] (byte) keyboard_event_pressed::return#0 ← (byte) keyboard_event_pressed::return#11 + //SEG585 [261] (byte) keyboard_event_pressed::return#0 ← (byte) keyboard_event_pressed::return#11 // (byte) keyboard_event_pressed::return#0 = (byte) keyboard_event_pressed::return#11 // register copy reg byte a jmp b26 - //SEG584 keyboard_event_scan::@26 + //SEG586 keyboard_event_scan::@26 b26: - //SEG585 [261] (byte~) keyboard_event_scan::$14 ← (byte) keyboard_event_pressed::return#0 + //SEG587 [262] (byte~) keyboard_event_scan::$14 ← (byte) keyboard_event_pressed::return#0 // (byte~) keyboard_event_scan::$14 = (byte) keyboard_event_pressed::return#0 // register copy reg byte a - //SEG586 [262] if((byte~) keyboard_event_scan::$14==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@9 -- vbuaa_eq_0_then_la1 + //SEG588 [263] if((byte~) keyboard_event_scan::$14==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@9 -- vbuaa_eq_0_then_la1 cmp #0 beq b9_from_b26 - //SEG587 [263] phi from keyboard_event_scan::@26 to keyboard_event_scan::@21 [phi:keyboard_event_scan::@26->keyboard_event_scan::@21] + //SEG589 [264] phi from keyboard_event_scan::@26 to keyboard_event_scan::@21 [phi:keyboard_event_scan::@26->keyboard_event_scan::@21] b21_from_b26: jmp b21 - //SEG588 keyboard_event_scan::@21 + //SEG590 keyboard_event_scan::@21 b21: - //SEG589 [264] phi from keyboard_event_scan::@21 keyboard_event_scan::@26 to keyboard_event_scan::@9 [phi:keyboard_event_scan::@21/keyboard_event_scan::@26->keyboard_event_scan::@9] + //SEG591 [265] phi from keyboard_event_scan::@21 keyboard_event_scan::@26 to keyboard_event_scan::@9 [phi:keyboard_event_scan::@21/keyboard_event_scan::@26->keyboard_event_scan::@9] b9_from_b21: b9_from_b26: jmp b9 - //SEG590 keyboard_event_scan::@9 + //SEG592 keyboard_event_scan::@9 b9: - //SEG591 [265] call keyboard_event_pressed - //SEG592 [236] phi from keyboard_event_scan::@9 to keyboard_event_pressed [phi:keyboard_event_scan::@9->keyboard_event_pressed] + //SEG593 [266] call keyboard_event_pressed + //SEG594 [237] phi from keyboard_event_scan::@9 to keyboard_event_pressed [phi:keyboard_event_scan::@9->keyboard_event_pressed] keyboard_event_pressed_from_b9: - //SEG593 [236] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_RSHIFT#0 [phi:keyboard_event_scan::@9->keyboard_event_pressed#0] -- vbuz1=vbuc1 + //SEG595 [237] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_RSHIFT#0 [phi:keyboard_event_scan::@9->keyboard_event_pressed#0] -- vbuz1=vbuc1 lda #KEY_RSHIFT sta keyboard_event_pressed.keycode jsr keyboard_event_pressed - //SEG594 [266] (byte) keyboard_event_pressed::return#1 ← (byte) keyboard_event_pressed::return#11 + //SEG596 [267] (byte) keyboard_event_pressed::return#1 ← (byte) keyboard_event_pressed::return#11 // (byte) keyboard_event_pressed::return#1 = (byte) keyboard_event_pressed::return#11 // register copy reg byte a jmp b27 - //SEG595 keyboard_event_scan::@27 + //SEG597 keyboard_event_scan::@27 b27: - //SEG596 [267] (byte~) keyboard_event_scan::$18 ← (byte) keyboard_event_pressed::return#1 + //SEG598 [268] (byte~) keyboard_event_scan::$18 ← (byte) keyboard_event_pressed::return#1 // (byte~) keyboard_event_scan::$18 = (byte) keyboard_event_pressed::return#1 // register copy reg byte a - //SEG597 [268] if((byte~) keyboard_event_scan::$18==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@10 -- vbuaa_eq_0_then_la1 + //SEG599 [269] if((byte~) keyboard_event_scan::$18==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@10 -- vbuaa_eq_0_then_la1 cmp #0 beq b10_from_b27 - //SEG598 [269] phi from keyboard_event_scan::@27 to keyboard_event_scan::@22 [phi:keyboard_event_scan::@27->keyboard_event_scan::@22] + //SEG600 [270] phi from keyboard_event_scan::@27 to keyboard_event_scan::@22 [phi:keyboard_event_scan::@27->keyboard_event_scan::@22] b22_from_b27: jmp b22 - //SEG599 keyboard_event_scan::@22 + //SEG601 keyboard_event_scan::@22 b22: - //SEG600 [270] phi from keyboard_event_scan::@22 keyboard_event_scan::@27 to keyboard_event_scan::@10 [phi:keyboard_event_scan::@22/keyboard_event_scan::@27->keyboard_event_scan::@10] + //SEG602 [271] phi from keyboard_event_scan::@22 keyboard_event_scan::@27 to keyboard_event_scan::@10 [phi:keyboard_event_scan::@22/keyboard_event_scan::@27->keyboard_event_scan::@10] b10_from_b22: b10_from_b27: jmp b10 - //SEG601 keyboard_event_scan::@10 + //SEG603 keyboard_event_scan::@10 b10: - //SEG602 [271] call keyboard_event_pressed - //SEG603 [236] phi from keyboard_event_scan::@10 to keyboard_event_pressed [phi:keyboard_event_scan::@10->keyboard_event_pressed] + //SEG604 [272] call keyboard_event_pressed + //SEG605 [237] phi from keyboard_event_scan::@10 to keyboard_event_pressed [phi:keyboard_event_scan::@10->keyboard_event_pressed] keyboard_event_pressed_from_b10: - //SEG604 [236] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_CTRL#0 [phi:keyboard_event_scan::@10->keyboard_event_pressed#0] -- vbuz1=vbuc1 + //SEG606 [237] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_CTRL#0 [phi:keyboard_event_scan::@10->keyboard_event_pressed#0] -- vbuz1=vbuc1 lda #KEY_CTRL sta keyboard_event_pressed.keycode jsr keyboard_event_pressed - //SEG605 [272] (byte) keyboard_event_pressed::return#2 ← (byte) keyboard_event_pressed::return#11 + //SEG607 [273] (byte) keyboard_event_pressed::return#2 ← (byte) keyboard_event_pressed::return#11 // (byte) keyboard_event_pressed::return#2 = (byte) keyboard_event_pressed::return#11 // register copy reg byte a jmp b28 - //SEG606 keyboard_event_scan::@28 + //SEG608 keyboard_event_scan::@28 b28: - //SEG607 [273] (byte~) keyboard_event_scan::$22 ← (byte) keyboard_event_pressed::return#2 + //SEG609 [274] (byte~) keyboard_event_scan::$22 ← (byte) keyboard_event_pressed::return#2 // (byte~) keyboard_event_scan::$22 = (byte) keyboard_event_pressed::return#2 // register copy reg byte a - //SEG608 [274] if((byte~) keyboard_event_scan::$22==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@11 -- vbuaa_eq_0_then_la1 + //SEG610 [275] if((byte~) keyboard_event_scan::$22==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@11 -- vbuaa_eq_0_then_la1 cmp #0 beq b11_from_b28 - //SEG609 [275] phi from keyboard_event_scan::@28 to keyboard_event_scan::@23 [phi:keyboard_event_scan::@28->keyboard_event_scan::@23] + //SEG611 [276] phi from keyboard_event_scan::@28 to keyboard_event_scan::@23 [phi:keyboard_event_scan::@28->keyboard_event_scan::@23] b23_from_b28: jmp b23 - //SEG610 keyboard_event_scan::@23 + //SEG612 keyboard_event_scan::@23 b23: - //SEG611 [276] phi from keyboard_event_scan::@23 keyboard_event_scan::@28 to keyboard_event_scan::@11 [phi:keyboard_event_scan::@23/keyboard_event_scan::@28->keyboard_event_scan::@11] + //SEG613 [277] phi from keyboard_event_scan::@23 keyboard_event_scan::@28 to keyboard_event_scan::@11 [phi:keyboard_event_scan::@23/keyboard_event_scan::@28->keyboard_event_scan::@11] b11_from_b23: b11_from_b28: jmp b11 - //SEG612 keyboard_event_scan::@11 + //SEG614 keyboard_event_scan::@11 b11: - //SEG613 [277] call keyboard_event_pressed - //SEG614 [236] phi from keyboard_event_scan::@11 to keyboard_event_pressed [phi:keyboard_event_scan::@11->keyboard_event_pressed] + //SEG615 [278] call keyboard_event_pressed + //SEG616 [237] phi from keyboard_event_scan::@11 to keyboard_event_pressed [phi:keyboard_event_scan::@11->keyboard_event_pressed] keyboard_event_pressed_from_b11: - //SEG615 [236] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_COMMODORE#0 [phi:keyboard_event_scan::@11->keyboard_event_pressed#0] -- vbuz1=vbuc1 + //SEG617 [237] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_COMMODORE#0 [phi:keyboard_event_scan::@11->keyboard_event_pressed#0] -- vbuz1=vbuc1 lda #KEY_COMMODORE sta keyboard_event_pressed.keycode jsr keyboard_event_pressed - //SEG616 [278] (byte) keyboard_event_pressed::return#10 ← (byte) keyboard_event_pressed::return#11 + //SEG618 [279] (byte) keyboard_event_pressed::return#10 ← (byte) keyboard_event_pressed::return#11 // (byte) keyboard_event_pressed::return#10 = (byte) keyboard_event_pressed::return#11 // register copy reg byte a jmp b29 - //SEG617 keyboard_event_scan::@29 + //SEG619 keyboard_event_scan::@29 b29: - //SEG618 [279] (byte~) keyboard_event_scan::$26 ← (byte) keyboard_event_pressed::return#10 + //SEG620 [280] (byte~) keyboard_event_scan::$26 ← (byte) keyboard_event_pressed::return#10 // (byte~) keyboard_event_scan::$26 = (byte) keyboard_event_pressed::return#10 // register copy reg byte a - //SEG619 [280] if((byte~) keyboard_event_scan::$26==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@return -- vbuaa_eq_0_then_la1 + //SEG621 [281] if((byte~) keyboard_event_scan::$26==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@return -- vbuaa_eq_0_then_la1 cmp #0 beq breturn - //SEG620 [281] phi from keyboard_event_scan::@29 to keyboard_event_scan::@24 [phi:keyboard_event_scan::@29->keyboard_event_scan::@24] + //SEG622 [282] phi from keyboard_event_scan::@29 to keyboard_event_scan::@24 [phi:keyboard_event_scan::@29->keyboard_event_scan::@24] b24_from_b29: jmp b24 - //SEG621 keyboard_event_scan::@24 + //SEG623 keyboard_event_scan::@24 b24: jmp breturn - //SEG622 keyboard_event_scan::@return + //SEG624 keyboard_event_scan::@return breturn: - //SEG623 [282] return + //SEG625 [283] return rts - //SEG624 [283] phi from keyboard_event_scan::@25 to keyboard_event_scan::@4 [phi:keyboard_event_scan::@25->keyboard_event_scan::@4] + //SEG626 [284] phi from keyboard_event_scan::@25 to keyboard_event_scan::@4 [phi:keyboard_event_scan::@25->keyboard_event_scan::@4] b4_from_b25: - //SEG625 [283] phi (byte) keyboard_events_size#10 = (byte) keyboard_events_size#29 [phi:keyboard_event_scan::@25->keyboard_event_scan::@4#0] -- register_copy - //SEG626 [283] phi (byte) keyboard_event_scan::keycode#10 = (byte) keyboard_event_scan::keycode#11 [phi:keyboard_event_scan::@25->keyboard_event_scan::@4#1] -- register_copy - //SEG627 [283] phi (byte) keyboard_event_scan::col#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:keyboard_event_scan::@25->keyboard_event_scan::@4#2] -- vbuxx=vbuc1 + //SEG627 [284] phi (byte) keyboard_events_size#10 = (byte) keyboard_events_size#29 [phi:keyboard_event_scan::@25->keyboard_event_scan::@4#0] -- register_copy + //SEG628 [284] phi (byte) keyboard_event_scan::keycode#10 = (byte) keyboard_event_scan::keycode#11 [phi:keyboard_event_scan::@25->keyboard_event_scan::@4#1] -- register_copy + //SEG629 [284] phi (byte) keyboard_event_scan::col#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:keyboard_event_scan::@25->keyboard_event_scan::@4#2] -- vbuxx=vbuc1 ldx #0 jmp b4 - //SEG628 [283] phi from keyboard_event_scan::@5 to keyboard_event_scan::@4 [phi:keyboard_event_scan::@5->keyboard_event_scan::@4] + //SEG630 [284] phi from keyboard_event_scan::@5 to keyboard_event_scan::@4 [phi:keyboard_event_scan::@5->keyboard_event_scan::@4] b4_from_b5: - //SEG629 [283] phi (byte) keyboard_events_size#10 = (byte) keyboard_events_size#30 [phi:keyboard_event_scan::@5->keyboard_event_scan::@4#0] -- register_copy - //SEG630 [283] phi (byte) keyboard_event_scan::keycode#10 = (byte) keyboard_event_scan::keycode#15 [phi:keyboard_event_scan::@5->keyboard_event_scan::@4#1] -- register_copy - //SEG631 [283] phi (byte) keyboard_event_scan::col#2 = (byte) keyboard_event_scan::col#1 [phi:keyboard_event_scan::@5->keyboard_event_scan::@4#2] -- register_copy + //SEG631 [284] phi (byte) keyboard_events_size#10 = (byte) keyboard_events_size#30 [phi:keyboard_event_scan::@5->keyboard_event_scan::@4#0] -- register_copy + //SEG632 [284] phi (byte) keyboard_event_scan::keycode#10 = (byte) keyboard_event_scan::keycode#15 [phi:keyboard_event_scan::@5->keyboard_event_scan::@4#1] -- register_copy + //SEG633 [284] phi (byte) keyboard_event_scan::col#2 = (byte) keyboard_event_scan::col#1 [phi:keyboard_event_scan::@5->keyboard_event_scan::@4#2] -- register_copy jmp b4 - //SEG632 keyboard_event_scan::@4 + //SEG634 keyboard_event_scan::@4 b4: - //SEG633 [284] (byte~) keyboard_event_scan::$3 ← (byte) keyboard_event_scan::row_scan#0 ^ *((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2) -- vbuaa=vbuz1_bxor_pbuc1_derefidx_vbuz2 + //SEG635 [285] (byte~) keyboard_event_scan::$3 ← (byte) keyboard_event_scan::row_scan#0 ^ *((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2) -- vbuaa=vbuz1_bxor_pbuc1_derefidx_vbuz2 lda row_scan ldy row eor keyboard_scan_values,y - //SEG634 [285] (byte~) keyboard_event_scan::$4 ← (byte~) keyboard_event_scan::$3 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_event_scan::col#2) -- vbuaa=vbuaa_band_pbuc1_derefidx_vbuxx + //SEG636 [286] (byte~) keyboard_event_scan::$4 ← (byte~) keyboard_event_scan::$3 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_event_scan::col#2) -- vbuaa=vbuaa_band_pbuc1_derefidx_vbuxx and keyboard_matrix_col_bitmask,x - //SEG635 [286] if((byte~) keyboard_event_scan::$4==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@5 -- vbuaa_eq_0_then_la1 + //SEG637 [287] if((byte~) keyboard_event_scan::$4==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@5 -- vbuaa_eq_0_then_la1 cmp #0 beq b5_from_b4 jmp b15 - //SEG636 keyboard_event_scan::@15 + //SEG638 keyboard_event_scan::@15 b15: - //SEG637 [287] if((byte) keyboard_events_size#10==(byte/signed byte/word/signed word/dword/signed dword) 8) goto keyboard_event_scan::@5 -- vbuz1_eq_vbuc1_then_la1 + //SEG639 [288] if((byte) keyboard_events_size#10==(byte/signed byte/word/signed word/dword/signed dword) 8) goto keyboard_event_scan::@5 -- vbuz1_eq_vbuc1_then_la1 lda keyboard_events_size cmp #8 beq b5_from_b15 jmp b16 - //SEG638 keyboard_event_scan::@16 + //SEG640 keyboard_event_scan::@16 b16: - //SEG639 [288] (byte) keyboard_event_scan::event_type#0 ← (byte) keyboard_event_scan::row_scan#0 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_event_scan::col#2) -- vbuaa=vbuz1_band_pbuc1_derefidx_vbuxx + //SEG641 [289] (byte) keyboard_event_scan::event_type#0 ← (byte) keyboard_event_scan::row_scan#0 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_event_scan::col#2) -- vbuaa=vbuz1_band_pbuc1_derefidx_vbuxx lda keyboard_matrix_col_bitmask,x and row_scan - //SEG640 [289] if((byte) keyboard_event_scan::event_type#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@7 -- vbuaa_eq_0_then_la1 + //SEG642 [290] if((byte) keyboard_event_scan::event_type#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@7 -- vbuaa_eq_0_then_la1 cmp #0 beq b7 jmp b17 - //SEG641 keyboard_event_scan::@17 + //SEG643 keyboard_event_scan::@17 b17: - //SEG642 [290] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte) keyboard_event_scan::keycode#10 -- pbuc1_derefidx_vbuz1=vbuz2 + //SEG644 [291] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte) keyboard_event_scan::keycode#10 -- pbuc1_derefidx_vbuz1=vbuz2 lda keycode ldy keyboard_events_size sta keyboard_events,y - //SEG643 [291] (byte) keyboard_events_size#2 ← ++ (byte) keyboard_events_size#10 -- vbuz1=_inc_vbuz1 + //SEG645 [292] (byte) keyboard_events_size#2 ← ++ (byte) keyboard_events_size#10 -- vbuz1=_inc_vbuz1 inc keyboard_events_size - //SEG644 [292] phi from keyboard_event_scan::@15 keyboard_event_scan::@17 keyboard_event_scan::@4 keyboard_event_scan::@7 to keyboard_event_scan::@5 [phi:keyboard_event_scan::@15/keyboard_event_scan::@17/keyboard_event_scan::@4/keyboard_event_scan::@7->keyboard_event_scan::@5] + //SEG646 [293] phi from keyboard_event_scan::@15 keyboard_event_scan::@17 keyboard_event_scan::@4 keyboard_event_scan::@7 to keyboard_event_scan::@5 [phi:keyboard_event_scan::@15/keyboard_event_scan::@17/keyboard_event_scan::@4/keyboard_event_scan::@7->keyboard_event_scan::@5] b5_from_b15: b5_from_b17: b5_from_b4: b5_from_b7: - //SEG645 [292] phi (byte) keyboard_events_size#30 = (byte) keyboard_events_size#10 [phi:keyboard_event_scan::@15/keyboard_event_scan::@17/keyboard_event_scan::@4/keyboard_event_scan::@7->keyboard_event_scan::@5#0] -- register_copy + //SEG647 [293] phi (byte) keyboard_events_size#30 = (byte) keyboard_events_size#10 [phi:keyboard_event_scan::@15/keyboard_event_scan::@17/keyboard_event_scan::@4/keyboard_event_scan::@7->keyboard_event_scan::@5#0] -- register_copy jmp b5 - //SEG646 keyboard_event_scan::@5 + //SEG648 keyboard_event_scan::@5 b5: - //SEG647 [293] (byte) keyboard_event_scan::keycode#15 ← ++ (byte) keyboard_event_scan::keycode#10 -- vbuz1=_inc_vbuz1 + //SEG649 [294] (byte) keyboard_event_scan::keycode#15 ← ++ (byte) keyboard_event_scan::keycode#10 -- vbuz1=_inc_vbuz1 inc keycode - //SEG648 [294] (byte) keyboard_event_scan::col#1 ← ++ (byte) keyboard_event_scan::col#2 -- vbuxx=_inc_vbuxx + //SEG650 [295] (byte) keyboard_event_scan::col#1 ← ++ (byte) keyboard_event_scan::col#2 -- vbuxx=_inc_vbuxx inx - //SEG649 [295] if((byte) keyboard_event_scan::col#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto keyboard_event_scan::@4 -- vbuxx_neq_vbuc1_then_la1 + //SEG651 [296] if((byte) keyboard_event_scan::col#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto keyboard_event_scan::@4 -- vbuxx_neq_vbuc1_then_la1 cpx #8 bne b4_from_b5 jmp b19 - //SEG650 keyboard_event_scan::@19 + //SEG652 keyboard_event_scan::@19 b19: - //SEG651 [296] *((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2) ← (byte) keyboard_event_scan::row_scan#0 -- pbuc1_derefidx_vbuz1=vbuz2 + //SEG653 [297] *((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2) ← (byte) keyboard_event_scan::row_scan#0 -- pbuc1_derefidx_vbuz1=vbuz2 lda row_scan ldy row sta keyboard_scan_values,y jmp b3_from_b19 - //SEG652 keyboard_event_scan::@7 + //SEG654 keyboard_event_scan::@7 b7: - //SEG653 [297] (byte/word/dword~) keyboard_event_scan::$11 ← (byte) keyboard_event_scan::keycode#10 | (byte/signed byte/word/signed word/dword/signed dword) 64 -- vbuaa=vbuz1_bor_vbuc1 + //SEG655 [298] (byte/word/dword~) keyboard_event_scan::$11 ← (byte) keyboard_event_scan::keycode#10 | (byte/signed byte/word/signed word/dword/signed dword) 64 -- vbuaa=vbuz1_bor_vbuc1 lda #$40 ora keycode - //SEG654 [298] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte/word/dword~) keyboard_event_scan::$11 -- pbuc1_derefidx_vbuz1=vbuaa + //SEG656 [299] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte/word/dword~) keyboard_event_scan::$11 -- pbuc1_derefidx_vbuz1=vbuaa ldy keyboard_events_size sta keyboard_events,y - //SEG655 [299] (byte) keyboard_events_size#1 ← ++ (byte) keyboard_events_size#10 -- vbuz1=_inc_vbuz1 + //SEG657 [300] (byte) keyboard_events_size#1 ← ++ (byte) keyboard_events_size#10 -- vbuz1=_inc_vbuz1 inc keyboard_events_size jmp b5_from_b7 } -//SEG656 keyboard_matrix_read +//SEG658 keyboard_matrix_read keyboard_matrix_read: { - //SEG657 [300] *((const byte*) CIA1_PORT_A#0) ← *((const byte[8]) keyboard_matrix_row_bitmask#0 + (byte) keyboard_matrix_read::rowid#0) -- _deref_pbuc1=pbuc2_derefidx_vbuxx + //SEG659 [301] *((const byte*) CIA1_PORT_A#0) ← *((const byte[8]) keyboard_matrix_row_bitmask#0 + (byte) keyboard_matrix_read::rowid#0) -- _deref_pbuc1=pbuc2_derefidx_vbuxx lda keyboard_matrix_row_bitmask,x sta CIA1_PORT_A - //SEG658 [301] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) -- vbuaa=_bnot__deref_pbuc1 + //SEG660 [302] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) -- vbuaa=_bnot__deref_pbuc1 lda CIA1_PORT_B eor #$ff jmp breturn - //SEG659 keyboard_matrix_read::@return + //SEG661 keyboard_matrix_read::@return breturn: - //SEG660 [302] return + //SEG662 [303] return rts } -//SEG661 tables_init +//SEG663 tables_init tables_init: { .label pli = 5 .label idx = 2 - //SEG662 [304] phi from tables_init to tables_init::@1 [phi:tables_init->tables_init::@1] + //SEG664 [305] phi from tables_init to tables_init::@1 [phi:tables_init->tables_init::@1] b1_from_tables_init: - //SEG663 [304] phi (byte) tables_init::idx#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:tables_init->tables_init::@1#0] -- vbuz1=vbuc1 + //SEG665 [305] phi (byte) tables_init::idx#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:tables_init->tables_init::@1#0] -- vbuz1=vbuc1 lda #0 sta idx - //SEG664 [304] phi (byte*) tables_init::pli#2 = (const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 [phi:tables_init->tables_init::@1#1] -- pbuz1=pbuc1 + //SEG666 [305] phi (byte*) tables_init::pli#2 = (const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 [phi:tables_init->tables_init::@1#1] -- pbuz1=pbuc1 lda #playfield sta pli+1 - //SEG665 [304] phi (byte) tables_init::j#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:tables_init->tables_init::@1#2] -- vbuxx=vbuc1 + //SEG667 [305] phi (byte) tables_init::j#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:tables_init->tables_init::@1#2] -- vbuxx=vbuc1 ldx #0 jmp b1 - //SEG666 [304] phi from tables_init::@1 to tables_init::@1 [phi:tables_init::@1->tables_init::@1] + //SEG668 [305] phi from tables_init::@1 to tables_init::@1 [phi:tables_init::@1->tables_init::@1] b1_from_b1: - //SEG667 [304] phi (byte) tables_init::idx#2 = (byte) tables_init::idx#1 [phi:tables_init::@1->tables_init::@1#0] -- register_copy - //SEG668 [304] phi (byte*) tables_init::pli#2 = (byte*) tables_init::pli#1 [phi:tables_init::@1->tables_init::@1#1] -- register_copy - //SEG669 [304] phi (byte) tables_init::j#2 = (byte) tables_init::j#1 [phi:tables_init::@1->tables_init::@1#2] -- register_copy + //SEG669 [305] phi (byte) tables_init::idx#2 = (byte) tables_init::idx#1 [phi:tables_init::@1->tables_init::@1#0] -- register_copy + //SEG670 [305] phi (byte*) tables_init::pli#2 = (byte*) tables_init::pli#1 [phi:tables_init::@1->tables_init::@1#1] -- register_copy + //SEG671 [305] phi (byte) tables_init::j#2 = (byte) tables_init::j#1 [phi:tables_init::@1->tables_init::@1#2] -- register_copy jmp b1 - //SEG670 tables_init::@1 + //SEG672 tables_init::@1 b1: - //SEG671 [305] (byte~) tables_init::$1 ← (byte) tables_init::j#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuaa=vbuxx_rol_1 + //SEG673 [306] (byte~) tables_init::$1 ← (byte) tables_init::j#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuaa=vbuxx_rol_1 txa asl - //SEG672 [306] *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte~) tables_init::$1) ← (byte*) tables_init::pli#2 -- pptc1_derefidx_vbuaa=pbuz1 + //SEG674 [307] *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte~) tables_init::$1) ← (byte*) tables_init::pli#2 -- pptc1_derefidx_vbuaa=pbuz1 tay lda pli sta playfield_lines,y lda pli+1 sta playfield_lines+1,y - //SEG673 [307] *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0 + (byte) tables_init::j#2) ← (byte) tables_init::idx#2 -- pbuc1_derefidx_vbuxx=vbuz1 + //SEG675 [308] *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0 + (byte) tables_init::j#2) ← (byte) tables_init::idx#2 -- pbuc1_derefidx_vbuxx=vbuz1 lda idx sta playfield_lines_idx,x - //SEG674 [308] (byte*) tables_init::pli#1 ← (byte*) tables_init::pli#2 + (const byte) PLAYFIELD_COLS#0 -- pbuz1=pbuz1_plus_vbuc1 + //SEG676 [309] (byte*) tables_init::pli#1 ← (byte*) tables_init::pli#2 + (const byte) PLAYFIELD_COLS#0 -- pbuz1=pbuz1_plus_vbuc1 lda pli clc adc #PLAYFIELD_COLS @@ -10859,88 +10891,88 @@ tables_init: { bcc !+ inc pli+1 !: - //SEG675 [309] (byte) tables_init::idx#1 ← (byte) tables_init::idx#2 + (const byte) PLAYFIELD_COLS#0 -- vbuz1=vbuz1_plus_vbuc1 + //SEG677 [310] (byte) tables_init::idx#1 ← (byte) tables_init::idx#2 + (const byte) PLAYFIELD_COLS#0 -- vbuz1=vbuz1_plus_vbuc1 lda #PLAYFIELD_COLS clc adc idx sta idx - //SEG676 [310] (byte) tables_init::j#1 ← ++ (byte) tables_init::j#2 -- vbuxx=_inc_vbuxx + //SEG678 [311] (byte) tables_init::j#1 ← ++ (byte) tables_init::j#2 -- vbuxx=_inc_vbuxx inx - //SEG677 [311] if((byte) tables_init::j#1!=(const byte) PLAYFIELD_LINES#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto tables_init::@1 -- vbuxx_neq_vbuc1_then_la1 + //SEG679 [312] if((byte) tables_init::j#1!=(const byte) PLAYFIELD_LINES#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto tables_init::@1 -- vbuxx_neq_vbuc1_then_la1 cpx #PLAYFIELD_LINES-1+1 bne b1_from_b1 jmp b2 - //SEG678 tables_init::@2 + //SEG680 tables_init::@2 b2: - //SEG679 [312] *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0+(const byte) PLAYFIELD_LINES#0) ← (const byte) PLAYFIELD_COLS#0*(const byte) PLAYFIELD_LINES#0 -- _deref_pbuc1=vbuc2 + //SEG681 [313] *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0+(const byte) PLAYFIELD_LINES#0) ← (const byte) PLAYFIELD_COLS#0*(const byte) PLAYFIELD_LINES#0 -- _deref_pbuc1=vbuc2 lda #PLAYFIELD_COLS*PLAYFIELD_LINES sta playfield_lines_idx+PLAYFIELD_LINES jmp breturn - //SEG680 tables_init::@return + //SEG682 tables_init::@return breturn: - //SEG681 [313] return + //SEG683 [314] return rts } -//SEG682 render_init +//SEG684 render_init render_init: { .label _10 = $c .label li = 5 .label line = 5 .label l = 2 - //SEG683 [315] call fill - //SEG684 [334] phi from render_init to fill [phi:render_init->fill] + //SEG685 [316] call fill + //SEG686 [335] phi from render_init to fill [phi:render_init->fill] fill_from_render_init: - //SEG685 [334] phi (byte) fill::val#3 = (byte/word/signed word/dword/signed dword) 160 [phi:render_init->fill#0] -- vbuxx=vbuc1 + //SEG687 [335] phi (byte) fill::val#3 = (byte/word/signed word/dword/signed dword) 160 [phi:render_init->fill#0] -- vbuxx=vbuc1 ldx #$a0 - //SEG686 [334] phi (byte*) fill::addr#0 = (const byte*) SCREEN#0 [phi:render_init->fill#1] -- pbuz1=pbuc1 + //SEG688 [335] phi (byte*) fill::addr#0 = (const byte*) SCREEN#0 [phi:render_init->fill#1] -- pbuz1=pbuc1 lda #SCREEN sta fill.addr+1 jsr fill - //SEG687 [316] phi from render_init to render_init::@7 [phi:render_init->render_init::@7] + //SEG689 [317] phi from render_init to render_init::@7 [phi:render_init->render_init::@7] b7_from_render_init: jmp b7 - //SEG688 render_init::@7 + //SEG690 render_init::@7 b7: - //SEG689 [317] call fill - //SEG690 [334] phi from render_init::@7 to fill [phi:render_init::@7->fill] + //SEG691 [318] call fill + //SEG692 [335] phi from render_init::@7 to fill [phi:render_init::@7->fill] fill_from_b7: - //SEG691 [334] phi (byte) fill::val#3 = (const byte) BLACK#0 [phi:render_init::@7->fill#0] -- vbuxx=vbuc1 + //SEG693 [335] phi (byte) fill::val#3 = (const byte) BLACK#0 [phi:render_init::@7->fill#0] -- vbuxx=vbuc1 ldx #BLACK - //SEG692 [334] phi (byte*) fill::addr#0 = (const byte*) COLS#0 [phi:render_init::@7->fill#1] -- pbuz1=pbuc1 + //SEG694 [335] phi (byte*) fill::addr#0 = (const byte*) COLS#0 [phi:render_init::@7->fill#1] -- pbuz1=pbuc1 lda #COLS sta fill.addr+1 jsr fill - //SEG693 [318] phi from render_init::@7 to render_init::@1 [phi:render_init::@7->render_init::@1] + //SEG695 [319] phi from render_init::@7 to render_init::@1 [phi:render_init::@7->render_init::@1] b1_from_b7: - //SEG694 [318] phi (byte*) render_init::li#2 = (const byte*) COLS#0+(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 15 [phi:render_init::@7->render_init::@1#0] -- pbuz1=pbuc1 + //SEG696 [319] phi (byte*) render_init::li#2 = (const byte*) COLS#0+(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 15 [phi:render_init::@7->render_init::@1#0] -- pbuz1=pbuc1 lda #COLS+$28+$f sta li+1 - //SEG695 [318] phi (byte) render_init::i#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_init::@7->render_init::@1#1] -- vbuxx=vbuc1 + //SEG697 [319] phi (byte) render_init::i#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_init::@7->render_init::@1#1] -- vbuxx=vbuc1 ldx #0 jmp b1 - //SEG696 [318] phi from render_init::@1 to render_init::@1 [phi:render_init::@1->render_init::@1] + //SEG698 [319] phi from render_init::@1 to render_init::@1 [phi:render_init::@1->render_init::@1] b1_from_b1: - //SEG697 [318] phi (byte*) render_init::li#2 = (byte*) render_init::li#1 [phi:render_init::@1->render_init::@1#0] -- register_copy - //SEG698 [318] phi (byte) render_init::i#2 = (byte) render_init::i#1 [phi:render_init::@1->render_init::@1#1] -- register_copy + //SEG699 [319] phi (byte*) render_init::li#2 = (byte*) render_init::li#1 [phi:render_init::@1->render_init::@1#0] -- register_copy + //SEG700 [319] phi (byte) render_init::i#2 = (byte) render_init::i#1 [phi:render_init::@1->render_init::@1#1] -- register_copy jmp b1 - //SEG699 render_init::@1 + //SEG701 render_init::@1 b1: - //SEG700 [319] (byte~) render_init::$5 ← (byte) render_init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuaa=vbuxx_rol_1 + //SEG702 [320] (byte~) render_init::$5 ← (byte) render_init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuaa=vbuxx_rol_1 txa asl - //SEG701 [320] *((const byte*[PLAYFIELD_LINES#0+3]) screen_lines#0 + (byte~) render_init::$5) ← (byte*) render_init::li#2 -- pptc1_derefidx_vbuaa=pbuz1 + //SEG703 [321] *((const byte*[PLAYFIELD_LINES#0+3]) screen_lines#0 + (byte~) render_init::$5) ← (byte*) render_init::li#2 -- pptc1_derefidx_vbuaa=pbuz1 tay lda li sta screen_lines,y lda li+1 sta screen_lines+1,y - //SEG702 [321] (byte*) render_init::li#1 ← (byte*) render_init::li#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 -- pbuz1=pbuz1_plus_vbuc1 + //SEG704 [322] (byte*) render_init::li#1 ← (byte*) render_init::li#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 -- pbuz1=pbuz1_plus_vbuc1 lda li clc adc #$28 @@ -10948,41 +10980,41 @@ render_init: { bcc !+ inc li+1 !: - //SEG703 [322] (byte) render_init::i#1 ← ++ (byte) render_init::i#2 -- vbuxx=_inc_vbuxx + //SEG705 [323] (byte) render_init::i#1 ← ++ (byte) render_init::i#2 -- vbuxx=_inc_vbuxx inx - //SEG704 [323] if((byte) render_init::i#1!=(const byte) PLAYFIELD_LINES#0+(byte/signed byte/word/signed word/dword/signed dword) 2+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_init::@1 -- vbuxx_neq_vbuc1_then_la1 + //SEG706 [324] if((byte) render_init::i#1!=(const byte) PLAYFIELD_LINES#0+(byte/signed byte/word/signed word/dword/signed dword) 2+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_init::@1 -- vbuxx_neq_vbuc1_then_la1 cpx #PLAYFIELD_LINES+2+1 bne b1_from_b1 - //SEG705 [324] phi from render_init::@1 to render_init::@2 [phi:render_init::@1->render_init::@2] + //SEG707 [325] phi from render_init::@1 to render_init::@2 [phi:render_init::@1->render_init::@2] b2_from_b1: - //SEG706 [324] phi (byte) render_init::l#4 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_init::@1->render_init::@2#0] -- vbuz1=vbuc1 + //SEG708 [325] phi (byte) render_init::l#4 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_init::@1->render_init::@2#0] -- vbuz1=vbuc1 lda #0 sta l - //SEG707 [324] phi (byte*) render_init::line#4 = (const byte*) COLS#0+(byte/signed byte/word/signed word/dword/signed dword) 14 [phi:render_init::@1->render_init::@2#1] -- pbuz1=pbuc1 + //SEG709 [325] phi (byte*) render_init::line#4 = (const byte*) COLS#0+(byte/signed byte/word/signed word/dword/signed dword) 14 [phi:render_init::@1->render_init::@2#1] -- pbuz1=pbuc1 lda #COLS+$e sta line+1 jmp b2 - //SEG708 [324] phi from render_init::@5 to render_init::@2 [phi:render_init::@5->render_init::@2] + //SEG710 [325] phi from render_init::@5 to render_init::@2 [phi:render_init::@5->render_init::@2] b2_from_b5: - //SEG709 [324] phi (byte) render_init::l#4 = (byte) render_init::l#1 [phi:render_init::@5->render_init::@2#0] -- register_copy - //SEG710 [324] phi (byte*) render_init::line#4 = (byte*) render_init::line#1 [phi:render_init::@5->render_init::@2#1] -- register_copy + //SEG711 [325] phi (byte) render_init::l#4 = (byte) render_init::l#1 [phi:render_init::@5->render_init::@2#0] -- register_copy + //SEG712 [325] phi (byte*) render_init::line#4 = (byte*) render_init::line#1 [phi:render_init::@5->render_init::@2#1] -- register_copy jmp b2 - //SEG711 render_init::@2 + //SEG713 render_init::@2 b2: - //SEG712 [325] phi from render_init::@2 to render_init::@3 [phi:render_init::@2->render_init::@3] + //SEG714 [326] phi from render_init::@2 to render_init::@3 [phi:render_init::@2->render_init::@3] b3_from_b2: - //SEG713 [325] phi (byte) render_init::c#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_init::@2->render_init::@3#0] -- vbuxx=vbuc1 + //SEG715 [326] phi (byte) render_init::c#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_init::@2->render_init::@3#0] -- vbuxx=vbuc1 ldx #0 jmp b3 - //SEG714 [325] phi from render_init::@3 to render_init::@3 [phi:render_init::@3->render_init::@3] + //SEG716 [326] phi from render_init::@3 to render_init::@3 [phi:render_init::@3->render_init::@3] b3_from_b3: - //SEG715 [325] phi (byte) render_init::c#2 = (byte) render_init::c#1 [phi:render_init::@3->render_init::@3#0] -- register_copy + //SEG717 [326] phi (byte) render_init::c#2 = (byte) render_init::c#1 [phi:render_init::@3->render_init::@3#0] -- register_copy jmp b3 - //SEG716 render_init::@3 + //SEG718 render_init::@3 b3: - //SEG717 [326] (byte*~) render_init::$10 ← (byte*) render_init::line#4 + (byte) render_init::c#2 -- pbuz1=pbuz2_plus_vbuxx + //SEG719 [327] (byte*~) render_init::$10 ← (byte*) render_init::line#4 + (byte) render_init::c#2 -- pbuz1=pbuz2_plus_vbuxx txa clc adc line @@ -10990,19 +11022,19 @@ render_init: { lda #0 adc line+1 sta _10+1 - //SEG718 [327] *((byte*~) render_init::$10) ← (const byte) DARK_GREY#0 -- _deref_pbuz1=vbuc1 + //SEG720 [328] *((byte*~) render_init::$10) ← (const byte) DARK_GREY#0 -- _deref_pbuz1=vbuc1 lda #DARK_GREY ldy #0 sta (_10),y - //SEG719 [328] (byte) render_init::c#1 ← ++ (byte) render_init::c#2 -- vbuxx=_inc_vbuxx + //SEG721 [329] (byte) render_init::c#1 ← ++ (byte) render_init::c#2 -- vbuxx=_inc_vbuxx inx - //SEG720 [329] if((byte) render_init::c#1!=(const byte) PLAYFIELD_COLS#0+(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_init::@3 -- vbuxx_neq_vbuc1_then_la1 + //SEG722 [330] if((byte) render_init::c#1!=(const byte) PLAYFIELD_COLS#0+(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_init::@3 -- vbuxx_neq_vbuc1_then_la1 cpx #PLAYFIELD_COLS+1+1 bne b3_from_b3 jmp b5 - //SEG721 render_init::@5 + //SEG723 render_init::@5 b5: - //SEG722 [330] (byte*) render_init::line#1 ← (byte*) render_init::line#4 + (byte/signed byte/word/signed word/dword/signed dword) 40 -- pbuz1=pbuz1_plus_vbuc1 + //SEG724 [331] (byte*) render_init::line#1 ← (byte*) render_init::line#4 + (byte/signed byte/word/signed word/dword/signed dword) 40 -- pbuz1=pbuz1_plus_vbuc1 lda line clc adc #$28 @@ -11010,23 +11042,23 @@ render_init: { bcc !+ inc line+1 !: - //SEG723 [331] (byte) render_init::l#1 ← ++ (byte) render_init::l#4 -- vbuz1=_inc_vbuz1 + //SEG725 [332] (byte) render_init::l#1 ← ++ (byte) render_init::l#4 -- vbuz1=_inc_vbuz1 inc l - //SEG724 [332] if((byte) render_init::l#1!=(const byte) PLAYFIELD_LINES#0+(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_init::@2 -- vbuz1_neq_vbuc1_then_la1 + //SEG726 [333] if((byte) render_init::l#1!=(const byte) PLAYFIELD_LINES#0+(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_init::@2 -- vbuz1_neq_vbuc1_then_la1 lda l cmp #PLAYFIELD_LINES+1+1 bne b2_from_b5 jmp breturn - //SEG725 render_init::@return + //SEG727 render_init::@return breturn: - //SEG726 [333] return + //SEG728 [334] return rts } -//SEG727 fill +//SEG729 fill fill: { .label end = $c .label addr = 5 - //SEG728 [335] (byte*) fill::end#0 ← (byte*) fill::addr#0 + (word/signed word/dword/signed dword) 1000 -- pbuz1=pbuz2_plus_vwuc1 + //SEG730 [336] (byte*) fill::end#0 ← (byte*) fill::addr#0 + (word/signed word/dword/signed dword) 1000 -- pbuz1=pbuz2_plus_vwuc1 lda addr clc adc #<$3e8 @@ -11034,23 +11066,23 @@ fill: { lda addr+1 adc #>$3e8 sta end+1 - //SEG729 [336] phi from fill fill::@1 to fill::@1 [phi:fill/fill::@1->fill::@1] + //SEG731 [337] phi from fill fill::@1 to fill::@1 [phi:fill/fill::@1->fill::@1] b1_from_fill: b1_from_b1: - //SEG730 [336] phi (byte*) fill::addr#2 = (byte*) fill::addr#0 [phi:fill/fill::@1->fill::@1#0] -- register_copy + //SEG732 [337] phi (byte*) fill::addr#2 = (byte*) fill::addr#0 [phi:fill/fill::@1->fill::@1#0] -- register_copy jmp b1 - //SEG731 fill::@1 + //SEG733 fill::@1 b1: - //SEG732 [337] *((byte*) fill::addr#2) ← (byte) fill::val#3 -- _deref_pbuz1=vbuxx + //SEG734 [338] *((byte*) fill::addr#2) ← (byte) fill::val#3 -- _deref_pbuz1=vbuxx txa ldy #0 sta (addr),y - //SEG733 [338] (byte*) fill::addr#1 ← ++ (byte*) fill::addr#2 -- pbuz1=_inc_pbuz1 + //SEG735 [339] (byte*) fill::addr#1 ← ++ (byte*) fill::addr#2 -- pbuz1=_inc_pbuz1 inc addr bne !+ inc addr+1 !: - //SEG734 [339] if((byte*) fill::addr#1!=(byte*) fill::end#0) goto fill::@1 -- pbuz1_neq_pbuz2_then_la1 + //SEG736 [340] if((byte*) fill::addr#1!=(byte*) fill::end#0) goto fill::@1 -- pbuz1_neq_pbuz2_then_la1 lda addr+1 cmp end+1 bne b1_from_b1 @@ -11058,25 +11090,25 @@ fill: { cmp end bne b1_from_b1 jmp breturn - //SEG735 fill::@return + //SEG737 fill::@return breturn: - //SEG736 [340] return + //SEG738 [341] return rts } -//SEG737 sid_rnd_init +//SEG739 sid_rnd_init sid_rnd_init: { - //SEG738 [341] *((const word*) SID_VOICE3_FREQ#0) ← (word/dword/signed dword) 65535 -- _deref_pwuc1=vwuc2 + //SEG740 [342] *((const word*) SID_VOICE3_FREQ#0) ← (word/dword/signed dword) 65535 -- _deref_pwuc1=vwuc2 lda #<$ffff sta SID_VOICE3_FREQ lda #>$ffff sta SID_VOICE3_FREQ+1 - //SEG739 [342] *((const byte*) SID_VOICE3_CONTROL#0) ← (const byte) SID_CONTROL_NOISE#0 -- _deref_pbuc1=vbuc2 + //SEG741 [343] *((const byte*) SID_VOICE3_CONTROL#0) ← (const byte) SID_CONTROL_NOISE#0 -- _deref_pbuc1=vbuc2 lda #SID_CONTROL_NOISE sta SID_VOICE3_CONTROL jmp breturn - //SEG740 sid_rnd_init::@return + //SEG742 sid_rnd_init::@return breturn: - //SEG741 [343] return + //SEG743 [344] return rts } keyboard_matrix_row_bitmask: .byte $fe, $fd, $fb, $f7, $ef, $df, $bf, $7f @@ -11103,8 +11135,15 @@ sid_rnd_init: { playfield: .fill PLAYFIELD_LINES*PLAYFIELD_COLS, 0 playfield_lines_idx: .fill PLAYFIELD_LINES+1, 0 screen_lines: .fill 2*(PLAYFIELD_LINES+3), 0 +.pc = CHARSET "Inline" + .var charset = LoadPicture("charset.png", List().add($000000, $ffffff, $523fa0, $77c1c9)) + .for (var c=0; c<16; c++) + .for (var y=0;y<8; y++) + .byte charset.getMulticolorByte(c,y) + ASSEMBLER OPTIMIZATIONS +Removing instruction jmp b22 Removing instruction jmp b25 Removing instruction jmp bend Removing instruction jmp b21 @@ -11280,7 +11319,8 @@ Replacing label b2_from_b5 with b2 Replacing label b1_from_b1 with b1 Replacing label b1_from_b1 with b1 Removing instruction bbegin: -Removing instruction b25_from_bbegin: +Removing instruction b22: +Removing instruction b25_from_b22: Removing instruction main_from_b25: Removing instruction bend_from_b25: Removing instruction b22_from_b21: @@ -11518,6 +11558,7 @@ Removing unreachable instruction jmp b3 Succesful ASM optimization Pass5UnreachableCodeElimination FINAL SYMBOL TABLE +(label) @22 (label) @25 (label) @begin (label) @end @@ -11525,6 +11566,8 @@ FINAL SYMBOL TABLE (const byte) BLACK#0 BLACK = (byte/signed byte/word/signed word/dword/signed dword) 0 (byte*) BORDERCOL (const byte*) BORDERCOL#0 BORDERCOL = ((byte*))(word/dword/signed dword) 53280 +(byte*) CHARSET +(const byte*) CHARSET#0 CHARSET = ((byte*))(word/signed word/dword/signed dword) 8192 (byte*) CIA1_PORT_A (const byte*) CIA1_PORT_A#0 CIA1_PORT_A = ((byte*))(word/dword/signed dword) 56320 (byte*) CIA1_PORT_B @@ -12202,7 +12245,7 @@ reg byte a [ render_init::$5 ] FINAL ASSEMBLER -Score: 416673 +Score: 416929 //SEG0 Basic Upstart .pc = $801 "Basic" @@ -12242,6 +12285,7 @@ Score: 416673 .const COLLISION_LEFT = 4 .const COLLISION_RIGHT = 8 .label SCREEN = $400 + .label CHARSET = $2000 .label keyboard_events_size = $13 .label current_ypos = 2 .label current_xpos = $11 @@ -12264,439 +12308,441 @@ Score: 416673 .label current_piece_74 = 5 .label current_piece_75 = 5 //SEG2 @begin -//SEG3 [1] phi from @begin to @25 [phi:@begin->@25] -//SEG4 @25 -//SEG5 [2] call main -//SEG6 [4] phi from @25 to main [phi:@25->main] +//SEG3 @22 +//SEG4 kickasm(location (const byte*) CHARSET#0) {{ .var charset = LoadPicture("charset.png", List().add($000000, $ffffff, $523fa0, $77c1c9)) .for (var c=0; c<16; c++) .for (var y=0;y<8; y++) .byte charset.getMulticolorByte(c,y) }} +//SEG5 [2] phi from @22 to @25 [phi:@22->@25] +//SEG6 @25 +//SEG7 [3] call main +//SEG8 [5] phi from @25 to main [phi:@25->main] jsr main -//SEG7 [3] phi from @25 to @end [phi:@25->@end] -//SEG8 @end -//SEG9 main +//SEG9 [4] phi from @25 to @end [phi:@25->@end] +//SEG10 @end +//SEG11 main main: { .label key_event = $14 .label render = $15 - //SEG10 [5] call sid_rnd_init + //SEG12 [6] call sid_rnd_init jsr sid_rnd_init - //SEG11 main::@21 - //SEG12 asm { sei } + //SEG13 main::@21 + //SEG14 asm { sei } sei - //SEG13 [7] call render_init - //SEG14 [314] phi from main::@21 to render_init [phi:main::@21->render_init] + //SEG15 [8] call render_init + //SEG16 [315] phi from main::@21 to render_init [phi:main::@21->render_init] jsr render_init - //SEG15 [8] phi from main::@21 to main::@22 [phi:main::@21->main::@22] - //SEG16 main::@22 - //SEG17 [9] call tables_init - //SEG18 [303] phi from main::@22 to tables_init [phi:main::@22->tables_init] + //SEG17 [9] phi from main::@21 to main::@22 [phi:main::@21->main::@22] + //SEG18 main::@22 + //SEG19 [10] call tables_init + //SEG20 [304] phi from main::@22 to tables_init [phi:main::@22->tables_init] jsr tables_init - //SEG19 [10] phi from main::@22 to main::@23 [phi:main::@22->main::@23] - //SEG20 main::@23 - //SEG21 [11] call spawn_current - //SEG22 [183] phi from main::@23 to spawn_current [phi:main::@23->spawn_current] + //SEG21 [11] phi from main::@22 to main::@23 [phi:main::@22->main::@23] + //SEG22 main::@23 + //SEG23 [12] call spawn_current + //SEG24 [184] phi from main::@23 to spawn_current [phi:main::@23->spawn_current] jsr spawn_current - //SEG23 [12] phi from main::@23 to main::@24 [phi:main::@23->main::@24] - //SEG24 main::@24 - //SEG25 [13] call render_playfield - //SEG26 [71] phi from main::@24 to render_playfield [phi:main::@24->render_playfield] + //SEG25 [13] phi from main::@23 to main::@24 [phi:main::@23->main::@24] + //SEG26 main::@24 + //SEG27 [14] call render_playfield + //SEG28 [72] phi from main::@24 to render_playfield [phi:main::@24->render_playfield] jsr render_playfield - //SEG27 main::@25 - //SEG28 [14] (byte*~) current_piece_gfx#87 ← (byte*) current_piece_gfx#10 -- pbuz1=pbuz2 + //SEG29 main::@25 + //SEG30 [15] (byte*~) current_piece_gfx#87 ← (byte*) current_piece_gfx#10 -- pbuz1=pbuz2 lda current_piece_gfx sta current_piece_gfx_87 lda current_piece_gfx+1 sta current_piece_gfx_87+1 - //SEG29 [15] (byte~) current_piece_color#75 ← (byte) current_piece_color#15 -- vbuz1=vbuz2 + //SEG31 [16] (byte~) current_piece_color#75 ← (byte) current_piece_color#15 -- vbuz1=vbuz2 lda current_piece_color sta current_piece_color_75 - //SEG30 [16] call render_current - //SEG31 [51] phi from main::@25 to render_current [phi:main::@25->render_current] - //SEG32 [51] phi (byte) current_piece_color#67 = (byte~) current_piece_color#75 [phi:main::@25->render_current#0] -- register_copy - //SEG33 [51] phi (byte*) current_piece_gfx#64 = (byte*~) current_piece_gfx#87 [phi:main::@25->render_current#1] -- register_copy - //SEG34 [51] phi (byte) current_xpos#63 = (byte/signed byte/word/signed word/dword/signed dword) 3 [phi:main::@25->render_current#2] -- vbuz1=vbuc1 + //SEG32 [17] call render_current + //SEG33 [52] phi from main::@25 to render_current [phi:main::@25->render_current] + //SEG34 [52] phi (byte) current_piece_color#67 = (byte~) current_piece_color#75 [phi:main::@25->render_current#0] -- register_copy + //SEG35 [52] phi (byte*) current_piece_gfx#64 = (byte*~) current_piece_gfx#87 [phi:main::@25->render_current#1] -- register_copy + //SEG36 [52] phi (byte) current_xpos#63 = (byte/signed byte/word/signed word/dword/signed dword) 3 [phi:main::@25->render_current#2] -- vbuz1=vbuc1 lda #3 sta current_xpos_63 - //SEG35 [51] phi (byte) current_ypos#22 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@25->render_current#3] -- vbuxx=vbuc1 + //SEG37 [52] phi (byte) current_ypos#22 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@25->render_current#3] -- vbuxx=vbuc1 ldx #0 jsr render_current - //SEG36 [17] (byte*~) current_piece#71 ← (byte*)*((const word[]) PIECES#0 + (byte~) spawn_current::$3) -- pbuz1=pptc1_derefidx_vbuz2 + //SEG38 [18] (byte*~) current_piece#71 ← (byte*)*((const word[]) PIECES#0 + (byte~) spawn_current::$3) -- pbuz1=pptc1_derefidx_vbuz2 ldy spawn_current._3 lda PIECES,y sta current_piece lda PIECES+1,y sta current_piece+1 - //SEG37 [18] phi from main::@25 to main::@1 [phi:main::@25->main::@1] - //SEG38 [18] phi (byte) current_movedown_counter#15 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@25->main::@1#0] -- vbuz1=vbuc1 + //SEG39 [19] phi from main::@25 to main::@1 [phi:main::@25->main::@1] + //SEG40 [19] phi (byte) current_movedown_counter#15 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@25->main::@1#0] -- vbuz1=vbuc1 lda #0 sta current_movedown_counter - //SEG39 [18] phi (byte) keyboard_events_size#19 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@25->main::@1#1] -- vbuz1=vbuc1 + //SEG41 [19] phi (byte) keyboard_events_size#19 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@25->main::@1#1] -- vbuz1=vbuc1 sta keyboard_events_size - //SEG40 [18] phi (byte) current_piece_color#11 = (byte) current_piece_color#15 [phi:main::@25->main::@1#2] -- register_copy - //SEG41 [18] phi (byte) current_ypos#12 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@25->main::@1#3] -- vbuz1=vbuc1 + //SEG42 [19] phi (byte) current_piece_color#11 = (byte) current_piece_color#15 [phi:main::@25->main::@1#2] -- register_copy + //SEG43 [19] phi (byte) current_ypos#12 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@25->main::@1#3] -- vbuz1=vbuc1 sta current_ypos - //SEG42 [18] phi (byte) current_xpos#16 = (byte/signed byte/word/signed word/dword/signed dword) 3 [phi:main::@25->main::@1#4] -- vbuz1=vbuc1 + //SEG44 [19] phi (byte) current_xpos#16 = (byte/signed byte/word/signed word/dword/signed dword) 3 [phi:main::@25->main::@1#4] -- vbuz1=vbuc1 lda #3 sta current_xpos - //SEG43 [18] phi (byte*) current_piece_gfx#15 = (byte*) current_piece_gfx#10 [phi:main::@25->main::@1#5] -- register_copy - //SEG44 [18] phi (byte) current_orientation#15 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@25->main::@1#6] -- vbuz1=vbuc1 + //SEG45 [19] phi (byte*) current_piece_gfx#15 = (byte*) current_piece_gfx#10 [phi:main::@25->main::@1#5] -- register_copy + //SEG46 [19] phi (byte) current_orientation#15 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@25->main::@1#6] -- vbuz1=vbuc1 lda #0 sta current_orientation - //SEG45 [18] phi (byte*) current_piece#11 = (byte*~) current_piece#71 [phi:main::@25->main::@1#7] -- register_copy - //SEG46 main::@1 - //SEG47 main::@4 + //SEG47 [19] phi (byte*) current_piece#11 = (byte*~) current_piece#71 [phi:main::@25->main::@1#7] -- register_copy + //SEG48 main::@1 + //SEG49 main::@4 b4: - //SEG48 [19] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@4 -- _deref_pbuc1_neq_vbuc2_then_la1 + //SEG50 [20] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@4 -- _deref_pbuc1_neq_vbuc2_then_la1 lda RASTER cmp #$ff bne b4 - //SEG49 main::@7 + //SEG51 main::@7 b7: - //SEG50 [20] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 254) goto main::@7 -- _deref_pbuc1_neq_vbuc2_then_la1 + //SEG52 [21] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 254) goto main::@7 -- _deref_pbuc1_neq_vbuc2_then_la1 lda RASTER cmp #$fe bne b7 - //SEG51 main::@9 - //SEG52 [21] *((const byte*) BORDERCOL#0) ← ++ *((const byte*) BORDERCOL#0) -- _deref_pbuc1=_inc__deref_pbuc1 + //SEG53 main::@9 + //SEG54 [22] *((const byte*) BORDERCOL#0) ← ++ *((const byte*) BORDERCOL#0) -- _deref_pbuc1=_inc__deref_pbuc1 inc BORDERCOL - //SEG53 [22] call keyboard_event_scan - //SEG54 [247] phi from main::@9 to keyboard_event_scan [phi:main::@9->keyboard_event_scan] + //SEG55 [23] call keyboard_event_scan + //SEG56 [248] phi from main::@9 to keyboard_event_scan [phi:main::@9->keyboard_event_scan] jsr keyboard_event_scan - //SEG55 [23] phi from main::@9 to main::@27 [phi:main::@9->main::@27] - //SEG56 main::@27 - //SEG57 [24] call keyboard_event_get + //SEG57 [24] phi from main::@9 to main::@27 [phi:main::@9->main::@27] + //SEG58 main::@27 + //SEG59 [25] call keyboard_event_get jsr keyboard_event_get - //SEG58 [25] (byte) keyboard_event_get::return#3 ← (byte) keyboard_event_get::return#2 + //SEG60 [26] (byte) keyboard_event_get::return#3 ← (byte) keyboard_event_get::return#2 // (byte) keyboard_event_get::return#3 = (byte) keyboard_event_get::return#2 // register copy reg byte a - //SEG59 main::@28 - //SEG60 [26] (byte) main::key_event#0 ← (byte) keyboard_event_get::return#3 -- vbuz1=vbuaa + //SEG61 main::@28 + //SEG62 [27] (byte) main::key_event#0 ← (byte) keyboard_event_get::return#3 -- vbuz1=vbuaa sta key_event - //SEG61 [27] (byte) play_move_down::key_event#0 ← (byte) main::key_event#0 -- vbuaa=vbuz1 - //SEG62 [28] call play_move_down + //SEG63 [28] (byte) play_move_down::key_event#0 ← (byte) main::key_event#0 -- vbuaa=vbuz1 + //SEG64 [29] call play_move_down jsr play_move_down - //SEG63 [29] (byte) play_move_down::return#0 ← (byte) play_move_down::return#3 -- vbuaa=vbuxx + //SEG65 [30] (byte) play_move_down::return#0 ← (byte) play_move_down::return#3 -- vbuaa=vbuxx txa - //SEG64 main::@29 - //SEG65 [30] (byte~) main::$10 ← (byte) play_move_down::return#0 + //SEG66 main::@29 + //SEG67 [31] (byte~) main::$10 ← (byte) play_move_down::return#0 // (byte~) main::$10 = (byte) play_move_down::return#0 // register copy reg byte a - //SEG66 [31] (byte) main::render#1 ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte~) main::$10 -- vbuz1=vbuc1_plus_vbuaa + //SEG68 [32] (byte) main::render#1 ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte~) main::$10 -- vbuz1=vbuc1_plus_vbuaa clc adc #0 sta render - //SEG67 [32] (byte) play_move_leftright::key_event#0 ← (byte) main::key_event#0 -- vbuaa=vbuz1 + //SEG69 [33] (byte) play_move_leftright::key_event#0 ← (byte) main::key_event#0 -- vbuaa=vbuz1 lda key_event - //SEG68 [33] call play_move_leftright + //SEG70 [34] call play_move_leftright jsr play_move_leftright - //SEG69 [34] (byte) play_move_leftright::return#0 ← (byte) play_move_leftright::return#2 + //SEG71 [35] (byte) play_move_leftright::return#0 ← (byte) play_move_leftright::return#2 // (byte) play_move_leftright::return#0 = (byte) play_move_leftright::return#2 // register copy reg byte a - //SEG70 main::@30 - //SEG71 [35] (byte~) main::$11 ← (byte) play_move_leftright::return#0 + //SEG72 main::@30 + //SEG73 [36] (byte~) main::$11 ← (byte) play_move_leftright::return#0 // (byte~) main::$11 = (byte) play_move_leftright::return#0 // register copy reg byte a - //SEG72 [36] (byte) main::render#2 ← (byte) main::render#1 + (byte~) main::$11 -- vbuz1=vbuz1_plus_vbuaa + //SEG74 [37] (byte) main::render#2 ← (byte) main::render#1 + (byte~) main::$11 -- vbuz1=vbuz1_plus_vbuaa clc adc render sta render - //SEG73 [37] (byte) play_move_rotate::key_event#0 ← (byte) main::key_event#0 -- vbuaa=vbuz1 + //SEG75 [38] (byte) play_move_rotate::key_event#0 ← (byte) main::key_event#0 -- vbuaa=vbuz1 lda key_event - //SEG74 [38] call play_move_rotate + //SEG76 [39] call play_move_rotate jsr play_move_rotate - //SEG75 [39] (byte) play_move_rotate::return#0 ← (byte) play_move_rotate::return#2 + //SEG77 [40] (byte) play_move_rotate::return#0 ← (byte) play_move_rotate::return#2 // (byte) play_move_rotate::return#0 = (byte) play_move_rotate::return#2 // register copy reg byte a - //SEG76 main::@31 - //SEG77 [40] (byte~) main::$12 ← (byte) play_move_rotate::return#0 + //SEG78 main::@31 + //SEG79 [41] (byte~) main::$12 ← (byte) play_move_rotate::return#0 // (byte~) main::$12 = (byte) play_move_rotate::return#0 // register copy reg byte a - //SEG78 [41] (byte) main::render#3 ← (byte) main::render#2 + (byte~) main::$12 -- vbuaa=vbuz1_plus_vbuaa + //SEG80 [42] (byte) main::render#3 ← (byte) main::render#2 + (byte~) main::$12 -- vbuaa=vbuz1_plus_vbuaa clc adc render - //SEG79 [42] if((byte) main::render#3==(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@10 -- vbuaa_eq_0_then_la1 + //SEG81 [43] if((byte) main::render#3==(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@10 -- vbuaa_eq_0_then_la1 cmp #0 beq b10 - //SEG80 [43] phi from main::@31 to main::@19 [phi:main::@31->main::@19] - //SEG81 main::@19 - //SEG82 [44] call render_playfield - //SEG83 [71] phi from main::@19 to render_playfield [phi:main::@19->render_playfield] + //SEG82 [44] phi from main::@31 to main::@19 [phi:main::@31->main::@19] + //SEG83 main::@19 + //SEG84 [45] call render_playfield + //SEG85 [72] phi from main::@19 to render_playfield [phi:main::@19->render_playfield] jsr render_playfield - //SEG84 main::@32 - //SEG85 [45] (byte~) current_ypos#71 ← (byte) current_ypos#16 -- vbuxx=vbuz1 + //SEG86 main::@32 + //SEG87 [46] (byte~) current_ypos#71 ← (byte) current_ypos#16 -- vbuxx=vbuz1 ldx current_ypos - //SEG86 [46] (byte~) current_xpos#96 ← (byte) current_xpos#23 -- vbuz1=vbuz2 + //SEG88 [47] (byte~) current_xpos#96 ← (byte) current_xpos#23 -- vbuz1=vbuz2 lda current_xpos sta current_xpos_96 - //SEG87 [47] (byte*~) current_piece_gfx#88 ← (byte*) current_piece_gfx#18 -- pbuz1=pbuz2 + //SEG89 [48] (byte*~) current_piece_gfx#88 ← (byte*) current_piece_gfx#18 -- pbuz1=pbuz2 lda current_piece_gfx sta current_piece_gfx_88 lda current_piece_gfx+1 sta current_piece_gfx_88+1 - //SEG88 [48] (byte~) current_piece_color#76 ← (byte) current_piece_color#13 -- vbuz1=vbuz2 + //SEG90 [49] (byte~) current_piece_color#76 ← (byte) current_piece_color#13 -- vbuz1=vbuz2 lda current_piece_color sta current_piece_color_76 - //SEG89 [49] call render_current - //SEG90 [51] phi from main::@32 to render_current [phi:main::@32->render_current] - //SEG91 [51] phi (byte) current_piece_color#67 = (byte~) current_piece_color#76 [phi:main::@32->render_current#0] -- register_copy - //SEG92 [51] phi (byte*) current_piece_gfx#64 = (byte*~) current_piece_gfx#88 [phi:main::@32->render_current#1] -- register_copy - //SEG93 [51] phi (byte) current_xpos#63 = (byte~) current_xpos#96 [phi:main::@32->render_current#2] -- register_copy - //SEG94 [51] phi (byte) current_ypos#22 = (byte~) current_ypos#71 [phi:main::@32->render_current#3] -- register_copy + //SEG91 [50] call render_current + //SEG92 [52] phi from main::@32 to render_current [phi:main::@32->render_current] + //SEG93 [52] phi (byte) current_piece_color#67 = (byte~) current_piece_color#76 [phi:main::@32->render_current#0] -- register_copy + //SEG94 [52] phi (byte*) current_piece_gfx#64 = (byte*~) current_piece_gfx#88 [phi:main::@32->render_current#1] -- register_copy + //SEG95 [52] phi (byte) current_xpos#63 = (byte~) current_xpos#96 [phi:main::@32->render_current#2] -- register_copy + //SEG96 [52] phi (byte) current_ypos#22 = (byte~) current_ypos#71 [phi:main::@32->render_current#3] -- register_copy jsr render_current - //SEG95 main::@10 + //SEG97 main::@10 b10: - //SEG96 [50] *((const byte*) BORDERCOL#0) ← -- *((const byte*) BORDERCOL#0) -- _deref_pbuc1=_dec__deref_pbuc1 + //SEG98 [51] *((const byte*) BORDERCOL#0) ← -- *((const byte*) BORDERCOL#0) -- _deref_pbuc1=_dec__deref_pbuc1 dec BORDERCOL - //SEG97 [18] phi from main::@10 to main::@1 [phi:main::@10->main::@1] - //SEG98 [18] phi (byte) current_movedown_counter#15 = (byte) current_movedown_counter#12 [phi:main::@10->main::@1#0] -- register_copy - //SEG99 [18] phi (byte) keyboard_events_size#19 = (byte) keyboard_events_size#16 [phi:main::@10->main::@1#1] -- register_copy - //SEG100 [18] phi (byte) current_piece_color#11 = (byte) current_piece_color#13 [phi:main::@10->main::@1#2] -- register_copy - //SEG101 [18] phi (byte) current_ypos#12 = (byte) current_ypos#16 [phi:main::@10->main::@1#3] -- register_copy - //SEG102 [18] phi (byte) current_xpos#16 = (byte) current_xpos#23 [phi:main::@10->main::@1#4] -- register_copy - //SEG103 [18] phi (byte*) current_piece_gfx#15 = (byte*) current_piece_gfx#18 [phi:main::@10->main::@1#5] -- register_copy - //SEG104 [18] phi (byte) current_orientation#15 = (byte) current_orientation#23 [phi:main::@10->main::@1#6] -- register_copy - //SEG105 [18] phi (byte*) current_piece#11 = (byte*) current_piece#13 [phi:main::@10->main::@1#7] -- register_copy + //SEG99 [19] phi from main::@10 to main::@1 [phi:main::@10->main::@1] + //SEG100 [19] phi (byte) current_movedown_counter#15 = (byte) current_movedown_counter#12 [phi:main::@10->main::@1#0] -- register_copy + //SEG101 [19] phi (byte) keyboard_events_size#19 = (byte) keyboard_events_size#16 [phi:main::@10->main::@1#1] -- register_copy + //SEG102 [19] phi (byte) current_piece_color#11 = (byte) current_piece_color#13 [phi:main::@10->main::@1#2] -- register_copy + //SEG103 [19] phi (byte) current_ypos#12 = (byte) current_ypos#16 [phi:main::@10->main::@1#3] -- register_copy + //SEG104 [19] phi (byte) current_xpos#16 = (byte) current_xpos#23 [phi:main::@10->main::@1#4] -- register_copy + //SEG105 [19] phi (byte*) current_piece_gfx#15 = (byte*) current_piece_gfx#18 [phi:main::@10->main::@1#5] -- register_copy + //SEG106 [19] phi (byte) current_orientation#15 = (byte) current_orientation#23 [phi:main::@10->main::@1#6] -- register_copy + //SEG107 [19] phi (byte*) current_piece#11 = (byte*) current_piece#13 [phi:main::@10->main::@1#7] -- register_copy jmp b4 } -//SEG106 render_current +//SEG108 render_current render_current: { .label ypos2 = 8 .label l = 9 .label screen_line = $16 .label xpos = $b .label i = $a - //SEG107 [52] (byte) render_current::ypos2#0 ← (byte) current_ypos#22 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuxx_rol_1 + //SEG109 [53] (byte) render_current::ypos2#0 ← (byte) current_ypos#22 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuxx_rol_1 txa asl sta ypos2 - //SEG108 [53] phi from render_current to render_current::@1 [phi:render_current->render_current::@1] - //SEG109 [53] phi (byte) render_current::i#4 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_current->render_current::@1#0] -- vbuz1=vbuc1 + //SEG110 [54] phi from render_current to render_current::@1 [phi:render_current->render_current::@1] + //SEG111 [54] phi (byte) render_current::i#4 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_current->render_current::@1#0] -- vbuz1=vbuc1 lda #0 sta i - //SEG110 [53] phi (byte) render_current::l#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_current->render_current::@1#1] -- vbuz1=vbuc1 + //SEG112 [54] phi (byte) render_current::l#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_current->render_current::@1#1] -- vbuz1=vbuc1 sta l - //SEG111 [53] phi (byte) render_current::ypos2#2 = (byte) render_current::ypos2#0 [phi:render_current->render_current::@1#2] -- register_copy - //SEG112 [53] phi from render_current::@2 to render_current::@1 [phi:render_current::@2->render_current::@1] - //SEG113 [53] phi (byte) render_current::i#4 = (byte) render_current::i#8 [phi:render_current::@2->render_current::@1#0] -- register_copy - //SEG114 [53] phi (byte) render_current::l#3 = (byte) render_current::l#1 [phi:render_current::@2->render_current::@1#1] -- register_copy - //SEG115 [53] phi (byte) render_current::ypos2#2 = (byte) render_current::ypos2#1 [phi:render_current::@2->render_current::@1#2] -- register_copy - //SEG116 render_current::@1 + //SEG113 [54] phi (byte) render_current::ypos2#2 = (byte) render_current::ypos2#0 [phi:render_current->render_current::@1#2] -- register_copy + //SEG114 [54] phi from render_current::@2 to render_current::@1 [phi:render_current::@2->render_current::@1] + //SEG115 [54] phi (byte) render_current::i#4 = (byte) render_current::i#8 [phi:render_current::@2->render_current::@1#0] -- register_copy + //SEG116 [54] phi (byte) render_current::l#3 = (byte) render_current::l#1 [phi:render_current::@2->render_current::@1#1] -- register_copy + //SEG117 [54] phi (byte) render_current::ypos2#2 = (byte) render_current::ypos2#1 [phi:render_current::@2->render_current::@1#2] -- register_copy + //SEG118 render_current::@1 b1: - //SEG117 [54] if((byte) render_current::ypos2#2>=(byte/signed byte/word/signed word/dword/signed dword) 2*(const byte) PLAYFIELD_LINES#0) goto render_current::@2 -- vbuz1_ge_vbuc1_then_la1 + //SEG119 [55] if((byte) render_current::ypos2#2>=(byte/signed byte/word/signed word/dword/signed dword) 2*(const byte) PLAYFIELD_LINES#0) goto render_current::@2 -- vbuz1_ge_vbuc1_then_la1 lda ypos2 cmp #2*PLAYFIELD_LINES bcs b2 - //SEG118 render_current::@6 - //SEG119 [55] (byte*) render_current::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0+3]) screen_lines#0 + (byte) render_current::ypos2#2) -- pbuz1=pptc1_derefidx_vbuz2 + //SEG120 render_current::@6 + //SEG121 [56] (byte*) render_current::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0+3]) screen_lines#0 + (byte) render_current::ypos2#2) -- pbuz1=pptc1_derefidx_vbuz2 tay lda screen_lines,y sta screen_line lda screen_lines+1,y sta screen_line+1 - //SEG120 [56] (byte) render_current::xpos#0 ← (byte) current_xpos#63 -- vbuz1=vbuz2 + //SEG122 [57] (byte) render_current::xpos#0 ← (byte) current_xpos#63 -- vbuz1=vbuz2 lda current_xpos_63 sta xpos - //SEG121 [57] phi from render_current::@6 to render_current::@3 [phi:render_current::@6->render_current::@3] - //SEG122 [57] phi (byte) render_current::c#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_current::@6->render_current::@3#0] -- vbuxx=vbuc1 + //SEG123 [58] phi from render_current::@6 to render_current::@3 [phi:render_current::@6->render_current::@3] + //SEG124 [58] phi (byte) render_current::c#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_current::@6->render_current::@3#0] -- vbuxx=vbuc1 ldx #0 - //SEG123 [57] phi (byte) render_current::xpos#2 = (byte) render_current::xpos#0 [phi:render_current::@6->render_current::@3#1] -- register_copy - //SEG124 [57] phi (byte) render_current::i#2 = (byte) render_current::i#4 [phi:render_current::@6->render_current::@3#2] -- register_copy - //SEG125 [57] phi from render_current::@4 to render_current::@3 [phi:render_current::@4->render_current::@3] - //SEG126 [57] phi (byte) render_current::c#2 = (byte) render_current::c#1 [phi:render_current::@4->render_current::@3#0] -- register_copy - //SEG127 [57] phi (byte) render_current::xpos#2 = (byte) render_current::xpos#1 [phi:render_current::@4->render_current::@3#1] -- register_copy - //SEG128 [57] phi (byte) render_current::i#2 = (byte) render_current::i#1 [phi:render_current::@4->render_current::@3#2] -- register_copy - //SEG129 render_current::@3 + //SEG125 [58] phi (byte) render_current::xpos#2 = (byte) render_current::xpos#0 [phi:render_current::@6->render_current::@3#1] -- register_copy + //SEG126 [58] phi (byte) render_current::i#2 = (byte) render_current::i#4 [phi:render_current::@6->render_current::@3#2] -- register_copy + //SEG127 [58] phi from render_current::@4 to render_current::@3 [phi:render_current::@4->render_current::@3] + //SEG128 [58] phi (byte) render_current::c#2 = (byte) render_current::c#1 [phi:render_current::@4->render_current::@3#0] -- register_copy + //SEG129 [58] phi (byte) render_current::xpos#2 = (byte) render_current::xpos#1 [phi:render_current::@4->render_current::@3#1] -- register_copy + //SEG130 [58] phi (byte) render_current::i#2 = (byte) render_current::i#1 [phi:render_current::@4->render_current::@3#2] -- register_copy + //SEG131 render_current::@3 b3: - //SEG130 [58] (byte) render_current::current_cell#0 ← *((byte*) current_piece_gfx#64 + (byte) render_current::i#2) -- vbuaa=pbuz1_derefidx_vbuz2 + //SEG132 [59] (byte) render_current::current_cell#0 ← *((byte*) current_piece_gfx#64 + (byte) render_current::i#2) -- vbuaa=pbuz1_derefidx_vbuz2 ldy i lda (current_piece_gfx_64),y - //SEG131 [59] (byte) render_current::i#1 ← ++ (byte) render_current::i#2 -- vbuz1=_inc_vbuz1 + //SEG133 [60] (byte) render_current::i#1 ← ++ (byte) render_current::i#2 -- vbuz1=_inc_vbuz1 inc i - //SEG132 [60] if((byte) render_current::current_cell#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto render_current::@4 -- vbuaa_eq_0_then_la1 + //SEG134 [61] if((byte) render_current::current_cell#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto render_current::@4 -- vbuaa_eq_0_then_la1 cmp #0 beq b4 - //SEG133 render_current::@7 - //SEG134 [61] if((byte) render_current::xpos#2>=(const byte) PLAYFIELD_COLS#0) goto render_current::@4 -- vbuz1_ge_vbuc1_then_la1 + //SEG135 render_current::@7 + //SEG136 [62] if((byte) render_current::xpos#2>=(const byte) PLAYFIELD_COLS#0) goto render_current::@4 -- vbuz1_ge_vbuc1_then_la1 lda xpos cmp #PLAYFIELD_COLS bcs b4 - //SEG135 render_current::@8 - //SEG136 [62] *((byte*) render_current::screen_line#0 + (byte) render_current::xpos#2) ← (byte) current_piece_color#67 -- pbuz1_derefidx_vbuz2=vbuz3 + //SEG137 render_current::@8 + //SEG138 [63] *((byte*) render_current::screen_line#0 + (byte) render_current::xpos#2) ← (byte) current_piece_color#67 -- pbuz1_derefidx_vbuz2=vbuz3 lda current_piece_color_67 ldy xpos sta (screen_line),y - //SEG137 render_current::@4 + //SEG139 render_current::@4 b4: - //SEG138 [63] (byte) render_current::xpos#1 ← ++ (byte) render_current::xpos#2 -- vbuz1=_inc_vbuz1 + //SEG140 [64] (byte) render_current::xpos#1 ← ++ (byte) render_current::xpos#2 -- vbuz1=_inc_vbuz1 inc xpos - //SEG139 [64] (byte) render_current::c#1 ← ++ (byte) render_current::c#2 -- vbuxx=_inc_vbuxx + //SEG141 [65] (byte) render_current::c#1 ← ++ (byte) render_current::c#2 -- vbuxx=_inc_vbuxx inx - //SEG140 [65] if((byte) render_current::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_current::@3 -- vbuxx_neq_vbuc1_then_la1 + //SEG142 [66] if((byte) render_current::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_current::@3 -- vbuxx_neq_vbuc1_then_la1 cpx #4 bne b3 - //SEG141 [66] phi from render_current::@1 render_current::@4 to render_current::@2 [phi:render_current::@1/render_current::@4->render_current::@2] - //SEG142 [66] phi (byte) render_current::i#8 = (byte) render_current::i#4 [phi:render_current::@1/render_current::@4->render_current::@2#0] -- register_copy - //SEG143 render_current::@2 + //SEG143 [67] phi from render_current::@1 render_current::@4 to render_current::@2 [phi:render_current::@1/render_current::@4->render_current::@2] + //SEG144 [67] phi (byte) render_current::i#8 = (byte) render_current::i#4 [phi:render_current::@1/render_current::@4->render_current::@2#0] -- register_copy + //SEG145 render_current::@2 b2: - //SEG144 [67] (byte) render_current::ypos2#1 ← (byte) render_current::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 -- vbuz1=vbuz1_plus_2 + //SEG146 [68] (byte) render_current::ypos2#1 ← (byte) render_current::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 -- vbuz1=vbuz1_plus_2 lda ypos2 clc adc #2 sta ypos2 - //SEG145 [68] (byte) render_current::l#1 ← ++ (byte) render_current::l#3 -- vbuz1=_inc_vbuz1 + //SEG147 [69] (byte) render_current::l#1 ← ++ (byte) render_current::l#3 -- vbuz1=_inc_vbuz1 inc l - //SEG146 [69] if((byte) render_current::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_current::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG148 [70] if((byte) render_current::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_current::@1 -- vbuz1_neq_vbuc1_then_la1 lda l cmp #4 bne b1 - //SEG147 render_current::@return - //SEG148 [70] return + //SEG149 render_current::@return + //SEG150 [71] return rts } -//SEG149 render_playfield +//SEG151 render_playfield render_playfield: { .label line = 5 .label i = 7 .label l = 4 - //SEG150 [72] phi from render_playfield to render_playfield::@1 [phi:render_playfield->render_playfield::@1] - //SEG151 [72] phi (byte) render_playfield::i#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_playfield->render_playfield::@1#0] -- vbuz1=vbuc1 + //SEG152 [73] phi from render_playfield to render_playfield::@1 [phi:render_playfield->render_playfield::@1] + //SEG153 [73] phi (byte) render_playfield::i#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_playfield->render_playfield::@1#0] -- vbuz1=vbuc1 lda #0 sta i - //SEG152 [72] phi (byte) render_playfield::l#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_playfield->render_playfield::@1#1] -- vbuz1=vbuc1 + //SEG154 [73] phi (byte) render_playfield::l#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_playfield->render_playfield::@1#1] -- vbuz1=vbuc1 sta l - //SEG153 [72] phi from render_playfield::@3 to render_playfield::@1 [phi:render_playfield::@3->render_playfield::@1] - //SEG154 [72] phi (byte) render_playfield::i#3 = (byte) render_playfield::i#1 [phi:render_playfield::@3->render_playfield::@1#0] -- register_copy - //SEG155 [72] phi (byte) render_playfield::l#2 = (byte) render_playfield::l#1 [phi:render_playfield::@3->render_playfield::@1#1] -- register_copy - //SEG156 render_playfield::@1 + //SEG155 [73] phi from render_playfield::@3 to render_playfield::@1 [phi:render_playfield::@3->render_playfield::@1] + //SEG156 [73] phi (byte) render_playfield::i#3 = (byte) render_playfield::i#1 [phi:render_playfield::@3->render_playfield::@1#0] -- register_copy + //SEG157 [73] phi (byte) render_playfield::l#2 = (byte) render_playfield::l#1 [phi:render_playfield::@3->render_playfield::@1#1] -- register_copy + //SEG158 render_playfield::@1 b1: - //SEG157 [73] (byte~) render_playfield::$1 ← (byte) render_playfield::l#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuaa=vbuz1_rol_1 + //SEG159 [74] (byte~) render_playfield::$1 ← (byte) render_playfield::l#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuaa=vbuz1_rol_1 lda l asl - //SEG158 [74] (byte*) render_playfield::line#0 ← *((const byte*[PLAYFIELD_LINES#0+3]) screen_lines#0 + (byte~) render_playfield::$1) -- pbuz1=pptc1_derefidx_vbuaa + //SEG160 [75] (byte*) render_playfield::line#0 ← *((const byte*[PLAYFIELD_LINES#0+3]) screen_lines#0 + (byte~) render_playfield::$1) -- pbuz1=pptc1_derefidx_vbuaa tay lda screen_lines,y sta line lda screen_lines+1,y sta line+1 - //SEG159 [75] phi from render_playfield::@1 to render_playfield::@2 [phi:render_playfield::@1->render_playfield::@2] - //SEG160 [75] phi (byte) render_playfield::c#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_playfield::@1->render_playfield::@2#0] -- vbuxx=vbuc1 + //SEG161 [76] phi from render_playfield::@1 to render_playfield::@2 [phi:render_playfield::@1->render_playfield::@2] + //SEG162 [76] phi (byte) render_playfield::c#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_playfield::@1->render_playfield::@2#0] -- vbuxx=vbuc1 ldx #0 - //SEG161 [75] phi (byte*) render_playfield::line#2 = (byte*) render_playfield::line#0 [phi:render_playfield::@1->render_playfield::@2#1] -- register_copy - //SEG162 [75] phi (byte) render_playfield::i#2 = (byte) render_playfield::i#3 [phi:render_playfield::@1->render_playfield::@2#2] -- register_copy - //SEG163 [75] phi from render_playfield::@2 to render_playfield::@2 [phi:render_playfield::@2->render_playfield::@2] - //SEG164 [75] phi (byte) render_playfield::c#2 = (byte) render_playfield::c#1 [phi:render_playfield::@2->render_playfield::@2#0] -- register_copy - //SEG165 [75] phi (byte*) render_playfield::line#2 = (byte*) render_playfield::line#1 [phi:render_playfield::@2->render_playfield::@2#1] -- register_copy - //SEG166 [75] phi (byte) render_playfield::i#2 = (byte) render_playfield::i#1 [phi:render_playfield::@2->render_playfield::@2#2] -- register_copy - //SEG167 render_playfield::@2 + //SEG163 [76] phi (byte*) render_playfield::line#2 = (byte*) render_playfield::line#0 [phi:render_playfield::@1->render_playfield::@2#1] -- register_copy + //SEG164 [76] phi (byte) render_playfield::i#2 = (byte) render_playfield::i#3 [phi:render_playfield::@1->render_playfield::@2#2] -- register_copy + //SEG165 [76] phi from render_playfield::@2 to render_playfield::@2 [phi:render_playfield::@2->render_playfield::@2] + //SEG166 [76] phi (byte) render_playfield::c#2 = (byte) render_playfield::c#1 [phi:render_playfield::@2->render_playfield::@2#0] -- register_copy + //SEG167 [76] phi (byte*) render_playfield::line#2 = (byte*) render_playfield::line#1 [phi:render_playfield::@2->render_playfield::@2#1] -- register_copy + //SEG168 [76] phi (byte) render_playfield::i#2 = (byte) render_playfield::i#1 [phi:render_playfield::@2->render_playfield::@2#2] -- register_copy + //SEG169 render_playfield::@2 b2: - //SEG168 [76] *((byte*) render_playfield::line#2) ← *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) render_playfield::i#2) -- _deref_pbuz1=pbuc1_derefidx_vbuz2 + //SEG170 [77] *((byte*) render_playfield::line#2) ← *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) render_playfield::i#2) -- _deref_pbuz1=pbuc1_derefidx_vbuz2 ldy i lda playfield,y ldy #0 sta (line),y - //SEG169 [77] (byte*) render_playfield::line#1 ← ++ (byte*) render_playfield::line#2 -- pbuz1=_inc_pbuz1 + //SEG171 [78] (byte*) render_playfield::line#1 ← ++ (byte*) render_playfield::line#2 -- pbuz1=_inc_pbuz1 inc line bne !+ inc line+1 !: - //SEG170 [78] (byte) render_playfield::i#1 ← ++ (byte) render_playfield::i#2 -- vbuz1=_inc_vbuz1 + //SEG172 [79] (byte) render_playfield::i#1 ← ++ (byte) render_playfield::i#2 -- vbuz1=_inc_vbuz1 inc i - //SEG171 [79] (byte) render_playfield::c#1 ← ++ (byte) render_playfield::c#2 -- vbuxx=_inc_vbuxx + //SEG173 [80] (byte) render_playfield::c#1 ← ++ (byte) render_playfield::c#2 -- vbuxx=_inc_vbuxx inx - //SEG172 [80] if((byte) render_playfield::c#1!=(const byte) PLAYFIELD_COLS#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_playfield::@2 -- vbuxx_neq_vbuc1_then_la1 + //SEG174 [81] if((byte) render_playfield::c#1!=(const byte) PLAYFIELD_COLS#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_playfield::@2 -- vbuxx_neq_vbuc1_then_la1 cpx #PLAYFIELD_COLS-1+1 bne b2 - //SEG173 render_playfield::@3 - //SEG174 [81] (byte) render_playfield::l#1 ← ++ (byte) render_playfield::l#2 -- vbuz1=_inc_vbuz1 + //SEG175 render_playfield::@3 + //SEG176 [82] (byte) render_playfield::l#1 ← ++ (byte) render_playfield::l#2 -- vbuz1=_inc_vbuz1 inc l - //SEG175 [82] if((byte) render_playfield::l#1!=(const byte) PLAYFIELD_LINES#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_playfield::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG177 [83] if((byte) render_playfield::l#1!=(const byte) PLAYFIELD_LINES#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_playfield::@1 -- vbuz1_neq_vbuc1_then_la1 lda l cmp #PLAYFIELD_LINES-1+1 bne b1 - //SEG176 render_playfield::@return - //SEG177 [83] return + //SEG178 render_playfield::@return + //SEG179 [84] return rts } -//SEG178 play_move_rotate +//SEG180 play_move_rotate play_move_rotate: { .label orientation = 4 - //SEG179 [84] if((byte) play_move_rotate::key_event#0==(const byte) KEY_Z#0) goto play_move_rotate::@1 -- vbuaa_eq_vbuc1_then_la1 + //SEG181 [85] if((byte) play_move_rotate::key_event#0==(const byte) KEY_Z#0) goto play_move_rotate::@1 -- vbuaa_eq_vbuc1_then_la1 cmp #KEY_Z beq b1 - //SEG180 play_move_rotate::@6 - //SEG181 [85] if((byte) play_move_rotate::key_event#0==(const byte) KEY_X#0) goto play_move_rotate::@2 -- vbuaa_eq_vbuc1_then_la1 + //SEG182 play_move_rotate::@6 + //SEG183 [86] if((byte) play_move_rotate::key_event#0==(const byte) KEY_X#0) goto play_move_rotate::@2 -- vbuaa_eq_vbuc1_then_la1 cmp #KEY_X beq b2 - //SEG182 [86] phi from play_move_rotate::@14 play_move_rotate::@6 to play_move_rotate::@return [phi:play_move_rotate::@14/play_move_rotate::@6->play_move_rotate::@return] + //SEG184 [87] phi from play_move_rotate::@14 play_move_rotate::@6 to play_move_rotate::@return [phi:play_move_rotate::@14/play_move_rotate::@6->play_move_rotate::@return] b3: - //SEG183 [86] phi (byte*) current_piece_gfx#18 = (byte*) current_piece_gfx#17 [phi:play_move_rotate::@14/play_move_rotate::@6->play_move_rotate::@return#0] -- register_copy - //SEG184 [86] phi (byte) current_orientation#23 = (byte) current_orientation#18 [phi:play_move_rotate::@14/play_move_rotate::@6->play_move_rotate::@return#1] -- register_copy - //SEG185 [86] phi (byte) play_move_rotate::return#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_rotate::@14/play_move_rotate::@6->play_move_rotate::@return#2] -- vbuaa=vbuc1 + //SEG185 [87] phi (byte*) current_piece_gfx#18 = (byte*) current_piece_gfx#17 [phi:play_move_rotate::@14/play_move_rotate::@6->play_move_rotate::@return#0] -- register_copy + //SEG186 [87] phi (byte) current_orientation#23 = (byte) current_orientation#18 [phi:play_move_rotate::@14/play_move_rotate::@6->play_move_rotate::@return#1] -- register_copy + //SEG187 [87] phi (byte) play_move_rotate::return#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_rotate::@14/play_move_rotate::@6->play_move_rotate::@return#2] -- vbuaa=vbuc1 lda #0 - //SEG186 play_move_rotate::@return + //SEG188 play_move_rotate::@return breturn: - //SEG187 [87] return + //SEG189 [88] return rts - //SEG188 play_move_rotate::@2 + //SEG190 play_move_rotate::@2 b2: - //SEG189 [88] (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 ← (byte) current_orientation#18 + (byte/signed byte/word/signed word/dword/signed dword) 16 -- vbuaa=vbuz1_plus_vbuc1 + //SEG191 [89] (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 ← (byte) current_orientation#18 + (byte/signed byte/word/signed word/dword/signed dword) 16 -- vbuaa=vbuz1_plus_vbuc1 lda #$10 clc adc current_orientation - //SEG190 [89] (byte) play_move_rotate::orientation#2 ← (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 & (byte/signed byte/word/signed word/dword/signed dword) 63 -- vbuz1=vbuaa_band_vbuc1 + //SEG192 [90] (byte) play_move_rotate::orientation#2 ← (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 & (byte/signed byte/word/signed word/dword/signed dword) 63 -- vbuz1=vbuaa_band_vbuc1 and #$3f sta orientation - //SEG191 [90] phi from play_move_rotate::@1 play_move_rotate::@2 to play_move_rotate::@4 [phi:play_move_rotate::@1/play_move_rotate::@2->play_move_rotate::@4] - //SEG192 [90] phi (byte) play_move_rotate::orientation#3 = (byte) play_move_rotate::orientation#1 [phi:play_move_rotate::@1/play_move_rotate::@2->play_move_rotate::@4#0] -- register_copy - //SEG193 play_move_rotate::@4 + //SEG193 [91] phi from play_move_rotate::@1 play_move_rotate::@2 to play_move_rotate::@4 [phi:play_move_rotate::@1/play_move_rotate::@2->play_move_rotate::@4] + //SEG194 [91] phi (byte) play_move_rotate::orientation#3 = (byte) play_move_rotate::orientation#1 [phi:play_move_rotate::@1/play_move_rotate::@2->play_move_rotate::@4#0] -- register_copy + //SEG195 play_move_rotate::@4 b4: - //SEG194 [91] (byte) collision::xpos#3 ← (byte) current_xpos#23 -- vbuz1=vbuz2 + //SEG196 [92] (byte) collision::xpos#3 ← (byte) current_xpos#23 -- vbuz1=vbuz2 lda current_xpos sta collision.xpos - //SEG195 [92] (byte) collision::ypos#3 ← (byte) current_ypos#16 -- vbuyy=vbuz1 + //SEG197 [93] (byte) collision::ypos#3 ← (byte) current_ypos#16 -- vbuyy=vbuz1 ldy current_ypos - //SEG196 [93] (byte) collision::orientation#3 ← (byte) play_move_rotate::orientation#3 -- vbuxx=vbuz1 + //SEG198 [94] (byte) collision::orientation#3 ← (byte) play_move_rotate::orientation#3 -- vbuxx=vbuz1 ldx orientation - //SEG197 [94] (byte*~) current_piece#75 ← (byte*) current_piece#13 -- pbuz1=pbuz2 + //SEG199 [95] (byte*~) current_piece#75 ← (byte*) current_piece#13 -- pbuz1=pbuz2 lda current_piece sta current_piece_75 lda current_piece+1 sta current_piece_75+1 - //SEG198 [95] call collision - //SEG199 [103] phi from play_move_rotate::@4 to collision [phi:play_move_rotate::@4->collision] - //SEG200 [103] phi (byte) collision::xpos#5 = (byte) collision::xpos#3 [phi:play_move_rotate::@4->collision#0] -- register_copy - //SEG201 [103] phi (byte) collision::ypos#4 = (byte) collision::ypos#3 [phi:play_move_rotate::@4->collision#1] -- register_copy - //SEG202 [103] phi (byte) collision::orientation#4 = (byte) collision::orientation#3 [phi:play_move_rotate::@4->collision#2] -- register_copy - //SEG203 [103] phi (byte*) current_piece#15 = (byte*~) current_piece#75 [phi:play_move_rotate::@4->collision#3] -- register_copy + //SEG200 [96] call collision + //SEG201 [104] phi from play_move_rotate::@4 to collision [phi:play_move_rotate::@4->collision] + //SEG202 [104] phi (byte) collision::xpos#5 = (byte) collision::xpos#3 [phi:play_move_rotate::@4->collision#0] -- register_copy + //SEG203 [104] phi (byte) collision::ypos#4 = (byte) collision::ypos#3 [phi:play_move_rotate::@4->collision#1] -- register_copy + //SEG204 [104] phi (byte) collision::orientation#4 = (byte) collision::orientation#3 [phi:play_move_rotate::@4->collision#2] -- register_copy + //SEG205 [104] phi (byte*) current_piece#15 = (byte*~) current_piece#75 [phi:play_move_rotate::@4->collision#3] -- register_copy jsr collision - //SEG204 [96] (byte) collision::return#13 ← (byte) collision::return#14 + //SEG206 [97] (byte) collision::return#13 ← (byte) collision::return#14 // (byte) collision::return#13 = (byte) collision::return#14 // register copy reg byte a - //SEG205 play_move_rotate::@14 - //SEG206 [97] (byte~) play_move_rotate::$6 ← (byte) collision::return#13 + //SEG207 play_move_rotate::@14 + //SEG208 [98] (byte~) play_move_rotate::$6 ← (byte) collision::return#13 // (byte~) play_move_rotate::$6 = (byte) collision::return#13 // register copy reg byte a - //SEG207 [98] if((byte~) play_move_rotate::$6!=(const byte) COLLISION_NONE#0) goto play_move_rotate::@return -- vbuaa_neq_vbuc1_then_la1 + //SEG209 [99] if((byte~) play_move_rotate::$6!=(const byte) COLLISION_NONE#0) goto play_move_rotate::@return -- vbuaa_neq_vbuc1_then_la1 cmp #COLLISION_NONE bne b3 - //SEG208 play_move_rotate::@11 - //SEG209 [99] (byte) current_orientation#8 ← (byte) play_move_rotate::orientation#3 -- vbuz1=vbuz2 + //SEG210 play_move_rotate::@11 + //SEG211 [100] (byte) current_orientation#8 ← (byte) play_move_rotate::orientation#3 -- vbuz1=vbuz2 lda orientation sta current_orientation - //SEG210 [100] (byte*) current_piece_gfx#8 ← (byte*) current_piece#13 + (byte) current_orientation#8 -- pbuz1=pbuz2_plus_vbuz3 + //SEG212 [101] (byte*) current_piece_gfx#8 ← (byte*) current_piece#13 + (byte) current_orientation#8 -- pbuz1=pbuz2_plus_vbuz3 clc adc current_piece sta current_piece_gfx lda #0 adc current_piece+1 sta current_piece_gfx+1 - //SEG211 [86] phi from play_move_rotate::@11 to play_move_rotate::@return [phi:play_move_rotate::@11->play_move_rotate::@return] - //SEG212 [86] phi (byte*) current_piece_gfx#18 = (byte*) current_piece_gfx#8 [phi:play_move_rotate::@11->play_move_rotate::@return#0] -- register_copy - //SEG213 [86] phi (byte) current_orientation#23 = (byte) current_orientation#8 [phi:play_move_rotate::@11->play_move_rotate::@return#1] -- register_copy - //SEG214 [86] phi (byte) play_move_rotate::return#2 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_move_rotate::@11->play_move_rotate::@return#2] -- vbuaa=vbuc1 + //SEG213 [87] phi from play_move_rotate::@11 to play_move_rotate::@return [phi:play_move_rotate::@11->play_move_rotate::@return] + //SEG214 [87] phi (byte*) current_piece_gfx#18 = (byte*) current_piece_gfx#8 [phi:play_move_rotate::@11->play_move_rotate::@return#0] -- register_copy + //SEG215 [87] phi (byte) current_orientation#23 = (byte) current_orientation#8 [phi:play_move_rotate::@11->play_move_rotate::@return#1] -- register_copy + //SEG216 [87] phi (byte) play_move_rotate::return#2 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_move_rotate::@11->play_move_rotate::@return#2] -- vbuaa=vbuc1 lda #1 jmp breturn - //SEG215 play_move_rotate::@1 + //SEG217 play_move_rotate::@1 b1: - //SEG216 [101] (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 ← (byte) current_orientation#18 - (byte/signed byte/word/signed word/dword/signed dword) 16 -- vbuaa=vbuz1_minus_vbuc1 + //SEG218 [102] (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 ← (byte) current_orientation#18 - (byte/signed byte/word/signed word/dword/signed dword) 16 -- vbuaa=vbuz1_minus_vbuc1 lda current_orientation sec sbc #$10 - //SEG217 [102] (byte) play_move_rotate::orientation#1 ← (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 & (byte/signed byte/word/signed word/dword/signed dword) 63 -- vbuz1=vbuaa_band_vbuc1 + //SEG219 [103] (byte) play_move_rotate::orientation#1 ← (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 & (byte/signed byte/word/signed word/dword/signed dword) 63 -- vbuz1=vbuaa_band_vbuc1 and #$3f sta orientation jmp b4 } -//SEG218 collision +//SEG220 collision collision: { .label xpos = 7 .label piece_gfx = 5 @@ -12709,7 +12755,7 @@ collision: { .label i_3 = $a .label i_11 = $a .label i_13 = $a - //SEG219 [104] (byte*) collision::piece_gfx#0 ← (byte*) current_piece#15 + (byte) collision::orientation#4 -- pbuz1=pbuz1_plus_vbuxx + //SEG221 [105] (byte*) collision::piece_gfx#0 ← (byte*) current_piece#15 + (byte) collision::orientation#4 -- pbuz1=pbuz1_plus_vbuxx txa clc adc piece_gfx @@ -12717,548 +12763,548 @@ collision: { lda #0 adc piece_gfx+1 sta piece_gfx+1 - //SEG220 [105] (byte) collision::ypos2#0 ← (byte) collision::ypos#4 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuyy_rol_1 + //SEG222 [106] (byte) collision::ypos2#0 ← (byte) collision::ypos#4 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuyy_rol_1 tya asl sta ypos2 - //SEG221 [106] phi from collision to collision::@1 [phi:collision->collision::@1] - //SEG222 [106] phi (byte) collision::l#6 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:collision->collision::@1#0] -- vbuz1=vbuc1 + //SEG223 [107] phi from collision to collision::@1 [phi:collision->collision::@1] + //SEG224 [107] phi (byte) collision::l#6 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:collision->collision::@1#0] -- vbuz1=vbuc1 lda #0 sta l - //SEG223 [106] phi (byte) collision::i#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:collision->collision::@1#1] -- vbuz1=vbuc1 + //SEG225 [107] phi (byte) collision::i#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:collision->collision::@1#1] -- vbuz1=vbuc1 sta i_3 - //SEG224 [106] phi (byte) collision::ypos2#2 = (byte) collision::ypos2#0 [phi:collision->collision::@1#2] -- register_copy - //SEG225 collision::@1 + //SEG226 [107] phi (byte) collision::ypos2#2 = (byte) collision::ypos2#0 [phi:collision->collision::@1#2] -- register_copy + //SEG227 collision::@1 b1: - //SEG226 [107] (byte*) collision::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) collision::ypos2#2) -- pbuz1=pptc1_derefidx_vbuz2 + //SEG228 [108] (byte*) collision::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) collision::ypos2#2) -- pbuz1=pptc1_derefidx_vbuz2 ldy ypos2 lda playfield_lines,y sta playfield_line lda playfield_lines+1,y sta playfield_line+1 - //SEG227 [108] (byte~) collision::col#9 ← (byte) collision::xpos#5 -- vbuz1=vbuz2 + //SEG229 [109] (byte~) collision::col#9 ← (byte) collision::xpos#5 -- vbuz1=vbuz2 lda xpos sta col - //SEG228 [109] phi from collision::@1 to collision::@2 [phi:collision::@1->collision::@2] - //SEG229 [109] phi (byte) collision::c#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:collision::@1->collision::@2#0] -- vbuxx=vbuc1 + //SEG230 [110] phi from collision::@1 to collision::@2 [phi:collision::@1->collision::@2] + //SEG231 [110] phi (byte) collision::c#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:collision::@1->collision::@2#0] -- vbuxx=vbuc1 ldx #0 - //SEG230 [109] phi (byte) collision::col#2 = (byte~) collision::col#9 [phi:collision::@1->collision::@2#1] -- register_copy - //SEG231 [109] phi (byte) collision::i#2 = (byte) collision::i#3 [phi:collision::@1->collision::@2#2] -- register_copy - //SEG232 collision::@2 + //SEG232 [110] phi (byte) collision::col#2 = (byte~) collision::col#9 [phi:collision::@1->collision::@2#1] -- register_copy + //SEG233 [110] phi (byte) collision::i#2 = (byte) collision::i#3 [phi:collision::@1->collision::@2#2] -- register_copy + //SEG234 collision::@2 b2: - //SEG233 [110] (byte) collision::i#1 ← ++ (byte) collision::i#2 -- vbuz1=_inc_vbuz2 + //SEG235 [111] (byte) collision::i#1 ← ++ (byte) collision::i#2 -- vbuz1=_inc_vbuz2 ldy i_2 iny sty i - //SEG234 [111] if(*((byte*) collision::piece_gfx#0 + (byte) collision::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto collision::@3 -- pbuz1_derefidx_vbuz2_eq_0_then_la1 + //SEG236 [112] if(*((byte*) collision::piece_gfx#0 + (byte) collision::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto collision::@3 -- pbuz1_derefidx_vbuz2_eq_0_then_la1 ldy i_2 lda (piece_gfx),y cmp #0 beq b3 - //SEG235 collision::@8 - //SEG236 [112] if((byte) collision::ypos2#2<(byte/signed byte/word/signed word/dword/signed dword) 2*(const byte) PLAYFIELD_LINES#0) goto collision::@4 -- vbuz1_lt_vbuc1_then_la1 + //SEG237 collision::@8 + //SEG238 [113] if((byte) collision::ypos2#2<(byte/signed byte/word/signed word/dword/signed dword) 2*(const byte) PLAYFIELD_LINES#0) goto collision::@4 -- vbuz1_lt_vbuc1_then_la1 lda ypos2 cmp #2*PLAYFIELD_LINES bcc b4 - //SEG237 [113] phi from collision::@8 to collision::@return [phi:collision::@8->collision::@return] - //SEG238 [113] phi (byte) collision::return#14 = (const byte) COLLISION_BOTTOM#0 [phi:collision::@8->collision::@return#0] -- vbuaa=vbuc1 + //SEG239 [114] phi from collision::@8 to collision::@return [phi:collision::@8->collision::@return] + //SEG240 [114] phi (byte) collision::return#14 = (const byte) COLLISION_BOTTOM#0 [phi:collision::@8->collision::@return#0] -- vbuaa=vbuc1 lda #COLLISION_BOTTOM - //SEG239 collision::@return + //SEG241 collision::@return breturn: - //SEG240 [114] return + //SEG242 [115] return rts - //SEG241 collision::@4 + //SEG243 collision::@4 b4: - //SEG242 [115] (byte~) collision::$7 ← (byte) collision::col#2 & (byte/word/signed word/dword/signed dword) 128 -- vbuaa=vbuz1_band_vbuc1 + //SEG244 [116] (byte~) collision::$7 ← (byte) collision::col#2 & (byte/word/signed word/dword/signed dword) 128 -- vbuaa=vbuz1_band_vbuc1 lda #$80 and col - //SEG243 [116] if((byte~) collision::$7==(byte/signed byte/word/signed word/dword/signed dword) 0) goto collision::@5 -- vbuaa_eq_0_then_la1 + //SEG245 [117] if((byte~) collision::$7==(byte/signed byte/word/signed word/dword/signed dword) 0) goto collision::@5 -- vbuaa_eq_0_then_la1 cmp #0 beq b5 - //SEG244 [113] phi from collision::@4 to collision::@return [phi:collision::@4->collision::@return] - //SEG245 [113] phi (byte) collision::return#14 = (const byte) COLLISION_LEFT#0 [phi:collision::@4->collision::@return#0] -- vbuaa=vbuc1 + //SEG246 [114] phi from collision::@4 to collision::@return [phi:collision::@4->collision::@return] + //SEG247 [114] phi (byte) collision::return#14 = (const byte) COLLISION_LEFT#0 [phi:collision::@4->collision::@return#0] -- vbuaa=vbuc1 lda #COLLISION_LEFT jmp breturn - //SEG246 collision::@5 + //SEG248 collision::@5 b5: - //SEG247 [117] if((byte) collision::col#2<(const byte) PLAYFIELD_COLS#0) goto collision::@6 -- vbuz1_lt_vbuc1_then_la1 + //SEG249 [118] if((byte) collision::col#2<(const byte) PLAYFIELD_COLS#0) goto collision::@6 -- vbuz1_lt_vbuc1_then_la1 lda col cmp #PLAYFIELD_COLS bcc b6 - //SEG248 [113] phi from collision::@5 to collision::@return [phi:collision::@5->collision::@return] - //SEG249 [113] phi (byte) collision::return#14 = (const byte) COLLISION_RIGHT#0 [phi:collision::@5->collision::@return#0] -- vbuaa=vbuc1 + //SEG250 [114] phi from collision::@5 to collision::@return [phi:collision::@5->collision::@return] + //SEG251 [114] phi (byte) collision::return#14 = (const byte) COLLISION_RIGHT#0 [phi:collision::@5->collision::@return#0] -- vbuaa=vbuc1 lda #COLLISION_RIGHT jmp breturn - //SEG250 collision::@6 + //SEG252 collision::@6 b6: - //SEG251 [118] if(*((byte*) collision::playfield_line#0 + (byte) collision::col#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto collision::@3 -- pbuz1_derefidx_vbuz2_eq_0_then_la1 + //SEG253 [119] if(*((byte*) collision::playfield_line#0 + (byte) collision::col#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto collision::@3 -- pbuz1_derefidx_vbuz2_eq_0_then_la1 ldy col lda (playfield_line),y cmp #0 beq b3 - //SEG252 [113] phi from collision::@6 to collision::@return [phi:collision::@6->collision::@return] - //SEG253 [113] phi (byte) collision::return#14 = (const byte) COLLISION_PLAYFIELD#0 [phi:collision::@6->collision::@return#0] -- vbuaa=vbuc1 + //SEG254 [114] phi from collision::@6 to collision::@return [phi:collision::@6->collision::@return] + //SEG255 [114] phi (byte) collision::return#14 = (const byte) COLLISION_PLAYFIELD#0 [phi:collision::@6->collision::@return#0] -- vbuaa=vbuc1 lda #COLLISION_PLAYFIELD jmp breturn - //SEG254 collision::@3 + //SEG256 collision::@3 b3: - //SEG255 [119] (byte) collision::col#1 ← ++ (byte) collision::col#2 -- vbuz1=_inc_vbuz1 + //SEG257 [120] (byte) collision::col#1 ← ++ (byte) collision::col#2 -- vbuz1=_inc_vbuz1 inc col - //SEG256 [120] (byte) collision::c#1 ← ++ (byte) collision::c#2 -- vbuxx=_inc_vbuxx + //SEG258 [121] (byte) collision::c#1 ← ++ (byte) collision::c#2 -- vbuxx=_inc_vbuxx inx - //SEG257 [121] if((byte) collision::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto collision::@21 -- vbuxx_neq_vbuc1_then_la1 + //SEG259 [122] if((byte) collision::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto collision::@21 -- vbuxx_neq_vbuc1_then_la1 cpx #4 bne b21 - //SEG258 collision::@17 - //SEG259 [122] (byte) collision::ypos2#1 ← (byte) collision::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 -- vbuz1=vbuz1_plus_2 + //SEG260 collision::@17 + //SEG261 [123] (byte) collision::ypos2#1 ← (byte) collision::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 -- vbuz1=vbuz1_plus_2 lda ypos2 clc adc #2 sta ypos2 - //SEG260 [123] (byte) collision::l#1 ← ++ (byte) collision::l#6 -- vbuz1=_inc_vbuz1 + //SEG262 [124] (byte) collision::l#1 ← ++ (byte) collision::l#6 -- vbuz1=_inc_vbuz1 inc l - //SEG261 [124] if((byte) collision::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto collision::@20 -- vbuz1_neq_vbuc1_then_la1 + //SEG263 [125] if((byte) collision::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto collision::@20 -- vbuz1_neq_vbuc1_then_la1 lda l cmp #4 bne b20 - //SEG262 [113] phi from collision::@17 to collision::@return [phi:collision::@17->collision::@return] - //SEG263 [113] phi (byte) collision::return#14 = (const byte) COLLISION_NONE#0 [phi:collision::@17->collision::@return#0] -- vbuaa=vbuc1 + //SEG264 [114] phi from collision::@17 to collision::@return [phi:collision::@17->collision::@return] + //SEG265 [114] phi (byte) collision::return#14 = (const byte) COLLISION_NONE#0 [phi:collision::@17->collision::@return#0] -- vbuaa=vbuc1 lda #COLLISION_NONE jmp breturn - //SEG264 collision::@20 + //SEG266 collision::@20 b20: - //SEG265 [125] (byte~) collision::i#11 ← (byte) collision::i#1 -- vbuz1=vbuz2 + //SEG267 [126] (byte~) collision::i#11 ← (byte) collision::i#1 -- vbuz1=vbuz2 lda i sta i_11 - //SEG266 [106] phi from collision::@20 to collision::@1 [phi:collision::@20->collision::@1] - //SEG267 [106] phi (byte) collision::l#6 = (byte) collision::l#1 [phi:collision::@20->collision::@1#0] -- register_copy - //SEG268 [106] phi (byte) collision::i#3 = (byte~) collision::i#11 [phi:collision::@20->collision::@1#1] -- register_copy - //SEG269 [106] phi (byte) collision::ypos2#2 = (byte) collision::ypos2#1 [phi:collision::@20->collision::@1#2] -- register_copy + //SEG268 [107] phi from collision::@20 to collision::@1 [phi:collision::@20->collision::@1] + //SEG269 [107] phi (byte) collision::l#6 = (byte) collision::l#1 [phi:collision::@20->collision::@1#0] -- register_copy + //SEG270 [107] phi (byte) collision::i#3 = (byte~) collision::i#11 [phi:collision::@20->collision::@1#1] -- register_copy + //SEG271 [107] phi (byte) collision::ypos2#2 = (byte) collision::ypos2#1 [phi:collision::@20->collision::@1#2] -- register_copy jmp b1 - //SEG270 collision::@21 + //SEG272 collision::@21 b21: - //SEG271 [126] (byte~) collision::i#13 ← (byte) collision::i#1 -- vbuz1=vbuz2 + //SEG273 [127] (byte~) collision::i#13 ← (byte) collision::i#1 -- vbuz1=vbuz2 lda i sta i_13 - //SEG272 [109] phi from collision::@21 to collision::@2 [phi:collision::@21->collision::@2] - //SEG273 [109] phi (byte) collision::c#2 = (byte) collision::c#1 [phi:collision::@21->collision::@2#0] -- register_copy - //SEG274 [109] phi (byte) collision::col#2 = (byte) collision::col#1 [phi:collision::@21->collision::@2#1] -- register_copy - //SEG275 [109] phi (byte) collision::i#2 = (byte~) collision::i#13 [phi:collision::@21->collision::@2#2] -- register_copy + //SEG274 [110] phi from collision::@21 to collision::@2 [phi:collision::@21->collision::@2] + //SEG275 [110] phi (byte) collision::c#2 = (byte) collision::c#1 [phi:collision::@21->collision::@2#0] -- register_copy + //SEG276 [110] phi (byte) collision::col#2 = (byte) collision::col#1 [phi:collision::@21->collision::@2#1] -- register_copy + //SEG277 [110] phi (byte) collision::i#2 = (byte~) collision::i#13 [phi:collision::@21->collision::@2#2] -- register_copy jmp b2 } -//SEG276 play_move_leftright +//SEG278 play_move_leftright play_move_leftright: { - //SEG277 [127] if((byte) play_move_leftright::key_event#0==(const byte) KEY_COMMA#0) goto play_move_leftright::@1 -- vbuaa_eq_vbuc1_then_la1 + //SEG279 [128] if((byte) play_move_leftright::key_event#0==(const byte) KEY_COMMA#0) goto play_move_leftright::@1 -- vbuaa_eq_vbuc1_then_la1 cmp #KEY_COMMA beq b1 - //SEG278 play_move_leftright::@6 - //SEG279 [128] if((byte) play_move_leftright::key_event#0!=(const byte) KEY_DOT#0) goto play_move_leftright::@return -- vbuaa_neq_vbuc1_then_la1 + //SEG280 play_move_leftright::@6 + //SEG281 [129] if((byte) play_move_leftright::key_event#0!=(const byte) KEY_DOT#0) goto play_move_leftright::@return -- vbuaa_neq_vbuc1_then_la1 cmp #KEY_DOT bne b3 - //SEG280 play_move_leftright::@7 - //SEG281 [129] (byte) collision::xpos#2 ← (byte) current_xpos#19 + (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_plus_1 + //SEG282 play_move_leftright::@7 + //SEG283 [130] (byte) collision::xpos#2 ← (byte) current_xpos#19 + (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_plus_1 ldy current_xpos iny sty collision.xpos - //SEG282 [130] (byte) collision::ypos#2 ← (byte) current_ypos#16 -- vbuyy=vbuz1 + //SEG284 [131] (byte) collision::ypos#2 ← (byte) current_ypos#16 -- vbuyy=vbuz1 ldy current_ypos - //SEG283 [131] (byte) collision::orientation#2 ← (byte) current_orientation#18 -- vbuxx=vbuz1 + //SEG285 [132] (byte) collision::orientation#2 ← (byte) current_orientation#18 -- vbuxx=vbuz1 ldx current_orientation - //SEG284 [132] (byte*~) current_piece#74 ← (byte*) current_piece#13 -- pbuz1=pbuz2 + //SEG286 [133] (byte*~) current_piece#74 ← (byte*) current_piece#13 -- pbuz1=pbuz2 lda current_piece sta current_piece_74 lda current_piece+1 sta current_piece_74+1 - //SEG285 [133] call collision - //SEG286 [103] phi from play_move_leftright::@7 to collision [phi:play_move_leftright::@7->collision] - //SEG287 [103] phi (byte) collision::xpos#5 = (byte) collision::xpos#2 [phi:play_move_leftright::@7->collision#0] -- register_copy - //SEG288 [103] phi (byte) collision::ypos#4 = (byte) collision::ypos#2 [phi:play_move_leftright::@7->collision#1] -- register_copy - //SEG289 [103] phi (byte) collision::orientation#4 = (byte) collision::orientation#2 [phi:play_move_leftright::@7->collision#2] -- register_copy - //SEG290 [103] phi (byte*) current_piece#15 = (byte*~) current_piece#74 [phi:play_move_leftright::@7->collision#3] -- register_copy + //SEG287 [134] call collision + //SEG288 [104] phi from play_move_leftright::@7 to collision [phi:play_move_leftright::@7->collision] + //SEG289 [104] phi (byte) collision::xpos#5 = (byte) collision::xpos#2 [phi:play_move_leftright::@7->collision#0] -- register_copy + //SEG290 [104] phi (byte) collision::ypos#4 = (byte) collision::ypos#2 [phi:play_move_leftright::@7->collision#1] -- register_copy + //SEG291 [104] phi (byte) collision::orientation#4 = (byte) collision::orientation#2 [phi:play_move_leftright::@7->collision#2] -- register_copy + //SEG292 [104] phi (byte*) current_piece#15 = (byte*~) current_piece#74 [phi:play_move_leftright::@7->collision#3] -- register_copy jsr collision - //SEG291 [134] (byte) collision::return#12 ← (byte) collision::return#14 + //SEG293 [135] (byte) collision::return#12 ← (byte) collision::return#14 // (byte) collision::return#12 = (byte) collision::return#14 // register copy reg byte a - //SEG292 play_move_leftright::@15 - //SEG293 [135] (byte~) play_move_leftright::$4 ← (byte) collision::return#12 + //SEG294 play_move_leftright::@15 + //SEG295 [136] (byte~) play_move_leftright::$4 ← (byte) collision::return#12 // (byte~) play_move_leftright::$4 = (byte) collision::return#12 // register copy reg byte a - //SEG294 [136] if((byte~) play_move_leftright::$4!=(const byte) COLLISION_NONE#0) goto play_move_leftright::@return -- vbuaa_neq_vbuc1_then_la1 + //SEG296 [137] if((byte~) play_move_leftright::$4!=(const byte) COLLISION_NONE#0) goto play_move_leftright::@return -- vbuaa_neq_vbuc1_then_la1 cmp #COLLISION_NONE bne b3 - //SEG295 play_move_leftright::@8 - //SEG296 [137] (byte) current_xpos#7 ← ++ (byte) current_xpos#19 -- vbuz1=_inc_vbuz1 + //SEG297 play_move_leftright::@8 + //SEG298 [138] (byte) current_xpos#7 ← ++ (byte) current_xpos#19 -- vbuz1=_inc_vbuz1 inc current_xpos - //SEG297 [138] phi from play_move_leftright::@11 play_move_leftright::@8 to play_move_leftright::@return [phi:play_move_leftright::@11/play_move_leftright::@8->play_move_leftright::@return] + //SEG299 [139] phi from play_move_leftright::@11 play_move_leftright::@8 to play_move_leftright::@return [phi:play_move_leftright::@11/play_move_leftright::@8->play_move_leftright::@return] b2: - //SEG298 [138] phi (byte) current_xpos#23 = (byte) current_xpos#9 [phi:play_move_leftright::@11/play_move_leftright::@8->play_move_leftright::@return#0] -- register_copy - //SEG299 [138] phi (byte) play_move_leftright::return#2 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_move_leftright::@11/play_move_leftright::@8->play_move_leftright::@return#1] -- vbuaa=vbuc1 + //SEG300 [139] phi (byte) current_xpos#23 = (byte) current_xpos#9 [phi:play_move_leftright::@11/play_move_leftright::@8->play_move_leftright::@return#0] -- register_copy + //SEG301 [139] phi (byte) play_move_leftright::return#2 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_move_leftright::@11/play_move_leftright::@8->play_move_leftright::@return#1] -- vbuaa=vbuc1 lda #1 jmp breturn - //SEG300 [138] phi from play_move_leftright::@14 play_move_leftright::@15 play_move_leftright::@6 to play_move_leftright::@return [phi:play_move_leftright::@14/play_move_leftright::@15/play_move_leftright::@6->play_move_leftright::@return] + //SEG302 [139] phi from play_move_leftright::@14 play_move_leftright::@15 play_move_leftright::@6 to play_move_leftright::@return [phi:play_move_leftright::@14/play_move_leftright::@15/play_move_leftright::@6->play_move_leftright::@return] b3: - //SEG301 [138] phi (byte) current_xpos#23 = (byte) current_xpos#19 [phi:play_move_leftright::@14/play_move_leftright::@15/play_move_leftright::@6->play_move_leftright::@return#0] -- register_copy - //SEG302 [138] phi (byte) play_move_leftright::return#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_leftright::@14/play_move_leftright::@15/play_move_leftright::@6->play_move_leftright::@return#1] -- vbuaa=vbuc1 + //SEG303 [139] phi (byte) current_xpos#23 = (byte) current_xpos#19 [phi:play_move_leftright::@14/play_move_leftright::@15/play_move_leftright::@6->play_move_leftright::@return#0] -- register_copy + //SEG304 [139] phi (byte) play_move_leftright::return#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_leftright::@14/play_move_leftright::@15/play_move_leftright::@6->play_move_leftright::@return#1] -- vbuaa=vbuc1 lda #0 - //SEG303 play_move_leftright::@return + //SEG305 play_move_leftright::@return breturn: - //SEG304 [139] return + //SEG306 [140] return rts - //SEG305 play_move_leftright::@1 + //SEG307 play_move_leftright::@1 b1: - //SEG306 [140] (byte) collision::xpos#1 ← (byte) current_xpos#19 - (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_minus_1 + //SEG308 [141] (byte) collision::xpos#1 ← (byte) current_xpos#19 - (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_minus_1 ldx current_xpos dex stx collision.xpos - //SEG307 [141] (byte) collision::ypos#1 ← (byte) current_ypos#16 -- vbuyy=vbuz1 + //SEG309 [142] (byte) collision::ypos#1 ← (byte) current_ypos#16 -- vbuyy=vbuz1 ldy current_ypos - //SEG308 [142] (byte) collision::orientation#1 ← (byte) current_orientation#18 -- vbuxx=vbuz1 + //SEG310 [143] (byte) collision::orientation#1 ← (byte) current_orientation#18 -- vbuxx=vbuz1 ldx current_orientation - //SEG309 [143] (byte*~) current_piece#73 ← (byte*) current_piece#13 -- pbuz1=pbuz2 + //SEG311 [144] (byte*~) current_piece#73 ← (byte*) current_piece#13 -- pbuz1=pbuz2 lda current_piece sta current_piece_73 lda current_piece+1 sta current_piece_73+1 - //SEG310 [144] call collision - //SEG311 [103] phi from play_move_leftright::@1 to collision [phi:play_move_leftright::@1->collision] - //SEG312 [103] phi (byte) collision::xpos#5 = (byte) collision::xpos#1 [phi:play_move_leftright::@1->collision#0] -- register_copy - //SEG313 [103] phi (byte) collision::ypos#4 = (byte) collision::ypos#1 [phi:play_move_leftright::@1->collision#1] -- register_copy - //SEG314 [103] phi (byte) collision::orientation#4 = (byte) collision::orientation#1 [phi:play_move_leftright::@1->collision#2] -- register_copy - //SEG315 [103] phi (byte*) current_piece#15 = (byte*~) current_piece#73 [phi:play_move_leftright::@1->collision#3] -- register_copy + //SEG312 [145] call collision + //SEG313 [104] phi from play_move_leftright::@1 to collision [phi:play_move_leftright::@1->collision] + //SEG314 [104] phi (byte) collision::xpos#5 = (byte) collision::xpos#1 [phi:play_move_leftright::@1->collision#0] -- register_copy + //SEG315 [104] phi (byte) collision::ypos#4 = (byte) collision::ypos#1 [phi:play_move_leftright::@1->collision#1] -- register_copy + //SEG316 [104] phi (byte) collision::orientation#4 = (byte) collision::orientation#1 [phi:play_move_leftright::@1->collision#2] -- register_copy + //SEG317 [104] phi (byte*) current_piece#15 = (byte*~) current_piece#73 [phi:play_move_leftright::@1->collision#3] -- register_copy jsr collision - //SEG316 [145] (byte) collision::return#1 ← (byte) collision::return#14 + //SEG318 [146] (byte) collision::return#1 ← (byte) collision::return#14 // (byte) collision::return#1 = (byte) collision::return#14 // register copy reg byte a - //SEG317 play_move_leftright::@14 - //SEG318 [146] (byte~) play_move_leftright::$8 ← (byte) collision::return#1 + //SEG319 play_move_leftright::@14 + //SEG320 [147] (byte~) play_move_leftright::$8 ← (byte) collision::return#1 // (byte~) play_move_leftright::$8 = (byte) collision::return#1 // register copy reg byte a - //SEG319 [147] if((byte~) play_move_leftright::$8!=(const byte) COLLISION_NONE#0) goto play_move_leftright::@return -- vbuaa_neq_vbuc1_then_la1 + //SEG321 [148] if((byte~) play_move_leftright::$8!=(const byte) COLLISION_NONE#0) goto play_move_leftright::@return -- vbuaa_neq_vbuc1_then_la1 cmp #COLLISION_NONE bne b3 - //SEG320 play_move_leftright::@11 - //SEG321 [148] (byte) current_xpos#9 ← -- (byte) current_xpos#19 -- vbuz1=_dec_vbuz1 + //SEG322 play_move_leftright::@11 + //SEG323 [149] (byte) current_xpos#9 ← -- (byte) current_xpos#19 -- vbuz1=_dec_vbuz1 dec current_xpos jmp b2 } -//SEG322 play_move_down +//SEG324 play_move_down play_move_down: { - //SEG323 [149] (byte) current_movedown_counter#10 ← ++ (byte) current_movedown_counter#15 -- vbuz1=_inc_vbuz1 + //SEG325 [150] (byte) current_movedown_counter#10 ← ++ (byte) current_movedown_counter#15 -- vbuz1=_inc_vbuz1 inc current_movedown_counter - //SEG324 [150] if((byte) play_move_down::key_event#0!=(const byte) KEY_SPACE#0) goto play_move_down::@1 -- vbuaa_neq_vbuc1_then_la1 + //SEG326 [151] if((byte) play_move_down::key_event#0!=(const byte) KEY_SPACE#0) goto play_move_down::@1 -- vbuaa_neq_vbuc1_then_la1 cmp #KEY_SPACE bne b3 - //SEG325 [151] phi from play_move_down to play_move_down::@8 [phi:play_move_down->play_move_down::@8] - //SEG326 play_move_down::@8 - //SEG327 [152] phi from play_move_down::@8 to play_move_down::@1 [phi:play_move_down::@8->play_move_down::@1] - //SEG328 [152] phi (byte) play_move_down::movedown#10 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_move_down::@8->play_move_down::@1#0] -- vbuxx=vbuc1 + //SEG327 [152] phi from play_move_down to play_move_down::@8 [phi:play_move_down->play_move_down::@8] + //SEG328 play_move_down::@8 + //SEG329 [153] phi from play_move_down::@8 to play_move_down::@1 [phi:play_move_down::@8->play_move_down::@1] + //SEG330 [153] phi (byte) play_move_down::movedown#10 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_move_down::@8->play_move_down::@1#0] -- vbuxx=vbuc1 ldx #1 jmp b1 - //SEG329 [152] phi from play_move_down to play_move_down::@1 [phi:play_move_down->play_move_down::@1] + //SEG331 [153] phi from play_move_down to play_move_down::@1 [phi:play_move_down->play_move_down::@1] b3: - //SEG330 [152] phi (byte) play_move_down::movedown#10 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_down->play_move_down::@1#0] -- vbuxx=vbuc1 + //SEG332 [153] phi (byte) play_move_down::movedown#10 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_down->play_move_down::@1#0] -- vbuxx=vbuc1 ldx #0 - //SEG331 play_move_down::@1 + //SEG333 play_move_down::@1 b1: - //SEG332 [153] call keyboard_event_pressed - //SEG333 [236] phi from play_move_down::@1 to keyboard_event_pressed [phi:play_move_down::@1->keyboard_event_pressed] - //SEG334 [236] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_SPACE#0 [phi:play_move_down::@1->keyboard_event_pressed#0] -- vbuz1=vbuc1 + //SEG334 [154] call keyboard_event_pressed + //SEG335 [237] phi from play_move_down::@1 to keyboard_event_pressed [phi:play_move_down::@1->keyboard_event_pressed] + //SEG336 [237] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_SPACE#0 [phi:play_move_down::@1->keyboard_event_pressed#0] -- vbuz1=vbuc1 lda #KEY_SPACE sta keyboard_event_pressed.keycode jsr keyboard_event_pressed - //SEG335 [154] (byte) keyboard_event_pressed::return#12 ← (byte) keyboard_event_pressed::return#11 + //SEG337 [155] (byte) keyboard_event_pressed::return#12 ← (byte) keyboard_event_pressed::return#11 // (byte) keyboard_event_pressed::return#12 = (byte) keyboard_event_pressed::return#11 // register copy reg byte a - //SEG336 play_move_down::@17 - //SEG337 [155] (byte~) play_move_down::$2 ← (byte) keyboard_event_pressed::return#12 + //SEG338 play_move_down::@17 + //SEG339 [156] (byte~) play_move_down::$2 ← (byte) keyboard_event_pressed::return#12 // (byte~) play_move_down::$2 = (byte) keyboard_event_pressed::return#12 // register copy reg byte a - //SEG338 [156] if((byte~) play_move_down::$2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_move_down::@2 -- vbuaa_eq_0_then_la1 + //SEG340 [157] if((byte~) play_move_down::$2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_move_down::@2 -- vbuaa_eq_0_then_la1 cmp #0 beq b2 - //SEG339 play_move_down::@9 - //SEG340 [157] if((byte) current_movedown_counter#10<(const byte) current_movedown_fast#0) goto play_move_down::@2 -- vbuz1_lt_vbuc1_then_la1 + //SEG341 play_move_down::@9 + //SEG342 [158] if((byte) current_movedown_counter#10<(const byte) current_movedown_fast#0) goto play_move_down::@2 -- vbuz1_lt_vbuc1_then_la1 lda current_movedown_counter cmp #current_movedown_fast bcc b2 - //SEG341 play_move_down::@10 - //SEG342 [158] (byte) play_move_down::movedown#2 ← ++ (byte) play_move_down::movedown#10 -- vbuxx=_inc_vbuxx + //SEG343 play_move_down::@10 + //SEG344 [159] (byte) play_move_down::movedown#2 ← ++ (byte) play_move_down::movedown#10 -- vbuxx=_inc_vbuxx inx - //SEG343 [159] phi from play_move_down::@10 play_move_down::@17 play_move_down::@9 to play_move_down::@2 [phi:play_move_down::@10/play_move_down::@17/play_move_down::@9->play_move_down::@2] - //SEG344 [159] phi (byte) play_move_down::movedown#7 = (byte) play_move_down::movedown#2 [phi:play_move_down::@10/play_move_down::@17/play_move_down::@9->play_move_down::@2#0] -- register_copy - //SEG345 play_move_down::@2 + //SEG345 [160] phi from play_move_down::@10 play_move_down::@17 play_move_down::@9 to play_move_down::@2 [phi:play_move_down::@10/play_move_down::@17/play_move_down::@9->play_move_down::@2] + //SEG346 [160] phi (byte) play_move_down::movedown#7 = (byte) play_move_down::movedown#2 [phi:play_move_down::@10/play_move_down::@17/play_move_down::@9->play_move_down::@2#0] -- register_copy + //SEG347 play_move_down::@2 b2: - //SEG346 [160] if((byte) current_movedown_counter#10<(const byte) current_movedown_slow#0) goto play_move_down::@4 -- vbuz1_lt_vbuc1_then_la1 + //SEG348 [161] if((byte) current_movedown_counter#10<(const byte) current_movedown_slow#0) goto play_move_down::@4 -- vbuz1_lt_vbuc1_then_la1 lda current_movedown_counter cmp #current_movedown_slow bcc b4 - //SEG347 play_move_down::@11 - //SEG348 [161] (byte) play_move_down::movedown#3 ← ++ (byte) play_move_down::movedown#7 -- vbuxx=_inc_vbuxx + //SEG349 play_move_down::@11 + //SEG350 [162] (byte) play_move_down::movedown#3 ← ++ (byte) play_move_down::movedown#7 -- vbuxx=_inc_vbuxx inx - //SEG349 [162] phi from play_move_down::@11 play_move_down::@2 to play_move_down::@4 [phi:play_move_down::@11/play_move_down::@2->play_move_down::@4] - //SEG350 [162] phi (byte) play_move_down::movedown#6 = (byte) play_move_down::movedown#3 [phi:play_move_down::@11/play_move_down::@2->play_move_down::@4#0] -- register_copy - //SEG351 play_move_down::@4 + //SEG351 [163] phi from play_move_down::@11 play_move_down::@2 to play_move_down::@4 [phi:play_move_down::@11/play_move_down::@2->play_move_down::@4] + //SEG352 [163] phi (byte) play_move_down::movedown#6 = (byte) play_move_down::movedown#3 [phi:play_move_down::@11/play_move_down::@2->play_move_down::@4#0] -- register_copy + //SEG353 play_move_down::@4 b4: - //SEG352 [163] if((byte) play_move_down::movedown#6==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_move_down::@return -- vbuxx_eq_0_then_la1 + //SEG354 [164] if((byte) play_move_down::movedown#6==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_move_down::@return -- vbuxx_eq_0_then_la1 cpx #0 beq b5 - //SEG353 play_move_down::@12 - //SEG354 [164] (byte) collision::ypos#0 ← (byte) current_ypos#12 + (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuyy=vbuz1_plus_1 + //SEG355 play_move_down::@12 + //SEG356 [165] (byte) collision::ypos#0 ← (byte) current_ypos#12 + (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuyy=vbuz1_plus_1 ldy current_ypos iny - //SEG355 [165] (byte) collision::xpos#0 ← (byte) current_xpos#16 -- vbuz1=vbuz2 + //SEG357 [166] (byte) collision::xpos#0 ← (byte) current_xpos#16 -- vbuz1=vbuz2 lda current_xpos sta collision.xpos - //SEG356 [166] (byte) collision::orientation#0 ← (byte) current_orientation#15 -- vbuxx=vbuz1 + //SEG358 [167] (byte) collision::orientation#0 ← (byte) current_orientation#15 -- vbuxx=vbuz1 ldx current_orientation - //SEG357 [167] (byte*~) current_piece#72 ← (byte*) current_piece#11 -- pbuz1=pbuz2 + //SEG359 [168] (byte*~) current_piece#72 ← (byte*) current_piece#11 -- pbuz1=pbuz2 lda current_piece sta current_piece_72 lda current_piece+1 sta current_piece_72+1 - //SEG358 [168] call collision - //SEG359 [103] phi from play_move_down::@12 to collision [phi:play_move_down::@12->collision] - //SEG360 [103] phi (byte) collision::xpos#5 = (byte) collision::xpos#0 [phi:play_move_down::@12->collision#0] -- register_copy - //SEG361 [103] phi (byte) collision::ypos#4 = (byte) collision::ypos#0 [phi:play_move_down::@12->collision#1] -- register_copy - //SEG362 [103] phi (byte) collision::orientation#4 = (byte) collision::orientation#0 [phi:play_move_down::@12->collision#2] -- register_copy - //SEG363 [103] phi (byte*) current_piece#15 = (byte*~) current_piece#72 [phi:play_move_down::@12->collision#3] -- register_copy + //SEG360 [169] call collision + //SEG361 [104] phi from play_move_down::@12 to collision [phi:play_move_down::@12->collision] + //SEG362 [104] phi (byte) collision::xpos#5 = (byte) collision::xpos#0 [phi:play_move_down::@12->collision#0] -- register_copy + //SEG363 [104] phi (byte) collision::ypos#4 = (byte) collision::ypos#0 [phi:play_move_down::@12->collision#1] -- register_copy + //SEG364 [104] phi (byte) collision::orientation#4 = (byte) collision::orientation#0 [phi:play_move_down::@12->collision#2] -- register_copy + //SEG365 [104] phi (byte*) current_piece#15 = (byte*~) current_piece#72 [phi:play_move_down::@12->collision#3] -- register_copy jsr collision - //SEG364 [169] (byte) collision::return#0 ← (byte) collision::return#14 + //SEG366 [170] (byte) collision::return#0 ← (byte) collision::return#14 // (byte) collision::return#0 = (byte) collision::return#14 // register copy reg byte a - //SEG365 play_move_down::@18 - //SEG366 [170] (byte~) play_move_down::$12 ← (byte) collision::return#0 + //SEG367 play_move_down::@18 + //SEG368 [171] (byte~) play_move_down::$12 ← (byte) collision::return#0 // (byte~) play_move_down::$12 = (byte) collision::return#0 // register copy reg byte a - //SEG367 [171] if((byte~) play_move_down::$12==(const byte) COLLISION_NONE#0) goto play_move_down::@6 -- vbuaa_eq_vbuc1_then_la1 + //SEG369 [172] if((byte~) play_move_down::$12==(const byte) COLLISION_NONE#0) goto play_move_down::@6 -- vbuaa_eq_vbuc1_then_la1 cmp #COLLISION_NONE beq b6 - //SEG368 [172] phi from play_move_down::@18 to play_move_down::@13 [phi:play_move_down::@18->play_move_down::@13] - //SEG369 play_move_down::@13 - //SEG370 [173] call lock_current + //SEG370 [173] phi from play_move_down::@18 to play_move_down::@13 [phi:play_move_down::@18->play_move_down::@13] + //SEG371 play_move_down::@13 + //SEG372 [174] call lock_current jsr lock_current - //SEG371 [174] phi from play_move_down::@13 to play_move_down::@19 [phi:play_move_down::@13->play_move_down::@19] - //SEG372 play_move_down::@19 - //SEG373 [175] call remove_lines - //SEG374 [197] phi from play_move_down::@19 to remove_lines [phi:play_move_down::@19->remove_lines] + //SEG373 [175] phi from play_move_down::@13 to play_move_down::@19 [phi:play_move_down::@13->play_move_down::@19] + //SEG374 play_move_down::@19 + //SEG375 [176] call remove_lines + //SEG376 [198] phi from play_move_down::@19 to remove_lines [phi:play_move_down::@19->remove_lines] jsr remove_lines - //SEG375 [176] phi from play_move_down::@19 to play_move_down::@20 [phi:play_move_down::@19->play_move_down::@20] - //SEG376 play_move_down::@20 - //SEG377 [177] call spawn_current - //SEG378 [183] phi from play_move_down::@20 to spawn_current [phi:play_move_down::@20->spawn_current] + //SEG377 [177] phi from play_move_down::@19 to play_move_down::@20 [phi:play_move_down::@19->play_move_down::@20] + //SEG378 play_move_down::@20 + //SEG379 [178] call spawn_current + //SEG380 [184] phi from play_move_down::@20 to spawn_current [phi:play_move_down::@20->spawn_current] jsr spawn_current - //SEG379 [178] (byte*~) current_piece#76 ← (byte*)*((const word[]) PIECES#0 + (byte~) spawn_current::$3) -- pbuz1=pptc1_derefidx_vbuz2 + //SEG381 [179] (byte*~) current_piece#76 ← (byte*)*((const word[]) PIECES#0 + (byte~) spawn_current::$3) -- pbuz1=pptc1_derefidx_vbuz2 ldy spawn_current._3 lda PIECES,y sta current_piece lda PIECES+1,y sta current_piece+1 - //SEG380 [179] phi from play_move_down::@20 to play_move_down::@7 [phi:play_move_down::@20->play_move_down::@7] - //SEG381 [179] phi (byte) current_piece_color#23 = (byte) current_piece_color#15 [phi:play_move_down::@20->play_move_down::@7#0] -- register_copy - //SEG382 [179] phi (byte) current_xpos#36 = (byte/signed byte/word/signed word/dword/signed dword) 3 [phi:play_move_down::@20->play_move_down::@7#1] -- vbuz1=vbuc1 + //SEG382 [180] phi from play_move_down::@20 to play_move_down::@7 [phi:play_move_down::@20->play_move_down::@7] + //SEG383 [180] phi (byte) current_piece_color#23 = (byte) current_piece_color#15 [phi:play_move_down::@20->play_move_down::@7#0] -- register_copy + //SEG384 [180] phi (byte) current_xpos#36 = (byte/signed byte/word/signed word/dword/signed dword) 3 [phi:play_move_down::@20->play_move_down::@7#1] -- vbuz1=vbuc1 lda #3 sta current_xpos - //SEG383 [179] phi (byte*) current_piece_gfx#29 = (byte*) current_piece_gfx#10 [phi:play_move_down::@20->play_move_down::@7#2] -- register_copy - //SEG384 [179] phi (byte) current_orientation#33 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_down::@20->play_move_down::@7#3] -- vbuz1=vbuc1 + //SEG385 [180] phi (byte*) current_piece_gfx#29 = (byte*) current_piece_gfx#10 [phi:play_move_down::@20->play_move_down::@7#2] -- register_copy + //SEG386 [180] phi (byte) current_orientation#33 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_down::@20->play_move_down::@7#3] -- vbuz1=vbuc1 lda #0 sta current_orientation - //SEG385 [179] phi (byte*) current_piece#23 = (byte*~) current_piece#76 [phi:play_move_down::@20->play_move_down::@7#4] -- register_copy - //SEG386 [179] phi (byte) current_ypos#31 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_down::@20->play_move_down::@7#5] -- vbuz1=vbuc1 + //SEG387 [180] phi (byte*) current_piece#23 = (byte*~) current_piece#76 [phi:play_move_down::@20->play_move_down::@7#4] -- register_copy + //SEG388 [180] phi (byte) current_ypos#31 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_down::@20->play_move_down::@7#5] -- vbuz1=vbuc1 sta current_ypos - //SEG387 play_move_down::@7 + //SEG389 play_move_down::@7 b7: - //SEG388 [180] phi from play_move_down::@7 to play_move_down::@return [phi:play_move_down::@7->play_move_down::@return] - //SEG389 [180] phi (byte) current_piece_color#13 = (byte) current_piece_color#23 [phi:play_move_down::@7->play_move_down::@return#0] -- register_copy - //SEG390 [180] phi (byte) current_xpos#19 = (byte) current_xpos#36 [phi:play_move_down::@7->play_move_down::@return#1] -- register_copy - //SEG391 [180] phi (byte*) current_piece_gfx#17 = (byte*) current_piece_gfx#29 [phi:play_move_down::@7->play_move_down::@return#2] -- register_copy - //SEG392 [180] phi (byte) current_orientation#18 = (byte) current_orientation#33 [phi:play_move_down::@7->play_move_down::@return#3] -- register_copy - //SEG393 [180] phi (byte*) current_piece#13 = (byte*) current_piece#23 [phi:play_move_down::@7->play_move_down::@return#4] -- register_copy - //SEG394 [180] phi (byte) current_ypos#16 = (byte) current_ypos#31 [phi:play_move_down::@7->play_move_down::@return#5] -- register_copy - //SEG395 [180] phi (byte) current_movedown_counter#12 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_down::@7->play_move_down::@return#6] -- vbuz1=vbuc1 + //SEG390 [181] phi from play_move_down::@7 to play_move_down::@return [phi:play_move_down::@7->play_move_down::@return] + //SEG391 [181] phi (byte) current_piece_color#13 = (byte) current_piece_color#23 [phi:play_move_down::@7->play_move_down::@return#0] -- register_copy + //SEG392 [181] phi (byte) current_xpos#19 = (byte) current_xpos#36 [phi:play_move_down::@7->play_move_down::@return#1] -- register_copy + //SEG393 [181] phi (byte*) current_piece_gfx#17 = (byte*) current_piece_gfx#29 [phi:play_move_down::@7->play_move_down::@return#2] -- register_copy + //SEG394 [181] phi (byte) current_orientation#18 = (byte) current_orientation#33 [phi:play_move_down::@7->play_move_down::@return#3] -- register_copy + //SEG395 [181] phi (byte*) current_piece#13 = (byte*) current_piece#23 [phi:play_move_down::@7->play_move_down::@return#4] -- register_copy + //SEG396 [181] phi (byte) current_ypos#16 = (byte) current_ypos#31 [phi:play_move_down::@7->play_move_down::@return#5] -- register_copy + //SEG397 [181] phi (byte) current_movedown_counter#12 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_down::@7->play_move_down::@return#6] -- vbuz1=vbuc1 lda #0 sta current_movedown_counter - //SEG396 [180] phi (byte) play_move_down::return#3 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_move_down::@7->play_move_down::@return#7] -- vbuxx=vbuc1 + //SEG398 [181] phi (byte) play_move_down::return#3 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_move_down::@7->play_move_down::@return#7] -- vbuxx=vbuc1 ldx #1 jmp breturn - //SEG397 [180] phi from play_move_down::@4 to play_move_down::@return [phi:play_move_down::@4->play_move_down::@return] + //SEG399 [181] phi from play_move_down::@4 to play_move_down::@return [phi:play_move_down::@4->play_move_down::@return] b5: - //SEG398 [180] phi (byte) current_piece_color#13 = (byte) current_piece_color#11 [phi:play_move_down::@4->play_move_down::@return#0] -- register_copy - //SEG399 [180] phi (byte) current_xpos#19 = (byte) current_xpos#16 [phi:play_move_down::@4->play_move_down::@return#1] -- register_copy - //SEG400 [180] phi (byte*) current_piece_gfx#17 = (byte*) current_piece_gfx#15 [phi:play_move_down::@4->play_move_down::@return#2] -- register_copy - //SEG401 [180] phi (byte) current_orientation#18 = (byte) current_orientation#15 [phi:play_move_down::@4->play_move_down::@return#3] -- register_copy - //SEG402 [180] phi (byte*) current_piece#13 = (byte*) current_piece#11 [phi:play_move_down::@4->play_move_down::@return#4] -- register_copy - //SEG403 [180] phi (byte) current_ypos#16 = (byte) current_ypos#12 [phi:play_move_down::@4->play_move_down::@return#5] -- register_copy - //SEG404 [180] phi (byte) current_movedown_counter#12 = (byte) current_movedown_counter#10 [phi:play_move_down::@4->play_move_down::@return#6] -- register_copy - //SEG405 [180] phi (byte) play_move_down::return#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_down::@4->play_move_down::@return#7] -- vbuxx=vbuc1 + //SEG400 [181] phi (byte) current_piece_color#13 = (byte) current_piece_color#11 [phi:play_move_down::@4->play_move_down::@return#0] -- register_copy + //SEG401 [181] phi (byte) current_xpos#19 = (byte) current_xpos#16 [phi:play_move_down::@4->play_move_down::@return#1] -- register_copy + //SEG402 [181] phi (byte*) current_piece_gfx#17 = (byte*) current_piece_gfx#15 [phi:play_move_down::@4->play_move_down::@return#2] -- register_copy + //SEG403 [181] phi (byte) current_orientation#18 = (byte) current_orientation#15 [phi:play_move_down::@4->play_move_down::@return#3] -- register_copy + //SEG404 [181] phi (byte*) current_piece#13 = (byte*) current_piece#11 [phi:play_move_down::@4->play_move_down::@return#4] -- register_copy + //SEG405 [181] phi (byte) current_ypos#16 = (byte) current_ypos#12 [phi:play_move_down::@4->play_move_down::@return#5] -- register_copy + //SEG406 [181] phi (byte) current_movedown_counter#12 = (byte) current_movedown_counter#10 [phi:play_move_down::@4->play_move_down::@return#6] -- register_copy + //SEG407 [181] phi (byte) play_move_down::return#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_down::@4->play_move_down::@return#7] -- vbuxx=vbuc1 ldx #0 - //SEG406 play_move_down::@return + //SEG408 play_move_down::@return breturn: - //SEG407 [181] return + //SEG409 [182] return rts - //SEG408 play_move_down::@6 + //SEG410 play_move_down::@6 b6: - //SEG409 [182] (byte) current_ypos#4 ← ++ (byte) current_ypos#12 -- vbuz1=_inc_vbuz1 + //SEG411 [183] (byte) current_ypos#4 ← ++ (byte) current_ypos#12 -- vbuz1=_inc_vbuz1 inc current_ypos - //SEG410 [179] phi from play_move_down::@6 to play_move_down::@7 [phi:play_move_down::@6->play_move_down::@7] - //SEG411 [179] phi (byte) current_piece_color#23 = (byte) current_piece_color#11 [phi:play_move_down::@6->play_move_down::@7#0] -- register_copy - //SEG412 [179] phi (byte) current_xpos#36 = (byte) current_xpos#16 [phi:play_move_down::@6->play_move_down::@7#1] -- register_copy - //SEG413 [179] phi (byte*) current_piece_gfx#29 = (byte*) current_piece_gfx#15 [phi:play_move_down::@6->play_move_down::@7#2] -- register_copy - //SEG414 [179] phi (byte) current_orientation#33 = (byte) current_orientation#15 [phi:play_move_down::@6->play_move_down::@7#3] -- register_copy - //SEG415 [179] phi (byte*) current_piece#23 = (byte*) current_piece#11 [phi:play_move_down::@6->play_move_down::@7#4] -- register_copy - //SEG416 [179] phi (byte) current_ypos#31 = (byte) current_ypos#4 [phi:play_move_down::@6->play_move_down::@7#5] -- register_copy + //SEG412 [180] phi from play_move_down::@6 to play_move_down::@7 [phi:play_move_down::@6->play_move_down::@7] + //SEG413 [180] phi (byte) current_piece_color#23 = (byte) current_piece_color#11 [phi:play_move_down::@6->play_move_down::@7#0] -- register_copy + //SEG414 [180] phi (byte) current_xpos#36 = (byte) current_xpos#16 [phi:play_move_down::@6->play_move_down::@7#1] -- register_copy + //SEG415 [180] phi (byte*) current_piece_gfx#29 = (byte*) current_piece_gfx#15 [phi:play_move_down::@6->play_move_down::@7#2] -- register_copy + //SEG416 [180] phi (byte) current_orientation#33 = (byte) current_orientation#15 [phi:play_move_down::@6->play_move_down::@7#3] -- register_copy + //SEG417 [180] phi (byte*) current_piece#23 = (byte*) current_piece#11 [phi:play_move_down::@6->play_move_down::@7#4] -- register_copy + //SEG418 [180] phi (byte) current_ypos#31 = (byte) current_ypos#4 [phi:play_move_down::@6->play_move_down::@7#5] -- register_copy jmp b7 } -//SEG417 spawn_current +//SEG419 spawn_current spawn_current: { .label _3 = 2 - //SEG418 [184] phi from spawn_current to spawn_current::@1 [phi:spawn_current->spawn_current::@1] - //SEG419 [184] phi (byte) spawn_current::piece_idx#2 = (byte/signed byte/word/signed word/dword/signed dword) 7 [phi:spawn_current->spawn_current::@1#0] -- vbuxx=vbuc1 + //SEG420 [185] phi from spawn_current to spawn_current::@1 [phi:spawn_current->spawn_current::@1] + //SEG421 [185] phi (byte) spawn_current::piece_idx#2 = (byte/signed byte/word/signed word/dword/signed dword) 7 [phi:spawn_current->spawn_current::@1#0] -- vbuxx=vbuc1 ldx #7 - //SEG420 spawn_current::@1 + //SEG422 spawn_current::@1 b1: - //SEG421 [185] if((byte) spawn_current::piece_idx#2==(byte/signed byte/word/signed word/dword/signed dword) 7) goto spawn_current::@2 -- vbuxx_eq_vbuc1_then_la1 + //SEG423 [186] if((byte) spawn_current::piece_idx#2==(byte/signed byte/word/signed word/dword/signed dword) 7) goto spawn_current::@2 -- vbuxx_eq_vbuc1_then_la1 cpx #7 beq b2 - //SEG422 spawn_current::@3 - //SEG423 [186] (byte~) spawn_current::$3 ← (byte) spawn_current::piece_idx#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuxx_rol_1 + //SEG424 spawn_current::@3 + //SEG425 [187] (byte~) spawn_current::$3 ← (byte) spawn_current::piece_idx#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuxx_rol_1 txa asl sta _3 - //SEG424 [187] (byte*) current_piece_gfx#10 ← (byte*)*((const word[]) PIECES#0 + (byte~) spawn_current::$3) + (byte/signed byte/word/signed word/dword/signed dword) 0 -- pbuz1=pptc1_derefidx_vbuz2_plus_0 + //SEG426 [188] (byte*) current_piece_gfx#10 ← (byte*)*((const word[]) PIECES#0 + (byte~) spawn_current::$3) + (byte/signed byte/word/signed word/dword/signed dword) 0 -- pbuz1=pptc1_derefidx_vbuz2_plus_0 tay lda PIECES,y sta current_piece_gfx lda PIECES+1,y sta current_piece_gfx+1 - //SEG425 [188] (byte) current_piece_color#15 ← *((const byte[]) PIECES_COLORS#0 + (byte) spawn_current::piece_idx#2) -- vbuz1=pbuc1_derefidx_vbuxx + //SEG427 [189] (byte) current_piece_color#15 ← *((const byte[]) PIECES_COLORS#0 + (byte) spawn_current::piece_idx#2) -- vbuz1=pbuc1_derefidx_vbuxx lda PIECES_COLORS,x sta current_piece_color - //SEG426 spawn_current::@return - //SEG427 [189] return + //SEG428 spawn_current::@return + //SEG429 [190] return rts - //SEG428 [190] phi from spawn_current::@1 to spawn_current::@2 [phi:spawn_current::@1->spawn_current::@2] - //SEG429 spawn_current::@2 + //SEG430 [191] phi from spawn_current::@1 to spawn_current::@2 [phi:spawn_current::@1->spawn_current::@2] + //SEG431 spawn_current::@2 b2: - //SEG430 [191] call sid_rnd + //SEG432 [192] call sid_rnd jsr sid_rnd - //SEG431 [192] (byte) sid_rnd::return#2 ← (byte) sid_rnd::return#0 + //SEG433 [193] (byte) sid_rnd::return#2 ← (byte) sid_rnd::return#0 // (byte) sid_rnd::return#2 = (byte) sid_rnd::return#0 // register copy reg byte a - //SEG432 spawn_current::@7 - //SEG433 [193] (byte~) spawn_current::$1 ← (byte) sid_rnd::return#2 + //SEG434 spawn_current::@7 + //SEG435 [194] (byte~) spawn_current::$1 ← (byte) sid_rnd::return#2 // (byte~) spawn_current::$1 = (byte) sid_rnd::return#2 // register copy reg byte a - //SEG434 [194] (byte) spawn_current::piece_idx#1 ← (byte~) spawn_current::$1 & (byte/signed byte/word/signed word/dword/signed dword) 7 -- vbuxx=vbuaa_band_vbuc1 + //SEG436 [195] (byte) spawn_current::piece_idx#1 ← (byte~) spawn_current::$1 & (byte/signed byte/word/signed word/dword/signed dword) 7 -- vbuxx=vbuaa_band_vbuc1 and #7 tax - //SEG435 [184] phi from spawn_current::@7 to spawn_current::@1 [phi:spawn_current::@7->spawn_current::@1] - //SEG436 [184] phi (byte) spawn_current::piece_idx#2 = (byte) spawn_current::piece_idx#1 [phi:spawn_current::@7->spawn_current::@1#0] -- register_copy + //SEG437 [185] phi from spawn_current::@7 to spawn_current::@1 [phi:spawn_current::@7->spawn_current::@1] + //SEG438 [185] phi (byte) spawn_current::piece_idx#2 = (byte) spawn_current::piece_idx#1 [phi:spawn_current::@7->spawn_current::@1#0] -- register_copy jmp b1 } -//SEG437 sid_rnd +//SEG439 sid_rnd sid_rnd: { - //SEG438 [195] (byte) sid_rnd::return#0 ← *((const byte*) SID_VOICE3_OSC#0) -- vbuaa=_deref_pbuc1 + //SEG440 [196] (byte) sid_rnd::return#0 ← *((const byte*) SID_VOICE3_OSC#0) -- vbuaa=_deref_pbuc1 lda SID_VOICE3_OSC - //SEG439 sid_rnd::@return - //SEG440 [196] return + //SEG441 sid_rnd::@return + //SEG442 [197] return rts } -//SEG441 remove_lines +//SEG443 remove_lines remove_lines: { .label c = 7 .label x = 3 .label y = 2 .label full = 4 - //SEG442 [198] phi from remove_lines to remove_lines::@1 [phi:remove_lines->remove_lines::@1] - //SEG443 [198] phi (byte) remove_lines::y#8 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:remove_lines->remove_lines::@1#0] -- vbuz1=vbuc1 + //SEG444 [199] phi from remove_lines to remove_lines::@1 [phi:remove_lines->remove_lines::@1] + //SEG445 [199] phi (byte) remove_lines::y#8 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:remove_lines->remove_lines::@1#0] -- vbuz1=vbuc1 lda #0 sta y - //SEG444 [198] phi (byte) remove_lines::w#12 = (const byte) PLAYFIELD_LINES#0*(const byte) PLAYFIELD_COLS#0-(byte/signed byte/word/signed word/dword/signed dword) 1 [phi:remove_lines->remove_lines::@1#1] -- vbuxx=vbuc1 + //SEG446 [199] phi (byte) remove_lines::w#12 = (const byte) PLAYFIELD_LINES#0*(const byte) PLAYFIELD_COLS#0-(byte/signed byte/word/signed word/dword/signed dword) 1 [phi:remove_lines->remove_lines::@1#1] -- vbuxx=vbuc1 ldx #PLAYFIELD_LINES*PLAYFIELD_COLS-1 - //SEG445 [198] phi (byte) remove_lines::r#3 = (const byte) PLAYFIELD_LINES#0*(const byte) PLAYFIELD_COLS#0-(byte/signed byte/word/signed word/dword/signed dword) 1 [phi:remove_lines->remove_lines::@1#2] -- vbuyy=vbuc1 + //SEG447 [199] phi (byte) remove_lines::r#3 = (const byte) PLAYFIELD_LINES#0*(const byte) PLAYFIELD_COLS#0-(byte/signed byte/word/signed word/dword/signed dword) 1 [phi:remove_lines->remove_lines::@1#2] -- vbuyy=vbuc1 ldy #PLAYFIELD_LINES*PLAYFIELD_COLS-1 - //SEG446 [198] phi from remove_lines::@4 to remove_lines::@1 [phi:remove_lines::@4->remove_lines::@1] - //SEG447 [198] phi (byte) remove_lines::y#8 = (byte) remove_lines::y#1 [phi:remove_lines::@4->remove_lines::@1#0] -- register_copy - //SEG448 [198] phi (byte) remove_lines::w#12 = (byte) remove_lines::w#11 [phi:remove_lines::@4->remove_lines::@1#1] -- register_copy - //SEG449 [198] phi (byte) remove_lines::r#3 = (byte) remove_lines::r#1 [phi:remove_lines::@4->remove_lines::@1#2] -- register_copy - //SEG450 remove_lines::@1 + //SEG448 [199] phi from remove_lines::@4 to remove_lines::@1 [phi:remove_lines::@4->remove_lines::@1] + //SEG449 [199] phi (byte) remove_lines::y#8 = (byte) remove_lines::y#1 [phi:remove_lines::@4->remove_lines::@1#0] -- register_copy + //SEG450 [199] phi (byte) remove_lines::w#12 = (byte) remove_lines::w#11 [phi:remove_lines::@4->remove_lines::@1#1] -- register_copy + //SEG451 [199] phi (byte) remove_lines::r#3 = (byte) remove_lines::r#1 [phi:remove_lines::@4->remove_lines::@1#2] -- register_copy + //SEG452 remove_lines::@1 b1: - //SEG451 [199] phi from remove_lines::@1 to remove_lines::@2 [phi:remove_lines::@1->remove_lines::@2] - //SEG452 [199] phi (byte) remove_lines::full#4 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:remove_lines::@1->remove_lines::@2#0] -- vbuz1=vbuc1 + //SEG453 [200] phi from remove_lines::@1 to remove_lines::@2 [phi:remove_lines::@1->remove_lines::@2] + //SEG454 [200] phi (byte) remove_lines::full#4 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:remove_lines::@1->remove_lines::@2#0] -- vbuz1=vbuc1 lda #1 sta full - //SEG453 [199] phi (byte) remove_lines::x#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:remove_lines::@1->remove_lines::@2#1] -- vbuz1=vbuc1 + //SEG455 [200] phi (byte) remove_lines::x#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:remove_lines::@1->remove_lines::@2#1] -- vbuz1=vbuc1 lda #0 sta x - //SEG454 [199] phi (byte) remove_lines::w#4 = (byte) remove_lines::w#12 [phi:remove_lines::@1->remove_lines::@2#2] -- register_copy - //SEG455 [199] phi (byte) remove_lines::r#2 = (byte) remove_lines::r#3 [phi:remove_lines::@1->remove_lines::@2#3] -- register_copy - //SEG456 [199] phi from remove_lines::@3 to remove_lines::@2 [phi:remove_lines::@3->remove_lines::@2] - //SEG457 [199] phi (byte) remove_lines::full#4 = (byte) remove_lines::full#2 [phi:remove_lines::@3->remove_lines::@2#0] -- register_copy - //SEG458 [199] phi (byte) remove_lines::x#2 = (byte) remove_lines::x#1 [phi:remove_lines::@3->remove_lines::@2#1] -- register_copy - //SEG459 [199] phi (byte) remove_lines::w#4 = (byte) remove_lines::w#1 [phi:remove_lines::@3->remove_lines::@2#2] -- register_copy - //SEG460 [199] phi (byte) remove_lines::r#2 = (byte) remove_lines::r#1 [phi:remove_lines::@3->remove_lines::@2#3] -- register_copy - //SEG461 remove_lines::@2 + //SEG456 [200] phi (byte) remove_lines::w#4 = (byte) remove_lines::w#12 [phi:remove_lines::@1->remove_lines::@2#2] -- register_copy + //SEG457 [200] phi (byte) remove_lines::r#2 = (byte) remove_lines::r#3 [phi:remove_lines::@1->remove_lines::@2#3] -- register_copy + //SEG458 [200] phi from remove_lines::@3 to remove_lines::@2 [phi:remove_lines::@3->remove_lines::@2] + //SEG459 [200] phi (byte) remove_lines::full#4 = (byte) remove_lines::full#2 [phi:remove_lines::@3->remove_lines::@2#0] -- register_copy + //SEG460 [200] phi (byte) remove_lines::x#2 = (byte) remove_lines::x#1 [phi:remove_lines::@3->remove_lines::@2#1] -- register_copy + //SEG461 [200] phi (byte) remove_lines::w#4 = (byte) remove_lines::w#1 [phi:remove_lines::@3->remove_lines::@2#2] -- register_copy + //SEG462 [200] phi (byte) remove_lines::r#2 = (byte) remove_lines::r#1 [phi:remove_lines::@3->remove_lines::@2#3] -- register_copy + //SEG463 remove_lines::@2 b2: - //SEG462 [200] (byte) remove_lines::c#0 ← *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) remove_lines::r#2) -- vbuz1=pbuc1_derefidx_vbuyy + //SEG464 [201] (byte) remove_lines::c#0 ← *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) remove_lines::r#2) -- vbuz1=pbuc1_derefidx_vbuyy lda playfield,y sta c - //SEG463 [201] (byte) remove_lines::r#1 ← -- (byte) remove_lines::r#2 -- vbuyy=_dec_vbuyy + //SEG465 [202] (byte) remove_lines::r#1 ← -- (byte) remove_lines::r#2 -- vbuyy=_dec_vbuyy dey - //SEG464 [202] if((byte) remove_lines::c#0!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto remove_lines::@17 -- vbuz1_neq_0_then_la1 + //SEG466 [203] if((byte) remove_lines::c#0!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto remove_lines::@17 -- vbuz1_neq_0_then_la1 cmp #0 bne b3 - //SEG465 [203] phi from remove_lines::@2 to remove_lines::@3 [phi:remove_lines::@2->remove_lines::@3] - //SEG466 [203] phi (byte) remove_lines::full#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:remove_lines::@2->remove_lines::@3#0] -- vbuz1=vbuc1 + //SEG467 [204] phi from remove_lines::@2 to remove_lines::@3 [phi:remove_lines::@2->remove_lines::@3] + //SEG468 [204] phi (byte) remove_lines::full#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:remove_lines::@2->remove_lines::@3#0] -- vbuz1=vbuc1 lda #0 sta full - //SEG467 remove_lines::@3 + //SEG469 remove_lines::@3 b3: - //SEG468 [204] *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) remove_lines::w#4) ← (byte) remove_lines::c#0 -- pbuc1_derefidx_vbuxx=vbuz1 + //SEG470 [205] *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) remove_lines::w#4) ← (byte) remove_lines::c#0 -- pbuc1_derefidx_vbuxx=vbuz1 lda c sta playfield,x - //SEG469 [205] (byte) remove_lines::w#1 ← -- (byte) remove_lines::w#4 -- vbuxx=_dec_vbuxx + //SEG471 [206] (byte) remove_lines::w#1 ← -- (byte) remove_lines::w#4 -- vbuxx=_dec_vbuxx dex - //SEG470 [206] (byte) remove_lines::x#1 ← ++ (byte) remove_lines::x#2 -- vbuz1=_inc_vbuz1 + //SEG472 [207] (byte) remove_lines::x#1 ← ++ (byte) remove_lines::x#2 -- vbuz1=_inc_vbuz1 inc x - //SEG471 [207] if((byte) remove_lines::x#1!=(const byte) PLAYFIELD_COLS#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto remove_lines::@2 -- vbuz1_neq_vbuc1_then_la1 + //SEG473 [208] if((byte) remove_lines::x#1!=(const byte) PLAYFIELD_COLS#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto remove_lines::@2 -- vbuz1_neq_vbuc1_then_la1 lda x cmp #PLAYFIELD_COLS-1+1 bne b2 - //SEG472 remove_lines::@9 - //SEG473 [208] if((byte) remove_lines::full#2!=(byte/signed byte/word/signed word/dword/signed dword) 1) goto remove_lines::@4 -- vbuz1_neq_vbuc1_then_la1 + //SEG474 remove_lines::@9 + //SEG475 [209] if((byte) remove_lines::full#2!=(byte/signed byte/word/signed word/dword/signed dword) 1) goto remove_lines::@4 -- vbuz1_neq_vbuc1_then_la1 lda full cmp #1 bne b4 - //SEG474 remove_lines::@10 - //SEG475 [209] (byte) remove_lines::w#2 ← (byte) remove_lines::w#1 + (const byte) PLAYFIELD_COLS#0 -- vbuxx=vbuxx_plus_vbuc1 + //SEG476 remove_lines::@10 + //SEG477 [210] (byte) remove_lines::w#2 ← (byte) remove_lines::w#1 + (const byte) PLAYFIELD_COLS#0 -- vbuxx=vbuxx_plus_vbuc1 txa clc adc #PLAYFIELD_COLS tax - //SEG476 [210] phi from remove_lines::@10 remove_lines::@9 to remove_lines::@4 [phi:remove_lines::@10/remove_lines::@9->remove_lines::@4] - //SEG477 [210] phi (byte) remove_lines::w#11 = (byte) remove_lines::w#2 [phi:remove_lines::@10/remove_lines::@9->remove_lines::@4#0] -- register_copy - //SEG478 remove_lines::@4 + //SEG478 [211] phi from remove_lines::@10 remove_lines::@9 to remove_lines::@4 [phi:remove_lines::@10/remove_lines::@9->remove_lines::@4] + //SEG479 [211] phi (byte) remove_lines::w#11 = (byte) remove_lines::w#2 [phi:remove_lines::@10/remove_lines::@9->remove_lines::@4#0] -- register_copy + //SEG480 remove_lines::@4 b4: - //SEG479 [211] (byte) remove_lines::y#1 ← ++ (byte) remove_lines::y#8 -- vbuz1=_inc_vbuz1 + //SEG481 [212] (byte) remove_lines::y#1 ← ++ (byte) remove_lines::y#8 -- vbuz1=_inc_vbuz1 inc y - //SEG480 [212] if((byte) remove_lines::y#1!=(const byte) PLAYFIELD_LINES#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto remove_lines::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG482 [213] if((byte) remove_lines::y#1!=(const byte) PLAYFIELD_LINES#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto remove_lines::@1 -- vbuz1_neq_vbuc1_then_la1 lda y cmp #PLAYFIELD_LINES-1+1 bne b1 - //SEG481 [213] phi from remove_lines::@4 remove_lines::@6 to remove_lines::@5 [phi:remove_lines::@4/remove_lines::@6->remove_lines::@5] - //SEG482 [213] phi (byte) remove_lines::w#6 = (byte) remove_lines::w#11 [phi:remove_lines::@4/remove_lines::@6->remove_lines::@5#0] -- register_copy - //SEG483 remove_lines::@5 + //SEG483 [214] phi from remove_lines::@4 remove_lines::@6 to remove_lines::@5 [phi:remove_lines::@4/remove_lines::@6->remove_lines::@5] + //SEG484 [214] phi (byte) remove_lines::w#6 = (byte) remove_lines::w#11 [phi:remove_lines::@4/remove_lines::@6->remove_lines::@5#0] -- register_copy + //SEG485 remove_lines::@5 b5: - //SEG484 [214] if((byte) remove_lines::w#6!=(byte/word/signed word/dword/signed dword) 255) goto remove_lines::@6 -- vbuxx_neq_vbuc1_then_la1 + //SEG486 [215] if((byte) remove_lines::w#6!=(byte/word/signed word/dword/signed dword) 255) goto remove_lines::@6 -- vbuxx_neq_vbuc1_then_la1 cpx #$ff bne b6 - //SEG485 remove_lines::@return - //SEG486 [215] return + //SEG487 remove_lines::@return + //SEG488 [216] return rts - //SEG487 remove_lines::@6 + //SEG489 remove_lines::@6 b6: - //SEG488 [216] *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) remove_lines::w#6) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- pbuc1_derefidx_vbuxx=vbuc2 + //SEG490 [217] *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) remove_lines::w#6) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- pbuc1_derefidx_vbuxx=vbuc2 lda #0 sta playfield,x - //SEG489 [217] (byte) remove_lines::w#3 ← -- (byte) remove_lines::w#6 -- vbuxx=_dec_vbuxx + //SEG491 [218] (byte) remove_lines::w#3 ← -- (byte) remove_lines::w#6 -- vbuxx=_dec_vbuxx dex jmp b5 - //SEG490 [218] phi from remove_lines::@2 to remove_lines::@17 [phi:remove_lines::@2->remove_lines::@17] - //SEG491 remove_lines::@17 - //SEG492 [203] phi from remove_lines::@17 to remove_lines::@3 [phi:remove_lines::@17->remove_lines::@3] - //SEG493 [203] phi (byte) remove_lines::full#2 = (byte) remove_lines::full#4 [phi:remove_lines::@17->remove_lines::@3#0] -- register_copy + //SEG492 [219] phi from remove_lines::@2 to remove_lines::@17 [phi:remove_lines::@2->remove_lines::@17] + //SEG493 remove_lines::@17 + //SEG494 [204] phi from remove_lines::@17 to remove_lines::@3 [phi:remove_lines::@17->remove_lines::@3] + //SEG495 [204] phi (byte) remove_lines::full#2 = (byte) remove_lines::full#4 [phi:remove_lines::@17->remove_lines::@3#0] -- register_copy } -//SEG494 lock_current +//SEG496 lock_current lock_current: { .label ypos2 = 2 .label playfield_line = 5 @@ -13269,376 +13315,376 @@ lock_current: { .label i_3 = 4 .label i_7 = 4 .label i_9 = 4 - //SEG495 [219] (byte) lock_current::ypos2#0 ← (byte) current_ypos#12 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz1_rol_1 + //SEG497 [220] (byte) lock_current::ypos2#0 ← (byte) current_ypos#12 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz1_rol_1 asl ypos2 - //SEG496 [220] phi from lock_current to lock_current::@1 [phi:lock_current->lock_current::@1] - //SEG497 [220] phi (byte) lock_current::l#6 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:lock_current->lock_current::@1#0] -- vbuz1=vbuc1 + //SEG498 [221] phi from lock_current to lock_current::@1 [phi:lock_current->lock_current::@1] + //SEG499 [221] phi (byte) lock_current::l#6 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:lock_current->lock_current::@1#0] -- vbuz1=vbuc1 lda #0 sta l - //SEG498 [220] phi (byte) lock_current::i#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:lock_current->lock_current::@1#1] -- vbuz1=vbuc1 + //SEG500 [221] phi (byte) lock_current::i#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:lock_current->lock_current::@1#1] -- vbuz1=vbuc1 sta i_3 - //SEG499 [220] phi (byte) lock_current::ypos2#2 = (byte) lock_current::ypos2#0 [phi:lock_current->lock_current::@1#2] -- register_copy - //SEG500 lock_current::@1 + //SEG501 [221] phi (byte) lock_current::ypos2#2 = (byte) lock_current::ypos2#0 [phi:lock_current->lock_current::@1#2] -- register_copy + //SEG502 lock_current::@1 b1: - //SEG501 [221] (byte*) lock_current::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) lock_current::ypos2#2) -- pbuz1=pptc1_derefidx_vbuz2 + //SEG503 [222] (byte*) lock_current::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) lock_current::ypos2#2) -- pbuz1=pptc1_derefidx_vbuz2 ldy ypos2 lda playfield_lines,y sta playfield_line lda playfield_lines+1,y sta playfield_line+1 - //SEG502 [222] (byte) lock_current::col#0 ← (byte) current_xpos#16 -- vbuz1=vbuz2 + //SEG504 [223] (byte) lock_current::col#0 ← (byte) current_xpos#16 -- vbuz1=vbuz2 lda current_xpos sta col - //SEG503 [223] phi from lock_current::@1 to lock_current::@2 [phi:lock_current::@1->lock_current::@2] - //SEG504 [223] phi (byte) lock_current::c#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:lock_current::@1->lock_current::@2#0] -- vbuxx=vbuc1 + //SEG505 [224] phi from lock_current::@1 to lock_current::@2 [phi:lock_current::@1->lock_current::@2] + //SEG506 [224] phi (byte) lock_current::c#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:lock_current::@1->lock_current::@2#0] -- vbuxx=vbuc1 ldx #0 - //SEG505 [223] phi (byte) lock_current::col#2 = (byte) lock_current::col#0 [phi:lock_current::@1->lock_current::@2#1] -- register_copy - //SEG506 [223] phi (byte) lock_current::i#2 = (byte) lock_current::i#3 [phi:lock_current::@1->lock_current::@2#2] -- register_copy - //SEG507 lock_current::@2 + //SEG507 [224] phi (byte) lock_current::col#2 = (byte) lock_current::col#0 [phi:lock_current::@1->lock_current::@2#1] -- register_copy + //SEG508 [224] phi (byte) lock_current::i#2 = (byte) lock_current::i#3 [phi:lock_current::@1->lock_current::@2#2] -- register_copy + //SEG509 lock_current::@2 b2: - //SEG508 [224] (byte) lock_current::i#1 ← ++ (byte) lock_current::i#2 -- vbuz1=_inc_vbuz2 + //SEG510 [225] (byte) lock_current::i#1 ← ++ (byte) lock_current::i#2 -- vbuz1=_inc_vbuz2 ldy i_2 iny sty i - //SEG509 [225] if(*((byte*) current_piece_gfx#15 + (byte) lock_current::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto lock_current::@3 -- pbuz1_derefidx_vbuz2_eq_0_then_la1 + //SEG511 [226] if(*((byte*) current_piece_gfx#15 + (byte) lock_current::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto lock_current::@3 -- pbuz1_derefidx_vbuz2_eq_0_then_la1 ldy i_2 lda (current_piece_gfx),y cmp #0 beq b3 - //SEG510 lock_current::@4 - //SEG511 [226] *((byte*) lock_current::playfield_line#0 + (byte) lock_current::col#2) ← (byte) current_piece_color#11 -- pbuz1_derefidx_vbuz2=vbuz3 + //SEG512 lock_current::@4 + //SEG513 [227] *((byte*) lock_current::playfield_line#0 + (byte) lock_current::col#2) ← (byte) current_piece_color#11 -- pbuz1_derefidx_vbuz2=vbuz3 lda current_piece_color ldy col sta (playfield_line),y - //SEG512 lock_current::@3 + //SEG514 lock_current::@3 b3: - //SEG513 [227] (byte) lock_current::col#1 ← ++ (byte) lock_current::col#2 -- vbuz1=_inc_vbuz1 + //SEG515 [228] (byte) lock_current::col#1 ← ++ (byte) lock_current::col#2 -- vbuz1=_inc_vbuz1 inc col - //SEG514 [228] (byte) lock_current::c#1 ← ++ (byte) lock_current::c#2 -- vbuxx=_inc_vbuxx + //SEG516 [229] (byte) lock_current::c#1 ← ++ (byte) lock_current::c#2 -- vbuxx=_inc_vbuxx inx - //SEG515 [229] if((byte) lock_current::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto lock_current::@8 -- vbuxx_neq_vbuc1_then_la1 + //SEG517 [230] if((byte) lock_current::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto lock_current::@8 -- vbuxx_neq_vbuc1_then_la1 cpx #4 bne b8 - //SEG516 lock_current::@5 - //SEG517 [230] (byte) lock_current::ypos2#1 ← (byte) lock_current::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 -- vbuz1=vbuz1_plus_2 + //SEG518 lock_current::@5 + //SEG519 [231] (byte) lock_current::ypos2#1 ← (byte) lock_current::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 -- vbuz1=vbuz1_plus_2 lda ypos2 clc adc #2 sta ypos2 - //SEG518 [231] (byte) lock_current::l#1 ← ++ (byte) lock_current::l#6 -- vbuz1=_inc_vbuz1 + //SEG520 [232] (byte) lock_current::l#1 ← ++ (byte) lock_current::l#6 -- vbuz1=_inc_vbuz1 inc l - //SEG519 [232] if((byte) lock_current::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto lock_current::@7 -- vbuz1_neq_vbuc1_then_la1 + //SEG521 [233] if((byte) lock_current::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto lock_current::@7 -- vbuz1_neq_vbuc1_then_la1 lda l cmp #4 bne b7 - //SEG520 lock_current::@return - //SEG521 [233] return + //SEG522 lock_current::@return + //SEG523 [234] return rts - //SEG522 lock_current::@7 + //SEG524 lock_current::@7 b7: - //SEG523 [234] (byte~) lock_current::i#7 ← (byte) lock_current::i#1 -- vbuz1=vbuz2 + //SEG525 [235] (byte~) lock_current::i#7 ← (byte) lock_current::i#1 -- vbuz1=vbuz2 lda i sta i_7 - //SEG524 [220] phi from lock_current::@7 to lock_current::@1 [phi:lock_current::@7->lock_current::@1] - //SEG525 [220] phi (byte) lock_current::l#6 = (byte) lock_current::l#1 [phi:lock_current::@7->lock_current::@1#0] -- register_copy - //SEG526 [220] phi (byte) lock_current::i#3 = (byte~) lock_current::i#7 [phi:lock_current::@7->lock_current::@1#1] -- register_copy - //SEG527 [220] phi (byte) lock_current::ypos2#2 = (byte) lock_current::ypos2#1 [phi:lock_current::@7->lock_current::@1#2] -- register_copy + //SEG526 [221] phi from lock_current::@7 to lock_current::@1 [phi:lock_current::@7->lock_current::@1] + //SEG527 [221] phi (byte) lock_current::l#6 = (byte) lock_current::l#1 [phi:lock_current::@7->lock_current::@1#0] -- register_copy + //SEG528 [221] phi (byte) lock_current::i#3 = (byte~) lock_current::i#7 [phi:lock_current::@7->lock_current::@1#1] -- register_copy + //SEG529 [221] phi (byte) lock_current::ypos2#2 = (byte) lock_current::ypos2#1 [phi:lock_current::@7->lock_current::@1#2] -- register_copy jmp b1 - //SEG528 lock_current::@8 + //SEG530 lock_current::@8 b8: - //SEG529 [235] (byte~) lock_current::i#9 ← (byte) lock_current::i#1 -- vbuz1=vbuz2 + //SEG531 [236] (byte~) lock_current::i#9 ← (byte) lock_current::i#1 -- vbuz1=vbuz2 lda i sta i_9 - //SEG530 [223] phi from lock_current::@8 to lock_current::@2 [phi:lock_current::@8->lock_current::@2] - //SEG531 [223] phi (byte) lock_current::c#2 = (byte) lock_current::c#1 [phi:lock_current::@8->lock_current::@2#0] -- register_copy - //SEG532 [223] phi (byte) lock_current::col#2 = (byte) lock_current::col#1 [phi:lock_current::@8->lock_current::@2#1] -- register_copy - //SEG533 [223] phi (byte) lock_current::i#2 = (byte~) lock_current::i#9 [phi:lock_current::@8->lock_current::@2#2] -- register_copy + //SEG532 [224] phi from lock_current::@8 to lock_current::@2 [phi:lock_current::@8->lock_current::@2] + //SEG533 [224] phi (byte) lock_current::c#2 = (byte) lock_current::c#1 [phi:lock_current::@8->lock_current::@2#0] -- register_copy + //SEG534 [224] phi (byte) lock_current::col#2 = (byte) lock_current::col#1 [phi:lock_current::@8->lock_current::@2#1] -- register_copy + //SEG535 [224] phi (byte) lock_current::i#2 = (byte~) lock_current::i#9 [phi:lock_current::@8->lock_current::@2#2] -- register_copy jmp b2 } -//SEG534 keyboard_event_pressed +//SEG536 keyboard_event_pressed keyboard_event_pressed: { .label row_bits = 7 .label keycode = 4 - //SEG535 [237] (byte~) keyboard_event_pressed::$0 ← (byte) keyboard_event_pressed::keycode#5 >> (byte/signed byte/word/signed word/dword/signed dword) 3 -- vbuaa=vbuz1_ror_3 + //SEG537 [238] (byte~) keyboard_event_pressed::$0 ← (byte) keyboard_event_pressed::keycode#5 >> (byte/signed byte/word/signed word/dword/signed dword) 3 -- vbuaa=vbuz1_ror_3 lda keycode lsr lsr lsr - //SEG536 [238] (byte) keyboard_event_pressed::row_bits#0 ← *((const byte[8]) keyboard_scan_values#0 + (byte~) keyboard_event_pressed::$0) -- vbuz1=pbuc1_derefidx_vbuaa + //SEG538 [239] (byte) keyboard_event_pressed::row_bits#0 ← *((const byte[8]) keyboard_scan_values#0 + (byte~) keyboard_event_pressed::$0) -- vbuz1=pbuc1_derefidx_vbuaa tay lda keyboard_scan_values,y sta row_bits - //SEG537 [239] (byte~) keyboard_event_pressed::$1 ← (byte) keyboard_event_pressed::keycode#5 & (byte/signed byte/word/signed word/dword/signed dword) 7 -- vbuaa=vbuz1_band_vbuc1 + //SEG539 [240] (byte~) keyboard_event_pressed::$1 ← (byte) keyboard_event_pressed::keycode#5 & (byte/signed byte/word/signed word/dword/signed dword) 7 -- vbuaa=vbuz1_band_vbuc1 lda #7 and keycode - //SEG538 [240] (byte) keyboard_event_pressed::return#11 ← (byte) keyboard_event_pressed::row_bits#0 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte~) keyboard_event_pressed::$1) -- vbuaa=vbuz1_band_pbuc1_derefidx_vbuaa + //SEG540 [241] (byte) keyboard_event_pressed::return#11 ← (byte) keyboard_event_pressed::row_bits#0 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte~) keyboard_event_pressed::$1) -- vbuaa=vbuz1_band_pbuc1_derefidx_vbuaa tay lda keyboard_matrix_col_bitmask,y and row_bits - //SEG539 keyboard_event_pressed::@return - //SEG540 [241] return + //SEG541 keyboard_event_pressed::@return + //SEG542 [242] return rts } -//SEG541 keyboard_event_get +//SEG543 keyboard_event_get keyboard_event_get: { - //SEG542 [242] if((byte) keyboard_events_size#13==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_get::@return -- vbuz1_eq_0_then_la1 + //SEG544 [243] if((byte) keyboard_events_size#13==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_get::@return -- vbuz1_eq_0_then_la1 lda keyboard_events_size cmp #0 beq b1 - //SEG543 keyboard_event_get::@3 - //SEG544 [243] (byte) keyboard_events_size#4 ← -- (byte) keyboard_events_size#13 -- vbuz1=_dec_vbuz1 + //SEG545 keyboard_event_get::@3 + //SEG546 [244] (byte) keyboard_events_size#4 ← -- (byte) keyboard_events_size#13 -- vbuz1=_dec_vbuz1 dec keyboard_events_size - //SEG545 [244] (byte) keyboard_event_get::return#1 ← *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#4) -- vbuaa=pbuc1_derefidx_vbuz1 + //SEG547 [245] (byte) keyboard_event_get::return#1 ← *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#4) -- vbuaa=pbuc1_derefidx_vbuz1 ldy keyboard_events_size lda keyboard_events,y - //SEG546 [245] phi from keyboard_event_get::@3 to keyboard_event_get::@return [phi:keyboard_event_get::@3->keyboard_event_get::@return] - //SEG547 [245] phi (byte) keyboard_events_size#16 = (byte) keyboard_events_size#4 [phi:keyboard_event_get::@3->keyboard_event_get::@return#0] -- register_copy - //SEG548 [245] phi (byte) keyboard_event_get::return#2 = (byte) keyboard_event_get::return#1 [phi:keyboard_event_get::@3->keyboard_event_get::@return#1] -- register_copy + //SEG548 [246] phi from keyboard_event_get::@3 to keyboard_event_get::@return [phi:keyboard_event_get::@3->keyboard_event_get::@return] + //SEG549 [246] phi (byte) keyboard_events_size#16 = (byte) keyboard_events_size#4 [phi:keyboard_event_get::@3->keyboard_event_get::@return#0] -- register_copy + //SEG550 [246] phi (byte) keyboard_event_get::return#2 = (byte) keyboard_event_get::return#1 [phi:keyboard_event_get::@3->keyboard_event_get::@return#1] -- register_copy jmp breturn - //SEG549 [245] phi from keyboard_event_get to keyboard_event_get::@return [phi:keyboard_event_get->keyboard_event_get::@return] + //SEG551 [246] phi from keyboard_event_get to keyboard_event_get::@return [phi:keyboard_event_get->keyboard_event_get::@return] b1: - //SEG550 [245] phi (byte) keyboard_events_size#16 = (byte) keyboard_events_size#13 [phi:keyboard_event_get->keyboard_event_get::@return#0] -- register_copy - //SEG551 [245] phi (byte) keyboard_event_get::return#2 = (byte/word/signed word/dword/signed dword) 255 [phi:keyboard_event_get->keyboard_event_get::@return#1] -- vbuaa=vbuc1 + //SEG552 [246] phi (byte) keyboard_events_size#16 = (byte) keyboard_events_size#13 [phi:keyboard_event_get->keyboard_event_get::@return#0] -- register_copy + //SEG553 [246] phi (byte) keyboard_event_get::return#2 = (byte/word/signed word/dword/signed dword) 255 [phi:keyboard_event_get->keyboard_event_get::@return#1] -- vbuaa=vbuc1 lda #$ff - //SEG552 keyboard_event_get::@return + //SEG554 keyboard_event_get::@return breturn: - //SEG553 [246] return + //SEG555 [247] return rts } -//SEG554 keyboard_event_scan +//SEG556 keyboard_event_scan keyboard_event_scan: { .label row_scan = 8 .label keycode = 7 .label row = 4 - //SEG555 [248] phi from keyboard_event_scan to keyboard_event_scan::@1 [phi:keyboard_event_scan->keyboard_event_scan::@1] - //SEG556 [248] phi (byte) keyboard_events_size#29 = (byte) keyboard_events_size#19 [phi:keyboard_event_scan->keyboard_event_scan::@1#0] -- register_copy - //SEG557 [248] phi (byte) keyboard_event_scan::keycode#11 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:keyboard_event_scan->keyboard_event_scan::@1#1] -- vbuz1=vbuc1 + //SEG557 [249] phi from keyboard_event_scan to keyboard_event_scan::@1 [phi:keyboard_event_scan->keyboard_event_scan::@1] + //SEG558 [249] phi (byte) keyboard_events_size#29 = (byte) keyboard_events_size#19 [phi:keyboard_event_scan->keyboard_event_scan::@1#0] -- register_copy + //SEG559 [249] phi (byte) keyboard_event_scan::keycode#11 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:keyboard_event_scan->keyboard_event_scan::@1#1] -- vbuz1=vbuc1 lda #0 sta keycode - //SEG558 [248] phi (byte) keyboard_event_scan::row#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:keyboard_event_scan->keyboard_event_scan::@1#2] -- vbuz1=vbuc1 + //SEG560 [249] phi (byte) keyboard_event_scan::row#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:keyboard_event_scan->keyboard_event_scan::@1#2] -- vbuz1=vbuc1 sta row - //SEG559 [248] phi from keyboard_event_scan::@3 to keyboard_event_scan::@1 [phi:keyboard_event_scan::@3->keyboard_event_scan::@1] - //SEG560 [248] phi (byte) keyboard_events_size#29 = (byte) keyboard_events_size#13 [phi:keyboard_event_scan::@3->keyboard_event_scan::@1#0] -- register_copy - //SEG561 [248] phi (byte) keyboard_event_scan::keycode#11 = (byte) keyboard_event_scan::keycode#14 [phi:keyboard_event_scan::@3->keyboard_event_scan::@1#1] -- register_copy - //SEG562 [248] phi (byte) keyboard_event_scan::row#2 = (byte) keyboard_event_scan::row#1 [phi:keyboard_event_scan::@3->keyboard_event_scan::@1#2] -- register_copy - //SEG563 keyboard_event_scan::@1 + //SEG561 [249] phi from keyboard_event_scan::@3 to keyboard_event_scan::@1 [phi:keyboard_event_scan::@3->keyboard_event_scan::@1] + //SEG562 [249] phi (byte) keyboard_events_size#29 = (byte) keyboard_events_size#13 [phi:keyboard_event_scan::@3->keyboard_event_scan::@1#0] -- register_copy + //SEG563 [249] phi (byte) keyboard_event_scan::keycode#11 = (byte) keyboard_event_scan::keycode#14 [phi:keyboard_event_scan::@3->keyboard_event_scan::@1#1] -- register_copy + //SEG564 [249] phi (byte) keyboard_event_scan::row#2 = (byte) keyboard_event_scan::row#1 [phi:keyboard_event_scan::@3->keyboard_event_scan::@1#2] -- register_copy + //SEG565 keyboard_event_scan::@1 b1: - //SEG564 [249] (byte) keyboard_matrix_read::rowid#0 ← (byte) keyboard_event_scan::row#2 -- vbuxx=vbuz1 + //SEG566 [250] (byte) keyboard_matrix_read::rowid#0 ← (byte) keyboard_event_scan::row#2 -- vbuxx=vbuz1 ldx row - //SEG565 [250] call keyboard_matrix_read + //SEG567 [251] call keyboard_matrix_read jsr keyboard_matrix_read - //SEG566 [251] (byte) keyboard_matrix_read::return#2 ← (byte) keyboard_matrix_read::return#0 + //SEG568 [252] (byte) keyboard_matrix_read::return#2 ← (byte) keyboard_matrix_read::return#0 // (byte) keyboard_matrix_read::return#2 = (byte) keyboard_matrix_read::return#0 // register copy reg byte a - //SEG567 keyboard_event_scan::@25 - //SEG568 [252] (byte) keyboard_event_scan::row_scan#0 ← (byte) keyboard_matrix_read::return#2 -- vbuz1=vbuaa + //SEG569 keyboard_event_scan::@25 + //SEG570 [253] (byte) keyboard_event_scan::row_scan#0 ← (byte) keyboard_matrix_read::return#2 -- vbuz1=vbuaa sta row_scan - //SEG569 [253] if((byte) keyboard_event_scan::row_scan#0!=*((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2)) goto keyboard_event_scan::@4 -- vbuz1_neq_pbuc1_derefidx_vbuz2_then_la1 + //SEG571 [254] if((byte) keyboard_event_scan::row_scan#0!=*((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2)) goto keyboard_event_scan::@4 -- vbuz1_neq_pbuc1_derefidx_vbuz2_then_la1 ldy row cmp keyboard_scan_values,y bne b2 - //SEG570 keyboard_event_scan::@13 - //SEG571 [254] (byte) keyboard_event_scan::keycode#1 ← (byte) keyboard_event_scan::keycode#11 + (byte/signed byte/word/signed word/dword/signed dword) 8 -- vbuz1=vbuz1_plus_vbuc1 + //SEG572 keyboard_event_scan::@13 + //SEG573 [255] (byte) keyboard_event_scan::keycode#1 ← (byte) keyboard_event_scan::keycode#11 + (byte/signed byte/word/signed word/dword/signed dword) 8 -- vbuz1=vbuz1_plus_vbuc1 lda #8 clc adc keycode sta keycode - //SEG572 [255] phi from keyboard_event_scan::@13 keyboard_event_scan::@19 to keyboard_event_scan::@3 [phi:keyboard_event_scan::@13/keyboard_event_scan::@19->keyboard_event_scan::@3] - //SEG573 [255] phi (byte) keyboard_events_size#13 = (byte) keyboard_events_size#29 [phi:keyboard_event_scan::@13/keyboard_event_scan::@19->keyboard_event_scan::@3#0] -- register_copy - //SEG574 [255] phi (byte) keyboard_event_scan::keycode#14 = (byte) keyboard_event_scan::keycode#1 [phi:keyboard_event_scan::@13/keyboard_event_scan::@19->keyboard_event_scan::@3#1] -- register_copy - //SEG575 keyboard_event_scan::@3 + //SEG574 [256] phi from keyboard_event_scan::@13 keyboard_event_scan::@19 to keyboard_event_scan::@3 [phi:keyboard_event_scan::@13/keyboard_event_scan::@19->keyboard_event_scan::@3] + //SEG575 [256] phi (byte) keyboard_events_size#13 = (byte) keyboard_events_size#29 [phi:keyboard_event_scan::@13/keyboard_event_scan::@19->keyboard_event_scan::@3#0] -- register_copy + //SEG576 [256] phi (byte) keyboard_event_scan::keycode#14 = (byte) keyboard_event_scan::keycode#1 [phi:keyboard_event_scan::@13/keyboard_event_scan::@19->keyboard_event_scan::@3#1] -- register_copy + //SEG577 keyboard_event_scan::@3 b3: - //SEG576 [256] (byte) keyboard_event_scan::row#1 ← ++ (byte) keyboard_event_scan::row#2 -- vbuz1=_inc_vbuz1 + //SEG578 [257] (byte) keyboard_event_scan::row#1 ← ++ (byte) keyboard_event_scan::row#2 -- vbuz1=_inc_vbuz1 inc row - //SEG577 [257] if((byte) keyboard_event_scan::row#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto keyboard_event_scan::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG579 [258] if((byte) keyboard_event_scan::row#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto keyboard_event_scan::@1 -- vbuz1_neq_vbuc1_then_la1 lda row cmp #8 bne b1 - //SEG578 [258] phi from keyboard_event_scan::@3 to keyboard_event_scan::@20 [phi:keyboard_event_scan::@3->keyboard_event_scan::@20] - //SEG579 keyboard_event_scan::@20 - //SEG580 [259] call keyboard_event_pressed - //SEG581 [236] phi from keyboard_event_scan::@20 to keyboard_event_pressed [phi:keyboard_event_scan::@20->keyboard_event_pressed] - //SEG582 [236] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_LSHIFT#0 [phi:keyboard_event_scan::@20->keyboard_event_pressed#0] -- vbuz1=vbuc1 + //SEG580 [259] phi from keyboard_event_scan::@3 to keyboard_event_scan::@20 [phi:keyboard_event_scan::@3->keyboard_event_scan::@20] + //SEG581 keyboard_event_scan::@20 + //SEG582 [260] call keyboard_event_pressed + //SEG583 [237] phi from keyboard_event_scan::@20 to keyboard_event_pressed [phi:keyboard_event_scan::@20->keyboard_event_pressed] + //SEG584 [237] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_LSHIFT#0 [phi:keyboard_event_scan::@20->keyboard_event_pressed#0] -- vbuz1=vbuc1 lda #KEY_LSHIFT sta keyboard_event_pressed.keycode jsr keyboard_event_pressed - //SEG583 [260] (byte) keyboard_event_pressed::return#0 ← (byte) keyboard_event_pressed::return#11 + //SEG585 [261] (byte) keyboard_event_pressed::return#0 ← (byte) keyboard_event_pressed::return#11 // (byte) keyboard_event_pressed::return#0 = (byte) keyboard_event_pressed::return#11 // register copy reg byte a - //SEG584 keyboard_event_scan::@26 - //SEG585 [261] (byte~) keyboard_event_scan::$14 ← (byte) keyboard_event_pressed::return#0 + //SEG586 keyboard_event_scan::@26 + //SEG587 [262] (byte~) keyboard_event_scan::$14 ← (byte) keyboard_event_pressed::return#0 // (byte~) keyboard_event_scan::$14 = (byte) keyboard_event_pressed::return#0 // register copy reg byte a - //SEG586 [262] if((byte~) keyboard_event_scan::$14==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@9 -- vbuaa_eq_0_then_la1 + //SEG588 [263] if((byte~) keyboard_event_scan::$14==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@9 -- vbuaa_eq_0_then_la1 cmp #0 - //SEG587 [263] phi from keyboard_event_scan::@26 to keyboard_event_scan::@21 [phi:keyboard_event_scan::@26->keyboard_event_scan::@21] - //SEG588 keyboard_event_scan::@21 - //SEG589 [264] phi from keyboard_event_scan::@21 keyboard_event_scan::@26 to keyboard_event_scan::@9 [phi:keyboard_event_scan::@21/keyboard_event_scan::@26->keyboard_event_scan::@9] - //SEG590 keyboard_event_scan::@9 - //SEG591 [265] call keyboard_event_pressed - //SEG592 [236] phi from keyboard_event_scan::@9 to keyboard_event_pressed [phi:keyboard_event_scan::@9->keyboard_event_pressed] - //SEG593 [236] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_RSHIFT#0 [phi:keyboard_event_scan::@9->keyboard_event_pressed#0] -- vbuz1=vbuc1 + //SEG589 [264] phi from keyboard_event_scan::@26 to keyboard_event_scan::@21 [phi:keyboard_event_scan::@26->keyboard_event_scan::@21] + //SEG590 keyboard_event_scan::@21 + //SEG591 [265] phi from keyboard_event_scan::@21 keyboard_event_scan::@26 to keyboard_event_scan::@9 [phi:keyboard_event_scan::@21/keyboard_event_scan::@26->keyboard_event_scan::@9] + //SEG592 keyboard_event_scan::@9 + //SEG593 [266] call keyboard_event_pressed + //SEG594 [237] phi from keyboard_event_scan::@9 to keyboard_event_pressed [phi:keyboard_event_scan::@9->keyboard_event_pressed] + //SEG595 [237] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_RSHIFT#0 [phi:keyboard_event_scan::@9->keyboard_event_pressed#0] -- vbuz1=vbuc1 lda #KEY_RSHIFT sta keyboard_event_pressed.keycode jsr keyboard_event_pressed - //SEG594 [266] (byte) keyboard_event_pressed::return#1 ← (byte) keyboard_event_pressed::return#11 + //SEG596 [267] (byte) keyboard_event_pressed::return#1 ← (byte) keyboard_event_pressed::return#11 // (byte) keyboard_event_pressed::return#1 = (byte) keyboard_event_pressed::return#11 // register copy reg byte a - //SEG595 keyboard_event_scan::@27 - //SEG596 [267] (byte~) keyboard_event_scan::$18 ← (byte) keyboard_event_pressed::return#1 + //SEG597 keyboard_event_scan::@27 + //SEG598 [268] (byte~) keyboard_event_scan::$18 ← (byte) keyboard_event_pressed::return#1 // (byte~) keyboard_event_scan::$18 = (byte) keyboard_event_pressed::return#1 // register copy reg byte a - //SEG597 [268] if((byte~) keyboard_event_scan::$18==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@10 -- vbuaa_eq_0_then_la1 + //SEG599 [269] if((byte~) keyboard_event_scan::$18==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@10 -- vbuaa_eq_0_then_la1 cmp #0 - //SEG598 [269] phi from keyboard_event_scan::@27 to keyboard_event_scan::@22 [phi:keyboard_event_scan::@27->keyboard_event_scan::@22] - //SEG599 keyboard_event_scan::@22 - //SEG600 [270] phi from keyboard_event_scan::@22 keyboard_event_scan::@27 to keyboard_event_scan::@10 [phi:keyboard_event_scan::@22/keyboard_event_scan::@27->keyboard_event_scan::@10] - //SEG601 keyboard_event_scan::@10 - //SEG602 [271] call keyboard_event_pressed - //SEG603 [236] phi from keyboard_event_scan::@10 to keyboard_event_pressed [phi:keyboard_event_scan::@10->keyboard_event_pressed] - //SEG604 [236] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_CTRL#0 [phi:keyboard_event_scan::@10->keyboard_event_pressed#0] -- vbuz1=vbuc1 + //SEG600 [270] phi from keyboard_event_scan::@27 to keyboard_event_scan::@22 [phi:keyboard_event_scan::@27->keyboard_event_scan::@22] + //SEG601 keyboard_event_scan::@22 + //SEG602 [271] phi from keyboard_event_scan::@22 keyboard_event_scan::@27 to keyboard_event_scan::@10 [phi:keyboard_event_scan::@22/keyboard_event_scan::@27->keyboard_event_scan::@10] + //SEG603 keyboard_event_scan::@10 + //SEG604 [272] call keyboard_event_pressed + //SEG605 [237] phi from keyboard_event_scan::@10 to keyboard_event_pressed [phi:keyboard_event_scan::@10->keyboard_event_pressed] + //SEG606 [237] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_CTRL#0 [phi:keyboard_event_scan::@10->keyboard_event_pressed#0] -- vbuz1=vbuc1 lda #KEY_CTRL sta keyboard_event_pressed.keycode jsr keyboard_event_pressed - //SEG605 [272] (byte) keyboard_event_pressed::return#2 ← (byte) keyboard_event_pressed::return#11 + //SEG607 [273] (byte) keyboard_event_pressed::return#2 ← (byte) keyboard_event_pressed::return#11 // (byte) keyboard_event_pressed::return#2 = (byte) keyboard_event_pressed::return#11 // register copy reg byte a - //SEG606 keyboard_event_scan::@28 - //SEG607 [273] (byte~) keyboard_event_scan::$22 ← (byte) keyboard_event_pressed::return#2 + //SEG608 keyboard_event_scan::@28 + //SEG609 [274] (byte~) keyboard_event_scan::$22 ← (byte) keyboard_event_pressed::return#2 // (byte~) keyboard_event_scan::$22 = (byte) keyboard_event_pressed::return#2 // register copy reg byte a - //SEG608 [274] if((byte~) keyboard_event_scan::$22==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@11 -- vbuaa_eq_0_then_la1 + //SEG610 [275] if((byte~) keyboard_event_scan::$22==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@11 -- vbuaa_eq_0_then_la1 cmp #0 - //SEG609 [275] phi from keyboard_event_scan::@28 to keyboard_event_scan::@23 [phi:keyboard_event_scan::@28->keyboard_event_scan::@23] - //SEG610 keyboard_event_scan::@23 - //SEG611 [276] phi from keyboard_event_scan::@23 keyboard_event_scan::@28 to keyboard_event_scan::@11 [phi:keyboard_event_scan::@23/keyboard_event_scan::@28->keyboard_event_scan::@11] - //SEG612 keyboard_event_scan::@11 - //SEG613 [277] call keyboard_event_pressed - //SEG614 [236] phi from keyboard_event_scan::@11 to keyboard_event_pressed [phi:keyboard_event_scan::@11->keyboard_event_pressed] - //SEG615 [236] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_COMMODORE#0 [phi:keyboard_event_scan::@11->keyboard_event_pressed#0] -- vbuz1=vbuc1 + //SEG611 [276] phi from keyboard_event_scan::@28 to keyboard_event_scan::@23 [phi:keyboard_event_scan::@28->keyboard_event_scan::@23] + //SEG612 keyboard_event_scan::@23 + //SEG613 [277] phi from keyboard_event_scan::@23 keyboard_event_scan::@28 to keyboard_event_scan::@11 [phi:keyboard_event_scan::@23/keyboard_event_scan::@28->keyboard_event_scan::@11] + //SEG614 keyboard_event_scan::@11 + //SEG615 [278] call keyboard_event_pressed + //SEG616 [237] phi from keyboard_event_scan::@11 to keyboard_event_pressed [phi:keyboard_event_scan::@11->keyboard_event_pressed] + //SEG617 [237] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_COMMODORE#0 [phi:keyboard_event_scan::@11->keyboard_event_pressed#0] -- vbuz1=vbuc1 lda #KEY_COMMODORE sta keyboard_event_pressed.keycode jsr keyboard_event_pressed - //SEG616 [278] (byte) keyboard_event_pressed::return#10 ← (byte) keyboard_event_pressed::return#11 + //SEG618 [279] (byte) keyboard_event_pressed::return#10 ← (byte) keyboard_event_pressed::return#11 // (byte) keyboard_event_pressed::return#10 = (byte) keyboard_event_pressed::return#11 // register copy reg byte a - //SEG617 keyboard_event_scan::@29 - //SEG618 [279] (byte~) keyboard_event_scan::$26 ← (byte) keyboard_event_pressed::return#10 + //SEG619 keyboard_event_scan::@29 + //SEG620 [280] (byte~) keyboard_event_scan::$26 ← (byte) keyboard_event_pressed::return#10 // (byte~) keyboard_event_scan::$26 = (byte) keyboard_event_pressed::return#10 // register copy reg byte a - //SEG619 [280] if((byte~) keyboard_event_scan::$26==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@return -- vbuaa_eq_0_then_la1 + //SEG621 [281] if((byte~) keyboard_event_scan::$26==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@return -- vbuaa_eq_0_then_la1 cmp #0 - //SEG620 [281] phi from keyboard_event_scan::@29 to keyboard_event_scan::@24 [phi:keyboard_event_scan::@29->keyboard_event_scan::@24] - //SEG621 keyboard_event_scan::@24 - //SEG622 keyboard_event_scan::@return - //SEG623 [282] return + //SEG622 [282] phi from keyboard_event_scan::@29 to keyboard_event_scan::@24 [phi:keyboard_event_scan::@29->keyboard_event_scan::@24] + //SEG623 keyboard_event_scan::@24 + //SEG624 keyboard_event_scan::@return + //SEG625 [283] return rts - //SEG624 [283] phi from keyboard_event_scan::@25 to keyboard_event_scan::@4 [phi:keyboard_event_scan::@25->keyboard_event_scan::@4] + //SEG626 [284] phi from keyboard_event_scan::@25 to keyboard_event_scan::@4 [phi:keyboard_event_scan::@25->keyboard_event_scan::@4] b2: - //SEG625 [283] phi (byte) keyboard_events_size#10 = (byte) keyboard_events_size#29 [phi:keyboard_event_scan::@25->keyboard_event_scan::@4#0] -- register_copy - //SEG626 [283] phi (byte) keyboard_event_scan::keycode#10 = (byte) keyboard_event_scan::keycode#11 [phi:keyboard_event_scan::@25->keyboard_event_scan::@4#1] -- register_copy - //SEG627 [283] phi (byte) keyboard_event_scan::col#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:keyboard_event_scan::@25->keyboard_event_scan::@4#2] -- vbuxx=vbuc1 + //SEG627 [284] phi (byte) keyboard_events_size#10 = (byte) keyboard_events_size#29 [phi:keyboard_event_scan::@25->keyboard_event_scan::@4#0] -- register_copy + //SEG628 [284] phi (byte) keyboard_event_scan::keycode#10 = (byte) keyboard_event_scan::keycode#11 [phi:keyboard_event_scan::@25->keyboard_event_scan::@4#1] -- register_copy + //SEG629 [284] phi (byte) keyboard_event_scan::col#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:keyboard_event_scan::@25->keyboard_event_scan::@4#2] -- vbuxx=vbuc1 ldx #0 - //SEG628 [283] phi from keyboard_event_scan::@5 to keyboard_event_scan::@4 [phi:keyboard_event_scan::@5->keyboard_event_scan::@4] - //SEG629 [283] phi (byte) keyboard_events_size#10 = (byte) keyboard_events_size#30 [phi:keyboard_event_scan::@5->keyboard_event_scan::@4#0] -- register_copy - //SEG630 [283] phi (byte) keyboard_event_scan::keycode#10 = (byte) keyboard_event_scan::keycode#15 [phi:keyboard_event_scan::@5->keyboard_event_scan::@4#1] -- register_copy - //SEG631 [283] phi (byte) keyboard_event_scan::col#2 = (byte) keyboard_event_scan::col#1 [phi:keyboard_event_scan::@5->keyboard_event_scan::@4#2] -- register_copy - //SEG632 keyboard_event_scan::@4 + //SEG630 [284] phi from keyboard_event_scan::@5 to keyboard_event_scan::@4 [phi:keyboard_event_scan::@5->keyboard_event_scan::@4] + //SEG631 [284] phi (byte) keyboard_events_size#10 = (byte) keyboard_events_size#30 [phi:keyboard_event_scan::@5->keyboard_event_scan::@4#0] -- register_copy + //SEG632 [284] phi (byte) keyboard_event_scan::keycode#10 = (byte) keyboard_event_scan::keycode#15 [phi:keyboard_event_scan::@5->keyboard_event_scan::@4#1] -- register_copy + //SEG633 [284] phi (byte) keyboard_event_scan::col#2 = (byte) keyboard_event_scan::col#1 [phi:keyboard_event_scan::@5->keyboard_event_scan::@4#2] -- register_copy + //SEG634 keyboard_event_scan::@4 b4: - //SEG633 [284] (byte~) keyboard_event_scan::$3 ← (byte) keyboard_event_scan::row_scan#0 ^ *((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2) -- vbuaa=vbuz1_bxor_pbuc1_derefidx_vbuz2 + //SEG635 [285] (byte~) keyboard_event_scan::$3 ← (byte) keyboard_event_scan::row_scan#0 ^ *((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2) -- vbuaa=vbuz1_bxor_pbuc1_derefidx_vbuz2 lda row_scan ldy row eor keyboard_scan_values,y - //SEG634 [285] (byte~) keyboard_event_scan::$4 ← (byte~) keyboard_event_scan::$3 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_event_scan::col#2) -- vbuaa=vbuaa_band_pbuc1_derefidx_vbuxx + //SEG636 [286] (byte~) keyboard_event_scan::$4 ← (byte~) keyboard_event_scan::$3 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_event_scan::col#2) -- vbuaa=vbuaa_band_pbuc1_derefidx_vbuxx and keyboard_matrix_col_bitmask,x - //SEG635 [286] if((byte~) keyboard_event_scan::$4==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@5 -- vbuaa_eq_0_then_la1 + //SEG637 [287] if((byte~) keyboard_event_scan::$4==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@5 -- vbuaa_eq_0_then_la1 cmp #0 beq b5 - //SEG636 keyboard_event_scan::@15 - //SEG637 [287] if((byte) keyboard_events_size#10==(byte/signed byte/word/signed word/dword/signed dword) 8) goto keyboard_event_scan::@5 -- vbuz1_eq_vbuc1_then_la1 + //SEG638 keyboard_event_scan::@15 + //SEG639 [288] if((byte) keyboard_events_size#10==(byte/signed byte/word/signed word/dword/signed dword) 8) goto keyboard_event_scan::@5 -- vbuz1_eq_vbuc1_then_la1 lda keyboard_events_size cmp #8 beq b5 - //SEG638 keyboard_event_scan::@16 - //SEG639 [288] (byte) keyboard_event_scan::event_type#0 ← (byte) keyboard_event_scan::row_scan#0 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_event_scan::col#2) -- vbuaa=vbuz1_band_pbuc1_derefidx_vbuxx + //SEG640 keyboard_event_scan::@16 + //SEG641 [289] (byte) keyboard_event_scan::event_type#0 ← (byte) keyboard_event_scan::row_scan#0 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_event_scan::col#2) -- vbuaa=vbuz1_band_pbuc1_derefidx_vbuxx lda keyboard_matrix_col_bitmask,x and row_scan - //SEG640 [289] if((byte) keyboard_event_scan::event_type#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@7 -- vbuaa_eq_0_then_la1 + //SEG642 [290] if((byte) keyboard_event_scan::event_type#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@7 -- vbuaa_eq_0_then_la1 cmp #0 beq b7 - //SEG641 keyboard_event_scan::@17 - //SEG642 [290] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte) keyboard_event_scan::keycode#10 -- pbuc1_derefidx_vbuz1=vbuz2 + //SEG643 keyboard_event_scan::@17 + //SEG644 [291] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte) keyboard_event_scan::keycode#10 -- pbuc1_derefidx_vbuz1=vbuz2 lda keycode ldy keyboard_events_size sta keyboard_events,y - //SEG643 [291] (byte) keyboard_events_size#2 ← ++ (byte) keyboard_events_size#10 -- vbuz1=_inc_vbuz1 + //SEG645 [292] (byte) keyboard_events_size#2 ← ++ (byte) keyboard_events_size#10 -- vbuz1=_inc_vbuz1 inc keyboard_events_size - //SEG644 [292] phi from keyboard_event_scan::@15 keyboard_event_scan::@17 keyboard_event_scan::@4 keyboard_event_scan::@7 to keyboard_event_scan::@5 [phi:keyboard_event_scan::@15/keyboard_event_scan::@17/keyboard_event_scan::@4/keyboard_event_scan::@7->keyboard_event_scan::@5] - //SEG645 [292] phi (byte) keyboard_events_size#30 = (byte) keyboard_events_size#10 [phi:keyboard_event_scan::@15/keyboard_event_scan::@17/keyboard_event_scan::@4/keyboard_event_scan::@7->keyboard_event_scan::@5#0] -- register_copy - //SEG646 keyboard_event_scan::@5 + //SEG646 [293] phi from keyboard_event_scan::@15 keyboard_event_scan::@17 keyboard_event_scan::@4 keyboard_event_scan::@7 to keyboard_event_scan::@5 [phi:keyboard_event_scan::@15/keyboard_event_scan::@17/keyboard_event_scan::@4/keyboard_event_scan::@7->keyboard_event_scan::@5] + //SEG647 [293] phi (byte) keyboard_events_size#30 = (byte) keyboard_events_size#10 [phi:keyboard_event_scan::@15/keyboard_event_scan::@17/keyboard_event_scan::@4/keyboard_event_scan::@7->keyboard_event_scan::@5#0] -- register_copy + //SEG648 keyboard_event_scan::@5 b5: - //SEG647 [293] (byte) keyboard_event_scan::keycode#15 ← ++ (byte) keyboard_event_scan::keycode#10 -- vbuz1=_inc_vbuz1 + //SEG649 [294] (byte) keyboard_event_scan::keycode#15 ← ++ (byte) keyboard_event_scan::keycode#10 -- vbuz1=_inc_vbuz1 inc keycode - //SEG648 [294] (byte) keyboard_event_scan::col#1 ← ++ (byte) keyboard_event_scan::col#2 -- vbuxx=_inc_vbuxx + //SEG650 [295] (byte) keyboard_event_scan::col#1 ← ++ (byte) keyboard_event_scan::col#2 -- vbuxx=_inc_vbuxx inx - //SEG649 [295] if((byte) keyboard_event_scan::col#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto keyboard_event_scan::@4 -- vbuxx_neq_vbuc1_then_la1 + //SEG651 [296] if((byte) keyboard_event_scan::col#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto keyboard_event_scan::@4 -- vbuxx_neq_vbuc1_then_la1 cpx #8 bne b4 - //SEG650 keyboard_event_scan::@19 - //SEG651 [296] *((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2) ← (byte) keyboard_event_scan::row_scan#0 -- pbuc1_derefidx_vbuz1=vbuz2 + //SEG652 keyboard_event_scan::@19 + //SEG653 [297] *((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2) ← (byte) keyboard_event_scan::row_scan#0 -- pbuc1_derefidx_vbuz1=vbuz2 lda row_scan ldy row sta keyboard_scan_values,y jmp b3 - //SEG652 keyboard_event_scan::@7 + //SEG654 keyboard_event_scan::@7 b7: - //SEG653 [297] (byte/word/dword~) keyboard_event_scan::$11 ← (byte) keyboard_event_scan::keycode#10 | (byte/signed byte/word/signed word/dword/signed dword) 64 -- vbuaa=vbuz1_bor_vbuc1 + //SEG655 [298] (byte/word/dword~) keyboard_event_scan::$11 ← (byte) keyboard_event_scan::keycode#10 | (byte/signed byte/word/signed word/dword/signed dword) 64 -- vbuaa=vbuz1_bor_vbuc1 lda #$40 ora keycode - //SEG654 [298] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte/word/dword~) keyboard_event_scan::$11 -- pbuc1_derefidx_vbuz1=vbuaa + //SEG656 [299] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte/word/dword~) keyboard_event_scan::$11 -- pbuc1_derefidx_vbuz1=vbuaa ldy keyboard_events_size sta keyboard_events,y - //SEG655 [299] (byte) keyboard_events_size#1 ← ++ (byte) keyboard_events_size#10 -- vbuz1=_inc_vbuz1 + //SEG657 [300] (byte) keyboard_events_size#1 ← ++ (byte) keyboard_events_size#10 -- vbuz1=_inc_vbuz1 inc keyboard_events_size jmp b5 } -//SEG656 keyboard_matrix_read +//SEG658 keyboard_matrix_read keyboard_matrix_read: { - //SEG657 [300] *((const byte*) CIA1_PORT_A#0) ← *((const byte[8]) keyboard_matrix_row_bitmask#0 + (byte) keyboard_matrix_read::rowid#0) -- _deref_pbuc1=pbuc2_derefidx_vbuxx + //SEG659 [301] *((const byte*) CIA1_PORT_A#0) ← *((const byte[8]) keyboard_matrix_row_bitmask#0 + (byte) keyboard_matrix_read::rowid#0) -- _deref_pbuc1=pbuc2_derefidx_vbuxx lda keyboard_matrix_row_bitmask,x sta CIA1_PORT_A - //SEG658 [301] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) -- vbuaa=_bnot__deref_pbuc1 + //SEG660 [302] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) -- vbuaa=_bnot__deref_pbuc1 lda CIA1_PORT_B eor #$ff - //SEG659 keyboard_matrix_read::@return - //SEG660 [302] return + //SEG661 keyboard_matrix_read::@return + //SEG662 [303] return rts } -//SEG661 tables_init +//SEG663 tables_init tables_init: { .label pli = 5 .label idx = 2 - //SEG662 [304] phi from tables_init to tables_init::@1 [phi:tables_init->tables_init::@1] - //SEG663 [304] phi (byte) tables_init::idx#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:tables_init->tables_init::@1#0] -- vbuz1=vbuc1 + //SEG664 [305] phi from tables_init to tables_init::@1 [phi:tables_init->tables_init::@1] + //SEG665 [305] phi (byte) tables_init::idx#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:tables_init->tables_init::@1#0] -- vbuz1=vbuc1 lda #0 sta idx - //SEG664 [304] phi (byte*) tables_init::pli#2 = (const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 [phi:tables_init->tables_init::@1#1] -- pbuz1=pbuc1 + //SEG666 [305] phi (byte*) tables_init::pli#2 = (const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 [phi:tables_init->tables_init::@1#1] -- pbuz1=pbuc1 lda #playfield sta pli+1 - //SEG665 [304] phi (byte) tables_init::j#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:tables_init->tables_init::@1#2] -- vbuxx=vbuc1 + //SEG667 [305] phi (byte) tables_init::j#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:tables_init->tables_init::@1#2] -- vbuxx=vbuc1 ldx #0 - //SEG666 [304] phi from tables_init::@1 to tables_init::@1 [phi:tables_init::@1->tables_init::@1] - //SEG667 [304] phi (byte) tables_init::idx#2 = (byte) tables_init::idx#1 [phi:tables_init::@1->tables_init::@1#0] -- register_copy - //SEG668 [304] phi (byte*) tables_init::pli#2 = (byte*) tables_init::pli#1 [phi:tables_init::@1->tables_init::@1#1] -- register_copy - //SEG669 [304] phi (byte) tables_init::j#2 = (byte) tables_init::j#1 [phi:tables_init::@1->tables_init::@1#2] -- register_copy - //SEG670 tables_init::@1 + //SEG668 [305] phi from tables_init::@1 to tables_init::@1 [phi:tables_init::@1->tables_init::@1] + //SEG669 [305] phi (byte) tables_init::idx#2 = (byte) tables_init::idx#1 [phi:tables_init::@1->tables_init::@1#0] -- register_copy + //SEG670 [305] phi (byte*) tables_init::pli#2 = (byte*) tables_init::pli#1 [phi:tables_init::@1->tables_init::@1#1] -- register_copy + //SEG671 [305] phi (byte) tables_init::j#2 = (byte) tables_init::j#1 [phi:tables_init::@1->tables_init::@1#2] -- register_copy + //SEG672 tables_init::@1 b1: - //SEG671 [305] (byte~) tables_init::$1 ← (byte) tables_init::j#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuaa=vbuxx_rol_1 + //SEG673 [306] (byte~) tables_init::$1 ← (byte) tables_init::j#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuaa=vbuxx_rol_1 txa asl - //SEG672 [306] *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte~) tables_init::$1) ← (byte*) tables_init::pli#2 -- pptc1_derefidx_vbuaa=pbuz1 + //SEG674 [307] *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte~) tables_init::$1) ← (byte*) tables_init::pli#2 -- pptc1_derefidx_vbuaa=pbuz1 tay lda pli sta playfield_lines,y lda pli+1 sta playfield_lines+1,y - //SEG673 [307] *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0 + (byte) tables_init::j#2) ← (byte) tables_init::idx#2 -- pbuc1_derefidx_vbuxx=vbuz1 + //SEG675 [308] *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0 + (byte) tables_init::j#2) ← (byte) tables_init::idx#2 -- pbuc1_derefidx_vbuxx=vbuz1 lda idx sta playfield_lines_idx,x - //SEG674 [308] (byte*) tables_init::pli#1 ← (byte*) tables_init::pli#2 + (const byte) PLAYFIELD_COLS#0 -- pbuz1=pbuz1_plus_vbuc1 + //SEG676 [309] (byte*) tables_init::pli#1 ← (byte*) tables_init::pli#2 + (const byte) PLAYFIELD_COLS#0 -- pbuz1=pbuz1_plus_vbuc1 lda pli clc adc #PLAYFIELD_COLS @@ -13646,75 +13692,75 @@ tables_init: { bcc !+ inc pli+1 !: - //SEG675 [309] (byte) tables_init::idx#1 ← (byte) tables_init::idx#2 + (const byte) PLAYFIELD_COLS#0 -- vbuz1=vbuz1_plus_vbuc1 + //SEG677 [310] (byte) tables_init::idx#1 ← (byte) tables_init::idx#2 + (const byte) PLAYFIELD_COLS#0 -- vbuz1=vbuz1_plus_vbuc1 lda #PLAYFIELD_COLS clc adc idx sta idx - //SEG676 [310] (byte) tables_init::j#1 ← ++ (byte) tables_init::j#2 -- vbuxx=_inc_vbuxx + //SEG678 [311] (byte) tables_init::j#1 ← ++ (byte) tables_init::j#2 -- vbuxx=_inc_vbuxx inx - //SEG677 [311] if((byte) tables_init::j#1!=(const byte) PLAYFIELD_LINES#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto tables_init::@1 -- vbuxx_neq_vbuc1_then_la1 + //SEG679 [312] if((byte) tables_init::j#1!=(const byte) PLAYFIELD_LINES#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto tables_init::@1 -- vbuxx_neq_vbuc1_then_la1 cpx #PLAYFIELD_LINES-1+1 bne b1 - //SEG678 tables_init::@2 - //SEG679 [312] *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0+(const byte) PLAYFIELD_LINES#0) ← (const byte) PLAYFIELD_COLS#0*(const byte) PLAYFIELD_LINES#0 -- _deref_pbuc1=vbuc2 + //SEG680 tables_init::@2 + //SEG681 [313] *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0+(const byte) PLAYFIELD_LINES#0) ← (const byte) PLAYFIELD_COLS#0*(const byte) PLAYFIELD_LINES#0 -- _deref_pbuc1=vbuc2 lda #PLAYFIELD_COLS*PLAYFIELD_LINES sta playfield_lines_idx+PLAYFIELD_LINES - //SEG680 tables_init::@return - //SEG681 [313] return + //SEG682 tables_init::@return + //SEG683 [314] return rts } -//SEG682 render_init +//SEG684 render_init render_init: { .label _10 = $c .label li = 5 .label line = 5 .label l = 2 - //SEG683 [315] call fill - //SEG684 [334] phi from render_init to fill [phi:render_init->fill] - //SEG685 [334] phi (byte) fill::val#3 = (byte/word/signed word/dword/signed dword) 160 [phi:render_init->fill#0] -- vbuxx=vbuc1 + //SEG685 [316] call fill + //SEG686 [335] phi from render_init to fill [phi:render_init->fill] + //SEG687 [335] phi (byte) fill::val#3 = (byte/word/signed word/dword/signed dword) 160 [phi:render_init->fill#0] -- vbuxx=vbuc1 ldx #$a0 - //SEG686 [334] phi (byte*) fill::addr#0 = (const byte*) SCREEN#0 [phi:render_init->fill#1] -- pbuz1=pbuc1 + //SEG688 [335] phi (byte*) fill::addr#0 = (const byte*) SCREEN#0 [phi:render_init->fill#1] -- pbuz1=pbuc1 lda #SCREEN sta fill.addr+1 jsr fill - //SEG687 [316] phi from render_init to render_init::@7 [phi:render_init->render_init::@7] - //SEG688 render_init::@7 - //SEG689 [317] call fill - //SEG690 [334] phi from render_init::@7 to fill [phi:render_init::@7->fill] - //SEG691 [334] phi (byte) fill::val#3 = (const byte) BLACK#0 [phi:render_init::@7->fill#0] -- vbuxx=vbuc1 + //SEG689 [317] phi from render_init to render_init::@7 [phi:render_init->render_init::@7] + //SEG690 render_init::@7 + //SEG691 [318] call fill + //SEG692 [335] phi from render_init::@7 to fill [phi:render_init::@7->fill] + //SEG693 [335] phi (byte) fill::val#3 = (const byte) BLACK#0 [phi:render_init::@7->fill#0] -- vbuxx=vbuc1 ldx #BLACK - //SEG692 [334] phi (byte*) fill::addr#0 = (const byte*) COLS#0 [phi:render_init::@7->fill#1] -- pbuz1=pbuc1 + //SEG694 [335] phi (byte*) fill::addr#0 = (const byte*) COLS#0 [phi:render_init::@7->fill#1] -- pbuz1=pbuc1 lda #COLS sta fill.addr+1 jsr fill - //SEG693 [318] phi from render_init::@7 to render_init::@1 [phi:render_init::@7->render_init::@1] - //SEG694 [318] phi (byte*) render_init::li#2 = (const byte*) COLS#0+(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 15 [phi:render_init::@7->render_init::@1#0] -- pbuz1=pbuc1 + //SEG695 [319] phi from render_init::@7 to render_init::@1 [phi:render_init::@7->render_init::@1] + //SEG696 [319] phi (byte*) render_init::li#2 = (const byte*) COLS#0+(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 15 [phi:render_init::@7->render_init::@1#0] -- pbuz1=pbuc1 lda #COLS+$28+$f sta li+1 - //SEG695 [318] phi (byte) render_init::i#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_init::@7->render_init::@1#1] -- vbuxx=vbuc1 + //SEG697 [319] phi (byte) render_init::i#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_init::@7->render_init::@1#1] -- vbuxx=vbuc1 ldx #0 - //SEG696 [318] phi from render_init::@1 to render_init::@1 [phi:render_init::@1->render_init::@1] - //SEG697 [318] phi (byte*) render_init::li#2 = (byte*) render_init::li#1 [phi:render_init::@1->render_init::@1#0] -- register_copy - //SEG698 [318] phi (byte) render_init::i#2 = (byte) render_init::i#1 [phi:render_init::@1->render_init::@1#1] -- register_copy - //SEG699 render_init::@1 + //SEG698 [319] phi from render_init::@1 to render_init::@1 [phi:render_init::@1->render_init::@1] + //SEG699 [319] phi (byte*) render_init::li#2 = (byte*) render_init::li#1 [phi:render_init::@1->render_init::@1#0] -- register_copy + //SEG700 [319] phi (byte) render_init::i#2 = (byte) render_init::i#1 [phi:render_init::@1->render_init::@1#1] -- register_copy + //SEG701 render_init::@1 b1: - //SEG700 [319] (byte~) render_init::$5 ← (byte) render_init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuaa=vbuxx_rol_1 + //SEG702 [320] (byte~) render_init::$5 ← (byte) render_init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuaa=vbuxx_rol_1 txa asl - //SEG701 [320] *((const byte*[PLAYFIELD_LINES#0+3]) screen_lines#0 + (byte~) render_init::$5) ← (byte*) render_init::li#2 -- pptc1_derefidx_vbuaa=pbuz1 + //SEG703 [321] *((const byte*[PLAYFIELD_LINES#0+3]) screen_lines#0 + (byte~) render_init::$5) ← (byte*) render_init::li#2 -- pptc1_derefidx_vbuaa=pbuz1 tay lda li sta screen_lines,y lda li+1 sta screen_lines+1,y - //SEG702 [321] (byte*) render_init::li#1 ← (byte*) render_init::li#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 -- pbuz1=pbuz1_plus_vbuc1 + //SEG704 [322] (byte*) render_init::li#1 ← (byte*) render_init::li#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 -- pbuz1=pbuz1_plus_vbuc1 lda li clc adc #$28 @@ -13722,33 +13768,33 @@ render_init: { bcc !+ inc li+1 !: - //SEG703 [322] (byte) render_init::i#1 ← ++ (byte) render_init::i#2 -- vbuxx=_inc_vbuxx + //SEG705 [323] (byte) render_init::i#1 ← ++ (byte) render_init::i#2 -- vbuxx=_inc_vbuxx inx - //SEG704 [323] if((byte) render_init::i#1!=(const byte) PLAYFIELD_LINES#0+(byte/signed byte/word/signed word/dword/signed dword) 2+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_init::@1 -- vbuxx_neq_vbuc1_then_la1 + //SEG706 [324] if((byte) render_init::i#1!=(const byte) PLAYFIELD_LINES#0+(byte/signed byte/word/signed word/dword/signed dword) 2+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_init::@1 -- vbuxx_neq_vbuc1_then_la1 cpx #PLAYFIELD_LINES+2+1 bne b1 - //SEG705 [324] phi from render_init::@1 to render_init::@2 [phi:render_init::@1->render_init::@2] - //SEG706 [324] phi (byte) render_init::l#4 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_init::@1->render_init::@2#0] -- vbuz1=vbuc1 + //SEG707 [325] phi from render_init::@1 to render_init::@2 [phi:render_init::@1->render_init::@2] + //SEG708 [325] phi (byte) render_init::l#4 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_init::@1->render_init::@2#0] -- vbuz1=vbuc1 lda #0 sta l - //SEG707 [324] phi (byte*) render_init::line#4 = (const byte*) COLS#0+(byte/signed byte/word/signed word/dword/signed dword) 14 [phi:render_init::@1->render_init::@2#1] -- pbuz1=pbuc1 + //SEG709 [325] phi (byte*) render_init::line#4 = (const byte*) COLS#0+(byte/signed byte/word/signed word/dword/signed dword) 14 [phi:render_init::@1->render_init::@2#1] -- pbuz1=pbuc1 lda #COLS+$e sta line+1 - //SEG708 [324] phi from render_init::@5 to render_init::@2 [phi:render_init::@5->render_init::@2] - //SEG709 [324] phi (byte) render_init::l#4 = (byte) render_init::l#1 [phi:render_init::@5->render_init::@2#0] -- register_copy - //SEG710 [324] phi (byte*) render_init::line#4 = (byte*) render_init::line#1 [phi:render_init::@5->render_init::@2#1] -- register_copy - //SEG711 render_init::@2 + //SEG710 [325] phi from render_init::@5 to render_init::@2 [phi:render_init::@5->render_init::@2] + //SEG711 [325] phi (byte) render_init::l#4 = (byte) render_init::l#1 [phi:render_init::@5->render_init::@2#0] -- register_copy + //SEG712 [325] phi (byte*) render_init::line#4 = (byte*) render_init::line#1 [phi:render_init::@5->render_init::@2#1] -- register_copy + //SEG713 render_init::@2 b2: - //SEG712 [325] phi from render_init::@2 to render_init::@3 [phi:render_init::@2->render_init::@3] - //SEG713 [325] phi (byte) render_init::c#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_init::@2->render_init::@3#0] -- vbuxx=vbuc1 + //SEG714 [326] phi from render_init::@2 to render_init::@3 [phi:render_init::@2->render_init::@3] + //SEG715 [326] phi (byte) render_init::c#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_init::@2->render_init::@3#0] -- vbuxx=vbuc1 ldx #0 - //SEG714 [325] phi from render_init::@3 to render_init::@3 [phi:render_init::@3->render_init::@3] - //SEG715 [325] phi (byte) render_init::c#2 = (byte) render_init::c#1 [phi:render_init::@3->render_init::@3#0] -- register_copy - //SEG716 render_init::@3 + //SEG716 [326] phi from render_init::@3 to render_init::@3 [phi:render_init::@3->render_init::@3] + //SEG717 [326] phi (byte) render_init::c#2 = (byte) render_init::c#1 [phi:render_init::@3->render_init::@3#0] -- register_copy + //SEG718 render_init::@3 b3: - //SEG717 [326] (byte*~) render_init::$10 ← (byte*) render_init::line#4 + (byte) render_init::c#2 -- pbuz1=pbuz2_plus_vbuxx + //SEG719 [327] (byte*~) render_init::$10 ← (byte*) render_init::line#4 + (byte) render_init::c#2 -- pbuz1=pbuz2_plus_vbuxx txa clc adc line @@ -13756,17 +13802,17 @@ render_init: { lda #0 adc line+1 sta _10+1 - //SEG718 [327] *((byte*~) render_init::$10) ← (const byte) DARK_GREY#0 -- _deref_pbuz1=vbuc1 + //SEG720 [328] *((byte*~) render_init::$10) ← (const byte) DARK_GREY#0 -- _deref_pbuz1=vbuc1 lda #DARK_GREY ldy #0 sta (_10),y - //SEG719 [328] (byte) render_init::c#1 ← ++ (byte) render_init::c#2 -- vbuxx=_inc_vbuxx + //SEG721 [329] (byte) render_init::c#1 ← ++ (byte) render_init::c#2 -- vbuxx=_inc_vbuxx inx - //SEG720 [329] if((byte) render_init::c#1!=(const byte) PLAYFIELD_COLS#0+(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_init::@3 -- vbuxx_neq_vbuc1_then_la1 + //SEG722 [330] if((byte) render_init::c#1!=(const byte) PLAYFIELD_COLS#0+(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_init::@3 -- vbuxx_neq_vbuc1_then_la1 cpx #PLAYFIELD_COLS+1+1 bne b3 - //SEG721 render_init::@5 - //SEG722 [330] (byte*) render_init::line#1 ← (byte*) render_init::line#4 + (byte/signed byte/word/signed word/dword/signed dword) 40 -- pbuz1=pbuz1_plus_vbuc1 + //SEG723 render_init::@5 + //SEG724 [331] (byte*) render_init::line#1 ← (byte*) render_init::line#4 + (byte/signed byte/word/signed word/dword/signed dword) 40 -- pbuz1=pbuz1_plus_vbuc1 lda line clc adc #$28 @@ -13774,21 +13820,21 @@ render_init: { bcc !+ inc line+1 !: - //SEG723 [331] (byte) render_init::l#1 ← ++ (byte) render_init::l#4 -- vbuz1=_inc_vbuz1 + //SEG725 [332] (byte) render_init::l#1 ← ++ (byte) render_init::l#4 -- vbuz1=_inc_vbuz1 inc l - //SEG724 [332] if((byte) render_init::l#1!=(const byte) PLAYFIELD_LINES#0+(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_init::@2 -- vbuz1_neq_vbuc1_then_la1 + //SEG726 [333] if((byte) render_init::l#1!=(const byte) PLAYFIELD_LINES#0+(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_init::@2 -- vbuz1_neq_vbuc1_then_la1 lda l cmp #PLAYFIELD_LINES+1+1 bne b2 - //SEG725 render_init::@return - //SEG726 [333] return + //SEG727 render_init::@return + //SEG728 [334] return rts } -//SEG727 fill +//SEG729 fill fill: { .label end = $c .label addr = 5 - //SEG728 [335] (byte*) fill::end#0 ← (byte*) fill::addr#0 + (word/signed word/dword/signed dword) 1000 -- pbuz1=pbuz2_plus_vwuc1 + //SEG730 [336] (byte*) fill::end#0 ← (byte*) fill::addr#0 + (word/signed word/dword/signed dword) 1000 -- pbuz1=pbuz2_plus_vwuc1 lda addr clc adc #<$3e8 @@ -13796,42 +13842,42 @@ fill: { lda addr+1 adc #>$3e8 sta end+1 - //SEG729 [336] phi from fill fill::@1 to fill::@1 [phi:fill/fill::@1->fill::@1] - //SEG730 [336] phi (byte*) fill::addr#2 = (byte*) fill::addr#0 [phi:fill/fill::@1->fill::@1#0] -- register_copy - //SEG731 fill::@1 + //SEG731 [337] phi from fill fill::@1 to fill::@1 [phi:fill/fill::@1->fill::@1] + //SEG732 [337] phi (byte*) fill::addr#2 = (byte*) fill::addr#0 [phi:fill/fill::@1->fill::@1#0] -- register_copy + //SEG733 fill::@1 b1: - //SEG732 [337] *((byte*) fill::addr#2) ← (byte) fill::val#3 -- _deref_pbuz1=vbuxx + //SEG734 [338] *((byte*) fill::addr#2) ← (byte) fill::val#3 -- _deref_pbuz1=vbuxx txa ldy #0 sta (addr),y - //SEG733 [338] (byte*) fill::addr#1 ← ++ (byte*) fill::addr#2 -- pbuz1=_inc_pbuz1 + //SEG735 [339] (byte*) fill::addr#1 ← ++ (byte*) fill::addr#2 -- pbuz1=_inc_pbuz1 inc addr bne !+ inc addr+1 !: - //SEG734 [339] if((byte*) fill::addr#1!=(byte*) fill::end#0) goto fill::@1 -- pbuz1_neq_pbuz2_then_la1 + //SEG736 [340] if((byte*) fill::addr#1!=(byte*) fill::end#0) goto fill::@1 -- pbuz1_neq_pbuz2_then_la1 lda addr+1 cmp end+1 bne b1 lda addr cmp end bne b1 - //SEG735 fill::@return - //SEG736 [340] return + //SEG737 fill::@return + //SEG738 [341] return rts } -//SEG737 sid_rnd_init +//SEG739 sid_rnd_init sid_rnd_init: { - //SEG738 [341] *((const word*) SID_VOICE3_FREQ#0) ← (word/dword/signed dword) 65535 -- _deref_pwuc1=vwuc2 + //SEG740 [342] *((const word*) SID_VOICE3_FREQ#0) ← (word/dword/signed dword) 65535 -- _deref_pwuc1=vwuc2 lda #<$ffff sta SID_VOICE3_FREQ lda #>$ffff sta SID_VOICE3_FREQ+1 - //SEG739 [342] *((const byte*) SID_VOICE3_CONTROL#0) ← (const byte) SID_CONTROL_NOISE#0 -- _deref_pbuc1=vbuc2 + //SEG741 [343] *((const byte*) SID_VOICE3_CONTROL#0) ← (const byte) SID_CONTROL_NOISE#0 -- _deref_pbuc1=vbuc2 lda #SID_CONTROL_NOISE sta SID_VOICE3_CONTROL - //SEG740 sid_rnd_init::@return - //SEG741 [343] return + //SEG742 sid_rnd_init::@return + //SEG743 [344] return rts } keyboard_matrix_row_bitmask: .byte $fe, $fd, $fb, $f7, $ef, $df, $bf, $7f @@ -13858,4 +13904,10 @@ sid_rnd_init: { playfield: .fill PLAYFIELD_LINES*PLAYFIELD_COLS, 0 playfield_lines_idx: .fill PLAYFIELD_LINES+1, 0 screen_lines: .fill 2*(PLAYFIELD_LINES+3), 0 +.pc = CHARSET "Inline" + .var charset = LoadPicture("charset.png", List().add($000000, $ffffff, $523fa0, $77c1c9)) + .for (var c=0; c<16; c++) + .for (var y=0;y<8; y++) + .byte charset.getMulticolorByte(c,y) + diff --git a/src/test/ref/examples/tetris/tetris.sym b/src/test/ref/examples/tetris/tetris.sym index 48089494a..8189bb25e 100644 --- a/src/test/ref/examples/tetris/tetris.sym +++ b/src/test/ref/examples/tetris/tetris.sym @@ -1,3 +1,4 @@ +(label) @22 (label) @25 (label) @begin (label) @end @@ -5,6 +6,8 @@ (const byte) BLACK#0 BLACK = (byte/signed byte/word/signed word/dword/signed dword) 0 (byte*) BORDERCOL (const byte*) BORDERCOL#0 BORDERCOL = ((byte*))(word/dword/signed dword) 53280 +(byte*) CHARSET +(const byte*) CHARSET#0 CHARSET = ((byte*))(word/signed word/dword/signed dword) 8192 (byte*) CIA1_PORT_A (const byte*) CIA1_PORT_A#0 CIA1_PORT_A = ((byte*))(word/dword/signed dword) 56320 (byte*) CIA1_PORT_B diff --git a/src/test/ref/fillscreen.log b/src/test/ref/fillscreen.log index 8f3ea5d30..95b48fb5c 100644 --- a/src/test/ref/fillscreen.log +++ b/src/test/ref/fillscreen.log @@ -276,6 +276,7 @@ fillscreen: { inc j //SEG26 [15] if((byte) fillscreen::j#1!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto fillscreen::@1 -- vbuz1_neq_0_then_la1 lda j + cmp #0 bne b1_from_b1 jmp breturn //SEG27 fillscreen::@return diff --git a/src/test/ref/flipper-rex2.asm b/src/test/ref/flipper-rex2.asm index 2adb7de14..78a2f5a4c 100644 --- a/src/test/ref/flipper-rex2.asm +++ b/src/test/ref/flipper-rex2.asm @@ -51,6 +51,7 @@ plot: { !: dec y lda y + cmp #0 bne b1 rts } @@ -74,10 +75,12 @@ flip: { tax dec c lda c + cmp #0 bne b2 dex dec r lda r + cmp #0 bne b1 ldx #0 b3: diff --git a/src/test/ref/flipper-rex2.log b/src/test/ref/flipper-rex2.log index f7f227ec2..fc850317a 100644 --- a/src/test/ref/flipper-rex2.log +++ b/src/test/ref/flipper-rex2.log @@ -756,6 +756,7 @@ main: { dec c //SEG23 [10] if((byte) main::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@3 -- vbuz1_neq_0_then_la1 lda c + cmp #0 bne b3_from_b6 //SEG24 [11] phi from main::@6 to main::@7 [phi:main::@6->main::@7] b7_from_b6: @@ -847,6 +848,7 @@ plot: { dec y //SEG56 [24] if((byte) plot::y#1!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto plot::@1 -- vbuz1_neq_0_then_la1 lda y + cmp #0 bne b1_from_b3 jmp breturn //SEG57 plot::@return @@ -913,6 +915,7 @@ flip: { dec c //SEG82 [33] if((byte) flip::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto flip::@2 -- vbuz1_neq_0_then_la1 lda c + cmp #0 bne b2_from_b2 jmp b4 //SEG83 flip::@4 @@ -923,6 +926,7 @@ flip: { dec r //SEG86 [36] if((byte) flip::r#1!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto flip::@1 -- vbuz1_neq_0_then_la1 lda r + cmp #0 bne b1_from_b4 //SEG87 [37] phi from flip::@4 to flip::@3 [phi:flip::@4->flip::@3] b3_from_b4: @@ -944,6 +948,7 @@ flip: { inc i //SEG94 [40] if((byte) flip::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto flip::@3 -- vbuz1_neq_0_then_la1 lda i + cmp #0 bne b3_from_b3 jmp breturn //SEG95 flip::@return @@ -974,6 +979,7 @@ prepare: { inc i //SEG105 [46] if((byte) prepare::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto prepare::@1 -- vbuz1_neq_0_then_la1 lda i + cmp #0 bne b1_from_b1 jmp breturn //SEG106 prepare::@return @@ -1027,18 +1033,18 @@ Uplift Scope [main] 218.83: zp ZP_BYTE:2 [ main::c#4 main::c#1 ] Uplift Scope [prepare] 38.5: zp ZP_BYTE:13 [ prepare::i#2 prepare::i#1 ] Uplift Scope [] -Uplifting [flip] best 141656 combination reg byte y [ flip::srcIdx#2 flip::srcIdx#3 flip::srcIdx#1 ] reg byte x [ flip::dstIdx#3 flip::dstIdx#5 flip::dstIdx#2 flip::dstIdx#1 ] zp ZP_BYTE:11 [ flip::c#2 flip::c#1 ] reg byte x [ flip::i#2 flip::i#1 ] zp ZP_BYTE:8 [ flip::r#4 flip::r#1 ] +Uplifting [flip] best 144276 combination reg byte y [ flip::srcIdx#2 flip::srcIdx#3 flip::srcIdx#1 ] reg byte x [ flip::dstIdx#3 flip::dstIdx#5 flip::dstIdx#2 flip::dstIdx#1 ] zp ZP_BYTE:11 [ flip::c#2 flip::c#1 ] reg byte x [ flip::i#2 flip::i#1 ] zp ZP_BYTE:8 [ flip::r#4 flip::r#1 ] Limited combination testing to 100 combinations of 243 possible. -Uplifting [plot] best 123356 combination reg byte y [ plot::x#2 plot::x#1 ] reg byte x [ plot::i#2 plot::i#3 plot::i#1 ] zp ZP_WORD:3 [ plot::line#4 plot::line#1 ] zp ZP_BYTE:5 [ plot::y#4 plot::y#1 ] -Uplifting [main] best 119956 combination reg byte x [ main::c#4 main::c#1 ] -Uplifting [prepare] best 119856 combination reg byte x [ prepare::i#2 prepare::i#1 ] -Uplifting [] best 119856 combination +Uplifting [plot] best 125976 combination reg byte y [ plot::x#2 plot::x#1 ] reg byte x [ plot::i#2 plot::i#3 plot::i#1 ] zp ZP_WORD:3 [ plot::line#4 plot::line#1 ] zp ZP_BYTE:5 [ plot::y#4 plot::y#1 ] +Uplifting [main] best 122376 combination reg byte x [ main::c#4 main::c#1 ] +Uplifting [prepare] best 122256 combination reg byte x [ prepare::i#2 prepare::i#1 ] +Uplifting [] best 122256 combination Attempting to uplift remaining variables inzp ZP_BYTE:11 [ flip::c#2 flip::c#1 ] -Uplifting [flip] best 119856 combination zp ZP_BYTE:11 [ flip::c#2 flip::c#1 ] +Uplifting [flip] best 122256 combination zp ZP_BYTE:11 [ flip::c#2 flip::c#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:5 [ plot::y#4 plot::y#1 ] -Uplifting [plot] best 119856 combination zp ZP_BYTE:5 [ plot::y#4 plot::y#1 ] +Uplifting [plot] best 122256 combination zp ZP_BYTE:5 [ plot::y#4 plot::y#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:8 [ flip::r#4 flip::r#1 ] -Uplifting [flip] best 119856 combination zp ZP_BYTE:8 [ flip::r#4 flip::r#1 ] +Uplifting [flip] best 122256 combination zp ZP_BYTE:8 [ flip::r#4 flip::r#1 ] Coalescing zero page register [ zp ZP_BYTE:5 [ plot::y#4 plot::y#1 ] ] with [ zp ZP_BYTE:8 [ flip::r#4 flip::r#1 ] ] Allocated (was zp ZP_WORD:3) zp ZP_WORD:2 [ plot::line#4 plot::line#1 ] Allocated (was zp ZP_BYTE:5) zp ZP_BYTE:4 [ plot::y#4 plot::y#1 flip::r#4 flip::r#1 ] @@ -1191,6 +1197,7 @@ plot: { dec y //SEG56 [24] if((byte) plot::y#1!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto plot::@1 -- vbuz1_neq_0_then_la1 lda y + cmp #0 bne b1_from_b3 jmp breturn //SEG57 plot::@return @@ -1250,6 +1257,7 @@ flip: { dec c //SEG82 [33] if((byte) flip::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto flip::@2 -- vbuz1_neq_0_then_la1 lda c + cmp #0 bne b2_from_b2 jmp b4 //SEG83 flip::@4 @@ -1260,6 +1268,7 @@ flip: { dec r //SEG86 [36] if((byte) flip::r#1!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto flip::@1 -- vbuz1_neq_0_then_la1 lda r + cmp #0 bne b1_from_b4 //SEG87 [37] phi from flip::@4 to flip::@3 [phi:flip::@4->flip::@3] b3_from_b4: @@ -1479,7 +1488,7 @@ reg byte x [ prepare::i#2 prepare::i#1 ] FINAL ASSEMBLER -Score: 84300 +Score: 86700 //SEG0 Basic Upstart .pc = $801 "Basic" @@ -1591,6 +1600,7 @@ plot: { dec y //SEG56 [24] if((byte) plot::y#1!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto plot::@1 -- vbuz1_neq_0_then_la1 lda y + cmp #0 bne b1 //SEG57 plot::@return //SEG58 [25] return @@ -1640,6 +1650,7 @@ flip: { dec c //SEG82 [33] if((byte) flip::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto flip::@2 -- vbuz1_neq_0_then_la1 lda c + cmp #0 bne b2 //SEG83 flip::@4 //SEG84 [34] (byte) flip::dstIdx#2 ← -- (byte) flip::dstIdx#1 -- vbuxx=_dec_vbuxx @@ -1648,6 +1659,7 @@ flip: { dec r //SEG86 [36] if((byte) flip::r#1!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto flip::@1 -- vbuz1_neq_0_then_la1 lda r + cmp #0 bne b1 //SEG87 [37] phi from flip::@4 to flip::@3 [phi:flip::@4->flip::@3] //SEG88 [37] phi (byte) flip::i#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:flip::@4->flip::@3#0] -- vbuxx=vbuc1 diff --git a/src/test/ref/forrangemin.log b/src/test/ref/forrangemin.log index 590bedf25..34dd4bd12 100644 --- a/src/test/ref/forrangemin.log +++ b/src/test/ref/forrangemin.log @@ -228,6 +228,7 @@ main: { inc i //SEG17 [8] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@1 -- vbuz1_neq_0_then_la1 lda i + cmp #0 bne b1_from_b1 //SEG18 [9] phi from main::@1 to main::@2 [phi:main::@1->main::@2] b2_from_b1: diff --git a/src/test/ref/halfscii.log b/src/test/ref/halfscii.log index 6a158db51..18014b654 100644 --- a/src/test/ref/halfscii.log +++ b/src/test/ref/halfscii.log @@ -1139,6 +1139,7 @@ main: { inc i //SEG87 [57] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@6 -- vbuz1_neq_0_then_la1 lda i + cmp #0 bne b6_from_b6 jmp b12 //SEG88 main::@12 @@ -1261,13 +1262,13 @@ REGISTER UPLIFT SCOPES Uplift Scope [main] 59.71: zp ZP_BYTE:9 [ main::bits_gen#15 main::bits_gen#8 main::bits_gen#16 ] 59.12: zp ZP_BYTE:7 [ main::bits_gen#11 main::bits_gen#1 main::bits_gen#4 ] 59.12: zp ZP_BYTE:8 [ main::bits_gen#13 main::bits_gen#14 main::bits_gen#6 ] 38.5: zp ZP_BYTE:10 [ main::i#2 main::i#1 ] 22: zp ZP_BYTE:14 [ main::$2 ] 22: zp ZP_BYTE:15 [ main::$3 ] 22: zp ZP_BYTE:16 [ main::$4 ] 22: zp ZP_BYTE:17 [ main::$5 ] 22: zp ZP_BYTE:18 [ main::$6 ] 22: zp ZP_BYTE:19 [ main::bits#0 ] 22: zp ZP_BYTE:21 [ main::$12 ] 22: zp ZP_BYTE:22 [ main::$13 ] 22: zp ZP_BYTE:23 [ main::$14 ] 22: zp ZP_BYTE:24 [ main::$15 ] 22: zp ZP_BYTE:25 [ main::bits#1 ] 22: zp ZP_BYTE:26 [ main::$20 ] 22: zp ZP_BYTE:28 [ main::$22 ] 22: zp ZP_BYTE:29 [ main::$23 ] 22: zp ZP_BYTE:30 [ main::$24 ] 22: zp ZP_BYTE:31 [ main::bits#2 ] 22: zp ZP_BYTE:32 [ main::$29 ] 22: zp ZP_BYTE:34 [ main::$31 ] 22: zp ZP_BYTE:35 [ main::$32 ] 22: zp ZP_BYTE:36 [ main::bits#3 ] 22: zp ZP_BYTE:37 [ main::bits_gen#7 ] 18.25: zp ZP_WORD:2 [ main::chargen#10 main::chargen#1 ] 11: zp ZP_BYTE:6 [ main::bits_gen#9 ] 11: zp ZP_BYTE:33 [ main::$30 ] 8.1: zp ZP_WORD:4 [ main::charset4#10 main::charset4#1 ] 7.33: zp ZP_BYTE:13 [ main::$1 ] 7.33: zp ZP_BYTE:20 [ main::$11 ] 7.33: zp ZP_BYTE:27 [ main::$21 ] 1.62: zp ZP_WORD:11 [ main::chargen1#0 ] Uplift Scope [] -Uplifting [] best 5083 combination +Uplifting [] best 5103 combination Attempting to uplift remaining variables inzp ZP_BYTE:9 [ main::bits_gen#15 main::bits_gen#8 main::bits_gen#16 ] -Uplifting [main] best 5033 combination reg byte x [ main::bits_gen#15 main::bits_gen#8 main::bits_gen#16 ] +Uplifting [main] best 5053 combination reg byte x [ main::bits_gen#15 main::bits_gen#8 main::bits_gen#16 ] Attempting to uplift remaining variables inzp ZP_BYTE:7 [ main::bits_gen#11 main::bits_gen#1 main::bits_gen#4 ] -Uplifting [main] best 4983 combination reg byte x [ main::bits_gen#11 main::bits_gen#1 main::bits_gen#4 ] +Uplifting [main] best 5003 combination reg byte x [ main::bits_gen#11 main::bits_gen#1 main::bits_gen#4 ] Attempting to uplift remaining variables inzp ZP_BYTE:8 [ main::bits_gen#13 main::bits_gen#14 main::bits_gen#6 ] -Uplifting [main] best 4933 combination reg byte x [ main::bits_gen#13 main::bits_gen#14 main::bits_gen#6 ] +Uplifting [main] best 4953 combination reg byte x [ main::bits_gen#13 main::bits_gen#14 main::bits_gen#6 ] Attempting to uplift remaining variables inzp ZP_BYTE:10 [ main::i#2 main::i#1 ] Uplifting [main] best 4833 combination reg byte x [ main::i#2 main::i#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:14 [ main::$2 ] diff --git a/src/test/ref/line-anim.log b/src/test/ref/line-anim.log index 48319f720..2ff2740c3 100644 --- a/src/test/ref/line-anim.log +++ b/src/test/ref/line-anim.log @@ -3339,6 +3339,7 @@ bitmap_init: { lsr bits //SEG253 [134] if((byte) bitmap_init::bits#1!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto bitmap_init::@10 -- vbuz1_neq_0_then_la1 lda bits + cmp #0 bne b10_from_b1 //SEG254 [135] phi from bitmap_init::@1 to bitmap_init::@2 [phi:bitmap_init::@1->bitmap_init::@2] b2_from_b1: @@ -3352,6 +3353,7 @@ bitmap_init: { inc x //SEG258 [137] if((byte) bitmap_init::x#1!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto bitmap_init::@1 -- vbuz1_neq_0_then_la1 lda x + cmp #0 bne b1_from_b2 //SEG259 [138] phi from bitmap_init::@2 to bitmap_init::@3 [phi:bitmap_init::@2->bitmap_init::@3] b3_from_b2: @@ -3423,6 +3425,7 @@ bitmap_init: { inc y //SEG280 [150] if((byte) bitmap_init::y#1!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto bitmap_init::@3 -- vbuz1_neq_0_then_la1 lda y + cmp #0 bne b3_from_b4 jmp breturn //SEG281 bitmap_init::@return @@ -3683,9 +3686,9 @@ Uplift Scope [main] 24.36: zp ZP_BYTE:2 [ main::i#2 main::i#1 ] 11: zp ZP_BYTE:3 Uplift Scope [bitmap_plot] 15: zp ZP_BYTE:40 [ bitmap_plot::y#0 ] 4: zp ZP_WORD:43 [ bitmap_plot::$1 ] 4: zp ZP_BYTE:47 [ bitmap_plot::$2 ] 3: zp ZP_WORD:38 [ bitmap_plot::x#0 ] 3: zp ZP_WORD:45 [ bitmap_plot::plotter#1 ] 1: zp ZP_WORD:41 [ bitmap_plot::$3 ] Uplift Scope [] -Uplifting [divr16u] best 29551 combination zp ZP_WORD:16 [ divr16u::rem#4 divr16u::rem#3 divr16u::rem#9 divr16u::rem#5 divr16u::rem#0 divr16u::rem#1 divr16u::rem#2 ] zp ZP_WORD:20 [ divr16u::quotient#3 divr16u::return#0 divr16u::quotient#1 divr16u::quotient#2 ] reg byte a [ divr16u::$1 ] reg byte a [ divr16u::$2 ] reg byte x [ divr16u::i#2 divr16u::i#1 ] zp ZP_WORD:18 [ divr16u::dividend#2 divr16u::dividend#1 divr16u::dividend#0 ] zp ZP_WORD:77 [ divr16u::divisor#0 ] zp ZP_WORD:79 [ divr16u::return#2 ] -Uplifting [bitmap_clear] best 28651 combination zp ZP_WORD:28 [ bitmap_clear::bitmap#2 bitmap_clear::bitmap#3 bitmap_clear::bitmap#5 bitmap_clear::bitmap#1 ] reg byte x [ bitmap_clear::x#2 bitmap_clear::x#1 ] zp ZP_BYTE:27 [ bitmap_clear::y#4 bitmap_clear::y#1 ] zp ZP_WORD:89 [ bitmap_clear::$3 ] -Uplifting [screen_fill] best 27751 combination zp ZP_WORD:24 [ screen_fill::screen#2 screen_fill::screen#3 screen_fill::screen#1 ] reg byte x [ screen_fill::x#2 screen_fill::x#1 ] zp ZP_BYTE:23 [ screen_fill::y#4 screen_fill::y#1 ] +Uplifting [divr16u] best 29611 combination zp ZP_WORD:16 [ divr16u::rem#4 divr16u::rem#3 divr16u::rem#9 divr16u::rem#5 divr16u::rem#0 divr16u::rem#1 divr16u::rem#2 ] zp ZP_WORD:20 [ divr16u::quotient#3 divr16u::return#0 divr16u::quotient#1 divr16u::quotient#2 ] reg byte a [ divr16u::$1 ] reg byte a [ divr16u::$2 ] reg byte x [ divr16u::i#2 divr16u::i#1 ] zp ZP_WORD:18 [ divr16u::dividend#2 divr16u::dividend#1 divr16u::dividend#0 ] zp ZP_WORD:77 [ divr16u::divisor#0 ] zp ZP_WORD:79 [ divr16u::return#2 ] +Uplifting [bitmap_clear] best 28711 combination zp ZP_WORD:28 [ bitmap_clear::bitmap#2 bitmap_clear::bitmap#3 bitmap_clear::bitmap#5 bitmap_clear::bitmap#1 ] reg byte x [ bitmap_clear::x#2 bitmap_clear::x#1 ] zp ZP_BYTE:27 [ bitmap_clear::y#4 bitmap_clear::y#1 ] zp ZP_WORD:89 [ bitmap_clear::$3 ] +Uplifting [screen_fill] best 27811 combination zp ZP_WORD:24 [ screen_fill::screen#2 screen_fill::screen#3 screen_fill::screen#1 ] reg byte x [ screen_fill::x#2 screen_fill::x#1 ] zp ZP_BYTE:23 [ screen_fill::y#4 screen_fill::y#1 ] Uplifting [bitmap_init] best 27311 combination zp ZP_WORD:34 [ bitmap_init::yoffs#2 bitmap_init::yoffs#4 bitmap_init::yoffs#1 ] reg byte a [ bitmap_init::bits#3 bitmap_init::bits#4 bitmap_init::bits#1 ] reg byte x [ bitmap_init::y#2 bitmap_init::y#1 ] reg byte x [ bitmap_init::x#2 bitmap_init::x#1 ] reg byte a [ bitmap_init::$4 ] zp ZP_BYTE:93 [ bitmap_init::$5 ] zp ZP_BYTE:94 [ bitmap_init::$6 ] zp ZP_BYTE:95 [ bitmap_init::$7 ] zp ZP_BYTE:91 [ bitmap_init::$3 ] Limited combination testing to 100 combinations of 61440 possible. Uplifting [point_init] best 27299 combination zp ZP_WORD:5 [ point_init::abs16s2_return#2 point_init::abs16s2_return#5 point_init::abs16s2_return#6 ] zp ZP_WORD:3 [ point_init::abs16s1_return#2 point_init::abs16s1_return#5 point_init::abs16s1_return#6 ] zp ZP_WORD:53 [ point_init::$5 ] zp ZP_WORD:57 [ point_init::$16 ] zp ZP_WORD:59 [ point_init::$17 ] zp ZP_WORD:61 [ point_init::$18 ] zp ZP_WORD:69 [ point_init::x_stepf#0 ] reg byte a [ point_init::$13 ] zp ZP_WORD:51 [ point_init::$4 ] reg byte a [ point_init::$14 ] zp ZP_WORD:73 [ point_init::abs16s2_$2#0 ] zp ZP_WORD:75 [ point_init::abs16s1_$2#0 ] zp ZP_BYTE:36 [ point_init::point_idx#0 ] zp ZP_WORD:49 [ point_init::x_diff#1 ] zp ZP_WORD:55 [ point_init::y_diff#0 ] zp ZP_BYTE:48 [ point_init::point_idx1#0 ] diff --git a/src/test/ref/mem-alignment.log b/src/test/ref/mem-alignment.log index b0b87bf12..e21a00eda 100644 --- a/src/test/ref/mem-alignment.log +++ b/src/test/ref/mem-alignment.log @@ -215,6 +215,7 @@ main: { inc i //SEG17 [8] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@1 -- vbuz1_neq_0_then_la1 lda i + cmp #0 bne b1_from_b1 //SEG18 [9] phi from main::@1 to main::@2 [phi:main::@1->main::@2] b2_from_b1: @@ -243,6 +244,7 @@ main: { inc i_3 //SEG28 [13] if((byte) main::i#3!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@2 -- vbuz1_neq_0_then_la1 lda i_3 + cmp #0 bne b2_from_b2 jmp breturn //SEG29 main::@return diff --git a/src/test/ref/min-fmul-16.log b/src/test/ref/min-fmul-16.log index bcc91f1a5..821e9c6b8 100644 --- a/src/test/ref/min-fmul-16.log +++ b/src/test/ref/min-fmul-16.log @@ -1765,6 +1765,7 @@ mulf_init: { sta _2 //SEG109 [52] if((byte~) mulf_init::$2!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto mulf_init::@2 -- vbuz1_neq_0_then_la1 lda _2 + cmp #0 bne b2_from_b1 jmp b5 //SEG110 mulf_init::@5 @@ -1873,6 +1874,7 @@ mulf_init: { sta x_255 //SEG140 [69] if((byte) mulf_init::x_255#1!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto mulf_init::@12 -- vbuz1_neq_0_then_la1 lda x_255 + cmp #0 bne b12_from_b3 //SEG141 [70] phi from mulf_init::@3 to mulf_init::@4 [phi:mulf_init::@3->mulf_init::@4] b4_from_b3: @@ -2029,18 +2031,18 @@ Uplift Scope [] 9.84: zp ZP_WORD:6 [ print_char_cursor#27 print_char_cursor#36 p Uplift Scope [print_dword] 5: zp ZP_DWORD:30 [ print_dword::dw#0 ] Uplift Scope [print_set_screen] -Uplifting [mulf_init] best 6031 combination zp ZP_WORD:14 [ mulf_init::sqr#3 mulf_init::sqr#4 mulf_init::sqr#1 mulf_init::sqr#2 ] reg byte x [ mulf_init::c#2 mulf_init::c#1 ] zp ZP_BYTE:13 [ mulf_init::x_2#3 mulf_init::x_2#2 mulf_init::x_2#1 ] reg byte a [ mulf_init::$2 ] reg byte a [ mulf_init::$5 ] reg byte a [ mulf_init::$6 ] zp ZP_WORD:17 [ mulf_init::sqr2_lo#2 mulf_init::sqr2_lo#1 ] zp ZP_WORD:9 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_lo#1 ] zp ZP_BYTE:16 [ mulf_init::x_255#2 mulf_init::x_255#1 ] zp ZP_WORD:19 [ mulf_init::sqr2_hi#2 mulf_init::sqr2_hi#1 ] zp ZP_BYTE:21 [ mulf_init::dir#2 mulf_init::dir#3 ] zp ZP_WORD:11 [ mulf_init::sqr1_hi#2 mulf_init::sqr1_hi#1 ] +Uplifting [mulf_init] best 6051 combination zp ZP_WORD:14 [ mulf_init::sqr#3 mulf_init::sqr#4 mulf_init::sqr#1 mulf_init::sqr#2 ] reg byte x [ mulf_init::c#2 mulf_init::c#1 ] zp ZP_BYTE:13 [ mulf_init::x_2#3 mulf_init::x_2#2 mulf_init::x_2#1 ] reg byte a [ mulf_init::$2 ] reg byte a [ mulf_init::$5 ] reg byte a [ mulf_init::$6 ] zp ZP_WORD:17 [ mulf_init::sqr2_lo#2 mulf_init::sqr2_lo#1 ] zp ZP_WORD:9 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_lo#1 ] zp ZP_BYTE:16 [ mulf_init::x_255#2 mulf_init::x_255#1 ] zp ZP_WORD:19 [ mulf_init::sqr2_hi#2 mulf_init::sqr2_hi#1 ] zp ZP_BYTE:21 [ mulf_init::dir#2 mulf_init::dir#3 ] zp ZP_WORD:11 [ mulf_init::sqr1_hi#2 mulf_init::sqr1_hi#1 ] Limited combination testing to 100 combinations of 1024 possible. -Uplifting [mulf16u] best 6031 combination zp ZP_DWORD:22 [ mulf16u::return#0 ] zp ZP_DWORD:36 [ mulf16u::return#1 ] -Uplifting [print_byte] best 6019 combination reg byte x [ print_byte::b#2 print_byte::b#0 print_byte::b#1 ] reg byte a [ print_byte::$0 ] reg byte a [ print_byte::$2 ] -Uplifting [print_char] best 6010 combination reg byte a [ print_char::ch#2 print_char::ch#0 print_char::ch#1 ] -Uplifting [main] best 6010 combination zp ZP_DWORD:26 [ main::r#0 ] -Uplifting [print_word] best 6010 combination zp ZP_WORD:2 [ print_word::w#2 print_word::w#0 print_word::w#1 ] -Uplifting [] best 6010 combination zp ZP_WORD:6 [ print_char_cursor#27 print_char_cursor#36 print_char_cursor#34 print_char_cursor#16 print_char_cursor#10 ] -Uplifting [print_dword] best 6010 combination zp ZP_DWORD:30 [ print_dword::dw#0 ] -Uplifting [print_set_screen] best 6010 combination +Uplifting [mulf16u] best 6051 combination zp ZP_DWORD:22 [ mulf16u::return#0 ] zp ZP_DWORD:36 [ mulf16u::return#1 ] +Uplifting [print_byte] best 6039 combination reg byte x [ print_byte::b#2 print_byte::b#0 print_byte::b#1 ] reg byte a [ print_byte::$0 ] reg byte a [ print_byte::$2 ] +Uplifting [print_char] best 6030 combination reg byte a [ print_char::ch#2 print_char::ch#0 print_char::ch#1 ] +Uplifting [main] best 6030 combination zp ZP_DWORD:26 [ main::r#0 ] +Uplifting [print_word] best 6030 combination zp ZP_WORD:2 [ print_word::w#2 print_word::w#0 print_word::w#1 ] +Uplifting [] best 6030 combination zp ZP_WORD:6 [ print_char_cursor#27 print_char_cursor#36 print_char_cursor#34 print_char_cursor#16 print_char_cursor#10 ] +Uplifting [print_dword] best 6030 combination zp ZP_DWORD:30 [ print_dword::dw#0 ] +Uplifting [print_set_screen] best 6030 combination Attempting to uplift remaining variables inzp ZP_BYTE:13 [ mulf_init::x_2#3 mulf_init::x_2#2 mulf_init::x_2#1 ] -Uplifting [mulf_init] best 6010 combination zp ZP_BYTE:13 [ mulf_init::x_2#3 mulf_init::x_2#2 mulf_init::x_2#1 ] +Uplifting [mulf_init] best 6030 combination zp ZP_BYTE:13 [ mulf_init::x_2#3 mulf_init::x_2#2 mulf_init::x_2#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:16 [ mulf_init::x_255#2 mulf_init::x_255#1 ] Uplifting [mulf_init] best 5890 combination reg byte x [ mulf_init::x_255#2 mulf_init::x_255#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:21 [ mulf_init::dir#2 mulf_init::dir#3 ] diff --git a/src/test/ref/sinusgen8.log b/src/test/ref/sinusgen8.log index c47578b83..8e43a7c65 100644 --- a/src/test/ref/sinusgen8.log +++ b/src/test/ref/sinusgen8.log @@ -2935,6 +2935,7 @@ mul8u: { b1: //SEG245 [123] if((byte) mul8u::a#2!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto mul8u::@2 -- vbuz1_neq_0_then_la1 lda a + cmp #0 bne b2 jmp breturn //SEG246 mul8u::@return diff --git a/src/test/ref/sinusgen8b.log b/src/test/ref/sinusgen8b.log index a556f3758..b10b2da7a 100644 --- a/src/test/ref/sinusgen8b.log +++ b/src/test/ref/sinusgen8b.log @@ -5172,6 +5172,7 @@ mul8u: { b1: //SEG454 [233] if((byte) mul8u::a#2!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto mul8u::@2 -- vbuz1_neq_0_then_la1 lda a + cmp #0 bne b2 jmp breturn //SEG455 mul8u::@return diff --git a/src/test/ref/sinusgenscale8.log b/src/test/ref/sinusgenscale8.log index 5810b16c3..2a69f53dc 100644 --- a/src/test/ref/sinusgenscale8.log +++ b/src/test/ref/sinusgenscale8.log @@ -4150,6 +4150,7 @@ mul8u: { b1: //SEG290 [130] if((byte) mul8u::a#3!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto mul8u::@2 -- vbuz1_neq_0_then_la1 lda a + cmp #0 bne b2 jmp breturn //SEG291 mul8u::@return diff --git a/src/test/ref/test-keyboard-space.log b/src/test/ref/test-keyboard-space.log index d2f0bc98b..cded97ca7 100644 --- a/src/test/ref/test-keyboard-space.log +++ b/src/test/ref/test-keyboard-space.log @@ -420,6 +420,7 @@ main: { sta _2 //SEG20 [11] if((byte~) main::$2!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@5 -- vbuz1_neq_0_then_la1 lda _2 + cmp #0 bne b5 jmp b10 //SEG21 main::@10 @@ -520,7 +521,7 @@ Uplift Scope [keyboard_matrix_read] 4: zp ZP_BYTE:4 [ keyboard_matrix_read::retu Uplift Scope [keyboard_init] Uplift Scope [] -Uplifting [keyboard_key_pressed] best 1310 combination reg byte a [ keyboard_key_pressed::return#2 ] reg byte a [ keyboard_key_pressed::return#0 ] reg byte a [ keyboard_key_pressed::$2 ] +Uplifting [keyboard_key_pressed] best 1330 combination reg byte a [ keyboard_key_pressed::return#2 ] reg byte a [ keyboard_key_pressed::return#0 ] reg byte a [ keyboard_key_pressed::$2 ] Uplifting [main] best 1270 combination reg byte a [ main::$2 ] Uplifting [keyboard_matrix_read] best 1258 combination reg byte a [ keyboard_matrix_read::return#2 ] reg byte a [ keyboard_matrix_read::return#0 ] Uplifting [keyboard_init] best 1258 combination diff --git a/src/test/ref/test-keyboard.log b/src/test/ref/test-keyboard.log index e9ec26f0d..c42f1a739 100644 --- a/src/test/ref/test-keyboard.log +++ b/src/test/ref/test-keyboard.log @@ -1299,6 +1299,7 @@ main: { sta _5 //SEG45 [19] if((byte~) main::$5!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@8 -- vbuz1_neq_0_then_la1 lda _5 + cmp #0 bne b8 jmp b18 //SEG46 main::@18 diff --git a/src/test/ref/test-multiply-16bit.log b/src/test/ref/test-multiply-16bit.log index 8f950d757..50fbf8282 100644 --- a/src/test/ref/test-multiply-16bit.log +++ b/src/test/ref/test-multiply-16bit.log @@ -4988,6 +4988,7 @@ mul16s_compare: { b4: //SEG83 [39] if((byte) mul16s_compare::ok#3!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto mul16s_compare::@5 -- vbuz1_neq_0_then_la1 lda ok + cmp #0 bne b5 jmp b8 //SEG84 mul16s_compare::@8 @@ -6488,6 +6489,7 @@ mul16u_compare: { b4: //SEG479 [225] if((byte) mul16u_compare::ok#3!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto mul16u_compare::@5 -- vbuz1_neq_0_then_la1 lda ok + cmp #0 bne b5 jmp b8 //SEG480 mul16u_compare::@8 @@ -6940,6 +6942,7 @@ mulf_init: { sta _2 //SEG621 [279] if((byte~) mulf_init::$2!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto mulf_init::@2 -- vbuz1_neq_0_then_la1 lda _2 + cmp #0 bne b2_from_b1 jmp b5 //SEG622 mulf_init::@5 @@ -7048,6 +7051,7 @@ mulf_init: { sta x_255 //SEG652 [296] if((byte) mulf_init::x_255#1!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto mulf_init::@12 -- vbuz1_neq_0_then_la1 lda x_255 + cmp #0 bne b12_from_b3 //SEG653 [297] phi from mulf_init::@3 to mulf_init::@4 [phi:mulf_init::@3->mulf_init::@4] b4_from_b3: @@ -7552,35 +7556,35 @@ Uplift Scope [mul16s_error] 0.57: zp ZP_WORD:126 [ mul16s_error::a#0 ] 0.4: zp Z Uplift Scope [print_ln] Uplift Scope [main] -Uplifting [muls16s] best 558455 combination zp ZP_DWORD:55 [ muls16s::m#5 muls16s::return#0 muls16s::m#3 muls16s::m#1 muls16s::m#2 ] zp ZP_WORD:53 [ muls16s::j#2 muls16s::j#1 ] zp ZP_WORD:59 [ muls16s::i#2 muls16s::i#1 ] zp ZP_DWORD:94 [ muls16s::return#2 ] zp ZP_WORD:92 [ muls16s::b#0 ] zp ZP_WORD:90 [ muls16s::a#0 ] -Uplifting [mul16u] best 552455 combination zp ZP_DWORD:45 [ mul16u::res#2 mul16u::res#6 mul16u::res#1 ] zp ZP_DWORD:49 [ mul16u::mb#2 mul16u::mb#0 mul16u::mb#1 ] reg byte a [ mul16u::$1 ] zp ZP_WORD:43 [ mul16u::a#3 mul16u::a#6 mul16u::a#8 mul16u::a#2 mul16u::a#0 ] zp ZP_WORD:41 [ mul16u::b#2 mul16u::b#3 mul16u::b#1 ] zp ZP_DWORD:193 [ mul16u::return#3 ] zp ZP_DWORD:164 [ mul16u::return#2 ] -Uplifting [muls16u] best 552455 combination zp ZP_DWORD:70 [ muls16u::return#0 muls16u::m#3 muls16u::m#1 ] zp ZP_WORD:68 [ muls16u::i#2 muls16u::i#1 ] zp ZP_DWORD:185 [ muls16u::return#2 ] zp ZP_WORD:183 [ muls16u::b#0 ] zp ZP_WORD:181 [ muls16u::a#0 ] -Uplifting [mul16u_compare] best 550555 combination zp ZP_WORD:62 [ mul16u_compare::a#2 mul16u_compare::a#6 mul16u_compare::a#1 ] reg byte x [ mul16u_compare::ok#3 mul16u_compare::ok#4 ] reg byte y [ mul16u_compare::j#10 mul16u_compare::j#1 ] zp ZP_WORD:64 [ mul16u_compare::b#2 mul16u_compare::b#6 mul16u_compare::b#1 ] zp ZP_BYTE:61 [ mul16u_compare::i#12 mul16u_compare::i#1 ] zp ZP_DWORD:205 [ mul16u_compare::mf#0 ] zp ZP_DWORD:189 [ mul16u_compare::ms#0 ] zp ZP_DWORD:197 [ mul16u_compare::mn#0 ] -Uplifting [mul16s_compare] best 548655 combination zp ZP_WORD:3 [ mul16s_compare::a#2 mul16s_compare::a#6 mul16s_compare::a#1 ] reg byte x [ mul16s_compare::ok#3 mul16s_compare::ok#4 ] reg byte y [ mul16s_compare::j#10 mul16s_compare::j#1 ] zp ZP_WORD:5 [ mul16s_compare::b#2 mul16s_compare::b#6 mul16s_compare::b#1 ] zp ZP_BYTE:2 [ mul16s_compare::i#12 mul16s_compare::i#1 ] zp ZP_DWORD:122 [ mul16s_compare::mf#0 ] zp ZP_DWORD:98 [ mul16s_compare::ms#0 ] zp ZP_DWORD:110 [ mul16s_compare::mn#0 ] -Uplifting [mulf16u] best 548655 combination zp ZP_WORD:35 [ mulf16u::b#2 mulf16u::b#1 mulf16u::b#4 ] zp ZP_WORD:33 [ mulf16u::a#2 mulf16u::a#1 mulf16u::a#4 ] zp ZP_DWORD:201 [ mulf16u::return#3 ] zp ZP_DWORD:160 [ mulf16u::return#0 ] zp ZP_DWORD:144 [ mulf16u::return#2 ] -Uplifting [print_str] best 548655 combination zp ZP_WORD:11 [ print_str::str#15 print_str::str#17 print_str::str#0 ] -Uplifting [mul16s] best 548655 combination zp ZP_DWORD:106 [ mul16s::return#2 ] zp ZP_DWORD:176 [ mul16s::return#0 ] zp ZP_DWORD:37 [ mul16s::m#4 mul16s::m#5 mul16s::m#1 mul16s::m#0 mul16s::m#2 ] zp ZP_WORD:104 [ mul16s::b#0 ] zp ZP_WORD:102 [ mul16s::a#0 ] zp ZP_WORD:168 [ mul16s::$6 ] zp ZP_WORD:170 [ mul16s::$16 ] zp ZP_WORD:172 [ mul16s::$12 ] zp ZP_WORD:174 [ mul16s::$17 ] -Uplifting [mulf16s] best 548655 combination zp ZP_DWORD:118 [ mulf16s::return#2 ] zp ZP_DWORD:156 [ mulf16s::return#0 ] zp ZP_DWORD:29 [ mulf16s::m#4 mulf16s::m#5 mulf16s::m#1 mulf16s::m#0 mulf16s::m#2 ] zp ZP_WORD:116 [ mulf16s::b#0 ] zp ZP_WORD:114 [ mulf16s::a#0 ] zp ZP_WORD:148 [ mulf16s::$6 ] zp ZP_WORD:150 [ mulf16s::$16 ] zp ZP_WORD:152 [ mulf16s::$12 ] zp ZP_WORD:154 [ mulf16s::$17 ] -Uplifting [] best 548655 combination zp ZP_WORD:25 [ print_char_cursor#84 print_char_cursor#136 print_char_cursor#132 print_char_cursor#133 print_char_cursor#134 print_char_cursor#148 print_char_cursor#129 print_char_cursor#143 print_char_cursor#176 print_char_cursor#128 print_char_cursor#20 print_char_cursor#185 print_char_cursor#139 print_char_cursor#192 print_char_cursor#1 print_char_cursor#130 ] zp ZP_WORD:9 [ print_line_cursor#22 print_line_cursor#43 print_line_cursor#1 ] -Uplifting [mulf_init] best 548425 combination zp ZP_WORD:80 [ mulf_init::sqr#3 mulf_init::sqr#4 mulf_init::sqr#1 mulf_init::sqr#2 ] reg byte x [ mulf_init::c#2 mulf_init::c#1 ] zp ZP_BYTE:79 [ mulf_init::x_2#3 mulf_init::x_2#2 mulf_init::x_2#1 ] reg byte a [ mulf_init::$2 ] reg byte a [ mulf_init::$5 ] reg byte a [ mulf_init::$6 ] zp ZP_WORD:83 [ mulf_init::sqr2_lo#2 mulf_init::sqr2_lo#1 ] zp ZP_WORD:75 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_lo#1 ] zp ZP_BYTE:82 [ mulf_init::x_255#2 mulf_init::x_255#1 ] zp ZP_WORD:85 [ mulf_init::sqr2_hi#2 mulf_init::sqr2_hi#1 ] zp ZP_BYTE:87 [ mulf_init::dir#2 mulf_init::dir#3 ] zp ZP_WORD:77 [ mulf_init::sqr1_hi#2 mulf_init::sqr1_hi#1 ] +Uplifting [muls16s] best 558895 combination zp ZP_DWORD:55 [ muls16s::m#5 muls16s::return#0 muls16s::m#3 muls16s::m#1 muls16s::m#2 ] zp ZP_WORD:53 [ muls16s::j#2 muls16s::j#1 ] zp ZP_WORD:59 [ muls16s::i#2 muls16s::i#1 ] zp ZP_DWORD:94 [ muls16s::return#2 ] zp ZP_WORD:92 [ muls16s::b#0 ] zp ZP_WORD:90 [ muls16s::a#0 ] +Uplifting [mul16u] best 552895 combination zp ZP_DWORD:45 [ mul16u::res#2 mul16u::res#6 mul16u::res#1 ] zp ZP_DWORD:49 [ mul16u::mb#2 mul16u::mb#0 mul16u::mb#1 ] reg byte a [ mul16u::$1 ] zp ZP_WORD:43 [ mul16u::a#3 mul16u::a#6 mul16u::a#8 mul16u::a#2 mul16u::a#0 ] zp ZP_WORD:41 [ mul16u::b#2 mul16u::b#3 mul16u::b#1 ] zp ZP_DWORD:193 [ mul16u::return#3 ] zp ZP_DWORD:164 [ mul16u::return#2 ] +Uplifting [muls16u] best 552895 combination zp ZP_DWORD:70 [ muls16u::return#0 muls16u::m#3 muls16u::m#1 ] zp ZP_WORD:68 [ muls16u::i#2 muls16u::i#1 ] zp ZP_DWORD:185 [ muls16u::return#2 ] zp ZP_WORD:183 [ muls16u::b#0 ] zp ZP_WORD:181 [ muls16u::a#0 ] +Uplifting [mul16u_compare] best 550795 combination zp ZP_WORD:62 [ mul16u_compare::a#2 mul16u_compare::a#6 mul16u_compare::a#1 ] reg byte x [ mul16u_compare::ok#3 mul16u_compare::ok#4 ] reg byte y [ mul16u_compare::j#10 mul16u_compare::j#1 ] zp ZP_WORD:64 [ mul16u_compare::b#2 mul16u_compare::b#6 mul16u_compare::b#1 ] zp ZP_BYTE:61 [ mul16u_compare::i#12 mul16u_compare::i#1 ] zp ZP_DWORD:205 [ mul16u_compare::mf#0 ] zp ZP_DWORD:189 [ mul16u_compare::ms#0 ] zp ZP_DWORD:197 [ mul16u_compare::mn#0 ] +Uplifting [mul16s_compare] best 548695 combination zp ZP_WORD:3 [ mul16s_compare::a#2 mul16s_compare::a#6 mul16s_compare::a#1 ] reg byte x [ mul16s_compare::ok#3 mul16s_compare::ok#4 ] reg byte y [ mul16s_compare::j#10 mul16s_compare::j#1 ] zp ZP_WORD:5 [ mul16s_compare::b#2 mul16s_compare::b#6 mul16s_compare::b#1 ] zp ZP_BYTE:2 [ mul16s_compare::i#12 mul16s_compare::i#1 ] zp ZP_DWORD:122 [ mul16s_compare::mf#0 ] zp ZP_DWORD:98 [ mul16s_compare::ms#0 ] zp ZP_DWORD:110 [ mul16s_compare::mn#0 ] +Uplifting [mulf16u] best 548695 combination zp ZP_WORD:35 [ mulf16u::b#2 mulf16u::b#1 mulf16u::b#4 ] zp ZP_WORD:33 [ mulf16u::a#2 mulf16u::a#1 mulf16u::a#4 ] zp ZP_DWORD:201 [ mulf16u::return#3 ] zp ZP_DWORD:160 [ mulf16u::return#0 ] zp ZP_DWORD:144 [ mulf16u::return#2 ] +Uplifting [print_str] best 548695 combination zp ZP_WORD:11 [ print_str::str#15 print_str::str#17 print_str::str#0 ] +Uplifting [mul16s] best 548695 combination zp ZP_DWORD:106 [ mul16s::return#2 ] zp ZP_DWORD:176 [ mul16s::return#0 ] zp ZP_DWORD:37 [ mul16s::m#4 mul16s::m#5 mul16s::m#1 mul16s::m#0 mul16s::m#2 ] zp ZP_WORD:104 [ mul16s::b#0 ] zp ZP_WORD:102 [ mul16s::a#0 ] zp ZP_WORD:168 [ mul16s::$6 ] zp ZP_WORD:170 [ mul16s::$16 ] zp ZP_WORD:172 [ mul16s::$12 ] zp ZP_WORD:174 [ mul16s::$17 ] +Uplifting [mulf16s] best 548695 combination zp ZP_DWORD:118 [ mulf16s::return#2 ] zp ZP_DWORD:156 [ mulf16s::return#0 ] zp ZP_DWORD:29 [ mulf16s::m#4 mulf16s::m#5 mulf16s::m#1 mulf16s::m#0 mulf16s::m#2 ] zp ZP_WORD:116 [ mulf16s::b#0 ] zp ZP_WORD:114 [ mulf16s::a#0 ] zp ZP_WORD:148 [ mulf16s::$6 ] zp ZP_WORD:150 [ mulf16s::$16 ] zp ZP_WORD:152 [ mulf16s::$12 ] zp ZP_WORD:154 [ mulf16s::$17 ] +Uplifting [] best 548695 combination zp ZP_WORD:25 [ print_char_cursor#84 print_char_cursor#136 print_char_cursor#132 print_char_cursor#133 print_char_cursor#134 print_char_cursor#148 print_char_cursor#129 print_char_cursor#143 print_char_cursor#176 print_char_cursor#128 print_char_cursor#20 print_char_cursor#185 print_char_cursor#139 print_char_cursor#192 print_char_cursor#1 print_char_cursor#130 ] zp ZP_WORD:9 [ print_line_cursor#22 print_line_cursor#43 print_line_cursor#1 ] +Uplifting [mulf_init] best 548445 combination zp ZP_WORD:80 [ mulf_init::sqr#3 mulf_init::sqr#4 mulf_init::sqr#1 mulf_init::sqr#2 ] reg byte x [ mulf_init::c#2 mulf_init::c#1 ] zp ZP_BYTE:79 [ mulf_init::x_2#3 mulf_init::x_2#2 mulf_init::x_2#1 ] reg byte a [ mulf_init::$2 ] reg byte a [ mulf_init::$5 ] reg byte a [ mulf_init::$6 ] zp ZP_WORD:83 [ mulf_init::sqr2_lo#2 mulf_init::sqr2_lo#1 ] zp ZP_WORD:75 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_lo#1 ] zp ZP_BYTE:82 [ mulf_init::x_255#2 mulf_init::x_255#1 ] zp ZP_WORD:85 [ mulf_init::sqr2_hi#2 mulf_init::sqr2_hi#1 ] zp ZP_BYTE:87 [ mulf_init::dir#2 mulf_init::dir#3 ] zp ZP_WORD:77 [ mulf_init::sqr1_hi#2 mulf_init::sqr1_hi#1 ] Limited combination testing to 100 combinations of 1024 possible. -Uplifting [print_cls] best 548425 combination zp ZP_WORD:88 [ print_cls::sc#2 print_cls::sc#1 ] -Uplifting [print_sdword] best 548425 combination zp ZP_DWORD:13 [ print_sdword::dw#5 print_sdword::dw#4 print_sdword::dw#1 print_sdword::dw#2 print_sdword::dw#3 print_sdword::dw#0 ] -Uplifting [print_word] best 548425 combination zp ZP_WORD:21 [ print_word::w#5 print_word::w#3 print_word::w#4 print_word::w#1 print_word::w#2 print_word::w#11 ] -Uplifting [print_dword] best 548425 combination zp ZP_DWORD:17 [ print_dword::dw#4 print_dword::dw#1 print_dword::dw#2 print_dword::dw#3 print_dword::dw#0 ] -Uplifting [print_sword] best 548425 combination zp ZP_WORD:27 [ print_sword::w#4 print_sword::w#3 print_sword::w#1 print_sword::w#2 print_sword::w#0 ] -Uplifting [print_byte] best 548413 combination reg byte x [ print_byte::b#2 print_byte::b#0 print_byte::b#1 ] reg byte a [ print_byte::$0 ] reg byte a [ print_byte::$2 ] -Uplifting [print_char] best 548398 combination reg byte a [ print_char::ch#4 print_char::ch#2 print_char::ch#3 ] -Uplifting [mul16u_error] best 548398 combination zp ZP_WORD:209 [ mul16u_error::a#0 ] zp ZP_WORD:211 [ mul16u_error::b#0 ] zp ZP_DWORD:213 [ mul16u_error::ms#0 ] zp ZP_DWORD:217 [ mul16u_error::mn#0 ] zp ZP_DWORD:221 [ mul16u_error::mf#0 ] -Uplifting [mul16s_error] best 548398 combination zp ZP_WORD:126 [ mul16s_error::a#0 ] zp ZP_WORD:128 [ mul16s_error::b#0 ] zp ZP_DWORD:130 [ mul16s_error::ms#0 ] zp ZP_DWORD:134 [ mul16s_error::mn#0 ] zp ZP_DWORD:138 [ mul16s_error::mf#0 ] -Uplifting [print_ln] best 548398 combination -Uplifting [main] best 548398 combination +Uplifting [print_cls] best 548445 combination zp ZP_WORD:88 [ print_cls::sc#2 print_cls::sc#1 ] +Uplifting [print_sdword] best 548445 combination zp ZP_DWORD:13 [ print_sdword::dw#5 print_sdword::dw#4 print_sdword::dw#1 print_sdword::dw#2 print_sdword::dw#3 print_sdword::dw#0 ] +Uplifting [print_word] best 548445 combination zp ZP_WORD:21 [ print_word::w#5 print_word::w#3 print_word::w#4 print_word::w#1 print_word::w#2 print_word::w#11 ] +Uplifting [print_dword] best 548445 combination zp ZP_DWORD:17 [ print_dword::dw#4 print_dword::dw#1 print_dword::dw#2 print_dword::dw#3 print_dword::dw#0 ] +Uplifting [print_sword] best 548445 combination zp ZP_WORD:27 [ print_sword::w#4 print_sword::w#3 print_sword::w#1 print_sword::w#2 print_sword::w#0 ] +Uplifting [print_byte] best 548433 combination reg byte x [ print_byte::b#2 print_byte::b#0 print_byte::b#1 ] reg byte a [ print_byte::$0 ] reg byte a [ print_byte::$2 ] +Uplifting [print_char] best 548418 combination reg byte a [ print_char::ch#4 print_char::ch#2 print_char::ch#3 ] +Uplifting [mul16u_error] best 548418 combination zp ZP_WORD:209 [ mul16u_error::a#0 ] zp ZP_WORD:211 [ mul16u_error::b#0 ] zp ZP_DWORD:213 [ mul16u_error::ms#0 ] zp ZP_DWORD:217 [ mul16u_error::mn#0 ] zp ZP_DWORD:221 [ mul16u_error::mf#0 ] +Uplifting [mul16s_error] best 548418 combination zp ZP_WORD:126 [ mul16s_error::a#0 ] zp ZP_WORD:128 [ mul16s_error::b#0 ] zp ZP_DWORD:130 [ mul16s_error::ms#0 ] zp ZP_DWORD:134 [ mul16s_error::mn#0 ] zp ZP_DWORD:138 [ mul16s_error::mf#0 ] +Uplifting [print_ln] best 548418 combination +Uplifting [main] best 548418 combination Attempting to uplift remaining variables inzp ZP_BYTE:79 [ mulf_init::x_2#3 mulf_init::x_2#2 mulf_init::x_2#1 ] -Uplifting [mulf_init] best 548398 combination zp ZP_BYTE:79 [ mulf_init::x_2#3 mulf_init::x_2#2 mulf_init::x_2#1 ] +Uplifting [mulf_init] best 548418 combination zp ZP_BYTE:79 [ mulf_init::x_2#3 mulf_init::x_2#2 mulf_init::x_2#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:2 [ mul16s_compare::i#12 mul16s_compare::i#1 ] -Uplifting [mul16s_compare] best 548398 combination zp ZP_BYTE:2 [ mul16s_compare::i#12 mul16s_compare::i#1 ] +Uplifting [mul16s_compare] best 548418 combination zp ZP_BYTE:2 [ mul16s_compare::i#12 mul16s_compare::i#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:61 [ mul16u_compare::i#12 mul16u_compare::i#1 ] -Uplifting [mul16u_compare] best 548398 combination zp ZP_BYTE:61 [ mul16u_compare::i#12 mul16u_compare::i#1 ] +Uplifting [mul16u_compare] best 548418 combination zp ZP_BYTE:61 [ mul16u_compare::i#12 mul16u_compare::i#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:82 [ mulf_init::x_255#2 mulf_init::x_255#1 ] Uplifting [mulf_init] best 548278 combination reg byte x [ mulf_init::x_255#2 mulf_init::x_255#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:87 [ mulf_init::dir#2 mulf_init::dir#3 ] diff --git a/src/test/ref/test-multiply-8bit.asm b/src/test/ref/test-multiply-8bit.asm index 047d13108..dbec0f85a 100644 --- a/src/test/ref/test-multiply-8bit.asm +++ b/src/test/ref/test-multiply-8bit.asm @@ -491,9 +491,11 @@ mul8u_compare: { b5: inc b lda b + cmp #0 bne b2 inc a lda a + cmp #0 bne b1 lda #mul8u_compare::@11] b11_from_b10: @@ -6955,6 +6960,7 @@ mulf_init: { sta _2 //SEG668 [311] if((byte~) mulf_init::$2!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto mulf_init::@2 -- vbuz1_neq_0_then_la1 lda _2 + cmp #0 bne b2_from_b1 jmp b5 //SEG669 mulf_init::@5 @@ -7063,6 +7069,7 @@ mulf_init: { sta x_255 //SEG699 [328] if((byte) mulf_init::x_255#1!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto mulf_init::@12 -- vbuz1_neq_0_then_la1 lda x_255 + cmp #0 bne b12_from_b3 //SEG700 [329] phi from mulf_init::@3 to mulf_init::@4 [phi:mulf_init::@3->mulf_init::@4] b4_from_b3: @@ -7527,65 +7534,65 @@ Uplift Scope [print_ln] Uplift Scope [main] Uplift Scope [mulf_init_asm] -Uplifting [muls8s] best 315458 combination zp ZP_WORD:31 [ muls8s::m#5 muls8s::return#0 muls8s::m#3 muls8s::m#1 muls8s::m#2 ] reg byte y [ muls8s::j#2 muls8s::j#1 ] reg byte y [ muls8s::i#2 muls8s::i#1 ] zp ZP_WORD:62 [ muls8s::return#2 ] reg byte x [ muls8s::b#0 ] zp ZP_BYTE:60 [ muls8s::a#0 ] -Uplifting [mul8u] best 307849 combination zp ZP_WORD:22 [ mul8u::res#2 mul8u::res#6 mul8u::res#1 ] zp ZP_WORD:24 [ mul8u::mb#2 mul8u::mb#0 mul8u::mb#1 ] reg byte a [ mul8u::$1 ] reg byte x [ mul8u::a#3 mul8u::a#6 mul8u::a#8 mul8u::a#2 mul8u::a#0 ] reg byte a [ mul8u::b#2 mul8u::b#3 mul8u::b#1 ] zp ZP_WORD:120 [ mul8u::return#3 ] zp ZP_WORD:88 [ mul8u::return#2 ] -Uplifting [muls8u] best 297549 combination zp ZP_WORD:38 [ muls8u::return#0 muls8u::m#3 muls8u::m#1 ] reg byte y [ muls8u::i#2 muls8u::i#1 ] zp ZP_WORD:110 [ muls8u::return#2 ] reg byte x [ muls8u::b#0 ] zp ZP_BYTE:108 [ muls8u::a#0 ] -Uplifting [mul8u_compare] best 296549 combination reg byte x [ mul8u_compare::ok#3 mul8u_compare::ok#4 ] zp ZP_BYTE:35 [ mul8u_compare::b#10 mul8u_compare::b#1 ] zp ZP_BYTE:34 [ mul8u_compare::a#7 mul8u_compare::a#1 ] zp ZP_WORD:122 [ mul8u_compare::mn#0 ] zp ZP_WORD:112 [ mul8u_compare::ms#0 ] zp ZP_WORD:118 [ mul8u_compare::mf#0 ] -Uplifting [mul8s_compare] best 295549 combination reg byte x [ mul8s_compare::ok#3 mul8s_compare::ok#4 ] zp ZP_BYTE:3 [ mul8s_compare::b#10 mul8s_compare::b#1 ] zp ZP_BYTE:2 [ mul8s_compare::a#7 mul8s_compare::a#1 ] zp ZP_WORD:76 [ mul8s_compare::mn#0 ] zp ZP_WORD:64 [ mul8s_compare::ms#0 ] zp ZP_WORD:70 [ mul8s_compare::mf#0 ] -Uplifting [mulf8u] best 294943 combination zp ZP_WORD:116 [ mulf8u::return#2 ] reg byte a [ mulf8u::a#0 ] reg byte x [ mulf8u::b#0 ] zp ZP_WORD:134 [ mulf8u::return#0 ] -Uplifting [mulf8s] best 294337 combination zp ZP_WORD:68 [ mulf8s::return#2 ] zp ZP_WORD:98 [ mulf8s::return#0 ] reg byte a [ mulf8s::a#0 ] reg byte x [ mulf8s::b#0 ] -Uplifting [mulf_init] best 294107 combination zp ZP_WORD:50 [ mulf_init::sqr#3 mulf_init::sqr#4 mulf_init::sqr#1 mulf_init::sqr#2 ] reg byte x [ mulf_init::c#2 mulf_init::c#1 ] zp ZP_BYTE:49 [ mulf_init::x_2#3 mulf_init::x_2#2 mulf_init::x_2#1 ] reg byte a [ mulf_init::$2 ] reg byte a [ mulf_init::$5 ] reg byte a [ mulf_init::$6 ] zp ZP_WORD:53 [ mulf_init::sqr2_lo#2 mulf_init::sqr2_lo#1 ] zp ZP_WORD:45 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_lo#1 ] zp ZP_BYTE:52 [ mulf_init::x_255#2 mulf_init::x_255#1 ] zp ZP_WORD:55 [ mulf_init::sqr2_hi#2 mulf_init::sqr2_hi#1 ] zp ZP_BYTE:57 [ mulf_init::dir#2 mulf_init::dir#3 ] zp ZP_WORD:47 [ mulf_init::sqr1_hi#2 mulf_init::sqr1_hi#1 ] +Uplifting [muls8s] best 318118 combination zp ZP_WORD:31 [ muls8s::m#5 muls8s::return#0 muls8s::m#3 muls8s::m#1 muls8s::m#2 ] reg byte y [ muls8s::j#2 muls8s::j#1 ] reg byte y [ muls8s::i#2 muls8s::i#1 ] zp ZP_WORD:62 [ muls8s::return#2 ] reg byte x [ muls8s::b#0 ] zp ZP_BYTE:60 [ muls8s::a#0 ] +Uplifting [mul8u] best 308509 combination zp ZP_WORD:22 [ mul8u::res#2 mul8u::res#6 mul8u::res#1 ] zp ZP_WORD:24 [ mul8u::mb#2 mul8u::mb#0 mul8u::mb#1 ] reg byte a [ mul8u::$1 ] reg byte x [ mul8u::a#3 mul8u::a#6 mul8u::a#8 mul8u::a#2 mul8u::a#0 ] reg byte a [ mul8u::b#2 mul8u::b#3 mul8u::b#1 ] zp ZP_WORD:120 [ mul8u::return#3 ] zp ZP_WORD:88 [ mul8u::return#2 ] +Uplifting [muls8u] best 298209 combination zp ZP_WORD:38 [ muls8u::return#0 muls8u::m#3 muls8u::m#1 ] reg byte y [ muls8u::i#2 muls8u::i#1 ] zp ZP_WORD:110 [ muls8u::return#2 ] reg byte x [ muls8u::b#0 ] zp ZP_BYTE:108 [ muls8u::a#0 ] +Uplifting [mul8u_compare] best 297009 combination reg byte x [ mul8u_compare::ok#3 mul8u_compare::ok#4 ] zp ZP_BYTE:35 [ mul8u_compare::b#10 mul8u_compare::b#1 ] zp ZP_BYTE:34 [ mul8u_compare::a#7 mul8u_compare::a#1 ] zp ZP_WORD:122 [ mul8u_compare::mn#0 ] zp ZP_WORD:112 [ mul8u_compare::ms#0 ] zp ZP_WORD:118 [ mul8u_compare::mf#0 ] +Uplifting [mul8s_compare] best 295809 combination reg byte x [ mul8s_compare::ok#3 mul8s_compare::ok#4 ] zp ZP_BYTE:3 [ mul8s_compare::b#10 mul8s_compare::b#1 ] zp ZP_BYTE:2 [ mul8s_compare::a#7 mul8s_compare::a#1 ] zp ZP_WORD:76 [ mul8s_compare::mn#0 ] zp ZP_WORD:64 [ mul8s_compare::ms#0 ] zp ZP_WORD:70 [ mul8s_compare::mf#0 ] +Uplifting [mulf8u] best 295203 combination zp ZP_WORD:116 [ mulf8u::return#2 ] reg byte a [ mulf8u::a#0 ] reg byte x [ mulf8u::b#0 ] zp ZP_WORD:134 [ mulf8u::return#0 ] +Uplifting [mulf8s] best 294597 combination zp ZP_WORD:68 [ mulf8s::return#2 ] zp ZP_WORD:98 [ mulf8s::return#0 ] reg byte a [ mulf8s::a#0 ] reg byte x [ mulf8s::b#0 ] +Uplifting [mulf_init] best 294347 combination zp ZP_WORD:50 [ mulf_init::sqr#3 mulf_init::sqr#4 mulf_init::sqr#1 mulf_init::sqr#2 ] reg byte x [ mulf_init::c#2 mulf_init::c#1 ] zp ZP_BYTE:49 [ mulf_init::x_2#3 mulf_init::x_2#2 mulf_init::x_2#1 ] reg byte a [ mulf_init::$2 ] reg byte a [ mulf_init::$5 ] reg byte a [ mulf_init::$6 ] zp ZP_WORD:53 [ mulf_init::sqr2_lo#2 mulf_init::sqr2_lo#1 ] zp ZP_WORD:45 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_lo#1 ] zp ZP_BYTE:52 [ mulf_init::x_255#2 mulf_init::x_255#1 ] zp ZP_WORD:55 [ mulf_init::sqr2_hi#2 mulf_init::sqr2_hi#1 ] zp ZP_BYTE:57 [ mulf_init::dir#2 mulf_init::dir#3 ] zp ZP_WORD:47 [ mulf_init::sqr1_hi#2 mulf_init::sqr1_hi#1 ] Limited combination testing to 100 combinations of 1024 possible. -Uplifting [mul8s] best 293794 combination zp ZP_WORD:74 [ mul8s::return#2 ] zp ZP_WORD:18 [ mul8s::m#4 mul8s::m#5 mul8s::m#1 mul8s::m#0 mul8s::m#2 ] reg byte y [ mul8s::b#0 ] zp ZP_BYTE:72 [ mul8s::a#0 ] reg byte a [ mul8s::$6 ] reg byte a [ mul8s::$16 ] zp ZP_BYTE:92 [ mul8s::$12 ] zp ZP_BYTE:93 [ mul8s::$17 ] +Uplifting [mul8s] best 294034 combination zp ZP_WORD:74 [ mul8s::return#2 ] zp ZP_WORD:18 [ mul8s::m#4 mul8s::m#5 mul8s::m#1 mul8s::m#0 mul8s::m#2 ] reg byte y [ mul8s::b#0 ] zp ZP_BYTE:72 [ mul8s::a#0 ] reg byte a [ mul8s::$6 ] reg byte a [ mul8s::$16 ] zp ZP_BYTE:92 [ mul8s::$12 ] zp ZP_BYTE:93 [ mul8s::$17 ] Limited combination testing to 100 combinations of 2304 possible. -Uplifting [] best 293794 combination zp ZP_WORD:15 [ print_char_cursor#84 print_char_cursor#140 print_char_cursor#139 print_char_cursor#134 print_char_cursor#152 print_char_cursor#192 print_char_cursor#193 print_char_cursor#133 print_char_cursor#132 print_char_cursor#18 print_char_cursor#31 print_char_cursor#1 print_char_cursor#225 ] zp ZP_WORD:5 [ print_line_cursor#23 print_line_cursor#45 print_line_cursor#1 print_line_cursor#10 ] -Uplifting [mulf_tables_cmp] best 293794 combination zp ZP_WORD:40 [ mulf_tables_cmp::kc_sqr#2 mulf_tables_cmp::kc_sqr#1 ] zp ZP_WORD:42 [ mulf_tables_cmp::asm_sqr#2 mulf_tables_cmp::asm_sqr#1 ] -Uplifting [print_str] best 293794 combination zp ZP_WORD:7 [ print_str::str#16 print_str::str#18 print_str::str#0 ] -Uplifting [mulf8s_prepared] best 293770 combination zp ZP_WORD:26 [ mulf8s_prepared::m#4 mulf8s_prepared::m#5 mulf8s_prepared::m#1 mulf8s_prepared::m#0 mulf8s_prepared::m#2 ] zp ZP_WORD:96 [ mulf8s_prepared::return#2 ] reg byte a [ mulf8s_prepared::$5 ] reg byte a [ mulf8s_prepared::$15 ] reg byte a [ mulf8s_prepared::$11 ] reg byte a [ mulf8s_prepared::$16 ] zp ZP_BYTE:95 [ mulf8s_prepared::b#0 ] +Uplifting [] best 294034 combination zp ZP_WORD:15 [ print_char_cursor#84 print_char_cursor#140 print_char_cursor#139 print_char_cursor#134 print_char_cursor#152 print_char_cursor#192 print_char_cursor#193 print_char_cursor#133 print_char_cursor#132 print_char_cursor#18 print_char_cursor#31 print_char_cursor#1 print_char_cursor#225 ] zp ZP_WORD:5 [ print_line_cursor#23 print_line_cursor#45 print_line_cursor#1 print_line_cursor#10 ] +Uplifting [mulf_tables_cmp] best 294034 combination zp ZP_WORD:40 [ mulf_tables_cmp::kc_sqr#2 mulf_tables_cmp::kc_sqr#1 ] zp ZP_WORD:42 [ mulf_tables_cmp::asm_sqr#2 mulf_tables_cmp::asm_sqr#1 ] +Uplifting [print_str] best 294034 combination zp ZP_WORD:7 [ print_str::str#16 print_str::str#18 print_str::str#0 ] +Uplifting [mulf8s_prepared] best 294010 combination zp ZP_WORD:26 [ mulf8s_prepared::m#4 mulf8s_prepared::m#5 mulf8s_prepared::m#1 mulf8s_prepared::m#0 mulf8s_prepared::m#2 ] zp ZP_WORD:96 [ mulf8s_prepared::return#2 ] reg byte a [ mulf8s_prepared::$5 ] reg byte a [ mulf8s_prepared::$15 ] reg byte a [ mulf8s_prepared::$11 ] reg byte a [ mulf8s_prepared::$16 ] zp ZP_BYTE:95 [ mulf8s_prepared::b#0 ] Limited combination testing to 100 combinations of 512 possible. -Uplifting [print_cls] best 293770 combination zp ZP_WORD:58 [ print_cls::sc#2 print_cls::sc#1 ] -Uplifting [print_byte] best 293749 combination reg byte x [ print_byte::b#5 print_byte::b#3 print_byte::b#4 print_byte::b#9 print_byte::b#1 print_byte::b#2 ] reg byte a [ print_byte::$0 ] reg byte a [ print_byte::$2 ] -Uplifting [print_word] best 293749 combination zp ZP_WORD:11 [ print_word::w#6 print_word::w#3 print_word::w#4 print_word::w#5 print_word::w#11 print_word::w#12 print_word::w#13 ] -Uplifting [mulf8u_prepared] best 293740 combination reg byte x [ mulf8u_prepared::b#2 mulf8u_prepared::b#3 mulf8u_prepared::b#0 ] zp ZP_WORD:100 [ mulf8u_prepared::return#3 ] zp ZP_WORD:132 [ mulf8u_prepared::return#2 ] zp ZP_WORD:106 [ mulf8u_prepared::return#0 ] -Uplifting [print_sword] best 293740 combination zp ZP_WORD:9 [ print_sword::w#5 print_sword::w#4 print_sword::w#1 print_sword::w#2 print_sword::w#3 print_sword::w#0 ] -Uplifting [print_sbyte] best 293728 combination reg byte x [ print_sbyte::b#5 print_sbyte::b#0 print_sbyte::b#3 print_sbyte::b#1 print_sbyte::b#2 ] -Uplifting [print_char] best 293710 combination reg byte a [ print_char::ch#5 print_char::ch#3 print_char::ch#4 ] -Uplifting [mulf8u_prepare] best 293701 combination reg byte a [ mulf8u_prepare::a#2 mulf8u_prepare::a#3 mulf8u_prepare::a#0 ] -Uplifting [mul8u_error] best 293695 combination reg byte x [ mul8u_error::a#0 ] zp ZP_BYTE:125 [ mul8u_error::b#0 ] zp ZP_WORD:126 [ mul8u_error::ms#0 ] zp ZP_WORD:128 [ mul8u_error::mn#0 ] zp ZP_WORD:130 [ mul8u_error::mf#0 ] -Uplifting [mul8s_error] best 293689 combination reg byte x [ mul8s_error::a#0 ] zp ZP_BYTE:79 [ mul8s_error::b#0 ] zp ZP_WORD:80 [ mul8s_error::ms#0 ] zp ZP_WORD:82 [ mul8s_error::mn#0 ] zp ZP_WORD:84 [ mul8s_error::mf#0 ] -Uplifting [print_ln] best 293689 combination -Uplifting [main] best 293689 combination -Uplifting [mulf_init_asm] best 293689 combination +Uplifting [print_cls] best 294010 combination zp ZP_WORD:58 [ print_cls::sc#2 print_cls::sc#1 ] +Uplifting [print_byte] best 293989 combination reg byte x [ print_byte::b#5 print_byte::b#3 print_byte::b#4 print_byte::b#9 print_byte::b#1 print_byte::b#2 ] reg byte a [ print_byte::$0 ] reg byte a [ print_byte::$2 ] +Uplifting [print_word] best 293989 combination zp ZP_WORD:11 [ print_word::w#6 print_word::w#3 print_word::w#4 print_word::w#5 print_word::w#11 print_word::w#12 print_word::w#13 ] +Uplifting [mulf8u_prepared] best 293980 combination reg byte x [ mulf8u_prepared::b#2 mulf8u_prepared::b#3 mulf8u_prepared::b#0 ] zp ZP_WORD:100 [ mulf8u_prepared::return#3 ] zp ZP_WORD:132 [ mulf8u_prepared::return#2 ] zp ZP_WORD:106 [ mulf8u_prepared::return#0 ] +Uplifting [print_sword] best 293980 combination zp ZP_WORD:9 [ print_sword::w#5 print_sword::w#4 print_sword::w#1 print_sword::w#2 print_sword::w#3 print_sword::w#0 ] +Uplifting [print_sbyte] best 293968 combination reg byte x [ print_sbyte::b#5 print_sbyte::b#0 print_sbyte::b#3 print_sbyte::b#1 print_sbyte::b#2 ] +Uplifting [print_char] best 293950 combination reg byte a [ print_char::ch#5 print_char::ch#3 print_char::ch#4 ] +Uplifting [mulf8u_prepare] best 293941 combination reg byte a [ mulf8u_prepare::a#2 mulf8u_prepare::a#3 mulf8u_prepare::a#0 ] +Uplifting [mul8u_error] best 293935 combination reg byte x [ mul8u_error::a#0 ] zp ZP_BYTE:125 [ mul8u_error::b#0 ] zp ZP_WORD:126 [ mul8u_error::ms#0 ] zp ZP_WORD:128 [ mul8u_error::mn#0 ] zp ZP_WORD:130 [ mul8u_error::mf#0 ] +Uplifting [mul8s_error] best 293929 combination reg byte x [ mul8s_error::a#0 ] zp ZP_BYTE:79 [ mul8s_error::b#0 ] zp ZP_WORD:80 [ mul8s_error::ms#0 ] zp ZP_WORD:82 [ mul8s_error::mn#0 ] zp ZP_WORD:84 [ mul8s_error::mf#0 ] +Uplifting [print_ln] best 293929 combination +Uplifting [main] best 293929 combination +Uplifting [mulf_init_asm] best 293929 combination Attempting to uplift remaining variables inzp ZP_BYTE:60 [ muls8s::a#0 ] -Uplifting [muls8s] best 293689 combination zp ZP_BYTE:60 [ muls8s::a#0 ] +Uplifting [muls8s] best 293929 combination zp ZP_BYTE:60 [ muls8s::a#0 ] Attempting to uplift remaining variables inzp ZP_BYTE:3 [ mul8s_compare::b#10 mul8s_compare::b#1 ] -Uplifting [mul8s_compare] best 293689 combination zp ZP_BYTE:3 [ mul8s_compare::b#10 mul8s_compare::b#1 ] +Uplifting [mul8s_compare] best 293929 combination zp ZP_BYTE:3 [ mul8s_compare::b#10 mul8s_compare::b#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:35 [ mul8u_compare::b#10 mul8u_compare::b#1 ] -Uplifting [mul8u_compare] best 293689 combination zp ZP_BYTE:35 [ mul8u_compare::b#10 mul8u_compare::b#1 ] +Uplifting [mul8u_compare] best 293929 combination zp ZP_BYTE:35 [ mul8u_compare::b#10 mul8u_compare::b#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:108 [ muls8u::a#0 ] -Uplifting [muls8u] best 293689 combination zp ZP_BYTE:108 [ muls8u::a#0 ] +Uplifting [muls8u] best 293929 combination zp ZP_BYTE:108 [ muls8u::a#0 ] Attempting to uplift remaining variables inzp ZP_BYTE:2 [ mul8s_compare::a#7 mul8s_compare::a#1 ] -Uplifting [mul8s_compare] best 293689 combination zp ZP_BYTE:2 [ mul8s_compare::a#7 mul8s_compare::a#1 ] +Uplifting [mul8s_compare] best 293929 combination zp ZP_BYTE:2 [ mul8s_compare::a#7 mul8s_compare::a#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:34 [ mul8u_compare::a#7 mul8u_compare::a#1 ] -Uplifting [mul8u_compare] best 293689 combination zp ZP_BYTE:34 [ mul8u_compare::a#7 mul8u_compare::a#1 ] +Uplifting [mul8u_compare] best 293929 combination zp ZP_BYTE:34 [ mul8u_compare::a#7 mul8u_compare::a#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:49 [ mulf_init::x_2#3 mulf_init::x_2#2 mulf_init::x_2#1 ] -Uplifting [mulf_init] best 293689 combination zp ZP_BYTE:49 [ mulf_init::x_2#3 mulf_init::x_2#2 mulf_init::x_2#1 ] +Uplifting [mulf_init] best 293929 combination zp ZP_BYTE:49 [ mulf_init::x_2#3 mulf_init::x_2#2 mulf_init::x_2#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:52 [ mulf_init::x_255#2 mulf_init::x_255#1 ] -Uplifting [mulf_init] best 293569 combination reg byte x [ mulf_init::x_255#2 mulf_init::x_255#1 ] +Uplifting [mulf_init] best 293789 combination reg byte x [ mulf_init::x_255#2 mulf_init::x_255#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:57 [ mulf_init::dir#2 mulf_init::dir#3 ] -Uplifting [mulf_init] best 293569 combination zp ZP_BYTE:57 [ mulf_init::dir#2 mulf_init::dir#3 ] +Uplifting [mulf_init] best 293789 combination zp ZP_BYTE:57 [ mulf_init::dir#2 mulf_init::dir#3 ] Attempting to uplift remaining variables inzp ZP_BYTE:72 [ mul8s::a#0 ] -Uplifting [mul8s] best 293569 combination zp ZP_BYTE:72 [ mul8s::a#0 ] +Uplifting [mul8s] best 293789 combination zp ZP_BYTE:72 [ mul8s::a#0 ] Attempting to uplift remaining variables inzp ZP_BYTE:92 [ mul8s::$12 ] -Uplifting [mul8s] best 293563 combination reg byte a [ mul8s::$12 ] +Uplifting [mul8s] best 293783 combination reg byte a [ mul8s::$12 ] Attempting to uplift remaining variables inzp ZP_BYTE:93 [ mul8s::$17 ] -Uplifting [mul8s] best 293557 combination reg byte a [ mul8s::$17 ] +Uplifting [mul8s] best 293777 combination reg byte a [ mul8s::$17 ] Attempting to uplift remaining variables inzp ZP_BYTE:79 [ mul8s_error::b#0 ] -Uplifting [mul8s_error] best 293557 combination zp ZP_BYTE:79 [ mul8s_error::b#0 ] +Uplifting [mul8s_error] best 293777 combination zp ZP_BYTE:79 [ mul8s_error::b#0 ] Attempting to uplift remaining variables inzp ZP_BYTE:95 [ mulf8s_prepared::b#0 ] -Uplifting [mulf8s_prepared] best 293557 combination zp ZP_BYTE:95 [ mulf8s_prepared::b#0 ] +Uplifting [mulf8s_prepared] best 293777 combination zp ZP_BYTE:95 [ mulf8s_prepared::b#0 ] Attempting to uplift remaining variables inzp ZP_BYTE:125 [ mul8u_error::b#0 ] -Uplifting [mul8u_error] best 293557 combination zp ZP_BYTE:125 [ mul8u_error::b#0 ] +Uplifting [mul8u_error] best 293777 combination zp ZP_BYTE:125 [ mul8u_error::b#0 ] Coalescing zero page register with common assignment [ zp ZP_BYTE:2 [ mul8s_compare::a#7 mul8s_compare::a#1 ] ] with [ zp ZP_BYTE:60 [ muls8s::a#0 ] ] - score: 1 Coalescing zero page register with common assignment [ zp ZP_BYTE:2 [ mul8s_compare::a#7 mul8s_compare::a#1 muls8s::a#0 ] ] with [ zp ZP_BYTE:72 [ mul8s::a#0 ] ] - score: 1 Coalescing zero page register with common assignment [ zp ZP_BYTE:3 [ mul8s_compare::b#10 mul8s_compare::b#1 ] ] with [ zp ZP_BYTE:79 [ mul8s_error::b#0 ] ] - score: 1 @@ -8896,6 +8903,7 @@ mul8u_compare: { inc b //SEG465 [235] if((byte) mul8u_compare::b#1!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto mul8u_compare::@2 -- vbuz1_neq_0_then_la1 lda b + cmp #0 bne b2_from_b5 jmp b10 //SEG466 mul8u_compare::@10 @@ -8904,6 +8912,7 @@ mul8u_compare: { inc a //SEG468 [237] if((byte) mul8u_compare::a#1!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto mul8u_compare::@1 -- vbuz1_neq_0_then_la1 lda a + cmp #0 bne b1_from_b10 //SEG469 [238] phi from mul8u_compare::@10 to mul8u_compare::@11 [phi:mul8u_compare::@10->mul8u_compare::@11] b11_from_b10: @@ -10643,7 +10652,7 @@ reg byte a [ mulf_init::$6 ] FINAL ASSEMBLER -Score: 224680 +Score: 224900 //SEG0 Basic Upstart .pc = $801 "Basic" @@ -11638,12 +11647,14 @@ mul8u_compare: { inc b //SEG465 [235] if((byte) mul8u_compare::b#1!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto mul8u_compare::@2 -- vbuz1_neq_0_then_la1 lda b + cmp #0 bne b2 //SEG466 mul8u_compare::@10 //SEG467 [236] (byte) mul8u_compare::a#1 ← ++ (byte) mul8u_compare::a#7 -- vbuz1=_inc_vbuz1 inc a //SEG468 [237] if((byte) mul8u_compare::a#1!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto mul8u_compare::@1 -- vbuz1_neq_0_then_la1 lda a + cmp #0 bne b1 //SEG469 [238] phi from mul8u_compare::@10 to mul8u_compare::@11 [phi:mul8u_compare::@10->mul8u_compare::@11] //SEG470 mul8u_compare::@11