diff --git a/src/test/kc/examples/tetris/nes-screen.gpx b/src/test/kc/examples/tetris/nes-screen.gpx index 764209fa9..751de908b 100644 Binary files a/src/test/kc/examples/tetris/nes-screen.gpx and b/src/test/kc/examples/tetris/nes-screen.gpx differ diff --git a/src/test/kc/examples/tetris/nes-screen.imap b/src/test/kc/examples/tetris/nes-screen.imap index 08b52ba8a..e471fea18 100644 Binary files a/src/test/kc/examples/tetris/nes-screen.imap and b/src/test/kc/examples/tetris/nes-screen.imap differ diff --git a/src/test/kc/examples/tetris/nes-screen.iscr b/src/test/kc/examples/tetris/nes-screen.iscr index c4dbe4062..6305f3dec 100644 Binary files a/src/test/kc/examples/tetris/nes-screen.iscr and b/src/test/kc/examples/tetris/nes-screen.iscr differ diff --git a/src/test/kc/examples/tetris/tetris-data.kc b/src/test/kc/examples/tetris/tetris-data.kc index 0cfc0ef96..3c965f7c0 100644 --- a/src/test/kc/examples/tetris/tetris-data.kc +++ b/src/test/kc/examples/tetris/tetris-data.kc @@ -18,11 +18,11 @@ const byte PLAYFIELD_COLS = 10; byte[PLAYFIELD_LINES*PLAYFIELD_COLS] playfield; // Pointer to the current piece in the current orientation. Updated each time current_orientation is updated. -byte* current_piece_gfx = 0; +byte* current_piece_gfx; // The char of the current piece -byte current_piece_char = 0; +byte current_piece_char; // Position of top left corner of current moving piece on the playfield -byte current_xpos = 3; -byte current_ypos = 0; \ No newline at end of file +byte current_xpos; +byte current_ypos; \ No newline at end of file diff --git a/src/test/kc/examples/tetris/tetris-pieces.kc b/src/test/kc/examples/tetris/tetris-pieces.kc index 3e3e9101c..a61ee776f 100644 --- a/src/test/kc/examples/tetris/tetris-pieces.kc +++ b/src/test/kc/examples/tetris/tetris-pieces.kc @@ -171,7 +171,7 @@ align($40) byte[4*4*4] PIECE_I = { word[] PIECES = { (word)PIECE_T, (word)PIECE_S, (word)PIECE_Z, (word)PIECE_J, (word)PIECE_O, (word)PIECE_I, (word)PIECE_L }; // The chars to use for the different pieces -byte[] PIECES_CHARS = { $57, $58, $98, $58, $57, $57, $98 }; +byte[] PIECES_CHARS = { $58, $59, $99, $59, $58, $58, $99 }; // The initial X/Y for each piece byte[] PIECES_START_X = { 4, 4, 4, 4, 4, 3, 4}; byte[] PIECES_START_Y = { 2, 1, 1, 1, 2, 0, 1}; \ No newline at end of file diff --git a/src/test/ref/examples/tetris/tetris.asm b/src/test/ref/examples/tetris/tetris.asm index 5b3ffb6e8..16dca18a7 100644 --- a/src/test/ref/examples/tetris/tetris.asm +++ b/src/test/ref/examples/tetris/tetris.asm @@ -82,21 +82,21 @@ .label irq_cnt = $17 .label current_movedown_counter = 2 .label current_ypos = $b - .label current_xpos = $11 - .label current_orientation = $e .label current_piece_gfx = $f - .label current_piece = $c + .label current_xpos = $11 .label current_piece_char = $12 + .label current_orientation = $e + .label current_piece = $c .label current_piece_12 = 4 - .label current_xpos_48 = 3 - .label current_piece_gfx_53 = 4 - .label current_piece_char_63 = 6 - .label current_xpos_105 = 3 - .label current_xpos_106 = 3 - .label current_piece_gfx_95 = 4 - .label current_piece_gfx_96 = 4 - .label current_piece_char_83 = 6 - .label current_piece_char_84 = 6 + .label current_xpos_47 = 3 + .label current_piece_gfx_52 = 4 + .label current_piece_char_62 = 6 + .label current_xpos_109 = 3 + .label current_xpos_110 = 3 + .label current_piece_gfx_99 = 4 + .label current_piece_gfx_100 = 4 + .label current_piece_char_87 = 6 + .label current_piece_char_88 = 6 .label current_piece_73 = 4 .label current_piece_74 = 4 .label current_piece_75 = 4 @@ -124,13 +124,13 @@ main: { jsr render_playfield ldx current_ypos lda current_xpos - sta current_xpos_105 + sta current_xpos_109 lda current_piece_gfx - sta current_piece_gfx_95 + sta current_piece_gfx_99 lda current_piece_gfx+1 - sta current_piece_gfx_95+1 + sta current_piece_gfx_99+1 lda current_piece_char - sta current_piece_char_83 + sta current_piece_char_87 jsr render_current ldy play_spawn_current._3 lda PIECES,y @@ -172,13 +172,13 @@ main: { jsr render_playfield ldx current_ypos lda current_xpos - sta current_xpos_106 + sta current_xpos_110 lda current_piece_gfx - sta current_piece_gfx_96 + sta current_piece_gfx_100 lda current_piece_gfx+1 - sta current_piece_gfx_96+1 + sta current_piece_gfx_100+1 lda current_piece_char - sta current_piece_char_84 + sta current_piece_char_88 jsr render_current b10: dec BORDERCOL @@ -228,19 +228,19 @@ render_current: { sta screen_line lda screen_lines+1,y sta screen_line+1 - lda current_xpos_48 + lda current_xpos_47 sta xpos ldx #0 b4: ldy i - lda (current_piece_gfx_53),y + lda (current_piece_gfx_52),y inc i cmp #0 beq b5 lda xpos cmp #PLAYFIELD_COLS bcs b5 - lda current_piece_char_63 + lda current_piece_char_62 ldy xpos sta (screen_line),y b5: @@ -1172,7 +1172,7 @@ irq: { PIECE_O: .byte 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .align $40 PIECE_I: .byte 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0 - PIECES_CHARS: .byte $57, $58, $98, $58, $57, $57, $98 + PIECES_CHARS: .byte $58, $59, $99, $59, $58, $58, $99 PIECES_START_X: .byte 4, 4, 4, 4, 4, 3, 4 PIECES_START_Y: .byte 2, 1, 1, 1, 2, 0, 1 screen_lines: .fill 2*PLAYFIELD_LINES, 0 diff --git a/src/test/ref/examples/tetris/tetris.cfg b/src/test/ref/examples/tetris/tetris.cfg index c2a679b9b..487367c92 100644 --- a/src/test/ref/examples/tetris/tetris.cfg +++ b/src/test/ref/examples/tetris/tetris.cfg @@ -68,20 +68,20 @@ main::@26: scope:[main] from main::@25 [25] call render_playfield to:main::@27 main::@27: scope:[main] from main::@26 - [26] (byte~) current_ypos#79 ← (byte) current_ypos#19 - [27] (byte~) current_xpos#105 ← (byte) current_xpos#24 - [28] (byte*~) current_piece_gfx#95 ← (byte*) current_piece_gfx#17 - [29] (byte~) current_piece_char#83 ← (byte) current_piece_char#13 + [26] (byte~) current_ypos#83 ← (byte) current_ypos#18 + [27] (byte~) current_xpos#109 ← (byte) current_xpos#23 + [28] (byte*~) current_piece_gfx#99 ← (byte*) current_piece_gfx#16 + [29] (byte~) current_piece_char#87 ← (byte) current_piece_char#12 [30] call render_current [31] (byte*~) current_piece#72 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) to:main::@1 main::@1: scope:[main] from main::@10 main::@27 [32] (byte) current_movedown_counter#12 ← phi( main::@10/(byte) current_movedown_counter#10 main::@27/(byte/signed byte/word/signed word/dword/signed dword) 0 ) [32] (byte) keyboard_events_size#19 ← phi( main::@10/(byte) keyboard_events_size#16 main::@27/(byte/signed byte/word/signed word/dword/signed dword) 0 ) - [32] (byte) current_piece_char#16 ← phi( main::@10/(byte) current_piece_char#11 main::@27/(byte) current_piece_char#13 ) - [32] (byte) current_ypos#22 ← phi( main::@10/(byte) current_ypos#14 main::@27/(byte) current_ypos#19 ) - [32] (byte) current_xpos#11 ← phi( main::@10/(byte) current_xpos#20 main::@27/(byte) current_xpos#24 ) - [32] (byte*) current_piece_gfx#10 ← phi( main::@10/(byte*) current_piece_gfx#15 main::@27/(byte*) current_piece_gfx#17 ) + [32] (byte) current_piece_char#15 ← phi( main::@10/(byte) current_piece_char#1 main::@27/(byte) current_piece_char#12 ) + [32] (byte) current_ypos#21 ← phi( main::@10/(byte) current_ypos#13 main::@27/(byte) current_ypos#18 ) + [32] (byte) current_xpos#10 ← phi( main::@10/(byte) current_xpos#19 main::@27/(byte) current_xpos#23 ) + [32] (byte*) current_piece_gfx#20 ← phi( main::@10/(byte*) current_piece_gfx#14 main::@27/(byte*) current_piece_gfx#16 ) [32] (byte) current_orientation#10 ← phi( main::@10/(byte) current_orientation#19 main::@27/(byte/signed byte/word/signed word/dword/signed dword) 0 ) [32] (byte*) current_piece#16 ← phi( main::@10/(byte*) current_piece#10 main::@27/(byte*~) current_piece#72 ) to:main::@4 @@ -130,21 +130,21 @@ main::@19: scope:[main] from main::@33 [58] call render_playfield to:main::@34 main::@34: scope:[main] from main::@19 - [59] (byte~) current_ypos#80 ← (byte) current_ypos#14 - [60] (byte~) current_xpos#106 ← (byte) current_xpos#20 - [61] (byte*~) current_piece_gfx#96 ← (byte*) current_piece_gfx#15 - [62] (byte~) current_piece_char#84 ← (byte) current_piece_char#11 + [59] (byte~) current_ypos#84 ← (byte) current_ypos#13 + [60] (byte~) current_xpos#110 ← (byte) current_xpos#19 + [61] (byte*~) current_piece_gfx#100 ← (byte*) current_piece_gfx#14 + [62] (byte~) current_piece_char#88 ← (byte) current_piece_char#1 [63] call render_current to:main::@10 main::@10: scope:[main] from main::@33 main::@34 [64] *((const byte*) BORDERCOL#0) ← -- *((const byte*) BORDERCOL#0) to:main::@1 render_current: scope:[render_current] from main::@27 main::@34 - [65] (byte) current_piece_char#63 ← phi( main::@27/(byte~) current_piece_char#83 main::@34/(byte~) current_piece_char#84 ) - [65] (byte*) current_piece_gfx#53 ← phi( main::@27/(byte*~) current_piece_gfx#95 main::@34/(byte*~) current_piece_gfx#96 ) - [65] (byte) current_xpos#48 ← phi( main::@27/(byte~) current_xpos#105 main::@34/(byte~) current_xpos#106 ) - [65] (byte) current_ypos#10 ← phi( main::@27/(byte~) current_ypos#79 main::@34/(byte~) current_ypos#80 ) - [66] (byte) render_current::ypos2#0 ← (byte) current_ypos#10 << (byte/signed byte/word/signed word/dword/signed dword) 1 + [65] (byte) current_piece_char#62 ← phi( main::@27/(byte~) current_piece_char#87 main::@34/(byte~) current_piece_char#88 ) + [65] (byte*) current_piece_gfx#52 ← phi( main::@27/(byte*~) current_piece_gfx#99 main::@34/(byte*~) current_piece_gfx#100 ) + [65] (byte) current_xpos#47 ← phi( main::@27/(byte~) current_xpos#109 main::@34/(byte~) current_xpos#110 ) + [65] (byte) current_ypos#9 ← phi( main::@27/(byte~) current_ypos#83 main::@34/(byte~) current_ypos#84 ) + [66] (byte) render_current::ypos2#0 ← (byte) current_ypos#9 << (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::@3 [67] (byte) render_current::l#4 ← phi( render_current/(byte/signed byte/word/signed word/dword/signed dword) 0 render_current::@3/(byte) render_current::l#1 ) @@ -169,13 +169,13 @@ render_current::@13: scope:[render_current] from render_current::@1 to:render_current::@7 render_current::@2: scope:[render_current] from render_current::@13 [76] (byte*) render_current::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) screen_lines#0 + (byte) render_current::ypos2#2) - [77] (byte) render_current::xpos#0 ← (byte) current_xpos#48 + [77] (byte) render_current::xpos#0 ← (byte) current_xpos#47 to:render_current::@4 render_current::@4: scope:[render_current] from render_current::@2 render_current::@5 [78] (byte) render_current::c#2 ← phi( render_current::@2/(byte/signed byte/word/signed word/dword/signed dword) 0 render_current::@5/(byte) render_current::c#1 ) [78] (byte) render_current::xpos#2 ← phi( render_current::@2/(byte) render_current::xpos#0 render_current::@5/(byte) render_current::xpos#1 ) [78] (byte) render_current::i#4 ← phi( render_current::@2/(byte) render_current::i#3 render_current::@5/(byte) render_current::i#10 ) - [79] (byte) render_current::current_cell#0 ← *((byte*) current_piece_gfx#53 + (byte) render_current::i#4) + [79] (byte) render_current::current_cell#0 ← *((byte*) current_piece_gfx#52 + (byte) render_current::i#4) [80] (byte) render_current::i#10 ← ++ (byte) render_current::i#4 [81] if((byte) render_current::current_cell#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto render_current::@5 to:render_current::@9 @@ -183,7 +183,7 @@ render_current::@9: scope:[render_current] from render_current::@4 [82] if((byte) render_current::xpos#2>=(const byte) PLAYFIELD_COLS#0) goto render_current::@5 to:render_current::@10 render_current::@10: scope:[render_current] from render_current::@9 - [83] *((byte*) render_current::screen_line#0 + (byte) render_current::xpos#2) ← (byte) current_piece_char#63 + [83] *((byte*) render_current::screen_line#0 + (byte) render_current::xpos#2) ← (byte) current_piece_char#62 to:render_current::@5 render_current::@5: scope:[render_current] from render_current::@10 render_current::@4 render_current::@9 [84] (byte) render_current::xpos#1 ← ++ (byte) render_current::xpos#2 @@ -223,7 +223,7 @@ play_move_rotate::@6: scope:[play_move_rotate] from play_move_rotate [101] 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 - [102] (byte*) current_piece_gfx#15 ← phi( play_move_rotate::@11/(byte*) current_piece_gfx#4 play_move_rotate::@14/(byte*) current_piece_gfx#14 play_move_rotate::@6/(byte*) current_piece_gfx#14 ) + [102] (byte*) current_piece_gfx#14 ← phi( play_move_rotate::@11/(byte*) current_piece_gfx#3 play_move_rotate::@14/(byte*) current_piece_gfx#1 play_move_rotate::@6/(byte*) current_piece_gfx#1 ) [102] (byte) current_orientation#19 ← phi( play_move_rotate::@11/(byte) current_orientation#4 play_move_rotate::@14/(byte) current_orientation#14 play_move_rotate::@6/(byte) current_orientation#14 ) [102] (byte) play_move_rotate::return#1 ← 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 ) [103] return @@ -234,8 +234,8 @@ play_move_rotate::@2: scope:[play_move_rotate] from play_move_rotate::@6 to:play_move_rotate::@4 play_move_rotate::@4: scope:[play_move_rotate] from play_move_rotate::@1 play_move_rotate::@2 [106] (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 ) - [107] (byte) play_collision::xpos#3 ← (byte) current_xpos#20 - [108] (byte) play_collision::ypos#3 ← (byte) current_ypos#14 + [107] (byte) play_collision::xpos#3 ← (byte) current_xpos#19 + [108] (byte) play_collision::ypos#3 ← (byte) current_ypos#13 [109] (byte) play_collision::orientation#3 ← (byte) play_move_rotate::orientation#3 [110] (byte*~) current_piece#76 ← (byte*) current_piece#10 [111] call play_collision @@ -247,7 +247,7 @@ play_move_rotate::@14: scope:[play_move_rotate] from play_move_rotate::@4 to:play_move_rotate::@11 play_move_rotate::@11: scope:[play_move_rotate] from play_move_rotate::@14 [115] (byte) current_orientation#4 ← (byte) play_move_rotate::orientation#3 - [116] (byte*) current_piece_gfx#4 ← (byte*) current_piece#10 + (byte) current_orientation#4 + [116] (byte*) current_piece_gfx#3 ← (byte*) current_piece#10 + (byte) current_orientation#4 to:play_move_rotate::@return play_move_rotate::@1: scope:[play_move_rotate] from play_move_rotate [117] (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 ← (byte) current_orientation#14 - (byte/signed byte/word/signed word/dword/signed dword) 16 @@ -315,8 +315,8 @@ play_move_leftright::@6: scope:[play_move_leftright] from play_move_leftright [144] 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 - [145] (byte) play_collision::xpos#2 ← (byte) current_xpos#16 + (byte/signed byte/word/signed word/dword/signed dword) 1 - [146] (byte) play_collision::ypos#2 ← (byte) current_ypos#14 + [145] (byte) play_collision::xpos#2 ← (byte) current_xpos#1 + (byte/signed byte/word/signed word/dword/signed dword) 1 + [146] (byte) play_collision::ypos#2 ← (byte) current_ypos#13 [147] (byte) play_collision::orientation#2 ← (byte) current_orientation#14 [148] (byte*~) current_piece#75 ← (byte*) current_piece#10 [149] call play_collision @@ -327,16 +327,16 @@ play_move_leftright::@15: scope:[play_move_leftright] from play_move_leftright: [152] 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 - [153] (byte) current_xpos#3 ← ++ (byte) current_xpos#16 + [153] (byte) current_xpos#2 ← ++ (byte) current_xpos#1 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 - [154] (byte) current_xpos#20 ← phi( play_move_leftright::@11/(byte) current_xpos#5 play_move_leftright::@15/(byte) current_xpos#16 play_move_leftright::@8/(byte) current_xpos#3 play_move_leftright::@14/(byte) current_xpos#16 play_move_leftright::@6/(byte) current_xpos#16 ) + [154] (byte) current_xpos#19 ← phi( play_move_leftright::@11/(byte) current_xpos#4 play_move_leftright::@15/(byte) current_xpos#1 play_move_leftright::@8/(byte) current_xpos#2 play_move_leftright::@14/(byte) current_xpos#1 play_move_leftright::@6/(byte) current_xpos#1 ) [154] (byte) play_move_leftright::return#1 ← 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 ) [155] return to:@return play_move_leftright::@1: scope:[play_move_leftright] from play_move_leftright - [156] (byte) play_collision::xpos#1 ← (byte) current_xpos#16 - (byte/signed byte/word/signed word/dword/signed dword) 1 - [157] (byte) play_collision::ypos#1 ← (byte) current_ypos#14 + [156] (byte) play_collision::xpos#1 ← (byte) current_xpos#1 - (byte/signed byte/word/signed word/dword/signed dword) 1 + [157] (byte) play_collision::ypos#1 ← (byte) current_ypos#13 [158] (byte) play_collision::orientation#1 ← (byte) current_orientation#14 [159] (byte*~) current_piece#74 ← (byte*) current_piece#10 [160] call play_collision @@ -347,7 +347,7 @@ play_move_leftright::@14: scope:[play_move_leftright] from play_move_leftright: [163] 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 - [164] (byte) current_xpos#5 ← -- (byte) current_xpos#16 + [164] (byte) current_xpos#4 ← -- (byte) current_xpos#1 to:play_move_leftright::@return play_move_down: scope:[play_move_down] from main::@30 [165] (byte) current_movedown_counter#1 ← ++ (byte) current_movedown_counter#12 @@ -383,8 +383,8 @@ play_move_down::@4: scope:[play_move_down] from play_move_down::@11 play_move_d [179] 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 - [180] (byte) play_collision::ypos#0 ← (byte) current_ypos#22 + (byte/signed byte/word/signed word/dword/signed dword) 1 - [181] (byte) play_collision::xpos#0 ← (byte) current_xpos#11 + [180] (byte) play_collision::ypos#0 ← (byte) current_ypos#21 + (byte/signed byte/word/signed word/dword/signed dword) 1 + [181] (byte) play_collision::xpos#0 ← (byte) current_xpos#10 [182] (byte) play_collision::orientation#0 ← (byte) current_orientation#10 [183] (byte*~) current_piece#73 ← (byte*) current_piece#16 [184] call play_collision @@ -408,26 +408,26 @@ play_move_down::@20: scope:[play_move_down] from play_move_down::@19 [194] (byte*~) current_piece#77 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_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 - [195] (byte) current_piece_char#21 ← phi( play_move_down::@20/(byte) current_piece_char#13 play_move_down::@6/(byte) current_piece_char#16 ) - [195] (byte) current_xpos#34 ← phi( play_move_down::@20/(byte) current_xpos#24 play_move_down::@6/(byte) current_xpos#11 ) - [195] (byte*) current_piece_gfx#27 ← phi( play_move_down::@20/(byte*) current_piece_gfx#17 play_move_down::@6/(byte*) current_piece_gfx#10 ) + [195] (byte) current_piece_char#20 ← phi( play_move_down::@20/(byte) current_piece_char#12 play_move_down::@6/(byte) current_piece_char#15 ) + [195] (byte) current_xpos#33 ← phi( play_move_down::@20/(byte) current_xpos#23 play_move_down::@6/(byte) current_xpos#10 ) + [195] (byte*) current_piece_gfx#26 ← phi( play_move_down::@20/(byte*) current_piece_gfx#16 play_move_down::@6/(byte*) current_piece_gfx#20 ) [195] (byte) current_orientation#29 ← phi( play_move_down::@20/(byte/signed byte/word/signed word/dword/signed dword) 0 play_move_down::@6/(byte) current_orientation#10 ) [195] (byte*) current_piece#20 ← phi( play_move_down::@20/(byte*~) current_piece#77 play_move_down::@6/(byte*) current_piece#16 ) - [195] (byte) current_ypos#30 ← phi( play_move_down::@20/(byte) current_ypos#19 play_move_down::@6/(byte) current_ypos#1 ) + [195] (byte) current_ypos#29 ← phi( play_move_down::@20/(byte) current_ypos#18 play_move_down::@6/(byte) current_ypos#0 ) to:play_move_down::@return play_move_down::@return: scope:[play_move_down] from play_move_down::@4 play_move_down::@7 - [196] (byte) current_piece_char#11 ← phi( play_move_down::@4/(byte) current_piece_char#16 play_move_down::@7/(byte) current_piece_char#21 ) - [196] (byte) current_xpos#16 ← phi( play_move_down::@4/(byte) current_xpos#11 play_move_down::@7/(byte) current_xpos#34 ) - [196] (byte*) current_piece_gfx#14 ← phi( play_move_down::@4/(byte*) current_piece_gfx#10 play_move_down::@7/(byte*) current_piece_gfx#27 ) + [196] (byte) current_piece_char#1 ← phi( play_move_down::@4/(byte) current_piece_char#15 play_move_down::@7/(byte) current_piece_char#20 ) + [196] (byte) current_xpos#1 ← phi( play_move_down::@4/(byte) current_xpos#10 play_move_down::@7/(byte) current_xpos#33 ) + [196] (byte*) current_piece_gfx#1 ← phi( play_move_down::@4/(byte*) current_piece_gfx#20 play_move_down::@7/(byte*) current_piece_gfx#26 ) [196] (byte) current_orientation#14 ← phi( play_move_down::@4/(byte) current_orientation#10 play_move_down::@7/(byte) current_orientation#29 ) [196] (byte*) current_piece#10 ← phi( play_move_down::@4/(byte*) current_piece#16 play_move_down::@7/(byte*) current_piece#20 ) - [196] (byte) current_ypos#14 ← phi( play_move_down::@4/(byte) current_ypos#22 play_move_down::@7/(byte) current_ypos#30 ) + [196] (byte) current_ypos#13 ← phi( play_move_down::@4/(byte) current_ypos#21 play_move_down::@7/(byte) current_ypos#29 ) [196] (byte) current_movedown_counter#10 ← phi( play_move_down::@4/(byte) current_movedown_counter#1 play_move_down::@7/(byte/signed byte/word/signed word/dword/signed dword) 0 ) [196] (byte) play_move_down::return#2 ← 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 ) [197] return to:@return play_move_down::@6: scope:[play_move_down] from play_move_down::@18 - [198] (byte) current_ypos#1 ← ++ (byte) current_ypos#22 + [198] (byte) current_ypos#0 ← ++ (byte) current_ypos#21 to:play_move_down::@7 play_spawn_current: scope:[play_spawn_current] from main::@25 play_move_down::@20 [199] phi() @@ -438,10 +438,10 @@ play_spawn_current::@1: scope:[play_spawn_current] from play_spawn_current play to:play_spawn_current::@3 play_spawn_current::@3: scope:[play_spawn_current] from play_spawn_current::@1 [202] (byte~) play_spawn_current::$3 ← (byte) play_spawn_current::piece_idx#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 - [203] (byte*) current_piece_gfx#17 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) + (byte/signed byte/word/signed word/dword/signed dword) 0 - [204] (byte) current_xpos#24 ← *((const byte[]) PIECES_START_X#0 + (byte) play_spawn_current::piece_idx#2) - [205] (byte) current_ypos#19 ← *((const byte[]) PIECES_START_Y#0 + (byte) play_spawn_current::piece_idx#2) - [206] (byte) current_piece_char#13 ← *((const byte[]) PIECES_CHARS#0 + (byte) play_spawn_current::piece_idx#2) + [203] (byte*) current_piece_gfx#16 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) + (byte/signed byte/word/signed word/dword/signed dword) 0 + [204] (byte) current_xpos#23 ← *((const byte[]) PIECES_START_X#0 + (byte) play_spawn_current::piece_idx#2) + [205] (byte) current_ypos#18 ← *((const byte[]) PIECES_START_Y#0 + (byte) play_spawn_current::piece_idx#2) + [206] (byte) current_piece_char#12 ← *((const byte[]) PIECES_CHARS#0 + (byte) play_spawn_current::piece_idx#2) to:play_spawn_current::@return play_spawn_current::@return: scope:[play_spawn_current] from play_spawn_current::@3 [207] return @@ -511,24 +511,24 @@ play_remove_lines::@17: scope:[play_remove_lines] from play_remove_lines::@2 [236] phi() to:play_remove_lines::@3 play_lock_current: scope:[play_lock_current] from play_move_down::@13 - [237] (byte) play_lock_current::ypos2#0 ← (byte) current_ypos#22 << (byte/signed byte/word/signed word/dword/signed dword) 1 + [237] (byte) play_lock_current::ypos2#0 ← (byte) current_ypos#21 << (byte/signed byte/word/signed word/dword/signed dword) 1 to:play_lock_current::@1 play_lock_current::@1: scope:[play_lock_current] from play_lock_current play_lock_current::@7 [238] (byte) play_lock_current::l#6 ← phi( play_lock_current/(byte/signed byte/word/signed word/dword/signed dword) 0 play_lock_current::@7/(byte) play_lock_current::l#1 ) [238] (byte) play_lock_current::i#3 ← phi( play_lock_current/(byte/signed byte/word/signed word/dword/signed dword) 0 play_lock_current::@7/(byte~) play_lock_current::i#7 ) [238] (byte) play_lock_current::ypos2#2 ← phi( play_lock_current/(byte) play_lock_current::ypos2#0 play_lock_current::@7/(byte) play_lock_current::ypos2#1 ) [239] (byte*) play_lock_current::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) play_lock_current::ypos2#2) - [240] (byte) play_lock_current::col#0 ← (byte) current_xpos#11 + [240] (byte) play_lock_current::col#0 ← (byte) current_xpos#10 to:play_lock_current::@2 play_lock_current::@2: scope:[play_lock_current] from play_lock_current::@1 play_lock_current::@8 [241] (byte) play_lock_current::c#2 ← phi( play_lock_current::@1/(byte/signed byte/word/signed word/dword/signed dword) 0 play_lock_current::@8/(byte) play_lock_current::c#1 ) [241] (byte) play_lock_current::col#2 ← phi( play_lock_current::@1/(byte) play_lock_current::col#0 play_lock_current::@8/(byte) play_lock_current::col#1 ) [241] (byte) play_lock_current::i#2 ← phi( play_lock_current::@1/(byte) play_lock_current::i#3 play_lock_current::@8/(byte~) play_lock_current::i#9 ) [242] (byte) play_lock_current::i#1 ← ++ (byte) play_lock_current::i#2 - [243] if(*((byte*) current_piece_gfx#10 + (byte) play_lock_current::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_lock_current::@3 + [243] if(*((byte*) current_piece_gfx#20 + (byte) play_lock_current::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_lock_current::@3 to:play_lock_current::@4 play_lock_current::@4: scope:[play_lock_current] from play_lock_current::@2 - [244] *((byte*) play_lock_current::playfield_line#0 + (byte) play_lock_current::col#2) ← (byte) current_piece_char#16 + [244] *((byte*) play_lock_current::playfield_line#0 + (byte) play_lock_current::col#2) ← (byte) current_piece_char#15 to:play_lock_current::@3 play_lock_current::@3: scope:[play_lock_current] from play_lock_current::@2 play_lock_current::@4 [245] (byte) play_lock_current::col#1 ← ++ (byte) play_lock_current::col#2 diff --git a/src/test/ref/examples/tetris/tetris.log b/src/test/ref/examples/tetris/tetris.log index e18be2147..10bf0fc48 100644 --- a/src/test/ref/examples/tetris/tetris.log +++ b/src/test/ref/examples/tetris/tetris.log @@ -11,6 +11,10 @@ Inlined call (byte~) irq::$2 ← call toSpritePtr (byte*) PLAYFIELD_SPRITES CONTROL FLOW GRAPH SSA @begin: scope:[] from + (byte) current_piece_char#84 ← phi( ) + (byte) current_ypos#80 ← phi( ) + (byte) current_xpos#106 ← phi( ) + (byte*) current_piece_gfx#96 ← phi( ) (byte*) PROCPORT_DDR#0 ← ((byte*)) (byte/signed byte/word/signed word/dword/signed dword) 0 (byte) PROCPORT_DDR_MEMORY_MASK#0 ← (byte/signed byte/word/signed word/dword/signed dword) 7 (byte*) PROCPORT#0 ← ((byte*)) (byte/signed byte/word/signed word/dword/signed dword) 1 @@ -112,6 +116,10 @@ fill::@return: scope:[fill] from fill::@1 return to:@return @5: scope:[] from @begin + (byte) current_piece_char#83 ← phi( @begin/(byte) current_piece_char#84 ) + (byte) current_ypos#79 ← phi( @begin/(byte) current_ypos#80 ) + (byte) current_xpos#105 ← phi( @begin/(byte) current_xpos#106 ) + (byte*) current_piece_gfx#95 ← phi( @begin/(byte*) current_piece_gfx#96 ) (byte) KEY_DEL#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 (byte) KEY_RETURN#0 ← (byte/signed byte/word/signed word/dword/signed dword) 1 (byte) KEY_CRSR_RIGHT#0 ← (byte/signed byte/word/signed word/dword/signed dword) 2 @@ -193,6 +201,10 @@ keyboard_matrix_read::@return: scope:[keyboard_matrix_read] from keyboard_matri return to:@return @9: scope:[] from @5 + (byte) current_piece_char#82 ← phi( @5/(byte) current_piece_char#83 ) + (byte) current_ypos#78 ← phi( @5/(byte) current_ypos#79 ) + (byte) current_xpos#104 ← phi( @5/(byte) current_xpos#105 ) + (byte*) current_piece_gfx#94 ← phi( @5/(byte*) current_piece_gfx#95 ) (byte[8]) keyboard_events#0 ← { fill( 8, 0) } (byte) keyboard_events_size#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 (byte) keyboard_modifiers#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 @@ -462,6 +474,10 @@ keyboard_event_get::@return: scope:[keyboard_event_get] from keyboard_event_get @12: scope:[] from @9 (byte) keyboard_modifiers#58 ← phi( @9/(byte) keyboard_modifiers#0 ) (byte) keyboard_events_size#77 ← phi( @9/(byte) keyboard_events_size#0 ) + (byte) current_piece_char#81 ← phi( @9/(byte) current_piece_char#82 ) + (byte) current_ypos#77 ← phi( @9/(byte) current_ypos#78 ) + (byte) current_xpos#103 ← phi( @9/(byte) current_xpos#104 ) + (byte*) current_piece_gfx#93 ← phi( @9/(byte*) current_piece_gfx#94 ) (word*) SID_VOICE3_FREQ#0 ← ((word*)) (word/dword/signed dword) 54286 (byte*) SID_VOICE3_FREQ_LOW#0 ← ((byte*)) (word/dword/signed dword) 54286 (byte*) SID_VOICE3_FREQ_HIGH#0 ← ((byte*)) (word/dword/signed dword) 54287 @@ -494,6 +510,10 @@ sid_rnd::@return: scope:[sid_rnd] from sid_rnd @14: scope:[] from @12 (byte) keyboard_modifiers#56 ← phi( @12/(byte) keyboard_modifiers#58 ) (byte) keyboard_events_size#75 ← phi( @12/(byte) keyboard_events_size#77 ) + (byte) current_piece_char#80 ← phi( @12/(byte) current_piece_char#81 ) + (byte) current_ypos#76 ← phi( @12/(byte) current_ypos#77 ) + (byte) current_xpos#102 ← phi( @12/(byte) current_xpos#103 ) + (byte*) current_piece_gfx#92 ← phi( @12/(byte*) current_piece_gfx#93 ) (byte*) PLAYFIELD_SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 (byte*~) $1 ← (byte*) PLAYFIELD_SCREEN#0 + (word) SPRITE_PTRS#0 (byte*) PLAYFIELD_SPRITE_PTRS#0 ← (byte*~) $1 @@ -503,10 +523,6 @@ sid_rnd::@return: scope:[sid_rnd] from sid_rnd (byte) PLAYFIELD_COLS#0 ← (byte/signed byte/word/signed word/dword/signed dword) 10 (byte~) $2 ← (byte) PLAYFIELD_LINES#0 * (byte) PLAYFIELD_COLS#0 (byte[$2]) playfield#0 ← { fill( $2, 0) } - (byte*) current_piece_gfx#0 ← ((byte*)) (byte/signed byte/word/signed word/dword/signed dword) 0 - (byte) current_piece_char#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 - (byte) current_xpos#0 ← (byte/signed byte/word/signed word/dword/signed dword) 3 - (byte) current_ypos#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 kickasm(location (byte*) PLAYFIELD_CHARSET#0) {{ .fill 8,$00 // Place a filled char at the start of the charset .import binary "nes-screen.imap" }} @@ -762,21 +778,21 @@ render_playfield::@return: scope:[render_playfield] from render_playfield::@3 return to:@return render_current: scope:[render_current] from main::@27 main::@34 - (byte) current_piece_char#63 ← phi( main::@27/(byte) current_piece_char#48 main::@34/(byte) current_piece_char#62 ) - (byte*) current_piece_gfx#53 ← phi( main::@27/(byte*) current_piece_gfx#64 main::@34/(byte*) current_piece_gfx#67 ) - (byte) current_xpos#48 ← phi( main::@27/(byte) current_xpos#66 main::@34/(byte) current_xpos#67 ) - (byte) current_ypos#10 ← phi( main::@27/(byte) current_ypos#24 main::@34/(byte) current_ypos#25 ) + (byte) current_piece_char#62 ← phi( main::@27/(byte) current_piece_char#47 main::@34/(byte) current_piece_char#61 ) + (byte*) current_piece_gfx#52 ← phi( main::@27/(byte*) current_piece_gfx#63 main::@34/(byte*) current_piece_gfx#66 ) + (byte) current_xpos#47 ← phi( main::@27/(byte) current_xpos#65 main::@34/(byte) current_xpos#66 ) + (byte) current_ypos#9 ← phi( main::@27/(byte) current_ypos#23 main::@34/(byte) current_ypos#24 ) (byte) render_current::i#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 - (byte~) render_current::$0 ← (byte) current_ypos#10 << (byte/signed byte/word/signed word/dword/signed dword) 1 + (byte~) render_current::$0 ← (byte) current_ypos#9 << (byte/signed byte/word/signed word/dword/signed dword) 1 (byte) render_current::ypos2#0 ← (byte~) render_current::$0 (byte) render_current::l#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:render_current::@1 render_current::@1: scope:[render_current] from render_current render_current::@3 - (byte) current_piece_char#52 ← phi( render_current/(byte) current_piece_char#63 render_current::@3/(byte) current_piece_char#64 ) + (byte) current_piece_char#51 ← phi( render_current/(byte) current_piece_char#62 render_current::@3/(byte) current_piece_char#63 ) (byte) render_current::l#5 ← phi( render_current/(byte) render_current::l#0 render_current::@3/(byte) render_current::l#1 ) - (byte*) current_piece_gfx#37 ← phi( render_current/(byte*) current_piece_gfx#53 render_current::@3/(byte*) current_piece_gfx#54 ) + (byte*) current_piece_gfx#36 ← phi( render_current/(byte*) current_piece_gfx#52 render_current::@3/(byte*) current_piece_gfx#53 ) (byte) render_current::i#5 ← phi( render_current/(byte) render_current::i#0 render_current::@3/(byte) render_current::i#8 ) - (byte) current_xpos#30 ← phi( render_current/(byte) current_xpos#48 render_current::@3/(byte) current_xpos#49 ) + (byte) current_xpos#29 ← phi( render_current/(byte) current_xpos#47 render_current::@3/(byte) current_xpos#48 ) (byte) render_current::ypos2#2 ← phi( render_current/(byte) render_current::ypos2#0 render_current::@3/(byte) render_current::ypos2#1 ) (bool~) render_current::$1 ← (byte) render_current::ypos2#2 > (byte/signed byte/word/signed word/dword/signed dword) 2 (byte/signed word/word/dword/signed dword~) render_current::$2 ← (byte/signed byte/word/signed word/dword/signed dword) 2 * (byte) PLAYFIELD_LINES#0 @@ -785,30 +801,30 @@ render_current::@1: scope:[render_current] from render_current render_current:: if((bool~) render_current::$4) goto render_current::@2 to:render_current::@7 render_current::@2: scope:[render_current] from render_current::@1 - (byte) current_piece_char#38 ← phi( render_current::@1/(byte) current_piece_char#52 ) + (byte) current_piece_char#37 ← phi( render_current::@1/(byte) current_piece_char#51 ) (byte) render_current::l#9 ← phi( render_current::@1/(byte) render_current::l#5 ) (byte) render_current::i#6 ← phi( render_current::@1/(byte) render_current::i#5 ) - (byte*) current_piece_gfx#23 ← phi( render_current::@1/(byte*) current_piece_gfx#37 ) - (byte) current_xpos#13 ← phi( render_current::@1/(byte) current_xpos#30 ) + (byte*) current_piece_gfx#22 ← phi( render_current::@1/(byte*) current_piece_gfx#36 ) + (byte) current_xpos#12 ← phi( render_current::@1/(byte) current_xpos#29 ) (byte) render_current::ypos2#3 ← phi( render_current::@1/(byte) render_current::ypos2#2 ) (byte*) render_current::screen_line#0 ← *((byte*[PLAYFIELD_LINES#0]) screen_lines#0 + (byte) render_current::ypos2#3) - (byte) render_current::xpos#0 ← (byte) current_xpos#13 + (byte) render_current::xpos#0 ← (byte) current_xpos#12 (byte) render_current::c#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:render_current::@4 render_current::@7: scope:[render_current] from render_current::@1 - (byte) current_piece_char#72 ← phi( render_current::@1/(byte) current_piece_char#52 ) - (byte*) current_piece_gfx#68 ← phi( render_current::@1/(byte*) current_piece_gfx#37 ) - (byte) current_xpos#69 ← phi( render_current::@1/(byte) current_xpos#30 ) + (byte) current_piece_char#71 ← phi( render_current::@1/(byte) current_piece_char#51 ) + (byte*) current_piece_gfx#67 ← phi( render_current::@1/(byte*) current_piece_gfx#36 ) + (byte) current_xpos#68 ← phi( render_current::@1/(byte) current_xpos#29 ) (byte) render_current::l#4 ← phi( render_current::@1/(byte) render_current::l#5 ) (byte) render_current::ypos2#6 ← phi( render_current::@1/(byte) render_current::ypos2#2 ) (byte) render_current::i#3 ← phi( render_current::@1/(byte) render_current::i#5 ) (byte) render_current::i#1 ← (byte) render_current::i#3 + (byte/signed byte/word/signed word/dword/signed dword) 4 to:render_current::@3 render_current::@3: scope:[render_current] from render_current::@5 render_current::@7 - (byte) current_piece_char#64 ← phi( render_current::@5/(byte) current_piece_char#39 render_current::@7/(byte) current_piece_char#72 ) - (byte*) current_piece_gfx#54 ← phi( render_current::@5/(byte*) current_piece_gfx#24 render_current::@7/(byte*) current_piece_gfx#68 ) + (byte) current_piece_char#63 ← phi( render_current::@5/(byte) current_piece_char#38 render_current::@7/(byte) current_piece_char#71 ) + (byte*) current_piece_gfx#53 ← phi( render_current::@5/(byte*) current_piece_gfx#23 render_current::@7/(byte*) current_piece_gfx#67 ) (byte) render_current::i#8 ← phi( render_current::@5/(byte) render_current::i#7 render_current::@7/(byte) render_current::i#1 ) - (byte) current_xpos#49 ← phi( render_current::@5/(byte) current_xpos#68 render_current::@7/(byte) current_xpos#69 ) + (byte) current_xpos#48 ← phi( render_current::@5/(byte) current_xpos#67 render_current::@7/(byte) current_xpos#68 ) (byte) render_current::l#2 ← phi( render_current::@5/(byte) render_current::l#3 render_current::@7/(byte) render_current::l#4 ) (byte) render_current::ypos2#4 ← phi( render_current::@5/(byte) render_current::ypos2#5 render_current::@7/(byte) render_current::ypos2#6 ) (byte) render_current::ypos2#1 ← (byte) render_current::ypos2#4 + (byte/signed byte/word/signed word/dword/signed dword) 2 @@ -817,16 +833,16 @@ render_current::@3: scope:[render_current] from render_current::@5 render_curre if((bool~) render_current::$10) goto render_current::@1 to:render_current::@return render_current::@4: scope:[render_current] from render_current::@2 render_current::@5 - (byte) current_xpos#82 ← phi( render_current::@2/(byte) current_xpos#13 render_current::@5/(byte) current_xpos#68 ) + (byte) current_xpos#81 ← phi( render_current::@2/(byte) current_xpos#12 render_current::@5/(byte) current_xpos#67 ) (byte*) render_current::screen_line#3 ← phi( render_current::@2/(byte*) render_current::screen_line#0 render_current::@5/(byte*) render_current::screen_line#4 ) - (byte) current_piece_char#27 ← phi( render_current::@2/(byte) current_piece_char#38 render_current::@5/(byte) current_piece_char#39 ) + (byte) current_piece_char#26 ← phi( render_current::@2/(byte) current_piece_char#37 render_current::@5/(byte) current_piece_char#38 ) (byte) render_current::l#7 ← phi( render_current::@2/(byte) render_current::l#9 render_current::@5/(byte) render_current::l#3 ) (byte) render_current::ypos2#8 ← phi( render_current::@2/(byte) render_current::ypos2#3 render_current::@5/(byte) render_current::ypos2#5 ) (byte) render_current::c#4 ← phi( render_current::@2/(byte) render_current::c#0 render_current::@5/(byte) render_current::c#1 ) (byte) render_current::xpos#5 ← phi( render_current::@2/(byte) render_current::xpos#0 render_current::@5/(byte) render_current::xpos#1 ) (byte) render_current::i#4 ← phi( render_current::@2/(byte) render_current::i#6 render_current::@5/(byte) render_current::i#7 ) - (byte*) current_piece_gfx#12 ← phi( render_current::@2/(byte*) current_piece_gfx#23 render_current::@5/(byte*) current_piece_gfx#24 ) - (byte) render_current::current_cell#0 ← *((byte*) current_piece_gfx#12 + (byte) render_current::i#4) + (byte*) current_piece_gfx#11 ← phi( render_current::@2/(byte*) current_piece_gfx#22 render_current::@5/(byte*) current_piece_gfx#23 ) + (byte) render_current::current_cell#0 ← *((byte*) current_piece_gfx#11 + (byte) render_current::i#4) (byte) render_current::i#2 ← ++ (byte) render_current::i#4 (bool~) render_current::$5 ← (byte) render_current::current_cell#0 != (byte/signed byte/word/signed word/dword/signed dword) 0 (bool~) render_current::$6 ← ! (bool~) render_current::$5 @@ -834,10 +850,10 @@ render_current::@4: scope:[render_current] from render_current::@2 render_curre to:render_current::@9 render_current::@5: scope:[render_current] from render_current::@10 render_current::@4 render_current::@6 (byte*) render_current::screen_line#4 ← phi( render_current::@10/(byte*) render_current::screen_line#1 render_current::@4/(byte*) render_current::screen_line#3 render_current::@6/(byte*) render_current::screen_line#5 ) - (byte) current_piece_char#39 ← phi( render_current::@10/(byte) current_piece_char#9 render_current::@4/(byte) current_piece_char#27 render_current::@6/(byte) current_piece_char#53 ) - (byte) current_xpos#68 ← phi( render_current::@10/(byte) current_xpos#81 render_current::@4/(byte) current_xpos#82 render_current::@6/(byte) current_xpos#83 ) + (byte) current_piece_char#38 ← phi( render_current::@10/(byte) current_piece_char#8 render_current::@4/(byte) current_piece_char#26 render_current::@6/(byte) current_piece_char#52 ) + (byte) current_xpos#67 ← phi( render_current::@10/(byte) current_xpos#80 render_current::@4/(byte) current_xpos#81 render_current::@6/(byte) current_xpos#82 ) (byte) render_current::i#7 ← phi( render_current::@10/(byte) render_current::i#9 render_current::@4/(byte) render_current::i#2 render_current::@6/(byte) render_current::i#10 ) - (byte*) current_piece_gfx#24 ← phi( render_current::@10/(byte*) current_piece_gfx#38 render_current::@4/(byte*) current_piece_gfx#12 render_current::@6/(byte*) current_piece_gfx#39 ) + (byte*) current_piece_gfx#23 ← phi( render_current::@10/(byte*) current_piece_gfx#37 render_current::@4/(byte*) current_piece_gfx#11 render_current::@6/(byte*) current_piece_gfx#38 ) (byte) render_current::l#3 ← phi( render_current::@10/(byte) render_current::l#6 render_current::@4/(byte) render_current::l#7 render_current::@6/(byte) render_current::l#8 ) (byte) render_current::ypos2#5 ← phi( render_current::@10/(byte) render_current::ypos2#7 render_current::@4/(byte) render_current::ypos2#8 render_current::@6/(byte) render_current::ypos2#9 ) (byte) render_current::c#2 ← phi( render_current::@10/(byte) render_current::c#3 render_current::@4/(byte) render_current::c#4 render_current::@6/(byte) render_current::c#5 ) @@ -848,14 +864,14 @@ render_current::@5: scope:[render_current] from render_current::@10 render_curr if((bool~) render_current::$9) goto render_current::@4 to:render_current::@3 render_current::@9: scope:[render_current] from render_current::@4 - (byte) current_xpos#90 ← phi( render_current::@4/(byte) current_xpos#82 ) + (byte) current_xpos#89 ← phi( render_current::@4/(byte) current_xpos#81 ) (byte) render_current::i#11 ← phi( render_current::@4/(byte) render_current::i#2 ) - (byte*) current_piece_gfx#55 ← phi( render_current::@4/(byte*) current_piece_gfx#12 ) + (byte*) current_piece_gfx#54 ← phi( render_current::@4/(byte*) current_piece_gfx#11 ) (byte) render_current::l#10 ← phi( render_current::@4/(byte) render_current::l#7 ) (byte) render_current::ypos2#10 ← phi( render_current::@4/(byte) render_current::ypos2#8 ) (byte) render_current::c#6 ← phi( render_current::@4/(byte) render_current::c#4 ) (byte*) render_current::screen_line#2 ← phi( render_current::@4/(byte*) render_current::screen_line#3 ) - (byte) current_piece_char#18 ← phi( render_current::@4/(byte) current_piece_char#27 ) + (byte) current_piece_char#17 ← phi( render_current::@4/(byte) current_piece_char#26 ) (byte) render_current::xpos#3 ← phi( render_current::@4/(byte) render_current::xpos#5 ) (bool~) render_current::$7 ← (byte) render_current::xpos#3 < (byte) PLAYFIELD_COLS#0 (bool~) render_current::$8 ← ! (bool~) render_current::$7 @@ -863,26 +879,26 @@ render_current::@9: scope:[render_current] from render_current::@4 to:render_current::@10 render_current::@6: scope:[render_current] from render_current::@9 (byte*) render_current::screen_line#5 ← phi( render_current::@9/(byte*) render_current::screen_line#2 ) - (byte) current_piece_char#53 ← phi( render_current::@9/(byte) current_piece_char#18 ) - (byte) current_xpos#83 ← phi( render_current::@9/(byte) current_xpos#90 ) + (byte) current_piece_char#52 ← phi( render_current::@9/(byte) current_piece_char#17 ) + (byte) current_xpos#82 ← phi( render_current::@9/(byte) current_xpos#89 ) (byte) render_current::i#10 ← phi( render_current::@9/(byte) render_current::i#11 ) - (byte*) current_piece_gfx#39 ← phi( render_current::@9/(byte*) current_piece_gfx#55 ) + (byte*) current_piece_gfx#38 ← phi( render_current::@9/(byte*) current_piece_gfx#54 ) (byte) render_current::l#8 ← phi( render_current::@9/(byte) render_current::l#10 ) (byte) render_current::ypos2#9 ← phi( render_current::@9/(byte) render_current::ypos2#10 ) (byte) render_current::c#5 ← phi( render_current::@9/(byte) render_current::c#6 ) (byte) render_current::xpos#6 ← phi( render_current::@9/(byte) render_current::xpos#3 ) to:render_current::@5 render_current::@10: scope:[render_current] from render_current::@9 - (byte) current_xpos#81 ← phi( render_current::@9/(byte) current_xpos#90 ) + (byte) current_xpos#80 ← phi( render_current::@9/(byte) current_xpos#89 ) (byte) render_current::i#9 ← phi( render_current::@9/(byte) render_current::i#11 ) - (byte*) current_piece_gfx#38 ← phi( render_current::@9/(byte*) current_piece_gfx#55 ) + (byte*) current_piece_gfx#37 ← phi( render_current::@9/(byte*) current_piece_gfx#54 ) (byte) render_current::l#6 ← phi( render_current::@9/(byte) render_current::l#10 ) (byte) render_current::ypos2#7 ← phi( render_current::@9/(byte) render_current::ypos2#10 ) (byte) render_current::c#3 ← phi( render_current::@9/(byte) render_current::c#6 ) (byte) render_current::xpos#4 ← phi( render_current::@9/(byte) render_current::xpos#3 ) (byte*) render_current::screen_line#1 ← phi( render_current::@9/(byte*) render_current::screen_line#2 ) - (byte) current_piece_char#9 ← phi( render_current::@9/(byte) current_piece_char#18 ) - *((byte*) render_current::screen_line#1 + (byte) render_current::xpos#4) ← (byte) current_piece_char#9 + (byte) current_piece_char#8 ← phi( render_current::@9/(byte) current_piece_char#17 ) + *((byte*) render_current::screen_line#1 + (byte) render_current::xpos#4) ← (byte) current_piece_char#8 to:render_current::@5 render_current::@return: scope:[render_current] from render_current::@3 return @@ -890,10 +906,10 @@ render_current::@return: scope:[render_current] from render_current::@3 @18: scope:[] from @14 (byte) keyboard_modifiers#54 ← phi( @14/(byte) keyboard_modifiers#56 ) (byte) keyboard_events_size#72 ← phi( @14/(byte) keyboard_events_size#75 ) - (byte) current_piece_char#80 ← phi( @14/(byte) current_piece_char#0 ) - (byte) current_ypos#76 ← phi( @14/(byte) current_ypos#0 ) - (byte) current_xpos#102 ← phi( @14/(byte) current_xpos#0 ) - (byte*) current_piece_gfx#92 ← phi( @14/(byte*) current_piece_gfx#0 ) + (byte) current_piece_char#79 ← phi( @14/(byte) current_piece_char#80 ) + (byte) current_ypos#75 ← phi( @14/(byte) current_ypos#76 ) + (byte) current_xpos#101 ← phi( @14/(byte) current_xpos#102 ) + (byte*) current_piece_gfx#91 ← phi( @14/(byte*) current_piece_gfx#92 ) kickasm(location (byte*) PLAYFIELD_SPRITES#0) {{ .var sprites = LoadPicture("nes-playfield.png", List().add($010101, $000000)) .for(var sy=0;sy<10;sy++) { .for(var sx=0;sx<3;sx++) { @@ -936,10 +952,10 @@ sprites_init::@return: scope:[sprites_init] from sprites_init::@1 @19: scope:[] from @18 (byte) keyboard_modifiers#52 ← phi( @18/(byte) keyboard_modifiers#54 ) (byte) keyboard_events_size#68 ← phi( @18/(byte) keyboard_events_size#72 ) - (byte) current_piece_char#79 ← phi( @18/(byte) current_piece_char#80 ) - (byte) current_ypos#75 ← phi( @18/(byte) current_ypos#76 ) - (byte) current_xpos#101 ← phi( @18/(byte) current_xpos#102 ) - (byte*) current_piece_gfx#91 ← phi( @18/(byte*) current_piece_gfx#92 ) + (byte) current_piece_char#78 ← phi( @18/(byte) current_piece_char#79 ) + (byte) current_ypos#74 ← phi( @18/(byte) current_ypos#75 ) + (byte) current_xpos#100 ← phi( @18/(byte) current_xpos#101 ) + (byte*) current_piece_gfx#90 ← phi( @18/(byte*) current_piece_gfx#91 ) (byte) IRQ_RASTER_FIRST#0 ← (byte/signed byte/word/signed word/dword/signed dword) 49 (byte) irq_raster_next#0 ← (byte) IRQ_RASTER_FIRST#0 (byte) irq_sprite_ypos#0 ← (byte/signed byte/word/signed word/dword/signed dword) 50 @@ -949,10 +965,10 @@ toSpritePtr1: scope:[] from @19 (byte) irq_raster_next#20 ← phi( @19/(byte) irq_raster_next#0 ) (byte) keyboard_modifiers#49 ← phi( @19/(byte) keyboard_modifiers#52 ) (byte) keyboard_events_size#65 ← phi( @19/(byte) keyboard_events_size#68 ) - (byte) current_piece_char#73 ← phi( @19/(byte) current_piece_char#79 ) - (byte) current_ypos#71 ← phi( @19/(byte) current_ypos#75 ) - (byte) current_xpos#97 ← phi( @19/(byte) current_xpos#101 ) - (byte*) current_piece_gfx#85 ← phi( @19/(byte*) current_piece_gfx#91 ) + (byte) current_piece_char#72 ← phi( @19/(byte) current_piece_char#78 ) + (byte) current_ypos#70 ← phi( @19/(byte) current_ypos#74 ) + (byte) current_xpos#96 ← phi( @19/(byte) current_xpos#100 ) + (byte*) current_piece_gfx#84 ← phi( @19/(byte*) current_piece_gfx#90 ) (byte) irq_sprite_ypos#20 ← phi( @19/(byte) irq_sprite_ypos#0 ) (byte*) toSpritePtr1_sprite#1 ← phi( @19/(byte*) toSpritePtr1_sprite#0 ) (word) toSpritePtr1_$0#0 ← ((word)) (byte*) toSpritePtr1_sprite#1 @@ -964,10 +980,10 @@ toSpritePtr1_@return: scope:[] from toSpritePtr1 (byte) irq_raster_next#19 ← phi( toSpritePtr1/(byte) irq_raster_next#20 ) (byte) keyboard_modifiers#45 ← phi( toSpritePtr1/(byte) keyboard_modifiers#49 ) (byte) keyboard_events_size#57 ← phi( toSpritePtr1/(byte) keyboard_events_size#65 ) - (byte) current_piece_char#65 ← phi( toSpritePtr1/(byte) current_piece_char#73 ) - (byte) current_ypos#65 ← phi( toSpritePtr1/(byte) current_ypos#71 ) - (byte) current_xpos#91 ← phi( toSpritePtr1/(byte) current_xpos#97 ) - (byte*) current_piece_gfx#78 ← phi( toSpritePtr1/(byte*) current_piece_gfx#85 ) + (byte) current_piece_char#64 ← phi( toSpritePtr1/(byte) current_piece_char#72 ) + (byte) current_ypos#64 ← phi( toSpritePtr1/(byte) current_ypos#70 ) + (byte) current_xpos#90 ← phi( toSpritePtr1/(byte) current_xpos#96 ) + (byte*) current_piece_gfx#77 ← phi( toSpritePtr1/(byte*) current_piece_gfx#84 ) (byte) irq_sprite_ypos#18 ← phi( toSpritePtr1/(byte) irq_sprite_ypos#20 ) (byte) toSpritePtr1_return#2 ← phi( toSpritePtr1/(byte) toSpritePtr1_return#0 ) (byte) toSpritePtr1_return#1 ← (byte) toSpritePtr1_return#2 @@ -976,10 +992,10 @@ toSpritePtr1_@return: scope:[] from toSpritePtr1 (byte) irq_raster_next#18 ← phi( toSpritePtr1_@return/(byte) irq_raster_next#19 ) (byte) keyboard_modifiers#39 ← phi( toSpritePtr1_@return/(byte) keyboard_modifiers#45 ) (byte) keyboard_events_size#48 ← phi( toSpritePtr1_@return/(byte) keyboard_events_size#57 ) - (byte) current_piece_char#54 ← phi( toSpritePtr1_@return/(byte) current_piece_char#65 ) - (byte) current_ypos#60 ← phi( toSpritePtr1_@return/(byte) current_ypos#65 ) - (byte) current_xpos#84 ← phi( toSpritePtr1_@return/(byte) current_xpos#91 ) - (byte*) current_piece_gfx#69 ← phi( toSpritePtr1_@return/(byte*) current_piece_gfx#78 ) + (byte) current_piece_char#53 ← phi( toSpritePtr1_@return/(byte) current_piece_char#64 ) + (byte) current_ypos#59 ← phi( toSpritePtr1_@return/(byte) current_ypos#64 ) + (byte) current_xpos#83 ← phi( toSpritePtr1_@return/(byte) current_xpos#90 ) + (byte*) current_piece_gfx#68 ← phi( toSpritePtr1_@return/(byte*) current_piece_gfx#77 ) (byte) irq_sprite_ypos#17 ← phi( toSpritePtr1_@return/(byte) irq_sprite_ypos#18 ) (byte) toSpritePtr1_return#3 ← phi( toSpritePtr1_@return/(byte) toSpritePtr1_return#1 ) (byte~) $3 ← (byte) toSpritePtr1_return#3 @@ -1125,10 +1141,10 @@ irq::@return: scope:[irq] from irq::@4 (byte) irq_sprite_ptr#14 ← phi( @31/(byte) irq_sprite_ptr#0 ) (byte) keyboard_modifiers#33 ← phi( @31/(byte) keyboard_modifiers#39 ) (byte) keyboard_events_size#39 ← phi( @31/(byte) keyboard_events_size#48 ) - (byte) current_piece_char#44 ← phi( @31/(byte) current_piece_char#54 ) - (byte) current_ypos#55 ← phi( @31/(byte) current_ypos#60 ) - (byte) current_xpos#74 ← phi( @31/(byte) current_xpos#84 ) - (byte*) current_piece_gfx#62 ← phi( @31/(byte*) current_piece_gfx#69 ) + (byte) current_piece_char#43 ← phi( @31/(byte) current_piece_char#53 ) + (byte) current_ypos#54 ← phi( @31/(byte) current_ypos#59 ) + (byte) current_xpos#73 ← phi( @31/(byte) current_xpos#83 ) + (byte*) current_piece_gfx#61 ← phi( @31/(byte*) current_piece_gfx#68 ) (byte) irq_sprite_ypos#15 ← phi( @31/(byte) irq_sprite_ypos#17 ) (byte/signed byte/word/signed word/dword/signed dword~) $4 ← (byte/signed byte/word/signed word/dword/signed dword) 4 * (byte/signed byte/word/signed word/dword/signed dword) 4 (byte/signed word/word/dword/signed dword/signed byte~) $5 ← (byte/signed byte/word/signed word/dword/signed dword~) $4 * (byte/signed byte/word/signed word/dword/signed dword) 4 @@ -1159,7 +1175,7 @@ irq::@return: scope:[irq] from irq::@4 (word~) $23 ← ((word)) (byte[$17]) PIECE_I#0 (word~) $24 ← ((word)) (byte[$11]) PIECE_L#0 (word[]) PIECES#0 ← { (word~) $18, (word~) $19, (word~) $20, (word~) $21, (word~) $22, (word~) $23, (word~) $24 } - (byte[]) PIECES_CHARS#0 ← { (byte/signed byte/word/signed word/dword/signed dword) 87, (byte/signed byte/word/signed word/dword/signed dword) 88, (byte/word/signed word/dword/signed dword) 152, (byte/signed byte/word/signed word/dword/signed dword) 88, (byte/signed byte/word/signed word/dword/signed dword) 87, (byte/signed byte/word/signed word/dword/signed dword) 87, (byte/word/signed word/dword/signed dword) 152 } + (byte[]) PIECES_CHARS#0 ← { (byte/signed byte/word/signed word/dword/signed dword) 88, (byte/signed byte/word/signed word/dword/signed dword) 89, (byte/word/signed word/dword/signed dword) 153, (byte/signed byte/word/signed word/dword/signed dword) 89, (byte/signed byte/word/signed word/dword/signed dword) 88, (byte/signed byte/word/signed word/dword/signed dword) 88, (byte/word/signed word/dword/signed dword) 153 } (byte[]) PIECES_START_X#0 ← { (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 3, (byte/signed byte/word/signed word/dword/signed dword) 4 } (byte[]) PIECES_START_Y#0 ← { (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1 } (byte*[PLAYFIELD_LINES#0]) playfield_lines#0 ← { fill( PLAYFIELD_LINES#0, 0) } @@ -1172,12 +1188,12 @@ irq::@return: scope:[irq] from irq::@4 (byte) current_movedown_counter#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:@24 play_move_down: scope:[play_move_down] from main::@30 - (byte) current_piece_char#74 ← phi( main::@30/(byte) current_piece_char#24 ) - (byte*) current_piece_gfx#86 ← phi( main::@30/(byte*) current_piece_gfx#33 ) + (byte) current_piece_char#73 ← phi( main::@30/(byte) current_piece_char#23 ) + (byte*) current_piece_gfx#85 ← phi( main::@30/(byte*) current_piece_gfx#32 ) (byte*) current_piece#66 ← phi( main::@30/(byte*) current_piece#27 ) (byte) current_orientation#66 ← phi( main::@30/(byte) current_orientation#37 ) - (byte) current_xpos#92 ← phi( main::@30/(byte) current_xpos#45 ) - (byte) current_ypos#66 ← phi( main::@30/(byte) current_ypos#37 ) + (byte) current_xpos#91 ← phi( main::@30/(byte) current_xpos#44 ) + (byte) current_ypos#65 ← phi( main::@30/(byte) current_ypos#36 ) (byte) play_move_down::key_event#1 ← phi( main::@30/(byte) play_move_down::key_event#0 ) (byte) current_movedown_counter#7 ← phi( main::@30/(byte) current_movedown_counter#14 ) (byte) current_movedown_counter#1 ← ++ (byte) current_movedown_counter#7 @@ -1187,12 +1203,12 @@ play_move_down: scope:[play_move_down] from main::@30 if((bool~) play_move_down::$1) goto play_move_down::@1 to:play_move_down::@8 play_move_down::@1: scope:[play_move_down] from play_move_down play_move_down::@8 - (byte) current_piece_char#66 ← phi( play_move_down/(byte) current_piece_char#74 play_move_down::@8/(byte) current_piece_char#75 ) - (byte*) current_piece_gfx#79 ← phi( play_move_down/(byte*) current_piece_gfx#86 play_move_down::@8/(byte*) current_piece_gfx#87 ) + (byte) current_piece_char#65 ← phi( play_move_down/(byte) current_piece_char#73 play_move_down::@8/(byte) current_piece_char#74 ) + (byte*) current_piece_gfx#78 ← phi( play_move_down/(byte*) current_piece_gfx#85 play_move_down::@8/(byte*) current_piece_gfx#86 ) (byte*) current_piece#60 ← phi( play_move_down/(byte*) current_piece#66 play_move_down::@8/(byte*) current_piece#67 ) (byte) current_orientation#61 ← phi( play_move_down/(byte) current_orientation#66 play_move_down::@8/(byte) current_orientation#67 ) - (byte) current_xpos#85 ← phi( play_move_down/(byte) current_xpos#92 play_move_down::@8/(byte) current_xpos#93 ) - (byte) current_ypos#61 ← phi( play_move_down/(byte) current_ypos#66 play_move_down::@8/(byte) current_ypos#67 ) + (byte) current_xpos#84 ← phi( play_move_down/(byte) current_xpos#91 play_move_down::@8/(byte) current_xpos#92 ) + (byte) current_ypos#60 ← phi( play_move_down/(byte) current_ypos#65 play_move_down::@8/(byte) current_ypos#66 ) (byte) play_move_down::movedown#12 ← phi( play_move_down/(byte) play_move_down::movedown#0 play_move_down::@8/(byte) play_move_down::movedown#1 ) (byte) current_movedown_counter#21 ← phi( play_move_down/(byte) current_movedown_counter#1 play_move_down::@8/(byte) current_movedown_counter#27 ) (byte) keyboard_event_pressed::keycode#4 ← (byte) KEY_SPACE#0 @@ -1200,12 +1216,12 @@ play_move_down::@1: scope:[play_move_down] from play_move_down play_move_down:: (byte) keyboard_event_pressed::return#6 ← (byte) keyboard_event_pressed::return#5 to:play_move_down::@17 play_move_down::@17: scope:[play_move_down] from play_move_down::@1 - (byte) current_piece_char#56 ← phi( play_move_down::@1/(byte) current_piece_char#66 ) - (byte*) current_piece_gfx#71 ← phi( play_move_down::@1/(byte*) current_piece_gfx#79 ) + (byte) current_piece_char#55 ← phi( play_move_down::@1/(byte) current_piece_char#65 ) + (byte*) current_piece_gfx#70 ← phi( play_move_down::@1/(byte*) current_piece_gfx#78 ) (byte*) current_piece#54 ← phi( play_move_down::@1/(byte*) current_piece#60 ) (byte) current_orientation#52 ← phi( play_move_down::@1/(byte) current_orientation#61 ) - (byte) current_xpos#71 ← phi( play_move_down::@1/(byte) current_xpos#85 ) - (byte) current_ypos#52 ← phi( play_move_down::@1/(byte) current_ypos#61 ) + (byte) current_xpos#70 ← phi( play_move_down::@1/(byte) current_xpos#84 ) + (byte) current_ypos#51 ← phi( play_move_down::@1/(byte) current_ypos#60 ) (byte) play_move_down::movedown#10 ← phi( play_move_down::@1/(byte) play_move_down::movedown#12 ) (byte) current_movedown_counter#16 ← phi( play_move_down::@1/(byte) current_movedown_counter#21 ) (byte) keyboard_event_pressed::return#12 ← phi( play_move_down::@1/(byte) keyboard_event_pressed::return#6 ) @@ -1215,23 +1231,23 @@ play_move_down::@17: scope:[play_move_down] from play_move_down::@1 if((bool~) play_move_down::$4) goto play_move_down::@2 to:play_move_down::@9 play_move_down::@8: scope:[play_move_down] from play_move_down - (byte) current_piece_char#75 ← phi( play_move_down/(byte) current_piece_char#74 ) - (byte*) current_piece_gfx#87 ← phi( play_move_down/(byte*) current_piece_gfx#86 ) + (byte) current_piece_char#74 ← phi( play_move_down/(byte) current_piece_char#73 ) + (byte*) current_piece_gfx#86 ← phi( play_move_down/(byte*) current_piece_gfx#85 ) (byte*) current_piece#67 ← phi( play_move_down/(byte*) current_piece#66 ) (byte) current_orientation#67 ← phi( play_move_down/(byte) current_orientation#66 ) - (byte) current_xpos#93 ← phi( play_move_down/(byte) current_xpos#92 ) - (byte) current_ypos#67 ← phi( play_move_down/(byte) current_ypos#66 ) + (byte) current_xpos#92 ← phi( play_move_down/(byte) current_xpos#91 ) + (byte) current_ypos#66 ← phi( play_move_down/(byte) current_ypos#65 ) (byte) current_movedown_counter#27 ← phi( play_move_down/(byte) current_movedown_counter#1 ) (byte) play_move_down::movedown#4 ← phi( play_move_down/(byte) play_move_down::movedown#0 ) (byte) play_move_down::movedown#1 ← ++ (byte) play_move_down::movedown#4 to:play_move_down::@1 play_move_down::@2: scope:[play_move_down] from play_move_down::@10 play_move_down::@17 play_move_down::@3 - (byte) current_piece_char#41 ← phi( play_move_down::@10/(byte) current_piece_char#55 play_move_down::@17/(byte) current_piece_char#56 play_move_down::@3/(byte) current_piece_char#57 ) - (byte*) current_piece_gfx#57 ← phi( play_move_down::@10/(byte*) current_piece_gfx#70 play_move_down::@17/(byte*) current_piece_gfx#71 play_move_down::@3/(byte*) current_piece_gfx#72 ) + (byte) current_piece_char#40 ← phi( play_move_down::@10/(byte) current_piece_char#54 play_move_down::@17/(byte) current_piece_char#55 play_move_down::@3/(byte) current_piece_char#56 ) + (byte*) current_piece_gfx#56 ← phi( play_move_down::@10/(byte*) current_piece_gfx#69 play_move_down::@17/(byte*) current_piece_gfx#70 play_move_down::@3/(byte*) current_piece_gfx#71 ) (byte*) current_piece#43 ← phi( play_move_down::@10/(byte*) current_piece#53 play_move_down::@17/(byte*) current_piece#54 play_move_down::@3/(byte*) current_piece#55 ) (byte) current_orientation#42 ← phi( play_move_down::@10/(byte) current_orientation#51 play_move_down::@17/(byte) current_orientation#52 play_move_down::@3/(byte) current_orientation#53 ) - (byte) current_xpos#51 ← phi( play_move_down::@10/(byte) current_xpos#70 play_move_down::@17/(byte) current_xpos#71 play_move_down::@3/(byte) current_xpos#72 ) - (byte) current_ypos#41 ← phi( play_move_down::@10/(byte) current_ypos#51 play_move_down::@17/(byte) current_ypos#52 play_move_down::@3/(byte) current_ypos#53 ) + (byte) current_xpos#50 ← phi( play_move_down::@10/(byte) current_xpos#69 play_move_down::@17/(byte) current_xpos#70 play_move_down::@3/(byte) current_xpos#71 ) + (byte) current_ypos#40 ← phi( play_move_down::@10/(byte) current_ypos#50 play_move_down::@17/(byte) current_ypos#51 play_move_down::@3/(byte) current_ypos#52 ) (byte) play_move_down::movedown#9 ← phi( play_move_down::@10/(byte) play_move_down::movedown#2 play_move_down::@17/(byte) play_move_down::movedown#10 play_move_down::@3/(byte) play_move_down::movedown#11 ) (byte) current_movedown_counter#8 ← phi( play_move_down::@10/(byte) current_movedown_counter#15 play_move_down::@17/(byte) current_movedown_counter#16 play_move_down::@3/(byte) current_movedown_counter#17 ) (bool~) play_move_down::$7 ← (byte) current_movedown_counter#8 >= (byte) current_movedown_slow#0 @@ -1239,12 +1255,12 @@ play_move_down::@2: scope:[play_move_down] from play_move_down::@10 play_move_d if((bool~) play_move_down::$8) goto play_move_down::@4 to:play_move_down::@11 play_move_down::@9: scope:[play_move_down] from play_move_down::@17 - (byte) current_piece_char#67 ← phi( play_move_down::@17/(byte) current_piece_char#56 ) - (byte*) current_piece_gfx#80 ← phi( play_move_down::@17/(byte*) current_piece_gfx#71 ) + (byte) current_piece_char#66 ← phi( play_move_down::@17/(byte) current_piece_char#55 ) + (byte*) current_piece_gfx#79 ← phi( play_move_down::@17/(byte*) current_piece_gfx#70 ) (byte*) current_piece#61 ← phi( play_move_down::@17/(byte*) current_piece#54 ) (byte) current_orientation#62 ← phi( play_move_down::@17/(byte) current_orientation#52 ) - (byte) current_xpos#86 ← phi( play_move_down::@17/(byte) current_xpos#71 ) - (byte) current_ypos#62 ← phi( play_move_down::@17/(byte) current_ypos#52 ) + (byte) current_xpos#85 ← phi( play_move_down::@17/(byte) current_xpos#70 ) + (byte) current_ypos#61 ← phi( play_move_down::@17/(byte) current_ypos#51 ) (byte) play_move_down::movedown#8 ← phi( play_move_down::@17/(byte) play_move_down::movedown#10 ) (byte) current_movedown_counter#9 ← phi( play_move_down::@17/(byte) current_movedown_counter#16 ) (bool~) play_move_down::$5 ← (byte) current_movedown_counter#9 >= (byte) current_movedown_fast#0 @@ -1252,170 +1268,170 @@ play_move_down::@9: scope:[play_move_down] from play_move_down::@17 if((bool~) play_move_down::$6) goto play_move_down::@3 to:play_move_down::@10 play_move_down::@3: scope:[play_move_down] from play_move_down::@9 - (byte) current_piece_char#57 ← phi( play_move_down::@9/(byte) current_piece_char#67 ) - (byte*) current_piece_gfx#72 ← phi( play_move_down::@9/(byte*) current_piece_gfx#80 ) + (byte) current_piece_char#56 ← phi( play_move_down::@9/(byte) current_piece_char#66 ) + (byte*) current_piece_gfx#71 ← phi( play_move_down::@9/(byte*) current_piece_gfx#79 ) (byte*) current_piece#55 ← phi( play_move_down::@9/(byte*) current_piece#61 ) (byte) current_orientation#53 ← phi( play_move_down::@9/(byte) current_orientation#62 ) - (byte) current_xpos#72 ← phi( play_move_down::@9/(byte) current_xpos#86 ) - (byte) current_ypos#53 ← phi( play_move_down::@9/(byte) current_ypos#62 ) + (byte) current_xpos#71 ← phi( play_move_down::@9/(byte) current_xpos#85 ) + (byte) current_ypos#52 ← phi( play_move_down::@9/(byte) current_ypos#61 ) (byte) play_move_down::movedown#11 ← phi( play_move_down::@9/(byte) play_move_down::movedown#8 ) (byte) current_movedown_counter#17 ← phi( play_move_down::@9/(byte) current_movedown_counter#9 ) to:play_move_down::@2 play_move_down::@10: scope:[play_move_down] from play_move_down::@9 - (byte) current_piece_char#55 ← phi( play_move_down::@9/(byte) current_piece_char#67 ) - (byte*) current_piece_gfx#70 ← phi( play_move_down::@9/(byte*) current_piece_gfx#80 ) + (byte) current_piece_char#54 ← phi( play_move_down::@9/(byte) current_piece_char#66 ) + (byte*) current_piece_gfx#69 ← phi( play_move_down::@9/(byte*) current_piece_gfx#79 ) (byte*) current_piece#53 ← phi( play_move_down::@9/(byte*) current_piece#61 ) (byte) current_orientation#51 ← phi( play_move_down::@9/(byte) current_orientation#62 ) - (byte) current_xpos#70 ← phi( play_move_down::@9/(byte) current_xpos#86 ) - (byte) current_ypos#51 ← phi( play_move_down::@9/(byte) current_ypos#62 ) + (byte) current_xpos#69 ← phi( play_move_down::@9/(byte) current_xpos#85 ) + (byte) current_ypos#50 ← phi( play_move_down::@9/(byte) current_ypos#61 ) (byte) current_movedown_counter#15 ← phi( play_move_down::@9/(byte) current_movedown_counter#9 ) (byte) play_move_down::movedown#5 ← phi( play_move_down::@9/(byte) play_move_down::movedown#8 ) (byte) play_move_down::movedown#2 ← ++ (byte) play_move_down::movedown#5 to:play_move_down::@2 play_move_down::@4: scope:[play_move_down] from play_move_down::@11 play_move_down::@2 - (byte) current_piece_char#28 ← phi( play_move_down::@11/(byte) current_piece_char#40 play_move_down::@2/(byte) current_piece_char#41 ) - (byte*) current_piece_gfx#40 ← phi( play_move_down::@11/(byte*) current_piece_gfx#56 play_move_down::@2/(byte*) current_piece_gfx#57 ) + (byte) current_piece_char#27 ← phi( play_move_down::@11/(byte) current_piece_char#39 play_move_down::@2/(byte) current_piece_char#40 ) + (byte*) current_piece_gfx#39 ← phi( play_move_down::@11/(byte*) current_piece_gfx#55 play_move_down::@2/(byte*) current_piece_gfx#56 ) (byte*) current_piece#30 ← phi( play_move_down::@11/(byte*) current_piece#42 play_move_down::@2/(byte*) current_piece#43 ) (byte) current_movedown_counter#22 ← phi( play_move_down::@11/(byte) current_movedown_counter#28 play_move_down::@2/(byte) current_movedown_counter#8 ) (byte) current_orientation#26 ← phi( play_move_down::@11/(byte) current_orientation#41 play_move_down::@2/(byte) current_orientation#42 ) - (byte) current_xpos#31 ← phi( play_move_down::@11/(byte) current_xpos#50 play_move_down::@2/(byte) current_xpos#51 ) - (byte) current_ypos#26 ← phi( play_move_down::@11/(byte) current_ypos#40 play_move_down::@2/(byte) current_ypos#41 ) + (byte) current_xpos#30 ← phi( play_move_down::@11/(byte) current_xpos#49 play_move_down::@2/(byte) current_xpos#50 ) + (byte) current_ypos#25 ← phi( play_move_down::@11/(byte) current_ypos#39 play_move_down::@2/(byte) current_ypos#40 ) (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#9 ) (bool~) play_move_down::$9 ← (byte) play_move_down::movedown#6 != (byte/signed byte/word/signed word/dword/signed dword) 0 (bool~) play_move_down::$10 ← ! (bool~) play_move_down::$9 if((bool~) play_move_down::$10) goto play_move_down::@5 to:play_move_down::@12 play_move_down::@11: scope:[play_move_down] from play_move_down::@2 - (byte) current_piece_char#40 ← phi( play_move_down::@2/(byte) current_piece_char#41 ) - (byte*) current_piece_gfx#56 ← phi( play_move_down::@2/(byte*) current_piece_gfx#57 ) + (byte) current_piece_char#39 ← phi( play_move_down::@2/(byte) current_piece_char#40 ) + (byte*) current_piece_gfx#55 ← phi( play_move_down::@2/(byte*) current_piece_gfx#56 ) (byte*) current_piece#42 ← phi( play_move_down::@2/(byte*) current_piece#43 ) (byte) current_movedown_counter#28 ← phi( play_move_down::@2/(byte) current_movedown_counter#8 ) (byte) current_orientation#41 ← phi( play_move_down::@2/(byte) current_orientation#42 ) - (byte) current_xpos#50 ← phi( play_move_down::@2/(byte) current_xpos#51 ) - (byte) current_ypos#40 ← phi( play_move_down::@2/(byte) current_ypos#41 ) + (byte) current_xpos#49 ← phi( play_move_down::@2/(byte) current_xpos#50 ) + (byte) current_ypos#39 ← phi( play_move_down::@2/(byte) current_ypos#40 ) (byte) play_move_down::movedown#7 ← phi( play_move_down::@2/(byte) play_move_down::movedown#9 ) (byte) play_move_down::movedown#3 ← ++ (byte) play_move_down::movedown#7 to:play_move_down::@4 play_move_down::@5: scope:[play_move_down] from play_move_down::@4 - (byte) current_piece_char#20 ← phi( play_move_down::@4/(byte) current_piece_char#28 ) - (byte) current_xpos#33 ← phi( play_move_down::@4/(byte) current_xpos#31 ) - (byte*) current_piece_gfx#26 ← phi( play_move_down::@4/(byte*) current_piece_gfx#40 ) + (byte) current_piece_char#19 ← phi( play_move_down::@4/(byte) current_piece_char#27 ) + (byte) current_xpos#32 ← phi( play_move_down::@4/(byte) current_xpos#30 ) + (byte*) current_piece_gfx#25 ← phi( play_move_down::@4/(byte*) current_piece_gfx#39 ) (byte) current_orientation#28 ← phi( play_move_down::@4/(byte) current_orientation#26 ) (byte*) current_piece#19 ← phi( play_move_down::@4/(byte*) current_piece#30 ) - (byte) current_ypos#29 ← phi( play_move_down::@4/(byte) current_ypos#26 ) + (byte) current_ypos#28 ← phi( play_move_down::@4/(byte) current_ypos#25 ) (byte) current_movedown_counter#18 ← phi( play_move_down::@4/(byte) current_movedown_counter#22 ) (byte) play_move_down::return#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:play_move_down::@return play_move_down::@12: scope:[play_move_down] from play_move_down::@4 - (byte) current_piece_char#58 ← phi( play_move_down::@4/(byte) current_piece_char#28 ) - (byte*) current_piece_gfx#73 ← phi( play_move_down::@4/(byte*) current_piece_gfx#40 ) + (byte) current_piece_char#57 ← phi( play_move_down::@4/(byte) current_piece_char#27 ) + (byte*) current_piece_gfx#72 ← phi( play_move_down::@4/(byte*) current_piece_gfx#39 ) (byte*) current_piece#22 ← phi( play_move_down::@4/(byte*) current_piece#30 ) (byte) current_orientation#12 ← phi( play_move_down::@4/(byte) current_orientation#26 ) - (byte) current_xpos#14 ← phi( play_move_down::@4/(byte) current_xpos#31 ) - (byte) current_ypos#11 ← phi( play_move_down::@4/(byte) current_ypos#26 ) - (byte/signed word/word/dword/signed dword~) play_move_down::$11 ← (byte) current_ypos#11 + (byte/signed byte/word/signed word/dword/signed dword) 1 - (byte) play_collision::xpos#0 ← (byte) current_xpos#14 + (byte) current_xpos#13 ← phi( play_move_down::@4/(byte) current_xpos#30 ) + (byte) current_ypos#10 ← phi( play_move_down::@4/(byte) current_ypos#25 ) + (byte/signed word/word/dword/signed dword~) play_move_down::$11 ← (byte) current_ypos#10 + (byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) play_collision::xpos#0 ← (byte) current_xpos#13 (byte) play_collision::ypos#0 ← (byte/signed word/word/dword/signed dword~) play_move_down::$11 (byte) play_collision::orientation#0 ← (byte) current_orientation#12 call play_collision (byte) play_collision::return#0 ← (byte) play_collision::return#5 to:play_move_down::@18 play_move_down::@18: scope:[play_move_down] from play_move_down::@12 - (byte) current_piece_char#42 ← phi( play_move_down::@12/(byte) current_piece_char#58 ) - (byte) current_xpos#73 ← phi( play_move_down::@12/(byte) current_xpos#14 ) - (byte*) current_piece_gfx#58 ← phi( play_move_down::@12/(byte*) current_piece_gfx#73 ) + (byte) current_piece_char#41 ← phi( play_move_down::@12/(byte) current_piece_char#57 ) + (byte) current_xpos#72 ← phi( play_move_down::@12/(byte) current_xpos#13 ) + (byte*) current_piece_gfx#57 ← phi( play_move_down::@12/(byte*) current_piece_gfx#72 ) (byte) current_orientation#54 ← phi( play_move_down::@12/(byte) current_orientation#12 ) (byte*) current_piece#44 ← phi( play_move_down::@12/(byte*) current_piece#22 ) - (byte) current_ypos#27 ← phi( play_move_down::@12/(byte) current_ypos#11 ) + (byte) current_ypos#26 ← phi( play_move_down::@12/(byte) current_ypos#10 ) (byte) play_collision::return#10 ← phi( play_move_down::@12/(byte) play_collision::return#0 ) (byte~) play_move_down::$12 ← (byte) play_collision::return#10 (bool~) play_move_down::$13 ← (byte~) play_move_down::$12 == (byte) COLLISION_NONE#0 if((bool~) play_move_down::$13) goto play_move_down::@6 to:play_move_down::@13 play_move_down::@6: scope:[play_move_down] from play_move_down::@18 - (byte) current_piece_char#30 ← phi( play_move_down::@18/(byte) current_piece_char#42 ) - (byte) current_xpos#53 ← phi( play_move_down::@18/(byte) current_xpos#73 ) - (byte*) current_piece_gfx#42 ← phi( play_move_down::@18/(byte*) current_piece_gfx#58 ) + (byte) current_piece_char#29 ← phi( play_move_down::@18/(byte) current_piece_char#41 ) + (byte) current_xpos#52 ← phi( play_move_down::@18/(byte) current_xpos#72 ) + (byte*) current_piece_gfx#41 ← phi( play_move_down::@18/(byte*) current_piece_gfx#57 ) (byte) current_orientation#44 ← phi( play_move_down::@18/(byte) current_orientation#54 ) (byte*) current_piece#32 ← phi( play_move_down::@18/(byte*) current_piece#44 ) - (byte) current_ypos#12 ← phi( play_move_down::@18/(byte) current_ypos#27 ) - (byte) current_ypos#1 ← ++ (byte) current_ypos#12 + (byte) current_ypos#11 ← phi( play_move_down::@18/(byte) current_ypos#26 ) + (byte) current_ypos#0 ← ++ (byte) current_ypos#11 to:play_move_down::@7 play_move_down::@13: scope:[play_move_down] from play_move_down::@18 - (byte) current_piece_char#43 ← phi( play_move_down::@18/(byte) current_piece_char#42 ) - (byte*) current_piece_gfx#59 ← phi( play_move_down::@18/(byte*) current_piece_gfx#58 ) + (byte) current_piece_char#42 ← phi( play_move_down::@18/(byte) current_piece_char#41 ) + (byte*) current_piece_gfx#58 ← phi( play_move_down::@18/(byte*) current_piece_gfx#57 ) (byte) current_orientation#55 ← phi( play_move_down::@18/(byte) current_orientation#54 ) (byte*) current_piece#45 ← phi( play_move_down::@18/(byte*) current_piece#44 ) - (byte) current_xpos#59 ← phi( play_move_down::@18/(byte) current_xpos#73 ) - (byte) current_ypos#35 ← phi( play_move_down::@18/(byte) current_ypos#27 ) + (byte) current_xpos#58 ← phi( play_move_down::@18/(byte) current_xpos#72 ) + (byte) current_ypos#34 ← phi( play_move_down::@18/(byte) current_ypos#26 ) call play_lock_current to:play_move_down::@19 play_move_down::@19: scope:[play_move_down] from play_move_down::@13 - (byte) current_piece_char#29 ← phi( play_move_down::@13/(byte) current_piece_char#43 ) - (byte) current_ypos#42 ← phi( play_move_down::@13/(byte) current_ypos#35 ) - (byte) current_xpos#52 ← phi( play_move_down::@13/(byte) current_xpos#59 ) - (byte*) current_piece_gfx#41 ← phi( play_move_down::@13/(byte*) current_piece_gfx#59 ) + (byte) current_piece_char#28 ← phi( play_move_down::@13/(byte) current_piece_char#42 ) + (byte) current_ypos#41 ← phi( play_move_down::@13/(byte) current_ypos#34 ) + (byte) current_xpos#51 ← phi( play_move_down::@13/(byte) current_xpos#58 ) + (byte*) current_piece_gfx#40 ← phi( play_move_down::@13/(byte*) current_piece_gfx#58 ) (byte) current_orientation#43 ← phi( play_move_down::@13/(byte) current_orientation#55 ) (byte*) current_piece#31 ← phi( play_move_down::@13/(byte*) current_piece#45 ) call play_remove_lines to:play_move_down::@20 play_move_down::@20: scope:[play_move_down] from play_move_down::@19 - (byte) current_piece_char#19 ← phi( play_move_down::@19/(byte) current_piece_char#29 ) - (byte) current_ypos#28 ← phi( play_move_down::@19/(byte) current_ypos#42 ) - (byte) current_xpos#32 ← phi( play_move_down::@19/(byte) current_xpos#52 ) - (byte*) current_piece_gfx#25 ← phi( play_move_down::@19/(byte*) current_piece_gfx#41 ) + (byte) current_piece_char#18 ← phi( play_move_down::@19/(byte) current_piece_char#28 ) + (byte) current_ypos#27 ← phi( play_move_down::@19/(byte) current_ypos#41 ) + (byte) current_xpos#31 ← phi( play_move_down::@19/(byte) current_xpos#51 ) + (byte*) current_piece_gfx#24 ← phi( play_move_down::@19/(byte*) current_piece_gfx#40 ) (byte) current_orientation#27 ← phi( play_move_down::@19/(byte) current_orientation#43 ) (byte*) current_piece#18 ← phi( play_move_down::@19/(byte*) current_piece#31 ) call play_spawn_current to:play_move_down::@21 play_move_down::@21: scope:[play_move_down] from play_move_down::@20 - (byte) current_piece_char#10 ← phi( play_move_down::@20/(byte) current_piece_char#4 ) - (byte) current_ypos#13 ← phi( play_move_down::@20/(byte) current_ypos#5 ) - (byte) current_xpos#15 ← phi( play_move_down::@20/(byte) current_xpos#7 ) - (byte*) current_piece_gfx#13 ← phi( play_move_down::@20/(byte*) current_piece_gfx#6 ) + (byte) current_piece_char#9 ← phi( play_move_down::@20/(byte) current_piece_char#3 ) + (byte) current_ypos#12 ← phi( play_move_down::@20/(byte) current_ypos#4 ) + (byte) current_xpos#14 ← phi( play_move_down::@20/(byte) current_xpos#6 ) + (byte*) current_piece_gfx#12 ← phi( play_move_down::@20/(byte*) current_piece_gfx#5 ) (byte) current_orientation#13 ← phi( play_move_down::@20/(byte) current_orientation#6 ) (byte*) current_piece#9 ← phi( play_move_down::@20/(byte*) current_piece#4 ) (byte*) current_piece#1 ← (byte*) current_piece#9 (byte) current_orientation#1 ← (byte) current_orientation#13 - (byte*) current_piece_gfx#1 ← (byte*) current_piece_gfx#13 - (byte) current_xpos#1 ← (byte) current_xpos#15 - (byte) current_ypos#2 ← (byte) current_ypos#13 - (byte) current_piece_char#1 ← (byte) current_piece_char#10 + (byte*) current_piece_gfx#0 ← (byte*) current_piece_gfx#12 + (byte) current_xpos#0 ← (byte) current_xpos#14 + (byte) current_ypos#1 ← (byte) current_ypos#12 + (byte) current_piece_char#0 ← (byte) current_piece_char#9 to:play_move_down::@7 play_move_down::@7: scope:[play_move_down] from play_move_down::@21 play_move_down::@6 - (byte) current_piece_char#21 ← phi( play_move_down::@21/(byte) current_piece_char#1 play_move_down::@6/(byte) current_piece_char#30 ) - (byte) current_xpos#34 ← phi( play_move_down::@21/(byte) current_xpos#1 play_move_down::@6/(byte) current_xpos#53 ) - (byte*) current_piece_gfx#27 ← phi( play_move_down::@21/(byte*) current_piece_gfx#1 play_move_down::@6/(byte*) current_piece_gfx#42 ) + (byte) current_piece_char#20 ← phi( play_move_down::@21/(byte) current_piece_char#0 play_move_down::@6/(byte) current_piece_char#29 ) + (byte) current_xpos#33 ← phi( play_move_down::@21/(byte) current_xpos#0 play_move_down::@6/(byte) current_xpos#52 ) + (byte*) current_piece_gfx#26 ← phi( play_move_down::@21/(byte*) current_piece_gfx#0 play_move_down::@6/(byte*) current_piece_gfx#41 ) (byte) current_orientation#29 ← phi( play_move_down::@21/(byte) current_orientation#1 play_move_down::@6/(byte) current_orientation#44 ) (byte*) current_piece#20 ← phi( play_move_down::@21/(byte*) current_piece#1 play_move_down::@6/(byte*) current_piece#32 ) - (byte) current_ypos#30 ← phi( play_move_down::@21/(byte) current_ypos#2 play_move_down::@6/(byte) current_ypos#1 ) + (byte) current_ypos#29 ← phi( play_move_down::@21/(byte) current_ypos#1 play_move_down::@6/(byte) current_ypos#0 ) (byte) current_movedown_counter#2 ← (byte/signed byte/word/signed word/dword/signed dword) 0 (byte) play_move_down::return#1 ← (byte/signed byte/word/signed word/dword/signed dword) 1 to:play_move_down::@return play_move_down::@return: scope:[play_move_down] from play_move_down::@5 play_move_down::@7 - (byte) current_piece_char#11 ← phi( play_move_down::@5/(byte) current_piece_char#20 play_move_down::@7/(byte) current_piece_char#21 ) - (byte) current_xpos#16 ← phi( play_move_down::@5/(byte) current_xpos#33 play_move_down::@7/(byte) current_xpos#34 ) - (byte*) current_piece_gfx#14 ← phi( play_move_down::@5/(byte*) current_piece_gfx#26 play_move_down::@7/(byte*) current_piece_gfx#27 ) + (byte) current_piece_char#10 ← phi( play_move_down::@5/(byte) current_piece_char#19 play_move_down::@7/(byte) current_piece_char#20 ) + (byte) current_xpos#15 ← phi( play_move_down::@5/(byte) current_xpos#32 play_move_down::@7/(byte) current_xpos#33 ) + (byte*) current_piece_gfx#13 ← phi( play_move_down::@5/(byte*) current_piece_gfx#25 play_move_down::@7/(byte*) current_piece_gfx#26 ) (byte) current_orientation#14 ← phi( play_move_down::@5/(byte) current_orientation#28 play_move_down::@7/(byte) current_orientation#29 ) (byte*) current_piece#10 ← phi( play_move_down::@5/(byte*) current_piece#19 play_move_down::@7/(byte*) current_piece#20 ) - (byte) current_ypos#14 ← phi( play_move_down::@5/(byte) current_ypos#29 play_move_down::@7/(byte) current_ypos#30 ) + (byte) current_ypos#13 ← phi( play_move_down::@5/(byte) current_ypos#28 play_move_down::@7/(byte) current_ypos#29 ) (byte) current_movedown_counter#10 ← phi( play_move_down::@5/(byte) current_movedown_counter#18 play_move_down::@7/(byte) current_movedown_counter#2 ) (byte) play_move_down::return#4 ← phi( play_move_down::@5/(byte) play_move_down::return#0 play_move_down::@7/(byte) play_move_down::return#1 ) (byte) play_move_down::return#2 ← (byte) play_move_down::return#4 (byte) current_movedown_counter#3 ← (byte) current_movedown_counter#10 - (byte) current_ypos#3 ← (byte) current_ypos#14 + (byte) current_ypos#2 ← (byte) current_ypos#13 (byte*) current_piece#2 ← (byte*) current_piece#10 (byte) current_orientation#2 ← (byte) current_orientation#14 - (byte*) current_piece_gfx#2 ← (byte*) current_piece_gfx#14 - (byte) current_xpos#2 ← (byte) current_xpos#16 - (byte) current_piece_char#2 ← (byte) current_piece_char#11 + (byte*) current_piece_gfx#1 ← (byte*) current_piece_gfx#13 + (byte) current_xpos#1 ← (byte) current_xpos#15 + (byte) current_piece_char#1 ← (byte) current_piece_char#10 return to:@return play_move_leftright: scope:[play_move_leftright] from main::@31 (byte*) current_piece#33 ← phi( main::@31/(byte*) current_piece#6 ) (byte) current_orientation#30 ← phi( main::@31/(byte) current_orientation#8 ) - (byte) current_ypos#31 ← phi( main::@31/(byte) current_ypos#7 ) - (byte) current_xpos#35 ← phi( main::@31/(byte) current_xpos#9 ) + (byte) current_ypos#30 ← phi( main::@31/(byte) current_ypos#6 ) + (byte) current_xpos#34 ← phi( main::@31/(byte) current_xpos#8 ) (byte) play_move_leftright::key_event#1 ← phi( main::@31/(byte) play_move_leftright::key_event#0 ) (bool~) play_move_leftright::$0 ← (byte) play_move_leftright::key_event#1 == (byte) KEY_COMMA#0 if((bool~) play_move_leftright::$0) goto play_move_leftright::@1 @@ -1423,17 +1439,17 @@ play_move_leftright: scope:[play_move_leftright] from main::@31 play_move_leftright::@1: scope:[play_move_leftright] from play_move_leftright (byte*) current_piece#23 ← phi( play_move_leftright/(byte*) current_piece#33 ) (byte) current_orientation#15 ← phi( play_move_leftright/(byte) current_orientation#30 ) - (byte) current_ypos#15 ← phi( play_move_leftright/(byte) current_ypos#31 ) - (byte) current_xpos#17 ← phi( play_move_leftright/(byte) current_xpos#35 ) - (byte/signed word/word/dword/signed dword~) play_move_leftright::$7 ← (byte) current_xpos#17 - (byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) current_ypos#14 ← phi( play_move_leftright/(byte) current_ypos#30 ) + (byte) current_xpos#16 ← phi( play_move_leftright/(byte) current_xpos#34 ) + (byte/signed word/word/dword/signed dword~) play_move_leftright::$7 ← (byte) current_xpos#16 - (byte/signed byte/word/signed word/dword/signed dword) 1 (byte) play_collision::xpos#1 ← (byte/signed word/word/dword/signed dword~) play_move_leftright::$7 - (byte) play_collision::ypos#1 ← (byte) current_ypos#15 + (byte) play_collision::ypos#1 ← (byte) current_ypos#14 (byte) play_collision::orientation#1 ← (byte) current_orientation#15 call play_collision (byte) play_collision::return#1 ← (byte) play_collision::return#5 to:play_move_leftright::@14 play_move_leftright::@14: scope:[play_move_leftright] from play_move_leftright::@1 - (byte) current_xpos#39 ← phi( play_move_leftright::@1/(byte) current_xpos#17 ) + (byte) current_xpos#38 ← phi( play_move_leftright::@1/(byte) current_xpos#16 ) (byte) play_collision::return#11 ← phi( play_move_leftright::@1/(byte) play_collision::return#1 ) (byte~) play_move_leftright::$8 ← (byte) play_collision::return#11 (bool~) play_move_leftright::$9 ← (byte~) play_move_leftright::$8 == (byte) COLLISION_NONE#0 @@ -1443,30 +1459,30 @@ play_move_leftright::@14: scope:[play_move_leftright] from play_move_leftright: play_move_leftright::@6: scope:[play_move_leftright] from play_move_leftright (byte*) current_piece#34 ← phi( play_move_leftright/(byte*) current_piece#33 ) (byte) current_orientation#31 ← phi( play_move_leftright/(byte) current_orientation#30 ) - (byte) current_ypos#32 ← phi( play_move_leftright/(byte) current_ypos#31 ) - (byte) current_xpos#36 ← phi( play_move_leftright/(byte) current_xpos#35 ) + (byte) current_ypos#31 ← phi( play_move_leftright/(byte) current_ypos#30 ) + (byte) current_xpos#35 ← phi( play_move_leftright/(byte) current_xpos#34 ) (byte) play_move_leftright::key_event#2 ← phi( play_move_leftright/(byte) play_move_leftright::key_event#1 ) (bool~) play_move_leftright::$1 ← (byte) play_move_leftright::key_event#2 == (byte) KEY_DOT#0 (bool~) play_move_leftright::$2 ← ! (bool~) play_move_leftright::$1 if((bool~) play_move_leftright::$2) goto play_move_leftright::@2 to:play_move_leftright::@7 play_move_leftright::@2: scope:[play_move_leftright] from play_move_leftright::@6 - (byte) current_xpos#54 ← phi( play_move_leftright::@6/(byte) current_xpos#36 ) + (byte) current_xpos#53 ← phi( play_move_leftright::@6/(byte) current_xpos#35 ) to:play_move_leftright::@4 play_move_leftright::@7: scope:[play_move_leftright] from play_move_leftright::@6 (byte*) current_piece#24 ← phi( play_move_leftright::@6/(byte*) current_piece#34 ) (byte) current_orientation#16 ← phi( play_move_leftright::@6/(byte) current_orientation#31 ) - (byte) current_ypos#16 ← phi( play_move_leftright::@6/(byte) current_ypos#32 ) - (byte) current_xpos#18 ← phi( play_move_leftright::@6/(byte) current_xpos#36 ) - (byte/signed word/word/dword/signed dword~) play_move_leftright::$3 ← (byte) current_xpos#18 + (byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) current_ypos#15 ← phi( play_move_leftright::@6/(byte) current_ypos#31 ) + (byte) current_xpos#17 ← phi( play_move_leftright::@6/(byte) current_xpos#35 ) + (byte/signed word/word/dword/signed dword~) play_move_leftright::$3 ← (byte) current_xpos#17 + (byte/signed byte/word/signed word/dword/signed dword) 1 (byte) play_collision::xpos#2 ← (byte/signed word/word/dword/signed dword~) play_move_leftright::$3 - (byte) play_collision::ypos#2 ← (byte) current_ypos#16 + (byte) play_collision::ypos#2 ← (byte) current_ypos#15 (byte) play_collision::orientation#2 ← (byte) current_orientation#16 call play_collision (byte) play_collision::return#2 ← (byte) play_collision::return#5 to:play_move_leftright::@15 play_move_leftright::@15: scope:[play_move_leftright] from play_move_leftright::@7 - (byte) current_xpos#37 ← phi( play_move_leftright::@7/(byte) current_xpos#18 ) + (byte) current_xpos#36 ← phi( play_move_leftright::@7/(byte) current_xpos#17 ) (byte) play_collision::return#12 ← phi( play_move_leftright::@7/(byte) play_collision::return#2 ) (byte~) play_move_leftright::$4 ← (byte) play_collision::return#12 (bool~) play_move_leftright::$5 ← (byte~) play_move_leftright::$4 == (byte) COLLISION_NONE#0 @@ -1474,37 +1490,37 @@ play_move_leftright::@15: scope:[play_move_leftright] from play_move_leftright: if((bool~) play_move_leftright::$6) goto play_move_leftright::@3 to:play_move_leftright::@8 play_move_leftright::@3: scope:[play_move_leftright] from play_move_leftright::@15 - (byte) current_xpos#55 ← phi( play_move_leftright::@15/(byte) current_xpos#37 ) + (byte) current_xpos#54 ← phi( play_move_leftright::@15/(byte) current_xpos#36 ) to:play_move_leftright::@4 play_move_leftright::@8: scope:[play_move_leftright] from play_move_leftright::@15 - (byte) current_xpos#19 ← phi( play_move_leftright::@15/(byte) current_xpos#37 ) - (byte) current_xpos#3 ← ++ (byte) current_xpos#19 + (byte) current_xpos#18 ← phi( play_move_leftright::@15/(byte) current_xpos#36 ) + (byte) current_xpos#2 ← ++ (byte) current_xpos#18 (byte) play_move_leftright::return#0 ← (byte/signed byte/word/signed word/dword/signed dword) 1 to:play_move_leftright::@return play_move_leftright::@return: scope:[play_move_leftright] from play_move_leftright::@11 play_move_leftright::@4 play_move_leftright::@8 - (byte) current_xpos#20 ← phi( play_move_leftright::@11/(byte) current_xpos#5 play_move_leftright::@4/(byte) current_xpos#38 play_move_leftright::@8/(byte) current_xpos#3 ) + (byte) current_xpos#19 ← phi( play_move_leftright::@11/(byte) current_xpos#4 play_move_leftright::@4/(byte) current_xpos#37 play_move_leftright::@8/(byte) current_xpos#2 ) (byte) play_move_leftright::return#5 ← phi( play_move_leftright::@11/(byte) play_move_leftright::return#3 play_move_leftright::@4/(byte) play_move_leftright::return#2 play_move_leftright::@8/(byte) play_move_leftright::return#0 ) (byte) play_move_leftright::return#1 ← (byte) play_move_leftright::return#5 - (byte) current_xpos#4 ← (byte) current_xpos#20 + (byte) current_xpos#3 ← (byte) current_xpos#19 return to:@return play_move_leftright::@4: scope:[play_move_leftright] from play_move_leftright::@2 play_move_leftright::@3 play_move_leftright::@5 - (byte) current_xpos#38 ← phi( play_move_leftright::@2/(byte) current_xpos#54 play_move_leftright::@3/(byte) current_xpos#55 play_move_leftright::@5/(byte) current_xpos#56 ) + (byte) current_xpos#37 ← phi( play_move_leftright::@2/(byte) current_xpos#53 play_move_leftright::@3/(byte) current_xpos#54 play_move_leftright::@5/(byte) current_xpos#55 ) (byte) play_move_leftright::return#2 ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:play_move_leftright::@return play_move_leftright::@5: scope:[play_move_leftright] from play_move_leftright::@14 - (byte) current_xpos#56 ← phi( play_move_leftright::@14/(byte) current_xpos#39 ) + (byte) current_xpos#55 ← phi( play_move_leftright::@14/(byte) current_xpos#38 ) to:play_move_leftright::@4 play_move_leftright::@11: scope:[play_move_leftright] from play_move_leftright::@14 - (byte) current_xpos#21 ← phi( play_move_leftright::@14/(byte) current_xpos#39 ) - (byte) current_xpos#5 ← -- (byte) current_xpos#21 + (byte) current_xpos#20 ← phi( play_move_leftright::@14/(byte) current_xpos#38 ) + (byte) current_xpos#4 ← -- (byte) current_xpos#20 (byte) play_move_leftright::return#3 ← (byte/signed byte/word/signed word/dword/signed dword) 1 to:play_move_leftright::@return play_move_rotate: scope:[play_move_rotate] from main::@32 - (byte*) current_piece_gfx#60 ← phi( main::@32/(byte*) current_piece_gfx#34 ) + (byte*) current_piece_gfx#59 ← phi( main::@32/(byte*) current_piece_gfx#33 ) (byte*) current_piece#46 ← phi( main::@32/(byte*) current_piece#56 ) - (byte) current_ypos#43 ← phi( main::@32/(byte) current_ypos#54 ) - (byte) current_xpos#57 ← phi( main::@32/(byte) current_xpos#10 ) + (byte) current_ypos#42 ← phi( main::@32/(byte) current_ypos#53 ) + (byte) current_xpos#56 ← phi( main::@32/(byte) current_xpos#9 ) (byte) current_orientation#32 ← phi( main::@32/(byte) current_orientation#38 ) (byte) play_move_rotate::key_event#1 ← phi( main::@32/(byte) play_move_rotate::key_event#0 ) (byte) play_move_rotate::orientation#0 ← (byte/word/signed word/dword/signed dword) 128 @@ -1512,10 +1528,10 @@ play_move_rotate: scope:[play_move_rotate] from main::@32 if((bool~) play_move_rotate::$0) goto play_move_rotate::@1 to:play_move_rotate::@6 play_move_rotate::@1: scope:[play_move_rotate] from play_move_rotate - (byte*) current_piece_gfx#74 ← phi( play_move_rotate/(byte*) current_piece_gfx#60 ) + (byte*) current_piece_gfx#73 ← phi( play_move_rotate/(byte*) current_piece_gfx#59 ) (byte*) current_piece#35 ← phi( play_move_rotate/(byte*) current_piece#46 ) - (byte) current_ypos#33 ← phi( play_move_rotate/(byte) current_ypos#43 ) - (byte) current_xpos#40 ← phi( play_move_rotate/(byte) current_xpos#57 ) + (byte) current_ypos#32 ← phi( play_move_rotate/(byte) current_ypos#42 ) + (byte) current_xpos#39 ← phi( play_move_rotate/(byte) current_xpos#56 ) (byte) current_orientation#17 ← phi( play_move_rotate/(byte) current_orientation#32 ) (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 ← (byte) current_orientation#17 - (byte/signed byte/word/signed word/dword/signed dword) 16 (byte/word/dword~) play_move_rotate::$5 ← (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 & (byte/signed byte/word/signed word/dword/signed dword) 63 @@ -1523,53 +1539,53 @@ play_move_rotate::@1: scope:[play_move_rotate] from play_move_rotate to:play_move_rotate::@4 play_move_rotate::@6: scope:[play_move_rotate] from play_move_rotate (byte*) current_piece#47 ← phi( play_move_rotate/(byte*) current_piece#46 ) - (byte*) current_piece_gfx#43 ← phi( play_move_rotate/(byte*) current_piece_gfx#60 ) - (byte) current_ypos#44 ← phi( play_move_rotate/(byte) current_ypos#43 ) - (byte) current_xpos#58 ← phi( play_move_rotate/(byte) current_xpos#57 ) + (byte*) current_piece_gfx#42 ← phi( play_move_rotate/(byte*) current_piece_gfx#59 ) + (byte) current_ypos#43 ← phi( play_move_rotate/(byte) current_ypos#42 ) + (byte) current_xpos#57 ← phi( play_move_rotate/(byte) current_xpos#56 ) (byte) current_orientation#33 ← phi( play_move_rotate/(byte) current_orientation#32 ) (byte) play_move_rotate::key_event#2 ← phi( play_move_rotate/(byte) play_move_rotate::key_event#1 ) (bool~) play_move_rotate::$1 ← (byte) play_move_rotate::key_event#2 == (byte) KEY_X#0 if((bool~) play_move_rotate::$1) goto play_move_rotate::@2 to:play_move_rotate::@7 play_move_rotate::@2: scope:[play_move_rotate] from play_move_rotate::@6 - (byte*) current_piece_gfx#75 ← phi( play_move_rotate::@6/(byte*) current_piece_gfx#43 ) + (byte*) current_piece_gfx#74 ← phi( play_move_rotate::@6/(byte*) current_piece_gfx#42 ) (byte*) current_piece#36 ← phi( play_move_rotate::@6/(byte*) current_piece#47 ) - (byte) current_ypos#34 ← phi( play_move_rotate::@6/(byte) current_ypos#44 ) - (byte) current_xpos#41 ← phi( play_move_rotate::@6/(byte) current_xpos#58 ) + (byte) current_ypos#33 ← phi( play_move_rotate::@6/(byte) current_ypos#43 ) + (byte) current_xpos#40 ← phi( play_move_rotate::@6/(byte) current_xpos#57 ) (byte) current_orientation#18 ← phi( play_move_rotate::@6/(byte) current_orientation#33 ) (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 (byte/word/dword~) play_move_rotate::$3 ← (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 & (byte/signed byte/word/signed word/dword/signed dword) 63 (byte) play_move_rotate::orientation#2 ← (byte/word/dword~) play_move_rotate::$3 to:play_move_rotate::@4 play_move_rotate::@7: scope:[play_move_rotate] from play_move_rotate::@6 - (byte*) current_piece_gfx#29 ← phi( play_move_rotate::@6/(byte*) current_piece_gfx#43 ) + (byte*) current_piece_gfx#28 ← phi( play_move_rotate::@6/(byte*) current_piece_gfx#42 ) (byte) current_orientation#35 ← phi( play_move_rotate::@6/(byte) current_orientation#33 ) (byte) play_move_rotate::return#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:play_move_rotate::@return play_move_rotate::@return: scope:[play_move_rotate] from play_move_rotate::@11 play_move_rotate::@5 play_move_rotate::@7 - (byte*) current_piece_gfx#15 ← phi( play_move_rotate::@11/(byte*) current_piece_gfx#4 play_move_rotate::@5/(byte*) current_piece_gfx#28 play_move_rotate::@7/(byte*) current_piece_gfx#29 ) + (byte*) current_piece_gfx#14 ← phi( play_move_rotate::@11/(byte*) current_piece_gfx#3 play_move_rotate::@5/(byte*) current_piece_gfx#27 play_move_rotate::@7/(byte*) current_piece_gfx#28 ) (byte) current_orientation#19 ← phi( play_move_rotate::@11/(byte) current_orientation#4 play_move_rotate::@5/(byte) current_orientation#34 play_move_rotate::@7/(byte) current_orientation#35 ) (byte) play_move_rotate::return#5 ← phi( play_move_rotate::@11/(byte) play_move_rotate::return#3 play_move_rotate::@5/(byte) play_move_rotate::return#2 play_move_rotate::@7/(byte) play_move_rotate::return#0 ) (byte) play_move_rotate::return#1 ← (byte) play_move_rotate::return#5 (byte) current_orientation#3 ← (byte) current_orientation#19 - (byte*) current_piece_gfx#3 ← (byte*) current_piece_gfx#15 + (byte*) current_piece_gfx#2 ← (byte*) current_piece_gfx#14 return to:@return play_move_rotate::@4: scope:[play_move_rotate] from play_move_rotate::@1 play_move_rotate::@2 - (byte*) current_piece_gfx#61 ← phi( play_move_rotate::@1/(byte*) current_piece_gfx#74 play_move_rotate::@2/(byte*) current_piece_gfx#75 ) + (byte*) current_piece_gfx#60 ← phi( play_move_rotate::@1/(byte*) current_piece_gfx#73 play_move_rotate::@2/(byte*) current_piece_gfx#74 ) (byte) current_orientation#56 ← phi( play_move_rotate::@1/(byte) current_orientation#17 play_move_rotate::@2/(byte) current_orientation#18 ) (byte*) current_piece#25 ← phi( play_move_rotate::@1/(byte*) current_piece#35 play_move_rotate::@2/(byte*) current_piece#36 ) (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 ) - (byte) current_ypos#17 ← phi( play_move_rotate::@1/(byte) current_ypos#33 play_move_rotate::@2/(byte) current_ypos#34 ) - (byte) current_xpos#22 ← phi( play_move_rotate::@1/(byte) current_xpos#40 play_move_rotate::@2/(byte) current_xpos#41 ) - (byte) play_collision::xpos#3 ← (byte) current_xpos#22 - (byte) play_collision::ypos#3 ← (byte) current_ypos#17 + (byte) current_ypos#16 ← phi( play_move_rotate::@1/(byte) current_ypos#32 play_move_rotate::@2/(byte) current_ypos#33 ) + (byte) current_xpos#21 ← phi( play_move_rotate::@1/(byte) current_xpos#39 play_move_rotate::@2/(byte) current_xpos#40 ) + (byte) play_collision::xpos#3 ← (byte) current_xpos#21 + (byte) play_collision::ypos#3 ← (byte) current_ypos#16 (byte) play_collision::orientation#3 ← (byte) play_move_rotate::orientation#3 call play_collision (byte) play_collision::return#3 ← (byte) play_collision::return#5 to:play_move_rotate::@14 play_move_rotate::@14: scope:[play_move_rotate] from play_move_rotate::@4 - (byte*) current_piece_gfx#44 ← phi( play_move_rotate::@4/(byte*) current_piece_gfx#61 ) + (byte*) current_piece_gfx#43 ← phi( play_move_rotate::@4/(byte*) current_piece_gfx#60 ) (byte) current_orientation#45 ← phi( play_move_rotate::@4/(byte) current_orientation#56 ) (byte*) current_piece#21 ← phi( play_move_rotate::@4/(byte*) current_piece#25 ) (byte) play_move_rotate::orientation#5 ← phi( play_move_rotate::@4/(byte) play_move_rotate::orientation#3 ) @@ -1580,7 +1596,7 @@ play_move_rotate::@14: scope:[play_move_rotate] from play_move_rotate::@4 if((bool~) play_move_rotate::$8) goto play_move_rotate::@5 to:play_move_rotate::@11 play_move_rotate::@5: scope:[play_move_rotate] from play_move_rotate::@14 - (byte*) current_piece_gfx#28 ← phi( play_move_rotate::@14/(byte*) current_piece_gfx#44 ) + (byte*) current_piece_gfx#27 ← phi( play_move_rotate::@14/(byte*) current_piece_gfx#43 ) (byte) current_orientation#34 ← phi( play_move_rotate::@14/(byte) current_orientation#45 ) (byte) play_move_rotate::return#2 ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:play_move_rotate::@return @@ -1589,7 +1605,7 @@ play_move_rotate::@11: scope:[play_move_rotate] from play_move_rotate::@14 (byte) play_move_rotate::orientation#4 ← phi( play_move_rotate::@14/(byte) play_move_rotate::orientation#5 ) (byte) current_orientation#4 ← (byte) play_move_rotate::orientation#4 (byte*~) play_move_rotate::$9 ← (byte*) current_piece#11 + (byte) current_orientation#4 - (byte*) current_piece_gfx#4 ← (byte*~) play_move_rotate::$9 + (byte*) current_piece_gfx#3 ← (byte*~) play_move_rotate::$9 (byte) play_move_rotate::return#3 ← (byte/signed byte/word/signed word/dword/signed dword) 1 to:play_move_rotate::@return @24: scope:[] from @21 @@ -1599,10 +1615,10 @@ play_move_rotate::@11: scope:[play_move_rotate] from play_move_rotate::@14 (byte) current_movedown_counter#26 ← phi( @21/(byte) current_movedown_counter#0 ) (byte) keyboard_modifiers#32 ← phi( @21/(byte) keyboard_modifiers#33 ) (byte) keyboard_events_size#35 ← phi( @21/(byte) keyboard_events_size#39 ) - (byte) current_piece_char#37 ← phi( @21/(byte) current_piece_char#44 ) - (byte) current_ypos#50 ← phi( @21/(byte) current_ypos#55 ) - (byte) current_xpos#65 ← phi( @21/(byte) current_xpos#74 ) - (byte*) current_piece_gfx#52 ← phi( @21/(byte*) current_piece_gfx#62 ) + (byte) current_piece_char#36 ← phi( @21/(byte) current_piece_char#43 ) + (byte) current_ypos#49 ← phi( @21/(byte) current_ypos#54 ) + (byte) current_xpos#64 ← phi( @21/(byte) current_xpos#73 ) + (byte*) current_piece_gfx#51 ← phi( @21/(byte*) current_piece_gfx#61 ) (byte) current_orientation#50 ← phi( @21/(byte) current_orientation#0 ) (byte*) current_piece#41 ← phi( @21/(byte*) current_piece#0 ) (byte) irq_sprite_ypos#13 ← phi( @21/(byte) irq_sprite_ypos#15 ) @@ -1758,49 +1774,49 @@ play_collision::@18: scope:[play_collision] from play_collision::@17 (byte) play_collision::return#9 ← (byte) COLLISION_NONE#0 to:play_collision::@return play_lock_current: scope:[play_lock_current] from play_move_down::@13 - (byte) current_piece_char#45 ← phi( play_move_down::@13/(byte) current_piece_char#43 ) - (byte*) current_piece_gfx#45 ← phi( play_move_down::@13/(byte*) current_piece_gfx#59 ) - (byte) current_xpos#42 ← phi( play_move_down::@13/(byte) current_xpos#59 ) - (byte) current_ypos#18 ← phi( play_move_down::@13/(byte) current_ypos#35 ) + (byte) current_piece_char#44 ← phi( play_move_down::@13/(byte) current_piece_char#42 ) + (byte*) current_piece_gfx#44 ← phi( play_move_down::@13/(byte*) current_piece_gfx#58 ) + (byte) current_xpos#41 ← phi( play_move_down::@13/(byte) current_xpos#58 ) + (byte) current_ypos#17 ← phi( play_move_down::@13/(byte) current_ypos#34 ) (byte) play_lock_current::i#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 - (byte~) play_lock_current::$0 ← (byte) current_ypos#18 << (byte/signed byte/word/signed word/dword/signed dword) 1 + (byte~) play_lock_current::$0 ← (byte) current_ypos#17 << (byte/signed byte/word/signed word/dword/signed dword) 1 (byte) play_lock_current::ypos2#0 ← (byte~) play_lock_current::$0 (byte) play_lock_current::l#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:play_lock_current::@1 play_lock_current::@1: scope:[play_lock_current] from play_lock_current play_lock_current::@5 (byte) play_lock_current::l#6 ← phi( play_lock_current/(byte) play_lock_current::l#0 play_lock_current::@5/(byte) play_lock_current::l#1 ) - (byte) current_piece_char#31 ← phi( play_lock_current/(byte) current_piece_char#45 play_lock_current::@5/(byte) current_piece_char#46 ) + (byte) current_piece_char#30 ← phi( play_lock_current/(byte) current_piece_char#44 play_lock_current::@5/(byte) current_piece_char#45 ) (byte) play_lock_current::i#3 ← phi( play_lock_current/(byte) play_lock_current::i#0 play_lock_current::@5/(byte) play_lock_current::i#5 ) - (byte*) current_piece_gfx#30 ← phi( play_lock_current/(byte*) current_piece_gfx#45 play_lock_current::@5/(byte*) current_piece_gfx#46 ) - (byte) current_xpos#23 ← phi( play_lock_current/(byte) current_xpos#42 play_lock_current::@5/(byte) current_xpos#43 ) + (byte*) current_piece_gfx#29 ← phi( play_lock_current/(byte*) current_piece_gfx#44 play_lock_current::@5/(byte*) current_piece_gfx#45 ) + (byte) current_xpos#22 ← phi( play_lock_current/(byte) current_xpos#41 play_lock_current::@5/(byte) current_xpos#42 ) (byte) play_lock_current::ypos2#2 ← phi( play_lock_current/(byte) play_lock_current::ypos2#0 play_lock_current::@5/(byte) play_lock_current::ypos2#1 ) (byte*) play_lock_current::playfield_line#0 ← *((byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) play_lock_current::ypos2#2) - (byte) play_lock_current::col#0 ← (byte) current_xpos#23 + (byte) play_lock_current::col#0 ← (byte) current_xpos#22 (byte) play_lock_current::c#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:play_lock_current::@2 play_lock_current::@2: scope:[play_lock_current] from play_lock_current::@1 play_lock_current::@3 - (byte) current_xpos#75 ← phi( play_lock_current::@1/(byte) current_xpos#23 play_lock_current::@3/(byte) current_xpos#60 ) + (byte) current_xpos#74 ← phi( play_lock_current::@1/(byte) current_xpos#22 play_lock_current::@3/(byte) current_xpos#59 ) (byte) play_lock_current::l#4 ← phi( play_lock_current::@1/(byte) play_lock_current::l#6 play_lock_current::@3/(byte) play_lock_current::l#3 ) (byte) play_lock_current::ypos2#5 ← phi( play_lock_current::@1/(byte) play_lock_current::ypos2#2 play_lock_current::@3/(byte) play_lock_current::ypos2#4 ) (byte*) play_lock_current::playfield_line#2 ← phi( play_lock_current::@1/(byte*) play_lock_current::playfield_line#0 play_lock_current::@3/(byte*) play_lock_current::playfield_line#3 ) - (byte) current_piece_char#22 ← phi( play_lock_current::@1/(byte) current_piece_char#31 play_lock_current::@3/(byte) current_piece_char#32 ) + (byte) current_piece_char#21 ← phi( play_lock_current::@1/(byte) current_piece_char#30 play_lock_current::@3/(byte) current_piece_char#31 ) (byte) play_lock_current::c#3 ← phi( play_lock_current::@1/(byte) play_lock_current::c#0 play_lock_current::@3/(byte) play_lock_current::c#1 ) (byte) play_lock_current::col#4 ← phi( play_lock_current::@1/(byte) play_lock_current::col#0 play_lock_current::@3/(byte) play_lock_current::col#1 ) (byte) play_lock_current::i#2 ← phi( play_lock_current::@1/(byte) play_lock_current::i#3 play_lock_current::@3/(byte) play_lock_current::i#4 ) - (byte*) current_piece_gfx#16 ← phi( play_lock_current::@1/(byte*) current_piece_gfx#30 play_lock_current::@3/(byte*) current_piece_gfx#31 ) - (bool~) play_lock_current::$1 ← *((byte*) current_piece_gfx#16 + (byte) play_lock_current::i#2) != (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte*) current_piece_gfx#15 ← phi( play_lock_current::@1/(byte*) current_piece_gfx#29 play_lock_current::@3/(byte*) current_piece_gfx#30 ) + (bool~) play_lock_current::$1 ← *((byte*) current_piece_gfx#15 + (byte) play_lock_current::i#2) != (byte/signed byte/word/signed word/dword/signed dword) 0 (bool~) play_lock_current::$2 ← ! (bool~) play_lock_current::$1 (byte) play_lock_current::i#1 ← ++ (byte) play_lock_current::i#2 if((bool~) play_lock_current::$2) goto play_lock_current::@3 to:play_lock_current::@4 play_lock_current::@3: scope:[play_lock_current] from play_lock_current::@2 play_lock_current::@4 - (byte) current_xpos#60 ← phi( play_lock_current::@2/(byte) current_xpos#75 play_lock_current::@4/(byte) current_xpos#76 ) + (byte) current_xpos#59 ← phi( play_lock_current::@2/(byte) current_xpos#74 play_lock_current::@4/(byte) current_xpos#75 ) (byte*) play_lock_current::playfield_line#3 ← phi( play_lock_current::@2/(byte*) play_lock_current::playfield_line#2 play_lock_current::@4/(byte*) play_lock_current::playfield_line#1 ) - (byte) current_piece_char#32 ← phi( play_lock_current::@2/(byte) current_piece_char#22 play_lock_current::@4/(byte) current_piece_char#12 ) + (byte) current_piece_char#31 ← phi( play_lock_current::@2/(byte) current_piece_char#21 play_lock_current::@4/(byte) current_piece_char#11 ) (byte) play_lock_current::l#3 ← phi( play_lock_current::@2/(byte) play_lock_current::l#4 play_lock_current::@4/(byte) play_lock_current::l#5 ) (byte) play_lock_current::ypos2#4 ← phi( play_lock_current::@2/(byte) play_lock_current::ypos2#5 play_lock_current::@4/(byte) play_lock_current::ypos2#6 ) (byte) play_lock_current::i#4 ← phi( play_lock_current::@2/(byte) play_lock_current::i#1 play_lock_current::@4/(byte) play_lock_current::i#6 ) - (byte*) current_piece_gfx#31 ← phi( play_lock_current::@2/(byte*) current_piece_gfx#16 play_lock_current::@4/(byte*) current_piece_gfx#47 ) + (byte*) current_piece_gfx#30 ← phi( play_lock_current::@2/(byte*) current_piece_gfx#15 play_lock_current::@4/(byte*) current_piece_gfx#46 ) (byte) play_lock_current::c#2 ← phi( play_lock_current::@2/(byte) play_lock_current::c#3 play_lock_current::@4/(byte) play_lock_current::c#4 ) (byte) play_lock_current::col#2 ← phi( play_lock_current::@2/(byte) play_lock_current::col#4 play_lock_current::@4/(byte) play_lock_current::col#3 ) (byte) play_lock_current::col#1 ← ++ (byte) play_lock_current::col#2 @@ -1809,22 +1825,22 @@ play_lock_current::@3: scope:[play_lock_current] from play_lock_current::@2 pla if((bool~) play_lock_current::$3) goto play_lock_current::@2 to:play_lock_current::@5 play_lock_current::@4: scope:[play_lock_current] from play_lock_current::@2 - (byte) current_xpos#76 ← phi( play_lock_current::@2/(byte) current_xpos#75 ) + (byte) current_xpos#75 ← phi( play_lock_current::@2/(byte) current_xpos#74 ) (byte) play_lock_current::l#5 ← phi( play_lock_current::@2/(byte) play_lock_current::l#4 ) (byte) play_lock_current::ypos2#6 ← phi( play_lock_current::@2/(byte) play_lock_current::ypos2#5 ) (byte) play_lock_current::i#6 ← phi( play_lock_current::@2/(byte) play_lock_current::i#1 ) - (byte*) current_piece_gfx#47 ← phi( play_lock_current::@2/(byte*) current_piece_gfx#16 ) + (byte*) current_piece_gfx#46 ← phi( play_lock_current::@2/(byte*) current_piece_gfx#15 ) (byte) play_lock_current::c#4 ← phi( play_lock_current::@2/(byte) play_lock_current::c#3 ) (byte) play_lock_current::col#3 ← phi( play_lock_current::@2/(byte) play_lock_current::col#4 ) (byte*) play_lock_current::playfield_line#1 ← phi( play_lock_current::@2/(byte*) play_lock_current::playfield_line#2 ) - (byte) current_piece_char#12 ← phi( play_lock_current::@2/(byte) current_piece_char#22 ) - *((byte*) play_lock_current::playfield_line#1 + (byte) play_lock_current::col#3) ← (byte) current_piece_char#12 + (byte) current_piece_char#11 ← phi( play_lock_current::@2/(byte) current_piece_char#21 ) + *((byte*) play_lock_current::playfield_line#1 + (byte) play_lock_current::col#3) ← (byte) current_piece_char#11 to:play_lock_current::@3 play_lock_current::@5: scope:[play_lock_current] from play_lock_current::@3 - (byte) current_piece_char#46 ← phi( play_lock_current::@3/(byte) current_piece_char#32 ) + (byte) current_piece_char#45 ← phi( play_lock_current::@3/(byte) current_piece_char#31 ) (byte) play_lock_current::i#5 ← phi( play_lock_current::@3/(byte) play_lock_current::i#4 ) - (byte*) current_piece_gfx#46 ← phi( play_lock_current::@3/(byte*) current_piece_gfx#31 ) - (byte) current_xpos#43 ← phi( play_lock_current::@3/(byte) current_xpos#60 ) + (byte*) current_piece_gfx#45 ← phi( play_lock_current::@3/(byte*) current_piece_gfx#30 ) + (byte) current_xpos#42 ← phi( play_lock_current::@3/(byte) current_xpos#59 ) (byte) play_lock_current::l#2 ← phi( play_lock_current::@3/(byte) play_lock_current::l#3 ) (byte) play_lock_current::ypos2#3 ← phi( play_lock_current::@3/(byte) play_lock_current::ypos2#4 ) (byte) play_lock_current::ypos2#1 ← (byte) play_lock_current::ypos2#3 + (byte/signed byte/word/signed word/dword/signed dword) 2 @@ -1859,24 +1875,24 @@ play_spawn_current::@3: scope:[play_spawn_current] from play_spawn_current::@1 (byte*) current_piece#3 ← ((byte*)) *((word[]) PIECES#0 + (byte~) play_spawn_current::$3) (byte) current_orientation#5 ← (byte/signed byte/word/signed word/dword/signed dword) 0 (byte*~) play_spawn_current::$4 ← (byte*) current_piece#3 + (byte) current_orientation#5 - (byte*) current_piece_gfx#5 ← (byte*~) play_spawn_current::$4 - (byte) current_xpos#6 ← *((byte[]) PIECES_START_X#0 + (byte) play_spawn_current::piece_idx#3) - (byte) current_ypos#4 ← *((byte[]) PIECES_START_Y#0 + (byte) play_spawn_current::piece_idx#3) - (byte) current_piece_char#3 ← *((byte[]) PIECES_CHARS#0 + (byte) play_spawn_current::piece_idx#3) + (byte*) current_piece_gfx#4 ← (byte*~) play_spawn_current::$4 + (byte) current_xpos#5 ← *((byte[]) PIECES_START_X#0 + (byte) play_spawn_current::piece_idx#3) + (byte) current_ypos#3 ← *((byte[]) PIECES_START_Y#0 + (byte) play_spawn_current::piece_idx#3) + (byte) current_piece_char#2 ← *((byte[]) PIECES_CHARS#0 + (byte) play_spawn_current::piece_idx#3) to:play_spawn_current::@return play_spawn_current::@return: scope:[play_spawn_current] from play_spawn_current::@3 - (byte) current_piece_char#13 ← phi( play_spawn_current::@3/(byte) current_piece_char#3 ) - (byte) current_ypos#19 ← phi( play_spawn_current::@3/(byte) current_ypos#4 ) - (byte) current_xpos#24 ← phi( play_spawn_current::@3/(byte) current_xpos#6 ) - (byte*) current_piece_gfx#17 ← phi( play_spawn_current::@3/(byte*) current_piece_gfx#5 ) + (byte) current_piece_char#12 ← phi( play_spawn_current::@3/(byte) current_piece_char#2 ) + (byte) current_ypos#18 ← phi( play_spawn_current::@3/(byte) current_ypos#3 ) + (byte) current_xpos#23 ← phi( play_spawn_current::@3/(byte) current_xpos#5 ) + (byte*) current_piece_gfx#16 ← phi( play_spawn_current::@3/(byte*) current_piece_gfx#4 ) (byte) current_orientation#20 ← phi( play_spawn_current::@3/(byte) current_orientation#5 ) (byte*) current_piece#13 ← phi( play_spawn_current::@3/(byte*) current_piece#3 ) (byte*) current_piece#4 ← (byte*) current_piece#13 (byte) current_orientation#6 ← (byte) current_orientation#20 - (byte*) current_piece_gfx#6 ← (byte*) current_piece_gfx#17 - (byte) current_xpos#7 ← (byte) current_xpos#24 - (byte) current_ypos#5 ← (byte) current_ypos#19 - (byte) current_piece_char#4 ← (byte) current_piece_char#13 + (byte*) current_piece_gfx#5 ← (byte*) current_piece_gfx#16 + (byte) current_xpos#6 ← (byte) current_xpos#23 + (byte) current_ypos#4 ← (byte) current_ypos#18 + (byte) current_piece_char#3 ← (byte) current_piece_char#12 return to:@return play_remove_lines: scope:[play_remove_lines] from play_move_down::@19 @@ -1997,10 +2013,10 @@ main: scope:[main] from @30 (byte) current_movedown_counter#47 ← phi( @30/(byte) current_movedown_counter#20 ) (byte) keyboard_modifiers#59 ← phi( @30/(byte) keyboard_modifiers#25 ) (byte) keyboard_events_size#78 ← phi( @30/(byte) keyboard_events_size#28 ) - (byte) current_piece_char#76 ← phi( @30/(byte) current_piece_char#26 ) - (byte) current_ypos#72 ← phi( @30/(byte) current_ypos#39 ) - (byte) current_xpos#98 ← phi( @30/(byte) current_xpos#47 ) - (byte*) current_piece_gfx#88 ← phi( @30/(byte*) current_piece_gfx#36 ) + (byte) current_piece_char#75 ← phi( @30/(byte) current_piece_char#25 ) + (byte) current_ypos#71 ← phi( @30/(byte) current_ypos#38 ) + (byte) current_xpos#97 ← phi( @30/(byte) current_xpos#46 ) + (byte*) current_piece_gfx#87 ← phi( @30/(byte*) current_piece_gfx#35 ) (byte) current_orientation#72 ← phi( @30/(byte) current_orientation#40 ) (byte*) current_piece#68 ← phi( @30/(byte*) current_piece#29 ) call sid_rnd_init @@ -2009,10 +2025,10 @@ main::@21: scope:[main] from main (byte) current_movedown_counter#46 ← phi( main/(byte) current_movedown_counter#47 ) (byte) keyboard_modifiers#57 ← phi( main/(byte) keyboard_modifiers#59 ) (byte) keyboard_events_size#76 ← phi( main/(byte) keyboard_events_size#78 ) - (byte) current_piece_char#68 ← phi( main/(byte) current_piece_char#76 ) - (byte) current_ypos#68 ← phi( main/(byte) current_ypos#72 ) - (byte) current_xpos#94 ← phi( main/(byte) current_xpos#98 ) - (byte*) current_piece_gfx#81 ← phi( main/(byte*) current_piece_gfx#88 ) + (byte) current_piece_char#67 ← phi( main/(byte) current_piece_char#75 ) + (byte) current_ypos#67 ← phi( main/(byte) current_ypos#71 ) + (byte) current_xpos#93 ← phi( main/(byte) current_xpos#97 ) + (byte*) current_piece_gfx#80 ← phi( main/(byte*) current_piece_gfx#87 ) (byte) current_orientation#68 ← phi( main/(byte) current_orientation#72 ) (byte*) current_piece#62 ← phi( main/(byte*) current_piece#68 ) asm { sei } @@ -2022,10 +2038,10 @@ main::@22: scope:[main] from main::@21 (byte) current_movedown_counter#45 ← phi( main::@21/(byte) current_movedown_counter#46 ) (byte) keyboard_modifiers#55 ← phi( main::@21/(byte) keyboard_modifiers#57 ) (byte) keyboard_events_size#73 ← phi( main::@21/(byte) keyboard_events_size#76 ) - (byte) current_piece_char#59 ← phi( main::@21/(byte) current_piece_char#68 ) - (byte) current_ypos#63 ← phi( main::@21/(byte) current_ypos#68 ) - (byte) current_xpos#87 ← phi( main::@21/(byte) current_xpos#94 ) - (byte*) current_piece_gfx#76 ← phi( main::@21/(byte*) current_piece_gfx#81 ) + (byte) current_piece_char#58 ← phi( main::@21/(byte) current_piece_char#67 ) + (byte) current_ypos#62 ← phi( main::@21/(byte) current_ypos#67 ) + (byte) current_xpos#86 ← phi( main::@21/(byte) current_xpos#93 ) + (byte*) current_piece_gfx#75 ← phi( main::@21/(byte*) current_piece_gfx#80 ) (byte) current_orientation#63 ← phi( main::@21/(byte) current_orientation#68 ) (byte*) current_piece#57 ← phi( main::@21/(byte*) current_piece#62 ) call sprites_init @@ -2034,10 +2050,10 @@ main::@23: scope:[main] from main::@22 (byte) current_movedown_counter#44 ← phi( main::@22/(byte) current_movedown_counter#45 ) (byte) keyboard_modifiers#53 ← phi( main::@22/(byte) keyboard_modifiers#55 ) (byte) keyboard_events_size#69 ← phi( main::@22/(byte) keyboard_events_size#73 ) - (byte) current_piece_char#47 ← phi( main::@22/(byte) current_piece_char#59 ) - (byte) current_ypos#56 ← phi( main::@22/(byte) current_ypos#63 ) - (byte) current_xpos#77 ← phi( main::@22/(byte) current_xpos#87 ) - (byte*) current_piece_gfx#63 ← phi( main::@22/(byte*) current_piece_gfx#76 ) + (byte) current_piece_char#46 ← phi( main::@22/(byte) current_piece_char#58 ) + (byte) current_ypos#55 ← phi( main::@22/(byte) current_ypos#62 ) + (byte) current_xpos#76 ← phi( main::@22/(byte) current_xpos#86 ) + (byte*) current_piece_gfx#62 ← phi( main::@22/(byte*) current_piece_gfx#75 ) (byte) current_orientation#57 ← phi( main::@22/(byte) current_orientation#63 ) (byte*) current_piece#48 ← phi( main::@22/(byte*) current_piece#57 ) call sprites_irq_init @@ -2046,10 +2062,10 @@ main::@24: scope:[main] from main::@23 (byte) current_movedown_counter#41 ← phi( main::@23/(byte) current_movedown_counter#44 ) (byte) keyboard_modifiers#50 ← phi( main::@23/(byte) keyboard_modifiers#53 ) (byte) keyboard_events_size#66 ← phi( main::@23/(byte) keyboard_events_size#69 ) - (byte) current_piece_char#33 ← phi( main::@23/(byte) current_piece_char#47 ) - (byte) current_ypos#45 ← phi( main::@23/(byte) current_ypos#56 ) - (byte) current_xpos#61 ← phi( main::@23/(byte) current_xpos#77 ) - (byte*) current_piece_gfx#48 ← phi( main::@23/(byte*) current_piece_gfx#63 ) + (byte) current_piece_char#32 ← phi( main::@23/(byte) current_piece_char#46 ) + (byte) current_ypos#44 ← phi( main::@23/(byte) current_ypos#55 ) + (byte) current_xpos#60 ← phi( main::@23/(byte) current_xpos#76 ) + (byte*) current_piece_gfx#47 ← phi( main::@23/(byte*) current_piece_gfx#62 ) (byte) current_orientation#46 ← phi( main::@23/(byte) current_orientation#57 ) (byte*) current_piece#37 ← phi( main::@23/(byte*) current_piece#48 ) call play_init @@ -2058,10 +2074,10 @@ main::@25: scope:[main] from main::@24 (byte) current_movedown_counter#37 ← phi( main::@24/(byte) current_movedown_counter#41 ) (byte) keyboard_modifiers#46 ← phi( main::@24/(byte) keyboard_modifiers#50 ) (byte) keyboard_events_size#58 ← phi( main::@24/(byte) keyboard_events_size#66 ) - (byte) current_piece_char#23 ← phi( main::@24/(byte) current_piece_char#33 ) - (byte) current_ypos#36 ← phi( main::@24/(byte) current_ypos#45 ) - (byte) current_xpos#44 ← phi( main::@24/(byte) current_xpos#61 ) - (byte*) current_piece_gfx#32 ← phi( main::@24/(byte*) current_piece_gfx#48 ) + (byte) current_piece_char#22 ← phi( main::@24/(byte) current_piece_char#32 ) + (byte) current_ypos#35 ← phi( main::@24/(byte) current_ypos#44 ) + (byte) current_xpos#43 ← phi( main::@24/(byte) current_xpos#60 ) + (byte*) current_piece_gfx#31 ← phi( main::@24/(byte*) current_piece_gfx#47 ) (byte) current_orientation#36 ← phi( main::@24/(byte) current_orientation#46 ) (byte*) current_piece#26 ← phi( main::@24/(byte*) current_piece#37 ) call play_spawn_current @@ -2070,40 +2086,40 @@ main::@26: scope:[main] from main::@25 (byte) current_movedown_counter#33 ← phi( main::@25/(byte) current_movedown_counter#37 ) (byte) keyboard_modifiers#40 ← phi( main::@25/(byte) keyboard_modifiers#46 ) (byte) keyboard_events_size#49 ← phi( main::@25/(byte) keyboard_events_size#58 ) - (byte) current_piece_char#14 ← phi( main::@25/(byte) current_piece_char#4 ) - (byte) current_ypos#20 ← phi( main::@25/(byte) current_ypos#5 ) - (byte) current_xpos#25 ← phi( main::@25/(byte) current_xpos#7 ) - (byte*) current_piece_gfx#18 ← phi( main::@25/(byte*) current_piece_gfx#6 ) + (byte) current_piece_char#13 ← phi( main::@25/(byte) current_piece_char#3 ) + (byte) current_ypos#19 ← phi( main::@25/(byte) current_ypos#4 ) + (byte) current_xpos#24 ← phi( main::@25/(byte) current_xpos#6 ) + (byte*) current_piece_gfx#17 ← phi( main::@25/(byte*) current_piece_gfx#5 ) (byte) current_orientation#21 ← phi( main::@25/(byte) current_orientation#6 ) (byte*) current_piece#14 ← phi( main::@25/(byte*) current_piece#4 ) (byte*) current_piece#5 ← (byte*) current_piece#14 (byte) current_orientation#7 ← (byte) current_orientation#21 - (byte*) current_piece_gfx#7 ← (byte*) current_piece_gfx#18 - (byte) current_xpos#8 ← (byte) current_xpos#25 - (byte) current_ypos#6 ← (byte) current_ypos#20 - (byte) current_piece_char#5 ← (byte) current_piece_char#14 + (byte*) current_piece_gfx#6 ← (byte*) current_piece_gfx#17 + (byte) current_xpos#7 ← (byte) current_xpos#24 + (byte) current_ypos#5 ← (byte) current_ypos#19 + (byte) current_piece_char#4 ← (byte) current_piece_char#13 call render_playfield to:main::@27 main::@27: scope:[main] from main::@26 (byte) current_movedown_counter#29 ← phi( main::@26/(byte) current_movedown_counter#33 ) (byte) keyboard_modifiers#34 ← phi( main::@26/(byte) keyboard_modifiers#40 ) (byte) keyboard_events_size#40 ← phi( main::@26/(byte) keyboard_events_size#49 ) - (byte) current_piece_char#48 ← phi( main::@26/(byte) current_piece_char#5 ) - (byte*) current_piece_gfx#64 ← phi( main::@26/(byte*) current_piece_gfx#7 ) + (byte) current_piece_char#47 ← phi( main::@26/(byte) current_piece_char#4 ) + (byte*) current_piece_gfx#63 ← phi( main::@26/(byte*) current_piece_gfx#6 ) (byte) current_orientation#58 ← phi( main::@26/(byte) current_orientation#7 ) (byte*) current_piece#49 ← phi( main::@26/(byte*) current_piece#5 ) - (byte) current_xpos#66 ← phi( main::@26/(byte) current_xpos#8 ) - (byte) current_ypos#24 ← phi( main::@26/(byte) current_ypos#6 ) + (byte) current_xpos#65 ← phi( main::@26/(byte) current_xpos#7 ) + (byte) current_ypos#23 ← phi( main::@26/(byte) current_ypos#5 ) call render_current to:main::@28 main::@28: scope:[main] from main::@27 (byte) current_movedown_counter#24 ← phi( main::@27/(byte) current_movedown_counter#29 ) (byte) keyboard_modifiers#30 ← phi( main::@27/(byte) keyboard_modifiers#34 ) (byte) keyboard_events_size#33 ← phi( main::@27/(byte) keyboard_events_size#40 ) - (byte) current_piece_char#35 ← phi( main::@27/(byte) current_piece_char#48 ) - (byte) current_ypos#47 ← phi( main::@27/(byte) current_ypos#24 ) - (byte) current_xpos#63 ← phi( main::@27/(byte) current_xpos#66 ) - (byte*) current_piece_gfx#50 ← phi( main::@27/(byte*) current_piece_gfx#64 ) + (byte) current_piece_char#34 ← phi( main::@27/(byte) current_piece_char#47 ) + (byte) current_ypos#46 ← phi( main::@27/(byte) current_ypos#23 ) + (byte) current_xpos#62 ← phi( main::@27/(byte) current_xpos#65 ) + (byte*) current_piece_gfx#49 ← phi( main::@27/(byte*) current_piece_gfx#63 ) (byte) current_orientation#48 ← phi( main::@27/(byte) current_orientation#58 ) (byte*) current_piece#39 ← phi( main::@27/(byte*) current_piece#49 ) to:main::@1 @@ -2111,32 +2127,32 @@ main::@1: scope:[main] from main::@10 main::@28 (byte) current_movedown_counter#19 ← phi( main::@10/(byte) current_movedown_counter#23 main::@28/(byte) current_movedown_counter#24 ) (byte) keyboard_modifiers#24 ← phi( main::@10/(byte) keyboard_modifiers#29 main::@28/(byte) keyboard_modifiers#30 ) (byte) keyboard_events_size#27 ← phi( main::@10/(byte) keyboard_events_size#32 main::@28/(byte) keyboard_events_size#33 ) - (byte) current_piece_char#25 ← phi( main::@10/(byte) current_piece_char#34 main::@28/(byte) current_piece_char#35 ) - (byte) current_ypos#38 ← phi( main::@10/(byte) current_ypos#46 main::@28/(byte) current_ypos#47 ) - (byte) current_xpos#46 ← phi( main::@10/(byte) current_xpos#62 main::@28/(byte) current_xpos#63 ) - (byte*) current_piece_gfx#35 ← phi( main::@10/(byte*) current_piece_gfx#49 main::@28/(byte*) current_piece_gfx#50 ) + (byte) current_piece_char#24 ← phi( main::@10/(byte) current_piece_char#33 main::@28/(byte) current_piece_char#34 ) + (byte) current_ypos#37 ← phi( main::@10/(byte) current_ypos#45 main::@28/(byte) current_ypos#46 ) + (byte) current_xpos#45 ← phi( main::@10/(byte) current_xpos#61 main::@28/(byte) current_xpos#62 ) + (byte*) current_piece_gfx#34 ← phi( main::@10/(byte*) current_piece_gfx#48 main::@28/(byte*) current_piece_gfx#49 ) (byte) current_orientation#39 ← phi( main::@10/(byte) current_orientation#47 main::@28/(byte) current_orientation#48 ) (byte*) current_piece#28 ← phi( main::@10/(byte*) current_piece#38 main::@28/(byte*) current_piece#39 ) if(true) goto main::@2 to:main::@return main::@2: scope:[main] from main::@1 - (byte) current_piece_char#77 ← phi( main::@1/(byte) current_piece_char#25 ) - (byte) current_xpos#99 ← phi( main::@1/(byte) current_xpos#46 ) - (byte*) current_piece_gfx#89 ← phi( main::@1/(byte*) current_piece_gfx#35 ) + (byte) current_piece_char#76 ← phi( main::@1/(byte) current_piece_char#24 ) + (byte) current_xpos#98 ← phi( main::@1/(byte) current_xpos#45 ) + (byte*) current_piece_gfx#88 ← phi( main::@1/(byte*) current_piece_gfx#34 ) (byte) current_orientation#73 ← phi( main::@1/(byte) current_orientation#39 ) (byte*) current_piece#69 ← phi( main::@1/(byte*) current_piece#28 ) - (byte) current_ypos#73 ← phi( main::@1/(byte) current_ypos#38 ) + (byte) current_ypos#72 ← phi( main::@1/(byte) current_ypos#37 ) (byte) current_movedown_counter#42 ← phi( main::@1/(byte) current_movedown_counter#19 ) (byte) keyboard_modifiers#41 ← phi( main::@1/(byte) keyboard_modifiers#24 ) (byte) keyboard_events_size#50 ← phi( main::@1/(byte) keyboard_events_size#27 ) to:main::@4 main::@4: scope:[main] from main::@2 main::@5 - (byte) current_piece_char#69 ← phi( main::@2/(byte) current_piece_char#77 main::@5/(byte) current_piece_char#78 ) - (byte) current_xpos#95 ← phi( main::@2/(byte) current_xpos#99 main::@5/(byte) current_xpos#100 ) - (byte*) current_piece_gfx#82 ← phi( main::@2/(byte*) current_piece_gfx#89 main::@5/(byte*) current_piece_gfx#90 ) + (byte) current_piece_char#68 ← phi( main::@2/(byte) current_piece_char#76 main::@5/(byte) current_piece_char#77 ) + (byte) current_xpos#94 ← phi( main::@2/(byte) current_xpos#98 main::@5/(byte) current_xpos#99 ) + (byte*) current_piece_gfx#81 ← phi( main::@2/(byte*) current_piece_gfx#88 main::@5/(byte*) current_piece_gfx#89 ) (byte) current_orientation#69 ← phi( main::@2/(byte) current_orientation#73 main::@5/(byte) current_orientation#74 ) (byte*) current_piece#63 ← phi( main::@2/(byte*) current_piece#69 main::@5/(byte*) current_piece#70 ) - (byte) current_ypos#69 ← phi( main::@2/(byte) current_ypos#73 main::@5/(byte) current_ypos#74 ) + (byte) current_ypos#68 ← phi( main::@2/(byte) current_ypos#72 main::@5/(byte) current_ypos#73 ) (byte) current_movedown_counter#38 ← phi( main::@2/(byte) current_movedown_counter#42 main::@5/(byte) current_movedown_counter#43 ) (byte) keyboard_modifiers#35 ← phi( main::@2/(byte) keyboard_modifiers#41 main::@5/(byte) keyboard_modifiers#42 ) (byte) keyboard_events_size#41 ← phi( main::@2/(byte) keyboard_events_size#50 main::@5/(byte) keyboard_events_size#51 ) @@ -2144,23 +2160,23 @@ main::@4: scope:[main] from main::@2 main::@5 if((bool~) main::$8) goto main::@5 to:main::@7 main::@5: scope:[main] from main::@4 - (byte) current_piece_char#78 ← phi( main::@4/(byte) current_piece_char#69 ) - (byte) current_xpos#100 ← phi( main::@4/(byte) current_xpos#95 ) - (byte*) current_piece_gfx#90 ← phi( main::@4/(byte*) current_piece_gfx#82 ) + (byte) current_piece_char#77 ← phi( main::@4/(byte) current_piece_char#68 ) + (byte) current_xpos#99 ← phi( main::@4/(byte) current_xpos#94 ) + (byte*) current_piece_gfx#89 ← phi( main::@4/(byte*) current_piece_gfx#81 ) (byte) current_orientation#74 ← phi( main::@4/(byte) current_orientation#69 ) (byte*) current_piece#70 ← phi( main::@4/(byte*) current_piece#63 ) - (byte) current_ypos#74 ← phi( main::@4/(byte) current_ypos#69 ) + (byte) current_ypos#73 ← phi( main::@4/(byte) current_ypos#68 ) (byte) current_movedown_counter#43 ← phi( main::@4/(byte) current_movedown_counter#38 ) (byte) keyboard_modifiers#42 ← phi( main::@4/(byte) keyboard_modifiers#35 ) (byte) keyboard_events_size#51 ← phi( main::@4/(byte) keyboard_events_size#41 ) to:main::@4 main::@7: scope:[main] from main::@4 main::@8 - (byte) current_piece_char#60 ← phi( main::@4/(byte) current_piece_char#69 main::@8/(byte) current_piece_char#70 ) - (byte) current_xpos#88 ← phi( main::@4/(byte) current_xpos#95 main::@8/(byte) current_xpos#96 ) - (byte*) current_piece_gfx#77 ← phi( main::@4/(byte*) current_piece_gfx#82 main::@8/(byte*) current_piece_gfx#83 ) + (byte) current_piece_char#59 ← phi( main::@4/(byte) current_piece_char#68 main::@8/(byte) current_piece_char#69 ) + (byte) current_xpos#87 ← phi( main::@4/(byte) current_xpos#94 main::@8/(byte) current_xpos#95 ) + (byte*) current_piece_gfx#76 ← phi( main::@4/(byte*) current_piece_gfx#81 main::@8/(byte*) current_piece_gfx#82 ) (byte) current_orientation#64 ← phi( main::@4/(byte) current_orientation#69 main::@8/(byte) current_orientation#70 ) (byte*) current_piece#58 ← phi( main::@4/(byte*) current_piece#63 main::@8/(byte*) current_piece#64 ) - (byte) current_ypos#64 ← phi( main::@4/(byte) current_ypos#69 main::@8/(byte) current_ypos#70 ) + (byte) current_ypos#63 ← phi( main::@4/(byte) current_ypos#68 main::@8/(byte) current_ypos#69 ) (byte) current_movedown_counter#34 ← phi( main::@4/(byte) current_movedown_counter#38 main::@8/(byte) current_movedown_counter#39 ) (byte) keyboard_modifiers#31 ← phi( main::@4/(byte) keyboard_modifiers#35 main::@8/(byte) keyboard_modifiers#36 ) (byte) keyboard_events_size#34 ← phi( main::@4/(byte) keyboard_events_size#41 main::@8/(byte) keyboard_events_size#42 ) @@ -2168,23 +2184,23 @@ main::@7: scope:[main] from main::@4 main::@8 if((bool~) main::$9) goto main::@8 to:main::@9 main::@8: scope:[main] from main::@7 - (byte) current_piece_char#70 ← phi( main::@7/(byte) current_piece_char#60 ) - (byte) current_xpos#96 ← phi( main::@7/(byte) current_xpos#88 ) - (byte*) current_piece_gfx#83 ← phi( main::@7/(byte*) current_piece_gfx#77 ) + (byte) current_piece_char#69 ← phi( main::@7/(byte) current_piece_char#59 ) + (byte) current_xpos#95 ← phi( main::@7/(byte) current_xpos#87 ) + (byte*) current_piece_gfx#82 ← phi( main::@7/(byte*) current_piece_gfx#76 ) (byte) current_orientation#70 ← phi( main::@7/(byte) current_orientation#64 ) (byte*) current_piece#64 ← phi( main::@7/(byte*) current_piece#58 ) - (byte) current_ypos#70 ← phi( main::@7/(byte) current_ypos#64 ) + (byte) current_ypos#69 ← phi( main::@7/(byte) current_ypos#63 ) (byte) current_movedown_counter#39 ← phi( main::@7/(byte) current_movedown_counter#34 ) (byte) keyboard_modifiers#36 ← phi( main::@7/(byte) keyboard_modifiers#31 ) (byte) keyboard_events_size#42 ← phi( main::@7/(byte) keyboard_events_size#34 ) to:main::@7 main::@9: scope:[main] from main::@7 - (byte) current_piece_char#49 ← phi( main::@7/(byte) current_piece_char#60 ) - (byte) current_xpos#78 ← phi( main::@7/(byte) current_xpos#88 ) - (byte*) current_piece_gfx#65 ← phi( main::@7/(byte*) current_piece_gfx#77 ) + (byte) current_piece_char#48 ← phi( main::@7/(byte) current_piece_char#59 ) + (byte) current_xpos#77 ← phi( main::@7/(byte) current_xpos#87 ) + (byte*) current_piece_gfx#64 ← phi( main::@7/(byte*) current_piece_gfx#76 ) (byte) current_orientation#59 ← phi( main::@7/(byte) current_orientation#64 ) (byte*) current_piece#50 ← phi( main::@7/(byte*) current_piece#58 ) - (byte) current_ypos#57 ← phi( main::@7/(byte) current_ypos#64 ) + (byte) current_ypos#56 ← phi( main::@7/(byte) current_ypos#63 ) (byte) current_movedown_counter#30 ← phi( main::@7/(byte) current_movedown_counter#34 ) (byte) keyboard_modifiers#23 ← phi( main::@7/(byte) keyboard_modifiers#31 ) (byte) keyboard_events_size#26 ← phi( main::@7/(byte) keyboard_events_size#34 ) @@ -2192,12 +2208,12 @@ main::@9: scope:[main] from main::@7 call keyboard_event_scan to:main::@29 main::@29: scope:[main] from main::@9 - (byte) current_piece_char#36 ← phi( main::@9/(byte) current_piece_char#49 ) - (byte) current_xpos#64 ← phi( main::@9/(byte) current_xpos#78 ) - (byte*) current_piece_gfx#51 ← phi( main::@9/(byte*) current_piece_gfx#65 ) + (byte) current_piece_char#35 ← phi( main::@9/(byte) current_piece_char#48 ) + (byte) current_xpos#63 ← phi( main::@9/(byte) current_xpos#77 ) + (byte*) current_piece_gfx#50 ← phi( main::@9/(byte*) current_piece_gfx#64 ) (byte) current_orientation#49 ← phi( main::@9/(byte) current_orientation#59 ) (byte*) current_piece#40 ← phi( main::@9/(byte*) current_piece#50 ) - (byte) current_ypos#48 ← phi( main::@9/(byte) current_ypos#57 ) + (byte) current_ypos#47 ← phi( main::@9/(byte) current_ypos#56 ) (byte) current_movedown_counter#25 ← phi( main::@9/(byte) current_movedown_counter#30 ) (byte) keyboard_modifiers#15 ← phi( main::@9/(byte) keyboard_modifiers#6 ) (byte) keyboard_events_size#17 ← phi( main::@9/(byte) keyboard_events_size#3 ) @@ -2208,12 +2224,12 @@ main::@29: scope:[main] from main::@9 to:main::@30 main::@30: scope:[main] from main::@29 (byte) keyboard_modifiers#51 ← phi( main::@29/(byte) keyboard_modifiers#7 ) - (byte) current_piece_char#24 ← phi( main::@29/(byte) current_piece_char#36 ) - (byte) current_xpos#45 ← phi( main::@29/(byte) current_xpos#64 ) - (byte*) current_piece_gfx#33 ← phi( main::@29/(byte*) current_piece_gfx#51 ) + (byte) current_piece_char#23 ← phi( main::@29/(byte) current_piece_char#35 ) + (byte) current_xpos#44 ← phi( main::@29/(byte) current_xpos#63 ) + (byte*) current_piece_gfx#32 ← phi( main::@29/(byte*) current_piece_gfx#50 ) (byte) current_orientation#37 ← phi( main::@29/(byte) current_orientation#49 ) (byte*) current_piece#27 ← phi( main::@29/(byte*) current_piece#40 ) - (byte) current_ypos#37 ← phi( main::@29/(byte) current_ypos#48 ) + (byte) current_ypos#36 ← phi( main::@29/(byte) current_ypos#47 ) (byte) current_movedown_counter#14 ← phi( main::@29/(byte) current_movedown_counter#25 ) (byte) keyboard_events_size#18 ← phi( main::@29/(byte) keyboard_events_size#5 ) (byte) keyboard_event_get::return#5 ← phi( main::@29/(byte) keyboard_event_get::return#3 ) @@ -2230,22 +2246,22 @@ main::@31: scope:[main] from main::@30 (byte) keyboard_events_size#59 ← phi( main::@30/(byte) keyboard_events_size#7 ) (byte) main::key_event#1 ← phi( main::@30/(byte) main::key_event#0 ) (byte) main::render#4 ← phi( main::@30/(byte) main::render#0 ) - (byte) current_piece_char#15 ← phi( main::@30/(byte) current_piece_char#2 ) - (byte) current_xpos#26 ← phi( main::@30/(byte) current_xpos#2 ) - (byte*) current_piece_gfx#19 ← phi( main::@30/(byte*) current_piece_gfx#2 ) + (byte) current_piece_char#14 ← phi( main::@30/(byte) current_piece_char#1 ) + (byte) current_xpos#25 ← phi( main::@30/(byte) current_xpos#1 ) + (byte*) current_piece_gfx#18 ← phi( main::@30/(byte*) current_piece_gfx#1 ) (byte) current_orientation#22 ← phi( main::@30/(byte) current_orientation#2 ) (byte*) current_piece#15 ← phi( main::@30/(byte*) current_piece#2 ) - (byte) current_ypos#21 ← phi( main::@30/(byte) current_ypos#3 ) + (byte) current_ypos#20 ← phi( main::@30/(byte) current_ypos#2 ) (byte) current_movedown_counter#11 ← phi( main::@30/(byte) current_movedown_counter#3 ) (byte) play_move_down::return#5 ← phi( main::@30/(byte) play_move_down::return#3 ) (byte~) main::$12 ← (byte) play_move_down::return#5 (byte) current_movedown_counter#4 ← (byte) current_movedown_counter#11 - (byte) current_ypos#7 ← (byte) current_ypos#21 + (byte) current_ypos#6 ← (byte) current_ypos#20 (byte*) current_piece#6 ← (byte*) current_piece#15 (byte) current_orientation#8 ← (byte) current_orientation#22 - (byte*) current_piece_gfx#8 ← (byte*) current_piece_gfx#19 - (byte) current_xpos#9 ← (byte) current_xpos#26 - (byte) current_piece_char#6 ← (byte) current_piece_char#15 + (byte*) current_piece_gfx#7 ← (byte*) current_piece_gfx#18 + (byte) current_xpos#8 ← (byte) current_xpos#25 + (byte) current_piece_char#5 ← (byte) current_piece_char#14 (byte) main::render#1 ← (byte) main::render#4 + (byte~) main::$12 (byte) play_move_leftright::key_event#0 ← (byte) main::key_event#1 call play_move_leftright @@ -2255,17 +2271,17 @@ main::@32: scope:[main] from main::@31 (byte) current_movedown_counter#35 ← phi( main::@31/(byte) current_movedown_counter#4 ) (byte) keyboard_modifiers#43 ← phi( main::@31/(byte) keyboard_modifiers#47 ) (byte) keyboard_events_size#52 ← phi( main::@31/(byte) keyboard_events_size#59 ) - (byte) current_piece_char#61 ← phi( main::@31/(byte) current_piece_char#6 ) + (byte) current_piece_char#60 ← phi( main::@31/(byte) current_piece_char#5 ) (byte*) current_piece#56 ← phi( main::@31/(byte*) current_piece#6 ) - (byte) current_ypos#54 ← phi( main::@31/(byte) current_ypos#7 ) - (byte*) current_piece_gfx#34 ← phi( main::@31/(byte*) current_piece_gfx#8 ) + (byte) current_ypos#53 ← phi( main::@31/(byte) current_ypos#6 ) + (byte*) current_piece_gfx#33 ← phi( main::@31/(byte*) current_piece_gfx#7 ) (byte) current_orientation#38 ← phi( main::@31/(byte) current_orientation#8 ) (byte) main::key_event#2 ← phi( main::@31/(byte) main::key_event#1 ) (byte) main::render#5 ← phi( main::@31/(byte) main::render#1 ) - (byte) current_xpos#27 ← phi( main::@31/(byte) current_xpos#4 ) + (byte) current_xpos#26 ← phi( main::@31/(byte) current_xpos#3 ) (byte) play_move_leftright::return#6 ← phi( main::@31/(byte) play_move_leftright::return#4 ) (byte~) main::$13 ← (byte) play_move_leftright::return#6 - (byte) current_xpos#10 ← (byte) current_xpos#27 + (byte) current_xpos#9 ← (byte) current_xpos#26 (byte) main::render#2 ← (byte) main::render#5 + (byte~) main::$13 (byte) play_move_rotate::key_event#0 ← (byte) main::key_event#2 call play_move_rotate @@ -2275,17 +2291,17 @@ main::@33: scope:[main] from main::@32 (byte) current_movedown_counter#31 ← phi( main::@32/(byte) current_movedown_counter#35 ) (byte) keyboard_modifiers#37 ← phi( main::@32/(byte) keyboard_modifiers#43 ) (byte) keyboard_events_size#43 ← phi( main::@32/(byte) keyboard_events_size#52 ) - (byte) current_piece_char#50 ← phi( main::@32/(byte) current_piece_char#61 ) - (byte) current_ypos#58 ← phi( main::@32/(byte) current_ypos#54 ) - (byte) current_xpos#79 ← phi( main::@32/(byte) current_xpos#10 ) + (byte) current_piece_char#49 ← phi( main::@32/(byte) current_piece_char#60 ) + (byte) current_ypos#57 ← phi( main::@32/(byte) current_ypos#53 ) + (byte) current_xpos#78 ← phi( main::@32/(byte) current_xpos#9 ) (byte*) current_piece#51 ← phi( main::@32/(byte*) current_piece#56 ) (byte) main::render#6 ← phi( main::@32/(byte) main::render#2 ) - (byte*) current_piece_gfx#20 ← phi( main::@32/(byte*) current_piece_gfx#3 ) + (byte*) current_piece_gfx#19 ← phi( main::@32/(byte*) current_piece_gfx#2 ) (byte) current_orientation#23 ← phi( main::@32/(byte) current_orientation#3 ) (byte) play_move_rotate::return#6 ← phi( main::@32/(byte) play_move_rotate::return#4 ) (byte~) main::$14 ← (byte) play_move_rotate::return#6 (byte) current_orientation#9 ← (byte) current_orientation#23 - (byte*) current_piece_gfx#9 ← (byte*) current_piece_gfx#20 + (byte*) current_piece_gfx#8 ← (byte*) current_piece_gfx#19 (byte) main::render#3 ← (byte) main::render#6 + (byte~) main::$14 (bool~) main::$15 ← (byte) main::render#3 != (byte/signed byte/word/signed word/dword/signed dword) 0 (bool~) main::$16 ← ! (bool~) main::$15 @@ -2295,10 +2311,10 @@ main::@10: scope:[main] from main::@33 main::@35 (byte) current_movedown_counter#23 ← phi( main::@33/(byte) current_movedown_counter#31 main::@35/(byte) current_movedown_counter#32 ) (byte) keyboard_modifiers#29 ← phi( main::@33/(byte) keyboard_modifiers#37 main::@35/(byte) keyboard_modifiers#38 ) (byte) keyboard_events_size#32 ← phi( main::@33/(byte) keyboard_events_size#43 main::@35/(byte) keyboard_events_size#44 ) - (byte) current_piece_char#34 ← phi( main::@33/(byte) current_piece_char#50 main::@35/(byte) current_piece_char#51 ) - (byte) current_ypos#46 ← phi( main::@33/(byte) current_ypos#58 main::@35/(byte) current_ypos#59 ) - (byte) current_xpos#62 ← phi( main::@33/(byte) current_xpos#79 main::@35/(byte) current_xpos#80 ) - (byte*) current_piece_gfx#49 ← phi( main::@33/(byte*) current_piece_gfx#9 main::@35/(byte*) current_piece_gfx#66 ) + (byte) current_piece_char#33 ← phi( main::@33/(byte) current_piece_char#49 main::@35/(byte) current_piece_char#50 ) + (byte) current_ypos#45 ← phi( main::@33/(byte) current_ypos#57 main::@35/(byte) current_ypos#58 ) + (byte) current_xpos#61 ← phi( main::@33/(byte) current_xpos#78 main::@35/(byte) current_xpos#79 ) + (byte*) current_piece_gfx#48 ← phi( main::@33/(byte*) current_piece_gfx#8 main::@35/(byte*) current_piece_gfx#65 ) (byte) current_orientation#47 ← phi( main::@33/(byte) current_orientation#9 main::@35/(byte) current_orientation#60 ) (byte*) current_piece#38 ← phi( main::@33/(byte*) current_piece#51 main::@35/(byte*) current_piece#52 ) *((byte*) BORDERCOL#0) ← -- *((byte*) BORDERCOL#0) @@ -2307,34 +2323,34 @@ main::@19: scope:[main] from main::@33 (byte) current_movedown_counter#40 ← phi( main::@33/(byte) current_movedown_counter#31 ) (byte) keyboard_modifiers#48 ← phi( main::@33/(byte) keyboard_modifiers#37 ) (byte) keyboard_events_size#60 ← phi( main::@33/(byte) keyboard_events_size#43 ) - (byte) current_piece_char#71 ← phi( main::@33/(byte) current_piece_char#50 ) + (byte) current_piece_char#70 ← phi( main::@33/(byte) current_piece_char#49 ) (byte) current_orientation#71 ← phi( main::@33/(byte) current_orientation#9 ) (byte*) current_piece#65 ← phi( main::@33/(byte*) current_piece#51 ) - (byte*) current_piece_gfx#84 ← phi( main::@33/(byte*) current_piece_gfx#9 ) - (byte) current_xpos#89 ← phi( main::@33/(byte) current_xpos#79 ) - (byte) current_ypos#49 ← phi( main::@33/(byte) current_ypos#58 ) + (byte*) current_piece_gfx#83 ← phi( main::@33/(byte*) current_piece_gfx#8 ) + (byte) current_xpos#88 ← phi( main::@33/(byte) current_xpos#78 ) + (byte) current_ypos#48 ← phi( main::@33/(byte) current_ypos#57 ) call render_playfield to:main::@34 main::@34: scope:[main] from main::@19 (byte) current_movedown_counter#36 ← phi( main::@19/(byte) current_movedown_counter#40 ) (byte) keyboard_modifiers#44 ← phi( main::@19/(byte) keyboard_modifiers#48 ) (byte) keyboard_events_size#53 ← phi( main::@19/(byte) keyboard_events_size#60 ) - (byte) current_piece_char#62 ← phi( main::@19/(byte) current_piece_char#71 ) + (byte) current_piece_char#61 ← phi( main::@19/(byte) current_piece_char#70 ) (byte) current_orientation#65 ← phi( main::@19/(byte) current_orientation#71 ) (byte*) current_piece#59 ← phi( main::@19/(byte*) current_piece#65 ) - (byte*) current_piece_gfx#67 ← phi( main::@19/(byte*) current_piece_gfx#84 ) - (byte) current_xpos#67 ← phi( main::@19/(byte) current_xpos#89 ) - (byte) current_ypos#25 ← phi( main::@19/(byte) current_ypos#49 ) + (byte*) current_piece_gfx#66 ← phi( main::@19/(byte*) current_piece_gfx#83 ) + (byte) current_xpos#66 ← phi( main::@19/(byte) current_xpos#88 ) + (byte) current_ypos#24 ← phi( main::@19/(byte) current_ypos#48 ) call render_current to:main::@35 main::@35: scope:[main] from main::@34 (byte) current_movedown_counter#32 ← phi( main::@34/(byte) current_movedown_counter#36 ) (byte) keyboard_modifiers#38 ← phi( main::@34/(byte) keyboard_modifiers#44 ) (byte) keyboard_events_size#44 ← phi( main::@34/(byte) keyboard_events_size#53 ) - (byte) current_piece_char#51 ← phi( main::@34/(byte) current_piece_char#62 ) - (byte) current_ypos#59 ← phi( main::@34/(byte) current_ypos#25 ) - (byte) current_xpos#80 ← phi( main::@34/(byte) current_xpos#67 ) - (byte*) current_piece_gfx#66 ← phi( main::@34/(byte*) current_piece_gfx#67 ) + (byte) current_piece_char#50 ← phi( main::@34/(byte) current_piece_char#61 ) + (byte) current_ypos#58 ← phi( main::@34/(byte) current_ypos#24 ) + (byte) current_xpos#79 ← phi( main::@34/(byte) current_xpos#66 ) + (byte*) current_piece_gfx#65 ← phi( main::@34/(byte*) current_piece_gfx#66 ) (byte) current_orientation#60 ← phi( main::@34/(byte) current_orientation#65 ) (byte*) current_piece#52 ← phi( main::@34/(byte*) current_piece#59 ) to:main::@10 @@ -2342,18 +2358,18 @@ main::@return: scope:[main] from main::@1 (byte) current_movedown_counter#12 ← phi( main::@1/(byte) current_movedown_counter#19 ) (byte) keyboard_modifiers#16 ← phi( main::@1/(byte) keyboard_modifiers#24 ) (byte) keyboard_events_size#19 ← phi( main::@1/(byte) keyboard_events_size#27 ) - (byte) current_piece_char#16 ← phi( main::@1/(byte) current_piece_char#25 ) - (byte) current_ypos#22 ← phi( main::@1/(byte) current_ypos#38 ) - (byte) current_xpos#28 ← phi( main::@1/(byte) current_xpos#46 ) - (byte*) current_piece_gfx#21 ← phi( main::@1/(byte*) current_piece_gfx#35 ) + (byte) current_piece_char#15 ← phi( main::@1/(byte) current_piece_char#24 ) + (byte) current_ypos#21 ← phi( main::@1/(byte) current_ypos#37 ) + (byte) current_xpos#27 ← phi( main::@1/(byte) current_xpos#45 ) + (byte*) current_piece_gfx#20 ← phi( main::@1/(byte*) current_piece_gfx#34 ) (byte) current_orientation#24 ← phi( main::@1/(byte) current_orientation#39 ) (byte*) current_piece#16 ← phi( main::@1/(byte*) current_piece#28 ) (byte*) current_piece#7 ← (byte*) current_piece#16 (byte) current_orientation#10 ← (byte) current_orientation#24 - (byte*) current_piece_gfx#10 ← (byte*) current_piece_gfx#21 - (byte) current_xpos#11 ← (byte) current_xpos#28 - (byte) current_ypos#8 ← (byte) current_ypos#22 - (byte) current_piece_char#7 ← (byte) current_piece_char#16 + (byte*) current_piece_gfx#9 ← (byte*) current_piece_gfx#20 + (byte) current_xpos#10 ← (byte) current_xpos#27 + (byte) current_ypos#7 ← (byte) current_ypos#21 + (byte) current_piece_char#6 ← (byte) current_piece_char#15 (byte) keyboard_events_size#8 ← (byte) keyboard_events_size#19 (byte) keyboard_modifiers#8 ← (byte) keyboard_modifiers#16 (byte) current_movedown_counter#5 ← (byte) current_movedown_counter#12 @@ -2366,10 +2382,10 @@ main::@return: scope:[main] from main::@1 (byte) current_movedown_counter#20 ← phi( @24/(byte) current_movedown_counter#26 ) (byte) keyboard_modifiers#25 ← phi( @24/(byte) keyboard_modifiers#32 ) (byte) keyboard_events_size#28 ← phi( @24/(byte) keyboard_events_size#35 ) - (byte) current_piece_char#26 ← phi( @24/(byte) current_piece_char#37 ) - (byte) current_ypos#39 ← phi( @24/(byte) current_ypos#50 ) - (byte) current_xpos#47 ← phi( @24/(byte) current_xpos#65 ) - (byte*) current_piece_gfx#36 ← phi( @24/(byte*) current_piece_gfx#52 ) + (byte) current_piece_char#25 ← phi( @24/(byte) current_piece_char#36 ) + (byte) current_ypos#38 ← phi( @24/(byte) current_ypos#49 ) + (byte) current_xpos#46 ← phi( @24/(byte) current_xpos#64 ) + (byte*) current_piece_gfx#35 ← phi( @24/(byte*) current_piece_gfx#51 ) (byte) current_orientation#40 ← phi( @24/(byte) current_orientation#50 ) (byte*) current_piece#29 ← phi( @24/(byte*) current_piece#41 ) (byte) irq_sprite_ypos#8 ← phi( @24/(byte) irq_sprite_ypos#13 ) @@ -2379,18 +2395,18 @@ main::@return: scope:[main] from main::@1 (byte) current_movedown_counter#13 ← phi( @30/(byte) current_movedown_counter#5 ) (byte) keyboard_modifiers#17 ← phi( @30/(byte) keyboard_modifiers#8 ) (byte) keyboard_events_size#20 ← phi( @30/(byte) keyboard_events_size#8 ) - (byte) current_piece_char#17 ← phi( @30/(byte) current_piece_char#7 ) - (byte) current_ypos#23 ← phi( @30/(byte) current_ypos#8 ) - (byte) current_xpos#29 ← phi( @30/(byte) current_xpos#11 ) - (byte*) current_piece_gfx#22 ← phi( @30/(byte*) current_piece_gfx#10 ) + (byte) current_piece_char#16 ← phi( @30/(byte) current_piece_char#6 ) + (byte) current_ypos#22 ← phi( @30/(byte) current_ypos#7 ) + (byte) current_xpos#28 ← phi( @30/(byte) current_xpos#10 ) + (byte*) current_piece_gfx#21 ← phi( @30/(byte*) current_piece_gfx#9 ) (byte) current_orientation#25 ← phi( @30/(byte) current_orientation#10 ) (byte*) current_piece#17 ← phi( @30/(byte*) current_piece#7 ) (byte*) current_piece#8 ← (byte*) current_piece#17 (byte) current_orientation#11 ← (byte) current_orientation#25 - (byte*) current_piece_gfx#11 ← (byte*) current_piece_gfx#22 - (byte) current_xpos#12 ← (byte) current_xpos#29 - (byte) current_ypos#9 ← (byte) current_ypos#23 - (byte) current_piece_char#8 ← (byte) current_piece_char#17 + (byte*) current_piece_gfx#10 ← (byte*) current_piece_gfx#21 + (byte) current_xpos#11 ← (byte) current_xpos#28 + (byte) current_ypos#8 ← (byte) current_ypos#22 + (byte) current_piece_char#7 ← (byte) current_piece_char#16 (byte) keyboard_events_size#9 ← (byte) keyboard_events_size#20 (byte) keyboard_modifiers#9 ← (byte) keyboard_modifiers#17 (byte) current_movedown_counter#6 ← (byte) current_movedown_counter#13 @@ -3091,6 +3107,10 @@ SYMBOL TABLE SSA (byte) current_piece_char#79 (byte) current_piece_char#8 (byte) current_piece_char#80 +(byte) current_piece_char#81 +(byte) current_piece_char#82 +(byte) current_piece_char#83 +(byte) current_piece_char#84 (byte) current_piece_char#9 (byte*) current_piece_gfx (byte*) current_piece_gfx#0 @@ -3186,6 +3206,10 @@ SYMBOL TABLE SSA (byte*) current_piece_gfx#90 (byte*) current_piece_gfx#91 (byte*) current_piece_gfx#92 +(byte*) current_piece_gfx#93 +(byte*) current_piece_gfx#94 +(byte*) current_piece_gfx#95 +(byte*) current_piece_gfx#96 (byte) current_xpos (byte) current_xpos#0 (byte) current_xpos#1 @@ -3193,6 +3217,10 @@ SYMBOL TABLE SSA (byte) current_xpos#100 (byte) current_xpos#101 (byte) current_xpos#102 +(byte) current_xpos#103 +(byte) current_xpos#104 +(byte) current_xpos#105 +(byte) current_xpos#106 (byte) current_xpos#11 (byte) current_xpos#12 (byte) current_xpos#13 @@ -3366,7 +3394,11 @@ SYMBOL TABLE SSA (byte) current_ypos#74 (byte) current_ypos#75 (byte) current_ypos#76 +(byte) current_ypos#77 +(byte) current_ypos#78 +(byte) current_ypos#79 (byte) current_ypos#8 +(byte) current_ypos#80 (byte) current_ypos#9 (void()) fill((byte*) fill::start , (word) fill::size , (byte) fill::val) (byte*~) fill::$0 @@ -4705,7 +4737,7 @@ Inversing boolean not (bool~) play_collision::$6 ← (byte) play_collision::ypos Inversing boolean not (bool~) play_collision::$9 ← (byte~) play_collision::$7 == (byte/signed byte/word/signed word/dword/signed dword) 0 from (bool~) play_collision::$8 ← (byte~) play_collision::$7 != (byte/signed byte/word/signed word/dword/signed dword) 0 Inversing boolean not (bool~) play_collision::$11 ← (byte) play_collision::col#4 < (byte) PLAYFIELD_COLS#0 from (bool~) play_collision::$10 ← (byte) play_collision::col#4 >= (byte) PLAYFIELD_COLS#0 Inversing boolean not (bool~) play_collision::$13 ← *((byte*) play_collision::playfield_line#1 + (byte) play_collision::col#5) == (byte/signed byte/word/signed word/dword/signed dword) 0 from (bool~) play_collision::$12 ← *((byte*) play_collision::playfield_line#1 + (byte) play_collision::col#5) != (byte/signed byte/word/signed word/dword/signed dword) 0 -Inversing boolean not (bool~) play_lock_current::$2 ← *((byte*) current_piece_gfx#16 + (byte) play_lock_current::i#2) == (byte/signed byte/word/signed word/dword/signed dword) 0 from (bool~) play_lock_current::$1 ← *((byte*) current_piece_gfx#16 + (byte) play_lock_current::i#2) != (byte/signed byte/word/signed word/dword/signed dword) 0 +Inversing boolean not (bool~) play_lock_current::$2 ← *((byte*) current_piece_gfx#15 + (byte) play_lock_current::i#2) == (byte/signed byte/word/signed word/dword/signed dword) 0 from (bool~) play_lock_current::$1 ← *((byte*) current_piece_gfx#15 + (byte) play_lock_current::i#2) != (byte/signed byte/word/signed word/dword/signed dword) 0 Inversing boolean not (bool~) play_remove_lines::$7 ← (byte) play_remove_lines::c#0 != (byte/signed byte/word/signed word/dword/signed dword) 0 from (bool~) play_remove_lines::$6 ← (byte) play_remove_lines::c#0 == (byte/signed byte/word/signed word/dword/signed dword) 0 Inversing boolean not (bool~) play_remove_lines::$10 ← (byte) play_remove_lines::full#2 != (byte/signed byte/word/signed word/dword/signed dword) 1 from (bool~) play_remove_lines::$9 ← (byte) play_remove_lines::full#2 == (byte/signed byte/word/signed word/dword/signed dword) 1 Inversing boolean not (bool~) main::$16 ← (byte) main::render#3 == (byte/signed byte/word/signed word/dword/signed dword) 0 from (bool~) main::$15 ← (byte) main::render#3 != (byte/signed byte/word/signed word/dword/signed dword) 0 @@ -4715,6 +4747,10 @@ Alias candidate removed (volatile)(byte) toSpritePtr1_return#0 = (byte) toSprite Alias candidate removed (volatile)(byte) irq::toSpritePtr2_return#0 = (byte) irq::toSpritePtr2_$2#0 (byte) irq::toSpritePtr2_return#2 (byte) irq::toSpritePtr2_return#1 (byte) irq::toSpritePtr2_return#3 (byte~) irq::$2 (byte) irq_sprite_ptr#1 Alias (byte*) fill::end#0 = (byte*~) fill::$0 Alias (byte*) fill::addr#0 = (byte*) fill::start#1 +Alias (byte*) current_piece_gfx#35 = (byte*) current_piece_gfx#95 (byte*) current_piece_gfx#96 (byte*) current_piece_gfx#94 (byte*) current_piece_gfx#93 (byte*) current_piece_gfx#92 (byte*) current_piece_gfx#91 (byte*) current_piece_gfx#90 (byte*) current_piece_gfx#84 (byte*) current_piece_gfx#77 (byte*) current_piece_gfx#68 (byte*) current_piece_gfx#61 (byte*) current_piece_gfx#51 +Alias (byte) current_xpos#100 = (byte) current_xpos#105 (byte) current_xpos#106 (byte) current_xpos#104 (byte) current_xpos#103 (byte) current_xpos#102 (byte) current_xpos#101 (byte) current_xpos#96 (byte) current_xpos#90 (byte) current_xpos#83 (byte) current_xpos#73 (byte) current_xpos#64 (byte) current_xpos#46 +Alias (byte) current_ypos#38 = (byte) current_ypos#79 (byte) current_ypos#80 (byte) current_ypos#78 (byte) current_ypos#77 (byte) current_ypos#76 (byte) current_ypos#75 (byte) current_ypos#74 (byte) current_ypos#70 (byte) current_ypos#64 (byte) current_ypos#59 (byte) current_ypos#54 (byte) current_ypos#49 +Alias (byte) current_piece_char#25 = (byte) current_piece_char#83 (byte) current_piece_char#84 (byte) current_piece_char#82 (byte) current_piece_char#81 (byte) current_piece_char#80 (byte) current_piece_char#79 (byte) current_piece_char#78 (byte) current_piece_char#72 (byte) current_piece_char#64 (byte) current_piece_char#53 (byte) current_piece_char#43 (byte) current_piece_char#36 Alias (byte) keyboard_matrix_read::return#0 = (byte) keyboard_matrix_read::row_pressed_bits#0 (byte~) keyboard_matrix_read::$0 (byte) keyboard_matrix_read::return#3 (byte) keyboard_matrix_read::return#1 Alias (byte) KEY_MODIFIER_SHIFT#0 = (byte~) $0 Alias (byte) keyboard_matrix_read::return#2 = (byte) keyboard_matrix_read::return#4 @@ -4784,24 +4820,20 @@ Alias (byte) render_playfield::l#3 = (byte) render_playfield::l#4 Alias (byte) render_playfield::i#1 = (byte) render_playfield::i#4 Alias (byte) render_current::ypos2#0 = (byte~) render_current::$0 Alias (byte) render_current::ypos2#2 = (byte) render_current::ypos2#3 (byte) render_current::ypos2#6 -Alias (byte) current_xpos#13 = (byte) current_xpos#30 (byte) current_xpos#69 -Alias (byte*) current_piece_gfx#23 = (byte*) current_piece_gfx#37 (byte*) current_piece_gfx#68 +Alias (byte) current_xpos#12 = (byte) current_xpos#29 (byte) current_xpos#68 +Alias (byte*) current_piece_gfx#22 = (byte*) current_piece_gfx#36 (byte*) current_piece_gfx#67 Alias (byte) render_current::i#3 = (byte) render_current::i#6 (byte) render_current::i#5 Alias (byte) render_current::l#4 = (byte) render_current::l#9 (byte) render_current::l#5 -Alias (byte) current_piece_char#38 = (byte) current_piece_char#52 (byte) current_piece_char#72 +Alias (byte) current_piece_char#37 = (byte) current_piece_char#51 (byte) current_piece_char#71 Alias (byte) render_current::xpos#3 = (byte) render_current::xpos#5 (byte) render_current::xpos#6 (byte) render_current::xpos#4 -Alias (byte) current_piece_char#18 = (byte) current_piece_char#27 (byte) current_piece_char#53 (byte) current_piece_char#9 +Alias (byte) current_piece_char#17 = (byte) current_piece_char#26 (byte) current_piece_char#52 (byte) current_piece_char#8 Alias (byte*) render_current::screen_line#1 = (byte*) render_current::screen_line#2 (byte*) render_current::screen_line#3 (byte*) render_current::screen_line#5 Alias (byte) render_current::c#3 = (byte) render_current::c#6 (byte) render_current::c#4 (byte) render_current::c#5 Alias (byte) render_current::ypos2#10 = (byte) render_current::ypos2#8 (byte) render_current::ypos2#9 (byte) render_current::ypos2#7 Alias (byte) render_current::l#10 = (byte) render_current::l#7 (byte) render_current::l#8 (byte) render_current::l#6 -Alias (byte*) current_piece_gfx#12 = (byte*) current_piece_gfx#55 (byte*) current_piece_gfx#39 (byte*) current_piece_gfx#38 +Alias (byte*) current_piece_gfx#11 = (byte*) current_piece_gfx#54 (byte*) current_piece_gfx#38 (byte*) current_piece_gfx#37 Alias (byte) render_current::i#10 = (byte) render_current::i#11 (byte) render_current::i#2 (byte) render_current::i#9 -Alias (byte) current_xpos#81 = (byte) current_xpos#90 (byte) current_xpos#82 (byte) current_xpos#83 -Alias (byte*) current_piece_gfx#0 = (byte*) current_piece_gfx#92 (byte*) current_piece_gfx#91 (byte*) current_piece_gfx#85 (byte*) current_piece_gfx#78 (byte*) current_piece_gfx#69 (byte*) current_piece_gfx#62 (byte*) current_piece_gfx#52 (byte*) current_piece_gfx#36 -Alias (byte) current_xpos#0 = (byte) current_xpos#102 (byte) current_xpos#101 (byte) current_xpos#97 (byte) current_xpos#91 (byte) current_xpos#84 (byte) current_xpos#74 (byte) current_xpos#65 (byte) current_xpos#47 -Alias (byte) current_ypos#0 = (byte) current_ypos#76 (byte) current_ypos#75 (byte) current_ypos#71 (byte) current_ypos#65 (byte) current_ypos#60 (byte) current_ypos#55 (byte) current_ypos#50 (byte) current_ypos#39 -Alias (byte) current_piece_char#0 = (byte) current_piece_char#80 (byte) current_piece_char#79 (byte) current_piece_char#73 (byte) current_piece_char#65 (byte) current_piece_char#54 (byte) current_piece_char#44 (byte) current_piece_char#37 (byte) current_piece_char#26 +Alias (byte) current_xpos#80 = (byte) current_xpos#89 (byte) current_xpos#81 (byte) current_xpos#82 Alias (byte) sprites_init::xpos#0 = (byte/signed word/word/dword/signed dword/signed byte~) sprites_init::$1 Alias (byte) sprites_init::s2#0 = (byte~) sprites_init::$2 Alias (byte) sprites_init::xpos#1 = (byte/signed word/word/dword/signed dword~) sprites_init::$3 @@ -4829,53 +4861,53 @@ Alias (byte) irq_cnt#0 = (byte) irq_cnt#17 (byte) irq_cnt#15 (byte) irq_cnt#11 Alias (byte) keyboard_event_pressed::return#12 = (byte) keyboard_event_pressed::return#6 Alias (byte) current_movedown_counter#15 = (byte) current_movedown_counter#16 (byte) current_movedown_counter#21 (byte) current_movedown_counter#9 (byte) current_movedown_counter#17 Alias (byte) play_move_down::movedown#10 = (byte) play_move_down::movedown#12 (byte) play_move_down::movedown#8 (byte) play_move_down::movedown#11 (byte) play_move_down::movedown#5 -Alias (byte) current_ypos#51 = (byte) current_ypos#52 (byte) current_ypos#61 (byte) current_ypos#62 (byte) current_ypos#53 -Alias (byte) current_xpos#70 = (byte) current_xpos#71 (byte) current_xpos#85 (byte) current_xpos#86 (byte) current_xpos#72 +Alias (byte) current_ypos#50 = (byte) current_ypos#51 (byte) current_ypos#60 (byte) current_ypos#61 (byte) current_ypos#52 +Alias (byte) current_xpos#69 = (byte) current_xpos#70 (byte) current_xpos#84 (byte) current_xpos#85 (byte) current_xpos#71 Alias (byte) current_orientation#51 = (byte) current_orientation#52 (byte) current_orientation#61 (byte) current_orientation#62 (byte) current_orientation#53 Alias (byte*) current_piece#53 = (byte*) current_piece#54 (byte*) current_piece#60 (byte*) current_piece#61 (byte*) current_piece#55 -Alias (byte*) current_piece_gfx#70 = (byte*) current_piece_gfx#71 (byte*) current_piece_gfx#79 (byte*) current_piece_gfx#80 (byte*) current_piece_gfx#72 -Alias (byte) current_piece_char#55 = (byte) current_piece_char#56 (byte) current_piece_char#66 (byte) current_piece_char#67 (byte) current_piece_char#57 +Alias (byte*) current_piece_gfx#69 = (byte*) current_piece_gfx#70 (byte*) current_piece_gfx#78 (byte*) current_piece_gfx#79 (byte*) current_piece_gfx#71 +Alias (byte) current_piece_char#54 = (byte) current_piece_char#55 (byte) current_piece_char#65 (byte) current_piece_char#66 (byte) current_piece_char#56 Alias (byte) play_move_down::movedown#0 = (byte) play_move_down::movedown#4 Alias (byte) current_movedown_counter#1 = (byte) current_movedown_counter#27 -Alias (byte) current_ypos#66 = (byte) current_ypos#67 -Alias (byte) current_xpos#92 = (byte) current_xpos#93 +Alias (byte) current_ypos#65 = (byte) current_ypos#66 +Alias (byte) current_xpos#91 = (byte) current_xpos#92 Alias (byte) current_orientation#66 = (byte) current_orientation#67 Alias (byte*) current_piece#66 = (byte*) current_piece#67 -Alias (byte*) current_piece_gfx#86 = (byte*) current_piece_gfx#87 -Alias (byte) current_piece_char#74 = (byte) current_piece_char#75 +Alias (byte*) current_piece_gfx#85 = (byte*) current_piece_gfx#86 +Alias (byte) current_piece_char#73 = (byte) current_piece_char#74 Alias (byte) play_move_down::movedown#7 = (byte) play_move_down::movedown#9 -Alias (byte) current_ypos#40 = (byte) current_ypos#41 -Alias (byte) current_xpos#50 = (byte) current_xpos#51 +Alias (byte) current_ypos#39 = (byte) current_ypos#40 +Alias (byte) current_xpos#49 = (byte) current_xpos#50 Alias (byte) current_orientation#41 = (byte) current_orientation#42 Alias (byte) current_movedown_counter#28 = (byte) current_movedown_counter#8 Alias (byte*) current_piece#42 = (byte*) current_piece#43 -Alias (byte*) current_piece_gfx#56 = (byte*) current_piece_gfx#57 -Alias (byte) current_piece_char#40 = (byte) current_piece_char#41 +Alias (byte*) current_piece_gfx#55 = (byte*) current_piece_gfx#56 +Alias (byte) current_piece_char#39 = (byte) current_piece_char#40 Alias (byte) current_movedown_counter#18 = (byte) current_movedown_counter#22 -Alias (byte) current_ypos#11 = (byte) current_ypos#29 (byte) current_ypos#26 (byte) current_ypos#27 (byte) current_ypos#12 (byte) current_ypos#35 (byte) current_ypos#42 (byte) current_ypos#28 +Alias (byte) current_ypos#10 = (byte) current_ypos#28 (byte) current_ypos#25 (byte) current_ypos#26 (byte) current_ypos#11 (byte) current_ypos#34 (byte) current_ypos#41 (byte) current_ypos#27 Alias (byte*) current_piece#18 = (byte*) current_piece#19 (byte*) current_piece#30 (byte*) current_piece#22 (byte*) current_piece#44 (byte*) current_piece#32 (byte*) current_piece#45 (byte*) current_piece#31 Alias (byte) current_orientation#12 = (byte) current_orientation#28 (byte) current_orientation#26 (byte) current_orientation#54 (byte) current_orientation#44 (byte) current_orientation#55 (byte) current_orientation#43 (byte) current_orientation#27 -Alias (byte*) current_piece_gfx#25 = (byte*) current_piece_gfx#26 (byte*) current_piece_gfx#40 (byte*) current_piece_gfx#73 (byte*) current_piece_gfx#58 (byte*) current_piece_gfx#42 (byte*) current_piece_gfx#59 (byte*) current_piece_gfx#41 -Alias (byte) current_xpos#14 = (byte) current_xpos#33 (byte) current_xpos#31 (byte) current_xpos#73 (byte) current_xpos#53 (byte) current_xpos#59 (byte) current_xpos#52 (byte) current_xpos#32 -Alias (byte) current_piece_char#19 = (byte) current_piece_char#20 (byte) current_piece_char#28 (byte) current_piece_char#58 (byte) current_piece_char#42 (byte) current_piece_char#30 (byte) current_piece_char#43 (byte) current_piece_char#29 +Alias (byte*) current_piece_gfx#24 = (byte*) current_piece_gfx#25 (byte*) current_piece_gfx#39 (byte*) current_piece_gfx#72 (byte*) current_piece_gfx#57 (byte*) current_piece_gfx#41 (byte*) current_piece_gfx#58 (byte*) current_piece_gfx#40 +Alias (byte) current_xpos#13 = (byte) current_xpos#32 (byte) current_xpos#30 (byte) current_xpos#72 (byte) current_xpos#52 (byte) current_xpos#58 (byte) current_xpos#51 (byte) current_xpos#31 +Alias (byte) current_piece_char#18 = (byte) current_piece_char#19 (byte) current_piece_char#27 (byte) current_piece_char#57 (byte) current_piece_char#41 (byte) current_piece_char#29 (byte) current_piece_char#42 (byte) current_piece_char#28 Alias (byte) play_collision::ypos#0 = (byte/signed word/word/dword/signed dword~) play_move_down::$11 Alias (byte) play_collision::return#0 = (byte) play_collision::return#10 Alias (byte*) current_piece#1 = (byte*) current_piece#9 Alias (byte) current_orientation#1 = (byte) current_orientation#13 -Alias (byte*) current_piece_gfx#1 = (byte*) current_piece_gfx#13 -Alias (byte) current_xpos#1 = (byte) current_xpos#15 -Alias (byte) current_ypos#13 = (byte) current_ypos#2 -Alias (byte) current_piece_char#1 = (byte) current_piece_char#10 +Alias (byte*) current_piece_gfx#0 = (byte*) current_piece_gfx#12 +Alias (byte) current_xpos#0 = (byte) current_xpos#14 +Alias (byte) current_ypos#1 = (byte) current_ypos#12 +Alias (byte) current_piece_char#0 = (byte) current_piece_char#9 Alias (byte) play_move_down::return#2 = (byte) play_move_down::return#4 Alias (byte) current_movedown_counter#10 = (byte) current_movedown_counter#3 -Alias (byte) current_ypos#14 = (byte) current_ypos#3 +Alias (byte) current_ypos#13 = (byte) current_ypos#2 Alias (byte*) current_piece#10 = (byte*) current_piece#2 Alias (byte) current_orientation#14 = (byte) current_orientation#2 -Alias (byte*) current_piece_gfx#14 = (byte*) current_piece_gfx#2 -Alias (byte) current_xpos#16 = (byte) current_xpos#2 -Alias (byte) current_piece_char#11 = (byte) current_piece_char#2 -Alias (byte) current_xpos#17 = (byte) current_xpos#35 (byte) current_xpos#39 (byte) current_xpos#36 (byte) current_xpos#54 (byte) current_xpos#18 (byte) current_xpos#37 (byte) current_xpos#55 (byte) current_xpos#19 (byte) current_xpos#56 (byte) current_xpos#21 -Alias (byte) current_ypos#15 = (byte) current_ypos#31 (byte) current_ypos#32 (byte) current_ypos#16 +Alias (byte*) current_piece_gfx#1 = (byte*) current_piece_gfx#13 +Alias (byte) current_xpos#1 = (byte) current_xpos#15 +Alias (byte) current_piece_char#1 = (byte) current_piece_char#10 +Alias (byte) current_xpos#16 = (byte) current_xpos#34 (byte) current_xpos#38 (byte) current_xpos#35 (byte) current_xpos#53 (byte) current_xpos#17 (byte) current_xpos#36 (byte) current_xpos#54 (byte) current_xpos#18 (byte) current_xpos#55 (byte) current_xpos#20 +Alias (byte) current_ypos#14 = (byte) current_ypos#30 (byte) current_ypos#31 (byte) current_ypos#15 Alias (byte) current_orientation#15 = (byte) current_orientation#30 (byte) current_orientation#31 (byte) current_orientation#16 Alias (byte*) current_piece#23 = (byte*) current_piece#33 (byte*) current_piece#34 (byte*) current_piece#24 Alias (byte) play_collision::xpos#1 = (byte/signed word/word/dword/signed dword~) play_move_leftright::$7 @@ -4884,24 +4916,24 @@ Alias (byte) play_move_leftright::key_event#1 = (byte) play_move_leftright::key_ Alias (byte) play_collision::xpos#2 = (byte/signed word/word/dword/signed dword~) play_move_leftright::$3 Alias (byte) play_collision::return#12 = (byte) play_collision::return#2 Alias (byte) play_move_leftright::return#1 = (byte) play_move_leftright::return#5 -Alias (byte) current_xpos#20 = (byte) current_xpos#4 +Alias (byte) current_xpos#19 = (byte) current_xpos#3 Alias (byte) current_orientation#17 = (byte) current_orientation#32 (byte) current_orientation#33 (byte) current_orientation#18 (byte) current_orientation#35 -Alias (byte) current_xpos#40 = (byte) current_xpos#57 (byte) current_xpos#58 (byte) current_xpos#41 -Alias (byte) current_ypos#33 = (byte) current_ypos#43 (byte) current_ypos#44 (byte) current_ypos#34 +Alias (byte) current_xpos#39 = (byte) current_xpos#56 (byte) current_xpos#57 (byte) current_xpos#40 +Alias (byte) current_ypos#32 = (byte) current_ypos#42 (byte) current_ypos#43 (byte) current_ypos#33 Alias (byte*) current_piece#35 = (byte*) current_piece#46 (byte*) current_piece#47 (byte*) current_piece#36 -Alias (byte*) current_piece_gfx#29 = (byte*) current_piece_gfx#74 (byte*) current_piece_gfx#60 (byte*) current_piece_gfx#43 (byte*) current_piece_gfx#75 +Alias (byte*) current_piece_gfx#28 = (byte*) current_piece_gfx#73 (byte*) current_piece_gfx#59 (byte*) current_piece_gfx#42 (byte*) current_piece_gfx#74 Alias (byte) play_move_rotate::orientation#1 = (byte/word/dword~) play_move_rotate::$5 Alias (byte) play_move_rotate::key_event#1 = (byte) play_move_rotate::key_event#2 Alias (byte) play_move_rotate::orientation#2 = (byte/word/dword~) play_move_rotate::$3 Alias (byte) play_move_rotate::return#1 = (byte) play_move_rotate::return#5 Alias (byte) current_orientation#19 = (byte) current_orientation#3 -Alias (byte*) current_piece_gfx#15 = (byte*) current_piece_gfx#3 +Alias (byte*) current_piece_gfx#14 = (byte*) current_piece_gfx#2 Alias (byte) play_collision::return#13 = (byte) play_collision::return#3 Alias (byte) play_move_rotate::orientation#3 = (byte) play_move_rotate::orientation#5 (byte) play_move_rotate::orientation#4 Alias (byte*) current_piece#11 = (byte*) current_piece#21 (byte*) current_piece#25 Alias (byte) current_orientation#34 = (byte) current_orientation#45 (byte) current_orientation#56 -Alias (byte*) current_piece_gfx#28 = (byte*) current_piece_gfx#44 (byte*) current_piece_gfx#61 -Alias (byte*) current_piece_gfx#4 = (byte*~) play_move_rotate::$9 +Alias (byte*) current_piece_gfx#27 = (byte*) current_piece_gfx#43 (byte*) current_piece_gfx#60 +Alias (byte*) current_piece_gfx#3 = (byte*~) play_move_rotate::$9 Alias (byte*) current_piece#0 = (byte*) current_piece#41 (byte*) current_piece#29 Alias (byte) current_orientation#0 = (byte) current_orientation#50 (byte) current_orientation#40 Alias (byte) current_movedown_counter#0 = (byte) current_movedown_counter#26 (byte) current_movedown_counter#20 @@ -4923,30 +4955,30 @@ Alias (byte) play_collision::xpos#6 = (byte) play_collision::xpos#7 Alias (byte*) play_collision::piece_gfx#3 = (byte*) play_collision::piece_gfx#4 Alias (byte) play_collision::i#4 = (byte) play_collision::i#5 Alias (byte) play_lock_current::ypos2#0 = (byte~) play_lock_current::$0 -Alias (byte) current_piece_char#12 = (byte) current_piece_char#22 +Alias (byte) current_piece_char#11 = (byte) current_piece_char#21 Alias (byte*) play_lock_current::playfield_line#1 = (byte*) play_lock_current::playfield_line#2 Alias (byte) play_lock_current::col#3 = (byte) play_lock_current::col#4 Alias (byte) play_lock_current::c#3 = (byte) play_lock_current::c#4 -Alias (byte*) current_piece_gfx#16 = (byte*) current_piece_gfx#47 +Alias (byte*) current_piece_gfx#15 = (byte*) current_piece_gfx#46 Alias (byte) play_lock_current::i#1 = (byte) play_lock_current::i#6 Alias (byte) play_lock_current::ypos2#5 = (byte) play_lock_current::ypos2#6 Alias (byte) play_lock_current::l#4 = (byte) play_lock_current::l#5 -Alias (byte) current_xpos#75 = (byte) current_xpos#76 +Alias (byte) current_xpos#74 = (byte) current_xpos#75 Alias (byte) play_lock_current::ypos2#3 = (byte) play_lock_current::ypos2#4 Alias (byte) play_lock_current::l#2 = (byte) play_lock_current::l#3 -Alias (byte) current_xpos#43 = (byte) current_xpos#60 -Alias (byte*) current_piece_gfx#31 = (byte*) current_piece_gfx#46 +Alias (byte) current_xpos#42 = (byte) current_xpos#59 +Alias (byte*) current_piece_gfx#30 = (byte*) current_piece_gfx#45 Alias (byte) play_lock_current::i#4 = (byte) play_lock_current::i#5 -Alias (byte) current_piece_char#32 = (byte) current_piece_char#46 +Alias (byte) current_piece_char#31 = (byte) current_piece_char#45 Alias (byte) sid_rnd::return#2 = (byte) sid_rnd::return#4 Alias (byte) play_spawn_current::piece_idx#1 = (byte~) play_spawn_current::$2 Alias (byte) play_spawn_current::piece_idx#2 = (byte) play_spawn_current::piece_idx#3 -Alias (byte*) current_piece_gfx#17 = (byte*) current_piece_gfx#5 (byte*~) play_spawn_current::$4 (byte*) current_piece_gfx#6 +Alias (byte*) current_piece_gfx#16 = (byte*) current_piece_gfx#4 (byte*~) play_spawn_current::$4 (byte*) current_piece_gfx#5 Alias (byte*) current_piece#13 = (byte*) current_piece#3 (byte*) current_piece#4 Alias (byte) current_orientation#20 = (byte) current_orientation#5 (byte) current_orientation#6 -Alias (byte) current_xpos#24 = (byte) current_xpos#6 (byte) current_xpos#7 -Alias (byte) current_ypos#19 = (byte) current_ypos#4 (byte) current_ypos#5 -Alias (byte) current_piece_char#13 = (byte) current_piece_char#3 (byte) current_piece_char#4 +Alias (byte) current_xpos#23 = (byte) current_xpos#5 (byte) current_xpos#6 +Alias (byte) current_ypos#18 = (byte) current_ypos#3 (byte) current_ypos#4 +Alias (byte) current_piece_char#12 = (byte) current_piece_char#2 (byte) current_piece_char#3 Alias (byte) play_remove_lines::r#0 = (byte/signed word/word/dword/signed dword~) play_remove_lines::$1 Alias (byte) play_remove_lines::w#0 = (byte/signed word/word/dword/signed dword~) play_remove_lines::$3 Alias (byte) play_remove_lines::c#0 = (byte) play_remove_lines::c#2 @@ -4962,46 +4994,46 @@ Alias (byte) play_remove_lines::w#2 = (byte~) play_remove_lines::$11 Alias (byte) play_remove_lines::w#6 = (byte) play_remove_lines::w#7 Alias (byte*) current_piece#26 = (byte*) current_piece#62 (byte*) current_piece#68 (byte*) current_piece#57 (byte*) current_piece#48 (byte*) current_piece#37 Alias (byte) current_orientation#36 = (byte) current_orientation#68 (byte) current_orientation#72 (byte) current_orientation#63 (byte) current_orientation#57 (byte) current_orientation#46 -Alias (byte*) current_piece_gfx#32 = (byte*) current_piece_gfx#81 (byte*) current_piece_gfx#88 (byte*) current_piece_gfx#76 (byte*) current_piece_gfx#63 (byte*) current_piece_gfx#48 -Alias (byte) current_xpos#44 = (byte) current_xpos#94 (byte) current_xpos#98 (byte) current_xpos#87 (byte) current_xpos#77 (byte) current_xpos#61 -Alias (byte) current_ypos#36 = (byte) current_ypos#68 (byte) current_ypos#72 (byte) current_ypos#63 (byte) current_ypos#56 (byte) current_ypos#45 -Alias (byte) current_piece_char#23 = (byte) current_piece_char#68 (byte) current_piece_char#76 (byte) current_piece_char#59 (byte) current_piece_char#47 (byte) current_piece_char#33 +Alias (byte*) current_piece_gfx#31 = (byte*) current_piece_gfx#80 (byte*) current_piece_gfx#87 (byte*) current_piece_gfx#75 (byte*) current_piece_gfx#62 (byte*) current_piece_gfx#47 +Alias (byte) current_xpos#43 = (byte) current_xpos#93 (byte) current_xpos#97 (byte) current_xpos#86 (byte) current_xpos#76 (byte) current_xpos#60 +Alias (byte) current_ypos#35 = (byte) current_ypos#67 (byte) current_ypos#71 (byte) current_ypos#62 (byte) current_ypos#55 (byte) current_ypos#44 +Alias (byte) current_piece_char#22 = (byte) current_piece_char#67 (byte) current_piece_char#75 (byte) current_piece_char#58 (byte) current_piece_char#46 (byte) current_piece_char#32 Alias (byte) keyboard_events_size#33 = (byte) keyboard_events_size#76 (byte) keyboard_events_size#78 (byte) keyboard_events_size#73 (byte) keyboard_events_size#69 (byte) keyboard_events_size#66 (byte) keyboard_events_size#58 (byte) keyboard_events_size#49 (byte) keyboard_events_size#40 Alias (byte) keyboard_modifiers#30 = (byte) keyboard_modifiers#57 (byte) keyboard_modifiers#59 (byte) keyboard_modifiers#55 (byte) keyboard_modifiers#53 (byte) keyboard_modifiers#50 (byte) keyboard_modifiers#46 (byte) keyboard_modifiers#40 (byte) keyboard_modifiers#34 Alias (byte) current_movedown_counter#24 = (byte) current_movedown_counter#46 (byte) current_movedown_counter#47 (byte) current_movedown_counter#45 (byte) current_movedown_counter#44 (byte) current_movedown_counter#41 (byte) current_movedown_counter#37 (byte) current_movedown_counter#33 (byte) current_movedown_counter#29 Alias (byte*) current_piece#14 = (byte*) current_piece#5 (byte*) current_piece#49 (byte*) current_piece#39 Alias (byte) current_orientation#21 = (byte) current_orientation#7 (byte) current_orientation#58 (byte) current_orientation#48 -Alias (byte*) current_piece_gfx#18 = (byte*) current_piece_gfx#7 (byte*) current_piece_gfx#64 (byte*) current_piece_gfx#50 -Alias (byte) current_xpos#25 = (byte) current_xpos#8 (byte) current_xpos#66 (byte) current_xpos#63 -Alias (byte) current_ypos#20 = (byte) current_ypos#6 (byte) current_ypos#24 (byte) current_ypos#47 -Alias (byte) current_piece_char#14 = (byte) current_piece_char#5 (byte) current_piece_char#48 (byte) current_piece_char#35 +Alias (byte*) current_piece_gfx#17 = (byte*) current_piece_gfx#6 (byte*) current_piece_gfx#63 (byte*) current_piece_gfx#49 +Alias (byte) current_xpos#24 = (byte) current_xpos#7 (byte) current_xpos#65 (byte) current_xpos#62 +Alias (byte) current_ypos#19 = (byte) current_ypos#5 (byte) current_ypos#23 (byte) current_ypos#46 +Alias (byte) current_piece_char#13 = (byte) current_piece_char#4 (byte) current_piece_char#47 (byte) current_piece_char#34 Alias (byte) keyboard_events_size#19 = (byte) keyboard_events_size#50 (byte) keyboard_events_size#27 (byte) keyboard_events_size#8 Alias (byte) keyboard_modifiers#16 = (byte) keyboard_modifiers#41 (byte) keyboard_modifiers#24 (byte) keyboard_modifiers#8 Alias (byte) current_movedown_counter#12 = (byte) current_movedown_counter#42 (byte) current_movedown_counter#19 (byte) current_movedown_counter#5 -Alias (byte) current_ypos#22 = (byte) current_ypos#73 (byte) current_ypos#38 (byte) current_ypos#8 +Alias (byte) current_ypos#21 = (byte) current_ypos#72 (byte) current_ypos#37 (byte) current_ypos#7 Alias (byte*) current_piece#16 = (byte*) current_piece#69 (byte*) current_piece#28 (byte*) current_piece#7 Alias (byte) current_orientation#10 = (byte) current_orientation#73 (byte) current_orientation#39 (byte) current_orientation#24 -Alias (byte*) current_piece_gfx#10 = (byte*) current_piece_gfx#89 (byte*) current_piece_gfx#35 (byte*) current_piece_gfx#21 -Alias (byte) current_xpos#11 = (byte) current_xpos#99 (byte) current_xpos#46 (byte) current_xpos#28 -Alias (byte) current_piece_char#16 = (byte) current_piece_char#77 (byte) current_piece_char#25 (byte) current_piece_char#7 +Alias (byte*) current_piece_gfx#20 = (byte*) current_piece_gfx#88 (byte*) current_piece_gfx#34 (byte*) current_piece_gfx#9 +Alias (byte) current_xpos#10 = (byte) current_xpos#98 (byte) current_xpos#45 (byte) current_xpos#27 +Alias (byte) current_piece_char#15 = (byte) current_piece_char#76 (byte) current_piece_char#24 (byte) current_piece_char#6 Alias (byte) keyboard_events_size#41 = (byte) keyboard_events_size#51 Alias (byte) keyboard_modifiers#35 = (byte) keyboard_modifiers#42 Alias (byte) current_movedown_counter#38 = (byte) current_movedown_counter#43 -Alias (byte) current_ypos#69 = (byte) current_ypos#74 +Alias (byte) current_ypos#68 = (byte) current_ypos#73 Alias (byte*) current_piece#63 = (byte*) current_piece#70 Alias (byte) current_orientation#69 = (byte) current_orientation#74 -Alias (byte*) current_piece_gfx#82 = (byte*) current_piece_gfx#90 -Alias (byte) current_xpos#100 = (byte) current_xpos#95 -Alias (byte) current_piece_char#69 = (byte) current_piece_char#78 +Alias (byte*) current_piece_gfx#81 = (byte*) current_piece_gfx#89 +Alias (byte) current_xpos#94 = (byte) current_xpos#99 +Alias (byte) current_piece_char#68 = (byte) current_piece_char#77 Alias (byte) keyboard_events_size#26 = (byte) keyboard_events_size#42 (byte) keyboard_events_size#34 Alias (byte) keyboard_modifiers#23 = (byte) keyboard_modifiers#36 (byte) keyboard_modifiers#31 Alias (byte) current_movedown_counter#14 = (byte) current_movedown_counter#39 (byte) current_movedown_counter#34 (byte) current_movedown_counter#30 (byte) current_movedown_counter#25 -Alias (byte) current_ypos#37 = (byte) current_ypos#70 (byte) current_ypos#64 (byte) current_ypos#57 (byte) current_ypos#48 +Alias (byte) current_ypos#36 = (byte) current_ypos#69 (byte) current_ypos#63 (byte) current_ypos#56 (byte) current_ypos#47 Alias (byte*) current_piece#27 = (byte*) current_piece#64 (byte*) current_piece#58 (byte*) current_piece#50 (byte*) current_piece#40 Alias (byte) current_orientation#37 = (byte) current_orientation#70 (byte) current_orientation#64 (byte) current_orientation#59 (byte) current_orientation#49 -Alias (byte*) current_piece_gfx#33 = (byte*) current_piece_gfx#83 (byte*) current_piece_gfx#77 (byte*) current_piece_gfx#65 (byte*) current_piece_gfx#51 -Alias (byte) current_xpos#45 = (byte) current_xpos#96 (byte) current_xpos#88 (byte) current_xpos#78 (byte) current_xpos#64 -Alias (byte) current_piece_char#24 = (byte) current_piece_char#70 (byte) current_piece_char#60 (byte) current_piece_char#49 (byte) current_piece_char#36 +Alias (byte*) current_piece_gfx#32 = (byte*) current_piece_gfx#82 (byte*) current_piece_gfx#76 (byte*) current_piece_gfx#64 (byte*) current_piece_gfx#50 +Alias (byte) current_xpos#44 = (byte) current_xpos#95 (byte) current_xpos#87 (byte) current_xpos#77 (byte) current_xpos#63 +Alias (byte) current_piece_char#23 = (byte) current_piece_char#69 (byte) current_piece_char#59 (byte) current_piece_char#48 (byte) current_piece_char#35 Alias (byte) keyboard_events_size#17 = (byte) keyboard_events_size#6 Alias (byte) keyboard_modifiers#15 = (byte) keyboard_modifiers#7 (byte) keyboard_modifiers#51 (byte) keyboard_modifiers#47 (byte) keyboard_modifiers#43 (byte) keyboard_modifiers#37 (byte) keyboard_modifiers#48 (byte) keyboard_modifiers#44 (byte) keyboard_modifiers#38 Alias (byte) keyboard_event_get::return#3 = (byte) keyboard_event_get::return#5 @@ -5010,25 +5042,25 @@ Alias (byte) main::key_event#0 = (byte~) main::$11 (byte) main::key_event#1 (byt Alias (byte) play_move_down::return#3 = (byte) play_move_down::return#5 Alias (byte) main::render#0 = (byte) main::render#4 Alias (byte) current_movedown_counter#11 = (byte) current_movedown_counter#4 (byte) current_movedown_counter#35 (byte) current_movedown_counter#31 (byte) current_movedown_counter#40 (byte) current_movedown_counter#36 (byte) current_movedown_counter#32 -Alias (byte) current_ypos#21 = (byte) current_ypos#7 (byte) current_ypos#54 (byte) current_ypos#58 (byte) current_ypos#49 (byte) current_ypos#25 (byte) current_ypos#59 +Alias (byte) current_ypos#20 = (byte) current_ypos#6 (byte) current_ypos#53 (byte) current_ypos#57 (byte) current_ypos#48 (byte) current_ypos#24 (byte) current_ypos#58 Alias (byte*) current_piece#15 = (byte*) current_piece#6 (byte*) current_piece#56 (byte*) current_piece#51 (byte*) current_piece#65 (byte*) current_piece#59 (byte*) current_piece#52 Alias (byte) current_orientation#22 = (byte) current_orientation#8 (byte) current_orientation#38 -Alias (byte*) current_piece_gfx#19 = (byte*) current_piece_gfx#8 (byte*) current_piece_gfx#34 -Alias (byte) current_xpos#26 = (byte) current_xpos#9 -Alias (byte) current_piece_char#15 = (byte) current_piece_char#6 (byte) current_piece_char#61 (byte) current_piece_char#50 (byte) current_piece_char#71 (byte) current_piece_char#62 (byte) current_piece_char#51 +Alias (byte*) current_piece_gfx#18 = (byte*) current_piece_gfx#7 (byte*) current_piece_gfx#33 +Alias (byte) current_xpos#25 = (byte) current_xpos#8 +Alias (byte) current_piece_char#14 = (byte) current_piece_char#5 (byte) current_piece_char#60 (byte) current_piece_char#49 (byte) current_piece_char#70 (byte) current_piece_char#61 (byte) current_piece_char#50 Alias (byte) play_move_leftright::return#4 = (byte) play_move_leftright::return#6 Alias (byte) main::render#1 = (byte) main::render#5 -Alias (byte) current_xpos#10 = (byte) current_xpos#27 (byte) current_xpos#79 (byte) current_xpos#89 (byte) current_xpos#67 (byte) current_xpos#80 +Alias (byte) current_xpos#26 = (byte) current_xpos#9 (byte) current_xpos#78 (byte) current_xpos#88 (byte) current_xpos#66 (byte) current_xpos#79 Alias (byte) play_move_rotate::return#4 = (byte) play_move_rotate::return#6 Alias (byte) main::render#2 = (byte) main::render#6 Alias (byte) current_orientation#23 = (byte) current_orientation#9 (byte) current_orientation#71 (byte) current_orientation#65 (byte) current_orientation#60 -Alias (byte*) current_piece_gfx#20 = (byte*) current_piece_gfx#9 (byte*) current_piece_gfx#84 (byte*) current_piece_gfx#67 (byte*) current_piece_gfx#66 +Alias (byte*) current_piece_gfx#19 = (byte*) current_piece_gfx#8 (byte*) current_piece_gfx#83 (byte*) current_piece_gfx#66 (byte*) current_piece_gfx#65 Alias (byte*) current_piece#17 = (byte*) current_piece#8 Alias (byte) current_orientation#11 = (byte) current_orientation#25 -Alias (byte*) current_piece_gfx#11 = (byte*) current_piece_gfx#22 -Alias (byte) current_xpos#12 = (byte) current_xpos#29 -Alias (byte) current_ypos#23 = (byte) current_ypos#9 -Alias (byte) current_piece_char#17 = (byte) current_piece_char#8 +Alias (byte*) current_piece_gfx#10 = (byte*) current_piece_gfx#21 +Alias (byte) current_xpos#11 = (byte) current_xpos#28 +Alias (byte) current_ypos#22 = (byte) current_ypos#8 +Alias (byte) current_piece_char#16 = (byte) current_piece_char#7 Alias (byte) keyboard_events_size#20 = (byte) keyboard_events_size#9 Alias (byte) keyboard_modifiers#17 = (byte) keyboard_modifiers#9 Alias (byte) current_movedown_counter#13 = (byte) current_movedown_counter#6 @@ -5050,28 +5082,28 @@ Alias (byte) render_current::xpos#2 = (byte) render_current::xpos#3 Alias (byte) render_current::c#2 = (byte) render_current::c#3 Alias (byte) render_current::ypos2#10 = (byte) render_current::ypos2#5 Alias (byte) render_current::l#10 = (byte) render_current::l#3 -Alias (byte*) current_piece_gfx#12 = (byte*) current_piece_gfx#24 +Alias (byte*) current_piece_gfx#11 = (byte*) current_piece_gfx#23 Alias (byte) render_current::i#10 = (byte) render_current::i#7 -Alias (byte) current_xpos#68 = (byte) current_xpos#81 -Alias (byte) current_piece_char#18 = (byte) current_piece_char#39 +Alias (byte) current_xpos#67 = (byte) current_xpos#80 +Alias (byte) current_piece_char#17 = (byte) current_piece_char#38 Alias (byte*) render_current::screen_line#1 = (byte*) render_current::screen_line#4 Alias (byte) irq_cnt#10 = (byte) irq_cnt#3 Alias (byte) irq_raster_next#12 = (byte) irq_raster_next#3 Alias (byte) irq_sprite_ypos#10 = (byte) irq_sprite_ypos#11 Alias (byte) irq_sprite_ptr#10 = (byte) irq_sprite_ptr#3 Alias (byte) current_movedown_counter#1 = (byte) current_movedown_counter#15 (byte) current_movedown_counter#28 (byte) current_movedown_counter#18 -Alias (byte) current_ypos#11 = (byte) current_ypos#51 (byte) current_ypos#66 (byte) current_ypos#40 -Alias (byte) current_xpos#14 = (byte) current_xpos#70 (byte) current_xpos#92 (byte) current_xpos#50 +Alias (byte) current_ypos#10 = (byte) current_ypos#50 (byte) current_ypos#65 (byte) current_ypos#39 +Alias (byte) current_xpos#13 = (byte) current_xpos#69 (byte) current_xpos#91 (byte) current_xpos#49 Alias (byte) current_orientation#12 = (byte) current_orientation#51 (byte) current_orientation#66 (byte) current_orientation#41 Alias (byte*) current_piece#18 = (byte*) current_piece#53 (byte*) current_piece#66 (byte*) current_piece#42 -Alias (byte*) current_piece_gfx#25 = (byte*) current_piece_gfx#70 (byte*) current_piece_gfx#86 (byte*) current_piece_gfx#56 -Alias (byte) current_piece_char#19 = (byte) current_piece_char#55 (byte) current_piece_char#74 (byte) current_piece_char#40 -Alias (byte) current_xpos#17 = (byte) current_xpos#38 -Alias (byte) current_xpos#22 = (byte) current_xpos#40 -Alias (byte) current_ypos#17 = (byte) current_ypos#33 +Alias (byte*) current_piece_gfx#24 = (byte*) current_piece_gfx#69 (byte*) current_piece_gfx#85 (byte*) current_piece_gfx#55 +Alias (byte) current_piece_char#18 = (byte) current_piece_char#54 (byte) current_piece_char#73 (byte) current_piece_char#39 +Alias (byte) current_xpos#16 = (byte) current_xpos#37 +Alias (byte) current_xpos#21 = (byte) current_xpos#39 +Alias (byte) current_ypos#16 = (byte) current_ypos#32 Alias (byte*) current_piece#11 = (byte*) current_piece#35 Alias (byte) current_orientation#17 = (byte) current_orientation#34 -Alias (byte*) current_piece_gfx#28 = (byte*) current_piece_gfx#29 +Alias (byte*) current_piece_gfx#27 = (byte*) current_piece_gfx#28 Alias (byte) play_collision::col#2 = (byte) play_collision::col#3 Alias (byte) play_collision::c#2 = (byte) play_collision::c#3 Alias (byte*) play_collision::piece_gfx#1 = (byte*) play_collision::piece_gfx#3 @@ -5082,13 +5114,13 @@ Alias (byte) play_collision::xpos#10 = (byte) play_collision::xpos#6 Alias (byte*) play_collision::playfield_line#1 = (byte*) play_collision::playfield_line#6 Alias (byte) play_lock_current::col#2 = (byte) play_lock_current::col#3 Alias (byte) play_lock_current::c#2 = (byte) play_lock_current::c#3 -Alias (byte*) current_piece_gfx#16 = (byte*) current_piece_gfx#31 +Alias (byte*) current_piece_gfx#15 = (byte*) current_piece_gfx#30 Alias (byte) play_lock_current::i#1 = (byte) play_lock_current::i#4 Alias (byte) play_lock_current::ypos2#3 = (byte) play_lock_current::ypos2#5 Alias (byte) play_lock_current::l#2 = (byte) play_lock_current::l#4 -Alias (byte) current_piece_char#12 = (byte) current_piece_char#32 +Alias (byte) current_piece_char#11 = (byte) current_piece_char#31 Alias (byte*) play_lock_current::playfield_line#1 = (byte*) play_lock_current::playfield_line#3 -Alias (byte) current_xpos#43 = (byte) current_xpos#75 +Alias (byte) current_xpos#42 = (byte) current_xpos#74 Alias (byte) play_remove_lines::c#0 = (byte) play_remove_lines::c#1 Alias (byte) play_remove_lines::w#4 = (byte) play_remove_lines::w#8 Alias (byte) play_remove_lines::x#2 = (byte) play_remove_lines::x#3 @@ -5096,10 +5128,10 @@ Alias (byte) play_remove_lines::r#1 = (byte) play_remove_lines::r#4 (byte) play_ Alias (byte) play_remove_lines::y#2 = (byte) play_remove_lines::y#3 (byte) play_remove_lines::y#6 Alias (byte*) current_piece#15 = (byte*) current_piece#38 Alias (byte) current_orientation#23 = (byte) current_orientation#47 -Alias (byte*) current_piece_gfx#20 = (byte*) current_piece_gfx#49 -Alias (byte) current_xpos#10 = (byte) current_xpos#62 -Alias (byte) current_ypos#21 = (byte) current_ypos#46 -Alias (byte) current_piece_char#15 = (byte) current_piece_char#34 +Alias (byte*) current_piece_gfx#19 = (byte*) current_piece_gfx#48 +Alias (byte) current_xpos#26 = (byte) current_xpos#61 +Alias (byte) current_ypos#20 = (byte) current_ypos#45 +Alias (byte) current_piece_char#14 = (byte) current_piece_char#33 Alias (byte) keyboard_events_size#18 = (byte) keyboard_events_size#32 Alias (byte) keyboard_modifiers#15 = (byte) keyboard_modifiers#29 Alias (byte) current_movedown_counter#11 = (byte) current_movedown_counter#23 @@ -5122,12 +5154,12 @@ Self Phi Eliminated (byte) render_screen_original::SPACE#2 Self Phi Eliminated (byte) render_screen_original::y#2 Self Phi Eliminated (byte*) render_screen_original::orig#7 Self Phi Eliminated (byte) render_playfield::l#3 -Self Phi Eliminated (byte*) current_piece_gfx#12 +Self Phi Eliminated (byte*) current_piece_gfx#11 Self Phi Eliminated (byte) render_current::ypos2#10 Self Phi Eliminated (byte) render_current::l#10 -Self Phi Eliminated (byte) current_piece_char#18 +Self Phi Eliminated (byte) current_piece_char#17 Self Phi Eliminated (byte*) render_current::screen_line#1 -Self Phi Eliminated (byte) current_xpos#68 +Self Phi Eliminated (byte) current_xpos#67 Self Phi Eliminated (byte) irq_sprite_ypos#5 Self Phi Eliminated (byte) irq_sprite_ptr#4 Self Phi Eliminated (byte) irq_cnt#4 @@ -5137,32 +5169,36 @@ Self Phi Eliminated (byte) play_collision::ypos2#10 Self Phi Eliminated (byte) play_collision::l#10 Self Phi Eliminated (byte) play_collision::xpos#10 Self Phi Eliminated (byte*) play_collision::playfield_line#1 -Self Phi Eliminated (byte*) current_piece_gfx#16 -Self Phi Eliminated (byte) current_piece_char#12 +Self Phi Eliminated (byte*) current_piece_gfx#15 +Self Phi Eliminated (byte) current_piece_char#11 Self Phi Eliminated (byte*) play_lock_current::playfield_line#1 Self Phi Eliminated (byte) play_lock_current::ypos2#3 Self Phi Eliminated (byte) play_lock_current::l#2 -Self Phi Eliminated (byte) current_xpos#43 +Self Phi Eliminated (byte) current_xpos#42 Self Phi Eliminated (byte) play_remove_lines::y#2 Self Phi Eliminated (byte) keyboard_events_size#41 Self Phi Eliminated (byte) keyboard_modifiers#35 Self Phi Eliminated (byte) current_movedown_counter#38 -Self Phi Eliminated (byte) current_ypos#69 +Self Phi Eliminated (byte) current_ypos#68 Self Phi Eliminated (byte*) current_piece#63 Self Phi Eliminated (byte) current_orientation#69 -Self Phi Eliminated (byte*) current_piece_gfx#82 -Self Phi Eliminated (byte) current_xpos#100 -Self Phi Eliminated (byte) current_piece_char#69 +Self Phi Eliminated (byte*) current_piece_gfx#81 +Self Phi Eliminated (byte) current_xpos#94 +Self Phi Eliminated (byte) current_piece_char#68 Self Phi Eliminated (byte) keyboard_events_size#26 Self Phi Eliminated (byte) keyboard_modifiers#23 Self Phi Eliminated (byte) current_movedown_counter#14 -Self Phi Eliminated (byte) current_ypos#37 +Self Phi Eliminated (byte) current_ypos#36 Self Phi Eliminated (byte*) current_piece#27 Self Phi Eliminated (byte) current_orientation#37 -Self Phi Eliminated (byte*) current_piece_gfx#33 -Self Phi Eliminated (byte) current_xpos#45 -Self Phi Eliminated (byte) current_piece_char#24 +Self Phi Eliminated (byte*) current_piece_gfx#32 +Self Phi Eliminated (byte) current_xpos#44 +Self Phi Eliminated (byte) current_piece_char#23 Successful SSA optimization Pass2SelfPhiElimination +Redundant Phi (byte*) current_piece_gfx#35 VOID +Redundant Phi (byte) current_xpos#100 VOID +Redundant Phi (byte) current_ypos#38 VOID +Redundant Phi (byte) current_piece_char#25 VOID Redundant Phi (byte*) fill::addr#0 (byte*) fill::start#0 Redundant Phi (word) fill::size#1 (word) fill::size#0 Redundant Phi (byte) fill::val#2 (byte) fill::val#0 @@ -5185,12 +5221,12 @@ Redundant Phi (byte) render_screen_original::SPACE#2 (byte) render_screen_origin Redundant Phi (byte) render_screen_original::y#2 (byte) render_screen_original::y#4 Redundant Phi (byte*) render_screen_original::orig#7 (byte*) render_screen_original::orig#1 Redundant Phi (byte) render_playfield::l#3 (byte) render_playfield::l#2 -Redundant Phi (byte*) current_piece_gfx#12 (byte*) current_piece_gfx#23 +Redundant Phi (byte*) current_piece_gfx#11 (byte*) current_piece_gfx#22 Redundant Phi (byte) render_current::ypos2#10 (byte) render_current::ypos2#2 Redundant Phi (byte) render_current::l#10 (byte) render_current::l#4 -Redundant Phi (byte) current_piece_char#18 (byte) current_piece_char#38 +Redundant Phi (byte) current_piece_char#17 (byte) current_piece_char#37 Redundant Phi (byte*) render_current::screen_line#1 (byte*) render_current::screen_line#0 -Redundant Phi (byte) current_xpos#68 (byte) current_xpos#13 +Redundant Phi (byte) current_xpos#67 (byte) current_xpos#12 Redundant Phi (byte) irq_raster_next#20 (byte) irq_raster_next#0 Redundant Phi (byte) toSpritePtr1_return#2 (byte) toSpritePtr1_return#0 Redundant Phi (byte) irq_raster_next#19 (byte) irq_raster_next#20 @@ -5210,29 +5246,29 @@ Redundant Phi (byte) irq_sprite_ptr#14 (byte) irq_sprite_ptr#0 Redundant Phi (byte) irq_raster_next#17 (byte) irq_raster_next#18 Redundant Phi (byte) current_movedown_counter#7 (byte) current_movedown_counter#14 Redundant Phi (byte) play_move_down::key_event#1 (byte) play_move_down::key_event#0 -Redundant Phi (byte) current_ypos#11 (byte) current_ypos#37 -Redundant Phi (byte) current_xpos#14 (byte) current_xpos#45 +Redundant Phi (byte) current_ypos#10 (byte) current_ypos#36 +Redundant Phi (byte) current_xpos#13 (byte) current_xpos#44 Redundant Phi (byte) current_orientation#12 (byte) current_orientation#37 Redundant Phi (byte*) current_piece#18 (byte*) current_piece#27 -Redundant Phi (byte*) current_piece_gfx#25 (byte*) current_piece_gfx#33 -Redundant Phi (byte) current_piece_char#19 (byte) current_piece_char#24 +Redundant Phi (byte*) current_piece_gfx#24 (byte*) current_piece_gfx#32 +Redundant Phi (byte) current_piece_char#18 (byte) current_piece_char#23 Redundant Phi (byte*) current_piece#1 (byte*) current_piece#13 Redundant Phi (byte) current_orientation#1 (byte) current_orientation#20 -Redundant Phi (byte*) current_piece_gfx#1 (byte*) current_piece_gfx#17 -Redundant Phi (byte) current_xpos#1 (byte) current_xpos#24 -Redundant Phi (byte) current_ypos#13 (byte) current_ypos#19 -Redundant Phi (byte) current_piece_char#1 (byte) current_piece_char#13 +Redundant Phi (byte*) current_piece_gfx#0 (byte*) current_piece_gfx#16 +Redundant Phi (byte) current_xpos#0 (byte) current_xpos#23 +Redundant Phi (byte) current_ypos#1 (byte) current_ypos#18 +Redundant Phi (byte) current_piece_char#0 (byte) current_piece_char#12 Redundant Phi (byte) play_move_leftright::key_event#1 (byte) play_move_leftright::key_event#0 -Redundant Phi (byte) current_xpos#17 (byte) current_xpos#26 -Redundant Phi (byte) current_ypos#15 (byte) current_ypos#21 +Redundant Phi (byte) current_xpos#16 (byte) current_xpos#25 +Redundant Phi (byte) current_ypos#14 (byte) current_ypos#20 Redundant Phi (byte) current_orientation#15 (byte) current_orientation#22 Redundant Phi (byte*) current_piece#23 (byte*) current_piece#15 Redundant Phi (byte) play_move_rotate::key_event#1 (byte) play_move_rotate::key_event#0 Redundant Phi (byte) current_orientation#17 (byte) current_orientation#22 -Redundant Phi (byte) current_xpos#22 (byte) current_xpos#10 -Redundant Phi (byte) current_ypos#17 (byte) current_ypos#21 +Redundant Phi (byte) current_xpos#21 (byte) current_xpos#26 +Redundant Phi (byte) current_ypos#16 (byte) current_ypos#20 Redundant Phi (byte*) current_piece#11 (byte*) current_piece#15 -Redundant Phi (byte*) current_piece_gfx#28 (byte*) current_piece_gfx#19 +Redundant Phi (byte*) current_piece_gfx#27 (byte*) current_piece_gfx#18 Redundant Phi (byte) irq_sprite_ptr#13 (byte) irq_sprite_ptr#14 Redundant Phi (byte) irq_raster_next#16 (byte) irq_raster_next#17 Redundant Phi (byte*) play_collision::piece_gfx#1 (byte*) play_collision::piece_gfx#2 @@ -5240,71 +5276,71 @@ Redundant Phi (byte) play_collision::ypos2#10 (byte) play_collision::ypos2#2 Redundant Phi (byte) play_collision::l#10 (byte) play_collision::l#6 Redundant Phi (byte) play_collision::xpos#10 (byte) play_collision::col#0 Redundant Phi (byte*) play_collision::playfield_line#1 (byte*) play_collision::playfield_line#0 -Redundant Phi (byte) current_ypos#18 (byte) current_ypos#11 -Redundant Phi (byte) current_xpos#42 (byte) current_xpos#14 -Redundant Phi (byte*) current_piece_gfx#45 (byte*) current_piece_gfx#25 -Redundant Phi (byte) current_piece_char#45 (byte) current_piece_char#19 -Redundant Phi (byte*) current_piece_gfx#16 (byte*) current_piece_gfx#30 -Redundant Phi (byte) current_piece_char#12 (byte) current_piece_char#31 +Redundant Phi (byte) current_ypos#17 (byte) current_ypos#10 +Redundant Phi (byte) current_xpos#41 (byte) current_xpos#13 +Redundant Phi (byte*) current_piece_gfx#44 (byte*) current_piece_gfx#24 +Redundant Phi (byte) current_piece_char#44 (byte) current_piece_char#18 +Redundant Phi (byte*) current_piece_gfx#15 (byte*) current_piece_gfx#29 +Redundant Phi (byte) current_piece_char#11 (byte) current_piece_char#30 Redundant Phi (byte*) play_lock_current::playfield_line#1 (byte*) play_lock_current::playfield_line#0 Redundant Phi (byte) play_lock_current::ypos2#3 (byte) play_lock_current::ypos2#2 Redundant Phi (byte) play_lock_current::l#2 (byte) play_lock_current::l#6 -Redundant Phi (byte) current_xpos#43 (byte) current_xpos#23 +Redundant Phi (byte) current_xpos#42 (byte) current_xpos#22 Redundant Phi (byte) play_remove_lines::y#2 (byte) play_remove_lines::y#8 Redundant Phi (byte*) current_piece#26 (byte*) current_piece#0 Redundant Phi (byte) current_orientation#36 (byte) current_orientation#0 -Redundant Phi (byte*) current_piece_gfx#32 (byte*) current_piece_gfx#0 -Redundant Phi (byte) current_xpos#44 (byte) current_xpos#0 -Redundant Phi (byte) current_ypos#36 (byte) current_ypos#0 -Redundant Phi (byte) current_piece_char#23 (byte) current_piece_char#0 +Redundant Phi (byte*) current_piece_gfx#31 (byte*) current_piece_gfx#35 +Redundant Phi (byte) current_xpos#43 (byte) current_xpos#100 +Redundant Phi (byte) current_ypos#35 (byte) current_ypos#38 +Redundant Phi (byte) current_piece_char#22 (byte) current_piece_char#25 Redundant Phi (byte) keyboard_events_size#33 (byte) keyboard_events_size#0 Redundant Phi (byte) keyboard_modifiers#30 (byte) keyboard_modifiers#0 Redundant Phi (byte) current_movedown_counter#24 (byte) current_movedown_counter#0 Redundant Phi (byte*) current_piece#14 (byte*) current_piece#13 Redundant Phi (byte) current_orientation#21 (byte) current_orientation#20 -Redundant Phi (byte*) current_piece_gfx#18 (byte*) current_piece_gfx#17 -Redundant Phi (byte) current_xpos#25 (byte) current_xpos#24 -Redundant Phi (byte) current_ypos#20 (byte) current_ypos#19 -Redundant Phi (byte) current_piece_char#14 (byte) current_piece_char#13 +Redundant Phi (byte*) current_piece_gfx#17 (byte*) current_piece_gfx#16 +Redundant Phi (byte) current_xpos#24 (byte) current_xpos#23 +Redundant Phi (byte) current_ypos#19 (byte) current_ypos#18 +Redundant Phi (byte) current_piece_char#13 (byte) current_piece_char#12 Redundant Phi (byte) keyboard_events_size#41 (byte) keyboard_events_size#19 Redundant Phi (byte) keyboard_modifiers#35 (byte) keyboard_modifiers#16 Redundant Phi (byte) current_movedown_counter#38 (byte) current_movedown_counter#12 -Redundant Phi (byte) current_ypos#69 (byte) current_ypos#22 +Redundant Phi (byte) current_ypos#68 (byte) current_ypos#21 Redundant Phi (byte*) current_piece#63 (byte*) current_piece#16 Redundant Phi (byte) current_orientation#69 (byte) current_orientation#10 -Redundant Phi (byte*) current_piece_gfx#82 (byte*) current_piece_gfx#10 -Redundant Phi (byte) current_xpos#100 (byte) current_xpos#11 -Redundant Phi (byte) current_piece_char#69 (byte) current_piece_char#16 +Redundant Phi (byte*) current_piece_gfx#81 (byte*) current_piece_gfx#20 +Redundant Phi (byte) current_xpos#94 (byte) current_xpos#10 +Redundant Phi (byte) current_piece_char#68 (byte) current_piece_char#15 Redundant Phi (byte) keyboard_events_size#26 (byte) keyboard_events_size#41 Redundant Phi (byte) keyboard_modifiers#23 (byte) keyboard_modifiers#35 Redundant Phi (byte) current_movedown_counter#14 (byte) current_movedown_counter#38 -Redundant Phi (byte) current_ypos#37 (byte) current_ypos#69 +Redundant Phi (byte) current_ypos#36 (byte) current_ypos#68 Redundant Phi (byte*) current_piece#27 (byte*) current_piece#63 Redundant Phi (byte) current_orientation#37 (byte) current_orientation#69 -Redundant Phi (byte*) current_piece_gfx#33 (byte*) current_piece_gfx#82 -Redundant Phi (byte) current_xpos#45 (byte) current_xpos#100 -Redundant Phi (byte) current_piece_char#24 (byte) current_piece_char#69 +Redundant Phi (byte*) current_piece_gfx#32 (byte*) current_piece_gfx#81 +Redundant Phi (byte) current_xpos#44 (byte) current_xpos#94 +Redundant Phi (byte) current_piece_char#23 (byte) current_piece_char#68 Redundant Phi (byte) keyboard_events_size#17 (byte) keyboard_events_size#13 Redundant Phi (byte) keyboard_modifiers#15 (byte) keyboard_modifiers#14 Redundant Phi (byte) keyboard_events_size#18 (byte) keyboard_events_size#16 Redundant Phi (byte) current_movedown_counter#11 (byte) current_movedown_counter#10 -Redundant Phi (byte) current_ypos#21 (byte) current_ypos#14 +Redundant Phi (byte) current_ypos#20 (byte) current_ypos#13 Redundant Phi (byte*) current_piece#15 (byte*) current_piece#10 Redundant Phi (byte) current_orientation#22 (byte) current_orientation#14 -Redundant Phi (byte*) current_piece_gfx#19 (byte*) current_piece_gfx#14 -Redundant Phi (byte) current_xpos#26 (byte) current_xpos#16 -Redundant Phi (byte) current_piece_char#15 (byte) current_piece_char#11 -Redundant Phi (byte) current_xpos#10 (byte) current_xpos#20 +Redundant Phi (byte*) current_piece_gfx#18 (byte*) current_piece_gfx#1 +Redundant Phi (byte) current_xpos#25 (byte) current_xpos#1 +Redundant Phi (byte) current_piece_char#14 (byte) current_piece_char#1 +Redundant Phi (byte) current_xpos#26 (byte) current_xpos#19 Redundant Phi (byte) current_orientation#23 (byte) current_orientation#19 -Redundant Phi (byte*) current_piece_gfx#20 (byte*) current_piece_gfx#15 +Redundant Phi (byte*) current_piece_gfx#19 (byte*) current_piece_gfx#14 Redundant Phi (byte) irq_sprite_ptr#12 (byte) irq_sprite_ptr#13 Redundant Phi (byte) irq_raster_next#15 (byte) irq_raster_next#16 Redundant Phi (byte*) current_piece#17 (byte*) current_piece#16 Redundant Phi (byte) current_orientation#11 (byte) current_orientation#10 -Redundant Phi (byte*) current_piece_gfx#11 (byte*) current_piece_gfx#10 -Redundant Phi (byte) current_xpos#12 (byte) current_xpos#11 -Redundant Phi (byte) current_ypos#23 (byte) current_ypos#22 -Redundant Phi (byte) current_piece_char#17 (byte) current_piece_char#16 +Redundant Phi (byte*) current_piece_gfx#10 (byte*) current_piece_gfx#20 +Redundant Phi (byte) current_xpos#11 (byte) current_xpos#10 +Redundant Phi (byte) current_ypos#22 (byte) current_ypos#21 +Redundant Phi (byte) current_piece_char#16 (byte) current_piece_char#15 Redundant Phi (byte) keyboard_events_size#20 (byte) keyboard_events_size#19 Redundant Phi (byte) keyboard_modifiers#17 (byte) keyboard_modifiers#16 Redundant Phi (byte) current_movedown_counter#13 (byte) current_movedown_counter#12 @@ -5312,9 +5348,9 @@ Successful SSA optimization Pass2RedundantPhiElimination Redundant Phi (byte) keyboard_event_scan::row#4 (byte) keyboard_event_scan::row#2 Redundant Phi (byte) render_current::ypos2#4 (byte) render_current::ypos2#2 Redundant Phi (byte) render_current::l#2 (byte) render_current::l#4 -Redundant Phi (byte) current_xpos#49 (byte) current_xpos#13 -Redundant Phi (byte*) current_piece_gfx#54 (byte*) current_piece_gfx#23 -Redundant Phi (byte) current_piece_char#64 (byte) current_piece_char#38 +Redundant Phi (byte) current_xpos#48 (byte) current_xpos#12 +Redundant Phi (byte*) current_piece_gfx#53 (byte*) current_piece_gfx#22 +Redundant Phi (byte) current_piece_char#63 (byte) current_piece_char#37 Successful SSA optimization Pass2RedundantPhiElimination Simple Condition (bool~) fill::$1 if((byte*) fill::addr#1!=(byte*) fill::end#0) goto fill::@1 Simple Condition (bool~) keyboard_event_scan::$1 if((byte) keyboard_event_scan::row_scan#0!=*((byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2)) goto keyboard_event_scan::@2 @@ -5365,7 +5401,7 @@ Simple Condition (bool~) play_collision::$9 if((byte~) play_collision::$7==(byte Simple Condition (bool~) play_collision::$11 if((byte) play_collision::col#2<(byte) PLAYFIELD_COLS#0) goto play_collision::@6 Simple Condition (bool~) play_collision::$13 if(*((byte*) play_collision::playfield_line#0 + (byte) play_collision::col#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_collision::@7 Simple Condition (bool~) play_collision::$15 if((byte) play_collision::l#1!=rangelast(0,3)) goto play_collision::@1 -Simple Condition (bool~) play_lock_current::$2 if(*((byte*) current_piece_gfx#30 + (byte) play_lock_current::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_lock_current::@3 +Simple Condition (bool~) play_lock_current::$2 if(*((byte*) current_piece_gfx#29 + (byte) play_lock_current::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_lock_current::@3 Simple Condition (bool~) play_lock_current::$3 if((byte) play_lock_current::c#1!=rangelast(0,3)) goto play_lock_current::@2 Simple Condition (bool~) play_lock_current::$4 if((byte) play_lock_current::l#1!=rangelast(0,3)) goto play_lock_current::@1 Simple Condition (bool~) play_spawn_current::$0 if((byte) play_spawn_current::piece_idx#2==(byte/signed byte/word/signed word/dword/signed dword) 7) goto play_spawn_current::@2 @@ -5561,10 +5597,6 @@ Constant (const byte*) PLAYFIELD_SPRITES#0 = ((byte*))8192 Constant (const byte*) PLAYFIELD_CHARSET#0 = ((byte*))10240 Constant (const byte) PLAYFIELD_LINES#0 = 22 Constant (const byte) PLAYFIELD_COLS#0 = 10 -Constant (const byte*) current_piece_gfx#0 = ((byte*))0 -Constant (const byte) current_piece_char#0 = 0 -Constant (const byte) current_xpos#0 = 3 -Constant (const byte) current_ypos#0 = 0 Constant (const byte) PLAYFIELD_SCREEN_ORIGINAL_WIDTH#0 = 32 Constant (const byte*) PLAYFIELD_SCREEN_ORIGINAL#0 = ((byte*))11264 Constant (const word) fill::size#0 = 1000 @@ -5600,7 +5632,7 @@ Constant (const byte/signed byte/word/signed word/dword/signed dword) $14 = 4*4 Constant (const byte[$15]) PIECE_O#0 = { 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } Constant (const byte/signed byte/word/signed word/dword/signed dword) $16 = 4*4 Constant (const byte[$17]) PIECE_I#0 = { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0 } -Constant (const byte[]) PIECES_CHARS#0 = { 87, 88, 152, 88, 87, 87, 152 } +Constant (const byte[]) PIECES_CHARS#0 = { 88, 89, 153, 89, 88, 88, 153 } Constant (const byte[]) PIECES_START_X#0 = { 4, 4, 4, 4, 4, 3, 4 } Constant (const byte[]) PIECES_START_Y#0 = { 2, 1, 1, 1, 2, 0, 1 } Constant (const byte*) current_piece#0 = ((byte*))0 @@ -5836,24 +5868,24 @@ Culled Empty Block (label) main::@35 Culled Empty Block (label) @32 Successful SSA optimization Pass2CullEmptyBlocks Self Phi Eliminated (byte) render_screen_original::SPACE#3 -Self Phi Eliminated (byte) current_xpos#13 -Self Phi Eliminated (byte*) current_piece_gfx#23 -Self Phi Eliminated (byte) current_piece_char#38 +Self Phi Eliminated (byte) current_xpos#12 +Self Phi Eliminated (byte*) current_piece_gfx#22 +Self Phi Eliminated (byte) current_piece_char#37 Self Phi Eliminated (byte) play_collision::col#0 Self Phi Eliminated (byte*) play_collision::piece_gfx#2 -Self Phi Eliminated (byte) current_xpos#23 -Self Phi Eliminated (byte*) current_piece_gfx#30 -Self Phi Eliminated (byte) current_piece_char#31 +Self Phi Eliminated (byte) current_xpos#22 +Self Phi Eliminated (byte*) current_piece_gfx#29 +Self Phi Eliminated (byte) current_piece_char#30 Successful SSA optimization Pass2SelfPhiElimination Redundant Phi (byte) render_screen_original::SPACE#3 (const byte) render_screen_original::SPACE#0 -Redundant Phi (byte) current_xpos#13 (byte) current_xpos#48 -Redundant Phi (byte*) current_piece_gfx#23 (byte*) current_piece_gfx#53 -Redundant Phi (byte) current_piece_char#38 (byte) current_piece_char#63 +Redundant Phi (byte) current_xpos#12 (byte) current_xpos#47 +Redundant Phi (byte*) current_piece_gfx#22 (byte*) current_piece_gfx#52 +Redundant Phi (byte) current_piece_char#37 (byte) current_piece_char#62 Redundant Phi (byte) play_collision::col#0 (byte) play_collision::xpos#5 Redundant Phi (byte*) play_collision::piece_gfx#2 (byte*) play_collision::piece_gfx#0 -Redundant Phi (byte) current_xpos#23 (byte) current_xpos#11 -Redundant Phi (byte*) current_piece_gfx#30 (byte*) current_piece_gfx#10 -Redundant Phi (byte) current_piece_char#31 (byte) current_piece_char#16 +Redundant Phi (byte) current_xpos#22 (byte) current_xpos#10 +Redundant Phi (byte*) current_piece_gfx#29 (byte*) current_piece_gfx#20 +Redundant Phi (byte) current_piece_char#30 (byte) current_piece_char#15 Successful SSA optimization Pass2RedundantPhiElimination Simple Condition (bool~) render_screen_original::$4 if((byte) render_screen_original::x#5>(byte/signed byte/word/signed word/dword/signed dword) 14) goto render_screen_original::@11 Simple Condition (bool~) render_current::$1 if((byte) render_current::ypos2#2>(byte/signed byte/word/signed word/dword/signed dword) 2) goto render_current::@13 @@ -6163,24 +6195,24 @@ Calls in [keyboard_event_scan] to keyboard_matrix_read:382 keyboard_event_presse Calls in [render_init] to fill:506 render_screen_original:508 Created 114 initial phi equivalence classes -Not coalescing [26] current_ypos#79 ← current_ypos#19 -Not coalescing [27] current_xpos#105 ← current_xpos#24 -Not coalescing [28] current_piece_gfx#95 ← current_piece_gfx#17 -Not coalescing [29] current_piece_char#83 ← current_piece_char#13 -Coalesced [32] current_piece_gfx#94 ← current_piece_gfx#17 -Coalesced [33] current_xpos#104 ← current_xpos#24 -Coalesced [34] current_ypos#78 ← current_ypos#19 -Coalesced [35] current_piece_char#82 ← current_piece_char#13 -Not coalescing [63] current_ypos#80 ← current_ypos#14 -Not coalescing [64] current_xpos#106 ← current_xpos#20 -Not coalescing [65] current_piece_gfx#96 ← current_piece_gfx#15 -Not coalescing [66] current_piece_char#84 ← current_piece_char#11 +Not coalescing [26] current_ypos#83 ← current_ypos#18 +Not coalescing [27] current_xpos#109 ← current_xpos#23 +Not coalescing [28] current_piece_gfx#99 ← current_piece_gfx#16 +Not coalescing [29] current_piece_char#87 ← current_piece_char#12 +Coalesced [32] current_piece_gfx#98 ← current_piece_gfx#16 +Coalesced [33] current_xpos#108 ← current_xpos#23 +Coalesced [34] current_ypos#82 ← current_ypos#18 +Coalesced [35] current_piece_char#86 ← current_piece_char#12 +Not coalescing [63] current_ypos#84 ← current_ypos#13 +Not coalescing [64] current_xpos#110 ← current_xpos#19 +Not coalescing [65] current_piece_gfx#100 ← current_piece_gfx#14 +Not coalescing [66] current_piece_char#88 ← current_piece_char#1 Coalesced [69] current_piece#71 ← current_piece#10 Coalesced [70] current_orientation#75 ← current_orientation#19 -Coalesced [71] current_piece_gfx#93 ← current_piece_gfx#15 -Coalesced [72] current_xpos#103 ← current_xpos#20 -Coalesced [73] current_ypos#77 ← current_ypos#14 -Coalesced [74] current_piece_char#81 ← current_piece_char#11 +Coalesced [71] current_piece_gfx#97 ← current_piece_gfx#14 +Coalesced [72] current_xpos#107 ← current_xpos#19 +Coalesced [73] current_ypos#81 ← current_ypos#13 +Coalesced [74] current_piece_char#85 ← current_piece_char#1 Coalesced [75] keyboard_events_size#79 ← keyboard_events_size#16 Coalesced [76] current_movedown_counter#48 ← current_movedown_counter#10 Coalesced [79] render_current::ypos2#11 ← render_current::ypos2#0 @@ -6202,16 +6234,16 @@ Coalesced (already) [127] render_playfield::i#7 ← render_playfield::i#1 Coalesced [128] render_playfield::screen_line#4 ← render_playfield::screen_line#1 Coalesced [129] render_playfield::c#3 ← render_playfield::c#1 Coalesced [132] current_orientation#78 ← current_orientation#14 -Coalesced [133] current_piece_gfx#99 ← current_piece_gfx#14 +Coalesced [133] current_piece_gfx#103 ← current_piece_gfx#1 Coalesced [138] play_move_rotate::orientation#7 ← play_move_rotate::orientation#2 Not coalescing [143] current_piece#76 ← current_piece#10 Coalesced [144] play_collision::orientation#8 ← play_collision::orientation#3 Coalesced [145] play_collision::ypos#8 ← play_collision::ypos#3 Coalesced [146] play_collision::xpos#17 ← play_collision::xpos#3 Coalesced [153] current_orientation#76 ← current_orientation#4 -Coalesced [154] current_piece_gfx#97 ← current_piece_gfx#4 +Coalesced [154] current_piece_gfx#101 ← current_piece_gfx#3 Coalesced (already) [155] current_orientation#77 ← current_orientation#14 -Coalesced (already) [156] current_piece_gfx#98 ← current_piece_gfx#14 +Coalesced (already) [156] current_piece_gfx#102 ← current_piece_gfx#1 Coalesced [159] play_move_rotate::orientation#6 ← play_move_rotate::orientation#1 Coalesced [163] play_collision::ypos2#11 ← play_collision::ypos2#0 Coalesced [166] play_collision::i#12 ← play_collision::i#3 @@ -6226,44 +6258,44 @@ Not coalescing [195] current_piece#75 ← current_piece#10 Coalesced [196] play_collision::orientation#7 ← play_collision::orientation#2 Coalesced [197] play_collision::ypos#7 ← play_collision::ypos#2 Coalesced [198] play_collision::xpos#16 ← play_collision::xpos#2 -Coalesced [204] current_xpos#109 ← current_xpos#3 -Coalesced [207] current_xpos#108 ← current_xpos#16 -Coalesced (already) [208] current_xpos#111 ← current_xpos#16 +Coalesced [204] current_xpos#113 ← current_xpos#2 +Coalesced [207] current_xpos#112 ← current_xpos#1 +Coalesced (already) [208] current_xpos#115 ← current_xpos#1 Not coalescing [212] current_piece#74 ← current_piece#10 Coalesced [213] play_collision::orientation#6 ← play_collision::orientation#1 Coalesced [214] play_collision::ypos#6 ← play_collision::ypos#1 Coalesced [215] play_collision::xpos#15 ← play_collision::xpos#1 -Coalesced [221] current_xpos#107 ← current_xpos#5 -Coalesced (already) [222] current_xpos#110 ← current_xpos#16 +Coalesced [221] current_xpos#111 ← current_xpos#4 +Coalesced (already) [222] current_xpos#114 ← current_xpos#1 Coalesced [233] play_move_down::movedown#13 ← play_move_down::movedown#2 Coalesced [237] play_move_down::movedown#16 ← play_move_down::movedown#3 Not coalescing [243] current_piece#73 ← current_piece#16 Coalesced [244] play_collision::orientation#5 ← play_collision::orientation#0 Coalesced [245] play_collision::ypos#5 ← play_collision::ypos#0 Coalesced [246] play_collision::xpos#14 ← play_collision::xpos#0 -Coalesced [257] current_ypos#81 ← current_ypos#19 -Coalesced [259] current_piece_gfx#100 ← current_piece_gfx#17 -Coalesced [260] current_xpos#112 ← current_xpos#24 -Coalesced [261] current_piece_char#85 ← current_piece_char#13 -Coalesced (already) [263] current_ypos#84 ← current_ypos#30 +Coalesced [257] current_ypos#85 ← current_ypos#18 +Coalesced [259] current_piece_gfx#104 ← current_piece_gfx#16 +Coalesced [260] current_xpos#116 ← current_xpos#23 +Coalesced [261] current_piece_char#89 ← current_piece_char#12 +Coalesced (already) [263] current_ypos#88 ← current_ypos#29 Coalesced [264] current_piece#80 ← current_piece#20 Coalesced [265] current_orientation#81 ← current_orientation#29 -Coalesced (already) [266] current_piece_gfx#103 ← current_piece_gfx#27 -Coalesced (already) [267] current_xpos#115 ← current_xpos#34 -Coalesced (already) [268] current_piece_char#88 ← current_piece_char#21 -Coalesced [272] current_ypos#82 ← current_ypos#1 +Coalesced (already) [266] current_piece_gfx#107 ← current_piece_gfx#26 +Coalesced (already) [267] current_xpos#119 ← current_xpos#33 +Coalesced (already) [268] current_piece_char#92 ← current_piece_char#20 +Coalesced [272] current_ypos#86 ← current_ypos#0 Coalesced (already) [273] current_piece#78 ← current_piece#16 Coalesced (already) [274] current_orientation#79 ← current_orientation#10 -Coalesced (already) [275] current_piece_gfx#101 ← current_piece_gfx#10 -Coalesced (already) [276] current_xpos#113 ← current_xpos#11 -Coalesced (already) [277] current_piece_char#86 ← current_piece_char#16 +Coalesced (already) [275] current_piece_gfx#105 ← current_piece_gfx#20 +Coalesced (already) [276] current_xpos#117 ← current_xpos#10 +Coalesced (already) [277] current_piece_char#90 ← current_piece_char#15 Coalesced [278] current_movedown_counter#49 ← current_movedown_counter#1 -Coalesced (already) [279] current_ypos#83 ← current_ypos#22 +Coalesced (already) [279] current_ypos#87 ← current_ypos#21 Coalesced (already) [280] current_piece#79 ← current_piece#16 Coalesced (already) [281] current_orientation#80 ← current_orientation#10 -Coalesced (already) [282] current_piece_gfx#102 ← current_piece_gfx#10 -Coalesced (already) [283] current_xpos#114 ← current_xpos#11 -Coalesced (already) [284] current_piece_char#87 ← current_piece_char#16 +Coalesced (already) [282] current_piece_gfx#106 ← current_piece_gfx#20 +Coalesced (already) [283] current_xpos#118 ← current_xpos#10 +Coalesced (already) [284] current_piece_char#91 ← current_piece_char#15 Coalesced [285] play_move_down::movedown#17 ← play_move_down::movedown#7 Coalesced [286] play_move_down::movedown#15 ← play_move_down::movedown#10 Coalesced (already) [287] play_move_down::movedown#14 ← play_move_down::movedown#10 @@ -6494,20 +6526,20 @@ main::@26: scope:[main] from main::@25 [25] call render_playfield to:main::@27 main::@27: scope:[main] from main::@26 - [26] (byte~) current_ypos#79 ← (byte) current_ypos#19 - [27] (byte~) current_xpos#105 ← (byte) current_xpos#24 - [28] (byte*~) current_piece_gfx#95 ← (byte*) current_piece_gfx#17 - [29] (byte~) current_piece_char#83 ← (byte) current_piece_char#13 + [26] (byte~) current_ypos#83 ← (byte) current_ypos#18 + [27] (byte~) current_xpos#109 ← (byte) current_xpos#23 + [28] (byte*~) current_piece_gfx#99 ← (byte*) current_piece_gfx#16 + [29] (byte~) current_piece_char#87 ← (byte) current_piece_char#12 [30] call render_current [31] (byte*~) current_piece#72 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) to:main::@1 main::@1: scope:[main] from main::@10 main::@27 [32] (byte) current_movedown_counter#12 ← phi( main::@10/(byte) current_movedown_counter#10 main::@27/(byte/signed byte/word/signed word/dword/signed dword) 0 ) [32] (byte) keyboard_events_size#19 ← phi( main::@10/(byte) keyboard_events_size#16 main::@27/(byte/signed byte/word/signed word/dword/signed dword) 0 ) - [32] (byte) current_piece_char#16 ← phi( main::@10/(byte) current_piece_char#11 main::@27/(byte) current_piece_char#13 ) - [32] (byte) current_ypos#22 ← phi( main::@10/(byte) current_ypos#14 main::@27/(byte) current_ypos#19 ) - [32] (byte) current_xpos#11 ← phi( main::@10/(byte) current_xpos#20 main::@27/(byte) current_xpos#24 ) - [32] (byte*) current_piece_gfx#10 ← phi( main::@10/(byte*) current_piece_gfx#15 main::@27/(byte*) current_piece_gfx#17 ) + [32] (byte) current_piece_char#15 ← phi( main::@10/(byte) current_piece_char#1 main::@27/(byte) current_piece_char#12 ) + [32] (byte) current_ypos#21 ← phi( main::@10/(byte) current_ypos#13 main::@27/(byte) current_ypos#18 ) + [32] (byte) current_xpos#10 ← phi( main::@10/(byte) current_xpos#19 main::@27/(byte) current_xpos#23 ) + [32] (byte*) current_piece_gfx#20 ← phi( main::@10/(byte*) current_piece_gfx#14 main::@27/(byte*) current_piece_gfx#16 ) [32] (byte) current_orientation#10 ← phi( main::@10/(byte) current_orientation#19 main::@27/(byte/signed byte/word/signed word/dword/signed dword) 0 ) [32] (byte*) current_piece#16 ← phi( main::@10/(byte*) current_piece#10 main::@27/(byte*~) current_piece#72 ) to:main::@4 @@ -6556,21 +6588,21 @@ main::@19: scope:[main] from main::@33 [58] call render_playfield to:main::@34 main::@34: scope:[main] from main::@19 - [59] (byte~) current_ypos#80 ← (byte) current_ypos#14 - [60] (byte~) current_xpos#106 ← (byte) current_xpos#20 - [61] (byte*~) current_piece_gfx#96 ← (byte*) current_piece_gfx#15 - [62] (byte~) current_piece_char#84 ← (byte) current_piece_char#11 + [59] (byte~) current_ypos#84 ← (byte) current_ypos#13 + [60] (byte~) current_xpos#110 ← (byte) current_xpos#19 + [61] (byte*~) current_piece_gfx#100 ← (byte*) current_piece_gfx#14 + [62] (byte~) current_piece_char#88 ← (byte) current_piece_char#1 [63] call render_current to:main::@10 main::@10: scope:[main] from main::@33 main::@34 [64] *((const byte*) BORDERCOL#0) ← -- *((const byte*) BORDERCOL#0) to:main::@1 render_current: scope:[render_current] from main::@27 main::@34 - [65] (byte) current_piece_char#63 ← phi( main::@27/(byte~) current_piece_char#83 main::@34/(byte~) current_piece_char#84 ) - [65] (byte*) current_piece_gfx#53 ← phi( main::@27/(byte*~) current_piece_gfx#95 main::@34/(byte*~) current_piece_gfx#96 ) - [65] (byte) current_xpos#48 ← phi( main::@27/(byte~) current_xpos#105 main::@34/(byte~) current_xpos#106 ) - [65] (byte) current_ypos#10 ← phi( main::@27/(byte~) current_ypos#79 main::@34/(byte~) current_ypos#80 ) - [66] (byte) render_current::ypos2#0 ← (byte) current_ypos#10 << (byte/signed byte/word/signed word/dword/signed dword) 1 + [65] (byte) current_piece_char#62 ← phi( main::@27/(byte~) current_piece_char#87 main::@34/(byte~) current_piece_char#88 ) + [65] (byte*) current_piece_gfx#52 ← phi( main::@27/(byte*~) current_piece_gfx#99 main::@34/(byte*~) current_piece_gfx#100 ) + [65] (byte) current_xpos#47 ← phi( main::@27/(byte~) current_xpos#109 main::@34/(byte~) current_xpos#110 ) + [65] (byte) current_ypos#9 ← phi( main::@27/(byte~) current_ypos#83 main::@34/(byte~) current_ypos#84 ) + [66] (byte) render_current::ypos2#0 ← (byte) current_ypos#9 << (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::@3 [67] (byte) render_current::l#4 ← phi( render_current/(byte/signed byte/word/signed word/dword/signed dword) 0 render_current::@3/(byte) render_current::l#1 ) @@ -6595,13 +6627,13 @@ render_current::@13: scope:[render_current] from render_current::@1 to:render_current::@7 render_current::@2: scope:[render_current] from render_current::@13 [76] (byte*) render_current::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) screen_lines#0 + (byte) render_current::ypos2#2) - [77] (byte) render_current::xpos#0 ← (byte) current_xpos#48 + [77] (byte) render_current::xpos#0 ← (byte) current_xpos#47 to:render_current::@4 render_current::@4: scope:[render_current] from render_current::@2 render_current::@5 [78] (byte) render_current::c#2 ← phi( render_current::@2/(byte/signed byte/word/signed word/dword/signed dword) 0 render_current::@5/(byte) render_current::c#1 ) [78] (byte) render_current::xpos#2 ← phi( render_current::@2/(byte) render_current::xpos#0 render_current::@5/(byte) render_current::xpos#1 ) [78] (byte) render_current::i#4 ← phi( render_current::@2/(byte) render_current::i#3 render_current::@5/(byte) render_current::i#10 ) - [79] (byte) render_current::current_cell#0 ← *((byte*) current_piece_gfx#53 + (byte) render_current::i#4) + [79] (byte) render_current::current_cell#0 ← *((byte*) current_piece_gfx#52 + (byte) render_current::i#4) [80] (byte) render_current::i#10 ← ++ (byte) render_current::i#4 [81] if((byte) render_current::current_cell#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto render_current::@5 to:render_current::@9 @@ -6609,7 +6641,7 @@ render_current::@9: scope:[render_current] from render_current::@4 [82] if((byte) render_current::xpos#2>=(const byte) PLAYFIELD_COLS#0) goto render_current::@5 to:render_current::@10 render_current::@10: scope:[render_current] from render_current::@9 - [83] *((byte*) render_current::screen_line#0 + (byte) render_current::xpos#2) ← (byte) current_piece_char#63 + [83] *((byte*) render_current::screen_line#0 + (byte) render_current::xpos#2) ← (byte) current_piece_char#62 to:render_current::@5 render_current::@5: scope:[render_current] from render_current::@10 render_current::@4 render_current::@9 [84] (byte) render_current::xpos#1 ← ++ (byte) render_current::xpos#2 @@ -6649,7 +6681,7 @@ play_move_rotate::@6: scope:[play_move_rotate] from play_move_rotate [101] 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 - [102] (byte*) current_piece_gfx#15 ← phi( play_move_rotate::@11/(byte*) current_piece_gfx#4 play_move_rotate::@14/(byte*) current_piece_gfx#14 play_move_rotate::@6/(byte*) current_piece_gfx#14 ) + [102] (byte*) current_piece_gfx#14 ← phi( play_move_rotate::@11/(byte*) current_piece_gfx#3 play_move_rotate::@14/(byte*) current_piece_gfx#1 play_move_rotate::@6/(byte*) current_piece_gfx#1 ) [102] (byte) current_orientation#19 ← phi( play_move_rotate::@11/(byte) current_orientation#4 play_move_rotate::@14/(byte) current_orientation#14 play_move_rotate::@6/(byte) current_orientation#14 ) [102] (byte) play_move_rotate::return#1 ← 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 ) [103] return @@ -6660,8 +6692,8 @@ play_move_rotate::@2: scope:[play_move_rotate] from play_move_rotate::@6 to:play_move_rotate::@4 play_move_rotate::@4: scope:[play_move_rotate] from play_move_rotate::@1 play_move_rotate::@2 [106] (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 ) - [107] (byte) play_collision::xpos#3 ← (byte) current_xpos#20 - [108] (byte) play_collision::ypos#3 ← (byte) current_ypos#14 + [107] (byte) play_collision::xpos#3 ← (byte) current_xpos#19 + [108] (byte) play_collision::ypos#3 ← (byte) current_ypos#13 [109] (byte) play_collision::orientation#3 ← (byte) play_move_rotate::orientation#3 [110] (byte*~) current_piece#76 ← (byte*) current_piece#10 [111] call play_collision @@ -6673,7 +6705,7 @@ play_move_rotate::@14: scope:[play_move_rotate] from play_move_rotate::@4 to:play_move_rotate::@11 play_move_rotate::@11: scope:[play_move_rotate] from play_move_rotate::@14 [115] (byte) current_orientation#4 ← (byte) play_move_rotate::orientation#3 - [116] (byte*) current_piece_gfx#4 ← (byte*) current_piece#10 + (byte) current_orientation#4 + [116] (byte*) current_piece_gfx#3 ← (byte*) current_piece#10 + (byte) current_orientation#4 to:play_move_rotate::@return play_move_rotate::@1: scope:[play_move_rotate] from play_move_rotate [117] (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 ← (byte) current_orientation#14 - (byte/signed byte/word/signed word/dword/signed dword) 16 @@ -6741,8 +6773,8 @@ play_move_leftright::@6: scope:[play_move_leftright] from play_move_leftright [144] 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 - [145] (byte) play_collision::xpos#2 ← (byte) current_xpos#16 + (byte/signed byte/word/signed word/dword/signed dword) 1 - [146] (byte) play_collision::ypos#2 ← (byte) current_ypos#14 + [145] (byte) play_collision::xpos#2 ← (byte) current_xpos#1 + (byte/signed byte/word/signed word/dword/signed dword) 1 + [146] (byte) play_collision::ypos#2 ← (byte) current_ypos#13 [147] (byte) play_collision::orientation#2 ← (byte) current_orientation#14 [148] (byte*~) current_piece#75 ← (byte*) current_piece#10 [149] call play_collision @@ -6753,16 +6785,16 @@ play_move_leftright::@15: scope:[play_move_leftright] from play_move_leftright: [152] 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 - [153] (byte) current_xpos#3 ← ++ (byte) current_xpos#16 + [153] (byte) current_xpos#2 ← ++ (byte) current_xpos#1 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 - [154] (byte) current_xpos#20 ← phi( play_move_leftright::@11/(byte) current_xpos#5 play_move_leftright::@15/(byte) current_xpos#16 play_move_leftright::@8/(byte) current_xpos#3 play_move_leftright::@14/(byte) current_xpos#16 play_move_leftright::@6/(byte) current_xpos#16 ) + [154] (byte) current_xpos#19 ← phi( play_move_leftright::@11/(byte) current_xpos#4 play_move_leftright::@15/(byte) current_xpos#1 play_move_leftright::@8/(byte) current_xpos#2 play_move_leftright::@14/(byte) current_xpos#1 play_move_leftright::@6/(byte) current_xpos#1 ) [154] (byte) play_move_leftright::return#1 ← 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 ) [155] return to:@return play_move_leftright::@1: scope:[play_move_leftright] from play_move_leftright - [156] (byte) play_collision::xpos#1 ← (byte) current_xpos#16 - (byte/signed byte/word/signed word/dword/signed dword) 1 - [157] (byte) play_collision::ypos#1 ← (byte) current_ypos#14 + [156] (byte) play_collision::xpos#1 ← (byte) current_xpos#1 - (byte/signed byte/word/signed word/dword/signed dword) 1 + [157] (byte) play_collision::ypos#1 ← (byte) current_ypos#13 [158] (byte) play_collision::orientation#1 ← (byte) current_orientation#14 [159] (byte*~) current_piece#74 ← (byte*) current_piece#10 [160] call play_collision @@ -6773,7 +6805,7 @@ play_move_leftright::@14: scope:[play_move_leftright] from play_move_leftright: [163] 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 - [164] (byte) current_xpos#5 ← -- (byte) current_xpos#16 + [164] (byte) current_xpos#4 ← -- (byte) current_xpos#1 to:play_move_leftright::@return play_move_down: scope:[play_move_down] from main::@30 [165] (byte) current_movedown_counter#1 ← ++ (byte) current_movedown_counter#12 @@ -6809,8 +6841,8 @@ play_move_down::@4: scope:[play_move_down] from play_move_down::@11 play_move_d [179] 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 - [180] (byte) play_collision::ypos#0 ← (byte) current_ypos#22 + (byte/signed byte/word/signed word/dword/signed dword) 1 - [181] (byte) play_collision::xpos#0 ← (byte) current_xpos#11 + [180] (byte) play_collision::ypos#0 ← (byte) current_ypos#21 + (byte/signed byte/word/signed word/dword/signed dword) 1 + [181] (byte) play_collision::xpos#0 ← (byte) current_xpos#10 [182] (byte) play_collision::orientation#0 ← (byte) current_orientation#10 [183] (byte*~) current_piece#73 ← (byte*) current_piece#16 [184] call play_collision @@ -6834,26 +6866,26 @@ play_move_down::@20: scope:[play_move_down] from play_move_down::@19 [194] (byte*~) current_piece#77 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_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 - [195] (byte) current_piece_char#21 ← phi( play_move_down::@20/(byte) current_piece_char#13 play_move_down::@6/(byte) current_piece_char#16 ) - [195] (byte) current_xpos#34 ← phi( play_move_down::@20/(byte) current_xpos#24 play_move_down::@6/(byte) current_xpos#11 ) - [195] (byte*) current_piece_gfx#27 ← phi( play_move_down::@20/(byte*) current_piece_gfx#17 play_move_down::@6/(byte*) current_piece_gfx#10 ) + [195] (byte) current_piece_char#20 ← phi( play_move_down::@20/(byte) current_piece_char#12 play_move_down::@6/(byte) current_piece_char#15 ) + [195] (byte) current_xpos#33 ← phi( play_move_down::@20/(byte) current_xpos#23 play_move_down::@6/(byte) current_xpos#10 ) + [195] (byte*) current_piece_gfx#26 ← phi( play_move_down::@20/(byte*) current_piece_gfx#16 play_move_down::@6/(byte*) current_piece_gfx#20 ) [195] (byte) current_orientation#29 ← phi( play_move_down::@20/(byte/signed byte/word/signed word/dword/signed dword) 0 play_move_down::@6/(byte) current_orientation#10 ) [195] (byte*) current_piece#20 ← phi( play_move_down::@20/(byte*~) current_piece#77 play_move_down::@6/(byte*) current_piece#16 ) - [195] (byte) current_ypos#30 ← phi( play_move_down::@20/(byte) current_ypos#19 play_move_down::@6/(byte) current_ypos#1 ) + [195] (byte) current_ypos#29 ← phi( play_move_down::@20/(byte) current_ypos#18 play_move_down::@6/(byte) current_ypos#0 ) to:play_move_down::@return play_move_down::@return: scope:[play_move_down] from play_move_down::@4 play_move_down::@7 - [196] (byte) current_piece_char#11 ← phi( play_move_down::@4/(byte) current_piece_char#16 play_move_down::@7/(byte) current_piece_char#21 ) - [196] (byte) current_xpos#16 ← phi( play_move_down::@4/(byte) current_xpos#11 play_move_down::@7/(byte) current_xpos#34 ) - [196] (byte*) current_piece_gfx#14 ← phi( play_move_down::@4/(byte*) current_piece_gfx#10 play_move_down::@7/(byte*) current_piece_gfx#27 ) + [196] (byte) current_piece_char#1 ← phi( play_move_down::@4/(byte) current_piece_char#15 play_move_down::@7/(byte) current_piece_char#20 ) + [196] (byte) current_xpos#1 ← phi( play_move_down::@4/(byte) current_xpos#10 play_move_down::@7/(byte) current_xpos#33 ) + [196] (byte*) current_piece_gfx#1 ← phi( play_move_down::@4/(byte*) current_piece_gfx#20 play_move_down::@7/(byte*) current_piece_gfx#26 ) [196] (byte) current_orientation#14 ← phi( play_move_down::@4/(byte) current_orientation#10 play_move_down::@7/(byte) current_orientation#29 ) [196] (byte*) current_piece#10 ← phi( play_move_down::@4/(byte*) current_piece#16 play_move_down::@7/(byte*) current_piece#20 ) - [196] (byte) current_ypos#14 ← phi( play_move_down::@4/(byte) current_ypos#22 play_move_down::@7/(byte) current_ypos#30 ) + [196] (byte) current_ypos#13 ← phi( play_move_down::@4/(byte) current_ypos#21 play_move_down::@7/(byte) current_ypos#29 ) [196] (byte) current_movedown_counter#10 ← phi( play_move_down::@4/(byte) current_movedown_counter#1 play_move_down::@7/(byte/signed byte/word/signed word/dword/signed dword) 0 ) [196] (byte) play_move_down::return#2 ← 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 ) [197] return to:@return play_move_down::@6: scope:[play_move_down] from play_move_down::@18 - [198] (byte) current_ypos#1 ← ++ (byte) current_ypos#22 + [198] (byte) current_ypos#0 ← ++ (byte) current_ypos#21 to:play_move_down::@7 play_spawn_current: scope:[play_spawn_current] from main::@25 play_move_down::@20 [199] phi() @@ -6864,10 +6896,10 @@ play_spawn_current::@1: scope:[play_spawn_current] from play_spawn_current play to:play_spawn_current::@3 play_spawn_current::@3: scope:[play_spawn_current] from play_spawn_current::@1 [202] (byte~) play_spawn_current::$3 ← (byte) play_spawn_current::piece_idx#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 - [203] (byte*) current_piece_gfx#17 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) + (byte/signed byte/word/signed word/dword/signed dword) 0 - [204] (byte) current_xpos#24 ← *((const byte[]) PIECES_START_X#0 + (byte) play_spawn_current::piece_idx#2) - [205] (byte) current_ypos#19 ← *((const byte[]) PIECES_START_Y#0 + (byte) play_spawn_current::piece_idx#2) - [206] (byte) current_piece_char#13 ← *((const byte[]) PIECES_CHARS#0 + (byte) play_spawn_current::piece_idx#2) + [203] (byte*) current_piece_gfx#16 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) + (byte/signed byte/word/signed word/dword/signed dword) 0 + [204] (byte) current_xpos#23 ← *((const byte[]) PIECES_START_X#0 + (byte) play_spawn_current::piece_idx#2) + [205] (byte) current_ypos#18 ← *((const byte[]) PIECES_START_Y#0 + (byte) play_spawn_current::piece_idx#2) + [206] (byte) current_piece_char#12 ← *((const byte[]) PIECES_CHARS#0 + (byte) play_spawn_current::piece_idx#2) to:play_spawn_current::@return play_spawn_current::@return: scope:[play_spawn_current] from play_spawn_current::@3 [207] return @@ -6937,24 +6969,24 @@ play_remove_lines::@17: scope:[play_remove_lines] from play_remove_lines::@2 [236] phi() to:play_remove_lines::@3 play_lock_current: scope:[play_lock_current] from play_move_down::@13 - [237] (byte) play_lock_current::ypos2#0 ← (byte) current_ypos#22 << (byte/signed byte/word/signed word/dword/signed dword) 1 + [237] (byte) play_lock_current::ypos2#0 ← (byte) current_ypos#21 << (byte/signed byte/word/signed word/dword/signed dword) 1 to:play_lock_current::@1 play_lock_current::@1: scope:[play_lock_current] from play_lock_current play_lock_current::@7 [238] (byte) play_lock_current::l#6 ← phi( play_lock_current/(byte/signed byte/word/signed word/dword/signed dword) 0 play_lock_current::@7/(byte) play_lock_current::l#1 ) [238] (byte) play_lock_current::i#3 ← phi( play_lock_current/(byte/signed byte/word/signed word/dword/signed dword) 0 play_lock_current::@7/(byte~) play_lock_current::i#7 ) [238] (byte) play_lock_current::ypos2#2 ← phi( play_lock_current/(byte) play_lock_current::ypos2#0 play_lock_current::@7/(byte) play_lock_current::ypos2#1 ) [239] (byte*) play_lock_current::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) play_lock_current::ypos2#2) - [240] (byte) play_lock_current::col#0 ← (byte) current_xpos#11 + [240] (byte) play_lock_current::col#0 ← (byte) current_xpos#10 to:play_lock_current::@2 play_lock_current::@2: scope:[play_lock_current] from play_lock_current::@1 play_lock_current::@8 [241] (byte) play_lock_current::c#2 ← phi( play_lock_current::@1/(byte/signed byte/word/signed word/dword/signed dword) 0 play_lock_current::@8/(byte) play_lock_current::c#1 ) [241] (byte) play_lock_current::col#2 ← phi( play_lock_current::@1/(byte) play_lock_current::col#0 play_lock_current::@8/(byte) play_lock_current::col#1 ) [241] (byte) play_lock_current::i#2 ← phi( play_lock_current::@1/(byte) play_lock_current::i#3 play_lock_current::@8/(byte~) play_lock_current::i#9 ) [242] (byte) play_lock_current::i#1 ← ++ (byte) play_lock_current::i#2 - [243] if(*((byte*) current_piece_gfx#10 + (byte) play_lock_current::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_lock_current::@3 + [243] if(*((byte*) current_piece_gfx#20 + (byte) play_lock_current::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_lock_current::@3 to:play_lock_current::@4 play_lock_current::@4: scope:[play_lock_current] from play_lock_current::@2 - [244] *((byte*) play_lock_current::playfield_line#0 + (byte) play_lock_current::col#2) ← (byte) current_piece_char#16 + [244] *((byte*) play_lock_current::playfield_line#0 + (byte) play_lock_current::col#2) ← (byte) current_piece_char#15 to:play_lock_current::@3 play_lock_current::@3: scope:[play_lock_current] from play_lock_current::@2 play_lock_current::@4 [245] (byte) play_lock_current::col#1 ← ++ (byte) play_lock_current::col#2 @@ -7564,43 +7596,43 @@ VARIABLE REGISTER WEIGHTS (byte*~) current_piece#76 4.0 (byte*~) current_piece#77 4.0 (byte) current_piece_char -(byte) current_piece_char#11 1.04 -(byte) current_piece_char#13 0.6153846153846154 -(byte) current_piece_char#16 19.96078431372549 -(byte) current_piece_char#21 6.0 -(byte) current_piece_char#63 48.285714285714285 -(byte~) current_piece_char#83 4.0 -(byte~) current_piece_char#84 22.0 +(byte) current_piece_char#1 1.04 +(byte) current_piece_char#12 0.6153846153846154 +(byte) current_piece_char#15 19.96078431372549 +(byte) current_piece_char#20 6.0 +(byte) current_piece_char#62 48.285714285714285 +(byte~) current_piece_char#87 4.0 +(byte~) current_piece_char#88 22.0 (byte*) current_piece_gfx -(byte*) current_piece_gfx#10 19.96078431372549 -(byte*) current_piece_gfx#14 0.2962962962962963 -(byte*) current_piece_gfx#15 1.8666666666666665 -(byte*) current_piece_gfx#17 0.5 -(byte*) current_piece_gfx#27 6.0 -(byte*) current_piece_gfx#4 4.0 -(byte*) current_piece_gfx#53 48.285714285714285 -(byte*~) current_piece_gfx#95 2.0 -(byte*~) current_piece_gfx#96 11.0 +(byte*) current_piece_gfx#1 0.2962962962962963 +(byte*~) current_piece_gfx#100 11.0 +(byte*) current_piece_gfx#14 1.8666666666666665 +(byte*) current_piece_gfx#16 0.5 +(byte*) current_piece_gfx#20 19.96078431372549 +(byte*) current_piece_gfx#26 6.0 +(byte*) current_piece_gfx#3 4.0 +(byte*) current_piece_gfx#52 48.285714285714285 +(byte*~) current_piece_gfx#99 2.0 (byte) current_xpos -(byte~) current_xpos#105 1.3333333333333333 -(byte~) current_xpos#106 7.333333333333333 -(byte) current_xpos#11 2.3529411764705883 -(byte) current_xpos#16 0.72 -(byte) current_xpos#20 0.871794871794872 -(byte) current_xpos#24 0.5333333333333333 -(byte) current_xpos#3 4.0 -(byte) current_xpos#34 6.0 -(byte) current_xpos#48 5.428571428571429 -(byte) current_xpos#5 4.0 +(byte) current_xpos#1 0.72 +(byte) current_xpos#10 2.3529411764705883 +(byte~) current_xpos#109 1.3333333333333333 +(byte~) current_xpos#110 7.333333333333333 +(byte) current_xpos#19 0.871794871794872 +(byte) current_xpos#2 4.0 +(byte) current_xpos#23 0.5333333333333333 +(byte) current_xpos#33 6.0 +(byte) current_xpos#4 4.0 +(byte) current_xpos#47 5.428571428571429 (byte) current_ypos -(byte) current_ypos#1 4.0 -(byte) current_ypos#10 15.0 -(byte) current_ypos#14 0.48484848484848475 -(byte) current_ypos#19 0.5714285714285714 -(byte) current_ypos#22 0.6176470588235294 -(byte) current_ypos#30 6.0 -(byte~) current_ypos#79 1.0 -(byte~) current_ypos#80 5.5 +(byte) current_ypos#0 4.0 +(byte) current_ypos#13 0.48484848484848475 +(byte) current_ypos#18 0.5714285714285714 +(byte) current_ypos#21 0.6176470588235294 +(byte) current_ypos#29 6.0 +(byte~) current_ypos#83 1.0 +(byte~) current_ypos#84 5.5 +(byte) current_ypos#9 15.0 (void()) fill((byte*) fill::start , (word) fill::size , (byte) fill::val) (byte*) fill::addr (byte*) fill::addr#1 16.5 @@ -8008,10 +8040,10 @@ interrupt(HARDWARE_CLOBBER)(void()) irq() Initial phi equivalence classes [ current_movedown_counter#12 current_movedown_counter#10 current_movedown_counter#1 ] -[ current_ypos#10 current_ypos#79 current_ypos#80 ] -[ current_xpos#48 current_xpos#105 current_xpos#106 ] -[ current_piece_gfx#53 current_piece_gfx#95 current_piece_gfx#96 ] -[ current_piece_char#63 current_piece_char#83 current_piece_char#84 ] +[ current_ypos#9 current_ypos#83 current_ypos#84 ] +[ current_xpos#47 current_xpos#109 current_xpos#110 ] +[ current_piece_gfx#52 current_piece_gfx#99 current_piece_gfx#100 ] +[ current_piece_char#62 current_piece_char#87 current_piece_char#88 ] [ render_current::ypos2#2 render_current::ypos2#0 render_current::ypos2#1 ] [ render_current::l#4 render_current::l#1 ] [ render_current::i#4 render_current::i#3 render_current::i#8 render_current::i#10 render_current::i#1 ] @@ -8035,12 +8067,12 @@ Initial phi equivalence classes [ play_collision::return#14 ] [ play_move_leftright::return#1 ] [ 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 ] -[ current_ypos#30 current_ypos#22 current_ypos#14 current_ypos#19 current_ypos#1 ] +[ current_ypos#29 current_ypos#21 current_ypos#13 current_ypos#18 current_ypos#0 ] [ current_piece#20 current_piece#77 current_piece#16 current_piece#10 current_piece#72 ] [ current_orientation#29 current_orientation#10 current_orientation#19 current_orientation#4 current_orientation#14 ] -[ current_piece_gfx#27 current_piece_gfx#10 current_piece_gfx#15 current_piece_gfx#17 current_piece_gfx#4 current_piece_gfx#14 ] -[ current_xpos#34 current_xpos#11 current_xpos#20 current_xpos#24 current_xpos#5 current_xpos#16 current_xpos#3 ] -[ current_piece_char#21 current_piece_char#16 current_piece_char#11 current_piece_char#13 ] +[ current_piece_gfx#26 current_piece_gfx#20 current_piece_gfx#14 current_piece_gfx#16 current_piece_gfx#3 current_piece_gfx#1 ] +[ current_xpos#33 current_xpos#10 current_xpos#19 current_xpos#23 current_xpos#4 current_xpos#1 current_xpos#2 ] +[ current_piece_char#20 current_piece_char#15 current_piece_char#1 current_piece_char#12 ] [ play_move_down::return#2 ] [ play_spawn_current::piece_idx#2 play_spawn_current::piece_idx#1 ] [ play_remove_lines::y#8 play_remove_lines::y#1 ] @@ -8160,10 +8192,10 @@ Added variable irq_sprite_ypos#1 to zero page equivalence class [ irq_sprite_ypo Added variable irq_sprite_ptr#1 to zero page equivalence class [ irq_sprite_ptr#1 ] Complete equivalence classes [ current_movedown_counter#12 current_movedown_counter#10 current_movedown_counter#1 ] -[ current_ypos#10 current_ypos#79 current_ypos#80 ] -[ current_xpos#48 current_xpos#105 current_xpos#106 ] -[ current_piece_gfx#53 current_piece_gfx#95 current_piece_gfx#96 ] -[ current_piece_char#63 current_piece_char#83 current_piece_char#84 ] +[ current_ypos#9 current_ypos#83 current_ypos#84 ] +[ current_xpos#47 current_xpos#109 current_xpos#110 ] +[ current_piece_gfx#52 current_piece_gfx#99 current_piece_gfx#100 ] +[ current_piece_char#62 current_piece_char#87 current_piece_char#88 ] [ render_current::ypos2#2 render_current::ypos2#0 render_current::ypos2#1 ] [ render_current::l#4 render_current::l#1 ] [ render_current::i#4 render_current::i#3 render_current::i#8 render_current::i#10 render_current::i#1 ] @@ -8187,12 +8219,12 @@ Complete equivalence classes [ play_collision::return#14 ] [ play_move_leftright::return#1 ] [ 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 ] -[ current_ypos#30 current_ypos#22 current_ypos#14 current_ypos#19 current_ypos#1 ] +[ current_ypos#29 current_ypos#21 current_ypos#13 current_ypos#18 current_ypos#0 ] [ current_piece#20 current_piece#77 current_piece#16 current_piece#10 current_piece#72 ] [ current_orientation#29 current_orientation#10 current_orientation#19 current_orientation#4 current_orientation#14 ] -[ current_piece_gfx#27 current_piece_gfx#10 current_piece_gfx#15 current_piece_gfx#17 current_piece_gfx#4 current_piece_gfx#14 ] -[ current_xpos#34 current_xpos#11 current_xpos#20 current_xpos#24 current_xpos#5 current_xpos#16 current_xpos#3 ] -[ current_piece_char#21 current_piece_char#16 current_piece_char#11 current_piece_char#13 ] +[ current_piece_gfx#26 current_piece_gfx#20 current_piece_gfx#14 current_piece_gfx#16 current_piece_gfx#3 current_piece_gfx#1 ] +[ current_xpos#33 current_xpos#10 current_xpos#19 current_xpos#23 current_xpos#4 current_xpos#1 current_xpos#2 ] +[ current_piece_char#20 current_piece_char#15 current_piece_char#1 current_piece_char#12 ] [ play_move_down::return#2 ] [ play_spawn_current::piece_idx#2 play_spawn_current::piece_idx#1 ] [ play_remove_lines::y#8 play_remove_lines::y#1 ] @@ -8311,10 +8343,10 @@ Complete equivalence classes [ irq_sprite_ypos#1 ] [ irq_sprite_ptr#1 ] Allocated zp ZP_BYTE:2 [ current_movedown_counter#12 current_movedown_counter#10 current_movedown_counter#1 ] -Allocated zp ZP_BYTE:3 [ current_ypos#10 current_ypos#79 current_ypos#80 ] -Allocated zp ZP_BYTE:4 [ current_xpos#48 current_xpos#105 current_xpos#106 ] -Allocated zp ZP_WORD:5 [ current_piece_gfx#53 current_piece_gfx#95 current_piece_gfx#96 ] -Allocated zp ZP_BYTE:7 [ current_piece_char#63 current_piece_char#83 current_piece_char#84 ] +Allocated zp ZP_BYTE:3 [ current_ypos#9 current_ypos#83 current_ypos#84 ] +Allocated zp ZP_BYTE:4 [ current_xpos#47 current_xpos#109 current_xpos#110 ] +Allocated zp ZP_WORD:5 [ current_piece_gfx#52 current_piece_gfx#99 current_piece_gfx#100 ] +Allocated zp ZP_BYTE:7 [ current_piece_char#62 current_piece_char#87 current_piece_char#88 ] Allocated zp ZP_BYTE:8 [ render_current::ypos2#2 render_current::ypos2#0 render_current::ypos2#1 ] Allocated zp ZP_BYTE:9 [ render_current::l#4 render_current::l#1 ] Allocated zp ZP_BYTE:10 [ render_current::i#4 render_current::i#3 render_current::i#8 render_current::i#10 render_current::i#1 ] @@ -8338,12 +8370,12 @@ Allocated zp ZP_BYTE:29 [ play_collision::c#2 play_collision::c#1 ] Allocated zp ZP_BYTE:30 [ play_collision::return#14 ] Allocated zp ZP_BYTE:31 [ play_move_leftright::return#1 ] Allocated zp ZP_BYTE:32 [ 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 ] -Allocated zp ZP_BYTE:33 [ current_ypos#30 current_ypos#22 current_ypos#14 current_ypos#19 current_ypos#1 ] +Allocated zp ZP_BYTE:33 [ current_ypos#29 current_ypos#21 current_ypos#13 current_ypos#18 current_ypos#0 ] Allocated zp ZP_WORD:34 [ current_piece#20 current_piece#77 current_piece#16 current_piece#10 current_piece#72 ] Allocated zp ZP_BYTE:36 [ current_orientation#29 current_orientation#10 current_orientation#19 current_orientation#4 current_orientation#14 ] -Allocated zp ZP_WORD:37 [ current_piece_gfx#27 current_piece_gfx#10 current_piece_gfx#15 current_piece_gfx#17 current_piece_gfx#4 current_piece_gfx#14 ] -Allocated zp ZP_BYTE:39 [ current_xpos#34 current_xpos#11 current_xpos#20 current_xpos#24 current_xpos#5 current_xpos#16 current_xpos#3 ] -Allocated zp ZP_BYTE:40 [ current_piece_char#21 current_piece_char#16 current_piece_char#11 current_piece_char#13 ] +Allocated zp ZP_WORD:37 [ current_piece_gfx#26 current_piece_gfx#20 current_piece_gfx#14 current_piece_gfx#16 current_piece_gfx#3 current_piece_gfx#1 ] +Allocated zp ZP_BYTE:39 [ current_xpos#33 current_xpos#10 current_xpos#19 current_xpos#23 current_xpos#4 current_xpos#1 current_xpos#2 ] +Allocated zp ZP_BYTE:40 [ current_piece_char#20 current_piece_char#15 current_piece_char#1 current_piece_char#12 ] Allocated zp ZP_BYTE:41 [ play_move_down::return#2 ] Allocated zp ZP_BYTE:42 [ play_spawn_current::piece_idx#2 play_spawn_current::piece_idx#1 ] Allocated zp ZP_BYTE:43 [ play_remove_lines::y#8 play_remove_lines::y#1 ] @@ -8558,26 +8590,26 @@ INITIAL ASM .label irq_sprite_ptr_2 = $a4 .label current_movedown_counter = 2 .label current_ypos = $21 - .label current_xpos = $27 - .label current_orientation = $24 .label current_piece_gfx = $25 - .label current_ypos_10 = 3 - .label current_piece = $22 + .label current_xpos = $27 .label current_piece_char = $28 + .label current_orientation = $24 + .label current_ypos_9 = 3 + .label current_piece = $22 .label current_piece_12 = $14 - .label current_xpos_48 = 4 + .label current_xpos_47 = 4 .label irq_raster_next_12 = $52 - .label current_piece_gfx_53 = 5 + .label current_piece_gfx_52 = 5 .label irq_cnt_13 = $a6 - .label current_piece_char_63 = 7 - .label current_ypos_79 = 3 - .label current_ypos_80 = 3 - .label current_xpos_105 = 4 - .label current_xpos_106 = 4 - .label current_piece_gfx_95 = 5 - .label current_piece_gfx_96 = 5 - .label current_piece_char_83 = 7 - .label current_piece_char_84 = 7 + .label current_piece_char_62 = 7 + .label current_ypos_83 = 3 + .label current_ypos_84 = 3 + .label current_xpos_109 = 4 + .label current_xpos_110 = 4 + .label current_piece_gfx_99 = 5 + .label current_piece_gfx_100 = 5 + .label current_piece_char_87 = 7 + .label current_piece_char_88 = 7 .label current_piece_73 = $14 .label current_piece_74 = $14 .label current_piece_75 = $14 @@ -8694,27 +8726,27 @@ main: { jmp b27 //SEG46 main::@27 b27: - //SEG47 [26] (byte~) current_ypos#79 ← (byte) current_ypos#19 -- vbuz1=vbuz2 + //SEG47 [26] (byte~) current_ypos#83 ← (byte) current_ypos#18 -- vbuz1=vbuz2 lda current_ypos - sta current_ypos_79 - //SEG48 [27] (byte~) current_xpos#105 ← (byte) current_xpos#24 -- vbuz1=vbuz2 + sta current_ypos_83 + //SEG48 [27] (byte~) current_xpos#109 ← (byte) current_xpos#23 -- vbuz1=vbuz2 lda current_xpos - sta current_xpos_105 - //SEG49 [28] (byte*~) current_piece_gfx#95 ← (byte*) current_piece_gfx#17 -- pbuz1=pbuz2 + sta current_xpos_109 + //SEG49 [28] (byte*~) current_piece_gfx#99 ← (byte*) current_piece_gfx#16 -- pbuz1=pbuz2 lda current_piece_gfx - sta current_piece_gfx_95 + sta current_piece_gfx_99 lda current_piece_gfx+1 - sta current_piece_gfx_95+1 - //SEG50 [29] (byte~) current_piece_char#83 ← (byte) current_piece_char#13 -- vbuz1=vbuz2 + sta current_piece_gfx_99+1 + //SEG50 [29] (byte~) current_piece_char#87 ← (byte) current_piece_char#12 -- vbuz1=vbuz2 lda current_piece_char - sta current_piece_char_83 + sta current_piece_char_87 //SEG51 [30] call render_current //SEG52 [65] phi from main::@27 to render_current [phi:main::@27->render_current] render_current_from_b27: - //SEG53 [65] phi (byte) current_piece_char#63 = (byte~) current_piece_char#83 [phi:main::@27->render_current#0] -- register_copy - //SEG54 [65] phi (byte*) current_piece_gfx#53 = (byte*~) current_piece_gfx#95 [phi:main::@27->render_current#1] -- register_copy - //SEG55 [65] phi (byte) current_xpos#48 = (byte~) current_xpos#105 [phi:main::@27->render_current#2] -- register_copy - //SEG56 [65] phi (byte) current_ypos#10 = (byte~) current_ypos#79 [phi:main::@27->render_current#3] -- register_copy + //SEG53 [65] phi (byte) current_piece_char#62 = (byte~) current_piece_char#87 [phi:main::@27->render_current#0] -- register_copy + //SEG54 [65] phi (byte*) current_piece_gfx#52 = (byte*~) current_piece_gfx#99 [phi:main::@27->render_current#1] -- register_copy + //SEG55 [65] phi (byte) current_xpos#47 = (byte~) current_xpos#109 [phi:main::@27->render_current#2] -- register_copy + //SEG56 [65] phi (byte) current_ypos#9 = (byte~) current_ypos#83 [phi:main::@27->render_current#3] -- register_copy jsr render_current //SEG57 [31] (byte*~) current_piece#72 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) -- pbuz1=pptc1_derefidx_vbuz2 ldy play_spawn_current._3 @@ -8730,10 +8762,10 @@ main: { //SEG60 [32] phi (byte) keyboard_events_size#19 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@27->main::@1#1] -- vbuz1=vbuc1 lda #0 sta keyboard_events_size - //SEG61 [32] phi (byte) current_piece_char#16 = (byte) current_piece_char#13 [phi:main::@27->main::@1#2] -- register_copy - //SEG62 [32] phi (byte) current_ypos#22 = (byte) current_ypos#19 [phi:main::@27->main::@1#3] -- register_copy - //SEG63 [32] phi (byte) current_xpos#11 = (byte) current_xpos#24 [phi:main::@27->main::@1#4] -- register_copy - //SEG64 [32] phi (byte*) current_piece_gfx#10 = (byte*) current_piece_gfx#17 [phi:main::@27->main::@1#5] -- register_copy + //SEG61 [32] phi (byte) current_piece_char#15 = (byte) current_piece_char#12 [phi:main::@27->main::@1#2] -- register_copy + //SEG62 [32] phi (byte) current_ypos#21 = (byte) current_ypos#18 [phi:main::@27->main::@1#3] -- register_copy + //SEG63 [32] phi (byte) current_xpos#10 = (byte) current_xpos#23 [phi:main::@27->main::@1#4] -- register_copy + //SEG64 [32] phi (byte*) current_piece_gfx#20 = (byte*) current_piece_gfx#16 [phi:main::@27->main::@1#5] -- register_copy //SEG65 [32] phi (byte) current_orientation#10 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@27->main::@1#6] -- vbuz1=vbuc1 lda #0 sta current_orientation @@ -8853,27 +8885,27 @@ main: { jmp b34 //SEG105 main::@34 b34: - //SEG106 [59] (byte~) current_ypos#80 ← (byte) current_ypos#14 -- vbuz1=vbuz2 + //SEG106 [59] (byte~) current_ypos#84 ← (byte) current_ypos#13 -- vbuz1=vbuz2 lda current_ypos - sta current_ypos_80 - //SEG107 [60] (byte~) current_xpos#106 ← (byte) current_xpos#20 -- vbuz1=vbuz2 + sta current_ypos_84 + //SEG107 [60] (byte~) current_xpos#110 ← (byte) current_xpos#19 -- vbuz1=vbuz2 lda current_xpos - sta current_xpos_106 - //SEG108 [61] (byte*~) current_piece_gfx#96 ← (byte*) current_piece_gfx#15 -- pbuz1=pbuz2 + sta current_xpos_110 + //SEG108 [61] (byte*~) current_piece_gfx#100 ← (byte*) current_piece_gfx#14 -- pbuz1=pbuz2 lda current_piece_gfx - sta current_piece_gfx_96 + sta current_piece_gfx_100 lda current_piece_gfx+1 - sta current_piece_gfx_96+1 - //SEG109 [62] (byte~) current_piece_char#84 ← (byte) current_piece_char#11 -- vbuz1=vbuz2 + sta current_piece_gfx_100+1 + //SEG109 [62] (byte~) current_piece_char#88 ← (byte) current_piece_char#1 -- vbuz1=vbuz2 lda current_piece_char - sta current_piece_char_84 + sta current_piece_char_88 //SEG110 [63] call render_current //SEG111 [65] phi from main::@34 to render_current [phi:main::@34->render_current] render_current_from_b34: - //SEG112 [65] phi (byte) current_piece_char#63 = (byte~) current_piece_char#84 [phi:main::@34->render_current#0] -- register_copy - //SEG113 [65] phi (byte*) current_piece_gfx#53 = (byte*~) current_piece_gfx#96 [phi:main::@34->render_current#1] -- register_copy - //SEG114 [65] phi (byte) current_xpos#48 = (byte~) current_xpos#106 [phi:main::@34->render_current#2] -- register_copy - //SEG115 [65] phi (byte) current_ypos#10 = (byte~) current_ypos#80 [phi:main::@34->render_current#3] -- register_copy + //SEG112 [65] phi (byte) current_piece_char#62 = (byte~) current_piece_char#88 [phi:main::@34->render_current#0] -- register_copy + //SEG113 [65] phi (byte*) current_piece_gfx#52 = (byte*~) current_piece_gfx#100 [phi:main::@34->render_current#1] -- register_copy + //SEG114 [65] phi (byte) current_xpos#47 = (byte~) current_xpos#110 [phi:main::@34->render_current#2] -- register_copy + //SEG115 [65] phi (byte) current_ypos#9 = (byte~) current_ypos#84 [phi:main::@34->render_current#3] -- register_copy jsr render_current jmp b10 //SEG116 main::@10 @@ -8884,10 +8916,10 @@ main: { b1_from_b10: //SEG119 [32] phi (byte) current_movedown_counter#12 = (byte) current_movedown_counter#10 [phi:main::@10->main::@1#0] -- register_copy //SEG120 [32] phi (byte) keyboard_events_size#19 = (byte) keyboard_events_size#16 [phi:main::@10->main::@1#1] -- register_copy - //SEG121 [32] phi (byte) current_piece_char#16 = (byte) current_piece_char#11 [phi:main::@10->main::@1#2] -- register_copy - //SEG122 [32] phi (byte) current_ypos#22 = (byte) current_ypos#14 [phi:main::@10->main::@1#3] -- register_copy - //SEG123 [32] phi (byte) current_xpos#11 = (byte) current_xpos#20 [phi:main::@10->main::@1#4] -- register_copy - //SEG124 [32] phi (byte*) current_piece_gfx#10 = (byte*) current_piece_gfx#15 [phi:main::@10->main::@1#5] -- register_copy + //SEG121 [32] phi (byte) current_piece_char#15 = (byte) current_piece_char#1 [phi:main::@10->main::@1#2] -- register_copy + //SEG122 [32] phi (byte) current_ypos#21 = (byte) current_ypos#13 [phi:main::@10->main::@1#3] -- register_copy + //SEG123 [32] phi (byte) current_xpos#10 = (byte) current_xpos#19 [phi:main::@10->main::@1#4] -- register_copy + //SEG124 [32] phi (byte*) current_piece_gfx#20 = (byte*) current_piece_gfx#14 [phi:main::@10->main::@1#5] -- register_copy //SEG125 [32] phi (byte) current_orientation#10 = (byte) current_orientation#19 [phi:main::@10->main::@1#6] -- register_copy //SEG126 [32] phi (byte*) current_piece#16 = (byte*) current_piece#10 [phi:main::@10->main::@1#7] -- register_copy jmp b1 @@ -8901,8 +8933,8 @@ render_current: { .label l = 9 .label current_cell = $68 .label c = $c - //SEG128 [66] (byte) render_current::ypos2#0 ← (byte) current_ypos#10 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_rol_1 - lda current_ypos_10 + //SEG128 [66] (byte) render_current::ypos2#0 ← (byte) current_ypos#9 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_rol_1 + lda current_ypos_9 asl sta ypos2 //SEG129 [67] phi from render_current to render_current::@1 [phi:render_current->render_current::@1] @@ -8975,8 +9007,8 @@ render_current: { sta screen_line lda screen_lines+1,y sta screen_line+1 - //SEG153 [77] (byte) render_current::xpos#0 ← (byte) current_xpos#48 -- vbuz1=vbuz2 - lda current_xpos_48 + //SEG153 [77] (byte) render_current::xpos#0 ← (byte) current_xpos#47 -- vbuz1=vbuz2 + lda current_xpos_47 sta xpos //SEG154 [78] phi from render_current::@2 to render_current::@4 [phi:render_current::@2->render_current::@4] b4_from_b2: @@ -8994,9 +9026,9 @@ render_current: { jmp b4 //SEG162 render_current::@4 b4: - //SEG163 [79] (byte) render_current::current_cell#0 ← *((byte*) current_piece_gfx#53 + (byte) render_current::i#4) -- vbuz1=pbuz2_derefidx_vbuz3 + //SEG163 [79] (byte) render_current::current_cell#0 ← *((byte*) current_piece_gfx#52 + (byte) render_current::i#4) -- vbuz1=pbuz2_derefidx_vbuz3 ldy i - lda (current_piece_gfx_53),y + lda (current_piece_gfx_52),y sta current_cell //SEG164 [80] (byte) render_current::i#10 ← ++ (byte) render_current::i#4 -- vbuz1=_inc_vbuz1 inc i @@ -9014,8 +9046,8 @@ render_current: { jmp b10 //SEG168 render_current::@10 b10: - //SEG169 [83] *((byte*) render_current::screen_line#0 + (byte) render_current::xpos#2) ← (byte) current_piece_char#63 -- pbuz1_derefidx_vbuz2=vbuz3 - lda current_piece_char_63 + //SEG169 [83] *((byte*) render_current::screen_line#0 + (byte) render_current::xpos#2) ← (byte) current_piece_char#62 -- pbuz1_derefidx_vbuz2=vbuz3 + lda current_piece_char_62 ldy xpos sta (screen_line),y jmp b5 @@ -9136,7 +9168,7 @@ play_move_rotate: { //SEG207 [102] 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: - //SEG208 [102] phi (byte*) current_piece_gfx#15 = (byte*) current_piece_gfx#14 [phi:play_move_rotate::@14/play_move_rotate::@6->play_move_rotate::@return#0] -- register_copy + //SEG208 [102] phi (byte*) current_piece_gfx#14 = (byte*) current_piece_gfx#1 [phi:play_move_rotate::@14/play_move_rotate::@6->play_move_rotate::@return#0] -- register_copy //SEG209 [102] phi (byte) current_orientation#19 = (byte) current_orientation#14 [phi:play_move_rotate::@14/play_move_rotate::@6->play_move_rotate::@return#1] -- register_copy //SEG210 [102] phi (byte) play_move_rotate::return#1 = (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 @@ -9164,10 +9196,10 @@ play_move_rotate: { jmp b4 //SEG218 play_move_rotate::@4 b4: - //SEG219 [107] (byte) play_collision::xpos#3 ← (byte) current_xpos#20 -- vbuz1=vbuz2 + //SEG219 [107] (byte) play_collision::xpos#3 ← (byte) current_xpos#19 -- vbuz1=vbuz2 lda current_xpos sta play_collision.xpos - //SEG220 [108] (byte) play_collision::ypos#3 ← (byte) current_ypos#14 -- vbuz1=vbuz2 + //SEG220 [108] (byte) play_collision::ypos#3 ← (byte) current_ypos#13 -- vbuz1=vbuz2 lda current_ypos sta play_collision.ypos //SEG221 [109] (byte) play_collision::orientation#3 ← (byte) play_move_rotate::orientation#3 -- vbuz1=vbuz2 @@ -9205,7 +9237,7 @@ play_move_rotate: { //SEG234 [115] (byte) current_orientation#4 ← (byte) play_move_rotate::orientation#3 -- vbuz1=vbuz2 lda orientation sta current_orientation - //SEG235 [116] (byte*) current_piece_gfx#4 ← (byte*) current_piece#10 + (byte) current_orientation#4 -- pbuz1=pbuz2_plus_vbuz3 + //SEG235 [116] (byte*) current_piece_gfx#3 ← (byte*) current_piece#10 + (byte) current_orientation#4 -- pbuz1=pbuz2_plus_vbuz3 lda current_orientation clc adc current_piece @@ -9215,7 +9247,7 @@ play_move_rotate: { sta current_piece_gfx+1 //SEG236 [102] phi from play_move_rotate::@11 to play_move_rotate::@return [phi:play_move_rotate::@11->play_move_rotate::@return] breturn_from_b11: - //SEG237 [102] phi (byte*) current_piece_gfx#15 = (byte*) current_piece_gfx#4 [phi:play_move_rotate::@11->play_move_rotate::@return#0] -- register_copy + //SEG237 [102] phi (byte*) current_piece_gfx#14 = (byte*) current_piece_gfx#3 [phi:play_move_rotate::@11->play_move_rotate::@return#0] -- register_copy //SEG238 [102] phi (byte) current_orientation#19 = (byte) current_orientation#4 [phi:play_move_rotate::@11->play_move_rotate::@return#1] -- register_copy //SEG239 [102] phi (byte) play_move_rotate::return#1 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_move_rotate::@11->play_move_rotate::@return#2] -- vbuz1=vbuc1 lda #1 @@ -9440,11 +9472,11 @@ play_move_leftright: { jmp b7 //SEG305 play_move_leftright::@7 b7: - //SEG306 [145] (byte) play_collision::xpos#2 ← (byte) current_xpos#16 + (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_plus_1 + //SEG306 [145] (byte) play_collision::xpos#2 ← (byte) current_xpos#1 + (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_plus_1 ldy current_xpos iny sty play_collision.xpos - //SEG307 [146] (byte) play_collision::ypos#2 ← (byte) current_ypos#14 -- vbuz1=vbuz2 + //SEG307 [146] (byte) play_collision::ypos#2 ← (byte) current_ypos#13 -- vbuz1=vbuz2 lda current_ypos sta play_collision.ypos //SEG308 [147] (byte) play_collision::orientation#2 ← (byte) current_orientation#14 -- vbuz1=vbuz2 @@ -9479,12 +9511,12 @@ play_move_leftright: { jmp b8 //SEG320 play_move_leftright::@8 b8: - //SEG321 [153] (byte) current_xpos#3 ← ++ (byte) current_xpos#16 -- vbuz1=_inc_vbuz1 + //SEG321 [153] (byte) current_xpos#2 ← ++ (byte) current_xpos#1 -- vbuz1=_inc_vbuz1 inc current_xpos //SEG322 [154] 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: - //SEG323 [154] phi (byte) current_xpos#20 = (byte) current_xpos#5 [phi:play_move_leftright::@11/play_move_leftright::@8->play_move_leftright::@return#0] -- register_copy + //SEG323 [154] phi (byte) current_xpos#19 = (byte) current_xpos#4 [phi:play_move_leftright::@11/play_move_leftright::@8->play_move_leftright::@return#0] -- register_copy //SEG324 [154] phi (byte) play_move_leftright::return#1 = (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 @@ -9493,7 +9525,7 @@ play_move_leftright: { breturn_from_b14: breturn_from_b15: breturn_from_b6: - //SEG326 [154] phi (byte) current_xpos#20 = (byte) current_xpos#16 [phi:play_move_leftright::@14/play_move_leftright::@15/play_move_leftright::@6->play_move_leftright::@return#0] -- register_copy + //SEG326 [154] phi (byte) current_xpos#19 = (byte) current_xpos#1 [phi:play_move_leftright::@14/play_move_leftright::@15/play_move_leftright::@6->play_move_leftright::@return#0] -- register_copy //SEG327 [154] phi (byte) play_move_leftright::return#1 = (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 @@ -9504,11 +9536,11 @@ play_move_leftright: { rts //SEG330 play_move_leftright::@1 b1: - //SEG331 [156] (byte) play_collision::xpos#1 ← (byte) current_xpos#16 - (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_minus_1 + //SEG331 [156] (byte) play_collision::xpos#1 ← (byte) current_xpos#1 - (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_minus_1 ldx current_xpos dex stx play_collision.xpos - //SEG332 [157] (byte) play_collision::ypos#1 ← (byte) current_ypos#14 -- vbuz1=vbuz2 + //SEG332 [157] (byte) play_collision::ypos#1 ← (byte) current_ypos#13 -- vbuz1=vbuz2 lda current_ypos sta play_collision.ypos //SEG333 [158] (byte) play_collision::orientation#1 ← (byte) current_orientation#14 -- vbuz1=vbuz2 @@ -9543,7 +9575,7 @@ play_move_leftright: { jmp b11 //SEG345 play_move_leftright::@11 b11: - //SEG346 [164] (byte) current_xpos#5 ← -- (byte) current_xpos#16 -- vbuz1=_dec_vbuz1 + //SEG346 [164] (byte) current_xpos#4 ← -- (byte) current_xpos#1 -- vbuz1=_dec_vbuz1 dec current_xpos jmp breturn_from_b11 } @@ -9643,11 +9675,11 @@ play_move_down: { jmp b12 //SEG378 play_move_down::@12 b12: - //SEG379 [180] (byte) play_collision::ypos#0 ← (byte) current_ypos#22 + (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_plus_1 + //SEG379 [180] (byte) play_collision::ypos#0 ← (byte) current_ypos#21 + (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_plus_1 ldy current_ypos iny sty play_collision.ypos - //SEG380 [181] (byte) play_collision::xpos#0 ← (byte) current_xpos#11 -- vbuz1=vbuz2 + //SEG380 [181] (byte) play_collision::xpos#0 ← (byte) current_xpos#10 -- vbuz1=vbuz2 lda current_xpos sta play_collision.xpos //SEG381 [182] (byte) play_collision::orientation#0 ← (byte) current_orientation#10 -- vbuz1=vbuz2 @@ -9712,25 +9744,25 @@ play_move_down: { sta current_piece+1 //SEG405 [195] phi from play_move_down::@20 to play_move_down::@7 [phi:play_move_down::@20->play_move_down::@7] b7_from_b20: - //SEG406 [195] phi (byte) current_piece_char#21 = (byte) current_piece_char#13 [phi:play_move_down::@20->play_move_down::@7#0] -- register_copy - //SEG407 [195] phi (byte) current_xpos#34 = (byte) current_xpos#24 [phi:play_move_down::@20->play_move_down::@7#1] -- register_copy - //SEG408 [195] phi (byte*) current_piece_gfx#27 = (byte*) current_piece_gfx#17 [phi:play_move_down::@20->play_move_down::@7#2] -- register_copy + //SEG406 [195] phi (byte) current_piece_char#20 = (byte) current_piece_char#12 [phi:play_move_down::@20->play_move_down::@7#0] -- register_copy + //SEG407 [195] phi (byte) current_xpos#33 = (byte) current_xpos#23 [phi:play_move_down::@20->play_move_down::@7#1] -- register_copy + //SEG408 [195] phi (byte*) current_piece_gfx#26 = (byte*) current_piece_gfx#16 [phi:play_move_down::@20->play_move_down::@7#2] -- register_copy //SEG409 [195] phi (byte) current_orientation#29 = (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 //SEG410 [195] phi (byte*) current_piece#20 = (byte*~) current_piece#77 [phi:play_move_down::@20->play_move_down::@7#4] -- register_copy - //SEG411 [195] phi (byte) current_ypos#30 = (byte) current_ypos#19 [phi:play_move_down::@20->play_move_down::@7#5] -- register_copy + //SEG411 [195] phi (byte) current_ypos#29 = (byte) current_ypos#18 [phi:play_move_down::@20->play_move_down::@7#5] -- register_copy jmp b7 //SEG412 play_move_down::@7 b7: //SEG413 [196] phi from play_move_down::@7 to play_move_down::@return [phi:play_move_down::@7->play_move_down::@return] breturn_from_b7: - //SEG414 [196] phi (byte) current_piece_char#11 = (byte) current_piece_char#21 [phi:play_move_down::@7->play_move_down::@return#0] -- register_copy - //SEG415 [196] phi (byte) current_xpos#16 = (byte) current_xpos#34 [phi:play_move_down::@7->play_move_down::@return#1] -- register_copy - //SEG416 [196] phi (byte*) current_piece_gfx#14 = (byte*) current_piece_gfx#27 [phi:play_move_down::@7->play_move_down::@return#2] -- register_copy + //SEG414 [196] phi (byte) current_piece_char#1 = (byte) current_piece_char#20 [phi:play_move_down::@7->play_move_down::@return#0] -- register_copy + //SEG415 [196] phi (byte) current_xpos#1 = (byte) current_xpos#33 [phi:play_move_down::@7->play_move_down::@return#1] -- register_copy + //SEG416 [196] phi (byte*) current_piece_gfx#1 = (byte*) current_piece_gfx#26 [phi:play_move_down::@7->play_move_down::@return#2] -- register_copy //SEG417 [196] phi (byte) current_orientation#14 = (byte) current_orientation#29 [phi:play_move_down::@7->play_move_down::@return#3] -- register_copy //SEG418 [196] phi (byte*) current_piece#10 = (byte*) current_piece#20 [phi:play_move_down::@7->play_move_down::@return#4] -- register_copy - //SEG419 [196] phi (byte) current_ypos#14 = (byte) current_ypos#30 [phi:play_move_down::@7->play_move_down::@return#5] -- register_copy + //SEG419 [196] phi (byte) current_ypos#13 = (byte) current_ypos#29 [phi:play_move_down::@7->play_move_down::@return#5] -- register_copy //SEG420 [196] phi (byte) current_movedown_counter#10 = (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 @@ -9740,12 +9772,12 @@ play_move_down: { jmp breturn //SEG422 [196] phi from play_move_down::@4 to play_move_down::@return [phi:play_move_down::@4->play_move_down::@return] breturn_from_b4: - //SEG423 [196] phi (byte) current_piece_char#11 = (byte) current_piece_char#16 [phi:play_move_down::@4->play_move_down::@return#0] -- register_copy - //SEG424 [196] phi (byte) current_xpos#16 = (byte) current_xpos#11 [phi:play_move_down::@4->play_move_down::@return#1] -- register_copy - //SEG425 [196] phi (byte*) current_piece_gfx#14 = (byte*) current_piece_gfx#10 [phi:play_move_down::@4->play_move_down::@return#2] -- register_copy + //SEG423 [196] phi (byte) current_piece_char#1 = (byte) current_piece_char#15 [phi:play_move_down::@4->play_move_down::@return#0] -- register_copy + //SEG424 [196] phi (byte) current_xpos#1 = (byte) current_xpos#10 [phi:play_move_down::@4->play_move_down::@return#1] -- register_copy + //SEG425 [196] phi (byte*) current_piece_gfx#1 = (byte*) current_piece_gfx#20 [phi:play_move_down::@4->play_move_down::@return#2] -- register_copy //SEG426 [196] phi (byte) current_orientation#14 = (byte) current_orientation#10 [phi:play_move_down::@4->play_move_down::@return#3] -- register_copy //SEG427 [196] phi (byte*) current_piece#10 = (byte*) current_piece#16 [phi:play_move_down::@4->play_move_down::@return#4] -- register_copy - //SEG428 [196] phi (byte) current_ypos#14 = (byte) current_ypos#22 [phi:play_move_down::@4->play_move_down::@return#5] -- register_copy + //SEG428 [196] phi (byte) current_ypos#13 = (byte) current_ypos#21 [phi:play_move_down::@4->play_move_down::@return#5] -- register_copy //SEG429 [196] phi (byte) current_movedown_counter#10 = (byte) current_movedown_counter#1 [phi:play_move_down::@4->play_move_down::@return#6] -- register_copy //SEG430 [196] phi (byte) play_move_down::return#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_down::@4->play_move_down::@return#7] -- vbuz1=vbuc1 lda #0 @@ -9757,16 +9789,16 @@ play_move_down: { rts //SEG433 play_move_down::@6 b6: - //SEG434 [198] (byte) current_ypos#1 ← ++ (byte) current_ypos#22 -- vbuz1=_inc_vbuz1 + //SEG434 [198] (byte) current_ypos#0 ← ++ (byte) current_ypos#21 -- vbuz1=_inc_vbuz1 inc current_ypos //SEG435 [195] phi from play_move_down::@6 to play_move_down::@7 [phi:play_move_down::@6->play_move_down::@7] b7_from_b6: - //SEG436 [195] phi (byte) current_piece_char#21 = (byte) current_piece_char#16 [phi:play_move_down::@6->play_move_down::@7#0] -- register_copy - //SEG437 [195] phi (byte) current_xpos#34 = (byte) current_xpos#11 [phi:play_move_down::@6->play_move_down::@7#1] -- register_copy - //SEG438 [195] phi (byte*) current_piece_gfx#27 = (byte*) current_piece_gfx#10 [phi:play_move_down::@6->play_move_down::@7#2] -- register_copy + //SEG436 [195] phi (byte) current_piece_char#20 = (byte) current_piece_char#15 [phi:play_move_down::@6->play_move_down::@7#0] -- register_copy + //SEG437 [195] phi (byte) current_xpos#33 = (byte) current_xpos#10 [phi:play_move_down::@6->play_move_down::@7#1] -- register_copy + //SEG438 [195] phi (byte*) current_piece_gfx#26 = (byte*) current_piece_gfx#20 [phi:play_move_down::@6->play_move_down::@7#2] -- register_copy //SEG439 [195] phi (byte) current_orientation#29 = (byte) current_orientation#10 [phi:play_move_down::@6->play_move_down::@7#3] -- register_copy //SEG440 [195] phi (byte*) current_piece#20 = (byte*) current_piece#16 [phi:play_move_down::@6->play_move_down::@7#4] -- register_copy - //SEG441 [195] phi (byte) current_ypos#30 = (byte) current_ypos#1 [phi:play_move_down::@6->play_move_down::@7#5] -- register_copy + //SEG441 [195] phi (byte) current_ypos#29 = (byte) current_ypos#0 [phi:play_move_down::@6->play_move_down::@7#5] -- register_copy jmp b7 } //SEG442 play_spawn_current @@ -9793,21 +9825,21 @@ play_spawn_current: { lda piece_idx asl sta _3 - //SEG449 [203] (byte*) current_piece_gfx#17 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) + (byte/signed byte/word/signed word/dword/signed dword) 0 -- pbuz1=pptc1_derefidx_vbuz2_plus_0 + //SEG449 [203] (byte*) current_piece_gfx#16 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_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 - //SEG450 [204] (byte) current_xpos#24 ← *((const byte[]) PIECES_START_X#0 + (byte) play_spawn_current::piece_idx#2) -- vbuz1=pbuc1_derefidx_vbuz2 + //SEG450 [204] (byte) current_xpos#23 ← *((const byte[]) PIECES_START_X#0 + (byte) play_spawn_current::piece_idx#2) -- vbuz1=pbuc1_derefidx_vbuz2 ldy piece_idx lda PIECES_START_X,y sta current_xpos - //SEG451 [205] (byte) current_ypos#19 ← *((const byte[]) PIECES_START_Y#0 + (byte) play_spawn_current::piece_idx#2) -- vbuz1=pbuc1_derefidx_vbuz2 + //SEG451 [205] (byte) current_ypos#18 ← *((const byte[]) PIECES_START_Y#0 + (byte) play_spawn_current::piece_idx#2) -- vbuz1=pbuc1_derefidx_vbuz2 ldy piece_idx lda PIECES_START_Y,y sta current_ypos - //SEG452 [206] (byte) current_piece_char#13 ← *((const byte[]) PIECES_CHARS#0 + (byte) play_spawn_current::piece_idx#2) -- vbuz1=pbuc1_derefidx_vbuz2 + //SEG452 [206] (byte) current_piece_char#12 ← *((const byte[]) PIECES_CHARS#0 + (byte) play_spawn_current::piece_idx#2) -- vbuz1=pbuc1_derefidx_vbuz2 ldy piece_idx lda PIECES_CHARS,y sta current_piece_char @@ -10007,7 +10039,7 @@ play_lock_current: { .label i_3 = $32 .label i_7 = $32 .label i_9 = $32 - //SEG522 [237] (byte) play_lock_current::ypos2#0 ← (byte) current_ypos#22 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_rol_1 + //SEG522 [237] (byte) play_lock_current::ypos2#0 ← (byte) current_ypos#21 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_rol_1 lda current_ypos asl sta ypos2 @@ -10029,7 +10061,7 @@ play_lock_current: { sta playfield_line lda playfield_lines+1,y sta playfield_line+1 - //SEG529 [240] (byte) play_lock_current::col#0 ← (byte) current_xpos#11 -- vbuz1=vbuz2 + //SEG529 [240] (byte) play_lock_current::col#0 ← (byte) current_xpos#10 -- vbuz1=vbuz2 lda current_xpos sta col //SEG530 [241] phi from play_lock_current::@1 to play_lock_current::@2 [phi:play_lock_current::@1->play_lock_current::@2] @@ -10046,7 +10078,7 @@ play_lock_current: { ldy i_2 iny sty i - //SEG536 [243] if(*((byte*) current_piece_gfx#10 + (byte) play_lock_current::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_lock_current::@3 -- pbuz1_derefidx_vbuz2_eq_0_then_la1 + //SEG536 [243] if(*((byte*) current_piece_gfx#20 + (byte) play_lock_current::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_lock_current::@3 -- pbuz1_derefidx_vbuz2_eq_0_then_la1 ldy i_2 lda (current_piece_gfx),y cmp #0 @@ -10054,7 +10086,7 @@ play_lock_current: { jmp b4 //SEG537 play_lock_current::@4 b4: - //SEG538 [244] *((byte*) play_lock_current::playfield_line#0 + (byte) play_lock_current::col#2) ← (byte) current_piece_char#16 -- pbuz1_derefidx_vbuz2=vbuz3 + //SEG538 [244] *((byte*) play_lock_current::playfield_line#0 + (byte) play_lock_current::col#2) ← (byte) current_piece_char#15 -- pbuz1_derefidx_vbuz2=vbuz3 lda current_piece_char ldy col sta (playfield_line),y @@ -11273,7 +11305,7 @@ irq: { PIECE_O: .byte 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .align $40 PIECE_I: .byte 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0 - PIECES_CHARS: .byte $57, $58, $98, $58, $57, $57, $98 + PIECES_CHARS: .byte $58, $59, $99, $59, $58, $58, $99 PIECES_START_X: .byte 4, 4, 4, 4, 4, 3, 4 PIECES_START_Y: .byte 2, 1, 1, 1, 2, 0, 1 screen_lines: .fill 2*PLAYFIELD_LINES, 0 @@ -11307,43 +11339,43 @@ Statement [4] (byte) irq_raster_next#0 ← (const byte) IRQ_RASTER_FIRST#0 [ ] ( Statement [5] (byte) irq_sprite_ypos#0 ← (byte/signed byte/word/signed word/dword/signed dword) 50 [ ] ( ) always clobbers reg byte a Statement [7] (byte) irq_sprite_ptr#0 ← (const byte) toSpritePtr1_return#0 [ ] ( ) always clobbers reg byte a Statement [8] (byte) irq_cnt#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( ) always clobbers reg byte a -Statement [28] (byte*~) current_piece_gfx#95 ← (byte*) current_piece_gfx#17 [ current_ypos#79 current_ypos#19 current_xpos#105 current_xpos#24 current_piece_gfx#95 current_piece_gfx#17 current_piece_char#13 play_spawn_current::$3 ] ( main:10 [ current_ypos#79 current_ypos#19 current_xpos#105 current_xpos#24 current_piece_gfx#95 current_piece_gfx#17 current_piece_char#13 play_spawn_current::$3 ] ) always clobbers reg byte a -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:3 [ current_ypos#10 current_ypos#79 current_ypos#80 ] -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:33 [ current_ypos#30 current_ypos#22 current_ypos#14 current_ypos#19 current_ypos#1 ] -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:4 [ current_xpos#48 current_xpos#105 current_xpos#106 ] -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:39 [ current_xpos#34 current_xpos#11 current_xpos#20 current_xpos#24 current_xpos#5 current_xpos#16 current_xpos#3 ] -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:40 [ current_piece_char#21 current_piece_char#16 current_piece_char#11 current_piece_char#13 ] +Statement [28] (byte*~) current_piece_gfx#99 ← (byte*) current_piece_gfx#16 [ current_ypos#83 current_ypos#18 current_xpos#109 current_xpos#23 current_piece_gfx#99 current_piece_gfx#16 current_piece_char#12 play_spawn_current::$3 ] ( main:10 [ current_ypos#83 current_ypos#18 current_xpos#109 current_xpos#23 current_piece_gfx#99 current_piece_gfx#16 current_piece_char#12 play_spawn_current::$3 ] ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:3 [ current_ypos#9 current_ypos#83 current_ypos#84 ] +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:33 [ current_ypos#29 current_ypos#21 current_ypos#13 current_ypos#18 current_ypos#0 ] +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:4 [ current_xpos#47 current_xpos#109 current_xpos#110 ] +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:39 [ current_xpos#33 current_xpos#10 current_xpos#19 current_xpos#23 current_xpos#4 current_xpos#1 current_xpos#2 ] +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:40 [ current_piece_char#20 current_piece_char#15 current_piece_char#1 current_piece_char#12 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:124 [ play_spawn_current::$3 ] -Statement [31] (byte*~) current_piece#72 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) [ current_ypos#19 current_xpos#24 current_piece_gfx#17 current_piece_char#13 current_piece#72 ] ( main:10 [ current_ypos#19 current_xpos#24 current_piece_gfx#17 current_piece_char#13 current_piece#72 ] ) always clobbers reg byte a -Statement [33] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@4 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 keyboard_events_size#19 current_movedown_counter#12 ] ( main:10 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 keyboard_events_size#19 current_movedown_counter#12 ] ) always clobbers reg byte a +Statement [31] (byte*~) current_piece#72 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) [ current_ypos#18 current_xpos#23 current_piece_gfx#16 current_piece_char#12 current_piece#72 ] ( main:10 [ current_ypos#18 current_xpos#23 current_piece_gfx#16 current_piece_char#12 current_piece#72 ] ) always clobbers reg byte a +Statement [33] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@4 [ current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 keyboard_events_size#19 current_movedown_counter#12 ] ( main:10 [ current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 keyboard_events_size#19 current_movedown_counter#12 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:36 [ current_orientation#29 current_orientation#10 current_orientation#19 current_orientation#4 current_orientation#14 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:59 [ 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:2 [ current_movedown_counter#12 current_movedown_counter#10 current_movedown_counter#1 ] -Statement [34] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 254) goto main::@7 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 keyboard_events_size#19 current_movedown_counter#12 ] ( main:10 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 keyboard_events_size#19 current_movedown_counter#12 ] ) always clobbers reg byte a -Statement [45] (byte) main::render#1 ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte~) main::$12 [ current_piece#10 current_ypos#14 current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_orientation#14 current_piece_gfx#14 current_xpos#16 ] ( main:10 [ current_piece#10 current_ypos#14 current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_orientation#14 current_piece_gfx#14 current_xpos#16 ] ) always clobbers reg byte a +Statement [34] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 254) goto main::@7 [ current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 keyboard_events_size#19 current_movedown_counter#12 ] ( main:10 [ current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 keyboard_events_size#19 current_movedown_counter#12 ] ) always clobbers reg byte a +Statement [45] (byte) main::render#1 ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte~) main::$12 [ current_piece#10 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_orientation#14 current_piece_gfx#1 current_xpos#1 ] ( main:10 [ current_piece#10 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_orientation#14 current_piece_gfx#1 current_xpos#1 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:89 [ main::key_event#0 ] -Statement [50] (byte) main::render#2 ← (byte) main::render#1 + (byte~) main::$13 [ current_piece#10 current_xpos#20 current_ypos#14 current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#2 current_orientation#14 current_piece_gfx#14 ] ( main:10 [ current_piece#10 current_xpos#20 current_ypos#14 current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#2 current_orientation#14 current_piece_gfx#14 ] ) always clobbers reg byte a -Statement [55] (byte) main::render#3 ← (byte) main::render#2 + (byte~) main::$14 [ current_piece#10 current_orientation#19 current_piece_gfx#15 current_xpos#20 current_ypos#14 current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::render#3 ] ( main:10 [ current_piece#10 current_orientation#19 current_piece_gfx#15 current_xpos#20 current_ypos#14 current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::render#3 ] ) always clobbers reg byte a -Statement [61] (byte*~) current_piece_gfx#96 ← (byte*) current_piece_gfx#15 [ current_piece#10 current_orientation#19 current_piece_gfx#15 current_xpos#20 current_ypos#14 current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 current_ypos#80 current_xpos#106 current_piece_gfx#96 ] ( main:10 [ current_piece#10 current_orientation#19 current_piece_gfx#15 current_xpos#20 current_ypos#14 current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 current_ypos#80 current_xpos#106 current_piece_gfx#96 ] ) always clobbers reg byte a -Statement [66] (byte) render_current::ypos2#0 ← (byte) current_ypos#10 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ current_xpos#48 current_piece_gfx#53 current_piece_char#63 render_current::ypos2#0 ] ( main:10::render_current:30 [ current_ypos#19 current_xpos#24 current_piece_gfx#17 current_piece_char#13 play_spawn_current::$3 current_xpos#48 current_piece_gfx#53 current_piece_char#63 render_current::ypos2#0 ] main:10::render_current:63 [ current_piece#10 current_orientation#19 current_piece_gfx#15 current_xpos#20 current_ypos#14 current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 current_xpos#48 current_piece_gfx#53 current_piece_char#63 render_current::ypos2#0 ] ) always clobbers reg byte a -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:7 [ current_piece_char#63 current_piece_char#83 current_piece_char#84 ] -Statement [69] (byte) render_current::i#1 ← (byte) render_current::i#3 + (byte/signed byte/word/signed word/dword/signed dword) 4 [ current_xpos#48 current_piece_gfx#53 current_piece_char#63 render_current::ypos2#2 render_current::l#4 render_current::i#1 ] ( main:10::render_current:30 [ current_ypos#19 current_xpos#24 current_piece_gfx#17 current_piece_char#13 play_spawn_current::$3 current_xpos#48 current_piece_gfx#53 current_piece_char#63 render_current::ypos2#2 render_current::l#4 render_current::i#1 ] main:10::render_current:63 [ current_piece#10 current_orientation#19 current_piece_gfx#15 current_xpos#20 current_ypos#14 current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 current_xpos#48 current_piece_gfx#53 current_piece_char#63 render_current::ypos2#2 render_current::l#4 render_current::i#1 ] ) always clobbers reg byte a +Statement [50] (byte) main::render#2 ← (byte) main::render#1 + (byte~) main::$13 [ current_piece#10 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#2 current_orientation#14 current_piece_gfx#1 ] ( main:10 [ current_piece#10 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#2 current_orientation#14 current_piece_gfx#1 ] ) always clobbers reg byte a +Statement [55] (byte) main::render#3 ← (byte) main::render#2 + (byte~) main::$14 [ current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::render#3 ] ( main:10 [ current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::render#3 ] ) always clobbers reg byte a +Statement [61] (byte*~) current_piece_gfx#100 ← (byte*) current_piece_gfx#14 [ current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 current_ypos#84 current_xpos#110 current_piece_gfx#100 ] ( main:10 [ current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 current_ypos#84 current_xpos#110 current_piece_gfx#100 ] ) always clobbers reg byte a +Statement [66] (byte) render_current::ypos2#0 ← (byte) current_ypos#9 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ current_xpos#47 current_piece_gfx#52 current_piece_char#62 render_current::ypos2#0 ] ( main:10::render_current:30 [ current_ypos#18 current_xpos#23 current_piece_gfx#16 current_piece_char#12 play_spawn_current::$3 current_xpos#47 current_piece_gfx#52 current_piece_char#62 render_current::ypos2#0 ] main:10::render_current:63 [ current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 current_xpos#47 current_piece_gfx#52 current_piece_char#62 render_current::ypos2#0 ] ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:7 [ current_piece_char#62 current_piece_char#87 current_piece_char#88 ] +Statement [69] (byte) render_current::i#1 ← (byte) render_current::i#3 + (byte/signed byte/word/signed word/dword/signed dword) 4 [ current_xpos#47 current_piece_gfx#52 current_piece_char#62 render_current::ypos2#2 render_current::l#4 render_current::i#1 ] ( main:10::render_current:30 [ current_ypos#18 current_xpos#23 current_piece_gfx#16 current_piece_char#12 play_spawn_current::$3 current_xpos#47 current_piece_gfx#52 current_piece_char#62 render_current::ypos2#2 render_current::l#4 render_current::i#1 ] main:10::render_current:63 [ current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 current_xpos#47 current_piece_gfx#52 current_piece_char#62 render_current::ypos2#2 render_current::l#4 render_current::i#1 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:8 [ 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:9 [ render_current::l#4 render_current::l#1 ] -Statement [76] (byte*) render_current::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) screen_lines#0 + (byte) render_current::ypos2#2) [ current_xpos#48 current_piece_gfx#53 current_piece_char#63 render_current::ypos2#2 render_current::i#3 render_current::l#4 render_current::screen_line#0 ] ( main:10::render_current:30 [ current_ypos#19 current_xpos#24 current_piece_gfx#17 current_piece_char#13 play_spawn_current::$3 current_xpos#48 current_piece_gfx#53 current_piece_char#63 render_current::ypos2#2 render_current::i#3 render_current::l#4 render_current::screen_line#0 ] main:10::render_current:63 [ current_piece#10 current_orientation#19 current_piece_gfx#15 current_xpos#20 current_ypos#14 current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 current_xpos#48 current_piece_gfx#53 current_piece_char#63 render_current::ypos2#2 render_current::i#3 render_current::l#4 render_current::screen_line#0 ] ) always clobbers reg byte a +Statement [76] (byte*) render_current::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) screen_lines#0 + (byte) render_current::ypos2#2) [ current_xpos#47 current_piece_gfx#52 current_piece_char#62 render_current::ypos2#2 render_current::i#3 render_current::l#4 render_current::screen_line#0 ] ( main:10::render_current:30 [ current_ypos#18 current_xpos#23 current_piece_gfx#16 current_piece_char#12 play_spawn_current::$3 current_xpos#47 current_piece_gfx#52 current_piece_char#62 render_current::ypos2#2 render_current::i#3 render_current::l#4 render_current::screen_line#0 ] main:10::render_current:63 [ current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 current_xpos#47 current_piece_gfx#52 current_piece_char#62 render_current::ypos2#2 render_current::i#3 render_current::l#4 render_current::screen_line#0 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:10 [ render_current::i#4 render_current::i#3 render_current::i#8 render_current::i#10 render_current::i#1 ] -Statement [79] (byte) render_current::current_cell#0 ← *((byte*) current_piece_gfx#53 + (byte) render_current::i#4) [ current_xpos#48 current_piece_gfx#53 current_piece_char#63 render_current::ypos2#2 render_current::l#4 render_current::screen_line#0 render_current::i#4 render_current::xpos#2 render_current::c#2 render_current::current_cell#0 ] ( main:10::render_current:30 [ current_ypos#19 current_xpos#24 current_piece_gfx#17 current_piece_char#13 play_spawn_current::$3 current_xpos#48 current_piece_gfx#53 current_piece_char#63 render_current::ypos2#2 render_current::l#4 render_current::screen_line#0 render_current::i#4 render_current::xpos#2 render_current::c#2 render_current::current_cell#0 ] main:10::render_current:63 [ current_piece#10 current_orientation#19 current_piece_gfx#15 current_xpos#20 current_ypos#14 current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 current_xpos#48 current_piece_gfx#53 current_piece_char#63 render_current::ypos2#2 render_current::l#4 render_current::screen_line#0 render_current::i#4 render_current::xpos#2 render_current::c#2 render_current::current_cell#0 ] ) always clobbers reg byte a +Statement [79] (byte) render_current::current_cell#0 ← *((byte*) current_piece_gfx#52 + (byte) render_current::i#4) [ current_xpos#47 current_piece_gfx#52 current_piece_char#62 render_current::ypos2#2 render_current::l#4 render_current::screen_line#0 render_current::i#4 render_current::xpos#2 render_current::c#2 render_current::current_cell#0 ] ( main:10::render_current:30 [ current_ypos#18 current_xpos#23 current_piece_gfx#16 current_piece_char#12 play_spawn_current::$3 current_xpos#47 current_piece_gfx#52 current_piece_char#62 render_current::ypos2#2 render_current::l#4 render_current::screen_line#0 render_current::i#4 render_current::xpos#2 render_current::c#2 render_current::current_cell#0 ] main:10::render_current:63 [ current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 current_xpos#47 current_piece_gfx#52 current_piece_char#62 render_current::ypos2#2 render_current::l#4 render_current::screen_line#0 render_current::i#4 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:11 [ render_current::xpos#2 render_current::xpos#0 render_current::xpos#1 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:12 [ render_current::c#2 render_current::c#1 ] -Statement [83] *((byte*) render_current::screen_line#0 + (byte) render_current::xpos#2) ← (byte) current_piece_char#63 [ current_xpos#48 current_piece_gfx#53 current_piece_char#63 render_current::ypos2#2 render_current::l#4 render_current::i#10 render_current::screen_line#0 render_current::xpos#2 render_current::c#2 ] ( main:10::render_current:30 [ current_ypos#19 current_xpos#24 current_piece_gfx#17 current_piece_char#13 play_spawn_current::$3 current_xpos#48 current_piece_gfx#53 current_piece_char#63 render_current::ypos2#2 render_current::l#4 render_current::i#10 render_current::screen_line#0 render_current::xpos#2 render_current::c#2 ] main:10::render_current:63 [ current_piece#10 current_orientation#19 current_piece_gfx#15 current_xpos#20 current_ypos#14 current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 current_xpos#48 current_piece_gfx#53 current_piece_char#63 render_current::ypos2#2 render_current::l#4 render_current::i#10 render_current::screen_line#0 render_current::xpos#2 render_current::c#2 ] ) always clobbers reg byte a -Statement [89] (byte~) render_playfield::$2 ← (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::$2 ] ( main:10::render_playfield:25 [ current_ypos#19 current_xpos#24 current_piece_gfx#17 current_piece_char#13 play_spawn_current::$3 render_playfield::l#2 render_playfield::i#3 render_playfield::$2 ] main:10::render_playfield:58 [ current_piece#10 current_orientation#19 current_piece_gfx#15 current_xpos#20 current_ypos#14 current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 render_playfield::l#2 render_playfield::i#3 render_playfield::$2 ] ) always clobbers reg byte a +Statement [83] *((byte*) render_current::screen_line#0 + (byte) render_current::xpos#2) ← (byte) current_piece_char#62 [ current_xpos#47 current_piece_gfx#52 current_piece_char#62 render_current::ypos2#2 render_current::l#4 render_current::i#10 render_current::screen_line#0 render_current::xpos#2 render_current::c#2 ] ( main:10::render_current:30 [ current_ypos#18 current_xpos#23 current_piece_gfx#16 current_piece_char#12 play_spawn_current::$3 current_xpos#47 current_piece_gfx#52 current_piece_char#62 render_current::ypos2#2 render_current::l#4 render_current::i#10 render_current::screen_line#0 render_current::xpos#2 render_current::c#2 ] main:10::render_current:63 [ current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 current_xpos#47 current_piece_gfx#52 current_piece_char#62 render_current::ypos2#2 render_current::l#4 render_current::i#10 render_current::screen_line#0 render_current::xpos#2 render_current::c#2 ] ) always clobbers reg byte a +Statement [89] (byte~) render_playfield::$2 ← (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::$2 ] ( main:10::render_playfield:25 [ current_ypos#18 current_xpos#23 current_piece_gfx#16 current_piece_char#12 play_spawn_current::$3 render_playfield::l#2 render_playfield::i#3 render_playfield::$2 ] main:10::render_playfield:58 [ current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 render_playfield::l#2 render_playfield::i#3 render_playfield::$2 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:13 [ render_playfield::l#2 render_playfield::l#1 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:14 [ render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 ] -Statement [90] (byte*) render_playfield::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) screen_lines#0 + (byte~) render_playfield::$2) [ render_playfield::l#2 render_playfield::i#3 render_playfield::screen_line#0 ] ( main:10::render_playfield:25 [ current_ypos#19 current_xpos#24 current_piece_gfx#17 current_piece_char#13 play_spawn_current::$3 render_playfield::l#2 render_playfield::i#3 render_playfield::screen_line#0 ] main:10::render_playfield:58 [ current_piece#10 current_orientation#19 current_piece_gfx#15 current_xpos#20 current_ypos#14 current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 render_playfield::l#2 render_playfield::i#3 render_playfield::screen_line#0 ] ) always clobbers reg byte a -Statement [92] *((byte*) render_playfield::screen_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::screen_line#2 render_playfield::c#2 ] ( main:10::render_playfield:25 [ current_ypos#19 current_xpos#24 current_piece_gfx#17 current_piece_char#13 play_spawn_current::$3 render_playfield::l#2 render_playfield::i#2 render_playfield::screen_line#2 render_playfield::c#2 ] main:10::render_playfield:58 [ current_piece#10 current_orientation#19 current_piece_gfx#15 current_xpos#20 current_ypos#14 current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 render_playfield::l#2 render_playfield::i#2 render_playfield::screen_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:33 [ current_ypos#30 current_ypos#22 current_ypos#14 current_ypos#19 current_ypos#1 ] -Removing always clobbered register reg byte y as potential for zp ZP_BYTE:39 [ current_xpos#34 current_xpos#11 current_xpos#20 current_xpos#24 current_xpos#5 current_xpos#16 current_xpos#3 ] -Removing always clobbered register reg byte y as potential for zp ZP_BYTE:40 [ current_piece_char#21 current_piece_char#16 current_piece_char#11 current_piece_char#13 ] +Statement [90] (byte*) render_playfield::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) screen_lines#0 + (byte~) render_playfield::$2) [ render_playfield::l#2 render_playfield::i#3 render_playfield::screen_line#0 ] ( main:10::render_playfield:25 [ current_ypos#18 current_xpos#23 current_piece_gfx#16 current_piece_char#12 play_spawn_current::$3 render_playfield::l#2 render_playfield::i#3 render_playfield::screen_line#0 ] main:10::render_playfield:58 [ current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 render_playfield::l#2 render_playfield::i#3 render_playfield::screen_line#0 ] ) always clobbers reg byte a +Statement [92] *((byte*) render_playfield::screen_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::screen_line#2 render_playfield::c#2 ] ( main:10::render_playfield:25 [ current_ypos#18 current_xpos#23 current_piece_gfx#16 current_piece_char#12 play_spawn_current::$3 render_playfield::l#2 render_playfield::i#2 render_playfield::screen_line#2 render_playfield::c#2 ] main:10::render_playfield:58 [ current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 render_playfield::l#2 render_playfield::i#2 render_playfield::screen_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:33 [ current_ypos#29 current_ypos#21 current_ypos#13 current_ypos#18 current_ypos#0 ] +Removing always clobbered register reg byte y as potential for zp ZP_BYTE:39 [ current_xpos#33 current_xpos#10 current_xpos#19 current_xpos#23 current_xpos#4 current_xpos#1 current_xpos#2 ] +Removing always clobbered register reg byte y as potential for zp ZP_BYTE:40 [ current_piece_char#20 current_piece_char#15 current_piece_char#1 current_piece_char#12 ] Removing always clobbered register reg byte y as potential for zp ZP_BYTE:124 [ play_spawn_current::$3 ] Removing always clobbered register reg byte y as potential for zp ZP_BYTE:13 [ render_playfield::l#2 render_playfield::l#1 ] Removing always clobbered register reg byte y as potential for zp ZP_BYTE:14 [ render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 ] @@ -11352,79 +11384,79 @@ Removing always clobbered register reg byte y as potential for zp ZP_BYTE:17 [ r Removing always clobbered register reg byte y as potential for zp ZP_BYTE:36 [ current_orientation#29 current_orientation#10 current_orientation#19 current_orientation#4 current_orientation#14 ] Removing always clobbered register reg byte y as potential for zp ZP_BYTE:59 [ 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:2 [ current_movedown_counter#12 current_movedown_counter#10 current_movedown_counter#1 ] -Statement [104] (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 ← (byte) current_orientation#14 + (byte/signed byte/word/signed word/dword/signed dword) 16 [ current_piece#10 current_xpos#20 current_ypos#14 current_orientation#14 current_piece_gfx#14 play_move_rotate::$2 ] ( main:10::play_move_rotate:52 [ current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::render#2 current_piece#10 current_xpos#20 current_ypos#14 current_orientation#14 current_piece_gfx#14 play_move_rotate::$2 ] ) always clobbers reg byte a +Statement [104] (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 ← (byte) current_orientation#14 + (byte/signed byte/word/signed word/dword/signed dword) 16 [ current_piece#10 current_xpos#19 current_ypos#13 current_orientation#14 current_piece_gfx#1 play_move_rotate::$2 ] ( main:10::play_move_rotate:52 [ current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::render#2 current_piece#10 current_xpos#19 current_ypos#13 current_orientation#14 current_piece_gfx#1 play_move_rotate::$2 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:97 [ main::render#2 ] -Statement [105] (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#10 current_xpos#20 current_ypos#14 current_orientation#14 current_piece_gfx#14 play_move_rotate::orientation#2 ] ( main:10::play_move_rotate:52 [ current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::render#2 current_piece#10 current_xpos#20 current_ypos#14 current_orientation#14 current_piece_gfx#14 play_move_rotate::orientation#2 ] ) always clobbers reg byte a -Statement [110] (byte*~) current_piece#76 ← (byte*) current_piece#10 [ current_piece#10 current_xpos#20 current_ypos#14 current_orientation#14 current_piece_gfx#14 play_move_rotate::orientation#3 play_collision::xpos#3 play_collision::ypos#3 play_collision::orientation#3 current_piece#76 ] ( main:10::play_move_rotate:52 [ current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::render#2 current_piece#10 current_xpos#20 current_ypos#14 current_orientation#14 current_piece_gfx#14 play_move_rotate::orientation#3 play_collision::xpos#3 play_collision::ypos#3 play_collision::orientation#3 current_piece#76 ] ) always clobbers reg byte a +Statement [105] (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#10 current_xpos#19 current_ypos#13 current_orientation#14 current_piece_gfx#1 play_move_rotate::orientation#2 ] ( main:10::play_move_rotate:52 [ current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::render#2 current_piece#10 current_xpos#19 current_ypos#13 current_orientation#14 current_piece_gfx#1 play_move_rotate::orientation#2 ] ) always clobbers reg byte a +Statement [110] (byte*~) current_piece#76 ← (byte*) current_piece#10 [ current_piece#10 current_xpos#19 current_ypos#13 current_orientation#14 current_piece_gfx#1 play_move_rotate::orientation#3 play_collision::xpos#3 play_collision::ypos#3 play_collision::orientation#3 current_piece#76 ] ( main:10::play_move_rotate:52 [ current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::render#2 current_piece#10 current_xpos#19 current_ypos#13 current_orientation#14 current_piece_gfx#1 play_move_rotate::orientation#3 play_collision::xpos#3 play_collision::ypos#3 play_collision::orientation#3 current_piece#76 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:19 [ 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:24 [ play_collision::xpos#5 play_collision::xpos#0 play_collision::xpos#1 play_collision::xpos#2 play_collision::xpos#3 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:23 [ play_collision::ypos#4 play_collision::ypos#0 play_collision::ypos#1 play_collision::ypos#2 play_collision::ypos#3 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:22 [ play_collision::orientation#4 play_collision::orientation#0 play_collision::orientation#1 play_collision::orientation#2 play_collision::orientation#3 ] -Statement [116] (byte*) current_piece_gfx#4 ← (byte*) current_piece#10 + (byte) current_orientation#4 [ current_piece#10 current_xpos#20 current_ypos#14 current_orientation#4 current_piece_gfx#4 ] ( main:10::play_move_rotate:52 [ current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::render#2 current_piece#10 current_xpos#20 current_ypos#14 current_orientation#4 current_piece_gfx#4 ] ) always clobbers reg byte a -Statement [117] (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 ← (byte) current_orientation#14 - (byte/signed byte/word/signed word/dword/signed dword) 16 [ current_piece#10 current_xpos#20 current_ypos#14 current_orientation#14 current_piece_gfx#14 play_move_rotate::$4 ] ( main:10::play_move_rotate:52 [ current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::render#2 current_piece#10 current_xpos#20 current_ypos#14 current_orientation#14 current_piece_gfx#14 play_move_rotate::$4 ] ) always clobbers reg byte a -Statement [118] (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#10 current_xpos#20 current_ypos#14 current_orientation#14 current_piece_gfx#14 play_move_rotate::orientation#1 ] ( main:10::play_move_rotate:52 [ current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::render#2 current_piece#10 current_xpos#20 current_ypos#14 current_orientation#14 current_piece_gfx#14 play_move_rotate::orientation#1 ] ) always clobbers reg byte a -Statement [120] (byte*) play_collision::piece_gfx#0 ← (byte*) current_piece#12 + (byte) play_collision::orientation#4 [ play_collision::ypos#4 play_collision::xpos#5 play_collision::piece_gfx#0 ] ( main:10::play_move_rotate:52::play_collision:111 [ current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::render#2 current_piece#10 current_xpos#20 current_ypos#14 current_orientation#14 current_piece_gfx#14 play_move_rotate::orientation#3 play_collision::ypos#4 play_collision::xpos#5 play_collision::piece_gfx#0 ] main:10::play_move_leftright:47::play_collision:149 [ current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_piece_gfx#14 current_piece#10 current_ypos#14 current_orientation#14 current_xpos#16 play_collision::ypos#4 play_collision::xpos#5 play_collision::piece_gfx#0 ] main:10::play_move_leftright:47::play_collision:160 [ current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_piece_gfx#14 current_piece#10 current_ypos#14 current_orientation#14 current_xpos#16 play_collision::ypos#4 play_collision::xpos#5 play_collision::piece_gfx#0 ] main:10::play_move_down:42::play_collision:184 [ keyboard_events_size#16 main::key_event#0 current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 play_collision::ypos#4 play_collision::xpos#5 play_collision::piece_gfx#0 ] ) always clobbers reg byte a +Statement [116] (byte*) current_piece_gfx#3 ← (byte*) current_piece#10 + (byte) current_orientation#4 [ current_piece#10 current_xpos#19 current_ypos#13 current_orientation#4 current_piece_gfx#3 ] ( main:10::play_move_rotate:52 [ current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::render#2 current_piece#10 current_xpos#19 current_ypos#13 current_orientation#4 current_piece_gfx#3 ] ) always clobbers reg byte a +Statement [117] (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 ← (byte) current_orientation#14 - (byte/signed byte/word/signed word/dword/signed dword) 16 [ current_piece#10 current_xpos#19 current_ypos#13 current_orientation#14 current_piece_gfx#1 play_move_rotate::$4 ] ( main:10::play_move_rotate:52 [ current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::render#2 current_piece#10 current_xpos#19 current_ypos#13 current_orientation#14 current_piece_gfx#1 play_move_rotate::$4 ] ) always clobbers reg byte a +Statement [118] (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#10 current_xpos#19 current_ypos#13 current_orientation#14 current_piece_gfx#1 play_move_rotate::orientation#1 ] ( main:10::play_move_rotate:52 [ current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::render#2 current_piece#10 current_xpos#19 current_ypos#13 current_orientation#14 current_piece_gfx#1 play_move_rotate::orientation#1 ] ) always clobbers reg byte a +Statement [120] (byte*) play_collision::piece_gfx#0 ← (byte*) current_piece#12 + (byte) play_collision::orientation#4 [ play_collision::ypos#4 play_collision::xpos#5 play_collision::piece_gfx#0 ] ( main:10::play_move_rotate:52::play_collision:111 [ current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::render#2 current_piece#10 current_xpos#19 current_ypos#13 current_orientation#14 current_piece_gfx#1 play_move_rotate::orientation#3 play_collision::ypos#4 play_collision::xpos#5 play_collision::piece_gfx#0 ] main:10::play_move_leftright:47::play_collision:149 [ current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_piece_gfx#1 current_piece#10 current_ypos#13 current_orientation#14 current_xpos#1 play_collision::ypos#4 play_collision::xpos#5 play_collision::piece_gfx#0 ] main:10::play_move_leftright:47::play_collision:160 [ current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_piece_gfx#1 current_piece#10 current_ypos#13 current_orientation#14 current_xpos#1 play_collision::ypos#4 play_collision::xpos#5 play_collision::piece_gfx#0 ] main:10::play_move_down:42::play_collision:184 [ keyboard_events_size#16 main::key_event#0 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 play_collision::ypos#4 play_collision::xpos#5 play_collision::piece_gfx#0 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:93 [ main::render#1 ] -Statement [121] (byte) play_collision::ypos2#0 ← (byte) play_collision::ypos#4 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#0 ] ( main:10::play_move_rotate:52::play_collision:111 [ current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::render#2 current_piece#10 current_xpos#20 current_ypos#14 current_orientation#14 current_piece_gfx#14 play_move_rotate::orientation#3 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#0 ] main:10::play_move_leftright:47::play_collision:149 [ current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_piece_gfx#14 current_piece#10 current_ypos#14 current_orientation#14 current_xpos#16 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#0 ] main:10::play_move_leftright:47::play_collision:160 [ current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_piece_gfx#14 current_piece#10 current_ypos#14 current_orientation#14 current_xpos#16 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#0 ] main:10::play_move_down:42::play_collision:184 [ keyboard_events_size#16 main::key_event#0 current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#0 ] ) always clobbers reg byte a -Statement [123] (byte*) play_collision::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) play_collision::ypos2#2) [ play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] ( main:10::play_move_rotate:52::play_collision:111 [ current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::render#2 current_piece#10 current_xpos#20 current_ypos#14 current_orientation#14 current_piece_gfx#14 play_move_rotate::orientation#3 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] main:10::play_move_leftright:47::play_collision:149 [ current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_piece_gfx#14 current_piece#10 current_ypos#14 current_orientation#14 current_xpos#16 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] main:10::play_move_leftright:47::play_collision:160 [ current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_piece_gfx#14 current_piece#10 current_ypos#14 current_orientation#14 current_xpos#16 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] main:10::play_move_down:42::play_collision:184 [ keyboard_events_size#16 main::key_event#0 current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] ) always clobbers reg byte a +Statement [121] (byte) play_collision::ypos2#0 ← (byte) play_collision::ypos#4 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#0 ] ( main:10::play_move_rotate:52::play_collision:111 [ current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::render#2 current_piece#10 current_xpos#19 current_ypos#13 current_orientation#14 current_piece_gfx#1 play_move_rotate::orientation#3 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#0 ] main:10::play_move_leftright:47::play_collision:149 [ current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_piece_gfx#1 current_piece#10 current_ypos#13 current_orientation#14 current_xpos#1 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#0 ] main:10::play_move_leftright:47::play_collision:160 [ current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_piece_gfx#1 current_piece#10 current_ypos#13 current_orientation#14 current_xpos#1 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#0 ] main:10::play_move_down:42::play_collision:184 [ keyboard_events_size#16 main::key_event#0 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#0 ] ) always clobbers reg byte a +Statement [123] (byte*) play_collision::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) play_collision::ypos2#2) [ play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] ( main:10::play_move_rotate:52::play_collision:111 [ current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::render#2 current_piece#10 current_xpos#19 current_ypos#13 current_orientation#14 current_piece_gfx#1 play_move_rotate::orientation#3 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] main:10::play_move_leftright:47::play_collision:149 [ current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_piece_gfx#1 current_piece#10 current_ypos#13 current_orientation#14 current_xpos#1 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] main:10::play_move_leftright:47::play_collision:160 [ current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_piece_gfx#1 current_piece#10 current_ypos#13 current_orientation#14 current_xpos#1 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] main:10::play_move_down:42::play_collision:184 [ keyboard_events_size#16 main::key_event#0 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:25 [ play_collision::ypos2#2 play_collision::ypos2#0 play_collision::ypos2#1 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:27 [ play_collision::i#2 play_collision::i#3 play_collision::i#11 play_collision::i#13 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:26 [ play_collision::l#6 play_collision::l#1 ] -Statement [127] if(*((byte*) play_collision::piece_gfx#0 + (byte) play_collision::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_collision::@3 [ play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] ( main:10::play_move_rotate:52::play_collision:111 [ current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::render#2 current_piece#10 current_xpos#20 current_ypos#14 current_orientation#14 current_piece_gfx#14 play_move_rotate::orientation#3 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:10::play_move_leftright:47::play_collision:149 [ current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_piece_gfx#14 current_piece#10 current_ypos#14 current_orientation#14 current_xpos#16 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:10::play_move_leftright:47::play_collision:160 [ current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_piece_gfx#14 current_piece#10 current_ypos#14 current_orientation#14 current_xpos#16 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:10::play_move_down:42::play_collision:184 [ keyboard_events_size#16 main::key_event#0 current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] ) always clobbers reg byte a +Statement [127] if(*((byte*) play_collision::piece_gfx#0 + (byte) play_collision::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_collision::@3 [ play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] ( main:10::play_move_rotate:52::play_collision:111 [ current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::render#2 current_piece#10 current_xpos#19 current_ypos#13 current_orientation#14 current_piece_gfx#1 play_move_rotate::orientation#3 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:10::play_move_leftright:47::play_collision:149 [ current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_piece_gfx#1 current_piece#10 current_ypos#13 current_orientation#14 current_xpos#1 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:10::play_move_leftright:47::play_collision:160 [ current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_piece_gfx#1 current_piece#10 current_ypos#13 current_orientation#14 current_xpos#1 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:10::play_move_down:42::play_collision:184 [ keyboard_events_size#16 main::key_event#0 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:28 [ play_collision::col#2 play_collision::col#9 play_collision::col#1 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:29 [ play_collision::c#2 play_collision::c#1 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:114 [ play_collision::i#1 ] -Statement [131] (byte~) play_collision::$7 ← (byte) play_collision::col#2 & (byte/word/signed word/dword/signed dword) 128 [ play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] ( main:10::play_move_rotate:52::play_collision:111 [ current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::render#2 current_piece#10 current_xpos#20 current_ypos#14 current_orientation#14 current_piece_gfx#14 play_move_rotate::orientation#3 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] main:10::play_move_leftright:47::play_collision:149 [ current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_piece_gfx#14 current_piece#10 current_ypos#14 current_orientation#14 current_xpos#16 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] main:10::play_move_leftright:47::play_collision:160 [ current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_piece_gfx#14 current_piece#10 current_ypos#14 current_orientation#14 current_xpos#16 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] main:10::play_move_down:42::play_collision:184 [ keyboard_events_size#16 main::key_event#0 current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] ) always clobbers reg byte a -Statement [134] if(*((byte*) play_collision::playfield_line#0 + (byte) play_collision::col#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_collision::@3 [ play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] ( main:10::play_move_rotate:52::play_collision:111 [ current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::render#2 current_piece#10 current_xpos#20 current_ypos#14 current_orientation#14 current_piece_gfx#14 play_move_rotate::orientation#3 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:10::play_move_leftright:47::play_collision:149 [ current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_piece_gfx#14 current_piece#10 current_ypos#14 current_orientation#14 current_xpos#16 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:10::play_move_leftright:47::play_collision:160 [ current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_piece_gfx#14 current_piece#10 current_ypos#14 current_orientation#14 current_xpos#16 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:10::play_move_down:42::play_collision:184 [ keyboard_events_size#16 main::key_event#0 current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] ) always clobbers reg byte a -Statement [148] (byte*~) current_piece#75 ← (byte*) current_piece#10 [ current_piece#10 current_ypos#14 current_orientation#14 current_piece#75 play_collision::orientation#2 play_collision::ypos#2 play_collision::xpos#2 current_xpos#16 ] ( main:10::play_move_leftright:47 [ current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_piece_gfx#14 current_piece#10 current_ypos#14 current_orientation#14 current_piece#75 play_collision::orientation#2 play_collision::ypos#2 play_collision::xpos#2 current_xpos#16 ] ) always clobbers reg byte a -Statement [159] (byte*~) current_piece#74 ← (byte*) current_piece#10 [ current_piece#10 current_ypos#14 current_orientation#14 current_piece#74 play_collision::orientation#1 play_collision::ypos#1 play_collision::xpos#1 current_xpos#16 ] ( main:10::play_move_leftright:47 [ current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_piece_gfx#14 current_piece#10 current_ypos#14 current_orientation#14 current_piece#74 play_collision::orientation#1 play_collision::ypos#1 play_collision::xpos#1 current_xpos#16 ] ) always clobbers reg byte a -Statement [183] (byte*~) current_piece#73 ← (byte*) current_piece#16 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 current_piece#73 play_collision::orientation#0 play_collision::ypos#0 play_collision::xpos#0 ] ( main:10::play_move_down:42 [ keyboard_events_size#16 main::key_event#0 current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 current_piece#73 play_collision::orientation#0 play_collision::ypos#0 play_collision::xpos#0 ] ) always clobbers reg byte a -Statement [194] (byte*~) current_piece#77 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) [ current_ypos#19 current_xpos#24 current_piece_gfx#17 current_piece_char#13 current_piece#77 ] ( main:10::play_move_down:42 [ keyboard_events_size#16 main::key_event#0 current_ypos#19 current_xpos#24 current_piece_gfx#17 current_piece_char#13 current_piece#77 ] ) always clobbers reg byte a +Statement [131] (byte~) play_collision::$7 ← (byte) play_collision::col#2 & (byte/word/signed word/dword/signed dword) 128 [ play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] ( main:10::play_move_rotate:52::play_collision:111 [ current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::render#2 current_piece#10 current_xpos#19 current_ypos#13 current_orientation#14 current_piece_gfx#1 play_move_rotate::orientation#3 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] main:10::play_move_leftright:47::play_collision:149 [ current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_piece_gfx#1 current_piece#10 current_ypos#13 current_orientation#14 current_xpos#1 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] main:10::play_move_leftright:47::play_collision:160 [ current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_piece_gfx#1 current_piece#10 current_ypos#13 current_orientation#14 current_xpos#1 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] main:10::play_move_down:42::play_collision:184 [ keyboard_events_size#16 main::key_event#0 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] ) always clobbers reg byte a +Statement [134] if(*((byte*) play_collision::playfield_line#0 + (byte) play_collision::col#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_collision::@3 [ play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] ( main:10::play_move_rotate:52::play_collision:111 [ current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::render#2 current_piece#10 current_xpos#19 current_ypos#13 current_orientation#14 current_piece_gfx#1 play_move_rotate::orientation#3 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:10::play_move_leftright:47::play_collision:149 [ current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_piece_gfx#1 current_piece#10 current_ypos#13 current_orientation#14 current_xpos#1 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:10::play_move_leftright:47::play_collision:160 [ current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_piece_gfx#1 current_piece#10 current_ypos#13 current_orientation#14 current_xpos#1 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:10::play_move_down:42::play_collision:184 [ keyboard_events_size#16 main::key_event#0 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] ) always clobbers reg byte a +Statement [148] (byte*~) current_piece#75 ← (byte*) current_piece#10 [ current_piece#10 current_ypos#13 current_orientation#14 current_piece#75 play_collision::orientation#2 play_collision::ypos#2 play_collision::xpos#2 current_xpos#1 ] ( main:10::play_move_leftright:47 [ current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_piece_gfx#1 current_piece#10 current_ypos#13 current_orientation#14 current_piece#75 play_collision::orientation#2 play_collision::ypos#2 play_collision::xpos#2 current_xpos#1 ] ) always clobbers reg byte a +Statement [159] (byte*~) current_piece#74 ← (byte*) current_piece#10 [ current_piece#10 current_ypos#13 current_orientation#14 current_piece#74 play_collision::orientation#1 play_collision::ypos#1 play_collision::xpos#1 current_xpos#1 ] ( main:10::play_move_leftright:47 [ current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_piece_gfx#1 current_piece#10 current_ypos#13 current_orientation#14 current_piece#74 play_collision::orientation#1 play_collision::ypos#1 play_collision::xpos#1 current_xpos#1 ] ) always clobbers reg byte a +Statement [183] (byte*~) current_piece#73 ← (byte*) current_piece#16 [ current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_piece#73 play_collision::orientation#0 play_collision::ypos#0 play_collision::xpos#0 ] ( main:10::play_move_down:42 [ keyboard_events_size#16 main::key_event#0 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_piece#73 play_collision::orientation#0 play_collision::ypos#0 play_collision::xpos#0 ] ) always clobbers reg byte a +Statement [194] (byte*~) current_piece#77 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) [ current_ypos#18 current_xpos#23 current_piece_gfx#16 current_piece_char#12 current_piece#77 ] ( main:10::play_move_down:42 [ keyboard_events_size#16 main::key_event#0 current_ypos#18 current_xpos#23 current_piece_gfx#16 current_piece_char#12 current_piece#77 ] ) always clobbers reg byte a Statement [202] (byte~) play_spawn_current::$3 ← (byte) play_spawn_current::piece_idx#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ play_spawn_current::$3 play_spawn_current::piece_idx#2 ] ( main:10::play_spawn_current:23 [ play_spawn_current::$3 play_spawn_current::piece_idx#2 ] main:10::play_move_down:42::play_spawn_current:193 [ keyboard_events_size#16 main::key_event#0 play_spawn_current::$3 play_spawn_current::piece_idx#2 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:42 [ play_spawn_current::piece_idx#2 play_spawn_current::piece_idx#1 ] -Statement [203] (byte*) current_piece_gfx#17 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) + (byte/signed byte/word/signed word/dword/signed dword) 0 [ current_piece_gfx#17 play_spawn_current::$3 play_spawn_current::piece_idx#2 ] ( main:10::play_spawn_current:23 [ current_piece_gfx#17 play_spawn_current::$3 play_spawn_current::piece_idx#2 ] main:10::play_move_down:42::play_spawn_current:193 [ keyboard_events_size#16 main::key_event#0 current_piece_gfx#17 play_spawn_current::$3 play_spawn_current::piece_idx#2 ] ) always clobbers reg byte a -Statement [204] (byte) current_xpos#24 ← *((const byte[]) PIECES_START_X#0 + (byte) play_spawn_current::piece_idx#2) [ current_xpos#24 current_piece_gfx#17 play_spawn_current::$3 play_spawn_current::piece_idx#2 ] ( main:10::play_spawn_current:23 [ current_xpos#24 current_piece_gfx#17 play_spawn_current::$3 play_spawn_current::piece_idx#2 ] main:10::play_move_down:42::play_spawn_current:193 [ keyboard_events_size#16 main::key_event#0 current_xpos#24 current_piece_gfx#17 play_spawn_current::$3 play_spawn_current::piece_idx#2 ] ) always clobbers reg byte a -Statement [205] (byte) current_ypos#19 ← *((const byte[]) PIECES_START_Y#0 + (byte) play_spawn_current::piece_idx#2) [ current_ypos#19 current_xpos#24 current_piece_gfx#17 play_spawn_current::$3 play_spawn_current::piece_idx#2 ] ( main:10::play_spawn_current:23 [ current_ypos#19 current_xpos#24 current_piece_gfx#17 play_spawn_current::$3 play_spawn_current::piece_idx#2 ] main:10::play_move_down:42::play_spawn_current:193 [ keyboard_events_size#16 main::key_event#0 current_ypos#19 current_xpos#24 current_piece_gfx#17 play_spawn_current::$3 play_spawn_current::piece_idx#2 ] ) always clobbers reg byte a -Statement [206] (byte) current_piece_char#13 ← *((const byte[]) PIECES_CHARS#0 + (byte) play_spawn_current::piece_idx#2) [ current_ypos#19 current_xpos#24 current_piece_gfx#17 current_piece_char#13 play_spawn_current::$3 ] ( main:10::play_spawn_current:23 [ current_ypos#19 current_xpos#24 current_piece_gfx#17 current_piece_char#13 play_spawn_current::$3 ] main:10::play_move_down:42::play_spawn_current:193 [ keyboard_events_size#16 main::key_event#0 current_ypos#19 current_xpos#24 current_piece_gfx#17 current_piece_char#13 play_spawn_current::$3 ] ) always clobbers reg byte a +Statement [203] (byte*) current_piece_gfx#16 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) + (byte/signed byte/word/signed word/dword/signed dword) 0 [ current_piece_gfx#16 play_spawn_current::$3 play_spawn_current::piece_idx#2 ] ( main:10::play_spawn_current:23 [ current_piece_gfx#16 play_spawn_current::$3 play_spawn_current::piece_idx#2 ] main:10::play_move_down:42::play_spawn_current:193 [ keyboard_events_size#16 main::key_event#0 current_piece_gfx#16 play_spawn_current::$3 play_spawn_current::piece_idx#2 ] ) always clobbers reg byte a +Statement [204] (byte) current_xpos#23 ← *((const byte[]) PIECES_START_X#0 + (byte) play_spawn_current::piece_idx#2) [ current_xpos#23 current_piece_gfx#16 play_spawn_current::$3 play_spawn_current::piece_idx#2 ] ( main:10::play_spawn_current:23 [ current_xpos#23 current_piece_gfx#16 play_spawn_current::$3 play_spawn_current::piece_idx#2 ] main:10::play_move_down:42::play_spawn_current:193 [ keyboard_events_size#16 main::key_event#0 current_xpos#23 current_piece_gfx#16 play_spawn_current::$3 play_spawn_current::piece_idx#2 ] ) always clobbers reg byte a +Statement [205] (byte) current_ypos#18 ← *((const byte[]) PIECES_START_Y#0 + (byte) play_spawn_current::piece_idx#2) [ current_ypos#18 current_xpos#23 current_piece_gfx#16 play_spawn_current::$3 play_spawn_current::piece_idx#2 ] ( main:10::play_spawn_current:23 [ current_ypos#18 current_xpos#23 current_piece_gfx#16 play_spawn_current::$3 play_spawn_current::piece_idx#2 ] main:10::play_move_down:42::play_spawn_current:193 [ keyboard_events_size#16 main::key_event#0 current_ypos#18 current_xpos#23 current_piece_gfx#16 play_spawn_current::$3 play_spawn_current::piece_idx#2 ] ) always clobbers reg byte a +Statement [206] (byte) current_piece_char#12 ← *((const byte[]) PIECES_CHARS#0 + (byte) play_spawn_current::piece_idx#2) [ current_ypos#18 current_xpos#23 current_piece_gfx#16 current_piece_char#12 play_spawn_current::$3 ] ( main:10::play_spawn_current:23 [ current_ypos#18 current_xpos#23 current_piece_gfx#16 current_piece_char#12 play_spawn_current::$3 ] main:10::play_move_down:42::play_spawn_current:193 [ keyboard_events_size#16 main::key_event#0 current_ypos#18 current_xpos#23 current_piece_gfx#16 current_piece_char#12 play_spawn_current::$3 ] ) always clobbers reg byte a Statement [212] (byte) play_spawn_current::piece_idx#1 ← (byte~) play_spawn_current::$1 & (byte/signed byte/word/signed word/dword/signed dword) 7 [ play_spawn_current::piece_idx#1 ] ( main:10::play_spawn_current:23 [ play_spawn_current::piece_idx#1 ] main:10::play_move_down:42::play_spawn_current:193 [ keyboard_events_size#16 main::key_event#0 play_spawn_current::piece_idx#1 ] ) always clobbers reg byte a Statement [227] (byte) play_remove_lines::w#2 ← (byte) play_remove_lines::w#1 + (const byte) PLAYFIELD_COLS#0 [ play_remove_lines::y#8 play_remove_lines::r#1 play_remove_lines::w#2 ] ( main:10::play_move_down:42::play_remove_lines:191 [ keyboard_events_size#16 main::key_event#0 play_remove_lines::y#8 play_remove_lines::r#1 play_remove_lines::w#2 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:43 [ play_remove_lines::y#8 play_remove_lines::y#1 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:44 [ play_remove_lines::r#2 play_remove_lines::r#3 play_remove_lines::r#1 ] Statement [234] *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) play_remove_lines::w#6) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ play_remove_lines::w#6 ] ( main:10::play_move_down:42::play_remove_lines:191 [ keyboard_events_size#16 main::key_event#0 play_remove_lines::w#6 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:47 [ play_remove_lines::w#6 play_remove_lines::w#4 play_remove_lines::w#12 play_remove_lines::w#11 play_remove_lines::w#1 play_remove_lines::w#2 play_remove_lines::w#3 ] -Statement [237] (byte) play_lock_current::ypos2#0 ← (byte) current_ypos#22 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ current_piece_gfx#10 current_xpos#11 current_piece_char#16 play_lock_current::ypos2#0 ] ( main:10::play_move_down:42::play_lock_current:189 [ keyboard_events_size#16 main::key_event#0 current_piece_gfx#10 current_xpos#11 current_piece_char#16 play_lock_current::ypos2#0 ] ) always clobbers reg byte a -Statement [239] (byte*) play_lock_current::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) play_lock_current::ypos2#2) [ current_piece_gfx#10 current_xpos#11 current_piece_char#16 play_lock_current::ypos2#2 play_lock_current::i#3 play_lock_current::l#6 play_lock_current::playfield_line#0 ] ( main:10::play_move_down:42::play_lock_current:189 [ keyboard_events_size#16 main::key_event#0 current_piece_gfx#10 current_xpos#11 current_piece_char#16 play_lock_current::ypos2#2 play_lock_current::i#3 play_lock_current::l#6 play_lock_current::playfield_line#0 ] ) always clobbers reg byte a +Statement [237] (byte) play_lock_current::ypos2#0 ← (byte) current_ypos#21 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ current_piece_gfx#20 current_xpos#10 current_piece_char#15 play_lock_current::ypos2#0 ] ( main:10::play_move_down:42::play_lock_current:189 [ keyboard_events_size#16 main::key_event#0 current_piece_gfx#20 current_xpos#10 current_piece_char#15 play_lock_current::ypos2#0 ] ) always clobbers reg byte a +Statement [239] (byte*) play_lock_current::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) play_lock_current::ypos2#2) [ current_piece_gfx#20 current_xpos#10 current_piece_char#15 play_lock_current::ypos2#2 play_lock_current::i#3 play_lock_current::l#6 play_lock_current::playfield_line#0 ] ( main:10::play_move_down:42::play_lock_current:189 [ keyboard_events_size#16 main::key_event#0 current_piece_gfx#20 current_xpos#10 current_piece_char#15 play_lock_current::ypos2#2 play_lock_current::i#3 play_lock_current::l#6 play_lock_current::playfield_line#0 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:48 [ play_lock_current::ypos2#2 play_lock_current::ypos2#0 play_lock_current::ypos2#1 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:50 [ play_lock_current::i#2 play_lock_current::i#3 play_lock_current::i#7 play_lock_current::i#9 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:49 [ play_lock_current::l#6 play_lock_current::l#1 ] -Statement [243] if(*((byte*) current_piece_gfx#10 + (byte) play_lock_current::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_lock_current::@3 [ current_piece_gfx#10 current_xpos#11 current_piece_char#16 play_lock_current::ypos2#2 play_lock_current::l#6 play_lock_current::playfield_line#0 play_lock_current::col#2 play_lock_current::c#2 play_lock_current::i#1 ] ( main:10::play_move_down:42::play_lock_current:189 [ keyboard_events_size#16 main::key_event#0 current_piece_gfx#10 current_xpos#11 current_piece_char#16 play_lock_current::ypos2#2 play_lock_current::l#6 play_lock_current::playfield_line#0 play_lock_current::col#2 play_lock_current::c#2 play_lock_current::i#1 ] ) always clobbers reg byte a +Statement [243] if(*((byte*) current_piece_gfx#20 + (byte) play_lock_current::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_lock_current::@3 [ current_piece_gfx#20 current_xpos#10 current_piece_char#15 play_lock_current::ypos2#2 play_lock_current::l#6 play_lock_current::playfield_line#0 play_lock_current::col#2 play_lock_current::c#2 play_lock_current::i#1 ] ( main:10::play_move_down:42::play_lock_current:189 [ keyboard_events_size#16 main::key_event#0 current_piece_gfx#20 current_xpos#10 current_piece_char#15 play_lock_current::ypos2#2 play_lock_current::l#6 play_lock_current::playfield_line#0 play_lock_current::col#2 play_lock_current::c#2 play_lock_current::i#1 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:51 [ play_lock_current::col#2 play_lock_current::col#0 play_lock_current::col#1 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:52 [ play_lock_current::c#2 play_lock_current::c#1 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:131 [ play_lock_current::i#1 ] -Statement [244] *((byte*) play_lock_current::playfield_line#0 + (byte) play_lock_current::col#2) ← (byte) current_piece_char#16 [ current_piece_gfx#10 current_xpos#11 current_piece_char#16 play_lock_current::ypos2#2 play_lock_current::l#6 play_lock_current::playfield_line#0 play_lock_current::col#2 play_lock_current::c#2 play_lock_current::i#1 ] ( main:10::play_move_down:42::play_lock_current:189 [ keyboard_events_size#16 main::key_event#0 current_piece_gfx#10 current_xpos#11 current_piece_char#16 play_lock_current::ypos2#2 play_lock_current::l#6 play_lock_current::playfield_line#0 play_lock_current::col#2 play_lock_current::c#2 play_lock_current::i#1 ] ) always clobbers reg byte a -Statement [255] (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:10::play_move_down:42::keyboard_event_pressed:169 [ keyboard_events_size#16 main::key_event#0 current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 current_movedown_counter#1 play_move_down::movedown#10 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] main:10::keyboard_event_scan:36::keyboard_event_pressed:277 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 current_movedown_counter#12 keyboard_events_size#13 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] main:10::keyboard_event_scan:36::keyboard_event_pressed:283 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 current_movedown_counter#12 keyboard_events_size#13 keyboard_modifiers#11 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] main:10::keyboard_event_scan:36::keyboard_event_pressed:289 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 current_movedown_counter#12 keyboard_events_size#13 keyboard_modifiers#12 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] main:10::keyboard_event_scan:36::keyboard_event_pressed:295 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 current_movedown_counter#12 keyboard_events_size#13 keyboard_modifiers#13 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] ) always clobbers reg byte a +Statement [244] *((byte*) play_lock_current::playfield_line#0 + (byte) play_lock_current::col#2) ← (byte) current_piece_char#15 [ current_piece_gfx#20 current_xpos#10 current_piece_char#15 play_lock_current::ypos2#2 play_lock_current::l#6 play_lock_current::playfield_line#0 play_lock_current::col#2 play_lock_current::c#2 play_lock_current::i#1 ] ( main:10::play_move_down:42::play_lock_current:189 [ keyboard_events_size#16 main::key_event#0 current_piece_gfx#20 current_xpos#10 current_piece_char#15 play_lock_current::ypos2#2 play_lock_current::l#6 play_lock_current::playfield_line#0 play_lock_current::col#2 play_lock_current::c#2 play_lock_current::i#1 ] ) always clobbers reg byte a +Statement [255] (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:10::play_move_down:42::keyboard_event_pressed:169 [ keyboard_events_size#16 main::key_event#0 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#1 play_move_down::movedown#10 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] main:10::keyboard_event_scan:36::keyboard_event_pressed:277 [ current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 keyboard_events_size#13 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] main:10::keyboard_event_scan:36::keyboard_event_pressed:283 [ current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 keyboard_events_size#13 keyboard_modifiers#11 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] main:10::keyboard_event_scan:36::keyboard_event_pressed:289 [ current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 keyboard_events_size#13 keyboard_modifiers#12 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] main:10::keyboard_event_scan:36::keyboard_event_pressed:295 [ current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 keyboard_events_size#13 keyboard_modifiers#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:32 [ 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 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:56 [ keyboard_modifiers#13 keyboard_modifiers#4 keyboard_modifiers#12 keyboard_modifiers#3 keyboard_modifiers#11 ] -Statement [257] (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:10::play_move_down:42::keyboard_event_pressed:169 [ keyboard_events_size#16 main::key_event#0 current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 current_movedown_counter#1 play_move_down::movedown#10 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:10::keyboard_event_scan:36::keyboard_event_pressed:277 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 current_movedown_counter#12 keyboard_events_size#13 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:10::keyboard_event_scan:36::keyboard_event_pressed:283 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 current_movedown_counter#12 keyboard_events_size#13 keyboard_modifiers#11 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:10::keyboard_event_scan:36::keyboard_event_pressed:289 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 current_movedown_counter#12 keyboard_events_size#13 keyboard_modifiers#12 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:10::keyboard_event_scan:36::keyboard_event_pressed:295 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 current_movedown_counter#12 keyboard_events_size#13 keyboard_modifiers#13 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] ) always clobbers reg byte a +Statement [257] (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:10::play_move_down:42::keyboard_event_pressed:169 [ keyboard_events_size#16 main::key_event#0 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#1 play_move_down::movedown#10 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:10::keyboard_event_scan:36::keyboard_event_pressed:277 [ current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 keyboard_events_size#13 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:10::keyboard_event_scan:36::keyboard_event_pressed:283 [ current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 keyboard_events_size#13 keyboard_modifiers#11 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:10::keyboard_event_scan:36::keyboard_event_pressed:289 [ current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 keyboard_events_size#13 keyboard_modifiers#12 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:10::keyboard_event_scan:36::keyboard_event_pressed:295 [ current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 keyboard_events_size#13 keyboard_modifiers#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:133 [ keyboard_event_pressed::row_bits#0 ] -Statement [258] (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:10::play_move_down:42::keyboard_event_pressed:169 [ keyboard_events_size#16 main::key_event#0 current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 current_movedown_counter#1 play_move_down::movedown#10 keyboard_event_pressed::return#11 ] main:10::keyboard_event_scan:36::keyboard_event_pressed:277 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 current_movedown_counter#12 keyboard_events_size#13 keyboard_event_pressed::return#11 ] main:10::keyboard_event_scan:36::keyboard_event_pressed:283 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 current_movedown_counter#12 keyboard_events_size#13 keyboard_modifiers#11 keyboard_event_pressed::return#11 ] main:10::keyboard_event_scan:36::keyboard_event_pressed:289 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 current_movedown_counter#12 keyboard_events_size#13 keyboard_modifiers#12 keyboard_event_pressed::return#11 ] main:10::keyboard_event_scan:36::keyboard_event_pressed:295 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 current_movedown_counter#12 keyboard_events_size#13 keyboard_modifiers#13 keyboard_event_pressed::return#11 ] ) always clobbers reg byte a -Statement [272] (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:10::keyboard_event_scan:36 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 current_movedown_counter#12 keyboard_event_scan::row#2 keyboard_events_size#29 keyboard_event_scan::keycode#1 ] ) always clobbers reg byte a +Statement [258] (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:10::play_move_down:42::keyboard_event_pressed:169 [ keyboard_events_size#16 main::key_event#0 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#1 play_move_down::movedown#10 keyboard_event_pressed::return#11 ] main:10::keyboard_event_scan:36::keyboard_event_pressed:277 [ current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 keyboard_events_size#13 keyboard_event_pressed::return#11 ] main:10::keyboard_event_scan:36::keyboard_event_pressed:283 [ current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 keyboard_events_size#13 keyboard_modifiers#11 keyboard_event_pressed::return#11 ] main:10::keyboard_event_scan:36::keyboard_event_pressed:289 [ current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 keyboard_events_size#13 keyboard_modifiers#12 keyboard_event_pressed::return#11 ] main:10::keyboard_event_scan:36::keyboard_event_pressed:295 [ current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 keyboard_events_size#13 keyboard_modifiers#13 keyboard_event_pressed::return#11 ] ) always clobbers reg byte a +Statement [272] (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:10::keyboard_event_scan:36 [ current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 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 [287] (byte) keyboard_modifiers#3 ← (byte) keyboard_modifiers#11 | (const byte) KEY_MODIFIER_RSHIFT#0 [ keyboard_events_size#13 keyboard_modifiers#3 ] ( main:10::keyboard_event_scan:36 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 current_movedown_counter#12 keyboard_events_size#13 keyboard_modifiers#3 ] ) always clobbers reg byte a -Statement [293] (byte) keyboard_modifiers#4 ← (byte) keyboard_modifiers#12 | (const byte) KEY_MODIFIER_CTRL#0 [ keyboard_events_size#13 keyboard_modifiers#4 ] ( main:10::keyboard_event_scan:36 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 current_movedown_counter#12 keyboard_events_size#13 keyboard_modifiers#4 ] ) always clobbers reg byte a -Statement [299] (byte) keyboard_modifiers#5 ← (byte) keyboard_modifiers#13 | (const byte) KEY_MODIFIER_COMMODORE#0 [ keyboard_events_size#13 ] ( main:10::keyboard_event_scan:36 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 current_movedown_counter#12 keyboard_events_size#13 ] ) always clobbers reg byte a -Statement [302] (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:10::keyboard_event_scan:36 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 current_movedown_counter#12 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 [287] (byte) keyboard_modifiers#3 ← (byte) keyboard_modifiers#11 | (const byte) KEY_MODIFIER_RSHIFT#0 [ keyboard_events_size#13 keyboard_modifiers#3 ] ( main:10::keyboard_event_scan:36 [ current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 keyboard_events_size#13 keyboard_modifiers#3 ] ) always clobbers reg byte a +Statement [293] (byte) keyboard_modifiers#4 ← (byte) keyboard_modifiers#12 | (const byte) KEY_MODIFIER_CTRL#0 [ keyboard_events_size#13 keyboard_modifiers#4 ] ( main:10::keyboard_event_scan:36 [ current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 keyboard_events_size#13 keyboard_modifiers#4 ] ) always clobbers reg byte a +Statement [299] (byte) keyboard_modifiers#5 ← (byte) keyboard_modifiers#13 | (const byte) KEY_MODIFIER_COMMODORE#0 [ keyboard_events_size#13 ] ( main:10::keyboard_event_scan:36 [ current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 keyboard_events_size#13 ] ) always clobbers reg byte a +Statement [302] (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:10::keyboard_event_scan:36 [ current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 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:138 [ keyboard_event_scan::row_scan#0 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:57 [ keyboard_event_scan::col#2 keyboard_event_scan::col#1 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:58 [ 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 [303] (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:10::keyboard_event_scan:36 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 current_movedown_counter#12 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 [306] (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:10::keyboard_event_scan:36 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 current_movedown_counter#12 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 [308] *((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:10::keyboard_event_scan:36 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 current_movedown_counter#12 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 [314] *((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:10::keyboard_event_scan:36 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 current_movedown_counter#12 keyboard_event_scan::row#2 keyboard_event_scan::keycode#15 keyboard_events_size#30 ] ) always clobbers reg byte a -Statement [315] (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:10::keyboard_event_scan:36 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 current_movedown_counter#12 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 [318] *((const byte*) CIA1_PORT_A#0) ← *((const byte[8]) keyboard_matrix_row_bitmask#0 + (byte) keyboard_matrix_read::rowid#0) [ ] ( main:10::keyboard_event_scan:36::keyboard_matrix_read:268 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 current_movedown_counter#12 keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#29 ] ) always clobbers reg byte a -Statement [319] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) [ keyboard_matrix_read::return#0 ] ( main:10::keyboard_event_scan:36::keyboard_matrix_read:268 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 current_movedown_counter#12 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 [303] (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:10::keyboard_event_scan:36 [ current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 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 [306] (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:10::keyboard_event_scan:36 [ current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 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 [308] *((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:10::keyboard_event_scan:36 [ current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 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 [314] *((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:10::keyboard_event_scan:36 [ current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 keyboard_event_scan::row#2 keyboard_event_scan::keycode#15 keyboard_events_size#30 ] ) always clobbers reg byte a +Statement [315] (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:10::keyboard_event_scan:36 [ current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 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 [318] *((const byte*) CIA1_PORT_A#0) ← *((const byte[8]) keyboard_matrix_row_bitmask#0 + (byte) keyboard_matrix_read::rowid#0) [ ] ( main:10::keyboard_event_scan:36::keyboard_matrix_read:268 [ current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#29 ] ) always clobbers reg byte a +Statement [319] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) [ keyboard_matrix_read::return#0 ] ( main:10::keyboard_event_scan:36::keyboard_matrix_read:268 [ current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 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 [323] (byte~) play_init::$1 ← (byte) play_init::j#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ play_init::j#2 play_init::pli#2 play_init::idx#2 play_init::$1 ] ( main:10::play_init:21 [ play_init::j#2 play_init::pli#2 play_init::idx#2 play_init::$1 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:60 [ play_init::j#2 play_init::j#1 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:63 [ play_init::idx#2 play_init::idx#1 ] @@ -11506,67 +11538,67 @@ Statement [4] (byte) irq_raster_next#0 ← (const byte) IRQ_RASTER_FIRST#0 [ ] ( Statement [5] (byte) irq_sprite_ypos#0 ← (byte/signed byte/word/signed word/dword/signed dword) 50 [ ] ( ) always clobbers reg byte a Statement [7] (byte) irq_sprite_ptr#0 ← (const byte) toSpritePtr1_return#0 [ ] ( ) always clobbers reg byte a Statement [8] (byte) irq_cnt#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( ) always clobbers reg byte a -Statement [28] (byte*~) current_piece_gfx#95 ← (byte*) current_piece_gfx#17 [ current_ypos#79 current_ypos#19 current_xpos#105 current_xpos#24 current_piece_gfx#95 current_piece_gfx#17 current_piece_char#13 play_spawn_current::$3 ] ( main:10 [ current_ypos#79 current_ypos#19 current_xpos#105 current_xpos#24 current_piece_gfx#95 current_piece_gfx#17 current_piece_char#13 play_spawn_current::$3 ] ) always clobbers reg byte a -Statement [31] (byte*~) current_piece#72 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) [ current_ypos#19 current_xpos#24 current_piece_gfx#17 current_piece_char#13 current_piece#72 ] ( main:10 [ current_ypos#19 current_xpos#24 current_piece_gfx#17 current_piece_char#13 current_piece#72 ] ) always clobbers reg byte a -Statement [33] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@4 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 keyboard_events_size#19 current_movedown_counter#12 ] ( main:10 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 keyboard_events_size#19 current_movedown_counter#12 ] ) always clobbers reg byte a -Statement [34] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 254) goto main::@7 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 keyboard_events_size#19 current_movedown_counter#12 ] ( main:10 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 keyboard_events_size#19 current_movedown_counter#12 ] ) always clobbers reg byte a -Statement [45] (byte) main::render#1 ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte~) main::$12 [ current_piece#10 current_ypos#14 current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_orientation#14 current_piece_gfx#14 current_xpos#16 ] ( main:10 [ current_piece#10 current_ypos#14 current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_orientation#14 current_piece_gfx#14 current_xpos#16 ] ) always clobbers reg byte a -Statement [50] (byte) main::render#2 ← (byte) main::render#1 + (byte~) main::$13 [ current_piece#10 current_xpos#20 current_ypos#14 current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#2 current_orientation#14 current_piece_gfx#14 ] ( main:10 [ current_piece#10 current_xpos#20 current_ypos#14 current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#2 current_orientation#14 current_piece_gfx#14 ] ) always clobbers reg byte a -Statement [55] (byte) main::render#3 ← (byte) main::render#2 + (byte~) main::$14 [ current_piece#10 current_orientation#19 current_piece_gfx#15 current_xpos#20 current_ypos#14 current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::render#3 ] ( main:10 [ current_piece#10 current_orientation#19 current_piece_gfx#15 current_xpos#20 current_ypos#14 current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::render#3 ] ) always clobbers reg byte a -Statement [61] (byte*~) current_piece_gfx#96 ← (byte*) current_piece_gfx#15 [ current_piece#10 current_orientation#19 current_piece_gfx#15 current_xpos#20 current_ypos#14 current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 current_ypos#80 current_xpos#106 current_piece_gfx#96 ] ( main:10 [ current_piece#10 current_orientation#19 current_piece_gfx#15 current_xpos#20 current_ypos#14 current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 current_ypos#80 current_xpos#106 current_piece_gfx#96 ] ) always clobbers reg byte a -Statement [66] (byte) render_current::ypos2#0 ← (byte) current_ypos#10 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ current_xpos#48 current_piece_gfx#53 current_piece_char#63 render_current::ypos2#0 ] ( main:10::render_current:30 [ current_ypos#19 current_xpos#24 current_piece_gfx#17 current_piece_char#13 play_spawn_current::$3 current_xpos#48 current_piece_gfx#53 current_piece_char#63 render_current::ypos2#0 ] main:10::render_current:63 [ current_piece#10 current_orientation#19 current_piece_gfx#15 current_xpos#20 current_ypos#14 current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 current_xpos#48 current_piece_gfx#53 current_piece_char#63 render_current::ypos2#0 ] ) always clobbers reg byte a -Statement [68] if((byte) render_current::ypos2#2>(byte/signed byte/word/signed word/dword/signed dword) 2) goto render_current::@13 [ current_xpos#48 current_piece_gfx#53 current_piece_char#63 render_current::ypos2#2 render_current::i#3 render_current::l#4 ] ( main:10::render_current:30 [ current_ypos#19 current_xpos#24 current_piece_gfx#17 current_piece_char#13 play_spawn_current::$3 current_xpos#48 current_piece_gfx#53 current_piece_char#63 render_current::ypos2#2 render_current::i#3 render_current::l#4 ] main:10::render_current:63 [ current_piece#10 current_orientation#19 current_piece_gfx#15 current_xpos#20 current_ypos#14 current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 current_xpos#48 current_piece_gfx#53 current_piece_char#63 render_current::ypos2#2 render_current::i#3 render_current::l#4 ] ) always clobbers reg byte a -Statement [69] (byte) render_current::i#1 ← (byte) render_current::i#3 + (byte/signed byte/word/signed word/dword/signed dword) 4 [ current_xpos#48 current_piece_gfx#53 current_piece_char#63 render_current::ypos2#2 render_current::l#4 render_current::i#1 ] ( main:10::render_current:30 [ current_ypos#19 current_xpos#24 current_piece_gfx#17 current_piece_char#13 play_spawn_current::$3 current_xpos#48 current_piece_gfx#53 current_piece_char#63 render_current::ypos2#2 render_current::l#4 render_current::i#1 ] main:10::render_current:63 [ current_piece#10 current_orientation#19 current_piece_gfx#15 current_xpos#20 current_ypos#14 current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 current_xpos#48 current_piece_gfx#53 current_piece_char#63 render_current::ypos2#2 render_current::l#4 render_current::i#1 ] ) always clobbers reg byte a -Statement [76] (byte*) render_current::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) screen_lines#0 + (byte) render_current::ypos2#2) [ current_xpos#48 current_piece_gfx#53 current_piece_char#63 render_current::ypos2#2 render_current::i#3 render_current::l#4 render_current::screen_line#0 ] ( main:10::render_current:30 [ current_ypos#19 current_xpos#24 current_piece_gfx#17 current_piece_char#13 play_spawn_current::$3 current_xpos#48 current_piece_gfx#53 current_piece_char#63 render_current::ypos2#2 render_current::i#3 render_current::l#4 render_current::screen_line#0 ] main:10::render_current:63 [ current_piece#10 current_orientation#19 current_piece_gfx#15 current_xpos#20 current_ypos#14 current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 current_xpos#48 current_piece_gfx#53 current_piece_char#63 render_current::ypos2#2 render_current::i#3 render_current::l#4 render_current::screen_line#0 ] ) always clobbers reg byte a -Statement [79] (byte) render_current::current_cell#0 ← *((byte*) current_piece_gfx#53 + (byte) render_current::i#4) [ current_xpos#48 current_piece_gfx#53 current_piece_char#63 render_current::ypos2#2 render_current::l#4 render_current::screen_line#0 render_current::i#4 render_current::xpos#2 render_current::c#2 render_current::current_cell#0 ] ( main:10::render_current:30 [ current_ypos#19 current_xpos#24 current_piece_gfx#17 current_piece_char#13 play_spawn_current::$3 current_xpos#48 current_piece_gfx#53 current_piece_char#63 render_current::ypos2#2 render_current::l#4 render_current::screen_line#0 render_current::i#4 render_current::xpos#2 render_current::c#2 render_current::current_cell#0 ] main:10::render_current:63 [ current_piece#10 current_orientation#19 current_piece_gfx#15 current_xpos#20 current_ypos#14 current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 current_xpos#48 current_piece_gfx#53 current_piece_char#63 render_current::ypos2#2 render_current::l#4 render_current::screen_line#0 render_current::i#4 render_current::xpos#2 render_current::c#2 render_current::current_cell#0 ] ) always clobbers reg byte a -Statement [83] *((byte*) render_current::screen_line#0 + (byte) render_current::xpos#2) ← (byte) current_piece_char#63 [ current_xpos#48 current_piece_gfx#53 current_piece_char#63 render_current::ypos2#2 render_current::l#4 render_current::i#10 render_current::screen_line#0 render_current::xpos#2 render_current::c#2 ] ( main:10::render_current:30 [ current_ypos#19 current_xpos#24 current_piece_gfx#17 current_piece_char#13 play_spawn_current::$3 current_xpos#48 current_piece_gfx#53 current_piece_char#63 render_current::ypos2#2 render_current::l#4 render_current::i#10 render_current::screen_line#0 render_current::xpos#2 render_current::c#2 ] main:10::render_current:63 [ current_piece#10 current_orientation#19 current_piece_gfx#15 current_xpos#20 current_ypos#14 current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 current_xpos#48 current_piece_gfx#53 current_piece_char#63 render_current::ypos2#2 render_current::l#4 render_current::i#10 render_current::screen_line#0 render_current::xpos#2 render_current::c#2 ] ) always clobbers reg byte a -Statement [89] (byte~) render_playfield::$2 ← (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::$2 ] ( main:10::render_playfield:25 [ current_ypos#19 current_xpos#24 current_piece_gfx#17 current_piece_char#13 play_spawn_current::$3 render_playfield::l#2 render_playfield::i#3 render_playfield::$2 ] main:10::render_playfield:58 [ current_piece#10 current_orientation#19 current_piece_gfx#15 current_xpos#20 current_ypos#14 current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 render_playfield::l#2 render_playfield::i#3 render_playfield::$2 ] ) always clobbers reg byte a -Statement [90] (byte*) render_playfield::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) screen_lines#0 + (byte~) render_playfield::$2) [ render_playfield::l#2 render_playfield::i#3 render_playfield::screen_line#0 ] ( main:10::render_playfield:25 [ current_ypos#19 current_xpos#24 current_piece_gfx#17 current_piece_char#13 play_spawn_current::$3 render_playfield::l#2 render_playfield::i#3 render_playfield::screen_line#0 ] main:10::render_playfield:58 [ current_piece#10 current_orientation#19 current_piece_gfx#15 current_xpos#20 current_ypos#14 current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 render_playfield::l#2 render_playfield::i#3 render_playfield::screen_line#0 ] ) always clobbers reg byte a -Statement [92] *((byte*) render_playfield::screen_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::screen_line#2 render_playfield::c#2 ] ( main:10::render_playfield:25 [ current_ypos#19 current_xpos#24 current_piece_gfx#17 current_piece_char#13 play_spawn_current::$3 render_playfield::l#2 render_playfield::i#2 render_playfield::screen_line#2 render_playfield::c#2 ] main:10::render_playfield:58 [ current_piece#10 current_orientation#19 current_piece_gfx#15 current_xpos#20 current_ypos#14 current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 render_playfield::l#2 render_playfield::i#2 render_playfield::screen_line#2 render_playfield::c#2 ] ) always clobbers reg byte a reg byte y -Statement [104] (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 ← (byte) current_orientation#14 + (byte/signed byte/word/signed word/dword/signed dword) 16 [ current_piece#10 current_xpos#20 current_ypos#14 current_orientation#14 current_piece_gfx#14 play_move_rotate::$2 ] ( main:10::play_move_rotate:52 [ current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::render#2 current_piece#10 current_xpos#20 current_ypos#14 current_orientation#14 current_piece_gfx#14 play_move_rotate::$2 ] ) always clobbers reg byte a -Statement [105] (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#10 current_xpos#20 current_ypos#14 current_orientation#14 current_piece_gfx#14 play_move_rotate::orientation#2 ] ( main:10::play_move_rotate:52 [ current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::render#2 current_piece#10 current_xpos#20 current_ypos#14 current_orientation#14 current_piece_gfx#14 play_move_rotate::orientation#2 ] ) always clobbers reg byte a -Statement [110] (byte*~) current_piece#76 ← (byte*) current_piece#10 [ current_piece#10 current_xpos#20 current_ypos#14 current_orientation#14 current_piece_gfx#14 play_move_rotate::orientation#3 play_collision::xpos#3 play_collision::ypos#3 play_collision::orientation#3 current_piece#76 ] ( main:10::play_move_rotate:52 [ current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::render#2 current_piece#10 current_xpos#20 current_ypos#14 current_orientation#14 current_piece_gfx#14 play_move_rotate::orientation#3 play_collision::xpos#3 play_collision::ypos#3 play_collision::orientation#3 current_piece#76 ] ) always clobbers reg byte a -Statement [116] (byte*) current_piece_gfx#4 ← (byte*) current_piece#10 + (byte) current_orientation#4 [ current_piece#10 current_xpos#20 current_ypos#14 current_orientation#4 current_piece_gfx#4 ] ( main:10::play_move_rotate:52 [ current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::render#2 current_piece#10 current_xpos#20 current_ypos#14 current_orientation#4 current_piece_gfx#4 ] ) always clobbers reg byte a -Statement [117] (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 ← (byte) current_orientation#14 - (byte/signed byte/word/signed word/dword/signed dword) 16 [ current_piece#10 current_xpos#20 current_ypos#14 current_orientation#14 current_piece_gfx#14 play_move_rotate::$4 ] ( main:10::play_move_rotate:52 [ current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::render#2 current_piece#10 current_xpos#20 current_ypos#14 current_orientation#14 current_piece_gfx#14 play_move_rotate::$4 ] ) always clobbers reg byte a -Statement [118] (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#10 current_xpos#20 current_ypos#14 current_orientation#14 current_piece_gfx#14 play_move_rotate::orientation#1 ] ( main:10::play_move_rotate:52 [ current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::render#2 current_piece#10 current_xpos#20 current_ypos#14 current_orientation#14 current_piece_gfx#14 play_move_rotate::orientation#1 ] ) always clobbers reg byte a -Statement [120] (byte*) play_collision::piece_gfx#0 ← (byte*) current_piece#12 + (byte) play_collision::orientation#4 [ play_collision::ypos#4 play_collision::xpos#5 play_collision::piece_gfx#0 ] ( main:10::play_move_rotate:52::play_collision:111 [ current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::render#2 current_piece#10 current_xpos#20 current_ypos#14 current_orientation#14 current_piece_gfx#14 play_move_rotate::orientation#3 play_collision::ypos#4 play_collision::xpos#5 play_collision::piece_gfx#0 ] main:10::play_move_leftright:47::play_collision:149 [ current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_piece_gfx#14 current_piece#10 current_ypos#14 current_orientation#14 current_xpos#16 play_collision::ypos#4 play_collision::xpos#5 play_collision::piece_gfx#0 ] main:10::play_move_leftright:47::play_collision:160 [ current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_piece_gfx#14 current_piece#10 current_ypos#14 current_orientation#14 current_xpos#16 play_collision::ypos#4 play_collision::xpos#5 play_collision::piece_gfx#0 ] main:10::play_move_down:42::play_collision:184 [ keyboard_events_size#16 main::key_event#0 current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 play_collision::ypos#4 play_collision::xpos#5 play_collision::piece_gfx#0 ] ) always clobbers reg byte a -Statement [121] (byte) play_collision::ypos2#0 ← (byte) play_collision::ypos#4 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#0 ] ( main:10::play_move_rotate:52::play_collision:111 [ current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::render#2 current_piece#10 current_xpos#20 current_ypos#14 current_orientation#14 current_piece_gfx#14 play_move_rotate::orientation#3 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#0 ] main:10::play_move_leftright:47::play_collision:149 [ current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_piece_gfx#14 current_piece#10 current_ypos#14 current_orientation#14 current_xpos#16 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#0 ] main:10::play_move_leftright:47::play_collision:160 [ current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_piece_gfx#14 current_piece#10 current_ypos#14 current_orientation#14 current_xpos#16 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#0 ] main:10::play_move_down:42::play_collision:184 [ keyboard_events_size#16 main::key_event#0 current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#0 ] ) always clobbers reg byte a -Statement [123] (byte*) play_collision::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) play_collision::ypos2#2) [ play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] ( main:10::play_move_rotate:52::play_collision:111 [ current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::render#2 current_piece#10 current_xpos#20 current_ypos#14 current_orientation#14 current_piece_gfx#14 play_move_rotate::orientation#3 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] main:10::play_move_leftright:47::play_collision:149 [ current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_piece_gfx#14 current_piece#10 current_ypos#14 current_orientation#14 current_xpos#16 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] main:10::play_move_leftright:47::play_collision:160 [ current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_piece_gfx#14 current_piece#10 current_ypos#14 current_orientation#14 current_xpos#16 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] main:10::play_move_down:42::play_collision:184 [ keyboard_events_size#16 main::key_event#0 current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] ) always clobbers reg byte a -Statement [127] if(*((byte*) play_collision::piece_gfx#0 + (byte) play_collision::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_collision::@3 [ play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] ( main:10::play_move_rotate:52::play_collision:111 [ current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::render#2 current_piece#10 current_xpos#20 current_ypos#14 current_orientation#14 current_piece_gfx#14 play_move_rotate::orientation#3 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:10::play_move_leftright:47::play_collision:149 [ current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_piece_gfx#14 current_piece#10 current_ypos#14 current_orientation#14 current_xpos#16 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:10::play_move_leftright:47::play_collision:160 [ current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_piece_gfx#14 current_piece#10 current_ypos#14 current_orientation#14 current_xpos#16 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:10::play_move_down:42::play_collision:184 [ keyboard_events_size#16 main::key_event#0 current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] ) always clobbers reg byte a -Statement [131] (byte~) play_collision::$7 ← (byte) play_collision::col#2 & (byte/word/signed word/dword/signed dword) 128 [ play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] ( main:10::play_move_rotate:52::play_collision:111 [ current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::render#2 current_piece#10 current_xpos#20 current_ypos#14 current_orientation#14 current_piece_gfx#14 play_move_rotate::orientation#3 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] main:10::play_move_leftright:47::play_collision:149 [ current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_piece_gfx#14 current_piece#10 current_ypos#14 current_orientation#14 current_xpos#16 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] main:10::play_move_leftright:47::play_collision:160 [ current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_piece_gfx#14 current_piece#10 current_ypos#14 current_orientation#14 current_xpos#16 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] main:10::play_move_down:42::play_collision:184 [ keyboard_events_size#16 main::key_event#0 current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] ) always clobbers reg byte a -Statement [134] if(*((byte*) play_collision::playfield_line#0 + (byte) play_collision::col#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_collision::@3 [ play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] ( main:10::play_move_rotate:52::play_collision:111 [ current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::render#2 current_piece#10 current_xpos#20 current_ypos#14 current_orientation#14 current_piece_gfx#14 play_move_rotate::orientation#3 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:10::play_move_leftright:47::play_collision:149 [ current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_piece_gfx#14 current_piece#10 current_ypos#14 current_orientation#14 current_xpos#16 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:10::play_move_leftright:47::play_collision:160 [ current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_piece_gfx#14 current_piece#10 current_ypos#14 current_orientation#14 current_xpos#16 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:10::play_move_down:42::play_collision:184 [ keyboard_events_size#16 main::key_event#0 current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] ) always clobbers reg byte a -Statement [148] (byte*~) current_piece#75 ← (byte*) current_piece#10 [ current_piece#10 current_ypos#14 current_orientation#14 current_piece#75 play_collision::orientation#2 play_collision::ypos#2 play_collision::xpos#2 current_xpos#16 ] ( main:10::play_move_leftright:47 [ current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_piece_gfx#14 current_piece#10 current_ypos#14 current_orientation#14 current_piece#75 play_collision::orientation#2 play_collision::ypos#2 play_collision::xpos#2 current_xpos#16 ] ) always clobbers reg byte a -Statement [159] (byte*~) current_piece#74 ← (byte*) current_piece#10 [ current_piece#10 current_ypos#14 current_orientation#14 current_piece#74 play_collision::orientation#1 play_collision::ypos#1 play_collision::xpos#1 current_xpos#16 ] ( main:10::play_move_leftright:47 [ current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_piece_gfx#14 current_piece#10 current_ypos#14 current_orientation#14 current_piece#74 play_collision::orientation#1 play_collision::ypos#1 play_collision::xpos#1 current_xpos#16 ] ) always clobbers reg byte a -Statement [183] (byte*~) current_piece#73 ← (byte*) current_piece#16 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 current_piece#73 play_collision::orientation#0 play_collision::ypos#0 play_collision::xpos#0 ] ( main:10::play_move_down:42 [ keyboard_events_size#16 main::key_event#0 current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 current_piece#73 play_collision::orientation#0 play_collision::ypos#0 play_collision::xpos#0 ] ) always clobbers reg byte a -Statement [194] (byte*~) current_piece#77 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) [ current_ypos#19 current_xpos#24 current_piece_gfx#17 current_piece_char#13 current_piece#77 ] ( main:10::play_move_down:42 [ keyboard_events_size#16 main::key_event#0 current_ypos#19 current_xpos#24 current_piece_gfx#17 current_piece_char#13 current_piece#77 ] ) always clobbers reg byte a +Statement [28] (byte*~) current_piece_gfx#99 ← (byte*) current_piece_gfx#16 [ current_ypos#83 current_ypos#18 current_xpos#109 current_xpos#23 current_piece_gfx#99 current_piece_gfx#16 current_piece_char#12 play_spawn_current::$3 ] ( main:10 [ current_ypos#83 current_ypos#18 current_xpos#109 current_xpos#23 current_piece_gfx#99 current_piece_gfx#16 current_piece_char#12 play_spawn_current::$3 ] ) always clobbers reg byte a +Statement [31] (byte*~) current_piece#72 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) [ current_ypos#18 current_xpos#23 current_piece_gfx#16 current_piece_char#12 current_piece#72 ] ( main:10 [ current_ypos#18 current_xpos#23 current_piece_gfx#16 current_piece_char#12 current_piece#72 ] ) always clobbers reg byte a +Statement [33] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@4 [ current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 keyboard_events_size#19 current_movedown_counter#12 ] ( main:10 [ current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 keyboard_events_size#19 current_movedown_counter#12 ] ) always clobbers reg byte a +Statement [34] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 254) goto main::@7 [ current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 keyboard_events_size#19 current_movedown_counter#12 ] ( main:10 [ current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 keyboard_events_size#19 current_movedown_counter#12 ] ) always clobbers reg byte a +Statement [45] (byte) main::render#1 ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte~) main::$12 [ current_piece#10 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_orientation#14 current_piece_gfx#1 current_xpos#1 ] ( main:10 [ current_piece#10 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_orientation#14 current_piece_gfx#1 current_xpos#1 ] ) always clobbers reg byte a +Statement [50] (byte) main::render#2 ← (byte) main::render#1 + (byte~) main::$13 [ current_piece#10 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#2 current_orientation#14 current_piece_gfx#1 ] ( main:10 [ current_piece#10 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#2 current_orientation#14 current_piece_gfx#1 ] ) always clobbers reg byte a +Statement [55] (byte) main::render#3 ← (byte) main::render#2 + (byte~) main::$14 [ current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::render#3 ] ( main:10 [ current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::render#3 ] ) always clobbers reg byte a +Statement [61] (byte*~) current_piece_gfx#100 ← (byte*) current_piece_gfx#14 [ current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 current_ypos#84 current_xpos#110 current_piece_gfx#100 ] ( main:10 [ current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 current_ypos#84 current_xpos#110 current_piece_gfx#100 ] ) always clobbers reg byte a +Statement [66] (byte) render_current::ypos2#0 ← (byte) current_ypos#9 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ current_xpos#47 current_piece_gfx#52 current_piece_char#62 render_current::ypos2#0 ] ( main:10::render_current:30 [ current_ypos#18 current_xpos#23 current_piece_gfx#16 current_piece_char#12 play_spawn_current::$3 current_xpos#47 current_piece_gfx#52 current_piece_char#62 render_current::ypos2#0 ] main:10::render_current:63 [ current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 current_xpos#47 current_piece_gfx#52 current_piece_char#62 render_current::ypos2#0 ] ) always clobbers reg byte a +Statement [68] if((byte) render_current::ypos2#2>(byte/signed byte/word/signed word/dword/signed dword) 2) goto render_current::@13 [ current_xpos#47 current_piece_gfx#52 current_piece_char#62 render_current::ypos2#2 render_current::i#3 render_current::l#4 ] ( main:10::render_current:30 [ current_ypos#18 current_xpos#23 current_piece_gfx#16 current_piece_char#12 play_spawn_current::$3 current_xpos#47 current_piece_gfx#52 current_piece_char#62 render_current::ypos2#2 render_current::i#3 render_current::l#4 ] main:10::render_current:63 [ current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 current_xpos#47 current_piece_gfx#52 current_piece_char#62 render_current::ypos2#2 render_current::i#3 render_current::l#4 ] ) always clobbers reg byte a +Statement [69] (byte) render_current::i#1 ← (byte) render_current::i#3 + (byte/signed byte/word/signed word/dword/signed dword) 4 [ current_xpos#47 current_piece_gfx#52 current_piece_char#62 render_current::ypos2#2 render_current::l#4 render_current::i#1 ] ( main:10::render_current:30 [ current_ypos#18 current_xpos#23 current_piece_gfx#16 current_piece_char#12 play_spawn_current::$3 current_xpos#47 current_piece_gfx#52 current_piece_char#62 render_current::ypos2#2 render_current::l#4 render_current::i#1 ] main:10::render_current:63 [ current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 current_xpos#47 current_piece_gfx#52 current_piece_char#62 render_current::ypos2#2 render_current::l#4 render_current::i#1 ] ) always clobbers reg byte a +Statement [76] (byte*) render_current::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) screen_lines#0 + (byte) render_current::ypos2#2) [ current_xpos#47 current_piece_gfx#52 current_piece_char#62 render_current::ypos2#2 render_current::i#3 render_current::l#4 render_current::screen_line#0 ] ( main:10::render_current:30 [ current_ypos#18 current_xpos#23 current_piece_gfx#16 current_piece_char#12 play_spawn_current::$3 current_xpos#47 current_piece_gfx#52 current_piece_char#62 render_current::ypos2#2 render_current::i#3 render_current::l#4 render_current::screen_line#0 ] main:10::render_current:63 [ current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 current_xpos#47 current_piece_gfx#52 current_piece_char#62 render_current::ypos2#2 render_current::i#3 render_current::l#4 render_current::screen_line#0 ] ) always clobbers reg byte a +Statement [79] (byte) render_current::current_cell#0 ← *((byte*) current_piece_gfx#52 + (byte) render_current::i#4) [ current_xpos#47 current_piece_gfx#52 current_piece_char#62 render_current::ypos2#2 render_current::l#4 render_current::screen_line#0 render_current::i#4 render_current::xpos#2 render_current::c#2 render_current::current_cell#0 ] ( main:10::render_current:30 [ current_ypos#18 current_xpos#23 current_piece_gfx#16 current_piece_char#12 play_spawn_current::$3 current_xpos#47 current_piece_gfx#52 current_piece_char#62 render_current::ypos2#2 render_current::l#4 render_current::screen_line#0 render_current::i#4 render_current::xpos#2 render_current::c#2 render_current::current_cell#0 ] main:10::render_current:63 [ current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 current_xpos#47 current_piece_gfx#52 current_piece_char#62 render_current::ypos2#2 render_current::l#4 render_current::screen_line#0 render_current::i#4 render_current::xpos#2 render_current::c#2 render_current::current_cell#0 ] ) always clobbers reg byte a +Statement [83] *((byte*) render_current::screen_line#0 + (byte) render_current::xpos#2) ← (byte) current_piece_char#62 [ current_xpos#47 current_piece_gfx#52 current_piece_char#62 render_current::ypos2#2 render_current::l#4 render_current::i#10 render_current::screen_line#0 render_current::xpos#2 render_current::c#2 ] ( main:10::render_current:30 [ current_ypos#18 current_xpos#23 current_piece_gfx#16 current_piece_char#12 play_spawn_current::$3 current_xpos#47 current_piece_gfx#52 current_piece_char#62 render_current::ypos2#2 render_current::l#4 render_current::i#10 render_current::screen_line#0 render_current::xpos#2 render_current::c#2 ] main:10::render_current:63 [ current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 current_xpos#47 current_piece_gfx#52 current_piece_char#62 render_current::ypos2#2 render_current::l#4 render_current::i#10 render_current::screen_line#0 render_current::xpos#2 render_current::c#2 ] ) always clobbers reg byte a +Statement [89] (byte~) render_playfield::$2 ← (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::$2 ] ( main:10::render_playfield:25 [ current_ypos#18 current_xpos#23 current_piece_gfx#16 current_piece_char#12 play_spawn_current::$3 render_playfield::l#2 render_playfield::i#3 render_playfield::$2 ] main:10::render_playfield:58 [ current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 render_playfield::l#2 render_playfield::i#3 render_playfield::$2 ] ) always clobbers reg byte a +Statement [90] (byte*) render_playfield::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) screen_lines#0 + (byte~) render_playfield::$2) [ render_playfield::l#2 render_playfield::i#3 render_playfield::screen_line#0 ] ( main:10::render_playfield:25 [ current_ypos#18 current_xpos#23 current_piece_gfx#16 current_piece_char#12 play_spawn_current::$3 render_playfield::l#2 render_playfield::i#3 render_playfield::screen_line#0 ] main:10::render_playfield:58 [ current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 render_playfield::l#2 render_playfield::i#3 render_playfield::screen_line#0 ] ) always clobbers reg byte a +Statement [92] *((byte*) render_playfield::screen_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::screen_line#2 render_playfield::c#2 ] ( main:10::render_playfield:25 [ current_ypos#18 current_xpos#23 current_piece_gfx#16 current_piece_char#12 play_spawn_current::$3 render_playfield::l#2 render_playfield::i#2 render_playfield::screen_line#2 render_playfield::c#2 ] main:10::render_playfield:58 [ current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 render_playfield::l#2 render_playfield::i#2 render_playfield::screen_line#2 render_playfield::c#2 ] ) always clobbers reg byte a reg byte y +Statement [104] (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 ← (byte) current_orientation#14 + (byte/signed byte/word/signed word/dword/signed dword) 16 [ current_piece#10 current_xpos#19 current_ypos#13 current_orientation#14 current_piece_gfx#1 play_move_rotate::$2 ] ( main:10::play_move_rotate:52 [ current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::render#2 current_piece#10 current_xpos#19 current_ypos#13 current_orientation#14 current_piece_gfx#1 play_move_rotate::$2 ] ) always clobbers reg byte a +Statement [105] (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#10 current_xpos#19 current_ypos#13 current_orientation#14 current_piece_gfx#1 play_move_rotate::orientation#2 ] ( main:10::play_move_rotate:52 [ current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::render#2 current_piece#10 current_xpos#19 current_ypos#13 current_orientation#14 current_piece_gfx#1 play_move_rotate::orientation#2 ] ) always clobbers reg byte a +Statement [110] (byte*~) current_piece#76 ← (byte*) current_piece#10 [ current_piece#10 current_xpos#19 current_ypos#13 current_orientation#14 current_piece_gfx#1 play_move_rotate::orientation#3 play_collision::xpos#3 play_collision::ypos#3 play_collision::orientation#3 current_piece#76 ] ( main:10::play_move_rotate:52 [ current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::render#2 current_piece#10 current_xpos#19 current_ypos#13 current_orientation#14 current_piece_gfx#1 play_move_rotate::orientation#3 play_collision::xpos#3 play_collision::ypos#3 play_collision::orientation#3 current_piece#76 ] ) always clobbers reg byte a +Statement [116] (byte*) current_piece_gfx#3 ← (byte*) current_piece#10 + (byte) current_orientation#4 [ current_piece#10 current_xpos#19 current_ypos#13 current_orientation#4 current_piece_gfx#3 ] ( main:10::play_move_rotate:52 [ current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::render#2 current_piece#10 current_xpos#19 current_ypos#13 current_orientation#4 current_piece_gfx#3 ] ) always clobbers reg byte a +Statement [117] (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 ← (byte) current_orientation#14 - (byte/signed byte/word/signed word/dword/signed dword) 16 [ current_piece#10 current_xpos#19 current_ypos#13 current_orientation#14 current_piece_gfx#1 play_move_rotate::$4 ] ( main:10::play_move_rotate:52 [ current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::render#2 current_piece#10 current_xpos#19 current_ypos#13 current_orientation#14 current_piece_gfx#1 play_move_rotate::$4 ] ) always clobbers reg byte a +Statement [118] (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#10 current_xpos#19 current_ypos#13 current_orientation#14 current_piece_gfx#1 play_move_rotate::orientation#1 ] ( main:10::play_move_rotate:52 [ current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::render#2 current_piece#10 current_xpos#19 current_ypos#13 current_orientation#14 current_piece_gfx#1 play_move_rotate::orientation#1 ] ) always clobbers reg byte a +Statement [120] (byte*) play_collision::piece_gfx#0 ← (byte*) current_piece#12 + (byte) play_collision::orientation#4 [ play_collision::ypos#4 play_collision::xpos#5 play_collision::piece_gfx#0 ] ( main:10::play_move_rotate:52::play_collision:111 [ current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::render#2 current_piece#10 current_xpos#19 current_ypos#13 current_orientation#14 current_piece_gfx#1 play_move_rotate::orientation#3 play_collision::ypos#4 play_collision::xpos#5 play_collision::piece_gfx#0 ] main:10::play_move_leftright:47::play_collision:149 [ current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_piece_gfx#1 current_piece#10 current_ypos#13 current_orientation#14 current_xpos#1 play_collision::ypos#4 play_collision::xpos#5 play_collision::piece_gfx#0 ] main:10::play_move_leftright:47::play_collision:160 [ current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_piece_gfx#1 current_piece#10 current_ypos#13 current_orientation#14 current_xpos#1 play_collision::ypos#4 play_collision::xpos#5 play_collision::piece_gfx#0 ] main:10::play_move_down:42::play_collision:184 [ keyboard_events_size#16 main::key_event#0 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 play_collision::ypos#4 play_collision::xpos#5 play_collision::piece_gfx#0 ] ) always clobbers reg byte a +Statement [121] (byte) play_collision::ypos2#0 ← (byte) play_collision::ypos#4 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#0 ] ( main:10::play_move_rotate:52::play_collision:111 [ current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::render#2 current_piece#10 current_xpos#19 current_ypos#13 current_orientation#14 current_piece_gfx#1 play_move_rotate::orientation#3 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#0 ] main:10::play_move_leftright:47::play_collision:149 [ current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_piece_gfx#1 current_piece#10 current_ypos#13 current_orientation#14 current_xpos#1 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#0 ] main:10::play_move_leftright:47::play_collision:160 [ current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_piece_gfx#1 current_piece#10 current_ypos#13 current_orientation#14 current_xpos#1 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#0 ] main:10::play_move_down:42::play_collision:184 [ keyboard_events_size#16 main::key_event#0 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#0 ] ) always clobbers reg byte a +Statement [123] (byte*) play_collision::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) play_collision::ypos2#2) [ play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] ( main:10::play_move_rotate:52::play_collision:111 [ current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::render#2 current_piece#10 current_xpos#19 current_ypos#13 current_orientation#14 current_piece_gfx#1 play_move_rotate::orientation#3 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] main:10::play_move_leftright:47::play_collision:149 [ current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_piece_gfx#1 current_piece#10 current_ypos#13 current_orientation#14 current_xpos#1 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] main:10::play_move_leftright:47::play_collision:160 [ current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_piece_gfx#1 current_piece#10 current_ypos#13 current_orientation#14 current_xpos#1 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] main:10::play_move_down:42::play_collision:184 [ keyboard_events_size#16 main::key_event#0 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] ) always clobbers reg byte a +Statement [127] if(*((byte*) play_collision::piece_gfx#0 + (byte) play_collision::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_collision::@3 [ play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] ( main:10::play_move_rotate:52::play_collision:111 [ current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::render#2 current_piece#10 current_xpos#19 current_ypos#13 current_orientation#14 current_piece_gfx#1 play_move_rotate::orientation#3 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:10::play_move_leftright:47::play_collision:149 [ current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_piece_gfx#1 current_piece#10 current_ypos#13 current_orientation#14 current_xpos#1 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:10::play_move_leftright:47::play_collision:160 [ current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_piece_gfx#1 current_piece#10 current_ypos#13 current_orientation#14 current_xpos#1 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:10::play_move_down:42::play_collision:184 [ keyboard_events_size#16 main::key_event#0 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] ) always clobbers reg byte a +Statement [131] (byte~) play_collision::$7 ← (byte) play_collision::col#2 & (byte/word/signed word/dword/signed dword) 128 [ play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] ( main:10::play_move_rotate:52::play_collision:111 [ current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::render#2 current_piece#10 current_xpos#19 current_ypos#13 current_orientation#14 current_piece_gfx#1 play_move_rotate::orientation#3 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] main:10::play_move_leftright:47::play_collision:149 [ current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_piece_gfx#1 current_piece#10 current_ypos#13 current_orientation#14 current_xpos#1 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] main:10::play_move_leftright:47::play_collision:160 [ current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_piece_gfx#1 current_piece#10 current_ypos#13 current_orientation#14 current_xpos#1 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] main:10::play_move_down:42::play_collision:184 [ keyboard_events_size#16 main::key_event#0 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] ) always clobbers reg byte a +Statement [134] if(*((byte*) play_collision::playfield_line#0 + (byte) play_collision::col#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_collision::@3 [ play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] ( main:10::play_move_rotate:52::play_collision:111 [ current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::render#2 current_piece#10 current_xpos#19 current_ypos#13 current_orientation#14 current_piece_gfx#1 play_move_rotate::orientation#3 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:10::play_move_leftright:47::play_collision:149 [ current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_piece_gfx#1 current_piece#10 current_ypos#13 current_orientation#14 current_xpos#1 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:10::play_move_leftright:47::play_collision:160 [ current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_piece_gfx#1 current_piece#10 current_ypos#13 current_orientation#14 current_xpos#1 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:10::play_move_down:42::play_collision:184 [ keyboard_events_size#16 main::key_event#0 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] ) always clobbers reg byte a +Statement [148] (byte*~) current_piece#75 ← (byte*) current_piece#10 [ current_piece#10 current_ypos#13 current_orientation#14 current_piece#75 play_collision::orientation#2 play_collision::ypos#2 play_collision::xpos#2 current_xpos#1 ] ( main:10::play_move_leftright:47 [ current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_piece_gfx#1 current_piece#10 current_ypos#13 current_orientation#14 current_piece#75 play_collision::orientation#2 play_collision::ypos#2 play_collision::xpos#2 current_xpos#1 ] ) always clobbers reg byte a +Statement [159] (byte*~) current_piece#74 ← (byte*) current_piece#10 [ current_piece#10 current_ypos#13 current_orientation#14 current_piece#74 play_collision::orientation#1 play_collision::ypos#1 play_collision::xpos#1 current_xpos#1 ] ( main:10::play_move_leftright:47 [ current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_piece_gfx#1 current_piece#10 current_ypos#13 current_orientation#14 current_piece#74 play_collision::orientation#1 play_collision::ypos#1 play_collision::xpos#1 current_xpos#1 ] ) always clobbers reg byte a +Statement [183] (byte*~) current_piece#73 ← (byte*) current_piece#16 [ current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_piece#73 play_collision::orientation#0 play_collision::ypos#0 play_collision::xpos#0 ] ( main:10::play_move_down:42 [ keyboard_events_size#16 main::key_event#0 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_piece#73 play_collision::orientation#0 play_collision::ypos#0 play_collision::xpos#0 ] ) always clobbers reg byte a +Statement [194] (byte*~) current_piece#77 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) [ current_ypos#18 current_xpos#23 current_piece_gfx#16 current_piece_char#12 current_piece#77 ] ( main:10::play_move_down:42 [ keyboard_events_size#16 main::key_event#0 current_ypos#18 current_xpos#23 current_piece_gfx#16 current_piece_char#12 current_piece#77 ] ) always clobbers reg byte a Statement [202] (byte~) play_spawn_current::$3 ← (byte) play_spawn_current::piece_idx#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ play_spawn_current::$3 play_spawn_current::piece_idx#2 ] ( main:10::play_spawn_current:23 [ play_spawn_current::$3 play_spawn_current::piece_idx#2 ] main:10::play_move_down:42::play_spawn_current:193 [ keyboard_events_size#16 main::key_event#0 play_spawn_current::$3 play_spawn_current::piece_idx#2 ] ) always clobbers reg byte a -Statement [203] (byte*) current_piece_gfx#17 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) + (byte/signed byte/word/signed word/dword/signed dword) 0 [ current_piece_gfx#17 play_spawn_current::$3 play_spawn_current::piece_idx#2 ] ( main:10::play_spawn_current:23 [ current_piece_gfx#17 play_spawn_current::$3 play_spawn_current::piece_idx#2 ] main:10::play_move_down:42::play_spawn_current:193 [ keyboard_events_size#16 main::key_event#0 current_piece_gfx#17 play_spawn_current::$3 play_spawn_current::piece_idx#2 ] ) always clobbers reg byte a -Statement [204] (byte) current_xpos#24 ← *((const byte[]) PIECES_START_X#0 + (byte) play_spawn_current::piece_idx#2) [ current_xpos#24 current_piece_gfx#17 play_spawn_current::$3 play_spawn_current::piece_idx#2 ] ( main:10::play_spawn_current:23 [ current_xpos#24 current_piece_gfx#17 play_spawn_current::$3 play_spawn_current::piece_idx#2 ] main:10::play_move_down:42::play_spawn_current:193 [ keyboard_events_size#16 main::key_event#0 current_xpos#24 current_piece_gfx#17 play_spawn_current::$3 play_spawn_current::piece_idx#2 ] ) always clobbers reg byte a -Statement [205] (byte) current_ypos#19 ← *((const byte[]) PIECES_START_Y#0 + (byte) play_spawn_current::piece_idx#2) [ current_ypos#19 current_xpos#24 current_piece_gfx#17 play_spawn_current::$3 play_spawn_current::piece_idx#2 ] ( main:10::play_spawn_current:23 [ current_ypos#19 current_xpos#24 current_piece_gfx#17 play_spawn_current::$3 play_spawn_current::piece_idx#2 ] main:10::play_move_down:42::play_spawn_current:193 [ keyboard_events_size#16 main::key_event#0 current_ypos#19 current_xpos#24 current_piece_gfx#17 play_spawn_current::$3 play_spawn_current::piece_idx#2 ] ) always clobbers reg byte a -Statement [206] (byte) current_piece_char#13 ← *((const byte[]) PIECES_CHARS#0 + (byte) play_spawn_current::piece_idx#2) [ current_ypos#19 current_xpos#24 current_piece_gfx#17 current_piece_char#13 play_spawn_current::$3 ] ( main:10::play_spawn_current:23 [ current_ypos#19 current_xpos#24 current_piece_gfx#17 current_piece_char#13 play_spawn_current::$3 ] main:10::play_move_down:42::play_spawn_current:193 [ keyboard_events_size#16 main::key_event#0 current_ypos#19 current_xpos#24 current_piece_gfx#17 current_piece_char#13 play_spawn_current::$3 ] ) always clobbers reg byte a +Statement [203] (byte*) current_piece_gfx#16 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) + (byte/signed byte/word/signed word/dword/signed dword) 0 [ current_piece_gfx#16 play_spawn_current::$3 play_spawn_current::piece_idx#2 ] ( main:10::play_spawn_current:23 [ current_piece_gfx#16 play_spawn_current::$3 play_spawn_current::piece_idx#2 ] main:10::play_move_down:42::play_spawn_current:193 [ keyboard_events_size#16 main::key_event#0 current_piece_gfx#16 play_spawn_current::$3 play_spawn_current::piece_idx#2 ] ) always clobbers reg byte a +Statement [204] (byte) current_xpos#23 ← *((const byte[]) PIECES_START_X#0 + (byte) play_spawn_current::piece_idx#2) [ current_xpos#23 current_piece_gfx#16 play_spawn_current::$3 play_spawn_current::piece_idx#2 ] ( main:10::play_spawn_current:23 [ current_xpos#23 current_piece_gfx#16 play_spawn_current::$3 play_spawn_current::piece_idx#2 ] main:10::play_move_down:42::play_spawn_current:193 [ keyboard_events_size#16 main::key_event#0 current_xpos#23 current_piece_gfx#16 play_spawn_current::$3 play_spawn_current::piece_idx#2 ] ) always clobbers reg byte a +Statement [205] (byte) current_ypos#18 ← *((const byte[]) PIECES_START_Y#0 + (byte) play_spawn_current::piece_idx#2) [ current_ypos#18 current_xpos#23 current_piece_gfx#16 play_spawn_current::$3 play_spawn_current::piece_idx#2 ] ( main:10::play_spawn_current:23 [ current_ypos#18 current_xpos#23 current_piece_gfx#16 play_spawn_current::$3 play_spawn_current::piece_idx#2 ] main:10::play_move_down:42::play_spawn_current:193 [ keyboard_events_size#16 main::key_event#0 current_ypos#18 current_xpos#23 current_piece_gfx#16 play_spawn_current::$3 play_spawn_current::piece_idx#2 ] ) always clobbers reg byte a +Statement [206] (byte) current_piece_char#12 ← *((const byte[]) PIECES_CHARS#0 + (byte) play_spawn_current::piece_idx#2) [ current_ypos#18 current_xpos#23 current_piece_gfx#16 current_piece_char#12 play_spawn_current::$3 ] ( main:10::play_spawn_current:23 [ current_ypos#18 current_xpos#23 current_piece_gfx#16 current_piece_char#12 play_spawn_current::$3 ] main:10::play_move_down:42::play_spawn_current:193 [ keyboard_events_size#16 main::key_event#0 current_ypos#18 current_xpos#23 current_piece_gfx#16 current_piece_char#12 play_spawn_current::$3 ] ) always clobbers reg byte a Statement [212] (byte) play_spawn_current::piece_idx#1 ← (byte~) play_spawn_current::$1 & (byte/signed byte/word/signed word/dword/signed dword) 7 [ play_spawn_current::piece_idx#1 ] ( main:10::play_spawn_current:23 [ play_spawn_current::piece_idx#1 ] main:10::play_move_down:42::play_spawn_current:193 [ keyboard_events_size#16 main::key_event#0 play_spawn_current::piece_idx#1 ] ) always clobbers reg byte a Statement [227] (byte) play_remove_lines::w#2 ← (byte) play_remove_lines::w#1 + (const byte) PLAYFIELD_COLS#0 [ play_remove_lines::y#8 play_remove_lines::r#1 play_remove_lines::w#2 ] ( main:10::play_move_down:42::play_remove_lines:191 [ keyboard_events_size#16 main::key_event#0 play_remove_lines::y#8 play_remove_lines::r#1 play_remove_lines::w#2 ] ) always clobbers reg byte a Statement [234] *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) play_remove_lines::w#6) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ play_remove_lines::w#6 ] ( main:10::play_move_down:42::play_remove_lines:191 [ keyboard_events_size#16 main::key_event#0 play_remove_lines::w#6 ] ) always clobbers reg byte a -Statement [237] (byte) play_lock_current::ypos2#0 ← (byte) current_ypos#22 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ current_piece_gfx#10 current_xpos#11 current_piece_char#16 play_lock_current::ypos2#0 ] ( main:10::play_move_down:42::play_lock_current:189 [ keyboard_events_size#16 main::key_event#0 current_piece_gfx#10 current_xpos#11 current_piece_char#16 play_lock_current::ypos2#0 ] ) always clobbers reg byte a -Statement [239] (byte*) play_lock_current::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) play_lock_current::ypos2#2) [ current_piece_gfx#10 current_xpos#11 current_piece_char#16 play_lock_current::ypos2#2 play_lock_current::i#3 play_lock_current::l#6 play_lock_current::playfield_line#0 ] ( main:10::play_move_down:42::play_lock_current:189 [ keyboard_events_size#16 main::key_event#0 current_piece_gfx#10 current_xpos#11 current_piece_char#16 play_lock_current::ypos2#2 play_lock_current::i#3 play_lock_current::l#6 play_lock_current::playfield_line#0 ] ) always clobbers reg byte a -Statement [243] if(*((byte*) current_piece_gfx#10 + (byte) play_lock_current::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_lock_current::@3 [ current_piece_gfx#10 current_xpos#11 current_piece_char#16 play_lock_current::ypos2#2 play_lock_current::l#6 play_lock_current::playfield_line#0 play_lock_current::col#2 play_lock_current::c#2 play_lock_current::i#1 ] ( main:10::play_move_down:42::play_lock_current:189 [ keyboard_events_size#16 main::key_event#0 current_piece_gfx#10 current_xpos#11 current_piece_char#16 play_lock_current::ypos2#2 play_lock_current::l#6 play_lock_current::playfield_line#0 play_lock_current::col#2 play_lock_current::c#2 play_lock_current::i#1 ] ) always clobbers reg byte a -Statement [244] *((byte*) play_lock_current::playfield_line#0 + (byte) play_lock_current::col#2) ← (byte) current_piece_char#16 [ current_piece_gfx#10 current_xpos#11 current_piece_char#16 play_lock_current::ypos2#2 play_lock_current::l#6 play_lock_current::playfield_line#0 play_lock_current::col#2 play_lock_current::c#2 play_lock_current::i#1 ] ( main:10::play_move_down:42::play_lock_current:189 [ keyboard_events_size#16 main::key_event#0 current_piece_gfx#10 current_xpos#11 current_piece_char#16 play_lock_current::ypos2#2 play_lock_current::l#6 play_lock_current::playfield_line#0 play_lock_current::col#2 play_lock_current::c#2 play_lock_current::i#1 ] ) always clobbers reg byte a -Statement [255] (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:10::play_move_down:42::keyboard_event_pressed:169 [ keyboard_events_size#16 main::key_event#0 current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 current_movedown_counter#1 play_move_down::movedown#10 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] main:10::keyboard_event_scan:36::keyboard_event_pressed:277 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 current_movedown_counter#12 keyboard_events_size#13 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] main:10::keyboard_event_scan:36::keyboard_event_pressed:283 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 current_movedown_counter#12 keyboard_events_size#13 keyboard_modifiers#11 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] main:10::keyboard_event_scan:36::keyboard_event_pressed:289 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 current_movedown_counter#12 keyboard_events_size#13 keyboard_modifiers#12 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] main:10::keyboard_event_scan:36::keyboard_event_pressed:295 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 current_movedown_counter#12 keyboard_events_size#13 keyboard_modifiers#13 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] ) always clobbers reg byte a -Statement [257] (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:10::play_move_down:42::keyboard_event_pressed:169 [ keyboard_events_size#16 main::key_event#0 current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 current_movedown_counter#1 play_move_down::movedown#10 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:10::keyboard_event_scan:36::keyboard_event_pressed:277 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 current_movedown_counter#12 keyboard_events_size#13 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:10::keyboard_event_scan:36::keyboard_event_pressed:283 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 current_movedown_counter#12 keyboard_events_size#13 keyboard_modifiers#11 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:10::keyboard_event_scan:36::keyboard_event_pressed:289 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 current_movedown_counter#12 keyboard_events_size#13 keyboard_modifiers#12 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:10::keyboard_event_scan:36::keyboard_event_pressed:295 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 current_movedown_counter#12 keyboard_events_size#13 keyboard_modifiers#13 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] ) always clobbers reg byte a -Statement [258] (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:10::play_move_down:42::keyboard_event_pressed:169 [ keyboard_events_size#16 main::key_event#0 current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 current_movedown_counter#1 play_move_down::movedown#10 keyboard_event_pressed::return#11 ] main:10::keyboard_event_scan:36::keyboard_event_pressed:277 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 current_movedown_counter#12 keyboard_events_size#13 keyboard_event_pressed::return#11 ] main:10::keyboard_event_scan:36::keyboard_event_pressed:283 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 current_movedown_counter#12 keyboard_events_size#13 keyboard_modifiers#11 keyboard_event_pressed::return#11 ] main:10::keyboard_event_scan:36::keyboard_event_pressed:289 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 current_movedown_counter#12 keyboard_events_size#13 keyboard_modifiers#12 keyboard_event_pressed::return#11 ] main:10::keyboard_event_scan:36::keyboard_event_pressed:295 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 current_movedown_counter#12 keyboard_events_size#13 keyboard_modifiers#13 keyboard_event_pressed::return#11 ] ) always clobbers reg byte a -Statement [271] 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:10::keyboard_event_scan:36 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 current_movedown_counter#12 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 [272] (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:10::keyboard_event_scan:36 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 current_movedown_counter#12 keyboard_event_scan::row#2 keyboard_events_size#29 keyboard_event_scan::keycode#1 ] ) always clobbers reg byte a -Statement [287] (byte) keyboard_modifiers#3 ← (byte) keyboard_modifiers#11 | (const byte) KEY_MODIFIER_RSHIFT#0 [ keyboard_events_size#13 keyboard_modifiers#3 ] ( main:10::keyboard_event_scan:36 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 current_movedown_counter#12 keyboard_events_size#13 keyboard_modifiers#3 ] ) always clobbers reg byte a -Statement [293] (byte) keyboard_modifiers#4 ← (byte) keyboard_modifiers#12 | (const byte) KEY_MODIFIER_CTRL#0 [ keyboard_events_size#13 keyboard_modifiers#4 ] ( main:10::keyboard_event_scan:36 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 current_movedown_counter#12 keyboard_events_size#13 keyboard_modifiers#4 ] ) always clobbers reg byte a -Statement [299] (byte) keyboard_modifiers#5 ← (byte) keyboard_modifiers#13 | (const byte) KEY_MODIFIER_COMMODORE#0 [ keyboard_events_size#13 ] ( main:10::keyboard_event_scan:36 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 current_movedown_counter#12 keyboard_events_size#13 ] ) always clobbers reg byte a -Statement [302] (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:10::keyboard_event_scan:36 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 current_movedown_counter#12 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 [303] (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:10::keyboard_event_scan:36 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 current_movedown_counter#12 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 [306] (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:10::keyboard_event_scan:36 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 current_movedown_counter#12 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 [308] *((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:10::keyboard_event_scan:36 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 current_movedown_counter#12 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 [314] *((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:10::keyboard_event_scan:36 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 current_movedown_counter#12 keyboard_event_scan::row#2 keyboard_event_scan::keycode#15 keyboard_events_size#30 ] ) always clobbers reg byte a -Statement [315] (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:10::keyboard_event_scan:36 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 current_movedown_counter#12 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 [318] *((const byte*) CIA1_PORT_A#0) ← *((const byte[8]) keyboard_matrix_row_bitmask#0 + (byte) keyboard_matrix_read::rowid#0) [ ] ( main:10::keyboard_event_scan:36::keyboard_matrix_read:268 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 current_movedown_counter#12 keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#29 ] ) always clobbers reg byte a -Statement [319] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) [ keyboard_matrix_read::return#0 ] ( main:10::keyboard_event_scan:36::keyboard_matrix_read:268 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 current_movedown_counter#12 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 [237] (byte) play_lock_current::ypos2#0 ← (byte) current_ypos#21 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ current_piece_gfx#20 current_xpos#10 current_piece_char#15 play_lock_current::ypos2#0 ] ( main:10::play_move_down:42::play_lock_current:189 [ keyboard_events_size#16 main::key_event#0 current_piece_gfx#20 current_xpos#10 current_piece_char#15 play_lock_current::ypos2#0 ] ) always clobbers reg byte a +Statement [239] (byte*) play_lock_current::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) play_lock_current::ypos2#2) [ current_piece_gfx#20 current_xpos#10 current_piece_char#15 play_lock_current::ypos2#2 play_lock_current::i#3 play_lock_current::l#6 play_lock_current::playfield_line#0 ] ( main:10::play_move_down:42::play_lock_current:189 [ keyboard_events_size#16 main::key_event#0 current_piece_gfx#20 current_xpos#10 current_piece_char#15 play_lock_current::ypos2#2 play_lock_current::i#3 play_lock_current::l#6 play_lock_current::playfield_line#0 ] ) always clobbers reg byte a +Statement [243] if(*((byte*) current_piece_gfx#20 + (byte) play_lock_current::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_lock_current::@3 [ current_piece_gfx#20 current_xpos#10 current_piece_char#15 play_lock_current::ypos2#2 play_lock_current::l#6 play_lock_current::playfield_line#0 play_lock_current::col#2 play_lock_current::c#2 play_lock_current::i#1 ] ( main:10::play_move_down:42::play_lock_current:189 [ keyboard_events_size#16 main::key_event#0 current_piece_gfx#20 current_xpos#10 current_piece_char#15 play_lock_current::ypos2#2 play_lock_current::l#6 play_lock_current::playfield_line#0 play_lock_current::col#2 play_lock_current::c#2 play_lock_current::i#1 ] ) always clobbers reg byte a +Statement [244] *((byte*) play_lock_current::playfield_line#0 + (byte) play_lock_current::col#2) ← (byte) current_piece_char#15 [ current_piece_gfx#20 current_xpos#10 current_piece_char#15 play_lock_current::ypos2#2 play_lock_current::l#6 play_lock_current::playfield_line#0 play_lock_current::col#2 play_lock_current::c#2 play_lock_current::i#1 ] ( main:10::play_move_down:42::play_lock_current:189 [ keyboard_events_size#16 main::key_event#0 current_piece_gfx#20 current_xpos#10 current_piece_char#15 play_lock_current::ypos2#2 play_lock_current::l#6 play_lock_current::playfield_line#0 play_lock_current::col#2 play_lock_current::c#2 play_lock_current::i#1 ] ) always clobbers reg byte a +Statement [255] (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:10::play_move_down:42::keyboard_event_pressed:169 [ keyboard_events_size#16 main::key_event#0 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#1 play_move_down::movedown#10 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] main:10::keyboard_event_scan:36::keyboard_event_pressed:277 [ current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 keyboard_events_size#13 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] main:10::keyboard_event_scan:36::keyboard_event_pressed:283 [ current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 keyboard_events_size#13 keyboard_modifiers#11 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] main:10::keyboard_event_scan:36::keyboard_event_pressed:289 [ current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 keyboard_events_size#13 keyboard_modifiers#12 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] main:10::keyboard_event_scan:36::keyboard_event_pressed:295 [ current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 keyboard_events_size#13 keyboard_modifiers#13 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] ) always clobbers reg byte a +Statement [257] (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:10::play_move_down:42::keyboard_event_pressed:169 [ keyboard_events_size#16 main::key_event#0 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#1 play_move_down::movedown#10 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:10::keyboard_event_scan:36::keyboard_event_pressed:277 [ current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 keyboard_events_size#13 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:10::keyboard_event_scan:36::keyboard_event_pressed:283 [ current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 keyboard_events_size#13 keyboard_modifiers#11 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:10::keyboard_event_scan:36::keyboard_event_pressed:289 [ current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 keyboard_events_size#13 keyboard_modifiers#12 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:10::keyboard_event_scan:36::keyboard_event_pressed:295 [ current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 keyboard_events_size#13 keyboard_modifiers#13 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] ) always clobbers reg byte a +Statement [258] (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:10::play_move_down:42::keyboard_event_pressed:169 [ keyboard_events_size#16 main::key_event#0 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#1 play_move_down::movedown#10 keyboard_event_pressed::return#11 ] main:10::keyboard_event_scan:36::keyboard_event_pressed:277 [ current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 keyboard_events_size#13 keyboard_event_pressed::return#11 ] main:10::keyboard_event_scan:36::keyboard_event_pressed:283 [ current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 keyboard_events_size#13 keyboard_modifiers#11 keyboard_event_pressed::return#11 ] main:10::keyboard_event_scan:36::keyboard_event_pressed:289 [ current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 keyboard_events_size#13 keyboard_modifiers#12 keyboard_event_pressed::return#11 ] main:10::keyboard_event_scan:36::keyboard_event_pressed:295 [ current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 keyboard_events_size#13 keyboard_modifiers#13 keyboard_event_pressed::return#11 ] ) always clobbers reg byte a +Statement [271] 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:10::keyboard_event_scan:36 [ current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 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 [272] (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:10::keyboard_event_scan:36 [ current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 keyboard_event_scan::row#2 keyboard_events_size#29 keyboard_event_scan::keycode#1 ] ) always clobbers reg byte a +Statement [287] (byte) keyboard_modifiers#3 ← (byte) keyboard_modifiers#11 | (const byte) KEY_MODIFIER_RSHIFT#0 [ keyboard_events_size#13 keyboard_modifiers#3 ] ( main:10::keyboard_event_scan:36 [ current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 keyboard_events_size#13 keyboard_modifiers#3 ] ) always clobbers reg byte a +Statement [293] (byte) keyboard_modifiers#4 ← (byte) keyboard_modifiers#12 | (const byte) KEY_MODIFIER_CTRL#0 [ keyboard_events_size#13 keyboard_modifiers#4 ] ( main:10::keyboard_event_scan:36 [ current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 keyboard_events_size#13 keyboard_modifiers#4 ] ) always clobbers reg byte a +Statement [299] (byte) keyboard_modifiers#5 ← (byte) keyboard_modifiers#13 | (const byte) KEY_MODIFIER_COMMODORE#0 [ keyboard_events_size#13 ] ( main:10::keyboard_event_scan:36 [ current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 keyboard_events_size#13 ] ) always clobbers reg byte a +Statement [302] (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:10::keyboard_event_scan:36 [ current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 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 [303] (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:10::keyboard_event_scan:36 [ current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 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 [306] (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:10::keyboard_event_scan:36 [ current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 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 [308] *((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:10::keyboard_event_scan:36 [ current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 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 [314] *((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:10::keyboard_event_scan:36 [ current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 keyboard_event_scan::row#2 keyboard_event_scan::keycode#15 keyboard_events_size#30 ] ) always clobbers reg byte a +Statement [315] (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:10::keyboard_event_scan:36 [ current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 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 [318] *((const byte*) CIA1_PORT_A#0) ← *((const byte[8]) keyboard_matrix_row_bitmask#0 + (byte) keyboard_matrix_read::rowid#0) [ ] ( main:10::keyboard_event_scan:36::keyboard_matrix_read:268 [ current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#29 ] ) always clobbers reg byte a +Statement [319] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) [ keyboard_matrix_read::return#0 ] ( main:10::keyboard_event_scan:36::keyboard_matrix_read:268 [ current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 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 [323] (byte~) play_init::$1 ← (byte) play_init::j#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ play_init::j#2 play_init::pli#2 play_init::idx#2 play_init::$1 ] ( main:10::play_init:21 [ play_init::j#2 play_init::pli#2 play_init::idx#2 play_init::$1 ] ) always clobbers reg byte a Statement [324] *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte~) play_init::$1) ← (byte*) play_init::pli#2 [ play_init::j#2 play_init::pli#2 play_init::idx#2 ] ( main:10::play_init:21 [ play_init::j#2 play_init::pli#2 play_init::idx#2 ] ) always clobbers reg byte a Statement [325] *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0 + (byte) play_init::j#2) ← (byte) play_init::idx#2 [ play_init::j#2 play_init::pli#2 play_init::idx#2 ] ( main:10::play_init:21 [ play_init::j#2 play_init::pli#2 play_init::idx#2 ] ) always clobbers reg byte a @@ -11630,10 +11662,10 @@ Statement [451] (byte) irq_raster_next#1 ← (const byte) IRQ_RASTER_FIRST#0 [ i Statement [452] (byte) irq_sprite_ypos#1 ← (byte/signed byte/word/signed word/dword/signed dword) 50 [ irq_raster_next#1 ] ( [ irq_raster_next#1 ] ) always clobbers reg byte a Statement [454] (byte) irq_sprite_ptr#1 ← (const byte) irq::toSpritePtr2_return#0 [ irq_raster_next#1 ] ( [ irq_raster_next#1 ] ) always clobbers reg byte a Potential registers zp ZP_BYTE:2 [ current_movedown_counter#12 current_movedown_counter#10 current_movedown_counter#1 ] : zp ZP_BYTE:2 , reg byte x , -Potential registers zp ZP_BYTE:3 [ current_ypos#10 current_ypos#79 current_ypos#80 ] : zp ZP_BYTE:3 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:4 [ current_xpos#48 current_xpos#105 current_xpos#106 ] : zp ZP_BYTE:4 , reg byte x , reg byte y , -Potential registers zp ZP_WORD:5 [ current_piece_gfx#53 current_piece_gfx#95 current_piece_gfx#96 ] : zp ZP_WORD:5 , -Potential registers zp ZP_BYTE:7 [ current_piece_char#63 current_piece_char#83 current_piece_char#84 ] : zp ZP_BYTE:7 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:3 [ current_ypos#9 current_ypos#83 current_ypos#84 ] : zp ZP_BYTE:3 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:4 [ current_xpos#47 current_xpos#109 current_xpos#110 ] : zp ZP_BYTE:4 , reg byte x , reg byte y , +Potential registers zp ZP_WORD:5 [ current_piece_gfx#52 current_piece_gfx#99 current_piece_gfx#100 ] : zp ZP_WORD:5 , +Potential registers zp ZP_BYTE:7 [ current_piece_char#62 current_piece_char#87 current_piece_char#88 ] : zp ZP_BYTE:7 , reg byte x , reg byte y , Potential registers zp ZP_BYTE:8 [ render_current::ypos2#2 render_current::ypos2#0 render_current::ypos2#1 ] : zp ZP_BYTE:8 , reg byte x , reg byte y , Potential registers zp ZP_BYTE:9 [ render_current::l#4 render_current::l#1 ] : zp ZP_BYTE:9 , reg byte x , reg byte y , Potential registers zp ZP_BYTE:10 [ render_current::i#4 render_current::i#3 render_current::i#8 render_current::i#10 render_current::i#1 ] : zp ZP_BYTE:10 , reg byte x , reg byte y , @@ -11657,12 +11689,12 @@ Potential registers zp ZP_BYTE:29 [ play_collision::c#2 play_collision::c#1 ] : Potential registers zp ZP_BYTE:30 [ play_collision::return#14 ] : zp ZP_BYTE:30 , reg byte a , reg byte x , reg byte y , Potential registers zp ZP_BYTE:31 [ play_move_leftright::return#1 ] : zp ZP_BYTE:31 , reg byte a , reg byte x , reg byte y , Potential registers zp ZP_BYTE:32 [ 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 ] : zp ZP_BYTE:32 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:33 [ current_ypos#30 current_ypos#22 current_ypos#14 current_ypos#19 current_ypos#1 ] : zp ZP_BYTE:33 , reg byte x , +Potential registers zp ZP_BYTE:33 [ current_ypos#29 current_ypos#21 current_ypos#13 current_ypos#18 current_ypos#0 ] : zp ZP_BYTE:33 , reg byte x , Potential registers zp ZP_WORD:34 [ current_piece#20 current_piece#77 current_piece#16 current_piece#10 current_piece#72 ] : zp ZP_WORD:34 , Potential registers zp ZP_BYTE:36 [ current_orientation#29 current_orientation#10 current_orientation#19 current_orientation#4 current_orientation#14 ] : zp ZP_BYTE:36 , reg byte x , -Potential registers zp ZP_WORD:37 [ current_piece_gfx#27 current_piece_gfx#10 current_piece_gfx#15 current_piece_gfx#17 current_piece_gfx#4 current_piece_gfx#14 ] : zp ZP_WORD:37 , -Potential registers zp ZP_BYTE:39 [ current_xpos#34 current_xpos#11 current_xpos#20 current_xpos#24 current_xpos#5 current_xpos#16 current_xpos#3 ] : zp ZP_BYTE:39 , reg byte x , -Potential registers zp ZP_BYTE:40 [ current_piece_char#21 current_piece_char#16 current_piece_char#11 current_piece_char#13 ] : zp ZP_BYTE:40 , reg byte x , +Potential registers zp ZP_WORD:37 [ current_piece_gfx#26 current_piece_gfx#20 current_piece_gfx#14 current_piece_gfx#16 current_piece_gfx#3 current_piece_gfx#1 ] : zp ZP_WORD:37 , +Potential registers zp ZP_BYTE:39 [ current_xpos#33 current_xpos#10 current_xpos#19 current_xpos#23 current_xpos#4 current_xpos#1 current_xpos#2 ] : zp ZP_BYTE:39 , reg byte x , +Potential registers zp ZP_BYTE:40 [ current_piece_char#20 current_piece_char#15 current_piece_char#1 current_piece_char#12 ] : zp ZP_BYTE:40 , reg byte x , Potential registers zp ZP_BYTE:41 [ play_move_down::return#2 ] : zp ZP_BYTE:41 , reg byte a , reg byte x , reg byte y , Potential registers zp ZP_BYTE:42 [ play_spawn_current::piece_idx#2 play_spawn_current::piece_idx#1 ] : zp ZP_BYTE:42 , reg byte x , reg byte y , Potential registers zp ZP_BYTE:43 [ play_remove_lines::y#8 play_remove_lines::y#1 ] : zp ZP_BYTE:43 , reg byte x , reg byte y , @@ -11787,7 +11819,7 @@ Uplift Scope [play_collision] 3,823.33: zp ZP_BYTE:27 [ play_collision::i#2 play Uplift Scope [render_current] 2,544.35: zp ZP_BYTE:10 [ render_current::i#4 render_current::i#3 render_current::i#8 render_current::i#10 render_current::i#1 ] 1,787.5: zp ZP_BYTE:12 [ render_current::c#2 render_current::c#1 ] 1,553.5: zp ZP_BYTE:11 [ render_current::xpos#2 render_current::xpos#0 render_current::xpos#1 ] 1,001: zp ZP_BYTE:104 [ render_current::current_cell#0 ] 163.38: zp ZP_BYTE:9 [ render_current::l#4 render_current::l#1 ] 103.02: zp ZP_BYTE:8 [ render_current::ypos2#2 render_current::ypos2#0 render_current::ypos2#1 ] 100.18: zp ZP_WORD:102 [ render_current::screen_line#0 ] Uplift Scope [play_lock_current] 3,823.33: zp ZP_BYTE:50 [ play_lock_current::i#2 play_lock_current::i#3 play_lock_current::i#7 play_lock_current::i#9 ] 1,478.5: zp ZP_BYTE:51 [ play_lock_current::col#2 play_lock_current::col#0 play_lock_current::col#1 ] 1,401.4: zp ZP_BYTE:52 [ play_lock_current::c#2 play_lock_current::c#1 ] 233.67: zp ZP_BYTE:131 [ play_lock_current::i#1 ] 117.83: zp ZP_BYTE:49 [ play_lock_current::l#6 play_lock_current::l#1 ] 110.2: zp ZP_WORD:129 [ play_lock_current::playfield_line#0 ] 82.23: zp ZP_BYTE:48 [ play_lock_current::ypos2#2 play_lock_current::ypos2#0 play_lock_current::ypos2#1 ] Uplift Scope [play_remove_lines] 1,915.77: zp ZP_BYTE:44 [ play_remove_lines::r#2 play_remove_lines::r#3 play_remove_lines::r#1 ] 1,903.43: zp ZP_BYTE:47 [ play_remove_lines::w#6 play_remove_lines::w#4 play_remove_lines::w#12 play_remove_lines::w#11 play_remove_lines::w#1 play_remove_lines::w#2 play_remove_lines::w#3 ] 1,751.75: zp ZP_BYTE:45 [ play_remove_lines::x#2 play_remove_lines::x#1 ] 821: zp ZP_BYTE:46 [ play_remove_lines::full#4 play_remove_lines::full#2 ] 600.6: zp ZP_BYTE:128 [ play_remove_lines::c#0 ] 165.93: zp ZP_BYTE:43 [ play_remove_lines::y#8 play_remove_lines::y#1 ] -Uplift Scope [] 5,895.76: zp ZP_BYTE:59 [ 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 ] 74.29: zp ZP_BYTE:7 [ current_piece_char#63 current_piece_char#83 current_piece_char#84 ] 61.29: zp ZP_WORD:5 [ current_piece_gfx#53 current_piece_gfx#95 current_piece_gfx#96 ] 32.62: zp ZP_WORD:37 [ current_piece_gfx#27 current_piece_gfx#10 current_piece_gfx#15 current_piece_gfx#17 current_piece_gfx#4 current_piece_gfx#14 ] 27.62: zp ZP_BYTE:40 [ current_piece_char#21 current_piece_char#16 current_piece_char#11 current_piece_char#13 ] 26: zp ZP_WORD:20 [ current_piece#12 current_piece#73 current_piece#74 current_piece#75 current_piece#76 ] 21.5: zp ZP_BYTE:3 [ current_ypos#10 current_ypos#79 current_ypos#80 ] 20: zp ZP_BYTE:147 [ keyboard_modifiers#5 ] 20: zp ZP_BYTE:163 [ irq_sprite_ypos#2 ] 20: zp ZP_BYTE:164 [ irq_sprite_ptr#2 ] 20: zp ZP_BYTE:166 [ irq_cnt#13 ] 20: zp ZP_BYTE:167 [ irq_sprite_ypos#1 ] 20: zp ZP_BYTE:168 [ irq_sprite_ptr#1 ] 18.48: zp ZP_BYTE:39 [ current_xpos#34 current_xpos#11 current_xpos#20 current_xpos#24 current_xpos#5 current_xpos#16 current_xpos#3 ] 14.91: zp ZP_WORD:34 [ current_piece#20 current_piece#77 current_piece#16 current_piece#10 current_piece#72 ] 14.1: zp ZP_BYTE:4 [ current_xpos#48 current_xpos#105 current_xpos#106 ] 11.67: zp ZP_BYTE:33 [ current_ypos#30 current_ypos#22 current_ypos#14 current_ypos#19 current_ypos#1 ] 11.6: zp ZP_BYTE:56 [ keyboard_modifiers#13 keyboard_modifiers#4 keyboard_modifiers#12 keyboard_modifiers#3 keyboard_modifiers#11 ] 8.96: zp ZP_BYTE:36 [ current_orientation#29 current_orientation#10 current_orientation#19 current_orientation#4 current_orientation#14 ] 8.33: zp ZP_BYTE:82 [ irq_raster_next#12 irq_raster_next#2 irq_raster_next#1 ] 4: zp ZP_BYTE:162 [ irq_cnt#1 ] 2.35: zp ZP_BYTE:2 [ current_movedown_counter#12 current_movedown_counter#10 current_movedown_counter#1 ] 1: zp ZP_BYTE:85 [ irq_sprite_ypos#0 ] 0.33: zp ZP_BYTE:86 [ irq_sprite_ptr#0 ] 0.29: zp ZP_BYTE:87 [ irq_cnt#0 ] 0.25: zp ZP_BYTE:84 [ irq_raster_next#0 ] +Uplift Scope [] 5,895.76: zp ZP_BYTE:59 [ 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 ] 74.29: zp ZP_BYTE:7 [ current_piece_char#62 current_piece_char#87 current_piece_char#88 ] 61.29: zp ZP_WORD:5 [ current_piece_gfx#52 current_piece_gfx#99 current_piece_gfx#100 ] 32.62: zp ZP_WORD:37 [ current_piece_gfx#26 current_piece_gfx#20 current_piece_gfx#14 current_piece_gfx#16 current_piece_gfx#3 current_piece_gfx#1 ] 27.62: zp ZP_BYTE:40 [ current_piece_char#20 current_piece_char#15 current_piece_char#1 current_piece_char#12 ] 26: zp ZP_WORD:20 [ current_piece#12 current_piece#73 current_piece#74 current_piece#75 current_piece#76 ] 21.5: zp ZP_BYTE:3 [ current_ypos#9 current_ypos#83 current_ypos#84 ] 20: zp ZP_BYTE:147 [ keyboard_modifiers#5 ] 20: zp ZP_BYTE:163 [ irq_sprite_ypos#2 ] 20: zp ZP_BYTE:164 [ irq_sprite_ptr#2 ] 20: zp ZP_BYTE:166 [ irq_cnt#13 ] 20: zp ZP_BYTE:167 [ irq_sprite_ypos#1 ] 20: zp ZP_BYTE:168 [ irq_sprite_ptr#1 ] 18.48: zp ZP_BYTE:39 [ current_xpos#33 current_xpos#10 current_xpos#19 current_xpos#23 current_xpos#4 current_xpos#1 current_xpos#2 ] 14.91: zp ZP_WORD:34 [ current_piece#20 current_piece#77 current_piece#16 current_piece#10 current_piece#72 ] 14.1: zp ZP_BYTE:4 [ current_xpos#47 current_xpos#109 current_xpos#110 ] 11.67: zp ZP_BYTE:33 [ current_ypos#29 current_ypos#21 current_ypos#13 current_ypos#18 current_ypos#0 ] 11.6: zp ZP_BYTE:56 [ keyboard_modifiers#13 keyboard_modifiers#4 keyboard_modifiers#12 keyboard_modifiers#3 keyboard_modifiers#11 ] 8.96: zp ZP_BYTE:36 [ current_orientation#29 current_orientation#10 current_orientation#19 current_orientation#4 current_orientation#14 ] 8.33: zp ZP_BYTE:82 [ irq_raster_next#12 irq_raster_next#2 irq_raster_next#1 ] 4: zp ZP_BYTE:162 [ irq_cnt#1 ] 2.35: zp ZP_BYTE:2 [ current_movedown_counter#12 current_movedown_counter#10 current_movedown_counter#1 ] 1: zp ZP_BYTE:85 [ irq_sprite_ypos#0 ] 0.33: zp ZP_BYTE:86 [ irq_sprite_ptr#0 ] 0.29: zp ZP_BYTE:87 [ irq_cnt#0 ] 0.25: zp ZP_BYTE:84 [ irq_raster_next#0 ] Uplift Scope [render_playfield] 2,254.5: zp ZP_WORD:15 [ render_playfield::screen_line#2 render_playfield::screen_line#0 render_playfield::screen_line#1 ] 2,002: zp ZP_BYTE:17 [ render_playfield::c#2 render_playfield::c#1 ] 1,522.6: zp ZP_BYTE:14 [ render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 ] 202: zp ZP_BYTE:105 [ render_playfield::$2 ] 185.17: zp ZP_BYTE:13 [ render_playfield::l#2 render_playfield::l#1 ] Uplift Scope [render_screen_original] 779.94: zp ZP_BYTE:79 [ render_screen_original::x#7 render_screen_original::x#5 render_screen_original::x#4 render_screen_original::x#1 render_screen_original::x#2 render_screen_original::x#3 ] 676.1: zp ZP_WORD:77 [ render_screen_original::screen#6 render_screen_original::screen#5 render_screen_original::screen#4 render_screen_original::screen#7 render_screen_original::screen#11 render_screen_original::screen#1 render_screen_original::screen#2 ] 580.75: zp ZP_BYTE:76 [ render_screen_original::c#2 render_screen_original::c#0 render_screen_original::c#1 ] 233.98: zp ZP_WORD:74 [ render_screen_original::orig#2 render_screen_original::orig#5 render_screen_original::orig#1 ] 17.5: zp ZP_BYTE:73 [ render_screen_original::y#8 render_screen_original::y#1 ] Uplift Scope [render_init] 252.5: zp ZP_BYTE:72 [ render_init::c#2 render_init::c#1 ] 202: zp ZP_WORD:156 [ render_init::$18 ] 27.83: zp ZP_WORD:69 [ render_init::line#4 render_init::line#1 ] 24.75: zp ZP_BYTE:66 [ render_init::i#2 render_init::i#1 ] 22: zp ZP_BYTE:155 [ render_init::$11 ] 19.64: zp ZP_BYTE:71 [ render_init::l#4 render_init::l#1 ] 18.33: zp ZP_WORD:67 [ render_init::li#2 render_init::li#1 ] @@ -11817,7 +11849,7 @@ Uplifting [play_lock_current] best 585839 combination zp ZP_BYTE:50 [ play_lock_ Limited combination testing to 100 combinations of 729 possible. Uplifting [play_remove_lines] best 572139 combination reg byte y [ play_remove_lines::r#2 play_remove_lines::r#3 play_remove_lines::r#1 ] reg byte x [ play_remove_lines::w#6 play_remove_lines::w#4 play_remove_lines::w#12 play_remove_lines::w#11 play_remove_lines::w#1 play_remove_lines::w#2 play_remove_lines::w#3 ] zp ZP_BYTE:45 [ play_remove_lines::x#2 play_remove_lines::x#1 ] zp ZP_BYTE:46 [ play_remove_lines::full#4 play_remove_lines::full#2 ] zp ZP_BYTE:128 [ play_remove_lines::c#0 ] zp ZP_BYTE:43 [ play_remove_lines::y#8 play_remove_lines::y#1 ] Limited combination testing to 100 combinations of 1728 possible. -Uplifting [] best 572102 combination zp ZP_BYTE:59 [ 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:7 [ current_piece_char#63 current_piece_char#83 current_piece_char#84 ] zp ZP_WORD:5 [ current_piece_gfx#53 current_piece_gfx#95 current_piece_gfx#96 ] zp ZP_WORD:37 [ current_piece_gfx#27 current_piece_gfx#10 current_piece_gfx#15 current_piece_gfx#17 current_piece_gfx#4 current_piece_gfx#14 ] zp ZP_BYTE:40 [ current_piece_char#21 current_piece_char#16 current_piece_char#11 current_piece_char#13 ] zp ZP_WORD:20 [ current_piece#12 current_piece#73 current_piece#74 current_piece#75 current_piece#76 ] reg byte x [ current_ypos#10 current_ypos#79 current_ypos#80 ] reg byte a [ keyboard_modifiers#5 ] zp ZP_BYTE:163 [ irq_sprite_ypos#2 ] zp ZP_BYTE:164 [ irq_sprite_ptr#2 ] zp ZP_BYTE:166 [ irq_cnt#13 ] zp ZP_BYTE:167 [ irq_sprite_ypos#1 ] zp ZP_BYTE:168 [ irq_sprite_ptr#1 ] zp ZP_BYTE:39 [ current_xpos#34 current_xpos#11 current_xpos#20 current_xpos#24 current_xpos#5 current_xpos#16 current_xpos#3 ] zp ZP_WORD:34 [ current_piece#20 current_piece#77 current_piece#16 current_piece#10 current_piece#72 ] zp ZP_BYTE:4 [ current_xpos#48 current_xpos#105 current_xpos#106 ] zp ZP_BYTE:33 [ current_ypos#30 current_ypos#22 current_ypos#14 current_ypos#19 current_ypos#1 ] zp ZP_BYTE:56 [ keyboard_modifiers#13 keyboard_modifiers#4 keyboard_modifiers#12 keyboard_modifiers#3 keyboard_modifiers#11 ] zp ZP_BYTE:36 [ current_orientation#29 current_orientation#10 current_orientation#19 current_orientation#4 current_orientation#14 ] zp ZP_BYTE:82 [ irq_raster_next#12 irq_raster_next#2 irq_raster_next#1 ] zp ZP_BYTE:162 [ irq_cnt#1 ] zp ZP_BYTE:2 [ current_movedown_counter#12 current_movedown_counter#10 current_movedown_counter#1 ] zp ZP_BYTE:85 [ irq_sprite_ypos#0 ] zp ZP_BYTE:86 [ irq_sprite_ptr#0 ] zp ZP_BYTE:87 [ irq_cnt#0 ] zp ZP_BYTE:84 [ irq_raster_next#0 ] +Uplifting [] best 572102 combination zp ZP_BYTE:59 [ 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:7 [ current_piece_char#62 current_piece_char#87 current_piece_char#88 ] zp ZP_WORD:5 [ current_piece_gfx#52 current_piece_gfx#99 current_piece_gfx#100 ] zp ZP_WORD:37 [ current_piece_gfx#26 current_piece_gfx#20 current_piece_gfx#14 current_piece_gfx#16 current_piece_gfx#3 current_piece_gfx#1 ] zp ZP_BYTE:40 [ current_piece_char#20 current_piece_char#15 current_piece_char#1 current_piece_char#12 ] zp ZP_WORD:20 [ current_piece#12 current_piece#73 current_piece#74 current_piece#75 current_piece#76 ] reg byte x [ current_ypos#9 current_ypos#83 current_ypos#84 ] reg byte a [ keyboard_modifiers#5 ] zp ZP_BYTE:163 [ irq_sprite_ypos#2 ] zp ZP_BYTE:164 [ irq_sprite_ptr#2 ] zp ZP_BYTE:166 [ irq_cnt#13 ] zp ZP_BYTE:167 [ irq_sprite_ypos#1 ] zp ZP_BYTE:168 [ irq_sprite_ptr#1 ] zp ZP_BYTE:39 [ current_xpos#33 current_xpos#10 current_xpos#19 current_xpos#23 current_xpos#4 current_xpos#1 current_xpos#2 ] zp ZP_WORD:34 [ current_piece#20 current_piece#77 current_piece#16 current_piece#10 current_piece#72 ] zp ZP_BYTE:4 [ current_xpos#47 current_xpos#109 current_xpos#110 ] zp ZP_BYTE:33 [ current_ypos#29 current_ypos#21 current_ypos#13 current_ypos#18 current_ypos#0 ] zp ZP_BYTE:56 [ keyboard_modifiers#13 keyboard_modifiers#4 keyboard_modifiers#12 keyboard_modifiers#3 keyboard_modifiers#11 ] zp ZP_BYTE:36 [ current_orientation#29 current_orientation#10 current_orientation#19 current_orientation#4 current_orientation#14 ] zp ZP_BYTE:82 [ irq_raster_next#12 irq_raster_next#2 irq_raster_next#1 ] zp ZP_BYTE:162 [ irq_cnt#1 ] zp ZP_BYTE:2 [ current_movedown_counter#12 current_movedown_counter#10 current_movedown_counter#1 ] zp ZP_BYTE:85 [ irq_sprite_ypos#0 ] zp ZP_BYTE:86 [ irq_sprite_ptr#0 ] zp ZP_BYTE:87 [ irq_cnt#0 ] zp ZP_BYTE:84 [ irq_raster_next#0 ] Limited combination testing to 100 combinations of 20736 possible. Uplifting [render_playfield] best 562702 combination zp ZP_WORD:15 [ render_playfield::screen_line#2 render_playfield::screen_line#0 render_playfield::screen_line#1 ] reg byte x [ render_playfield::c#2 render_playfield::c#1 ] zp ZP_BYTE:14 [ render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 ] reg byte a [ render_playfield::$2 ] zp ZP_BYTE:13 [ render_playfield::l#2 render_playfield::l#1 ] Uplifting [render_screen_original] best 559602 combination reg byte x [ render_screen_original::x#7 render_screen_original::x#5 render_screen_original::x#4 render_screen_original::x#1 render_screen_original::x#2 render_screen_original::x#3 ] zp ZP_WORD:77 [ render_screen_original::screen#6 render_screen_original::screen#5 render_screen_original::screen#4 render_screen_original::screen#7 render_screen_original::screen#11 render_screen_original::screen#1 render_screen_original::screen#2 ] reg byte y [ render_screen_original::c#2 render_screen_original::c#0 render_screen_original::c#1 ] zp ZP_WORD:74 [ render_screen_original::orig#2 render_screen_original::orig#5 render_screen_original::orig#1 ] zp ZP_BYTE:73 [ render_screen_original::y#8 render_screen_original::y#1 ] @@ -11893,10 +11925,10 @@ Attempting to uplift remaining variables inzp ZP_BYTE:8 [ render_current::ypos2# Uplifting [render_current] best 538994 combination zp ZP_BYTE:8 [ render_current::ypos2#2 render_current::ypos2#0 render_current::ypos2#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:48 [ play_lock_current::ypos2#2 play_lock_current::ypos2#0 play_lock_current::ypos2#1 ] Uplifting [play_lock_current] best 538994 combination zp ZP_BYTE:48 [ play_lock_current::ypos2#2 play_lock_current::ypos2#0 play_lock_current::ypos2#1 ] -Attempting to uplift remaining variables inzp ZP_BYTE:7 [ current_piece_char#63 current_piece_char#83 current_piece_char#84 ] -Uplifting [] best 538994 combination zp ZP_BYTE:7 [ current_piece_char#63 current_piece_char#83 current_piece_char#84 ] -Attempting to uplift remaining variables inzp ZP_BYTE:40 [ current_piece_char#21 current_piece_char#16 current_piece_char#11 current_piece_char#13 ] -Uplifting [] best 538994 combination zp ZP_BYTE:40 [ current_piece_char#21 current_piece_char#16 current_piece_char#11 current_piece_char#13 ] +Attempting to uplift remaining variables inzp ZP_BYTE:7 [ current_piece_char#62 current_piece_char#87 current_piece_char#88 ] +Uplifting [] best 538994 combination zp ZP_BYTE:7 [ current_piece_char#62 current_piece_char#87 current_piece_char#88 ] +Attempting to uplift remaining variables inzp ZP_BYTE:40 [ current_piece_char#20 current_piece_char#15 current_piece_char#1 current_piece_char#12 ] +Uplifting [] best 538994 combination zp ZP_BYTE:40 [ current_piece_char#20 current_piece_char#15 current_piece_char#1 current_piece_char#12 ] Attempting to uplift remaining variables inzp ZP_BYTE:163 [ irq_sprite_ypos#2 ] Uplifting [] best 538994 combination zp ZP_BYTE:163 [ irq_sprite_ypos#2 ] Attempting to uplift remaining variables inzp ZP_BYTE:164 [ irq_sprite_ptr#2 ] @@ -11909,20 +11941,20 @@ Attempting to uplift remaining variables inzp ZP_BYTE:168 [ irq_sprite_ptr#1 ] Uplifting [] best 538994 combination zp ZP_BYTE:168 [ irq_sprite_ptr#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:71 [ render_init::l#4 render_init::l#1 ] Uplifting [render_init] best 538994 combination zp ZP_BYTE:71 [ render_init::l#4 render_init::l#1 ] -Attempting to uplift remaining variables inzp ZP_BYTE:39 [ current_xpos#34 current_xpos#11 current_xpos#20 current_xpos#24 current_xpos#5 current_xpos#16 current_xpos#3 ] -Uplifting [] best 538994 combination zp ZP_BYTE:39 [ current_xpos#34 current_xpos#11 current_xpos#20 current_xpos#24 current_xpos#5 current_xpos#16 current_xpos#3 ] +Attempting to uplift remaining variables inzp ZP_BYTE:39 [ current_xpos#33 current_xpos#10 current_xpos#19 current_xpos#23 current_xpos#4 current_xpos#1 current_xpos#2 ] +Uplifting [] best 538994 combination zp ZP_BYTE:39 [ current_xpos#33 current_xpos#10 current_xpos#19 current_xpos#23 current_xpos#4 current_xpos#1 current_xpos#2 ] Attempting to uplift remaining variables inzp ZP_BYTE:22 [ play_collision::orientation#4 play_collision::orientation#0 play_collision::orientation#1 play_collision::orientation#2 play_collision::orientation#3 ] Uplifting [play_collision] best 538981 combination reg byte x [ play_collision::orientation#4 play_collision::orientation#0 play_collision::orientation#1 play_collision::orientation#2 play_collision::orientation#3 ] Attempting to uplift remaining variables inzp ZP_BYTE:73 [ render_screen_original::y#8 render_screen_original::y#1 ] Uplifting [render_screen_original] best 538981 combination zp ZP_BYTE:73 [ render_screen_original::y#8 render_screen_original::y#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:65 [ sprites_init::xpos#2 sprites_init::xpos#1 ] Uplifting [sprites_init] best 538981 combination zp ZP_BYTE:65 [ sprites_init::xpos#2 sprites_init::xpos#1 ] -Attempting to uplift remaining variables inzp ZP_BYTE:4 [ current_xpos#48 current_xpos#105 current_xpos#106 ] -Uplifting [] best 538981 combination zp ZP_BYTE:4 [ current_xpos#48 current_xpos#105 current_xpos#106 ] +Attempting to uplift remaining variables inzp ZP_BYTE:4 [ current_xpos#47 current_xpos#109 current_xpos#110 ] +Uplifting [] best 538981 combination zp ZP_BYTE:4 [ current_xpos#47 current_xpos#109 current_xpos#110 ] Attempting to uplift remaining variables inzp ZP_BYTE:63 [ play_init::idx#2 play_init::idx#1 ] Uplifting [play_init] best 538981 combination zp ZP_BYTE:63 [ play_init::idx#2 play_init::idx#1 ] -Attempting to uplift remaining variables inzp ZP_BYTE:33 [ current_ypos#30 current_ypos#22 current_ypos#14 current_ypos#19 current_ypos#1 ] -Uplifting [] best 538981 combination zp ZP_BYTE:33 [ current_ypos#30 current_ypos#22 current_ypos#14 current_ypos#19 current_ypos#1 ] +Attempting to uplift remaining variables inzp ZP_BYTE:33 [ current_ypos#29 current_ypos#21 current_ypos#13 current_ypos#18 current_ypos#0 ] +Uplifting [] best 538981 combination zp ZP_BYTE:33 [ current_ypos#29 current_ypos#21 current_ypos#13 current_ypos#18 current_ypos#0 ] Attempting to uplift remaining variables inzp ZP_BYTE:56 [ keyboard_modifiers#13 keyboard_modifiers#4 keyboard_modifiers#12 keyboard_modifiers#3 keyboard_modifiers#11 ] Uplifting [] best 538970 combination reg byte x [ keyboard_modifiers#13 keyboard_modifiers#4 keyboard_modifiers#12 keyboard_modifiers#3 keyboard_modifiers#11 ] Attempting to uplift remaining variables inzp ZP_BYTE:23 [ play_collision::ypos#4 play_collision::ypos#0 play_collision::ypos#1 play_collision::ypos#2 play_collision::ypos#3 ] @@ -12002,7 +12034,7 @@ Uplifting [] best 538713 combination zp ZP_BYTE:84 [ irq_raster_next#0 ] Attempting to uplift remaining variables inzp ZP_BYTE:124 [ play_spawn_current::$3 ] Uplifting [play_spawn_current] best 538713 combination zp ZP_BYTE:124 [ play_spawn_current::$3 ] Coalescing zero page register with common assignment [ zp ZP_WORD:20 [ current_piece#12 current_piece#73 current_piece#74 current_piece#75 current_piece#76 ] ] with [ zp ZP_WORD:110 [ play_collision::piece_gfx#0 ] ] - score: 1 -Coalescing zero page register with common assignment [ zp ZP_BYTE:33 [ current_ypos#30 current_ypos#22 current_ypos#14 current_ypos#19 current_ypos#1 ] ] with [ zp ZP_BYTE:48 [ play_lock_current::ypos2#2 play_lock_current::ypos2#0 play_lock_current::ypos2#1 ] ] - score: 1 +Coalescing zero page register with common assignment [ zp ZP_BYTE:33 [ current_ypos#29 current_ypos#21 current_ypos#13 current_ypos#18 current_ypos#0 ] ] with [ zp ZP_BYTE:48 [ play_lock_current::ypos2#2 play_lock_current::ypos2#0 play_lock_current::ypos2#1 ] ] - score: 1 Coalescing zero page register with common assignment [ zp ZP_BYTE:82 [ irq_raster_next#12 irq_raster_next#2 irq_raster_next#1 ] ] with [ zp ZP_BYTE:84 [ irq_raster_next#0 ] ] - score: 1 Coalescing zero page register with common assignment [ zp ZP_BYTE:85 [ irq_sprite_ypos#0 ] ] with [ zp ZP_BYTE:163 [ irq_sprite_ypos#2 ] ] - score: 1 Coalescing zero page register with common assignment [ zp ZP_BYTE:86 [ irq_sprite_ptr#0 ] ] with [ zp ZP_BYTE:164 [ irq_sprite_ptr#2 ] ] - score: 1 @@ -12015,26 +12047,26 @@ Coalescing zero page register [ zp ZP_BYTE:2 [ current_movedown_counter#12 curre Coalescing zero page register [ zp ZP_BYTE:2 [ current_movedown_counter#12 current_movedown_counter#10 current_movedown_counter#1 play_remove_lines::y#8 play_remove_lines::y#1 play_lock_current::l#6 play_lock_current::l#1 play_init::idx#2 play_init::idx#1 sprites_init::xpos#2 sprites_init::xpos#1 ] ] with [ zp ZP_BYTE:71 [ render_init::l#4 render_init::l#1 ] ] Coalescing zero page register [ zp ZP_BYTE:2 [ current_movedown_counter#12 current_movedown_counter#10 current_movedown_counter#1 play_remove_lines::y#8 play_remove_lines::y#1 play_lock_current::l#6 play_lock_current::l#1 play_init::idx#2 play_init::idx#1 sprites_init::xpos#2 sprites_init::xpos#1 render_init::l#4 render_init::l#1 ] ] with [ zp ZP_BYTE:73 [ render_screen_original::y#8 render_screen_original::y#1 ] ] Coalescing zero page register [ zp ZP_BYTE:2 [ current_movedown_counter#12 current_movedown_counter#10 current_movedown_counter#1 play_remove_lines::y#8 play_remove_lines::y#1 play_lock_current::l#6 play_lock_current::l#1 play_init::idx#2 play_init::idx#1 sprites_init::xpos#2 sprites_init::xpos#1 render_init::l#4 render_init::l#1 render_screen_original::y#8 render_screen_original::y#1 ] ] with [ zp ZP_BYTE:124 [ play_spawn_current::$3 ] ] -Coalescing zero page register [ zp ZP_BYTE:4 [ current_xpos#48 current_xpos#105 current_xpos#106 ] ] with [ zp ZP_BYTE:13 [ render_playfield::l#2 render_playfield::l#1 ] ] -Coalescing zero page register [ zp ZP_BYTE:4 [ current_xpos#48 current_xpos#105 current_xpos#106 render_playfield::l#2 render_playfield::l#1 ] ] with [ zp ZP_BYTE:19 [ play_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#2 ] ] -Coalescing zero page register [ zp ZP_BYTE:4 [ current_xpos#48 current_xpos#105 current_xpos#106 render_playfield::l#2 render_playfield::l#1 play_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#2 ] ] with [ zp ZP_BYTE:45 [ play_remove_lines::x#2 play_remove_lines::x#1 ] ] -Coalescing zero page register [ zp ZP_BYTE:4 [ current_xpos#48 current_xpos#105 current_xpos#106 render_playfield::l#2 render_playfield::l#1 play_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#2 play_remove_lines::x#2 play_remove_lines::x#1 ] ] with [ zp ZP_BYTE:50 [ play_lock_current::i#2 play_lock_current::i#3 play_lock_current::i#7 play_lock_current::i#9 ] ] -Coalescing zero page register [ zp ZP_BYTE:4 [ current_xpos#48 current_xpos#105 current_xpos#106 render_playfield::l#2 render_playfield::l#1 play_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#2 play_remove_lines::x#2 play_remove_lines::x#1 play_lock_current::i#2 play_lock_current::i#3 play_lock_current::i#7 play_lock_current::i#9 ] ] with [ zp ZP_BYTE:53 [ keyboard_event_pressed::keycode#5 ] ] -Coalescing zero page register [ zp ZP_BYTE:4 [ current_xpos#48 current_xpos#105 current_xpos#106 render_playfield::l#2 render_playfield::l#1 play_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#2 play_remove_lines::x#2 play_remove_lines::x#1 play_lock_current::i#2 play_lock_current::i#3 play_lock_current::i#7 play_lock_current::i#9 keyboard_event_pressed::keycode#5 ] ] with [ zp ZP_BYTE:55 [ keyboard_event_scan::row#2 keyboard_event_scan::row#1 ] ] -Coalescing zero page register [ zp ZP_WORD:5 [ current_piece_gfx#53 current_piece_gfx#95 current_piece_gfx#96 ] ] with [ zp ZP_WORD:15 [ render_playfield::screen_line#2 render_playfield::screen_line#0 render_playfield::screen_line#1 ] ] -Coalescing zero page register [ zp ZP_WORD:5 [ current_piece_gfx#53 current_piece_gfx#95 current_piece_gfx#96 render_playfield::screen_line#2 render_playfield::screen_line#0 render_playfield::screen_line#1 ] ] with [ zp ZP_WORD:20 [ current_piece#12 current_piece#73 current_piece#74 current_piece#75 current_piece#76 play_collision::piece_gfx#0 ] ] -Coalescing zero page register [ zp ZP_WORD:5 [ current_piece_gfx#53 current_piece_gfx#95 current_piece_gfx#96 render_playfield::screen_line#2 render_playfield::screen_line#0 render_playfield::screen_line#1 current_piece#12 current_piece#73 current_piece#74 current_piece#75 current_piece#76 play_collision::piece_gfx#0 ] ] with [ zp ZP_WORD:61 [ play_init::pli#2 play_init::pli#1 ] ] -Coalescing zero page register [ zp ZP_WORD:5 [ current_piece_gfx#53 current_piece_gfx#95 current_piece_gfx#96 render_playfield::screen_line#2 render_playfield::screen_line#0 render_playfield::screen_line#1 current_piece#12 current_piece#73 current_piece#74 current_piece#75 current_piece#76 play_collision::piece_gfx#0 play_init::pli#2 play_init::pli#1 ] ] with [ zp ZP_WORD:67 [ render_init::li#2 render_init::li#1 ] ] -Coalescing zero page register [ zp ZP_WORD:5 [ current_piece_gfx#53 current_piece_gfx#95 current_piece_gfx#96 render_playfield::screen_line#2 render_playfield::screen_line#0 render_playfield::screen_line#1 current_piece#12 current_piece#73 current_piece#74 current_piece#75 current_piece#76 play_collision::piece_gfx#0 play_init::pli#2 play_init::pli#1 render_init::li#2 render_init::li#1 ] ] with [ zp ZP_WORD:69 [ render_init::line#4 render_init::line#1 ] ] -Coalescing zero page register [ zp ZP_WORD:5 [ current_piece_gfx#53 current_piece_gfx#95 current_piece_gfx#96 render_playfield::screen_line#2 render_playfield::screen_line#0 render_playfield::screen_line#1 current_piece#12 current_piece#73 current_piece#74 current_piece#75 current_piece#76 play_collision::piece_gfx#0 play_init::pli#2 play_init::pli#1 render_init::li#2 render_init::li#1 render_init::line#4 render_init::line#1 ] ] with [ zp ZP_WORD:74 [ render_screen_original::orig#2 render_screen_original::orig#5 render_screen_original::orig#1 ] ] -Coalescing zero page register [ zp ZP_WORD:5 [ current_piece_gfx#53 current_piece_gfx#95 current_piece_gfx#96 render_playfield::screen_line#2 render_playfield::screen_line#0 render_playfield::screen_line#1 current_piece#12 current_piece#73 current_piece#74 current_piece#75 current_piece#76 play_collision::piece_gfx#0 play_init::pli#2 play_init::pli#1 render_init::li#2 render_init::li#1 render_init::line#4 render_init::line#1 render_screen_original::orig#2 render_screen_original::orig#5 render_screen_original::orig#1 ] ] with [ zp ZP_WORD:80 [ fill::addr#2 fill::addr#1 ] ] -Coalescing zero page register [ zp ZP_WORD:5 [ current_piece_gfx#53 current_piece_gfx#95 current_piece_gfx#96 render_playfield::screen_line#2 render_playfield::screen_line#0 render_playfield::screen_line#1 current_piece#12 current_piece#73 current_piece#74 current_piece#75 current_piece#76 play_collision::piece_gfx#0 play_init::pli#2 play_init::pli#1 render_init::li#2 render_init::li#1 render_init::line#4 render_init::line#1 render_screen_original::orig#2 render_screen_original::orig#5 render_screen_original::orig#1 fill::addr#2 fill::addr#1 ] ] with [ zp ZP_WORD:129 [ play_lock_current::playfield_line#0 ] ] -Coalescing zero page register [ zp ZP_BYTE:7 [ current_piece_char#63 current_piece_char#83 current_piece_char#84 ] ] with [ zp ZP_BYTE:14 [ render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 ] ] -Coalescing zero page register [ zp ZP_BYTE:7 [ current_piece_char#63 current_piece_char#83 current_piece_char#84 render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 ] ] with [ zp ZP_BYTE:24 [ play_collision::xpos#5 play_collision::xpos#0 play_collision::xpos#1 play_collision::xpos#2 play_collision::xpos#3 ] ] -Coalescing zero page register [ zp ZP_BYTE:7 [ current_piece_char#63 current_piece_char#83 current_piece_char#84 render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 play_collision::xpos#5 play_collision::xpos#0 play_collision::xpos#1 play_collision::xpos#2 play_collision::xpos#3 ] ] with [ zp ZP_BYTE:46 [ play_remove_lines::full#4 play_remove_lines::full#2 ] ] -Coalescing zero page register [ zp ZP_BYTE:7 [ current_piece_char#63 current_piece_char#83 current_piece_char#84 render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 play_collision::xpos#5 play_collision::xpos#0 play_collision::xpos#1 play_collision::xpos#2 play_collision::xpos#3 play_remove_lines::full#4 play_remove_lines::full#2 ] ] with [ zp ZP_BYTE:51 [ play_lock_current::col#2 play_lock_current::col#0 play_lock_current::col#1 ] ] -Coalescing zero page register [ zp ZP_BYTE:7 [ current_piece_char#63 current_piece_char#83 current_piece_char#84 render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 play_collision::xpos#5 play_collision::xpos#0 play_collision::xpos#1 play_collision::xpos#2 play_collision::xpos#3 play_remove_lines::full#4 play_remove_lines::full#2 play_lock_current::col#2 play_lock_current::col#0 play_lock_current::col#1 ] ] with [ zp ZP_BYTE:58 [ 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 ] ] -Coalescing zero page register [ zp ZP_BYTE:7 [ current_piece_char#63 current_piece_char#83 current_piece_char#84 render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 play_collision::xpos#5 play_collision::xpos#0 play_collision::xpos#1 play_collision::xpos#2 play_collision::xpos#3 play_remove_lines::full#4 play_remove_lines::full#2 play_lock_current::col#2 play_lock_current::col#0 play_lock_current::col#1 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 ] ] with [ zp ZP_BYTE:133 [ keyboard_event_pressed::row_bits#0 ] ] +Coalescing zero page register [ zp ZP_BYTE:4 [ current_xpos#47 current_xpos#109 current_xpos#110 ] ] with [ zp ZP_BYTE:13 [ render_playfield::l#2 render_playfield::l#1 ] ] +Coalescing zero page register [ zp ZP_BYTE:4 [ current_xpos#47 current_xpos#109 current_xpos#110 render_playfield::l#2 render_playfield::l#1 ] ] with [ zp ZP_BYTE:19 [ play_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#2 ] ] +Coalescing zero page register [ zp ZP_BYTE:4 [ current_xpos#47 current_xpos#109 current_xpos#110 render_playfield::l#2 render_playfield::l#1 play_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#2 ] ] with [ zp ZP_BYTE:45 [ play_remove_lines::x#2 play_remove_lines::x#1 ] ] +Coalescing zero page register [ zp ZP_BYTE:4 [ current_xpos#47 current_xpos#109 current_xpos#110 render_playfield::l#2 render_playfield::l#1 play_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#2 play_remove_lines::x#2 play_remove_lines::x#1 ] ] with [ zp ZP_BYTE:50 [ play_lock_current::i#2 play_lock_current::i#3 play_lock_current::i#7 play_lock_current::i#9 ] ] +Coalescing zero page register [ zp ZP_BYTE:4 [ current_xpos#47 current_xpos#109 current_xpos#110 render_playfield::l#2 render_playfield::l#1 play_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#2 play_remove_lines::x#2 play_remove_lines::x#1 play_lock_current::i#2 play_lock_current::i#3 play_lock_current::i#7 play_lock_current::i#9 ] ] with [ zp ZP_BYTE:53 [ keyboard_event_pressed::keycode#5 ] ] +Coalescing zero page register [ zp ZP_BYTE:4 [ current_xpos#47 current_xpos#109 current_xpos#110 render_playfield::l#2 render_playfield::l#1 play_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#2 play_remove_lines::x#2 play_remove_lines::x#1 play_lock_current::i#2 play_lock_current::i#3 play_lock_current::i#7 play_lock_current::i#9 keyboard_event_pressed::keycode#5 ] ] with [ zp ZP_BYTE:55 [ keyboard_event_scan::row#2 keyboard_event_scan::row#1 ] ] +Coalescing zero page register [ zp ZP_WORD:5 [ current_piece_gfx#52 current_piece_gfx#99 current_piece_gfx#100 ] ] with [ zp ZP_WORD:15 [ render_playfield::screen_line#2 render_playfield::screen_line#0 render_playfield::screen_line#1 ] ] +Coalescing zero page register [ zp ZP_WORD:5 [ current_piece_gfx#52 current_piece_gfx#99 current_piece_gfx#100 render_playfield::screen_line#2 render_playfield::screen_line#0 render_playfield::screen_line#1 ] ] with [ zp ZP_WORD:20 [ current_piece#12 current_piece#73 current_piece#74 current_piece#75 current_piece#76 play_collision::piece_gfx#0 ] ] +Coalescing zero page register [ zp ZP_WORD:5 [ current_piece_gfx#52 current_piece_gfx#99 current_piece_gfx#100 render_playfield::screen_line#2 render_playfield::screen_line#0 render_playfield::screen_line#1 current_piece#12 current_piece#73 current_piece#74 current_piece#75 current_piece#76 play_collision::piece_gfx#0 ] ] with [ zp ZP_WORD:61 [ play_init::pli#2 play_init::pli#1 ] ] +Coalescing zero page register [ zp ZP_WORD:5 [ current_piece_gfx#52 current_piece_gfx#99 current_piece_gfx#100 render_playfield::screen_line#2 render_playfield::screen_line#0 render_playfield::screen_line#1 current_piece#12 current_piece#73 current_piece#74 current_piece#75 current_piece#76 play_collision::piece_gfx#0 play_init::pli#2 play_init::pli#1 ] ] with [ zp ZP_WORD:67 [ render_init::li#2 render_init::li#1 ] ] +Coalescing zero page register [ zp ZP_WORD:5 [ current_piece_gfx#52 current_piece_gfx#99 current_piece_gfx#100 render_playfield::screen_line#2 render_playfield::screen_line#0 render_playfield::screen_line#1 current_piece#12 current_piece#73 current_piece#74 current_piece#75 current_piece#76 play_collision::piece_gfx#0 play_init::pli#2 play_init::pli#1 render_init::li#2 render_init::li#1 ] ] with [ zp ZP_WORD:69 [ render_init::line#4 render_init::line#1 ] ] +Coalescing zero page register [ zp ZP_WORD:5 [ current_piece_gfx#52 current_piece_gfx#99 current_piece_gfx#100 render_playfield::screen_line#2 render_playfield::screen_line#0 render_playfield::screen_line#1 current_piece#12 current_piece#73 current_piece#74 current_piece#75 current_piece#76 play_collision::piece_gfx#0 play_init::pli#2 play_init::pli#1 render_init::li#2 render_init::li#1 render_init::line#4 render_init::line#1 ] ] with [ zp ZP_WORD:74 [ render_screen_original::orig#2 render_screen_original::orig#5 render_screen_original::orig#1 ] ] +Coalescing zero page register [ zp ZP_WORD:5 [ current_piece_gfx#52 current_piece_gfx#99 current_piece_gfx#100 render_playfield::screen_line#2 render_playfield::screen_line#0 render_playfield::screen_line#1 current_piece#12 current_piece#73 current_piece#74 current_piece#75 current_piece#76 play_collision::piece_gfx#0 play_init::pli#2 play_init::pli#1 render_init::li#2 render_init::li#1 render_init::line#4 render_init::line#1 render_screen_original::orig#2 render_screen_original::orig#5 render_screen_original::orig#1 ] ] with [ zp ZP_WORD:80 [ fill::addr#2 fill::addr#1 ] ] +Coalescing zero page register [ zp ZP_WORD:5 [ current_piece_gfx#52 current_piece_gfx#99 current_piece_gfx#100 render_playfield::screen_line#2 render_playfield::screen_line#0 render_playfield::screen_line#1 current_piece#12 current_piece#73 current_piece#74 current_piece#75 current_piece#76 play_collision::piece_gfx#0 play_init::pli#2 play_init::pli#1 render_init::li#2 render_init::li#1 render_init::line#4 render_init::line#1 render_screen_original::orig#2 render_screen_original::orig#5 render_screen_original::orig#1 fill::addr#2 fill::addr#1 ] ] with [ zp ZP_WORD:129 [ play_lock_current::playfield_line#0 ] ] +Coalescing zero page register [ zp ZP_BYTE:7 [ current_piece_char#62 current_piece_char#87 current_piece_char#88 ] ] with [ zp ZP_BYTE:14 [ render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 ] ] +Coalescing zero page register [ zp ZP_BYTE:7 [ current_piece_char#62 current_piece_char#87 current_piece_char#88 render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 ] ] with [ zp ZP_BYTE:24 [ play_collision::xpos#5 play_collision::xpos#0 play_collision::xpos#1 play_collision::xpos#2 play_collision::xpos#3 ] ] +Coalescing zero page register [ zp ZP_BYTE:7 [ current_piece_char#62 current_piece_char#87 current_piece_char#88 render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 play_collision::xpos#5 play_collision::xpos#0 play_collision::xpos#1 play_collision::xpos#2 play_collision::xpos#3 ] ] with [ zp ZP_BYTE:46 [ play_remove_lines::full#4 play_remove_lines::full#2 ] ] +Coalescing zero page register [ zp ZP_BYTE:7 [ current_piece_char#62 current_piece_char#87 current_piece_char#88 render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 play_collision::xpos#5 play_collision::xpos#0 play_collision::xpos#1 play_collision::xpos#2 play_collision::xpos#3 play_remove_lines::full#4 play_remove_lines::full#2 ] ] with [ zp ZP_BYTE:51 [ play_lock_current::col#2 play_lock_current::col#0 play_lock_current::col#1 ] ] +Coalescing zero page register [ zp ZP_BYTE:7 [ current_piece_char#62 current_piece_char#87 current_piece_char#88 render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 play_collision::xpos#5 play_collision::xpos#0 play_collision::xpos#1 play_collision::xpos#2 play_collision::xpos#3 play_remove_lines::full#4 play_remove_lines::full#2 play_lock_current::col#2 play_lock_current::col#0 play_lock_current::col#1 ] ] with [ zp ZP_BYTE:58 [ 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 ] ] +Coalescing zero page register [ zp ZP_BYTE:7 [ current_piece_char#62 current_piece_char#87 current_piece_char#88 render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 play_collision::xpos#5 play_collision::xpos#0 play_collision::xpos#1 play_collision::xpos#2 play_collision::xpos#3 play_remove_lines::full#4 play_remove_lines::full#2 play_lock_current::col#2 play_lock_current::col#0 play_lock_current::col#1 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 ] ] with [ zp ZP_BYTE:133 [ keyboard_event_pressed::row_bits#0 ] ] Coalescing zero page register [ zp ZP_BYTE:8 [ render_current::ypos2#2 render_current::ypos2#0 render_current::ypos2#1 ] ] with [ zp ZP_BYTE:25 [ play_collision::ypos2#2 play_collision::ypos2#0 play_collision::ypos2#1 ] ] Coalescing zero page register [ zp ZP_BYTE:8 [ render_current::ypos2#2 render_current::ypos2#0 render_current::ypos2#1 play_collision::ypos2#2 play_collision::ypos2#0 play_collision::ypos2#1 ] ] with [ zp ZP_BYTE:128 [ play_remove_lines::c#0 ] ] Coalescing zero page register [ zp ZP_BYTE:8 [ render_current::ypos2#2 render_current::ypos2#0 render_current::ypos2#1 play_collision::ypos2#2 play_collision::ypos2#0 play_collision::ypos2#1 play_remove_lines::c#0 ] ] with [ zp ZP_BYTE:131 [ play_lock_current::i#1 ] ] @@ -12048,19 +12080,19 @@ Coalescing zero page register [ zp ZP_BYTE:85 [ irq_sprite_ypos#0 irq_sprite_ypo Coalescing zero page register [ zp ZP_BYTE:86 [ irq_sprite_ptr#0 irq_sprite_ptr#2 ] ] with [ zp ZP_BYTE:168 [ irq_sprite_ptr#1 ] ] Coalescing zero page register [ zp ZP_BYTE:87 [ irq_cnt#0 irq_cnt#1 ] ] with [ zp ZP_BYTE:166 [ irq_cnt#13 ] ] Coalescing zero page register [ zp ZP_WORD:102 [ render_current::screen_line#0 ] ] with [ zp ZP_WORD:112 [ play_collision::playfield_line#0 ] ] -Allocated (was zp ZP_BYTE:4) zp ZP_BYTE:3 [ current_xpos#48 current_xpos#105 current_xpos#106 render_playfield::l#2 render_playfield::l#1 play_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#2 play_remove_lines::x#2 play_remove_lines::x#1 play_lock_current::i#2 play_lock_current::i#3 play_lock_current::i#7 play_lock_current::i#9 keyboard_event_pressed::keycode#5 keyboard_event_scan::row#2 keyboard_event_scan::row#1 ] -Allocated (was zp ZP_WORD:5) zp ZP_WORD:4 [ current_piece_gfx#53 current_piece_gfx#95 current_piece_gfx#96 render_playfield::screen_line#2 render_playfield::screen_line#0 render_playfield::screen_line#1 current_piece#12 current_piece#73 current_piece#74 current_piece#75 current_piece#76 play_collision::piece_gfx#0 play_init::pli#2 play_init::pli#1 render_init::li#2 render_init::li#1 render_init::line#4 render_init::line#1 render_screen_original::orig#2 render_screen_original::orig#5 render_screen_original::orig#1 fill::addr#2 fill::addr#1 play_lock_current::playfield_line#0 ] -Allocated (was zp ZP_BYTE:7) zp ZP_BYTE:6 [ current_piece_char#63 current_piece_char#83 current_piece_char#84 render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 play_collision::xpos#5 play_collision::xpos#0 play_collision::xpos#1 play_collision::xpos#2 play_collision::xpos#3 play_remove_lines::full#4 play_remove_lines::full#2 play_lock_current::col#2 play_lock_current::col#0 play_lock_current::col#1 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 keyboard_event_pressed::row_bits#0 ] +Allocated (was zp ZP_BYTE:4) zp ZP_BYTE:3 [ current_xpos#47 current_xpos#109 current_xpos#110 render_playfield::l#2 render_playfield::l#1 play_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#2 play_remove_lines::x#2 play_remove_lines::x#1 play_lock_current::i#2 play_lock_current::i#3 play_lock_current::i#7 play_lock_current::i#9 keyboard_event_pressed::keycode#5 keyboard_event_scan::row#2 keyboard_event_scan::row#1 ] +Allocated (was zp ZP_WORD:5) zp ZP_WORD:4 [ current_piece_gfx#52 current_piece_gfx#99 current_piece_gfx#100 render_playfield::screen_line#2 render_playfield::screen_line#0 render_playfield::screen_line#1 current_piece#12 current_piece#73 current_piece#74 current_piece#75 current_piece#76 play_collision::piece_gfx#0 play_init::pli#2 play_init::pli#1 render_init::li#2 render_init::li#1 render_init::line#4 render_init::line#1 render_screen_original::orig#2 render_screen_original::orig#5 render_screen_original::orig#1 fill::addr#2 fill::addr#1 play_lock_current::playfield_line#0 ] +Allocated (was zp ZP_BYTE:7) zp ZP_BYTE:6 [ current_piece_char#62 current_piece_char#87 current_piece_char#88 render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 play_collision::xpos#5 play_collision::xpos#0 play_collision::xpos#1 play_collision::xpos#2 play_collision::xpos#3 play_remove_lines::full#4 play_remove_lines::full#2 play_lock_current::col#2 play_lock_current::col#0 play_lock_current::col#1 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 keyboard_event_pressed::row_bits#0 ] Allocated (was zp ZP_BYTE:8) zp ZP_BYTE:7 [ render_current::ypos2#2 render_current::ypos2#0 render_current::ypos2#1 play_collision::ypos2#2 play_collision::ypos2#0 play_collision::ypos2#1 play_remove_lines::c#0 play_lock_current::i#1 keyboard_event_scan::row_scan#0 ] Allocated (was zp ZP_BYTE:9) zp ZP_BYTE:8 [ render_current::l#4 render_current::l#1 play_collision::l#6 play_collision::l#1 ] Allocated (was zp ZP_BYTE:10) zp ZP_BYTE:9 [ render_current::i#4 render_current::i#3 render_current::i#8 render_current::i#10 render_current::i#1 play_collision::i#2 play_collision::i#3 play_collision::i#11 play_collision::i#13 ] Allocated (was zp ZP_BYTE:11) zp ZP_BYTE:10 [ render_current::xpos#2 render_current::xpos#0 render_current::xpos#1 play_collision::col#2 play_collision::col#9 play_collision::col#1 ] -Allocated (was zp ZP_BYTE:33) zp ZP_BYTE:11 [ current_ypos#30 current_ypos#22 current_ypos#14 current_ypos#19 current_ypos#1 play_lock_current::ypos2#2 play_lock_current::ypos2#0 play_lock_current::ypos2#1 ] +Allocated (was zp ZP_BYTE:33) zp ZP_BYTE:11 [ current_ypos#29 current_ypos#21 current_ypos#13 current_ypos#18 current_ypos#0 play_lock_current::ypos2#2 play_lock_current::ypos2#0 play_lock_current::ypos2#1 ] Allocated (was zp ZP_WORD:34) zp ZP_WORD:12 [ current_piece#20 current_piece#77 current_piece#16 current_piece#10 current_piece#72 render_screen_original::screen#6 render_screen_original::screen#5 render_screen_original::screen#4 render_screen_original::screen#7 render_screen_original::screen#11 render_screen_original::screen#1 render_screen_original::screen#2 render_init::$18 ] Allocated (was zp ZP_BYTE:36) zp ZP_BYTE:14 [ current_orientation#29 current_orientation#10 current_orientation#19 current_orientation#4 current_orientation#14 ] -Allocated (was zp ZP_WORD:37) zp ZP_WORD:15 [ current_piece_gfx#27 current_piece_gfx#10 current_piece_gfx#15 current_piece_gfx#17 current_piece_gfx#4 current_piece_gfx#14 ] -Allocated (was zp ZP_BYTE:39) zp ZP_BYTE:17 [ current_xpos#34 current_xpos#11 current_xpos#20 current_xpos#24 current_xpos#5 current_xpos#16 current_xpos#3 ] -Allocated (was zp ZP_BYTE:40) zp ZP_BYTE:18 [ current_piece_char#21 current_piece_char#16 current_piece_char#11 current_piece_char#13 ] +Allocated (was zp ZP_WORD:37) zp ZP_WORD:15 [ current_piece_gfx#26 current_piece_gfx#20 current_piece_gfx#14 current_piece_gfx#16 current_piece_gfx#3 current_piece_gfx#1 ] +Allocated (was zp ZP_BYTE:39) zp ZP_BYTE:17 [ current_xpos#33 current_xpos#10 current_xpos#19 current_xpos#23 current_xpos#4 current_xpos#1 current_xpos#2 ] +Allocated (was zp ZP_BYTE:40) zp ZP_BYTE:18 [ current_piece_char#20 current_piece_char#15 current_piece_char#1 current_piece_char#12 ] Allocated (was zp ZP_BYTE:59) zp ZP_BYTE:19 [ 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 ] Allocated (was zp ZP_BYTE:82) zp ZP_BYTE:20 [ irq_raster_next#12 irq_raster_next#2 irq_raster_next#1 irq_raster_next#0 ] Allocated (was zp ZP_BYTE:85) zp ZP_BYTE:21 [ irq_sprite_ypos#0 irq_sprite_ypos#2 irq_sprite_ypos#1 ] @@ -12162,21 +12194,21 @@ ASSEMBLER BEFORE OPTIMIZATION .label irq_cnt = $17 .label current_movedown_counter = 2 .label current_ypos = $b - .label current_xpos = $11 - .label current_orientation = $e .label current_piece_gfx = $f - .label current_piece = $c + .label current_xpos = $11 .label current_piece_char = $12 + .label current_orientation = $e + .label current_piece = $c .label current_piece_12 = 4 - .label current_xpos_48 = 3 - .label current_piece_gfx_53 = 4 - .label current_piece_char_63 = 6 - .label current_xpos_105 = 3 - .label current_xpos_106 = 3 - .label current_piece_gfx_95 = 4 - .label current_piece_gfx_96 = 4 - .label current_piece_char_83 = 6 - .label current_piece_char_84 = 6 + .label current_xpos_47 = 3 + .label current_piece_gfx_52 = 4 + .label current_piece_char_62 = 6 + .label current_xpos_109 = 3 + .label current_xpos_110 = 3 + .label current_piece_gfx_99 = 4 + .label current_piece_gfx_100 = 4 + .label current_piece_char_87 = 6 + .label current_piece_char_88 = 6 .label current_piece_73 = 4 .label current_piece_74 = 4 .label current_piece_75 = 4 @@ -12288,26 +12320,26 @@ main: { jmp b27 //SEG46 main::@27 b27: - //SEG47 [26] (byte~) current_ypos#79 ← (byte) current_ypos#19 -- vbuxx=vbuz1 + //SEG47 [26] (byte~) current_ypos#83 ← (byte) current_ypos#18 -- vbuxx=vbuz1 ldx current_ypos - //SEG48 [27] (byte~) current_xpos#105 ← (byte) current_xpos#24 -- vbuz1=vbuz2 + //SEG48 [27] (byte~) current_xpos#109 ← (byte) current_xpos#23 -- vbuz1=vbuz2 lda current_xpos - sta current_xpos_105 - //SEG49 [28] (byte*~) current_piece_gfx#95 ← (byte*) current_piece_gfx#17 -- pbuz1=pbuz2 + sta current_xpos_109 + //SEG49 [28] (byte*~) current_piece_gfx#99 ← (byte*) current_piece_gfx#16 -- pbuz1=pbuz2 lda current_piece_gfx - sta current_piece_gfx_95 + sta current_piece_gfx_99 lda current_piece_gfx+1 - sta current_piece_gfx_95+1 - //SEG50 [29] (byte~) current_piece_char#83 ← (byte) current_piece_char#13 -- vbuz1=vbuz2 + sta current_piece_gfx_99+1 + //SEG50 [29] (byte~) current_piece_char#87 ← (byte) current_piece_char#12 -- vbuz1=vbuz2 lda current_piece_char - sta current_piece_char_83 + sta current_piece_char_87 //SEG51 [30] call render_current //SEG52 [65] phi from main::@27 to render_current [phi:main::@27->render_current] render_current_from_b27: - //SEG53 [65] phi (byte) current_piece_char#63 = (byte~) current_piece_char#83 [phi:main::@27->render_current#0] -- register_copy - //SEG54 [65] phi (byte*) current_piece_gfx#53 = (byte*~) current_piece_gfx#95 [phi:main::@27->render_current#1] -- register_copy - //SEG55 [65] phi (byte) current_xpos#48 = (byte~) current_xpos#105 [phi:main::@27->render_current#2] -- register_copy - //SEG56 [65] phi (byte) current_ypos#10 = (byte~) current_ypos#79 [phi:main::@27->render_current#3] -- register_copy + //SEG53 [65] phi (byte) current_piece_char#62 = (byte~) current_piece_char#87 [phi:main::@27->render_current#0] -- register_copy + //SEG54 [65] phi (byte*) current_piece_gfx#52 = (byte*~) current_piece_gfx#99 [phi:main::@27->render_current#1] -- register_copy + //SEG55 [65] phi (byte) current_xpos#47 = (byte~) current_xpos#109 [phi:main::@27->render_current#2] -- register_copy + //SEG56 [65] phi (byte) current_ypos#9 = (byte~) current_ypos#83 [phi:main::@27->render_current#3] -- register_copy jsr render_current //SEG57 [31] (byte*~) current_piece#72 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) -- pbuz1=pptc1_derefidx_vbuz2 ldy play_spawn_current._3 @@ -12323,10 +12355,10 @@ main: { //SEG60 [32] phi (byte) keyboard_events_size#19 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@27->main::@1#1] -- vbuz1=vbuc1 lda #0 sta keyboard_events_size - //SEG61 [32] phi (byte) current_piece_char#16 = (byte) current_piece_char#13 [phi:main::@27->main::@1#2] -- register_copy - //SEG62 [32] phi (byte) current_ypos#22 = (byte) current_ypos#19 [phi:main::@27->main::@1#3] -- register_copy - //SEG63 [32] phi (byte) current_xpos#11 = (byte) current_xpos#24 [phi:main::@27->main::@1#4] -- register_copy - //SEG64 [32] phi (byte*) current_piece_gfx#10 = (byte*) current_piece_gfx#17 [phi:main::@27->main::@1#5] -- register_copy + //SEG61 [32] phi (byte) current_piece_char#15 = (byte) current_piece_char#12 [phi:main::@27->main::@1#2] -- register_copy + //SEG62 [32] phi (byte) current_ypos#21 = (byte) current_ypos#18 [phi:main::@27->main::@1#3] -- register_copy + //SEG63 [32] phi (byte) current_xpos#10 = (byte) current_xpos#23 [phi:main::@27->main::@1#4] -- register_copy + //SEG64 [32] phi (byte*) current_piece_gfx#20 = (byte*) current_piece_gfx#16 [phi:main::@27->main::@1#5] -- register_copy //SEG65 [32] phi (byte) current_orientation#10 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@27->main::@1#6] -- vbuz1=vbuc1 lda #0 sta current_orientation @@ -12430,26 +12462,26 @@ main: { jmp b34 //SEG105 main::@34 b34: - //SEG106 [59] (byte~) current_ypos#80 ← (byte) current_ypos#14 -- vbuxx=vbuz1 + //SEG106 [59] (byte~) current_ypos#84 ← (byte) current_ypos#13 -- vbuxx=vbuz1 ldx current_ypos - //SEG107 [60] (byte~) current_xpos#106 ← (byte) current_xpos#20 -- vbuz1=vbuz2 + //SEG107 [60] (byte~) current_xpos#110 ← (byte) current_xpos#19 -- vbuz1=vbuz2 lda current_xpos - sta current_xpos_106 - //SEG108 [61] (byte*~) current_piece_gfx#96 ← (byte*) current_piece_gfx#15 -- pbuz1=pbuz2 + sta current_xpos_110 + //SEG108 [61] (byte*~) current_piece_gfx#100 ← (byte*) current_piece_gfx#14 -- pbuz1=pbuz2 lda current_piece_gfx - sta current_piece_gfx_96 + sta current_piece_gfx_100 lda current_piece_gfx+1 - sta current_piece_gfx_96+1 - //SEG109 [62] (byte~) current_piece_char#84 ← (byte) current_piece_char#11 -- vbuz1=vbuz2 + sta current_piece_gfx_100+1 + //SEG109 [62] (byte~) current_piece_char#88 ← (byte) current_piece_char#1 -- vbuz1=vbuz2 lda current_piece_char - sta current_piece_char_84 + sta current_piece_char_88 //SEG110 [63] call render_current //SEG111 [65] phi from main::@34 to render_current [phi:main::@34->render_current] render_current_from_b34: - //SEG112 [65] phi (byte) current_piece_char#63 = (byte~) current_piece_char#84 [phi:main::@34->render_current#0] -- register_copy - //SEG113 [65] phi (byte*) current_piece_gfx#53 = (byte*~) current_piece_gfx#96 [phi:main::@34->render_current#1] -- register_copy - //SEG114 [65] phi (byte) current_xpos#48 = (byte~) current_xpos#106 [phi:main::@34->render_current#2] -- register_copy - //SEG115 [65] phi (byte) current_ypos#10 = (byte~) current_ypos#80 [phi:main::@34->render_current#3] -- register_copy + //SEG112 [65] phi (byte) current_piece_char#62 = (byte~) current_piece_char#88 [phi:main::@34->render_current#0] -- register_copy + //SEG113 [65] phi (byte*) current_piece_gfx#52 = (byte*~) current_piece_gfx#100 [phi:main::@34->render_current#1] -- register_copy + //SEG114 [65] phi (byte) current_xpos#47 = (byte~) current_xpos#110 [phi:main::@34->render_current#2] -- register_copy + //SEG115 [65] phi (byte) current_ypos#9 = (byte~) current_ypos#84 [phi:main::@34->render_current#3] -- register_copy jsr render_current jmp b10 //SEG116 main::@10 @@ -12460,10 +12492,10 @@ main: { b1_from_b10: //SEG119 [32] phi (byte) current_movedown_counter#12 = (byte) current_movedown_counter#10 [phi:main::@10->main::@1#0] -- register_copy //SEG120 [32] phi (byte) keyboard_events_size#19 = (byte) keyboard_events_size#16 [phi:main::@10->main::@1#1] -- register_copy - //SEG121 [32] phi (byte) current_piece_char#16 = (byte) current_piece_char#11 [phi:main::@10->main::@1#2] -- register_copy - //SEG122 [32] phi (byte) current_ypos#22 = (byte) current_ypos#14 [phi:main::@10->main::@1#3] -- register_copy - //SEG123 [32] phi (byte) current_xpos#11 = (byte) current_xpos#20 [phi:main::@10->main::@1#4] -- register_copy - //SEG124 [32] phi (byte*) current_piece_gfx#10 = (byte*) current_piece_gfx#15 [phi:main::@10->main::@1#5] -- register_copy + //SEG121 [32] phi (byte) current_piece_char#15 = (byte) current_piece_char#1 [phi:main::@10->main::@1#2] -- register_copy + //SEG122 [32] phi (byte) current_ypos#21 = (byte) current_ypos#13 [phi:main::@10->main::@1#3] -- register_copy + //SEG123 [32] phi (byte) current_xpos#10 = (byte) current_xpos#19 [phi:main::@10->main::@1#4] -- register_copy + //SEG124 [32] phi (byte*) current_piece_gfx#20 = (byte*) current_piece_gfx#14 [phi:main::@10->main::@1#5] -- register_copy //SEG125 [32] phi (byte) current_orientation#10 = (byte) current_orientation#19 [phi:main::@10->main::@1#6] -- register_copy //SEG126 [32] phi (byte*) current_piece#16 = (byte*) current_piece#10 [phi:main::@10->main::@1#7] -- register_copy jmp b1 @@ -12475,7 +12507,7 @@ render_current: { .label xpos = $a .label i = 9 .label l = 8 - //SEG128 [66] (byte) render_current::ypos2#0 ← (byte) current_ypos#10 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuxx_rol_1 + //SEG128 [66] (byte) render_current::ypos2#0 ← (byte) current_ypos#9 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuxx_rol_1 txa asl sta ypos2 @@ -12549,8 +12581,8 @@ render_current: { sta screen_line lda screen_lines+1,y sta screen_line+1 - //SEG153 [77] (byte) render_current::xpos#0 ← (byte) current_xpos#48 -- vbuz1=vbuz2 - lda current_xpos_48 + //SEG153 [77] (byte) render_current::xpos#0 ← (byte) current_xpos#47 -- vbuz1=vbuz2 + lda current_xpos_47 sta xpos //SEG154 [78] phi from render_current::@2 to render_current::@4 [phi:render_current::@2->render_current::@4] b4_from_b2: @@ -12567,9 +12599,9 @@ render_current: { jmp b4 //SEG162 render_current::@4 b4: - //SEG163 [79] (byte) render_current::current_cell#0 ← *((byte*) current_piece_gfx#53 + (byte) render_current::i#4) -- vbuaa=pbuz1_derefidx_vbuz2 + //SEG163 [79] (byte) render_current::current_cell#0 ← *((byte*) current_piece_gfx#52 + (byte) render_current::i#4) -- vbuaa=pbuz1_derefidx_vbuz2 ldy i - lda (current_piece_gfx_53),y + lda (current_piece_gfx_52),y //SEG164 [80] (byte) render_current::i#10 ← ++ (byte) render_current::i#4 -- vbuz1=_inc_vbuz1 inc i //SEG165 [81] if((byte) render_current::current_cell#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto render_current::@5 -- vbuaa_eq_0_then_la1 @@ -12585,8 +12617,8 @@ render_current: { jmp b10 //SEG168 render_current::@10 b10: - //SEG169 [83] *((byte*) render_current::screen_line#0 + (byte) render_current::xpos#2) ← (byte) current_piece_char#63 -- pbuz1_derefidx_vbuz2=vbuz3 - lda current_piece_char_63 + //SEG169 [83] *((byte*) render_current::screen_line#0 + (byte) render_current::xpos#2) ← (byte) current_piece_char#62 -- pbuz1_derefidx_vbuz2=vbuz3 + lda current_piece_char_62 ldy xpos sta (screen_line),y jmp b5 @@ -12693,7 +12725,7 @@ play_move_rotate: { //SEG207 [102] 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: - //SEG208 [102] phi (byte*) current_piece_gfx#15 = (byte*) current_piece_gfx#14 [phi:play_move_rotate::@14/play_move_rotate::@6->play_move_rotate::@return#0] -- register_copy + //SEG208 [102] phi (byte*) current_piece_gfx#14 = (byte*) current_piece_gfx#1 [phi:play_move_rotate::@14/play_move_rotate::@6->play_move_rotate::@return#0] -- register_copy //SEG209 [102] phi (byte) current_orientation#19 = (byte) current_orientation#14 [phi:play_move_rotate::@14/play_move_rotate::@6->play_move_rotate::@return#1] -- register_copy //SEG210 [102] phi (byte) play_move_rotate::return#1 = (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 @@ -12718,10 +12750,10 @@ play_move_rotate: { jmp b4 //SEG218 play_move_rotate::@4 b4: - //SEG219 [107] (byte) play_collision::xpos#3 ← (byte) current_xpos#20 -- vbuz1=vbuz2 + //SEG219 [107] (byte) play_collision::xpos#3 ← (byte) current_xpos#19 -- vbuz1=vbuz2 lda current_xpos sta play_collision.xpos - //SEG220 [108] (byte) play_collision::ypos#3 ← (byte) current_ypos#14 -- vbuyy=vbuz1 + //SEG220 [108] (byte) play_collision::ypos#3 ← (byte) current_ypos#13 -- vbuyy=vbuz1 ldy current_ypos //SEG221 [109] (byte) play_collision::orientation#3 ← (byte) play_move_rotate::orientation#3 -- vbuxx=vbuz1 ldx orientation @@ -12754,7 +12786,7 @@ play_move_rotate: { //SEG234 [115] (byte) current_orientation#4 ← (byte) play_move_rotate::orientation#3 -- vbuz1=vbuz2 lda orientation sta current_orientation - //SEG235 [116] (byte*) current_piece_gfx#4 ← (byte*) current_piece#10 + (byte) current_orientation#4 -- pbuz1=pbuz2_plus_vbuz3 + //SEG235 [116] (byte*) current_piece_gfx#3 ← (byte*) current_piece#10 + (byte) current_orientation#4 -- pbuz1=pbuz2_plus_vbuz3 lda current_orientation clc adc current_piece @@ -12764,7 +12796,7 @@ play_move_rotate: { sta current_piece_gfx+1 //SEG236 [102] phi from play_move_rotate::@11 to play_move_rotate::@return [phi:play_move_rotate::@11->play_move_rotate::@return] breturn_from_b11: - //SEG237 [102] phi (byte*) current_piece_gfx#15 = (byte*) current_piece_gfx#4 [phi:play_move_rotate::@11->play_move_rotate::@return#0] -- register_copy + //SEG237 [102] phi (byte*) current_piece_gfx#14 = (byte*) current_piece_gfx#3 [phi:play_move_rotate::@11->play_move_rotate::@return#0] -- register_copy //SEG238 [102] phi (byte) current_orientation#19 = (byte) current_orientation#4 [phi:play_move_rotate::@11->play_move_rotate::@return#1] -- register_copy //SEG239 [102] phi (byte) play_move_rotate::return#1 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_move_rotate::@11->play_move_rotate::@return#2] -- vbuaa=vbuc1 lda #1 @@ -12961,11 +12993,11 @@ play_move_leftright: { jmp b7 //SEG305 play_move_leftright::@7 b7: - //SEG306 [145] (byte) play_collision::xpos#2 ← (byte) current_xpos#16 + (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_plus_1 + //SEG306 [145] (byte) play_collision::xpos#2 ← (byte) current_xpos#1 + (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_plus_1 ldy current_xpos iny sty play_collision.xpos - //SEG307 [146] (byte) play_collision::ypos#2 ← (byte) current_ypos#14 -- vbuyy=vbuz1 + //SEG307 [146] (byte) play_collision::ypos#2 ← (byte) current_ypos#13 -- vbuyy=vbuz1 ldy current_ypos //SEG308 [147] (byte) play_collision::orientation#2 ← (byte) current_orientation#14 -- vbuxx=vbuz1 ldx current_orientation @@ -12995,12 +13027,12 @@ play_move_leftright: { jmp b8 //SEG320 play_move_leftright::@8 b8: - //SEG321 [153] (byte) current_xpos#3 ← ++ (byte) current_xpos#16 -- vbuz1=_inc_vbuz1 + //SEG321 [153] (byte) current_xpos#2 ← ++ (byte) current_xpos#1 -- vbuz1=_inc_vbuz1 inc current_xpos //SEG322 [154] 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: - //SEG323 [154] phi (byte) current_xpos#20 = (byte) current_xpos#5 [phi:play_move_leftright::@11/play_move_leftright::@8->play_move_leftright::@return#0] -- register_copy + //SEG323 [154] phi (byte) current_xpos#19 = (byte) current_xpos#4 [phi:play_move_leftright::@11/play_move_leftright::@8->play_move_leftright::@return#0] -- register_copy //SEG324 [154] phi (byte) play_move_leftright::return#1 = (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 @@ -13008,7 +13040,7 @@ play_move_leftright: { breturn_from_b14: breturn_from_b15: breturn_from_b6: - //SEG326 [154] phi (byte) current_xpos#20 = (byte) current_xpos#16 [phi:play_move_leftright::@14/play_move_leftright::@15/play_move_leftright::@6->play_move_leftright::@return#0] -- register_copy + //SEG326 [154] phi (byte) current_xpos#19 = (byte) current_xpos#1 [phi:play_move_leftright::@14/play_move_leftright::@15/play_move_leftright::@6->play_move_leftright::@return#0] -- register_copy //SEG327 [154] phi (byte) play_move_leftright::return#1 = (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 @@ -13018,11 +13050,11 @@ play_move_leftright: { rts //SEG330 play_move_leftright::@1 b1: - //SEG331 [156] (byte) play_collision::xpos#1 ← (byte) current_xpos#16 - (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_minus_1 + //SEG331 [156] (byte) play_collision::xpos#1 ← (byte) current_xpos#1 - (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_minus_1 ldx current_xpos dex stx play_collision.xpos - //SEG332 [157] (byte) play_collision::ypos#1 ← (byte) current_ypos#14 -- vbuyy=vbuz1 + //SEG332 [157] (byte) play_collision::ypos#1 ← (byte) current_ypos#13 -- vbuyy=vbuz1 ldy current_ypos //SEG333 [158] (byte) play_collision::orientation#1 ← (byte) current_orientation#14 -- vbuxx=vbuz1 ldx current_orientation @@ -13052,7 +13084,7 @@ play_move_leftright: { jmp b11 //SEG345 play_move_leftright::@11 b11: - //SEG346 [164] (byte) current_xpos#5 ← -- (byte) current_xpos#16 -- vbuz1=_dec_vbuz1 + //SEG346 [164] (byte) current_xpos#4 ← -- (byte) current_xpos#1 -- vbuz1=_dec_vbuz1 dec current_xpos jmp breturn_from_b11 } @@ -13139,10 +13171,10 @@ play_move_down: { jmp b12 //SEG378 play_move_down::@12 b12: - //SEG379 [180] (byte) play_collision::ypos#0 ← (byte) current_ypos#22 + (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuyy=vbuz1_plus_1 + //SEG379 [180] (byte) play_collision::ypos#0 ← (byte) current_ypos#21 + (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuyy=vbuz1_plus_1 ldy current_ypos iny - //SEG380 [181] (byte) play_collision::xpos#0 ← (byte) current_xpos#11 -- vbuz1=vbuz2 + //SEG380 [181] (byte) play_collision::xpos#0 ← (byte) current_xpos#10 -- vbuz1=vbuz2 lda current_xpos sta play_collision.xpos //SEG381 [182] (byte) play_collision::orientation#0 ← (byte) current_orientation#10 -- vbuxx=vbuz1 @@ -13203,25 +13235,25 @@ play_move_down: { sta current_piece+1 //SEG405 [195] phi from play_move_down::@20 to play_move_down::@7 [phi:play_move_down::@20->play_move_down::@7] b7_from_b20: - //SEG406 [195] phi (byte) current_piece_char#21 = (byte) current_piece_char#13 [phi:play_move_down::@20->play_move_down::@7#0] -- register_copy - //SEG407 [195] phi (byte) current_xpos#34 = (byte) current_xpos#24 [phi:play_move_down::@20->play_move_down::@7#1] -- register_copy - //SEG408 [195] phi (byte*) current_piece_gfx#27 = (byte*) current_piece_gfx#17 [phi:play_move_down::@20->play_move_down::@7#2] -- register_copy + //SEG406 [195] phi (byte) current_piece_char#20 = (byte) current_piece_char#12 [phi:play_move_down::@20->play_move_down::@7#0] -- register_copy + //SEG407 [195] phi (byte) current_xpos#33 = (byte) current_xpos#23 [phi:play_move_down::@20->play_move_down::@7#1] -- register_copy + //SEG408 [195] phi (byte*) current_piece_gfx#26 = (byte*) current_piece_gfx#16 [phi:play_move_down::@20->play_move_down::@7#2] -- register_copy //SEG409 [195] phi (byte) current_orientation#29 = (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 //SEG410 [195] phi (byte*) current_piece#20 = (byte*~) current_piece#77 [phi:play_move_down::@20->play_move_down::@7#4] -- register_copy - //SEG411 [195] phi (byte) current_ypos#30 = (byte) current_ypos#19 [phi:play_move_down::@20->play_move_down::@7#5] -- register_copy + //SEG411 [195] phi (byte) current_ypos#29 = (byte) current_ypos#18 [phi:play_move_down::@20->play_move_down::@7#5] -- register_copy jmp b7 //SEG412 play_move_down::@7 b7: //SEG413 [196] phi from play_move_down::@7 to play_move_down::@return [phi:play_move_down::@7->play_move_down::@return] breturn_from_b7: - //SEG414 [196] phi (byte) current_piece_char#11 = (byte) current_piece_char#21 [phi:play_move_down::@7->play_move_down::@return#0] -- register_copy - //SEG415 [196] phi (byte) current_xpos#16 = (byte) current_xpos#34 [phi:play_move_down::@7->play_move_down::@return#1] -- register_copy - //SEG416 [196] phi (byte*) current_piece_gfx#14 = (byte*) current_piece_gfx#27 [phi:play_move_down::@7->play_move_down::@return#2] -- register_copy + //SEG414 [196] phi (byte) current_piece_char#1 = (byte) current_piece_char#20 [phi:play_move_down::@7->play_move_down::@return#0] -- register_copy + //SEG415 [196] phi (byte) current_xpos#1 = (byte) current_xpos#33 [phi:play_move_down::@7->play_move_down::@return#1] -- register_copy + //SEG416 [196] phi (byte*) current_piece_gfx#1 = (byte*) current_piece_gfx#26 [phi:play_move_down::@7->play_move_down::@return#2] -- register_copy //SEG417 [196] phi (byte) current_orientation#14 = (byte) current_orientation#29 [phi:play_move_down::@7->play_move_down::@return#3] -- register_copy //SEG418 [196] phi (byte*) current_piece#10 = (byte*) current_piece#20 [phi:play_move_down::@7->play_move_down::@return#4] -- register_copy - //SEG419 [196] phi (byte) current_ypos#14 = (byte) current_ypos#30 [phi:play_move_down::@7->play_move_down::@return#5] -- register_copy + //SEG419 [196] phi (byte) current_ypos#13 = (byte) current_ypos#29 [phi:play_move_down::@7->play_move_down::@return#5] -- register_copy //SEG420 [196] phi (byte) current_movedown_counter#10 = (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 @@ -13230,12 +13262,12 @@ play_move_down: { jmp breturn //SEG422 [196] phi from play_move_down::@4 to play_move_down::@return [phi:play_move_down::@4->play_move_down::@return] breturn_from_b4: - //SEG423 [196] phi (byte) current_piece_char#11 = (byte) current_piece_char#16 [phi:play_move_down::@4->play_move_down::@return#0] -- register_copy - //SEG424 [196] phi (byte) current_xpos#16 = (byte) current_xpos#11 [phi:play_move_down::@4->play_move_down::@return#1] -- register_copy - //SEG425 [196] phi (byte*) current_piece_gfx#14 = (byte*) current_piece_gfx#10 [phi:play_move_down::@4->play_move_down::@return#2] -- register_copy + //SEG423 [196] phi (byte) current_piece_char#1 = (byte) current_piece_char#15 [phi:play_move_down::@4->play_move_down::@return#0] -- register_copy + //SEG424 [196] phi (byte) current_xpos#1 = (byte) current_xpos#10 [phi:play_move_down::@4->play_move_down::@return#1] -- register_copy + //SEG425 [196] phi (byte*) current_piece_gfx#1 = (byte*) current_piece_gfx#20 [phi:play_move_down::@4->play_move_down::@return#2] -- register_copy //SEG426 [196] phi (byte) current_orientation#14 = (byte) current_orientation#10 [phi:play_move_down::@4->play_move_down::@return#3] -- register_copy //SEG427 [196] phi (byte*) current_piece#10 = (byte*) current_piece#16 [phi:play_move_down::@4->play_move_down::@return#4] -- register_copy - //SEG428 [196] phi (byte) current_ypos#14 = (byte) current_ypos#22 [phi:play_move_down::@4->play_move_down::@return#5] -- register_copy + //SEG428 [196] phi (byte) current_ypos#13 = (byte) current_ypos#21 [phi:play_move_down::@4->play_move_down::@return#5] -- register_copy //SEG429 [196] phi (byte) current_movedown_counter#10 = (byte) current_movedown_counter#1 [phi:play_move_down::@4->play_move_down::@return#6] -- register_copy //SEG430 [196] phi (byte) play_move_down::return#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_down::@4->play_move_down::@return#7] -- vbuxx=vbuc1 ldx #0 @@ -13246,16 +13278,16 @@ play_move_down: { rts //SEG433 play_move_down::@6 b6: - //SEG434 [198] (byte) current_ypos#1 ← ++ (byte) current_ypos#22 -- vbuz1=_inc_vbuz1 + //SEG434 [198] (byte) current_ypos#0 ← ++ (byte) current_ypos#21 -- vbuz1=_inc_vbuz1 inc current_ypos //SEG435 [195] phi from play_move_down::@6 to play_move_down::@7 [phi:play_move_down::@6->play_move_down::@7] b7_from_b6: - //SEG436 [195] phi (byte) current_piece_char#21 = (byte) current_piece_char#16 [phi:play_move_down::@6->play_move_down::@7#0] -- register_copy - //SEG437 [195] phi (byte) current_xpos#34 = (byte) current_xpos#11 [phi:play_move_down::@6->play_move_down::@7#1] -- register_copy - //SEG438 [195] phi (byte*) current_piece_gfx#27 = (byte*) current_piece_gfx#10 [phi:play_move_down::@6->play_move_down::@7#2] -- register_copy + //SEG436 [195] phi (byte) current_piece_char#20 = (byte) current_piece_char#15 [phi:play_move_down::@6->play_move_down::@7#0] -- register_copy + //SEG437 [195] phi (byte) current_xpos#33 = (byte) current_xpos#10 [phi:play_move_down::@6->play_move_down::@7#1] -- register_copy + //SEG438 [195] phi (byte*) current_piece_gfx#26 = (byte*) current_piece_gfx#20 [phi:play_move_down::@6->play_move_down::@7#2] -- register_copy //SEG439 [195] phi (byte) current_orientation#29 = (byte) current_orientation#10 [phi:play_move_down::@6->play_move_down::@7#3] -- register_copy //SEG440 [195] phi (byte*) current_piece#20 = (byte*) current_piece#16 [phi:play_move_down::@6->play_move_down::@7#4] -- register_copy - //SEG441 [195] phi (byte) current_ypos#30 = (byte) current_ypos#1 [phi:play_move_down::@6->play_move_down::@7#5] -- register_copy + //SEG441 [195] phi (byte) current_ypos#29 = (byte) current_ypos#0 [phi:play_move_down::@6->play_move_down::@7#5] -- register_copy jmp b7 } //SEG442 play_spawn_current @@ -13278,19 +13310,19 @@ play_spawn_current: { txa asl sta _3 - //SEG449 [203] (byte*) current_piece_gfx#17 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) + (byte/signed byte/word/signed word/dword/signed dword) 0 -- pbuz1=pptc1_derefidx_vbuz2_plus_0 + //SEG449 [203] (byte*) current_piece_gfx#16 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_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 - //SEG450 [204] (byte) current_xpos#24 ← *((const byte[]) PIECES_START_X#0 + (byte) play_spawn_current::piece_idx#2) -- vbuz1=pbuc1_derefidx_vbuxx + //SEG450 [204] (byte) current_xpos#23 ← *((const byte[]) PIECES_START_X#0 + (byte) play_spawn_current::piece_idx#2) -- vbuz1=pbuc1_derefidx_vbuxx lda PIECES_START_X,x sta current_xpos - //SEG451 [205] (byte) current_ypos#19 ← *((const byte[]) PIECES_START_Y#0 + (byte) play_spawn_current::piece_idx#2) -- vbuz1=pbuc1_derefidx_vbuxx + //SEG451 [205] (byte) current_ypos#18 ← *((const byte[]) PIECES_START_Y#0 + (byte) play_spawn_current::piece_idx#2) -- vbuz1=pbuc1_derefidx_vbuxx lda PIECES_START_Y,x sta current_ypos - //SEG452 [206] (byte) current_piece_char#13 ← *((const byte[]) PIECES_CHARS#0 + (byte) play_spawn_current::piece_idx#2) -- vbuz1=pbuc1_derefidx_vbuxx + //SEG452 [206] (byte) current_piece_char#12 ← *((const byte[]) PIECES_CHARS#0 + (byte) play_spawn_current::piece_idx#2) -- vbuz1=pbuc1_derefidx_vbuxx lda PIECES_CHARS,x sta current_piece_char jmp breturn @@ -13474,7 +13506,7 @@ play_lock_current: { .label i_3 = 3 .label i_7 = 3 .label i_9 = 3 - //SEG522 [237] (byte) play_lock_current::ypos2#0 ← (byte) current_ypos#22 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz1_rol_1 + //SEG522 [237] (byte) play_lock_current::ypos2#0 ← (byte) current_ypos#21 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz1_rol_1 asl ypos2 //SEG523 [238] phi from play_lock_current to play_lock_current::@1 [phi:play_lock_current->play_lock_current::@1] b1_from_play_lock_current: @@ -13494,7 +13526,7 @@ play_lock_current: { sta playfield_line lda playfield_lines+1,y sta playfield_line+1 - //SEG529 [240] (byte) play_lock_current::col#0 ← (byte) current_xpos#11 -- vbuz1=vbuz2 + //SEG529 [240] (byte) play_lock_current::col#0 ← (byte) current_xpos#10 -- vbuz1=vbuz2 lda current_xpos sta col //SEG530 [241] phi from play_lock_current::@1 to play_lock_current::@2 [phi:play_lock_current::@1->play_lock_current::@2] @@ -13510,7 +13542,7 @@ play_lock_current: { ldy i_2 iny sty i - //SEG536 [243] if(*((byte*) current_piece_gfx#10 + (byte) play_lock_current::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_lock_current::@3 -- pbuz1_derefidx_vbuz2_eq_0_then_la1 + //SEG536 [243] if(*((byte*) current_piece_gfx#20 + (byte) play_lock_current::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_lock_current::@3 -- pbuz1_derefidx_vbuz2_eq_0_then_la1 ldy i_2 lda (current_piece_gfx),y cmp #0 @@ -13518,7 +13550,7 @@ play_lock_current: { jmp b4 //SEG537 play_lock_current::@4 b4: - //SEG538 [244] *((byte*) play_lock_current::playfield_line#0 + (byte) play_lock_current::col#2) ← (byte) current_piece_char#16 -- pbuz1_derefidx_vbuz2=vbuz3 + //SEG538 [244] *((byte*) play_lock_current::playfield_line#0 + (byte) play_lock_current::col#2) ← (byte) current_piece_char#15 -- pbuz1_derefidx_vbuz2=vbuz3 lda current_piece_char ldy col sta (playfield_line),y @@ -14621,7 +14653,7 @@ irq: { PIECE_O: .byte 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .align $40 PIECE_I: .byte 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0 - PIECES_CHARS: .byte $57, $58, $98, $58, $57, $57, $98 + PIECES_CHARS: .byte $58, $59, $99, $59, $58, $58, $99 PIECES_START_X: .byte 4, 4, 4, 4, 4, 3, 4 PIECES_START_Y: .byte 2, 1, 1, 1, 2, 0, 1 screen_lines: .fill 2*PLAYFIELD_LINES, 0 @@ -15306,7 +15338,7 @@ FINAL SYMBOL TABLE (word[]) PIECES (const word[]) PIECES#0 PIECES = { ((word))(const byte[4*4*4]) PIECE_T#0, ((word))(const byte[4*4*4]) PIECE_S#0, ((word))(const byte[4*4*4]) PIECE_Z#0, ((word))(const byte[4*4*4]) PIECE_J#0, ((word))(const byte[4*4*4]) PIECE_O#0, ((word))(const byte[4*4*4]) PIECE_I#0, ((word))(const byte[4*4*4]) PIECE_L#0 } (byte[]) PIECES_CHARS -(const byte[]) PIECES_CHARS#0 PIECES_CHARS = { (byte/signed byte/word/signed word/dword/signed dword) 87, (byte/signed byte/word/signed word/dword/signed dword) 88, (byte/word/signed word/dword/signed dword) 152, (byte/signed byte/word/signed word/dword/signed dword) 88, (byte/signed byte/word/signed word/dword/signed dword) 87, (byte/signed byte/word/signed word/dword/signed dword) 87, (byte/word/signed word/dword/signed dword) 152 } +(const byte[]) PIECES_CHARS#0 PIECES_CHARS = { (byte/signed byte/word/signed word/dword/signed dword) 88, (byte/signed byte/word/signed word/dword/signed dword) 89, (byte/word/signed word/dword/signed dword) 153, (byte/signed byte/word/signed word/dword/signed dword) 89, (byte/signed byte/word/signed word/dword/signed dword) 88, (byte/signed byte/word/signed word/dword/signed dword) 88, (byte/word/signed word/dword/signed dword) 153 } (byte[]) PIECES_START_X (const byte[]) PIECES_START_X#0 PIECES_START_X = { (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 3, (byte/signed byte/word/signed word/dword/signed dword) 4 } (byte[]) PIECES_START_Y @@ -15437,43 +15469,43 @@ FINAL SYMBOL TABLE (byte*~) current_piece#76 current_piece#76 zp ZP_WORD:4 4.0 (byte*~) current_piece#77 current_piece zp ZP_WORD:12 4.0 (byte) current_piece_char -(byte) current_piece_char#11 current_piece_char zp ZP_BYTE:18 1.04 -(byte) current_piece_char#13 current_piece_char zp ZP_BYTE:18 0.6153846153846154 -(byte) current_piece_char#16 current_piece_char zp ZP_BYTE:18 19.96078431372549 -(byte) current_piece_char#21 current_piece_char zp ZP_BYTE:18 6.0 -(byte) current_piece_char#63 current_piece_char#63 zp ZP_BYTE:6 48.285714285714285 -(byte~) current_piece_char#83 current_piece_char#83 zp ZP_BYTE:6 4.0 -(byte~) current_piece_char#84 current_piece_char#84 zp ZP_BYTE:6 22.0 +(byte) current_piece_char#1 current_piece_char zp ZP_BYTE:18 1.04 +(byte) current_piece_char#12 current_piece_char zp ZP_BYTE:18 0.6153846153846154 +(byte) current_piece_char#15 current_piece_char zp ZP_BYTE:18 19.96078431372549 +(byte) current_piece_char#20 current_piece_char zp ZP_BYTE:18 6.0 +(byte) current_piece_char#62 current_piece_char#62 zp ZP_BYTE:6 48.285714285714285 +(byte~) current_piece_char#87 current_piece_char#87 zp ZP_BYTE:6 4.0 +(byte~) current_piece_char#88 current_piece_char#88 zp ZP_BYTE:6 22.0 (byte*) current_piece_gfx -(byte*) current_piece_gfx#10 current_piece_gfx zp ZP_WORD:15 19.96078431372549 -(byte*) current_piece_gfx#14 current_piece_gfx zp ZP_WORD:15 0.2962962962962963 -(byte*) current_piece_gfx#15 current_piece_gfx zp ZP_WORD:15 1.8666666666666665 -(byte*) current_piece_gfx#17 current_piece_gfx zp ZP_WORD:15 0.5 -(byte*) current_piece_gfx#27 current_piece_gfx zp ZP_WORD:15 6.0 -(byte*) current_piece_gfx#4 current_piece_gfx zp ZP_WORD:15 4.0 -(byte*) current_piece_gfx#53 current_piece_gfx#53 zp ZP_WORD:4 48.285714285714285 -(byte*~) current_piece_gfx#95 current_piece_gfx#95 zp ZP_WORD:4 2.0 -(byte*~) current_piece_gfx#96 current_piece_gfx#96 zp ZP_WORD:4 11.0 +(byte*) current_piece_gfx#1 current_piece_gfx zp ZP_WORD:15 0.2962962962962963 +(byte*~) current_piece_gfx#100 current_piece_gfx#100 zp ZP_WORD:4 11.0 +(byte*) current_piece_gfx#14 current_piece_gfx zp ZP_WORD:15 1.8666666666666665 +(byte*) current_piece_gfx#16 current_piece_gfx zp ZP_WORD:15 0.5 +(byte*) current_piece_gfx#20 current_piece_gfx zp ZP_WORD:15 19.96078431372549 +(byte*) current_piece_gfx#26 current_piece_gfx zp ZP_WORD:15 6.0 +(byte*) current_piece_gfx#3 current_piece_gfx zp ZP_WORD:15 4.0 +(byte*) current_piece_gfx#52 current_piece_gfx#52 zp ZP_WORD:4 48.285714285714285 +(byte*~) current_piece_gfx#99 current_piece_gfx#99 zp ZP_WORD:4 2.0 (byte) current_xpos -(byte~) current_xpos#105 current_xpos#105 zp ZP_BYTE:3 1.3333333333333333 -(byte~) current_xpos#106 current_xpos#106 zp ZP_BYTE:3 7.333333333333333 -(byte) current_xpos#11 current_xpos zp ZP_BYTE:17 2.3529411764705883 -(byte) current_xpos#16 current_xpos zp ZP_BYTE:17 0.72 -(byte) current_xpos#20 current_xpos zp ZP_BYTE:17 0.871794871794872 -(byte) current_xpos#24 current_xpos zp ZP_BYTE:17 0.5333333333333333 -(byte) current_xpos#3 current_xpos zp ZP_BYTE:17 4.0 -(byte) current_xpos#34 current_xpos zp ZP_BYTE:17 6.0 -(byte) current_xpos#48 current_xpos#48 zp ZP_BYTE:3 5.428571428571429 -(byte) current_xpos#5 current_xpos zp ZP_BYTE:17 4.0 +(byte) current_xpos#1 current_xpos zp ZP_BYTE:17 0.72 +(byte) current_xpos#10 current_xpos zp ZP_BYTE:17 2.3529411764705883 +(byte~) current_xpos#109 current_xpos#109 zp ZP_BYTE:3 1.3333333333333333 +(byte~) current_xpos#110 current_xpos#110 zp ZP_BYTE:3 7.333333333333333 +(byte) current_xpos#19 current_xpos zp ZP_BYTE:17 0.871794871794872 +(byte) current_xpos#2 current_xpos zp ZP_BYTE:17 4.0 +(byte) current_xpos#23 current_xpos zp ZP_BYTE:17 0.5333333333333333 +(byte) current_xpos#33 current_xpos zp ZP_BYTE:17 6.0 +(byte) current_xpos#4 current_xpos zp ZP_BYTE:17 4.0 +(byte) current_xpos#47 current_xpos#47 zp ZP_BYTE:3 5.428571428571429 (byte) current_ypos -(byte) current_ypos#1 current_ypos zp ZP_BYTE:11 4.0 -(byte) current_ypos#10 reg byte x 15.0 -(byte) current_ypos#14 current_ypos zp ZP_BYTE:11 0.48484848484848475 -(byte) current_ypos#19 current_ypos zp ZP_BYTE:11 0.5714285714285714 -(byte) current_ypos#22 current_ypos zp ZP_BYTE:11 0.6176470588235294 -(byte) current_ypos#30 current_ypos zp ZP_BYTE:11 6.0 -(byte~) current_ypos#79 reg byte x 1.0 -(byte~) current_ypos#80 reg byte x 5.5 +(byte) current_ypos#0 current_ypos zp ZP_BYTE:11 4.0 +(byte) current_ypos#13 current_ypos zp ZP_BYTE:11 0.48484848484848475 +(byte) current_ypos#18 current_ypos zp ZP_BYTE:11 0.5714285714285714 +(byte) current_ypos#21 current_ypos zp ZP_BYTE:11 0.6176470588235294 +(byte) current_ypos#29 current_ypos zp ZP_BYTE:11 6.0 +(byte~) current_ypos#83 reg byte x 1.0 +(byte~) current_ypos#84 reg byte x 5.5 +(byte) current_ypos#9 reg byte x 15.0 (void()) fill((byte*) fill::start , (word) fill::size , (byte) fill::val) (label) fill::@1 (label) fill::@return @@ -16062,10 +16094,10 @@ interrupt(HARDWARE_CLOBBER)(void()) irq() (byte*) toSpritePtr1_sprite zp ZP_BYTE:2 [ current_movedown_counter#12 current_movedown_counter#10 current_movedown_counter#1 play_remove_lines::y#8 play_remove_lines::y#1 play_lock_current::l#6 play_lock_current::l#1 play_init::idx#2 play_init::idx#1 sprites_init::xpos#2 sprites_init::xpos#1 render_init::l#4 render_init::l#1 render_screen_original::y#8 render_screen_original::y#1 play_spawn_current::$3 ] -reg byte x [ current_ypos#10 current_ypos#79 current_ypos#80 ] -zp ZP_BYTE:3 [ current_xpos#48 current_xpos#105 current_xpos#106 render_playfield::l#2 render_playfield::l#1 play_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#2 play_remove_lines::x#2 play_remove_lines::x#1 play_lock_current::i#2 play_lock_current::i#3 play_lock_current::i#7 play_lock_current::i#9 keyboard_event_pressed::keycode#5 keyboard_event_scan::row#2 keyboard_event_scan::row#1 ] -zp ZP_WORD:4 [ current_piece_gfx#53 current_piece_gfx#95 current_piece_gfx#96 render_playfield::screen_line#2 render_playfield::screen_line#0 render_playfield::screen_line#1 current_piece#12 current_piece#73 current_piece#74 current_piece#75 current_piece#76 play_collision::piece_gfx#0 play_init::pli#2 play_init::pli#1 render_init::li#2 render_init::li#1 render_init::line#4 render_init::line#1 render_screen_original::orig#2 render_screen_original::orig#5 render_screen_original::orig#1 fill::addr#2 fill::addr#1 play_lock_current::playfield_line#0 ] -zp ZP_BYTE:6 [ current_piece_char#63 current_piece_char#83 current_piece_char#84 render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 play_collision::xpos#5 play_collision::xpos#0 play_collision::xpos#1 play_collision::xpos#2 play_collision::xpos#3 play_remove_lines::full#4 play_remove_lines::full#2 play_lock_current::col#2 play_lock_current::col#0 play_lock_current::col#1 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 keyboard_event_pressed::row_bits#0 ] +reg byte x [ current_ypos#9 current_ypos#83 current_ypos#84 ] +zp ZP_BYTE:3 [ current_xpos#47 current_xpos#109 current_xpos#110 render_playfield::l#2 render_playfield::l#1 play_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#2 play_remove_lines::x#2 play_remove_lines::x#1 play_lock_current::i#2 play_lock_current::i#3 play_lock_current::i#7 play_lock_current::i#9 keyboard_event_pressed::keycode#5 keyboard_event_scan::row#2 keyboard_event_scan::row#1 ] +zp ZP_WORD:4 [ current_piece_gfx#52 current_piece_gfx#99 current_piece_gfx#100 render_playfield::screen_line#2 render_playfield::screen_line#0 render_playfield::screen_line#1 current_piece#12 current_piece#73 current_piece#74 current_piece#75 current_piece#76 play_collision::piece_gfx#0 play_init::pli#2 play_init::pli#1 render_init::li#2 render_init::li#1 render_init::line#4 render_init::line#1 render_screen_original::orig#2 render_screen_original::orig#5 render_screen_original::orig#1 fill::addr#2 fill::addr#1 play_lock_current::playfield_line#0 ] +zp ZP_BYTE:6 [ current_piece_char#62 current_piece_char#87 current_piece_char#88 render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 play_collision::xpos#5 play_collision::xpos#0 play_collision::xpos#1 play_collision::xpos#2 play_collision::xpos#3 play_remove_lines::full#4 play_remove_lines::full#2 play_lock_current::col#2 play_lock_current::col#0 play_lock_current::col#1 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 keyboard_event_pressed::row_bits#0 ] zp ZP_BYTE:7 [ render_current::ypos2#2 render_current::ypos2#0 render_current::ypos2#1 play_collision::ypos2#2 play_collision::ypos2#0 play_collision::ypos2#1 play_remove_lines::c#0 play_lock_current::i#1 keyboard_event_scan::row_scan#0 ] zp ZP_BYTE:8 [ render_current::l#4 render_current::l#1 play_collision::l#6 play_collision::l#1 ] zp ZP_BYTE:9 [ render_current::i#4 render_current::i#3 render_current::i#8 render_current::i#10 render_current::i#1 play_collision::i#2 play_collision::i#3 play_collision::i#11 play_collision::i#13 ] @@ -16079,12 +16111,12 @@ reg byte x [ play_collision::c#2 play_collision::c#1 ] reg byte a [ play_collision::return#14 ] reg byte a [ play_move_leftright::return#1 ] 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 ] -zp ZP_BYTE:11 [ current_ypos#30 current_ypos#22 current_ypos#14 current_ypos#19 current_ypos#1 play_lock_current::ypos2#2 play_lock_current::ypos2#0 play_lock_current::ypos2#1 ] +zp ZP_BYTE:11 [ current_ypos#29 current_ypos#21 current_ypos#13 current_ypos#18 current_ypos#0 play_lock_current::ypos2#2 play_lock_current::ypos2#0 play_lock_current::ypos2#1 ] zp ZP_WORD:12 [ current_piece#20 current_piece#77 current_piece#16 current_piece#10 current_piece#72 render_screen_original::screen#6 render_screen_original::screen#5 render_screen_original::screen#4 render_screen_original::screen#7 render_screen_original::screen#11 render_screen_original::screen#1 render_screen_original::screen#2 render_init::$18 ] zp ZP_BYTE:14 [ current_orientation#29 current_orientation#10 current_orientation#19 current_orientation#4 current_orientation#14 ] -zp ZP_WORD:15 [ current_piece_gfx#27 current_piece_gfx#10 current_piece_gfx#15 current_piece_gfx#17 current_piece_gfx#4 current_piece_gfx#14 ] -zp ZP_BYTE:17 [ current_xpos#34 current_xpos#11 current_xpos#20 current_xpos#24 current_xpos#5 current_xpos#16 current_xpos#3 ] -zp ZP_BYTE:18 [ current_piece_char#21 current_piece_char#16 current_piece_char#11 current_piece_char#13 ] +zp ZP_WORD:15 [ current_piece_gfx#26 current_piece_gfx#20 current_piece_gfx#14 current_piece_gfx#16 current_piece_gfx#3 current_piece_gfx#1 ] +zp ZP_BYTE:17 [ current_xpos#33 current_xpos#10 current_xpos#19 current_xpos#23 current_xpos#4 current_xpos#1 current_xpos#2 ] +zp ZP_BYTE:18 [ current_piece_char#20 current_piece_char#15 current_piece_char#1 current_piece_char#12 ] reg byte x [ play_move_down::return#2 ] reg byte x [ play_spawn_current::piece_idx#2 play_spawn_current::piece_idx#1 ] reg byte y [ play_remove_lines::r#2 play_remove_lines::r#3 play_remove_lines::r#1 ] @@ -16256,21 +16288,21 @@ Score: 438201 .label irq_cnt = $17 .label current_movedown_counter = 2 .label current_ypos = $b - .label current_xpos = $11 - .label current_orientation = $e .label current_piece_gfx = $f - .label current_piece = $c + .label current_xpos = $11 .label current_piece_char = $12 + .label current_orientation = $e + .label current_piece = $c .label current_piece_12 = 4 - .label current_xpos_48 = 3 - .label current_piece_gfx_53 = 4 - .label current_piece_char_63 = 6 - .label current_xpos_105 = 3 - .label current_xpos_106 = 3 - .label current_piece_gfx_95 = 4 - .label current_piece_gfx_96 = 4 - .label current_piece_char_83 = 6 - .label current_piece_char_84 = 6 + .label current_xpos_47 = 3 + .label current_piece_gfx_52 = 4 + .label current_piece_char_62 = 6 + .label current_xpos_109 = 3 + .label current_xpos_110 = 3 + .label current_piece_gfx_99 = 4 + .label current_piece_gfx_100 = 4 + .label current_piece_char_87 = 6 + .label current_piece_char_88 = 6 .label current_piece_73 = 4 .label current_piece_74 = 4 .label current_piece_75 = 4 @@ -16341,25 +16373,25 @@ main: { //SEG45 [87] phi from main::@26 to render_playfield [phi:main::@26->render_playfield] jsr render_playfield //SEG46 main::@27 - //SEG47 [26] (byte~) current_ypos#79 ← (byte) current_ypos#19 -- vbuxx=vbuz1 + //SEG47 [26] (byte~) current_ypos#83 ← (byte) current_ypos#18 -- vbuxx=vbuz1 ldx current_ypos - //SEG48 [27] (byte~) current_xpos#105 ← (byte) current_xpos#24 -- vbuz1=vbuz2 + //SEG48 [27] (byte~) current_xpos#109 ← (byte) current_xpos#23 -- vbuz1=vbuz2 lda current_xpos - sta current_xpos_105 - //SEG49 [28] (byte*~) current_piece_gfx#95 ← (byte*) current_piece_gfx#17 -- pbuz1=pbuz2 + sta current_xpos_109 + //SEG49 [28] (byte*~) current_piece_gfx#99 ← (byte*) current_piece_gfx#16 -- pbuz1=pbuz2 lda current_piece_gfx - sta current_piece_gfx_95 + sta current_piece_gfx_99 lda current_piece_gfx+1 - sta current_piece_gfx_95+1 - //SEG50 [29] (byte~) current_piece_char#83 ← (byte) current_piece_char#13 -- vbuz1=vbuz2 + sta current_piece_gfx_99+1 + //SEG50 [29] (byte~) current_piece_char#87 ← (byte) current_piece_char#12 -- vbuz1=vbuz2 lda current_piece_char - sta current_piece_char_83 + sta current_piece_char_87 //SEG51 [30] call render_current //SEG52 [65] phi from main::@27 to render_current [phi:main::@27->render_current] - //SEG53 [65] phi (byte) current_piece_char#63 = (byte~) current_piece_char#83 [phi:main::@27->render_current#0] -- register_copy - //SEG54 [65] phi (byte*) current_piece_gfx#53 = (byte*~) current_piece_gfx#95 [phi:main::@27->render_current#1] -- register_copy - //SEG55 [65] phi (byte) current_xpos#48 = (byte~) current_xpos#105 [phi:main::@27->render_current#2] -- register_copy - //SEG56 [65] phi (byte) current_ypos#10 = (byte~) current_ypos#79 [phi:main::@27->render_current#3] -- register_copy + //SEG53 [65] phi (byte) current_piece_char#62 = (byte~) current_piece_char#87 [phi:main::@27->render_current#0] -- register_copy + //SEG54 [65] phi (byte*) current_piece_gfx#52 = (byte*~) current_piece_gfx#99 [phi:main::@27->render_current#1] -- register_copy + //SEG55 [65] phi (byte) current_xpos#47 = (byte~) current_xpos#109 [phi:main::@27->render_current#2] -- register_copy + //SEG56 [65] phi (byte) current_ypos#9 = (byte~) current_ypos#83 [phi:main::@27->render_current#3] -- register_copy jsr render_current //SEG57 [31] (byte*~) current_piece#72 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) -- pbuz1=pptc1_derefidx_vbuz2 ldy play_spawn_current._3 @@ -16373,10 +16405,10 @@ main: { sta current_movedown_counter //SEG60 [32] phi (byte) keyboard_events_size#19 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@27->main::@1#1] -- vbuz1=vbuc1 sta keyboard_events_size - //SEG61 [32] phi (byte) current_piece_char#16 = (byte) current_piece_char#13 [phi:main::@27->main::@1#2] -- register_copy - //SEG62 [32] phi (byte) current_ypos#22 = (byte) current_ypos#19 [phi:main::@27->main::@1#3] -- register_copy - //SEG63 [32] phi (byte) current_xpos#11 = (byte) current_xpos#24 [phi:main::@27->main::@1#4] -- register_copy - //SEG64 [32] phi (byte*) current_piece_gfx#10 = (byte*) current_piece_gfx#17 [phi:main::@27->main::@1#5] -- register_copy + //SEG61 [32] phi (byte) current_piece_char#15 = (byte) current_piece_char#12 [phi:main::@27->main::@1#2] -- register_copy + //SEG62 [32] phi (byte) current_ypos#21 = (byte) current_ypos#18 [phi:main::@27->main::@1#3] -- register_copy + //SEG63 [32] phi (byte) current_xpos#10 = (byte) current_xpos#23 [phi:main::@27->main::@1#4] -- register_copy + //SEG64 [32] phi (byte*) current_piece_gfx#20 = (byte*) current_piece_gfx#16 [phi:main::@27->main::@1#5] -- register_copy //SEG65 [32] phi (byte) current_orientation#10 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@27->main::@1#6] -- vbuz1=vbuc1 sta current_orientation //SEG66 [32] phi (byte*) current_piece#16 = (byte*~) current_piece#72 [phi:main::@27->main::@1#7] -- register_copy @@ -16454,25 +16486,25 @@ main: { //SEG104 [87] phi from main::@19 to render_playfield [phi:main::@19->render_playfield] jsr render_playfield //SEG105 main::@34 - //SEG106 [59] (byte~) current_ypos#80 ← (byte) current_ypos#14 -- vbuxx=vbuz1 + //SEG106 [59] (byte~) current_ypos#84 ← (byte) current_ypos#13 -- vbuxx=vbuz1 ldx current_ypos - //SEG107 [60] (byte~) current_xpos#106 ← (byte) current_xpos#20 -- vbuz1=vbuz2 + //SEG107 [60] (byte~) current_xpos#110 ← (byte) current_xpos#19 -- vbuz1=vbuz2 lda current_xpos - sta current_xpos_106 - //SEG108 [61] (byte*~) current_piece_gfx#96 ← (byte*) current_piece_gfx#15 -- pbuz1=pbuz2 + sta current_xpos_110 + //SEG108 [61] (byte*~) current_piece_gfx#100 ← (byte*) current_piece_gfx#14 -- pbuz1=pbuz2 lda current_piece_gfx - sta current_piece_gfx_96 + sta current_piece_gfx_100 lda current_piece_gfx+1 - sta current_piece_gfx_96+1 - //SEG109 [62] (byte~) current_piece_char#84 ← (byte) current_piece_char#11 -- vbuz1=vbuz2 + sta current_piece_gfx_100+1 + //SEG109 [62] (byte~) current_piece_char#88 ← (byte) current_piece_char#1 -- vbuz1=vbuz2 lda current_piece_char - sta current_piece_char_84 + sta current_piece_char_88 //SEG110 [63] call render_current //SEG111 [65] phi from main::@34 to render_current [phi:main::@34->render_current] - //SEG112 [65] phi (byte) current_piece_char#63 = (byte~) current_piece_char#84 [phi:main::@34->render_current#0] -- register_copy - //SEG113 [65] phi (byte*) current_piece_gfx#53 = (byte*~) current_piece_gfx#96 [phi:main::@34->render_current#1] -- register_copy - //SEG114 [65] phi (byte) current_xpos#48 = (byte~) current_xpos#106 [phi:main::@34->render_current#2] -- register_copy - //SEG115 [65] phi (byte) current_ypos#10 = (byte~) current_ypos#80 [phi:main::@34->render_current#3] -- register_copy + //SEG112 [65] phi (byte) current_piece_char#62 = (byte~) current_piece_char#88 [phi:main::@34->render_current#0] -- register_copy + //SEG113 [65] phi (byte*) current_piece_gfx#52 = (byte*~) current_piece_gfx#100 [phi:main::@34->render_current#1] -- register_copy + //SEG114 [65] phi (byte) current_xpos#47 = (byte~) current_xpos#110 [phi:main::@34->render_current#2] -- register_copy + //SEG115 [65] phi (byte) current_ypos#9 = (byte~) current_ypos#84 [phi:main::@34->render_current#3] -- register_copy jsr render_current //SEG116 main::@10 b10: @@ -16481,10 +16513,10 @@ main: { //SEG118 [32] phi from main::@10 to main::@1 [phi:main::@10->main::@1] //SEG119 [32] phi (byte) current_movedown_counter#12 = (byte) current_movedown_counter#10 [phi:main::@10->main::@1#0] -- register_copy //SEG120 [32] phi (byte) keyboard_events_size#19 = (byte) keyboard_events_size#16 [phi:main::@10->main::@1#1] -- register_copy - //SEG121 [32] phi (byte) current_piece_char#16 = (byte) current_piece_char#11 [phi:main::@10->main::@1#2] -- register_copy - //SEG122 [32] phi (byte) current_ypos#22 = (byte) current_ypos#14 [phi:main::@10->main::@1#3] -- register_copy - //SEG123 [32] phi (byte) current_xpos#11 = (byte) current_xpos#20 [phi:main::@10->main::@1#4] -- register_copy - //SEG124 [32] phi (byte*) current_piece_gfx#10 = (byte*) current_piece_gfx#15 [phi:main::@10->main::@1#5] -- register_copy + //SEG121 [32] phi (byte) current_piece_char#15 = (byte) current_piece_char#1 [phi:main::@10->main::@1#2] -- register_copy + //SEG122 [32] phi (byte) current_ypos#21 = (byte) current_ypos#13 [phi:main::@10->main::@1#3] -- register_copy + //SEG123 [32] phi (byte) current_xpos#10 = (byte) current_xpos#19 [phi:main::@10->main::@1#4] -- register_copy + //SEG124 [32] phi (byte*) current_piece_gfx#20 = (byte*) current_piece_gfx#14 [phi:main::@10->main::@1#5] -- register_copy //SEG125 [32] phi (byte) current_orientation#10 = (byte) current_orientation#19 [phi:main::@10->main::@1#6] -- register_copy //SEG126 [32] phi (byte*) current_piece#16 = (byte*) current_piece#10 [phi:main::@10->main::@1#7] -- register_copy jmp b4 @@ -16496,7 +16528,7 @@ render_current: { .label xpos = $a .label i = 9 .label l = 8 - //SEG128 [66] (byte) render_current::ypos2#0 ← (byte) current_ypos#10 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuxx_rol_1 + //SEG128 [66] (byte) render_current::ypos2#0 ← (byte) current_ypos#9 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuxx_rol_1 txa asl sta ypos2 @@ -16559,8 +16591,8 @@ render_current: { sta screen_line lda screen_lines+1,y sta screen_line+1 - //SEG153 [77] (byte) render_current::xpos#0 ← (byte) current_xpos#48 -- vbuz1=vbuz2 - lda current_xpos_48 + //SEG153 [77] (byte) render_current::xpos#0 ← (byte) current_xpos#47 -- vbuz1=vbuz2 + lda current_xpos_47 sta xpos //SEG154 [78] phi from render_current::@2 to render_current::@4 [phi:render_current::@2->render_current::@4] //SEG155 [78] phi (byte) render_current::c#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_current::@2->render_current::@4#0] -- vbuxx=vbuc1 @@ -16573,9 +16605,9 @@ render_current: { //SEG161 [78] phi (byte) render_current::i#4 = (byte) render_current::i#10 [phi:render_current::@5->render_current::@4#2] -- register_copy //SEG162 render_current::@4 b4: - //SEG163 [79] (byte) render_current::current_cell#0 ← *((byte*) current_piece_gfx#53 + (byte) render_current::i#4) -- vbuaa=pbuz1_derefidx_vbuz2 + //SEG163 [79] (byte) render_current::current_cell#0 ← *((byte*) current_piece_gfx#52 + (byte) render_current::i#4) -- vbuaa=pbuz1_derefidx_vbuz2 ldy i - lda (current_piece_gfx_53),y + lda (current_piece_gfx_52),y //SEG164 [80] (byte) render_current::i#10 ← ++ (byte) render_current::i#4 -- vbuz1=_inc_vbuz1 inc i //SEG165 [81] if((byte) render_current::current_cell#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto render_current::@5 -- vbuaa_eq_0_then_la1 @@ -16587,8 +16619,8 @@ render_current: { cmp #PLAYFIELD_COLS bcs b5 //SEG168 render_current::@10 - //SEG169 [83] *((byte*) render_current::screen_line#0 + (byte) render_current::xpos#2) ← (byte) current_piece_char#63 -- pbuz1_derefidx_vbuz2=vbuz3 - lda current_piece_char_63 + //SEG169 [83] *((byte*) render_current::screen_line#0 + (byte) render_current::xpos#2) ← (byte) current_piece_char#62 -- pbuz1_derefidx_vbuz2=vbuz3 + lda current_piece_char_62 ldy xpos sta (screen_line),y //SEG170 render_current::@5 @@ -16679,7 +16711,7 @@ play_move_rotate: { beq b2 //SEG207 [102] 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: - //SEG208 [102] phi (byte*) current_piece_gfx#15 = (byte*) current_piece_gfx#14 [phi:play_move_rotate::@14/play_move_rotate::@6->play_move_rotate::@return#0] -- register_copy + //SEG208 [102] phi (byte*) current_piece_gfx#14 = (byte*) current_piece_gfx#1 [phi:play_move_rotate::@14/play_move_rotate::@6->play_move_rotate::@return#0] -- register_copy //SEG209 [102] phi (byte) current_orientation#19 = (byte) current_orientation#14 [phi:play_move_rotate::@14/play_move_rotate::@6->play_move_rotate::@return#1] -- register_copy //SEG210 [102] phi (byte) play_move_rotate::return#1 = (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 @@ -16700,10 +16732,10 @@ play_move_rotate: { //SEG217 [106] 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 //SEG218 play_move_rotate::@4 b4: - //SEG219 [107] (byte) play_collision::xpos#3 ← (byte) current_xpos#20 -- vbuz1=vbuz2 + //SEG219 [107] (byte) play_collision::xpos#3 ← (byte) current_xpos#19 -- vbuz1=vbuz2 lda current_xpos sta play_collision.xpos - //SEG220 [108] (byte) play_collision::ypos#3 ← (byte) current_ypos#14 -- vbuyy=vbuz1 + //SEG220 [108] (byte) play_collision::ypos#3 ← (byte) current_ypos#13 -- vbuyy=vbuz1 ldy current_ypos //SEG221 [109] (byte) play_collision::orientation#3 ← (byte) play_move_rotate::orientation#3 -- vbuxx=vbuz1 ldx orientation @@ -16731,7 +16763,7 @@ play_move_rotate: { //SEG234 [115] (byte) current_orientation#4 ← (byte) play_move_rotate::orientation#3 -- vbuz1=vbuz2 lda orientation sta current_orientation - //SEG235 [116] (byte*) current_piece_gfx#4 ← (byte*) current_piece#10 + (byte) current_orientation#4 -- pbuz1=pbuz2_plus_vbuz3 + //SEG235 [116] (byte*) current_piece_gfx#3 ← (byte*) current_piece#10 + (byte) current_orientation#4 -- pbuz1=pbuz2_plus_vbuz3 clc adc current_piece sta current_piece_gfx @@ -16739,7 +16771,7 @@ play_move_rotate: { adc current_piece+1 sta current_piece_gfx+1 //SEG236 [102] phi from play_move_rotate::@11 to play_move_rotate::@return [phi:play_move_rotate::@11->play_move_rotate::@return] - //SEG237 [102] phi (byte*) current_piece_gfx#15 = (byte*) current_piece_gfx#4 [phi:play_move_rotate::@11->play_move_rotate::@return#0] -- register_copy + //SEG237 [102] phi (byte*) current_piece_gfx#14 = (byte*) current_piece_gfx#3 [phi:play_move_rotate::@11->play_move_rotate::@return#0] -- register_copy //SEG238 [102] phi (byte) current_orientation#19 = (byte) current_orientation#4 [phi:play_move_rotate::@11->play_move_rotate::@return#1] -- register_copy //SEG239 [102] phi (byte) play_move_rotate::return#1 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_move_rotate::@11->play_move_rotate::@return#2] -- vbuaa=vbuc1 lda #1 @@ -16915,11 +16947,11 @@ play_move_leftright: { cmp #KEY_DOT bne b3 //SEG305 play_move_leftright::@7 - //SEG306 [145] (byte) play_collision::xpos#2 ← (byte) current_xpos#16 + (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_plus_1 + //SEG306 [145] (byte) play_collision::xpos#2 ← (byte) current_xpos#1 + (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_plus_1 ldy current_xpos iny sty play_collision.xpos - //SEG307 [146] (byte) play_collision::ypos#2 ← (byte) current_ypos#14 -- vbuyy=vbuz1 + //SEG307 [146] (byte) play_collision::ypos#2 ← (byte) current_ypos#13 -- vbuyy=vbuz1 ldy current_ypos //SEG308 [147] (byte) play_collision::orientation#2 ← (byte) current_orientation#14 -- vbuxx=vbuz1 ldx current_orientation @@ -16944,17 +16976,17 @@ play_move_leftright: { cmp #COLLISION_NONE bne b3 //SEG320 play_move_leftright::@8 - //SEG321 [153] (byte) current_xpos#3 ← ++ (byte) current_xpos#16 -- vbuz1=_inc_vbuz1 + //SEG321 [153] (byte) current_xpos#2 ← ++ (byte) current_xpos#1 -- vbuz1=_inc_vbuz1 inc current_xpos //SEG322 [154] 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: - //SEG323 [154] phi (byte) current_xpos#20 = (byte) current_xpos#5 [phi:play_move_leftright::@11/play_move_leftright::@8->play_move_leftright::@return#0] -- register_copy + //SEG323 [154] phi (byte) current_xpos#19 = (byte) current_xpos#4 [phi:play_move_leftright::@11/play_move_leftright::@8->play_move_leftright::@return#0] -- register_copy //SEG324 [154] phi (byte) play_move_leftright::return#1 = (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 //SEG325 [154] 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: - //SEG326 [154] phi (byte) current_xpos#20 = (byte) current_xpos#16 [phi:play_move_leftright::@14/play_move_leftright::@15/play_move_leftright::@6->play_move_leftright::@return#0] -- register_copy + //SEG326 [154] phi (byte) current_xpos#19 = (byte) current_xpos#1 [phi:play_move_leftright::@14/play_move_leftright::@15/play_move_leftright::@6->play_move_leftright::@return#0] -- register_copy //SEG327 [154] phi (byte) play_move_leftright::return#1 = (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 //SEG328 play_move_leftright::@return @@ -16963,11 +16995,11 @@ play_move_leftright: { rts //SEG330 play_move_leftright::@1 b1: - //SEG331 [156] (byte) play_collision::xpos#1 ← (byte) current_xpos#16 - (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_minus_1 + //SEG331 [156] (byte) play_collision::xpos#1 ← (byte) current_xpos#1 - (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_minus_1 ldx current_xpos dex stx play_collision.xpos - //SEG332 [157] (byte) play_collision::ypos#1 ← (byte) current_ypos#14 -- vbuyy=vbuz1 + //SEG332 [157] (byte) play_collision::ypos#1 ← (byte) current_ypos#13 -- vbuyy=vbuz1 ldy current_ypos //SEG333 [158] (byte) play_collision::orientation#1 ← (byte) current_orientation#14 -- vbuxx=vbuz1 ldx current_orientation @@ -16992,7 +17024,7 @@ play_move_leftright: { cmp #COLLISION_NONE bne b3 //SEG345 play_move_leftright::@11 - //SEG346 [164] (byte) current_xpos#5 ← -- (byte) current_xpos#16 -- vbuz1=_dec_vbuz1 + //SEG346 [164] (byte) current_xpos#4 ← -- (byte) current_xpos#1 -- vbuz1=_dec_vbuz1 dec current_xpos jmp b2 } @@ -17056,10 +17088,10 @@ play_move_down: { cpx #0 beq b5 //SEG378 play_move_down::@12 - //SEG379 [180] (byte) play_collision::ypos#0 ← (byte) current_ypos#22 + (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuyy=vbuz1_plus_1 + //SEG379 [180] (byte) play_collision::ypos#0 ← (byte) current_ypos#21 + (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuyy=vbuz1_plus_1 ldy current_ypos iny - //SEG380 [181] (byte) play_collision::xpos#0 ← (byte) current_xpos#11 -- vbuz1=vbuz2 + //SEG380 [181] (byte) play_collision::xpos#0 ← (byte) current_xpos#10 -- vbuz1=vbuz2 lda current_xpos sta play_collision.xpos //SEG381 [182] (byte) play_collision::orientation#0 ← (byte) current_orientation#10 -- vbuxx=vbuz1 @@ -17105,23 +17137,23 @@ play_move_down: { lda PIECES+1,y sta current_piece+1 //SEG405 [195] phi from play_move_down::@20 to play_move_down::@7 [phi:play_move_down::@20->play_move_down::@7] - //SEG406 [195] phi (byte) current_piece_char#21 = (byte) current_piece_char#13 [phi:play_move_down::@20->play_move_down::@7#0] -- register_copy - //SEG407 [195] phi (byte) current_xpos#34 = (byte) current_xpos#24 [phi:play_move_down::@20->play_move_down::@7#1] -- register_copy - //SEG408 [195] phi (byte*) current_piece_gfx#27 = (byte*) current_piece_gfx#17 [phi:play_move_down::@20->play_move_down::@7#2] -- register_copy + //SEG406 [195] phi (byte) current_piece_char#20 = (byte) current_piece_char#12 [phi:play_move_down::@20->play_move_down::@7#0] -- register_copy + //SEG407 [195] phi (byte) current_xpos#33 = (byte) current_xpos#23 [phi:play_move_down::@20->play_move_down::@7#1] -- register_copy + //SEG408 [195] phi (byte*) current_piece_gfx#26 = (byte*) current_piece_gfx#16 [phi:play_move_down::@20->play_move_down::@7#2] -- register_copy //SEG409 [195] phi (byte) current_orientation#29 = (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 //SEG410 [195] phi (byte*) current_piece#20 = (byte*~) current_piece#77 [phi:play_move_down::@20->play_move_down::@7#4] -- register_copy - //SEG411 [195] phi (byte) current_ypos#30 = (byte) current_ypos#19 [phi:play_move_down::@20->play_move_down::@7#5] -- register_copy + //SEG411 [195] phi (byte) current_ypos#29 = (byte) current_ypos#18 [phi:play_move_down::@20->play_move_down::@7#5] -- register_copy //SEG412 play_move_down::@7 b7: //SEG413 [196] phi from play_move_down::@7 to play_move_down::@return [phi:play_move_down::@7->play_move_down::@return] - //SEG414 [196] phi (byte) current_piece_char#11 = (byte) current_piece_char#21 [phi:play_move_down::@7->play_move_down::@return#0] -- register_copy - //SEG415 [196] phi (byte) current_xpos#16 = (byte) current_xpos#34 [phi:play_move_down::@7->play_move_down::@return#1] -- register_copy - //SEG416 [196] phi (byte*) current_piece_gfx#14 = (byte*) current_piece_gfx#27 [phi:play_move_down::@7->play_move_down::@return#2] -- register_copy + //SEG414 [196] phi (byte) current_piece_char#1 = (byte) current_piece_char#20 [phi:play_move_down::@7->play_move_down::@return#0] -- register_copy + //SEG415 [196] phi (byte) current_xpos#1 = (byte) current_xpos#33 [phi:play_move_down::@7->play_move_down::@return#1] -- register_copy + //SEG416 [196] phi (byte*) current_piece_gfx#1 = (byte*) current_piece_gfx#26 [phi:play_move_down::@7->play_move_down::@return#2] -- register_copy //SEG417 [196] phi (byte) current_orientation#14 = (byte) current_orientation#29 [phi:play_move_down::@7->play_move_down::@return#3] -- register_copy //SEG418 [196] phi (byte*) current_piece#10 = (byte*) current_piece#20 [phi:play_move_down::@7->play_move_down::@return#4] -- register_copy - //SEG419 [196] phi (byte) current_ypos#14 = (byte) current_ypos#30 [phi:play_move_down::@7->play_move_down::@return#5] -- register_copy + //SEG419 [196] phi (byte) current_ypos#13 = (byte) current_ypos#29 [phi:play_move_down::@7->play_move_down::@return#5] -- register_copy //SEG420 [196] phi (byte) current_movedown_counter#10 = (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 @@ -17130,12 +17162,12 @@ play_move_down: { jmp breturn //SEG422 [196] phi from play_move_down::@4 to play_move_down::@return [phi:play_move_down::@4->play_move_down::@return] b5: - //SEG423 [196] phi (byte) current_piece_char#11 = (byte) current_piece_char#16 [phi:play_move_down::@4->play_move_down::@return#0] -- register_copy - //SEG424 [196] phi (byte) current_xpos#16 = (byte) current_xpos#11 [phi:play_move_down::@4->play_move_down::@return#1] -- register_copy - //SEG425 [196] phi (byte*) current_piece_gfx#14 = (byte*) current_piece_gfx#10 [phi:play_move_down::@4->play_move_down::@return#2] -- register_copy + //SEG423 [196] phi (byte) current_piece_char#1 = (byte) current_piece_char#15 [phi:play_move_down::@4->play_move_down::@return#0] -- register_copy + //SEG424 [196] phi (byte) current_xpos#1 = (byte) current_xpos#10 [phi:play_move_down::@4->play_move_down::@return#1] -- register_copy + //SEG425 [196] phi (byte*) current_piece_gfx#1 = (byte*) current_piece_gfx#20 [phi:play_move_down::@4->play_move_down::@return#2] -- register_copy //SEG426 [196] phi (byte) current_orientation#14 = (byte) current_orientation#10 [phi:play_move_down::@4->play_move_down::@return#3] -- register_copy //SEG427 [196] phi (byte*) current_piece#10 = (byte*) current_piece#16 [phi:play_move_down::@4->play_move_down::@return#4] -- register_copy - //SEG428 [196] phi (byte) current_ypos#14 = (byte) current_ypos#22 [phi:play_move_down::@4->play_move_down::@return#5] -- register_copy + //SEG428 [196] phi (byte) current_ypos#13 = (byte) current_ypos#21 [phi:play_move_down::@4->play_move_down::@return#5] -- register_copy //SEG429 [196] phi (byte) current_movedown_counter#10 = (byte) current_movedown_counter#1 [phi:play_move_down::@4->play_move_down::@return#6] -- register_copy //SEG430 [196] phi (byte) play_move_down::return#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_down::@4->play_move_down::@return#7] -- vbuxx=vbuc1 ldx #0 @@ -17145,15 +17177,15 @@ play_move_down: { rts //SEG433 play_move_down::@6 b6: - //SEG434 [198] (byte) current_ypos#1 ← ++ (byte) current_ypos#22 -- vbuz1=_inc_vbuz1 + //SEG434 [198] (byte) current_ypos#0 ← ++ (byte) current_ypos#21 -- vbuz1=_inc_vbuz1 inc current_ypos //SEG435 [195] phi from play_move_down::@6 to play_move_down::@7 [phi:play_move_down::@6->play_move_down::@7] - //SEG436 [195] phi (byte) current_piece_char#21 = (byte) current_piece_char#16 [phi:play_move_down::@6->play_move_down::@7#0] -- register_copy - //SEG437 [195] phi (byte) current_xpos#34 = (byte) current_xpos#11 [phi:play_move_down::@6->play_move_down::@7#1] -- register_copy - //SEG438 [195] phi (byte*) current_piece_gfx#27 = (byte*) current_piece_gfx#10 [phi:play_move_down::@6->play_move_down::@7#2] -- register_copy + //SEG436 [195] phi (byte) current_piece_char#20 = (byte) current_piece_char#15 [phi:play_move_down::@6->play_move_down::@7#0] -- register_copy + //SEG437 [195] phi (byte) current_xpos#33 = (byte) current_xpos#10 [phi:play_move_down::@6->play_move_down::@7#1] -- register_copy + //SEG438 [195] phi (byte*) current_piece_gfx#26 = (byte*) current_piece_gfx#20 [phi:play_move_down::@6->play_move_down::@7#2] -- register_copy //SEG439 [195] phi (byte) current_orientation#29 = (byte) current_orientation#10 [phi:play_move_down::@6->play_move_down::@7#3] -- register_copy //SEG440 [195] phi (byte*) current_piece#20 = (byte*) current_piece#16 [phi:play_move_down::@6->play_move_down::@7#4] -- register_copy - //SEG441 [195] phi (byte) current_ypos#30 = (byte) current_ypos#1 [phi:play_move_down::@6->play_move_down::@7#5] -- register_copy + //SEG441 [195] phi (byte) current_ypos#29 = (byte) current_ypos#0 [phi:play_move_down::@6->play_move_down::@7#5] -- register_copy jmp b7 } //SEG442 play_spawn_current @@ -17172,19 +17204,19 @@ play_spawn_current: { txa asl sta _3 - //SEG449 [203] (byte*) current_piece_gfx#17 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) + (byte/signed byte/word/signed word/dword/signed dword) 0 -- pbuz1=pptc1_derefidx_vbuz2_plus_0 + //SEG449 [203] (byte*) current_piece_gfx#16 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_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 - //SEG450 [204] (byte) current_xpos#24 ← *((const byte[]) PIECES_START_X#0 + (byte) play_spawn_current::piece_idx#2) -- vbuz1=pbuc1_derefidx_vbuxx + //SEG450 [204] (byte) current_xpos#23 ← *((const byte[]) PIECES_START_X#0 + (byte) play_spawn_current::piece_idx#2) -- vbuz1=pbuc1_derefidx_vbuxx lda PIECES_START_X,x sta current_xpos - //SEG451 [205] (byte) current_ypos#19 ← *((const byte[]) PIECES_START_Y#0 + (byte) play_spawn_current::piece_idx#2) -- vbuz1=pbuc1_derefidx_vbuxx + //SEG451 [205] (byte) current_ypos#18 ← *((const byte[]) PIECES_START_Y#0 + (byte) play_spawn_current::piece_idx#2) -- vbuz1=pbuc1_derefidx_vbuxx lda PIECES_START_Y,x sta current_ypos - //SEG452 [206] (byte) current_piece_char#13 ← *((const byte[]) PIECES_CHARS#0 + (byte) play_spawn_current::piece_idx#2) -- vbuz1=pbuc1_derefidx_vbuxx + //SEG452 [206] (byte) current_piece_char#12 ← *((const byte[]) PIECES_CHARS#0 + (byte) play_spawn_current::piece_idx#2) -- vbuz1=pbuc1_derefidx_vbuxx lda PIECES_CHARS,x sta current_piece_char //SEG453 play_spawn_current::@return @@ -17331,7 +17363,7 @@ play_lock_current: { .label i_3 = 3 .label i_7 = 3 .label i_9 = 3 - //SEG522 [237] (byte) play_lock_current::ypos2#0 ← (byte) current_ypos#22 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz1_rol_1 + //SEG522 [237] (byte) play_lock_current::ypos2#0 ← (byte) current_ypos#21 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz1_rol_1 asl ypos2 //SEG523 [238] phi from play_lock_current to play_lock_current::@1 [phi:play_lock_current->play_lock_current::@1] //SEG524 [238] phi (byte) play_lock_current::l#6 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_lock_current->play_lock_current::@1#0] -- vbuz1=vbuc1 @@ -17348,7 +17380,7 @@ play_lock_current: { sta playfield_line lda playfield_lines+1,y sta playfield_line+1 - //SEG529 [240] (byte) play_lock_current::col#0 ← (byte) current_xpos#11 -- vbuz1=vbuz2 + //SEG529 [240] (byte) play_lock_current::col#0 ← (byte) current_xpos#10 -- vbuz1=vbuz2 lda current_xpos sta col //SEG530 [241] phi from play_lock_current::@1 to play_lock_current::@2 [phi:play_lock_current::@1->play_lock_current::@2] @@ -17362,13 +17394,13 @@ play_lock_current: { ldy i_2 iny sty i - //SEG536 [243] if(*((byte*) current_piece_gfx#10 + (byte) play_lock_current::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_lock_current::@3 -- pbuz1_derefidx_vbuz2_eq_0_then_la1 + //SEG536 [243] if(*((byte*) current_piece_gfx#20 + (byte) play_lock_current::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_lock_current::@3 -- pbuz1_derefidx_vbuz2_eq_0_then_la1 ldy i_2 lda (current_piece_gfx),y cmp #0 beq b3 //SEG537 play_lock_current::@4 - //SEG538 [244] *((byte*) play_lock_current::playfield_line#0 + (byte) play_lock_current::col#2) ← (byte) current_piece_char#16 -- pbuz1_derefidx_vbuz2=vbuz3 + //SEG538 [244] *((byte*) play_lock_current::playfield_line#0 + (byte) play_lock_current::col#2) ← (byte) current_piece_char#15 -- pbuz1_derefidx_vbuz2=vbuz3 lda current_piece_char ldy col sta (playfield_line),y @@ -18293,7 +18325,7 @@ irq: { PIECE_O: .byte 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .align $40 PIECE_I: .byte 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0 - PIECES_CHARS: .byte $57, $58, $98, $58, $57, $57, $98 + PIECES_CHARS: .byte $58, $59, $99, $59, $58, $58, $99 PIECES_START_X: .byte 4, 4, 4, 4, 4, 3, 4 PIECES_START_Y: .byte 2, 1, 1, 1, 2, 0, 1 screen_lines: .fill 2*PLAYFIELD_LINES, 0 diff --git a/src/test/ref/examples/tetris/tetris.sym b/src/test/ref/examples/tetris/tetris.sym index 6dd943dd2..4eee17b1d 100644 --- a/src/test/ref/examples/tetris/tetris.sym +++ b/src/test/ref/examples/tetris/tetris.sym @@ -168,7 +168,7 @@ (word[]) PIECES (const word[]) PIECES#0 PIECES = { ((word))(const byte[4*4*4]) PIECE_T#0, ((word))(const byte[4*4*4]) PIECE_S#0, ((word))(const byte[4*4*4]) PIECE_Z#0, ((word))(const byte[4*4*4]) PIECE_J#0, ((word))(const byte[4*4*4]) PIECE_O#0, ((word))(const byte[4*4*4]) PIECE_I#0, ((word))(const byte[4*4*4]) PIECE_L#0 } (byte[]) PIECES_CHARS -(const byte[]) PIECES_CHARS#0 PIECES_CHARS = { (byte/signed byte/word/signed word/dword/signed dword) 87, (byte/signed byte/word/signed word/dword/signed dword) 88, (byte/word/signed word/dword/signed dword) 152, (byte/signed byte/word/signed word/dword/signed dword) 88, (byte/signed byte/word/signed word/dword/signed dword) 87, (byte/signed byte/word/signed word/dword/signed dword) 87, (byte/word/signed word/dword/signed dword) 152 } +(const byte[]) PIECES_CHARS#0 PIECES_CHARS = { (byte/signed byte/word/signed word/dword/signed dword) 88, (byte/signed byte/word/signed word/dword/signed dword) 89, (byte/word/signed word/dword/signed dword) 153, (byte/signed byte/word/signed word/dword/signed dword) 89, (byte/signed byte/word/signed word/dword/signed dword) 88, (byte/signed byte/word/signed word/dword/signed dword) 88, (byte/word/signed word/dword/signed dword) 153 } (byte[]) PIECES_START_X (const byte[]) PIECES_START_X#0 PIECES_START_X = { (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 3, (byte/signed byte/word/signed word/dword/signed dword) 4 } (byte[]) PIECES_START_Y @@ -299,43 +299,43 @@ (byte*~) current_piece#76 current_piece#76 zp ZP_WORD:4 4.0 (byte*~) current_piece#77 current_piece zp ZP_WORD:12 4.0 (byte) current_piece_char -(byte) current_piece_char#11 current_piece_char zp ZP_BYTE:18 1.04 -(byte) current_piece_char#13 current_piece_char zp ZP_BYTE:18 0.6153846153846154 -(byte) current_piece_char#16 current_piece_char zp ZP_BYTE:18 19.96078431372549 -(byte) current_piece_char#21 current_piece_char zp ZP_BYTE:18 6.0 -(byte) current_piece_char#63 current_piece_char#63 zp ZP_BYTE:6 48.285714285714285 -(byte~) current_piece_char#83 current_piece_char#83 zp ZP_BYTE:6 4.0 -(byte~) current_piece_char#84 current_piece_char#84 zp ZP_BYTE:6 22.0 +(byte) current_piece_char#1 current_piece_char zp ZP_BYTE:18 1.04 +(byte) current_piece_char#12 current_piece_char zp ZP_BYTE:18 0.6153846153846154 +(byte) current_piece_char#15 current_piece_char zp ZP_BYTE:18 19.96078431372549 +(byte) current_piece_char#20 current_piece_char zp ZP_BYTE:18 6.0 +(byte) current_piece_char#62 current_piece_char#62 zp ZP_BYTE:6 48.285714285714285 +(byte~) current_piece_char#87 current_piece_char#87 zp ZP_BYTE:6 4.0 +(byte~) current_piece_char#88 current_piece_char#88 zp ZP_BYTE:6 22.0 (byte*) current_piece_gfx -(byte*) current_piece_gfx#10 current_piece_gfx zp ZP_WORD:15 19.96078431372549 -(byte*) current_piece_gfx#14 current_piece_gfx zp ZP_WORD:15 0.2962962962962963 -(byte*) current_piece_gfx#15 current_piece_gfx zp ZP_WORD:15 1.8666666666666665 -(byte*) current_piece_gfx#17 current_piece_gfx zp ZP_WORD:15 0.5 -(byte*) current_piece_gfx#27 current_piece_gfx zp ZP_WORD:15 6.0 -(byte*) current_piece_gfx#4 current_piece_gfx zp ZP_WORD:15 4.0 -(byte*) current_piece_gfx#53 current_piece_gfx#53 zp ZP_WORD:4 48.285714285714285 -(byte*~) current_piece_gfx#95 current_piece_gfx#95 zp ZP_WORD:4 2.0 -(byte*~) current_piece_gfx#96 current_piece_gfx#96 zp ZP_WORD:4 11.0 +(byte*) current_piece_gfx#1 current_piece_gfx zp ZP_WORD:15 0.2962962962962963 +(byte*~) current_piece_gfx#100 current_piece_gfx#100 zp ZP_WORD:4 11.0 +(byte*) current_piece_gfx#14 current_piece_gfx zp ZP_WORD:15 1.8666666666666665 +(byte*) current_piece_gfx#16 current_piece_gfx zp ZP_WORD:15 0.5 +(byte*) current_piece_gfx#20 current_piece_gfx zp ZP_WORD:15 19.96078431372549 +(byte*) current_piece_gfx#26 current_piece_gfx zp ZP_WORD:15 6.0 +(byte*) current_piece_gfx#3 current_piece_gfx zp ZP_WORD:15 4.0 +(byte*) current_piece_gfx#52 current_piece_gfx#52 zp ZP_WORD:4 48.285714285714285 +(byte*~) current_piece_gfx#99 current_piece_gfx#99 zp ZP_WORD:4 2.0 (byte) current_xpos -(byte~) current_xpos#105 current_xpos#105 zp ZP_BYTE:3 1.3333333333333333 -(byte~) current_xpos#106 current_xpos#106 zp ZP_BYTE:3 7.333333333333333 -(byte) current_xpos#11 current_xpos zp ZP_BYTE:17 2.3529411764705883 -(byte) current_xpos#16 current_xpos zp ZP_BYTE:17 0.72 -(byte) current_xpos#20 current_xpos zp ZP_BYTE:17 0.871794871794872 -(byte) current_xpos#24 current_xpos zp ZP_BYTE:17 0.5333333333333333 -(byte) current_xpos#3 current_xpos zp ZP_BYTE:17 4.0 -(byte) current_xpos#34 current_xpos zp ZP_BYTE:17 6.0 -(byte) current_xpos#48 current_xpos#48 zp ZP_BYTE:3 5.428571428571429 -(byte) current_xpos#5 current_xpos zp ZP_BYTE:17 4.0 +(byte) current_xpos#1 current_xpos zp ZP_BYTE:17 0.72 +(byte) current_xpos#10 current_xpos zp ZP_BYTE:17 2.3529411764705883 +(byte~) current_xpos#109 current_xpos#109 zp ZP_BYTE:3 1.3333333333333333 +(byte~) current_xpos#110 current_xpos#110 zp ZP_BYTE:3 7.333333333333333 +(byte) current_xpos#19 current_xpos zp ZP_BYTE:17 0.871794871794872 +(byte) current_xpos#2 current_xpos zp ZP_BYTE:17 4.0 +(byte) current_xpos#23 current_xpos zp ZP_BYTE:17 0.5333333333333333 +(byte) current_xpos#33 current_xpos zp ZP_BYTE:17 6.0 +(byte) current_xpos#4 current_xpos zp ZP_BYTE:17 4.0 +(byte) current_xpos#47 current_xpos#47 zp ZP_BYTE:3 5.428571428571429 (byte) current_ypos -(byte) current_ypos#1 current_ypos zp ZP_BYTE:11 4.0 -(byte) current_ypos#10 reg byte x 15.0 -(byte) current_ypos#14 current_ypos zp ZP_BYTE:11 0.48484848484848475 -(byte) current_ypos#19 current_ypos zp ZP_BYTE:11 0.5714285714285714 -(byte) current_ypos#22 current_ypos zp ZP_BYTE:11 0.6176470588235294 -(byte) current_ypos#30 current_ypos zp ZP_BYTE:11 6.0 -(byte~) current_ypos#79 reg byte x 1.0 -(byte~) current_ypos#80 reg byte x 5.5 +(byte) current_ypos#0 current_ypos zp ZP_BYTE:11 4.0 +(byte) current_ypos#13 current_ypos zp ZP_BYTE:11 0.48484848484848475 +(byte) current_ypos#18 current_ypos zp ZP_BYTE:11 0.5714285714285714 +(byte) current_ypos#21 current_ypos zp ZP_BYTE:11 0.6176470588235294 +(byte) current_ypos#29 current_ypos zp ZP_BYTE:11 6.0 +(byte~) current_ypos#83 reg byte x 1.0 +(byte~) current_ypos#84 reg byte x 5.5 +(byte) current_ypos#9 reg byte x 15.0 (void()) fill((byte*) fill::start , (word) fill::size , (byte) fill::val) (label) fill::@1 (label) fill::@return @@ -924,10 +924,10 @@ interrupt(HARDWARE_CLOBBER)(void()) irq() (byte*) toSpritePtr1_sprite zp ZP_BYTE:2 [ current_movedown_counter#12 current_movedown_counter#10 current_movedown_counter#1 play_remove_lines::y#8 play_remove_lines::y#1 play_lock_current::l#6 play_lock_current::l#1 play_init::idx#2 play_init::idx#1 sprites_init::xpos#2 sprites_init::xpos#1 render_init::l#4 render_init::l#1 render_screen_original::y#8 render_screen_original::y#1 play_spawn_current::$3 ] -reg byte x [ current_ypos#10 current_ypos#79 current_ypos#80 ] -zp ZP_BYTE:3 [ current_xpos#48 current_xpos#105 current_xpos#106 render_playfield::l#2 render_playfield::l#1 play_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#2 play_remove_lines::x#2 play_remove_lines::x#1 play_lock_current::i#2 play_lock_current::i#3 play_lock_current::i#7 play_lock_current::i#9 keyboard_event_pressed::keycode#5 keyboard_event_scan::row#2 keyboard_event_scan::row#1 ] -zp ZP_WORD:4 [ current_piece_gfx#53 current_piece_gfx#95 current_piece_gfx#96 render_playfield::screen_line#2 render_playfield::screen_line#0 render_playfield::screen_line#1 current_piece#12 current_piece#73 current_piece#74 current_piece#75 current_piece#76 play_collision::piece_gfx#0 play_init::pli#2 play_init::pli#1 render_init::li#2 render_init::li#1 render_init::line#4 render_init::line#1 render_screen_original::orig#2 render_screen_original::orig#5 render_screen_original::orig#1 fill::addr#2 fill::addr#1 play_lock_current::playfield_line#0 ] -zp ZP_BYTE:6 [ current_piece_char#63 current_piece_char#83 current_piece_char#84 render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 play_collision::xpos#5 play_collision::xpos#0 play_collision::xpos#1 play_collision::xpos#2 play_collision::xpos#3 play_remove_lines::full#4 play_remove_lines::full#2 play_lock_current::col#2 play_lock_current::col#0 play_lock_current::col#1 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 keyboard_event_pressed::row_bits#0 ] +reg byte x [ current_ypos#9 current_ypos#83 current_ypos#84 ] +zp ZP_BYTE:3 [ current_xpos#47 current_xpos#109 current_xpos#110 render_playfield::l#2 render_playfield::l#1 play_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#2 play_remove_lines::x#2 play_remove_lines::x#1 play_lock_current::i#2 play_lock_current::i#3 play_lock_current::i#7 play_lock_current::i#9 keyboard_event_pressed::keycode#5 keyboard_event_scan::row#2 keyboard_event_scan::row#1 ] +zp ZP_WORD:4 [ current_piece_gfx#52 current_piece_gfx#99 current_piece_gfx#100 render_playfield::screen_line#2 render_playfield::screen_line#0 render_playfield::screen_line#1 current_piece#12 current_piece#73 current_piece#74 current_piece#75 current_piece#76 play_collision::piece_gfx#0 play_init::pli#2 play_init::pli#1 render_init::li#2 render_init::li#1 render_init::line#4 render_init::line#1 render_screen_original::orig#2 render_screen_original::orig#5 render_screen_original::orig#1 fill::addr#2 fill::addr#1 play_lock_current::playfield_line#0 ] +zp ZP_BYTE:6 [ current_piece_char#62 current_piece_char#87 current_piece_char#88 render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 play_collision::xpos#5 play_collision::xpos#0 play_collision::xpos#1 play_collision::xpos#2 play_collision::xpos#3 play_remove_lines::full#4 play_remove_lines::full#2 play_lock_current::col#2 play_lock_current::col#0 play_lock_current::col#1 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 keyboard_event_pressed::row_bits#0 ] zp ZP_BYTE:7 [ render_current::ypos2#2 render_current::ypos2#0 render_current::ypos2#1 play_collision::ypos2#2 play_collision::ypos2#0 play_collision::ypos2#1 play_remove_lines::c#0 play_lock_current::i#1 keyboard_event_scan::row_scan#0 ] zp ZP_BYTE:8 [ render_current::l#4 render_current::l#1 play_collision::l#6 play_collision::l#1 ] zp ZP_BYTE:9 [ render_current::i#4 render_current::i#3 render_current::i#8 render_current::i#10 render_current::i#1 play_collision::i#2 play_collision::i#3 play_collision::i#11 play_collision::i#13 ] @@ -941,12 +941,12 @@ reg byte x [ play_collision::c#2 play_collision::c#1 ] reg byte a [ play_collision::return#14 ] reg byte a [ play_move_leftright::return#1 ] 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 ] -zp ZP_BYTE:11 [ current_ypos#30 current_ypos#22 current_ypos#14 current_ypos#19 current_ypos#1 play_lock_current::ypos2#2 play_lock_current::ypos2#0 play_lock_current::ypos2#1 ] +zp ZP_BYTE:11 [ current_ypos#29 current_ypos#21 current_ypos#13 current_ypos#18 current_ypos#0 play_lock_current::ypos2#2 play_lock_current::ypos2#0 play_lock_current::ypos2#1 ] zp ZP_WORD:12 [ current_piece#20 current_piece#77 current_piece#16 current_piece#10 current_piece#72 render_screen_original::screen#6 render_screen_original::screen#5 render_screen_original::screen#4 render_screen_original::screen#7 render_screen_original::screen#11 render_screen_original::screen#1 render_screen_original::screen#2 render_init::$18 ] zp ZP_BYTE:14 [ current_orientation#29 current_orientation#10 current_orientation#19 current_orientation#4 current_orientation#14 ] -zp ZP_WORD:15 [ current_piece_gfx#27 current_piece_gfx#10 current_piece_gfx#15 current_piece_gfx#17 current_piece_gfx#4 current_piece_gfx#14 ] -zp ZP_BYTE:17 [ current_xpos#34 current_xpos#11 current_xpos#20 current_xpos#24 current_xpos#5 current_xpos#16 current_xpos#3 ] -zp ZP_BYTE:18 [ current_piece_char#21 current_piece_char#16 current_piece_char#11 current_piece_char#13 ] +zp ZP_WORD:15 [ current_piece_gfx#26 current_piece_gfx#20 current_piece_gfx#14 current_piece_gfx#16 current_piece_gfx#3 current_piece_gfx#1 ] +zp ZP_BYTE:17 [ current_xpos#33 current_xpos#10 current_xpos#19 current_xpos#23 current_xpos#4 current_xpos#1 current_xpos#2 ] +zp ZP_BYTE:18 [ current_piece_char#20 current_piece_char#15 current_piece_char#1 current_piece_char#12 ] reg byte x [ play_move_down::return#2 ] reg byte x [ play_spawn_current::piece_idx#2 play_spawn_current::piece_idx#1 ] reg byte y [ play_remove_lines::r#2 play_remove_lines::r#3 play_remove_lines::r#1 ]