diff --git a/src/test/ref/examples/tetris/tetris.asm b/src/test/ref/examples/tetris/tetris.asm index 487a3f8c7..3d800e321 100644 --- a/src/test/ref/examples/tetris/tetris.asm +++ b/src/test/ref/examples/tetris/tetris.asm @@ -45,31 +45,32 @@ .label current_piece_15 = 5 .label current_xpos_63 = 4 .label current_piece_gfx_63 = 5 - .label current_piece_color_65 = 7 - .label current_xpos_94 = 4 - .label current_piece_gfx_85 = 5 + .label current_piece_color_66 = 7 + .label current_xpos_95 = 4 .label current_piece_gfx_86 = 5 - .label current_piece_color_73 = 7 + .label current_piece_gfx_87 = 5 .label current_piece_color_74 = 7 - .label current_piece_70 = 5 + .label current_piece_color_75 = 7 .label current_piece_71 = 5 .label current_piece_72 = 5 .label current_piece_73 = 5 + .label current_piece_74 = 5 jsr main main: { .label key_event = $14 .label render = $15 jsr sid_rnd_init sei - jsr init + jsr render_init + jsr tables_init jsr spawn_current jsr render_playfield lda current_piece_gfx - sta current_piece_gfx_85 + sta current_piece_gfx_86 lda current_piece_gfx+1 - sta current_piece_gfx_85+1 + sta current_piece_gfx_86+1 lda current_piece_color - sta current_piece_color_73 + sta current_piece_color_74 lda #3 sta current_xpos_63 ldx #0 @@ -115,19 +116,17 @@ main: { adc render cmp #0 beq b10 - inc BORDERCOL jsr render_playfield ldx current_ypos lda current_xpos - sta current_xpos_94 + sta current_xpos_95 lda current_piece_gfx - sta current_piece_gfx_86 + sta current_piece_gfx_87 lda current_piece_gfx+1 - sta current_piece_gfx_86+1 + sta current_piece_gfx_87+1 lda current_piece_color - sta current_piece_color_74 + sta current_piece_color_75 jsr render_current - dec BORDERCOL b10: dec BORDERCOL jmp b4 @@ -165,7 +164,7 @@ render_current: { lda xpos cmp #PLAYFIELD_COLS bcs b4 - lda current_piece_color_65 + lda current_piece_color_66 ldy xpos sta (screen_line),y b4: @@ -241,11 +240,11 @@ play_move_rotate: { ldy current_ypos ldx orientation lda current_piece - sta current_piece_73 + sta current_piece_74 lda current_piece+1 - sta current_piece_73+1 + sta current_piece_74+1 jsr collision - cmp #0 + cmp #COLLISION_NONE bne b3 lda orientation sta current_orientation @@ -368,9 +367,9 @@ play_move_leftright: { ldy current_ypos ldx current_orientation lda current_piece - sta current_piece_72 + sta current_piece_73 lda current_piece+1 - sta current_piece_72+1 + sta current_piece_73+1 jsr collision cmp #COLLISION_NONE bne b3 @@ -389,9 +388,9 @@ play_move_leftright: { ldy current_ypos ldx current_orientation lda current_piece - sta current_piece_71 + sta current_piece_72 lda current_piece+1 - sta current_piece_71+1 + sta current_piece_72+1 jsr collision cmp #COLLISION_NONE bne b3 @@ -430,9 +429,9 @@ play_move_down: { sta collision.xpos ldx current_orientation lda current_piece - sta current_piece_70 + sta current_piece_71 lda current_piece+1 - sta current_piece_70+1 + sta current_piece_71+1 jsr collision cmp #COLLISION_NONE beq b6 @@ -464,12 +463,10 @@ play_move_down: { } spawn_current: { .label _3 = 2 - inc BORDERCOL ldx #7 b1: cpx #7 beq b2 - dec BORDERCOL txa asl sta _3 @@ -766,11 +763,47 @@ keyboard_matrix_read: { eor #$ff rts } -init: { - .label _14 = $c - .label li = 5 +tables_init: { .label pli = 5 .label idx = 2 + lda #0 + sta idx + lda #playfield + sta pli+1 + ldx #0 + b1: + txa + asl + tay + lda pli + sta playfield_lines,y + lda pli+1 + sta playfield_lines+1,y + lda idx + sta playfield_lines_idx,x + lda pli + clc + adc #PLAYFIELD_COLS + sta pli + bcc !+ + inc pli+1 + !: + lda #PLAYFIELD_COLS + clc + adc idx + sta idx + inx + cpx #PLAYFIELD_LINES-1+1 + bne b1 + lda #PLAYFIELD_COLS*PLAYFIELD_LINES + sta playfield_lines_idx+PLAYFIELD_LINES + rts +} +render_init: { + .label _10 = $c + .label li = 5 .label line = 5 .label l = 2 ldx #$a0 @@ -809,60 +842,27 @@ init: { cpx #PLAYFIELD_LINES+2+1 bne b1 lda #0 - sta idx - lda #playfield - sta pli+1 - ldx #0 - b2: - txa - asl - tay - lda pli - sta playfield_lines,y - lda pli+1 - sta playfield_lines+1,y - lda idx - sta playfield_lines_idx,x - lda pli - clc - adc #PLAYFIELD_COLS - sta pli - bcc !+ - inc pli+1 - !: - lda #PLAYFIELD_COLS - clc - adc idx - sta idx - inx - cpx #PLAYFIELD_LINES-1+1 - bne b2 - lda #PLAYFIELD_COLS*PLAYFIELD_LINES - sta playfield_lines_idx+PLAYFIELD_LINES - lda #0 sta l lda #COLS+$e sta line+1 - b3: + b2: ldx #0 - b4: + b3: txa clc adc line - sta _14 + sta _10 lda #0 adc line+1 - sta _14+1 + sta _10+1 lda #DARK_GREY ldy #0 - sta (_14),y + sta (_10),y inx cpx #PLAYFIELD_COLS+1+1 - bne b4 + bne b3 lda line clc adc #$28 @@ -873,7 +873,7 @@ init: { inc l lda l cmp #PLAYFIELD_LINES+1+1 - bne b3 + bne b2 rts } fill: { diff --git a/src/test/ref/examples/tetris/tetris.cfg b/src/test/ref/examples/tetris/tetris.cfg index 04294d540..f41e0fba4 100644 --- a/src/test/ref/examples/tetris/tetris.cfg +++ b/src/test/ref/examples/tetris/tetris.cfg @@ -1,394 +1,394 @@ @begin: scope:[] from [0] phi() - to:@26 -@26: scope:[] from @begin + to:@27 +@27: scope:[] from @begin [1] phi() [2] call main to:@end -@end: scope:[] from @26 +@end: scope:[] from @27 [3] phi() -main: scope:[main] from @26 +main: scope:[main] from @27 [4] phi() [5] call sid_rnd_init to:main::@21 main::@21: scope:[main] from main asm { sei } - [7] call init + [7] call render_init to:main::@22 main::@22: scope:[main] from main::@21 [8] phi() - [9] call spawn_current + [9] call tables_init to:main::@23 main::@23: scope:[main] from main::@22 [10] phi() - [11] call render_playfield + [11] call spawn_current to:main::@24 main::@24: scope:[main] from main::@23 - [12] (byte*~) current_piece_gfx#85 ← (byte*) current_piece_gfx#10 - [13] (byte~) current_piece_color#73 ← (byte) current_piece_color#15 - [14] call render_current - [15] (byte*~) current_piece#69 ← (byte*)*((const word[]) PIECES#0 + (byte~) spawn_current::$3) + [12] phi() + [13] call render_playfield + to:main::@25 +main::@25: scope:[main] from main::@24 + [14] (byte*~) current_piece_gfx#86 ← (byte*) current_piece_gfx#10 + [15] (byte~) current_piece_color#74 ← (byte) current_piece_color#15 + [16] call render_current + [17] (byte*~) current_piece#70 ← (byte*)*((const word[]) PIECES#0 + (byte~) spawn_current::$3) to:main::@1 -main::@1: scope:[main] from main::@10 main::@24 - [16] (byte) current_movedown_counter#15 ← phi( main::@10/(byte) current_movedown_counter#12 main::@24/(byte/signed byte/word/signed word/dword/signed dword) 0 ) - [16] (byte) keyboard_events_size#19 ← phi( main::@10/(byte) keyboard_events_size#16 main::@24/(byte/signed byte/word/signed word/dword/signed dword) 0 ) - [16] (byte) current_piece_color#11 ← phi( main::@10/(byte) current_piece_color#13 main::@24/(byte) current_piece_color#15 ) - [16] (byte) current_ypos#12 ← phi( main::@10/(byte) current_ypos#16 main::@24/(byte/signed byte/word/signed word/dword/signed dword) 0 ) - [16] (byte) current_xpos#16 ← phi( main::@10/(byte) current_xpos#23 main::@24/(byte/signed byte/word/signed word/dword/signed dword) 3 ) - [16] (byte*) current_piece_gfx#15 ← phi( main::@10/(byte*) current_piece_gfx#18 main::@24/(byte*) current_piece_gfx#10 ) - [16] (byte) current_orientation#15 ← phi( main::@10/(byte) current_orientation#23 main::@24/(byte/signed byte/word/signed word/dword/signed dword) 0 ) - [16] (byte*) current_piece#11 ← phi( main::@10/(byte*) current_piece#13 main::@24/(byte*~) current_piece#69 ) +main::@1: scope:[main] from main::@10 main::@25 + [18] (byte) current_movedown_counter#15 ← phi( main::@10/(byte) current_movedown_counter#12 main::@25/(byte/signed byte/word/signed word/dword/signed dword) 0 ) + [18] (byte) keyboard_events_size#19 ← phi( main::@10/(byte) keyboard_events_size#16 main::@25/(byte/signed byte/word/signed word/dword/signed dword) 0 ) + [18] (byte) current_piece_color#11 ← phi( main::@10/(byte) current_piece_color#13 main::@25/(byte) current_piece_color#15 ) + [18] (byte) current_ypos#12 ← phi( main::@10/(byte) current_ypos#16 main::@25/(byte/signed byte/word/signed word/dword/signed dword) 0 ) + [18] (byte) current_xpos#16 ← phi( main::@10/(byte) current_xpos#23 main::@25/(byte/signed byte/word/signed word/dword/signed dword) 3 ) + [18] (byte*) current_piece_gfx#15 ← phi( main::@10/(byte*) current_piece_gfx#18 main::@25/(byte*) current_piece_gfx#10 ) + [18] (byte) current_orientation#15 ← phi( main::@10/(byte) current_orientation#23 main::@25/(byte/signed byte/word/signed word/dword/signed dword) 0 ) + [18] (byte*) current_piece#11 ← phi( main::@10/(byte*) current_piece#13 main::@25/(byte*~) current_piece#70 ) to:main::@4 main::@4: scope:[main] from main::@1 main::@4 - [17] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@4 + [19] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@4 to:main::@7 main::@7: scope:[main] from main::@4 main::@7 - [18] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 254) goto main::@7 + [20] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 254) goto main::@7 to:main::@9 main::@9: scope:[main] from main::@7 - [19] *((const byte*) BORDERCOL#0) ← ++ *((const byte*) BORDERCOL#0) - [20] call keyboard_event_scan - to:main::@26 -main::@26: scope:[main] from main::@9 - [21] phi() - [22] call keyboard_event_get - [23] (byte) keyboard_event_get::return#3 ← (byte) keyboard_event_get::return#2 + [21] *((const byte*) BORDERCOL#0) ← ++ *((const byte*) BORDERCOL#0) + [22] call keyboard_event_scan to:main::@27 -main::@27: scope:[main] from main::@26 - [24] (byte) main::key_event#0 ← (byte) keyboard_event_get::return#3 - [25] (byte) play_move_down::key_event#0 ← (byte) main::key_event#0 - [26] call play_move_down - [27] (byte) play_move_down::return#0 ← (byte) play_move_down::return#3 +main::@27: scope:[main] from main::@9 + [23] phi() + [24] call keyboard_event_get + [25] (byte) keyboard_event_get::return#3 ← (byte) keyboard_event_get::return#2 to:main::@28 main::@28: scope:[main] from main::@27 - [28] (byte~) main::$9 ← (byte) play_move_down::return#0 - [29] (byte) main::render#1 ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte~) main::$9 - [30] (byte) play_move_leftright::key_event#0 ← (byte) main::key_event#0 - [31] call play_move_leftright - [32] (byte) play_move_leftright::return#0 ← (byte) play_move_leftright::return#2 + [26] (byte) main::key_event#0 ← (byte) keyboard_event_get::return#3 + [27] (byte) play_move_down::key_event#0 ← (byte) main::key_event#0 + [28] call play_move_down + [29] (byte) play_move_down::return#0 ← (byte) play_move_down::return#3 to:main::@29 main::@29: scope:[main] from main::@28 - [33] (byte~) main::$10 ← (byte) play_move_leftright::return#0 - [34] (byte) main::render#2 ← (byte) main::render#1 + (byte~) main::$10 - [35] (byte) play_move_rotate::key_event#0 ← (byte) main::key_event#0 - [36] call play_move_rotate - [37] (byte) play_move_rotate::return#0 ← (byte) play_move_rotate::return#2 + [30] (byte~) main::$10 ← (byte) play_move_down::return#0 + [31] (byte) main::render#1 ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte~) main::$10 + [32] (byte) play_move_leftright::key_event#0 ← (byte) main::key_event#0 + [33] call play_move_leftright + [34] (byte) play_move_leftright::return#0 ← (byte) play_move_leftright::return#2 to:main::@30 main::@30: scope:[main] from main::@29 - [38] (byte~) main::$11 ← (byte) play_move_rotate::return#0 - [39] (byte) main::render#3 ← (byte) main::render#2 + (byte~) main::$11 - [40] if((byte) main::render#3==(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@10 - to:main::@19 -main::@19: scope:[main] from main::@30 - [41] *((const byte*) BORDERCOL#0) ← ++ *((const byte*) BORDERCOL#0) - [42] call render_playfield + [35] (byte~) main::$11 ← (byte) play_move_leftright::return#0 + [36] (byte) main::render#2 ← (byte) main::render#1 + (byte~) main::$11 + [37] (byte) play_move_rotate::key_event#0 ← (byte) main::key_event#0 + [38] call play_move_rotate + [39] (byte) play_move_rotate::return#0 ← (byte) play_move_rotate::return#2 to:main::@31 -main::@31: scope:[main] from main::@19 - [43] (byte~) current_ypos#69 ← (byte) current_ypos#16 - [44] (byte~) current_xpos#94 ← (byte) current_xpos#23 - [45] (byte*~) current_piece_gfx#86 ← (byte*) current_piece_gfx#18 - [46] (byte~) current_piece_color#74 ← (byte) current_piece_color#13 - [47] call render_current +main::@31: scope:[main] from main::@30 + [40] (byte~) main::$12 ← (byte) play_move_rotate::return#0 + [41] (byte) main::render#3 ← (byte) main::render#2 + (byte~) main::$12 + [42] if((byte) main::render#3==(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@10 + to:main::@19 +main::@19: scope:[main] from main::@31 + [43] phi() + [44] call render_playfield to:main::@32 -main::@32: scope:[main] from main::@31 - [48] *((const byte*) BORDERCOL#0) ← -- *((const byte*) BORDERCOL#0) +main::@32: scope:[main] from main::@19 + [45] (byte~) current_ypos#70 ← (byte) current_ypos#16 + [46] (byte~) current_xpos#95 ← (byte) current_xpos#23 + [47] (byte*~) current_piece_gfx#87 ← (byte*) current_piece_gfx#18 + [48] (byte~) current_piece_color#75 ← (byte) current_piece_color#13 + [49] call render_current to:main::@10 -main::@10: scope:[main] from main::@30 main::@32 - [49] *((const byte*) BORDERCOL#0) ← -- *((const byte*) BORDERCOL#0) +main::@10: scope:[main] from main::@31 main::@32 + [50] *((const byte*) BORDERCOL#0) ← -- *((const byte*) BORDERCOL#0) to:main::@1 -render_current: scope:[render_current] from main::@24 main::@31 - [50] (byte) current_piece_color#65 ← phi( main::@24/(byte~) current_piece_color#73 main::@31/(byte~) current_piece_color#74 ) - [50] (byte*) current_piece_gfx#63 ← phi( main::@24/(byte*~) current_piece_gfx#85 main::@31/(byte*~) current_piece_gfx#86 ) - [50] (byte) current_xpos#63 ← phi( main::@24/(byte/signed byte/word/signed word/dword/signed dword) 3 main::@31/(byte~) current_xpos#94 ) - [50] (byte) current_ypos#22 ← phi( main::@24/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@31/(byte~) current_ypos#69 ) - [51] (byte) render_current::ypos2#0 ← (byte) current_ypos#22 << (byte/signed byte/word/signed word/dword/signed dword) 1 +render_current: scope:[render_current] from main::@25 main::@32 + [51] (byte) current_piece_color#66 ← phi( main::@25/(byte~) current_piece_color#74 main::@32/(byte~) current_piece_color#75 ) + [51] (byte*) current_piece_gfx#63 ← phi( main::@25/(byte*~) current_piece_gfx#86 main::@32/(byte*~) current_piece_gfx#87 ) + [51] (byte) current_xpos#63 ← phi( main::@25/(byte/signed byte/word/signed word/dword/signed dword) 3 main::@32/(byte~) current_xpos#95 ) + [51] (byte) current_ypos#22 ← phi( main::@25/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@32/(byte~) current_ypos#70 ) + [52] (byte) render_current::ypos2#0 ← (byte) current_ypos#22 << (byte/signed byte/word/signed word/dword/signed dword) 1 to:render_current::@1 render_current::@1: scope:[render_current] from render_current render_current::@2 - [52] (byte) render_current::i#4 ← phi( render_current/(byte/signed byte/word/signed word/dword/signed dword) 0 render_current::@2/(byte) render_current::i#8 ) - [52] (byte) render_current::l#3 ← phi( render_current/(byte/signed byte/word/signed word/dword/signed dword) 0 render_current::@2/(byte) render_current::l#1 ) - [52] (byte) render_current::ypos2#2 ← phi( render_current/(byte) render_current::ypos2#0 render_current::@2/(byte) render_current::ypos2#1 ) - [53] if((byte) render_current::ypos2#2>=(byte/signed byte/word/signed word/dword/signed dword) 2*(const byte) PLAYFIELD_LINES#0) goto render_current::@2 + [53] (byte) render_current::i#4 ← phi( render_current/(byte/signed byte/word/signed word/dword/signed dword) 0 render_current::@2/(byte) render_current::i#8 ) + [53] (byte) render_current::l#3 ← phi( render_current/(byte/signed byte/word/signed word/dword/signed dword) 0 render_current::@2/(byte) render_current::l#1 ) + [53] (byte) render_current::ypos2#2 ← phi( render_current/(byte) render_current::ypos2#0 render_current::@2/(byte) render_current::ypos2#1 ) + [54] if((byte) render_current::ypos2#2>=(byte/signed byte/word/signed word/dword/signed dword) 2*(const byte) PLAYFIELD_LINES#0) goto render_current::@2 to:render_current::@6 render_current::@6: scope:[render_current] from render_current::@1 - [54] (byte*) render_current::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0+3]) screen_lines#0 + (byte) render_current::ypos2#2) - [55] (byte) render_current::xpos#0 ← (byte) current_xpos#63 + [55] (byte*) render_current::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0+3]) screen_lines#0 + (byte) render_current::ypos2#2) + [56] (byte) render_current::xpos#0 ← (byte) current_xpos#63 to:render_current::@3 render_current::@3: scope:[render_current] from render_current::@4 render_current::@6 - [56] (byte) render_current::c#2 ← phi( render_current::@4/(byte) render_current::c#1 render_current::@6/(byte/signed byte/word/signed word/dword/signed dword) 0 ) - [56] (byte) render_current::xpos#2 ← phi( render_current::@4/(byte) render_current::xpos#1 render_current::@6/(byte) render_current::xpos#0 ) - [56] (byte) render_current::i#2 ← phi( render_current::@4/(byte) render_current::i#1 render_current::@6/(byte) render_current::i#4 ) - [57] (byte) render_current::current_cell#0 ← *((byte*) current_piece_gfx#63 + (byte) render_current::i#2) - [58] (byte) render_current::i#1 ← ++ (byte) render_current::i#2 - [59] if((byte) render_current::current_cell#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto render_current::@4 + [57] (byte) render_current::c#2 ← phi( render_current::@4/(byte) render_current::c#1 render_current::@6/(byte/signed byte/word/signed word/dword/signed dword) 0 ) + [57] (byte) render_current::xpos#2 ← phi( render_current::@4/(byte) render_current::xpos#1 render_current::@6/(byte) render_current::xpos#0 ) + [57] (byte) render_current::i#2 ← phi( render_current::@4/(byte) render_current::i#1 render_current::@6/(byte) render_current::i#4 ) + [58] (byte) render_current::current_cell#0 ← *((byte*) current_piece_gfx#63 + (byte) render_current::i#2) + [59] (byte) render_current::i#1 ← ++ (byte) render_current::i#2 + [60] if((byte) render_current::current_cell#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto render_current::@4 to:render_current::@7 render_current::@7: scope:[render_current] from render_current::@3 - [60] if((byte) render_current::xpos#2>=(const byte) PLAYFIELD_COLS#0) goto render_current::@4 + [61] if((byte) render_current::xpos#2>=(const byte) PLAYFIELD_COLS#0) goto render_current::@4 to:render_current::@8 render_current::@8: scope:[render_current] from render_current::@7 - [61] *((byte*) render_current::screen_line#0 + (byte) render_current::xpos#2) ← (byte) current_piece_color#65 + [62] *((byte*) render_current::screen_line#0 + (byte) render_current::xpos#2) ← (byte) current_piece_color#66 to:render_current::@4 render_current::@4: scope:[render_current] from render_current::@3 render_current::@7 render_current::@8 - [62] (byte) render_current::xpos#1 ← ++ (byte) render_current::xpos#2 - [63] (byte) render_current::c#1 ← ++ (byte) render_current::c#2 - [64] if((byte) render_current::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_current::@3 + [63] (byte) render_current::xpos#1 ← ++ (byte) render_current::xpos#2 + [64] (byte) render_current::c#1 ← ++ (byte) render_current::c#2 + [65] if((byte) render_current::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_current::@3 to:render_current::@2 render_current::@2: scope:[render_current] from render_current::@1 render_current::@4 - [65] (byte) render_current::i#8 ← phi( render_current::@1/(byte) render_current::i#4 render_current::@4/(byte) render_current::i#1 ) - [66] (byte) render_current::ypos2#1 ← (byte) render_current::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 - [67] (byte) render_current::l#1 ← ++ (byte) render_current::l#3 - [68] if((byte) render_current::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_current::@1 + [66] (byte) render_current::i#8 ← phi( render_current::@1/(byte) render_current::i#4 render_current::@4/(byte) render_current::i#1 ) + [67] (byte) render_current::ypos2#1 ← (byte) render_current::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 + [68] (byte) render_current::l#1 ← ++ (byte) render_current::l#3 + [69] if((byte) render_current::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_current::@1 to:render_current::@return render_current::@return: scope:[render_current] from render_current::@2 - [69] return + [70] return to:@return -render_playfield: scope:[render_playfield] from main::@19 main::@23 - [70] phi() +render_playfield: scope:[render_playfield] from main::@19 main::@24 + [71] phi() to:render_playfield::@1 render_playfield::@1: scope:[render_playfield] from render_playfield render_playfield::@3 - [71] (byte) render_playfield::i#3 ← phi( render_playfield/(byte/signed byte/word/signed word/dword/signed dword) 0 render_playfield::@3/(byte) render_playfield::i#1 ) - [71] (byte) render_playfield::l#2 ← phi( render_playfield/(byte/signed byte/word/signed word/dword/signed dword) 0 render_playfield::@3/(byte) render_playfield::l#1 ) - [72] (byte~) render_playfield::$1 ← (byte) render_playfield::l#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 - [73] (byte*) render_playfield::line#0 ← *((const byte*[PLAYFIELD_LINES#0+3]) screen_lines#0 + (byte~) render_playfield::$1) + [72] (byte) render_playfield::i#3 ← phi( render_playfield/(byte/signed byte/word/signed word/dword/signed dword) 0 render_playfield::@3/(byte) render_playfield::i#1 ) + [72] (byte) render_playfield::l#2 ← phi( render_playfield/(byte/signed byte/word/signed word/dword/signed dword) 0 render_playfield::@3/(byte) render_playfield::l#1 ) + [73] (byte~) render_playfield::$1 ← (byte) render_playfield::l#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 + [74] (byte*) render_playfield::line#0 ← *((const byte*[PLAYFIELD_LINES#0+3]) screen_lines#0 + (byte~) render_playfield::$1) to:render_playfield::@2 render_playfield::@2: scope:[render_playfield] from render_playfield::@1 render_playfield::@2 - [74] (byte) render_playfield::c#2 ← phi( render_playfield::@1/(byte/signed byte/word/signed word/dword/signed dword) 0 render_playfield::@2/(byte) render_playfield::c#1 ) - [74] (byte*) render_playfield::line#2 ← phi( render_playfield::@1/(byte*) render_playfield::line#0 render_playfield::@2/(byte*) render_playfield::line#1 ) - [74] (byte) render_playfield::i#2 ← phi( render_playfield::@1/(byte) render_playfield::i#3 render_playfield::@2/(byte) render_playfield::i#1 ) - [75] *((byte*) render_playfield::line#2) ← *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) render_playfield::i#2) - [76] (byte*) render_playfield::line#1 ← ++ (byte*) render_playfield::line#2 - [77] (byte) render_playfield::i#1 ← ++ (byte) render_playfield::i#2 - [78] (byte) render_playfield::c#1 ← ++ (byte) render_playfield::c#2 - [79] if((byte) render_playfield::c#1!=(const byte) PLAYFIELD_COLS#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_playfield::@2 + [75] (byte) render_playfield::c#2 ← phi( render_playfield::@1/(byte/signed byte/word/signed word/dword/signed dword) 0 render_playfield::@2/(byte) render_playfield::c#1 ) + [75] (byte*) render_playfield::line#2 ← phi( render_playfield::@1/(byte*) render_playfield::line#0 render_playfield::@2/(byte*) render_playfield::line#1 ) + [75] (byte) render_playfield::i#2 ← phi( render_playfield::@1/(byte) render_playfield::i#3 render_playfield::@2/(byte) render_playfield::i#1 ) + [76] *((byte*) render_playfield::line#2) ← *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) render_playfield::i#2) + [77] (byte*) render_playfield::line#1 ← ++ (byte*) render_playfield::line#2 + [78] (byte) render_playfield::i#1 ← ++ (byte) render_playfield::i#2 + [79] (byte) render_playfield::c#1 ← ++ (byte) render_playfield::c#2 + [80] if((byte) render_playfield::c#1!=(const byte) PLAYFIELD_COLS#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_playfield::@2 to:render_playfield::@3 render_playfield::@3: scope:[render_playfield] from render_playfield::@2 - [80] (byte) render_playfield::l#1 ← ++ (byte) render_playfield::l#2 - [81] if((byte) render_playfield::l#1!=(const byte) PLAYFIELD_LINES#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_playfield::@1 + [81] (byte) render_playfield::l#1 ← ++ (byte) render_playfield::l#2 + [82] if((byte) render_playfield::l#1!=(const byte) PLAYFIELD_LINES#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_playfield::@1 to:render_playfield::@return render_playfield::@return: scope:[render_playfield] from render_playfield::@3 - [82] return + [83] return to:@return -play_move_rotate: scope:[play_move_rotate] from main::@29 - [83] if((byte) play_move_rotate::key_event#0==(const byte) KEY_Z#0) goto play_move_rotate::@1 +play_move_rotate: scope:[play_move_rotate] from main::@30 + [84] if((byte) play_move_rotate::key_event#0==(const byte) KEY_Z#0) goto play_move_rotate::@1 to:play_move_rotate::@6 play_move_rotate::@6: scope:[play_move_rotate] from play_move_rotate - [84] if((byte) play_move_rotate::key_event#0==(const byte) KEY_X#0) goto play_move_rotate::@2 + [85] 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 - [85] (byte*) current_piece_gfx#18 ← phi( play_move_rotate::@11/(byte*) current_piece_gfx#8 play_move_rotate::@14/(byte*) current_piece_gfx#17 play_move_rotate::@6/(byte*) current_piece_gfx#17 ) - [85] (byte) current_orientation#23 ← phi( play_move_rotate::@11/(byte) current_orientation#8 play_move_rotate::@14/(byte) current_orientation#18 play_move_rotate::@6/(byte) current_orientation#18 ) - [85] (byte) play_move_rotate::return#2 ← phi( play_move_rotate::@11/(byte/signed byte/word/signed word/dword/signed dword) 1 play_move_rotate::@14/(byte/signed byte/word/signed word/dword/signed dword) 0 play_move_rotate::@6/(byte/signed byte/word/signed word/dword/signed dword) 0 ) - [86] return + [86] (byte*) current_piece_gfx#18 ← phi( play_move_rotate::@11/(byte*) current_piece_gfx#8 play_move_rotate::@14/(byte*) current_piece_gfx#17 play_move_rotate::@6/(byte*) current_piece_gfx#17 ) + [86] (byte) current_orientation#23 ← phi( play_move_rotate::@11/(byte) current_orientation#8 play_move_rotate::@14/(byte) current_orientation#18 play_move_rotate::@6/(byte) current_orientation#18 ) + [86] (byte) play_move_rotate::return#2 ← phi( play_move_rotate::@11/(byte/signed byte/word/signed word/dword/signed dword) 1 play_move_rotate::@14/(byte/signed byte/word/signed word/dword/signed dword) 0 play_move_rotate::@6/(byte/signed byte/word/signed word/dword/signed dword) 0 ) + [87] return to:@return play_move_rotate::@2: scope:[play_move_rotate] from play_move_rotate::@6 - [87] (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 - [88] (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 + [88] (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 ← (byte) current_orientation#18 + (byte/signed byte/word/signed word/dword/signed dword) 16 + [89] (byte) play_move_rotate::orientation#2 ← (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 & (byte/signed byte/word/signed word/dword/signed dword) 63 to:play_move_rotate::@4 play_move_rotate::@4: scope:[play_move_rotate] from play_move_rotate::@1 play_move_rotate::@2 - [89] (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 ) - [90] (byte) collision::xpos#3 ← (byte) current_xpos#23 - [91] (byte) collision::ypos#3 ← (byte) current_ypos#16 - [92] (byte) collision::orientation#3 ← (byte) play_move_rotate::orientation#3 - [93] (byte*~) current_piece#73 ← (byte*) current_piece#13 - [94] call collision - [95] (byte) collision::return#13 ← (byte) collision::return#14 + [90] (byte) play_move_rotate::orientation#3 ← phi( play_move_rotate::@1/(byte) play_move_rotate::orientation#1 play_move_rotate::@2/(byte) play_move_rotate::orientation#2 ) + [91] (byte) collision::xpos#3 ← (byte) current_xpos#23 + [92] (byte) collision::ypos#3 ← (byte) current_ypos#16 + [93] (byte) collision::orientation#3 ← (byte) play_move_rotate::orientation#3 + [94] (byte*~) current_piece#74 ← (byte*) current_piece#13 + [95] call collision + [96] (byte) collision::return#13 ← (byte) collision::return#14 to:play_move_rotate::@14 play_move_rotate::@14: scope:[play_move_rotate] from play_move_rotate::@4 - [96] (byte~) play_move_rotate::$6 ← (byte) collision::return#13 - [97] if((byte~) play_move_rotate::$6!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_move_rotate::@return + [97] (byte~) play_move_rotate::$6 ← (byte) collision::return#13 + [98] if((byte~) play_move_rotate::$6!=(const byte) COLLISION_NONE#0) goto play_move_rotate::@return to:play_move_rotate::@11 play_move_rotate::@11: scope:[play_move_rotate] from play_move_rotate::@14 - [98] (byte) current_orientation#8 ← (byte) play_move_rotate::orientation#3 - [99] (byte*) current_piece_gfx#8 ← (byte*) current_piece#13 + (byte) current_orientation#8 + [99] (byte) current_orientation#8 ← (byte) play_move_rotate::orientation#3 + [100] (byte*) current_piece_gfx#8 ← (byte*) current_piece#13 + (byte) current_orientation#8 to:play_move_rotate::@return play_move_rotate::@1: scope:[play_move_rotate] from play_move_rotate - [100] (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 ← (byte) current_orientation#18 - (byte/signed byte/word/signed word/dword/signed dword) 16 - [101] (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 + [101] (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 ← (byte) current_orientation#18 - (byte/signed byte/word/signed word/dword/signed dword) 16 + [102] (byte) play_move_rotate::orientation#1 ← (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 & (byte/signed byte/word/signed word/dword/signed dword) 63 to:play_move_rotate::@4 collision: scope:[collision] from play_move_down::@12 play_move_leftright::@1 play_move_leftright::@7 play_move_rotate::@4 - [102] (byte) collision::xpos#5 ← phi( play_move_down::@12/(byte) collision::xpos#0 play_move_leftright::@1/(byte) collision::xpos#1 play_move_leftright::@7/(byte) collision::xpos#2 play_move_rotate::@4/(byte) collision::xpos#3 ) - [102] (byte) collision::ypos#4 ← phi( play_move_down::@12/(byte) collision::ypos#0 play_move_leftright::@1/(byte) collision::ypos#1 play_move_leftright::@7/(byte) collision::ypos#2 play_move_rotate::@4/(byte) collision::ypos#3 ) - [102] (byte) collision::orientation#4 ← phi( play_move_down::@12/(byte) collision::orientation#0 play_move_leftright::@1/(byte) collision::orientation#1 play_move_leftright::@7/(byte) collision::orientation#2 play_move_rotate::@4/(byte) collision::orientation#3 ) - [102] (byte*) current_piece#15 ← phi( play_move_down::@12/(byte*~) current_piece#70 play_move_leftright::@1/(byte*~) current_piece#71 play_move_leftright::@7/(byte*~) current_piece#72 play_move_rotate::@4/(byte*~) current_piece#73 ) - [103] (byte*) collision::piece_gfx#0 ← (byte*) current_piece#15 + (byte) collision::orientation#4 - [104] (byte) collision::ypos2#0 ← (byte) collision::ypos#4 << (byte/signed byte/word/signed word/dword/signed dword) 1 + [103] (byte) collision::xpos#5 ← phi( play_move_down::@12/(byte) collision::xpos#0 play_move_leftright::@1/(byte) collision::xpos#1 play_move_leftright::@7/(byte) collision::xpos#2 play_move_rotate::@4/(byte) collision::xpos#3 ) + [103] (byte) collision::ypos#4 ← phi( play_move_down::@12/(byte) collision::ypos#0 play_move_leftright::@1/(byte) collision::ypos#1 play_move_leftright::@7/(byte) collision::ypos#2 play_move_rotate::@4/(byte) collision::ypos#3 ) + [103] (byte) collision::orientation#4 ← phi( play_move_down::@12/(byte) collision::orientation#0 play_move_leftright::@1/(byte) collision::orientation#1 play_move_leftright::@7/(byte) collision::orientation#2 play_move_rotate::@4/(byte) collision::orientation#3 ) + [103] (byte*) current_piece#15 ← phi( play_move_down::@12/(byte*~) current_piece#71 play_move_leftright::@1/(byte*~) current_piece#72 play_move_leftright::@7/(byte*~) current_piece#73 play_move_rotate::@4/(byte*~) current_piece#74 ) + [104] (byte*) collision::piece_gfx#0 ← (byte*) current_piece#15 + (byte) collision::orientation#4 + [105] (byte) collision::ypos2#0 ← (byte) collision::ypos#4 << (byte/signed byte/word/signed word/dword/signed dword) 1 to:collision::@1 collision::@1: scope:[collision] from collision collision::@20 - [105] (byte) collision::l#6 ← phi( collision/(byte/signed byte/word/signed word/dword/signed dword) 0 collision::@20/(byte) collision::l#1 ) - [105] (byte) collision::i#3 ← phi( collision/(byte/signed byte/word/signed word/dword/signed dword) 0 collision::@20/(byte~) collision::i#11 ) - [105] (byte) collision::ypos2#2 ← phi( collision/(byte) collision::ypos2#0 collision::@20/(byte) collision::ypos2#1 ) - [106] (byte*) collision::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) collision::ypos2#2) - [107] (byte~) collision::col#9 ← (byte) collision::xpos#5 + [106] (byte) collision::l#6 ← phi( collision/(byte/signed byte/word/signed word/dword/signed dword) 0 collision::@20/(byte) collision::l#1 ) + [106] (byte) collision::i#3 ← phi( collision/(byte/signed byte/word/signed word/dword/signed dword) 0 collision::@20/(byte~) collision::i#11 ) + [106] (byte) collision::ypos2#2 ← phi( collision/(byte) collision::ypos2#0 collision::@20/(byte) collision::ypos2#1 ) + [107] (byte*) collision::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) collision::ypos2#2) + [108] (byte~) collision::col#9 ← (byte) collision::xpos#5 to:collision::@2 collision::@2: scope:[collision] from collision::@1 collision::@21 - [108] (byte) collision::c#2 ← phi( collision::@1/(byte/signed byte/word/signed word/dword/signed dword) 0 collision::@21/(byte) collision::c#1 ) - [108] (byte) collision::col#2 ← phi( collision::@1/(byte~) collision::col#9 collision::@21/(byte) collision::col#1 ) - [108] (byte) collision::i#2 ← phi( collision::@1/(byte) collision::i#3 collision::@21/(byte~) collision::i#13 ) - [109] (byte) collision::i#1 ← ++ (byte) collision::i#2 - [110] if(*((byte*) collision::piece_gfx#0 + (byte) collision::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto collision::@3 + [109] (byte) collision::c#2 ← phi( collision::@1/(byte/signed byte/word/signed word/dword/signed dword) 0 collision::@21/(byte) collision::c#1 ) + [109] (byte) collision::col#2 ← phi( collision::@1/(byte~) collision::col#9 collision::@21/(byte) collision::col#1 ) + [109] (byte) collision::i#2 ← phi( collision::@1/(byte) collision::i#3 collision::@21/(byte~) collision::i#13 ) + [110] (byte) collision::i#1 ← ++ (byte) collision::i#2 + [111] if(*((byte*) collision::piece_gfx#0 + (byte) collision::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto collision::@3 to:collision::@8 collision::@8: scope:[collision] from collision::@2 - [111] if((byte) collision::ypos2#2<(byte/signed byte/word/signed word/dword/signed dword) 2*(const byte) PLAYFIELD_LINES#0) goto collision::@4 + [112] if((byte) collision::ypos2#2<(byte/signed byte/word/signed word/dword/signed dword) 2*(const byte) PLAYFIELD_LINES#0) goto collision::@4 to:collision::@return collision::@return: scope:[collision] from collision::@17 collision::@4 collision::@5 collision::@6 collision::@8 - [112] (byte) collision::return#14 ← phi( collision::@4/(const byte) COLLISION_LEFT#0 collision::@5/(const byte) COLLISION_RIGHT#0 collision::@6/(const byte) COLLISION_PLAYFIELD#0 collision::@17/(const byte) COLLISION_NONE#0 collision::@8/(const byte) COLLISION_BOTTOM#0 ) - [113] return + [113] (byte) collision::return#14 ← phi( collision::@4/(const byte) COLLISION_LEFT#0 collision::@5/(const byte) COLLISION_RIGHT#0 collision::@6/(const byte) COLLISION_PLAYFIELD#0 collision::@17/(const byte) COLLISION_NONE#0 collision::@8/(const byte) COLLISION_BOTTOM#0 ) + [114] return to:@return collision::@4: scope:[collision] from collision::@8 - [114] (byte~) collision::$7 ← (byte) collision::col#2 & (byte/word/signed word/dword/signed dword) 128 - [115] if((byte~) collision::$7==(byte/signed byte/word/signed word/dword/signed dword) 0) goto collision::@5 + [115] (byte~) collision::$7 ← (byte) collision::col#2 & (byte/word/signed word/dword/signed dword) 128 + [116] if((byte~) collision::$7==(byte/signed byte/word/signed word/dword/signed dword) 0) goto collision::@5 to:collision::@return collision::@5: scope:[collision] from collision::@4 - [116] if((byte) collision::col#2<(const byte) PLAYFIELD_COLS#0) goto collision::@6 + [117] if((byte) collision::col#2<(const byte) PLAYFIELD_COLS#0) goto collision::@6 to:collision::@return collision::@6: scope:[collision] from collision::@5 - [117] if(*((byte*) collision::playfield_line#0 + (byte) collision::col#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto collision::@3 + [118] if(*((byte*) collision::playfield_line#0 + (byte) collision::col#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto collision::@3 to:collision::@return collision::@3: scope:[collision] from collision::@2 collision::@6 - [118] (byte) collision::col#1 ← ++ (byte) collision::col#2 - [119] (byte) collision::c#1 ← ++ (byte) collision::c#2 - [120] if((byte) collision::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto collision::@21 + [119] (byte) collision::col#1 ← ++ (byte) collision::col#2 + [120] (byte) collision::c#1 ← ++ (byte) collision::c#2 + [121] if((byte) collision::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto collision::@21 to:collision::@17 collision::@17: scope:[collision] from collision::@3 - [121] (byte) collision::ypos2#1 ← (byte) collision::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 - [122] (byte) collision::l#1 ← ++ (byte) collision::l#6 - [123] if((byte) collision::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto collision::@20 + [122] (byte) collision::ypos2#1 ← (byte) collision::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 + [123] (byte) collision::l#1 ← ++ (byte) collision::l#6 + [124] if((byte) collision::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto collision::@20 to:collision::@return collision::@20: scope:[collision] from collision::@17 - [124] (byte~) collision::i#11 ← (byte) collision::i#1 + [125] (byte~) collision::i#11 ← (byte) collision::i#1 to:collision::@1 collision::@21: scope:[collision] from collision::@3 - [125] (byte~) collision::i#13 ← (byte) collision::i#1 + [126] (byte~) collision::i#13 ← (byte) collision::i#1 to:collision::@2 -play_move_leftright: scope:[play_move_leftright] from main::@28 - [126] if((byte) play_move_leftright::key_event#0==(const byte) KEY_COMMA#0) goto play_move_leftright::@1 +play_move_leftright: scope:[play_move_leftright] from main::@29 + [127] if((byte) play_move_leftright::key_event#0==(const byte) KEY_COMMA#0) goto play_move_leftright::@1 to:play_move_leftright::@6 play_move_leftright::@6: scope:[play_move_leftright] from play_move_leftright - [127] if((byte) play_move_leftright::key_event#0!=(const byte) KEY_DOT#0) goto play_move_leftright::@return + [128] 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 - [128] (byte) collision::xpos#2 ← (byte) current_xpos#19 + (byte/signed byte/word/signed word/dword/signed dword) 1 - [129] (byte) collision::ypos#2 ← (byte) current_ypos#16 - [130] (byte) collision::orientation#2 ← (byte) current_orientation#18 - [131] (byte*~) current_piece#72 ← (byte*) current_piece#13 - [132] call collision - [133] (byte) collision::return#12 ← (byte) collision::return#14 + [129] (byte) collision::xpos#2 ← (byte) current_xpos#19 + (byte/signed byte/word/signed word/dword/signed dword) 1 + [130] (byte) collision::ypos#2 ← (byte) current_ypos#16 + [131] (byte) collision::orientation#2 ← (byte) current_orientation#18 + [132] (byte*~) current_piece#73 ← (byte*) current_piece#13 + [133] call collision + [134] (byte) collision::return#12 ← (byte) collision::return#14 to:play_move_leftright::@15 play_move_leftright::@15: scope:[play_move_leftright] from play_move_leftright::@7 - [134] (byte~) play_move_leftright::$4 ← (byte) collision::return#12 - [135] if((byte~) play_move_leftright::$4!=(const byte) COLLISION_NONE#0) goto play_move_leftright::@return + [135] (byte~) play_move_leftright::$4 ← (byte) collision::return#12 + [136] if((byte~) play_move_leftright::$4!=(const byte) COLLISION_NONE#0) goto play_move_leftright::@return to:play_move_leftright::@8 play_move_leftright::@8: scope:[play_move_leftright] from play_move_leftright::@15 - [136] (byte) current_xpos#7 ← ++ (byte) current_xpos#19 + [137] (byte) current_xpos#7 ← ++ (byte) current_xpos#19 to:play_move_leftright::@return play_move_leftright::@return: scope:[play_move_leftright] from play_move_leftright::@11 play_move_leftright::@14 play_move_leftright::@15 play_move_leftright::@6 play_move_leftright::@8 - [137] (byte) current_xpos#23 ← phi( play_move_leftright::@11/(byte) current_xpos#9 play_move_leftright::@15/(byte) current_xpos#19 play_move_leftright::@8/(byte) current_xpos#7 play_move_leftright::@14/(byte) current_xpos#19 play_move_leftright::@6/(byte) current_xpos#19 ) - [137] (byte) play_move_leftright::return#2 ← phi( play_move_leftright::@11/(byte/signed byte/word/signed word/dword/signed dword) 1 play_move_leftright::@15/(byte/signed byte/word/signed word/dword/signed dword) 0 play_move_leftright::@8/(byte/signed byte/word/signed word/dword/signed dword) 1 play_move_leftright::@14/(byte/signed byte/word/signed word/dword/signed dword) 0 play_move_leftright::@6/(byte/signed byte/word/signed word/dword/signed dword) 0 ) - [138] return + [138] (byte) current_xpos#23 ← phi( play_move_leftright::@11/(byte) current_xpos#9 play_move_leftright::@15/(byte) current_xpos#19 play_move_leftright::@8/(byte) current_xpos#7 play_move_leftright::@14/(byte) current_xpos#19 play_move_leftright::@6/(byte) current_xpos#19 ) + [138] (byte) play_move_leftright::return#2 ← phi( play_move_leftright::@11/(byte/signed byte/word/signed word/dword/signed dword) 1 play_move_leftright::@15/(byte/signed byte/word/signed word/dword/signed dword) 0 play_move_leftright::@8/(byte/signed byte/word/signed word/dword/signed dword) 1 play_move_leftright::@14/(byte/signed byte/word/signed word/dword/signed dword) 0 play_move_leftright::@6/(byte/signed byte/word/signed word/dword/signed dword) 0 ) + [139] return to:@return play_move_leftright::@1: scope:[play_move_leftright] from play_move_leftright - [139] (byte) collision::xpos#1 ← (byte) current_xpos#19 - (byte/signed byte/word/signed word/dword/signed dword) 1 - [140] (byte) collision::ypos#1 ← (byte) current_ypos#16 - [141] (byte) collision::orientation#1 ← (byte) current_orientation#18 - [142] (byte*~) current_piece#71 ← (byte*) current_piece#13 - [143] call collision - [144] (byte) collision::return#1 ← (byte) collision::return#14 + [140] (byte) collision::xpos#1 ← (byte) current_xpos#19 - (byte/signed byte/word/signed word/dword/signed dword) 1 + [141] (byte) collision::ypos#1 ← (byte) current_ypos#16 + [142] (byte) collision::orientation#1 ← (byte) current_orientation#18 + [143] (byte*~) current_piece#72 ← (byte*) current_piece#13 + [144] call collision + [145] (byte) collision::return#1 ← (byte) collision::return#14 to:play_move_leftright::@14 play_move_leftright::@14: scope:[play_move_leftright] from play_move_leftright::@1 - [145] (byte~) play_move_leftright::$8 ← (byte) collision::return#1 - [146] if((byte~) play_move_leftright::$8!=(const byte) COLLISION_NONE#0) goto play_move_leftright::@return + [146] (byte~) play_move_leftright::$8 ← (byte) collision::return#1 + [147] if((byte~) play_move_leftright::$8!=(const byte) COLLISION_NONE#0) goto play_move_leftright::@return to:play_move_leftright::@11 play_move_leftright::@11: scope:[play_move_leftright] from play_move_leftright::@14 - [147] (byte) current_xpos#9 ← -- (byte) current_xpos#19 + [148] (byte) current_xpos#9 ← -- (byte) current_xpos#19 to:play_move_leftright::@return -play_move_down: scope:[play_move_down] from main::@27 - [148] (byte) current_movedown_counter#10 ← ++ (byte) current_movedown_counter#15 - [149] if((byte) play_move_down::key_event#0!=(const byte) KEY_SPACE#0) goto play_move_down::@1 +play_move_down: scope:[play_move_down] from main::@28 + [149] (byte) current_movedown_counter#10 ← ++ (byte) current_movedown_counter#15 + [150] if((byte) play_move_down::key_event#0!=(const byte) KEY_SPACE#0) goto play_move_down::@1 to:play_move_down::@8 play_move_down::@8: scope:[play_move_down] from play_move_down - [150] phi() + [151] phi() to:play_move_down::@1 play_move_down::@1: scope:[play_move_down] from play_move_down play_move_down::@8 - [151] (byte) play_move_down::movedown#10 ← phi( play_move_down/(byte/signed byte/word/signed word/dword/signed dword) 0 play_move_down::@8/(byte/signed byte/word/signed word/dword/signed dword) 1 ) - [152] call keyboard_event_pressed - [153] (byte) keyboard_event_pressed::return#12 ← (byte) keyboard_event_pressed::return#11 + [152] (byte) play_move_down::movedown#10 ← phi( play_move_down/(byte/signed byte/word/signed word/dword/signed dword) 0 play_move_down::@8/(byte/signed byte/word/signed word/dword/signed dword) 1 ) + [153] call keyboard_event_pressed + [154] (byte) keyboard_event_pressed::return#12 ← (byte) keyboard_event_pressed::return#11 to:play_move_down::@17 play_move_down::@17: scope:[play_move_down] from play_move_down::@1 - [154] (byte~) play_move_down::$2 ← (byte) keyboard_event_pressed::return#12 - [155] if((byte~) play_move_down::$2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_move_down::@2 + [155] (byte~) play_move_down::$2 ← (byte) keyboard_event_pressed::return#12 + [156] if((byte~) play_move_down::$2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_move_down::@2 to:play_move_down::@9 play_move_down::@9: scope:[play_move_down] from play_move_down::@17 - [156] if((byte) current_movedown_counter#10<(const byte) current_movedown_fast#0) goto play_move_down::@2 + [157] if((byte) current_movedown_counter#10<(const byte) current_movedown_fast#0) goto play_move_down::@2 to:play_move_down::@10 play_move_down::@10: scope:[play_move_down] from play_move_down::@9 - [157] (byte) play_move_down::movedown#2 ← ++ (byte) play_move_down::movedown#10 + [158] (byte) play_move_down::movedown#2 ← ++ (byte) play_move_down::movedown#10 to:play_move_down::@2 play_move_down::@2: scope:[play_move_down] from play_move_down::@10 play_move_down::@17 play_move_down::@9 - [158] (byte) play_move_down::movedown#7 ← phi( play_move_down::@10/(byte) play_move_down::movedown#2 play_move_down::@17/(byte) play_move_down::movedown#10 play_move_down::@9/(byte) play_move_down::movedown#10 ) - [159] if((byte) current_movedown_counter#10<(const byte) current_movedown_slow#0) goto play_move_down::@4 + [159] (byte) play_move_down::movedown#7 ← phi( play_move_down::@10/(byte) play_move_down::movedown#2 play_move_down::@17/(byte) play_move_down::movedown#10 play_move_down::@9/(byte) play_move_down::movedown#10 ) + [160] if((byte) current_movedown_counter#10<(const byte) current_movedown_slow#0) goto play_move_down::@4 to:play_move_down::@11 play_move_down::@11: scope:[play_move_down] from play_move_down::@2 - [160] (byte) play_move_down::movedown#3 ← ++ (byte) play_move_down::movedown#7 + [161] (byte) play_move_down::movedown#3 ← ++ (byte) play_move_down::movedown#7 to:play_move_down::@4 play_move_down::@4: scope:[play_move_down] from play_move_down::@11 play_move_down::@2 - [161] (byte) play_move_down::movedown#6 ← phi( play_move_down::@11/(byte) play_move_down::movedown#3 play_move_down::@2/(byte) play_move_down::movedown#7 ) - [162] if((byte) play_move_down::movedown#6==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_move_down::@return + [162] (byte) play_move_down::movedown#6 ← phi( play_move_down::@11/(byte) play_move_down::movedown#3 play_move_down::@2/(byte) play_move_down::movedown#7 ) + [163] if((byte) play_move_down::movedown#6==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_move_down::@return to:play_move_down::@12 play_move_down::@12: scope:[play_move_down] from play_move_down::@4 - [163] (byte) collision::ypos#0 ← (byte) current_ypos#12 + (byte/signed byte/word/signed word/dword/signed dword) 1 - [164] (byte) collision::xpos#0 ← (byte) current_xpos#16 - [165] (byte) collision::orientation#0 ← (byte) current_orientation#15 - [166] (byte*~) current_piece#70 ← (byte*) current_piece#11 - [167] call collision - [168] (byte) collision::return#0 ← (byte) collision::return#14 + [164] (byte) collision::ypos#0 ← (byte) current_ypos#12 + (byte/signed byte/word/signed word/dword/signed dword) 1 + [165] (byte) collision::xpos#0 ← (byte) current_xpos#16 + [166] (byte) collision::orientation#0 ← (byte) current_orientation#15 + [167] (byte*~) current_piece#71 ← (byte*) current_piece#11 + [168] call collision + [169] (byte) collision::return#0 ← (byte) collision::return#14 to:play_move_down::@18 play_move_down::@18: scope:[play_move_down] from play_move_down::@12 - [169] (byte~) play_move_down::$12 ← (byte) collision::return#0 - [170] if((byte~) play_move_down::$12==(const byte) COLLISION_NONE#0) goto play_move_down::@6 + [170] (byte~) play_move_down::$12 ← (byte) collision::return#0 + [171] if((byte~) play_move_down::$12==(const byte) COLLISION_NONE#0) goto play_move_down::@6 to:play_move_down::@13 play_move_down::@13: scope:[play_move_down] from play_move_down::@18 - [171] phi() - [172] call lock_current + [172] phi() + [173] call lock_current to:play_move_down::@19 play_move_down::@19: scope:[play_move_down] from play_move_down::@13 - [173] phi() - [174] call remove_lines + [174] phi() + [175] call remove_lines to:play_move_down::@20 play_move_down::@20: scope:[play_move_down] from play_move_down::@19 - [175] phi() - [176] call spawn_current - [177] (byte*~) current_piece#74 ← (byte*)*((const word[]) PIECES#0 + (byte~) spawn_current::$3) + [176] phi() + [177] call spawn_current + [178] (byte*~) current_piece#75 ← (byte*)*((const word[]) PIECES#0 + (byte~) spawn_current::$3) to:play_move_down::@7 play_move_down::@7: scope:[play_move_down] from play_move_down::@20 play_move_down::@6 - [178] (byte) current_piece_color#23 ← phi( play_move_down::@20/(byte) current_piece_color#15 play_move_down::@6/(byte) current_piece_color#11 ) - [178] (byte) current_xpos#36 ← phi( play_move_down::@20/(byte/signed byte/word/signed word/dword/signed dword) 3 play_move_down::@6/(byte) current_xpos#16 ) - [178] (byte*) current_piece_gfx#29 ← phi( play_move_down::@20/(byte*) current_piece_gfx#10 play_move_down::@6/(byte*) current_piece_gfx#15 ) - [178] (byte) current_orientation#33 ← phi( play_move_down::@20/(byte/signed byte/word/signed word/dword/signed dword) 0 play_move_down::@6/(byte) current_orientation#15 ) - [178] (byte*) current_piece#23 ← phi( play_move_down::@20/(byte*~) current_piece#74 play_move_down::@6/(byte*) current_piece#11 ) - [178] (byte) current_ypos#31 ← phi( play_move_down::@20/(byte/signed byte/word/signed word/dword/signed dword) 0 play_move_down::@6/(byte) current_ypos#4 ) + [179] (byte) current_piece_color#23 ← phi( play_move_down::@20/(byte) current_piece_color#15 play_move_down::@6/(byte) current_piece_color#11 ) + [179] (byte) current_xpos#36 ← phi( play_move_down::@20/(byte/signed byte/word/signed word/dword/signed dword) 3 play_move_down::@6/(byte) current_xpos#16 ) + [179] (byte*) current_piece_gfx#29 ← phi( play_move_down::@20/(byte*) current_piece_gfx#10 play_move_down::@6/(byte*) current_piece_gfx#15 ) + [179] (byte) current_orientation#33 ← phi( play_move_down::@20/(byte/signed byte/word/signed word/dword/signed dword) 0 play_move_down::@6/(byte) current_orientation#15 ) + [179] (byte*) current_piece#23 ← phi( play_move_down::@20/(byte*~) current_piece#75 play_move_down::@6/(byte*) current_piece#11 ) + [179] (byte) current_ypos#31 ← phi( play_move_down::@20/(byte/signed byte/word/signed word/dword/signed dword) 0 play_move_down::@6/(byte) current_ypos#4 ) to:play_move_down::@return play_move_down::@return: scope:[play_move_down] from play_move_down::@4 play_move_down::@7 - [179] (byte) current_piece_color#13 ← phi( play_move_down::@4/(byte) current_piece_color#11 play_move_down::@7/(byte) current_piece_color#23 ) - [179] (byte) current_xpos#19 ← phi( play_move_down::@4/(byte) current_xpos#16 play_move_down::@7/(byte) current_xpos#36 ) - [179] (byte*) current_piece_gfx#17 ← phi( play_move_down::@4/(byte*) current_piece_gfx#15 play_move_down::@7/(byte*) current_piece_gfx#29 ) - [179] (byte) current_orientation#18 ← phi( play_move_down::@4/(byte) current_orientation#15 play_move_down::@7/(byte) current_orientation#33 ) - [179] (byte*) current_piece#13 ← phi( play_move_down::@4/(byte*) current_piece#11 play_move_down::@7/(byte*) current_piece#23 ) - [179] (byte) current_ypos#16 ← phi( play_move_down::@4/(byte) current_ypos#12 play_move_down::@7/(byte) current_ypos#31 ) - [179] (byte) current_movedown_counter#12 ← phi( play_move_down::@4/(byte) current_movedown_counter#10 play_move_down::@7/(byte/signed byte/word/signed word/dword/signed dword) 0 ) - [179] (byte) play_move_down::return#3 ← phi( play_move_down::@4/(byte/signed byte/word/signed word/dword/signed dword) 0 play_move_down::@7/(byte/signed byte/word/signed word/dword/signed dword) 1 ) - [180] return + [180] (byte) current_piece_color#13 ← phi( play_move_down::@4/(byte) current_piece_color#11 play_move_down::@7/(byte) current_piece_color#23 ) + [180] (byte) current_xpos#19 ← phi( play_move_down::@4/(byte) current_xpos#16 play_move_down::@7/(byte) current_xpos#36 ) + [180] (byte*) current_piece_gfx#17 ← phi( play_move_down::@4/(byte*) current_piece_gfx#15 play_move_down::@7/(byte*) current_piece_gfx#29 ) + [180] (byte) current_orientation#18 ← phi( play_move_down::@4/(byte) current_orientation#15 play_move_down::@7/(byte) current_orientation#33 ) + [180] (byte*) current_piece#13 ← phi( play_move_down::@4/(byte*) current_piece#11 play_move_down::@7/(byte*) current_piece#23 ) + [180] (byte) current_ypos#16 ← phi( play_move_down::@4/(byte) current_ypos#12 play_move_down::@7/(byte) current_ypos#31 ) + [180] (byte) current_movedown_counter#12 ← phi( play_move_down::@4/(byte) current_movedown_counter#10 play_move_down::@7/(byte/signed byte/word/signed word/dword/signed dword) 0 ) + [180] (byte) play_move_down::return#3 ← phi( play_move_down::@4/(byte/signed byte/word/signed word/dword/signed dword) 0 play_move_down::@7/(byte/signed byte/word/signed word/dword/signed dword) 1 ) + [181] return to:@return play_move_down::@6: scope:[play_move_down] from play_move_down::@18 - [181] (byte) current_ypos#4 ← ++ (byte) current_ypos#12 + [182] (byte) current_ypos#4 ← ++ (byte) current_ypos#12 to:play_move_down::@7 -spawn_current: scope:[spawn_current] from main::@22 play_move_down::@20 - [182] *((const byte*) BORDERCOL#0) ← ++ *((const byte*) BORDERCOL#0) +spawn_current: scope:[spawn_current] from main::@23 play_move_down::@20 + [183] phi() to:spawn_current::@1 spawn_current::@1: scope:[spawn_current] from spawn_current spawn_current::@7 - [183] (byte) spawn_current::piece_idx#2 ← phi( spawn_current/(byte/signed byte/word/signed word/dword/signed dword) 7 spawn_current::@7/(byte) spawn_current::piece_idx#1 ) - [184] if((byte) spawn_current::piece_idx#2==(byte/signed byte/word/signed word/dword/signed dword) 7) goto spawn_current::@2 + [184] (byte) spawn_current::piece_idx#2 ← phi( spawn_current/(byte/signed byte/word/signed word/dword/signed dword) 7 spawn_current::@7/(byte) spawn_current::piece_idx#1 ) + [185] if((byte) spawn_current::piece_idx#2==(byte/signed byte/word/signed word/dword/signed dword) 7) goto spawn_current::@2 to:spawn_current::@3 spawn_current::@3: scope:[spawn_current] from spawn_current::@1 - [185] *((const byte*) BORDERCOL#0) ← -- *((const byte*) BORDERCOL#0) [186] (byte~) spawn_current::$3 ← (byte) spawn_current::piece_idx#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [187] (byte*) current_piece_gfx#10 ← (byte*)*((const word[]) PIECES#0 + (byte~) spawn_current::$3) + (byte/signed byte/word/signed word/dword/signed dword) 0 [188] (byte) current_piece_color#15 ← *((const byte[]) PIECES_COLORS#0 + (byte) spawn_current::piece_idx#2) @@ -549,7 +549,7 @@ keyboard_event_pressed: scope:[keyboard_event_pressed] from keyboard_event_scan keyboard_event_pressed::@return: scope:[keyboard_event_pressed] from keyboard_event_pressed [259] return to:@return -keyboard_event_get: scope:[keyboard_event_get] from main::@26 +keyboard_event_get: scope:[keyboard_event_get] from main::@27 [260] if((byte) keyboard_events_size#13==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_get::@return to:keyboard_event_get::@3 keyboard_event_get::@3: scope:[keyboard_event_get] from keyboard_event_get @@ -676,75 +676,81 @@ keyboard_matrix_read: scope:[keyboard_matrix_read] from keyboard_event_scan::@1 keyboard_matrix_read::@return: scope:[keyboard_matrix_read] from keyboard_matrix_read [320] return to:@return -init: scope:[init] from main::@21 +tables_init: scope:[tables_init] from main::@22 [321] phi() - [322] call fill - to:init::@9 -init::@9: scope:[init] from init - [323] phi() - [324] call fill - to:init::@1 -init::@1: scope:[init] from init::@1 init::@9 - [325] (byte*) init::li#2 ← phi( init::@1/(byte*) init::li#1 init::@9/(const byte*) COLS#0+(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 15 ) - [325] (byte) init::i#2 ← phi( init::@1/(byte) init::i#1 init::@9/(byte/signed byte/word/signed word/dword/signed dword) 0 ) - [326] (byte~) init::$5 ← (byte) init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 - [327] *((const byte*[PLAYFIELD_LINES#0+3]) screen_lines#0 + (byte~) init::$5) ← (byte*) init::li#2 - [328] (byte*) init::li#1 ← (byte*) init::li#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 - [329] (byte) init::i#1 ← ++ (byte) init::i#2 - [330] if((byte) init::i#1!=(const byte) PLAYFIELD_LINES#0+(byte/signed byte/word/signed word/dword/signed dword) 2+(byte/signed byte/word/signed word/dword/signed dword) 1) goto init::@1 - to:init::@2 -init::@2: scope:[init] from init::@1 init::@2 - [331] (byte) init::idx#2 ← phi( init::@2/(byte) init::idx#1 init::@1/(byte/signed byte/word/signed word/dword/signed dword) 0 ) - [331] (byte*) init::pli#2 ← phi( init::@2/(byte*) init::pli#1 init::@1/(const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 ) - [331] (byte) init::j#2 ← phi( init::@2/(byte) init::j#1 init::@1/(byte/signed byte/word/signed word/dword/signed dword) 0 ) - [332] (byte~) init::$8 ← (byte) init::j#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 - [333] *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte~) init::$8) ← (byte*) init::pli#2 - [334] *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0 + (byte) init::j#2) ← (byte) init::idx#2 - [335] (byte*) init::pli#1 ← (byte*) init::pli#2 + (const byte) PLAYFIELD_COLS#0 - [336] (byte) init::idx#1 ← (byte) init::idx#2 + (const byte) PLAYFIELD_COLS#0 - [337] (byte) init::j#1 ← ++ (byte) init::j#2 - [338] if((byte) init::j#1!=(const byte) PLAYFIELD_LINES#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto init::@2 - to:init::@6 -init::@6: scope:[init] from init::@2 - [339] *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0+(const byte) PLAYFIELD_LINES#0) ← (const byte) PLAYFIELD_COLS#0*(const byte) PLAYFIELD_LINES#0 - to:init::@3 -init::@3: scope:[init] from init::@6 init::@7 - [340] (byte) init::l#4 ← phi( init::@6/(byte/signed byte/word/signed word/dword/signed dword) 0 init::@7/(byte) init::l#1 ) - [340] (byte*) init::line#4 ← phi( init::@6/(const byte*) COLS#0+(byte/signed byte/word/signed word/dword/signed dword) 14 init::@7/(byte*) init::line#1 ) - to:init::@4 -init::@4: scope:[init] from init::@3 init::@4 - [341] (byte) init::c#2 ← phi( init::@3/(byte/signed byte/word/signed word/dword/signed dword) 0 init::@4/(byte) init::c#1 ) - [342] (byte*~) init::$14 ← (byte*) init::line#4 + (byte) init::c#2 - [343] *((byte*~) init::$14) ← (const byte) DARK_GREY#0 - [344] (byte) init::c#1 ← ++ (byte) init::c#2 - [345] if((byte) init::c#1!=(const byte) PLAYFIELD_COLS#0+(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto init::@4 - to:init::@7 -init::@7: scope:[init] from init::@4 - [346] (byte*) init::line#1 ← (byte*) init::line#4 + (byte/signed byte/word/signed word/dword/signed dword) 40 - [347] (byte) init::l#1 ← ++ (byte) init::l#4 - [348] if((byte) init::l#1!=(const byte) PLAYFIELD_LINES#0+(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto init::@3 - to:init::@return -init::@return: scope:[init] from init::@7 - [349] return + to:tables_init::@1 +tables_init::@1: scope:[tables_init] from tables_init tables_init::@1 + [322] (byte) tables_init::idx#2 ← phi( tables_init/(byte/signed byte/word/signed word/dword/signed dword) 0 tables_init::@1/(byte) tables_init::idx#1 ) + [322] (byte*) tables_init::pli#2 ← phi( tables_init/(const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 tables_init::@1/(byte*) tables_init::pli#1 ) + [322] (byte) tables_init::j#2 ← phi( tables_init/(byte/signed byte/word/signed word/dword/signed dword) 0 tables_init::@1/(byte) tables_init::j#1 ) + [323] (byte~) tables_init::$1 ← (byte) tables_init::j#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 + [324] *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte~) tables_init::$1) ← (byte*) tables_init::pli#2 + [325] *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0 + (byte) tables_init::j#2) ← (byte) tables_init::idx#2 + [326] (byte*) tables_init::pli#1 ← (byte*) tables_init::pli#2 + (const byte) PLAYFIELD_COLS#0 + [327] (byte) tables_init::idx#1 ← (byte) tables_init::idx#2 + (const byte) PLAYFIELD_COLS#0 + [328] (byte) tables_init::j#1 ← ++ (byte) tables_init::j#2 + [329] if((byte) tables_init::j#1!=(const byte) PLAYFIELD_LINES#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto tables_init::@1 + to:tables_init::@2 +tables_init::@2: scope:[tables_init] from tables_init::@1 + [330] *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0+(const byte) PLAYFIELD_LINES#0) ← (const byte) PLAYFIELD_COLS#0*(const byte) PLAYFIELD_LINES#0 + to:tables_init::@return +tables_init::@return: scope:[tables_init] from tables_init::@2 + [331] return to:@return -fill: scope:[fill] from init init::@9 - [350] (byte) fill::val#3 ← phi( init/(byte/word/signed word/dword/signed dword) 160 init::@9/(const byte) BLACK#0 ) - [350] (byte*) fill::addr#0 ← phi( init/(const byte*) SCREEN#0 init::@9/(const byte*) COLS#0 ) - [351] (byte*) fill::end#0 ← (byte*) fill::addr#0 + (word/signed word/dword/signed dword) 1000 +render_init: scope:[render_init] from main::@21 + [332] phi() + [333] call fill + to:render_init::@7 +render_init::@7: scope:[render_init] from render_init + [334] phi() + [335] call fill + to:render_init::@1 +render_init::@1: scope:[render_init] from render_init::@1 render_init::@7 + [336] (byte*) render_init::li#2 ← phi( render_init::@1/(byte*) render_init::li#1 render_init::@7/(const byte*) COLS#0+(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 15 ) + [336] (byte) render_init::i#2 ← phi( render_init::@1/(byte) render_init::i#1 render_init::@7/(byte/signed byte/word/signed word/dword/signed dword) 0 ) + [337] (byte~) render_init::$5 ← (byte) render_init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 + [338] *((const byte*[PLAYFIELD_LINES#0+3]) screen_lines#0 + (byte~) render_init::$5) ← (byte*) render_init::li#2 + [339] (byte*) render_init::li#1 ← (byte*) render_init::li#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 + [340] (byte) render_init::i#1 ← ++ (byte) render_init::i#2 + [341] if((byte) render_init::i#1!=(const byte) PLAYFIELD_LINES#0+(byte/signed byte/word/signed word/dword/signed dword) 2+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_init::@1 + to:render_init::@2 +render_init::@2: scope:[render_init] from render_init::@1 render_init::@5 + [342] (byte) render_init::l#4 ← phi( render_init::@1/(byte/signed byte/word/signed word/dword/signed dword) 0 render_init::@5/(byte) render_init::l#1 ) + [342] (byte*) render_init::line#4 ← phi( render_init::@1/(const byte*) COLS#0+(byte/signed byte/word/signed word/dword/signed dword) 14 render_init::@5/(byte*) render_init::line#1 ) + to:render_init::@3 +render_init::@3: scope:[render_init] from render_init::@2 render_init::@3 + [343] (byte) render_init::c#2 ← phi( render_init::@2/(byte/signed byte/word/signed word/dword/signed dword) 0 render_init::@3/(byte) render_init::c#1 ) + [344] (byte*~) render_init::$10 ← (byte*) render_init::line#4 + (byte) render_init::c#2 + [345] *((byte*~) render_init::$10) ← (const byte) DARK_GREY#0 + [346] (byte) render_init::c#1 ← ++ (byte) render_init::c#2 + [347] if((byte) render_init::c#1!=(const byte) PLAYFIELD_COLS#0+(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_init::@3 + to:render_init::@5 +render_init::@5: scope:[render_init] from render_init::@3 + [348] (byte*) render_init::line#1 ← (byte*) render_init::line#4 + (byte/signed byte/word/signed word/dword/signed dword) 40 + [349] (byte) render_init::l#1 ← ++ (byte) render_init::l#4 + [350] if((byte) render_init::l#1!=(const byte) PLAYFIELD_LINES#0+(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_init::@2 + to:render_init::@return +render_init::@return: scope:[render_init] from render_init::@5 + [351] return + to:@return +fill: scope:[fill] from render_init render_init::@7 + [352] (byte) fill::val#3 ← phi( render_init/(byte/word/signed word/dword/signed dword) 160 render_init::@7/(const byte) BLACK#0 ) + [352] (byte*) fill::addr#0 ← phi( render_init/(const byte*) SCREEN#0 render_init::@7/(const byte*) COLS#0 ) + [353] (byte*) fill::end#0 ← (byte*) fill::addr#0 + (word/signed word/dword/signed dword) 1000 to:fill::@1 fill::@1: scope:[fill] from fill fill::@1 - [352] (byte*) fill::addr#2 ← phi( fill/(byte*) fill::addr#0 fill::@1/(byte*) fill::addr#1 ) - [353] *((byte*) fill::addr#2) ← (byte) fill::val#3 - [354] (byte*) fill::addr#1 ← ++ (byte*) fill::addr#2 - [355] if((byte*) fill::addr#1!=(byte*) fill::end#0) goto fill::@1 + [354] (byte*) fill::addr#2 ← phi( fill/(byte*) fill::addr#0 fill::@1/(byte*) fill::addr#1 ) + [355] *((byte*) fill::addr#2) ← (byte) fill::val#3 + [356] (byte*) fill::addr#1 ← ++ (byte*) fill::addr#2 + [357] if((byte*) fill::addr#1!=(byte*) fill::end#0) goto fill::@1 to:fill::@return fill::@return: scope:[fill] from fill::@1 - [356] return + [358] return to:@return sid_rnd_init: scope:[sid_rnd_init] from main - [357] *((const word*) SID_VOICE3_FREQ#0) ← (word/dword/signed dword) 65535 - [358] *((const byte*) SID_VOICE3_CONTROL#0) ← (const byte) SID_CONTROL_NOISE#0 + [359] *((const word*) SID_VOICE3_FREQ#0) ← (word/dword/signed dword) 65535 + [360] *((const byte*) SID_VOICE3_CONTROL#0) ← (const byte) SID_CONTROL_NOISE#0 to:sid_rnd_init::@return sid_rnd_init::@return: scope:[sid_rnd_init] from sid_rnd_init - [359] return + [361] return to:@return diff --git a/src/test/ref/examples/tetris/tetris.log b/src/test/ref/examples/tetris/tetris.log index 64b3a6ec7..c0753e4e6 100644 --- a/src/test/ref/examples/tetris/tetris.log +++ b/src/test/ref/examples/tetris/tetris.log @@ -1,6 +1,7 @@ Resolved forward reference COLLISION_NONE to (byte) COLLISION_NONE Resolved forward reference COLLISION_NONE to (byte) COLLISION_NONE Resolved forward reference COLLISION_NONE to (byte) COLLISION_NONE +Resolved forward reference COLLISION_NONE to (byte) COLLISION_NONE Inlined call (byte~) vicSelectGfxBank::$0 ← call toDd00 (byte*) vicSelectGfxBank::gfx CONTROL FLOW GRAPH SSA @@ -16,10 +17,10 @@ CONTROL FLOW GRAPH SSA (byte) DARK_GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) 11 (byte) LIGHT_GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) 15 to:@4 -fill: scope:[fill] from init init::@9 - (byte) fill::val#3 ← phi( init/(byte) fill::val#0 init::@9/(byte) fill::val#1 ) - (word) fill::size#2 ← phi( init/(word) fill::size#0 init::@9/(word) fill::size#1 ) - (byte*) fill::start#2 ← phi( init/(byte*) fill::start#0 init::@9/(byte*) fill::start#1 ) +fill: scope:[fill] from render_init render_init::@7 + (byte) fill::val#3 ← phi( render_init/(byte) fill::val#0 render_init::@7/(byte) fill::val#1 ) + (word) fill::size#2 ← phi( render_init/(word) fill::size#0 render_init::@7/(word) fill::size#1 ) + (byte*) fill::start#2 ← phi( render_init/(byte*) fill::start#0 render_init::@7/(byte*) fill::start#1 ) (byte*~) fill::$0 ← (byte*) fill::start#2 + (word) fill::size#2 (byte*) fill::end#0 ← (byte*~) fill::$0 (byte*) fill::addr#0 ← (byte*) fill::start#2 @@ -194,14 +195,14 @@ keyboard_event_scan::@19: scope:[keyboard_event_scan] from keyboard_event_scan: *((byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#6) ← (byte) keyboard_event_scan::row_scan#3 to:keyboard_event_scan::@3 keyboard_event_scan::@20: scope:[keyboard_event_scan] from keyboard_event_scan::@3 - (byte) keyboard_events_size#69 ← phi( keyboard_event_scan::@3/(byte) keyboard_events_size#55 ) + (byte) keyboard_events_size#70 ← phi( keyboard_event_scan::@3/(byte) keyboard_events_size#55 ) (byte) keyboard_modifiers#1 ← (byte/signed byte/word/signed word/dword/signed dword) 0 (byte) keyboard_event_pressed::keycode#0 ← (byte) KEY_LSHIFT#0 call keyboard_event_pressed (byte) keyboard_event_pressed::return#0 ← (byte) keyboard_event_pressed::return#5 to:keyboard_event_scan::@26 keyboard_event_scan::@26: scope:[keyboard_event_scan] from keyboard_event_scan::@20 - (byte) keyboard_events_size#68 ← phi( keyboard_event_scan::@20/(byte) keyboard_events_size#69 ) + (byte) keyboard_events_size#68 ← phi( keyboard_event_scan::@20/(byte) keyboard_events_size#70 ) (byte) keyboard_modifiers#18 ← phi( keyboard_event_scan::@20/(byte) keyboard_modifiers#1 ) (byte) keyboard_event_pressed::return#7 ← phi( keyboard_event_scan::@20/(byte) keyboard_event_pressed::return#0 ) (byte~) keyboard_event_scan::$14 ← (byte) keyboard_event_pressed::return#7 @@ -305,8 +306,8 @@ keyboard_event_pressed::@return: scope:[keyboard_event_pressed] from keyboard_e (byte) keyboard_event_pressed::return#5 ← (byte) keyboard_event_pressed::return#11 return to:@return -keyboard_event_get: scope:[keyboard_event_get] from main::@26 - (byte) keyboard_events_size#14 ← phi( main::@26/(byte) keyboard_events_size#6 ) +keyboard_event_get: scope:[keyboard_event_get] from main::@27 + (byte) keyboard_events_size#14 ← phi( main::@27/(byte) keyboard_events_size#6 ) (bool~) keyboard_event_get::$0 ← (byte) keyboard_events_size#14 == (byte/signed byte/word/signed word/dword/signed dword) 0 if((bool~) keyboard_event_get::$0) goto keyboard_event_get::@1 to:keyboard_event_get::@3 @@ -402,55 +403,67 @@ sid_rnd::@return: scope:[sid_rnd] from sid_rnd (byte/signed word/word/dword/signed dword~) $24 ← (byte) PLAYFIELD_LINES#0 + (byte/signed byte/word/signed word/dword/signed dword) 3 (byte*[$24]) screen_lines#0 ← { fill( $24, 0) } to:@17 -main: scope:[main] from @26 - (byte) current_movedown_counter#44 ← phi( @26/(byte) current_movedown_counter#20 ) - (byte) keyboard_modifiers#50 ← phi( @26/(byte) keyboard_modifiers#25 ) - (byte) keyboard_events_size#66 ← phi( @26/(byte) keyboard_events_size#28 ) - (byte) current_piece_color#38 ← phi( @26/(byte) current_piece_color#26 ) - (byte) current_ypos#51 ← phi( @26/(byte) current_ypos#39 ) - (byte) current_xpos#66 ← phi( @26/(byte) current_xpos#47 ) - (byte*) current_piece_gfx#53 ← phi( @26/(byte*) current_piece_gfx#36 ) - (byte) current_orientation#51 ← phi( @26/(byte) current_orientation#40 ) - (byte*) current_piece#42 ← phi( @26/(byte*) current_piece#29 ) - (byte*) SCREEN#3 ← phi( @26/(byte*) SCREEN#4 ) +main: scope:[main] from @27 + (byte) current_movedown_counter#45 ← phi( @27/(byte) current_movedown_counter#20 ) + (byte) keyboard_modifiers#51 ← phi( @27/(byte) keyboard_modifiers#25 ) + (byte) keyboard_events_size#69 ← phi( @27/(byte) keyboard_events_size#28 ) + (byte) current_piece_color#51 ← phi( @27/(byte) current_piece_color#26 ) + (byte) current_ypos#59 ← phi( @27/(byte) current_ypos#39 ) + (byte) current_xpos#79 ← phi( @27/(byte) current_xpos#47 ) + (byte*) current_piece_gfx#66 ← phi( @27/(byte*) current_piece_gfx#36 ) + (byte) current_orientation#61 ← phi( @27/(byte) current_orientation#40 ) + (byte*) current_piece#53 ← phi( @27/(byte*) current_piece#29 ) + (byte*) SCREEN#3 ← phi( @27/(byte*) SCREEN#4 ) call sid_rnd_init to:main::@21 main::@21: scope:[main] from main - (byte) current_movedown_counter#41 ← phi( main/(byte) current_movedown_counter#44 ) - (byte) keyboard_modifiers#48 ← phi( main/(byte) keyboard_modifiers#50 ) - (byte) keyboard_events_size#64 ← phi( main/(byte) keyboard_events_size#66 ) - (byte) current_piece_color#27 ← phi( main/(byte) current_piece_color#38 ) - (byte) current_ypos#40 ← phi( main/(byte) current_ypos#51 ) - (byte) current_xpos#48 ← phi( main/(byte) current_xpos#66 ) - (byte*) current_piece_gfx#37 ← phi( main/(byte*) current_piece_gfx#53 ) - (byte) current_orientation#41 ← phi( main/(byte) current_orientation#51 ) - (byte*) current_piece#30 ← phi( main/(byte*) current_piece#42 ) + (byte) current_movedown_counter#44 ← phi( main/(byte) current_movedown_counter#45 ) + (byte) keyboard_modifiers#50 ← phi( main/(byte) keyboard_modifiers#51 ) + (byte) keyboard_events_size#66 ← phi( main/(byte) keyboard_events_size#69 ) + (byte) current_piece_color#38 ← phi( main/(byte) current_piece_color#51 ) + (byte) current_ypos#51 ← phi( main/(byte) current_ypos#59 ) + (byte) current_xpos#66 ← phi( main/(byte) current_xpos#79 ) + (byte*) current_piece_gfx#53 ← phi( main/(byte*) current_piece_gfx#66 ) + (byte) current_orientation#51 ← phi( main/(byte) current_orientation#61 ) + (byte*) current_piece#42 ← phi( main/(byte*) current_piece#53 ) (byte*) SCREEN#2 ← phi( main/(byte*) SCREEN#3 ) asm { sei } - call init + call render_init to:main::@22 main::@22: scope:[main] from main::@21 - (byte) current_movedown_counter#37 ← phi( main::@21/(byte) current_movedown_counter#41 ) - (byte) keyboard_modifiers#45 ← phi( main::@21/(byte) keyboard_modifiers#48 ) - (byte) keyboard_events_size#57 ← phi( main::@21/(byte) keyboard_events_size#64 ) - (byte) current_piece_color#18 ← phi( main::@21/(byte) current_piece_color#27 ) - (byte) current_ypos#24 ← phi( main::@21/(byte) current_ypos#40 ) - (byte) current_xpos#30 ← phi( main::@21/(byte) current_xpos#48 ) - (byte*) current_piece_gfx#23 ← phi( main::@21/(byte*) current_piece_gfx#37 ) - (byte) current_orientation#26 ← phi( main::@21/(byte) current_orientation#41 ) - (byte*) current_piece#18 ← phi( main::@21/(byte*) current_piece#30 ) - call spawn_current + (byte) current_movedown_counter#41 ← phi( main::@21/(byte) current_movedown_counter#44 ) + (byte) keyboard_modifiers#48 ← phi( main::@21/(byte) keyboard_modifiers#50 ) + (byte) keyboard_events_size#64 ← phi( main::@21/(byte) keyboard_events_size#66 ) + (byte) current_piece_color#27 ← phi( main::@21/(byte) current_piece_color#38 ) + (byte) current_ypos#40 ← phi( main::@21/(byte) current_ypos#51 ) + (byte) current_xpos#48 ← phi( main::@21/(byte) current_xpos#66 ) + (byte*) current_piece_gfx#37 ← phi( main::@21/(byte*) current_piece_gfx#53 ) + (byte) current_orientation#41 ← phi( main::@21/(byte) current_orientation#51 ) + (byte*) current_piece#30 ← phi( main::@21/(byte*) current_piece#42 ) + call tables_init to:main::@23 main::@23: scope:[main] from main::@22 - (byte) current_movedown_counter#33 ← phi( main::@22/(byte) current_movedown_counter#37 ) - (byte) keyboard_modifiers#40 ← phi( main::@22/(byte) keyboard_modifiers#45 ) - (byte) keyboard_events_size#49 ← phi( main::@22/(byte) keyboard_events_size#57 ) - (byte) current_piece_color#9 ← phi( main::@22/(byte) current_piece_color#7 ) - (byte) current_ypos#10 ← phi( main::@22/(byte) current_ypos#8 ) - (byte) current_xpos#13 ← phi( main::@22/(byte) current_xpos#11 ) - (byte*) current_piece_gfx#12 ← phi( main::@22/(byte*) current_piece_gfx#10 ) - (byte) current_orientation#12 ← phi( main::@22/(byte) current_orientation#10 ) - (byte*) current_piece#9 ← phi( main::@22/(byte*) current_piece#7 ) + (byte) current_movedown_counter#37 ← phi( main::@22/(byte) current_movedown_counter#41 ) + (byte) keyboard_modifiers#45 ← phi( main::@22/(byte) keyboard_modifiers#48 ) + (byte) keyboard_events_size#57 ← phi( main::@22/(byte) keyboard_events_size#64 ) + (byte) current_piece_color#18 ← phi( main::@22/(byte) current_piece_color#27 ) + (byte) current_ypos#24 ← phi( main::@22/(byte) current_ypos#40 ) + (byte) current_xpos#30 ← phi( main::@22/(byte) current_xpos#48 ) + (byte*) current_piece_gfx#23 ← phi( main::@22/(byte*) current_piece_gfx#37 ) + (byte) current_orientation#26 ← phi( main::@22/(byte) current_orientation#41 ) + (byte*) current_piece#18 ← phi( main::@22/(byte*) current_piece#30 ) + call spawn_current + to:main::@24 +main::@24: scope:[main] from main::@23 + (byte) current_movedown_counter#33 ← phi( main::@23/(byte) current_movedown_counter#37 ) + (byte) keyboard_modifiers#40 ← phi( main::@23/(byte) keyboard_modifiers#45 ) + (byte) keyboard_events_size#49 ← phi( main::@23/(byte) keyboard_events_size#57 ) + (byte) current_piece_color#9 ← phi( main::@23/(byte) current_piece_color#7 ) + (byte) current_ypos#10 ← phi( main::@23/(byte) current_ypos#8 ) + (byte) current_xpos#13 ← phi( main::@23/(byte) current_xpos#11 ) + (byte*) current_piece_gfx#12 ← phi( main::@23/(byte*) current_piece_gfx#10 ) + (byte) current_orientation#12 ← phi( main::@23/(byte) current_orientation#10 ) + (byte*) current_piece#9 ← phi( main::@23/(byte*) current_piece#7 ) (byte*) current_piece#1 ← (byte*) current_piece#9 (byte) current_orientation#1 ← (byte) current_orientation#12 (byte*) current_piece_gfx#1 ← (byte*) current_piece_gfx#12 @@ -458,115 +471,115 @@ main::@23: scope:[main] from main::@22 (byte) current_ypos#1 ← (byte) current_ypos#10 (byte) current_piece_color#1 ← (byte) current_piece_color#9 call render_playfield - to:main::@24 -main::@24: scope:[main] from main::@23 - (byte) current_movedown_counter#27 ← phi( main::@23/(byte) current_movedown_counter#33 ) - (byte) keyboard_modifiers#33 ← phi( main::@23/(byte) keyboard_modifiers#40 ) - (byte) keyboard_events_size#39 ← phi( main::@23/(byte) keyboard_events_size#49 ) - (byte) current_piece_color#39 ← phi( main::@23/(byte) current_piece_color#1 ) - (byte) current_xpos#67 ← phi( main::@23/(byte) current_xpos#1 ) - (byte*) current_piece_gfx#54 ← phi( main::@23/(byte*) current_piece_gfx#1 ) - (byte) current_orientation#52 ← phi( main::@23/(byte) current_orientation#1 ) - (byte*) current_piece#43 ← phi( main::@23/(byte*) current_piece#1 ) - (byte) current_ypos#37 ← phi( main::@23/(byte) current_ypos#1 ) - call render_current to:main::@25 main::@25: scope:[main] from main::@24 - (byte) current_movedown_counter#22 ← phi( main::@24/(byte) current_movedown_counter#27 ) - (byte) keyboard_modifiers#30 ← phi( main::@24/(byte) keyboard_modifiers#33 ) - (byte) keyboard_events_size#33 ← phi( main::@24/(byte) keyboard_events_size#39 ) - (byte) current_piece_color#29 ← phi( main::@24/(byte) current_piece_color#39 ) - (byte) current_ypos#42 ← phi( main::@24/(byte) current_ypos#37 ) - (byte) current_xpos#50 ← phi( main::@24/(byte) current_xpos#67 ) - (byte*) current_piece_gfx#39 ← phi( main::@24/(byte*) current_piece_gfx#54 ) - (byte) current_orientation#43 ← phi( main::@24/(byte) current_orientation#52 ) - (byte*) current_piece#32 ← phi( main::@24/(byte*) current_piece#43 ) + (byte) current_movedown_counter#27 ← phi( main::@24/(byte) current_movedown_counter#33 ) + (byte) keyboard_modifiers#33 ← phi( main::@24/(byte) keyboard_modifiers#40 ) + (byte) keyboard_events_size#39 ← phi( main::@24/(byte) keyboard_events_size#49 ) + (byte) current_piece_color#39 ← phi( main::@24/(byte) current_piece_color#1 ) + (byte) current_xpos#67 ← phi( main::@24/(byte) current_xpos#1 ) + (byte*) current_piece_gfx#54 ← phi( main::@24/(byte*) current_piece_gfx#1 ) + (byte) current_orientation#52 ← phi( main::@24/(byte) current_orientation#1 ) + (byte*) current_piece#43 ← phi( main::@24/(byte*) current_piece#1 ) + (byte) current_ypos#37 ← phi( main::@24/(byte) current_ypos#1 ) + call render_current + to:main::@26 +main::@26: scope:[main] from main::@25 + (byte) current_movedown_counter#22 ← phi( main::@25/(byte) current_movedown_counter#27 ) + (byte) keyboard_modifiers#30 ← phi( main::@25/(byte) keyboard_modifiers#33 ) + (byte) keyboard_events_size#33 ← phi( main::@25/(byte) keyboard_events_size#39 ) + (byte) current_piece_color#29 ← phi( main::@25/(byte) current_piece_color#39 ) + (byte) current_ypos#42 ← phi( main::@25/(byte) current_ypos#37 ) + (byte) current_xpos#50 ← phi( main::@25/(byte) current_xpos#67 ) + (byte*) current_piece_gfx#39 ← phi( main::@25/(byte*) current_piece_gfx#54 ) + (byte) current_orientation#43 ← phi( main::@25/(byte) current_orientation#52 ) + (byte*) current_piece#32 ← phi( main::@25/(byte*) current_piece#43 ) to:main::@1 -main::@1: scope:[main] from main::@10 main::@25 - (byte) current_movedown_counter#15 ← phi( main::@10/(byte) current_movedown_counter#21 main::@25/(byte) current_movedown_counter#22 ) - (byte) keyboard_modifiers#24 ← phi( main::@10/(byte) keyboard_modifiers#29 main::@25/(byte) keyboard_modifiers#30 ) - (byte) keyboard_events_size#27 ← phi( main::@10/(byte) keyboard_events_size#32 main::@25/(byte) keyboard_events_size#33 ) - (byte) current_piece_color#20 ← phi( main::@10/(byte) current_piece_color#28 main::@25/(byte) current_piece_color#29 ) - (byte) current_ypos#26 ← phi( main::@10/(byte) current_ypos#41 main::@25/(byte) current_ypos#42 ) - (byte) current_xpos#32 ← phi( main::@10/(byte) current_xpos#49 main::@25/(byte) current_xpos#50 ) - (byte*) current_piece_gfx#26 ← phi( main::@10/(byte*) current_piece_gfx#38 main::@25/(byte*) current_piece_gfx#39 ) - (byte) current_orientation#29 ← phi( main::@10/(byte) current_orientation#42 main::@25/(byte) current_orientation#43 ) - (byte*) current_piece#20 ← phi( main::@10/(byte*) current_piece#31 main::@25/(byte*) current_piece#32 ) +main::@1: scope:[main] from main::@10 main::@26 + (byte) current_movedown_counter#15 ← phi( main::@10/(byte) current_movedown_counter#21 main::@26/(byte) current_movedown_counter#22 ) + (byte) keyboard_modifiers#24 ← phi( main::@10/(byte) keyboard_modifiers#29 main::@26/(byte) keyboard_modifiers#30 ) + (byte) keyboard_events_size#27 ← phi( main::@10/(byte) keyboard_events_size#32 main::@26/(byte) keyboard_events_size#33 ) + (byte) current_piece_color#20 ← phi( main::@10/(byte) current_piece_color#28 main::@26/(byte) current_piece_color#29 ) + (byte) current_ypos#26 ← phi( main::@10/(byte) current_ypos#41 main::@26/(byte) current_ypos#42 ) + (byte) current_xpos#32 ← phi( main::@10/(byte) current_xpos#49 main::@26/(byte) current_xpos#50 ) + (byte*) current_piece_gfx#26 ← phi( main::@10/(byte*) current_piece_gfx#38 main::@26/(byte*) current_piece_gfx#39 ) + (byte) current_orientation#29 ← phi( main::@10/(byte) current_orientation#42 main::@26/(byte) current_orientation#43 ) + (byte*) current_piece#20 ← phi( main::@10/(byte*) current_piece#31 main::@26/(byte*) current_piece#32 ) if(true) goto main::@2 to:main::@return main::@2: scope:[main] from main::@1 - (byte) current_piece_color#67 ← phi( main::@1/(byte) current_piece_color#20 ) - (byte) current_xpos#91 ← phi( main::@1/(byte) current_xpos#32 ) - (byte*) current_piece_gfx#79 ← phi( main::@1/(byte*) current_piece_gfx#26 ) - (byte) current_orientation#70 ← phi( main::@1/(byte) current_orientation#29 ) - (byte*) current_piece#64 ← phi( main::@1/(byte*) current_piece#20 ) - (byte) current_ypos#66 ← phi( main::@1/(byte) current_ypos#26 ) + (byte) current_piece_color#68 ← phi( main::@1/(byte) current_piece_color#20 ) + (byte) current_xpos#92 ← phi( main::@1/(byte) current_xpos#32 ) + (byte*) current_piece_gfx#80 ← phi( main::@1/(byte*) current_piece_gfx#26 ) + (byte) current_orientation#71 ← phi( main::@1/(byte) current_orientation#29 ) + (byte*) current_piece#65 ← phi( main::@1/(byte*) current_piece#20 ) + (byte) current_ypos#67 ← phi( main::@1/(byte) current_ypos#26 ) (byte) current_movedown_counter#42 ← phi( main::@1/(byte) current_movedown_counter#15 ) (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_color#60 ← phi( main::@2/(byte) current_piece_color#67 main::@5/(byte) current_piece_color#68 ) - (byte) current_xpos#86 ← phi( main::@2/(byte) current_xpos#91 main::@5/(byte) current_xpos#92 ) - (byte*) current_piece_gfx#74 ← phi( main::@2/(byte*) current_piece_gfx#79 main::@5/(byte*) current_piece_gfx#80 ) - (byte) current_orientation#65 ← phi( main::@2/(byte) current_orientation#70 main::@5/(byte) current_orientation#71 ) - (byte*) current_piece#59 ← phi( main::@2/(byte*) current_piece#64 main::@5/(byte*) current_piece#65 ) - (byte) current_ypos#62 ← phi( main::@2/(byte) current_ypos#66 main::@5/(byte) current_ypos#67 ) + (byte) current_piece_color#61 ← phi( main::@2/(byte) current_piece_color#68 main::@5/(byte) current_piece_color#69 ) + (byte) current_xpos#87 ← phi( main::@2/(byte) current_xpos#92 main::@5/(byte) current_xpos#93 ) + (byte*) current_piece_gfx#75 ← phi( main::@2/(byte*) current_piece_gfx#80 main::@5/(byte*) current_piece_gfx#81 ) + (byte) current_orientation#66 ← phi( main::@2/(byte) current_orientation#71 main::@5/(byte) current_orientation#72 ) + (byte*) current_piece#60 ← phi( main::@2/(byte*) current_piece#65 main::@5/(byte*) current_piece#66 ) + (byte) current_ypos#63 ← phi( main::@2/(byte) current_ypos#67 main::@5/(byte) current_ypos#68 ) (byte) current_movedown_counter#38 ← phi( main::@2/(byte) current_movedown_counter#42 main::@5/(byte) current_movedown_counter#43 ) (byte) keyboard_modifiers#34 ← phi( main::@2/(byte) keyboard_modifiers#41 main::@5/(byte) keyboard_modifiers#42 ) (byte) keyboard_events_size#40 ← phi( main::@2/(byte) keyboard_events_size#50 main::@5/(byte) keyboard_events_size#51 ) - (bool~) main::$5 ← *((byte*) RASTER#0) != (byte/word/signed word/dword/signed dword) 255 - if((bool~) main::$5) goto main::@5 + (bool~) main::$6 ← *((byte*) RASTER#0) != (byte/word/signed word/dword/signed dword) 255 + if((bool~) main::$6) goto main::@5 to:main::@7 main::@5: scope:[main] from main::@4 - (byte) current_piece_color#68 ← phi( main::@4/(byte) current_piece_color#60 ) - (byte) current_xpos#92 ← phi( main::@4/(byte) current_xpos#86 ) - (byte*) current_piece_gfx#80 ← phi( main::@4/(byte*) current_piece_gfx#74 ) - (byte) current_orientation#71 ← phi( main::@4/(byte) current_orientation#65 ) - (byte*) current_piece#65 ← phi( main::@4/(byte*) current_piece#59 ) - (byte) current_ypos#67 ← phi( main::@4/(byte) current_ypos#62 ) + (byte) current_piece_color#69 ← phi( main::@4/(byte) current_piece_color#61 ) + (byte) current_xpos#93 ← phi( main::@4/(byte) current_xpos#87 ) + (byte*) current_piece_gfx#81 ← phi( main::@4/(byte*) current_piece_gfx#75 ) + (byte) current_orientation#72 ← phi( main::@4/(byte) current_orientation#66 ) + (byte*) current_piece#66 ← phi( main::@4/(byte*) current_piece#60 ) + (byte) current_ypos#68 ← phi( main::@4/(byte) current_ypos#63 ) (byte) current_movedown_counter#43 ← phi( main::@4/(byte) current_movedown_counter#38 ) (byte) keyboard_modifiers#42 ← phi( main::@4/(byte) keyboard_modifiers#34 ) (byte) keyboard_events_size#51 ← phi( main::@4/(byte) keyboard_events_size#40 ) to:main::@4 main::@7: scope:[main] from main::@4 main::@8 - (byte) current_piece_color#51 ← phi( main::@4/(byte) current_piece_color#60 main::@8/(byte) current_piece_color#61 ) - (byte) current_xpos#79 ← phi( main::@4/(byte) current_xpos#86 main::@8/(byte) current_xpos#87 ) - (byte*) current_piece_gfx#66 ← phi( main::@4/(byte*) current_piece_gfx#74 main::@8/(byte*) current_piece_gfx#75 ) - (byte) current_orientation#61 ← phi( main::@4/(byte) current_orientation#65 main::@8/(byte) current_orientation#66 ) - (byte*) current_piece#53 ← phi( main::@4/(byte*) current_piece#59 main::@8/(byte*) current_piece#60 ) - (byte) current_ypos#59 ← phi( main::@4/(byte) current_ypos#62 main::@8/(byte) current_ypos#63 ) + (byte) current_piece_color#52 ← phi( main::@4/(byte) current_piece_color#61 main::@8/(byte) current_piece_color#62 ) + (byte) current_xpos#80 ← phi( main::@4/(byte) current_xpos#87 main::@8/(byte) current_xpos#88 ) + (byte*) current_piece_gfx#67 ← phi( main::@4/(byte*) current_piece_gfx#75 main::@8/(byte*) current_piece_gfx#76 ) + (byte) current_orientation#62 ← phi( main::@4/(byte) current_orientation#66 main::@8/(byte) current_orientation#67 ) + (byte*) current_piece#54 ← phi( main::@4/(byte*) current_piece#60 main::@8/(byte*) current_piece#61 ) + (byte) current_ypos#60 ← phi( main::@4/(byte) current_ypos#63 main::@8/(byte) current_ypos#64 ) (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#34 main::@8/(byte) keyboard_modifiers#35 ) (byte) keyboard_events_size#34 ← phi( main::@4/(byte) keyboard_events_size#40 main::@8/(byte) keyboard_events_size#41 ) - (bool~) main::$6 ← *((byte*) RASTER#0) != (byte/word/signed word/dword/signed dword) 254 - if((bool~) main::$6) goto main::@8 + (bool~) main::$7 ← *((byte*) RASTER#0) != (byte/word/signed word/dword/signed dword) 254 + if((bool~) main::$7) goto main::@8 to:main::@9 main::@8: scope:[main] from main::@7 - (byte) current_piece_color#61 ← phi( main::@7/(byte) current_piece_color#51 ) - (byte) current_xpos#87 ← phi( main::@7/(byte) current_xpos#79 ) - (byte*) current_piece_gfx#75 ← phi( main::@7/(byte*) current_piece_gfx#66 ) - (byte) current_orientation#66 ← phi( main::@7/(byte) current_orientation#61 ) - (byte*) current_piece#60 ← phi( main::@7/(byte*) current_piece#53 ) - (byte) current_ypos#63 ← phi( main::@7/(byte) current_ypos#59 ) + (byte) current_piece_color#62 ← phi( main::@7/(byte) current_piece_color#52 ) + (byte) current_xpos#88 ← phi( main::@7/(byte) current_xpos#80 ) + (byte*) current_piece_gfx#76 ← phi( main::@7/(byte*) current_piece_gfx#67 ) + (byte) current_orientation#67 ← phi( main::@7/(byte) current_orientation#62 ) + (byte*) current_piece#61 ← phi( main::@7/(byte*) current_piece#54 ) + (byte) current_ypos#64 ← phi( main::@7/(byte) current_ypos#60 ) (byte) current_movedown_counter#39 ← phi( main::@7/(byte) current_movedown_counter#34 ) (byte) keyboard_modifiers#35 ← phi( main::@7/(byte) keyboard_modifiers#31 ) (byte) keyboard_events_size#41 ← phi( main::@7/(byte) keyboard_events_size#34 ) to:main::@7 main::@9: scope:[main] from main::@7 - (byte) current_piece_color#40 ← phi( main::@7/(byte) current_piece_color#51 ) - (byte) current_xpos#68 ← phi( main::@7/(byte) current_xpos#79 ) - (byte*) current_piece_gfx#55 ← phi( main::@7/(byte*) current_piece_gfx#66 ) - (byte) current_orientation#53 ← phi( main::@7/(byte) current_orientation#61 ) - (byte*) current_piece#44 ← phi( main::@7/(byte*) current_piece#53 ) - (byte) current_ypos#52 ← phi( main::@7/(byte) current_ypos#59 ) + (byte) current_piece_color#40 ← phi( main::@7/(byte) current_piece_color#52 ) + (byte) current_xpos#68 ← phi( main::@7/(byte) current_xpos#80 ) + (byte*) current_piece_gfx#55 ← phi( main::@7/(byte*) current_piece_gfx#67 ) + (byte) current_orientation#53 ← phi( main::@7/(byte) current_orientation#62 ) + (byte*) current_piece#44 ← phi( main::@7/(byte*) current_piece#54 ) + (byte) current_ypos#52 ← phi( main::@7/(byte) current_ypos#60 ) (byte) current_movedown_counter#28 ← 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 ) *((byte*) BORDERCOL#0) ← ++ *((byte*) BORDERCOL#0) call keyboard_event_scan - to:main::@26 -main::@26: scope:[main] from main::@9 + to:main::@27 +main::@27: scope:[main] from main::@9 (byte) current_piece_color#30 ← phi( main::@9/(byte) current_piece_color#40 ) (byte) current_xpos#51 ← phi( main::@9/(byte) current_xpos#68 ) (byte*) current_piece_gfx#40 ← phi( main::@9/(byte*) current_piece_gfx#55 ) @@ -580,40 +593,40 @@ main::@26: scope:[main] from main::@9 (byte) keyboard_modifiers#7 ← (byte) keyboard_modifiers#15 call keyboard_event_get (byte) keyboard_event_get::return#3 ← (byte) keyboard_event_get::return#2 - to:main::@27 -main::@27: scope:[main] from main::@26 - (byte) keyboard_modifiers#49 ← phi( main::@26/(byte) keyboard_modifiers#7 ) - (byte) current_piece_color#19 ← phi( main::@26/(byte) current_piece_color#30 ) - (byte) current_xpos#31 ← phi( main::@26/(byte) current_xpos#51 ) - (byte*) current_piece_gfx#24 ← phi( main::@26/(byte*) current_piece_gfx#40 ) - (byte) current_orientation#27 ← phi( main::@26/(byte) current_orientation#44 ) - (byte*) current_piece#19 ← phi( main::@26/(byte*) current_piece#33 ) - (byte) current_ypos#25 ← phi( main::@26/(byte) current_ypos#43 ) - (byte) current_movedown_counter#14 ← phi( main::@26/(byte) current_movedown_counter#23 ) - (byte) keyboard_events_size#18 ← phi( main::@26/(byte) keyboard_events_size#5 ) - (byte) keyboard_event_get::return#5 ← phi( main::@26/(byte) keyboard_event_get::return#3 ) - (byte~) main::$8 ← (byte) keyboard_event_get::return#5 + to:main::@28 +main::@28: scope:[main] from main::@27 + (byte) keyboard_modifiers#49 ← phi( main::@27/(byte) keyboard_modifiers#7 ) + (byte) current_piece_color#19 ← phi( main::@27/(byte) current_piece_color#30 ) + (byte) current_xpos#31 ← phi( main::@27/(byte) current_xpos#51 ) + (byte*) current_piece_gfx#24 ← phi( main::@27/(byte*) current_piece_gfx#40 ) + (byte) current_orientation#27 ← phi( main::@27/(byte) current_orientation#44 ) + (byte*) current_piece#19 ← phi( main::@27/(byte*) current_piece#33 ) + (byte) current_ypos#25 ← phi( main::@27/(byte) current_ypos#43 ) + (byte) current_movedown_counter#14 ← phi( main::@27/(byte) current_movedown_counter#23 ) + (byte) keyboard_events_size#18 ← phi( main::@27/(byte) keyboard_events_size#5 ) + (byte) keyboard_event_get::return#5 ← phi( main::@27/(byte) keyboard_event_get::return#3 ) + (byte~) main::$9 ← (byte) keyboard_event_get::return#5 (byte) keyboard_events_size#7 ← (byte) keyboard_events_size#18 - (byte) main::key_event#0 ← (byte~) main::$8 + (byte) main::key_event#0 ← (byte~) main::$9 (byte) main::render#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 (byte) play_move_down::key_event#0 ← (byte) main::key_event#0 call play_move_down (byte) play_move_down::return#0 ← (byte) play_move_down::return#3 - to:main::@28 -main::@28: scope:[main] from main::@27 - (byte) keyboard_modifiers#46 ← phi( main::@27/(byte) keyboard_modifiers#49 ) - (byte) keyboard_events_size#58 ← phi( main::@27/(byte) keyboard_events_size#7 ) - (byte) main::key_event#1 ← phi( main::@27/(byte) main::key_event#0 ) - (byte) main::render#4 ← phi( main::@27/(byte) main::render#0 ) - (byte) current_piece_color#10 ← phi( main::@27/(byte) current_piece_color#5 ) - (byte) current_xpos#14 ← phi( main::@27/(byte) current_xpos#6 ) - (byte*) current_piece_gfx#13 ← phi( main::@27/(byte*) current_piece_gfx#6 ) - (byte) current_orientation#13 ← phi( main::@27/(byte) current_orientation#6 ) - (byte*) current_piece#10 ← phi( main::@27/(byte*) current_piece#5 ) - (byte) current_ypos#11 ← phi( main::@27/(byte) current_ypos#6 ) - (byte) current_movedown_counter#7 ← phi( main::@27/(byte) current_movedown_counter#5 ) - (byte) play_move_down::return#4 ← phi( main::@27/(byte) play_move_down::return#0 ) - (byte~) main::$9 ← (byte) play_move_down::return#4 + to:main::@29 +main::@29: scope:[main] from main::@28 + (byte) keyboard_modifiers#46 ← phi( main::@28/(byte) keyboard_modifiers#49 ) + (byte) keyboard_events_size#58 ← phi( main::@28/(byte) keyboard_events_size#7 ) + (byte) main::key_event#1 ← phi( main::@28/(byte) main::key_event#0 ) + (byte) main::render#4 ← phi( main::@28/(byte) main::render#0 ) + (byte) current_piece_color#10 ← phi( main::@28/(byte) current_piece_color#5 ) + (byte) current_xpos#14 ← phi( main::@28/(byte) current_xpos#6 ) + (byte*) current_piece_gfx#13 ← phi( main::@28/(byte*) current_piece_gfx#6 ) + (byte) current_orientation#13 ← phi( main::@28/(byte) current_orientation#6 ) + (byte*) current_piece#10 ← phi( main::@28/(byte*) current_piece#5 ) + (byte) current_ypos#11 ← phi( main::@28/(byte) current_ypos#6 ) + (byte) current_movedown_counter#7 ← phi( main::@28/(byte) current_movedown_counter#5 ) + (byte) play_move_down::return#4 ← phi( main::@28/(byte) play_move_down::return#0 ) + (byte~) main::$10 ← (byte) play_move_down::return#4 (byte) current_movedown_counter#1 ← (byte) current_movedown_counter#7 (byte) current_ypos#2 ← (byte) current_ypos#11 (byte*) current_piece#2 ← (byte*) current_piece#10 @@ -621,99 +634,97 @@ main::@28: scope:[main] from main::@27 (byte*) current_piece_gfx#2 ← (byte*) current_piece_gfx#13 (byte) current_xpos#2 ← (byte) current_xpos#14 (byte) current_piece_color#2 ← (byte) current_piece_color#10 - (byte) main::render#1 ← (byte) main::render#4 + (byte~) main::$9 + (byte) main::render#1 ← (byte) main::render#4 + (byte~) main::$10 (byte) play_move_leftright::key_event#0 ← (byte) main::key_event#1 call play_move_leftright (byte) play_move_leftright::return#0 ← (byte) play_move_leftright::return#2 - to:main::@29 -main::@29: scope:[main] from main::@28 - (byte) current_movedown_counter#35 ← phi( main::@28/(byte) current_movedown_counter#1 ) - (byte) keyboard_modifiers#43 ← phi( main::@28/(byte) keyboard_modifiers#46 ) - (byte) keyboard_events_size#52 ← phi( main::@28/(byte) keyboard_events_size#58 ) - (byte) current_piece_color#52 ← phi( main::@28/(byte) current_piece_color#2 ) - (byte*) current_piece#54 ← phi( main::@28/(byte*) current_piece#2 ) - (byte) current_ypos#58 ← phi( main::@28/(byte) current_ypos#2 ) - (byte*) current_piece_gfx#25 ← phi( main::@28/(byte*) current_piece_gfx#2 ) - (byte) current_orientation#28 ← phi( main::@28/(byte) current_orientation#2 ) - (byte) main::key_event#2 ← phi( main::@28/(byte) main::key_event#1 ) - (byte) main::render#5 ← phi( main::@28/(byte) main::render#1 ) - (byte) current_xpos#15 ← phi( main::@28/(byte) current_xpos#8 ) - (byte) play_move_leftright::return#5 ← phi( main::@28/(byte) play_move_leftright::return#0 ) - (byte~) main::$10 ← (byte) play_move_leftright::return#5 + to:main::@30 +main::@30: scope:[main] from main::@29 + (byte) current_movedown_counter#35 ← phi( main::@29/(byte) current_movedown_counter#1 ) + (byte) keyboard_modifiers#43 ← phi( main::@29/(byte) keyboard_modifiers#46 ) + (byte) keyboard_events_size#52 ← phi( main::@29/(byte) keyboard_events_size#58 ) + (byte) current_piece_color#53 ← phi( main::@29/(byte) current_piece_color#2 ) + (byte*) current_piece#55 ← phi( main::@29/(byte*) current_piece#2 ) + (byte) current_ypos#58 ← phi( main::@29/(byte) current_ypos#2 ) + (byte*) current_piece_gfx#25 ← phi( main::@29/(byte*) current_piece_gfx#2 ) + (byte) current_orientation#28 ← phi( main::@29/(byte) current_orientation#2 ) + (byte) main::key_event#2 ← phi( main::@29/(byte) main::key_event#1 ) + (byte) main::render#5 ← phi( main::@29/(byte) main::render#1 ) + (byte) current_xpos#15 ← phi( main::@29/(byte) current_xpos#8 ) + (byte) play_move_leftright::return#5 ← phi( main::@29/(byte) play_move_leftright::return#0 ) + (byte~) main::$11 ← (byte) play_move_leftright::return#5 (byte) current_xpos#3 ← (byte) current_xpos#15 - (byte) main::render#2 ← (byte) main::render#5 + (byte~) main::$10 + (byte) main::render#2 ← (byte) main::render#5 + (byte~) main::$11 (byte) play_move_rotate::key_event#0 ← (byte) main::key_event#2 call play_move_rotate (byte) play_move_rotate::return#0 ← (byte) play_move_rotate::return#2 - to:main::@30 -main::@30: scope:[main] from main::@29 - (byte) current_movedown_counter#29 ← phi( main::@29/(byte) current_movedown_counter#35 ) - (byte) keyboard_modifiers#36 ← phi( main::@29/(byte) keyboard_modifiers#43 ) - (byte) keyboard_events_size#42 ← phi( main::@29/(byte) keyboard_events_size#52 ) - (byte) current_piece_color#41 ← phi( main::@29/(byte) current_piece_color#52 ) - (byte) current_ypos#53 ← phi( main::@29/(byte) current_ypos#58 ) - (byte) current_xpos#69 ← phi( main::@29/(byte) current_xpos#3 ) - (byte*) current_piece#45 ← phi( main::@29/(byte*) current_piece#54 ) - (byte) main::render#6 ← phi( main::@29/(byte) main::render#2 ) - (byte*) current_piece_gfx#14 ← phi( main::@29/(byte*) current_piece_gfx#7 ) - (byte) current_orientation#14 ← phi( main::@29/(byte) current_orientation#7 ) - (byte) play_move_rotate::return#5 ← phi( main::@29/(byte) play_move_rotate::return#0 ) - (byte~) main::$11 ← (byte) play_move_rotate::return#5 + to:main::@31 +main::@31: scope:[main] from main::@30 + (byte) current_movedown_counter#29 ← phi( main::@30/(byte) current_movedown_counter#35 ) + (byte) keyboard_modifiers#36 ← phi( main::@30/(byte) keyboard_modifiers#43 ) + (byte) keyboard_events_size#42 ← phi( main::@30/(byte) keyboard_events_size#52 ) + (byte) current_piece_color#41 ← phi( main::@30/(byte) current_piece_color#53 ) + (byte) current_ypos#53 ← phi( main::@30/(byte) current_ypos#58 ) + (byte) current_xpos#69 ← phi( main::@30/(byte) current_xpos#3 ) + (byte*) current_piece#45 ← phi( main::@30/(byte*) current_piece#55 ) + (byte) main::render#6 ← phi( main::@30/(byte) main::render#2 ) + (byte*) current_piece_gfx#14 ← phi( main::@30/(byte*) current_piece_gfx#7 ) + (byte) current_orientation#14 ← phi( main::@30/(byte) current_orientation#7 ) + (byte) play_move_rotate::return#5 ← phi( main::@30/(byte) play_move_rotate::return#0 ) + (byte~) main::$12 ← (byte) play_move_rotate::return#5 (byte) current_orientation#3 ← (byte) current_orientation#14 (byte*) current_piece_gfx#3 ← (byte*) current_piece_gfx#14 - (byte) main::render#3 ← (byte) main::render#6 + (byte~) main::$11 - (bool~) main::$12 ← (byte) main::render#3 != (byte/signed byte/word/signed word/dword/signed dword) 0 - (bool~) main::$13 ← ! (bool~) main::$12 - if((bool~) main::$13) goto main::@10 + (byte) main::render#3 ← (byte) main::render#6 + (byte~) main::$12 + (bool~) main::$13 ← (byte) main::render#3 != (byte/signed byte/word/signed word/dword/signed dword) 0 + (bool~) main::$14 ← ! (bool~) main::$13 + if((bool~) main::$14) goto main::@10 to:main::@19 -main::@10: scope:[main] from main::@30 main::@32 - (byte) current_movedown_counter#21 ← phi( main::@30/(byte) current_movedown_counter#29 main::@32/(byte) current_movedown_counter#30 ) - (byte) keyboard_modifiers#29 ← phi( main::@30/(byte) keyboard_modifiers#36 main::@32/(byte) keyboard_modifiers#37 ) - (byte) keyboard_events_size#32 ← phi( main::@30/(byte) keyboard_events_size#42 main::@32/(byte) keyboard_events_size#43 ) - (byte) current_piece_color#28 ← phi( main::@30/(byte) current_piece_color#41 main::@32/(byte) current_piece_color#42 ) - (byte) current_ypos#41 ← phi( main::@30/(byte) current_ypos#53 main::@32/(byte) current_ypos#54 ) - (byte) current_xpos#49 ← phi( main::@30/(byte) current_xpos#69 main::@32/(byte) current_xpos#70 ) - (byte*) current_piece_gfx#38 ← phi( main::@30/(byte*) current_piece_gfx#3 main::@32/(byte*) current_piece_gfx#56 ) - (byte) current_orientation#42 ← phi( main::@30/(byte) current_orientation#3 main::@32/(byte) current_orientation#54 ) - (byte*) current_piece#31 ← phi( main::@30/(byte*) current_piece#45 main::@32/(byte*) current_piece#46 ) +main::@10: scope:[main] from main::@31 main::@33 + (byte) current_movedown_counter#21 ← phi( main::@31/(byte) current_movedown_counter#29 main::@33/(byte) current_movedown_counter#30 ) + (byte) keyboard_modifiers#29 ← phi( main::@31/(byte) keyboard_modifiers#36 main::@33/(byte) keyboard_modifiers#37 ) + (byte) keyboard_events_size#32 ← phi( main::@31/(byte) keyboard_events_size#42 main::@33/(byte) keyboard_events_size#43 ) + (byte) current_piece_color#28 ← phi( main::@31/(byte) current_piece_color#41 main::@33/(byte) current_piece_color#42 ) + (byte) current_ypos#41 ← phi( main::@31/(byte) current_ypos#53 main::@33/(byte) current_ypos#54 ) + (byte) current_xpos#49 ← phi( main::@31/(byte) current_xpos#69 main::@33/(byte) current_xpos#70 ) + (byte*) current_piece_gfx#38 ← phi( main::@31/(byte*) current_piece_gfx#3 main::@33/(byte*) current_piece_gfx#56 ) + (byte) current_orientation#42 ← phi( main::@31/(byte) current_orientation#3 main::@33/(byte) current_orientation#54 ) + (byte*) current_piece#31 ← phi( main::@31/(byte*) current_piece#45 main::@33/(byte*) current_piece#46 ) *((byte*) BORDERCOL#0) ← -- *((byte*) BORDERCOL#0) to:main::@1 -main::@19: scope:[main] from main::@30 - (byte) current_movedown_counter#40 ← phi( main::@30/(byte) current_movedown_counter#29 ) - (byte) keyboard_modifiers#47 ← phi( main::@30/(byte) keyboard_modifiers#36 ) - (byte) keyboard_events_size#59 ← phi( main::@30/(byte) keyboard_events_size#42 ) - (byte) current_piece_color#62 ← phi( main::@30/(byte) current_piece_color#41 ) - (byte*) current_piece_gfx#76 ← phi( main::@30/(byte*) current_piece_gfx#3 ) - (byte) current_orientation#67 ← phi( main::@30/(byte) current_orientation#3 ) - (byte*) current_piece#61 ← phi( main::@30/(byte*) current_piece#45 ) - (byte) current_xpos#80 ← phi( main::@30/(byte) current_xpos#69 ) - (byte) current_ypos#44 ← phi( main::@30/(byte) current_ypos#53 ) - *((byte*) BORDERCOL#0) ← ++ *((byte*) BORDERCOL#0) +main::@19: scope:[main] from main::@31 + (byte) current_movedown_counter#40 ← phi( main::@31/(byte) current_movedown_counter#29 ) + (byte) keyboard_modifiers#47 ← phi( main::@31/(byte) keyboard_modifiers#36 ) + (byte) keyboard_events_size#59 ← phi( main::@31/(byte) keyboard_events_size#42 ) + (byte) current_piece_color#63 ← phi( main::@31/(byte) current_piece_color#41 ) + (byte*) current_piece_gfx#77 ← phi( main::@31/(byte*) current_piece_gfx#3 ) + (byte) current_orientation#68 ← phi( main::@31/(byte) current_orientation#3 ) + (byte*) current_piece#62 ← phi( main::@31/(byte*) current_piece#45 ) + (byte) current_xpos#81 ← phi( main::@31/(byte) current_xpos#69 ) + (byte) current_ypos#44 ← phi( main::@31/(byte) current_ypos#53 ) call render_playfield - to:main::@31 -main::@31: scope:[main] from main::@19 + to:main::@32 +main::@32: 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#47 ) (byte) keyboard_events_size#53 ← phi( main::@19/(byte) keyboard_events_size#59 ) - (byte) current_piece_color#53 ← phi( main::@19/(byte) current_piece_color#62 ) - (byte*) current_piece_gfx#67 ← phi( main::@19/(byte*) current_piece_gfx#76 ) - (byte) current_orientation#62 ← phi( main::@19/(byte) current_orientation#67 ) - (byte*) current_piece#55 ← phi( main::@19/(byte*) current_piece#61 ) - (byte) current_xpos#77 ← phi( main::@19/(byte) current_xpos#80 ) + (byte) current_piece_color#54 ← phi( main::@19/(byte) current_piece_color#63 ) + (byte*) current_piece_gfx#68 ← phi( main::@19/(byte*) current_piece_gfx#77 ) + (byte) current_orientation#63 ← phi( main::@19/(byte) current_orientation#68 ) + (byte*) current_piece#56 ← phi( main::@19/(byte*) current_piece#62 ) + (byte) current_xpos#77 ← phi( main::@19/(byte) current_xpos#81 ) (byte) current_ypos#38 ← phi( main::@19/(byte) current_ypos#44 ) call render_current - to:main::@32 -main::@32: scope:[main] from main::@31 - (byte) current_movedown_counter#30 ← phi( main::@31/(byte) current_movedown_counter#36 ) - (byte) keyboard_modifiers#37 ← phi( main::@31/(byte) keyboard_modifiers#44 ) - (byte) keyboard_events_size#43 ← phi( main::@31/(byte) keyboard_events_size#53 ) - (byte) current_piece_color#42 ← phi( main::@31/(byte) current_piece_color#53 ) - (byte) current_ypos#54 ← phi( main::@31/(byte) current_ypos#38 ) - (byte) current_xpos#70 ← phi( main::@31/(byte) current_xpos#77 ) - (byte*) current_piece_gfx#56 ← phi( main::@31/(byte*) current_piece_gfx#67 ) - (byte) current_orientation#54 ← phi( main::@31/(byte) current_orientation#62 ) - (byte*) current_piece#46 ← phi( main::@31/(byte*) current_piece#55 ) - *((byte*) BORDERCOL#0) ← -- *((byte*) BORDERCOL#0) + to:main::@33 +main::@33: scope:[main] from main::@32 + (byte) current_movedown_counter#30 ← phi( main::@32/(byte) current_movedown_counter#36 ) + (byte) keyboard_modifiers#37 ← phi( main::@32/(byte) keyboard_modifiers#44 ) + (byte) keyboard_events_size#43 ← phi( main::@32/(byte) keyboard_events_size#53 ) + (byte) current_piece_color#42 ← phi( main::@32/(byte) current_piece_color#54 ) + (byte) current_ypos#54 ← phi( main::@32/(byte) current_ypos#38 ) + (byte) current_xpos#70 ← phi( main::@32/(byte) current_xpos#77 ) + (byte*) current_piece_gfx#56 ← phi( main::@32/(byte*) current_piece_gfx#68 ) + (byte) current_orientation#54 ← phi( main::@32/(byte) current_orientation#63 ) + (byte*) current_piece#46 ← phi( main::@32/(byte*) current_piece#56 ) to:main::@10 main::@return: scope:[main] from main::@1 (byte) current_movedown_counter#8 ← phi( main::@1/(byte) current_movedown_counter#15 ) @@ -736,15 +747,15 @@ main::@return: scope:[main] from main::@1 (byte) current_movedown_counter#2 ← (byte) current_movedown_counter#8 return to:@return -play_move_down: scope:[play_move_down] from main::@27 - (byte) current_piece_color#69 ← phi( main::@27/(byte) current_piece_color#19 ) - (byte*) current_piece_gfx#81 ← phi( main::@27/(byte*) current_piece_gfx#24 ) - (byte*) current_piece#66 ← phi( main::@27/(byte*) current_piece#19 ) - (byte) current_orientation#68 ← phi( main::@27/(byte) current_orientation#27 ) - (byte) current_xpos#88 ← phi( main::@27/(byte) current_xpos#31 ) - (byte) current_ypos#64 ← phi( main::@27/(byte) current_ypos#25 ) - (byte) play_move_down::key_event#1 ← phi( main::@27/(byte) play_move_down::key_event#0 ) - (byte) current_movedown_counter#9 ← phi( main::@27/(byte) current_movedown_counter#14 ) +play_move_down: scope:[play_move_down] from main::@28 + (byte) current_piece_color#70 ← phi( main::@28/(byte) current_piece_color#19 ) + (byte*) current_piece_gfx#82 ← phi( main::@28/(byte*) current_piece_gfx#24 ) + (byte*) current_piece#67 ← phi( main::@28/(byte*) current_piece#19 ) + (byte) current_orientation#69 ← phi( main::@28/(byte) current_orientation#27 ) + (byte) current_xpos#89 ← phi( main::@28/(byte) current_xpos#31 ) + (byte) current_ypos#65 ← phi( main::@28/(byte) current_ypos#25 ) + (byte) play_move_down::key_event#1 ← phi( main::@28/(byte) play_move_down::key_event#0 ) + (byte) current_movedown_counter#9 ← phi( main::@28/(byte) current_movedown_counter#14 ) (byte) current_movedown_counter#3 ← ++ (byte) current_movedown_counter#9 (byte) play_move_down::movedown#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 (bool~) play_move_down::$0 ← (byte) play_move_down::key_event#1 == (byte) KEY_SPACE#0 @@ -752,12 +763,12 @@ play_move_down: scope:[play_move_down] from main::@27 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_color#63 ← phi( play_move_down/(byte) current_piece_color#69 play_move_down::@8/(byte) current_piece_color#70 ) - (byte*) current_piece_gfx#77 ← phi( play_move_down/(byte*) current_piece_gfx#81 play_move_down::@8/(byte*) current_piece_gfx#82 ) - (byte*) current_piece#62 ← phi( play_move_down/(byte*) current_piece#66 play_move_down::@8/(byte*) current_piece#67 ) - (byte) current_orientation#63 ← phi( play_move_down/(byte) current_orientation#68 play_move_down::@8/(byte) current_orientation#69 ) - (byte) current_xpos#81 ← phi( play_move_down/(byte) current_xpos#88 play_move_down::@8/(byte) current_xpos#89 ) - (byte) current_ypos#60 ← phi( play_move_down/(byte) current_ypos#64 play_move_down::@8/(byte) current_ypos#65 ) + (byte) current_piece_color#64 ← phi( play_move_down/(byte) current_piece_color#70 play_move_down::@8/(byte) current_piece_color#71 ) + (byte*) current_piece_gfx#78 ← phi( play_move_down/(byte*) current_piece_gfx#82 play_move_down::@8/(byte*) current_piece_gfx#83 ) + (byte*) current_piece#63 ← phi( play_move_down/(byte*) current_piece#67 play_move_down::@8/(byte*) current_piece#68 ) + (byte) current_orientation#64 ← phi( play_move_down/(byte) current_orientation#69 play_move_down::@8/(byte) current_orientation#70 ) + (byte) current_xpos#82 ← phi( play_move_down/(byte) current_xpos#89 play_move_down::@8/(byte) current_xpos#90 ) + (byte) current_ypos#61 ← 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#24 ← phi( play_move_down/(byte) current_movedown_counter#3 play_move_down::@8/(byte) current_movedown_counter#31 ) (byte) keyboard_event_pressed::keycode#4 ← (byte) KEY_SPACE#0 @@ -765,12 +776,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_color#55 ← phi( play_move_down::@1/(byte) current_piece_color#63 ) - (byte*) current_piece_gfx#69 ← phi( play_move_down::@1/(byte*) current_piece_gfx#77 ) - (byte*) current_piece#57 ← phi( play_move_down::@1/(byte*) current_piece#62 ) - (byte) current_orientation#56 ← phi( play_move_down::@1/(byte) current_orientation#63 ) - (byte) current_xpos#72 ← phi( play_move_down::@1/(byte) current_xpos#81 ) - (byte) current_ypos#56 ← phi( play_move_down::@1/(byte) current_ypos#60 ) + (byte) current_piece_color#56 ← phi( play_move_down::@1/(byte) current_piece_color#64 ) + (byte*) current_piece_gfx#70 ← phi( play_move_down::@1/(byte*) current_piece_gfx#78 ) + (byte*) current_piece#58 ← phi( play_move_down::@1/(byte*) current_piece#63 ) + (byte) current_orientation#56 ← phi( play_move_down::@1/(byte) current_orientation#64 ) + (byte) current_xpos#72 ← phi( play_move_down::@1/(byte) current_xpos#82 ) + (byte) current_ypos#56 ← phi( play_move_down::@1/(byte) current_ypos#61 ) (byte) play_move_down::movedown#10 ← phi( play_move_down::@1/(byte) play_move_down::movedown#12 ) (byte) current_movedown_counter#17 ← phi( play_move_down::@1/(byte) current_movedown_counter#24 ) (byte) keyboard_event_pressed::return#12 ← phi( play_move_down::@1/(byte) keyboard_event_pressed::return#6 ) @@ -780,20 +791,20 @@ 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_color#70 ← phi( play_move_down/(byte) current_piece_color#69 ) - (byte*) current_piece_gfx#82 ← phi( play_move_down/(byte*) current_piece_gfx#81 ) - (byte*) current_piece#67 ← phi( play_move_down/(byte*) current_piece#66 ) - (byte) current_orientation#69 ← phi( play_move_down/(byte) current_orientation#68 ) - (byte) current_xpos#89 ← phi( play_move_down/(byte) current_xpos#88 ) - (byte) current_ypos#65 ← phi( play_move_down/(byte) current_ypos#64 ) + (byte) current_piece_color#71 ← phi( play_move_down/(byte) current_piece_color#70 ) + (byte*) current_piece_gfx#83 ← phi( play_move_down/(byte*) current_piece_gfx#82 ) + (byte*) current_piece#68 ← phi( play_move_down/(byte*) current_piece#67 ) + (byte) current_orientation#70 ← phi( play_move_down/(byte) current_orientation#69 ) + (byte) current_xpos#90 ← phi( play_move_down/(byte) current_xpos#89 ) + (byte) current_ypos#66 ← phi( play_move_down/(byte) current_ypos#65 ) (byte) current_movedown_counter#31 ← phi( play_move_down/(byte) current_movedown_counter#3 ) (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_color#44 ← phi( play_move_down::@10/(byte) current_piece_color#54 play_move_down::@17/(byte) current_piece_color#55 play_move_down::@3/(byte) current_piece_color#56 ) - (byte*) current_piece_gfx#58 ← phi( play_move_down::@10/(byte*) current_piece_gfx#68 play_move_down::@17/(byte*) current_piece_gfx#69 play_move_down::@3/(byte*) current_piece_gfx#70 ) - (byte*) current_piece#48 ← phi( play_move_down::@10/(byte*) current_piece#56 play_move_down::@17/(byte*) current_piece#57 play_move_down::@3/(byte*) current_piece#58 ) + (byte) current_piece_color#44 ← phi( play_move_down::@10/(byte) current_piece_color#55 play_move_down::@17/(byte) current_piece_color#56 play_move_down::@3/(byte) current_piece_color#57 ) + (byte*) current_piece_gfx#58 ← 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#48 ← phi( play_move_down::@10/(byte*) current_piece#57 play_move_down::@17/(byte*) current_piece#58 play_move_down::@3/(byte*) current_piece#59 ) (byte) current_orientation#46 ← phi( play_move_down::@10/(byte) current_orientation#55 play_move_down::@17/(byte) current_orientation#56 play_move_down::@3/(byte) current_orientation#57 ) (byte) current_xpos#53 ← phi( play_move_down::@10/(byte) current_xpos#71 play_move_down::@17/(byte) current_xpos#72 play_move_down::@3/(byte) current_xpos#73 ) (byte) current_ypos#46 ← phi( play_move_down::@10/(byte) current_ypos#55 play_move_down::@17/(byte) current_ypos#56 play_move_down::@3/(byte) current_ypos#57 ) @@ -804,12 +815,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_color#64 ← phi( play_move_down::@17/(byte) current_piece_color#55 ) - (byte*) current_piece_gfx#78 ← phi( play_move_down::@17/(byte*) current_piece_gfx#69 ) - (byte*) current_piece#63 ← phi( play_move_down::@17/(byte*) current_piece#57 ) - (byte) current_orientation#64 ← phi( play_move_down::@17/(byte) current_orientation#56 ) - (byte) current_xpos#82 ← phi( play_move_down::@17/(byte) current_xpos#72 ) - (byte) current_ypos#61 ← phi( play_move_down::@17/(byte) current_ypos#56 ) + (byte) current_piece_color#65 ← phi( play_move_down::@17/(byte) current_piece_color#56 ) + (byte*) current_piece_gfx#79 ← phi( play_move_down::@17/(byte*) current_piece_gfx#70 ) + (byte*) current_piece#64 ← phi( play_move_down::@17/(byte*) current_piece#58 ) + (byte) current_orientation#65 ← phi( play_move_down::@17/(byte) current_orientation#56 ) + (byte) current_xpos#83 ← phi( play_move_down::@17/(byte) current_xpos#72 ) + (byte) current_ypos#62 ← phi( play_move_down::@17/(byte) current_ypos#56 ) (byte) play_move_down::movedown#8 ← phi( play_move_down::@17/(byte) play_move_down::movedown#10 ) (byte) current_movedown_counter#11 ← phi( play_move_down::@17/(byte) current_movedown_counter#17 ) (bool~) play_move_down::$5 ← (byte) current_movedown_counter#11 >= (byte) current_movedown_fast#0 @@ -817,22 +828,22 @@ 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_color#56 ← phi( play_move_down::@9/(byte) current_piece_color#64 ) - (byte*) current_piece_gfx#70 ← phi( play_move_down::@9/(byte*) current_piece_gfx#78 ) - (byte*) current_piece#58 ← phi( play_move_down::@9/(byte*) current_piece#63 ) - (byte) current_orientation#57 ← phi( play_move_down::@9/(byte) current_orientation#64 ) - (byte) current_xpos#73 ← phi( play_move_down::@9/(byte) current_xpos#82 ) - (byte) current_ypos#57 ← phi( play_move_down::@9/(byte) current_ypos#61 ) + (byte) current_piece_color#57 ← phi( play_move_down::@9/(byte) current_piece_color#65 ) + (byte*) current_piece_gfx#71 ← phi( play_move_down::@9/(byte*) current_piece_gfx#79 ) + (byte*) current_piece#59 ← phi( play_move_down::@9/(byte*) current_piece#64 ) + (byte) current_orientation#57 ← phi( play_move_down::@9/(byte) current_orientation#65 ) + (byte) current_xpos#73 ← phi( play_move_down::@9/(byte) current_xpos#83 ) + (byte) current_ypos#57 ← phi( play_move_down::@9/(byte) current_ypos#62 ) (byte) play_move_down::movedown#11 ← phi( play_move_down::@9/(byte) play_move_down::movedown#8 ) (byte) current_movedown_counter#18 ← phi( play_move_down::@9/(byte) current_movedown_counter#11 ) to:play_move_down::@2 play_move_down::@10: scope:[play_move_down] from play_move_down::@9 - (byte) current_piece_color#54 ← phi( play_move_down::@9/(byte) current_piece_color#64 ) - (byte*) current_piece_gfx#68 ← phi( play_move_down::@9/(byte*) current_piece_gfx#78 ) - (byte*) current_piece#56 ← phi( play_move_down::@9/(byte*) current_piece#63 ) - (byte) current_orientation#55 ← phi( play_move_down::@9/(byte) current_orientation#64 ) - (byte) current_xpos#71 ← phi( play_move_down::@9/(byte) current_xpos#82 ) - (byte) current_ypos#55 ← phi( play_move_down::@9/(byte) current_ypos#61 ) + (byte) current_piece_color#55 ← phi( play_move_down::@9/(byte) current_piece_color#65 ) + (byte*) current_piece_gfx#69 ← phi( play_move_down::@9/(byte*) current_piece_gfx#79 ) + (byte*) current_piece#57 ← phi( play_move_down::@9/(byte*) current_piece#64 ) + (byte) current_orientation#55 ← phi( play_move_down::@9/(byte) current_orientation#65 ) + (byte) current_xpos#71 ← phi( play_move_down::@9/(byte) current_xpos#83 ) + (byte) current_ypos#55 ← phi( play_move_down::@9/(byte) current_ypos#62 ) (byte) current_movedown_counter#16 ← phi( play_move_down::@9/(byte) current_movedown_counter#11 ) (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 @@ -872,8 +883,8 @@ play_move_down::@5: scope:[play_move_down] from play_move_down::@4 (byte) play_move_down::return#1 ← (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_color#57 ← phi( play_move_down::@4/(byte) current_piece_color#31 ) - (byte*) current_piece_gfx#71 ← phi( play_move_down::@4/(byte*) current_piece_gfx#41 ) + (byte) current_piece_color#58 ← phi( play_move_down::@4/(byte) current_piece_color#31 ) + (byte*) current_piece_gfx#72 ← phi( play_move_down::@4/(byte*) current_piece_gfx#41 ) (byte*) current_piece#25 ← phi( play_move_down::@4/(byte*) current_piece#34 ) (byte) current_orientation#16 ← phi( play_move_down::@4/(byte) current_orientation#30 ) (byte) current_xpos#17 ← phi( play_move_down::@4/(byte) current_xpos#33 ) @@ -886,9 +897,9 @@ play_move_down::@12: scope:[play_move_down] from play_move_down::@4 (byte) collision::return#0 ← (byte) collision::return#5 to:play_move_down::@18 play_move_down::@18: scope:[play_move_down] from play_move_down::@12 - (byte) current_piece_color#45 ← phi( play_move_down::@12/(byte) current_piece_color#57 ) + (byte) current_piece_color#45 ← phi( play_move_down::@12/(byte) current_piece_color#58 ) (byte) current_xpos#74 ← phi( play_move_down::@12/(byte) current_xpos#17 ) - (byte*) current_piece_gfx#59 ← phi( play_move_down::@12/(byte*) current_piece_gfx#71 ) + (byte*) current_piece_gfx#59 ← phi( play_move_down::@12/(byte*) current_piece_gfx#72 ) (byte) current_orientation#58 ← phi( play_move_down::@12/(byte) current_orientation#16 ) (byte*) current_piece#49 ← phi( play_move_down::@12/(byte*) current_piece#25 ) (byte) current_ypos#28 ← phi( play_move_down::@12/(byte) current_ypos#13 ) @@ -976,12 +987,12 @@ play_move_down::@return: scope:[play_move_down] from play_move_down::@5 play_mo (byte) current_piece_color#5 ← (byte) current_piece_color#13 return to:@return -play_move_leftright: scope:[play_move_leftright] from main::@28 - (byte*) current_piece#37 ← phi( main::@28/(byte*) current_piece#2 ) - (byte) current_orientation#34 ← phi( main::@28/(byte) current_orientation#2 ) - (byte) current_ypos#32 ← phi( main::@28/(byte) current_ypos#2 ) - (byte) current_xpos#37 ← phi( main::@28/(byte) current_xpos#2 ) - (byte) play_move_leftright::key_event#1 ← phi( main::@28/(byte) play_move_leftright::key_event#0 ) +play_move_leftright: scope:[play_move_leftright] from main::@29 + (byte*) current_piece#37 ← phi( main::@29/(byte*) current_piece#2 ) + (byte) current_orientation#34 ← phi( main::@29/(byte) current_orientation#2 ) + (byte) current_ypos#32 ← phi( main::@29/(byte) current_ypos#2 ) + (byte) current_xpos#37 ← phi( main::@29/(byte) current_xpos#2 ) + (byte) play_move_leftright::key_event#1 ← phi( main::@29/(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 to:play_move_leftright::@6 @@ -1065,19 +1076,19 @@ play_move_leftright::@11: scope:[play_move_leftright] from play_move_leftright: (byte) current_xpos#9 ← -- (byte) current_xpos#24 (byte) play_move_leftright::return#4 ← (byte/signed byte/word/signed word/dword/signed dword) 1 to:play_move_leftright::@return -play_move_rotate: scope:[play_move_rotate] from main::@29 - (byte*) current_piece_gfx#61 ← phi( main::@29/(byte*) current_piece_gfx#25 ) - (byte*) current_piece#51 ← phi( main::@29/(byte*) current_piece#54 ) - (byte) current_ypos#48 ← phi( main::@29/(byte) current_ypos#58 ) - (byte) current_xpos#59 ← phi( main::@29/(byte) current_xpos#3 ) - (byte) current_orientation#36 ← phi( main::@29/(byte) current_orientation#28 ) - (byte) play_move_rotate::key_event#1 ← phi( main::@29/(byte) play_move_rotate::key_event#0 ) +play_move_rotate: scope:[play_move_rotate] from main::@30 + (byte*) current_piece_gfx#61 ← phi( main::@30/(byte*) current_piece_gfx#25 ) + (byte*) current_piece#51 ← phi( main::@30/(byte*) current_piece#55 ) + (byte) current_ypos#48 ← phi( main::@30/(byte) current_ypos#58 ) + (byte) current_xpos#59 ← phi( main::@30/(byte) current_xpos#3 ) + (byte) current_orientation#36 ← phi( main::@30/(byte) current_orientation#28 ) + (byte) play_move_rotate::key_event#1 ← phi( main::@30/(byte) play_move_rotate::key_event#0 ) (byte) play_move_rotate::orientation#0 ← (byte/word/signed word/dword/signed dword) 128 (bool~) play_move_rotate::$0 ← (byte) play_move_rotate::key_event#1 == (byte) KEY_Z#0 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#72 ← phi( play_move_rotate/(byte*) current_piece_gfx#61 ) + (byte*) current_piece_gfx#73 ← phi( play_move_rotate/(byte*) current_piece_gfx#61 ) (byte*) current_piece#39 ← phi( play_move_rotate/(byte*) current_piece#51 ) (byte) current_ypos#34 ← phi( play_move_rotate/(byte) current_ypos#48 ) (byte) current_xpos#42 ← phi( play_move_rotate/(byte) current_xpos#59 ) @@ -1097,7 +1108,7 @@ play_move_rotate::@6: scope:[play_move_rotate] from play_move_rotate 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#73 ← phi( play_move_rotate::@6/(byte*) current_piece_gfx#44 ) + (byte*) current_piece_gfx#74 ← phi( play_move_rotate::@6/(byte*) current_piece_gfx#44 ) (byte*) current_piece#40 ← phi( play_move_rotate::@6/(byte*) current_piece#52 ) (byte) current_ypos#35 ← phi( play_move_rotate::@6/(byte) current_ypos#49 ) (byte) current_xpos#43 ← phi( play_move_rotate::@6/(byte) current_xpos#60 ) @@ -1121,7 +1132,7 @@ play_move_rotate::@return: scope:[play_move_rotate] from play_move_rotate::@11 return to:@return play_move_rotate::@4: scope:[play_move_rotate] from play_move_rotate::@1 play_move_rotate::@2 - (byte*) current_piece_gfx#62 ← phi( play_move_rotate::@1/(byte*) current_piece_gfx#72 play_move_rotate::@2/(byte*) current_piece_gfx#73 ) + (byte*) current_piece_gfx#62 ← phi( play_move_rotate::@1/(byte*) current_piece_gfx#73 play_move_rotate::@2/(byte*) current_piece_gfx#74 ) (byte) current_orientation#60 ← phi( play_move_rotate::@1/(byte) current_orientation#21 play_move_rotate::@2/(byte) current_orientation#22 ) (byte*) current_piece#28 ← phi( play_move_rotate::@1/(byte*) current_piece#39 play_move_rotate::@2/(byte*) current_piece#40 ) (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 ) @@ -1140,7 +1151,7 @@ play_move_rotate::@14: scope:[play_move_rotate] from play_move_rotate::@4 (byte) play_move_rotate::orientation#5 ← phi( play_move_rotate::@4/(byte) play_move_rotate::orientation#3 ) (byte) collision::return#13 ← phi( play_move_rotate::@4/(byte) collision::return#3 ) (byte~) play_move_rotate::$6 ← (byte) collision::return#13 - (bool~) play_move_rotate::$7 ← (byte~) play_move_rotate::$6 == (byte/signed byte/word/signed word/dword/signed dword) 0 + (bool~) play_move_rotate::$7 ← (byte~) play_move_rotate::$6 == (byte) COLLISION_NONE#0 (bool~) play_move_rotate::$8 ← ! (bool~) play_move_rotate::$7 if((bool~) play_move_rotate::$8) goto play_move_rotate::@5 to:play_move_rotate::@11 @@ -1173,7 +1184,7 @@ play_move_rotate::@11: scope:[play_move_rotate] from play_move_rotate::@14 (byte) COLLISION_BOTTOM#0 ← (byte/signed byte/word/signed word/dword/signed dword) 2 (byte) COLLISION_LEFT#0 ← (byte/signed byte/word/signed word/dword/signed dword) 4 (byte) COLLISION_RIGHT#0 ← (byte/signed byte/word/signed word/dword/signed dword) 8 - to:@26 + to:@27 collision: scope:[collision] from play_move_down::@12 play_move_leftright::@1 play_move_leftright::@7 play_move_rotate::@4 (byte) collision::xpos#5 ← phi( play_move_down::@12/(byte) collision::xpos#0 play_move_leftright::@1/(byte) collision::xpos#1 play_move_leftright::@7/(byte) collision::xpos#2 play_move_rotate::@4/(byte) collision::xpos#3 ) (byte) collision::ypos#4 ← phi( play_move_down::@12/(byte) collision::ypos#0 play_move_leftright::@1/(byte) collision::ypos#1 play_move_leftright::@7/(byte) collision::ypos#2 play_move_rotate::@4/(byte) collision::ypos#3 ) @@ -1397,8 +1408,7 @@ lock_current::@5: scope:[lock_current] from lock_current::@3 lock_current::@return: scope:[lock_current] from lock_current::@5 return to:@return -spawn_current: scope:[spawn_current] from main::@22 play_move_down::@20 - *((byte*) BORDERCOL#0) ← ++ *((byte*) BORDERCOL#0) +spawn_current: scope:[spawn_current] from main::@23 play_move_down::@20 (byte) spawn_current::piece_idx#0 ← (byte/signed byte/word/signed word/dword/signed dword) 7 to:spawn_current::@1 spawn_current::@1: scope:[spawn_current] from spawn_current spawn_current::@7 @@ -1418,7 +1428,6 @@ spawn_current::@7: scope:[spawn_current] from spawn_current::@2 to:spawn_current::@1 spawn_current::@3: scope:[spawn_current] from spawn_current::@1 (byte) spawn_current::piece_idx#3 ← phi( spawn_current::@1/(byte) spawn_current::piece_idx#2 ) - *((byte*) BORDERCOL#0) ← -- *((byte*) BORDERCOL#0) (byte~) spawn_current::$3 ← (byte) spawn_current::piece_idx#3 << (byte/signed byte/word/signed word/dword/signed dword) 1 (byte*) current_piece#6 ← ((byte*)) *((word[]) PIECES#0 + (byte~) spawn_current::$3) (byte) current_orientation#9 ← (byte/signed byte/word/signed word/dword/signed dword) 0 @@ -1582,91 +1591,96 @@ remove_line::@3: scope:[remove_line] from remove_line::@2 remove_line::@return: scope:[remove_line] from remove_line::@3 return to:@return -init: scope:[init] from main::@21 +tables_init: scope:[tables_init] from main::@22 + (byte) tables_init::idx#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte*) tables_init::pli#0 ← (byte[$22]) playfield#0 + (byte/signed word/word/dword/signed dword~) tables_init::$0 ← (byte) PLAYFIELD_LINES#0 - (byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) tables_init::j#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 + to:tables_init::@1 +tables_init::@1: scope:[tables_init] from tables_init tables_init::@1 + (byte) tables_init::idx#2 ← phi( tables_init/(byte) tables_init::idx#0 tables_init::@1/(byte) tables_init::idx#1 ) + (byte*) tables_init::pli#2 ← phi( tables_init/(byte*) tables_init::pli#0 tables_init::@1/(byte*) tables_init::pli#1 ) + (byte) tables_init::j#2 ← phi( tables_init/(byte) tables_init::j#0 tables_init::@1/(byte) tables_init::j#1 ) + (byte~) tables_init::$1 ← (byte) tables_init::j#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 + *((byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte~) tables_init::$1) ← (byte*) tables_init::pli#2 + *((byte[$23]) playfield_lines_idx#0 + (byte) tables_init::j#2) ← (byte) tables_init::idx#2 + (byte*) tables_init::pli#1 ← (byte*) tables_init::pli#2 + (byte) PLAYFIELD_COLS#0 + (byte) tables_init::idx#1 ← (byte) tables_init::idx#2 + (byte) PLAYFIELD_COLS#0 + (byte) tables_init::j#1 ← (byte) tables_init::j#2 + rangenext(0,tables_init::$0) + (bool~) tables_init::$2 ← (byte) tables_init::j#1 != rangelast(0,tables_init::$0) + if((bool~) tables_init::$2) goto tables_init::@1 + to:tables_init::@2 +tables_init::@2: scope:[tables_init] from tables_init::@1 + (byte~) tables_init::$3 ← (byte) PLAYFIELD_COLS#0 * (byte) PLAYFIELD_LINES#0 + *((byte[$23]) playfield_lines_idx#0 + (byte) PLAYFIELD_LINES#0) ← (byte~) tables_init::$3 + to:tables_init::@return +tables_init::@return: scope:[tables_init] from tables_init::@2 + return + to:@return +render_init: scope:[render_init] from main::@21 (byte*) SCREEN#1 ← phi( main::@21/(byte*) SCREEN#2 ) (byte*) fill::start#0 ← (byte*) SCREEN#1 (word) fill::size#0 ← (word/signed word/dword/signed dword) 1000 (byte) fill::val#0 ← (byte/word/signed word/dword/signed dword) 160 call fill - to:init::@9 -init::@9: scope:[init] from init + to:render_init::@7 +render_init::@7: scope:[render_init] from render_init (byte*) fill::start#1 ← (byte*) COLS#0 (word) fill::size#1 ← (word/signed word/dword/signed dword) 1000 (byte) fill::val#1 ← (byte) BLACK#0 call fill - to:init::@10 -init::@10: scope:[init] from init::@9 - (byte*~) init::$2 ← (byte*) COLS#0 + (byte/signed byte/word/signed word/dword/signed dword) 40 - (byte*~) init::$3 ← (byte*~) init::$2 + (byte/signed byte/word/signed word/dword/signed dword) 15 - (byte*) init::li#0 ← (byte*~) init::$3 - (byte/signed word/word/dword/signed dword~) init::$4 ← (byte) PLAYFIELD_LINES#0 + (byte/signed byte/word/signed word/dword/signed dword) 2 - (byte) init::i#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 - to:init::@1 -init::@1: scope:[init] from init::@1 init::@10 - (byte*) init::li#2 ← phi( init::@1/(byte*) init::li#1 init::@10/(byte*) init::li#0 ) - (byte) init::i#2 ← phi( init::@1/(byte) init::i#1 init::@10/(byte) init::i#0 ) - (byte~) init::$5 ← (byte) init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 - *((byte*[$24]) screen_lines#0 + (byte~) init::$5) ← (byte*) init::li#2 - (byte*) init::li#1 ← (byte*) init::li#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 - (byte) init::i#1 ← (byte) init::i#2 + rangenext(0,init::$4) - (bool~) init::$6 ← (byte) init::i#1 != rangelast(0,init::$4) - if((bool~) init::$6) goto init::@1 - to:init::@5 -init::@5: scope:[init] from init::@1 - (byte) init::idx#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 - (byte*) init::pli#0 ← (byte[$22]) playfield#0 - (byte/signed word/word/dword/signed dword~) init::$7 ← (byte) PLAYFIELD_LINES#0 - (byte/signed byte/word/signed word/dword/signed dword) 1 - (byte) init::j#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 - to:init::@2 -init::@2: scope:[init] from init::@2 init::@5 - (byte) init::idx#2 ← phi( init::@2/(byte) init::idx#1 init::@5/(byte) init::idx#0 ) - (byte*) init::pli#2 ← phi( init::@2/(byte*) init::pli#1 init::@5/(byte*) init::pli#0 ) - (byte) init::j#2 ← phi( init::@2/(byte) init::j#1 init::@5/(byte) init::j#0 ) - (byte~) init::$8 ← (byte) init::j#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 - *((byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte~) init::$8) ← (byte*) init::pli#2 - *((byte[$23]) playfield_lines_idx#0 + (byte) init::j#2) ← (byte) init::idx#2 - (byte*) init::pli#1 ← (byte*) init::pli#2 + (byte) PLAYFIELD_COLS#0 - (byte) init::idx#1 ← (byte) init::idx#2 + (byte) PLAYFIELD_COLS#0 - (byte) init::j#1 ← (byte) init::j#2 + rangenext(0,init::$7) - (bool~) init::$9 ← (byte) init::j#1 != rangelast(0,init::$7) - if((bool~) init::$9) goto init::@2 - to:init::@6 -init::@6: scope:[init] from init::@2 - (byte~) init::$10 ← (byte) PLAYFIELD_COLS#0 * (byte) PLAYFIELD_LINES#0 - *((byte[$23]) playfield_lines_idx#0 + (byte) PLAYFIELD_LINES#0) ← (byte~) init::$10 - (byte*~) init::$11 ← (byte*) COLS#0 + (byte/signed byte/word/signed word/dword/signed dword) 14 - (byte*) init::line#0 ← (byte*~) init::$11 - (byte/signed word/word/dword/signed dword~) init::$12 ← (byte) PLAYFIELD_LINES#0 + (byte/signed byte/word/signed word/dword/signed dword) 1 - (byte) init::l#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 - to:init::@3 -init::@3: scope:[init] from init::@6 init::@7 - (byte) init::l#4 ← phi( init::@6/(byte) init::l#0 init::@7/(byte) init::l#1 ) - (byte*) init::line#4 ← phi( init::@6/(byte*) init::line#0 init::@7/(byte*) init::line#1 ) - (byte/signed word/word/dword/signed dword~) init::$13 ← (byte) PLAYFIELD_COLS#0 + (byte/signed byte/word/signed word/dword/signed dword) 1 - (byte) init::c#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 - to:init::@4 -init::@4: scope:[init] from init::@3 init::@4 - (byte) init::l#3 ← phi( init::@3/(byte) init::l#4 init::@4/(byte) init::l#3 ) - (byte) init::c#2 ← phi( init::@3/(byte) init::c#0 init::@4/(byte) init::c#1 ) - (byte*) init::line#2 ← phi( init::@3/(byte*) init::line#4 init::@4/(byte*) init::line#2 ) - (byte*~) init::$14 ← (byte*) init::line#2 + (byte) init::c#2 - *((byte*~) init::$14) ← (byte) DARK_GREY#0 - (byte) init::c#1 ← (byte) init::c#2 + rangenext(0,init::$13) - (bool~) init::$15 ← (byte) init::c#1 != rangelast(0,init::$13) - if((bool~) init::$15) goto init::@4 - to:init::@7 -init::@7: scope:[init] from init::@4 - (byte) init::l#2 ← phi( init::@4/(byte) init::l#3 ) - (byte*) init::line#3 ← phi( init::@4/(byte*) init::line#2 ) - (byte*) init::line#1 ← (byte*) init::line#3 + (byte/signed byte/word/signed word/dword/signed dword) 40 - (byte) init::l#1 ← (byte) init::l#2 + rangenext(0,init::$12) - (bool~) init::$16 ← (byte) init::l#1 != rangelast(0,init::$12) - if((bool~) init::$16) goto init::@3 - to:init::@return -init::@return: scope:[init] from init::@7 + to:render_init::@8 +render_init::@8: scope:[render_init] from render_init::@7 + (byte*~) render_init::$2 ← (byte*) COLS#0 + (byte/signed byte/word/signed word/dword/signed dword) 40 + (byte*~) render_init::$3 ← (byte*~) render_init::$2 + (byte/signed byte/word/signed word/dword/signed dword) 15 + (byte*) render_init::li#0 ← (byte*~) render_init::$3 + (byte/signed word/word/dword/signed dword~) render_init::$4 ← (byte) PLAYFIELD_LINES#0 + (byte/signed byte/word/signed word/dword/signed dword) 2 + (byte) render_init::i#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 + to:render_init::@1 +render_init::@1: scope:[render_init] from render_init::@1 render_init::@8 + (byte*) render_init::li#2 ← phi( render_init::@1/(byte*) render_init::li#1 render_init::@8/(byte*) render_init::li#0 ) + (byte) render_init::i#2 ← phi( render_init::@1/(byte) render_init::i#1 render_init::@8/(byte) render_init::i#0 ) + (byte~) render_init::$5 ← (byte) render_init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 + *((byte*[$24]) screen_lines#0 + (byte~) render_init::$5) ← (byte*) render_init::li#2 + (byte*) render_init::li#1 ← (byte*) render_init::li#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) render_init::i#1 ← (byte) render_init::i#2 + rangenext(0,render_init::$4) + (bool~) render_init::$6 ← (byte) render_init::i#1 != rangelast(0,render_init::$4) + if((bool~) render_init::$6) goto render_init::@1 + to:render_init::@4 +render_init::@4: scope:[render_init] from render_init::@1 + (byte*~) render_init::$7 ← (byte*) COLS#0 + (byte/signed byte/word/signed word/dword/signed dword) 14 + (byte*) render_init::line#0 ← (byte*~) render_init::$7 + (byte/signed word/word/dword/signed dword~) render_init::$8 ← (byte) PLAYFIELD_LINES#0 + (byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) render_init::l#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 + to:render_init::@2 +render_init::@2: scope:[render_init] from render_init::@4 render_init::@5 + (byte) render_init::l#4 ← phi( render_init::@4/(byte) render_init::l#0 render_init::@5/(byte) render_init::l#1 ) + (byte*) render_init::line#4 ← phi( render_init::@4/(byte*) render_init::line#0 render_init::@5/(byte*) render_init::line#1 ) + (byte/signed word/word/dword/signed dword~) render_init::$9 ← (byte) PLAYFIELD_COLS#0 + (byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) render_init::c#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 + to:render_init::@3 +render_init::@3: scope:[render_init] from render_init::@2 render_init::@3 + (byte) render_init::l#3 ← phi( render_init::@2/(byte) render_init::l#4 render_init::@3/(byte) render_init::l#3 ) + (byte) render_init::c#2 ← phi( render_init::@2/(byte) render_init::c#0 render_init::@3/(byte) render_init::c#1 ) + (byte*) render_init::line#2 ← phi( render_init::@2/(byte*) render_init::line#4 render_init::@3/(byte*) render_init::line#2 ) + (byte*~) render_init::$10 ← (byte*) render_init::line#2 + (byte) render_init::c#2 + *((byte*~) render_init::$10) ← (byte) DARK_GREY#0 + (byte) render_init::c#1 ← (byte) render_init::c#2 + rangenext(0,render_init::$9) + (bool~) render_init::$11 ← (byte) render_init::c#1 != rangelast(0,render_init::$9) + if((bool~) render_init::$11) goto render_init::@3 + to:render_init::@5 +render_init::@5: scope:[render_init] from render_init::@3 + (byte) render_init::l#2 ← phi( render_init::@3/(byte) render_init::l#3 ) + (byte*) render_init::line#3 ← phi( render_init::@3/(byte*) render_init::line#2 ) + (byte*) render_init::line#1 ← (byte*) render_init::line#3 + (byte/signed byte/word/signed word/dword/signed dword) 40 + (byte) render_init::l#1 ← (byte) render_init::l#2 + rangenext(0,render_init::$8) + (bool~) render_init::$12 ← (byte) render_init::l#1 != rangelast(0,render_init::$8) + if((bool~) render_init::$12) goto render_init::@2 + to:render_init::@return +render_init::@return: scope:[render_init] from render_init::@5 return to:@return -render_playfield: scope:[render_playfield] from main::@19 main::@23 +render_playfield: scope:[render_playfield] from main::@19 main::@24 (byte) render_playfield::i#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 (byte/signed word/word/dword/signed dword~) render_playfield::$0 ← (byte) PLAYFIELD_LINES#0 - (byte/signed byte/word/signed word/dword/signed dword) 1 (byte) render_playfield::l#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 @@ -1701,18 +1715,18 @@ render_playfield::@3: scope:[render_playfield] from render_playfield::@2 render_playfield::@return: scope:[render_playfield] from render_playfield::@3 return to:@return -render_current: scope:[render_current] from main::@24 main::@31 - (byte) current_piece_color#65 ← phi( main::@24/(byte) current_piece_color#39 main::@31/(byte) current_piece_color#53 ) - (byte*) current_piece_gfx#63 ← phi( main::@24/(byte*) current_piece_gfx#54 main::@31/(byte*) current_piece_gfx#67 ) - (byte) current_xpos#63 ← phi( main::@24/(byte) current_xpos#67 main::@31/(byte) current_xpos#77 ) - (byte) current_ypos#22 ← phi( main::@24/(byte) current_ypos#37 main::@31/(byte) current_ypos#38 ) +render_current: scope:[render_current] from main::@25 main::@32 + (byte) current_piece_color#66 ← phi( main::@25/(byte) current_piece_color#39 main::@32/(byte) current_piece_color#54 ) + (byte*) current_piece_gfx#63 ← phi( main::@25/(byte*) current_piece_gfx#54 main::@32/(byte*) current_piece_gfx#68 ) + (byte) current_xpos#63 ← phi( main::@25/(byte) current_xpos#67 main::@32/(byte) current_xpos#77 ) + (byte) current_ypos#22 ← phi( main::@25/(byte) current_ypos#37 main::@32/(byte) current_ypos#38 ) (byte) render_current::i#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 (byte~) render_current::$0 ← (byte) current_ypos#22 << (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::@2 - (byte) current_piece_color#58 ← phi( render_current/(byte) current_piece_color#65 render_current::@2/(byte) current_piece_color#66 ) + (byte) current_piece_color#59 ← phi( render_current/(byte) current_piece_color#66 render_current::@2/(byte) current_piece_color#67 ) (byte) render_current::i#5 ← phi( render_current/(byte) render_current::i#0 render_current::@2/(byte) render_current::i#8 ) (byte*) current_piece_gfx#49 ← phi( render_current/(byte*) current_piece_gfx#63 render_current::@2/(byte*) current_piece_gfx#64 ) (byte) current_xpos#46 ← phi( render_current/(byte) current_xpos#63 render_current::@2/(byte) current_xpos#64 ) @@ -1724,7 +1738,7 @@ render_current::@1: scope:[render_current] from render_current render_current:: if((bool~) render_current::$3) goto render_current::@2 to:render_current::@6 render_current::@2: scope:[render_current] from render_current::@1 render_current::@4 - (byte) current_piece_color#66 ← phi( render_current::@1/(byte) current_piece_color#58 render_current::@4/(byte) current_piece_color#49 ) + (byte) current_piece_color#67 ← phi( render_current::@1/(byte) current_piece_color#59 render_current::@4/(byte) current_piece_color#49 ) (byte) render_current::i#8 ← phi( render_current::@1/(byte) render_current::i#5 render_current::@4/(byte) render_current::i#3 ) (byte*) current_piece_gfx#64 ← phi( render_current::@1/(byte*) current_piece_gfx#49 render_current::@4/(byte*) current_piece_gfx#34 ) (byte) current_xpos#64 ← phi( render_current::@1/(byte) current_xpos#46 render_current::@4/(byte) current_xpos#78 ) @@ -1736,7 +1750,7 @@ render_current::@2: scope:[render_current] from render_current::@1 render_curre if((bool~) render_current::$9) goto render_current::@1 to:render_current::@return render_current::@6: scope:[render_current] from render_current::@1 - (byte) current_piece_color#50 ← phi( render_current::@1/(byte) current_piece_color#58 ) + (byte) current_piece_color#50 ← phi( render_current::@1/(byte) current_piece_color#59 ) (byte) render_current::l#8 ← phi( render_current::@1/(byte) render_current::l#3 ) (byte) render_current::i#4 ← phi( render_current::@1/(byte) render_current::i#5 ) (byte*) current_piece_gfx#35 ← phi( render_current::@1/(byte*) current_piece_gfx#49 ) @@ -1747,7 +1761,7 @@ render_current::@6: scope:[render_current] from render_current::@1 (byte) render_current::c#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:render_current::@3 render_current::@3: scope:[render_current] from render_current::@4 render_current::@6 - (byte) current_xpos#83 ← phi( render_current::@4/(byte) current_xpos#78 render_current::@6/(byte) current_xpos#28 ) + (byte) current_xpos#84 ← phi( render_current::@4/(byte) current_xpos#78 render_current::@6/(byte) current_xpos#28 ) (byte*) render_current::screen_line#3 ← phi( render_current::@4/(byte*) render_current::screen_line#4 render_current::@6/(byte*) render_current::screen_line#0 ) (byte) current_piece_color#36 ← phi( render_current::@4/(byte) current_piece_color#49 render_current::@6/(byte) current_piece_color#50 ) (byte) render_current::l#5 ← phi( render_current::@4/(byte) render_current::l#4 render_current::@6/(byte) render_current::l#8 ) @@ -1764,8 +1778,8 @@ render_current::@3: scope:[render_current] from render_current::@4 render_curre to:render_current::@7 render_current::@4: scope:[render_current] from render_current::@3 render_current::@5 render_current::@8 (byte*) render_current::screen_line#4 ← phi( render_current::@3/(byte*) render_current::screen_line#3 render_current::@5/(byte*) render_current::screen_line#5 render_current::@8/(byte*) render_current::screen_line#1 ) - (byte) current_piece_color#49 ← phi( render_current::@3/(byte) current_piece_color#36 render_current::@5/(byte) current_piece_color#59 render_current::@8/(byte) current_piece_color#16 ) - (byte) current_xpos#78 ← phi( render_current::@3/(byte) current_xpos#83 render_current::@5/(byte) current_xpos#84 render_current::@8/(byte) current_xpos#85 ) + (byte) current_piece_color#49 ← phi( render_current::@3/(byte) current_piece_color#36 render_current::@5/(byte) current_piece_color#60 render_current::@8/(byte) current_piece_color#16 ) + (byte) current_xpos#78 ← phi( render_current::@3/(byte) current_xpos#84 render_current::@5/(byte) current_xpos#85 render_current::@8/(byte) current_xpos#86 ) (byte) render_current::i#3 ← phi( render_current::@3/(byte) render_current::i#1 render_current::@5/(byte) render_current::i#6 render_current::@8/(byte) render_current::i#7 ) (byte*) current_piece_gfx#34 ← phi( render_current::@3/(byte*) current_piece_gfx#21 render_current::@5/(byte*) current_piece_gfx#50 render_current::@8/(byte*) current_piece_gfx#51 ) (byte) render_current::l#4 ← phi( render_current::@3/(byte) render_current::l#5 render_current::@5/(byte) render_current::l#6 render_current::@8/(byte) render_current::l#7 ) @@ -1778,7 +1792,7 @@ render_current::@4: scope:[render_current] from render_current::@3 render_curre if((bool~) render_current::$8) goto render_current::@3 to:render_current::@2 render_current::@7: scope:[render_current] from render_current::@3 - (byte) current_xpos#90 ← phi( render_current::@3/(byte) current_xpos#83 ) + (byte) current_xpos#91 ← phi( render_current::@3/(byte) current_xpos#84 ) (byte) render_current::i#9 ← phi( render_current::@3/(byte) render_current::i#1 ) (byte*) current_piece_gfx#65 ← phi( render_current::@3/(byte*) current_piece_gfx#21 ) (byte) render_current::l#9 ← phi( render_current::@3/(byte) render_current::l#5 ) @@ -1793,8 +1807,8 @@ render_current::@7: scope:[render_current] from render_current::@3 to:render_current::@8 render_current::@5: scope:[render_current] from render_current::@7 (byte*) render_current::screen_line#5 ← phi( render_current::@7/(byte*) render_current::screen_line#2 ) - (byte) current_piece_color#59 ← phi( render_current::@7/(byte) current_piece_color#25 ) - (byte) current_xpos#84 ← phi( render_current::@7/(byte) current_xpos#90 ) + (byte) current_piece_color#60 ← phi( render_current::@7/(byte) current_piece_color#25 ) + (byte) current_xpos#85 ← phi( render_current::@7/(byte) current_xpos#91 ) (byte) render_current::i#6 ← phi( render_current::@7/(byte) render_current::i#9 ) (byte*) current_piece_gfx#50 ← phi( render_current::@7/(byte*) current_piece_gfx#65 ) (byte) render_current::l#6 ← phi( render_current::@7/(byte) render_current::l#9 ) @@ -1803,7 +1817,7 @@ render_current::@5: scope:[render_current] from render_current::@7 (byte) render_current::xpos#6 ← phi( render_current::@7/(byte) render_current::xpos#3 ) to:render_current::@4 render_current::@8: scope:[render_current] from render_current::@7 - (byte) current_xpos#85 ← phi( render_current::@7/(byte) current_xpos#90 ) + (byte) current_xpos#86 ← phi( render_current::@7/(byte) current_xpos#91 ) (byte) render_current::i#7 ← phi( render_current::@7/(byte) render_current::i#9 ) (byte*) current_piece_gfx#51 ← phi( render_current::@7/(byte*) current_piece_gfx#65 ) (byte) render_current::l#7 ← phi( render_current::@7/(byte) render_current::l#9 ) @@ -1817,7 +1831,7 @@ render_current::@8: scope:[render_current] from render_current::@7 render_current::@return: scope:[render_current] from render_current::@2 return to:@return -@26: scope:[] from @17 +@27: scope:[] from @17 (byte*) SCREEN#4 ← phi( @17/(byte*) SCREEN#5 ) (byte) current_movedown_counter#20 ← phi( @17/(byte) current_movedown_counter#26 ) (byte) keyboard_modifiers#25 ← phi( @17/(byte) keyboard_modifiers#32 ) @@ -1829,17 +1843,17 @@ render_current::@return: scope:[render_current] from render_current::@2 (byte) current_orientation#40 ← phi( @17/(byte) current_orientation#50 ) (byte*) current_piece#29 ← phi( @17/(byte*) current_piece#41 ) call main - to:@27 -@27: scope:[] from @26 - (byte) current_movedown_counter#13 ← phi( @26/(byte) current_movedown_counter#2 ) - (byte) keyboard_modifiers#17 ← phi( @26/(byte) keyboard_modifiers#8 ) - (byte) keyboard_events_size#20 ← phi( @26/(byte) keyboard_events_size#8 ) - (byte) current_piece_color#17 ← phi( @26/(byte) current_piece_color#3 ) - (byte) current_ypos#23 ← phi( @26/(byte) current_ypos#3 ) - (byte) current_xpos#29 ← phi( @26/(byte) current_xpos#4 ) - (byte*) current_piece_gfx#22 ← phi( @26/(byte*) current_piece_gfx#4 ) - (byte) current_orientation#25 ← phi( @26/(byte) current_orientation#4 ) - (byte*) current_piece#17 ← phi( @26/(byte*) current_piece#3 ) + to:@28 +@28: scope:[] from @27 + (byte) current_movedown_counter#13 ← phi( @27/(byte) current_movedown_counter#2 ) + (byte) keyboard_modifiers#17 ← phi( @27/(byte) keyboard_modifiers#8 ) + (byte) keyboard_events_size#20 ← phi( @27/(byte) keyboard_events_size#8 ) + (byte) current_piece_color#17 ← phi( @27/(byte) current_piece_color#3 ) + (byte) current_ypos#23 ← phi( @27/(byte) current_ypos#3 ) + (byte) current_xpos#29 ← phi( @27/(byte) current_xpos#4 ) + (byte*) current_piece_gfx#22 ← phi( @27/(byte*) current_piece_gfx#4 ) + (byte) current_orientation#25 ← phi( @27/(byte) current_orientation#4 ) + (byte*) current_piece#17 ← phi( @27/(byte*) current_piece#3 ) (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 @@ -1850,7 +1864,7 @@ render_current::@return: scope:[render_current] from render_current::@2 (byte) keyboard_modifiers#9 ← (byte) keyboard_modifiers#17 (byte) current_movedown_counter#6 ← (byte) current_movedown_counter#13 to:@end -@end: scope:[] from @27 +@end: scope:[] from @28 SYMBOL TABLE SSA (byte/signed byte/word/signed word/dword/signed dword~) $1 @@ -1880,8 +1894,8 @@ SYMBOL TABLE SSA (label) @11 (label) @13 (label) @17 -(label) @26 (label) @27 +(label) @28 (label) @4 (label) @8 (label) @begin @@ -2171,6 +2185,7 @@ SYMBOL TABLE SSA (byte) current_movedown_counter#42 (byte) current_movedown_counter#43 (byte) current_movedown_counter#44 +(byte) current_movedown_counter#45 (byte) current_movedown_counter#5 (byte) current_movedown_counter#6 (byte) current_movedown_counter#7 @@ -2251,6 +2266,7 @@ SYMBOL TABLE SSA (byte) current_orientation#7 (byte) current_orientation#70 (byte) current_orientation#71 +(byte) current_orientation#72 (byte) current_orientation#8 (byte) current_orientation#9 (byte*) current_piece @@ -2319,6 +2335,7 @@ SYMBOL TABLE SSA (byte*) current_piece#65 (byte*) current_piece#66 (byte*) current_piece#67 +(byte*) current_piece#68 (byte*) current_piece#7 (byte*) current_piece#8 (byte*) current_piece#9 @@ -2392,6 +2409,7 @@ SYMBOL TABLE SSA (byte) current_piece_color#69 (byte) current_piece_color#7 (byte) current_piece_color#70 +(byte) current_piece_color#71 (byte) current_piece_color#8 (byte) current_piece_color#9 (byte*) current_piece_gfx @@ -2477,6 +2495,7 @@ SYMBOL TABLE SSA (byte*) current_piece_gfx#80 (byte*) current_piece_gfx#81 (byte*) current_piece_gfx#82 +(byte*) current_piece_gfx#83 (byte*) current_piece_gfx#9 (byte) current_xpos (byte) current_xpos#0 @@ -2572,6 +2591,7 @@ SYMBOL TABLE SSA (byte) current_xpos#90 (byte) current_xpos#91 (byte) current_xpos#92 +(byte) current_xpos#93 (byte) current_ypos (byte) current_ypos#0 (byte) current_ypos#1 @@ -2638,6 +2658,7 @@ SYMBOL TABLE SSA (byte) current_ypos#65 (byte) current_ypos#66 (byte) current_ypos#67 +(byte) current_ypos#68 (byte) current_ypos#7 (byte) current_ypos#8 (byte) current_ypos#9 @@ -2722,68 +2743,6 @@ SYMBOL TABLE SSA (byte) find_line::y#6 (byte) find_line::y#7 (byte) find_line::y#8 -(void()) init() -(byte~) init::$10 -(byte*~) init::$11 -(byte/signed word/word/dword/signed dword~) init::$12 -(byte/signed word/word/dword/signed dword~) init::$13 -(byte*~) init::$14 -(bool~) init::$15 -(bool~) init::$16 -(byte*~) init::$2 -(byte*~) init::$3 -(byte/signed word/word/dword/signed dword~) init::$4 -(byte~) init::$5 -(bool~) init::$6 -(byte/signed word/word/dword/signed dword~) init::$7 -(byte~) init::$8 -(bool~) init::$9 -(label) init::@1 -(label) init::@10 -(label) init::@2 -(label) init::@3 -(label) init::@4 -(label) init::@5 -(label) init::@6 -(label) init::@7 -(label) init::@9 -(label) init::@return -(byte) init::c -(byte) init::c#0 -(byte) init::c#1 -(byte) init::c#2 -(byte) init::i -(byte) init::i#0 -(byte) init::i#1 -(byte) init::i#2 -(byte) init::idx -(byte) init::idx#0 -(byte) init::idx#1 -(byte) init::idx#2 -(byte) init::j -(byte) init::j#0 -(byte) init::j#1 -(byte) init::j#2 -(byte) init::l -(byte) init::l#0 -(byte) init::l#1 -(byte) init::l#2 -(byte) init::l#3 -(byte) init::l#4 -(byte*) init::li -(byte*) init::li#0 -(byte*) init::li#1 -(byte*) init::li#2 -(byte*) init::line -(byte*) init::line#0 -(byte*) init::line#1 -(byte*) init::line#2 -(byte*) init::line#3 -(byte*) init::line#4 -(byte*) init::pli -(byte*) init::pli#0 -(byte*) init::pli#1 -(byte*) init::pli#2 (byte()) keyboard_event_get() (bool~) keyboard_event_get::$0 (label) keyboard_event_get::@1 @@ -3009,6 +2968,7 @@ SYMBOL TABLE SSA (byte) keyboard_events_size#68 (byte) keyboard_events_size#69 (byte) keyboard_events_size#7 +(byte) keyboard_events_size#70 (byte) keyboard_events_size#8 (byte) keyboard_events_size#9 (byte[8]) keyboard_matrix_col_bitmask @@ -3077,6 +3037,7 @@ SYMBOL TABLE SSA (byte) keyboard_modifiers#49 (byte) keyboard_modifiers#5 (byte) keyboard_modifiers#50 +(byte) keyboard_modifiers#51 (byte) keyboard_modifiers#6 (byte) keyboard_modifiers#7 (byte) keyboard_modifiers#8 @@ -3139,11 +3100,11 @@ SYMBOL TABLE SSA (void()) main() (byte~) main::$10 (byte~) main::$11 -(bool~) main::$12 +(byte~) main::$12 (bool~) main::$13 -(bool~) main::$5 +(bool~) main::$14 (bool~) main::$6 -(byte~) main::$8 +(bool~) main::$7 (byte~) main::$9 (label) main::@1 (label) main::@10 @@ -3161,6 +3122,7 @@ SYMBOL TABLE SSA (label) main::@30 (label) main::@31 (label) main::@32 +(label) main::@33 (label) main::@4 (label) main::@5 (label) main::@7 @@ -3454,6 +3416,50 @@ SYMBOL TABLE SSA (byte) render_current::ypos2#7 (byte) render_current::ypos2#8 (byte) render_current::ypos2#9 +(void()) render_init() +(byte*~) render_init::$10 +(bool~) render_init::$11 +(bool~) render_init::$12 +(byte*~) render_init::$2 +(byte*~) render_init::$3 +(byte/signed word/word/dword/signed dword~) render_init::$4 +(byte~) render_init::$5 +(bool~) render_init::$6 +(byte*~) render_init::$7 +(byte/signed word/word/dword/signed dword~) render_init::$8 +(byte/signed word/word/dword/signed dword~) render_init::$9 +(label) render_init::@1 +(label) render_init::@2 +(label) render_init::@3 +(label) render_init::@4 +(label) render_init::@5 +(label) render_init::@7 +(label) render_init::@8 +(label) render_init::@return +(byte) render_init::c +(byte) render_init::c#0 +(byte) render_init::c#1 +(byte) render_init::c#2 +(byte) render_init::i +(byte) render_init::i#0 +(byte) render_init::i#1 +(byte) render_init::i#2 +(byte) render_init::l +(byte) render_init::l#0 +(byte) render_init::l#1 +(byte) render_init::l#2 +(byte) render_init::l#3 +(byte) render_init::l#4 +(byte*) render_init::li +(byte*) render_init::li#0 +(byte*) render_init::li#1 +(byte*) render_init::li#2 +(byte*) render_init::line +(byte*) render_init::line#0 +(byte*) render_init::line#1 +(byte*) render_init::line#2 +(byte*) render_init::line#3 +(byte*) render_init::line#4 (void()) render_playfield() (byte/signed word/word/dword/signed dword~) render_playfield::$0 (byte~) render_playfield::$1 @@ -3512,6 +3518,26 @@ SYMBOL TABLE SSA (byte) spawn_current::piece_idx#1 (byte) spawn_current::piece_idx#2 (byte) spawn_current::piece_idx#3 +(void()) tables_init() +(byte/signed word/word/dword/signed dword~) tables_init::$0 +(byte~) tables_init::$1 +(bool~) tables_init::$2 +(byte~) tables_init::$3 +(label) tables_init::@1 +(label) tables_init::@2 +(label) tables_init::@return +(byte) tables_init::idx +(byte) tables_init::idx#0 +(byte) tables_init::idx#1 +(byte) tables_init::idx#2 +(byte) tables_init::j +(byte) tables_init::j#0 +(byte) tables_init::j#1 +(byte) tables_init::j#2 +(byte*) tables_init::pli +(byte*) tables_init::pli#0 +(byte*) tables_init::pli#1 +(byte*) tables_init::pli#2 Inversing boolean not (bool~) keyboard_event_scan::$6 ← (byte~) keyboard_event_scan::$4 == (byte/signed byte/word/signed word/dword/signed dword) 0 from (bool~) keyboard_event_scan::$5 ← (byte~) keyboard_event_scan::$4 != (byte/signed byte/word/signed word/dword/signed dword) 0 Inversing boolean not (bool~) keyboard_event_scan::$8 ← (byte) keyboard_events_size#10 == (byte/signed byte/word/signed word/dword/signed dword) 8 from (bool~) keyboard_event_scan::$7 ← (byte) keyboard_events_size#10 != (byte/signed byte/word/signed word/dword/signed dword) 8 @@ -3519,7 +3545,7 @@ Inversing boolean not (bool~) keyboard_event_scan::$16 ← (byte~) keyboard_even Inversing boolean not (bool~) keyboard_event_scan::$20 ← (byte~) keyboard_event_scan::$18 == (byte/signed byte/word/signed word/dword/signed dword) 0 from (bool~) keyboard_event_scan::$19 ← (byte~) keyboard_event_scan::$18 != (byte/signed byte/word/signed word/dword/signed dword) 0 Inversing boolean not (bool~) keyboard_event_scan::$24 ← (byte~) keyboard_event_scan::$22 == (byte/signed byte/word/signed word/dword/signed dword) 0 from (bool~) keyboard_event_scan::$23 ← (byte~) keyboard_event_scan::$22 != (byte/signed byte/word/signed word/dword/signed dword) 0 Inversing boolean not (bool~) keyboard_event_scan::$28 ← (byte~) keyboard_event_scan::$26 == (byte/signed byte/word/signed word/dword/signed dword) 0 from (bool~) keyboard_event_scan::$27 ← (byte~) keyboard_event_scan::$26 != (byte/signed byte/word/signed word/dword/signed dword) 0 -Inversing boolean not (bool~) main::$13 ← (byte) main::render#3 == (byte/signed byte/word/signed word/dword/signed dword) 0 from (bool~) main::$12 ← (byte) main::render#3 != (byte/signed byte/word/signed word/dword/signed dword) 0 +Inversing boolean not (bool~) main::$14 ← (byte) main::render#3 == (byte/signed byte/word/signed word/dword/signed dword) 0 from (bool~) main::$13 ← (byte) main::render#3 != (byte/signed byte/word/signed word/dword/signed dword) 0 Inversing boolean not (bool~) play_move_down::$1 ← (byte) play_move_down::key_event#1 != (byte) KEY_SPACE#0 from (bool~) play_move_down::$0 ← (byte) play_move_down::key_event#1 == (byte) KEY_SPACE#0 Inversing boolean not (bool~) play_move_down::$4 ← (byte~) play_move_down::$2 == (byte/signed byte/word/signed word/dword/signed dword) 0 from (bool~) play_move_down::$3 ← (byte~) play_move_down::$2 != (byte/signed byte/word/signed word/dword/signed dword) 0 Inversing boolean not (bool~) play_move_down::$8 ← (byte) current_movedown_counter#10 < (byte) current_movedown_slow#0 from (bool~) play_move_down::$7 ← (byte) current_movedown_counter#10 >= (byte) current_movedown_slow#0 @@ -3528,7 +3554,7 @@ Inversing boolean not (bool~) play_move_down::$10 ← (byte) play_move_down::mov Inversing boolean not (bool~) play_move_leftright::$10 ← (byte~) play_move_leftright::$8 != (byte) COLLISION_NONE#0 from (bool~) play_move_leftright::$9 ← (byte~) play_move_leftright::$8 == (byte) COLLISION_NONE#0 Inversing boolean not (bool~) play_move_leftright::$2 ← (byte) play_move_leftright::key_event#2 != (byte) KEY_DOT#0 from (bool~) play_move_leftright::$1 ← (byte) play_move_leftright::key_event#2 == (byte) KEY_DOT#0 Inversing boolean not (bool~) play_move_leftright::$6 ← (byte~) play_move_leftright::$4 != (byte) COLLISION_NONE#0 from (bool~) play_move_leftright::$5 ← (byte~) play_move_leftright::$4 == (byte) COLLISION_NONE#0 -Inversing boolean not (bool~) play_move_rotate::$8 ← (byte~) play_move_rotate::$6 != (byte/signed byte/word/signed word/dword/signed dword) 0 from (bool~) play_move_rotate::$7 ← (byte~) play_move_rotate::$6 == (byte/signed byte/word/signed word/dword/signed dword) 0 +Inversing boolean not (bool~) play_move_rotate::$8 ← (byte~) play_move_rotate::$6 != (byte) COLLISION_NONE#0 from (bool~) play_move_rotate::$7 ← (byte~) play_move_rotate::$6 == (byte) COLLISION_NONE#0 Inversing boolean not (bool~) collision::$3 ← *((byte*) collision::piece_gfx#1 + (byte) collision::i#2) == (byte/signed byte/word/signed word/dword/signed dword) 0 from (bool~) collision::$2 ← *((byte*) collision::piece_gfx#1 + (byte) collision::i#2) != (byte/signed byte/word/signed word/dword/signed dword) 0 Inversing boolean not (bool~) collision::$6 ← (byte) collision::ypos2#3 < (byte/signed word/word/dword/signed dword~) collision::$4 from (bool~) collision::$5 ← (byte) collision::ypos2#3 >= (byte/signed word/word/dword/signed dword~) collision::$4 Inversing boolean not (bool~) collision::$9 ← (byte~) collision::$7 == (byte/signed byte/word/signed word/dword/signed dword) 0 from (bool~) collision::$8 ← (byte~) collision::$7 != (byte/signed byte/word/signed word/dword/signed dword) 0 @@ -3560,7 +3586,7 @@ Alias (byte) keyboard_event_scan::row_scan#3 = (byte) keyboard_event_scan::row_s Alias (byte) keyboard_event_scan::row#6 = (byte) keyboard_event_scan::row#9 Alias (byte) keyboard_event_scan::keycode#15 = (byte) keyboard_event_scan::keycode#2 Alias (byte) keyboard_events_size#30 = (byte) keyboard_events_size#61 -Alias (byte) keyboard_events_size#55 = (byte) keyboard_events_size#69 (byte) keyboard_events_size#68 (byte) keyboard_events_size#67 +Alias (byte) keyboard_events_size#55 = (byte) keyboard_events_size#70 (byte) keyboard_events_size#68 (byte) keyboard_events_size#67 Alias (byte) keyboard_event_pressed::return#0 = (byte) keyboard_event_pressed::return#7 Alias (byte) keyboard_modifiers#1 = (byte) keyboard_modifiers#18 (byte) keyboard_modifiers#10 Alias (byte) keyboard_event_pressed::return#1 = (byte) keyboard_event_pressed::return#8 @@ -3586,15 +3612,15 @@ Alias (byte) keyboard_events_size#0 = (byte) keyboard_events_size#48 (byte) keyb Alias (byte) keyboard_modifiers#0 = (byte) keyboard_modifiers#39 (byte) keyboard_modifiers#38 (byte) keyboard_modifiers#32 (byte) keyboard_modifiers#25 Alias (byte) sid_rnd::return#0 = (byte) sid_rnd::return#3 (byte) sid_rnd::return#1 Alias (byte*) SCREEN#2 = (byte*) SCREEN#3 -Alias (byte*) current_piece#18 = (byte*) current_piece#30 (byte*) current_piece#42 -Alias (byte) current_orientation#26 = (byte) current_orientation#41 (byte) current_orientation#51 -Alias (byte*) current_piece_gfx#23 = (byte*) current_piece_gfx#37 (byte*) current_piece_gfx#53 -Alias (byte) current_xpos#30 = (byte) current_xpos#48 (byte) current_xpos#66 -Alias (byte) current_ypos#24 = (byte) current_ypos#40 (byte) current_ypos#51 -Alias (byte) current_piece_color#18 = (byte) current_piece_color#27 (byte) current_piece_color#38 -Alias (byte) keyboard_events_size#33 = (byte) keyboard_events_size#64 (byte) keyboard_events_size#66 (byte) keyboard_events_size#57 (byte) keyboard_events_size#49 (byte) keyboard_events_size#39 -Alias (byte) keyboard_modifiers#30 = (byte) keyboard_modifiers#48 (byte) keyboard_modifiers#50 (byte) keyboard_modifiers#45 (byte) keyboard_modifiers#40 (byte) keyboard_modifiers#33 -Alias (byte) current_movedown_counter#22 = (byte) current_movedown_counter#41 (byte) current_movedown_counter#44 (byte) current_movedown_counter#37 (byte) current_movedown_counter#33 (byte) current_movedown_counter#27 +Alias (byte*) current_piece#18 = (byte*) current_piece#42 (byte*) current_piece#53 (byte*) current_piece#30 +Alias (byte) current_orientation#26 = (byte) current_orientation#51 (byte) current_orientation#61 (byte) current_orientation#41 +Alias (byte*) current_piece_gfx#23 = (byte*) current_piece_gfx#53 (byte*) current_piece_gfx#66 (byte*) current_piece_gfx#37 +Alias (byte) current_xpos#30 = (byte) current_xpos#66 (byte) current_xpos#79 (byte) current_xpos#48 +Alias (byte) current_ypos#24 = (byte) current_ypos#51 (byte) current_ypos#59 (byte) current_ypos#40 +Alias (byte) current_piece_color#18 = (byte) current_piece_color#38 (byte) current_piece_color#51 (byte) current_piece_color#27 +Alias (byte) keyboard_events_size#33 = (byte) keyboard_events_size#66 (byte) keyboard_events_size#69 (byte) keyboard_events_size#64 (byte) keyboard_events_size#57 (byte) keyboard_events_size#49 (byte) keyboard_events_size#39 +Alias (byte) keyboard_modifiers#30 = (byte) keyboard_modifiers#50 (byte) keyboard_modifiers#51 (byte) keyboard_modifiers#48 (byte) keyboard_modifiers#45 (byte) keyboard_modifiers#40 (byte) keyboard_modifiers#33 +Alias (byte) current_movedown_counter#22 = (byte) current_movedown_counter#44 (byte) current_movedown_counter#45 (byte) current_movedown_counter#41 (byte) current_movedown_counter#37 (byte) current_movedown_counter#33 (byte) current_movedown_counter#27 Alias (byte*) current_piece#1 = (byte*) current_piece#9 (byte*) current_piece#43 (byte*) current_piece#32 Alias (byte) current_orientation#1 = (byte) current_orientation#12 (byte) current_orientation#52 (byte) current_orientation#43 Alias (byte*) current_piece_gfx#1 = (byte*) current_piece_gfx#12 (byte*) current_piece_gfx#54 (byte*) current_piece_gfx#39 @@ -3604,68 +3630,68 @@ Alias (byte) current_piece_color#1 = (byte) current_piece_color#9 (byte) current 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#15 = (byte) current_movedown_counter#42 (byte) current_movedown_counter#8 (byte) current_movedown_counter#2 -Alias (byte) current_ypos#12 = (byte) current_ypos#66 (byte) current_ypos#26 (byte) current_ypos#3 -Alias (byte*) current_piece#11 = (byte*) current_piece#64 (byte*) current_piece#20 (byte*) current_piece#3 -Alias (byte) current_orientation#15 = (byte) current_orientation#70 (byte) current_orientation#29 (byte) current_orientation#4 -Alias (byte*) current_piece_gfx#15 = (byte*) current_piece_gfx#79 (byte*) current_piece_gfx#26 (byte*) current_piece_gfx#4 -Alias (byte) current_xpos#16 = (byte) current_xpos#91 (byte) current_xpos#32 (byte) current_xpos#4 -Alias (byte) current_piece_color#11 = (byte) current_piece_color#67 (byte) current_piece_color#20 (byte) current_piece_color#3 +Alias (byte) current_ypos#12 = (byte) current_ypos#67 (byte) current_ypos#26 (byte) current_ypos#3 +Alias (byte*) current_piece#11 = (byte*) current_piece#65 (byte*) current_piece#20 (byte*) current_piece#3 +Alias (byte) current_orientation#15 = (byte) current_orientation#71 (byte) current_orientation#29 (byte) current_orientation#4 +Alias (byte*) current_piece_gfx#15 = (byte*) current_piece_gfx#80 (byte*) current_piece_gfx#26 (byte*) current_piece_gfx#4 +Alias (byte) current_xpos#16 = (byte) current_xpos#92 (byte) current_xpos#32 (byte) current_xpos#4 +Alias (byte) current_piece_color#11 = (byte) current_piece_color#68 (byte) current_piece_color#20 (byte) current_piece_color#3 Alias (byte) keyboard_events_size#40 = (byte) keyboard_events_size#51 Alias (byte) keyboard_modifiers#34 = (byte) keyboard_modifiers#42 Alias (byte) current_movedown_counter#38 = (byte) current_movedown_counter#43 -Alias (byte) current_ypos#62 = (byte) current_ypos#67 -Alias (byte*) current_piece#59 = (byte*) current_piece#65 -Alias (byte) current_orientation#65 = (byte) current_orientation#71 -Alias (byte*) current_piece_gfx#74 = (byte*) current_piece_gfx#80 -Alias (byte) current_xpos#86 = (byte) current_xpos#92 -Alias (byte) current_piece_color#60 = (byte) current_piece_color#68 +Alias (byte) current_ypos#63 = (byte) current_ypos#68 +Alias (byte*) current_piece#60 = (byte*) current_piece#66 +Alias (byte) current_orientation#66 = (byte) current_orientation#72 +Alias (byte*) current_piece_gfx#75 = (byte*) current_piece_gfx#81 +Alias (byte) current_xpos#87 = (byte) current_xpos#93 +Alias (byte) current_piece_color#61 = (byte) current_piece_color#69 Alias (byte) keyboard_events_size#26 = (byte) keyboard_events_size#41 (byte) keyboard_events_size#34 Alias (byte) keyboard_modifiers#23 = (byte) keyboard_modifiers#35 (byte) keyboard_modifiers#31 Alias (byte) current_movedown_counter#14 = (byte) current_movedown_counter#39 (byte) current_movedown_counter#34 (byte) current_movedown_counter#28 (byte) current_movedown_counter#23 -Alias (byte) current_ypos#25 = (byte) current_ypos#63 (byte) current_ypos#59 (byte) current_ypos#52 (byte) current_ypos#43 -Alias (byte*) current_piece#19 = (byte*) current_piece#60 (byte*) current_piece#53 (byte*) current_piece#44 (byte*) current_piece#33 -Alias (byte) current_orientation#27 = (byte) current_orientation#66 (byte) current_orientation#61 (byte) current_orientation#53 (byte) current_orientation#44 -Alias (byte*) current_piece_gfx#24 = (byte*) current_piece_gfx#75 (byte*) current_piece_gfx#66 (byte*) current_piece_gfx#55 (byte*) current_piece_gfx#40 -Alias (byte) current_xpos#31 = (byte) current_xpos#87 (byte) current_xpos#79 (byte) current_xpos#68 (byte) current_xpos#51 -Alias (byte) current_piece_color#19 = (byte) current_piece_color#61 (byte) current_piece_color#51 (byte) current_piece_color#40 (byte) current_piece_color#30 +Alias (byte) current_ypos#25 = (byte) current_ypos#64 (byte) current_ypos#60 (byte) current_ypos#52 (byte) current_ypos#43 +Alias (byte*) current_piece#19 = (byte*) current_piece#61 (byte*) current_piece#54 (byte*) current_piece#44 (byte*) current_piece#33 +Alias (byte) current_orientation#27 = (byte) current_orientation#67 (byte) current_orientation#62 (byte) current_orientation#53 (byte) current_orientation#44 +Alias (byte*) current_piece_gfx#24 = (byte*) current_piece_gfx#76 (byte*) current_piece_gfx#67 (byte*) current_piece_gfx#55 (byte*) current_piece_gfx#40 +Alias (byte) current_xpos#31 = (byte) current_xpos#88 (byte) current_xpos#80 (byte) current_xpos#68 (byte) current_xpos#51 +Alias (byte) current_piece_color#19 = (byte) current_piece_color#62 (byte) current_piece_color#52 (byte) current_piece_color#40 (byte) current_piece_color#30 Alias (byte) keyboard_events_size#17 = (byte) keyboard_events_size#6 Alias (byte) keyboard_modifiers#15 = (byte) keyboard_modifiers#7 (byte) keyboard_modifiers#49 (byte) keyboard_modifiers#46 (byte) keyboard_modifiers#43 (byte) keyboard_modifiers#36 (byte) keyboard_modifiers#47 (byte) keyboard_modifiers#44 (byte) keyboard_modifiers#37 Alias (byte) keyboard_event_get::return#3 = (byte) keyboard_event_get::return#5 Alias (byte) keyboard_events_size#18 = (byte) keyboard_events_size#7 (byte) keyboard_events_size#58 (byte) keyboard_events_size#52 (byte) keyboard_events_size#42 (byte) keyboard_events_size#59 (byte) keyboard_events_size#53 (byte) keyboard_events_size#43 -Alias (byte) main::key_event#0 = (byte~) main::$8 (byte) main::key_event#1 (byte) main::key_event#2 +Alias (byte) main::key_event#0 = (byte~) main::$9 (byte) main::key_event#1 (byte) main::key_event#2 Alias (byte) play_move_down::return#0 = (byte) play_move_down::return#4 Alias (byte) main::render#0 = (byte) main::render#4 Alias (byte) current_movedown_counter#1 = (byte) current_movedown_counter#7 (byte) current_movedown_counter#35 (byte) current_movedown_counter#29 (byte) current_movedown_counter#40 (byte) current_movedown_counter#36 (byte) current_movedown_counter#30 Alias (byte) current_ypos#11 = (byte) current_ypos#2 (byte) current_ypos#58 (byte) current_ypos#53 (byte) current_ypos#44 (byte) current_ypos#38 (byte) current_ypos#54 -Alias (byte*) current_piece#10 = (byte*) current_piece#2 (byte*) current_piece#54 (byte*) current_piece#45 (byte*) current_piece#61 (byte*) current_piece#55 (byte*) current_piece#46 +Alias (byte*) current_piece#10 = (byte*) current_piece#2 (byte*) current_piece#55 (byte*) current_piece#45 (byte*) current_piece#62 (byte*) current_piece#56 (byte*) current_piece#46 Alias (byte) current_orientation#13 = (byte) current_orientation#2 (byte) current_orientation#28 Alias (byte*) current_piece_gfx#13 = (byte*) current_piece_gfx#2 (byte*) current_piece_gfx#25 Alias (byte) current_xpos#14 = (byte) current_xpos#2 -Alias (byte) current_piece_color#10 = (byte) current_piece_color#2 (byte) current_piece_color#52 (byte) current_piece_color#41 (byte) current_piece_color#62 (byte) current_piece_color#53 (byte) current_piece_color#42 +Alias (byte) current_piece_color#10 = (byte) current_piece_color#2 (byte) current_piece_color#53 (byte) current_piece_color#41 (byte) current_piece_color#63 (byte) current_piece_color#54 (byte) current_piece_color#42 Alias (byte) play_move_leftright::return#0 = (byte) play_move_leftright::return#5 Alias (byte) main::render#1 = (byte) main::render#5 -Alias (byte) current_xpos#15 = (byte) current_xpos#3 (byte) current_xpos#69 (byte) current_xpos#80 (byte) current_xpos#77 (byte) current_xpos#70 +Alias (byte) current_xpos#15 = (byte) current_xpos#3 (byte) current_xpos#69 (byte) current_xpos#81 (byte) current_xpos#77 (byte) current_xpos#70 Alias (byte) play_move_rotate::return#0 = (byte) play_move_rotate::return#5 Alias (byte) main::render#2 = (byte) main::render#6 -Alias (byte) current_orientation#14 = (byte) current_orientation#3 (byte) current_orientation#67 (byte) current_orientation#62 (byte) current_orientation#54 -Alias (byte*) current_piece_gfx#14 = (byte*) current_piece_gfx#3 (byte*) current_piece_gfx#76 (byte*) current_piece_gfx#67 (byte*) current_piece_gfx#56 +Alias (byte) current_orientation#14 = (byte) current_orientation#3 (byte) current_orientation#68 (byte) current_orientation#63 (byte) current_orientation#54 +Alias (byte*) current_piece_gfx#14 = (byte*) current_piece_gfx#3 (byte*) current_piece_gfx#77 (byte*) current_piece_gfx#68 (byte*) current_piece_gfx#56 Alias (byte) keyboard_event_pressed::return#12 = (byte) keyboard_event_pressed::return#6 Alias (byte) current_movedown_counter#11 = (byte) current_movedown_counter#17 (byte) current_movedown_counter#24 (byte) current_movedown_counter#18 (byte) current_movedown_counter#16 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#55 = (byte) current_ypos#56 (byte) current_ypos#60 (byte) current_ypos#61 (byte) current_ypos#57 -Alias (byte) current_xpos#71 = (byte) current_xpos#72 (byte) current_xpos#81 (byte) current_xpos#82 (byte) current_xpos#73 -Alias (byte) current_orientation#55 = (byte) current_orientation#56 (byte) current_orientation#63 (byte) current_orientation#64 (byte) current_orientation#57 -Alias (byte*) current_piece#56 = (byte*) current_piece#57 (byte*) current_piece#62 (byte*) current_piece#63 (byte*) current_piece#58 -Alias (byte*) current_piece_gfx#68 = (byte*) current_piece_gfx#69 (byte*) current_piece_gfx#77 (byte*) current_piece_gfx#78 (byte*) current_piece_gfx#70 -Alias (byte) current_piece_color#54 = (byte) current_piece_color#55 (byte) current_piece_color#63 (byte) current_piece_color#64 (byte) current_piece_color#56 +Alias (byte) current_ypos#55 = (byte) current_ypos#56 (byte) current_ypos#61 (byte) current_ypos#62 (byte) current_ypos#57 +Alias (byte) current_xpos#71 = (byte) current_xpos#72 (byte) current_xpos#82 (byte) current_xpos#83 (byte) current_xpos#73 +Alias (byte) current_orientation#55 = (byte) current_orientation#56 (byte) current_orientation#64 (byte) current_orientation#65 (byte) current_orientation#57 +Alias (byte*) current_piece#57 = (byte*) current_piece#58 (byte*) current_piece#63 (byte*) current_piece#64 (byte*) current_piece#59 +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_color#55 = (byte) current_piece_color#56 (byte) current_piece_color#64 (byte) current_piece_color#65 (byte) current_piece_color#57 Alias (byte) play_move_down::movedown#0 = (byte) play_move_down::movedown#4 Alias (byte) current_movedown_counter#3 = (byte) current_movedown_counter#31 -Alias (byte) current_ypos#64 = (byte) current_ypos#65 -Alias (byte) current_xpos#88 = (byte) current_xpos#89 -Alias (byte) current_orientation#68 = (byte) current_orientation#69 -Alias (byte*) current_piece#66 = (byte*) current_piece#67 -Alias (byte*) current_piece_gfx#81 = (byte*) current_piece_gfx#82 -Alias (byte) current_piece_color#69 = (byte) current_piece_color#70 +Alias (byte) current_ypos#65 = (byte) current_ypos#66 +Alias (byte) current_xpos#89 = (byte) current_xpos#90 +Alias (byte) current_orientation#69 = (byte) current_orientation#70 +Alias (byte*) current_piece#67 = (byte*) current_piece#68 +Alias (byte*) current_piece_gfx#82 = (byte*) current_piece_gfx#83 +Alias (byte) current_piece_color#70 = (byte) current_piece_color#71 Alias (byte) play_move_down::movedown#7 = (byte) play_move_down::movedown#9 Alias (byte) current_ypos#45 = (byte) current_ypos#46 Alias (byte) current_xpos#52 = (byte) current_xpos#53 @@ -3678,9 +3704,9 @@ Alias (byte) current_movedown_counter#19 = (byte) current_movedown_counter#25 Alias (byte) current_ypos#13 = (byte) current_ypos#30 (byte) current_ypos#27 (byte) current_ypos#28 (byte) current_ypos#14 (byte) current_ypos#36 (byte) current_ypos#47 (byte) current_ypos#29 Alias (byte*) current_piece#21 = (byte*) current_piece#22 (byte*) current_piece#34 (byte*) current_piece#25 (byte*) current_piece#49 (byte*) current_piece#36 (byte*) current_piece#50 (byte*) current_piece#35 Alias (byte) current_orientation#16 = (byte) current_orientation#32 (byte) current_orientation#30 (byte) current_orientation#58 (byte) current_orientation#48 (byte) current_orientation#59 (byte) current_orientation#47 (byte) current_orientation#31 -Alias (byte*) current_piece_gfx#27 = (byte*) current_piece_gfx#28 (byte*) current_piece_gfx#41 (byte*) current_piece_gfx#71 (byte*) current_piece_gfx#59 (byte*) current_piece_gfx#43 (byte*) current_piece_gfx#60 (byte*) current_piece_gfx#42 +Alias (byte*) current_piece_gfx#27 = (byte*) current_piece_gfx#28 (byte*) current_piece_gfx#41 (byte*) current_piece_gfx#72 (byte*) current_piece_gfx#59 (byte*) current_piece_gfx#43 (byte*) current_piece_gfx#60 (byte*) current_piece_gfx#42 Alias (byte) current_xpos#17 = (byte) current_xpos#35 (byte) current_xpos#33 (byte) current_xpos#74 (byte) current_xpos#55 (byte) current_xpos#61 (byte) current_xpos#54 (byte) current_xpos#34 -Alias (byte) current_piece_color#21 = (byte) current_piece_color#22 (byte) current_piece_color#31 (byte) current_piece_color#57 (byte) current_piece_color#45 (byte) current_piece_color#33 (byte) current_piece_color#46 (byte) current_piece_color#32 +Alias (byte) current_piece_color#21 = (byte) current_piece_color#22 (byte) current_piece_color#31 (byte) current_piece_color#58 (byte) current_piece_color#45 (byte) current_piece_color#33 (byte) current_piece_color#46 (byte) current_piece_color#32 Alias (byte) collision::ypos#0 = (byte/signed word/word/dword/signed dword~) play_move_down::$11 Alias (byte) collision::return#0 = (byte) collision::return#10 Alias (byte*) current_piece#12 = (byte*) current_piece#4 @@ -3712,7 +3738,7 @@ Alias (byte) current_orientation#21 = (byte) current_orientation#36 (byte) curre Alias (byte) current_xpos#42 = (byte) current_xpos#59 (byte) current_xpos#60 (byte) current_xpos#43 Alias (byte) current_ypos#34 = (byte) current_ypos#48 (byte) current_ypos#49 (byte) current_ypos#35 Alias (byte*) current_piece#39 = (byte*) current_piece#51 (byte*) current_piece#52 (byte*) current_piece#40 -Alias (byte*) current_piece_gfx#31 = (byte*) current_piece_gfx#72 (byte*) current_piece_gfx#61 (byte*) current_piece_gfx#44 (byte*) current_piece_gfx#73 +Alias (byte*) current_piece_gfx#31 = (byte*) current_piece_gfx#73 (byte*) current_piece_gfx#61 (byte*) current_piece_gfx#44 (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 @@ -3791,10 +3817,10 @@ Alias (byte) remove_line::y#0 = (byte) remove_line::ypos#1 Alias (byte) remove_line::y#2 = (byte) remove_line::y#3 Alias (byte) remove_line::i1#1 = (byte) remove_line::i1#4 Alias (byte) remove_line::i2#1 = (byte) remove_line::i2#4 -Alias (byte*) init::li#0 = (byte*~) init::$3 -Alias (byte*) init::line#0 = (byte*~) init::$11 -Alias (byte*) init::line#2 = (byte*) init::line#3 -Alias (byte) init::l#2 = (byte) init::l#3 +Alias (byte*) render_init::li#0 = (byte*~) render_init::$3 +Alias (byte*) render_init::line#0 = (byte*~) render_init::$7 +Alias (byte*) render_init::line#2 = (byte*) render_init::line#3 +Alias (byte) render_init::l#2 = (byte) render_init::l#3 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 @@ -3803,16 +3829,16 @@ Alias (byte) current_xpos#28 = (byte) current_xpos#46 Alias (byte*) current_piece_gfx#35 = (byte*) current_piece_gfx#49 Alias (byte) render_current::i#4 = (byte) render_current::i#5 Alias (byte) render_current::l#3 = (byte) render_current::l#8 -Alias (byte) current_piece_color#50 = (byte) current_piece_color#58 +Alias (byte) current_piece_color#50 = (byte) current_piece_color#59 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_color#16 = (byte) current_piece_color#25 (byte) current_piece_color#36 (byte) current_piece_color#59 +Alias (byte) current_piece_color#16 = (byte) current_piece_color#25 (byte) current_piece_color#36 (byte) current_piece_color#60 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#6 = (byte) render_current::ypos2#9 (byte) render_current::ypos2#7 (byte) render_current::ypos2#8 Alias (byte) render_current::l#5 = (byte) render_current::l#9 (byte) render_current::l#6 (byte) render_current::l#7 Alias (byte*) current_piece_gfx#21 = (byte*) current_piece_gfx#65 (byte*) current_piece_gfx#50 (byte*) current_piece_gfx#51 Alias (byte) render_current::i#1 = (byte) render_current::i#9 (byte) render_current::i#6 (byte) render_current::i#7 -Alias (byte) current_xpos#83 = (byte) current_xpos#90 (byte) current_xpos#84 (byte) current_xpos#85 +Alias (byte) current_xpos#84 = (byte) current_xpos#91 (byte) current_xpos#85 (byte) current_xpos#86 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 @@ -3838,12 +3864,12 @@ 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#1 = (byte) current_movedown_counter#21 Alias (byte) current_movedown_counter#10 = (byte) current_movedown_counter#11 (byte) current_movedown_counter#3 (byte) current_movedown_counter#19 -Alias (byte) current_ypos#13 = (byte) current_ypos#55 (byte) current_ypos#64 (byte) current_ypos#45 -Alias (byte) current_xpos#17 = (byte) current_xpos#71 (byte) current_xpos#88 (byte) current_xpos#52 -Alias (byte) current_orientation#16 = (byte) current_orientation#55 (byte) current_orientation#68 (byte) current_orientation#45 -Alias (byte*) current_piece#21 = (byte*) current_piece#56 (byte*) current_piece#66 (byte*) current_piece#47 -Alias (byte*) current_piece_gfx#27 = (byte*) current_piece_gfx#68 (byte*) current_piece_gfx#81 (byte*) current_piece_gfx#57 -Alias (byte) current_piece_color#21 = (byte) current_piece_color#54 (byte) current_piece_color#69 (byte) current_piece_color#43 +Alias (byte) current_ypos#13 = (byte) current_ypos#55 (byte) current_ypos#65 (byte) current_ypos#45 +Alias (byte) current_xpos#17 = (byte) current_xpos#71 (byte) current_xpos#89 (byte) current_xpos#52 +Alias (byte) current_orientation#16 = (byte) current_orientation#55 (byte) current_orientation#69 (byte) current_orientation#45 +Alias (byte*) current_piece#21 = (byte*) current_piece#57 (byte*) current_piece#67 (byte*) current_piece#47 +Alias (byte*) current_piece_gfx#27 = (byte*) current_piece_gfx#69 (byte*) current_piece_gfx#82 (byte*) current_piece_gfx#57 +Alias (byte) current_piece_color#21 = (byte) current_piece_color#55 (byte) current_piece_color#70 (byte) current_piece_color#43 Alias (byte) current_xpos#20 = (byte) current_xpos#40 Alias (byte) current_xpos#25 = (byte) current_xpos#42 Alias (byte) current_ypos#19 = (byte) current_ypos#34 @@ -3876,7 +3902,7 @@ Alias (byte) render_current::ypos2#5 = (byte) render_current::ypos2#6 Alias (byte) render_current::l#4 = (byte) render_current::l#5 Alias (byte*) current_piece_gfx#21 = (byte*) current_piece_gfx#34 Alias (byte) render_current::i#1 = (byte) render_current::i#3 -Alias (byte) current_xpos#78 = (byte) current_xpos#83 +Alias (byte) current_xpos#78 = (byte) current_xpos#84 Alias (byte) current_piece_color#16 = (byte) current_piece_color#49 Alias (byte*) render_current::screen_line#1 = (byte*) render_current::screen_line#4 Successful SSA optimization Pass2AliasElimination @@ -3887,12 +3913,12 @@ Self Phi Eliminated (byte) keyboard_event_scan::row#10 Self Phi Eliminated (byte) keyboard_events_size#40 Self Phi Eliminated (byte) keyboard_modifiers#34 Self Phi Eliminated (byte) current_movedown_counter#38 -Self Phi Eliminated (byte) current_ypos#62 -Self Phi Eliminated (byte*) current_piece#59 -Self Phi Eliminated (byte) current_orientation#65 -Self Phi Eliminated (byte*) current_piece_gfx#74 -Self Phi Eliminated (byte) current_xpos#86 -Self Phi Eliminated (byte) current_piece_color#60 +Self Phi Eliminated (byte) current_ypos#63 +Self Phi Eliminated (byte*) current_piece#60 +Self Phi Eliminated (byte) current_orientation#66 +Self Phi Eliminated (byte*) current_piece_gfx#75 +Self Phi Eliminated (byte) current_xpos#87 +Self Phi Eliminated (byte) current_piece_color#61 Self Phi Eliminated (byte) keyboard_events_size#26 Self Phi Eliminated (byte) keyboard_modifiers#23 Self Phi Eliminated (byte) current_movedown_counter#14 @@ -3915,8 +3941,8 @@ Self Phi Eliminated (byte) lock_current::l#2 Self Phi Eliminated (byte) current_xpos#45 Self Phi Eliminated (byte) find_line::y#2 Self Phi Eliminated (byte) remove_line::y#2 -Self Phi Eliminated (byte*) init::line#2 -Self Phi Eliminated (byte) init::l#2 +Self Phi Eliminated (byte*) render_init::line#2 +Self Phi Eliminated (byte) render_init::l#2 Self Phi Eliminated (byte) render_playfield::l#3 Self Phi Eliminated (byte*) current_piece_gfx#21 Self Phi Eliminated (byte) render_current::ypos2#5 @@ -3951,21 +3977,21 @@ Redundant Phi (byte) current_piece_color#1 (byte) current_piece_color#15 Redundant Phi (byte) keyboard_events_size#40 (byte) keyboard_events_size#19 Redundant Phi (byte) keyboard_modifiers#34 (byte) keyboard_modifiers#16 Redundant Phi (byte) current_movedown_counter#38 (byte) current_movedown_counter#15 -Redundant Phi (byte) current_ypos#62 (byte) current_ypos#12 -Redundant Phi (byte*) current_piece#59 (byte*) current_piece#11 -Redundant Phi (byte) current_orientation#65 (byte) current_orientation#15 -Redundant Phi (byte*) current_piece_gfx#74 (byte*) current_piece_gfx#15 -Redundant Phi (byte) current_xpos#86 (byte) current_xpos#16 -Redundant Phi (byte) current_piece_color#60 (byte) current_piece_color#11 +Redundant Phi (byte) current_ypos#63 (byte) current_ypos#12 +Redundant Phi (byte*) current_piece#60 (byte*) current_piece#11 +Redundant Phi (byte) current_orientation#66 (byte) current_orientation#15 +Redundant Phi (byte*) current_piece_gfx#75 (byte*) current_piece_gfx#15 +Redundant Phi (byte) current_xpos#87 (byte) current_xpos#16 +Redundant Phi (byte) current_piece_color#61 (byte) current_piece_color#11 Redundant Phi (byte) keyboard_events_size#26 (byte) keyboard_events_size#40 Redundant Phi (byte) keyboard_modifiers#23 (byte) keyboard_modifiers#34 Redundant Phi (byte) current_movedown_counter#14 (byte) current_movedown_counter#38 -Redundant Phi (byte) current_ypos#25 (byte) current_ypos#62 -Redundant Phi (byte*) current_piece#19 (byte*) current_piece#59 -Redundant Phi (byte) current_orientation#27 (byte) current_orientation#65 -Redundant Phi (byte*) current_piece_gfx#24 (byte*) current_piece_gfx#74 -Redundant Phi (byte) current_xpos#31 (byte) current_xpos#86 -Redundant Phi (byte) current_piece_color#19 (byte) current_piece_color#60 +Redundant Phi (byte) current_ypos#25 (byte) current_ypos#63 +Redundant Phi (byte*) current_piece#19 (byte*) current_piece#60 +Redundant Phi (byte) current_orientation#27 (byte) current_orientation#66 +Redundant Phi (byte*) current_piece_gfx#24 (byte*) current_piece_gfx#75 +Redundant Phi (byte) current_xpos#31 (byte) current_xpos#87 +Redundant Phi (byte) current_piece_color#19 (byte) current_piece_color#61 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 @@ -4023,8 +4049,8 @@ Redundant Phi (byte) find_line::y#2 (byte) find_line::y#8 Redundant Phi (byte) remove_line::y#0 (byte) remove_line::ypos#0 Redundant Phi (byte) remove_line::y#2 (byte) remove_line::y#4 Redundant Phi (byte*) SCREEN#1 (byte*) SCREEN#2 -Redundant Phi (byte*) init::line#2 (byte*) init::line#4 -Redundant Phi (byte) init::l#2 (byte) init::l#4 +Redundant Phi (byte*) render_init::line#2 (byte*) render_init::line#4 +Redundant Phi (byte) render_init::l#2 (byte) render_init::l#4 Redundant Phi (byte) render_playfield::l#3 (byte) render_playfield::l#2 Redundant Phi (byte*) current_piece_gfx#21 (byte*) current_piece_gfx#35 Redundant Phi (byte) render_current::ypos2#5 (byte) render_current::ypos2#2 @@ -4047,7 +4073,7 @@ Redundant Phi (byte) render_current::ypos2#3 (byte) render_current::ypos2#2 Redundant Phi (byte) render_current::l#2 (byte) render_current::l#3 Redundant Phi (byte) current_xpos#64 (byte) current_xpos#28 Redundant Phi (byte*) current_piece_gfx#64 (byte*) current_piece_gfx#35 -Redundant Phi (byte) current_piece_color#66 (byte) current_piece_color#50 +Redundant Phi (byte) current_piece_color#67 (byte) current_piece_color#50 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 @@ -4061,9 +4087,9 @@ Simple Condition (bool~) keyboard_event_scan::$20 if((byte~) keyboard_event_scan Simple Condition (bool~) keyboard_event_scan::$24 if((byte~) keyboard_event_scan::$22==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@11 Simple Condition (bool~) keyboard_event_scan::$28 if((byte~) keyboard_event_scan::$26==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@12 Simple Condition (bool~) keyboard_event_get::$0 if((byte) keyboard_events_size#13==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_get::@1 -Simple Condition (bool~) main::$5 if(*((byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@5 -Simple Condition (bool~) main::$6 if(*((byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 254) goto main::@8 -Simple Condition (bool~) main::$13 if((byte) main::render#3==(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@10 +Simple Condition (bool~) main::$6 if(*((byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@5 +Simple Condition (bool~) main::$7 if(*((byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 254) goto main::@8 +Simple Condition (bool~) main::$14 if((byte) main::render#3==(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@10 Simple Condition (bool~) play_move_down::$1 if((byte) play_move_down::key_event#0!=(byte) KEY_SPACE#0) goto play_move_down::@1 Simple Condition (bool~) play_move_down::$4 if((byte~) play_move_down::$2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_move_down::@2 Simple Condition (bool~) play_move_down::$8 if((byte) current_movedown_counter#10<(byte) current_movedown_slow#0) goto play_move_down::@4 @@ -4076,7 +4102,7 @@ Simple Condition (bool~) play_move_leftright::$2 if((byte) play_move_leftright:: Simple Condition (bool~) play_move_leftright::$6 if((byte~) play_move_leftright::$4!=(byte) COLLISION_NONE#0) goto play_move_leftright::@3 Simple Condition (bool~) play_move_rotate::$0 if((byte) play_move_rotate::key_event#0==(byte) KEY_Z#0) goto play_move_rotate::@1 Simple Condition (bool~) play_move_rotate::$1 if((byte) play_move_rotate::key_event#0==(byte) KEY_X#0) goto play_move_rotate::@2 -Simple Condition (bool~) play_move_rotate::$8 if((byte~) play_move_rotate::$6!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_move_rotate::@5 +Simple Condition (bool~) play_move_rotate::$8 if((byte~) play_move_rotate::$6!=(byte) COLLISION_NONE#0) goto play_move_rotate::@5 Simple Condition (bool~) collision::$3 if(*((byte*) collision::piece_gfx#2 + (byte) collision::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto collision::@3 Simple Condition (bool~) collision::$14 if((byte) collision::c#1!=rangelast(0,3)) goto collision::@2 Simple Condition (bool~) collision::$6 if((byte) collision::ypos2#2<(byte/signed word/word/dword/signed dword~) collision::$4) goto collision::@4 @@ -4096,10 +4122,10 @@ Simple Condition (bool~) find_line::$6 if((byte) find_line::filled#2!=(byte/sign Simple Condition (bool~) find_line::$7 if((byte) find_line::y#1!=rangelast(0,find_line::$0)) goto find_line::@1 Simple Condition (bool~) remove_line::$4 if((byte) remove_line::x#1!=rangelast(0,remove_line::$3)) goto remove_line::@2 Simple Condition (bool~) remove_line::$5 if((byte) remove_line::y#1!=(byte/signed byte/word/signed word/dword/signed dword) 1) goto remove_line::@1 -Simple Condition (bool~) init::$6 if((byte) init::i#1!=rangelast(0,init::$4)) goto init::@1 -Simple Condition (bool~) init::$9 if((byte) init::j#1!=rangelast(0,init::$7)) goto init::@2 -Simple Condition (bool~) init::$15 if((byte) init::c#1!=rangelast(0,init::$13)) goto init::@4 -Simple Condition (bool~) init::$16 if((byte) init::l#1!=rangelast(0,init::$12)) goto init::@3 +Simple Condition (bool~) tables_init::$2 if((byte) tables_init::j#1!=rangelast(0,tables_init::$0)) goto tables_init::@1 +Simple Condition (bool~) render_init::$6 if((byte) render_init::i#1!=rangelast(0,render_init::$4)) goto render_init::@1 +Simple Condition (bool~) render_init::$11 if((byte) render_init::c#1!=rangelast(0,render_init::$9)) goto render_init::@3 +Simple Condition (bool~) render_init::$12 if((byte) render_init::l#1!=rangelast(0,render_init::$8)) goto render_init::@2 Simple Condition (bool~) render_playfield::$3 if((byte) render_playfield::c#1!=rangelast(0,render_playfield::$2)) goto render_playfield::@2 Simple Condition (bool~) render_playfield::$4 if((byte) render_playfield::l#1!=rangelast(0,render_playfield::$0)) goto render_playfield::@1 Simple Condition (bool~) render_current::$3 if((byte) render_current::ypos2#2>=(byte/signed word/word/dword/signed dword~) render_current::$1) goto render_current::@2 @@ -4208,14 +4234,14 @@ Constant (const byte) find_line::x#0 = 0 Constant (const byte) find_line::filled#1 = 0 Constant (const byte) find_line::return#3 = 255 Constant (const byte) remove_line::x#0 = 0 +Constant (const byte) tables_init::idx#0 = 0 +Constant (const byte) tables_init::j#0 = 0 Constant (const word) fill::size#0 = 1000 Constant (const byte) fill::val#0 = 160 Constant (const word) fill::size#1 = 1000 -Constant (const byte) init::i#0 = 0 -Constant (const byte) init::idx#0 = 0 -Constant (const byte) init::j#0 = 0 -Constant (const byte) init::l#0 = 0 -Constant (const byte) init::c#0 = 0 +Constant (const byte) render_init::i#0 = 0 +Constant (const byte) render_init::l#0 = 0 +Constant (const byte) render_init::c#0 = 0 Constant (const byte) render_playfield::i#0 = 0 Constant (const byte) render_playfield::l#0 = 0 Constant (const byte) render_playfield::c#0 = 0 @@ -4258,16 +4284,16 @@ Constant (const byte) collision::return#9 = COLLISION_NONE#0 Constant (const byte/signed word/word/dword/signed dword) find_line::$0 = PLAYFIELD_LINES#0-1 Constant (const byte/signed word/word/dword/signed dword) find_line::$1 = PLAYFIELD_COLS#0-1 Constant (const byte/signed word/word/dword/signed dword) remove_line::$3 = PLAYFIELD_COLS#0-1 +Constant (const byte/signed word/word/dword/signed dword) tables_init::$0 = PLAYFIELD_LINES#0-1 +Constant (const byte) tables_init::$3 = PLAYFIELD_COLS#0*PLAYFIELD_LINES#0 Constant (const byte*) fill::start#0 = SCREEN#0 Constant (const byte*) fill::start#1 = COLS#0 Constant (const byte) fill::val#1 = BLACK#0 -Constant (const byte*) init::$2 = COLS#0+40 -Constant (const byte/signed word/word/dword/signed dword) init::$4 = PLAYFIELD_LINES#0+2 -Constant (const byte/signed word/word/dword/signed dword) init::$7 = PLAYFIELD_LINES#0-1 -Constant (const byte) init::$10 = PLAYFIELD_COLS#0*PLAYFIELD_LINES#0 -Constant (const byte*) init::line#0 = COLS#0+14 -Constant (const byte/signed word/word/dword/signed dword) init::$12 = PLAYFIELD_LINES#0+1 -Constant (const byte/signed word/word/dword/signed dword) init::$13 = PLAYFIELD_COLS#0+1 +Constant (const byte*) render_init::$2 = COLS#0+40 +Constant (const byte/signed word/word/dword/signed dword) render_init::$4 = PLAYFIELD_LINES#0+2 +Constant (const byte*) render_init::line#0 = COLS#0+14 +Constant (const byte/signed word/word/dword/signed dword) render_init::$8 = PLAYFIELD_LINES#0+1 +Constant (const byte/signed word/word/dword/signed dword) render_init::$9 = PLAYFIELD_COLS#0+1 Constant (const byte/signed word/word/dword/signed dword) render_playfield::$0 = PLAYFIELD_LINES#0-1 Constant (const byte/signed word/word/dword/signed dword) render_playfield::$2 = PLAYFIELD_COLS#0-1 Constant (const byte/signed word/word/dword/signed dword) render_current::$1 = 2*PLAYFIELD_LINES#0 @@ -4276,9 +4302,9 @@ Constant (const word[]) PIECES#0 = { $15, $16, $17, $18, $19, $20, $21 } Constant (const byte[$22]) playfield#0 = { fill( $22, 0) } Constant (const byte[$23]) playfield_lines_idx#0 = { fill( $23, 0) } Constant (const byte*[$24]) screen_lines#0 = { fill( $24, 0) } -Constant (const byte*) init::li#0 = init::$2+15 +Constant (const byte*) render_init::li#0 = render_init::$2+15 Successful SSA optimization Pass2ConstantIdentification -Constant (const byte*) init::pli#0 = playfield#0 +Constant (const byte*) tables_init::pli#0 = playfield#0 Successful SSA optimization Pass2ConstantIdentification Consolidated array index constant in assignment *(playfield_lines_idx#0+1 + remove_line::$0) Consolidated array index constant in *(playfield_lines_idx#0+PLAYFIELD_LINES#0) @@ -4318,14 +4344,14 @@ Resolved ranged next value find_line::y#1 ← ++ find_line::y#8 to ++ Resolved ranged comparison value if(find_line::y#1!=rangelast(0,find_line::$0)) goto find_line::@1 to (const byte/signed word/word/dword/signed dword) find_line::$0+(byte/signed byte/word/signed word/dword/signed dword) 1 Resolved ranged next value remove_line::x#1 ← ++ remove_line::x#2 to ++ Resolved ranged comparison value if(remove_line::x#1!=rangelast(0,remove_line::$3)) goto remove_line::@2 to (const byte/signed word/word/dword/signed dword) remove_line::$3+(byte/signed byte/word/signed word/dword/signed dword) 1 -Resolved ranged next value init::i#1 ← ++ init::i#2 to ++ -Resolved ranged comparison value if(init::i#1!=rangelast(0,init::$4)) goto init::@1 to (const byte/signed word/word/dword/signed dword) init::$4+(byte/signed byte/word/signed word/dword/signed dword) 1 -Resolved ranged next value init::j#1 ← ++ init::j#2 to ++ -Resolved ranged comparison value if(init::j#1!=rangelast(0,init::$7)) goto init::@2 to (const byte/signed word/word/dword/signed dword) init::$7+(byte/signed byte/word/signed word/dword/signed dword) 1 -Resolved ranged next value init::c#1 ← ++ init::c#2 to ++ -Resolved ranged comparison value if(init::c#1!=rangelast(0,init::$13)) goto init::@4 to (const byte/signed word/word/dword/signed dword) init::$13+(byte/signed byte/word/signed word/dword/signed dword) 1 -Resolved ranged next value init::l#1 ← ++ init::l#4 to ++ -Resolved ranged comparison value if(init::l#1!=rangelast(0,init::$12)) goto init::@3 to (const byte/signed word/word/dword/signed dword) init::$12+(byte/signed byte/word/signed word/dword/signed dword) 1 +Resolved ranged next value tables_init::j#1 ← ++ tables_init::j#2 to ++ +Resolved ranged comparison value if(tables_init::j#1!=rangelast(0,tables_init::$0)) goto tables_init::@1 to (const byte/signed word/word/dword/signed dword) tables_init::$0+(byte/signed byte/word/signed word/dword/signed dword) 1 +Resolved ranged next value render_init::i#1 ← ++ render_init::i#2 to ++ +Resolved ranged comparison value if(render_init::i#1!=rangelast(0,render_init::$4)) goto render_init::@1 to (const byte/signed word/word/dword/signed dword) render_init::$4+(byte/signed byte/word/signed word/dword/signed dword) 1 +Resolved ranged next value render_init::c#1 ← ++ render_init::c#2 to ++ +Resolved ranged comparison value if(render_init::c#1!=rangelast(0,render_init::$9)) goto render_init::@3 to (const byte/signed word/word/dword/signed dword) render_init::$9+(byte/signed byte/word/signed word/dword/signed dword) 1 +Resolved ranged next value render_init::l#1 ← ++ render_init::l#4 to ++ +Resolved ranged comparison value if(render_init::l#1!=rangelast(0,render_init::$8)) goto render_init::@2 to (const byte/signed word/word/dword/signed dword) render_init::$8+(byte/signed byte/word/signed word/dword/signed dword) 1 Resolved ranged next value render_playfield::c#1 ← ++ render_playfield::c#2 to ++ Resolved ranged comparison value if(render_playfield::c#1!=rangelast(0,render_playfield::$2)) goto render_playfield::@2 to (const byte/signed word/word/dword/signed dword) render_playfield::$2+(byte/signed byte/word/signed word/dword/signed dword) 1 Resolved ranged next value render_playfield::l#1 ← ++ render_playfield::l#2 to ++ @@ -4342,10 +4368,11 @@ Culled Empty Block (label) keyboard_event_scan::@12 Culled Empty Block (label) keyboard_event_get::@1 Culled Empty Block (label) @11 Culled Empty Block (label) @13 -Culled Empty Block (label) main::@25 +Culled Empty Block (label) main::@26 Culled Empty Block (label) main::@2 Culled Empty Block (label) main::@5 Culled Empty Block (label) main::@8 +Culled Empty Block (label) main::@33 Culled Empty Block (label) play_move_down::@3 Culled Empty Block (label) play_move_down::@5 Culled Empty Block (label) play_move_down::@21 @@ -4366,10 +4393,10 @@ Culled Empty Block (label) remove_lines::@8 Culled Empty Block (label) remove_lines::@4 Culled Empty Block (label) find_line::@7 Culled Empty Block (label) find_line::@9 -Culled Empty Block (label) init::@10 -Culled Empty Block (label) init::@5 +Culled Empty Block (label) render_init::@8 +Culled Empty Block (label) render_init::@4 Culled Empty Block (label) render_current::@5 -Culled Empty Block (label) @27 +Culled Empty Block (label) @28 Successful SSA optimization Pass2CullEmptyBlocks Self Phi Eliminated (byte) collision::col#0 Self Phi Eliminated (byte*) collision::piece_gfx#2 @@ -4387,7 +4414,7 @@ Redundant Phi (byte*) current_piece_gfx#32 (byte*) current_piece_gfx#15 Redundant Phi (byte) current_piece_color#34 (byte) current_piece_color#11 Redundant Phi (byte) current_xpos#28 (byte) current_xpos#63 Redundant Phi (byte*) current_piece_gfx#35 (byte*) current_piece_gfx#63 -Redundant Phi (byte) current_piece_color#50 (byte) current_piece_color#65 +Redundant Phi (byte) current_piece_color#50 (byte) current_piece_color#66 Successful SSA optimization Pass2RedundantPhiElimination Inlining constant with var siblings (const word) fill::size#0 Inlining constant with var siblings (const byte) fill::val#0 @@ -4434,14 +4461,14 @@ Inlining constant with var siblings (const byte) find_line::x#0 Inlining constant with var siblings (const byte) find_line::filled#1 Inlining constant with var siblings (const byte) find_line::return#3 Inlining constant with var siblings (const byte) remove_line::x#0 -Inlining constant with var siblings (const byte) init::i#0 -Inlining constant with var siblings (const byte) init::idx#0 -Inlining constant with var siblings (const byte) init::j#0 -Inlining constant with var siblings (const byte) init::l#0 -Inlining constant with var siblings (const byte) init::c#0 -Inlining constant with var siblings (const byte*) init::line#0 -Inlining constant with var siblings (const byte*) init::li#0 -Inlining constant with var siblings (const byte*) init::pli#0 +Inlining constant with var siblings (const byte) tables_init::idx#0 +Inlining constant with var siblings (const byte) tables_init::j#0 +Inlining constant with var siblings (const byte*) tables_init::pli#0 +Inlining constant with var siblings (const byte) render_init::i#0 +Inlining constant with var siblings (const byte) render_init::l#0 +Inlining constant with var siblings (const byte) render_init::c#0 +Inlining constant with var siblings (const byte*) render_init::line#0 +Inlining constant with var siblings (const byte*) render_init::li#0 Inlining constant with var siblings (const byte) render_playfield::i#0 Inlining constant with var siblings (const byte) render_playfield::l#0 Inlining constant with var siblings (const byte) render_playfield::c#0 @@ -4457,35 +4484,32 @@ Inlining constant with var siblings (const byte) current_ypos#21 Constant inlined current_xpos#10 = (byte/signed byte/word/signed word/dword/signed dword) 3 Constant inlined play_move_rotate::return#1 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined play_move_rotate::return#4 = (byte/signed byte/word/signed word/dword/signed dword) 1 -Constant inlined init::line#0 = (const byte*) COLS#0+(byte/signed byte/word/signed word/dword/signed dword) 14 Constant inlined play_move_rotate::return#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined init::l#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined find_line::i#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined render_current::l#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined current_movedown_counter#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined current_movedown_counter#4 = (byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined init::$7 = (const byte) PLAYFIELD_LINES#0-(byte/signed byte/word/signed word/dword/signed dword) 1 -Constant inlined init::$4 = (const byte) PLAYFIELD_LINES#0+(byte/signed byte/word/signed word/dword/signed dword) 2 Constant inlined fill::start#1 = (const byte*) COLS#0 Constant inlined fill::start#0 = (const byte*) SCREEN#0 -Constant inlined init::idx#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 +Constant inlined render_init::li#0 = (const byte*) COLS#0+(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 15 Constant inlined render_playfield::i#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined fill::size#1 = (word/signed word/dword/signed dword) 1000 Constant inlined fill::size#0 = (word/signed word/dword/signed dword) 1000 Constant inlined lock_current::l#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined init::$2 = (const byte*) COLS#0+(byte/signed byte/word/signed word/dword/signed dword) 40 Constant inlined find_line::y#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined init::pli#0 = (const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 -Constant inlined init::c#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 +Constant inlined render_init::$9 = (const byte) PLAYFIELD_COLS#0+(byte/signed byte/word/signed word/dword/signed dword) 1 Constant inlined collision::return#9 = (const byte) COLLISION_NONE#0 +Constant inlined render_init::$8 = (const byte) PLAYFIELD_LINES#0+(byte/signed byte/word/signed word/dword/signed dword) 1 Constant inlined $10 = (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 Constant inlined $11 = (byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) 4 Constant inlined $12 = (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 Constant inlined keyboard_event_scan::col#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined render_current::i#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined $13 = (byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) 4 +Constant inlined render_init::$4 = (const byte) PLAYFIELD_LINES#0+(byte/signed byte/word/signed word/dword/signed dword) 2 Constant inlined $14 = (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 Constant inlined $15 = ((word))(const byte[4*4*4]) PIECE_T#0 +Constant inlined render_init::$2 = (const byte*) COLS#0+(byte/signed byte/word/signed word/dword/signed dword) 40 Constant inlined $16 = ((word))(const byte[4*4*4]) PIECE_S#0 Constant inlined $17 = ((word))(const byte[4*4*4]) PIECE_Z#0 Constant inlined collision::return#4 = (const byte) COLLISION_BOTTOM#0 @@ -4494,8 +4518,11 @@ Constant inlined $19 = ((word))(const byte[4*4*4]) PIECE_O#0 Constant inlined collision::return#6 = (const byte) COLLISION_LEFT#0 Constant inlined collision::return#8 = (const byte) COLLISION_PLAYFIELD#0 Constant inlined collision::return#7 = (const byte) COLLISION_RIGHT#0 +Constant inlined tables_init::j#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 +Constant inlined tables_init::$0 = (const byte) PLAYFIELD_LINES#0-(byte/signed byte/word/signed word/dword/signed dword) 1 Constant inlined remove_lines::done#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined render_playfield::l#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 +Constant inlined tables_init::$3 = (const byte) PLAYFIELD_COLS#0*(const byte) PLAYFIELD_LINES#0 Constant inlined remove_lines::done#1 = (byte/signed byte/word/signed word/dword/signed dword) 1 Constant inlined collision::$4 = (byte/signed byte/word/signed word/dword/signed dword) 2*(const byte) PLAYFIELD_LINES#0 Constant inlined $20 = ((word))(const byte[4*4*4]) PIECE_I#0 @@ -4504,9 +4531,9 @@ Constant inlined keyboard_event_pressed::keycode#4 = (const byte) KEY_SPACE#0 Constant inlined $22 = (const byte) PLAYFIELD_LINES#0*(const byte) PLAYFIELD_COLS#0 Constant inlined $23 = (const byte) PLAYFIELD_LINES#0+(byte/signed byte/word/signed word/dword/signed dword) 1 Constant inlined $24 = (const byte) PLAYFIELD_LINES#0+(byte/signed byte/word/signed word/dword/signed dword) 3 -Constant inlined init::li#0 = (const byte*) COLS#0+(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 15 Constant inlined keyboard_event_pressed::keycode#3 = (const byte) KEY_COMMODORE#0 Constant inlined keyboard_event_pressed::keycode#2 = (const byte) KEY_CTRL#0 +Constant inlined render_init::i#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined keyboard_event_pressed::keycode#1 = (const byte) KEY_RSHIFT#0 Constant inlined lock_current::i#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined keyboard_event_pressed::keycode#0 = (const byte) KEY_LSHIFT#0 @@ -4514,19 +4541,17 @@ Constant inlined render_current::$1 = (byte/signed byte/word/signed word/dword/s Constant inlined play_move_down::return#2 = (byte/signed byte/word/signed word/dword/signed dword) 1 Constant inlined play_move_down::return#1 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined collision::i#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 +Constant inlined tables_init::idx#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined find_line::filled#1 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined find_line::filled#0 = (byte/signed byte/word/signed word/dword/signed dword) 1 Constant inlined keyboard_events_size#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined remove_line::$3 = (const byte) PLAYFIELD_COLS#0-(byte/signed byte/word/signed word/dword/signed dword) 1 -Constant inlined init::j#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined init::$13 = (const byte) PLAYFIELD_COLS#0+(byte/signed byte/word/signed word/dword/signed dword) 1 Constant inlined current_ypos#21 = (byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined init::$12 = (const byte) PLAYFIELD_LINES#0+(byte/signed byte/word/signed word/dword/signed dword) 1 -Constant inlined init::$10 = (const byte) PLAYFIELD_COLS#0*(const byte) PLAYFIELD_LINES#0 Constant inlined $1 = (byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) 4 Constant inlined $2 = (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 Constant inlined $3 = (byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) 4 Constant inlined $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 +Constant inlined render_init::l#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined $5 = (byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) 4 Constant inlined $6 = (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 Constant inlined $7 = (byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) 4 @@ -4538,6 +4563,7 @@ Constant inlined play_move_leftright::return#1 = (byte/signed byte/word/signed w Constant inlined play_move_leftright::return#4 = (byte/signed byte/word/signed word/dword/signed dword) 1 Constant inlined play_move_leftright::return#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined keyboard_event_scan::keycode#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 +Constant inlined render_init::line#0 = (const byte*) COLS#0+(byte/signed byte/word/signed word/dword/signed dword) 14 Constant inlined collision::l#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined find_line::$0 = (const byte) PLAYFIELD_LINES#0-(byte/signed byte/word/signed word/dword/signed dword) 1 Constant inlined find_line::$1 = (const byte) PLAYFIELD_COLS#0-(byte/signed byte/word/signed word/dword/signed dword) 1 @@ -4546,7 +4572,6 @@ Constant inlined play_move_down::movedown#1 = ++(byte/signed byte/word/signed wo Constant inlined play_move_down::movedown#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined render_current::c#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined remove_line::x#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined init::i#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined fill::val#1 = (const byte) BLACK#0 Constant inlined keyboard_event_scan::row#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined render_playfield::$2 = (const byte) PLAYFIELD_COLS#0-(byte/signed byte/word/signed word/dword/signed dword) 1 @@ -4555,6 +4580,8 @@ Constant inlined render_playfield::$0 = (const byte) PLAYFIELD_LINES#0-(byte/sig Constant inlined collision::c#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined current_orientation#10 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined main::render#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 +Constant inlined render_init::c#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 +Constant inlined tables_init::pli#0 = (const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 Constant inlined lock_current::c#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined keyboard_event_get::return#0 = (byte/word/signed word/dword/signed dword) 255 Constant inlined find_line::x#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 @@ -4603,23 +4630,26 @@ Added new block during phi lifting keyboard_event_scan::@32(between keyboard_eve Fixing phi predecessor for keyboard_event_scan::col#2 to new block ( keyboard_event_scan::@25 -> keyboard_event_scan::@32 ) during phi lifting. Added new block during phi lifting keyboard_event_scan::@33(between keyboard_event_scan::@4 and keyboard_event_scan::@5) Added new block during phi lifting keyboard_event_scan::@34(between keyboard_event_scan::@15 and keyboard_event_scan::@5) -Added new block during phi lifting init::@11(between init::@1 and init::@1) -Added new block during phi lifting init::@12(between init::@2 and init::@2) -Added new block during phi lifting init::@13(between init::@7 and init::@3) -Added new block during phi lifting init::@14(between init::@4 and init::@4) +Added new block during phi lifting tables_init::@3(between tables_init::@1 and tables_init::@1) +Added new block during phi lifting render_init::@9(between render_init::@1 and render_init::@1) +Added new block during phi lifting render_init::@10(between render_init::@5 and render_init::@2) +Added new block during phi lifting render_init::@11(between render_init::@3 and render_init::@3) Added new block during phi lifting fill::@3(between fill::@1 and fill::@1) Adding NOP phi() at start of @begin -Adding NOP phi() at start of @26 +Adding NOP phi() at start of @27 Adding NOP phi() at start of @end Adding NOP phi() at start of main Adding NOP phi() at start of main::@22 Adding NOP phi() at start of main::@23 -Adding NOP phi() at start of main::@26 +Adding NOP phi() at start of main::@24 +Adding NOP phi() at start of main::@27 +Adding NOP phi() at start of main::@19 Adding NOP phi() at start of render_playfield Adding NOP phi() at start of play_move_down::@8 Adding NOP phi() at start of play_move_down::@13 Adding NOP phi() at start of play_move_down::@19 Adding NOP phi() at start of play_move_down::@20 +Adding NOP phi() at start of spawn_current Adding NOP phi() at start of spawn_current::@2 Adding NOP phi() at start of remove_lines Adding NOP phi() at start of find_line @@ -4632,118 +4662,119 @@ Adding NOP phi() at start of keyboard_event_scan::@10 Adding NOP phi() at start of keyboard_event_scan::@23 Adding NOP phi() at start of keyboard_event_scan::@11 Adding NOP phi() at start of keyboard_event_scan::@24 -Adding NOP phi() at start of init -Adding NOP phi() at start of init::@9 +Adding NOP phi() at start of tables_init +Adding NOP phi() at start of render_init +Adding NOP phi() at start of render_init::@7 CALL GRAPH Calls in [] to main:2 -Calls in [main] to sid_rnd_init:5 init:7 spawn_current:9 render_playfield:11 render_current:14 keyboard_event_scan:22 keyboard_event_get:24 play_move_down:28 play_move_leftright:33 play_move_rotate:38 render_playfield:44 render_current:49 -Calls in [play_move_rotate] to collision:128 -Calls in [play_move_leftright] to collision:180 collision:197 -Calls in [play_move_down] to keyboard_event_pressed:208 collision:228 lock_current:233 remove_lines:235 spawn_current:237 +Calls in [main] to sid_rnd_init:5 render_init:7 tables_init:9 spawn_current:11 render_playfield:13 render_current:16 keyboard_event_scan:24 keyboard_event_get:26 play_move_down:30 play_move_leftright:35 play_move_rotate:40 render_playfield:46 render_current:51 +Calls in [play_move_rotate] to collision:129 +Calls in [play_move_leftright] to collision:181 collision:198 +Calls in [play_move_down] to keyboard_event_pressed:209 collision:229 lock_current:234 remove_lines:236 spawn_current:238 Calls in [spawn_current] to sid_rnd:276 Calls in [remove_lines] to find_line:285 remove_line:294 Calls in [keyboard_event_scan] to keyboard_matrix_read:383 keyboard_event_pressed:394 keyboard_event_pressed:400 keyboard_event_pressed:406 keyboard_event_pressed:412 -Calls in [init] to fill:453 fill:455 +Calls in [render_init] to fill:467 fill:469 Created 103 initial phi equivalence classes -Not coalescing [12] current_piece_gfx#85 ← current_piece_gfx#10 -Not coalescing [13] current_piece_color#73 ← current_piece_color#15 -Coalesced [16] current_piece_gfx#84 ← current_piece_gfx#10 -Coalesced [17] current_piece_color#72 ← current_piece_color#15 -Not coalescing [45] current_ypos#69 ← current_ypos#16 -Not coalescing [46] current_xpos#94 ← current_xpos#23 -Not coalescing [47] current_piece_gfx#86 ← current_piece_gfx#18 -Not coalescing [48] current_piece_color#74 ← current_piece_color#13 -Coalesced [52] current_piece#68 ← current_piece#13 -Coalesced [53] current_orientation#72 ← current_orientation#23 -Coalesced [54] current_piece_gfx#83 ← current_piece_gfx#18 -Coalesced [55] current_xpos#93 ← current_xpos#23 -Coalesced [56] current_ypos#68 ← current_ypos#16 -Coalesced [57] current_piece_color#71 ← current_piece_color#13 -Coalesced [58] keyboard_events_size#70 ← keyboard_events_size#16 -Coalesced [59] current_movedown_counter#45 ← current_movedown_counter#12 -Coalesced [62] render_current::ypos2#10 ← render_current::ypos2#0 -Coalesced [67] render_current::i#12 ← render_current::i#4 -Coalesced [68] render_current::xpos#8 ← render_current::xpos#0 -Coalesced [78] render_current::i#14 ← render_current::i#1 -Coalesced [84] render_current::ypos2#11 ← render_current::ypos2#1 -Coalesced [85] render_current::l#10 ← render_current::l#1 -Coalesced [86] render_current::i#10 ← render_current::i#8 -Coalesced (already) [87] render_current::i#11 ← render_current::i#1 -Coalesced [88] render_current::xpos#7 ← render_current::xpos#1 -Coalesced [89] render_current::c#7 ← render_current::c#1 -Coalesced (already) [90] render_current::i#13 ← render_current::i#4 -Coalesced [95] render_playfield::i#6 ← render_playfield::i#3 -Coalesced [96] render_playfield::line#3 ← render_playfield::line#0 -Coalesced [106] render_playfield::l#5 ← render_playfield::l#1 -Coalesced [107] render_playfield::i#5 ← render_playfield::i#1 -Coalesced (already) [108] render_playfield::i#7 ← render_playfield::i#1 -Coalesced [109] render_playfield::line#4 ← render_playfield::line#1 -Coalesced [110] render_playfield::c#3 ← render_playfield::c#1 -Coalesced [113] current_orientation#75 ← current_orientation#18 -Coalesced [114] current_piece_gfx#89 ← current_piece_gfx#17 -Coalesced [119] play_move_rotate::orientation#7 ← play_move_rotate::orientation#2 -Not coalescing [124] current_piece#73 ← current_piece#13 -Coalesced [125] collision::orientation#8 ← collision::orientation#3 -Coalesced [126] collision::ypos#8 ← collision::ypos#3 -Coalesced [127] collision::xpos#17 ← collision::xpos#3 -Coalesced [134] current_orientation#73 ← current_orientation#8 -Coalesced [135] current_piece_gfx#87 ← current_piece_gfx#8 -Coalesced (already) [136] current_orientation#74 ← current_orientation#18 -Coalesced (already) [137] current_piece_gfx#88 ← current_piece_gfx#17 -Coalesced [140] play_move_rotate::orientation#6 ← play_move_rotate::orientation#1 -Coalesced [144] collision::ypos2#11 ← collision::ypos2#0 -Coalesced [147] collision::i#12 ← collision::i#3 -Not coalescing [148] collision::col#9 ← collision::xpos#5 -Coalesced [165] collision::ypos2#12 ← collision::ypos2#1 -Not coalescing [166] collision::i#11 ← collision::i#1 -Coalesced [167] collision::l#11 ← collision::l#1 -Not coalescing [168] collision::i#13 ← collision::i#1 -Coalesced [169] collision::col#10 ← collision::col#1 -Coalesced [170] collision::c#9 ← collision::c#1 -Not coalescing [176] current_piece#72 ← current_piece#13 -Coalesced [177] collision::orientation#7 ← collision::orientation#2 -Coalesced [178] collision::ypos#7 ← collision::ypos#2 -Coalesced [179] collision::xpos#16 ← collision::xpos#2 -Coalesced [185] current_xpos#97 ← current_xpos#7 -Coalesced [188] current_xpos#96 ← current_xpos#19 -Coalesced (already) [189] current_xpos#99 ← current_xpos#19 -Not coalescing [193] current_piece#71 ← current_piece#13 -Coalesced [194] collision::orientation#6 ← collision::orientation#1 -Coalesced [195] collision::ypos#6 ← collision::ypos#1 -Coalesced [196] collision::xpos#15 ← collision::xpos#1 -Coalesced [202] current_xpos#95 ← current_xpos#9 -Coalesced (already) [203] current_xpos#98 ← current_xpos#19 -Coalesced [214] play_move_down::movedown#13 ← play_move_down::movedown#2 -Coalesced [218] play_move_down::movedown#16 ← play_move_down::movedown#3 -Not coalescing [224] current_piece#70 ← current_piece#11 -Coalesced [225] collision::orientation#5 ← collision::orientation#0 -Coalesced [226] collision::ypos#5 ← collision::ypos#0 -Coalesced [227] collision::xpos#14 ← collision::xpos#0 -Coalesced [239] current_piece_gfx#90 ← current_piece_gfx#10 -Coalesced [240] current_piece_color#75 ← current_piece_color#15 -Coalesced [242] current_ypos#72 ← current_ypos#31 -Coalesced [243] current_piece#77 ← current_piece#23 -Coalesced [244] current_orientation#78 ← current_orientation#33 -Coalesced (already) [245] current_piece_gfx#93 ← current_piece_gfx#29 -Coalesced [246] current_xpos#102 ← current_xpos#36 -Coalesced (already) [247] current_piece_color#78 ← current_piece_color#23 -Coalesced [251] current_ypos#70 ← current_ypos#4 -Coalesced (already) [252] current_piece#75 ← current_piece#11 -Coalesced (already) [253] current_orientation#76 ← current_orientation#15 -Coalesced (already) [254] current_piece_gfx#91 ← current_piece_gfx#15 -Coalesced (already) [255] current_xpos#100 ← current_xpos#16 -Coalesced (already) [256] current_piece_color#76 ← current_piece_color#11 -Coalesced [257] current_movedown_counter#46 ← current_movedown_counter#10 -Coalesced (already) [258] current_ypos#71 ← current_ypos#12 -Coalesced (already) [259] current_piece#76 ← current_piece#11 -Coalesced (already) [260] current_orientation#77 ← current_orientation#15 -Coalesced (already) [261] current_piece_gfx#92 ← current_piece_gfx#15 -Coalesced (already) [262] current_xpos#101 ← current_xpos#16 -Coalesced (already) [263] current_piece_color#77 ← current_piece_color#11 -Coalesced [264] play_move_down::movedown#17 ← play_move_down::movedown#7 -Coalesced [265] play_move_down::movedown#15 ← play_move_down::movedown#10 -Coalesced (already) [266] play_move_down::movedown#14 ← play_move_down::movedown#10 +Not coalescing [14] current_piece_gfx#86 ← current_piece_gfx#10 +Not coalescing [15] current_piece_color#74 ← current_piece_color#15 +Coalesced [18] current_piece_gfx#85 ← current_piece_gfx#10 +Coalesced [19] current_piece_color#73 ← current_piece_color#15 +Not coalescing [47] current_ypos#70 ← current_ypos#16 +Not coalescing [48] current_xpos#95 ← current_xpos#23 +Not coalescing [49] current_piece_gfx#87 ← current_piece_gfx#18 +Not coalescing [50] current_piece_color#75 ← current_piece_color#13 +Coalesced [53] current_piece#69 ← current_piece#13 +Coalesced [54] current_orientation#73 ← current_orientation#23 +Coalesced [55] current_piece_gfx#84 ← current_piece_gfx#18 +Coalesced [56] current_xpos#94 ← current_xpos#23 +Coalesced [57] current_ypos#69 ← current_ypos#16 +Coalesced [58] current_piece_color#72 ← current_piece_color#13 +Coalesced [59] keyboard_events_size#71 ← keyboard_events_size#16 +Coalesced [60] current_movedown_counter#46 ← current_movedown_counter#12 +Coalesced [63] render_current::ypos2#10 ← render_current::ypos2#0 +Coalesced [68] render_current::i#12 ← render_current::i#4 +Coalesced [69] render_current::xpos#8 ← render_current::xpos#0 +Coalesced [79] render_current::i#14 ← render_current::i#1 +Coalesced [85] render_current::ypos2#11 ← render_current::ypos2#1 +Coalesced [86] render_current::l#10 ← render_current::l#1 +Coalesced [87] render_current::i#10 ← render_current::i#8 +Coalesced (already) [88] render_current::i#11 ← render_current::i#1 +Coalesced [89] render_current::xpos#7 ← render_current::xpos#1 +Coalesced [90] render_current::c#7 ← render_current::c#1 +Coalesced (already) [91] render_current::i#13 ← render_current::i#4 +Coalesced [96] render_playfield::i#6 ← render_playfield::i#3 +Coalesced [97] render_playfield::line#3 ← render_playfield::line#0 +Coalesced [107] render_playfield::l#5 ← render_playfield::l#1 +Coalesced [108] render_playfield::i#5 ← render_playfield::i#1 +Coalesced (already) [109] render_playfield::i#7 ← render_playfield::i#1 +Coalesced [110] render_playfield::line#4 ← render_playfield::line#1 +Coalesced [111] render_playfield::c#3 ← render_playfield::c#1 +Coalesced [114] current_orientation#76 ← current_orientation#18 +Coalesced [115] current_piece_gfx#90 ← current_piece_gfx#17 +Coalesced [120] play_move_rotate::orientation#7 ← play_move_rotate::orientation#2 +Not coalescing [125] current_piece#74 ← current_piece#13 +Coalesced [126] collision::orientation#8 ← collision::orientation#3 +Coalesced [127] collision::ypos#8 ← collision::ypos#3 +Coalesced [128] collision::xpos#17 ← collision::xpos#3 +Coalesced [135] current_orientation#74 ← current_orientation#8 +Coalesced [136] current_piece_gfx#88 ← current_piece_gfx#8 +Coalesced (already) [137] current_orientation#75 ← current_orientation#18 +Coalesced (already) [138] current_piece_gfx#89 ← current_piece_gfx#17 +Coalesced [141] play_move_rotate::orientation#6 ← play_move_rotate::orientation#1 +Coalesced [145] collision::ypos2#11 ← collision::ypos2#0 +Coalesced [148] collision::i#12 ← collision::i#3 +Not coalescing [149] collision::col#9 ← collision::xpos#5 +Coalesced [166] collision::ypos2#12 ← collision::ypos2#1 +Not coalescing [167] collision::i#11 ← collision::i#1 +Coalesced [168] collision::l#11 ← collision::l#1 +Not coalescing [169] collision::i#13 ← collision::i#1 +Coalesced [170] collision::col#10 ← collision::col#1 +Coalesced [171] collision::c#9 ← collision::c#1 +Not coalescing [177] current_piece#73 ← current_piece#13 +Coalesced [178] collision::orientation#7 ← collision::orientation#2 +Coalesced [179] collision::ypos#7 ← collision::ypos#2 +Coalesced [180] collision::xpos#16 ← collision::xpos#2 +Coalesced [186] current_xpos#98 ← current_xpos#7 +Coalesced [189] current_xpos#97 ← current_xpos#19 +Coalesced (already) [190] current_xpos#100 ← current_xpos#19 +Not coalescing [194] current_piece#72 ← current_piece#13 +Coalesced [195] collision::orientation#6 ← collision::orientation#1 +Coalesced [196] collision::ypos#6 ← collision::ypos#1 +Coalesced [197] collision::xpos#15 ← collision::xpos#1 +Coalesced [203] current_xpos#96 ← current_xpos#9 +Coalesced (already) [204] current_xpos#99 ← current_xpos#19 +Coalesced [215] play_move_down::movedown#13 ← play_move_down::movedown#2 +Coalesced [219] play_move_down::movedown#16 ← play_move_down::movedown#3 +Not coalescing [225] current_piece#71 ← current_piece#11 +Coalesced [226] collision::orientation#5 ← collision::orientation#0 +Coalesced [227] collision::ypos#5 ← collision::ypos#0 +Coalesced [228] collision::xpos#14 ← collision::xpos#0 +Coalesced [240] current_piece_gfx#91 ← current_piece_gfx#10 +Coalesced [241] current_piece_color#76 ← current_piece_color#15 +Coalesced [243] current_ypos#73 ← current_ypos#31 +Coalesced [244] current_piece#78 ← current_piece#23 +Coalesced [245] current_orientation#79 ← current_orientation#33 +Coalesced (already) [246] current_piece_gfx#94 ← current_piece_gfx#29 +Coalesced [247] current_xpos#103 ← current_xpos#36 +Coalesced (already) [248] current_piece_color#79 ← current_piece_color#23 +Coalesced [252] current_ypos#71 ← current_ypos#4 +Coalesced (already) [253] current_piece#76 ← current_piece#11 +Coalesced (already) [254] current_orientation#77 ← current_orientation#15 +Coalesced (already) [255] current_piece_gfx#92 ← current_piece_gfx#15 +Coalesced (already) [256] current_xpos#101 ← current_xpos#16 +Coalesced (already) [257] current_piece_color#77 ← current_piece_color#11 +Coalesced [258] current_movedown_counter#47 ← current_movedown_counter#10 +Coalesced (already) [259] current_ypos#72 ← current_ypos#12 +Coalesced (already) [260] current_piece#77 ← current_piece#11 +Coalesced (already) [261] current_orientation#78 ← current_orientation#15 +Coalesced (already) [262] current_piece_gfx#93 ← current_piece_gfx#15 +Coalesced (already) [263] current_xpos#102 ← current_xpos#16 +Coalesced (already) [264] current_piece_color#78 ← current_piece_color#11 +Coalesced [265] play_move_down::movedown#17 ← play_move_down::movedown#7 +Coalesced [266] play_move_down::movedown#15 ← play_move_down::movedown#10 +Coalesced (already) [267] play_move_down::movedown#14 ← play_move_down::movedown#10 Coalesced [280] spawn_current::piece_idx#4 ← spawn_current::piece_idx#1 Coalesced [292] remove_lines::done#7 ← remove_lines::done#2 Coalesced (already) [295] remove_lines::done#8 ← remove_lines::done#3 @@ -4776,35 +4807,35 @@ Not coalescing [363] lock_current::i#9 ← lock_current::i#1 Coalesced [364] lock_current::col#6 ← lock_current::col#1 Coalesced [365] lock_current::c#5 ← lock_current::c#1 Coalesced [375] keyboard_event_get::return#6 ← keyboard_event_get::return#1 -Coalesced [376] keyboard_events_size#72 ← keyboard_events_size#4 -Coalesced [379] keyboard_events_size#71 ← keyboard_events_size#13 -Coalesced [380] keyboard_events_size#73 ← keyboard_events_size#19 +Coalesced [376] keyboard_events_size#73 ← keyboard_events_size#4 +Coalesced [379] keyboard_events_size#72 ← keyboard_events_size#13 +Coalesced [380] keyboard_events_size#74 ← keyboard_events_size#19 Coalesced [388] keyboard_event_scan::keycode#17 ← keyboard_event_scan::keycode#1 -Coalesced (already) [389] keyboard_events_size#75 ← keyboard_events_size#29 +Coalesced (already) [389] keyboard_events_size#76 ← keyboard_events_size#29 Coalesced [418] keyboard_event_scan::row#15 ← keyboard_event_scan::row#1 Coalesced [419] keyboard_event_scan::keycode#16 ← keyboard_event_scan::keycode#14 -Coalesced (already) [420] keyboard_events_size#74 ← keyboard_events_size#13 +Coalesced (already) [420] keyboard_events_size#75 ← keyboard_events_size#13 Coalesced [421] keyboard_event_scan::keycode#19 ← keyboard_event_scan::keycode#11 -Coalesced [422] keyboard_events_size#77 ← keyboard_events_size#29 -Coalesced [432] keyboard_events_size#79 ← keyboard_events_size#2 +Coalesced [422] keyboard_events_size#78 ← keyboard_events_size#29 +Coalesced [432] keyboard_events_size#80 ← keyboard_events_size#2 Coalesced [438] keyboard_event_scan::keycode#18 ← keyboard_event_scan::keycode#15 -Coalesced [439] keyboard_events_size#76 ← keyboard_events_size#30 +Coalesced [439] keyboard_events_size#77 ← keyboard_events_size#30 Coalesced [440] keyboard_event_scan::col#9 ← keyboard_event_scan::col#1 Coalesced (already) [441] keyboard_event_scan::keycode#20 ← keyboard_event_scan::keycode#15 -Coalesced (already) [442] keyboard_events_size#78 ← keyboard_events_size#30 -Coalesced [446] keyboard_events_size#82 ← keyboard_events_size#1 -Coalesced (already) [447] keyboard_events_size#81 ← keyboard_events_size#10 -Coalesced (already) [448] keyboard_events_size#80 ← keyboard_events_size#10 -Coalesced [481] init::line#5 ← init::line#1 -Coalesced [482] init::l#5 ← init::l#1 -Coalesced [483] init::c#3 ← init::c#1 -Coalesced [484] init::j#3 ← init::j#1 -Coalesced [485] init::pli#3 ← init::pli#1 -Coalesced [486] init::idx#3 ← init::idx#1 -Coalesced [487] init::i#3 ← init::i#1 -Coalesced [488] init::li#3 ← init::li#1 -Coalesced [491] fill::addr#3 ← fill::addr#0 -Coalesced [497] fill::addr#4 ← fill::addr#1 +Coalesced (already) [442] keyboard_events_size#79 ← keyboard_events_size#30 +Coalesced [446] keyboard_events_size#83 ← keyboard_events_size#1 +Coalesced (already) [447] keyboard_events_size#82 ← keyboard_events_size#10 +Coalesced (already) [448] keyboard_events_size#81 ← keyboard_events_size#10 +Coalesced [463] tables_init::j#3 ← tables_init::j#1 +Coalesced [464] tables_init::pli#3 ← tables_init::pli#1 +Coalesced [465] tables_init::idx#3 ← tables_init::idx#1 +Coalesced [486] render_init::line#5 ← render_init::line#1 +Coalesced [487] render_init::l#5 ← render_init::l#1 +Coalesced [488] render_init::c#3 ← render_init::c#1 +Coalesced [489] render_init::i#3 ← render_init::i#1 +Coalesced [490] render_init::li#3 ← render_init::li#1 +Coalesced [493] fill::addr#3 ← fill::addr#0 +Coalesced [499] fill::addr#4 ← fill::addr#1 Coalesced down to 69 phi equivalence classes Culled Empty Block (label) render_current::@14 Culled Empty Block (label) render_current::@11 @@ -4832,23 +4863,26 @@ Culled Empty Block (label) keyboard_event_scan::@32 Culled Empty Block (label) keyboard_event_scan::@31 Culled Empty Block (label) keyboard_event_scan::@34 Culled Empty Block (label) keyboard_event_scan::@33 -Culled Empty Block (label) init::@13 -Culled Empty Block (label) init::@14 -Culled Empty Block (label) init::@12 -Culled Empty Block (label) init::@11 +Culled Empty Block (label) tables_init::@3 +Culled Empty Block (label) render_init::@10 +Culled Empty Block (label) render_init::@11 +Culled Empty Block (label) render_init::@9 Culled Empty Block (label) fill::@3 Adding NOP phi() at start of @begin -Adding NOP phi() at start of @26 +Adding NOP phi() at start of @27 Adding NOP phi() at start of @end Adding NOP phi() at start of main Adding NOP phi() at start of main::@22 Adding NOP phi() at start of main::@23 -Adding NOP phi() at start of main::@26 +Adding NOP phi() at start of main::@24 +Adding NOP phi() at start of main::@27 +Adding NOP phi() at start of main::@19 Adding NOP phi() at start of render_playfield Adding NOP phi() at start of play_move_down::@8 Adding NOP phi() at start of play_move_down::@13 Adding NOP phi() at start of play_move_down::@19 Adding NOP phi() at start of play_move_down::@20 +Adding NOP phi() at start of spawn_current Adding NOP phi() at start of spawn_current::@2 Adding NOP phi() at start of remove_lines Adding NOP phi() at start of find_line @@ -4862,401 +4896,402 @@ Adding NOP phi() at start of keyboard_event_scan::@10 Adding NOP phi() at start of keyboard_event_scan::@23 Adding NOP phi() at start of keyboard_event_scan::@11 Adding NOP phi() at start of keyboard_event_scan::@24 -Adding NOP phi() at start of init -Adding NOP phi() at start of init::@9 +Adding NOP phi() at start of tables_init +Adding NOP phi() at start of render_init +Adding NOP phi() at start of render_init::@7 FINAL CONTROL FLOW GRAPH @begin: scope:[] from [0] phi() - to:@26 -@26: scope:[] from @begin + to:@27 +@27: scope:[] from @begin [1] phi() [2] call main to:@end -@end: scope:[] from @26 +@end: scope:[] from @27 [3] phi() -main: scope:[main] from @26 +main: scope:[main] from @27 [4] phi() [5] call sid_rnd_init to:main::@21 main::@21: scope:[main] from main asm { sei } - [7] call init + [7] call render_init to:main::@22 main::@22: scope:[main] from main::@21 [8] phi() - [9] call spawn_current + [9] call tables_init to:main::@23 main::@23: scope:[main] from main::@22 [10] phi() - [11] call render_playfield + [11] call spawn_current to:main::@24 main::@24: scope:[main] from main::@23 - [12] (byte*~) current_piece_gfx#85 ← (byte*) current_piece_gfx#10 - [13] (byte~) current_piece_color#73 ← (byte) current_piece_color#15 - [14] call render_current - [15] (byte*~) current_piece#69 ← (byte*)*((const word[]) PIECES#0 + (byte~) spawn_current::$3) + [12] phi() + [13] call render_playfield + to:main::@25 +main::@25: scope:[main] from main::@24 + [14] (byte*~) current_piece_gfx#86 ← (byte*) current_piece_gfx#10 + [15] (byte~) current_piece_color#74 ← (byte) current_piece_color#15 + [16] call render_current + [17] (byte*~) current_piece#70 ← (byte*)*((const word[]) PIECES#0 + (byte~) spawn_current::$3) to:main::@1 -main::@1: scope:[main] from main::@10 main::@24 - [16] (byte) current_movedown_counter#15 ← phi( main::@10/(byte) current_movedown_counter#12 main::@24/(byte/signed byte/word/signed word/dword/signed dword) 0 ) - [16] (byte) keyboard_events_size#19 ← phi( main::@10/(byte) keyboard_events_size#16 main::@24/(byte/signed byte/word/signed word/dword/signed dword) 0 ) - [16] (byte) current_piece_color#11 ← phi( main::@10/(byte) current_piece_color#13 main::@24/(byte) current_piece_color#15 ) - [16] (byte) current_ypos#12 ← phi( main::@10/(byte) current_ypos#16 main::@24/(byte/signed byte/word/signed word/dword/signed dword) 0 ) - [16] (byte) current_xpos#16 ← phi( main::@10/(byte) current_xpos#23 main::@24/(byte/signed byte/word/signed word/dword/signed dword) 3 ) - [16] (byte*) current_piece_gfx#15 ← phi( main::@10/(byte*) current_piece_gfx#18 main::@24/(byte*) current_piece_gfx#10 ) - [16] (byte) current_orientation#15 ← phi( main::@10/(byte) current_orientation#23 main::@24/(byte/signed byte/word/signed word/dword/signed dword) 0 ) - [16] (byte*) current_piece#11 ← phi( main::@10/(byte*) current_piece#13 main::@24/(byte*~) current_piece#69 ) +main::@1: scope:[main] from main::@10 main::@25 + [18] (byte) current_movedown_counter#15 ← phi( main::@10/(byte) current_movedown_counter#12 main::@25/(byte/signed byte/word/signed word/dword/signed dword) 0 ) + [18] (byte) keyboard_events_size#19 ← phi( main::@10/(byte) keyboard_events_size#16 main::@25/(byte/signed byte/word/signed word/dword/signed dword) 0 ) + [18] (byte) current_piece_color#11 ← phi( main::@10/(byte) current_piece_color#13 main::@25/(byte) current_piece_color#15 ) + [18] (byte) current_ypos#12 ← phi( main::@10/(byte) current_ypos#16 main::@25/(byte/signed byte/word/signed word/dword/signed dword) 0 ) + [18] (byte) current_xpos#16 ← phi( main::@10/(byte) current_xpos#23 main::@25/(byte/signed byte/word/signed word/dword/signed dword) 3 ) + [18] (byte*) current_piece_gfx#15 ← phi( main::@10/(byte*) current_piece_gfx#18 main::@25/(byte*) current_piece_gfx#10 ) + [18] (byte) current_orientation#15 ← phi( main::@10/(byte) current_orientation#23 main::@25/(byte/signed byte/word/signed word/dword/signed dword) 0 ) + [18] (byte*) current_piece#11 ← phi( main::@10/(byte*) current_piece#13 main::@25/(byte*~) current_piece#70 ) to:main::@4 main::@4: scope:[main] from main::@1 main::@4 - [17] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@4 + [19] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@4 to:main::@7 main::@7: scope:[main] from main::@4 main::@7 - [18] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 254) goto main::@7 + [20] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 254) goto main::@7 to:main::@9 main::@9: scope:[main] from main::@7 - [19] *((const byte*) BORDERCOL#0) ← ++ *((const byte*) BORDERCOL#0) - [20] call keyboard_event_scan - to:main::@26 -main::@26: scope:[main] from main::@9 - [21] phi() - [22] call keyboard_event_get - [23] (byte) keyboard_event_get::return#3 ← (byte) keyboard_event_get::return#2 + [21] *((const byte*) BORDERCOL#0) ← ++ *((const byte*) BORDERCOL#0) + [22] call keyboard_event_scan to:main::@27 -main::@27: scope:[main] from main::@26 - [24] (byte) main::key_event#0 ← (byte) keyboard_event_get::return#3 - [25] (byte) play_move_down::key_event#0 ← (byte) main::key_event#0 - [26] call play_move_down - [27] (byte) play_move_down::return#0 ← (byte) play_move_down::return#3 +main::@27: scope:[main] from main::@9 + [23] phi() + [24] call keyboard_event_get + [25] (byte) keyboard_event_get::return#3 ← (byte) keyboard_event_get::return#2 to:main::@28 main::@28: scope:[main] from main::@27 - [28] (byte~) main::$9 ← (byte) play_move_down::return#0 - [29] (byte) main::render#1 ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte~) main::$9 - [30] (byte) play_move_leftright::key_event#0 ← (byte) main::key_event#0 - [31] call play_move_leftright - [32] (byte) play_move_leftright::return#0 ← (byte) play_move_leftright::return#2 + [26] (byte) main::key_event#0 ← (byte) keyboard_event_get::return#3 + [27] (byte) play_move_down::key_event#0 ← (byte) main::key_event#0 + [28] call play_move_down + [29] (byte) play_move_down::return#0 ← (byte) play_move_down::return#3 to:main::@29 main::@29: scope:[main] from main::@28 - [33] (byte~) main::$10 ← (byte) play_move_leftright::return#0 - [34] (byte) main::render#2 ← (byte) main::render#1 + (byte~) main::$10 - [35] (byte) play_move_rotate::key_event#0 ← (byte) main::key_event#0 - [36] call play_move_rotate - [37] (byte) play_move_rotate::return#0 ← (byte) play_move_rotate::return#2 + [30] (byte~) main::$10 ← (byte) play_move_down::return#0 + [31] (byte) main::render#1 ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte~) main::$10 + [32] (byte) play_move_leftright::key_event#0 ← (byte) main::key_event#0 + [33] call play_move_leftright + [34] (byte) play_move_leftright::return#0 ← (byte) play_move_leftright::return#2 to:main::@30 main::@30: scope:[main] from main::@29 - [38] (byte~) main::$11 ← (byte) play_move_rotate::return#0 - [39] (byte) main::render#3 ← (byte) main::render#2 + (byte~) main::$11 - [40] if((byte) main::render#3==(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@10 - to:main::@19 -main::@19: scope:[main] from main::@30 - [41] *((const byte*) BORDERCOL#0) ← ++ *((const byte*) BORDERCOL#0) - [42] call render_playfield + [35] (byte~) main::$11 ← (byte) play_move_leftright::return#0 + [36] (byte) main::render#2 ← (byte) main::render#1 + (byte~) main::$11 + [37] (byte) play_move_rotate::key_event#0 ← (byte) main::key_event#0 + [38] call play_move_rotate + [39] (byte) play_move_rotate::return#0 ← (byte) play_move_rotate::return#2 to:main::@31 -main::@31: scope:[main] from main::@19 - [43] (byte~) current_ypos#69 ← (byte) current_ypos#16 - [44] (byte~) current_xpos#94 ← (byte) current_xpos#23 - [45] (byte*~) current_piece_gfx#86 ← (byte*) current_piece_gfx#18 - [46] (byte~) current_piece_color#74 ← (byte) current_piece_color#13 - [47] call render_current +main::@31: scope:[main] from main::@30 + [40] (byte~) main::$12 ← (byte) play_move_rotate::return#0 + [41] (byte) main::render#3 ← (byte) main::render#2 + (byte~) main::$12 + [42] if((byte) main::render#3==(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@10 + to:main::@19 +main::@19: scope:[main] from main::@31 + [43] phi() + [44] call render_playfield to:main::@32 -main::@32: scope:[main] from main::@31 - [48] *((const byte*) BORDERCOL#0) ← -- *((const byte*) BORDERCOL#0) +main::@32: scope:[main] from main::@19 + [45] (byte~) current_ypos#70 ← (byte) current_ypos#16 + [46] (byte~) current_xpos#95 ← (byte) current_xpos#23 + [47] (byte*~) current_piece_gfx#87 ← (byte*) current_piece_gfx#18 + [48] (byte~) current_piece_color#75 ← (byte) current_piece_color#13 + [49] call render_current to:main::@10 -main::@10: scope:[main] from main::@30 main::@32 - [49] *((const byte*) BORDERCOL#0) ← -- *((const byte*) BORDERCOL#0) +main::@10: scope:[main] from main::@31 main::@32 + [50] *((const byte*) BORDERCOL#0) ← -- *((const byte*) BORDERCOL#0) to:main::@1 -render_current: scope:[render_current] from main::@24 main::@31 - [50] (byte) current_piece_color#65 ← phi( main::@24/(byte~) current_piece_color#73 main::@31/(byte~) current_piece_color#74 ) - [50] (byte*) current_piece_gfx#63 ← phi( main::@24/(byte*~) current_piece_gfx#85 main::@31/(byte*~) current_piece_gfx#86 ) - [50] (byte) current_xpos#63 ← phi( main::@24/(byte/signed byte/word/signed word/dword/signed dword) 3 main::@31/(byte~) current_xpos#94 ) - [50] (byte) current_ypos#22 ← phi( main::@24/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@31/(byte~) current_ypos#69 ) - [51] (byte) render_current::ypos2#0 ← (byte) current_ypos#22 << (byte/signed byte/word/signed word/dword/signed dword) 1 +render_current: scope:[render_current] from main::@25 main::@32 + [51] (byte) current_piece_color#66 ← phi( main::@25/(byte~) current_piece_color#74 main::@32/(byte~) current_piece_color#75 ) + [51] (byte*) current_piece_gfx#63 ← phi( main::@25/(byte*~) current_piece_gfx#86 main::@32/(byte*~) current_piece_gfx#87 ) + [51] (byte) current_xpos#63 ← phi( main::@25/(byte/signed byte/word/signed word/dword/signed dword) 3 main::@32/(byte~) current_xpos#95 ) + [51] (byte) current_ypos#22 ← phi( main::@25/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@32/(byte~) current_ypos#70 ) + [52] (byte) render_current::ypos2#0 ← (byte) current_ypos#22 << (byte/signed byte/word/signed word/dword/signed dword) 1 to:render_current::@1 render_current::@1: scope:[render_current] from render_current render_current::@2 - [52] (byte) render_current::i#4 ← phi( render_current/(byte/signed byte/word/signed word/dword/signed dword) 0 render_current::@2/(byte) render_current::i#8 ) - [52] (byte) render_current::l#3 ← phi( render_current/(byte/signed byte/word/signed word/dword/signed dword) 0 render_current::@2/(byte) render_current::l#1 ) - [52] (byte) render_current::ypos2#2 ← phi( render_current/(byte) render_current::ypos2#0 render_current::@2/(byte) render_current::ypos2#1 ) - [53] if((byte) render_current::ypos2#2>=(byte/signed byte/word/signed word/dword/signed dword) 2*(const byte) PLAYFIELD_LINES#0) goto render_current::@2 + [53] (byte) render_current::i#4 ← phi( render_current/(byte/signed byte/word/signed word/dword/signed dword) 0 render_current::@2/(byte) render_current::i#8 ) + [53] (byte) render_current::l#3 ← phi( render_current/(byte/signed byte/word/signed word/dword/signed dword) 0 render_current::@2/(byte) render_current::l#1 ) + [53] (byte) render_current::ypos2#2 ← phi( render_current/(byte) render_current::ypos2#0 render_current::@2/(byte) render_current::ypos2#1 ) + [54] if((byte) render_current::ypos2#2>=(byte/signed byte/word/signed word/dword/signed dword) 2*(const byte) PLAYFIELD_LINES#0) goto render_current::@2 to:render_current::@6 render_current::@6: scope:[render_current] from render_current::@1 - [54] (byte*) render_current::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0+3]) screen_lines#0 + (byte) render_current::ypos2#2) - [55] (byte) render_current::xpos#0 ← (byte) current_xpos#63 + [55] (byte*) render_current::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0+3]) screen_lines#0 + (byte) render_current::ypos2#2) + [56] (byte) render_current::xpos#0 ← (byte) current_xpos#63 to:render_current::@3 render_current::@3: scope:[render_current] from render_current::@4 render_current::@6 - [56] (byte) render_current::c#2 ← phi( render_current::@4/(byte) render_current::c#1 render_current::@6/(byte/signed byte/word/signed word/dword/signed dword) 0 ) - [56] (byte) render_current::xpos#2 ← phi( render_current::@4/(byte) render_current::xpos#1 render_current::@6/(byte) render_current::xpos#0 ) - [56] (byte) render_current::i#2 ← phi( render_current::@4/(byte) render_current::i#1 render_current::@6/(byte) render_current::i#4 ) - [57] (byte) render_current::current_cell#0 ← *((byte*) current_piece_gfx#63 + (byte) render_current::i#2) - [58] (byte) render_current::i#1 ← ++ (byte) render_current::i#2 - [59] if((byte) render_current::current_cell#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto render_current::@4 + [57] (byte) render_current::c#2 ← phi( render_current::@4/(byte) render_current::c#1 render_current::@6/(byte/signed byte/word/signed word/dword/signed dword) 0 ) + [57] (byte) render_current::xpos#2 ← phi( render_current::@4/(byte) render_current::xpos#1 render_current::@6/(byte) render_current::xpos#0 ) + [57] (byte) render_current::i#2 ← phi( render_current::@4/(byte) render_current::i#1 render_current::@6/(byte) render_current::i#4 ) + [58] (byte) render_current::current_cell#0 ← *((byte*) current_piece_gfx#63 + (byte) render_current::i#2) + [59] (byte) render_current::i#1 ← ++ (byte) render_current::i#2 + [60] if((byte) render_current::current_cell#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto render_current::@4 to:render_current::@7 render_current::@7: scope:[render_current] from render_current::@3 - [60] if((byte) render_current::xpos#2>=(const byte) PLAYFIELD_COLS#0) goto render_current::@4 + [61] if((byte) render_current::xpos#2>=(const byte) PLAYFIELD_COLS#0) goto render_current::@4 to:render_current::@8 render_current::@8: scope:[render_current] from render_current::@7 - [61] *((byte*) render_current::screen_line#0 + (byte) render_current::xpos#2) ← (byte) current_piece_color#65 + [62] *((byte*) render_current::screen_line#0 + (byte) render_current::xpos#2) ← (byte) current_piece_color#66 to:render_current::@4 render_current::@4: scope:[render_current] from render_current::@3 render_current::@7 render_current::@8 - [62] (byte) render_current::xpos#1 ← ++ (byte) render_current::xpos#2 - [63] (byte) render_current::c#1 ← ++ (byte) render_current::c#2 - [64] if((byte) render_current::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_current::@3 + [63] (byte) render_current::xpos#1 ← ++ (byte) render_current::xpos#2 + [64] (byte) render_current::c#1 ← ++ (byte) render_current::c#2 + [65] if((byte) render_current::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_current::@3 to:render_current::@2 render_current::@2: scope:[render_current] from render_current::@1 render_current::@4 - [65] (byte) render_current::i#8 ← phi( render_current::@1/(byte) render_current::i#4 render_current::@4/(byte) render_current::i#1 ) - [66] (byte) render_current::ypos2#1 ← (byte) render_current::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 - [67] (byte) render_current::l#1 ← ++ (byte) render_current::l#3 - [68] if((byte) render_current::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_current::@1 + [66] (byte) render_current::i#8 ← phi( render_current::@1/(byte) render_current::i#4 render_current::@4/(byte) render_current::i#1 ) + [67] (byte) render_current::ypos2#1 ← (byte) render_current::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 + [68] (byte) render_current::l#1 ← ++ (byte) render_current::l#3 + [69] if((byte) render_current::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_current::@1 to:render_current::@return render_current::@return: scope:[render_current] from render_current::@2 - [69] return + [70] return to:@return -render_playfield: scope:[render_playfield] from main::@19 main::@23 - [70] phi() +render_playfield: scope:[render_playfield] from main::@19 main::@24 + [71] phi() to:render_playfield::@1 render_playfield::@1: scope:[render_playfield] from render_playfield render_playfield::@3 - [71] (byte) render_playfield::i#3 ← phi( render_playfield/(byte/signed byte/word/signed word/dword/signed dword) 0 render_playfield::@3/(byte) render_playfield::i#1 ) - [71] (byte) render_playfield::l#2 ← phi( render_playfield/(byte/signed byte/word/signed word/dword/signed dword) 0 render_playfield::@3/(byte) render_playfield::l#1 ) - [72] (byte~) render_playfield::$1 ← (byte) render_playfield::l#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 - [73] (byte*) render_playfield::line#0 ← *((const byte*[PLAYFIELD_LINES#0+3]) screen_lines#0 + (byte~) render_playfield::$1) + [72] (byte) render_playfield::i#3 ← phi( render_playfield/(byte/signed byte/word/signed word/dword/signed dword) 0 render_playfield::@3/(byte) render_playfield::i#1 ) + [72] (byte) render_playfield::l#2 ← phi( render_playfield/(byte/signed byte/word/signed word/dword/signed dword) 0 render_playfield::@3/(byte) render_playfield::l#1 ) + [73] (byte~) render_playfield::$1 ← (byte) render_playfield::l#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 + [74] (byte*) render_playfield::line#0 ← *((const byte*[PLAYFIELD_LINES#0+3]) screen_lines#0 + (byte~) render_playfield::$1) to:render_playfield::@2 render_playfield::@2: scope:[render_playfield] from render_playfield::@1 render_playfield::@2 - [74] (byte) render_playfield::c#2 ← phi( render_playfield::@1/(byte/signed byte/word/signed word/dword/signed dword) 0 render_playfield::@2/(byte) render_playfield::c#1 ) - [74] (byte*) render_playfield::line#2 ← phi( render_playfield::@1/(byte*) render_playfield::line#0 render_playfield::@2/(byte*) render_playfield::line#1 ) - [74] (byte) render_playfield::i#2 ← phi( render_playfield::@1/(byte) render_playfield::i#3 render_playfield::@2/(byte) render_playfield::i#1 ) - [75] *((byte*) render_playfield::line#2) ← *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) render_playfield::i#2) - [76] (byte*) render_playfield::line#1 ← ++ (byte*) render_playfield::line#2 - [77] (byte) render_playfield::i#1 ← ++ (byte) render_playfield::i#2 - [78] (byte) render_playfield::c#1 ← ++ (byte) render_playfield::c#2 - [79] if((byte) render_playfield::c#1!=(const byte) PLAYFIELD_COLS#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_playfield::@2 + [75] (byte) render_playfield::c#2 ← phi( render_playfield::@1/(byte/signed byte/word/signed word/dword/signed dword) 0 render_playfield::@2/(byte) render_playfield::c#1 ) + [75] (byte*) render_playfield::line#2 ← phi( render_playfield::@1/(byte*) render_playfield::line#0 render_playfield::@2/(byte*) render_playfield::line#1 ) + [75] (byte) render_playfield::i#2 ← phi( render_playfield::@1/(byte) render_playfield::i#3 render_playfield::@2/(byte) render_playfield::i#1 ) + [76] *((byte*) render_playfield::line#2) ← *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) render_playfield::i#2) + [77] (byte*) render_playfield::line#1 ← ++ (byte*) render_playfield::line#2 + [78] (byte) render_playfield::i#1 ← ++ (byte) render_playfield::i#2 + [79] (byte) render_playfield::c#1 ← ++ (byte) render_playfield::c#2 + [80] if((byte) render_playfield::c#1!=(const byte) PLAYFIELD_COLS#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_playfield::@2 to:render_playfield::@3 render_playfield::@3: scope:[render_playfield] from render_playfield::@2 - [80] (byte) render_playfield::l#1 ← ++ (byte) render_playfield::l#2 - [81] if((byte) render_playfield::l#1!=(const byte) PLAYFIELD_LINES#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_playfield::@1 + [81] (byte) render_playfield::l#1 ← ++ (byte) render_playfield::l#2 + [82] if((byte) render_playfield::l#1!=(const byte) PLAYFIELD_LINES#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_playfield::@1 to:render_playfield::@return render_playfield::@return: scope:[render_playfield] from render_playfield::@3 - [82] return + [83] return to:@return -play_move_rotate: scope:[play_move_rotate] from main::@29 - [83] if((byte) play_move_rotate::key_event#0==(const byte) KEY_Z#0) goto play_move_rotate::@1 +play_move_rotate: scope:[play_move_rotate] from main::@30 + [84] if((byte) play_move_rotate::key_event#0==(const byte) KEY_Z#0) goto play_move_rotate::@1 to:play_move_rotate::@6 play_move_rotate::@6: scope:[play_move_rotate] from play_move_rotate - [84] if((byte) play_move_rotate::key_event#0==(const byte) KEY_X#0) goto play_move_rotate::@2 + [85] 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 - [85] (byte*) current_piece_gfx#18 ← phi( play_move_rotate::@11/(byte*) current_piece_gfx#8 play_move_rotate::@14/(byte*) current_piece_gfx#17 play_move_rotate::@6/(byte*) current_piece_gfx#17 ) - [85] (byte) current_orientation#23 ← phi( play_move_rotate::@11/(byte) current_orientation#8 play_move_rotate::@14/(byte) current_orientation#18 play_move_rotate::@6/(byte) current_orientation#18 ) - [85] (byte) play_move_rotate::return#2 ← phi( play_move_rotate::@11/(byte/signed byte/word/signed word/dword/signed dword) 1 play_move_rotate::@14/(byte/signed byte/word/signed word/dword/signed dword) 0 play_move_rotate::@6/(byte/signed byte/word/signed word/dword/signed dword) 0 ) - [86] return + [86] (byte*) current_piece_gfx#18 ← phi( play_move_rotate::@11/(byte*) current_piece_gfx#8 play_move_rotate::@14/(byte*) current_piece_gfx#17 play_move_rotate::@6/(byte*) current_piece_gfx#17 ) + [86] (byte) current_orientation#23 ← phi( play_move_rotate::@11/(byte) current_orientation#8 play_move_rotate::@14/(byte) current_orientation#18 play_move_rotate::@6/(byte) current_orientation#18 ) + [86] (byte) play_move_rotate::return#2 ← phi( play_move_rotate::@11/(byte/signed byte/word/signed word/dword/signed dword) 1 play_move_rotate::@14/(byte/signed byte/word/signed word/dword/signed dword) 0 play_move_rotate::@6/(byte/signed byte/word/signed word/dword/signed dword) 0 ) + [87] return to:@return play_move_rotate::@2: scope:[play_move_rotate] from play_move_rotate::@6 - [87] (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 - [88] (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 + [88] (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 ← (byte) current_orientation#18 + (byte/signed byte/word/signed word/dword/signed dword) 16 + [89] (byte) play_move_rotate::orientation#2 ← (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 & (byte/signed byte/word/signed word/dword/signed dword) 63 to:play_move_rotate::@4 play_move_rotate::@4: scope:[play_move_rotate] from play_move_rotate::@1 play_move_rotate::@2 - [89] (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 ) - [90] (byte) collision::xpos#3 ← (byte) current_xpos#23 - [91] (byte) collision::ypos#3 ← (byte) current_ypos#16 - [92] (byte) collision::orientation#3 ← (byte) play_move_rotate::orientation#3 - [93] (byte*~) current_piece#73 ← (byte*) current_piece#13 - [94] call collision - [95] (byte) collision::return#13 ← (byte) collision::return#14 + [90] (byte) play_move_rotate::orientation#3 ← phi( play_move_rotate::@1/(byte) play_move_rotate::orientation#1 play_move_rotate::@2/(byte) play_move_rotate::orientation#2 ) + [91] (byte) collision::xpos#3 ← (byte) current_xpos#23 + [92] (byte) collision::ypos#3 ← (byte) current_ypos#16 + [93] (byte) collision::orientation#3 ← (byte) play_move_rotate::orientation#3 + [94] (byte*~) current_piece#74 ← (byte*) current_piece#13 + [95] call collision + [96] (byte) collision::return#13 ← (byte) collision::return#14 to:play_move_rotate::@14 play_move_rotate::@14: scope:[play_move_rotate] from play_move_rotate::@4 - [96] (byte~) play_move_rotate::$6 ← (byte) collision::return#13 - [97] if((byte~) play_move_rotate::$6!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_move_rotate::@return + [97] (byte~) play_move_rotate::$6 ← (byte) collision::return#13 + [98] if((byte~) play_move_rotate::$6!=(const byte) COLLISION_NONE#0) goto play_move_rotate::@return to:play_move_rotate::@11 play_move_rotate::@11: scope:[play_move_rotate] from play_move_rotate::@14 - [98] (byte) current_orientation#8 ← (byte) play_move_rotate::orientation#3 - [99] (byte*) current_piece_gfx#8 ← (byte*) current_piece#13 + (byte) current_orientation#8 + [99] (byte) current_orientation#8 ← (byte) play_move_rotate::orientation#3 + [100] (byte*) current_piece_gfx#8 ← (byte*) current_piece#13 + (byte) current_orientation#8 to:play_move_rotate::@return play_move_rotate::@1: scope:[play_move_rotate] from play_move_rotate - [100] (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 ← (byte) current_orientation#18 - (byte/signed byte/word/signed word/dword/signed dword) 16 - [101] (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 + [101] (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 ← (byte) current_orientation#18 - (byte/signed byte/word/signed word/dword/signed dword) 16 + [102] (byte) play_move_rotate::orientation#1 ← (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 & (byte/signed byte/word/signed word/dword/signed dword) 63 to:play_move_rotate::@4 collision: scope:[collision] from play_move_down::@12 play_move_leftright::@1 play_move_leftright::@7 play_move_rotate::@4 - [102] (byte) collision::xpos#5 ← phi( play_move_down::@12/(byte) collision::xpos#0 play_move_leftright::@1/(byte) collision::xpos#1 play_move_leftright::@7/(byte) collision::xpos#2 play_move_rotate::@4/(byte) collision::xpos#3 ) - [102] (byte) collision::ypos#4 ← phi( play_move_down::@12/(byte) collision::ypos#0 play_move_leftright::@1/(byte) collision::ypos#1 play_move_leftright::@7/(byte) collision::ypos#2 play_move_rotate::@4/(byte) collision::ypos#3 ) - [102] (byte) collision::orientation#4 ← phi( play_move_down::@12/(byte) collision::orientation#0 play_move_leftright::@1/(byte) collision::orientation#1 play_move_leftright::@7/(byte) collision::orientation#2 play_move_rotate::@4/(byte) collision::orientation#3 ) - [102] (byte*) current_piece#15 ← phi( play_move_down::@12/(byte*~) current_piece#70 play_move_leftright::@1/(byte*~) current_piece#71 play_move_leftright::@7/(byte*~) current_piece#72 play_move_rotate::@4/(byte*~) current_piece#73 ) - [103] (byte*) collision::piece_gfx#0 ← (byte*) current_piece#15 + (byte) collision::orientation#4 - [104] (byte) collision::ypos2#0 ← (byte) collision::ypos#4 << (byte/signed byte/word/signed word/dword/signed dword) 1 + [103] (byte) collision::xpos#5 ← phi( play_move_down::@12/(byte) collision::xpos#0 play_move_leftright::@1/(byte) collision::xpos#1 play_move_leftright::@7/(byte) collision::xpos#2 play_move_rotate::@4/(byte) collision::xpos#3 ) + [103] (byte) collision::ypos#4 ← phi( play_move_down::@12/(byte) collision::ypos#0 play_move_leftright::@1/(byte) collision::ypos#1 play_move_leftright::@7/(byte) collision::ypos#2 play_move_rotate::@4/(byte) collision::ypos#3 ) + [103] (byte) collision::orientation#4 ← phi( play_move_down::@12/(byte) collision::orientation#0 play_move_leftright::@1/(byte) collision::orientation#1 play_move_leftright::@7/(byte) collision::orientation#2 play_move_rotate::@4/(byte) collision::orientation#3 ) + [103] (byte*) current_piece#15 ← phi( play_move_down::@12/(byte*~) current_piece#71 play_move_leftright::@1/(byte*~) current_piece#72 play_move_leftright::@7/(byte*~) current_piece#73 play_move_rotate::@4/(byte*~) current_piece#74 ) + [104] (byte*) collision::piece_gfx#0 ← (byte*) current_piece#15 + (byte) collision::orientation#4 + [105] (byte) collision::ypos2#0 ← (byte) collision::ypos#4 << (byte/signed byte/word/signed word/dword/signed dword) 1 to:collision::@1 collision::@1: scope:[collision] from collision collision::@20 - [105] (byte) collision::l#6 ← phi( collision/(byte/signed byte/word/signed word/dword/signed dword) 0 collision::@20/(byte) collision::l#1 ) - [105] (byte) collision::i#3 ← phi( collision/(byte/signed byte/word/signed word/dword/signed dword) 0 collision::@20/(byte~) collision::i#11 ) - [105] (byte) collision::ypos2#2 ← phi( collision/(byte) collision::ypos2#0 collision::@20/(byte) collision::ypos2#1 ) - [106] (byte*) collision::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) collision::ypos2#2) - [107] (byte~) collision::col#9 ← (byte) collision::xpos#5 + [106] (byte) collision::l#6 ← phi( collision/(byte/signed byte/word/signed word/dword/signed dword) 0 collision::@20/(byte) collision::l#1 ) + [106] (byte) collision::i#3 ← phi( collision/(byte/signed byte/word/signed word/dword/signed dword) 0 collision::@20/(byte~) collision::i#11 ) + [106] (byte) collision::ypos2#2 ← phi( collision/(byte) collision::ypos2#0 collision::@20/(byte) collision::ypos2#1 ) + [107] (byte*) collision::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) collision::ypos2#2) + [108] (byte~) collision::col#9 ← (byte) collision::xpos#5 to:collision::@2 collision::@2: scope:[collision] from collision::@1 collision::@21 - [108] (byte) collision::c#2 ← phi( collision::@1/(byte/signed byte/word/signed word/dword/signed dword) 0 collision::@21/(byte) collision::c#1 ) - [108] (byte) collision::col#2 ← phi( collision::@1/(byte~) collision::col#9 collision::@21/(byte) collision::col#1 ) - [108] (byte) collision::i#2 ← phi( collision::@1/(byte) collision::i#3 collision::@21/(byte~) collision::i#13 ) - [109] (byte) collision::i#1 ← ++ (byte) collision::i#2 - [110] if(*((byte*) collision::piece_gfx#0 + (byte) collision::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto collision::@3 + [109] (byte) collision::c#2 ← phi( collision::@1/(byte/signed byte/word/signed word/dword/signed dword) 0 collision::@21/(byte) collision::c#1 ) + [109] (byte) collision::col#2 ← phi( collision::@1/(byte~) collision::col#9 collision::@21/(byte) collision::col#1 ) + [109] (byte) collision::i#2 ← phi( collision::@1/(byte) collision::i#3 collision::@21/(byte~) collision::i#13 ) + [110] (byte) collision::i#1 ← ++ (byte) collision::i#2 + [111] if(*((byte*) collision::piece_gfx#0 + (byte) collision::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto collision::@3 to:collision::@8 collision::@8: scope:[collision] from collision::@2 - [111] if((byte) collision::ypos2#2<(byte/signed byte/word/signed word/dword/signed dword) 2*(const byte) PLAYFIELD_LINES#0) goto collision::@4 + [112] if((byte) collision::ypos2#2<(byte/signed byte/word/signed word/dword/signed dword) 2*(const byte) PLAYFIELD_LINES#0) goto collision::@4 to:collision::@return collision::@return: scope:[collision] from collision::@17 collision::@4 collision::@5 collision::@6 collision::@8 - [112] (byte) collision::return#14 ← phi( collision::@4/(const byte) COLLISION_LEFT#0 collision::@5/(const byte) COLLISION_RIGHT#0 collision::@6/(const byte) COLLISION_PLAYFIELD#0 collision::@17/(const byte) COLLISION_NONE#0 collision::@8/(const byte) COLLISION_BOTTOM#0 ) - [113] return + [113] (byte) collision::return#14 ← phi( collision::@4/(const byte) COLLISION_LEFT#0 collision::@5/(const byte) COLLISION_RIGHT#0 collision::@6/(const byte) COLLISION_PLAYFIELD#0 collision::@17/(const byte) COLLISION_NONE#0 collision::@8/(const byte) COLLISION_BOTTOM#0 ) + [114] return to:@return collision::@4: scope:[collision] from collision::@8 - [114] (byte~) collision::$7 ← (byte) collision::col#2 & (byte/word/signed word/dword/signed dword) 128 - [115] if((byte~) collision::$7==(byte/signed byte/word/signed word/dword/signed dword) 0) goto collision::@5 + [115] (byte~) collision::$7 ← (byte) collision::col#2 & (byte/word/signed word/dword/signed dword) 128 + [116] if((byte~) collision::$7==(byte/signed byte/word/signed word/dword/signed dword) 0) goto collision::@5 to:collision::@return collision::@5: scope:[collision] from collision::@4 - [116] if((byte) collision::col#2<(const byte) PLAYFIELD_COLS#0) goto collision::@6 + [117] if((byte) collision::col#2<(const byte) PLAYFIELD_COLS#0) goto collision::@6 to:collision::@return collision::@6: scope:[collision] from collision::@5 - [117] if(*((byte*) collision::playfield_line#0 + (byte) collision::col#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto collision::@3 + [118] if(*((byte*) collision::playfield_line#0 + (byte) collision::col#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto collision::@3 to:collision::@return collision::@3: scope:[collision] from collision::@2 collision::@6 - [118] (byte) collision::col#1 ← ++ (byte) collision::col#2 - [119] (byte) collision::c#1 ← ++ (byte) collision::c#2 - [120] if((byte) collision::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto collision::@21 + [119] (byte) collision::col#1 ← ++ (byte) collision::col#2 + [120] (byte) collision::c#1 ← ++ (byte) collision::c#2 + [121] if((byte) collision::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto collision::@21 to:collision::@17 collision::@17: scope:[collision] from collision::@3 - [121] (byte) collision::ypos2#1 ← (byte) collision::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 - [122] (byte) collision::l#1 ← ++ (byte) collision::l#6 - [123] if((byte) collision::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto collision::@20 + [122] (byte) collision::ypos2#1 ← (byte) collision::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 + [123] (byte) collision::l#1 ← ++ (byte) collision::l#6 + [124] if((byte) collision::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto collision::@20 to:collision::@return collision::@20: scope:[collision] from collision::@17 - [124] (byte~) collision::i#11 ← (byte) collision::i#1 + [125] (byte~) collision::i#11 ← (byte) collision::i#1 to:collision::@1 collision::@21: scope:[collision] from collision::@3 - [125] (byte~) collision::i#13 ← (byte) collision::i#1 + [126] (byte~) collision::i#13 ← (byte) collision::i#1 to:collision::@2 -play_move_leftright: scope:[play_move_leftright] from main::@28 - [126] if((byte) play_move_leftright::key_event#0==(const byte) KEY_COMMA#0) goto play_move_leftright::@1 +play_move_leftright: scope:[play_move_leftright] from main::@29 + [127] if((byte) play_move_leftright::key_event#0==(const byte) KEY_COMMA#0) goto play_move_leftright::@1 to:play_move_leftright::@6 play_move_leftright::@6: scope:[play_move_leftright] from play_move_leftright - [127] if((byte) play_move_leftright::key_event#0!=(const byte) KEY_DOT#0) goto play_move_leftright::@return + [128] 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 - [128] (byte) collision::xpos#2 ← (byte) current_xpos#19 + (byte/signed byte/word/signed word/dword/signed dword) 1 - [129] (byte) collision::ypos#2 ← (byte) current_ypos#16 - [130] (byte) collision::orientation#2 ← (byte) current_orientation#18 - [131] (byte*~) current_piece#72 ← (byte*) current_piece#13 - [132] call collision - [133] (byte) collision::return#12 ← (byte) collision::return#14 + [129] (byte) collision::xpos#2 ← (byte) current_xpos#19 + (byte/signed byte/word/signed word/dword/signed dword) 1 + [130] (byte) collision::ypos#2 ← (byte) current_ypos#16 + [131] (byte) collision::orientation#2 ← (byte) current_orientation#18 + [132] (byte*~) current_piece#73 ← (byte*) current_piece#13 + [133] call collision + [134] (byte) collision::return#12 ← (byte) collision::return#14 to:play_move_leftright::@15 play_move_leftright::@15: scope:[play_move_leftright] from play_move_leftright::@7 - [134] (byte~) play_move_leftright::$4 ← (byte) collision::return#12 - [135] if((byte~) play_move_leftright::$4!=(const byte) COLLISION_NONE#0) goto play_move_leftright::@return + [135] (byte~) play_move_leftright::$4 ← (byte) collision::return#12 + [136] if((byte~) play_move_leftright::$4!=(const byte) COLLISION_NONE#0) goto play_move_leftright::@return to:play_move_leftright::@8 play_move_leftright::@8: scope:[play_move_leftright] from play_move_leftright::@15 - [136] (byte) current_xpos#7 ← ++ (byte) current_xpos#19 + [137] (byte) current_xpos#7 ← ++ (byte) current_xpos#19 to:play_move_leftright::@return play_move_leftright::@return: scope:[play_move_leftright] from play_move_leftright::@11 play_move_leftright::@14 play_move_leftright::@15 play_move_leftright::@6 play_move_leftright::@8 - [137] (byte) current_xpos#23 ← phi( play_move_leftright::@11/(byte) current_xpos#9 play_move_leftright::@15/(byte) current_xpos#19 play_move_leftright::@8/(byte) current_xpos#7 play_move_leftright::@14/(byte) current_xpos#19 play_move_leftright::@6/(byte) current_xpos#19 ) - [137] (byte) play_move_leftright::return#2 ← phi( play_move_leftright::@11/(byte/signed byte/word/signed word/dword/signed dword) 1 play_move_leftright::@15/(byte/signed byte/word/signed word/dword/signed dword) 0 play_move_leftright::@8/(byte/signed byte/word/signed word/dword/signed dword) 1 play_move_leftright::@14/(byte/signed byte/word/signed word/dword/signed dword) 0 play_move_leftright::@6/(byte/signed byte/word/signed word/dword/signed dword) 0 ) - [138] return + [138] (byte) current_xpos#23 ← phi( play_move_leftright::@11/(byte) current_xpos#9 play_move_leftright::@15/(byte) current_xpos#19 play_move_leftright::@8/(byte) current_xpos#7 play_move_leftright::@14/(byte) current_xpos#19 play_move_leftright::@6/(byte) current_xpos#19 ) + [138] (byte) play_move_leftright::return#2 ← phi( play_move_leftright::@11/(byte/signed byte/word/signed word/dword/signed dword) 1 play_move_leftright::@15/(byte/signed byte/word/signed word/dword/signed dword) 0 play_move_leftright::@8/(byte/signed byte/word/signed word/dword/signed dword) 1 play_move_leftright::@14/(byte/signed byte/word/signed word/dword/signed dword) 0 play_move_leftright::@6/(byte/signed byte/word/signed word/dword/signed dword) 0 ) + [139] return to:@return play_move_leftright::@1: scope:[play_move_leftright] from play_move_leftright - [139] (byte) collision::xpos#1 ← (byte) current_xpos#19 - (byte/signed byte/word/signed word/dword/signed dword) 1 - [140] (byte) collision::ypos#1 ← (byte) current_ypos#16 - [141] (byte) collision::orientation#1 ← (byte) current_orientation#18 - [142] (byte*~) current_piece#71 ← (byte*) current_piece#13 - [143] call collision - [144] (byte) collision::return#1 ← (byte) collision::return#14 + [140] (byte) collision::xpos#1 ← (byte) current_xpos#19 - (byte/signed byte/word/signed word/dword/signed dword) 1 + [141] (byte) collision::ypos#1 ← (byte) current_ypos#16 + [142] (byte) collision::orientation#1 ← (byte) current_orientation#18 + [143] (byte*~) current_piece#72 ← (byte*) current_piece#13 + [144] call collision + [145] (byte) collision::return#1 ← (byte) collision::return#14 to:play_move_leftright::@14 play_move_leftright::@14: scope:[play_move_leftright] from play_move_leftright::@1 - [145] (byte~) play_move_leftright::$8 ← (byte) collision::return#1 - [146] if((byte~) play_move_leftright::$8!=(const byte) COLLISION_NONE#0) goto play_move_leftright::@return + [146] (byte~) play_move_leftright::$8 ← (byte) collision::return#1 + [147] if((byte~) play_move_leftright::$8!=(const byte) COLLISION_NONE#0) goto play_move_leftright::@return to:play_move_leftright::@11 play_move_leftright::@11: scope:[play_move_leftright] from play_move_leftright::@14 - [147] (byte) current_xpos#9 ← -- (byte) current_xpos#19 + [148] (byte) current_xpos#9 ← -- (byte) current_xpos#19 to:play_move_leftright::@return -play_move_down: scope:[play_move_down] from main::@27 - [148] (byte) current_movedown_counter#10 ← ++ (byte) current_movedown_counter#15 - [149] if((byte) play_move_down::key_event#0!=(const byte) KEY_SPACE#0) goto play_move_down::@1 +play_move_down: scope:[play_move_down] from main::@28 + [149] (byte) current_movedown_counter#10 ← ++ (byte) current_movedown_counter#15 + [150] if((byte) play_move_down::key_event#0!=(const byte) KEY_SPACE#0) goto play_move_down::@1 to:play_move_down::@8 play_move_down::@8: scope:[play_move_down] from play_move_down - [150] phi() + [151] phi() to:play_move_down::@1 play_move_down::@1: scope:[play_move_down] from play_move_down play_move_down::@8 - [151] (byte) play_move_down::movedown#10 ← phi( play_move_down/(byte/signed byte/word/signed word/dword/signed dword) 0 play_move_down::@8/(byte/signed byte/word/signed word/dword/signed dword) 1 ) - [152] call keyboard_event_pressed - [153] (byte) keyboard_event_pressed::return#12 ← (byte) keyboard_event_pressed::return#11 + [152] (byte) play_move_down::movedown#10 ← phi( play_move_down/(byte/signed byte/word/signed word/dword/signed dword) 0 play_move_down::@8/(byte/signed byte/word/signed word/dword/signed dword) 1 ) + [153] call keyboard_event_pressed + [154] (byte) keyboard_event_pressed::return#12 ← (byte) keyboard_event_pressed::return#11 to:play_move_down::@17 play_move_down::@17: scope:[play_move_down] from play_move_down::@1 - [154] (byte~) play_move_down::$2 ← (byte) keyboard_event_pressed::return#12 - [155] if((byte~) play_move_down::$2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_move_down::@2 + [155] (byte~) play_move_down::$2 ← (byte) keyboard_event_pressed::return#12 + [156] if((byte~) play_move_down::$2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_move_down::@2 to:play_move_down::@9 play_move_down::@9: scope:[play_move_down] from play_move_down::@17 - [156] if((byte) current_movedown_counter#10<(const byte) current_movedown_fast#0) goto play_move_down::@2 + [157] if((byte) current_movedown_counter#10<(const byte) current_movedown_fast#0) goto play_move_down::@2 to:play_move_down::@10 play_move_down::@10: scope:[play_move_down] from play_move_down::@9 - [157] (byte) play_move_down::movedown#2 ← ++ (byte) play_move_down::movedown#10 + [158] (byte) play_move_down::movedown#2 ← ++ (byte) play_move_down::movedown#10 to:play_move_down::@2 play_move_down::@2: scope:[play_move_down] from play_move_down::@10 play_move_down::@17 play_move_down::@9 - [158] (byte) play_move_down::movedown#7 ← phi( play_move_down::@10/(byte) play_move_down::movedown#2 play_move_down::@17/(byte) play_move_down::movedown#10 play_move_down::@9/(byte) play_move_down::movedown#10 ) - [159] if((byte) current_movedown_counter#10<(const byte) current_movedown_slow#0) goto play_move_down::@4 + [159] (byte) play_move_down::movedown#7 ← phi( play_move_down::@10/(byte) play_move_down::movedown#2 play_move_down::@17/(byte) play_move_down::movedown#10 play_move_down::@9/(byte) play_move_down::movedown#10 ) + [160] if((byte) current_movedown_counter#10<(const byte) current_movedown_slow#0) goto play_move_down::@4 to:play_move_down::@11 play_move_down::@11: scope:[play_move_down] from play_move_down::@2 - [160] (byte) play_move_down::movedown#3 ← ++ (byte) play_move_down::movedown#7 + [161] (byte) play_move_down::movedown#3 ← ++ (byte) play_move_down::movedown#7 to:play_move_down::@4 play_move_down::@4: scope:[play_move_down] from play_move_down::@11 play_move_down::@2 - [161] (byte) play_move_down::movedown#6 ← phi( play_move_down::@11/(byte) play_move_down::movedown#3 play_move_down::@2/(byte) play_move_down::movedown#7 ) - [162] if((byte) play_move_down::movedown#6==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_move_down::@return + [162] (byte) play_move_down::movedown#6 ← phi( play_move_down::@11/(byte) play_move_down::movedown#3 play_move_down::@2/(byte) play_move_down::movedown#7 ) + [163] if((byte) play_move_down::movedown#6==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_move_down::@return to:play_move_down::@12 play_move_down::@12: scope:[play_move_down] from play_move_down::@4 - [163] (byte) collision::ypos#0 ← (byte) current_ypos#12 + (byte/signed byte/word/signed word/dword/signed dword) 1 - [164] (byte) collision::xpos#0 ← (byte) current_xpos#16 - [165] (byte) collision::orientation#0 ← (byte) current_orientation#15 - [166] (byte*~) current_piece#70 ← (byte*) current_piece#11 - [167] call collision - [168] (byte) collision::return#0 ← (byte) collision::return#14 + [164] (byte) collision::ypos#0 ← (byte) current_ypos#12 + (byte/signed byte/word/signed word/dword/signed dword) 1 + [165] (byte) collision::xpos#0 ← (byte) current_xpos#16 + [166] (byte) collision::orientation#0 ← (byte) current_orientation#15 + [167] (byte*~) current_piece#71 ← (byte*) current_piece#11 + [168] call collision + [169] (byte) collision::return#0 ← (byte) collision::return#14 to:play_move_down::@18 play_move_down::@18: scope:[play_move_down] from play_move_down::@12 - [169] (byte~) play_move_down::$12 ← (byte) collision::return#0 - [170] if((byte~) play_move_down::$12==(const byte) COLLISION_NONE#0) goto play_move_down::@6 + [170] (byte~) play_move_down::$12 ← (byte) collision::return#0 + [171] if((byte~) play_move_down::$12==(const byte) COLLISION_NONE#0) goto play_move_down::@6 to:play_move_down::@13 play_move_down::@13: scope:[play_move_down] from play_move_down::@18 - [171] phi() - [172] call lock_current + [172] phi() + [173] call lock_current to:play_move_down::@19 play_move_down::@19: scope:[play_move_down] from play_move_down::@13 - [173] phi() - [174] call remove_lines + [174] phi() + [175] call remove_lines to:play_move_down::@20 play_move_down::@20: scope:[play_move_down] from play_move_down::@19 - [175] phi() - [176] call spawn_current - [177] (byte*~) current_piece#74 ← (byte*)*((const word[]) PIECES#0 + (byte~) spawn_current::$3) + [176] phi() + [177] call spawn_current + [178] (byte*~) current_piece#75 ← (byte*)*((const word[]) PIECES#0 + (byte~) spawn_current::$3) to:play_move_down::@7 play_move_down::@7: scope:[play_move_down] from play_move_down::@20 play_move_down::@6 - [178] (byte) current_piece_color#23 ← phi( play_move_down::@20/(byte) current_piece_color#15 play_move_down::@6/(byte) current_piece_color#11 ) - [178] (byte) current_xpos#36 ← phi( play_move_down::@20/(byte/signed byte/word/signed word/dword/signed dword) 3 play_move_down::@6/(byte) current_xpos#16 ) - [178] (byte*) current_piece_gfx#29 ← phi( play_move_down::@20/(byte*) current_piece_gfx#10 play_move_down::@6/(byte*) current_piece_gfx#15 ) - [178] (byte) current_orientation#33 ← phi( play_move_down::@20/(byte/signed byte/word/signed word/dword/signed dword) 0 play_move_down::@6/(byte) current_orientation#15 ) - [178] (byte*) current_piece#23 ← phi( play_move_down::@20/(byte*~) current_piece#74 play_move_down::@6/(byte*) current_piece#11 ) - [178] (byte) current_ypos#31 ← phi( play_move_down::@20/(byte/signed byte/word/signed word/dword/signed dword) 0 play_move_down::@6/(byte) current_ypos#4 ) + [179] (byte) current_piece_color#23 ← phi( play_move_down::@20/(byte) current_piece_color#15 play_move_down::@6/(byte) current_piece_color#11 ) + [179] (byte) current_xpos#36 ← phi( play_move_down::@20/(byte/signed byte/word/signed word/dword/signed dword) 3 play_move_down::@6/(byte) current_xpos#16 ) + [179] (byte*) current_piece_gfx#29 ← phi( play_move_down::@20/(byte*) current_piece_gfx#10 play_move_down::@6/(byte*) current_piece_gfx#15 ) + [179] (byte) current_orientation#33 ← phi( play_move_down::@20/(byte/signed byte/word/signed word/dword/signed dword) 0 play_move_down::@6/(byte) current_orientation#15 ) + [179] (byte*) current_piece#23 ← phi( play_move_down::@20/(byte*~) current_piece#75 play_move_down::@6/(byte*) current_piece#11 ) + [179] (byte) current_ypos#31 ← phi( play_move_down::@20/(byte/signed byte/word/signed word/dword/signed dword) 0 play_move_down::@6/(byte) current_ypos#4 ) to:play_move_down::@return play_move_down::@return: scope:[play_move_down] from play_move_down::@4 play_move_down::@7 - [179] (byte) current_piece_color#13 ← phi( play_move_down::@4/(byte) current_piece_color#11 play_move_down::@7/(byte) current_piece_color#23 ) - [179] (byte) current_xpos#19 ← phi( play_move_down::@4/(byte) current_xpos#16 play_move_down::@7/(byte) current_xpos#36 ) - [179] (byte*) current_piece_gfx#17 ← phi( play_move_down::@4/(byte*) current_piece_gfx#15 play_move_down::@7/(byte*) current_piece_gfx#29 ) - [179] (byte) current_orientation#18 ← phi( play_move_down::@4/(byte) current_orientation#15 play_move_down::@7/(byte) current_orientation#33 ) - [179] (byte*) current_piece#13 ← phi( play_move_down::@4/(byte*) current_piece#11 play_move_down::@7/(byte*) current_piece#23 ) - [179] (byte) current_ypos#16 ← phi( play_move_down::@4/(byte) current_ypos#12 play_move_down::@7/(byte) current_ypos#31 ) - [179] (byte) current_movedown_counter#12 ← phi( play_move_down::@4/(byte) current_movedown_counter#10 play_move_down::@7/(byte/signed byte/word/signed word/dword/signed dword) 0 ) - [179] (byte) play_move_down::return#3 ← phi( play_move_down::@4/(byte/signed byte/word/signed word/dword/signed dword) 0 play_move_down::@7/(byte/signed byte/word/signed word/dword/signed dword) 1 ) - [180] return + [180] (byte) current_piece_color#13 ← phi( play_move_down::@4/(byte) current_piece_color#11 play_move_down::@7/(byte) current_piece_color#23 ) + [180] (byte) current_xpos#19 ← phi( play_move_down::@4/(byte) current_xpos#16 play_move_down::@7/(byte) current_xpos#36 ) + [180] (byte*) current_piece_gfx#17 ← phi( play_move_down::@4/(byte*) current_piece_gfx#15 play_move_down::@7/(byte*) current_piece_gfx#29 ) + [180] (byte) current_orientation#18 ← phi( play_move_down::@4/(byte) current_orientation#15 play_move_down::@7/(byte) current_orientation#33 ) + [180] (byte*) current_piece#13 ← phi( play_move_down::@4/(byte*) current_piece#11 play_move_down::@7/(byte*) current_piece#23 ) + [180] (byte) current_ypos#16 ← phi( play_move_down::@4/(byte) current_ypos#12 play_move_down::@7/(byte) current_ypos#31 ) + [180] (byte) current_movedown_counter#12 ← phi( play_move_down::@4/(byte) current_movedown_counter#10 play_move_down::@7/(byte/signed byte/word/signed word/dword/signed dword) 0 ) + [180] (byte) play_move_down::return#3 ← phi( play_move_down::@4/(byte/signed byte/word/signed word/dword/signed dword) 0 play_move_down::@7/(byte/signed byte/word/signed word/dword/signed dword) 1 ) + [181] return to:@return play_move_down::@6: scope:[play_move_down] from play_move_down::@18 - [181] (byte) current_ypos#4 ← ++ (byte) current_ypos#12 + [182] (byte) current_ypos#4 ← ++ (byte) current_ypos#12 to:play_move_down::@7 -spawn_current: scope:[spawn_current] from main::@22 play_move_down::@20 - [182] *((const byte*) BORDERCOL#0) ← ++ *((const byte*) BORDERCOL#0) +spawn_current: scope:[spawn_current] from main::@23 play_move_down::@20 + [183] phi() to:spawn_current::@1 spawn_current::@1: scope:[spawn_current] from spawn_current spawn_current::@7 - [183] (byte) spawn_current::piece_idx#2 ← phi( spawn_current/(byte/signed byte/word/signed word/dword/signed dword) 7 spawn_current::@7/(byte) spawn_current::piece_idx#1 ) - [184] if((byte) spawn_current::piece_idx#2==(byte/signed byte/word/signed word/dword/signed dword) 7) goto spawn_current::@2 + [184] (byte) spawn_current::piece_idx#2 ← phi( spawn_current/(byte/signed byte/word/signed word/dword/signed dword) 7 spawn_current::@7/(byte) spawn_current::piece_idx#1 ) + [185] if((byte) spawn_current::piece_idx#2==(byte/signed byte/word/signed word/dword/signed dword) 7) goto spawn_current::@2 to:spawn_current::@3 spawn_current::@3: scope:[spawn_current] from spawn_current::@1 - [185] *((const byte*) BORDERCOL#0) ← -- *((const byte*) BORDERCOL#0) [186] (byte~) spawn_current::$3 ← (byte) spawn_current::piece_idx#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [187] (byte*) current_piece_gfx#10 ← (byte*)*((const word[]) PIECES#0 + (byte~) spawn_current::$3) + (byte/signed byte/word/signed word/dword/signed dword) 0 [188] (byte) current_piece_color#15 ← *((const byte[]) PIECES_COLORS#0 + (byte) spawn_current::piece_idx#2) @@ -5417,7 +5452,7 @@ keyboard_event_pressed: scope:[keyboard_event_pressed] from keyboard_event_scan keyboard_event_pressed::@return: scope:[keyboard_event_pressed] from keyboard_event_pressed [259] return to:@return -keyboard_event_get: scope:[keyboard_event_get] from main::@26 +keyboard_event_get: scope:[keyboard_event_get] from main::@27 [260] if((byte) keyboard_events_size#13==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_get::@return to:keyboard_event_get::@3 keyboard_event_get::@3: scope:[keyboard_event_get] from keyboard_event_get @@ -5544,77 +5579,83 @@ keyboard_matrix_read: scope:[keyboard_matrix_read] from keyboard_event_scan::@1 keyboard_matrix_read::@return: scope:[keyboard_matrix_read] from keyboard_matrix_read [320] return to:@return -init: scope:[init] from main::@21 +tables_init: scope:[tables_init] from main::@22 [321] phi() - [322] call fill - to:init::@9 -init::@9: scope:[init] from init - [323] phi() - [324] call fill - to:init::@1 -init::@1: scope:[init] from init::@1 init::@9 - [325] (byte*) init::li#2 ← phi( init::@1/(byte*) init::li#1 init::@9/(const byte*) COLS#0+(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 15 ) - [325] (byte) init::i#2 ← phi( init::@1/(byte) init::i#1 init::@9/(byte/signed byte/word/signed word/dword/signed dword) 0 ) - [326] (byte~) init::$5 ← (byte) init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 - [327] *((const byte*[PLAYFIELD_LINES#0+3]) screen_lines#0 + (byte~) init::$5) ← (byte*) init::li#2 - [328] (byte*) init::li#1 ← (byte*) init::li#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 - [329] (byte) init::i#1 ← ++ (byte) init::i#2 - [330] if((byte) init::i#1!=(const byte) PLAYFIELD_LINES#0+(byte/signed byte/word/signed word/dword/signed dword) 2+(byte/signed byte/word/signed word/dword/signed dword) 1) goto init::@1 - to:init::@2 -init::@2: scope:[init] from init::@1 init::@2 - [331] (byte) init::idx#2 ← phi( init::@2/(byte) init::idx#1 init::@1/(byte/signed byte/word/signed word/dword/signed dword) 0 ) - [331] (byte*) init::pli#2 ← phi( init::@2/(byte*) init::pli#1 init::@1/(const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 ) - [331] (byte) init::j#2 ← phi( init::@2/(byte) init::j#1 init::@1/(byte/signed byte/word/signed word/dword/signed dword) 0 ) - [332] (byte~) init::$8 ← (byte) init::j#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 - [333] *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte~) init::$8) ← (byte*) init::pli#2 - [334] *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0 + (byte) init::j#2) ← (byte) init::idx#2 - [335] (byte*) init::pli#1 ← (byte*) init::pli#2 + (const byte) PLAYFIELD_COLS#0 - [336] (byte) init::idx#1 ← (byte) init::idx#2 + (const byte) PLAYFIELD_COLS#0 - [337] (byte) init::j#1 ← ++ (byte) init::j#2 - [338] if((byte) init::j#1!=(const byte) PLAYFIELD_LINES#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto init::@2 - to:init::@6 -init::@6: scope:[init] from init::@2 - [339] *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0+(const byte) PLAYFIELD_LINES#0) ← (const byte) PLAYFIELD_COLS#0*(const byte) PLAYFIELD_LINES#0 - to:init::@3 -init::@3: scope:[init] from init::@6 init::@7 - [340] (byte) init::l#4 ← phi( init::@6/(byte/signed byte/word/signed word/dword/signed dword) 0 init::@7/(byte) init::l#1 ) - [340] (byte*) init::line#4 ← phi( init::@6/(const byte*) COLS#0+(byte/signed byte/word/signed word/dword/signed dword) 14 init::@7/(byte*) init::line#1 ) - to:init::@4 -init::@4: scope:[init] from init::@3 init::@4 - [341] (byte) init::c#2 ← phi( init::@3/(byte/signed byte/word/signed word/dword/signed dword) 0 init::@4/(byte) init::c#1 ) - [342] (byte*~) init::$14 ← (byte*) init::line#4 + (byte) init::c#2 - [343] *((byte*~) init::$14) ← (const byte) DARK_GREY#0 - [344] (byte) init::c#1 ← ++ (byte) init::c#2 - [345] if((byte) init::c#1!=(const byte) PLAYFIELD_COLS#0+(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto init::@4 - to:init::@7 -init::@7: scope:[init] from init::@4 - [346] (byte*) init::line#1 ← (byte*) init::line#4 + (byte/signed byte/word/signed word/dword/signed dword) 40 - [347] (byte) init::l#1 ← ++ (byte) init::l#4 - [348] if((byte) init::l#1!=(const byte) PLAYFIELD_LINES#0+(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto init::@3 - to:init::@return -init::@return: scope:[init] from init::@7 - [349] return + to:tables_init::@1 +tables_init::@1: scope:[tables_init] from tables_init tables_init::@1 + [322] (byte) tables_init::idx#2 ← phi( tables_init/(byte/signed byte/word/signed word/dword/signed dword) 0 tables_init::@1/(byte) tables_init::idx#1 ) + [322] (byte*) tables_init::pli#2 ← phi( tables_init/(const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 tables_init::@1/(byte*) tables_init::pli#1 ) + [322] (byte) tables_init::j#2 ← phi( tables_init/(byte/signed byte/word/signed word/dword/signed dword) 0 tables_init::@1/(byte) tables_init::j#1 ) + [323] (byte~) tables_init::$1 ← (byte) tables_init::j#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 + [324] *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte~) tables_init::$1) ← (byte*) tables_init::pli#2 + [325] *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0 + (byte) tables_init::j#2) ← (byte) tables_init::idx#2 + [326] (byte*) tables_init::pli#1 ← (byte*) tables_init::pli#2 + (const byte) PLAYFIELD_COLS#0 + [327] (byte) tables_init::idx#1 ← (byte) tables_init::idx#2 + (const byte) PLAYFIELD_COLS#0 + [328] (byte) tables_init::j#1 ← ++ (byte) tables_init::j#2 + [329] if((byte) tables_init::j#1!=(const byte) PLAYFIELD_LINES#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto tables_init::@1 + to:tables_init::@2 +tables_init::@2: scope:[tables_init] from tables_init::@1 + [330] *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0+(const byte) PLAYFIELD_LINES#0) ← (const byte) PLAYFIELD_COLS#0*(const byte) PLAYFIELD_LINES#0 + to:tables_init::@return +tables_init::@return: scope:[tables_init] from tables_init::@2 + [331] return to:@return -fill: scope:[fill] from init init::@9 - [350] (byte) fill::val#3 ← phi( init/(byte/word/signed word/dword/signed dword) 160 init::@9/(const byte) BLACK#0 ) - [350] (byte*) fill::addr#0 ← phi( init/(const byte*) SCREEN#0 init::@9/(const byte*) COLS#0 ) - [351] (byte*) fill::end#0 ← (byte*) fill::addr#0 + (word/signed word/dword/signed dword) 1000 +render_init: scope:[render_init] from main::@21 + [332] phi() + [333] call fill + to:render_init::@7 +render_init::@7: scope:[render_init] from render_init + [334] phi() + [335] call fill + to:render_init::@1 +render_init::@1: scope:[render_init] from render_init::@1 render_init::@7 + [336] (byte*) render_init::li#2 ← phi( render_init::@1/(byte*) render_init::li#1 render_init::@7/(const byte*) COLS#0+(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 15 ) + [336] (byte) render_init::i#2 ← phi( render_init::@1/(byte) render_init::i#1 render_init::@7/(byte/signed byte/word/signed word/dword/signed dword) 0 ) + [337] (byte~) render_init::$5 ← (byte) render_init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 + [338] *((const byte*[PLAYFIELD_LINES#0+3]) screen_lines#0 + (byte~) render_init::$5) ← (byte*) render_init::li#2 + [339] (byte*) render_init::li#1 ← (byte*) render_init::li#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 + [340] (byte) render_init::i#1 ← ++ (byte) render_init::i#2 + [341] if((byte) render_init::i#1!=(const byte) PLAYFIELD_LINES#0+(byte/signed byte/word/signed word/dword/signed dword) 2+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_init::@1 + to:render_init::@2 +render_init::@2: scope:[render_init] from render_init::@1 render_init::@5 + [342] (byte) render_init::l#4 ← phi( render_init::@1/(byte/signed byte/word/signed word/dword/signed dword) 0 render_init::@5/(byte) render_init::l#1 ) + [342] (byte*) render_init::line#4 ← phi( render_init::@1/(const byte*) COLS#0+(byte/signed byte/word/signed word/dword/signed dword) 14 render_init::@5/(byte*) render_init::line#1 ) + to:render_init::@3 +render_init::@3: scope:[render_init] from render_init::@2 render_init::@3 + [343] (byte) render_init::c#2 ← phi( render_init::@2/(byte/signed byte/word/signed word/dword/signed dword) 0 render_init::@3/(byte) render_init::c#1 ) + [344] (byte*~) render_init::$10 ← (byte*) render_init::line#4 + (byte) render_init::c#2 + [345] *((byte*~) render_init::$10) ← (const byte) DARK_GREY#0 + [346] (byte) render_init::c#1 ← ++ (byte) render_init::c#2 + [347] if((byte) render_init::c#1!=(const byte) PLAYFIELD_COLS#0+(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_init::@3 + to:render_init::@5 +render_init::@5: scope:[render_init] from render_init::@3 + [348] (byte*) render_init::line#1 ← (byte*) render_init::line#4 + (byte/signed byte/word/signed word/dword/signed dword) 40 + [349] (byte) render_init::l#1 ← ++ (byte) render_init::l#4 + [350] if((byte) render_init::l#1!=(const byte) PLAYFIELD_LINES#0+(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_init::@2 + to:render_init::@return +render_init::@return: scope:[render_init] from render_init::@5 + [351] return + to:@return +fill: scope:[fill] from render_init render_init::@7 + [352] (byte) fill::val#3 ← phi( render_init/(byte/word/signed word/dword/signed dword) 160 render_init::@7/(const byte) BLACK#0 ) + [352] (byte*) fill::addr#0 ← phi( render_init/(const byte*) SCREEN#0 render_init::@7/(const byte*) COLS#0 ) + [353] (byte*) fill::end#0 ← (byte*) fill::addr#0 + (word/signed word/dword/signed dword) 1000 to:fill::@1 fill::@1: scope:[fill] from fill fill::@1 - [352] (byte*) fill::addr#2 ← phi( fill/(byte*) fill::addr#0 fill::@1/(byte*) fill::addr#1 ) - [353] *((byte*) fill::addr#2) ← (byte) fill::val#3 - [354] (byte*) fill::addr#1 ← ++ (byte*) fill::addr#2 - [355] if((byte*) fill::addr#1!=(byte*) fill::end#0) goto fill::@1 + [354] (byte*) fill::addr#2 ← phi( fill/(byte*) fill::addr#0 fill::@1/(byte*) fill::addr#1 ) + [355] *((byte*) fill::addr#2) ← (byte) fill::val#3 + [356] (byte*) fill::addr#1 ← ++ (byte*) fill::addr#2 + [357] if((byte*) fill::addr#1!=(byte*) fill::end#0) goto fill::@1 to:fill::@return fill::@return: scope:[fill] from fill::@1 - [356] return + [358] return to:@return sid_rnd_init: scope:[sid_rnd_init] from main - [357] *((const word*) SID_VOICE3_FREQ#0) ← (word/dword/signed dword) 65535 - [358] *((const byte*) SID_VOICE3_CONTROL#0) ← (const byte) SID_CONTROL_NOISE#0 + [359] *((const word*) SID_VOICE3_FREQ#0) ← (word/dword/signed dword) 65535 + [360] *((const byte*) SID_VOICE3_CONTROL#0) ← (const byte) SID_CONTROL_NOISE#0 to:sid_rnd_init::@return sid_rnd_init::@return: scope:[sid_rnd_init] from sid_rnd_init - [359] return + [361] return to:@return @@ -5715,61 +5756,61 @@ VARIABLE REGISTER WEIGHTS (byte) collision::ypos2#2 87.06666666666668 (byte) current_movedown_counter (byte) current_movedown_counter#10 0.5333333333333333 -(byte) current_movedown_counter#12 0.5 +(byte) current_movedown_counter#12 0.52 (byte) current_movedown_counter#15 1.3 (byte) current_movedown_fast (byte) current_movedown_slow (byte) current_orientation (byte) current_orientation#15 0.5 (byte) current_orientation#18 0.32653061224489793 -(byte) current_orientation#23 1.0625 +(byte) current_orientation#23 1.1333333333333333 (byte) current_orientation#33 4.0 (byte) current_orientation#8 3.0 (byte*) current_piece (byte*) current_piece#11 0.5588235294117647 -(byte*) current_piece#13 0.3432835820895522 +(byte*) current_piece#13 0.3484848484848484 (byte*) current_piece#15 10.0 (byte*) current_piece#23 6.0 -(byte*~) current_piece#69 4.0 (byte*~) current_piece#70 4.0 (byte*~) current_piece#71 4.0 (byte*~) current_piece#72 4.0 (byte*~) current_piece#73 4.0 (byte*~) current_piece#74 4.0 +(byte*~) current_piece#75 4.0 (byte) current_piece_color (byte) current_piece_color#11 19.96078431372549 -(byte) current_piece_color#13 1.0 +(byte) current_piece_color#13 1.04 (byte) current_piece_color#15 0.7272727272727273 (byte) current_piece_color#23 6.0 -(byte) current_piece_color#65 53.368421052631575 -(byte~) current_piece_color#73 4.0 -(byte~) current_piece_color#74 22.0 +(byte) current_piece_color#66 53.368421052631575 +(byte~) current_piece_color#74 4.0 +(byte~) current_piece_color#75 22.0 (byte*) current_piece_gfx (byte*) current_piece_gfx#10 0.6666666666666666 (byte*) current_piece_gfx#15 19.96078431372549 (byte*) current_piece_gfx#17 0.2962962962962963 -(byte*) current_piece_gfx#18 1.75 +(byte*) current_piece_gfx#18 1.8666666666666665 (byte*) current_piece_gfx#29 6.0 (byte*) current_piece_gfx#63 53.368421052631575 (byte*) current_piece_gfx#8 4.0 -(byte*~) current_piece_gfx#85 2.0 -(byte*~) current_piece_gfx#86 11.0 +(byte*~) current_piece_gfx#86 2.0 +(byte*~) current_piece_gfx#87 11.0 (byte) current_xpos (byte) current_xpos#16 2.313725490196078 (byte) current_xpos#19 0.72 -(byte) current_xpos#23 0.8500000000000003 +(byte) current_xpos#23 0.871794871794872 (byte) current_xpos#36 4.0 (byte) current_xpos#63 5.894736842105264 (byte) current_xpos#7 4.0 (byte) current_xpos#9 4.0 -(byte~) current_xpos#94 7.333333333333333 +(byte~) current_xpos#95 7.333333333333333 (byte) current_ypos (byte) current_ypos#12 0.5588235294117647 -(byte) current_ypos#16 0.47761194029850734 +(byte) current_ypos#16 0.48484848484848475 (byte) current_ypos#22 13.0 (byte) current_ypos#31 4.0 (byte) current_ypos#4 4.0 -(byte~) current_ypos#69 5.5 +(byte~) current_ypos#70 5.5 (void()) fill((byte*) fill::start , (word) fill::size , (byte) fill::val) (byte*) fill::addr (byte*) fill::addr#0 2.0 @@ -5800,34 +5841,6 @@ VARIABLE REGISTER WEIGHTS (byte) find_line::y (byte) find_line::y#1 1001.0 (byte) find_line::y#8 300.29999999999995 -(void()) init() -(byte*~) init::$14 202.0 -(byte~) init::$5 22.0 -(byte~) init::$8 22.0 -(byte) init::c -(byte) init::c#1 151.5 -(byte) init::c#2 101.0 -(byte) init::i -(byte) init::i#1 16.5 -(byte) init::i#2 8.25 -(byte) init::idx -(byte) init::idx#1 7.333333333333333 -(byte) init::idx#2 6.6000000000000005 -(byte) init::j -(byte) init::j#1 16.5 -(byte) init::j#2 7.333333333333333 -(byte) init::l -(byte) init::l#1 16.5 -(byte) init::l#4 3.142857142857143 -(byte*) init::li -(byte*) init::li#1 7.333333333333333 -(byte*) init::li#2 11.0 -(byte*) init::line -(byte*) init::line#1 7.333333333333333 -(byte*) init::line#4 20.499999999999996 -(byte*) init::pli -(byte*) init::pli#1 5.5 -(byte*) init::pli#2 8.25 (byte()) keyboard_event_get() (byte) keyboard_event_get::return (byte) keyboard_event_get::return#1 4.0 @@ -5876,7 +5889,7 @@ VARIABLE REGISTER WEIGHTS (byte) keyboard_events_size#1 2002.0 (byte) keyboard_events_size#10 810.9000000000001 (byte) keyboard_events_size#13 9.967741935483872 -(byte) keyboard_events_size#16 0.49999999999999994 +(byte) keyboard_events_size#16 0.5172413793103449 (byte) keyboard_events_size#19 2.6 (byte) keyboard_events_size#2 2002.0 (byte) keyboard_events_size#29 43.57142857142858 @@ -5919,7 +5932,7 @@ VARIABLE REGISTER WEIGHTS (void()) main() (byte~) main::$10 22.0 (byte~) main::$11 22.0 -(byte~) main::$9 22.0 +(byte~) main::$12 22.0 (byte) main::key_event (byte) main::key_event#0 4.0 (byte) main::render @@ -6014,6 +6027,24 @@ VARIABLE REGISTER WEIGHTS (byte) render_current::ypos2#0 4.0 (byte) render_current::ypos2#1 67.33333333333333 (byte) render_current::ypos2#2 29.000000000000004 +(void()) render_init() +(byte*~) render_init::$10 202.0 +(byte~) render_init::$5 22.0 +(byte) render_init::c +(byte) render_init::c#1 151.5 +(byte) render_init::c#2 101.0 +(byte) render_init::i +(byte) render_init::i#1 16.5 +(byte) render_init::i#2 8.25 +(byte) render_init::l +(byte) render_init::l#1 16.5 +(byte) render_init::l#4 3.142857142857143 +(byte*) render_init::li +(byte*) render_init::li#1 7.333333333333333 +(byte*) render_init::li#2 11.0 +(byte*) render_init::line +(byte*) render_init::line#1 7.333333333333333 +(byte*) render_init::line#4 20.499999999999996 (void()) render_playfield() (byte~) render_playfield::$1 202.0 (byte) render_playfield::c @@ -6041,15 +6072,26 @@ VARIABLE REGISTER WEIGHTS (byte~) spawn_current::$3 0.18181818181818182 (byte) spawn_current::piece_idx (byte) spawn_current::piece_idx#1 202.0 -(byte) spawn_current::piece_idx#2 41.199999999999996 +(byte) spawn_current::piece_idx#2 51.5 +(void()) tables_init() +(byte~) tables_init::$1 22.0 +(byte) tables_init::idx +(byte) tables_init::idx#1 7.333333333333333 +(byte) tables_init::idx#2 6.6000000000000005 +(byte) tables_init::j +(byte) tables_init::j#1 16.5 +(byte) tables_init::j#2 7.333333333333333 +(byte*) tables_init::pli +(byte*) tables_init::pli#1 5.5 +(byte*) tables_init::pli#2 8.25 Initial phi equivalence classes [ current_ypos#12 current_ypos#16 current_ypos#31 current_ypos#4 ] [ current_movedown_counter#15 current_movedown_counter#12 current_movedown_counter#10 ] -[ current_ypos#22 current_ypos#69 ] -[ current_xpos#63 current_xpos#94 ] -[ current_piece_gfx#63 current_piece_gfx#85 current_piece_gfx#86 ] -[ current_piece_color#65 current_piece_color#73 current_piece_color#74 ] +[ current_ypos#22 current_ypos#70 ] +[ current_xpos#63 current_xpos#95 ] +[ current_piece_gfx#63 current_piece_gfx#86 current_piece_gfx#87 ] +[ current_piece_color#66 current_piece_color#74 current_piece_color#75 ] [ render_current::ypos2#2 render_current::ypos2#0 render_current::ypos2#1 ] [ render_current::l#3 render_current::l#1 ] [ render_current::i#2 render_current::i#1 render_current::i#4 render_current::i#8 ] @@ -6061,7 +6103,7 @@ Initial phi equivalence classes [ render_playfield::c#2 render_playfield::c#1 ] [ play_move_rotate::return#2 ] [ play_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#2 ] -[ current_piece#15 current_piece#70 current_piece#71 current_piece#72 current_piece#73 ] +[ current_piece#15 current_piece#71 current_piece#72 current_piece#73 current_piece#74 ] [ collision::orientation#4 collision::orientation#0 collision::orientation#1 collision::orientation#2 collision::orientation#3 ] [ collision::ypos#4 collision::ypos#0 collision::ypos#1 collision::ypos#2 collision::ypos#3 ] [ collision::xpos#5 collision::xpos#0 collision::xpos#1 collision::xpos#2 collision::xpos#3 ] @@ -6073,7 +6115,7 @@ Initial phi equivalence classes [ collision::return#14 ] [ play_move_leftright::return#2 ] [ 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_piece#23 current_piece#74 current_piece#11 current_piece#13 current_piece#69 ] +[ current_piece#23 current_piece#75 current_piece#11 current_piece#13 current_piece#70 ] [ current_orientation#33 current_orientation#15 current_orientation#23 current_orientation#8 current_orientation#18 ] [ current_piece_gfx#29 current_piece_gfx#15 current_piece_gfx#18 current_piece_gfx#10 current_piece_gfx#8 current_piece_gfx#17 ] [ current_xpos#36 current_xpos#16 current_xpos#23 current_xpos#9 current_xpos#19 current_xpos#7 ] @@ -6100,29 +6142,29 @@ Initial phi equivalence classes [ keyboard_event_scan::col#2 keyboard_event_scan::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_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 ] -[ init::i#2 init::i#1 ] -[ init::li#2 init::li#1 ] -[ init::j#2 init::j#1 ] -[ init::pli#2 init::pli#1 ] -[ init::idx#2 init::idx#1 ] -[ init::line#4 init::line#1 ] -[ init::l#4 init::l#1 ] -[ init::c#2 init::c#1 ] +[ tables_init::j#2 tables_init::j#1 ] +[ tables_init::pli#2 tables_init::pli#1 ] +[ tables_init::idx#2 tables_init::idx#1 ] +[ render_init::i#2 render_init::i#1 ] +[ render_init::li#2 render_init::li#1 ] +[ render_init::line#4 render_init::line#1 ] +[ render_init::l#4 render_init::l#1 ] +[ render_init::c#2 render_init::c#1 ] [ fill::val#3 ] [ fill::addr#2 fill::addr#0 fill::addr#1 ] Added variable keyboard_event_get::return#3 to zero page equivalence class [ keyboard_event_get::return#3 ] Added variable main::key_event#0 to zero page equivalence class [ main::key_event#0 ] Added variable play_move_down::key_event#0 to zero page equivalence class [ play_move_down::key_event#0 ] Added variable play_move_down::return#0 to zero page equivalence class [ play_move_down::return#0 ] -Added variable main::$9 to zero page equivalence class [ main::$9 ] +Added variable main::$10 to zero page equivalence class [ main::$10 ] Added variable main::render#1 to zero page equivalence class [ main::render#1 ] Added variable play_move_leftright::key_event#0 to zero page equivalence class [ play_move_leftright::key_event#0 ] Added variable play_move_leftright::return#0 to zero page equivalence class [ play_move_leftright::return#0 ] -Added variable main::$10 to zero page equivalence class [ main::$10 ] +Added variable main::$11 to zero page equivalence class [ main::$11 ] Added variable main::render#2 to zero page equivalence class [ main::render#2 ] Added variable play_move_rotate::key_event#0 to zero page equivalence class [ play_move_rotate::key_event#0 ] Added variable play_move_rotate::return#0 to zero page equivalence class [ play_move_rotate::return#0 ] -Added variable main::$11 to zero page equivalence class [ main::$11 ] +Added variable main::$12 to zero page equivalence class [ main::$12 ] Added variable main::render#3 to zero page equivalence class [ main::render#3 ] Added variable render_current::screen_line#0 to zero page equivalence class [ render_current::screen_line#0 ] Added variable render_current::current_cell#0 to zero page equivalence class [ render_current::current_cell#0 ] @@ -6173,17 +6215,17 @@ Added variable keyboard_event_scan::$4 to zero page equivalence class [ keyboard Added variable keyboard_event_scan::event_type#0 to zero page equivalence class [ keyboard_event_scan::event_type#0 ] Added variable keyboard_event_scan::$11 to zero page equivalence class [ keyboard_event_scan::$11 ] Added variable keyboard_matrix_read::return#0 to zero page equivalence class [ keyboard_matrix_read::return#0 ] -Added variable init::$5 to zero page equivalence class [ init::$5 ] -Added variable init::$8 to zero page equivalence class [ init::$8 ] -Added variable init::$14 to zero page equivalence class [ init::$14 ] +Added variable tables_init::$1 to zero page equivalence class [ tables_init::$1 ] +Added variable render_init::$5 to zero page equivalence class [ render_init::$5 ] +Added variable render_init::$10 to zero page equivalence class [ render_init::$10 ] Added variable fill::end#0 to zero page equivalence class [ fill::end#0 ] Complete equivalence classes [ current_ypos#12 current_ypos#16 current_ypos#31 current_ypos#4 ] [ current_movedown_counter#15 current_movedown_counter#12 current_movedown_counter#10 ] -[ current_ypos#22 current_ypos#69 ] -[ current_xpos#63 current_xpos#94 ] -[ current_piece_gfx#63 current_piece_gfx#85 current_piece_gfx#86 ] -[ current_piece_color#65 current_piece_color#73 current_piece_color#74 ] +[ current_ypos#22 current_ypos#70 ] +[ current_xpos#63 current_xpos#95 ] +[ current_piece_gfx#63 current_piece_gfx#86 current_piece_gfx#87 ] +[ current_piece_color#66 current_piece_color#74 current_piece_color#75 ] [ render_current::ypos2#2 render_current::ypos2#0 render_current::ypos2#1 ] [ render_current::l#3 render_current::l#1 ] [ render_current::i#2 render_current::i#1 render_current::i#4 render_current::i#8 ] @@ -6195,7 +6237,7 @@ Complete equivalence classes [ render_playfield::c#2 render_playfield::c#1 ] [ play_move_rotate::return#2 ] [ play_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#2 ] -[ current_piece#15 current_piece#70 current_piece#71 current_piece#72 current_piece#73 ] +[ current_piece#15 current_piece#71 current_piece#72 current_piece#73 current_piece#74 ] [ collision::orientation#4 collision::orientation#0 collision::orientation#1 collision::orientation#2 collision::orientation#3 ] [ collision::ypos#4 collision::ypos#0 collision::ypos#1 collision::ypos#2 collision::ypos#3 ] [ collision::xpos#5 collision::xpos#0 collision::xpos#1 collision::xpos#2 collision::xpos#3 ] @@ -6207,7 +6249,7 @@ Complete equivalence classes [ collision::return#14 ] [ play_move_leftright::return#2 ] [ 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_piece#23 current_piece#74 current_piece#11 current_piece#13 current_piece#69 ] +[ current_piece#23 current_piece#75 current_piece#11 current_piece#13 current_piece#70 ] [ current_orientation#33 current_orientation#15 current_orientation#23 current_orientation#8 current_orientation#18 ] [ current_piece_gfx#29 current_piece_gfx#15 current_piece_gfx#18 current_piece_gfx#10 current_piece_gfx#8 current_piece_gfx#17 ] [ current_xpos#36 current_xpos#16 current_xpos#23 current_xpos#9 current_xpos#19 current_xpos#7 ] @@ -6234,29 +6276,29 @@ Complete equivalence classes [ keyboard_event_scan::col#2 keyboard_event_scan::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_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 ] -[ init::i#2 init::i#1 ] -[ init::li#2 init::li#1 ] -[ init::j#2 init::j#1 ] -[ init::pli#2 init::pli#1 ] -[ init::idx#2 init::idx#1 ] -[ init::line#4 init::line#1 ] -[ init::l#4 init::l#1 ] -[ init::c#2 init::c#1 ] +[ tables_init::j#2 tables_init::j#1 ] +[ tables_init::pli#2 tables_init::pli#1 ] +[ tables_init::idx#2 tables_init::idx#1 ] +[ render_init::i#2 render_init::i#1 ] +[ render_init::li#2 render_init::li#1 ] +[ render_init::line#4 render_init::line#1 ] +[ render_init::l#4 render_init::l#1 ] +[ render_init::c#2 render_init::c#1 ] [ fill::val#3 ] [ fill::addr#2 fill::addr#0 fill::addr#1 ] [ keyboard_event_get::return#3 ] [ main::key_event#0 ] [ play_move_down::key_event#0 ] [ play_move_down::return#0 ] -[ main::$9 ] +[ main::$10 ] [ main::render#1 ] [ play_move_leftright::key_event#0 ] [ play_move_leftright::return#0 ] -[ main::$10 ] +[ main::$11 ] [ main::render#2 ] [ play_move_rotate::key_event#0 ] [ play_move_rotate::return#0 ] -[ main::$11 ] +[ main::$12 ] [ main::render#3 ] [ render_current::screen_line#0 ] [ render_current::current_cell#0 ] @@ -6307,16 +6349,16 @@ Complete equivalence classes [ keyboard_event_scan::event_type#0 ] [ keyboard_event_scan::$11 ] [ keyboard_matrix_read::return#0 ] -[ init::$5 ] -[ init::$8 ] -[ init::$14 ] +[ tables_init::$1 ] +[ render_init::$5 ] +[ render_init::$10 ] [ fill::end#0 ] Allocated zp ZP_BYTE:2 [ current_ypos#12 current_ypos#16 current_ypos#31 current_ypos#4 ] Allocated zp ZP_BYTE:3 [ current_movedown_counter#15 current_movedown_counter#12 current_movedown_counter#10 ] -Allocated zp ZP_BYTE:4 [ current_ypos#22 current_ypos#69 ] -Allocated zp ZP_BYTE:5 [ current_xpos#63 current_xpos#94 ] -Allocated zp ZP_WORD:6 [ current_piece_gfx#63 current_piece_gfx#85 current_piece_gfx#86 ] -Allocated zp ZP_BYTE:8 [ current_piece_color#65 current_piece_color#73 current_piece_color#74 ] +Allocated zp ZP_BYTE:4 [ current_ypos#22 current_ypos#70 ] +Allocated zp ZP_BYTE:5 [ current_xpos#63 current_xpos#95 ] +Allocated zp ZP_WORD:6 [ current_piece_gfx#63 current_piece_gfx#86 current_piece_gfx#87 ] +Allocated zp ZP_BYTE:8 [ current_piece_color#66 current_piece_color#74 current_piece_color#75 ] Allocated zp ZP_BYTE:9 [ render_current::ypos2#2 render_current::ypos2#0 render_current::ypos2#1 ] Allocated zp ZP_BYTE:10 [ render_current::l#3 render_current::l#1 ] Allocated zp ZP_BYTE:11 [ render_current::i#2 render_current::i#1 render_current::i#4 render_current::i#8 ] @@ -6328,7 +6370,7 @@ Allocated zp ZP_WORD:16 [ render_playfield::line#2 render_playfield::line#0 rend Allocated zp ZP_BYTE:18 [ render_playfield::c#2 render_playfield::c#1 ] Allocated zp ZP_BYTE:19 [ play_move_rotate::return#2 ] Allocated zp ZP_BYTE:20 [ play_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#2 ] -Allocated zp ZP_WORD:21 [ current_piece#15 current_piece#70 current_piece#71 current_piece#72 current_piece#73 ] +Allocated zp ZP_WORD:21 [ current_piece#15 current_piece#71 current_piece#72 current_piece#73 current_piece#74 ] Allocated zp ZP_BYTE:23 [ collision::orientation#4 collision::orientation#0 collision::orientation#1 collision::orientation#2 collision::orientation#3 ] Allocated zp ZP_BYTE:24 [ collision::ypos#4 collision::ypos#0 collision::ypos#1 collision::ypos#2 collision::ypos#3 ] Allocated zp ZP_BYTE:25 [ collision::xpos#5 collision::xpos#0 collision::xpos#1 collision::xpos#2 collision::xpos#3 ] @@ -6340,7 +6382,7 @@ Allocated zp ZP_BYTE:30 [ collision::c#2 collision::c#1 ] Allocated zp ZP_BYTE:31 [ collision::return#14 ] Allocated zp ZP_BYTE:32 [ play_move_leftright::return#2 ] Allocated zp ZP_BYTE:33 [ play_move_down::movedown#6 play_move_down::movedown#3 play_move_down::movedown#7 play_move_down::movedown#2 play_move_down::movedown#10 ] -Allocated zp ZP_WORD:34 [ current_piece#23 current_piece#74 current_piece#11 current_piece#13 current_piece#69 ] +Allocated zp ZP_WORD:34 [ current_piece#23 current_piece#75 current_piece#11 current_piece#13 current_piece#70 ] Allocated zp ZP_BYTE:36 [ current_orientation#33 current_orientation#15 current_orientation#23 current_orientation#8 current_orientation#18 ] Allocated zp ZP_WORD:37 [ current_piece_gfx#29 current_piece_gfx#15 current_piece_gfx#18 current_piece_gfx#10 current_piece_gfx#8 current_piece_gfx#17 ] Allocated zp ZP_BYTE:39 [ current_xpos#36 current_xpos#16 current_xpos#23 current_xpos#9 current_xpos#19 current_xpos#7 ] @@ -6367,29 +6409,29 @@ Allocated zp ZP_BYTE:59 [ keyboard_event_scan::row#2 keyboard_event_scan::row#1 Allocated zp ZP_BYTE:60 [ keyboard_event_scan::col#2 keyboard_event_scan::col#1 ] Allocated zp ZP_BYTE:61 [ 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 ] Allocated zp ZP_BYTE:62 [ 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 zp ZP_BYTE:63 [ init::i#2 init::i#1 ] -Allocated zp ZP_WORD:64 [ init::li#2 init::li#1 ] -Allocated zp ZP_BYTE:66 [ init::j#2 init::j#1 ] -Allocated zp ZP_WORD:67 [ init::pli#2 init::pli#1 ] -Allocated zp ZP_BYTE:69 [ init::idx#2 init::idx#1 ] -Allocated zp ZP_WORD:70 [ init::line#4 init::line#1 ] -Allocated zp ZP_BYTE:72 [ init::l#4 init::l#1 ] -Allocated zp ZP_BYTE:73 [ init::c#2 init::c#1 ] +Allocated zp ZP_BYTE:63 [ tables_init::j#2 tables_init::j#1 ] +Allocated zp ZP_WORD:64 [ tables_init::pli#2 tables_init::pli#1 ] +Allocated zp ZP_BYTE:66 [ tables_init::idx#2 tables_init::idx#1 ] +Allocated zp ZP_BYTE:67 [ render_init::i#2 render_init::i#1 ] +Allocated zp ZP_WORD:68 [ render_init::li#2 render_init::li#1 ] +Allocated zp ZP_WORD:70 [ render_init::line#4 render_init::line#1 ] +Allocated zp ZP_BYTE:72 [ render_init::l#4 render_init::l#1 ] +Allocated zp ZP_BYTE:73 [ render_init::c#2 render_init::c#1 ] Allocated zp ZP_BYTE:74 [ fill::val#3 ] Allocated zp ZP_WORD:75 [ fill::addr#2 fill::addr#0 fill::addr#1 ] Allocated zp ZP_BYTE:77 [ keyboard_event_get::return#3 ] Allocated zp ZP_BYTE:78 [ main::key_event#0 ] Allocated zp ZP_BYTE:79 [ play_move_down::key_event#0 ] Allocated zp ZP_BYTE:80 [ play_move_down::return#0 ] -Allocated zp ZP_BYTE:81 [ main::$9 ] +Allocated zp ZP_BYTE:81 [ main::$10 ] Allocated zp ZP_BYTE:82 [ main::render#1 ] Allocated zp ZP_BYTE:83 [ play_move_leftright::key_event#0 ] Allocated zp ZP_BYTE:84 [ play_move_leftright::return#0 ] -Allocated zp ZP_BYTE:85 [ main::$10 ] +Allocated zp ZP_BYTE:85 [ main::$11 ] Allocated zp ZP_BYTE:86 [ main::render#2 ] Allocated zp ZP_BYTE:87 [ play_move_rotate::key_event#0 ] Allocated zp ZP_BYTE:88 [ play_move_rotate::return#0 ] -Allocated zp ZP_BYTE:89 [ main::$11 ] +Allocated zp ZP_BYTE:89 [ main::$12 ] Allocated zp ZP_BYTE:90 [ main::render#3 ] Allocated zp ZP_WORD:91 [ render_current::screen_line#0 ] Allocated zp ZP_BYTE:93 [ render_current::current_cell#0 ] @@ -6440,9 +6482,9 @@ Allocated zp ZP_BYTE:140 [ keyboard_event_scan::$4 ] Allocated zp ZP_BYTE:141 [ keyboard_event_scan::event_type#0 ] Allocated zp ZP_BYTE:142 [ keyboard_event_scan::$11 ] Allocated zp ZP_BYTE:143 [ keyboard_matrix_read::return#0 ] -Allocated zp ZP_BYTE:144 [ init::$5 ] -Allocated zp ZP_BYTE:145 [ init::$8 ] -Allocated zp ZP_WORD:146 [ init::$14 ] +Allocated zp ZP_BYTE:144 [ tables_init::$1 ] +Allocated zp ZP_BYTE:145 [ render_init::$5 ] +Allocated zp ZP_WORD:146 [ render_init::$10 ] Allocated zp ZP_WORD:148 [ fill::end#0 ] INITIAL ASM @@ -6496,38 +6538,38 @@ INITIAL ASM .label current_ypos_22 = 4 .label current_xpos_63 = 5 .label current_piece_gfx_63 = 6 - .label current_piece_color_65 = 8 - .label current_ypos_69 = 4 - .label current_xpos_94 = 5 - .label current_piece_gfx_85 = 6 + .label current_piece_color_66 = 8 + .label current_ypos_70 = 4 + .label current_xpos_95 = 5 .label current_piece_gfx_86 = 6 - .label current_piece_color_73 = 8 + .label current_piece_gfx_87 = 6 .label current_piece_color_74 = 8 - .label current_piece_70 = $15 + .label current_piece_color_75 = 8 .label current_piece_71 = $15 .label current_piece_72 = $15 .label current_piece_73 = $15 + .label current_piece_74 = $15 //SEG2 @begin bbegin: -//SEG3 [1] phi from @begin to @26 [phi:@begin->@26] -b26_from_bbegin: - jmp b26 -//SEG4 @26 -b26: +//SEG3 [1] phi from @begin to @27 [phi:@begin->@27] +b27_from_bbegin: + jmp b27 +//SEG4 @27 +b27: //SEG5 [2] call main -//SEG6 [4] phi from @26 to main [phi:@26->main] -main_from_b26: +//SEG6 [4] phi from @27 to main [phi:@27->main] +main_from_b27: jsr main -//SEG7 [3] phi from @26 to @end [phi:@26->@end] -bend_from_b26: +//SEG7 [3] phi from @27 to @end [phi:@27->@end] +bend_from_b27: jmp bend //SEG8 @end bend: //SEG9 main main: { - .label _9 = $51 - .label _10 = $55 - .label _11 = $59 + .label _10 = $51 + .label _11 = $55 + .label _12 = $59 .label key_event = $4e .label render = $52 .label render_2 = $56 @@ -6539,235 +6581,241 @@ main: { b21: //SEG12 asm { sei } sei - //SEG13 [7] call init - //SEG14 [321] phi from main::@21 to init [phi:main::@21->init] - init_from_b21: - jsr init + //SEG13 [7] call render_init + //SEG14 [332] phi from main::@21 to render_init [phi:main::@21->render_init] + render_init_from_b21: + jsr render_init //SEG15 [8] phi from main::@21 to main::@22 [phi:main::@21->main::@22] b22_from_b21: jmp b22 //SEG16 main::@22 b22: - //SEG17 [9] call spawn_current - jsr spawn_current - //SEG18 [10] phi from main::@22 to main::@23 [phi:main::@22->main::@23] + //SEG17 [9] call tables_init + //SEG18 [321] phi from main::@22 to tables_init [phi:main::@22->tables_init] + tables_init_from_b22: + jsr tables_init + //SEG19 [10] phi from main::@22 to main::@23 [phi:main::@22->main::@23] b23_from_b22: jmp b23 - //SEG19 main::@23 + //SEG20 main::@23 b23: - //SEG20 [11] call render_playfield - //SEG21 [70] phi from main::@23 to render_playfield [phi:main::@23->render_playfield] - render_playfield_from_b23: - jsr render_playfield + //SEG21 [11] call spawn_current + //SEG22 [183] phi from main::@23 to spawn_current [phi:main::@23->spawn_current] + spawn_current_from_b23: + jsr spawn_current + //SEG23 [12] phi from main::@23 to main::@24 [phi:main::@23->main::@24] + b24_from_b23: jmp b24 - //SEG22 main::@24 + //SEG24 main::@24 b24: - //SEG23 [12] (byte*~) current_piece_gfx#85 ← (byte*) current_piece_gfx#10 -- pbuz1=pbuz2 + //SEG25 [13] call render_playfield + //SEG26 [71] phi from main::@24 to render_playfield [phi:main::@24->render_playfield] + render_playfield_from_b24: + jsr render_playfield + jmp b25 + //SEG27 main::@25 + b25: + //SEG28 [14] (byte*~) current_piece_gfx#86 ← (byte*) current_piece_gfx#10 -- pbuz1=pbuz2 lda current_piece_gfx - sta current_piece_gfx_85 + sta current_piece_gfx_86 lda current_piece_gfx+1 - sta current_piece_gfx_85+1 - //SEG24 [13] (byte~) current_piece_color#73 ← (byte) current_piece_color#15 -- vbuz1=vbuz2 + sta current_piece_gfx_86+1 + //SEG29 [15] (byte~) current_piece_color#74 ← (byte) current_piece_color#15 -- vbuz1=vbuz2 lda current_piece_color - sta current_piece_color_73 - //SEG25 [14] call render_current - //SEG26 [50] phi from main::@24 to render_current [phi:main::@24->render_current] - render_current_from_b24: - //SEG27 [50] phi (byte) current_piece_color#65 = (byte~) current_piece_color#73 [phi:main::@24->render_current#0] -- register_copy - //SEG28 [50] phi (byte*) current_piece_gfx#63 = (byte*~) current_piece_gfx#85 [phi:main::@24->render_current#1] -- register_copy - //SEG29 [50] phi (byte) current_xpos#63 = (byte/signed byte/word/signed word/dword/signed dword) 3 [phi:main::@24->render_current#2] -- vbuz1=vbuc1 + sta current_piece_color_74 + //SEG30 [16] call render_current + //SEG31 [51] phi from main::@25 to render_current [phi:main::@25->render_current] + render_current_from_b25: + //SEG32 [51] phi (byte) current_piece_color#66 = (byte~) current_piece_color#74 [phi:main::@25->render_current#0] -- register_copy + //SEG33 [51] phi (byte*) current_piece_gfx#63 = (byte*~) current_piece_gfx#86 [phi:main::@25->render_current#1] -- register_copy + //SEG34 [51] phi (byte) current_xpos#63 = (byte/signed byte/word/signed word/dword/signed dword) 3 [phi:main::@25->render_current#2] -- vbuz1=vbuc1 lda #3 sta current_xpos_63 - //SEG30 [50] phi (byte) current_ypos#22 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@24->render_current#3] -- vbuz1=vbuc1 + //SEG35 [51] phi (byte) current_ypos#22 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@25->render_current#3] -- vbuz1=vbuc1 lda #0 sta current_ypos_22 jsr render_current - //SEG31 [15] (byte*~) current_piece#69 ← (byte*)*((const word[]) PIECES#0 + (byte~) spawn_current::$3) -- pbuz1=pptc1_derefidx_vbuz2 + //SEG36 [17] (byte*~) current_piece#70 ← (byte*)*((const word[]) PIECES#0 + (byte~) spawn_current::$3) -- pbuz1=pptc1_derefidx_vbuz2 ldy spawn_current._3 lda PIECES,y sta current_piece lda PIECES+1,y sta current_piece+1 - //SEG32 [16] phi from main::@24 to main::@1 [phi:main::@24->main::@1] - b1_from_b24: - //SEG33 [16] phi (byte) current_movedown_counter#15 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@24->main::@1#0] -- vbuz1=vbuc1 + //SEG37 [18] phi from main::@25 to main::@1 [phi:main::@25->main::@1] + b1_from_b25: + //SEG38 [18] phi (byte) current_movedown_counter#15 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@25->main::@1#0] -- vbuz1=vbuc1 lda #0 sta current_movedown_counter - //SEG34 [16] phi (byte) keyboard_events_size#19 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@24->main::@1#1] -- vbuz1=vbuc1 + //SEG39 [18] phi (byte) keyboard_events_size#19 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@25->main::@1#1] -- vbuz1=vbuc1 lda #0 sta keyboard_events_size - //SEG35 [16] phi (byte) current_piece_color#11 = (byte) current_piece_color#15 [phi:main::@24->main::@1#2] -- register_copy - //SEG36 [16] phi (byte) current_ypos#12 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@24->main::@1#3] -- vbuz1=vbuc1 + //SEG40 [18] phi (byte) current_piece_color#11 = (byte) current_piece_color#15 [phi:main::@25->main::@1#2] -- register_copy + //SEG41 [18] phi (byte) current_ypos#12 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@25->main::@1#3] -- vbuz1=vbuc1 lda #0 sta current_ypos - //SEG37 [16] phi (byte) current_xpos#16 = (byte/signed byte/word/signed word/dword/signed dword) 3 [phi:main::@24->main::@1#4] -- vbuz1=vbuc1 + //SEG42 [18] phi (byte) current_xpos#16 = (byte/signed byte/word/signed word/dword/signed dword) 3 [phi:main::@25->main::@1#4] -- vbuz1=vbuc1 lda #3 sta current_xpos - //SEG38 [16] phi (byte*) current_piece_gfx#15 = (byte*) current_piece_gfx#10 [phi:main::@24->main::@1#5] -- register_copy - //SEG39 [16] phi (byte) current_orientation#15 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@24->main::@1#6] -- vbuz1=vbuc1 + //SEG43 [18] phi (byte*) current_piece_gfx#15 = (byte*) current_piece_gfx#10 [phi:main::@25->main::@1#5] -- register_copy + //SEG44 [18] phi (byte) current_orientation#15 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@25->main::@1#6] -- vbuz1=vbuc1 lda #0 sta current_orientation - //SEG40 [16] phi (byte*) current_piece#11 = (byte*~) current_piece#69 [phi:main::@24->main::@1#7] -- register_copy + //SEG45 [18] phi (byte*) current_piece#11 = (byte*~) current_piece#70 [phi:main::@25->main::@1#7] -- register_copy jmp b1 - //SEG41 main::@1 + //SEG46 main::@1 b1: jmp b4 - //SEG42 main::@4 + //SEG47 main::@4 b4: - //SEG43 [17] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@4 -- _deref_pbuc1_neq_vbuc2_then_la1 + //SEG48 [19] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@4 -- _deref_pbuc1_neq_vbuc2_then_la1 lda RASTER cmp #$ff bne b4 jmp b7 - //SEG44 main::@7 + //SEG49 main::@7 b7: - //SEG45 [18] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 254) goto main::@7 -- _deref_pbuc1_neq_vbuc2_then_la1 + //SEG50 [20] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 254) goto main::@7 -- _deref_pbuc1_neq_vbuc2_then_la1 lda RASTER cmp #$fe bne b7 jmp b9 - //SEG46 main::@9 + //SEG51 main::@9 b9: - //SEG47 [19] *((const byte*) BORDERCOL#0) ← ++ *((const byte*) BORDERCOL#0) -- _deref_pbuc1=_inc__deref_pbuc1 + //SEG52 [21] *((const byte*) BORDERCOL#0) ← ++ *((const byte*) BORDERCOL#0) -- _deref_pbuc1=_inc__deref_pbuc1 inc BORDERCOL - //SEG48 [20] call keyboard_event_scan - //SEG49 [265] phi from main::@9 to keyboard_event_scan [phi:main::@9->keyboard_event_scan] + //SEG53 [22] call keyboard_event_scan + //SEG54 [265] phi from main::@9 to keyboard_event_scan [phi:main::@9->keyboard_event_scan] keyboard_event_scan_from_b9: jsr keyboard_event_scan - //SEG50 [21] phi from main::@9 to main::@26 [phi:main::@9->main::@26] - b26_from_b9: - jmp b26 - //SEG51 main::@26 - b26: - //SEG52 [22] call keyboard_event_get + //SEG55 [23] phi from main::@9 to main::@27 [phi:main::@9->main::@27] + b27_from_b9: + jmp b27 + //SEG56 main::@27 + b27: + //SEG57 [24] call keyboard_event_get jsr keyboard_event_get - //SEG53 [23] (byte) keyboard_event_get::return#3 ← (byte) keyboard_event_get::return#2 -- vbuz1=vbuz2 + //SEG58 [25] (byte) keyboard_event_get::return#3 ← (byte) keyboard_event_get::return#2 -- vbuz1=vbuz2 lda keyboard_event_get.return sta keyboard_event_get.return_3 - jmp b27 - //SEG54 main::@27 - b27: - //SEG55 [24] (byte) main::key_event#0 ← (byte) keyboard_event_get::return#3 -- vbuz1=vbuz2 - lda keyboard_event_get.return_3 - sta key_event - //SEG56 [25] (byte) play_move_down::key_event#0 ← (byte) main::key_event#0 -- vbuz1=vbuz2 - lda key_event - sta play_move_down.key_event - //SEG57 [26] call play_move_down - jsr play_move_down - //SEG58 [27] (byte) play_move_down::return#0 ← (byte) play_move_down::return#3 -- vbuz1=vbuz2 - lda play_move_down.return_3 - sta play_move_down.return jmp b28 //SEG59 main::@28 b28: - //SEG60 [28] (byte~) main::$9 ← (byte) play_move_down::return#0 -- vbuz1=vbuz2 + //SEG60 [26] (byte) main::key_event#0 ← (byte) keyboard_event_get::return#3 -- vbuz1=vbuz2 + lda keyboard_event_get.return_3 + sta key_event + //SEG61 [27] (byte) play_move_down::key_event#0 ← (byte) main::key_event#0 -- vbuz1=vbuz2 + lda key_event + sta play_move_down.key_event + //SEG62 [28] call play_move_down + jsr play_move_down + //SEG63 [29] (byte) play_move_down::return#0 ← (byte) play_move_down::return#3 -- vbuz1=vbuz2 + lda play_move_down.return_3 + sta play_move_down.return + jmp b29 + //SEG64 main::@29 + b29: + //SEG65 [30] (byte~) main::$10 ← (byte) play_move_down::return#0 -- vbuz1=vbuz2 lda play_move_down.return - sta _9 - //SEG61 [29] (byte) main::render#1 ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte~) main::$9 -- vbuz1=vbuc1_plus_vbuz2 + sta _10 + //SEG66 [31] (byte) main::render#1 ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte~) main::$10 -- vbuz1=vbuc1_plus_vbuz2 lda #0 clc - adc _9 + adc _10 sta render - //SEG62 [30] (byte) play_move_leftright::key_event#0 ← (byte) main::key_event#0 -- vbuz1=vbuz2 + //SEG67 [32] (byte) play_move_leftright::key_event#0 ← (byte) main::key_event#0 -- vbuz1=vbuz2 lda key_event sta play_move_leftright.key_event - //SEG63 [31] call play_move_leftright + //SEG68 [33] call play_move_leftright jsr play_move_leftright - //SEG64 [32] (byte) play_move_leftright::return#0 ← (byte) play_move_leftright::return#2 -- vbuz1=vbuz2 + //SEG69 [34] (byte) play_move_leftright::return#0 ← (byte) play_move_leftright::return#2 -- vbuz1=vbuz2 lda play_move_leftright.return_2 sta play_move_leftright.return - jmp b29 - //SEG65 main::@29 - b29: - //SEG66 [33] (byte~) main::$10 ← (byte) play_move_leftright::return#0 -- vbuz1=vbuz2 + jmp b30 + //SEG70 main::@30 + b30: + //SEG71 [35] (byte~) main::$11 ← (byte) play_move_leftright::return#0 -- vbuz1=vbuz2 lda play_move_leftright.return - sta _10 - //SEG67 [34] (byte) main::render#2 ← (byte) main::render#1 + (byte~) main::$10 -- vbuz1=vbuz2_plus_vbuz3 + sta _11 + //SEG72 [36] (byte) main::render#2 ← (byte) main::render#1 + (byte~) main::$11 -- vbuz1=vbuz2_plus_vbuz3 lda render clc - adc _10 + adc _11 sta render_2 - //SEG68 [35] (byte) play_move_rotate::key_event#0 ← (byte) main::key_event#0 -- vbuz1=vbuz2 + //SEG73 [37] (byte) play_move_rotate::key_event#0 ← (byte) main::key_event#0 -- vbuz1=vbuz2 lda key_event sta play_move_rotate.key_event - //SEG69 [36] call play_move_rotate + //SEG74 [38] call play_move_rotate jsr play_move_rotate - //SEG70 [37] (byte) play_move_rotate::return#0 ← (byte) play_move_rotate::return#2 -- vbuz1=vbuz2 + //SEG75 [39] (byte) play_move_rotate::return#0 ← (byte) play_move_rotate::return#2 -- vbuz1=vbuz2 lda play_move_rotate.return_2 sta play_move_rotate.return - jmp b30 - //SEG71 main::@30 - b30: - //SEG72 [38] (byte~) main::$11 ← (byte) play_move_rotate::return#0 -- vbuz1=vbuz2 + jmp b31 + //SEG76 main::@31 + b31: + //SEG77 [40] (byte~) main::$12 ← (byte) play_move_rotate::return#0 -- vbuz1=vbuz2 lda play_move_rotate.return - sta _11 - //SEG73 [39] (byte) main::render#3 ← (byte) main::render#2 + (byte~) main::$11 -- vbuz1=vbuz2_plus_vbuz3 + sta _12 + //SEG78 [41] (byte) main::render#3 ← (byte) main::render#2 + (byte~) main::$12 -- vbuz1=vbuz2_plus_vbuz3 lda render_2 clc - adc _11 + adc _12 sta render_3 - //SEG74 [40] if((byte) main::render#3==(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@10 -- vbuz1_eq_0_then_la1 + //SEG79 [42] if((byte) main::render#3==(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@10 -- vbuz1_eq_0_then_la1 lda render_3 cmp #0 beq b10 + //SEG80 [43] phi from main::@31 to main::@19 [phi:main::@31->main::@19] + b19_from_b31: jmp b19 - //SEG75 main::@19 + //SEG81 main::@19 b19: - //SEG76 [41] *((const byte*) BORDERCOL#0) ← ++ *((const byte*) BORDERCOL#0) -- _deref_pbuc1=_inc__deref_pbuc1 - inc BORDERCOL - //SEG77 [42] call render_playfield - //SEG78 [70] phi from main::@19 to render_playfield [phi:main::@19->render_playfield] + //SEG82 [44] call render_playfield + //SEG83 [71] phi from main::@19 to render_playfield [phi:main::@19->render_playfield] render_playfield_from_b19: jsr render_playfield - jmp b31 - //SEG79 main::@31 - b31: - //SEG80 [43] (byte~) current_ypos#69 ← (byte) current_ypos#16 -- vbuz1=vbuz2 - lda current_ypos - sta current_ypos_69 - //SEG81 [44] (byte~) current_xpos#94 ← (byte) current_xpos#23 -- vbuz1=vbuz2 - lda current_xpos - sta current_xpos_94 - //SEG82 [45] (byte*~) current_piece_gfx#86 ← (byte*) current_piece_gfx#18 -- pbuz1=pbuz2 - lda current_piece_gfx - sta current_piece_gfx_86 - lda current_piece_gfx+1 - sta current_piece_gfx_86+1 - //SEG83 [46] (byte~) current_piece_color#74 ← (byte) current_piece_color#13 -- vbuz1=vbuz2 - lda current_piece_color - sta current_piece_color_74 - //SEG84 [47] call render_current - //SEG85 [50] phi from main::@31 to render_current [phi:main::@31->render_current] - render_current_from_b31: - //SEG86 [50] phi (byte) current_piece_color#65 = (byte~) current_piece_color#74 [phi:main::@31->render_current#0] -- register_copy - //SEG87 [50] phi (byte*) current_piece_gfx#63 = (byte*~) current_piece_gfx#86 [phi:main::@31->render_current#1] -- register_copy - //SEG88 [50] phi (byte) current_xpos#63 = (byte~) current_xpos#94 [phi:main::@31->render_current#2] -- register_copy - //SEG89 [50] phi (byte) current_ypos#22 = (byte~) current_ypos#69 [phi:main::@31->render_current#3] -- register_copy - jsr render_current jmp b32 - //SEG90 main::@32 + //SEG84 main::@32 b32: - //SEG91 [48] *((const byte*) BORDERCOL#0) ← -- *((const byte*) BORDERCOL#0) -- _deref_pbuc1=_dec__deref_pbuc1 - dec BORDERCOL + //SEG85 [45] (byte~) current_ypos#70 ← (byte) current_ypos#16 -- vbuz1=vbuz2 + lda current_ypos + sta current_ypos_70 + //SEG86 [46] (byte~) current_xpos#95 ← (byte) current_xpos#23 -- vbuz1=vbuz2 + lda current_xpos + sta current_xpos_95 + //SEG87 [47] (byte*~) current_piece_gfx#87 ← (byte*) current_piece_gfx#18 -- pbuz1=pbuz2 + lda current_piece_gfx + sta current_piece_gfx_87 + lda current_piece_gfx+1 + sta current_piece_gfx_87+1 + //SEG88 [48] (byte~) current_piece_color#75 ← (byte) current_piece_color#13 -- vbuz1=vbuz2 + lda current_piece_color + sta current_piece_color_75 + //SEG89 [49] call render_current + //SEG90 [51] phi from main::@32 to render_current [phi:main::@32->render_current] + render_current_from_b32: + //SEG91 [51] phi (byte) current_piece_color#66 = (byte~) current_piece_color#75 [phi:main::@32->render_current#0] -- register_copy + //SEG92 [51] phi (byte*) current_piece_gfx#63 = (byte*~) current_piece_gfx#87 [phi:main::@32->render_current#1] -- register_copy + //SEG93 [51] phi (byte) current_xpos#63 = (byte~) current_xpos#95 [phi:main::@32->render_current#2] -- register_copy + //SEG94 [51] phi (byte) current_ypos#22 = (byte~) current_ypos#70 [phi:main::@32->render_current#3] -- register_copy + jsr render_current jmp b10 - //SEG92 main::@10 + //SEG95 main::@10 b10: - //SEG93 [49] *((const byte*) BORDERCOL#0) ← -- *((const byte*) BORDERCOL#0) -- _deref_pbuc1=_dec__deref_pbuc1 + //SEG96 [50] *((const byte*) BORDERCOL#0) ← -- *((const byte*) BORDERCOL#0) -- _deref_pbuc1=_dec__deref_pbuc1 dec BORDERCOL - //SEG94 [16] phi from main::@10 to main::@1 [phi:main::@10->main::@1] + //SEG97 [18] phi from main::@10 to main::@1 [phi:main::@10->main::@1] b1_from_b10: - //SEG95 [16] phi (byte) current_movedown_counter#15 = (byte) current_movedown_counter#12 [phi:main::@10->main::@1#0] -- register_copy - //SEG96 [16] phi (byte) keyboard_events_size#19 = (byte) keyboard_events_size#16 [phi:main::@10->main::@1#1] -- register_copy - //SEG97 [16] phi (byte) current_piece_color#11 = (byte) current_piece_color#13 [phi:main::@10->main::@1#2] -- register_copy - //SEG98 [16] phi (byte) current_ypos#12 = (byte) current_ypos#16 [phi:main::@10->main::@1#3] -- register_copy - //SEG99 [16] phi (byte) current_xpos#16 = (byte) current_xpos#23 [phi:main::@10->main::@1#4] -- register_copy - //SEG100 [16] phi (byte*) current_piece_gfx#15 = (byte*) current_piece_gfx#18 [phi:main::@10->main::@1#5] -- register_copy - //SEG101 [16] phi (byte) current_orientation#15 = (byte) current_orientation#23 [phi:main::@10->main::@1#6] -- register_copy - //SEG102 [16] phi (byte*) current_piece#11 = (byte*) current_piece#13 [phi:main::@10->main::@1#7] -- register_copy + //SEG98 [18] phi (byte) current_movedown_counter#15 = (byte) current_movedown_counter#12 [phi:main::@10->main::@1#0] -- register_copy + //SEG99 [18] phi (byte) keyboard_events_size#19 = (byte) keyboard_events_size#16 [phi:main::@10->main::@1#1] -- register_copy + //SEG100 [18] phi (byte) current_piece_color#11 = (byte) current_piece_color#13 [phi:main::@10->main::@1#2] -- register_copy + //SEG101 [18] phi (byte) current_ypos#12 = (byte) current_ypos#16 [phi:main::@10->main::@1#3] -- register_copy + //SEG102 [18] phi (byte) current_xpos#16 = (byte) current_xpos#23 [phi:main::@10->main::@1#4] -- register_copy + //SEG103 [18] phi (byte*) current_piece_gfx#15 = (byte*) current_piece_gfx#18 [phi:main::@10->main::@1#5] -- register_copy + //SEG104 [18] phi (byte) current_orientation#15 = (byte) current_orientation#23 [phi:main::@10->main::@1#6] -- register_copy + //SEG105 [18] phi (byte*) current_piece#11 = (byte*) current_piece#13 [phi:main::@10->main::@1#7] -- register_copy jmp b1 } -//SEG103 render_current +//SEG106 render_current render_current: { .label ypos2 = 9 .label l = $a @@ -6776,202 +6824,202 @@ render_current: { .label current_cell = $5d .label i = $b .label c = $d - //SEG104 [51] (byte) render_current::ypos2#0 ← (byte) current_ypos#22 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_rol_1 + //SEG107 [52] (byte) render_current::ypos2#0 ← (byte) current_ypos#22 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_rol_1 lda current_ypos_22 asl sta ypos2 - //SEG105 [52] phi from render_current to render_current::@1 [phi:render_current->render_current::@1] + //SEG108 [53] phi from render_current to render_current::@1 [phi:render_current->render_current::@1] b1_from_render_current: - //SEG106 [52] phi (byte) render_current::i#4 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_current->render_current::@1#0] -- vbuz1=vbuc1 + //SEG109 [53] phi (byte) render_current::i#4 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_current->render_current::@1#0] -- vbuz1=vbuc1 lda #0 sta i - //SEG107 [52] phi (byte) render_current::l#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_current->render_current::@1#1] -- vbuz1=vbuc1 + //SEG110 [53] phi (byte) render_current::l#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_current->render_current::@1#1] -- vbuz1=vbuc1 lda #0 sta l - //SEG108 [52] phi (byte) render_current::ypos2#2 = (byte) render_current::ypos2#0 [phi:render_current->render_current::@1#2] -- register_copy + //SEG111 [53] phi (byte) render_current::ypos2#2 = (byte) render_current::ypos2#0 [phi:render_current->render_current::@1#2] -- register_copy jmp b1 - //SEG109 [52] phi from render_current::@2 to render_current::@1 [phi:render_current::@2->render_current::@1] + //SEG112 [53] phi from render_current::@2 to render_current::@1 [phi:render_current::@2->render_current::@1] b1_from_b2: - //SEG110 [52] phi (byte) render_current::i#4 = (byte) render_current::i#8 [phi:render_current::@2->render_current::@1#0] -- register_copy - //SEG111 [52] phi (byte) render_current::l#3 = (byte) render_current::l#1 [phi:render_current::@2->render_current::@1#1] -- register_copy - //SEG112 [52] phi (byte) render_current::ypos2#2 = (byte) render_current::ypos2#1 [phi:render_current::@2->render_current::@1#2] -- register_copy + //SEG113 [53] phi (byte) render_current::i#4 = (byte) render_current::i#8 [phi:render_current::@2->render_current::@1#0] -- register_copy + //SEG114 [53] phi (byte) render_current::l#3 = (byte) render_current::l#1 [phi:render_current::@2->render_current::@1#1] -- register_copy + //SEG115 [53] phi (byte) render_current::ypos2#2 = (byte) render_current::ypos2#1 [phi:render_current::@2->render_current::@1#2] -- register_copy jmp b1 - //SEG113 render_current::@1 + //SEG116 render_current::@1 b1: - //SEG114 [53] if((byte) render_current::ypos2#2>=(byte/signed byte/word/signed word/dword/signed dword) 2*(const byte) PLAYFIELD_LINES#0) goto render_current::@2 -- vbuz1_ge_vbuc1_then_la1 + //SEG117 [54] if((byte) render_current::ypos2#2>=(byte/signed byte/word/signed word/dword/signed dword) 2*(const byte) PLAYFIELD_LINES#0) goto render_current::@2 -- vbuz1_ge_vbuc1_then_la1 lda ypos2 cmp #2*PLAYFIELD_LINES bcs b2_from_b1 jmp b6 - //SEG115 render_current::@6 + //SEG118 render_current::@6 b6: - //SEG116 [54] (byte*) render_current::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0+3]) screen_lines#0 + (byte) render_current::ypos2#2) -- pbuz1=pptc1_derefidx_vbuz2 + //SEG119 [55] (byte*) render_current::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0+3]) screen_lines#0 + (byte) render_current::ypos2#2) -- pbuz1=pptc1_derefidx_vbuz2 ldy ypos2 lda screen_lines,y sta screen_line lda screen_lines+1,y sta screen_line+1 - //SEG117 [55] (byte) render_current::xpos#0 ← (byte) current_xpos#63 -- vbuz1=vbuz2 + //SEG120 [56] (byte) render_current::xpos#0 ← (byte) current_xpos#63 -- vbuz1=vbuz2 lda current_xpos_63 sta xpos - //SEG118 [56] phi from render_current::@6 to render_current::@3 [phi:render_current::@6->render_current::@3] + //SEG121 [57] phi from render_current::@6 to render_current::@3 [phi:render_current::@6->render_current::@3] b3_from_b6: - //SEG119 [56] phi (byte) render_current::c#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_current::@6->render_current::@3#0] -- vbuz1=vbuc1 + //SEG122 [57] phi (byte) render_current::c#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_current::@6->render_current::@3#0] -- vbuz1=vbuc1 lda #0 sta c - //SEG120 [56] phi (byte) render_current::xpos#2 = (byte) render_current::xpos#0 [phi:render_current::@6->render_current::@3#1] -- register_copy - //SEG121 [56] phi (byte) render_current::i#2 = (byte) render_current::i#4 [phi:render_current::@6->render_current::@3#2] -- register_copy + //SEG123 [57] phi (byte) render_current::xpos#2 = (byte) render_current::xpos#0 [phi:render_current::@6->render_current::@3#1] -- register_copy + //SEG124 [57] phi (byte) render_current::i#2 = (byte) render_current::i#4 [phi:render_current::@6->render_current::@3#2] -- register_copy jmp b3 - //SEG122 [56] phi from render_current::@4 to render_current::@3 [phi:render_current::@4->render_current::@3] + //SEG125 [57] phi from render_current::@4 to render_current::@3 [phi:render_current::@4->render_current::@3] b3_from_b4: - //SEG123 [56] phi (byte) render_current::c#2 = (byte) render_current::c#1 [phi:render_current::@4->render_current::@3#0] -- register_copy - //SEG124 [56] phi (byte) render_current::xpos#2 = (byte) render_current::xpos#1 [phi:render_current::@4->render_current::@3#1] -- register_copy - //SEG125 [56] phi (byte) render_current::i#2 = (byte) render_current::i#1 [phi:render_current::@4->render_current::@3#2] -- register_copy + //SEG126 [57] phi (byte) render_current::c#2 = (byte) render_current::c#1 [phi:render_current::@4->render_current::@3#0] -- register_copy + //SEG127 [57] phi (byte) render_current::xpos#2 = (byte) render_current::xpos#1 [phi:render_current::@4->render_current::@3#1] -- register_copy + //SEG128 [57] phi (byte) render_current::i#2 = (byte) render_current::i#1 [phi:render_current::@4->render_current::@3#2] -- register_copy jmp b3 - //SEG126 render_current::@3 + //SEG129 render_current::@3 b3: - //SEG127 [57] (byte) render_current::current_cell#0 ← *((byte*) current_piece_gfx#63 + (byte) render_current::i#2) -- vbuz1=pbuz2_derefidx_vbuz3 + //SEG130 [58] (byte) render_current::current_cell#0 ← *((byte*) current_piece_gfx#63 + (byte) render_current::i#2) -- vbuz1=pbuz2_derefidx_vbuz3 ldy i lda (current_piece_gfx_63),y sta current_cell - //SEG128 [58] (byte) render_current::i#1 ← ++ (byte) render_current::i#2 -- vbuz1=_inc_vbuz1 + //SEG131 [59] (byte) render_current::i#1 ← ++ (byte) render_current::i#2 -- vbuz1=_inc_vbuz1 inc i - //SEG129 [59] if((byte) render_current::current_cell#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto render_current::@4 -- vbuz1_eq_0_then_la1 + //SEG132 [60] if((byte) render_current::current_cell#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto render_current::@4 -- vbuz1_eq_0_then_la1 lda current_cell cmp #0 beq b4 jmp b7 - //SEG130 render_current::@7 + //SEG133 render_current::@7 b7: - //SEG131 [60] if((byte) render_current::xpos#2>=(const byte) PLAYFIELD_COLS#0) goto render_current::@4 -- vbuz1_ge_vbuc1_then_la1 + //SEG134 [61] if((byte) render_current::xpos#2>=(const byte) PLAYFIELD_COLS#0) goto render_current::@4 -- vbuz1_ge_vbuc1_then_la1 lda xpos cmp #PLAYFIELD_COLS bcs b4 jmp b8 - //SEG132 render_current::@8 + //SEG135 render_current::@8 b8: - //SEG133 [61] *((byte*) render_current::screen_line#0 + (byte) render_current::xpos#2) ← (byte) current_piece_color#65 -- pbuz1_derefidx_vbuz2=vbuz3 - lda current_piece_color_65 + //SEG136 [62] *((byte*) render_current::screen_line#0 + (byte) render_current::xpos#2) ← (byte) current_piece_color#66 -- pbuz1_derefidx_vbuz2=vbuz3 + lda current_piece_color_66 ldy xpos sta (screen_line),y jmp b4 - //SEG134 render_current::@4 + //SEG137 render_current::@4 b4: - //SEG135 [62] (byte) render_current::xpos#1 ← ++ (byte) render_current::xpos#2 -- vbuz1=_inc_vbuz1 + //SEG138 [63] (byte) render_current::xpos#1 ← ++ (byte) render_current::xpos#2 -- vbuz1=_inc_vbuz1 inc xpos - //SEG136 [63] (byte) render_current::c#1 ← ++ (byte) render_current::c#2 -- vbuz1=_inc_vbuz1 + //SEG139 [64] (byte) render_current::c#1 ← ++ (byte) render_current::c#2 -- vbuz1=_inc_vbuz1 inc c - //SEG137 [64] if((byte) render_current::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_current::@3 -- vbuz1_neq_vbuc1_then_la1 + //SEG140 [65] if((byte) render_current::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_current::@3 -- vbuz1_neq_vbuc1_then_la1 lda c cmp #4 bne b3_from_b4 - //SEG138 [65] phi from render_current::@1 render_current::@4 to render_current::@2 [phi:render_current::@1/render_current::@4->render_current::@2] + //SEG141 [66] phi from render_current::@1 render_current::@4 to render_current::@2 [phi:render_current::@1/render_current::@4->render_current::@2] b2_from_b1: b2_from_b4: - //SEG139 [65] phi (byte) render_current::i#8 = (byte) render_current::i#4 [phi:render_current::@1/render_current::@4->render_current::@2#0] -- register_copy + //SEG142 [66] phi (byte) render_current::i#8 = (byte) render_current::i#4 [phi:render_current::@1/render_current::@4->render_current::@2#0] -- register_copy jmp b2 - //SEG140 render_current::@2 + //SEG143 render_current::@2 b2: - //SEG141 [66] (byte) render_current::ypos2#1 ← (byte) render_current::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 -- vbuz1=vbuz1_plus_2 + //SEG144 [67] (byte) render_current::ypos2#1 ← (byte) render_current::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 -- vbuz1=vbuz1_plus_2 lda ypos2 clc adc #2 sta ypos2 - //SEG142 [67] (byte) render_current::l#1 ← ++ (byte) render_current::l#3 -- vbuz1=_inc_vbuz1 + //SEG145 [68] (byte) render_current::l#1 ← ++ (byte) render_current::l#3 -- vbuz1=_inc_vbuz1 inc l - //SEG143 [68] if((byte) render_current::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_current::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG146 [69] if((byte) render_current::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_current::@1 -- vbuz1_neq_vbuc1_then_la1 lda l cmp #4 bne b1_from_b2 jmp breturn - //SEG144 render_current::@return + //SEG147 render_current::@return breturn: - //SEG145 [69] return + //SEG148 [70] return rts } -//SEG146 render_playfield +//SEG149 render_playfield render_playfield: { .label _1 = $5e .label line = $10 .label i = $f .label c = $12 .label l = $e - //SEG147 [71] phi from render_playfield to render_playfield::@1 [phi:render_playfield->render_playfield::@1] + //SEG150 [72] phi from render_playfield to render_playfield::@1 [phi:render_playfield->render_playfield::@1] b1_from_render_playfield: - //SEG148 [71] phi (byte) render_playfield::i#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_playfield->render_playfield::@1#0] -- vbuz1=vbuc1 + //SEG151 [72] phi (byte) render_playfield::i#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_playfield->render_playfield::@1#0] -- vbuz1=vbuc1 lda #0 sta i - //SEG149 [71] phi (byte) render_playfield::l#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_playfield->render_playfield::@1#1] -- vbuz1=vbuc1 + //SEG152 [72] phi (byte) render_playfield::l#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_playfield->render_playfield::@1#1] -- vbuz1=vbuc1 lda #0 sta l jmp b1 - //SEG150 [71] phi from render_playfield::@3 to render_playfield::@1 [phi:render_playfield::@3->render_playfield::@1] + //SEG153 [72] phi from render_playfield::@3 to render_playfield::@1 [phi:render_playfield::@3->render_playfield::@1] b1_from_b3: - //SEG151 [71] phi (byte) render_playfield::i#3 = (byte) render_playfield::i#1 [phi:render_playfield::@3->render_playfield::@1#0] -- register_copy - //SEG152 [71] phi (byte) render_playfield::l#2 = (byte) render_playfield::l#1 [phi:render_playfield::@3->render_playfield::@1#1] -- register_copy + //SEG154 [72] phi (byte) render_playfield::i#3 = (byte) render_playfield::i#1 [phi:render_playfield::@3->render_playfield::@1#0] -- register_copy + //SEG155 [72] phi (byte) render_playfield::l#2 = (byte) render_playfield::l#1 [phi:render_playfield::@3->render_playfield::@1#1] -- register_copy jmp b1 - //SEG153 render_playfield::@1 + //SEG156 render_playfield::@1 b1: - //SEG154 [72] (byte~) render_playfield::$1 ← (byte) render_playfield::l#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_rol_1 + //SEG157 [73] (byte~) render_playfield::$1 ← (byte) render_playfield::l#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_rol_1 lda l asl sta _1 - //SEG155 [73] (byte*) render_playfield::line#0 ← *((const byte*[PLAYFIELD_LINES#0+3]) screen_lines#0 + (byte~) render_playfield::$1) -- pbuz1=pptc1_derefidx_vbuz2 + //SEG158 [74] (byte*) render_playfield::line#0 ← *((const byte*[PLAYFIELD_LINES#0+3]) screen_lines#0 + (byte~) render_playfield::$1) -- pbuz1=pptc1_derefidx_vbuz2 ldy _1 lda screen_lines,y sta line lda screen_lines+1,y sta line+1 - //SEG156 [74] phi from render_playfield::@1 to render_playfield::@2 [phi:render_playfield::@1->render_playfield::@2] + //SEG159 [75] phi from render_playfield::@1 to render_playfield::@2 [phi:render_playfield::@1->render_playfield::@2] b2_from_b1: - //SEG157 [74] phi (byte) render_playfield::c#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_playfield::@1->render_playfield::@2#0] -- vbuz1=vbuc1 + //SEG160 [75] phi (byte) render_playfield::c#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_playfield::@1->render_playfield::@2#0] -- vbuz1=vbuc1 lda #0 sta c - //SEG158 [74] phi (byte*) render_playfield::line#2 = (byte*) render_playfield::line#0 [phi:render_playfield::@1->render_playfield::@2#1] -- register_copy - //SEG159 [74] phi (byte) render_playfield::i#2 = (byte) render_playfield::i#3 [phi:render_playfield::@1->render_playfield::@2#2] -- register_copy + //SEG161 [75] phi (byte*) render_playfield::line#2 = (byte*) render_playfield::line#0 [phi:render_playfield::@1->render_playfield::@2#1] -- register_copy + //SEG162 [75] phi (byte) render_playfield::i#2 = (byte) render_playfield::i#3 [phi:render_playfield::@1->render_playfield::@2#2] -- register_copy jmp b2 - //SEG160 [74] phi from render_playfield::@2 to render_playfield::@2 [phi:render_playfield::@2->render_playfield::@2] + //SEG163 [75] phi from render_playfield::@2 to render_playfield::@2 [phi:render_playfield::@2->render_playfield::@2] b2_from_b2: - //SEG161 [74] phi (byte) render_playfield::c#2 = (byte) render_playfield::c#1 [phi:render_playfield::@2->render_playfield::@2#0] -- register_copy - //SEG162 [74] phi (byte*) render_playfield::line#2 = (byte*) render_playfield::line#1 [phi:render_playfield::@2->render_playfield::@2#1] -- register_copy - //SEG163 [74] phi (byte) render_playfield::i#2 = (byte) render_playfield::i#1 [phi:render_playfield::@2->render_playfield::@2#2] -- register_copy + //SEG164 [75] phi (byte) render_playfield::c#2 = (byte) render_playfield::c#1 [phi:render_playfield::@2->render_playfield::@2#0] -- register_copy + //SEG165 [75] phi (byte*) render_playfield::line#2 = (byte*) render_playfield::line#1 [phi:render_playfield::@2->render_playfield::@2#1] -- register_copy + //SEG166 [75] phi (byte) render_playfield::i#2 = (byte) render_playfield::i#1 [phi:render_playfield::@2->render_playfield::@2#2] -- register_copy jmp b2 - //SEG164 render_playfield::@2 + //SEG167 render_playfield::@2 b2: - //SEG165 [75] *((byte*) render_playfield::line#2) ← *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) render_playfield::i#2) -- _deref_pbuz1=pbuc1_derefidx_vbuz2 + //SEG168 [76] *((byte*) render_playfield::line#2) ← *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) render_playfield::i#2) -- _deref_pbuz1=pbuc1_derefidx_vbuz2 ldy i lda playfield,y ldy #0 sta (line),y - //SEG166 [76] (byte*) render_playfield::line#1 ← ++ (byte*) render_playfield::line#2 -- pbuz1=_inc_pbuz1 + //SEG169 [77] (byte*) render_playfield::line#1 ← ++ (byte*) render_playfield::line#2 -- pbuz1=_inc_pbuz1 inc line bne !+ inc line+1 !: - //SEG167 [77] (byte) render_playfield::i#1 ← ++ (byte) render_playfield::i#2 -- vbuz1=_inc_vbuz1 + //SEG170 [78] (byte) render_playfield::i#1 ← ++ (byte) render_playfield::i#2 -- vbuz1=_inc_vbuz1 inc i - //SEG168 [78] (byte) render_playfield::c#1 ← ++ (byte) render_playfield::c#2 -- vbuz1=_inc_vbuz1 + //SEG171 [79] (byte) render_playfield::c#1 ← ++ (byte) render_playfield::c#2 -- vbuz1=_inc_vbuz1 inc c - //SEG169 [79] if((byte) render_playfield::c#1!=(const byte) PLAYFIELD_COLS#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_playfield::@2 -- vbuz1_neq_vbuc1_then_la1 + //SEG172 [80] if((byte) render_playfield::c#1!=(const byte) PLAYFIELD_COLS#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_playfield::@2 -- vbuz1_neq_vbuc1_then_la1 lda c cmp #PLAYFIELD_COLS-1+1 bne b2_from_b2 jmp b3 - //SEG170 render_playfield::@3 + //SEG173 render_playfield::@3 b3: - //SEG171 [80] (byte) render_playfield::l#1 ← ++ (byte) render_playfield::l#2 -- vbuz1=_inc_vbuz1 + //SEG174 [81] (byte) render_playfield::l#1 ← ++ (byte) render_playfield::l#2 -- vbuz1=_inc_vbuz1 inc l - //SEG172 [81] if((byte) render_playfield::l#1!=(const byte) PLAYFIELD_LINES#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_playfield::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG175 [82] if((byte) render_playfield::l#1!=(const byte) PLAYFIELD_LINES#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_playfield::@1 -- vbuz1_neq_vbuc1_then_la1 lda l cmp #PLAYFIELD_LINES-1+1 bne b1_from_b3 jmp breturn - //SEG173 render_playfield::@return + //SEG176 render_playfield::@return breturn: - //SEG174 [82] return + //SEG177 [83] return rts } -//SEG175 play_move_rotate +//SEG178 play_move_rotate play_move_rotate: { .label _2 = $5f .label _4 = $62 @@ -6980,89 +7028,90 @@ play_move_rotate: { .label return = $58 .label orientation = $14 .label return_2 = $13 - //SEG176 [83] if((byte) play_move_rotate::key_event#0==(const byte) KEY_Z#0) goto play_move_rotate::@1 -- vbuz1_eq_vbuc1_then_la1 + //SEG179 [84] if((byte) play_move_rotate::key_event#0==(const byte) KEY_Z#0) goto play_move_rotate::@1 -- vbuz1_eq_vbuc1_then_la1 lda key_event cmp #KEY_Z beq b1 jmp b6 - //SEG177 play_move_rotate::@6 + //SEG180 play_move_rotate::@6 b6: - //SEG178 [84] if((byte) play_move_rotate::key_event#0==(const byte) KEY_X#0) goto play_move_rotate::@2 -- vbuz1_eq_vbuc1_then_la1 + //SEG181 [85] if((byte) play_move_rotate::key_event#0==(const byte) KEY_X#0) goto play_move_rotate::@2 -- vbuz1_eq_vbuc1_then_la1 lda key_event cmp #KEY_X beq b2 - //SEG179 [85] 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] + //SEG182 [86] phi from play_move_rotate::@14 play_move_rotate::@6 to play_move_rotate::@return [phi:play_move_rotate::@14/play_move_rotate::@6->play_move_rotate::@return] breturn_from_b14: breturn_from_b6: - //SEG180 [85] phi (byte*) current_piece_gfx#18 = (byte*) current_piece_gfx#17 [phi:play_move_rotate::@14/play_move_rotate::@6->play_move_rotate::@return#0] -- register_copy - //SEG181 [85] phi (byte) current_orientation#23 = (byte) current_orientation#18 [phi:play_move_rotate::@14/play_move_rotate::@6->play_move_rotate::@return#1] -- register_copy - //SEG182 [85] phi (byte) play_move_rotate::return#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_rotate::@14/play_move_rotate::@6->play_move_rotate::@return#2] -- vbuz1=vbuc1 + //SEG183 [86] phi (byte*) current_piece_gfx#18 = (byte*) current_piece_gfx#17 [phi:play_move_rotate::@14/play_move_rotate::@6->play_move_rotate::@return#0] -- register_copy + //SEG184 [86] phi (byte) current_orientation#23 = (byte) current_orientation#18 [phi:play_move_rotate::@14/play_move_rotate::@6->play_move_rotate::@return#1] -- register_copy + //SEG185 [86] phi (byte) play_move_rotate::return#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_rotate::@14/play_move_rotate::@6->play_move_rotate::@return#2] -- vbuz1=vbuc1 lda #0 sta return_2 jmp breturn - //SEG183 play_move_rotate::@return + //SEG186 play_move_rotate::@return breturn: - //SEG184 [86] return + //SEG187 [87] return rts - //SEG185 play_move_rotate::@2 + //SEG188 play_move_rotate::@2 b2: - //SEG186 [87] (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 ← (byte) current_orientation#18 + (byte/signed byte/word/signed word/dword/signed dword) 16 -- vbuz1=vbuz2_plus_vbuc1 + //SEG189 [88] (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 ← (byte) current_orientation#18 + (byte/signed byte/word/signed word/dword/signed dword) 16 -- vbuz1=vbuz2_plus_vbuc1 lda #$10 clc adc current_orientation sta _2 - //SEG187 [88] (byte) play_move_rotate::orientation#2 ← (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 & (byte/signed byte/word/signed word/dword/signed dword) 63 -- vbuz1=vbuz2_band_vbuc1 + //SEG190 [89] (byte) play_move_rotate::orientation#2 ← (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 & (byte/signed byte/word/signed word/dword/signed dword) 63 -- vbuz1=vbuz2_band_vbuc1 lda #$3f and _2 sta orientation - //SEG188 [89] phi from play_move_rotate::@1 play_move_rotate::@2 to play_move_rotate::@4 [phi:play_move_rotate::@1/play_move_rotate::@2->play_move_rotate::@4] + //SEG191 [90] phi from play_move_rotate::@1 play_move_rotate::@2 to play_move_rotate::@4 [phi:play_move_rotate::@1/play_move_rotate::@2->play_move_rotate::@4] b4_from_b1: b4_from_b2: - //SEG189 [89] 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 + //SEG192 [90] phi (byte) play_move_rotate::orientation#3 = (byte) play_move_rotate::orientation#1 [phi:play_move_rotate::@1/play_move_rotate::@2->play_move_rotate::@4#0] -- register_copy jmp b4 - //SEG190 play_move_rotate::@4 + //SEG193 play_move_rotate::@4 b4: - //SEG191 [90] (byte) collision::xpos#3 ← (byte) current_xpos#23 -- vbuz1=vbuz2 + //SEG194 [91] (byte) collision::xpos#3 ← (byte) current_xpos#23 -- vbuz1=vbuz2 lda current_xpos sta collision.xpos - //SEG192 [91] (byte) collision::ypos#3 ← (byte) current_ypos#16 -- vbuz1=vbuz2 + //SEG195 [92] (byte) collision::ypos#3 ← (byte) current_ypos#16 -- vbuz1=vbuz2 lda current_ypos sta collision.ypos - //SEG193 [92] (byte) collision::orientation#3 ← (byte) play_move_rotate::orientation#3 -- vbuz1=vbuz2 + //SEG196 [93] (byte) collision::orientation#3 ← (byte) play_move_rotate::orientation#3 -- vbuz1=vbuz2 lda orientation sta collision.orientation - //SEG194 [93] (byte*~) current_piece#73 ← (byte*) current_piece#13 -- pbuz1=pbuz2 + //SEG197 [94] (byte*~) current_piece#74 ← (byte*) current_piece#13 -- pbuz1=pbuz2 lda current_piece - sta current_piece_73 + sta current_piece_74 lda current_piece+1 - sta current_piece_73+1 - //SEG195 [94] call collision - //SEG196 [102] phi from play_move_rotate::@4 to collision [phi:play_move_rotate::@4->collision] + sta current_piece_74+1 + //SEG198 [95] call collision + //SEG199 [103] phi from play_move_rotate::@4 to collision [phi:play_move_rotate::@4->collision] collision_from_b4: - //SEG197 [102] phi (byte) collision::xpos#5 = (byte) collision::xpos#3 [phi:play_move_rotate::@4->collision#0] -- register_copy - //SEG198 [102] phi (byte) collision::ypos#4 = (byte) collision::ypos#3 [phi:play_move_rotate::@4->collision#1] -- register_copy - //SEG199 [102] phi (byte) collision::orientation#4 = (byte) collision::orientation#3 [phi:play_move_rotate::@4->collision#2] -- register_copy - //SEG200 [102] phi (byte*) current_piece#15 = (byte*~) current_piece#73 [phi:play_move_rotate::@4->collision#3] -- register_copy + //SEG200 [103] phi (byte) collision::xpos#5 = (byte) collision::xpos#3 [phi:play_move_rotate::@4->collision#0] -- register_copy + //SEG201 [103] phi (byte) collision::ypos#4 = (byte) collision::ypos#3 [phi:play_move_rotate::@4->collision#1] -- register_copy + //SEG202 [103] phi (byte) collision::orientation#4 = (byte) collision::orientation#3 [phi:play_move_rotate::@4->collision#2] -- register_copy + //SEG203 [103] phi (byte*) current_piece#15 = (byte*~) current_piece#74 [phi:play_move_rotate::@4->collision#3] -- register_copy jsr collision - //SEG201 [95] (byte) collision::return#13 ← (byte) collision::return#14 -- vbuz1=vbuz2 + //SEG204 [96] (byte) collision::return#13 ← (byte) collision::return#14 -- vbuz1=vbuz2 lda collision.return_14 sta collision.return_13 jmp b14 - //SEG202 play_move_rotate::@14 + //SEG205 play_move_rotate::@14 b14: - //SEG203 [96] (byte~) play_move_rotate::$6 ← (byte) collision::return#13 -- vbuz1=vbuz2 + //SEG206 [97] (byte~) play_move_rotate::$6 ← (byte) collision::return#13 -- vbuz1=vbuz2 lda collision.return_13 sta _6 - //SEG204 [97] if((byte~) play_move_rotate::$6!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_move_rotate::@return -- vbuz1_neq_0_then_la1 + //SEG207 [98] if((byte~) play_move_rotate::$6!=(const byte) COLLISION_NONE#0) goto play_move_rotate::@return -- vbuz1_neq_vbuc1_then_la1 lda _6 + cmp #COLLISION_NONE bne breturn_from_b14 jmp b11 - //SEG205 play_move_rotate::@11 + //SEG208 play_move_rotate::@11 b11: - //SEG206 [98] (byte) current_orientation#8 ← (byte) play_move_rotate::orientation#3 -- vbuz1=vbuz2 + //SEG209 [99] (byte) current_orientation#8 ← (byte) play_move_rotate::orientation#3 -- vbuz1=vbuz2 lda orientation sta current_orientation - //SEG207 [99] (byte*) current_piece_gfx#8 ← (byte*) current_piece#13 + (byte) current_orientation#8 -- pbuz1=pbuz2_plus_vbuz3 + //SEG210 [100] (byte*) current_piece_gfx#8 ← (byte*) current_piece#13 + (byte) current_orientation#8 -- pbuz1=pbuz2_plus_vbuz3 lda current_orientation clc adc current_piece @@ -7070,28 +7119,28 @@ play_move_rotate: { lda #0 adc current_piece+1 sta current_piece_gfx+1 - //SEG208 [85] phi from play_move_rotate::@11 to play_move_rotate::@return [phi:play_move_rotate::@11->play_move_rotate::@return] + //SEG211 [86] phi from play_move_rotate::@11 to play_move_rotate::@return [phi:play_move_rotate::@11->play_move_rotate::@return] breturn_from_b11: - //SEG209 [85] phi (byte*) current_piece_gfx#18 = (byte*) current_piece_gfx#8 [phi:play_move_rotate::@11->play_move_rotate::@return#0] -- register_copy - //SEG210 [85] phi (byte) current_orientation#23 = (byte) current_orientation#8 [phi:play_move_rotate::@11->play_move_rotate::@return#1] -- register_copy - //SEG211 [85] phi (byte) play_move_rotate::return#2 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_move_rotate::@11->play_move_rotate::@return#2] -- vbuz1=vbuc1 + //SEG212 [86] phi (byte*) current_piece_gfx#18 = (byte*) current_piece_gfx#8 [phi:play_move_rotate::@11->play_move_rotate::@return#0] -- register_copy + //SEG213 [86] phi (byte) current_orientation#23 = (byte) current_orientation#8 [phi:play_move_rotate::@11->play_move_rotate::@return#1] -- register_copy + //SEG214 [86] phi (byte) play_move_rotate::return#2 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_move_rotate::@11->play_move_rotate::@return#2] -- vbuz1=vbuc1 lda #1 sta return_2 jmp breturn - //SEG212 play_move_rotate::@1 + //SEG215 play_move_rotate::@1 b1: - //SEG213 [100] (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 ← (byte) current_orientation#18 - (byte/signed byte/word/signed word/dword/signed dword) 16 -- vbuz1=vbuz2_minus_vbuc1 + //SEG216 [101] (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 ← (byte) current_orientation#18 - (byte/signed byte/word/signed word/dword/signed dword) 16 -- vbuz1=vbuz2_minus_vbuc1 lda current_orientation sec sbc #$10 sta _4 - //SEG214 [101] (byte) play_move_rotate::orientation#1 ← (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 & (byte/signed byte/word/signed word/dword/signed dword) 63 -- vbuz1=vbuz2_band_vbuc1 + //SEG217 [102] (byte) play_move_rotate::orientation#1 ← (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 & (byte/signed byte/word/signed word/dword/signed dword) 63 -- vbuz1=vbuz2_band_vbuc1 lda #$3f and _4 sta orientation jmp b4_from_b1 } -//SEG215 collision +//SEG218 collision collision: { .label _7 = $68 .label xpos = $19 @@ -7113,7 +7162,7 @@ collision: { .label i_3 = $1c .label i_11 = $1c .label i_13 = $1c - //SEG216 [103] (byte*) collision::piece_gfx#0 ← (byte*) current_piece#15 + (byte) collision::orientation#4 -- pbuz1=pbuz2_plus_vbuz3 + //SEG219 [104] (byte*) collision::piece_gfx#0 ← (byte*) current_piece#15 + (byte) collision::orientation#4 -- pbuz1=pbuz2_plus_vbuz3 lda orientation clc adc current_piece_15 @@ -7121,290 +7170,290 @@ collision: { lda #0 adc current_piece_15+1 sta piece_gfx+1 - //SEG217 [104] (byte) collision::ypos2#0 ← (byte) collision::ypos#4 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_rol_1 + //SEG220 [105] (byte) collision::ypos2#0 ← (byte) collision::ypos#4 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_rol_1 lda ypos asl sta ypos2 - //SEG218 [105] phi from collision to collision::@1 [phi:collision->collision::@1] + //SEG221 [106] phi from collision to collision::@1 [phi:collision->collision::@1] b1_from_collision: - //SEG219 [105] phi (byte) collision::l#6 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:collision->collision::@1#0] -- vbuz1=vbuc1 + //SEG222 [106] phi (byte) collision::l#6 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:collision->collision::@1#0] -- vbuz1=vbuc1 lda #0 sta l - //SEG220 [105] phi (byte) collision::i#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:collision->collision::@1#1] -- vbuz1=vbuc1 + //SEG223 [106] phi (byte) collision::i#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:collision->collision::@1#1] -- vbuz1=vbuc1 lda #0 sta i_3 - //SEG221 [105] phi (byte) collision::ypos2#2 = (byte) collision::ypos2#0 [phi:collision->collision::@1#2] -- register_copy + //SEG224 [106] phi (byte) collision::ypos2#2 = (byte) collision::ypos2#0 [phi:collision->collision::@1#2] -- register_copy jmp b1 - //SEG222 collision::@1 + //SEG225 collision::@1 b1: - //SEG223 [106] (byte*) collision::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) collision::ypos2#2) -- pbuz1=pptc1_derefidx_vbuz2 + //SEG226 [107] (byte*) collision::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) collision::ypos2#2) -- pbuz1=pptc1_derefidx_vbuz2 ldy ypos2 lda playfield_lines,y sta playfield_line lda playfield_lines+1,y sta playfield_line+1 - //SEG224 [107] (byte~) collision::col#9 ← (byte) collision::xpos#5 -- vbuz1=vbuz2 + //SEG227 [108] (byte~) collision::col#9 ← (byte) collision::xpos#5 -- vbuz1=vbuz2 lda xpos sta col - //SEG225 [108] phi from collision::@1 to collision::@2 [phi:collision::@1->collision::@2] + //SEG228 [109] phi from collision::@1 to collision::@2 [phi:collision::@1->collision::@2] b2_from_b1: - //SEG226 [108] phi (byte) collision::c#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:collision::@1->collision::@2#0] -- vbuz1=vbuc1 + //SEG229 [109] phi (byte) collision::c#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:collision::@1->collision::@2#0] -- vbuz1=vbuc1 lda #0 sta c - //SEG227 [108] phi (byte) collision::col#2 = (byte~) collision::col#9 [phi:collision::@1->collision::@2#1] -- register_copy - //SEG228 [108] phi (byte) collision::i#2 = (byte) collision::i#3 [phi:collision::@1->collision::@2#2] -- register_copy + //SEG230 [109] phi (byte) collision::col#2 = (byte~) collision::col#9 [phi:collision::@1->collision::@2#1] -- register_copy + //SEG231 [109] phi (byte) collision::i#2 = (byte) collision::i#3 [phi:collision::@1->collision::@2#2] -- register_copy jmp b2 - //SEG229 collision::@2 + //SEG232 collision::@2 b2: - //SEG230 [109] (byte) collision::i#1 ← ++ (byte) collision::i#2 -- vbuz1=_inc_vbuz2 + //SEG233 [110] (byte) collision::i#1 ← ++ (byte) collision::i#2 -- vbuz1=_inc_vbuz2 ldy i_2 iny sty i - //SEG231 [110] if(*((byte*) collision::piece_gfx#0 + (byte) collision::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto collision::@3 -- pbuz1_derefidx_vbuz2_eq_0_then_la1 + //SEG234 [111] if(*((byte*) collision::piece_gfx#0 + (byte) collision::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto collision::@3 -- pbuz1_derefidx_vbuz2_eq_0_then_la1 ldy i_2 lda (piece_gfx),y cmp #0 beq b3 jmp b8 - //SEG232 collision::@8 + //SEG235 collision::@8 b8: - //SEG233 [111] if((byte) collision::ypos2#2<(byte/signed byte/word/signed word/dword/signed dword) 2*(const byte) PLAYFIELD_LINES#0) goto collision::@4 -- vbuz1_lt_vbuc1_then_la1 + //SEG236 [112] if((byte) collision::ypos2#2<(byte/signed byte/word/signed word/dword/signed dword) 2*(const byte) PLAYFIELD_LINES#0) goto collision::@4 -- vbuz1_lt_vbuc1_then_la1 lda ypos2 cmp #2*PLAYFIELD_LINES bcc b4 - //SEG234 [112] phi from collision::@8 to collision::@return [phi:collision::@8->collision::@return] + //SEG237 [113] phi from collision::@8 to collision::@return [phi:collision::@8->collision::@return] breturn_from_b8: - //SEG235 [112] phi (byte) collision::return#14 = (const byte) COLLISION_BOTTOM#0 [phi:collision::@8->collision::@return#0] -- vbuz1=vbuc1 + //SEG238 [113] phi (byte) collision::return#14 = (const byte) COLLISION_BOTTOM#0 [phi:collision::@8->collision::@return#0] -- vbuz1=vbuc1 lda #COLLISION_BOTTOM sta return_14 jmp breturn - //SEG236 collision::@return + //SEG239 collision::@return breturn: - //SEG237 [113] return + //SEG240 [114] return rts - //SEG238 collision::@4 + //SEG241 collision::@4 b4: - //SEG239 [114] (byte~) collision::$7 ← (byte) collision::col#2 & (byte/word/signed word/dword/signed dword) 128 -- vbuz1=vbuz2_band_vbuc1 + //SEG242 [115] (byte~) collision::$7 ← (byte) collision::col#2 & (byte/word/signed word/dword/signed dword) 128 -- vbuz1=vbuz2_band_vbuc1 lda #$80 and col sta _7 - //SEG240 [115] if((byte~) collision::$7==(byte/signed byte/word/signed word/dword/signed dword) 0) goto collision::@5 -- vbuz1_eq_0_then_la1 + //SEG243 [116] if((byte~) collision::$7==(byte/signed byte/word/signed word/dword/signed dword) 0) goto collision::@5 -- vbuz1_eq_0_then_la1 lda _7 cmp #0 beq b5 - //SEG241 [112] phi from collision::@4 to collision::@return [phi:collision::@4->collision::@return] + //SEG244 [113] phi from collision::@4 to collision::@return [phi:collision::@4->collision::@return] breturn_from_b4: - //SEG242 [112] phi (byte) collision::return#14 = (const byte) COLLISION_LEFT#0 [phi:collision::@4->collision::@return#0] -- vbuz1=vbuc1 + //SEG245 [113] phi (byte) collision::return#14 = (const byte) COLLISION_LEFT#0 [phi:collision::@4->collision::@return#0] -- vbuz1=vbuc1 lda #COLLISION_LEFT sta return_14 jmp breturn - //SEG243 collision::@5 + //SEG246 collision::@5 b5: - //SEG244 [116] if((byte) collision::col#2<(const byte) PLAYFIELD_COLS#0) goto collision::@6 -- vbuz1_lt_vbuc1_then_la1 + //SEG247 [117] if((byte) collision::col#2<(const byte) PLAYFIELD_COLS#0) goto collision::@6 -- vbuz1_lt_vbuc1_then_la1 lda col cmp #PLAYFIELD_COLS bcc b6 - //SEG245 [112] phi from collision::@5 to collision::@return [phi:collision::@5->collision::@return] + //SEG248 [113] phi from collision::@5 to collision::@return [phi:collision::@5->collision::@return] breturn_from_b5: - //SEG246 [112] phi (byte) collision::return#14 = (const byte) COLLISION_RIGHT#0 [phi:collision::@5->collision::@return#0] -- vbuz1=vbuc1 + //SEG249 [113] phi (byte) collision::return#14 = (const byte) COLLISION_RIGHT#0 [phi:collision::@5->collision::@return#0] -- vbuz1=vbuc1 lda #COLLISION_RIGHT sta return_14 jmp breturn - //SEG247 collision::@6 + //SEG250 collision::@6 b6: - //SEG248 [117] if(*((byte*) collision::playfield_line#0 + (byte) collision::col#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto collision::@3 -- pbuz1_derefidx_vbuz2_eq_0_then_la1 + //SEG251 [118] if(*((byte*) collision::playfield_line#0 + (byte) collision::col#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto collision::@3 -- pbuz1_derefidx_vbuz2_eq_0_then_la1 ldy col lda (playfield_line),y cmp #0 beq b3 - //SEG249 [112] phi from collision::@6 to collision::@return [phi:collision::@6->collision::@return] + //SEG252 [113] phi from collision::@6 to collision::@return [phi:collision::@6->collision::@return] breturn_from_b6: - //SEG250 [112] phi (byte) collision::return#14 = (const byte) COLLISION_PLAYFIELD#0 [phi:collision::@6->collision::@return#0] -- vbuz1=vbuc1 + //SEG253 [113] phi (byte) collision::return#14 = (const byte) COLLISION_PLAYFIELD#0 [phi:collision::@6->collision::@return#0] -- vbuz1=vbuc1 lda #COLLISION_PLAYFIELD sta return_14 jmp breturn - //SEG251 collision::@3 + //SEG254 collision::@3 b3: - //SEG252 [118] (byte) collision::col#1 ← ++ (byte) collision::col#2 -- vbuz1=_inc_vbuz1 + //SEG255 [119] (byte) collision::col#1 ← ++ (byte) collision::col#2 -- vbuz1=_inc_vbuz1 inc col - //SEG253 [119] (byte) collision::c#1 ← ++ (byte) collision::c#2 -- vbuz1=_inc_vbuz1 + //SEG256 [120] (byte) collision::c#1 ← ++ (byte) collision::c#2 -- vbuz1=_inc_vbuz1 inc c - //SEG254 [120] if((byte) collision::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto collision::@21 -- vbuz1_neq_vbuc1_then_la1 + //SEG257 [121] if((byte) collision::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto collision::@21 -- vbuz1_neq_vbuc1_then_la1 lda c cmp #4 bne b21 jmp b17 - //SEG255 collision::@17 + //SEG258 collision::@17 b17: - //SEG256 [121] (byte) collision::ypos2#1 ← (byte) collision::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 -- vbuz1=vbuz1_plus_2 + //SEG259 [122] (byte) collision::ypos2#1 ← (byte) collision::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 -- vbuz1=vbuz1_plus_2 lda ypos2 clc adc #2 sta ypos2 - //SEG257 [122] (byte) collision::l#1 ← ++ (byte) collision::l#6 -- vbuz1=_inc_vbuz1 + //SEG260 [123] (byte) collision::l#1 ← ++ (byte) collision::l#6 -- vbuz1=_inc_vbuz1 inc l - //SEG258 [123] if((byte) collision::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto collision::@20 -- vbuz1_neq_vbuc1_then_la1 + //SEG261 [124] if((byte) collision::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto collision::@20 -- vbuz1_neq_vbuc1_then_la1 lda l cmp #4 bne b20 - //SEG259 [112] phi from collision::@17 to collision::@return [phi:collision::@17->collision::@return] + //SEG262 [113] phi from collision::@17 to collision::@return [phi:collision::@17->collision::@return] breturn_from_b17: - //SEG260 [112] phi (byte) collision::return#14 = (const byte) COLLISION_NONE#0 [phi:collision::@17->collision::@return#0] -- vbuz1=vbuc1 + //SEG263 [113] phi (byte) collision::return#14 = (const byte) COLLISION_NONE#0 [phi:collision::@17->collision::@return#0] -- vbuz1=vbuc1 lda #COLLISION_NONE sta return_14 jmp breturn - //SEG261 collision::@20 + //SEG264 collision::@20 b20: - //SEG262 [124] (byte~) collision::i#11 ← (byte) collision::i#1 -- vbuz1=vbuz2 + //SEG265 [125] (byte~) collision::i#11 ← (byte) collision::i#1 -- vbuz1=vbuz2 lda i sta i_11 - //SEG263 [105] phi from collision::@20 to collision::@1 [phi:collision::@20->collision::@1] + //SEG266 [106] phi from collision::@20 to collision::@1 [phi:collision::@20->collision::@1] b1_from_b20: - //SEG264 [105] phi (byte) collision::l#6 = (byte) collision::l#1 [phi:collision::@20->collision::@1#0] -- register_copy - //SEG265 [105] phi (byte) collision::i#3 = (byte~) collision::i#11 [phi:collision::@20->collision::@1#1] -- register_copy - //SEG266 [105] phi (byte) collision::ypos2#2 = (byte) collision::ypos2#1 [phi:collision::@20->collision::@1#2] -- register_copy + //SEG267 [106] phi (byte) collision::l#6 = (byte) collision::l#1 [phi:collision::@20->collision::@1#0] -- register_copy + //SEG268 [106] phi (byte) collision::i#3 = (byte~) collision::i#11 [phi:collision::@20->collision::@1#1] -- register_copy + //SEG269 [106] phi (byte) collision::ypos2#2 = (byte) collision::ypos2#1 [phi:collision::@20->collision::@1#2] -- register_copy jmp b1 - //SEG267 collision::@21 + //SEG270 collision::@21 b21: - //SEG268 [125] (byte~) collision::i#13 ← (byte) collision::i#1 -- vbuz1=vbuz2 + //SEG271 [126] (byte~) collision::i#13 ← (byte) collision::i#1 -- vbuz1=vbuz2 lda i sta i_13 - //SEG269 [108] phi from collision::@21 to collision::@2 [phi:collision::@21->collision::@2] + //SEG272 [109] phi from collision::@21 to collision::@2 [phi:collision::@21->collision::@2] b2_from_b21: - //SEG270 [108] phi (byte) collision::c#2 = (byte) collision::c#1 [phi:collision::@21->collision::@2#0] -- register_copy - //SEG271 [108] phi (byte) collision::col#2 = (byte) collision::col#1 [phi:collision::@21->collision::@2#1] -- register_copy - //SEG272 [108] phi (byte) collision::i#2 = (byte~) collision::i#13 [phi:collision::@21->collision::@2#2] -- register_copy + //SEG273 [109] phi (byte) collision::c#2 = (byte) collision::c#1 [phi:collision::@21->collision::@2#0] -- register_copy + //SEG274 [109] phi (byte) collision::col#2 = (byte) collision::col#1 [phi:collision::@21->collision::@2#1] -- register_copy + //SEG275 [109] phi (byte) collision::i#2 = (byte~) collision::i#13 [phi:collision::@21->collision::@2#2] -- register_copy jmp b2 } -//SEG273 play_move_leftright +//SEG276 play_move_leftright play_move_leftright: { .label _4 = $6a .label _8 = $6c .label key_event = $53 .label return = $54 .label return_2 = $20 - //SEG274 [126] if((byte) play_move_leftright::key_event#0==(const byte) KEY_COMMA#0) goto play_move_leftright::@1 -- vbuz1_eq_vbuc1_then_la1 + //SEG277 [127] if((byte) play_move_leftright::key_event#0==(const byte) KEY_COMMA#0) goto play_move_leftright::@1 -- vbuz1_eq_vbuc1_then_la1 lda key_event cmp #KEY_COMMA beq b1 jmp b6 - //SEG275 play_move_leftright::@6 + //SEG278 play_move_leftright::@6 b6: - //SEG276 [127] if((byte) play_move_leftright::key_event#0!=(const byte) KEY_DOT#0) goto play_move_leftright::@return -- vbuz1_neq_vbuc1_then_la1 + //SEG279 [128] if((byte) play_move_leftright::key_event#0!=(const byte) KEY_DOT#0) goto play_move_leftright::@return -- vbuz1_neq_vbuc1_then_la1 lda key_event cmp #KEY_DOT bne breturn_from_b6 jmp b7 - //SEG277 play_move_leftright::@7 + //SEG280 play_move_leftright::@7 b7: - //SEG278 [128] (byte) collision::xpos#2 ← (byte) current_xpos#19 + (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_plus_1 + //SEG281 [129] (byte) collision::xpos#2 ← (byte) current_xpos#19 + (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_plus_1 ldy current_xpos iny sty collision.xpos - //SEG279 [129] (byte) collision::ypos#2 ← (byte) current_ypos#16 -- vbuz1=vbuz2 + //SEG282 [130] (byte) collision::ypos#2 ← (byte) current_ypos#16 -- vbuz1=vbuz2 lda current_ypos sta collision.ypos - //SEG280 [130] (byte) collision::orientation#2 ← (byte) current_orientation#18 -- vbuz1=vbuz2 + //SEG283 [131] (byte) collision::orientation#2 ← (byte) current_orientation#18 -- vbuz1=vbuz2 lda current_orientation sta collision.orientation - //SEG281 [131] (byte*~) current_piece#72 ← (byte*) current_piece#13 -- pbuz1=pbuz2 + //SEG284 [132] (byte*~) current_piece#73 ← (byte*) current_piece#13 -- pbuz1=pbuz2 lda current_piece - sta current_piece_72 + sta current_piece_73 lda current_piece+1 - sta current_piece_72+1 - //SEG282 [132] call collision - //SEG283 [102] phi from play_move_leftright::@7 to collision [phi:play_move_leftright::@7->collision] + sta current_piece_73+1 + //SEG285 [133] call collision + //SEG286 [103] phi from play_move_leftright::@7 to collision [phi:play_move_leftright::@7->collision] collision_from_b7: - //SEG284 [102] phi (byte) collision::xpos#5 = (byte) collision::xpos#2 [phi:play_move_leftright::@7->collision#0] -- register_copy - //SEG285 [102] phi (byte) collision::ypos#4 = (byte) collision::ypos#2 [phi:play_move_leftright::@7->collision#1] -- register_copy - //SEG286 [102] phi (byte) collision::orientation#4 = (byte) collision::orientation#2 [phi:play_move_leftright::@7->collision#2] -- register_copy - //SEG287 [102] phi (byte*) current_piece#15 = (byte*~) current_piece#72 [phi:play_move_leftright::@7->collision#3] -- register_copy + //SEG287 [103] phi (byte) collision::xpos#5 = (byte) collision::xpos#2 [phi:play_move_leftright::@7->collision#0] -- register_copy + //SEG288 [103] phi (byte) collision::ypos#4 = (byte) collision::ypos#2 [phi:play_move_leftright::@7->collision#1] -- register_copy + //SEG289 [103] phi (byte) collision::orientation#4 = (byte) collision::orientation#2 [phi:play_move_leftright::@7->collision#2] -- register_copy + //SEG290 [103] phi (byte*) current_piece#15 = (byte*~) current_piece#73 [phi:play_move_leftright::@7->collision#3] -- register_copy jsr collision - //SEG288 [133] (byte) collision::return#12 ← (byte) collision::return#14 -- vbuz1=vbuz2 + //SEG291 [134] (byte) collision::return#12 ← (byte) collision::return#14 -- vbuz1=vbuz2 lda collision.return_14 sta collision.return_12 jmp b15 - //SEG289 play_move_leftright::@15 + //SEG292 play_move_leftright::@15 b15: - //SEG290 [134] (byte~) play_move_leftright::$4 ← (byte) collision::return#12 -- vbuz1=vbuz2 + //SEG293 [135] (byte~) play_move_leftright::$4 ← (byte) collision::return#12 -- vbuz1=vbuz2 lda collision.return_12 sta _4 - //SEG291 [135] if((byte~) play_move_leftright::$4!=(const byte) COLLISION_NONE#0) goto play_move_leftright::@return -- vbuz1_neq_vbuc1_then_la1 + //SEG294 [136] if((byte~) play_move_leftright::$4!=(const byte) COLLISION_NONE#0) goto play_move_leftright::@return -- vbuz1_neq_vbuc1_then_la1 lda _4 cmp #COLLISION_NONE bne breturn_from_b15 jmp b8 - //SEG292 play_move_leftright::@8 + //SEG295 play_move_leftright::@8 b8: - //SEG293 [136] (byte) current_xpos#7 ← ++ (byte) current_xpos#19 -- vbuz1=_inc_vbuz1 + //SEG296 [137] (byte) current_xpos#7 ← ++ (byte) current_xpos#19 -- vbuz1=_inc_vbuz1 inc current_xpos - //SEG294 [137] 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] + //SEG297 [138] phi from play_move_leftright::@11 play_move_leftright::@8 to play_move_leftright::@return [phi:play_move_leftright::@11/play_move_leftright::@8->play_move_leftright::@return] breturn_from_b11: breturn_from_b8: - //SEG295 [137] phi (byte) current_xpos#23 = (byte) current_xpos#9 [phi:play_move_leftright::@11/play_move_leftright::@8->play_move_leftright::@return#0] -- register_copy - //SEG296 [137] phi (byte) play_move_leftright::return#2 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_move_leftright::@11/play_move_leftright::@8->play_move_leftright::@return#1] -- vbuz1=vbuc1 + //SEG298 [138] phi (byte) current_xpos#23 = (byte) current_xpos#9 [phi:play_move_leftright::@11/play_move_leftright::@8->play_move_leftright::@return#0] -- register_copy + //SEG299 [138] phi (byte) play_move_leftright::return#2 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_move_leftright::@11/play_move_leftright::@8->play_move_leftright::@return#1] -- vbuz1=vbuc1 lda #1 sta return_2 jmp breturn - //SEG297 [137] 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] + //SEG300 [138] phi from play_move_leftright::@14 play_move_leftright::@15 play_move_leftright::@6 to play_move_leftright::@return [phi:play_move_leftright::@14/play_move_leftright::@15/play_move_leftright::@6->play_move_leftright::@return] breturn_from_b14: breturn_from_b15: breturn_from_b6: - //SEG298 [137] phi (byte) current_xpos#23 = (byte) current_xpos#19 [phi:play_move_leftright::@14/play_move_leftright::@15/play_move_leftright::@6->play_move_leftright::@return#0] -- register_copy - //SEG299 [137] phi (byte) play_move_leftright::return#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_leftright::@14/play_move_leftright::@15/play_move_leftright::@6->play_move_leftright::@return#1] -- vbuz1=vbuc1 + //SEG301 [138] phi (byte) current_xpos#23 = (byte) current_xpos#19 [phi:play_move_leftright::@14/play_move_leftright::@15/play_move_leftright::@6->play_move_leftright::@return#0] -- register_copy + //SEG302 [138] phi (byte) play_move_leftright::return#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_leftright::@14/play_move_leftright::@15/play_move_leftright::@6->play_move_leftright::@return#1] -- vbuz1=vbuc1 lda #0 sta return_2 jmp breturn - //SEG300 play_move_leftright::@return + //SEG303 play_move_leftright::@return breturn: - //SEG301 [138] return + //SEG304 [139] return rts - //SEG302 play_move_leftright::@1 + //SEG305 play_move_leftright::@1 b1: - //SEG303 [139] (byte) collision::xpos#1 ← (byte) current_xpos#19 - (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_minus_1 + //SEG306 [140] (byte) collision::xpos#1 ← (byte) current_xpos#19 - (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_minus_1 ldx current_xpos dex stx collision.xpos - //SEG304 [140] (byte) collision::ypos#1 ← (byte) current_ypos#16 -- vbuz1=vbuz2 + //SEG307 [141] (byte) collision::ypos#1 ← (byte) current_ypos#16 -- vbuz1=vbuz2 lda current_ypos sta collision.ypos - //SEG305 [141] (byte) collision::orientation#1 ← (byte) current_orientation#18 -- vbuz1=vbuz2 + //SEG308 [142] (byte) collision::orientation#1 ← (byte) current_orientation#18 -- vbuz1=vbuz2 lda current_orientation sta collision.orientation - //SEG306 [142] (byte*~) current_piece#71 ← (byte*) current_piece#13 -- pbuz1=pbuz2 + //SEG309 [143] (byte*~) current_piece#72 ← (byte*) current_piece#13 -- pbuz1=pbuz2 lda current_piece - sta current_piece_71 + sta current_piece_72 lda current_piece+1 - sta current_piece_71+1 - //SEG307 [143] call collision - //SEG308 [102] phi from play_move_leftright::@1 to collision [phi:play_move_leftright::@1->collision] + sta current_piece_72+1 + //SEG310 [144] call collision + //SEG311 [103] phi from play_move_leftright::@1 to collision [phi:play_move_leftright::@1->collision] collision_from_b1: - //SEG309 [102] phi (byte) collision::xpos#5 = (byte) collision::xpos#1 [phi:play_move_leftright::@1->collision#0] -- register_copy - //SEG310 [102] phi (byte) collision::ypos#4 = (byte) collision::ypos#1 [phi:play_move_leftright::@1->collision#1] -- register_copy - //SEG311 [102] phi (byte) collision::orientation#4 = (byte) collision::orientation#1 [phi:play_move_leftright::@1->collision#2] -- register_copy - //SEG312 [102] phi (byte*) current_piece#15 = (byte*~) current_piece#71 [phi:play_move_leftright::@1->collision#3] -- register_copy + //SEG312 [103] phi (byte) collision::xpos#5 = (byte) collision::xpos#1 [phi:play_move_leftright::@1->collision#0] -- register_copy + //SEG313 [103] phi (byte) collision::ypos#4 = (byte) collision::ypos#1 [phi:play_move_leftright::@1->collision#1] -- register_copy + //SEG314 [103] phi (byte) collision::orientation#4 = (byte) collision::orientation#1 [phi:play_move_leftright::@1->collision#2] -- register_copy + //SEG315 [103] phi (byte*) current_piece#15 = (byte*~) current_piece#72 [phi:play_move_leftright::@1->collision#3] -- register_copy jsr collision - //SEG313 [144] (byte) collision::return#1 ← (byte) collision::return#14 -- vbuz1=vbuz2 + //SEG316 [145] (byte) collision::return#1 ← (byte) collision::return#14 -- vbuz1=vbuz2 lda collision.return_14 sta collision.return_1 jmp b14 - //SEG314 play_move_leftright::@14 + //SEG317 play_move_leftright::@14 b14: - //SEG315 [145] (byte~) play_move_leftright::$8 ← (byte) collision::return#1 -- vbuz1=vbuz2 + //SEG318 [146] (byte~) play_move_leftright::$8 ← (byte) collision::return#1 -- vbuz1=vbuz2 lda collision.return_1 sta _8 - //SEG316 [146] if((byte~) play_move_leftright::$8!=(const byte) COLLISION_NONE#0) goto play_move_leftright::@return -- vbuz1_neq_vbuc1_then_la1 + //SEG319 [147] if((byte~) play_move_leftright::$8!=(const byte) COLLISION_NONE#0) goto play_move_leftright::@return -- vbuz1_neq_vbuc1_then_la1 lda _8 cmp #COLLISION_NONE bne breturn_from_b14 jmp b11 - //SEG317 play_move_leftright::@11 + //SEG320 play_move_leftright::@11 b11: - //SEG318 [147] (byte) current_xpos#9 ← -- (byte) current_xpos#19 -- vbuz1=_dec_vbuz1 + //SEG321 [148] (byte) current_xpos#9 ← -- (byte) current_xpos#19 -- vbuz1=_dec_vbuz1 dec current_xpos jmp breturn_from_b11 } -//SEG319 play_move_down +//SEG322 play_move_down play_move_down: { .label _2 = $6e .label _12 = $70 @@ -7412,366 +7461,364 @@ play_move_down: { .label return = $50 .label movedown = $21 .label return_3 = $29 - //SEG320 [148] (byte) current_movedown_counter#10 ← ++ (byte) current_movedown_counter#15 -- vbuz1=_inc_vbuz1 + //SEG323 [149] (byte) current_movedown_counter#10 ← ++ (byte) current_movedown_counter#15 -- vbuz1=_inc_vbuz1 inc current_movedown_counter - //SEG321 [149] if((byte) play_move_down::key_event#0!=(const byte) KEY_SPACE#0) goto play_move_down::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG324 [150] if((byte) play_move_down::key_event#0!=(const byte) KEY_SPACE#0) goto play_move_down::@1 -- vbuz1_neq_vbuc1_then_la1 lda key_event cmp #KEY_SPACE bne b1_from_play_move_down - //SEG322 [150] phi from play_move_down to play_move_down::@8 [phi:play_move_down->play_move_down::@8] + //SEG325 [151] phi from play_move_down to play_move_down::@8 [phi:play_move_down->play_move_down::@8] b8_from_play_move_down: jmp b8 - //SEG323 play_move_down::@8 + //SEG326 play_move_down::@8 b8: - //SEG324 [151] phi from play_move_down::@8 to play_move_down::@1 [phi:play_move_down::@8->play_move_down::@1] + //SEG327 [152] phi from play_move_down::@8 to play_move_down::@1 [phi:play_move_down::@8->play_move_down::@1] b1_from_b8: - //SEG325 [151] phi (byte) play_move_down::movedown#10 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_move_down::@8->play_move_down::@1#0] -- vbuz1=vbuc1 + //SEG328 [152] phi (byte) play_move_down::movedown#10 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_move_down::@8->play_move_down::@1#0] -- vbuz1=vbuc1 lda #1 sta movedown jmp b1 - //SEG326 [151] phi from play_move_down to play_move_down::@1 [phi:play_move_down->play_move_down::@1] + //SEG329 [152] phi from play_move_down to play_move_down::@1 [phi:play_move_down->play_move_down::@1] b1_from_play_move_down: - //SEG327 [151] phi (byte) play_move_down::movedown#10 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_down->play_move_down::@1#0] -- vbuz1=vbuc1 + //SEG330 [152] phi (byte) play_move_down::movedown#10 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_down->play_move_down::@1#0] -- vbuz1=vbuc1 lda #0 sta movedown jmp b1 - //SEG328 play_move_down::@1 + //SEG331 play_move_down::@1 b1: - //SEG329 [152] call keyboard_event_pressed - //SEG330 [254] phi from play_move_down::@1 to keyboard_event_pressed [phi:play_move_down::@1->keyboard_event_pressed] + //SEG332 [153] call keyboard_event_pressed + //SEG333 [254] phi from play_move_down::@1 to keyboard_event_pressed [phi:play_move_down::@1->keyboard_event_pressed] keyboard_event_pressed_from_b1: - //SEG331 [254] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_SPACE#0 [phi:play_move_down::@1->keyboard_event_pressed#0] -- vbuz1=vbuc1 + //SEG334 [254] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_SPACE#0 [phi:play_move_down::@1->keyboard_event_pressed#0] -- vbuz1=vbuc1 lda #KEY_SPACE sta keyboard_event_pressed.keycode jsr keyboard_event_pressed - //SEG332 [153] (byte) keyboard_event_pressed::return#12 ← (byte) keyboard_event_pressed::return#11 -- vbuz1=vbuz2 + //SEG335 [154] (byte) keyboard_event_pressed::return#12 ← (byte) keyboard_event_pressed::return#11 -- vbuz1=vbuz2 lda keyboard_event_pressed.return_11 sta keyboard_event_pressed.return_12 jmp b17 - //SEG333 play_move_down::@17 + //SEG336 play_move_down::@17 b17: - //SEG334 [154] (byte~) play_move_down::$2 ← (byte) keyboard_event_pressed::return#12 -- vbuz1=vbuz2 + //SEG337 [155] (byte~) play_move_down::$2 ← (byte) keyboard_event_pressed::return#12 -- vbuz1=vbuz2 lda keyboard_event_pressed.return_12 sta _2 - //SEG335 [155] if((byte~) play_move_down::$2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_move_down::@2 -- vbuz1_eq_0_then_la1 + //SEG338 [156] if((byte~) play_move_down::$2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_move_down::@2 -- vbuz1_eq_0_then_la1 lda _2 cmp #0 beq b2_from_b17 jmp b9 - //SEG336 play_move_down::@9 + //SEG339 play_move_down::@9 b9: - //SEG337 [156] if((byte) current_movedown_counter#10<(const byte) current_movedown_fast#0) goto play_move_down::@2 -- vbuz1_lt_vbuc1_then_la1 + //SEG340 [157] if((byte) current_movedown_counter#10<(const byte) current_movedown_fast#0) goto play_move_down::@2 -- vbuz1_lt_vbuc1_then_la1 lda current_movedown_counter cmp #current_movedown_fast bcc b2_from_b9 jmp b10 - //SEG338 play_move_down::@10 + //SEG341 play_move_down::@10 b10: - //SEG339 [157] (byte) play_move_down::movedown#2 ← ++ (byte) play_move_down::movedown#10 -- vbuz1=_inc_vbuz1 + //SEG342 [158] (byte) play_move_down::movedown#2 ← ++ (byte) play_move_down::movedown#10 -- vbuz1=_inc_vbuz1 inc movedown - //SEG340 [158] phi from play_move_down::@10 play_move_down::@17 play_move_down::@9 to play_move_down::@2 [phi:play_move_down::@10/play_move_down::@17/play_move_down::@9->play_move_down::@2] + //SEG343 [159] phi from play_move_down::@10 play_move_down::@17 play_move_down::@9 to play_move_down::@2 [phi:play_move_down::@10/play_move_down::@17/play_move_down::@9->play_move_down::@2] b2_from_b10: b2_from_b17: b2_from_b9: - //SEG341 [158] phi (byte) play_move_down::movedown#7 = (byte) play_move_down::movedown#2 [phi:play_move_down::@10/play_move_down::@17/play_move_down::@9->play_move_down::@2#0] -- register_copy + //SEG344 [159] phi (byte) play_move_down::movedown#7 = (byte) play_move_down::movedown#2 [phi:play_move_down::@10/play_move_down::@17/play_move_down::@9->play_move_down::@2#0] -- register_copy jmp b2 - //SEG342 play_move_down::@2 + //SEG345 play_move_down::@2 b2: - //SEG343 [159] if((byte) current_movedown_counter#10<(const byte) current_movedown_slow#0) goto play_move_down::@4 -- vbuz1_lt_vbuc1_then_la1 + //SEG346 [160] if((byte) current_movedown_counter#10<(const byte) current_movedown_slow#0) goto play_move_down::@4 -- vbuz1_lt_vbuc1_then_la1 lda current_movedown_counter cmp #current_movedown_slow bcc b4_from_b2 jmp b11 - //SEG344 play_move_down::@11 + //SEG347 play_move_down::@11 b11: - //SEG345 [160] (byte) play_move_down::movedown#3 ← ++ (byte) play_move_down::movedown#7 -- vbuz1=_inc_vbuz1 + //SEG348 [161] (byte) play_move_down::movedown#3 ← ++ (byte) play_move_down::movedown#7 -- vbuz1=_inc_vbuz1 inc movedown - //SEG346 [161] phi from play_move_down::@11 play_move_down::@2 to play_move_down::@4 [phi:play_move_down::@11/play_move_down::@2->play_move_down::@4] + //SEG349 [162] phi from play_move_down::@11 play_move_down::@2 to play_move_down::@4 [phi:play_move_down::@11/play_move_down::@2->play_move_down::@4] b4_from_b11: b4_from_b2: - //SEG347 [161] phi (byte) play_move_down::movedown#6 = (byte) play_move_down::movedown#3 [phi:play_move_down::@11/play_move_down::@2->play_move_down::@4#0] -- register_copy + //SEG350 [162] phi (byte) play_move_down::movedown#6 = (byte) play_move_down::movedown#3 [phi:play_move_down::@11/play_move_down::@2->play_move_down::@4#0] -- register_copy jmp b4 - //SEG348 play_move_down::@4 + //SEG351 play_move_down::@4 b4: - //SEG349 [162] if((byte) play_move_down::movedown#6==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_move_down::@return -- vbuz1_eq_0_then_la1 + //SEG352 [163] if((byte) play_move_down::movedown#6==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_move_down::@return -- vbuz1_eq_0_then_la1 lda movedown cmp #0 beq breturn_from_b4 jmp b12 - //SEG350 play_move_down::@12 + //SEG353 play_move_down::@12 b12: - //SEG351 [163] (byte) collision::ypos#0 ← (byte) current_ypos#12 + (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_plus_1 + //SEG354 [164] (byte) collision::ypos#0 ← (byte) current_ypos#12 + (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_plus_1 ldy current_ypos iny sty collision.ypos - //SEG352 [164] (byte) collision::xpos#0 ← (byte) current_xpos#16 -- vbuz1=vbuz2 + //SEG355 [165] (byte) collision::xpos#0 ← (byte) current_xpos#16 -- vbuz1=vbuz2 lda current_xpos sta collision.xpos - //SEG353 [165] (byte) collision::orientation#0 ← (byte) current_orientation#15 -- vbuz1=vbuz2 + //SEG356 [166] (byte) collision::orientation#0 ← (byte) current_orientation#15 -- vbuz1=vbuz2 lda current_orientation sta collision.orientation - //SEG354 [166] (byte*~) current_piece#70 ← (byte*) current_piece#11 -- pbuz1=pbuz2 + //SEG357 [167] (byte*~) current_piece#71 ← (byte*) current_piece#11 -- pbuz1=pbuz2 lda current_piece - sta current_piece_70 + sta current_piece_71 lda current_piece+1 - sta current_piece_70+1 - //SEG355 [167] call collision - //SEG356 [102] phi from play_move_down::@12 to collision [phi:play_move_down::@12->collision] + sta current_piece_71+1 + //SEG358 [168] call collision + //SEG359 [103] phi from play_move_down::@12 to collision [phi:play_move_down::@12->collision] collision_from_b12: - //SEG357 [102] phi (byte) collision::xpos#5 = (byte) collision::xpos#0 [phi:play_move_down::@12->collision#0] -- register_copy - //SEG358 [102] phi (byte) collision::ypos#4 = (byte) collision::ypos#0 [phi:play_move_down::@12->collision#1] -- register_copy - //SEG359 [102] phi (byte) collision::orientation#4 = (byte) collision::orientation#0 [phi:play_move_down::@12->collision#2] -- register_copy - //SEG360 [102] phi (byte*) current_piece#15 = (byte*~) current_piece#70 [phi:play_move_down::@12->collision#3] -- register_copy + //SEG360 [103] phi (byte) collision::xpos#5 = (byte) collision::xpos#0 [phi:play_move_down::@12->collision#0] -- register_copy + //SEG361 [103] phi (byte) collision::ypos#4 = (byte) collision::ypos#0 [phi:play_move_down::@12->collision#1] -- register_copy + //SEG362 [103] phi (byte) collision::orientation#4 = (byte) collision::orientation#0 [phi:play_move_down::@12->collision#2] -- register_copy + //SEG363 [103] phi (byte*) current_piece#15 = (byte*~) current_piece#71 [phi:play_move_down::@12->collision#3] -- register_copy jsr collision - //SEG361 [168] (byte) collision::return#0 ← (byte) collision::return#14 -- vbuz1=vbuz2 + //SEG364 [169] (byte) collision::return#0 ← (byte) collision::return#14 -- vbuz1=vbuz2 lda collision.return_14 sta collision.return jmp b18 - //SEG362 play_move_down::@18 + //SEG365 play_move_down::@18 b18: - //SEG363 [169] (byte~) play_move_down::$12 ← (byte) collision::return#0 -- vbuz1=vbuz2 + //SEG366 [170] (byte~) play_move_down::$12 ← (byte) collision::return#0 -- vbuz1=vbuz2 lda collision.return sta _12 - //SEG364 [170] if((byte~) play_move_down::$12==(const byte) COLLISION_NONE#0) goto play_move_down::@6 -- vbuz1_eq_vbuc1_then_la1 + //SEG367 [171] if((byte~) play_move_down::$12==(const byte) COLLISION_NONE#0) goto play_move_down::@6 -- vbuz1_eq_vbuc1_then_la1 lda _12 cmp #COLLISION_NONE beq b6 - //SEG365 [171] phi from play_move_down::@18 to play_move_down::@13 [phi:play_move_down::@18->play_move_down::@13] + //SEG368 [172] phi from play_move_down::@18 to play_move_down::@13 [phi:play_move_down::@18->play_move_down::@13] b13_from_b18: jmp b13 - //SEG366 play_move_down::@13 + //SEG369 play_move_down::@13 b13: - //SEG367 [172] call lock_current + //SEG370 [173] call lock_current jsr lock_current - //SEG368 [173] phi from play_move_down::@13 to play_move_down::@19 [phi:play_move_down::@13->play_move_down::@19] + //SEG371 [174] phi from play_move_down::@13 to play_move_down::@19 [phi:play_move_down::@13->play_move_down::@19] b19_from_b13: jmp b19 - //SEG369 play_move_down::@19 + //SEG372 play_move_down::@19 b19: - //SEG370 [174] call remove_lines - //SEG371 [197] phi from play_move_down::@19 to remove_lines [phi:play_move_down::@19->remove_lines] + //SEG373 [175] call remove_lines + //SEG374 [197] phi from play_move_down::@19 to remove_lines [phi:play_move_down::@19->remove_lines] remove_lines_from_b19: jsr remove_lines - //SEG372 [175] phi from play_move_down::@19 to play_move_down::@20 [phi:play_move_down::@19->play_move_down::@20] + //SEG375 [176] phi from play_move_down::@19 to play_move_down::@20 [phi:play_move_down::@19->play_move_down::@20] b20_from_b19: jmp b20 - //SEG373 play_move_down::@20 + //SEG376 play_move_down::@20 b20: - //SEG374 [176] call spawn_current + //SEG377 [177] call spawn_current + //SEG378 [183] phi from play_move_down::@20 to spawn_current [phi:play_move_down::@20->spawn_current] + spawn_current_from_b20: jsr spawn_current - //SEG375 [177] (byte*~) current_piece#74 ← (byte*)*((const word[]) PIECES#0 + (byte~) spawn_current::$3) -- pbuz1=pptc1_derefidx_vbuz2 + //SEG379 [178] (byte*~) current_piece#75 ← (byte*)*((const word[]) PIECES#0 + (byte~) spawn_current::$3) -- pbuz1=pptc1_derefidx_vbuz2 ldy spawn_current._3 lda PIECES,y sta current_piece lda PIECES+1,y sta current_piece+1 - //SEG376 [178] phi from play_move_down::@20 to play_move_down::@7 [phi:play_move_down::@20->play_move_down::@7] + //SEG380 [179] phi from play_move_down::@20 to play_move_down::@7 [phi:play_move_down::@20->play_move_down::@7] b7_from_b20: - //SEG377 [178] phi (byte) current_piece_color#23 = (byte) current_piece_color#15 [phi:play_move_down::@20->play_move_down::@7#0] -- register_copy - //SEG378 [178] phi (byte) current_xpos#36 = (byte/signed byte/word/signed word/dword/signed dword) 3 [phi:play_move_down::@20->play_move_down::@7#1] -- vbuz1=vbuc1 + //SEG381 [179] phi (byte) current_piece_color#23 = (byte) current_piece_color#15 [phi:play_move_down::@20->play_move_down::@7#0] -- register_copy + //SEG382 [179] phi (byte) current_xpos#36 = (byte/signed byte/word/signed word/dword/signed dword) 3 [phi:play_move_down::@20->play_move_down::@7#1] -- vbuz1=vbuc1 lda #3 sta current_xpos - //SEG379 [178] phi (byte*) current_piece_gfx#29 = (byte*) current_piece_gfx#10 [phi:play_move_down::@20->play_move_down::@7#2] -- register_copy - //SEG380 [178] phi (byte) current_orientation#33 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_down::@20->play_move_down::@7#3] -- vbuz1=vbuc1 + //SEG383 [179] phi (byte*) current_piece_gfx#29 = (byte*) current_piece_gfx#10 [phi:play_move_down::@20->play_move_down::@7#2] -- register_copy + //SEG384 [179] phi (byte) current_orientation#33 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_down::@20->play_move_down::@7#3] -- vbuz1=vbuc1 lda #0 sta current_orientation - //SEG381 [178] phi (byte*) current_piece#23 = (byte*~) current_piece#74 [phi:play_move_down::@20->play_move_down::@7#4] -- register_copy - //SEG382 [178] phi (byte) current_ypos#31 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_down::@20->play_move_down::@7#5] -- vbuz1=vbuc1 + //SEG385 [179] phi (byte*) current_piece#23 = (byte*~) current_piece#75 [phi:play_move_down::@20->play_move_down::@7#4] -- register_copy + //SEG386 [179] phi (byte) current_ypos#31 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_down::@20->play_move_down::@7#5] -- vbuz1=vbuc1 lda #0 sta current_ypos jmp b7 - //SEG383 play_move_down::@7 + //SEG387 play_move_down::@7 b7: - //SEG384 [179] phi from play_move_down::@7 to play_move_down::@return [phi:play_move_down::@7->play_move_down::@return] + //SEG388 [180] phi from play_move_down::@7 to play_move_down::@return [phi:play_move_down::@7->play_move_down::@return] breturn_from_b7: - //SEG385 [179] phi (byte) current_piece_color#13 = (byte) current_piece_color#23 [phi:play_move_down::@7->play_move_down::@return#0] -- register_copy - //SEG386 [179] phi (byte) current_xpos#19 = (byte) current_xpos#36 [phi:play_move_down::@7->play_move_down::@return#1] -- register_copy - //SEG387 [179] phi (byte*) current_piece_gfx#17 = (byte*) current_piece_gfx#29 [phi:play_move_down::@7->play_move_down::@return#2] -- register_copy - //SEG388 [179] phi (byte) current_orientation#18 = (byte) current_orientation#33 [phi:play_move_down::@7->play_move_down::@return#3] -- register_copy - //SEG389 [179] phi (byte*) current_piece#13 = (byte*) current_piece#23 [phi:play_move_down::@7->play_move_down::@return#4] -- register_copy - //SEG390 [179] phi (byte) current_ypos#16 = (byte) current_ypos#31 [phi:play_move_down::@7->play_move_down::@return#5] -- register_copy - //SEG391 [179] phi (byte) current_movedown_counter#12 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_down::@7->play_move_down::@return#6] -- vbuz1=vbuc1 + //SEG389 [180] phi (byte) current_piece_color#13 = (byte) current_piece_color#23 [phi:play_move_down::@7->play_move_down::@return#0] -- register_copy + //SEG390 [180] phi (byte) current_xpos#19 = (byte) current_xpos#36 [phi:play_move_down::@7->play_move_down::@return#1] -- register_copy + //SEG391 [180] phi (byte*) current_piece_gfx#17 = (byte*) current_piece_gfx#29 [phi:play_move_down::@7->play_move_down::@return#2] -- register_copy + //SEG392 [180] phi (byte) current_orientation#18 = (byte) current_orientation#33 [phi:play_move_down::@7->play_move_down::@return#3] -- register_copy + //SEG393 [180] phi (byte*) current_piece#13 = (byte*) current_piece#23 [phi:play_move_down::@7->play_move_down::@return#4] -- register_copy + //SEG394 [180] phi (byte) current_ypos#16 = (byte) current_ypos#31 [phi:play_move_down::@7->play_move_down::@return#5] -- register_copy + //SEG395 [180] phi (byte) current_movedown_counter#12 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_down::@7->play_move_down::@return#6] -- vbuz1=vbuc1 lda #0 sta current_movedown_counter - //SEG392 [179] phi (byte) play_move_down::return#3 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_move_down::@7->play_move_down::@return#7] -- vbuz1=vbuc1 + //SEG396 [180] phi (byte) play_move_down::return#3 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_move_down::@7->play_move_down::@return#7] -- vbuz1=vbuc1 lda #1 sta return_3 jmp breturn - //SEG393 [179] phi from play_move_down::@4 to play_move_down::@return [phi:play_move_down::@4->play_move_down::@return] + //SEG397 [180] phi from play_move_down::@4 to play_move_down::@return [phi:play_move_down::@4->play_move_down::@return] breturn_from_b4: - //SEG394 [179] phi (byte) current_piece_color#13 = (byte) current_piece_color#11 [phi:play_move_down::@4->play_move_down::@return#0] -- register_copy - //SEG395 [179] phi (byte) current_xpos#19 = (byte) current_xpos#16 [phi:play_move_down::@4->play_move_down::@return#1] -- register_copy - //SEG396 [179] phi (byte*) current_piece_gfx#17 = (byte*) current_piece_gfx#15 [phi:play_move_down::@4->play_move_down::@return#2] -- register_copy - //SEG397 [179] phi (byte) current_orientation#18 = (byte) current_orientation#15 [phi:play_move_down::@4->play_move_down::@return#3] -- register_copy - //SEG398 [179] phi (byte*) current_piece#13 = (byte*) current_piece#11 [phi:play_move_down::@4->play_move_down::@return#4] -- register_copy - //SEG399 [179] phi (byte) current_ypos#16 = (byte) current_ypos#12 [phi:play_move_down::@4->play_move_down::@return#5] -- register_copy - //SEG400 [179] phi (byte) current_movedown_counter#12 = (byte) current_movedown_counter#10 [phi:play_move_down::@4->play_move_down::@return#6] -- register_copy - //SEG401 [179] phi (byte) play_move_down::return#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_down::@4->play_move_down::@return#7] -- vbuz1=vbuc1 + //SEG398 [180] phi (byte) current_piece_color#13 = (byte) current_piece_color#11 [phi:play_move_down::@4->play_move_down::@return#0] -- register_copy + //SEG399 [180] phi (byte) current_xpos#19 = (byte) current_xpos#16 [phi:play_move_down::@4->play_move_down::@return#1] -- register_copy + //SEG400 [180] phi (byte*) current_piece_gfx#17 = (byte*) current_piece_gfx#15 [phi:play_move_down::@4->play_move_down::@return#2] -- register_copy + //SEG401 [180] phi (byte) current_orientation#18 = (byte) current_orientation#15 [phi:play_move_down::@4->play_move_down::@return#3] -- register_copy + //SEG402 [180] phi (byte*) current_piece#13 = (byte*) current_piece#11 [phi:play_move_down::@4->play_move_down::@return#4] -- register_copy + //SEG403 [180] phi (byte) current_ypos#16 = (byte) current_ypos#12 [phi:play_move_down::@4->play_move_down::@return#5] -- register_copy + //SEG404 [180] phi (byte) current_movedown_counter#12 = (byte) current_movedown_counter#10 [phi:play_move_down::@4->play_move_down::@return#6] -- register_copy + //SEG405 [180] phi (byte) play_move_down::return#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_down::@4->play_move_down::@return#7] -- vbuz1=vbuc1 lda #0 sta return_3 jmp breturn - //SEG402 play_move_down::@return + //SEG406 play_move_down::@return breturn: - //SEG403 [180] return + //SEG407 [181] return rts - //SEG404 play_move_down::@6 + //SEG408 play_move_down::@6 b6: - //SEG405 [181] (byte) current_ypos#4 ← ++ (byte) current_ypos#12 -- vbuz1=_inc_vbuz1 + //SEG409 [182] (byte) current_ypos#4 ← ++ (byte) current_ypos#12 -- vbuz1=_inc_vbuz1 inc current_ypos - //SEG406 [178] phi from play_move_down::@6 to play_move_down::@7 [phi:play_move_down::@6->play_move_down::@7] + //SEG410 [179] phi from play_move_down::@6 to play_move_down::@7 [phi:play_move_down::@6->play_move_down::@7] b7_from_b6: - //SEG407 [178] phi (byte) current_piece_color#23 = (byte) current_piece_color#11 [phi:play_move_down::@6->play_move_down::@7#0] -- register_copy - //SEG408 [178] phi (byte) current_xpos#36 = (byte) current_xpos#16 [phi:play_move_down::@6->play_move_down::@7#1] -- register_copy - //SEG409 [178] phi (byte*) current_piece_gfx#29 = (byte*) current_piece_gfx#15 [phi:play_move_down::@6->play_move_down::@7#2] -- register_copy - //SEG410 [178] phi (byte) current_orientation#33 = (byte) current_orientation#15 [phi:play_move_down::@6->play_move_down::@7#3] -- register_copy - //SEG411 [178] phi (byte*) current_piece#23 = (byte*) current_piece#11 [phi:play_move_down::@6->play_move_down::@7#4] -- register_copy - //SEG412 [178] phi (byte) current_ypos#31 = (byte) current_ypos#4 [phi:play_move_down::@6->play_move_down::@7#5] -- register_copy + //SEG411 [179] phi (byte) current_piece_color#23 = (byte) current_piece_color#11 [phi:play_move_down::@6->play_move_down::@7#0] -- register_copy + //SEG412 [179] phi (byte) current_xpos#36 = (byte) current_xpos#16 [phi:play_move_down::@6->play_move_down::@7#1] -- register_copy + //SEG413 [179] phi (byte*) current_piece_gfx#29 = (byte*) current_piece_gfx#15 [phi:play_move_down::@6->play_move_down::@7#2] -- register_copy + //SEG414 [179] phi (byte) current_orientation#33 = (byte) current_orientation#15 [phi:play_move_down::@6->play_move_down::@7#3] -- register_copy + //SEG415 [179] phi (byte*) current_piece#23 = (byte*) current_piece#11 [phi:play_move_down::@6->play_move_down::@7#4] -- register_copy + //SEG416 [179] phi (byte) current_ypos#31 = (byte) current_ypos#4 [phi:play_move_down::@6->play_move_down::@7#5] -- register_copy jmp b7 } -//SEG413 spawn_current +//SEG417 spawn_current spawn_current: { .label _1 = $73 .label _3 = $71 .label piece_idx = $2a - //SEG414 [182] *((const byte*) BORDERCOL#0) ← ++ *((const byte*) BORDERCOL#0) -- _deref_pbuc1=_inc__deref_pbuc1 - inc BORDERCOL - //SEG415 [183] phi from spawn_current to spawn_current::@1 [phi:spawn_current->spawn_current::@1] + //SEG418 [184] phi from spawn_current to spawn_current::@1 [phi:spawn_current->spawn_current::@1] b1_from_spawn_current: - //SEG416 [183] phi (byte) spawn_current::piece_idx#2 = (byte/signed byte/word/signed word/dword/signed dword) 7 [phi:spawn_current->spawn_current::@1#0] -- vbuz1=vbuc1 + //SEG419 [184] phi (byte) spawn_current::piece_idx#2 = (byte/signed byte/word/signed word/dword/signed dword) 7 [phi:spawn_current->spawn_current::@1#0] -- vbuz1=vbuc1 lda #7 sta piece_idx jmp b1 - //SEG417 spawn_current::@1 + //SEG420 spawn_current::@1 b1: - //SEG418 [184] if((byte) spawn_current::piece_idx#2==(byte/signed byte/word/signed word/dword/signed dword) 7) goto spawn_current::@2 -- vbuz1_eq_vbuc1_then_la1 + //SEG421 [185] if((byte) spawn_current::piece_idx#2==(byte/signed byte/word/signed word/dword/signed dword) 7) goto spawn_current::@2 -- vbuz1_eq_vbuc1_then_la1 lda piece_idx cmp #7 beq b2_from_b1 jmp b3 - //SEG419 spawn_current::@3 + //SEG422 spawn_current::@3 b3: - //SEG420 [185] *((const byte*) BORDERCOL#0) ← -- *((const byte*) BORDERCOL#0) -- _deref_pbuc1=_dec__deref_pbuc1 - dec BORDERCOL - //SEG421 [186] (byte~) spawn_current::$3 ← (byte) spawn_current::piece_idx#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_rol_1 + //SEG423 [186] (byte~) spawn_current::$3 ← (byte) spawn_current::piece_idx#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_rol_1 lda piece_idx asl sta _3 - //SEG422 [187] (byte*) current_piece_gfx#10 ← (byte*)*((const word[]) PIECES#0 + (byte~) spawn_current::$3) + (byte/signed byte/word/signed word/dword/signed dword) 0 -- pbuz1=pptc1_derefidx_vbuz2_plus_0 + //SEG424 [187] (byte*) current_piece_gfx#10 ← (byte*)*((const word[]) PIECES#0 + (byte~) spawn_current::$3) + (byte/signed byte/word/signed word/dword/signed dword) 0 -- pbuz1=pptc1_derefidx_vbuz2_plus_0 ldy _3 lda PIECES,y sta current_piece_gfx lda PIECES+1,y sta current_piece_gfx+1 - //SEG423 [188] (byte) current_piece_color#15 ← *((const byte[]) PIECES_COLORS#0 + (byte) spawn_current::piece_idx#2) -- vbuz1=pbuc1_derefidx_vbuz2 + //SEG425 [188] (byte) current_piece_color#15 ← *((const byte[]) PIECES_COLORS#0 + (byte) spawn_current::piece_idx#2) -- vbuz1=pbuc1_derefidx_vbuz2 ldy piece_idx lda PIECES_COLORS,y sta current_piece_color jmp breturn - //SEG424 spawn_current::@return + //SEG426 spawn_current::@return breturn: - //SEG425 [189] return + //SEG427 [189] return rts - //SEG426 [190] phi from spawn_current::@1 to spawn_current::@2 [phi:spawn_current::@1->spawn_current::@2] + //SEG428 [190] phi from spawn_current::@1 to spawn_current::@2 [phi:spawn_current::@1->spawn_current::@2] b2_from_b1: jmp b2 - //SEG427 spawn_current::@2 + //SEG429 spawn_current::@2 b2: - //SEG428 [191] call sid_rnd + //SEG430 [191] call sid_rnd jsr sid_rnd - //SEG429 [192] (byte) sid_rnd::return#2 ← (byte) sid_rnd::return#0 -- vbuz1=vbuz2 + //SEG431 [192] (byte) sid_rnd::return#2 ← (byte) sid_rnd::return#0 -- vbuz1=vbuz2 lda sid_rnd.return sta sid_rnd.return_2 jmp b7 - //SEG430 spawn_current::@7 + //SEG432 spawn_current::@7 b7: - //SEG431 [193] (byte~) spawn_current::$1 ← (byte) sid_rnd::return#2 -- vbuz1=vbuz2 + //SEG433 [193] (byte~) spawn_current::$1 ← (byte) sid_rnd::return#2 -- vbuz1=vbuz2 lda sid_rnd.return_2 sta _1 - //SEG432 [194] (byte) spawn_current::piece_idx#1 ← (byte~) spawn_current::$1 & (byte/signed byte/word/signed word/dword/signed dword) 7 -- vbuz1=vbuz2_band_vbuc1 + //SEG434 [194] (byte) spawn_current::piece_idx#1 ← (byte~) spawn_current::$1 & (byte/signed byte/word/signed word/dword/signed dword) 7 -- vbuz1=vbuz2_band_vbuc1 lda #7 and _1 sta piece_idx - //SEG433 [183] phi from spawn_current::@7 to spawn_current::@1 [phi:spawn_current::@7->spawn_current::@1] + //SEG435 [184] phi from spawn_current::@7 to spawn_current::@1 [phi:spawn_current::@7->spawn_current::@1] b1_from_b7: - //SEG434 [183] phi (byte) spawn_current::piece_idx#2 = (byte) spawn_current::piece_idx#1 [phi:spawn_current::@7->spawn_current::@1#0] -- register_copy + //SEG436 [184] phi (byte) spawn_current::piece_idx#2 = (byte) spawn_current::piece_idx#1 [phi:spawn_current::@7->spawn_current::@1#0] -- register_copy jmp b1 } -//SEG435 sid_rnd +//SEG437 sid_rnd sid_rnd: { .label return = $74 .label return_2 = $72 - //SEG436 [195] (byte) sid_rnd::return#0 ← *((const byte*) SID_VOICE3_OSC#0) -- vbuz1=_deref_pbuc1 + //SEG438 [195] (byte) sid_rnd::return#0 ← *((const byte*) SID_VOICE3_OSC#0) -- vbuz1=_deref_pbuc1 lda SID_VOICE3_OSC sta return jmp breturn - //SEG437 sid_rnd::@return + //SEG439 sid_rnd::@return breturn: - //SEG438 [196] return + //SEG440 [196] return rts } -//SEG439 remove_lines +//SEG441 remove_lines remove_lines: { .label line_ypos = $76 .label done = $2b - //SEG440 [198] phi from remove_lines to remove_lines::@1 [phi:remove_lines->remove_lines::@1] + //SEG442 [198] phi from remove_lines to remove_lines::@1 [phi:remove_lines->remove_lines::@1] b1_from_remove_lines: - //SEG441 [198] phi (byte) remove_lines::done#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:remove_lines->remove_lines::@1#0] -- vbuz1=vbuc1 + //SEG443 [198] phi (byte) remove_lines::done#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:remove_lines->remove_lines::@1#0] -- vbuz1=vbuc1 lda #0 sta done jmp b1 - //SEG442 [198] phi from remove_lines::@3 to remove_lines::@1 [phi:remove_lines::@3->remove_lines::@1] + //SEG444 [198] phi from remove_lines::@3 to remove_lines::@1 [phi:remove_lines::@3->remove_lines::@1] b1_from_b3: - //SEG443 [198] phi (byte) remove_lines::done#3 = (byte) remove_lines::done#2 [phi:remove_lines::@3->remove_lines::@1#0] -- register_copy + //SEG445 [198] phi (byte) remove_lines::done#3 = (byte) remove_lines::done#2 [phi:remove_lines::@3->remove_lines::@1#0] -- register_copy jmp b1 - //SEG444 remove_lines::@1 + //SEG446 remove_lines::@1 b1: - //SEG445 [199] call find_line - //SEG446 [221] phi from remove_lines::@1 to find_line [phi:remove_lines::@1->find_line] + //SEG447 [199] call find_line + //SEG448 [221] phi from remove_lines::@1 to find_line [phi:remove_lines::@1->find_line] find_line_from_b1: jsr find_line - //SEG447 [200] (byte) find_line::return#0 ← (byte) find_line::return#2 -- vbuz1=vbuz2 + //SEG449 [200] (byte) find_line::return#0 ← (byte) find_line::return#2 -- vbuz1=vbuz2 lda find_line.return_2 sta find_line.return jmp b7 - //SEG448 remove_lines::@7 + //SEG450 remove_lines::@7 b7: - //SEG449 [201] (byte) remove_lines::line_ypos#0 ← (byte) find_line::return#0 -- vbuz1=vbuz2 + //SEG451 [201] (byte) remove_lines::line_ypos#0 ← (byte) find_line::return#0 -- vbuz1=vbuz2 lda find_line.return sta line_ypos - //SEG450 [202] if((byte) remove_lines::line_ypos#0!=(byte/word/signed word/dword/signed dword) 255) goto remove_lines::@2 -- vbuz1_neq_vbuc1_then_la1 + //SEG452 [202] if((byte) remove_lines::line_ypos#0!=(byte/word/signed word/dword/signed dword) 255) goto remove_lines::@2 -- vbuz1_neq_vbuc1_then_la1 lda line_ypos cmp #$ff bne b2 - //SEG451 [203] phi from remove_lines::@7 to remove_lines::@3 [phi:remove_lines::@7->remove_lines::@3] + //SEG453 [203] phi from remove_lines::@7 to remove_lines::@3 [phi:remove_lines::@7->remove_lines::@3] b3_from_b7: - //SEG452 [203] phi (byte) remove_lines::done#2 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:remove_lines::@7->remove_lines::@3#0] -- vbuz1=vbuc1 + //SEG454 [203] phi (byte) remove_lines::done#2 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:remove_lines::@7->remove_lines::@3#0] -- vbuz1=vbuc1 lda #1 sta done jmp b3 - //SEG453 remove_lines::@3 + //SEG455 remove_lines::@3 b3: - //SEG454 [204] if((byte) remove_lines::done#2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto remove_lines::@1 -- vbuz1_eq_0_then_la1 + //SEG456 [204] if((byte) remove_lines::done#2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto remove_lines::@1 -- vbuz1_eq_0_then_la1 lda done cmp #0 beq b1_from_b3 jmp breturn - //SEG455 remove_lines::@return + //SEG457 remove_lines::@return breturn: - //SEG456 [205] return + //SEG458 [205] return rts - //SEG457 remove_lines::@2 + //SEG459 remove_lines::@2 b2: - //SEG458 [206] (byte) remove_line::ypos#0 ← (byte) remove_lines::line_ypos#0 -- vbuz1=vbuz2 + //SEG460 [206] (byte) remove_line::ypos#0 ← (byte) remove_lines::line_ypos#0 -- vbuz1=vbuz2 lda line_ypos sta remove_line.ypos - //SEG459 [207] call remove_line + //SEG461 [207] call remove_line jsr remove_line - //SEG460 [203] phi from remove_lines::@2 to remove_lines::@3 [phi:remove_lines::@2->remove_lines::@3] + //SEG462 [203] phi from remove_lines::@2 to remove_lines::@3 [phi:remove_lines::@2->remove_lines::@3] b3_from_b2: - //SEG461 [203] phi (byte) remove_lines::done#2 = (byte) remove_lines::done#3 [phi:remove_lines::@2->remove_lines::@3#0] -- register_copy + //SEG463 [203] phi (byte) remove_lines::done#2 = (byte) remove_lines::done#3 [phi:remove_lines::@2->remove_lines::@3#0] -- register_copy jmp b3 } -//SEG462 remove_line +//SEG464 remove_line remove_line: { .label _0 = $77 .label ypos = $2c @@ -7779,77 +7826,77 @@ remove_line: { .label i1 = $2d .label x = $2f .label y = $2c - //SEG463 [208] (byte~) remove_line::$0 ← (byte) remove_line::ypos#0 -- vbuz1=vbuz2 + //SEG465 [208] (byte~) remove_line::$0 ← (byte) remove_line::ypos#0 -- vbuz1=vbuz2 lda ypos sta _0 - //SEG464 [209] (byte) remove_line::i2#0 ← *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte~) remove_line::$0) - (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=pbuc1_derefidx_vbuz2_minus_1 + //SEG466 [209] (byte) remove_line::i2#0 ← *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte~) remove_line::$0) - (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=pbuc1_derefidx_vbuz2_minus_1 ldy _0 lda playfield_lines_idx+1,y sec sbc #1 sta i2 - //SEG465 [210] (byte) remove_line::i1#0 ← *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0 + (byte) remove_line::ypos#0) - (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=pbuc1_derefidx_vbuz2_minus_1 + //SEG467 [210] (byte) remove_line::i1#0 ← *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0 + (byte) remove_line::ypos#0) - (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=pbuc1_derefidx_vbuz2_minus_1 ldy ypos lda playfield_lines_idx,y sec sbc #1 sta i1 - //SEG466 [211] phi from remove_line remove_line::@3 to remove_line::@1 [phi:remove_line/remove_line::@3->remove_line::@1] + //SEG468 [211] phi from remove_line remove_line::@3 to remove_line::@1 [phi:remove_line/remove_line::@3->remove_line::@1] b1_from_remove_line: b1_from_b3: - //SEG467 [211] phi (byte) remove_line::y#4 = (byte) remove_line::ypos#0 [phi:remove_line/remove_line::@3->remove_line::@1#0] -- register_copy - //SEG468 [211] phi (byte) remove_line::i2#3 = (byte) remove_line::i2#0 [phi:remove_line/remove_line::@3->remove_line::@1#1] -- register_copy - //SEG469 [211] phi (byte) remove_line::i1#3 = (byte) remove_line::i1#0 [phi:remove_line/remove_line::@3->remove_line::@1#2] -- register_copy + //SEG469 [211] phi (byte) remove_line::y#4 = (byte) remove_line::ypos#0 [phi:remove_line/remove_line::@3->remove_line::@1#0] -- register_copy + //SEG470 [211] phi (byte) remove_line::i2#3 = (byte) remove_line::i2#0 [phi:remove_line/remove_line::@3->remove_line::@1#1] -- register_copy + //SEG471 [211] phi (byte) remove_line::i1#3 = (byte) remove_line::i1#0 [phi:remove_line/remove_line::@3->remove_line::@1#2] -- register_copy jmp b1 - //SEG470 remove_line::@1 + //SEG472 remove_line::@1 b1: - //SEG471 [212] phi from remove_line::@1 to remove_line::@2 [phi:remove_line::@1->remove_line::@2] + //SEG473 [212] phi from remove_line::@1 to remove_line::@2 [phi:remove_line::@1->remove_line::@2] b2_from_b1: - //SEG472 [212] phi (byte) remove_line::x#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:remove_line::@1->remove_line::@2#0] -- vbuz1=vbuc1 + //SEG474 [212] phi (byte) remove_line::x#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:remove_line::@1->remove_line::@2#0] -- vbuz1=vbuc1 lda #0 sta x - //SEG473 [212] phi (byte) remove_line::i2#2 = (byte) remove_line::i2#3 [phi:remove_line::@1->remove_line::@2#1] -- register_copy - //SEG474 [212] phi (byte) remove_line::i1#2 = (byte) remove_line::i1#3 [phi:remove_line::@1->remove_line::@2#2] -- register_copy + //SEG475 [212] phi (byte) remove_line::i2#2 = (byte) remove_line::i2#3 [phi:remove_line::@1->remove_line::@2#1] -- register_copy + //SEG476 [212] phi (byte) remove_line::i1#2 = (byte) remove_line::i1#3 [phi:remove_line::@1->remove_line::@2#2] -- register_copy jmp b2 - //SEG475 [212] phi from remove_line::@2 to remove_line::@2 [phi:remove_line::@2->remove_line::@2] + //SEG477 [212] phi from remove_line::@2 to remove_line::@2 [phi:remove_line::@2->remove_line::@2] b2_from_b2: - //SEG476 [212] phi (byte) remove_line::x#2 = (byte) remove_line::x#1 [phi:remove_line::@2->remove_line::@2#0] -- register_copy - //SEG477 [212] phi (byte) remove_line::i2#2 = (byte) remove_line::i2#1 [phi:remove_line::@2->remove_line::@2#1] -- register_copy - //SEG478 [212] phi (byte) remove_line::i1#2 = (byte) remove_line::i1#1 [phi:remove_line::@2->remove_line::@2#2] -- register_copy + //SEG478 [212] phi (byte) remove_line::x#2 = (byte) remove_line::x#1 [phi:remove_line::@2->remove_line::@2#0] -- register_copy + //SEG479 [212] phi (byte) remove_line::i2#2 = (byte) remove_line::i2#1 [phi:remove_line::@2->remove_line::@2#1] -- register_copy + //SEG480 [212] phi (byte) remove_line::i1#2 = (byte) remove_line::i1#1 [phi:remove_line::@2->remove_line::@2#2] -- register_copy jmp b2 - //SEG479 remove_line::@2 + //SEG481 remove_line::@2 b2: - //SEG480 [213] *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) remove_line::i2#2) ← *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) remove_line::i1#2) -- pbuc1_derefidx_vbuz1=pbuc1_derefidx_vbuz2 + //SEG482 [213] *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) remove_line::i2#2) ← *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) remove_line::i1#2) -- pbuc1_derefidx_vbuz1=pbuc1_derefidx_vbuz2 ldx i1 lda playfield,x ldx i2 sta playfield,x - //SEG481 [214] (byte) remove_line::i2#1 ← -- (byte) remove_line::i2#2 -- vbuz1=_dec_vbuz1 + //SEG483 [214] (byte) remove_line::i2#1 ← -- (byte) remove_line::i2#2 -- vbuz1=_dec_vbuz1 dec i2 - //SEG482 [215] (byte) remove_line::i1#1 ← -- (byte) remove_line::i1#2 -- vbuz1=_dec_vbuz1 + //SEG484 [215] (byte) remove_line::i1#1 ← -- (byte) remove_line::i1#2 -- vbuz1=_dec_vbuz1 dec i1 - //SEG483 [216] (byte) remove_line::x#1 ← ++ (byte) remove_line::x#2 -- vbuz1=_inc_vbuz1 + //SEG485 [216] (byte) remove_line::x#1 ← ++ (byte) remove_line::x#2 -- vbuz1=_inc_vbuz1 inc x - //SEG484 [217] if((byte) remove_line::x#1!=(const byte) PLAYFIELD_COLS#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto remove_line::@2 -- vbuz1_neq_vbuc1_then_la1 + //SEG486 [217] if((byte) remove_line::x#1!=(const byte) PLAYFIELD_COLS#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto remove_line::@2 -- vbuz1_neq_vbuc1_then_la1 lda x cmp #PLAYFIELD_COLS-1+1 bne b2_from_b2 jmp b3 - //SEG485 remove_line::@3 + //SEG487 remove_line::@3 b3: - //SEG486 [218] (byte) remove_line::y#1 ← -- (byte) remove_line::y#4 -- vbuz1=_dec_vbuz1 + //SEG488 [218] (byte) remove_line::y#1 ← -- (byte) remove_line::y#4 -- vbuz1=_dec_vbuz1 dec y - //SEG487 [219] if((byte) remove_line::y#1!=(byte/signed byte/word/signed word/dword/signed dword) 1) goto remove_line::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG489 [219] if((byte) remove_line::y#1!=(byte/signed byte/word/signed word/dword/signed dword) 1) goto remove_line::@1 -- vbuz1_neq_vbuc1_then_la1 lda y cmp #1 bne b1_from_b3 jmp breturn - //SEG488 remove_line::@return + //SEG490 remove_line::@return breturn: - //SEG489 [220] return + //SEG491 [220] return rts } -//SEG490 find_line +//SEG492 find_line find_line: { .label return = $75 .label i = $78 @@ -7861,113 +7908,113 @@ find_line: { .label i_3 = $30 .label i_8 = $30 .label i_10 = $30 - //SEG491 [222] phi from find_line to find_line::@1 [phi:find_line->find_line::@1] + //SEG493 [222] phi from find_line to find_line::@1 [phi:find_line->find_line::@1] b1_from_find_line: - //SEG492 [222] phi (byte) find_line::y#8 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:find_line->find_line::@1#0] -- vbuz1=vbuc1 + //SEG494 [222] phi (byte) find_line::y#8 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:find_line->find_line::@1#0] -- vbuz1=vbuc1 lda #0 sta y - //SEG493 [222] phi (byte) find_line::i#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:find_line->find_line::@1#1] -- vbuz1=vbuc1 + //SEG495 [222] phi (byte) find_line::i#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:find_line->find_line::@1#1] -- vbuz1=vbuc1 lda #0 sta i_3 jmp b1 - //SEG494 find_line::@1 + //SEG496 find_line::@1 b1: - //SEG495 [223] phi from find_line::@1 to find_line::@2 [phi:find_line::@1->find_line::@2] + //SEG497 [223] phi from find_line::@1 to find_line::@2 [phi:find_line::@1->find_line::@2] b2_from_b1: - //SEG496 [223] phi (byte) find_line::filled#4 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:find_line::@1->find_line::@2#0] -- vbuz1=vbuc1 + //SEG498 [223] phi (byte) find_line::filled#4 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:find_line::@1->find_line::@2#0] -- vbuz1=vbuc1 lda #1 sta filled - //SEG497 [223] phi (byte) find_line::x#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:find_line::@1->find_line::@2#1] -- vbuz1=vbuc1 + //SEG499 [223] phi (byte) find_line::x#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:find_line::@1->find_line::@2#1] -- vbuz1=vbuc1 lda #0 sta x - //SEG498 [223] phi (byte) find_line::i#2 = (byte) find_line::i#3 [phi:find_line::@1->find_line::@2#2] -- register_copy + //SEG500 [223] phi (byte) find_line::i#2 = (byte) find_line::i#3 [phi:find_line::@1->find_line::@2#2] -- register_copy jmp b2 - //SEG499 find_line::@2 + //SEG501 find_line::@2 b2: - //SEG500 [224] (byte) find_line::i#1 ← ++ (byte) find_line::i#2 -- vbuz1=_inc_vbuz2 + //SEG502 [224] (byte) find_line::i#1 ← ++ (byte) find_line::i#2 -- vbuz1=_inc_vbuz2 ldy i_2 iny sty i - //SEG501 [225] if(*((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) find_line::i#2)!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto find_line::@13 -- pbuc1_derefidx_vbuz1_neq_0_then_la1 + //SEG503 [225] if(*((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) find_line::i#2)!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto find_line::@13 -- pbuc1_derefidx_vbuz1_neq_0_then_la1 ldy i_2 lda playfield,y cmp #0 bne b13_from_b2 - //SEG502 [226] phi from find_line::@2 to find_line::@3 [phi:find_line::@2->find_line::@3] + //SEG504 [226] phi from find_line::@2 to find_line::@3 [phi:find_line::@2->find_line::@3] b3_from_b2: - //SEG503 [226] phi (byte) find_line::filled#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:find_line::@2->find_line::@3#0] -- vbuz1=vbuc1 + //SEG505 [226] phi (byte) find_line::filled#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:find_line::@2->find_line::@3#0] -- vbuz1=vbuc1 lda #0 sta filled jmp b3 - //SEG504 find_line::@3 + //SEG506 find_line::@3 b3: - //SEG505 [227] (byte) find_line::x#1 ← ++ (byte) find_line::x#2 -- vbuz1=_inc_vbuz1 + //SEG507 [227] (byte) find_line::x#1 ← ++ (byte) find_line::x#2 -- vbuz1=_inc_vbuz1 inc x - //SEG506 [228] if((byte) find_line::x#1!=(const byte) PLAYFIELD_COLS#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto find_line::@12 -- vbuz1_neq_vbuc1_then_la1 + //SEG508 [228] if((byte) find_line::x#1!=(const byte) PLAYFIELD_COLS#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto find_line::@12 -- vbuz1_neq_vbuc1_then_la1 lda x cmp #PLAYFIELD_COLS-1+1 bne b12 jmp b6 - //SEG507 find_line::@6 + //SEG509 find_line::@6 b6: - //SEG508 [229] if((byte) find_line::filled#2!=(byte/signed byte/word/signed word/dword/signed dword) 1) goto find_line::@4 -- vbuz1_neq_vbuc1_then_la1 + //SEG510 [229] if((byte) find_line::filled#2!=(byte/signed byte/word/signed word/dword/signed dword) 1) goto find_line::@4 -- vbuz1_neq_vbuc1_then_la1 lda filled cmp #1 bne b4 - //SEG509 [230] phi from find_line::@6 to find_line::@return [phi:find_line::@6->find_line::@return] + //SEG511 [230] phi from find_line::@6 to find_line::@return [phi:find_line::@6->find_line::@return] breturn_from_b6: - //SEG510 [230] phi (byte) find_line::return#2 = (byte) find_line::y#8 [phi:find_line::@6->find_line::@return#0] -- register_copy + //SEG512 [230] phi (byte) find_line::return#2 = (byte) find_line::y#8 [phi:find_line::@6->find_line::@return#0] -- register_copy jmp breturn - //SEG511 find_line::@return + //SEG513 find_line::@return breturn: - //SEG512 [231] return + //SEG514 [231] return rts - //SEG513 find_line::@4 + //SEG515 find_line::@4 b4: - //SEG514 [232] (byte) find_line::y#1 ← ++ (byte) find_line::y#8 -- vbuz1=_inc_vbuz1 + //SEG516 [232] (byte) find_line::y#1 ← ++ (byte) find_line::y#8 -- vbuz1=_inc_vbuz1 inc y - //SEG515 [233] if((byte) find_line::y#1!=(const byte) PLAYFIELD_LINES#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto find_line::@11 -- vbuz1_neq_vbuc1_then_la1 + //SEG517 [233] if((byte) find_line::y#1!=(const byte) PLAYFIELD_LINES#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto find_line::@11 -- vbuz1_neq_vbuc1_then_la1 lda y cmp #PLAYFIELD_LINES-1+1 bne b11 - //SEG516 [230] phi from find_line::@4 to find_line::@return [phi:find_line::@4->find_line::@return] + //SEG518 [230] phi from find_line::@4 to find_line::@return [phi:find_line::@4->find_line::@return] breturn_from_b4: - //SEG517 [230] phi (byte) find_line::return#2 = (byte/word/signed word/dword/signed dword) 255 [phi:find_line::@4->find_line::@return#0] -- vbuz1=vbuc1 + //SEG519 [230] phi (byte) find_line::return#2 = (byte/word/signed word/dword/signed dword) 255 [phi:find_line::@4->find_line::@return#0] -- vbuz1=vbuc1 lda #$ff sta return_2 jmp breturn - //SEG518 find_line::@11 + //SEG520 find_line::@11 b11: - //SEG519 [234] (byte~) find_line::i#8 ← (byte) find_line::i#1 -- vbuz1=vbuz2 + //SEG521 [234] (byte~) find_line::i#8 ← (byte) find_line::i#1 -- vbuz1=vbuz2 lda i sta i_8 - //SEG520 [222] phi from find_line::@11 to find_line::@1 [phi:find_line::@11->find_line::@1] + //SEG522 [222] phi from find_line::@11 to find_line::@1 [phi:find_line::@11->find_line::@1] b1_from_b11: - //SEG521 [222] phi (byte) find_line::y#8 = (byte) find_line::y#1 [phi:find_line::@11->find_line::@1#0] -- register_copy - //SEG522 [222] phi (byte) find_line::i#3 = (byte~) find_line::i#8 [phi:find_line::@11->find_line::@1#1] -- register_copy + //SEG523 [222] phi (byte) find_line::y#8 = (byte) find_line::y#1 [phi:find_line::@11->find_line::@1#0] -- register_copy + //SEG524 [222] phi (byte) find_line::i#3 = (byte~) find_line::i#8 [phi:find_line::@11->find_line::@1#1] -- register_copy jmp b1 - //SEG523 find_line::@12 + //SEG525 find_line::@12 b12: - //SEG524 [235] (byte~) find_line::i#10 ← (byte) find_line::i#1 -- vbuz1=vbuz2 + //SEG526 [235] (byte~) find_line::i#10 ← (byte) find_line::i#1 -- vbuz1=vbuz2 lda i sta i_10 - //SEG525 [223] phi from find_line::@12 to find_line::@2 [phi:find_line::@12->find_line::@2] + //SEG527 [223] phi from find_line::@12 to find_line::@2 [phi:find_line::@12->find_line::@2] b2_from_b12: - //SEG526 [223] phi (byte) find_line::filled#4 = (byte) find_line::filled#2 [phi:find_line::@12->find_line::@2#0] -- register_copy - //SEG527 [223] phi (byte) find_line::x#2 = (byte) find_line::x#1 [phi:find_line::@12->find_line::@2#1] -- register_copy - //SEG528 [223] phi (byte) find_line::i#2 = (byte~) find_line::i#10 [phi:find_line::@12->find_line::@2#2] -- register_copy + //SEG528 [223] phi (byte) find_line::filled#4 = (byte) find_line::filled#2 [phi:find_line::@12->find_line::@2#0] -- register_copy + //SEG529 [223] phi (byte) find_line::x#2 = (byte) find_line::x#1 [phi:find_line::@12->find_line::@2#1] -- register_copy + //SEG530 [223] phi (byte) find_line::i#2 = (byte~) find_line::i#10 [phi:find_line::@12->find_line::@2#2] -- register_copy jmp b2 - //SEG529 [236] phi from find_line::@2 to find_line::@13 [phi:find_line::@2->find_line::@13] + //SEG531 [236] phi from find_line::@2 to find_line::@13 [phi:find_line::@2->find_line::@13] b13_from_b2: jmp b13 - //SEG530 find_line::@13 + //SEG532 find_line::@13 b13: - //SEG531 [226] phi from find_line::@13 to find_line::@3 [phi:find_line::@13->find_line::@3] + //SEG533 [226] phi from find_line::@13 to find_line::@3 [phi:find_line::@13->find_line::@3] b3_from_b13: - //SEG532 [226] phi (byte) find_line::filled#2 = (byte) find_line::filled#4 [phi:find_line::@13->find_line::@3#0] -- register_copy + //SEG534 [226] phi (byte) find_line::filled#2 = (byte) find_line::filled#4 [phi:find_line::@13->find_line::@3#0] -- register_copy jmp b3 } -//SEG533 lock_current +//SEG535 lock_current lock_current: { .label ypos2 = $34 .label playfield_line = $79 @@ -7979,111 +8026,111 @@ lock_current: { .label i_3 = $36 .label i_7 = $36 .label i_9 = $36 - //SEG534 [237] (byte) lock_current::ypos2#0 ← (byte) current_ypos#12 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_rol_1 + //SEG536 [237] (byte) lock_current::ypos2#0 ← (byte) current_ypos#12 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_rol_1 lda current_ypos asl sta ypos2 - //SEG535 [238] phi from lock_current to lock_current::@1 [phi:lock_current->lock_current::@1] + //SEG537 [238] phi from lock_current to lock_current::@1 [phi:lock_current->lock_current::@1] b1_from_lock_current: - //SEG536 [238] phi (byte) lock_current::l#6 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:lock_current->lock_current::@1#0] -- vbuz1=vbuc1 + //SEG538 [238] phi (byte) lock_current::l#6 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:lock_current->lock_current::@1#0] -- vbuz1=vbuc1 lda #0 sta l - //SEG537 [238] phi (byte) lock_current::i#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:lock_current->lock_current::@1#1] -- vbuz1=vbuc1 + //SEG539 [238] phi (byte) lock_current::i#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:lock_current->lock_current::@1#1] -- vbuz1=vbuc1 lda #0 sta i_3 - //SEG538 [238] phi (byte) lock_current::ypos2#2 = (byte) lock_current::ypos2#0 [phi:lock_current->lock_current::@1#2] -- register_copy + //SEG540 [238] phi (byte) lock_current::ypos2#2 = (byte) lock_current::ypos2#0 [phi:lock_current->lock_current::@1#2] -- register_copy jmp b1 - //SEG539 lock_current::@1 + //SEG541 lock_current::@1 b1: - //SEG540 [239] (byte*) lock_current::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) lock_current::ypos2#2) -- pbuz1=pptc1_derefidx_vbuz2 + //SEG542 [239] (byte*) lock_current::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) lock_current::ypos2#2) -- pbuz1=pptc1_derefidx_vbuz2 ldy ypos2 lda playfield_lines,y sta playfield_line lda playfield_lines+1,y sta playfield_line+1 - //SEG541 [240] (byte) lock_current::col#0 ← (byte) current_xpos#16 -- vbuz1=vbuz2 + //SEG543 [240] (byte) lock_current::col#0 ← (byte) current_xpos#16 -- vbuz1=vbuz2 lda current_xpos sta col - //SEG542 [241] phi from lock_current::@1 to lock_current::@2 [phi:lock_current::@1->lock_current::@2] + //SEG544 [241] phi from lock_current::@1 to lock_current::@2 [phi:lock_current::@1->lock_current::@2] b2_from_b1: - //SEG543 [241] phi (byte) lock_current::c#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:lock_current::@1->lock_current::@2#0] -- vbuz1=vbuc1 + //SEG545 [241] phi (byte) lock_current::c#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:lock_current::@1->lock_current::@2#0] -- vbuz1=vbuc1 lda #0 sta c - //SEG544 [241] phi (byte) lock_current::col#2 = (byte) lock_current::col#0 [phi:lock_current::@1->lock_current::@2#1] -- register_copy - //SEG545 [241] phi (byte) lock_current::i#2 = (byte) lock_current::i#3 [phi:lock_current::@1->lock_current::@2#2] -- register_copy + //SEG546 [241] phi (byte) lock_current::col#2 = (byte) lock_current::col#0 [phi:lock_current::@1->lock_current::@2#1] -- register_copy + //SEG547 [241] phi (byte) lock_current::i#2 = (byte) lock_current::i#3 [phi:lock_current::@1->lock_current::@2#2] -- register_copy jmp b2 - //SEG546 lock_current::@2 + //SEG548 lock_current::@2 b2: - //SEG547 [242] (byte) lock_current::i#1 ← ++ (byte) lock_current::i#2 -- vbuz1=_inc_vbuz2 + //SEG549 [242] (byte) lock_current::i#1 ← ++ (byte) lock_current::i#2 -- vbuz1=_inc_vbuz2 ldy i_2 iny sty i - //SEG548 [243] if(*((byte*) current_piece_gfx#15 + (byte) lock_current::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto lock_current::@3 -- pbuz1_derefidx_vbuz2_eq_0_then_la1 + //SEG550 [243] if(*((byte*) current_piece_gfx#15 + (byte) lock_current::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto lock_current::@3 -- pbuz1_derefidx_vbuz2_eq_0_then_la1 ldy i_2 lda (current_piece_gfx),y cmp #0 beq b3 jmp b4 - //SEG549 lock_current::@4 + //SEG551 lock_current::@4 b4: - //SEG550 [244] *((byte*) lock_current::playfield_line#0 + (byte) lock_current::col#2) ← (byte) current_piece_color#11 -- pbuz1_derefidx_vbuz2=vbuz3 + //SEG552 [244] *((byte*) lock_current::playfield_line#0 + (byte) lock_current::col#2) ← (byte) current_piece_color#11 -- pbuz1_derefidx_vbuz2=vbuz3 lda current_piece_color ldy col sta (playfield_line),y jmp b3 - //SEG551 lock_current::@3 + //SEG553 lock_current::@3 b3: - //SEG552 [245] (byte) lock_current::col#1 ← ++ (byte) lock_current::col#2 -- vbuz1=_inc_vbuz1 + //SEG554 [245] (byte) lock_current::col#1 ← ++ (byte) lock_current::col#2 -- vbuz1=_inc_vbuz1 inc col - //SEG553 [246] (byte) lock_current::c#1 ← ++ (byte) lock_current::c#2 -- vbuz1=_inc_vbuz1 + //SEG555 [246] (byte) lock_current::c#1 ← ++ (byte) lock_current::c#2 -- vbuz1=_inc_vbuz1 inc c - //SEG554 [247] if((byte) lock_current::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto lock_current::@8 -- vbuz1_neq_vbuc1_then_la1 + //SEG556 [247] if((byte) lock_current::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto lock_current::@8 -- vbuz1_neq_vbuc1_then_la1 lda c cmp #4 bne b8 jmp b5 - //SEG555 lock_current::@5 + //SEG557 lock_current::@5 b5: - //SEG556 [248] (byte) lock_current::ypos2#1 ← (byte) lock_current::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 -- vbuz1=vbuz1_plus_2 + //SEG558 [248] (byte) lock_current::ypos2#1 ← (byte) lock_current::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 -- vbuz1=vbuz1_plus_2 lda ypos2 clc adc #2 sta ypos2 - //SEG557 [249] (byte) lock_current::l#1 ← ++ (byte) lock_current::l#6 -- vbuz1=_inc_vbuz1 + //SEG559 [249] (byte) lock_current::l#1 ← ++ (byte) lock_current::l#6 -- vbuz1=_inc_vbuz1 inc l - //SEG558 [250] if((byte) lock_current::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto lock_current::@7 -- vbuz1_neq_vbuc1_then_la1 + //SEG560 [250] if((byte) lock_current::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto lock_current::@7 -- vbuz1_neq_vbuc1_then_la1 lda l cmp #4 bne b7 jmp breturn - //SEG559 lock_current::@return + //SEG561 lock_current::@return breturn: - //SEG560 [251] return + //SEG562 [251] return rts - //SEG561 lock_current::@7 + //SEG563 lock_current::@7 b7: - //SEG562 [252] (byte~) lock_current::i#7 ← (byte) lock_current::i#1 -- vbuz1=vbuz2 + //SEG564 [252] (byte~) lock_current::i#7 ← (byte) lock_current::i#1 -- vbuz1=vbuz2 lda i sta i_7 - //SEG563 [238] phi from lock_current::@7 to lock_current::@1 [phi:lock_current::@7->lock_current::@1] + //SEG565 [238] phi from lock_current::@7 to lock_current::@1 [phi:lock_current::@7->lock_current::@1] b1_from_b7: - //SEG564 [238] phi (byte) lock_current::l#6 = (byte) lock_current::l#1 [phi:lock_current::@7->lock_current::@1#0] -- register_copy - //SEG565 [238] phi (byte) lock_current::i#3 = (byte~) lock_current::i#7 [phi:lock_current::@7->lock_current::@1#1] -- register_copy - //SEG566 [238] phi (byte) lock_current::ypos2#2 = (byte) lock_current::ypos2#1 [phi:lock_current::@7->lock_current::@1#2] -- register_copy + //SEG566 [238] phi (byte) lock_current::l#6 = (byte) lock_current::l#1 [phi:lock_current::@7->lock_current::@1#0] -- register_copy + //SEG567 [238] phi (byte) lock_current::i#3 = (byte~) lock_current::i#7 [phi:lock_current::@7->lock_current::@1#1] -- register_copy + //SEG568 [238] phi (byte) lock_current::ypos2#2 = (byte) lock_current::ypos2#1 [phi:lock_current::@7->lock_current::@1#2] -- register_copy jmp b1 - //SEG567 lock_current::@8 + //SEG569 lock_current::@8 b8: - //SEG568 [253] (byte~) lock_current::i#9 ← (byte) lock_current::i#1 -- vbuz1=vbuz2 + //SEG570 [253] (byte~) lock_current::i#9 ← (byte) lock_current::i#1 -- vbuz1=vbuz2 lda i sta i_9 - //SEG569 [241] phi from lock_current::@8 to lock_current::@2 [phi:lock_current::@8->lock_current::@2] + //SEG571 [241] phi from lock_current::@8 to lock_current::@2 [phi:lock_current::@8->lock_current::@2] b2_from_b8: - //SEG570 [241] phi (byte) lock_current::c#2 = (byte) lock_current::c#1 [phi:lock_current::@8->lock_current::@2#0] -- register_copy - //SEG571 [241] phi (byte) lock_current::col#2 = (byte) lock_current::col#1 [phi:lock_current::@8->lock_current::@2#1] -- register_copy - //SEG572 [241] phi (byte) lock_current::i#2 = (byte~) lock_current::i#9 [phi:lock_current::@8->lock_current::@2#2] -- register_copy + //SEG572 [241] phi (byte) lock_current::c#2 = (byte) lock_current::c#1 [phi:lock_current::@8->lock_current::@2#0] -- register_copy + //SEG573 [241] phi (byte) lock_current::col#2 = (byte) lock_current::col#1 [phi:lock_current::@8->lock_current::@2#1] -- register_copy + //SEG574 [241] phi (byte) lock_current::i#2 = (byte~) lock_current::i#9 [phi:lock_current::@8->lock_current::@2#2] -- register_copy jmp b2 } -//SEG573 keyboard_event_pressed +//SEG575 keyboard_event_pressed keyboard_event_pressed: { .label _0 = $7c .label _1 = $7e @@ -8095,66 +8142,66 @@ keyboard_event_pressed: { .label keycode = $39 .label return_11 = $7f .label return_12 = $6d - //SEG574 [255] (byte~) keyboard_event_pressed::$0 ← (byte) keyboard_event_pressed::keycode#5 >> (byte/signed byte/word/signed word/dword/signed dword) 3 -- vbuz1=vbuz2_ror_3 + //SEG576 [255] (byte~) keyboard_event_pressed::$0 ← (byte) keyboard_event_pressed::keycode#5 >> (byte/signed byte/word/signed word/dword/signed dword) 3 -- vbuz1=vbuz2_ror_3 lda keycode lsr lsr lsr sta _0 - //SEG575 [256] (byte) keyboard_event_pressed::row_bits#0 ← *((const byte[8]) keyboard_scan_values#0 + (byte~) keyboard_event_pressed::$0) -- vbuz1=pbuc1_derefidx_vbuz2 + //SEG577 [256] (byte) keyboard_event_pressed::row_bits#0 ← *((const byte[8]) keyboard_scan_values#0 + (byte~) keyboard_event_pressed::$0) -- vbuz1=pbuc1_derefidx_vbuz2 ldy _0 lda keyboard_scan_values,y sta row_bits - //SEG576 [257] (byte~) keyboard_event_pressed::$1 ← (byte) keyboard_event_pressed::keycode#5 & (byte/signed byte/word/signed word/dword/signed dword) 7 -- vbuz1=vbuz2_band_vbuc1 + //SEG578 [257] (byte~) keyboard_event_pressed::$1 ← (byte) keyboard_event_pressed::keycode#5 & (byte/signed byte/word/signed word/dword/signed dword) 7 -- vbuz1=vbuz2_band_vbuc1 lda #7 and keycode sta _1 - //SEG577 [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) -- vbuz1=vbuz2_band_pbuc1_derefidx_vbuz3 + //SEG579 [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) -- vbuz1=vbuz2_band_pbuc1_derefidx_vbuz3 lda row_bits ldy _1 and keyboard_matrix_col_bitmask,y sta return_11 jmp breturn - //SEG578 keyboard_event_pressed::@return + //SEG580 keyboard_event_pressed::@return breturn: - //SEG579 [259] return + //SEG581 [259] return rts } -//SEG580 keyboard_event_get +//SEG582 keyboard_event_get keyboard_event_get: { .label return = $3a .label return_3 = $4d - //SEG581 [260] if((byte) keyboard_events_size#13==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_get::@return -- vbuz1_eq_0_then_la1 + //SEG583 [260] if((byte) keyboard_events_size#13==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_get::@return -- vbuz1_eq_0_then_la1 lda keyboard_events_size cmp #0 beq breturn_from_keyboard_event_get jmp b3 - //SEG582 keyboard_event_get::@3 + //SEG584 keyboard_event_get::@3 b3: - //SEG583 [261] (byte) keyboard_events_size#4 ← -- (byte) keyboard_events_size#13 -- vbuz1=_dec_vbuz1 + //SEG585 [261] (byte) keyboard_events_size#4 ← -- (byte) keyboard_events_size#13 -- vbuz1=_dec_vbuz1 dec keyboard_events_size - //SEG584 [262] (byte) keyboard_event_get::return#1 ← *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#4) -- vbuz1=pbuc1_derefidx_vbuz2 + //SEG586 [262] (byte) keyboard_event_get::return#1 ← *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#4) -- vbuz1=pbuc1_derefidx_vbuz2 ldy keyboard_events_size lda keyboard_events,y sta return - //SEG585 [263] phi from keyboard_event_get::@3 to keyboard_event_get::@return [phi:keyboard_event_get::@3->keyboard_event_get::@return] + //SEG587 [263] phi from keyboard_event_get::@3 to keyboard_event_get::@return [phi:keyboard_event_get::@3->keyboard_event_get::@return] breturn_from_b3: - //SEG586 [263] phi (byte) keyboard_events_size#16 = (byte) keyboard_events_size#4 [phi:keyboard_event_get::@3->keyboard_event_get::@return#0] -- register_copy - //SEG587 [263] phi (byte) keyboard_event_get::return#2 = (byte) keyboard_event_get::return#1 [phi:keyboard_event_get::@3->keyboard_event_get::@return#1] -- register_copy + //SEG588 [263] phi (byte) keyboard_events_size#16 = (byte) keyboard_events_size#4 [phi:keyboard_event_get::@3->keyboard_event_get::@return#0] -- register_copy + //SEG589 [263] phi (byte) keyboard_event_get::return#2 = (byte) keyboard_event_get::return#1 [phi:keyboard_event_get::@3->keyboard_event_get::@return#1] -- register_copy jmp breturn - //SEG588 [263] phi from keyboard_event_get to keyboard_event_get::@return [phi:keyboard_event_get->keyboard_event_get::@return] + //SEG590 [263] phi from keyboard_event_get to keyboard_event_get::@return [phi:keyboard_event_get->keyboard_event_get::@return] breturn_from_keyboard_event_get: - //SEG589 [263] phi (byte) keyboard_events_size#16 = (byte) keyboard_events_size#13 [phi:keyboard_event_get->keyboard_event_get::@return#0] -- register_copy - //SEG590 [263] phi (byte) keyboard_event_get::return#2 = (byte/word/signed word/dword/signed dword) 255 [phi:keyboard_event_get->keyboard_event_get::@return#1] -- vbuz1=vbuc1 + //SEG591 [263] phi (byte) keyboard_events_size#16 = (byte) keyboard_events_size#13 [phi:keyboard_event_get->keyboard_event_get::@return#0] -- register_copy + //SEG592 [263] phi (byte) keyboard_event_get::return#2 = (byte/word/signed word/dword/signed dword) 255 [phi:keyboard_event_get->keyboard_event_get::@return#1] -- vbuz1=vbuc1 lda #$ff sta return jmp breturn - //SEG591 keyboard_event_get::@return + //SEG593 keyboard_event_get::@return breturn: - //SEG592 [264] return + //SEG594 [264] return rts } -//SEG593 keyboard_event_scan +//SEG595 keyboard_event_scan keyboard_event_scan: { .label _3 = $8b .label _4 = $8c @@ -8168,430 +8215,352 @@ keyboard_event_scan: { .label row = $3b .label col = $3c .label event_type = $8d - //SEG594 [266] phi from keyboard_event_scan to keyboard_event_scan::@1 [phi:keyboard_event_scan->keyboard_event_scan::@1] + //SEG596 [266] phi from keyboard_event_scan to keyboard_event_scan::@1 [phi:keyboard_event_scan->keyboard_event_scan::@1] b1_from_keyboard_event_scan: - //SEG595 [266] phi (byte) keyboard_events_size#29 = (byte) keyboard_events_size#19 [phi:keyboard_event_scan->keyboard_event_scan::@1#0] -- register_copy - //SEG596 [266] phi (byte) keyboard_event_scan::keycode#11 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:keyboard_event_scan->keyboard_event_scan::@1#1] -- vbuz1=vbuc1 + //SEG597 [266] phi (byte) keyboard_events_size#29 = (byte) keyboard_events_size#19 [phi:keyboard_event_scan->keyboard_event_scan::@1#0] -- register_copy + //SEG598 [266] phi (byte) keyboard_event_scan::keycode#11 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:keyboard_event_scan->keyboard_event_scan::@1#1] -- vbuz1=vbuc1 lda #0 sta keycode - //SEG597 [266] phi (byte) keyboard_event_scan::row#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:keyboard_event_scan->keyboard_event_scan::@1#2] -- vbuz1=vbuc1 + //SEG599 [266] phi (byte) keyboard_event_scan::row#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:keyboard_event_scan->keyboard_event_scan::@1#2] -- vbuz1=vbuc1 lda #0 sta row jmp b1 - //SEG598 [266] phi from keyboard_event_scan::@3 to keyboard_event_scan::@1 [phi:keyboard_event_scan::@3->keyboard_event_scan::@1] + //SEG600 [266] phi from keyboard_event_scan::@3 to keyboard_event_scan::@1 [phi:keyboard_event_scan::@3->keyboard_event_scan::@1] b1_from_b3: - //SEG599 [266] phi (byte) keyboard_events_size#29 = (byte) keyboard_events_size#13 [phi:keyboard_event_scan::@3->keyboard_event_scan::@1#0] -- register_copy - //SEG600 [266] phi (byte) keyboard_event_scan::keycode#11 = (byte) keyboard_event_scan::keycode#14 [phi:keyboard_event_scan::@3->keyboard_event_scan::@1#1] -- register_copy - //SEG601 [266] phi (byte) keyboard_event_scan::row#2 = (byte) keyboard_event_scan::row#1 [phi:keyboard_event_scan::@3->keyboard_event_scan::@1#2] -- register_copy + //SEG601 [266] phi (byte) keyboard_events_size#29 = (byte) keyboard_events_size#13 [phi:keyboard_event_scan::@3->keyboard_event_scan::@1#0] -- register_copy + //SEG602 [266] phi (byte) keyboard_event_scan::keycode#11 = (byte) keyboard_event_scan::keycode#14 [phi:keyboard_event_scan::@3->keyboard_event_scan::@1#1] -- register_copy + //SEG603 [266] phi (byte) keyboard_event_scan::row#2 = (byte) keyboard_event_scan::row#1 [phi:keyboard_event_scan::@3->keyboard_event_scan::@1#2] -- register_copy jmp b1 - //SEG602 keyboard_event_scan::@1 + //SEG604 keyboard_event_scan::@1 b1: - //SEG603 [267] (byte) keyboard_matrix_read::rowid#0 ← (byte) keyboard_event_scan::row#2 -- vbuz1=vbuz2 + //SEG605 [267] (byte) keyboard_matrix_read::rowid#0 ← (byte) keyboard_event_scan::row#2 -- vbuz1=vbuz2 lda row sta keyboard_matrix_read.rowid - //SEG604 [268] call keyboard_matrix_read + //SEG606 [268] call keyboard_matrix_read jsr keyboard_matrix_read - //SEG605 [269] (byte) keyboard_matrix_read::return#2 ← (byte) keyboard_matrix_read::return#0 -- vbuz1=vbuz2 + //SEG607 [269] (byte) keyboard_matrix_read::return#2 ← (byte) keyboard_matrix_read::return#0 -- vbuz1=vbuz2 lda keyboard_matrix_read.return sta keyboard_matrix_read.return_2 jmp b25 - //SEG606 keyboard_event_scan::@25 + //SEG608 keyboard_event_scan::@25 b25: - //SEG607 [270] (byte) keyboard_event_scan::row_scan#0 ← (byte) keyboard_matrix_read::return#2 -- vbuz1=vbuz2 + //SEG609 [270] (byte) keyboard_event_scan::row_scan#0 ← (byte) keyboard_matrix_read::return#2 -- vbuz1=vbuz2 lda keyboard_matrix_read.return_2 sta row_scan - //SEG608 [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 -- vbuz1_neq_pbuc1_derefidx_vbuz2_then_la1 + //SEG610 [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 -- vbuz1_neq_pbuc1_derefidx_vbuz2_then_la1 lda row_scan ldy row cmp keyboard_scan_values,y bne b4_from_b25 jmp b13 - //SEG609 keyboard_event_scan::@13 + //SEG611 keyboard_event_scan::@13 b13: - //SEG610 [272] (byte) keyboard_event_scan::keycode#1 ← (byte) keyboard_event_scan::keycode#11 + (byte/signed byte/word/signed word/dword/signed dword) 8 -- vbuz1=vbuz1_plus_vbuc1 + //SEG612 [272] (byte) keyboard_event_scan::keycode#1 ← (byte) keyboard_event_scan::keycode#11 + (byte/signed byte/word/signed word/dword/signed dword) 8 -- vbuz1=vbuz1_plus_vbuc1 lda #8 clc adc keycode sta keycode - //SEG611 [273] phi from keyboard_event_scan::@13 keyboard_event_scan::@19 to keyboard_event_scan::@3 [phi:keyboard_event_scan::@13/keyboard_event_scan::@19->keyboard_event_scan::@3] + //SEG613 [273] phi from keyboard_event_scan::@13 keyboard_event_scan::@19 to keyboard_event_scan::@3 [phi:keyboard_event_scan::@13/keyboard_event_scan::@19->keyboard_event_scan::@3] b3_from_b13: b3_from_b19: - //SEG612 [273] phi (byte) keyboard_events_size#13 = (byte) keyboard_events_size#29 [phi:keyboard_event_scan::@13/keyboard_event_scan::@19->keyboard_event_scan::@3#0] -- register_copy - //SEG613 [273] phi (byte) keyboard_event_scan::keycode#14 = (byte) keyboard_event_scan::keycode#1 [phi:keyboard_event_scan::@13/keyboard_event_scan::@19->keyboard_event_scan::@3#1] -- register_copy + //SEG614 [273] phi (byte) keyboard_events_size#13 = (byte) keyboard_events_size#29 [phi:keyboard_event_scan::@13/keyboard_event_scan::@19->keyboard_event_scan::@3#0] -- register_copy + //SEG615 [273] phi (byte) keyboard_event_scan::keycode#14 = (byte) keyboard_event_scan::keycode#1 [phi:keyboard_event_scan::@13/keyboard_event_scan::@19->keyboard_event_scan::@3#1] -- register_copy jmp b3 - //SEG614 keyboard_event_scan::@3 + //SEG616 keyboard_event_scan::@3 b3: - //SEG615 [274] (byte) keyboard_event_scan::row#1 ← ++ (byte) keyboard_event_scan::row#2 -- vbuz1=_inc_vbuz1 + //SEG617 [274] (byte) keyboard_event_scan::row#1 ← ++ (byte) keyboard_event_scan::row#2 -- vbuz1=_inc_vbuz1 inc row - //SEG616 [275] if((byte) keyboard_event_scan::row#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto keyboard_event_scan::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG618 [275] if((byte) keyboard_event_scan::row#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto keyboard_event_scan::@1 -- vbuz1_neq_vbuc1_then_la1 lda row cmp #8 bne b1_from_b3 - //SEG617 [276] phi from keyboard_event_scan::@3 to keyboard_event_scan::@20 [phi:keyboard_event_scan::@3->keyboard_event_scan::@20] + //SEG619 [276] phi from keyboard_event_scan::@3 to keyboard_event_scan::@20 [phi:keyboard_event_scan::@3->keyboard_event_scan::@20] b20_from_b3: jmp b20 - //SEG618 keyboard_event_scan::@20 + //SEG620 keyboard_event_scan::@20 b20: - //SEG619 [277] call keyboard_event_pressed - //SEG620 [254] phi from keyboard_event_scan::@20 to keyboard_event_pressed [phi:keyboard_event_scan::@20->keyboard_event_pressed] + //SEG621 [277] call keyboard_event_pressed + //SEG622 [254] phi from keyboard_event_scan::@20 to keyboard_event_pressed [phi:keyboard_event_scan::@20->keyboard_event_pressed] keyboard_event_pressed_from_b20: - //SEG621 [254] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_LSHIFT#0 [phi:keyboard_event_scan::@20->keyboard_event_pressed#0] -- vbuz1=vbuc1 + //SEG623 [254] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_LSHIFT#0 [phi:keyboard_event_scan::@20->keyboard_event_pressed#0] -- vbuz1=vbuc1 lda #KEY_LSHIFT sta keyboard_event_pressed.keycode jsr keyboard_event_pressed - //SEG622 [278] (byte) keyboard_event_pressed::return#0 ← (byte) keyboard_event_pressed::return#11 -- vbuz1=vbuz2 + //SEG624 [278] (byte) keyboard_event_pressed::return#0 ← (byte) keyboard_event_pressed::return#11 -- vbuz1=vbuz2 lda keyboard_event_pressed.return_11 sta keyboard_event_pressed.return jmp b26 - //SEG623 keyboard_event_scan::@26 + //SEG625 keyboard_event_scan::@26 b26: - //SEG624 [279] (byte~) keyboard_event_scan::$14 ← (byte) keyboard_event_pressed::return#0 -- vbuz1=vbuz2 + //SEG626 [279] (byte~) keyboard_event_scan::$14 ← (byte) keyboard_event_pressed::return#0 -- vbuz1=vbuz2 lda keyboard_event_pressed.return sta _14 - //SEG625 [280] if((byte~) keyboard_event_scan::$14==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@9 -- vbuz1_eq_0_then_la1 + //SEG627 [280] if((byte~) keyboard_event_scan::$14==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@9 -- vbuz1_eq_0_then_la1 lda _14 cmp #0 beq b9_from_b26 - //SEG626 [281] phi from keyboard_event_scan::@26 to keyboard_event_scan::@21 [phi:keyboard_event_scan::@26->keyboard_event_scan::@21] + //SEG628 [281] phi from keyboard_event_scan::@26 to keyboard_event_scan::@21 [phi:keyboard_event_scan::@26->keyboard_event_scan::@21] b21_from_b26: jmp b21 - //SEG627 keyboard_event_scan::@21 + //SEG629 keyboard_event_scan::@21 b21: - //SEG628 [282] phi from keyboard_event_scan::@21 keyboard_event_scan::@26 to keyboard_event_scan::@9 [phi:keyboard_event_scan::@21/keyboard_event_scan::@26->keyboard_event_scan::@9] + //SEG630 [282] phi from keyboard_event_scan::@21 keyboard_event_scan::@26 to keyboard_event_scan::@9 [phi:keyboard_event_scan::@21/keyboard_event_scan::@26->keyboard_event_scan::@9] b9_from_b21: b9_from_b26: jmp b9 - //SEG629 keyboard_event_scan::@9 + //SEG631 keyboard_event_scan::@9 b9: - //SEG630 [283] call keyboard_event_pressed - //SEG631 [254] phi from keyboard_event_scan::@9 to keyboard_event_pressed [phi:keyboard_event_scan::@9->keyboard_event_pressed] + //SEG632 [283] call keyboard_event_pressed + //SEG633 [254] phi from keyboard_event_scan::@9 to keyboard_event_pressed [phi:keyboard_event_scan::@9->keyboard_event_pressed] keyboard_event_pressed_from_b9: - //SEG632 [254] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_RSHIFT#0 [phi:keyboard_event_scan::@9->keyboard_event_pressed#0] -- vbuz1=vbuc1 + //SEG634 [254] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_RSHIFT#0 [phi:keyboard_event_scan::@9->keyboard_event_pressed#0] -- vbuz1=vbuc1 lda #KEY_RSHIFT sta keyboard_event_pressed.keycode jsr keyboard_event_pressed - //SEG633 [284] (byte) keyboard_event_pressed::return#1 ← (byte) keyboard_event_pressed::return#11 -- vbuz1=vbuz2 + //SEG635 [284] (byte) keyboard_event_pressed::return#1 ← (byte) keyboard_event_pressed::return#11 -- vbuz1=vbuz2 lda keyboard_event_pressed.return_11 sta keyboard_event_pressed.return_1 jmp b27 - //SEG634 keyboard_event_scan::@27 + //SEG636 keyboard_event_scan::@27 b27: - //SEG635 [285] (byte~) keyboard_event_scan::$18 ← (byte) keyboard_event_pressed::return#1 -- vbuz1=vbuz2 + //SEG637 [285] (byte~) keyboard_event_scan::$18 ← (byte) keyboard_event_pressed::return#1 -- vbuz1=vbuz2 lda keyboard_event_pressed.return_1 sta _18 - //SEG636 [286] if((byte~) keyboard_event_scan::$18==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@10 -- vbuz1_eq_0_then_la1 + //SEG638 [286] if((byte~) keyboard_event_scan::$18==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@10 -- vbuz1_eq_0_then_la1 lda _18 cmp #0 beq b10_from_b27 - //SEG637 [287] phi from keyboard_event_scan::@27 to keyboard_event_scan::@22 [phi:keyboard_event_scan::@27->keyboard_event_scan::@22] + //SEG639 [287] phi from keyboard_event_scan::@27 to keyboard_event_scan::@22 [phi:keyboard_event_scan::@27->keyboard_event_scan::@22] b22_from_b27: jmp b22 - //SEG638 keyboard_event_scan::@22 + //SEG640 keyboard_event_scan::@22 b22: - //SEG639 [288] phi from keyboard_event_scan::@22 keyboard_event_scan::@27 to keyboard_event_scan::@10 [phi:keyboard_event_scan::@22/keyboard_event_scan::@27->keyboard_event_scan::@10] + //SEG641 [288] phi from keyboard_event_scan::@22 keyboard_event_scan::@27 to keyboard_event_scan::@10 [phi:keyboard_event_scan::@22/keyboard_event_scan::@27->keyboard_event_scan::@10] b10_from_b22: b10_from_b27: jmp b10 - //SEG640 keyboard_event_scan::@10 + //SEG642 keyboard_event_scan::@10 b10: - //SEG641 [289] call keyboard_event_pressed - //SEG642 [254] phi from keyboard_event_scan::@10 to keyboard_event_pressed [phi:keyboard_event_scan::@10->keyboard_event_pressed] + //SEG643 [289] call keyboard_event_pressed + //SEG644 [254] phi from keyboard_event_scan::@10 to keyboard_event_pressed [phi:keyboard_event_scan::@10->keyboard_event_pressed] keyboard_event_pressed_from_b10: - //SEG643 [254] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_CTRL#0 [phi:keyboard_event_scan::@10->keyboard_event_pressed#0] -- vbuz1=vbuc1 + //SEG645 [254] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_CTRL#0 [phi:keyboard_event_scan::@10->keyboard_event_pressed#0] -- vbuz1=vbuc1 lda #KEY_CTRL sta keyboard_event_pressed.keycode jsr keyboard_event_pressed - //SEG644 [290] (byte) keyboard_event_pressed::return#2 ← (byte) keyboard_event_pressed::return#11 -- vbuz1=vbuz2 + //SEG646 [290] (byte) keyboard_event_pressed::return#2 ← (byte) keyboard_event_pressed::return#11 -- vbuz1=vbuz2 lda keyboard_event_pressed.return_11 sta keyboard_event_pressed.return_2 jmp b28 - //SEG645 keyboard_event_scan::@28 + //SEG647 keyboard_event_scan::@28 b28: - //SEG646 [291] (byte~) keyboard_event_scan::$22 ← (byte) keyboard_event_pressed::return#2 -- vbuz1=vbuz2 + //SEG648 [291] (byte~) keyboard_event_scan::$22 ← (byte) keyboard_event_pressed::return#2 -- vbuz1=vbuz2 lda keyboard_event_pressed.return_2 sta _22 - //SEG647 [292] if((byte~) keyboard_event_scan::$22==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@11 -- vbuz1_eq_0_then_la1 + //SEG649 [292] if((byte~) keyboard_event_scan::$22==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@11 -- vbuz1_eq_0_then_la1 lda _22 cmp #0 beq b11_from_b28 - //SEG648 [293] phi from keyboard_event_scan::@28 to keyboard_event_scan::@23 [phi:keyboard_event_scan::@28->keyboard_event_scan::@23] + //SEG650 [293] phi from keyboard_event_scan::@28 to keyboard_event_scan::@23 [phi:keyboard_event_scan::@28->keyboard_event_scan::@23] b23_from_b28: jmp b23 - //SEG649 keyboard_event_scan::@23 + //SEG651 keyboard_event_scan::@23 b23: - //SEG650 [294] phi from keyboard_event_scan::@23 keyboard_event_scan::@28 to keyboard_event_scan::@11 [phi:keyboard_event_scan::@23/keyboard_event_scan::@28->keyboard_event_scan::@11] + //SEG652 [294] phi from keyboard_event_scan::@23 keyboard_event_scan::@28 to keyboard_event_scan::@11 [phi:keyboard_event_scan::@23/keyboard_event_scan::@28->keyboard_event_scan::@11] b11_from_b23: b11_from_b28: jmp b11 - //SEG651 keyboard_event_scan::@11 + //SEG653 keyboard_event_scan::@11 b11: - //SEG652 [295] call keyboard_event_pressed - //SEG653 [254] phi from keyboard_event_scan::@11 to keyboard_event_pressed [phi:keyboard_event_scan::@11->keyboard_event_pressed] + //SEG654 [295] call keyboard_event_pressed + //SEG655 [254] phi from keyboard_event_scan::@11 to keyboard_event_pressed [phi:keyboard_event_scan::@11->keyboard_event_pressed] keyboard_event_pressed_from_b11: - //SEG654 [254] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_COMMODORE#0 [phi:keyboard_event_scan::@11->keyboard_event_pressed#0] -- vbuz1=vbuc1 + //SEG656 [254] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_COMMODORE#0 [phi:keyboard_event_scan::@11->keyboard_event_pressed#0] -- vbuz1=vbuc1 lda #KEY_COMMODORE sta keyboard_event_pressed.keycode jsr keyboard_event_pressed - //SEG655 [296] (byte) keyboard_event_pressed::return#10 ← (byte) keyboard_event_pressed::return#11 -- vbuz1=vbuz2 + //SEG657 [296] (byte) keyboard_event_pressed::return#10 ← (byte) keyboard_event_pressed::return#11 -- vbuz1=vbuz2 lda keyboard_event_pressed.return_11 sta keyboard_event_pressed.return_10 jmp b29 - //SEG656 keyboard_event_scan::@29 + //SEG658 keyboard_event_scan::@29 b29: - //SEG657 [297] (byte~) keyboard_event_scan::$26 ← (byte) keyboard_event_pressed::return#10 -- vbuz1=vbuz2 + //SEG659 [297] (byte~) keyboard_event_scan::$26 ← (byte) keyboard_event_pressed::return#10 -- vbuz1=vbuz2 lda keyboard_event_pressed.return_10 sta _26 - //SEG658 [298] if((byte~) keyboard_event_scan::$26==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@return -- vbuz1_eq_0_then_la1 + //SEG660 [298] if((byte~) keyboard_event_scan::$26==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@return -- vbuz1_eq_0_then_la1 lda _26 cmp #0 beq breturn - //SEG659 [299] phi from keyboard_event_scan::@29 to keyboard_event_scan::@24 [phi:keyboard_event_scan::@29->keyboard_event_scan::@24] + //SEG661 [299] phi from keyboard_event_scan::@29 to keyboard_event_scan::@24 [phi:keyboard_event_scan::@29->keyboard_event_scan::@24] b24_from_b29: jmp b24 - //SEG660 keyboard_event_scan::@24 + //SEG662 keyboard_event_scan::@24 b24: jmp breturn - //SEG661 keyboard_event_scan::@return + //SEG663 keyboard_event_scan::@return breturn: - //SEG662 [300] return + //SEG664 [300] return rts - //SEG663 [301] phi from keyboard_event_scan::@25 to keyboard_event_scan::@4 [phi:keyboard_event_scan::@25->keyboard_event_scan::@4] + //SEG665 [301] phi from keyboard_event_scan::@25 to keyboard_event_scan::@4 [phi:keyboard_event_scan::@25->keyboard_event_scan::@4] b4_from_b25: - //SEG664 [301] phi (byte) keyboard_events_size#10 = (byte) keyboard_events_size#29 [phi:keyboard_event_scan::@25->keyboard_event_scan::@4#0] -- register_copy - //SEG665 [301] phi (byte) keyboard_event_scan::keycode#10 = (byte) keyboard_event_scan::keycode#11 [phi:keyboard_event_scan::@25->keyboard_event_scan::@4#1] -- register_copy - //SEG666 [301] phi (byte) keyboard_event_scan::col#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:keyboard_event_scan::@25->keyboard_event_scan::@4#2] -- vbuz1=vbuc1 + //SEG666 [301] phi (byte) keyboard_events_size#10 = (byte) keyboard_events_size#29 [phi:keyboard_event_scan::@25->keyboard_event_scan::@4#0] -- register_copy + //SEG667 [301] phi (byte) keyboard_event_scan::keycode#10 = (byte) keyboard_event_scan::keycode#11 [phi:keyboard_event_scan::@25->keyboard_event_scan::@4#1] -- register_copy + //SEG668 [301] phi (byte) keyboard_event_scan::col#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:keyboard_event_scan::@25->keyboard_event_scan::@4#2] -- vbuz1=vbuc1 lda #0 sta col jmp b4 - //SEG667 [301] phi from keyboard_event_scan::@5 to keyboard_event_scan::@4 [phi:keyboard_event_scan::@5->keyboard_event_scan::@4] + //SEG669 [301] phi from keyboard_event_scan::@5 to keyboard_event_scan::@4 [phi:keyboard_event_scan::@5->keyboard_event_scan::@4] b4_from_b5: - //SEG668 [301] phi (byte) keyboard_events_size#10 = (byte) keyboard_events_size#30 [phi:keyboard_event_scan::@5->keyboard_event_scan::@4#0] -- register_copy - //SEG669 [301] phi (byte) keyboard_event_scan::keycode#10 = (byte) keyboard_event_scan::keycode#15 [phi:keyboard_event_scan::@5->keyboard_event_scan::@4#1] -- register_copy - //SEG670 [301] phi (byte) keyboard_event_scan::col#2 = (byte) keyboard_event_scan::col#1 [phi:keyboard_event_scan::@5->keyboard_event_scan::@4#2] -- register_copy + //SEG670 [301] phi (byte) keyboard_events_size#10 = (byte) keyboard_events_size#30 [phi:keyboard_event_scan::@5->keyboard_event_scan::@4#0] -- register_copy + //SEG671 [301] phi (byte) keyboard_event_scan::keycode#10 = (byte) keyboard_event_scan::keycode#15 [phi:keyboard_event_scan::@5->keyboard_event_scan::@4#1] -- register_copy + //SEG672 [301] phi (byte) keyboard_event_scan::col#2 = (byte) keyboard_event_scan::col#1 [phi:keyboard_event_scan::@5->keyboard_event_scan::@4#2] -- register_copy jmp b4 - //SEG671 keyboard_event_scan::@4 + //SEG673 keyboard_event_scan::@4 b4: - //SEG672 [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) -- vbuz1=vbuz2_bxor_pbuc1_derefidx_vbuz3 + //SEG674 [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) -- vbuz1=vbuz2_bxor_pbuc1_derefidx_vbuz3 lda row_scan ldy row eor keyboard_scan_values,y sta _3 - //SEG673 [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) -- vbuz1=vbuz2_band_pbuc1_derefidx_vbuz3 + //SEG675 [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) -- vbuz1=vbuz2_band_pbuc1_derefidx_vbuz3 lda _3 ldy col and keyboard_matrix_col_bitmask,y sta _4 - //SEG674 [304] if((byte~) keyboard_event_scan::$4==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@5 -- vbuz1_eq_0_then_la1 + //SEG676 [304] if((byte~) keyboard_event_scan::$4==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@5 -- vbuz1_eq_0_then_la1 lda _4 cmp #0 beq b5_from_b4 jmp b15 - //SEG675 keyboard_event_scan::@15 + //SEG677 keyboard_event_scan::@15 b15: - //SEG676 [305] if((byte) keyboard_events_size#10==(byte/signed byte/word/signed word/dword/signed dword) 8) goto keyboard_event_scan::@5 -- vbuz1_eq_vbuc1_then_la1 + //SEG678 [305] if((byte) keyboard_events_size#10==(byte/signed byte/word/signed word/dword/signed dword) 8) goto keyboard_event_scan::@5 -- vbuz1_eq_vbuc1_then_la1 lda keyboard_events_size cmp #8 beq b5_from_b15 jmp b16 - //SEG677 keyboard_event_scan::@16 + //SEG679 keyboard_event_scan::@16 b16: - //SEG678 [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) -- vbuz1=vbuz2_band_pbuc1_derefidx_vbuz3 + //SEG680 [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) -- vbuz1=vbuz2_band_pbuc1_derefidx_vbuz3 lda row_scan ldy col and keyboard_matrix_col_bitmask,y sta event_type - //SEG679 [307] if((byte) keyboard_event_scan::event_type#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@7 -- vbuz1_eq_0_then_la1 + //SEG681 [307] if((byte) keyboard_event_scan::event_type#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@7 -- vbuz1_eq_0_then_la1 lda event_type cmp #0 beq b7 jmp b17 - //SEG680 keyboard_event_scan::@17 + //SEG682 keyboard_event_scan::@17 b17: - //SEG681 [308] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte) keyboard_event_scan::keycode#10 -- pbuc1_derefidx_vbuz1=vbuz2 + //SEG683 [308] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte) keyboard_event_scan::keycode#10 -- pbuc1_derefidx_vbuz1=vbuz2 lda keycode ldy keyboard_events_size sta keyboard_events,y - //SEG682 [309] (byte) keyboard_events_size#2 ← ++ (byte) keyboard_events_size#10 -- vbuz1=_inc_vbuz1 + //SEG684 [309] (byte) keyboard_events_size#2 ← ++ (byte) keyboard_events_size#10 -- vbuz1=_inc_vbuz1 inc keyboard_events_size - //SEG683 [310] phi from keyboard_event_scan::@15 keyboard_event_scan::@17 keyboard_event_scan::@4 keyboard_event_scan::@7 to keyboard_event_scan::@5 [phi:keyboard_event_scan::@15/keyboard_event_scan::@17/keyboard_event_scan::@4/keyboard_event_scan::@7->keyboard_event_scan::@5] + //SEG685 [310] phi from keyboard_event_scan::@15 keyboard_event_scan::@17 keyboard_event_scan::@4 keyboard_event_scan::@7 to keyboard_event_scan::@5 [phi:keyboard_event_scan::@15/keyboard_event_scan::@17/keyboard_event_scan::@4/keyboard_event_scan::@7->keyboard_event_scan::@5] b5_from_b15: b5_from_b17: b5_from_b4: b5_from_b7: - //SEG684 [310] phi (byte) keyboard_events_size#30 = (byte) keyboard_events_size#10 [phi:keyboard_event_scan::@15/keyboard_event_scan::@17/keyboard_event_scan::@4/keyboard_event_scan::@7->keyboard_event_scan::@5#0] -- register_copy + //SEG686 [310] phi (byte) keyboard_events_size#30 = (byte) keyboard_events_size#10 [phi:keyboard_event_scan::@15/keyboard_event_scan::@17/keyboard_event_scan::@4/keyboard_event_scan::@7->keyboard_event_scan::@5#0] -- register_copy jmp b5 - //SEG685 keyboard_event_scan::@5 + //SEG687 keyboard_event_scan::@5 b5: - //SEG686 [311] (byte) keyboard_event_scan::keycode#15 ← ++ (byte) keyboard_event_scan::keycode#10 -- vbuz1=_inc_vbuz1 + //SEG688 [311] (byte) keyboard_event_scan::keycode#15 ← ++ (byte) keyboard_event_scan::keycode#10 -- vbuz1=_inc_vbuz1 inc keycode - //SEG687 [312] (byte) keyboard_event_scan::col#1 ← ++ (byte) keyboard_event_scan::col#2 -- vbuz1=_inc_vbuz1 + //SEG689 [312] (byte) keyboard_event_scan::col#1 ← ++ (byte) keyboard_event_scan::col#2 -- vbuz1=_inc_vbuz1 inc col - //SEG688 [313] if((byte) keyboard_event_scan::col#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto keyboard_event_scan::@4 -- vbuz1_neq_vbuc1_then_la1 + //SEG690 [313] if((byte) keyboard_event_scan::col#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto keyboard_event_scan::@4 -- vbuz1_neq_vbuc1_then_la1 lda col cmp #8 bne b4_from_b5 jmp b19 - //SEG689 keyboard_event_scan::@19 + //SEG691 keyboard_event_scan::@19 b19: - //SEG690 [314] *((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2) ← (byte) keyboard_event_scan::row_scan#0 -- pbuc1_derefidx_vbuz1=vbuz2 + //SEG692 [314] *((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2) ← (byte) keyboard_event_scan::row_scan#0 -- pbuc1_derefidx_vbuz1=vbuz2 lda row_scan ldy row sta keyboard_scan_values,y jmp b3_from_b19 - //SEG691 keyboard_event_scan::@7 + //SEG693 keyboard_event_scan::@7 b7: - //SEG692 [315] (byte/word/dword~) keyboard_event_scan::$11 ← (byte) keyboard_event_scan::keycode#10 | (byte/signed byte/word/signed word/dword/signed dword) 64 -- vbuz1=vbuz2_bor_vbuc1 + //SEG694 [315] (byte/word/dword~) keyboard_event_scan::$11 ← (byte) keyboard_event_scan::keycode#10 | (byte/signed byte/word/signed word/dword/signed dword) 64 -- vbuz1=vbuz2_bor_vbuc1 lda #$40 ora keycode sta _11 - //SEG693 [316] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte/word/dword~) keyboard_event_scan::$11 -- pbuc1_derefidx_vbuz1=vbuz2 + //SEG695 [316] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte/word/dword~) keyboard_event_scan::$11 -- pbuc1_derefidx_vbuz1=vbuz2 lda _11 ldy keyboard_events_size sta keyboard_events,y - //SEG694 [317] (byte) keyboard_events_size#1 ← ++ (byte) keyboard_events_size#10 -- vbuz1=_inc_vbuz1 + //SEG696 [317] (byte) keyboard_events_size#1 ← ++ (byte) keyboard_events_size#10 -- vbuz1=_inc_vbuz1 inc keyboard_events_size jmp b5_from_b7 } -//SEG695 keyboard_matrix_read +//SEG697 keyboard_matrix_read keyboard_matrix_read: { .label return = $8f .label rowid = $80 .label return_2 = $81 - //SEG696 [318] *((const byte*) CIA1_PORT_A#0) ← *((const byte[8]) keyboard_matrix_row_bitmask#0 + (byte) keyboard_matrix_read::rowid#0) -- _deref_pbuc1=pbuc2_derefidx_vbuz1 + //SEG698 [318] *((const byte*) CIA1_PORT_A#0) ← *((const byte[8]) keyboard_matrix_row_bitmask#0 + (byte) keyboard_matrix_read::rowid#0) -- _deref_pbuc1=pbuc2_derefidx_vbuz1 ldy rowid lda keyboard_matrix_row_bitmask,y sta CIA1_PORT_A - //SEG697 [319] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) -- vbuz1=_bnot__deref_pbuc1 + //SEG699 [319] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) -- vbuz1=_bnot__deref_pbuc1 lda CIA1_PORT_B eor #$ff sta return jmp breturn - //SEG698 keyboard_matrix_read::@return + //SEG700 keyboard_matrix_read::@return breturn: - //SEG699 [320] return + //SEG701 [320] return rts } -//SEG700 init -init: { - .label _5 = $90 - .label _8 = $91 - .label _14 = $92 - .label li = $40 - .label i = $3f - .label pli = $43 - .label idx = $45 - .label j = $42 - .label c = $49 - .label line = $46 - .label l = $48 - //SEG701 [322] call fill - //SEG702 [350] phi from init to fill [phi:init->fill] - fill_from_init: - //SEG703 [350] phi (byte) fill::val#3 = (byte/word/signed word/dword/signed dword) 160 [phi:init->fill#0] -- vbuz1=vbuc1 - lda #$a0 - sta fill.val - //SEG704 [350] phi (byte*) fill::addr#0 = (const byte*) SCREEN#0 [phi:init->fill#1] -- pbuz1=pbuc1 - lda #SCREEN - sta fill.addr+1 - jsr fill - //SEG705 [323] phi from init to init::@9 [phi:init->init::@9] - b9_from_init: - jmp b9 - //SEG706 init::@9 - b9: - //SEG707 [324] call fill - //SEG708 [350] phi from init::@9 to fill [phi:init::@9->fill] - fill_from_b9: - //SEG709 [350] phi (byte) fill::val#3 = (const byte) BLACK#0 [phi:init::@9->fill#0] -- vbuz1=vbuc1 - lda #BLACK - sta fill.val - //SEG710 [350] phi (byte*) fill::addr#0 = (const byte*) COLS#0 [phi:init::@9->fill#1] -- pbuz1=pbuc1 - lda #COLS - sta fill.addr+1 - jsr fill - //SEG711 [325] phi from init::@9 to init::@1 [phi:init::@9->init::@1] - b1_from_b9: - //SEG712 [325] phi (byte*) init::li#2 = (const byte*) COLS#0+(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 15 [phi:init::@9->init::@1#0] -- pbuz1=pbuc1 - lda #COLS+$28+$f - sta li+1 - //SEG713 [325] phi (byte) init::i#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:init::@9->init::@1#1] -- vbuz1=vbuc1 - lda #0 - sta i - jmp b1 - //SEG714 [325] phi from init::@1 to init::@1 [phi:init::@1->init::@1] - b1_from_b1: - //SEG715 [325] phi (byte*) init::li#2 = (byte*) init::li#1 [phi:init::@1->init::@1#0] -- register_copy - //SEG716 [325] phi (byte) init::i#2 = (byte) init::i#1 [phi:init::@1->init::@1#1] -- register_copy - jmp b1 - //SEG717 init::@1 - b1: - //SEG718 [326] (byte~) init::$5 ← (byte) init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_rol_1 - lda i - asl - sta _5 - //SEG719 [327] *((const byte*[PLAYFIELD_LINES#0+3]) screen_lines#0 + (byte~) init::$5) ← (byte*) init::li#2 -- pptc1_derefidx_vbuz1=pbuz2 - ldy _5 - lda li - sta screen_lines,y - lda li+1 - sta screen_lines+1,y - //SEG720 [328] (byte*) init::li#1 ← (byte*) init::li#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 -- pbuz1=pbuz1_plus_vbuc1 - lda li - clc - adc #$28 - sta li - bcc !+ - inc li+1 - !: - //SEG721 [329] (byte) init::i#1 ← ++ (byte) init::i#2 -- vbuz1=_inc_vbuz1 - inc i - //SEG722 [330] if((byte) init::i#1!=(const byte) PLAYFIELD_LINES#0+(byte/signed byte/word/signed word/dword/signed dword) 2+(byte/signed byte/word/signed word/dword/signed dword) 1) goto init::@1 -- vbuz1_neq_vbuc1_then_la1 - lda i - cmp #PLAYFIELD_LINES+2+1 - bne b1_from_b1 - //SEG723 [331] phi from init::@1 to init::@2 [phi:init::@1->init::@2] - b2_from_b1: - //SEG724 [331] phi (byte) init::idx#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:init::@1->init::@2#0] -- vbuz1=vbuc1 +//SEG702 tables_init +tables_init: { + .label _1 = $90 + .label pli = $40 + .label idx = $42 + .label j = $3f + //SEG703 [322] phi from tables_init to tables_init::@1 [phi:tables_init->tables_init::@1] + b1_from_tables_init: + //SEG704 [322] phi (byte) tables_init::idx#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:tables_init->tables_init::@1#0] -- vbuz1=vbuc1 lda #0 sta idx - //SEG725 [331] phi (byte*) init::pli#2 = (const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 [phi:init::@1->init::@2#1] -- pbuz1=pbuc1 + //SEG705 [322] phi (byte*) tables_init::pli#2 = (const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 [phi:tables_init->tables_init::@1#1] -- pbuz1=pbuc1 lda #playfield sta pli+1 - //SEG726 [331] phi (byte) init::j#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:init::@1->init::@2#2] -- vbuz1=vbuc1 + //SEG706 [322] phi (byte) tables_init::j#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:tables_init->tables_init::@1#2] -- vbuz1=vbuc1 lda #0 sta j - jmp b2 - //SEG727 [331] phi from init::@2 to init::@2 [phi:init::@2->init::@2] - b2_from_b2: - //SEG728 [331] phi (byte) init::idx#2 = (byte) init::idx#1 [phi:init::@2->init::@2#0] -- register_copy - //SEG729 [331] phi (byte*) init::pli#2 = (byte*) init::pli#1 [phi:init::@2->init::@2#1] -- register_copy - //SEG730 [331] phi (byte) init::j#2 = (byte) init::j#1 [phi:init::@2->init::@2#2] -- register_copy - jmp b2 - //SEG731 init::@2 - b2: - //SEG732 [332] (byte~) init::$8 ← (byte) init::j#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_rol_1 + jmp b1 + //SEG707 [322] phi from tables_init::@1 to tables_init::@1 [phi:tables_init::@1->tables_init::@1] + b1_from_b1: + //SEG708 [322] phi (byte) tables_init::idx#2 = (byte) tables_init::idx#1 [phi:tables_init::@1->tables_init::@1#0] -- register_copy + //SEG709 [322] phi (byte*) tables_init::pli#2 = (byte*) tables_init::pli#1 [phi:tables_init::@1->tables_init::@1#1] -- register_copy + //SEG710 [322] phi (byte) tables_init::j#2 = (byte) tables_init::j#1 [phi:tables_init::@1->tables_init::@1#2] -- register_copy + jmp b1 + //SEG711 tables_init::@1 + b1: + //SEG712 [323] (byte~) tables_init::$1 ← (byte) tables_init::j#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_rol_1 lda j asl - sta _8 - //SEG733 [333] *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte~) init::$8) ← (byte*) init::pli#2 -- pptc1_derefidx_vbuz1=pbuz2 - ldy _8 + sta _1 + //SEG713 [324] *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte~) tables_init::$1) ← (byte*) tables_init::pli#2 -- pptc1_derefidx_vbuz1=pbuz2 + ldy _1 lda pli sta playfield_lines,y lda pli+1 sta playfield_lines+1,y - //SEG734 [334] *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0 + (byte) init::j#2) ← (byte) init::idx#2 -- pbuc1_derefidx_vbuz1=vbuz2 + //SEG714 [325] *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0 + (byte) tables_init::j#2) ← (byte) tables_init::idx#2 -- pbuc1_derefidx_vbuz1=vbuz2 lda idx ldy j sta playfield_lines_idx,y - //SEG735 [335] (byte*) init::pli#1 ← (byte*) init::pli#2 + (const byte) PLAYFIELD_COLS#0 -- pbuz1=pbuz1_plus_vbuc1 + //SEG715 [326] (byte*) tables_init::pli#1 ← (byte*) tables_init::pli#2 + (const byte) PLAYFIELD_COLS#0 -- pbuz1=pbuz1_plus_vbuc1 lda pli clc adc #PLAYFIELD_COLS @@ -8599,75 +8568,161 @@ init: { bcc !+ inc pli+1 !: - //SEG736 [336] (byte) init::idx#1 ← (byte) init::idx#2 + (const byte) PLAYFIELD_COLS#0 -- vbuz1=vbuz1_plus_vbuc1 + //SEG716 [327] (byte) tables_init::idx#1 ← (byte) tables_init::idx#2 + (const byte) PLAYFIELD_COLS#0 -- vbuz1=vbuz1_plus_vbuc1 lda #PLAYFIELD_COLS clc adc idx sta idx - //SEG737 [337] (byte) init::j#1 ← ++ (byte) init::j#2 -- vbuz1=_inc_vbuz1 + //SEG717 [328] (byte) tables_init::j#1 ← ++ (byte) tables_init::j#2 -- vbuz1=_inc_vbuz1 inc j - //SEG738 [338] if((byte) init::j#1!=(const byte) PLAYFIELD_LINES#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto init::@2 -- vbuz1_neq_vbuc1_then_la1 + //SEG718 [329] if((byte) tables_init::j#1!=(const byte) PLAYFIELD_LINES#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto tables_init::@1 -- vbuz1_neq_vbuc1_then_la1 lda j cmp #PLAYFIELD_LINES-1+1 - bne b2_from_b2 - jmp b6 - //SEG739 init::@6 - b6: - //SEG740 [339] *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0+(const byte) PLAYFIELD_LINES#0) ← (const byte) PLAYFIELD_COLS#0*(const byte) PLAYFIELD_LINES#0 -- _deref_pbuc1=vbuc2 + bne b1_from_b1 + jmp b2 + //SEG719 tables_init::@2 + b2: + //SEG720 [330] *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0+(const byte) PLAYFIELD_LINES#0) ← (const byte) PLAYFIELD_COLS#0*(const byte) PLAYFIELD_LINES#0 -- _deref_pbuc1=vbuc2 lda #PLAYFIELD_COLS*PLAYFIELD_LINES sta playfield_lines_idx+PLAYFIELD_LINES - //SEG741 [340] phi from init::@6 to init::@3 [phi:init::@6->init::@3] - b3_from_b6: - //SEG742 [340] phi (byte) init::l#4 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:init::@6->init::@3#0] -- vbuz1=vbuc1 + jmp breturn + //SEG721 tables_init::@return + breturn: + //SEG722 [331] return + rts +} +//SEG723 render_init +render_init: { + .label _5 = $91 + .label _10 = $92 + .label li = $44 + .label i = $43 + .label c = $49 + .label line = $46 + .label l = $48 + //SEG724 [333] call fill + //SEG725 [352] phi from render_init to fill [phi:render_init->fill] + fill_from_render_init: + //SEG726 [352] phi (byte) fill::val#3 = (byte/word/signed word/dword/signed dword) 160 [phi:render_init->fill#0] -- vbuz1=vbuc1 + lda #$a0 + sta fill.val + //SEG727 [352] phi (byte*) fill::addr#0 = (const byte*) SCREEN#0 [phi:render_init->fill#1] -- pbuz1=pbuc1 + lda #SCREEN + sta fill.addr+1 + jsr fill + //SEG728 [334] phi from render_init to render_init::@7 [phi:render_init->render_init::@7] + b7_from_render_init: + jmp b7 + //SEG729 render_init::@7 + b7: + //SEG730 [335] call fill + //SEG731 [352] phi from render_init::@7 to fill [phi:render_init::@7->fill] + fill_from_b7: + //SEG732 [352] phi (byte) fill::val#3 = (const byte) BLACK#0 [phi:render_init::@7->fill#0] -- vbuz1=vbuc1 + lda #BLACK + sta fill.val + //SEG733 [352] phi (byte*) fill::addr#0 = (const byte*) COLS#0 [phi:render_init::@7->fill#1] -- pbuz1=pbuc1 + lda #COLS + sta fill.addr+1 + jsr fill + //SEG734 [336] phi from render_init::@7 to render_init::@1 [phi:render_init::@7->render_init::@1] + b1_from_b7: + //SEG735 [336] phi (byte*) render_init::li#2 = (const byte*) COLS#0+(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 15 [phi:render_init::@7->render_init::@1#0] -- pbuz1=pbuc1 + lda #COLS+$28+$f + sta li+1 + //SEG736 [336] phi (byte) render_init::i#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_init::@7->render_init::@1#1] -- vbuz1=vbuc1 + lda #0 + sta i + jmp b1 + //SEG737 [336] phi from render_init::@1 to render_init::@1 [phi:render_init::@1->render_init::@1] + b1_from_b1: + //SEG738 [336] phi (byte*) render_init::li#2 = (byte*) render_init::li#1 [phi:render_init::@1->render_init::@1#0] -- register_copy + //SEG739 [336] phi (byte) render_init::i#2 = (byte) render_init::i#1 [phi:render_init::@1->render_init::@1#1] -- register_copy + jmp b1 + //SEG740 render_init::@1 + b1: + //SEG741 [337] (byte~) render_init::$5 ← (byte) render_init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_rol_1 + lda i + asl + sta _5 + //SEG742 [338] *((const byte*[PLAYFIELD_LINES#0+3]) screen_lines#0 + (byte~) render_init::$5) ← (byte*) render_init::li#2 -- pptc1_derefidx_vbuz1=pbuz2 + ldy _5 + lda li + sta screen_lines,y + lda li+1 + sta screen_lines+1,y + //SEG743 [339] (byte*) render_init::li#1 ← (byte*) render_init::li#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 -- pbuz1=pbuz1_plus_vbuc1 + lda li + clc + adc #$28 + sta li + bcc !+ + inc li+1 + !: + //SEG744 [340] (byte) render_init::i#1 ← ++ (byte) render_init::i#2 -- vbuz1=_inc_vbuz1 + inc i + //SEG745 [341] if((byte) render_init::i#1!=(const byte) PLAYFIELD_LINES#0+(byte/signed byte/word/signed word/dword/signed dword) 2+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_init::@1 -- vbuz1_neq_vbuc1_then_la1 + lda i + cmp #PLAYFIELD_LINES+2+1 + bne b1_from_b1 + //SEG746 [342] phi from render_init::@1 to render_init::@2 [phi:render_init::@1->render_init::@2] + b2_from_b1: + //SEG747 [342] phi (byte) render_init::l#4 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_init::@1->render_init::@2#0] -- vbuz1=vbuc1 lda #0 sta l - //SEG743 [340] phi (byte*) init::line#4 = (const byte*) COLS#0+(byte/signed byte/word/signed word/dword/signed dword) 14 [phi:init::@6->init::@3#1] -- pbuz1=pbuc1 + //SEG748 [342] phi (byte*) render_init::line#4 = (const byte*) COLS#0+(byte/signed byte/word/signed word/dword/signed dword) 14 [phi:render_init::@1->render_init::@2#1] -- pbuz1=pbuc1 lda #COLS+$e sta line+1 - jmp b3 - //SEG744 [340] phi from init::@7 to init::@3 [phi:init::@7->init::@3] - b3_from_b7: - //SEG745 [340] phi (byte) init::l#4 = (byte) init::l#1 [phi:init::@7->init::@3#0] -- register_copy - //SEG746 [340] phi (byte*) init::line#4 = (byte*) init::line#1 [phi:init::@7->init::@3#1] -- register_copy - jmp b3 - //SEG747 init::@3 - b3: - //SEG748 [341] phi from init::@3 to init::@4 [phi:init::@3->init::@4] - b4_from_b3: - //SEG749 [341] phi (byte) init::c#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:init::@3->init::@4#0] -- vbuz1=vbuc1 + jmp b2 + //SEG749 [342] phi from render_init::@5 to render_init::@2 [phi:render_init::@5->render_init::@2] + b2_from_b5: + //SEG750 [342] phi (byte) render_init::l#4 = (byte) render_init::l#1 [phi:render_init::@5->render_init::@2#0] -- register_copy + //SEG751 [342] phi (byte*) render_init::line#4 = (byte*) render_init::line#1 [phi:render_init::@5->render_init::@2#1] -- register_copy + jmp b2 + //SEG752 render_init::@2 + b2: + //SEG753 [343] phi from render_init::@2 to render_init::@3 [phi:render_init::@2->render_init::@3] + b3_from_b2: + //SEG754 [343] phi (byte) render_init::c#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_init::@2->render_init::@3#0] -- vbuz1=vbuc1 lda #0 sta c - jmp b4 - //SEG750 [341] phi from init::@4 to init::@4 [phi:init::@4->init::@4] - b4_from_b4: - //SEG751 [341] phi (byte) init::c#2 = (byte) init::c#1 [phi:init::@4->init::@4#0] -- register_copy - jmp b4 - //SEG752 init::@4 - b4: - //SEG753 [342] (byte*~) init::$14 ← (byte*) init::line#4 + (byte) init::c#2 -- pbuz1=pbuz2_plus_vbuz3 + jmp b3 + //SEG755 [343] phi from render_init::@3 to render_init::@3 [phi:render_init::@3->render_init::@3] + b3_from_b3: + //SEG756 [343] phi (byte) render_init::c#2 = (byte) render_init::c#1 [phi:render_init::@3->render_init::@3#0] -- register_copy + jmp b3 + //SEG757 render_init::@3 + b3: + //SEG758 [344] (byte*~) render_init::$10 ← (byte*) render_init::line#4 + (byte) render_init::c#2 -- pbuz1=pbuz2_plus_vbuz3 lda c clc adc line - sta _14 + sta _10 lda #0 adc line+1 - sta _14+1 - //SEG754 [343] *((byte*~) init::$14) ← (const byte) DARK_GREY#0 -- _deref_pbuz1=vbuc1 + sta _10+1 + //SEG759 [345] *((byte*~) render_init::$10) ← (const byte) DARK_GREY#0 -- _deref_pbuz1=vbuc1 lda #DARK_GREY ldy #0 - sta (_14),y - //SEG755 [344] (byte) init::c#1 ← ++ (byte) init::c#2 -- vbuz1=_inc_vbuz1 + sta (_10),y + //SEG760 [346] (byte) render_init::c#1 ← ++ (byte) render_init::c#2 -- vbuz1=_inc_vbuz1 inc c - //SEG756 [345] if((byte) init::c#1!=(const byte) PLAYFIELD_COLS#0+(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto init::@4 -- vbuz1_neq_vbuc1_then_la1 + //SEG761 [347] if((byte) render_init::c#1!=(const byte) PLAYFIELD_COLS#0+(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_init::@3 -- vbuz1_neq_vbuc1_then_la1 lda c cmp #PLAYFIELD_COLS+1+1 - bne b4_from_b4 - jmp b7 - //SEG757 init::@7 - b7: - //SEG758 [346] (byte*) init::line#1 ← (byte*) init::line#4 + (byte/signed byte/word/signed word/dword/signed dword) 40 -- pbuz1=pbuz1_plus_vbuc1 + bne b3_from_b3 + jmp b5 + //SEG762 render_init::@5 + b5: + //SEG763 [348] (byte*) render_init::line#1 ← (byte*) render_init::line#4 + (byte/signed byte/word/signed word/dword/signed dword) 40 -- pbuz1=pbuz1_plus_vbuc1 lda line clc adc #$28 @@ -8675,24 +8730,24 @@ init: { bcc !+ inc line+1 !: - //SEG759 [347] (byte) init::l#1 ← ++ (byte) init::l#4 -- vbuz1=_inc_vbuz1 + //SEG764 [349] (byte) render_init::l#1 ← ++ (byte) render_init::l#4 -- vbuz1=_inc_vbuz1 inc l - //SEG760 [348] if((byte) init::l#1!=(const byte) PLAYFIELD_LINES#0+(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto init::@3 -- vbuz1_neq_vbuc1_then_la1 + //SEG765 [350] if((byte) render_init::l#1!=(const byte) PLAYFIELD_LINES#0+(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_init::@2 -- vbuz1_neq_vbuc1_then_la1 lda l cmp #PLAYFIELD_LINES+1+1 - bne b3_from_b7 + bne b2_from_b5 jmp breturn - //SEG761 init::@return + //SEG766 render_init::@return breturn: - //SEG762 [349] return + //SEG767 [351] return rts } -//SEG763 fill +//SEG768 fill fill: { .label end = $94 .label addr = $4b .label val = $4a - //SEG764 [351] (byte*) fill::end#0 ← (byte*) fill::addr#0 + (word/signed word/dword/signed dword) 1000 -- pbuz1=pbuz2_plus_vwuc1 + //SEG769 [353] (byte*) fill::end#0 ← (byte*) fill::addr#0 + (word/signed word/dword/signed dword) 1000 -- pbuz1=pbuz2_plus_vwuc1 lda addr clc adc #<$3e8 @@ -8700,23 +8755,23 @@ fill: { lda addr+1 adc #>$3e8 sta end+1 - //SEG765 [352] phi from fill fill::@1 to fill::@1 [phi:fill/fill::@1->fill::@1] + //SEG770 [354] phi from fill fill::@1 to fill::@1 [phi:fill/fill::@1->fill::@1] b1_from_fill: b1_from_b1: - //SEG766 [352] phi (byte*) fill::addr#2 = (byte*) fill::addr#0 [phi:fill/fill::@1->fill::@1#0] -- register_copy + //SEG771 [354] phi (byte*) fill::addr#2 = (byte*) fill::addr#0 [phi:fill/fill::@1->fill::@1#0] -- register_copy jmp b1 - //SEG767 fill::@1 + //SEG772 fill::@1 b1: - //SEG768 [353] *((byte*) fill::addr#2) ← (byte) fill::val#3 -- _deref_pbuz1=vbuz2 + //SEG773 [355] *((byte*) fill::addr#2) ← (byte) fill::val#3 -- _deref_pbuz1=vbuz2 lda val ldy #0 sta (addr),y - //SEG769 [354] (byte*) fill::addr#1 ← ++ (byte*) fill::addr#2 -- pbuz1=_inc_pbuz1 + //SEG774 [356] (byte*) fill::addr#1 ← ++ (byte*) fill::addr#2 -- pbuz1=_inc_pbuz1 inc addr bne !+ inc addr+1 !: - //SEG770 [355] if((byte*) fill::addr#1!=(byte*) fill::end#0) goto fill::@1 -- pbuz1_neq_pbuz2_then_la1 + //SEG775 [357] if((byte*) fill::addr#1!=(byte*) fill::end#0) goto fill::@1 -- pbuz1_neq_pbuz2_then_la1 lda addr+1 cmp end+1 bne b1_from_b1 @@ -8724,25 +8779,25 @@ fill: { cmp end bne b1_from_b1 jmp breturn - //SEG771 fill::@return + //SEG776 fill::@return breturn: - //SEG772 [356] return + //SEG777 [358] return rts } -//SEG773 sid_rnd_init +//SEG778 sid_rnd_init sid_rnd_init: { - //SEG774 [357] *((const word*) SID_VOICE3_FREQ#0) ← (word/dword/signed dword) 65535 -- _deref_pwuc1=vwuc2 + //SEG779 [359] *((const word*) SID_VOICE3_FREQ#0) ← (word/dword/signed dword) 65535 -- _deref_pwuc1=vwuc2 lda #<$ffff sta SID_VOICE3_FREQ lda #>$ffff sta SID_VOICE3_FREQ+1 - //SEG775 [358] *((const byte*) SID_VOICE3_CONTROL#0) ← (const byte) SID_CONTROL_NOISE#0 -- _deref_pbuc1=vbuc2 + //SEG780 [360] *((const byte*) SID_VOICE3_CONTROL#0) ← (const byte) SID_CONTROL_NOISE#0 -- _deref_pbuc1=vbuc2 lda #SID_CONTROL_NOISE sta SID_VOICE3_CONTROL jmp breturn - //SEG776 sid_rnd_init::@return + //SEG781 sid_rnd_init::@return breturn: - //SEG777 [359] return + //SEG782 [361] return rts } keyboard_matrix_row_bitmask: .byte $fe, $fd, $fb, $f7, $ef, $df, $bf, $7f @@ -8771,39 +8826,39 @@ sid_rnd_init: { screen_lines: .fill 2*(PLAYFIELD_LINES+3), 0 REGISTER UPLIFT POTENTIAL REGISTERS -Statement [12] (byte*~) current_piece_gfx#85 ← (byte*) current_piece_gfx#10 [ current_piece_gfx#85 current_piece_gfx#10 current_piece_color#15 spawn_current::$3 ] ( main:2 [ current_piece_gfx#85 current_piece_gfx#10 current_piece_color#15 spawn_current::$3 ] ) always clobbers reg byte a +Statement [14] (byte*~) current_piece_gfx#86 ← (byte*) current_piece_gfx#10 [ current_piece_gfx#86 current_piece_gfx#10 current_piece_color#15 spawn_current::$3 ] ( main:2 [ current_piece_gfx#86 current_piece_gfx#10 current_piece_color#15 spawn_current::$3 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:40 [ current_piece_color#23 current_piece_color#11 current_piece_color#13 current_piece_color#15 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:113 [ spawn_current::$3 ] -Statement [15] (byte*~) current_piece#69 ← (byte*)*((const word[]) PIECES#0 + (byte~) spawn_current::$3) [ current_piece_gfx#10 current_piece_color#15 current_piece#69 ] ( main:2 [ current_piece_gfx#10 current_piece_color#15 current_piece#69 ] ) always clobbers reg byte a -Statement [17] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@4 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 keyboard_events_size#19 current_movedown_counter#15 ] ( main:2 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 keyboard_events_size#19 current_movedown_counter#15 ] ) always clobbers reg byte a +Statement [17] (byte*~) current_piece#70 ← (byte*)*((const word[]) PIECES#0 + (byte~) spawn_current::$3) [ current_piece_gfx#10 current_piece_color#15 current_piece#70 ] ( main:2 [ current_piece_gfx#10 current_piece_color#15 current_piece#70 ] ) always clobbers reg byte a +Statement [19] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@4 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 keyboard_events_size#19 current_movedown_counter#15 ] ( main:2 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 keyboard_events_size#19 current_movedown_counter#15 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:36 [ current_orientation#33 current_orientation#15 current_orientation#23 current_orientation#8 current_orientation#18 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:39 [ current_xpos#36 current_xpos#16 current_xpos#23 current_xpos#9 current_xpos#19 current_xpos#7 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:2 [ current_ypos#12 current_ypos#16 current_ypos#31 current_ypos#4 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:62 [ keyboard_events_size#10 keyboard_events_size#29 keyboard_events_size#19 keyboard_events_size#16 keyboard_events_size#13 keyboard_events_size#4 keyboard_events_size#30 keyboard_events_size#2 keyboard_events_size#1 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:3 [ current_movedown_counter#15 current_movedown_counter#12 current_movedown_counter#10 ] -Statement [18] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 254) goto main::@7 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 keyboard_events_size#19 current_movedown_counter#15 ] ( main:2 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 keyboard_events_size#19 current_movedown_counter#15 ] ) always clobbers reg byte a -Statement [29] (byte) main::render#1 ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte~) main::$9 [ current_piece#13 current_ypos#16 current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::key_event#0 main::render#1 current_orientation#18 current_piece_gfx#17 current_xpos#19 ] ( main:2 [ current_piece#13 current_ypos#16 current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::key_event#0 main::render#1 current_orientation#18 current_piece_gfx#17 current_xpos#19 ] ) always clobbers reg byte a +Statement [20] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 254) goto main::@7 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 keyboard_events_size#19 current_movedown_counter#15 ] ( main:2 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 keyboard_events_size#19 current_movedown_counter#15 ] ) always clobbers reg byte a +Statement [31] (byte) main::render#1 ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte~) main::$10 [ current_piece#13 current_ypos#16 current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::key_event#0 main::render#1 current_orientation#18 current_piece_gfx#17 current_xpos#19 ] ( main:2 [ current_piece#13 current_ypos#16 current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::key_event#0 main::render#1 current_orientation#18 current_piece_gfx#17 current_xpos#19 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:78 [ main::key_event#0 ] -Statement [34] (byte) main::render#2 ← (byte) main::render#1 + (byte~) main::$10 [ current_piece#13 current_xpos#23 current_ypos#16 current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::key_event#0 main::render#2 current_orientation#18 current_piece_gfx#17 ] ( main:2 [ current_piece#13 current_xpos#23 current_ypos#16 current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::key_event#0 main::render#2 current_orientation#18 current_piece_gfx#17 ] ) always clobbers reg byte a -Statement [39] (byte) main::render#3 ← (byte) main::render#2 + (byte~) main::$11 [ current_piece#13 current_orientation#23 current_piece_gfx#18 current_xpos#23 current_ypos#16 current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::render#3 ] ( main:2 [ current_piece#13 current_orientation#23 current_piece_gfx#18 current_xpos#23 current_ypos#16 current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::render#3 ] ) always clobbers reg byte a -Statement [45] (byte*~) current_piece_gfx#86 ← (byte*) current_piece_gfx#18 [ current_piece#13 current_orientation#23 current_piece_gfx#18 current_xpos#23 current_ypos#16 current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 current_ypos#69 current_xpos#94 current_piece_gfx#86 ] ( main:2 [ current_piece#13 current_orientation#23 current_piece_gfx#18 current_xpos#23 current_ypos#16 current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 current_ypos#69 current_xpos#94 current_piece_gfx#86 ] ) always clobbers reg byte a -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:4 [ current_ypos#22 current_ypos#69 ] -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:5 [ current_xpos#63 current_xpos#94 ] -Statement [51] (byte) render_current::ypos2#0 ← (byte) current_ypos#22 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ current_xpos#63 current_piece_gfx#63 current_piece_color#65 render_current::ypos2#0 ] ( main:2::render_current:14 [ current_piece_gfx#10 current_piece_color#15 spawn_current::$3 current_xpos#63 current_piece_gfx#63 current_piece_color#65 render_current::ypos2#0 ] main:2::render_current:47 [ current_piece#13 current_orientation#23 current_piece_gfx#18 current_xpos#23 current_ypos#16 current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 current_xpos#63 current_piece_gfx#63 current_piece_color#65 render_current::ypos2#0 ] ) always clobbers reg byte a -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:8 [ current_piece_color#65 current_piece_color#73 current_piece_color#74 ] -Statement [54] (byte*) render_current::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0+3]) screen_lines#0 + (byte) render_current::ypos2#2) [ current_xpos#63 current_piece_gfx#63 current_piece_color#65 render_current::ypos2#2 render_current::l#3 render_current::i#4 render_current::screen_line#0 ] ( main:2::render_current:14 [ current_piece_gfx#10 current_piece_color#15 spawn_current::$3 current_xpos#63 current_piece_gfx#63 current_piece_color#65 render_current::ypos2#2 render_current::l#3 render_current::i#4 render_current::screen_line#0 ] main:2::render_current:47 [ current_piece#13 current_orientation#23 current_piece_gfx#18 current_xpos#23 current_ypos#16 current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 current_xpos#63 current_piece_gfx#63 current_piece_color#65 render_current::ypos2#2 render_current::l#3 render_current::i#4 render_current::screen_line#0 ] ) always clobbers reg byte a +Statement [36] (byte) main::render#2 ← (byte) main::render#1 + (byte~) main::$11 [ current_piece#13 current_xpos#23 current_ypos#16 current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::key_event#0 main::render#2 current_orientation#18 current_piece_gfx#17 ] ( main:2 [ current_piece#13 current_xpos#23 current_ypos#16 current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::key_event#0 main::render#2 current_orientation#18 current_piece_gfx#17 ] ) always clobbers reg byte a +Statement [41] (byte) main::render#3 ← (byte) main::render#2 + (byte~) main::$12 [ current_piece#13 current_orientation#23 current_piece_gfx#18 current_xpos#23 current_ypos#16 current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::render#3 ] ( main:2 [ current_piece#13 current_orientation#23 current_piece_gfx#18 current_xpos#23 current_ypos#16 current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::render#3 ] ) always clobbers reg byte a +Statement [47] (byte*~) current_piece_gfx#87 ← (byte*) current_piece_gfx#18 [ current_piece#13 current_orientation#23 current_piece_gfx#18 current_xpos#23 current_ypos#16 current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 current_ypos#70 current_xpos#95 current_piece_gfx#87 ] ( main:2 [ current_piece#13 current_orientation#23 current_piece_gfx#18 current_xpos#23 current_ypos#16 current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 current_ypos#70 current_xpos#95 current_piece_gfx#87 ] ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:4 [ current_ypos#22 current_ypos#70 ] +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:5 [ current_xpos#63 current_xpos#95 ] +Statement [52] (byte) render_current::ypos2#0 ← (byte) current_ypos#22 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ current_xpos#63 current_piece_gfx#63 current_piece_color#66 render_current::ypos2#0 ] ( main:2::render_current:16 [ current_piece_gfx#10 current_piece_color#15 spawn_current::$3 current_xpos#63 current_piece_gfx#63 current_piece_color#66 render_current::ypos2#0 ] main:2::render_current:49 [ current_piece#13 current_orientation#23 current_piece_gfx#18 current_xpos#23 current_ypos#16 current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 current_xpos#63 current_piece_gfx#63 current_piece_color#66 render_current::ypos2#0 ] ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:8 [ current_piece_color#66 current_piece_color#74 current_piece_color#75 ] +Statement [55] (byte*) render_current::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0+3]) screen_lines#0 + (byte) render_current::ypos2#2) [ current_xpos#63 current_piece_gfx#63 current_piece_color#66 render_current::ypos2#2 render_current::l#3 render_current::i#4 render_current::screen_line#0 ] ( main:2::render_current:16 [ current_piece_gfx#10 current_piece_color#15 spawn_current::$3 current_xpos#63 current_piece_gfx#63 current_piece_color#66 render_current::ypos2#2 render_current::l#3 render_current::i#4 render_current::screen_line#0 ] main:2::render_current:49 [ current_piece#13 current_orientation#23 current_piece_gfx#18 current_xpos#23 current_ypos#16 current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 current_xpos#63 current_piece_gfx#63 current_piece_color#66 render_current::ypos2#2 render_current::l#3 render_current::i#4 render_current::screen_line#0 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:9 [ render_current::ypos2#2 render_current::ypos2#0 render_current::ypos2#1 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:10 [ render_current::l#3 render_current::l#1 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:11 [ render_current::i#2 render_current::i#1 render_current::i#4 render_current::i#8 ] -Statement [57] (byte) render_current::current_cell#0 ← *((byte*) current_piece_gfx#63 + (byte) render_current::i#2) [ current_xpos#63 current_piece_gfx#63 current_piece_color#65 render_current::ypos2#2 render_current::l#3 render_current::screen_line#0 render_current::i#2 render_current::xpos#2 render_current::c#2 render_current::current_cell#0 ] ( main:2::render_current:14 [ current_piece_gfx#10 current_piece_color#15 spawn_current::$3 current_xpos#63 current_piece_gfx#63 current_piece_color#65 render_current::ypos2#2 render_current::l#3 render_current::screen_line#0 render_current::i#2 render_current::xpos#2 render_current::c#2 render_current::current_cell#0 ] main:2::render_current:47 [ current_piece#13 current_orientation#23 current_piece_gfx#18 current_xpos#23 current_ypos#16 current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 current_xpos#63 current_piece_gfx#63 current_piece_color#65 render_current::ypos2#2 render_current::l#3 render_current::screen_line#0 render_current::i#2 render_current::xpos#2 render_current::c#2 render_current::current_cell#0 ] ) always clobbers reg byte a +Statement [58] (byte) render_current::current_cell#0 ← *((byte*) current_piece_gfx#63 + (byte) render_current::i#2) [ current_xpos#63 current_piece_gfx#63 current_piece_color#66 render_current::ypos2#2 render_current::l#3 render_current::screen_line#0 render_current::i#2 render_current::xpos#2 render_current::c#2 render_current::current_cell#0 ] ( main:2::render_current:16 [ current_piece_gfx#10 current_piece_color#15 spawn_current::$3 current_xpos#63 current_piece_gfx#63 current_piece_color#66 render_current::ypos2#2 render_current::l#3 render_current::screen_line#0 render_current::i#2 render_current::xpos#2 render_current::c#2 render_current::current_cell#0 ] main:2::render_current:49 [ current_piece#13 current_orientation#23 current_piece_gfx#18 current_xpos#23 current_ypos#16 current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 current_xpos#63 current_piece_gfx#63 current_piece_color#66 render_current::ypos2#2 render_current::l#3 render_current::screen_line#0 render_current::i#2 render_current::xpos#2 render_current::c#2 render_current::current_cell#0 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:12 [ render_current::xpos#2 render_current::xpos#1 render_current::xpos#0 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:13 [ render_current::c#2 render_current::c#1 ] -Statement [61] *((byte*) render_current::screen_line#0 + (byte) render_current::xpos#2) ← (byte) current_piece_color#65 [ current_xpos#63 current_piece_gfx#63 current_piece_color#65 render_current::ypos2#2 render_current::l#3 render_current::screen_line#0 render_current::xpos#2 render_current::c#2 render_current::i#1 ] ( main:2::render_current:14 [ current_piece_gfx#10 current_piece_color#15 spawn_current::$3 current_xpos#63 current_piece_gfx#63 current_piece_color#65 render_current::ypos2#2 render_current::l#3 render_current::screen_line#0 render_current::xpos#2 render_current::c#2 render_current::i#1 ] main:2::render_current:47 [ current_piece#13 current_orientation#23 current_piece_gfx#18 current_xpos#23 current_ypos#16 current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 current_xpos#63 current_piece_gfx#63 current_piece_color#65 render_current::ypos2#2 render_current::l#3 render_current::screen_line#0 render_current::xpos#2 render_current::c#2 render_current::i#1 ] ) always clobbers reg byte a -Statement [72] (byte~) render_playfield::$1 ← (byte) render_playfield::l#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ render_playfield::l#2 render_playfield::i#3 render_playfield::$1 ] ( main:2::render_playfield:11 [ current_piece_gfx#10 current_piece_color#15 spawn_current::$3 render_playfield::l#2 render_playfield::i#3 render_playfield::$1 ] main:2::render_playfield:42 [ current_piece#13 current_orientation#23 current_piece_gfx#18 current_xpos#23 current_ypos#16 current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 render_playfield::l#2 render_playfield::i#3 render_playfield::$1 ] ) always clobbers reg byte a +Statement [62] *((byte*) render_current::screen_line#0 + (byte) render_current::xpos#2) ← (byte) current_piece_color#66 [ current_xpos#63 current_piece_gfx#63 current_piece_color#66 render_current::ypos2#2 render_current::l#3 render_current::screen_line#0 render_current::xpos#2 render_current::c#2 render_current::i#1 ] ( main:2::render_current:16 [ current_piece_gfx#10 current_piece_color#15 spawn_current::$3 current_xpos#63 current_piece_gfx#63 current_piece_color#66 render_current::ypos2#2 render_current::l#3 render_current::screen_line#0 render_current::xpos#2 render_current::c#2 render_current::i#1 ] main:2::render_current:49 [ current_piece#13 current_orientation#23 current_piece_gfx#18 current_xpos#23 current_ypos#16 current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 current_xpos#63 current_piece_gfx#63 current_piece_color#66 render_current::ypos2#2 render_current::l#3 render_current::screen_line#0 render_current::xpos#2 render_current::c#2 render_current::i#1 ] ) always clobbers reg byte a +Statement [73] (byte~) render_playfield::$1 ← (byte) render_playfield::l#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ render_playfield::l#2 render_playfield::i#3 render_playfield::$1 ] ( main:2::render_playfield:13 [ current_piece_gfx#10 current_piece_color#15 spawn_current::$3 render_playfield::l#2 render_playfield::i#3 render_playfield::$1 ] main:2::render_playfield:44 [ current_piece#13 current_orientation#23 current_piece_gfx#18 current_xpos#23 current_ypos#16 current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 render_playfield::l#2 render_playfield::i#3 render_playfield::$1 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:14 [ render_playfield::l#2 render_playfield::l#1 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:15 [ render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 ] -Statement [73] (byte*) render_playfield::line#0 ← *((const byte*[PLAYFIELD_LINES#0+3]) screen_lines#0 + (byte~) render_playfield::$1) [ render_playfield::l#2 render_playfield::i#3 render_playfield::line#0 ] ( main:2::render_playfield:11 [ current_piece_gfx#10 current_piece_color#15 spawn_current::$3 render_playfield::l#2 render_playfield::i#3 render_playfield::line#0 ] main:2::render_playfield:42 [ current_piece#13 current_orientation#23 current_piece_gfx#18 current_xpos#23 current_ypos#16 current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 render_playfield::l#2 render_playfield::i#3 render_playfield::line#0 ] ) always clobbers reg byte a -Statement [75] *((byte*) render_playfield::line#2) ← *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) render_playfield::i#2) [ render_playfield::l#2 render_playfield::i#2 render_playfield::line#2 render_playfield::c#2 ] ( main:2::render_playfield:11 [ current_piece_gfx#10 current_piece_color#15 spawn_current::$3 render_playfield::l#2 render_playfield::i#2 render_playfield::line#2 render_playfield::c#2 ] main:2::render_playfield:42 [ current_piece#13 current_orientation#23 current_piece_gfx#18 current_xpos#23 current_ypos#16 current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 render_playfield::l#2 render_playfield::i#2 render_playfield::line#2 render_playfield::c#2 ] ) always clobbers reg byte a reg byte y +Statement [74] (byte*) render_playfield::line#0 ← *((const byte*[PLAYFIELD_LINES#0+3]) screen_lines#0 + (byte~) render_playfield::$1) [ render_playfield::l#2 render_playfield::i#3 render_playfield::line#0 ] ( main:2::render_playfield:13 [ current_piece_gfx#10 current_piece_color#15 spawn_current::$3 render_playfield::l#2 render_playfield::i#3 render_playfield::line#0 ] main:2::render_playfield:44 [ current_piece#13 current_orientation#23 current_piece_gfx#18 current_xpos#23 current_ypos#16 current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 render_playfield::l#2 render_playfield::i#3 render_playfield::line#0 ] ) always clobbers reg byte a +Statement [76] *((byte*) render_playfield::line#2) ← *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) render_playfield::i#2) [ render_playfield::l#2 render_playfield::i#2 render_playfield::line#2 render_playfield::c#2 ] ( main:2::render_playfield:13 [ current_piece_gfx#10 current_piece_color#15 spawn_current::$3 render_playfield::l#2 render_playfield::i#2 render_playfield::line#2 render_playfield::c#2 ] main:2::render_playfield:44 [ current_piece#13 current_orientation#23 current_piece_gfx#18 current_xpos#23 current_ypos#16 current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 render_playfield::l#2 render_playfield::i#2 render_playfield::line#2 render_playfield::c#2 ] ) always clobbers reg byte a reg byte y Removing always clobbered register reg byte y as potential for zp ZP_BYTE:40 [ current_piece_color#23 current_piece_color#11 current_piece_color#13 current_piece_color#15 ] Removing always clobbered register reg byte y as potential for zp ZP_BYTE:113 [ spawn_current::$3 ] Removing always clobbered register reg byte y as potential for zp ZP_BYTE:14 [ render_playfield::l#2 render_playfield::l#1 ] @@ -8815,186 +8870,186 @@ Removing always clobbered register reg byte y as potential for zp ZP_BYTE:39 [ c Removing always clobbered register reg byte y as potential for zp ZP_BYTE:2 [ current_ypos#12 current_ypos#16 current_ypos#31 current_ypos#4 ] Removing always clobbered register reg byte y as potential for zp ZP_BYTE:62 [ keyboard_events_size#10 keyboard_events_size#29 keyboard_events_size#19 keyboard_events_size#16 keyboard_events_size#13 keyboard_events_size#4 keyboard_events_size#30 keyboard_events_size#2 keyboard_events_size#1 ] Removing always clobbered register reg byte y as potential for zp ZP_BYTE:3 [ current_movedown_counter#15 current_movedown_counter#12 current_movedown_counter#10 ] -Statement [87] (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 ← (byte) current_orientation#18 + (byte/signed byte/word/signed word/dword/signed dword) 16 [ current_piece#13 current_xpos#23 current_ypos#16 current_orientation#18 current_piece_gfx#17 play_move_rotate::$2 ] ( main:2::play_move_rotate:36 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::render#2 current_piece#13 current_xpos#23 current_ypos#16 current_orientation#18 current_piece_gfx#17 play_move_rotate::$2 ] ) always clobbers reg byte a +Statement [88] (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 ← (byte) current_orientation#18 + (byte/signed byte/word/signed word/dword/signed dword) 16 [ current_piece#13 current_xpos#23 current_ypos#16 current_orientation#18 current_piece_gfx#17 play_move_rotate::$2 ] ( main:2::play_move_rotate:38 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::render#2 current_piece#13 current_xpos#23 current_ypos#16 current_orientation#18 current_piece_gfx#17 play_move_rotate::$2 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:86 [ main::render#2 ] -Statement [88] (byte) play_move_rotate::orientation#2 ← (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 & (byte/signed byte/word/signed word/dword/signed dword) 63 [ current_piece#13 current_xpos#23 current_ypos#16 current_orientation#18 current_piece_gfx#17 play_move_rotate::orientation#2 ] ( main:2::play_move_rotate:36 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::render#2 current_piece#13 current_xpos#23 current_ypos#16 current_orientation#18 current_piece_gfx#17 play_move_rotate::orientation#2 ] ) always clobbers reg byte a -Statement [93] (byte*~) current_piece#73 ← (byte*) current_piece#13 [ current_piece#13 current_xpos#23 current_ypos#16 current_orientation#18 current_piece_gfx#17 play_move_rotate::orientation#3 collision::xpos#3 collision::ypos#3 collision::orientation#3 current_piece#73 ] ( main:2::play_move_rotate:36 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::render#2 current_piece#13 current_xpos#23 current_ypos#16 current_orientation#18 current_piece_gfx#17 play_move_rotate::orientation#3 collision::xpos#3 collision::ypos#3 collision::orientation#3 current_piece#73 ] ) always clobbers reg byte a +Statement [89] (byte) play_move_rotate::orientation#2 ← (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 & (byte/signed byte/word/signed word/dword/signed dword) 63 [ current_piece#13 current_xpos#23 current_ypos#16 current_orientation#18 current_piece_gfx#17 play_move_rotate::orientation#2 ] ( main:2::play_move_rotate:38 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::render#2 current_piece#13 current_xpos#23 current_ypos#16 current_orientation#18 current_piece_gfx#17 play_move_rotate::orientation#2 ] ) always clobbers reg byte a +Statement [94] (byte*~) current_piece#74 ← (byte*) current_piece#13 [ current_piece#13 current_xpos#23 current_ypos#16 current_orientation#18 current_piece_gfx#17 play_move_rotate::orientation#3 collision::xpos#3 collision::ypos#3 collision::orientation#3 current_piece#74 ] ( main:2::play_move_rotate:38 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::render#2 current_piece#13 current_xpos#23 current_ypos#16 current_orientation#18 current_piece_gfx#17 play_move_rotate::orientation#3 collision::xpos#3 collision::ypos#3 collision::orientation#3 current_piece#74 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:20 [ play_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#2 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:25 [ collision::xpos#5 collision::xpos#0 collision::xpos#1 collision::xpos#2 collision::xpos#3 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:24 [ collision::ypos#4 collision::ypos#0 collision::ypos#1 collision::ypos#2 collision::ypos#3 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:23 [ collision::orientation#4 collision::orientation#0 collision::orientation#1 collision::orientation#2 collision::orientation#3 ] -Statement [99] (byte*) current_piece_gfx#8 ← (byte*) current_piece#13 + (byte) current_orientation#8 [ current_piece#13 current_xpos#23 current_ypos#16 current_orientation#8 current_piece_gfx#8 ] ( main:2::play_move_rotate:36 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::render#2 current_piece#13 current_xpos#23 current_ypos#16 current_orientation#8 current_piece_gfx#8 ] ) always clobbers reg byte a -Statement [100] (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 ← (byte) current_orientation#18 - (byte/signed byte/word/signed word/dword/signed dword) 16 [ current_piece#13 current_xpos#23 current_ypos#16 current_orientation#18 current_piece_gfx#17 play_move_rotate::$4 ] ( main:2::play_move_rotate:36 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::render#2 current_piece#13 current_xpos#23 current_ypos#16 current_orientation#18 current_piece_gfx#17 play_move_rotate::$4 ] ) always clobbers reg byte a -Statement [101] (byte) play_move_rotate::orientation#1 ← (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 & (byte/signed byte/word/signed word/dword/signed dword) 63 [ current_piece#13 current_xpos#23 current_ypos#16 current_orientation#18 current_piece_gfx#17 play_move_rotate::orientation#1 ] ( main:2::play_move_rotate:36 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::render#2 current_piece#13 current_xpos#23 current_ypos#16 current_orientation#18 current_piece_gfx#17 play_move_rotate::orientation#1 ] ) always clobbers reg byte a -Statement [103] (byte*) collision::piece_gfx#0 ← (byte*) current_piece#15 + (byte) collision::orientation#4 [ collision::ypos#4 collision::xpos#5 collision::piece_gfx#0 ] ( main:2::play_move_rotate:36::collision:94 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::render#2 current_piece#13 current_xpos#23 current_ypos#16 current_orientation#18 current_piece_gfx#17 play_move_rotate::orientation#3 collision::ypos#4 collision::xpos#5 collision::piece_gfx#0 ] main:2::play_move_leftright:31::collision:132 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::key_event#0 main::render#1 current_piece_gfx#17 current_piece#13 current_ypos#16 current_orientation#18 current_xpos#19 collision::ypos#4 collision::xpos#5 collision::piece_gfx#0 ] main:2::play_move_leftright:31::collision:143 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::key_event#0 main::render#1 current_piece_gfx#17 current_piece#13 current_ypos#16 current_orientation#18 current_xpos#19 collision::ypos#4 collision::xpos#5 collision::piece_gfx#0 ] main:2::play_move_down:26::collision:167 [ keyboard_events_size#16 main::key_event#0 current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 collision::ypos#4 collision::xpos#5 collision::piece_gfx#0 ] ) always clobbers reg byte a +Statement [100] (byte*) current_piece_gfx#8 ← (byte*) current_piece#13 + (byte) current_orientation#8 [ current_piece#13 current_xpos#23 current_ypos#16 current_orientation#8 current_piece_gfx#8 ] ( main:2::play_move_rotate:38 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::render#2 current_piece#13 current_xpos#23 current_ypos#16 current_orientation#8 current_piece_gfx#8 ] ) always clobbers reg byte a +Statement [101] (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 ← (byte) current_orientation#18 - (byte/signed byte/word/signed word/dword/signed dword) 16 [ current_piece#13 current_xpos#23 current_ypos#16 current_orientation#18 current_piece_gfx#17 play_move_rotate::$4 ] ( main:2::play_move_rotate:38 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::render#2 current_piece#13 current_xpos#23 current_ypos#16 current_orientation#18 current_piece_gfx#17 play_move_rotate::$4 ] ) always clobbers reg byte a +Statement [102] (byte) play_move_rotate::orientation#1 ← (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 & (byte/signed byte/word/signed word/dword/signed dword) 63 [ current_piece#13 current_xpos#23 current_ypos#16 current_orientation#18 current_piece_gfx#17 play_move_rotate::orientation#1 ] ( main:2::play_move_rotate:38 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::render#2 current_piece#13 current_xpos#23 current_ypos#16 current_orientation#18 current_piece_gfx#17 play_move_rotate::orientation#1 ] ) always clobbers reg byte a +Statement [104] (byte*) collision::piece_gfx#0 ← (byte*) current_piece#15 + (byte) collision::orientation#4 [ collision::ypos#4 collision::xpos#5 collision::piece_gfx#0 ] ( main:2::play_move_rotate:38::collision:95 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::render#2 current_piece#13 current_xpos#23 current_ypos#16 current_orientation#18 current_piece_gfx#17 play_move_rotate::orientation#3 collision::ypos#4 collision::xpos#5 collision::piece_gfx#0 ] main:2::play_move_leftright:33::collision:133 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::key_event#0 main::render#1 current_piece_gfx#17 current_piece#13 current_ypos#16 current_orientation#18 current_xpos#19 collision::ypos#4 collision::xpos#5 collision::piece_gfx#0 ] main:2::play_move_leftright:33::collision:144 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::key_event#0 main::render#1 current_piece_gfx#17 current_piece#13 current_ypos#16 current_orientation#18 current_xpos#19 collision::ypos#4 collision::xpos#5 collision::piece_gfx#0 ] main:2::play_move_down:28::collision:168 [ keyboard_events_size#16 main::key_event#0 current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 collision::ypos#4 collision::xpos#5 collision::piece_gfx#0 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:82 [ main::render#1 ] -Statement [104] (byte) collision::ypos2#0 ← (byte) collision::ypos#4 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ collision::xpos#5 collision::piece_gfx#0 collision::ypos2#0 ] ( main:2::play_move_rotate:36::collision:94 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::render#2 current_piece#13 current_xpos#23 current_ypos#16 current_orientation#18 current_piece_gfx#17 play_move_rotate::orientation#3 collision::xpos#5 collision::piece_gfx#0 collision::ypos2#0 ] main:2::play_move_leftright:31::collision:132 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::key_event#0 main::render#1 current_piece_gfx#17 current_piece#13 current_ypos#16 current_orientation#18 current_xpos#19 collision::xpos#5 collision::piece_gfx#0 collision::ypos2#0 ] main:2::play_move_leftright:31::collision:143 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::key_event#0 main::render#1 current_piece_gfx#17 current_piece#13 current_ypos#16 current_orientation#18 current_xpos#19 collision::xpos#5 collision::piece_gfx#0 collision::ypos2#0 ] main:2::play_move_down:26::collision:167 [ keyboard_events_size#16 main::key_event#0 current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 collision::xpos#5 collision::piece_gfx#0 collision::ypos2#0 ] ) always clobbers reg byte a -Statement [106] (byte*) collision::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) collision::ypos2#2) [ collision::xpos#5 collision::piece_gfx#0 collision::ypos2#2 collision::i#3 collision::l#6 collision::playfield_line#0 ] ( main:2::play_move_rotate:36::collision:94 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::render#2 current_piece#13 current_xpos#23 current_ypos#16 current_orientation#18 current_piece_gfx#17 play_move_rotate::orientation#3 collision::xpos#5 collision::piece_gfx#0 collision::ypos2#2 collision::i#3 collision::l#6 collision::playfield_line#0 ] main:2::play_move_leftright:31::collision:132 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::key_event#0 main::render#1 current_piece_gfx#17 current_piece#13 current_ypos#16 current_orientation#18 current_xpos#19 collision::xpos#5 collision::piece_gfx#0 collision::ypos2#2 collision::i#3 collision::l#6 collision::playfield_line#0 ] main:2::play_move_leftright:31::collision:143 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::key_event#0 main::render#1 current_piece_gfx#17 current_piece#13 current_ypos#16 current_orientation#18 current_xpos#19 collision::xpos#5 collision::piece_gfx#0 collision::ypos2#2 collision::i#3 collision::l#6 collision::playfield_line#0 ] main:2::play_move_down:26::collision:167 [ keyboard_events_size#16 main::key_event#0 current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 collision::xpos#5 collision::piece_gfx#0 collision::ypos2#2 collision::i#3 collision::l#6 collision::playfield_line#0 ] ) always clobbers reg byte a +Statement [105] (byte) collision::ypos2#0 ← (byte) collision::ypos#4 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ collision::xpos#5 collision::piece_gfx#0 collision::ypos2#0 ] ( main:2::play_move_rotate:38::collision:95 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::render#2 current_piece#13 current_xpos#23 current_ypos#16 current_orientation#18 current_piece_gfx#17 play_move_rotate::orientation#3 collision::xpos#5 collision::piece_gfx#0 collision::ypos2#0 ] main:2::play_move_leftright:33::collision:133 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::key_event#0 main::render#1 current_piece_gfx#17 current_piece#13 current_ypos#16 current_orientation#18 current_xpos#19 collision::xpos#5 collision::piece_gfx#0 collision::ypos2#0 ] main:2::play_move_leftright:33::collision:144 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::key_event#0 main::render#1 current_piece_gfx#17 current_piece#13 current_ypos#16 current_orientation#18 current_xpos#19 collision::xpos#5 collision::piece_gfx#0 collision::ypos2#0 ] main:2::play_move_down:28::collision:168 [ keyboard_events_size#16 main::key_event#0 current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 collision::xpos#5 collision::piece_gfx#0 collision::ypos2#0 ] ) always clobbers reg byte a +Statement [107] (byte*) collision::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) collision::ypos2#2) [ collision::xpos#5 collision::piece_gfx#0 collision::ypos2#2 collision::i#3 collision::l#6 collision::playfield_line#0 ] ( main:2::play_move_rotate:38::collision:95 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::render#2 current_piece#13 current_xpos#23 current_ypos#16 current_orientation#18 current_piece_gfx#17 play_move_rotate::orientation#3 collision::xpos#5 collision::piece_gfx#0 collision::ypos2#2 collision::i#3 collision::l#6 collision::playfield_line#0 ] main:2::play_move_leftright:33::collision:133 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::key_event#0 main::render#1 current_piece_gfx#17 current_piece#13 current_ypos#16 current_orientation#18 current_xpos#19 collision::xpos#5 collision::piece_gfx#0 collision::ypos2#2 collision::i#3 collision::l#6 collision::playfield_line#0 ] main:2::play_move_leftright:33::collision:144 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::key_event#0 main::render#1 current_piece_gfx#17 current_piece#13 current_ypos#16 current_orientation#18 current_xpos#19 collision::xpos#5 collision::piece_gfx#0 collision::ypos2#2 collision::i#3 collision::l#6 collision::playfield_line#0 ] main:2::play_move_down:28::collision:168 [ keyboard_events_size#16 main::key_event#0 current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 collision::xpos#5 collision::piece_gfx#0 collision::ypos2#2 collision::i#3 collision::l#6 collision::playfield_line#0 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:26 [ collision::ypos2#2 collision::ypos2#0 collision::ypos2#1 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:28 [ collision::i#2 collision::i#3 collision::i#11 collision::i#13 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:27 [ collision::l#6 collision::l#1 ] -Statement [110] if(*((byte*) collision::piece_gfx#0 + (byte) collision::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto collision::@3 [ collision::xpos#5 collision::piece_gfx#0 collision::ypos2#2 collision::l#6 collision::playfield_line#0 collision::col#2 collision::c#2 collision::i#1 ] ( main:2::play_move_rotate:36::collision:94 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::render#2 current_piece#13 current_xpos#23 current_ypos#16 current_orientation#18 current_piece_gfx#17 play_move_rotate::orientation#3 collision::xpos#5 collision::piece_gfx#0 collision::ypos2#2 collision::l#6 collision::playfield_line#0 collision::col#2 collision::c#2 collision::i#1 ] main:2::play_move_leftright:31::collision:132 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::key_event#0 main::render#1 current_piece_gfx#17 current_piece#13 current_ypos#16 current_orientation#18 current_xpos#19 collision::xpos#5 collision::piece_gfx#0 collision::ypos2#2 collision::l#6 collision::playfield_line#0 collision::col#2 collision::c#2 collision::i#1 ] main:2::play_move_leftright:31::collision:143 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::key_event#0 main::render#1 current_piece_gfx#17 current_piece#13 current_ypos#16 current_orientation#18 current_xpos#19 collision::xpos#5 collision::piece_gfx#0 collision::ypos2#2 collision::l#6 collision::playfield_line#0 collision::col#2 collision::c#2 collision::i#1 ] main:2::play_move_down:26::collision:167 [ keyboard_events_size#16 main::key_event#0 current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 collision::xpos#5 collision::piece_gfx#0 collision::ypos2#2 collision::l#6 collision::playfield_line#0 collision::col#2 collision::c#2 collision::i#1 ] ) always clobbers reg byte a +Statement [111] if(*((byte*) collision::piece_gfx#0 + (byte) collision::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto collision::@3 [ collision::xpos#5 collision::piece_gfx#0 collision::ypos2#2 collision::l#6 collision::playfield_line#0 collision::col#2 collision::c#2 collision::i#1 ] ( main:2::play_move_rotate:38::collision:95 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::render#2 current_piece#13 current_xpos#23 current_ypos#16 current_orientation#18 current_piece_gfx#17 play_move_rotate::orientation#3 collision::xpos#5 collision::piece_gfx#0 collision::ypos2#2 collision::l#6 collision::playfield_line#0 collision::col#2 collision::c#2 collision::i#1 ] main:2::play_move_leftright:33::collision:133 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::key_event#0 main::render#1 current_piece_gfx#17 current_piece#13 current_ypos#16 current_orientation#18 current_xpos#19 collision::xpos#5 collision::piece_gfx#0 collision::ypos2#2 collision::l#6 collision::playfield_line#0 collision::col#2 collision::c#2 collision::i#1 ] main:2::play_move_leftright:33::collision:144 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::key_event#0 main::render#1 current_piece_gfx#17 current_piece#13 current_ypos#16 current_orientation#18 current_xpos#19 collision::xpos#5 collision::piece_gfx#0 collision::ypos2#2 collision::l#6 collision::playfield_line#0 collision::col#2 collision::c#2 collision::i#1 ] main:2::play_move_down:28::collision:168 [ keyboard_events_size#16 main::key_event#0 current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 collision::xpos#5 collision::piece_gfx#0 collision::ypos2#2 collision::l#6 collision::playfield_line#0 collision::col#2 collision::c#2 collision::i#1 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:29 [ collision::col#2 collision::col#9 collision::col#1 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:30 [ collision::c#2 collision::c#1 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:103 [ collision::i#1 ] -Statement [114] (byte~) collision::$7 ← (byte) collision::col#2 & (byte/word/signed word/dword/signed dword) 128 [ collision::xpos#5 collision::piece_gfx#0 collision::ypos2#2 collision::l#6 collision::playfield_line#0 collision::col#2 collision::c#2 collision::i#1 collision::$7 ] ( main:2::play_move_rotate:36::collision:94 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::render#2 current_piece#13 current_xpos#23 current_ypos#16 current_orientation#18 current_piece_gfx#17 play_move_rotate::orientation#3 collision::xpos#5 collision::piece_gfx#0 collision::ypos2#2 collision::l#6 collision::playfield_line#0 collision::col#2 collision::c#2 collision::i#1 collision::$7 ] main:2::play_move_leftright:31::collision:132 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::key_event#0 main::render#1 current_piece_gfx#17 current_piece#13 current_ypos#16 current_orientation#18 current_xpos#19 collision::xpos#5 collision::piece_gfx#0 collision::ypos2#2 collision::l#6 collision::playfield_line#0 collision::col#2 collision::c#2 collision::i#1 collision::$7 ] main:2::play_move_leftright:31::collision:143 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::key_event#0 main::render#1 current_piece_gfx#17 current_piece#13 current_ypos#16 current_orientation#18 current_xpos#19 collision::xpos#5 collision::piece_gfx#0 collision::ypos2#2 collision::l#6 collision::playfield_line#0 collision::col#2 collision::c#2 collision::i#1 collision::$7 ] main:2::play_move_down:26::collision:167 [ keyboard_events_size#16 main::key_event#0 current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 collision::xpos#5 collision::piece_gfx#0 collision::ypos2#2 collision::l#6 collision::playfield_line#0 collision::col#2 collision::c#2 collision::i#1 collision::$7 ] ) always clobbers reg byte a -Statement [117] if(*((byte*) collision::playfield_line#0 + (byte) collision::col#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto collision::@3 [ collision::xpos#5 collision::piece_gfx#0 collision::ypos2#2 collision::l#6 collision::playfield_line#0 collision::col#2 collision::c#2 collision::i#1 ] ( main:2::play_move_rotate:36::collision:94 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::render#2 current_piece#13 current_xpos#23 current_ypos#16 current_orientation#18 current_piece_gfx#17 play_move_rotate::orientation#3 collision::xpos#5 collision::piece_gfx#0 collision::ypos2#2 collision::l#6 collision::playfield_line#0 collision::col#2 collision::c#2 collision::i#1 ] main:2::play_move_leftright:31::collision:132 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::key_event#0 main::render#1 current_piece_gfx#17 current_piece#13 current_ypos#16 current_orientation#18 current_xpos#19 collision::xpos#5 collision::piece_gfx#0 collision::ypos2#2 collision::l#6 collision::playfield_line#0 collision::col#2 collision::c#2 collision::i#1 ] main:2::play_move_leftright:31::collision:143 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::key_event#0 main::render#1 current_piece_gfx#17 current_piece#13 current_ypos#16 current_orientation#18 current_xpos#19 collision::xpos#5 collision::piece_gfx#0 collision::ypos2#2 collision::l#6 collision::playfield_line#0 collision::col#2 collision::c#2 collision::i#1 ] main:2::play_move_down:26::collision:167 [ keyboard_events_size#16 main::key_event#0 current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 collision::xpos#5 collision::piece_gfx#0 collision::ypos2#2 collision::l#6 collision::playfield_line#0 collision::col#2 collision::c#2 collision::i#1 ] ) always clobbers reg byte a -Statement [131] (byte*~) current_piece#72 ← (byte*) current_piece#13 [ current_piece#13 current_ypos#16 current_orientation#18 current_piece#72 collision::orientation#2 collision::ypos#2 collision::xpos#2 current_xpos#19 ] ( main:2::play_move_leftright:31 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::key_event#0 main::render#1 current_piece_gfx#17 current_piece#13 current_ypos#16 current_orientation#18 current_piece#72 collision::orientation#2 collision::ypos#2 collision::xpos#2 current_xpos#19 ] ) always clobbers reg byte a -Statement [142] (byte*~) current_piece#71 ← (byte*) current_piece#13 [ current_piece#13 current_ypos#16 current_orientation#18 current_piece#71 collision::orientation#1 collision::ypos#1 collision::xpos#1 current_xpos#19 ] ( main:2::play_move_leftright:31 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::key_event#0 main::render#1 current_piece_gfx#17 current_piece#13 current_ypos#16 current_orientation#18 current_piece#71 collision::orientation#1 collision::ypos#1 collision::xpos#1 current_xpos#19 ] ) always clobbers reg byte a -Statement [166] (byte*~) current_piece#70 ← (byte*) current_piece#11 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_piece#70 collision::orientation#0 collision::ypos#0 collision::xpos#0 ] ( main:2::play_move_down:26 [ keyboard_events_size#16 main::key_event#0 current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_piece#70 collision::orientation#0 collision::ypos#0 collision::xpos#0 ] ) always clobbers reg byte a -Statement [177] (byte*~) current_piece#74 ← (byte*)*((const word[]) PIECES#0 + (byte~) spawn_current::$3) [ current_piece_gfx#10 current_piece_color#15 current_piece#74 ] ( main:2::play_move_down:26 [ keyboard_events_size#16 main::key_event#0 current_piece_gfx#10 current_piece_color#15 current_piece#74 ] ) always clobbers reg byte a -Statement [186] (byte~) spawn_current::$3 ← (byte) spawn_current::piece_idx#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ spawn_current::$3 spawn_current::piece_idx#2 ] ( main:2::spawn_current:9 [ spawn_current::$3 spawn_current::piece_idx#2 ] main:2::play_move_down:26::spawn_current:176 [ keyboard_events_size#16 main::key_event#0 spawn_current::$3 spawn_current::piece_idx#2 ] ) always clobbers reg byte a +Statement [115] (byte~) collision::$7 ← (byte) collision::col#2 & (byte/word/signed word/dword/signed dword) 128 [ collision::xpos#5 collision::piece_gfx#0 collision::ypos2#2 collision::l#6 collision::playfield_line#0 collision::col#2 collision::c#2 collision::i#1 collision::$7 ] ( main:2::play_move_rotate:38::collision:95 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::render#2 current_piece#13 current_xpos#23 current_ypos#16 current_orientation#18 current_piece_gfx#17 play_move_rotate::orientation#3 collision::xpos#5 collision::piece_gfx#0 collision::ypos2#2 collision::l#6 collision::playfield_line#0 collision::col#2 collision::c#2 collision::i#1 collision::$7 ] main:2::play_move_leftright:33::collision:133 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::key_event#0 main::render#1 current_piece_gfx#17 current_piece#13 current_ypos#16 current_orientation#18 current_xpos#19 collision::xpos#5 collision::piece_gfx#0 collision::ypos2#2 collision::l#6 collision::playfield_line#0 collision::col#2 collision::c#2 collision::i#1 collision::$7 ] main:2::play_move_leftright:33::collision:144 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::key_event#0 main::render#1 current_piece_gfx#17 current_piece#13 current_ypos#16 current_orientation#18 current_xpos#19 collision::xpos#5 collision::piece_gfx#0 collision::ypos2#2 collision::l#6 collision::playfield_line#0 collision::col#2 collision::c#2 collision::i#1 collision::$7 ] main:2::play_move_down:28::collision:168 [ keyboard_events_size#16 main::key_event#0 current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 collision::xpos#5 collision::piece_gfx#0 collision::ypos2#2 collision::l#6 collision::playfield_line#0 collision::col#2 collision::c#2 collision::i#1 collision::$7 ] ) always clobbers reg byte a +Statement [118] if(*((byte*) collision::playfield_line#0 + (byte) collision::col#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto collision::@3 [ collision::xpos#5 collision::piece_gfx#0 collision::ypos2#2 collision::l#6 collision::playfield_line#0 collision::col#2 collision::c#2 collision::i#1 ] ( main:2::play_move_rotate:38::collision:95 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::render#2 current_piece#13 current_xpos#23 current_ypos#16 current_orientation#18 current_piece_gfx#17 play_move_rotate::orientation#3 collision::xpos#5 collision::piece_gfx#0 collision::ypos2#2 collision::l#6 collision::playfield_line#0 collision::col#2 collision::c#2 collision::i#1 ] main:2::play_move_leftright:33::collision:133 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::key_event#0 main::render#1 current_piece_gfx#17 current_piece#13 current_ypos#16 current_orientation#18 current_xpos#19 collision::xpos#5 collision::piece_gfx#0 collision::ypos2#2 collision::l#6 collision::playfield_line#0 collision::col#2 collision::c#2 collision::i#1 ] main:2::play_move_leftright:33::collision:144 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::key_event#0 main::render#1 current_piece_gfx#17 current_piece#13 current_ypos#16 current_orientation#18 current_xpos#19 collision::xpos#5 collision::piece_gfx#0 collision::ypos2#2 collision::l#6 collision::playfield_line#0 collision::col#2 collision::c#2 collision::i#1 ] main:2::play_move_down:28::collision:168 [ keyboard_events_size#16 main::key_event#0 current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 collision::xpos#5 collision::piece_gfx#0 collision::ypos2#2 collision::l#6 collision::playfield_line#0 collision::col#2 collision::c#2 collision::i#1 ] ) always clobbers reg byte a +Statement [132] (byte*~) current_piece#73 ← (byte*) current_piece#13 [ current_piece#13 current_ypos#16 current_orientation#18 current_piece#73 collision::orientation#2 collision::ypos#2 collision::xpos#2 current_xpos#19 ] ( main:2::play_move_leftright:33 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::key_event#0 main::render#1 current_piece_gfx#17 current_piece#13 current_ypos#16 current_orientation#18 current_piece#73 collision::orientation#2 collision::ypos#2 collision::xpos#2 current_xpos#19 ] ) always clobbers reg byte a +Statement [143] (byte*~) current_piece#72 ← (byte*) current_piece#13 [ current_piece#13 current_ypos#16 current_orientation#18 current_piece#72 collision::orientation#1 collision::ypos#1 collision::xpos#1 current_xpos#19 ] ( main:2::play_move_leftright:33 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::key_event#0 main::render#1 current_piece_gfx#17 current_piece#13 current_ypos#16 current_orientation#18 current_piece#72 collision::orientation#1 collision::ypos#1 collision::xpos#1 current_xpos#19 ] ) always clobbers reg byte a +Statement [167] (byte*~) current_piece#71 ← (byte*) current_piece#11 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_piece#71 collision::orientation#0 collision::ypos#0 collision::xpos#0 ] ( main:2::play_move_down:28 [ keyboard_events_size#16 main::key_event#0 current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_piece#71 collision::orientation#0 collision::ypos#0 collision::xpos#0 ] ) always clobbers reg byte a +Statement [178] (byte*~) current_piece#75 ← (byte*)*((const word[]) PIECES#0 + (byte~) spawn_current::$3) [ current_piece_gfx#10 current_piece_color#15 current_piece#75 ] ( main:2::play_move_down:28 [ keyboard_events_size#16 main::key_event#0 current_piece_gfx#10 current_piece_color#15 current_piece#75 ] ) always clobbers reg byte a +Statement [186] (byte~) spawn_current::$3 ← (byte) spawn_current::piece_idx#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ spawn_current::$3 spawn_current::piece_idx#2 ] ( main:2::spawn_current:11 [ spawn_current::$3 spawn_current::piece_idx#2 ] main:2::play_move_down:28::spawn_current:177 [ keyboard_events_size#16 main::key_event#0 spawn_current::$3 spawn_current::piece_idx#2 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:42 [ spawn_current::piece_idx#2 spawn_current::piece_idx#1 ] -Statement [187] (byte*) current_piece_gfx#10 ← (byte*)*((const word[]) PIECES#0 + (byte~) spawn_current::$3) + (byte/signed byte/word/signed word/dword/signed dword) 0 [ current_piece_gfx#10 spawn_current::$3 spawn_current::piece_idx#2 ] ( main:2::spawn_current:9 [ current_piece_gfx#10 spawn_current::$3 spawn_current::piece_idx#2 ] main:2::play_move_down:26::spawn_current:176 [ keyboard_events_size#16 main::key_event#0 current_piece_gfx#10 spawn_current::$3 spawn_current::piece_idx#2 ] ) always clobbers reg byte a -Statement [188] (byte) current_piece_color#15 ← *((const byte[]) PIECES_COLORS#0 + (byte) spawn_current::piece_idx#2) [ current_piece_gfx#10 current_piece_color#15 spawn_current::$3 ] ( main:2::spawn_current:9 [ current_piece_gfx#10 current_piece_color#15 spawn_current::$3 ] main:2::play_move_down:26::spawn_current:176 [ keyboard_events_size#16 main::key_event#0 current_piece_gfx#10 current_piece_color#15 spawn_current::$3 ] ) always clobbers reg byte a -Statement [194] (byte) spawn_current::piece_idx#1 ← (byte~) spawn_current::$1 & (byte/signed byte/word/signed word/dword/signed dword) 7 [ spawn_current::piece_idx#1 ] ( main:2::spawn_current:9 [ spawn_current::piece_idx#1 ] main:2::play_move_down:26::spawn_current:176 [ keyboard_events_size#16 main::key_event#0 spawn_current::piece_idx#1 ] ) always clobbers reg byte a -Statement [209] (byte) remove_line::i2#0 ← *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte~) remove_line::$0) - (byte/signed byte/word/signed word/dword/signed dword) 1 [ remove_line::ypos#0 remove_line::i2#0 ] ( main:2::play_move_down:26::remove_lines:174::remove_line:207 [ keyboard_events_size#16 main::key_event#0 remove_lines::done#3 remove_line::ypos#0 remove_line::i2#0 ] ) always clobbers reg byte a +Statement [187] (byte*) current_piece_gfx#10 ← (byte*)*((const word[]) PIECES#0 + (byte~) spawn_current::$3) + (byte/signed byte/word/signed word/dword/signed dword) 0 [ current_piece_gfx#10 spawn_current::$3 spawn_current::piece_idx#2 ] ( main:2::spawn_current:11 [ current_piece_gfx#10 spawn_current::$3 spawn_current::piece_idx#2 ] main:2::play_move_down:28::spawn_current:177 [ keyboard_events_size#16 main::key_event#0 current_piece_gfx#10 spawn_current::$3 spawn_current::piece_idx#2 ] ) always clobbers reg byte a +Statement [188] (byte) current_piece_color#15 ← *((const byte[]) PIECES_COLORS#0 + (byte) spawn_current::piece_idx#2) [ current_piece_gfx#10 current_piece_color#15 spawn_current::$3 ] ( main:2::spawn_current:11 [ current_piece_gfx#10 current_piece_color#15 spawn_current::$3 ] main:2::play_move_down:28::spawn_current:177 [ keyboard_events_size#16 main::key_event#0 current_piece_gfx#10 current_piece_color#15 spawn_current::$3 ] ) always clobbers reg byte a +Statement [194] (byte) spawn_current::piece_idx#1 ← (byte~) spawn_current::$1 & (byte/signed byte/word/signed word/dword/signed dword) 7 [ spawn_current::piece_idx#1 ] ( main:2::spawn_current:11 [ spawn_current::piece_idx#1 ] main:2::play_move_down:28::spawn_current:177 [ keyboard_events_size#16 main::key_event#0 spawn_current::piece_idx#1 ] ) always clobbers reg byte a +Statement [209] (byte) remove_line::i2#0 ← *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte~) remove_line::$0) - (byte/signed byte/word/signed word/dword/signed dword) 1 [ remove_line::ypos#0 remove_line::i2#0 ] ( main:2::play_move_down:28::remove_lines:175::remove_line:207 [ keyboard_events_size#16 main::key_event#0 remove_lines::done#3 remove_line::ypos#0 remove_line::i2#0 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:43 [ remove_lines::done#3 remove_lines::done#2 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:44 [ remove_line::y#4 remove_line::ypos#0 remove_line::y#1 ] -Statement [210] (byte) remove_line::i1#0 ← *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0 + (byte) remove_line::ypos#0) - (byte/signed byte/word/signed word/dword/signed dword) 1 [ remove_line::ypos#0 remove_line::i2#0 remove_line::i1#0 ] ( main:2::play_move_down:26::remove_lines:174::remove_line:207 [ keyboard_events_size#16 main::key_event#0 remove_lines::done#3 remove_line::ypos#0 remove_line::i2#0 remove_line::i1#0 ] ) always clobbers reg byte a +Statement [210] (byte) remove_line::i1#0 ← *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0 + (byte) remove_line::ypos#0) - (byte/signed byte/word/signed word/dword/signed dword) 1 [ remove_line::ypos#0 remove_line::i2#0 remove_line::i1#0 ] ( main:2::play_move_down:28::remove_lines:175::remove_line:207 [ keyboard_events_size#16 main::key_event#0 remove_lines::done#3 remove_line::ypos#0 remove_line::i2#0 remove_line::i1#0 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:46 [ remove_line::i2#2 remove_line::i2#3 remove_line::i2#0 remove_line::i2#1 ] -Statement [213] *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) remove_line::i2#2) ← *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) remove_line::i1#2) [ remove_line::y#4 remove_line::i1#2 remove_line::i2#2 remove_line::x#2 ] ( main:2::play_move_down:26::remove_lines:174::remove_line:207 [ keyboard_events_size#16 main::key_event#0 remove_lines::done#3 remove_line::y#4 remove_line::i1#2 remove_line::i2#2 remove_line::x#2 ] ) always clobbers reg byte a +Statement [213] *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) remove_line::i2#2) ← *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) remove_line::i1#2) [ remove_line::y#4 remove_line::i1#2 remove_line::i2#2 remove_line::x#2 ] ( main:2::play_move_down:28::remove_lines:175::remove_line:207 [ keyboard_events_size#16 main::key_event#0 remove_lines::done#3 remove_line::y#4 remove_line::i1#2 remove_line::i2#2 remove_line::x#2 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:45 [ remove_line::i1#2 remove_line::i1#3 remove_line::i1#0 remove_line::i1#1 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:47 [ remove_line::x#2 remove_line::x#1 ] -Statement [225] if(*((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) find_line::i#2)!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto find_line::@13 [ find_line::y#8 find_line::x#2 find_line::filled#4 find_line::i#1 ] ( main:2::play_move_down:26::remove_lines:174::find_line:199 [ keyboard_events_size#16 main::key_event#0 remove_lines::done#3 find_line::y#8 find_line::x#2 find_line::filled#4 find_line::i#1 ] ) always clobbers reg byte a +Statement [225] if(*((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) find_line::i#2)!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto find_line::@13 [ find_line::y#8 find_line::x#2 find_line::filled#4 find_line::i#1 ] ( main:2::play_move_down:28::remove_lines:175::find_line:199 [ keyboard_events_size#16 main::key_event#0 remove_lines::done#3 find_line::y#8 find_line::x#2 find_line::filled#4 find_line::i#1 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:51 [ find_line::return#2 find_line::y#8 find_line::y#1 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:49 [ find_line::x#2 find_line::x#1 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:50 [ find_line::filled#4 find_line::filled#2 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:120 [ find_line::i#1 ] -Statement [237] (byte) lock_current::ypos2#0 ← (byte) current_ypos#12 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ current_piece_gfx#15 current_xpos#16 current_piece_color#11 lock_current::ypos2#0 ] ( main:2::play_move_down:26::lock_current:172 [ keyboard_events_size#16 main::key_event#0 current_piece_gfx#15 current_xpos#16 current_piece_color#11 lock_current::ypos2#0 ] ) always clobbers reg byte a -Statement [239] (byte*) lock_current::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) lock_current::ypos2#2) [ current_piece_gfx#15 current_xpos#16 current_piece_color#11 lock_current::ypos2#2 lock_current::i#3 lock_current::l#6 lock_current::playfield_line#0 ] ( main:2::play_move_down:26::lock_current:172 [ keyboard_events_size#16 main::key_event#0 current_piece_gfx#15 current_xpos#16 current_piece_color#11 lock_current::ypos2#2 lock_current::i#3 lock_current::l#6 lock_current::playfield_line#0 ] ) always clobbers reg byte a +Statement [237] (byte) lock_current::ypos2#0 ← (byte) current_ypos#12 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ current_piece_gfx#15 current_xpos#16 current_piece_color#11 lock_current::ypos2#0 ] ( main:2::play_move_down:28::lock_current:173 [ keyboard_events_size#16 main::key_event#0 current_piece_gfx#15 current_xpos#16 current_piece_color#11 lock_current::ypos2#0 ] ) always clobbers reg byte a +Statement [239] (byte*) lock_current::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) lock_current::ypos2#2) [ current_piece_gfx#15 current_xpos#16 current_piece_color#11 lock_current::ypos2#2 lock_current::i#3 lock_current::l#6 lock_current::playfield_line#0 ] ( main:2::play_move_down:28::lock_current:173 [ keyboard_events_size#16 main::key_event#0 current_piece_gfx#15 current_xpos#16 current_piece_color#11 lock_current::ypos2#2 lock_current::i#3 lock_current::l#6 lock_current::playfield_line#0 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:52 [ lock_current::ypos2#2 lock_current::ypos2#0 lock_current::ypos2#1 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:54 [ lock_current::i#2 lock_current::i#3 lock_current::i#7 lock_current::i#9 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:53 [ lock_current::l#6 lock_current::l#1 ] -Statement [243] if(*((byte*) current_piece_gfx#15 + (byte) lock_current::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto lock_current::@3 [ current_piece_gfx#15 current_xpos#16 current_piece_color#11 lock_current::ypos2#2 lock_current::l#6 lock_current::playfield_line#0 lock_current::col#2 lock_current::c#2 lock_current::i#1 ] ( main:2::play_move_down:26::lock_current:172 [ keyboard_events_size#16 main::key_event#0 current_piece_gfx#15 current_xpos#16 current_piece_color#11 lock_current::ypos2#2 lock_current::l#6 lock_current::playfield_line#0 lock_current::col#2 lock_current::c#2 lock_current::i#1 ] ) always clobbers reg byte a +Statement [243] if(*((byte*) current_piece_gfx#15 + (byte) lock_current::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto lock_current::@3 [ current_piece_gfx#15 current_xpos#16 current_piece_color#11 lock_current::ypos2#2 lock_current::l#6 lock_current::playfield_line#0 lock_current::col#2 lock_current::c#2 lock_current::i#1 ] ( main:2::play_move_down:28::lock_current:173 [ keyboard_events_size#16 main::key_event#0 current_piece_gfx#15 current_xpos#16 current_piece_color#11 lock_current::ypos2#2 lock_current::l#6 lock_current::playfield_line#0 lock_current::col#2 lock_current::c#2 lock_current::i#1 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:55 [ lock_current::col#2 lock_current::col#0 lock_current::col#1 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:56 [ lock_current::c#2 lock_current::c#1 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:123 [ lock_current::i#1 ] -Statement [244] *((byte*) lock_current::playfield_line#0 + (byte) lock_current::col#2) ← (byte) current_piece_color#11 [ current_piece_gfx#15 current_xpos#16 current_piece_color#11 lock_current::ypos2#2 lock_current::l#6 lock_current::playfield_line#0 lock_current::col#2 lock_current::c#2 lock_current::i#1 ] ( main:2::play_move_down:26::lock_current:172 [ keyboard_events_size#16 main::key_event#0 current_piece_gfx#15 current_xpos#16 current_piece_color#11 lock_current::ypos2#2 lock_current::l#6 lock_current::playfield_line#0 lock_current::col#2 lock_current::c#2 lock_current::i#1 ] ) always clobbers reg byte a -Statement [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:2::play_move_down:26::keyboard_event_pressed:152 [ keyboard_events_size#16 main::key_event#0 current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#10 play_move_down::movedown#10 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] main:2::keyboard_event_scan:20::keyboard_event_pressed:277 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#15 keyboard_events_size#13 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] main:2::keyboard_event_scan:20::keyboard_event_pressed:283 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#15 keyboard_events_size#13 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] main:2::keyboard_event_scan:20::keyboard_event_pressed:289 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#15 keyboard_events_size#13 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] main:2::keyboard_event_scan:20::keyboard_event_pressed:295 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#15 keyboard_events_size#13 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] ) always clobbers reg byte a +Statement [244] *((byte*) lock_current::playfield_line#0 + (byte) lock_current::col#2) ← (byte) current_piece_color#11 [ current_piece_gfx#15 current_xpos#16 current_piece_color#11 lock_current::ypos2#2 lock_current::l#6 lock_current::playfield_line#0 lock_current::col#2 lock_current::c#2 lock_current::i#1 ] ( main:2::play_move_down:28::lock_current:173 [ keyboard_events_size#16 main::key_event#0 current_piece_gfx#15 current_xpos#16 current_piece_color#11 lock_current::ypos2#2 lock_current::l#6 lock_current::playfield_line#0 lock_current::col#2 lock_current::c#2 lock_current::i#1 ] ) always clobbers reg byte a +Statement [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:2::play_move_down:28::keyboard_event_pressed:153 [ keyboard_events_size#16 main::key_event#0 current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#10 play_move_down::movedown#10 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] main:2::keyboard_event_scan:22::keyboard_event_pressed:277 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#15 keyboard_events_size#13 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] main:2::keyboard_event_scan:22::keyboard_event_pressed:283 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#15 keyboard_events_size#13 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] main:2::keyboard_event_scan:22::keyboard_event_pressed:289 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#15 keyboard_events_size#13 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] main:2::keyboard_event_scan:22::keyboard_event_pressed:295 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#15 keyboard_events_size#13 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:33 [ play_move_down::movedown#6 play_move_down::movedown#3 play_move_down::movedown#7 play_move_down::movedown#2 play_move_down::movedown#10 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:57 [ keyboard_event_pressed::keycode#5 ] -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:2::play_move_down:26::keyboard_event_pressed:152 [ keyboard_events_size#16 main::key_event#0 current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#10 play_move_down::movedown#10 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:2::keyboard_event_scan:20::keyboard_event_pressed:277 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#15 keyboard_events_size#13 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:2::keyboard_event_scan:20::keyboard_event_pressed:283 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#15 keyboard_events_size#13 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:2::keyboard_event_scan:20::keyboard_event_pressed:289 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#15 keyboard_events_size#13 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:2::keyboard_event_scan:20::keyboard_event_pressed:295 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#15 keyboard_events_size#13 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] ) always clobbers reg byte a +Statement [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:2::play_move_down:28::keyboard_event_pressed:153 [ keyboard_events_size#16 main::key_event#0 current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#10 play_move_down::movedown#10 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:2::keyboard_event_scan:22::keyboard_event_pressed:277 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#15 keyboard_events_size#13 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:2::keyboard_event_scan:22::keyboard_event_pressed:283 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#15 keyboard_events_size#13 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:2::keyboard_event_scan:22::keyboard_event_pressed:289 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#15 keyboard_events_size#13 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:2::keyboard_event_scan:22::keyboard_event_pressed:295 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#15 keyboard_events_size#13 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:125 [ 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:2::play_move_down:26::keyboard_event_pressed:152 [ keyboard_events_size#16 main::key_event#0 current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#10 play_move_down::movedown#10 keyboard_event_pressed::return#11 ] main:2::keyboard_event_scan:20::keyboard_event_pressed:277 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#15 keyboard_events_size#13 keyboard_event_pressed::return#11 ] main:2::keyboard_event_scan:20::keyboard_event_pressed:283 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#15 keyboard_events_size#13 keyboard_event_pressed::return#11 ] main:2::keyboard_event_scan:20::keyboard_event_pressed:289 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#15 keyboard_events_size#13 keyboard_event_pressed::return#11 ] main:2::keyboard_event_scan:20::keyboard_event_pressed:295 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#15 keyboard_events_size#13 keyboard_event_pressed::return#11 ] ) always clobbers reg byte a -Statement [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:2::keyboard_event_scan:20 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#15 keyboard_event_scan::row#2 keyboard_events_size#29 keyboard_event_scan::keycode#1 ] ) always clobbers reg byte a +Statement [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:2::play_move_down:28::keyboard_event_pressed:153 [ keyboard_events_size#16 main::key_event#0 current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#10 play_move_down::movedown#10 keyboard_event_pressed::return#11 ] main:2::keyboard_event_scan:22::keyboard_event_pressed:277 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#15 keyboard_events_size#13 keyboard_event_pressed::return#11 ] main:2::keyboard_event_scan:22::keyboard_event_pressed:283 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#15 keyboard_events_size#13 keyboard_event_pressed::return#11 ] main:2::keyboard_event_scan:22::keyboard_event_pressed:289 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#15 keyboard_events_size#13 keyboard_event_pressed::return#11 ] main:2::keyboard_event_scan:22::keyboard_event_pressed:295 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#15 keyboard_events_size#13 keyboard_event_pressed::return#11 ] ) always clobbers reg byte a +Statement [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:2::keyboard_event_scan:22 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#15 keyboard_event_scan::row#2 keyboard_events_size#29 keyboard_event_scan::keycode#1 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:59 [ keyboard_event_scan::row#2 keyboard_event_scan::row#1 ] -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:2::keyboard_event_scan:20 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#15 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::$3 ] ) always clobbers reg byte a +Statement [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:2::keyboard_event_scan:22 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#15 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::$3 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:130 [ keyboard_event_scan::row_scan#0 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:60 [ keyboard_event_scan::col#2 keyboard_event_scan::col#1 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:61 [ 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:2::keyboard_event_scan:20 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#15 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::$4 ] ) always clobbers reg byte a -Statement [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:2::keyboard_event_scan:20 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#15 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::event_type#0 ] ) always clobbers reg byte a -Statement [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:2::keyboard_event_scan:20 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#15 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 ] ) always clobbers reg byte a -Statement [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:2::keyboard_event_scan:20 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#15 keyboard_event_scan::row#2 keyboard_event_scan::keycode#15 keyboard_events_size#30 ] ) always clobbers reg byte a -Statement [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:2::keyboard_event_scan:20 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#15 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::$11 ] ) always clobbers reg byte a -Statement [318] *((const byte*) CIA1_PORT_A#0) ← *((const byte[8]) keyboard_matrix_row_bitmask#0 + (byte) keyboard_matrix_read::rowid#0) [ ] ( main:2::keyboard_event_scan:20::keyboard_matrix_read:268 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#15 keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#29 ] ) always clobbers reg byte a -Statement [319] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) [ keyboard_matrix_read::return#0 ] ( main:2::keyboard_event_scan:20::keyboard_matrix_read:268 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#15 keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#29 keyboard_matrix_read::return#0 ] ) always clobbers reg byte a -Statement [326] (byte~) init::$5 ← (byte) init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ init::i#2 init::li#2 init::$5 ] ( main:2::init:7 [ init::i#2 init::li#2 init::$5 ] ) always clobbers reg byte a -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:63 [ init::i#2 init::i#1 ] -Statement [327] *((const byte*[PLAYFIELD_LINES#0+3]) screen_lines#0 + (byte~) init::$5) ← (byte*) init::li#2 [ init::i#2 init::li#2 ] ( main:2::init:7 [ init::i#2 init::li#2 ] ) always clobbers reg byte a -Statement [328] (byte*) init::li#1 ← (byte*) init::li#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ init::i#2 init::li#1 ] ( main:2::init:7 [ init::i#2 init::li#1 ] ) always clobbers reg byte a -Statement [332] (byte~) init::$8 ← (byte) init::j#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ init::j#2 init::pli#2 init::idx#2 init::$8 ] ( main:2::init:7 [ init::j#2 init::pli#2 init::idx#2 init::$8 ] ) always clobbers reg byte a -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:66 [ init::j#2 init::j#1 ] -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:69 [ init::idx#2 init::idx#1 ] -Statement [333] *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte~) init::$8) ← (byte*) init::pli#2 [ init::j#2 init::pli#2 init::idx#2 ] ( main:2::init:7 [ init::j#2 init::pli#2 init::idx#2 ] ) always clobbers reg byte a -Statement [334] *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0 + (byte) init::j#2) ← (byte) init::idx#2 [ init::j#2 init::pli#2 init::idx#2 ] ( main:2::init:7 [ init::j#2 init::pli#2 init::idx#2 ] ) always clobbers reg byte a -Statement [335] (byte*) init::pli#1 ← (byte*) init::pli#2 + (const byte) PLAYFIELD_COLS#0 [ init::j#2 init::idx#2 init::pli#1 ] ( main:2::init:7 [ init::j#2 init::idx#2 init::pli#1 ] ) always clobbers reg byte a -Statement [336] (byte) init::idx#1 ← (byte) init::idx#2 + (const byte) PLAYFIELD_COLS#0 [ init::j#2 init::pli#1 init::idx#1 ] ( main:2::init:7 [ init::j#2 init::pli#1 init::idx#1 ] ) always clobbers reg byte a -Statement [339] *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0+(const byte) PLAYFIELD_LINES#0) ← (const byte) PLAYFIELD_COLS#0*(const byte) PLAYFIELD_LINES#0 [ ] ( main:2::init:7 [ ] ) always clobbers reg byte a -Statement [342] (byte*~) init::$14 ← (byte*) init::line#4 + (byte) init::c#2 [ init::line#4 init::l#4 init::c#2 init::$14 ] ( main:2::init:7 [ init::line#4 init::l#4 init::c#2 init::$14 ] ) always clobbers reg byte a -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:72 [ init::l#4 init::l#1 ] -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:73 [ init::c#2 init::c#1 ] -Statement [343] *((byte*~) init::$14) ← (const byte) DARK_GREY#0 [ init::line#4 init::l#4 init::c#2 ] ( main:2::init:7 [ init::line#4 init::l#4 init::c#2 ] ) always clobbers reg byte a reg byte y -Removing always clobbered register reg byte y as potential for zp ZP_BYTE:72 [ init::l#4 init::l#1 ] -Removing always clobbered register reg byte y as potential for zp ZP_BYTE:73 [ init::c#2 init::c#1 ] -Statement [346] (byte*) init::line#1 ← (byte*) init::line#4 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ init::l#4 init::line#1 ] ( main:2::init:7 [ init::l#4 init::line#1 ] ) always clobbers reg byte a -Statement [351] (byte*) fill::end#0 ← (byte*) fill::addr#0 + (word/signed word/dword/signed dword) 1000 [ fill::addr#0 fill::val#3 fill::end#0 ] ( main:2::init:7::fill:322 [ fill::addr#0 fill::val#3 fill::end#0 ] main:2::init:7::fill:324 [ fill::addr#0 fill::val#3 fill::end#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:2::keyboard_event_scan:22 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#15 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::$4 ] ) always clobbers reg byte a +Statement [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:2::keyboard_event_scan:22 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#15 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::event_type#0 ] ) always clobbers reg byte a +Statement [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:2::keyboard_event_scan:22 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#15 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 ] ) always clobbers reg byte a +Statement [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:2::keyboard_event_scan:22 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#15 keyboard_event_scan::row#2 keyboard_event_scan::keycode#15 keyboard_events_size#30 ] ) always clobbers reg byte a +Statement [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:2::keyboard_event_scan:22 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#15 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::$11 ] ) always clobbers reg byte a +Statement [318] *((const byte*) CIA1_PORT_A#0) ← *((const byte[8]) keyboard_matrix_row_bitmask#0 + (byte) keyboard_matrix_read::rowid#0) [ ] ( main:2::keyboard_event_scan:22::keyboard_matrix_read:268 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#15 keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#29 ] ) always clobbers reg byte a +Statement [319] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) [ keyboard_matrix_read::return#0 ] ( main:2::keyboard_event_scan:22::keyboard_matrix_read:268 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#15 keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#29 keyboard_matrix_read::return#0 ] ) always clobbers reg byte a +Statement [323] (byte~) tables_init::$1 ← (byte) tables_init::j#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ tables_init::j#2 tables_init::pli#2 tables_init::idx#2 tables_init::$1 ] ( main:2::tables_init:9 [ tables_init::j#2 tables_init::pli#2 tables_init::idx#2 tables_init::$1 ] ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:63 [ tables_init::j#2 tables_init::j#1 ] +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:66 [ tables_init::idx#2 tables_init::idx#1 ] +Statement [324] *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte~) tables_init::$1) ← (byte*) tables_init::pli#2 [ tables_init::j#2 tables_init::pli#2 tables_init::idx#2 ] ( main:2::tables_init:9 [ tables_init::j#2 tables_init::pli#2 tables_init::idx#2 ] ) always clobbers reg byte a +Statement [325] *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0 + (byte) tables_init::j#2) ← (byte) tables_init::idx#2 [ tables_init::j#2 tables_init::pli#2 tables_init::idx#2 ] ( main:2::tables_init:9 [ tables_init::j#2 tables_init::pli#2 tables_init::idx#2 ] ) always clobbers reg byte a +Statement [326] (byte*) tables_init::pli#1 ← (byte*) tables_init::pli#2 + (const byte) PLAYFIELD_COLS#0 [ tables_init::j#2 tables_init::idx#2 tables_init::pli#1 ] ( main:2::tables_init:9 [ tables_init::j#2 tables_init::idx#2 tables_init::pli#1 ] ) always clobbers reg byte a +Statement [327] (byte) tables_init::idx#1 ← (byte) tables_init::idx#2 + (const byte) PLAYFIELD_COLS#0 [ tables_init::j#2 tables_init::pli#1 tables_init::idx#1 ] ( main:2::tables_init:9 [ tables_init::j#2 tables_init::pli#1 tables_init::idx#1 ] ) always clobbers reg byte a +Statement [330] *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0+(const byte) PLAYFIELD_LINES#0) ← (const byte) PLAYFIELD_COLS#0*(const byte) PLAYFIELD_LINES#0 [ ] ( main:2::tables_init:9 [ ] ) always clobbers reg byte a +Statement [337] (byte~) render_init::$5 ← (byte) render_init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ render_init::i#2 render_init::li#2 render_init::$5 ] ( main:2::render_init:7 [ render_init::i#2 render_init::li#2 render_init::$5 ] ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:67 [ render_init::i#2 render_init::i#1 ] +Statement [338] *((const byte*[PLAYFIELD_LINES#0+3]) screen_lines#0 + (byte~) render_init::$5) ← (byte*) render_init::li#2 [ render_init::i#2 render_init::li#2 ] ( main:2::render_init:7 [ render_init::i#2 render_init::li#2 ] ) always clobbers reg byte a +Statement [339] (byte*) render_init::li#1 ← (byte*) render_init::li#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ render_init::i#2 render_init::li#1 ] ( main:2::render_init:7 [ render_init::i#2 render_init::li#1 ] ) always clobbers reg byte a +Statement [344] (byte*~) render_init::$10 ← (byte*) render_init::line#4 + (byte) render_init::c#2 [ render_init::line#4 render_init::l#4 render_init::c#2 render_init::$10 ] ( main:2::render_init:7 [ render_init::line#4 render_init::l#4 render_init::c#2 render_init::$10 ] ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:72 [ render_init::l#4 render_init::l#1 ] +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:73 [ render_init::c#2 render_init::c#1 ] +Statement [345] *((byte*~) render_init::$10) ← (const byte) DARK_GREY#0 [ render_init::line#4 render_init::l#4 render_init::c#2 ] ( main:2::render_init:7 [ render_init::line#4 render_init::l#4 render_init::c#2 ] ) always clobbers reg byte a reg byte y +Removing always clobbered register reg byte y as potential for zp ZP_BYTE:72 [ render_init::l#4 render_init::l#1 ] +Removing always clobbered register reg byte y as potential for zp ZP_BYTE:73 [ render_init::c#2 render_init::c#1 ] +Statement [348] (byte*) render_init::line#1 ← (byte*) render_init::line#4 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ render_init::l#4 render_init::line#1 ] ( main:2::render_init:7 [ render_init::l#4 render_init::line#1 ] ) always clobbers reg byte a +Statement [353] (byte*) fill::end#0 ← (byte*) fill::addr#0 + (word/signed word/dword/signed dword) 1000 [ fill::addr#0 fill::val#3 fill::end#0 ] ( main:2::render_init:7::fill:333 [ fill::addr#0 fill::val#3 fill::end#0 ] main:2::render_init:7::fill:335 [ fill::addr#0 fill::val#3 fill::end#0 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:74 [ fill::val#3 ] -Statement [353] *((byte*) fill::addr#2) ← (byte) fill::val#3 [ fill::val#3 fill::end#0 fill::addr#2 ] ( main:2::init:7::fill:322 [ fill::val#3 fill::end#0 fill::addr#2 ] main:2::init:7::fill:324 [ fill::val#3 fill::end#0 fill::addr#2 ] ) always clobbers reg byte a reg byte y +Statement [355] *((byte*) fill::addr#2) ← (byte) fill::val#3 [ fill::val#3 fill::end#0 fill::addr#2 ] ( main:2::render_init:7::fill:333 [ fill::val#3 fill::end#0 fill::addr#2 ] main:2::render_init:7::fill:335 [ fill::val#3 fill::end#0 fill::addr#2 ] ) always clobbers reg byte a reg byte y Removing always clobbered register reg byte y as potential for zp ZP_BYTE:74 [ fill::val#3 ] -Statement [355] if((byte*) fill::addr#1!=(byte*) fill::end#0) goto fill::@1 [ fill::val#3 fill::end#0 fill::addr#1 ] ( main:2::init:7::fill:322 [ fill::val#3 fill::end#0 fill::addr#1 ] main:2::init:7::fill:324 [ fill::val#3 fill::end#0 fill::addr#1 ] ) always clobbers reg byte a -Statement [357] *((const word*) SID_VOICE3_FREQ#0) ← (word/dword/signed dword) 65535 [ ] ( main:2::sid_rnd_init:5 [ ] ) always clobbers reg byte a -Statement [358] *((const byte*) SID_VOICE3_CONTROL#0) ← (const byte) SID_CONTROL_NOISE#0 [ ] ( main:2::sid_rnd_init:5 [ ] ) always clobbers reg byte a -Statement [12] (byte*~) current_piece_gfx#85 ← (byte*) current_piece_gfx#10 [ current_piece_gfx#85 current_piece_gfx#10 current_piece_color#15 spawn_current::$3 ] ( main:2 [ current_piece_gfx#85 current_piece_gfx#10 current_piece_color#15 spawn_current::$3 ] ) always clobbers reg byte a -Statement [15] (byte*~) current_piece#69 ← (byte*)*((const word[]) PIECES#0 + (byte~) spawn_current::$3) [ current_piece_gfx#10 current_piece_color#15 current_piece#69 ] ( main:2 [ current_piece_gfx#10 current_piece_color#15 current_piece#69 ] ) always clobbers reg byte a -Statement [17] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@4 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 keyboard_events_size#19 current_movedown_counter#15 ] ( main:2 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 keyboard_events_size#19 current_movedown_counter#15 ] ) always clobbers reg byte a -Statement [18] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 254) goto main::@7 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 keyboard_events_size#19 current_movedown_counter#15 ] ( main:2 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 keyboard_events_size#19 current_movedown_counter#15 ] ) always clobbers reg byte a -Statement [29] (byte) main::render#1 ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte~) main::$9 [ current_piece#13 current_ypos#16 current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::key_event#0 main::render#1 current_orientation#18 current_piece_gfx#17 current_xpos#19 ] ( main:2 [ current_piece#13 current_ypos#16 current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::key_event#0 main::render#1 current_orientation#18 current_piece_gfx#17 current_xpos#19 ] ) always clobbers reg byte a -Statement [34] (byte) main::render#2 ← (byte) main::render#1 + (byte~) main::$10 [ current_piece#13 current_xpos#23 current_ypos#16 current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::key_event#0 main::render#2 current_orientation#18 current_piece_gfx#17 ] ( main:2 [ current_piece#13 current_xpos#23 current_ypos#16 current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::key_event#0 main::render#2 current_orientation#18 current_piece_gfx#17 ] ) always clobbers reg byte a -Statement [39] (byte) main::render#3 ← (byte) main::render#2 + (byte~) main::$11 [ current_piece#13 current_orientation#23 current_piece_gfx#18 current_xpos#23 current_ypos#16 current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::render#3 ] ( main:2 [ current_piece#13 current_orientation#23 current_piece_gfx#18 current_xpos#23 current_ypos#16 current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::render#3 ] ) always clobbers reg byte a -Statement [45] (byte*~) current_piece_gfx#86 ← (byte*) current_piece_gfx#18 [ current_piece#13 current_orientation#23 current_piece_gfx#18 current_xpos#23 current_ypos#16 current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 current_ypos#69 current_xpos#94 current_piece_gfx#86 ] ( main:2 [ current_piece#13 current_orientation#23 current_piece_gfx#18 current_xpos#23 current_ypos#16 current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 current_ypos#69 current_xpos#94 current_piece_gfx#86 ] ) always clobbers reg byte a -Statement [51] (byte) render_current::ypos2#0 ← (byte) current_ypos#22 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ current_xpos#63 current_piece_gfx#63 current_piece_color#65 render_current::ypos2#0 ] ( main:2::render_current:14 [ current_piece_gfx#10 current_piece_color#15 spawn_current::$3 current_xpos#63 current_piece_gfx#63 current_piece_color#65 render_current::ypos2#0 ] main:2::render_current:47 [ current_piece#13 current_orientation#23 current_piece_gfx#18 current_xpos#23 current_ypos#16 current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 current_xpos#63 current_piece_gfx#63 current_piece_color#65 render_current::ypos2#0 ] ) always clobbers reg byte a -Statement [54] (byte*) render_current::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0+3]) screen_lines#0 + (byte) render_current::ypos2#2) [ current_xpos#63 current_piece_gfx#63 current_piece_color#65 render_current::ypos2#2 render_current::l#3 render_current::i#4 render_current::screen_line#0 ] ( main:2::render_current:14 [ current_piece_gfx#10 current_piece_color#15 spawn_current::$3 current_xpos#63 current_piece_gfx#63 current_piece_color#65 render_current::ypos2#2 render_current::l#3 render_current::i#4 render_current::screen_line#0 ] main:2::render_current:47 [ current_piece#13 current_orientation#23 current_piece_gfx#18 current_xpos#23 current_ypos#16 current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 current_xpos#63 current_piece_gfx#63 current_piece_color#65 render_current::ypos2#2 render_current::l#3 render_current::i#4 render_current::screen_line#0 ] ) always clobbers reg byte a -Statement [57] (byte) render_current::current_cell#0 ← *((byte*) current_piece_gfx#63 + (byte) render_current::i#2) [ current_xpos#63 current_piece_gfx#63 current_piece_color#65 render_current::ypos2#2 render_current::l#3 render_current::screen_line#0 render_current::i#2 render_current::xpos#2 render_current::c#2 render_current::current_cell#0 ] ( main:2::render_current:14 [ current_piece_gfx#10 current_piece_color#15 spawn_current::$3 current_xpos#63 current_piece_gfx#63 current_piece_color#65 render_current::ypos2#2 render_current::l#3 render_current::screen_line#0 render_current::i#2 render_current::xpos#2 render_current::c#2 render_current::current_cell#0 ] main:2::render_current:47 [ current_piece#13 current_orientation#23 current_piece_gfx#18 current_xpos#23 current_ypos#16 current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 current_xpos#63 current_piece_gfx#63 current_piece_color#65 render_current::ypos2#2 render_current::l#3 render_current::screen_line#0 render_current::i#2 render_current::xpos#2 render_current::c#2 render_current::current_cell#0 ] ) always clobbers reg byte a -Statement [61] *((byte*) render_current::screen_line#0 + (byte) render_current::xpos#2) ← (byte) current_piece_color#65 [ current_xpos#63 current_piece_gfx#63 current_piece_color#65 render_current::ypos2#2 render_current::l#3 render_current::screen_line#0 render_current::xpos#2 render_current::c#2 render_current::i#1 ] ( main:2::render_current:14 [ current_piece_gfx#10 current_piece_color#15 spawn_current::$3 current_xpos#63 current_piece_gfx#63 current_piece_color#65 render_current::ypos2#2 render_current::l#3 render_current::screen_line#0 render_current::xpos#2 render_current::c#2 render_current::i#1 ] main:2::render_current:47 [ current_piece#13 current_orientation#23 current_piece_gfx#18 current_xpos#23 current_ypos#16 current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 current_xpos#63 current_piece_gfx#63 current_piece_color#65 render_current::ypos2#2 render_current::l#3 render_current::screen_line#0 render_current::xpos#2 render_current::c#2 render_current::i#1 ] ) always clobbers reg byte a -Statement [72] (byte~) render_playfield::$1 ← (byte) render_playfield::l#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ render_playfield::l#2 render_playfield::i#3 render_playfield::$1 ] ( main:2::render_playfield:11 [ current_piece_gfx#10 current_piece_color#15 spawn_current::$3 render_playfield::l#2 render_playfield::i#3 render_playfield::$1 ] main:2::render_playfield:42 [ current_piece#13 current_orientation#23 current_piece_gfx#18 current_xpos#23 current_ypos#16 current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 render_playfield::l#2 render_playfield::i#3 render_playfield::$1 ] ) always clobbers reg byte a -Statement [73] (byte*) render_playfield::line#0 ← *((const byte*[PLAYFIELD_LINES#0+3]) screen_lines#0 + (byte~) render_playfield::$1) [ render_playfield::l#2 render_playfield::i#3 render_playfield::line#0 ] ( main:2::render_playfield:11 [ current_piece_gfx#10 current_piece_color#15 spawn_current::$3 render_playfield::l#2 render_playfield::i#3 render_playfield::line#0 ] main:2::render_playfield:42 [ current_piece#13 current_orientation#23 current_piece_gfx#18 current_xpos#23 current_ypos#16 current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 render_playfield::l#2 render_playfield::i#3 render_playfield::line#0 ] ) always clobbers reg byte a -Statement [75] *((byte*) render_playfield::line#2) ← *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) render_playfield::i#2) [ render_playfield::l#2 render_playfield::i#2 render_playfield::line#2 render_playfield::c#2 ] ( main:2::render_playfield:11 [ current_piece_gfx#10 current_piece_color#15 spawn_current::$3 render_playfield::l#2 render_playfield::i#2 render_playfield::line#2 render_playfield::c#2 ] main:2::render_playfield:42 [ current_piece#13 current_orientation#23 current_piece_gfx#18 current_xpos#23 current_ypos#16 current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 render_playfield::l#2 render_playfield::i#2 render_playfield::line#2 render_playfield::c#2 ] ) always clobbers reg byte a reg byte y -Statement [87] (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 ← (byte) current_orientation#18 + (byte/signed byte/word/signed word/dword/signed dword) 16 [ current_piece#13 current_xpos#23 current_ypos#16 current_orientation#18 current_piece_gfx#17 play_move_rotate::$2 ] ( main:2::play_move_rotate:36 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::render#2 current_piece#13 current_xpos#23 current_ypos#16 current_orientation#18 current_piece_gfx#17 play_move_rotate::$2 ] ) always clobbers reg byte a -Statement [88] (byte) play_move_rotate::orientation#2 ← (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 & (byte/signed byte/word/signed word/dword/signed dword) 63 [ current_piece#13 current_xpos#23 current_ypos#16 current_orientation#18 current_piece_gfx#17 play_move_rotate::orientation#2 ] ( main:2::play_move_rotate:36 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::render#2 current_piece#13 current_xpos#23 current_ypos#16 current_orientation#18 current_piece_gfx#17 play_move_rotate::orientation#2 ] ) always clobbers reg byte a -Statement [93] (byte*~) current_piece#73 ← (byte*) current_piece#13 [ current_piece#13 current_xpos#23 current_ypos#16 current_orientation#18 current_piece_gfx#17 play_move_rotate::orientation#3 collision::xpos#3 collision::ypos#3 collision::orientation#3 current_piece#73 ] ( main:2::play_move_rotate:36 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::render#2 current_piece#13 current_xpos#23 current_ypos#16 current_orientation#18 current_piece_gfx#17 play_move_rotate::orientation#3 collision::xpos#3 collision::ypos#3 collision::orientation#3 current_piece#73 ] ) always clobbers reg byte a -Statement [99] (byte*) current_piece_gfx#8 ← (byte*) current_piece#13 + (byte) current_orientation#8 [ current_piece#13 current_xpos#23 current_ypos#16 current_orientation#8 current_piece_gfx#8 ] ( main:2::play_move_rotate:36 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::render#2 current_piece#13 current_xpos#23 current_ypos#16 current_orientation#8 current_piece_gfx#8 ] ) always clobbers reg byte a -Statement [100] (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 ← (byte) current_orientation#18 - (byte/signed byte/word/signed word/dword/signed dword) 16 [ current_piece#13 current_xpos#23 current_ypos#16 current_orientation#18 current_piece_gfx#17 play_move_rotate::$4 ] ( main:2::play_move_rotate:36 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::render#2 current_piece#13 current_xpos#23 current_ypos#16 current_orientation#18 current_piece_gfx#17 play_move_rotate::$4 ] ) always clobbers reg byte a -Statement [101] (byte) play_move_rotate::orientation#1 ← (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 & (byte/signed byte/word/signed word/dword/signed dword) 63 [ current_piece#13 current_xpos#23 current_ypos#16 current_orientation#18 current_piece_gfx#17 play_move_rotate::orientation#1 ] ( main:2::play_move_rotate:36 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::render#2 current_piece#13 current_xpos#23 current_ypos#16 current_orientation#18 current_piece_gfx#17 play_move_rotate::orientation#1 ] ) always clobbers reg byte a -Statement [103] (byte*) collision::piece_gfx#0 ← (byte*) current_piece#15 + (byte) collision::orientation#4 [ collision::ypos#4 collision::xpos#5 collision::piece_gfx#0 ] ( main:2::play_move_rotate:36::collision:94 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::render#2 current_piece#13 current_xpos#23 current_ypos#16 current_orientation#18 current_piece_gfx#17 play_move_rotate::orientation#3 collision::ypos#4 collision::xpos#5 collision::piece_gfx#0 ] main:2::play_move_leftright:31::collision:132 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::key_event#0 main::render#1 current_piece_gfx#17 current_piece#13 current_ypos#16 current_orientation#18 current_xpos#19 collision::ypos#4 collision::xpos#5 collision::piece_gfx#0 ] main:2::play_move_leftright:31::collision:143 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::key_event#0 main::render#1 current_piece_gfx#17 current_piece#13 current_ypos#16 current_orientation#18 current_xpos#19 collision::ypos#4 collision::xpos#5 collision::piece_gfx#0 ] main:2::play_move_down:26::collision:167 [ keyboard_events_size#16 main::key_event#0 current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 collision::ypos#4 collision::xpos#5 collision::piece_gfx#0 ] ) always clobbers reg byte a -Statement [104] (byte) collision::ypos2#0 ← (byte) collision::ypos#4 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ collision::xpos#5 collision::piece_gfx#0 collision::ypos2#0 ] ( main:2::play_move_rotate:36::collision:94 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::render#2 current_piece#13 current_xpos#23 current_ypos#16 current_orientation#18 current_piece_gfx#17 play_move_rotate::orientation#3 collision::xpos#5 collision::piece_gfx#0 collision::ypos2#0 ] main:2::play_move_leftright:31::collision:132 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::key_event#0 main::render#1 current_piece_gfx#17 current_piece#13 current_ypos#16 current_orientation#18 current_xpos#19 collision::xpos#5 collision::piece_gfx#0 collision::ypos2#0 ] main:2::play_move_leftright:31::collision:143 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::key_event#0 main::render#1 current_piece_gfx#17 current_piece#13 current_ypos#16 current_orientation#18 current_xpos#19 collision::xpos#5 collision::piece_gfx#0 collision::ypos2#0 ] main:2::play_move_down:26::collision:167 [ keyboard_events_size#16 main::key_event#0 current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 collision::xpos#5 collision::piece_gfx#0 collision::ypos2#0 ] ) always clobbers reg byte a -Statement [106] (byte*) collision::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) collision::ypos2#2) [ collision::xpos#5 collision::piece_gfx#0 collision::ypos2#2 collision::i#3 collision::l#6 collision::playfield_line#0 ] ( main:2::play_move_rotate:36::collision:94 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::render#2 current_piece#13 current_xpos#23 current_ypos#16 current_orientation#18 current_piece_gfx#17 play_move_rotate::orientation#3 collision::xpos#5 collision::piece_gfx#0 collision::ypos2#2 collision::i#3 collision::l#6 collision::playfield_line#0 ] main:2::play_move_leftright:31::collision:132 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::key_event#0 main::render#1 current_piece_gfx#17 current_piece#13 current_ypos#16 current_orientation#18 current_xpos#19 collision::xpos#5 collision::piece_gfx#0 collision::ypos2#2 collision::i#3 collision::l#6 collision::playfield_line#0 ] main:2::play_move_leftright:31::collision:143 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::key_event#0 main::render#1 current_piece_gfx#17 current_piece#13 current_ypos#16 current_orientation#18 current_xpos#19 collision::xpos#5 collision::piece_gfx#0 collision::ypos2#2 collision::i#3 collision::l#6 collision::playfield_line#0 ] main:2::play_move_down:26::collision:167 [ keyboard_events_size#16 main::key_event#0 current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 collision::xpos#5 collision::piece_gfx#0 collision::ypos2#2 collision::i#3 collision::l#6 collision::playfield_line#0 ] ) always clobbers reg byte a -Statement [110] if(*((byte*) collision::piece_gfx#0 + (byte) collision::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto collision::@3 [ collision::xpos#5 collision::piece_gfx#0 collision::ypos2#2 collision::l#6 collision::playfield_line#0 collision::col#2 collision::c#2 collision::i#1 ] ( main:2::play_move_rotate:36::collision:94 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::render#2 current_piece#13 current_xpos#23 current_ypos#16 current_orientation#18 current_piece_gfx#17 play_move_rotate::orientation#3 collision::xpos#5 collision::piece_gfx#0 collision::ypos2#2 collision::l#6 collision::playfield_line#0 collision::col#2 collision::c#2 collision::i#1 ] main:2::play_move_leftright:31::collision:132 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::key_event#0 main::render#1 current_piece_gfx#17 current_piece#13 current_ypos#16 current_orientation#18 current_xpos#19 collision::xpos#5 collision::piece_gfx#0 collision::ypos2#2 collision::l#6 collision::playfield_line#0 collision::col#2 collision::c#2 collision::i#1 ] main:2::play_move_leftright:31::collision:143 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::key_event#0 main::render#1 current_piece_gfx#17 current_piece#13 current_ypos#16 current_orientation#18 current_xpos#19 collision::xpos#5 collision::piece_gfx#0 collision::ypos2#2 collision::l#6 collision::playfield_line#0 collision::col#2 collision::c#2 collision::i#1 ] main:2::play_move_down:26::collision:167 [ keyboard_events_size#16 main::key_event#0 current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 collision::xpos#5 collision::piece_gfx#0 collision::ypos2#2 collision::l#6 collision::playfield_line#0 collision::col#2 collision::c#2 collision::i#1 ] ) always clobbers reg byte a -Statement [114] (byte~) collision::$7 ← (byte) collision::col#2 & (byte/word/signed word/dword/signed dword) 128 [ collision::xpos#5 collision::piece_gfx#0 collision::ypos2#2 collision::l#6 collision::playfield_line#0 collision::col#2 collision::c#2 collision::i#1 collision::$7 ] ( main:2::play_move_rotate:36::collision:94 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::render#2 current_piece#13 current_xpos#23 current_ypos#16 current_orientation#18 current_piece_gfx#17 play_move_rotate::orientation#3 collision::xpos#5 collision::piece_gfx#0 collision::ypos2#2 collision::l#6 collision::playfield_line#0 collision::col#2 collision::c#2 collision::i#1 collision::$7 ] main:2::play_move_leftright:31::collision:132 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::key_event#0 main::render#1 current_piece_gfx#17 current_piece#13 current_ypos#16 current_orientation#18 current_xpos#19 collision::xpos#5 collision::piece_gfx#0 collision::ypos2#2 collision::l#6 collision::playfield_line#0 collision::col#2 collision::c#2 collision::i#1 collision::$7 ] main:2::play_move_leftright:31::collision:143 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::key_event#0 main::render#1 current_piece_gfx#17 current_piece#13 current_ypos#16 current_orientation#18 current_xpos#19 collision::xpos#5 collision::piece_gfx#0 collision::ypos2#2 collision::l#6 collision::playfield_line#0 collision::col#2 collision::c#2 collision::i#1 collision::$7 ] main:2::play_move_down:26::collision:167 [ keyboard_events_size#16 main::key_event#0 current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 collision::xpos#5 collision::piece_gfx#0 collision::ypos2#2 collision::l#6 collision::playfield_line#0 collision::col#2 collision::c#2 collision::i#1 collision::$7 ] ) always clobbers reg byte a -Statement [117] if(*((byte*) collision::playfield_line#0 + (byte) collision::col#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto collision::@3 [ collision::xpos#5 collision::piece_gfx#0 collision::ypos2#2 collision::l#6 collision::playfield_line#0 collision::col#2 collision::c#2 collision::i#1 ] ( main:2::play_move_rotate:36::collision:94 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::render#2 current_piece#13 current_xpos#23 current_ypos#16 current_orientation#18 current_piece_gfx#17 play_move_rotate::orientation#3 collision::xpos#5 collision::piece_gfx#0 collision::ypos2#2 collision::l#6 collision::playfield_line#0 collision::col#2 collision::c#2 collision::i#1 ] main:2::play_move_leftright:31::collision:132 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::key_event#0 main::render#1 current_piece_gfx#17 current_piece#13 current_ypos#16 current_orientation#18 current_xpos#19 collision::xpos#5 collision::piece_gfx#0 collision::ypos2#2 collision::l#6 collision::playfield_line#0 collision::col#2 collision::c#2 collision::i#1 ] main:2::play_move_leftright:31::collision:143 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::key_event#0 main::render#1 current_piece_gfx#17 current_piece#13 current_ypos#16 current_orientation#18 current_xpos#19 collision::xpos#5 collision::piece_gfx#0 collision::ypos2#2 collision::l#6 collision::playfield_line#0 collision::col#2 collision::c#2 collision::i#1 ] main:2::play_move_down:26::collision:167 [ keyboard_events_size#16 main::key_event#0 current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 collision::xpos#5 collision::piece_gfx#0 collision::ypos2#2 collision::l#6 collision::playfield_line#0 collision::col#2 collision::c#2 collision::i#1 ] ) always clobbers reg byte a -Statement [131] (byte*~) current_piece#72 ← (byte*) current_piece#13 [ current_piece#13 current_ypos#16 current_orientation#18 current_piece#72 collision::orientation#2 collision::ypos#2 collision::xpos#2 current_xpos#19 ] ( main:2::play_move_leftright:31 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::key_event#0 main::render#1 current_piece_gfx#17 current_piece#13 current_ypos#16 current_orientation#18 current_piece#72 collision::orientation#2 collision::ypos#2 collision::xpos#2 current_xpos#19 ] ) always clobbers reg byte a -Statement [142] (byte*~) current_piece#71 ← (byte*) current_piece#13 [ current_piece#13 current_ypos#16 current_orientation#18 current_piece#71 collision::orientation#1 collision::ypos#1 collision::xpos#1 current_xpos#19 ] ( main:2::play_move_leftright:31 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::key_event#0 main::render#1 current_piece_gfx#17 current_piece#13 current_ypos#16 current_orientation#18 current_piece#71 collision::orientation#1 collision::ypos#1 collision::xpos#1 current_xpos#19 ] ) always clobbers reg byte a -Statement [166] (byte*~) current_piece#70 ← (byte*) current_piece#11 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_piece#70 collision::orientation#0 collision::ypos#0 collision::xpos#0 ] ( main:2::play_move_down:26 [ keyboard_events_size#16 main::key_event#0 current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_piece#70 collision::orientation#0 collision::ypos#0 collision::xpos#0 ] ) always clobbers reg byte a -Statement [177] (byte*~) current_piece#74 ← (byte*)*((const word[]) PIECES#0 + (byte~) spawn_current::$3) [ current_piece_gfx#10 current_piece_color#15 current_piece#74 ] ( main:2::play_move_down:26 [ keyboard_events_size#16 main::key_event#0 current_piece_gfx#10 current_piece_color#15 current_piece#74 ] ) always clobbers reg byte a -Statement [186] (byte~) spawn_current::$3 ← (byte) spawn_current::piece_idx#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ spawn_current::$3 spawn_current::piece_idx#2 ] ( main:2::spawn_current:9 [ spawn_current::$3 spawn_current::piece_idx#2 ] main:2::play_move_down:26::spawn_current:176 [ keyboard_events_size#16 main::key_event#0 spawn_current::$3 spawn_current::piece_idx#2 ] ) always clobbers reg byte a -Statement [187] (byte*) current_piece_gfx#10 ← (byte*)*((const word[]) PIECES#0 + (byte~) spawn_current::$3) + (byte/signed byte/word/signed word/dword/signed dword) 0 [ current_piece_gfx#10 spawn_current::$3 spawn_current::piece_idx#2 ] ( main:2::spawn_current:9 [ current_piece_gfx#10 spawn_current::$3 spawn_current::piece_idx#2 ] main:2::play_move_down:26::spawn_current:176 [ keyboard_events_size#16 main::key_event#0 current_piece_gfx#10 spawn_current::$3 spawn_current::piece_idx#2 ] ) always clobbers reg byte a -Statement [188] (byte) current_piece_color#15 ← *((const byte[]) PIECES_COLORS#0 + (byte) spawn_current::piece_idx#2) [ current_piece_gfx#10 current_piece_color#15 spawn_current::$3 ] ( main:2::spawn_current:9 [ current_piece_gfx#10 current_piece_color#15 spawn_current::$3 ] main:2::play_move_down:26::spawn_current:176 [ keyboard_events_size#16 main::key_event#0 current_piece_gfx#10 current_piece_color#15 spawn_current::$3 ] ) always clobbers reg byte a -Statement [194] (byte) spawn_current::piece_idx#1 ← (byte~) spawn_current::$1 & (byte/signed byte/word/signed word/dword/signed dword) 7 [ spawn_current::piece_idx#1 ] ( main:2::spawn_current:9 [ spawn_current::piece_idx#1 ] main:2::play_move_down:26::spawn_current:176 [ keyboard_events_size#16 main::key_event#0 spawn_current::piece_idx#1 ] ) always clobbers reg byte a -Statement [209] (byte) remove_line::i2#0 ← *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte~) remove_line::$0) - (byte/signed byte/word/signed word/dword/signed dword) 1 [ remove_line::ypos#0 remove_line::i2#0 ] ( main:2::play_move_down:26::remove_lines:174::remove_line:207 [ keyboard_events_size#16 main::key_event#0 remove_lines::done#3 remove_line::ypos#0 remove_line::i2#0 ] ) always clobbers reg byte a -Statement [210] (byte) remove_line::i1#0 ← *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0 + (byte) remove_line::ypos#0) - (byte/signed byte/word/signed word/dword/signed dword) 1 [ remove_line::ypos#0 remove_line::i2#0 remove_line::i1#0 ] ( main:2::play_move_down:26::remove_lines:174::remove_line:207 [ keyboard_events_size#16 main::key_event#0 remove_lines::done#3 remove_line::ypos#0 remove_line::i2#0 remove_line::i1#0 ] ) always clobbers reg byte a -Statement [213] *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) remove_line::i2#2) ← *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) remove_line::i1#2) [ remove_line::y#4 remove_line::i1#2 remove_line::i2#2 remove_line::x#2 ] ( main:2::play_move_down:26::remove_lines:174::remove_line:207 [ keyboard_events_size#16 main::key_event#0 remove_lines::done#3 remove_line::y#4 remove_line::i1#2 remove_line::i2#2 remove_line::x#2 ] ) always clobbers reg byte a -Statement [225] if(*((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) find_line::i#2)!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto find_line::@13 [ find_line::y#8 find_line::x#2 find_line::filled#4 find_line::i#1 ] ( main:2::play_move_down:26::remove_lines:174::find_line:199 [ keyboard_events_size#16 main::key_event#0 remove_lines::done#3 find_line::y#8 find_line::x#2 find_line::filled#4 find_line::i#1 ] ) always clobbers reg byte a -Statement [237] (byte) lock_current::ypos2#0 ← (byte) current_ypos#12 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ current_piece_gfx#15 current_xpos#16 current_piece_color#11 lock_current::ypos2#0 ] ( main:2::play_move_down:26::lock_current:172 [ keyboard_events_size#16 main::key_event#0 current_piece_gfx#15 current_xpos#16 current_piece_color#11 lock_current::ypos2#0 ] ) always clobbers reg byte a -Statement [239] (byte*) lock_current::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) lock_current::ypos2#2) [ current_piece_gfx#15 current_xpos#16 current_piece_color#11 lock_current::ypos2#2 lock_current::i#3 lock_current::l#6 lock_current::playfield_line#0 ] ( main:2::play_move_down:26::lock_current:172 [ keyboard_events_size#16 main::key_event#0 current_piece_gfx#15 current_xpos#16 current_piece_color#11 lock_current::ypos2#2 lock_current::i#3 lock_current::l#6 lock_current::playfield_line#0 ] ) always clobbers reg byte a -Statement [243] if(*((byte*) current_piece_gfx#15 + (byte) lock_current::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto lock_current::@3 [ current_piece_gfx#15 current_xpos#16 current_piece_color#11 lock_current::ypos2#2 lock_current::l#6 lock_current::playfield_line#0 lock_current::col#2 lock_current::c#2 lock_current::i#1 ] ( main:2::play_move_down:26::lock_current:172 [ keyboard_events_size#16 main::key_event#0 current_piece_gfx#15 current_xpos#16 current_piece_color#11 lock_current::ypos2#2 lock_current::l#6 lock_current::playfield_line#0 lock_current::col#2 lock_current::c#2 lock_current::i#1 ] ) always clobbers reg byte a -Statement [244] *((byte*) lock_current::playfield_line#0 + (byte) lock_current::col#2) ← (byte) current_piece_color#11 [ current_piece_gfx#15 current_xpos#16 current_piece_color#11 lock_current::ypos2#2 lock_current::l#6 lock_current::playfield_line#0 lock_current::col#2 lock_current::c#2 lock_current::i#1 ] ( main:2::play_move_down:26::lock_current:172 [ keyboard_events_size#16 main::key_event#0 current_piece_gfx#15 current_xpos#16 current_piece_color#11 lock_current::ypos2#2 lock_current::l#6 lock_current::playfield_line#0 lock_current::col#2 lock_current::c#2 lock_current::i#1 ] ) always clobbers reg byte a -Statement [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:2::play_move_down:26::keyboard_event_pressed:152 [ keyboard_events_size#16 main::key_event#0 current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#10 play_move_down::movedown#10 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] main:2::keyboard_event_scan:20::keyboard_event_pressed:277 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#15 keyboard_events_size#13 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] main:2::keyboard_event_scan:20::keyboard_event_pressed:283 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#15 keyboard_events_size#13 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] main:2::keyboard_event_scan:20::keyboard_event_pressed:289 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#15 keyboard_events_size#13 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] main:2::keyboard_event_scan:20::keyboard_event_pressed:295 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#15 keyboard_events_size#13 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] ) always clobbers reg byte a -Statement [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:2::play_move_down:26::keyboard_event_pressed:152 [ keyboard_events_size#16 main::key_event#0 current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#10 play_move_down::movedown#10 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:2::keyboard_event_scan:20::keyboard_event_pressed:277 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#15 keyboard_events_size#13 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:2::keyboard_event_scan:20::keyboard_event_pressed:283 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#15 keyboard_events_size#13 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:2::keyboard_event_scan:20::keyboard_event_pressed:289 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#15 keyboard_events_size#13 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:2::keyboard_event_scan:20::keyboard_event_pressed:295 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#15 keyboard_events_size#13 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] ) always clobbers reg byte a -Statement [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:2::play_move_down:26::keyboard_event_pressed:152 [ keyboard_events_size#16 main::key_event#0 current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#10 play_move_down::movedown#10 keyboard_event_pressed::return#11 ] main:2::keyboard_event_scan:20::keyboard_event_pressed:277 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#15 keyboard_events_size#13 keyboard_event_pressed::return#11 ] main:2::keyboard_event_scan:20::keyboard_event_pressed:283 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#15 keyboard_events_size#13 keyboard_event_pressed::return#11 ] main:2::keyboard_event_scan:20::keyboard_event_pressed:289 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#15 keyboard_events_size#13 keyboard_event_pressed::return#11 ] main:2::keyboard_event_scan:20::keyboard_event_pressed:295 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#15 keyboard_events_size#13 keyboard_event_pressed::return#11 ] ) always clobbers reg byte a -Statement [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:2::keyboard_event_scan:20 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#15 keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#29 keyboard_event_scan::row_scan#0 ] ) always clobbers reg byte a -Statement [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:2::keyboard_event_scan:20 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#15 keyboard_event_scan::row#2 keyboard_events_size#29 keyboard_event_scan::keycode#1 ] ) always clobbers reg byte a -Statement [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:2::keyboard_event_scan:20 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#15 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::$3 ] ) always clobbers reg byte a -Statement [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:2::keyboard_event_scan:20 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#15 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::$4 ] ) always clobbers reg byte a -Statement [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:2::keyboard_event_scan:20 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#15 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::event_type#0 ] ) always clobbers reg byte a -Statement [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:2::keyboard_event_scan:20 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#15 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 ] ) always clobbers reg byte a -Statement [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:2::keyboard_event_scan:20 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#15 keyboard_event_scan::row#2 keyboard_event_scan::keycode#15 keyboard_events_size#30 ] ) always clobbers reg byte a -Statement [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:2::keyboard_event_scan:20 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#15 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::$11 ] ) always clobbers reg byte a -Statement [318] *((const byte*) CIA1_PORT_A#0) ← *((const byte[8]) keyboard_matrix_row_bitmask#0 + (byte) keyboard_matrix_read::rowid#0) [ ] ( main:2::keyboard_event_scan:20::keyboard_matrix_read:268 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#15 keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#29 ] ) always clobbers reg byte a -Statement [319] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) [ keyboard_matrix_read::return#0 ] ( main:2::keyboard_event_scan:20::keyboard_matrix_read:268 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#15 keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#29 keyboard_matrix_read::return#0 ] ) always clobbers reg byte a -Statement [326] (byte~) init::$5 ← (byte) init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ init::i#2 init::li#2 init::$5 ] ( main:2::init:7 [ init::i#2 init::li#2 init::$5 ] ) always clobbers reg byte a -Statement [327] *((const byte*[PLAYFIELD_LINES#0+3]) screen_lines#0 + (byte~) init::$5) ← (byte*) init::li#2 [ init::i#2 init::li#2 ] ( main:2::init:7 [ init::i#2 init::li#2 ] ) always clobbers reg byte a -Statement [328] (byte*) init::li#1 ← (byte*) init::li#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ init::i#2 init::li#1 ] ( main:2::init:7 [ init::i#2 init::li#1 ] ) always clobbers reg byte a -Statement [332] (byte~) init::$8 ← (byte) init::j#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ init::j#2 init::pli#2 init::idx#2 init::$8 ] ( main:2::init:7 [ init::j#2 init::pli#2 init::idx#2 init::$8 ] ) always clobbers reg byte a -Statement [333] *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte~) init::$8) ← (byte*) init::pli#2 [ init::j#2 init::pli#2 init::idx#2 ] ( main:2::init:7 [ init::j#2 init::pli#2 init::idx#2 ] ) always clobbers reg byte a -Statement [334] *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0 + (byte) init::j#2) ← (byte) init::idx#2 [ init::j#2 init::pli#2 init::idx#2 ] ( main:2::init:7 [ init::j#2 init::pli#2 init::idx#2 ] ) always clobbers reg byte a -Statement [335] (byte*) init::pli#1 ← (byte*) init::pli#2 + (const byte) PLAYFIELD_COLS#0 [ init::j#2 init::idx#2 init::pli#1 ] ( main:2::init:7 [ init::j#2 init::idx#2 init::pli#1 ] ) always clobbers reg byte a -Statement [336] (byte) init::idx#1 ← (byte) init::idx#2 + (const byte) PLAYFIELD_COLS#0 [ init::j#2 init::pli#1 init::idx#1 ] ( main:2::init:7 [ init::j#2 init::pli#1 init::idx#1 ] ) always clobbers reg byte a -Statement [339] *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0+(const byte) PLAYFIELD_LINES#0) ← (const byte) PLAYFIELD_COLS#0*(const byte) PLAYFIELD_LINES#0 [ ] ( main:2::init:7 [ ] ) always clobbers reg byte a -Statement [342] (byte*~) init::$14 ← (byte*) init::line#4 + (byte) init::c#2 [ init::line#4 init::l#4 init::c#2 init::$14 ] ( main:2::init:7 [ init::line#4 init::l#4 init::c#2 init::$14 ] ) always clobbers reg byte a -Statement [343] *((byte*~) init::$14) ← (const byte) DARK_GREY#0 [ init::line#4 init::l#4 init::c#2 ] ( main:2::init:7 [ init::line#4 init::l#4 init::c#2 ] ) always clobbers reg byte a reg byte y -Statement [346] (byte*) init::line#1 ← (byte*) init::line#4 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ init::l#4 init::line#1 ] ( main:2::init:7 [ init::l#4 init::line#1 ] ) always clobbers reg byte a -Statement [351] (byte*) fill::end#0 ← (byte*) fill::addr#0 + (word/signed word/dword/signed dword) 1000 [ fill::addr#0 fill::val#3 fill::end#0 ] ( main:2::init:7::fill:322 [ fill::addr#0 fill::val#3 fill::end#0 ] main:2::init:7::fill:324 [ fill::addr#0 fill::val#3 fill::end#0 ] ) always clobbers reg byte a -Statement [353] *((byte*) fill::addr#2) ← (byte) fill::val#3 [ fill::val#3 fill::end#0 fill::addr#2 ] ( main:2::init:7::fill:322 [ fill::val#3 fill::end#0 fill::addr#2 ] main:2::init:7::fill:324 [ fill::val#3 fill::end#0 fill::addr#2 ] ) always clobbers reg byte a reg byte y -Statement [355] if((byte*) fill::addr#1!=(byte*) fill::end#0) goto fill::@1 [ fill::val#3 fill::end#0 fill::addr#1 ] ( main:2::init:7::fill:322 [ fill::val#3 fill::end#0 fill::addr#1 ] main:2::init:7::fill:324 [ fill::val#3 fill::end#0 fill::addr#1 ] ) always clobbers reg byte a -Statement [357] *((const word*) SID_VOICE3_FREQ#0) ← (word/dword/signed dword) 65535 [ ] ( main:2::sid_rnd_init:5 [ ] ) always clobbers reg byte a -Statement [358] *((const byte*) SID_VOICE3_CONTROL#0) ← (const byte) SID_CONTROL_NOISE#0 [ ] ( main:2::sid_rnd_init:5 [ ] ) always clobbers reg byte a +Statement [357] if((byte*) fill::addr#1!=(byte*) fill::end#0) goto fill::@1 [ fill::val#3 fill::end#0 fill::addr#1 ] ( main:2::render_init:7::fill:333 [ fill::val#3 fill::end#0 fill::addr#1 ] main:2::render_init:7::fill:335 [ fill::val#3 fill::end#0 fill::addr#1 ] ) always clobbers reg byte a +Statement [359] *((const word*) SID_VOICE3_FREQ#0) ← (word/dword/signed dword) 65535 [ ] ( main:2::sid_rnd_init:5 [ ] ) always clobbers reg byte a +Statement [360] *((const byte*) SID_VOICE3_CONTROL#0) ← (const byte) SID_CONTROL_NOISE#0 [ ] ( main:2::sid_rnd_init:5 [ ] ) always clobbers reg byte a +Statement [14] (byte*~) current_piece_gfx#86 ← (byte*) current_piece_gfx#10 [ current_piece_gfx#86 current_piece_gfx#10 current_piece_color#15 spawn_current::$3 ] ( main:2 [ current_piece_gfx#86 current_piece_gfx#10 current_piece_color#15 spawn_current::$3 ] ) always clobbers reg byte a +Statement [17] (byte*~) current_piece#70 ← (byte*)*((const word[]) PIECES#0 + (byte~) spawn_current::$3) [ current_piece_gfx#10 current_piece_color#15 current_piece#70 ] ( main:2 [ current_piece_gfx#10 current_piece_color#15 current_piece#70 ] ) always clobbers reg byte a +Statement [19] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@4 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 keyboard_events_size#19 current_movedown_counter#15 ] ( main:2 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 keyboard_events_size#19 current_movedown_counter#15 ] ) always clobbers reg byte a +Statement [20] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 254) goto main::@7 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 keyboard_events_size#19 current_movedown_counter#15 ] ( main:2 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 keyboard_events_size#19 current_movedown_counter#15 ] ) always clobbers reg byte a +Statement [31] (byte) main::render#1 ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte~) main::$10 [ current_piece#13 current_ypos#16 current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::key_event#0 main::render#1 current_orientation#18 current_piece_gfx#17 current_xpos#19 ] ( main:2 [ current_piece#13 current_ypos#16 current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::key_event#0 main::render#1 current_orientation#18 current_piece_gfx#17 current_xpos#19 ] ) always clobbers reg byte a +Statement [36] (byte) main::render#2 ← (byte) main::render#1 + (byte~) main::$11 [ current_piece#13 current_xpos#23 current_ypos#16 current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::key_event#0 main::render#2 current_orientation#18 current_piece_gfx#17 ] ( main:2 [ current_piece#13 current_xpos#23 current_ypos#16 current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::key_event#0 main::render#2 current_orientation#18 current_piece_gfx#17 ] ) always clobbers reg byte a +Statement [41] (byte) main::render#3 ← (byte) main::render#2 + (byte~) main::$12 [ current_piece#13 current_orientation#23 current_piece_gfx#18 current_xpos#23 current_ypos#16 current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::render#3 ] ( main:2 [ current_piece#13 current_orientation#23 current_piece_gfx#18 current_xpos#23 current_ypos#16 current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::render#3 ] ) always clobbers reg byte a +Statement [47] (byte*~) current_piece_gfx#87 ← (byte*) current_piece_gfx#18 [ current_piece#13 current_orientation#23 current_piece_gfx#18 current_xpos#23 current_ypos#16 current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 current_ypos#70 current_xpos#95 current_piece_gfx#87 ] ( main:2 [ current_piece#13 current_orientation#23 current_piece_gfx#18 current_xpos#23 current_ypos#16 current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 current_ypos#70 current_xpos#95 current_piece_gfx#87 ] ) always clobbers reg byte a +Statement [52] (byte) render_current::ypos2#0 ← (byte) current_ypos#22 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ current_xpos#63 current_piece_gfx#63 current_piece_color#66 render_current::ypos2#0 ] ( main:2::render_current:16 [ current_piece_gfx#10 current_piece_color#15 spawn_current::$3 current_xpos#63 current_piece_gfx#63 current_piece_color#66 render_current::ypos2#0 ] main:2::render_current:49 [ current_piece#13 current_orientation#23 current_piece_gfx#18 current_xpos#23 current_ypos#16 current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 current_xpos#63 current_piece_gfx#63 current_piece_color#66 render_current::ypos2#0 ] ) always clobbers reg byte a +Statement [55] (byte*) render_current::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0+3]) screen_lines#0 + (byte) render_current::ypos2#2) [ current_xpos#63 current_piece_gfx#63 current_piece_color#66 render_current::ypos2#2 render_current::l#3 render_current::i#4 render_current::screen_line#0 ] ( main:2::render_current:16 [ current_piece_gfx#10 current_piece_color#15 spawn_current::$3 current_xpos#63 current_piece_gfx#63 current_piece_color#66 render_current::ypos2#2 render_current::l#3 render_current::i#4 render_current::screen_line#0 ] main:2::render_current:49 [ current_piece#13 current_orientation#23 current_piece_gfx#18 current_xpos#23 current_ypos#16 current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 current_xpos#63 current_piece_gfx#63 current_piece_color#66 render_current::ypos2#2 render_current::l#3 render_current::i#4 render_current::screen_line#0 ] ) always clobbers reg byte a +Statement [58] (byte) render_current::current_cell#0 ← *((byte*) current_piece_gfx#63 + (byte) render_current::i#2) [ current_xpos#63 current_piece_gfx#63 current_piece_color#66 render_current::ypos2#2 render_current::l#3 render_current::screen_line#0 render_current::i#2 render_current::xpos#2 render_current::c#2 render_current::current_cell#0 ] ( main:2::render_current:16 [ current_piece_gfx#10 current_piece_color#15 spawn_current::$3 current_xpos#63 current_piece_gfx#63 current_piece_color#66 render_current::ypos2#2 render_current::l#3 render_current::screen_line#0 render_current::i#2 render_current::xpos#2 render_current::c#2 render_current::current_cell#0 ] main:2::render_current:49 [ current_piece#13 current_orientation#23 current_piece_gfx#18 current_xpos#23 current_ypos#16 current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 current_xpos#63 current_piece_gfx#63 current_piece_color#66 render_current::ypos2#2 render_current::l#3 render_current::screen_line#0 render_current::i#2 render_current::xpos#2 render_current::c#2 render_current::current_cell#0 ] ) always clobbers reg byte a +Statement [62] *((byte*) render_current::screen_line#0 + (byte) render_current::xpos#2) ← (byte) current_piece_color#66 [ current_xpos#63 current_piece_gfx#63 current_piece_color#66 render_current::ypos2#2 render_current::l#3 render_current::screen_line#0 render_current::xpos#2 render_current::c#2 render_current::i#1 ] ( main:2::render_current:16 [ current_piece_gfx#10 current_piece_color#15 spawn_current::$3 current_xpos#63 current_piece_gfx#63 current_piece_color#66 render_current::ypos2#2 render_current::l#3 render_current::screen_line#0 render_current::xpos#2 render_current::c#2 render_current::i#1 ] main:2::render_current:49 [ current_piece#13 current_orientation#23 current_piece_gfx#18 current_xpos#23 current_ypos#16 current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 current_xpos#63 current_piece_gfx#63 current_piece_color#66 render_current::ypos2#2 render_current::l#3 render_current::screen_line#0 render_current::xpos#2 render_current::c#2 render_current::i#1 ] ) always clobbers reg byte a +Statement [73] (byte~) render_playfield::$1 ← (byte) render_playfield::l#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ render_playfield::l#2 render_playfield::i#3 render_playfield::$1 ] ( main:2::render_playfield:13 [ current_piece_gfx#10 current_piece_color#15 spawn_current::$3 render_playfield::l#2 render_playfield::i#3 render_playfield::$1 ] main:2::render_playfield:44 [ current_piece#13 current_orientation#23 current_piece_gfx#18 current_xpos#23 current_ypos#16 current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 render_playfield::l#2 render_playfield::i#3 render_playfield::$1 ] ) always clobbers reg byte a +Statement [74] (byte*) render_playfield::line#0 ← *((const byte*[PLAYFIELD_LINES#0+3]) screen_lines#0 + (byte~) render_playfield::$1) [ render_playfield::l#2 render_playfield::i#3 render_playfield::line#0 ] ( main:2::render_playfield:13 [ current_piece_gfx#10 current_piece_color#15 spawn_current::$3 render_playfield::l#2 render_playfield::i#3 render_playfield::line#0 ] main:2::render_playfield:44 [ current_piece#13 current_orientation#23 current_piece_gfx#18 current_xpos#23 current_ypos#16 current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 render_playfield::l#2 render_playfield::i#3 render_playfield::line#0 ] ) always clobbers reg byte a +Statement [76] *((byte*) render_playfield::line#2) ← *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) render_playfield::i#2) [ render_playfield::l#2 render_playfield::i#2 render_playfield::line#2 render_playfield::c#2 ] ( main:2::render_playfield:13 [ current_piece_gfx#10 current_piece_color#15 spawn_current::$3 render_playfield::l#2 render_playfield::i#2 render_playfield::line#2 render_playfield::c#2 ] main:2::render_playfield:44 [ current_piece#13 current_orientation#23 current_piece_gfx#18 current_xpos#23 current_ypos#16 current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 render_playfield::l#2 render_playfield::i#2 render_playfield::line#2 render_playfield::c#2 ] ) always clobbers reg byte a reg byte y +Statement [88] (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 ← (byte) current_orientation#18 + (byte/signed byte/word/signed word/dword/signed dword) 16 [ current_piece#13 current_xpos#23 current_ypos#16 current_orientation#18 current_piece_gfx#17 play_move_rotate::$2 ] ( main:2::play_move_rotate:38 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::render#2 current_piece#13 current_xpos#23 current_ypos#16 current_orientation#18 current_piece_gfx#17 play_move_rotate::$2 ] ) always clobbers reg byte a +Statement [89] (byte) play_move_rotate::orientation#2 ← (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 & (byte/signed byte/word/signed word/dword/signed dword) 63 [ current_piece#13 current_xpos#23 current_ypos#16 current_orientation#18 current_piece_gfx#17 play_move_rotate::orientation#2 ] ( main:2::play_move_rotate:38 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::render#2 current_piece#13 current_xpos#23 current_ypos#16 current_orientation#18 current_piece_gfx#17 play_move_rotate::orientation#2 ] ) always clobbers reg byte a +Statement [94] (byte*~) current_piece#74 ← (byte*) current_piece#13 [ current_piece#13 current_xpos#23 current_ypos#16 current_orientation#18 current_piece_gfx#17 play_move_rotate::orientation#3 collision::xpos#3 collision::ypos#3 collision::orientation#3 current_piece#74 ] ( main:2::play_move_rotate:38 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::render#2 current_piece#13 current_xpos#23 current_ypos#16 current_orientation#18 current_piece_gfx#17 play_move_rotate::orientation#3 collision::xpos#3 collision::ypos#3 collision::orientation#3 current_piece#74 ] ) always clobbers reg byte a +Statement [100] (byte*) current_piece_gfx#8 ← (byte*) current_piece#13 + (byte) current_orientation#8 [ current_piece#13 current_xpos#23 current_ypos#16 current_orientation#8 current_piece_gfx#8 ] ( main:2::play_move_rotate:38 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::render#2 current_piece#13 current_xpos#23 current_ypos#16 current_orientation#8 current_piece_gfx#8 ] ) always clobbers reg byte a +Statement [101] (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 ← (byte) current_orientation#18 - (byte/signed byte/word/signed word/dword/signed dword) 16 [ current_piece#13 current_xpos#23 current_ypos#16 current_orientation#18 current_piece_gfx#17 play_move_rotate::$4 ] ( main:2::play_move_rotate:38 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::render#2 current_piece#13 current_xpos#23 current_ypos#16 current_orientation#18 current_piece_gfx#17 play_move_rotate::$4 ] ) always clobbers reg byte a +Statement [102] (byte) play_move_rotate::orientation#1 ← (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 & (byte/signed byte/word/signed word/dword/signed dword) 63 [ current_piece#13 current_xpos#23 current_ypos#16 current_orientation#18 current_piece_gfx#17 play_move_rotate::orientation#1 ] ( main:2::play_move_rotate:38 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::render#2 current_piece#13 current_xpos#23 current_ypos#16 current_orientation#18 current_piece_gfx#17 play_move_rotate::orientation#1 ] ) always clobbers reg byte a +Statement [104] (byte*) collision::piece_gfx#0 ← (byte*) current_piece#15 + (byte) collision::orientation#4 [ collision::ypos#4 collision::xpos#5 collision::piece_gfx#0 ] ( main:2::play_move_rotate:38::collision:95 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::render#2 current_piece#13 current_xpos#23 current_ypos#16 current_orientation#18 current_piece_gfx#17 play_move_rotate::orientation#3 collision::ypos#4 collision::xpos#5 collision::piece_gfx#0 ] main:2::play_move_leftright:33::collision:133 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::key_event#0 main::render#1 current_piece_gfx#17 current_piece#13 current_ypos#16 current_orientation#18 current_xpos#19 collision::ypos#4 collision::xpos#5 collision::piece_gfx#0 ] main:2::play_move_leftright:33::collision:144 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::key_event#0 main::render#1 current_piece_gfx#17 current_piece#13 current_ypos#16 current_orientation#18 current_xpos#19 collision::ypos#4 collision::xpos#5 collision::piece_gfx#0 ] main:2::play_move_down:28::collision:168 [ keyboard_events_size#16 main::key_event#0 current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 collision::ypos#4 collision::xpos#5 collision::piece_gfx#0 ] ) always clobbers reg byte a +Statement [105] (byte) collision::ypos2#0 ← (byte) collision::ypos#4 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ collision::xpos#5 collision::piece_gfx#0 collision::ypos2#0 ] ( main:2::play_move_rotate:38::collision:95 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::render#2 current_piece#13 current_xpos#23 current_ypos#16 current_orientation#18 current_piece_gfx#17 play_move_rotate::orientation#3 collision::xpos#5 collision::piece_gfx#0 collision::ypos2#0 ] main:2::play_move_leftright:33::collision:133 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::key_event#0 main::render#1 current_piece_gfx#17 current_piece#13 current_ypos#16 current_orientation#18 current_xpos#19 collision::xpos#5 collision::piece_gfx#0 collision::ypos2#0 ] main:2::play_move_leftright:33::collision:144 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::key_event#0 main::render#1 current_piece_gfx#17 current_piece#13 current_ypos#16 current_orientation#18 current_xpos#19 collision::xpos#5 collision::piece_gfx#0 collision::ypos2#0 ] main:2::play_move_down:28::collision:168 [ keyboard_events_size#16 main::key_event#0 current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 collision::xpos#5 collision::piece_gfx#0 collision::ypos2#0 ] ) always clobbers reg byte a +Statement [107] (byte*) collision::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) collision::ypos2#2) [ collision::xpos#5 collision::piece_gfx#0 collision::ypos2#2 collision::i#3 collision::l#6 collision::playfield_line#0 ] ( main:2::play_move_rotate:38::collision:95 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::render#2 current_piece#13 current_xpos#23 current_ypos#16 current_orientation#18 current_piece_gfx#17 play_move_rotate::orientation#3 collision::xpos#5 collision::piece_gfx#0 collision::ypos2#2 collision::i#3 collision::l#6 collision::playfield_line#0 ] main:2::play_move_leftright:33::collision:133 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::key_event#0 main::render#1 current_piece_gfx#17 current_piece#13 current_ypos#16 current_orientation#18 current_xpos#19 collision::xpos#5 collision::piece_gfx#0 collision::ypos2#2 collision::i#3 collision::l#6 collision::playfield_line#0 ] main:2::play_move_leftright:33::collision:144 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::key_event#0 main::render#1 current_piece_gfx#17 current_piece#13 current_ypos#16 current_orientation#18 current_xpos#19 collision::xpos#5 collision::piece_gfx#0 collision::ypos2#2 collision::i#3 collision::l#6 collision::playfield_line#0 ] main:2::play_move_down:28::collision:168 [ keyboard_events_size#16 main::key_event#0 current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 collision::xpos#5 collision::piece_gfx#0 collision::ypos2#2 collision::i#3 collision::l#6 collision::playfield_line#0 ] ) always clobbers reg byte a +Statement [111] if(*((byte*) collision::piece_gfx#0 + (byte) collision::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto collision::@3 [ collision::xpos#5 collision::piece_gfx#0 collision::ypos2#2 collision::l#6 collision::playfield_line#0 collision::col#2 collision::c#2 collision::i#1 ] ( main:2::play_move_rotate:38::collision:95 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::render#2 current_piece#13 current_xpos#23 current_ypos#16 current_orientation#18 current_piece_gfx#17 play_move_rotate::orientation#3 collision::xpos#5 collision::piece_gfx#0 collision::ypos2#2 collision::l#6 collision::playfield_line#0 collision::col#2 collision::c#2 collision::i#1 ] main:2::play_move_leftright:33::collision:133 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::key_event#0 main::render#1 current_piece_gfx#17 current_piece#13 current_ypos#16 current_orientation#18 current_xpos#19 collision::xpos#5 collision::piece_gfx#0 collision::ypos2#2 collision::l#6 collision::playfield_line#0 collision::col#2 collision::c#2 collision::i#1 ] main:2::play_move_leftright:33::collision:144 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::key_event#0 main::render#1 current_piece_gfx#17 current_piece#13 current_ypos#16 current_orientation#18 current_xpos#19 collision::xpos#5 collision::piece_gfx#0 collision::ypos2#2 collision::l#6 collision::playfield_line#0 collision::col#2 collision::c#2 collision::i#1 ] main:2::play_move_down:28::collision:168 [ keyboard_events_size#16 main::key_event#0 current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 collision::xpos#5 collision::piece_gfx#0 collision::ypos2#2 collision::l#6 collision::playfield_line#0 collision::col#2 collision::c#2 collision::i#1 ] ) always clobbers reg byte a +Statement [115] (byte~) collision::$7 ← (byte) collision::col#2 & (byte/word/signed word/dword/signed dword) 128 [ collision::xpos#5 collision::piece_gfx#0 collision::ypos2#2 collision::l#6 collision::playfield_line#0 collision::col#2 collision::c#2 collision::i#1 collision::$7 ] ( main:2::play_move_rotate:38::collision:95 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::render#2 current_piece#13 current_xpos#23 current_ypos#16 current_orientation#18 current_piece_gfx#17 play_move_rotate::orientation#3 collision::xpos#5 collision::piece_gfx#0 collision::ypos2#2 collision::l#6 collision::playfield_line#0 collision::col#2 collision::c#2 collision::i#1 collision::$7 ] main:2::play_move_leftright:33::collision:133 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::key_event#0 main::render#1 current_piece_gfx#17 current_piece#13 current_ypos#16 current_orientation#18 current_xpos#19 collision::xpos#5 collision::piece_gfx#0 collision::ypos2#2 collision::l#6 collision::playfield_line#0 collision::col#2 collision::c#2 collision::i#1 collision::$7 ] main:2::play_move_leftright:33::collision:144 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::key_event#0 main::render#1 current_piece_gfx#17 current_piece#13 current_ypos#16 current_orientation#18 current_xpos#19 collision::xpos#5 collision::piece_gfx#0 collision::ypos2#2 collision::l#6 collision::playfield_line#0 collision::col#2 collision::c#2 collision::i#1 collision::$7 ] main:2::play_move_down:28::collision:168 [ keyboard_events_size#16 main::key_event#0 current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 collision::xpos#5 collision::piece_gfx#0 collision::ypos2#2 collision::l#6 collision::playfield_line#0 collision::col#2 collision::c#2 collision::i#1 collision::$7 ] ) always clobbers reg byte a +Statement [118] if(*((byte*) collision::playfield_line#0 + (byte) collision::col#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto collision::@3 [ collision::xpos#5 collision::piece_gfx#0 collision::ypos2#2 collision::l#6 collision::playfield_line#0 collision::col#2 collision::c#2 collision::i#1 ] ( main:2::play_move_rotate:38::collision:95 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::render#2 current_piece#13 current_xpos#23 current_ypos#16 current_orientation#18 current_piece_gfx#17 play_move_rotate::orientation#3 collision::xpos#5 collision::piece_gfx#0 collision::ypos2#2 collision::l#6 collision::playfield_line#0 collision::col#2 collision::c#2 collision::i#1 ] main:2::play_move_leftright:33::collision:133 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::key_event#0 main::render#1 current_piece_gfx#17 current_piece#13 current_ypos#16 current_orientation#18 current_xpos#19 collision::xpos#5 collision::piece_gfx#0 collision::ypos2#2 collision::l#6 collision::playfield_line#0 collision::col#2 collision::c#2 collision::i#1 ] main:2::play_move_leftright:33::collision:144 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::key_event#0 main::render#1 current_piece_gfx#17 current_piece#13 current_ypos#16 current_orientation#18 current_xpos#19 collision::xpos#5 collision::piece_gfx#0 collision::ypos2#2 collision::l#6 collision::playfield_line#0 collision::col#2 collision::c#2 collision::i#1 ] main:2::play_move_down:28::collision:168 [ keyboard_events_size#16 main::key_event#0 current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 collision::xpos#5 collision::piece_gfx#0 collision::ypos2#2 collision::l#6 collision::playfield_line#0 collision::col#2 collision::c#2 collision::i#1 ] ) always clobbers reg byte a +Statement [132] (byte*~) current_piece#73 ← (byte*) current_piece#13 [ current_piece#13 current_ypos#16 current_orientation#18 current_piece#73 collision::orientation#2 collision::ypos#2 collision::xpos#2 current_xpos#19 ] ( main:2::play_move_leftright:33 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::key_event#0 main::render#1 current_piece_gfx#17 current_piece#13 current_ypos#16 current_orientation#18 current_piece#73 collision::orientation#2 collision::ypos#2 collision::xpos#2 current_xpos#19 ] ) always clobbers reg byte a +Statement [143] (byte*~) current_piece#72 ← (byte*) current_piece#13 [ current_piece#13 current_ypos#16 current_orientation#18 current_piece#72 collision::orientation#1 collision::ypos#1 collision::xpos#1 current_xpos#19 ] ( main:2::play_move_leftright:33 [ current_piece_color#13 keyboard_events_size#16 current_movedown_counter#12 main::key_event#0 main::render#1 current_piece_gfx#17 current_piece#13 current_ypos#16 current_orientation#18 current_piece#72 collision::orientation#1 collision::ypos#1 collision::xpos#1 current_xpos#19 ] ) always clobbers reg byte a +Statement [167] (byte*~) current_piece#71 ← (byte*) current_piece#11 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_piece#71 collision::orientation#0 collision::ypos#0 collision::xpos#0 ] ( main:2::play_move_down:28 [ keyboard_events_size#16 main::key_event#0 current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_piece#71 collision::orientation#0 collision::ypos#0 collision::xpos#0 ] ) always clobbers reg byte a +Statement [178] (byte*~) current_piece#75 ← (byte*)*((const word[]) PIECES#0 + (byte~) spawn_current::$3) [ current_piece_gfx#10 current_piece_color#15 current_piece#75 ] ( main:2::play_move_down:28 [ keyboard_events_size#16 main::key_event#0 current_piece_gfx#10 current_piece_color#15 current_piece#75 ] ) always clobbers reg byte a +Statement [186] (byte~) spawn_current::$3 ← (byte) spawn_current::piece_idx#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ spawn_current::$3 spawn_current::piece_idx#2 ] ( main:2::spawn_current:11 [ spawn_current::$3 spawn_current::piece_idx#2 ] main:2::play_move_down:28::spawn_current:177 [ keyboard_events_size#16 main::key_event#0 spawn_current::$3 spawn_current::piece_idx#2 ] ) always clobbers reg byte a +Statement [187] (byte*) current_piece_gfx#10 ← (byte*)*((const word[]) PIECES#0 + (byte~) spawn_current::$3) + (byte/signed byte/word/signed word/dword/signed dword) 0 [ current_piece_gfx#10 spawn_current::$3 spawn_current::piece_idx#2 ] ( main:2::spawn_current:11 [ current_piece_gfx#10 spawn_current::$3 spawn_current::piece_idx#2 ] main:2::play_move_down:28::spawn_current:177 [ keyboard_events_size#16 main::key_event#0 current_piece_gfx#10 spawn_current::$3 spawn_current::piece_idx#2 ] ) always clobbers reg byte a +Statement [188] (byte) current_piece_color#15 ← *((const byte[]) PIECES_COLORS#0 + (byte) spawn_current::piece_idx#2) [ current_piece_gfx#10 current_piece_color#15 spawn_current::$3 ] ( main:2::spawn_current:11 [ current_piece_gfx#10 current_piece_color#15 spawn_current::$3 ] main:2::play_move_down:28::spawn_current:177 [ keyboard_events_size#16 main::key_event#0 current_piece_gfx#10 current_piece_color#15 spawn_current::$3 ] ) always clobbers reg byte a +Statement [194] (byte) spawn_current::piece_idx#1 ← (byte~) spawn_current::$1 & (byte/signed byte/word/signed word/dword/signed dword) 7 [ spawn_current::piece_idx#1 ] ( main:2::spawn_current:11 [ spawn_current::piece_idx#1 ] main:2::play_move_down:28::spawn_current:177 [ keyboard_events_size#16 main::key_event#0 spawn_current::piece_idx#1 ] ) always clobbers reg byte a +Statement [209] (byte) remove_line::i2#0 ← *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte~) remove_line::$0) - (byte/signed byte/word/signed word/dword/signed dword) 1 [ remove_line::ypos#0 remove_line::i2#0 ] ( main:2::play_move_down:28::remove_lines:175::remove_line:207 [ keyboard_events_size#16 main::key_event#0 remove_lines::done#3 remove_line::ypos#0 remove_line::i2#0 ] ) always clobbers reg byte a +Statement [210] (byte) remove_line::i1#0 ← *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0 + (byte) remove_line::ypos#0) - (byte/signed byte/word/signed word/dword/signed dword) 1 [ remove_line::ypos#0 remove_line::i2#0 remove_line::i1#0 ] ( main:2::play_move_down:28::remove_lines:175::remove_line:207 [ keyboard_events_size#16 main::key_event#0 remove_lines::done#3 remove_line::ypos#0 remove_line::i2#0 remove_line::i1#0 ] ) always clobbers reg byte a +Statement [213] *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) remove_line::i2#2) ← *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) remove_line::i1#2) [ remove_line::y#4 remove_line::i1#2 remove_line::i2#2 remove_line::x#2 ] ( main:2::play_move_down:28::remove_lines:175::remove_line:207 [ keyboard_events_size#16 main::key_event#0 remove_lines::done#3 remove_line::y#4 remove_line::i1#2 remove_line::i2#2 remove_line::x#2 ] ) always clobbers reg byte a +Statement [225] if(*((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) find_line::i#2)!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto find_line::@13 [ find_line::y#8 find_line::x#2 find_line::filled#4 find_line::i#1 ] ( main:2::play_move_down:28::remove_lines:175::find_line:199 [ keyboard_events_size#16 main::key_event#0 remove_lines::done#3 find_line::y#8 find_line::x#2 find_line::filled#4 find_line::i#1 ] ) always clobbers reg byte a +Statement [237] (byte) lock_current::ypos2#0 ← (byte) current_ypos#12 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ current_piece_gfx#15 current_xpos#16 current_piece_color#11 lock_current::ypos2#0 ] ( main:2::play_move_down:28::lock_current:173 [ keyboard_events_size#16 main::key_event#0 current_piece_gfx#15 current_xpos#16 current_piece_color#11 lock_current::ypos2#0 ] ) always clobbers reg byte a +Statement [239] (byte*) lock_current::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) lock_current::ypos2#2) [ current_piece_gfx#15 current_xpos#16 current_piece_color#11 lock_current::ypos2#2 lock_current::i#3 lock_current::l#6 lock_current::playfield_line#0 ] ( main:2::play_move_down:28::lock_current:173 [ keyboard_events_size#16 main::key_event#0 current_piece_gfx#15 current_xpos#16 current_piece_color#11 lock_current::ypos2#2 lock_current::i#3 lock_current::l#6 lock_current::playfield_line#0 ] ) always clobbers reg byte a +Statement [243] if(*((byte*) current_piece_gfx#15 + (byte) lock_current::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto lock_current::@3 [ current_piece_gfx#15 current_xpos#16 current_piece_color#11 lock_current::ypos2#2 lock_current::l#6 lock_current::playfield_line#0 lock_current::col#2 lock_current::c#2 lock_current::i#1 ] ( main:2::play_move_down:28::lock_current:173 [ keyboard_events_size#16 main::key_event#0 current_piece_gfx#15 current_xpos#16 current_piece_color#11 lock_current::ypos2#2 lock_current::l#6 lock_current::playfield_line#0 lock_current::col#2 lock_current::c#2 lock_current::i#1 ] ) always clobbers reg byte a +Statement [244] *((byte*) lock_current::playfield_line#0 + (byte) lock_current::col#2) ← (byte) current_piece_color#11 [ current_piece_gfx#15 current_xpos#16 current_piece_color#11 lock_current::ypos2#2 lock_current::l#6 lock_current::playfield_line#0 lock_current::col#2 lock_current::c#2 lock_current::i#1 ] ( main:2::play_move_down:28::lock_current:173 [ keyboard_events_size#16 main::key_event#0 current_piece_gfx#15 current_xpos#16 current_piece_color#11 lock_current::ypos2#2 lock_current::l#6 lock_current::playfield_line#0 lock_current::col#2 lock_current::c#2 lock_current::i#1 ] ) always clobbers reg byte a +Statement [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:2::play_move_down:28::keyboard_event_pressed:153 [ keyboard_events_size#16 main::key_event#0 current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#10 play_move_down::movedown#10 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] main:2::keyboard_event_scan:22::keyboard_event_pressed:277 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#15 keyboard_events_size#13 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] main:2::keyboard_event_scan:22::keyboard_event_pressed:283 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#15 keyboard_events_size#13 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] main:2::keyboard_event_scan:22::keyboard_event_pressed:289 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#15 keyboard_events_size#13 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] main:2::keyboard_event_scan:22::keyboard_event_pressed:295 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#15 keyboard_events_size#13 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] ) always clobbers reg byte a +Statement [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:2::play_move_down:28::keyboard_event_pressed:153 [ keyboard_events_size#16 main::key_event#0 current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#10 play_move_down::movedown#10 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:2::keyboard_event_scan:22::keyboard_event_pressed:277 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#15 keyboard_events_size#13 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:2::keyboard_event_scan:22::keyboard_event_pressed:283 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#15 keyboard_events_size#13 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:2::keyboard_event_scan:22::keyboard_event_pressed:289 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#15 keyboard_events_size#13 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:2::keyboard_event_scan:22::keyboard_event_pressed:295 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#15 keyboard_events_size#13 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] ) always clobbers reg byte a +Statement [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:2::play_move_down:28::keyboard_event_pressed:153 [ keyboard_events_size#16 main::key_event#0 current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#10 play_move_down::movedown#10 keyboard_event_pressed::return#11 ] main:2::keyboard_event_scan:22::keyboard_event_pressed:277 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#15 keyboard_events_size#13 keyboard_event_pressed::return#11 ] main:2::keyboard_event_scan:22::keyboard_event_pressed:283 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#15 keyboard_events_size#13 keyboard_event_pressed::return#11 ] main:2::keyboard_event_scan:22::keyboard_event_pressed:289 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#15 keyboard_events_size#13 keyboard_event_pressed::return#11 ] main:2::keyboard_event_scan:22::keyboard_event_pressed:295 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#15 keyboard_events_size#13 keyboard_event_pressed::return#11 ] ) always clobbers reg byte a +Statement [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:2::keyboard_event_scan:22 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#15 keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#29 keyboard_event_scan::row_scan#0 ] ) always clobbers reg byte a +Statement [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:2::keyboard_event_scan:22 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#15 keyboard_event_scan::row#2 keyboard_events_size#29 keyboard_event_scan::keycode#1 ] ) always clobbers reg byte a +Statement [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:2::keyboard_event_scan:22 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#15 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::$3 ] ) always clobbers reg byte a +Statement [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:2::keyboard_event_scan:22 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#15 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::$4 ] ) always clobbers reg byte a +Statement [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:2::keyboard_event_scan:22 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#15 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::event_type#0 ] ) always clobbers reg byte a +Statement [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:2::keyboard_event_scan:22 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#15 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 ] ) always clobbers reg byte a +Statement [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:2::keyboard_event_scan:22 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#15 keyboard_event_scan::row#2 keyboard_event_scan::keycode#15 keyboard_events_size#30 ] ) always clobbers reg byte a +Statement [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:2::keyboard_event_scan:22 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#15 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::$11 ] ) always clobbers reg byte a +Statement [318] *((const byte*) CIA1_PORT_A#0) ← *((const byte[8]) keyboard_matrix_row_bitmask#0 + (byte) keyboard_matrix_read::rowid#0) [ ] ( main:2::keyboard_event_scan:22::keyboard_matrix_read:268 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#15 keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#29 ] ) always clobbers reg byte a +Statement [319] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) [ keyboard_matrix_read::return#0 ] ( main:2::keyboard_event_scan:22::keyboard_matrix_read:268 [ current_piece#11 current_orientation#15 current_piece_gfx#15 current_xpos#16 current_ypos#12 current_piece_color#11 current_movedown_counter#15 keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#29 keyboard_matrix_read::return#0 ] ) always clobbers reg byte a +Statement [323] (byte~) tables_init::$1 ← (byte) tables_init::j#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ tables_init::j#2 tables_init::pli#2 tables_init::idx#2 tables_init::$1 ] ( main:2::tables_init:9 [ tables_init::j#2 tables_init::pli#2 tables_init::idx#2 tables_init::$1 ] ) always clobbers reg byte a +Statement [324] *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte~) tables_init::$1) ← (byte*) tables_init::pli#2 [ tables_init::j#2 tables_init::pli#2 tables_init::idx#2 ] ( main:2::tables_init:9 [ tables_init::j#2 tables_init::pli#2 tables_init::idx#2 ] ) always clobbers reg byte a +Statement [325] *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0 + (byte) tables_init::j#2) ← (byte) tables_init::idx#2 [ tables_init::j#2 tables_init::pli#2 tables_init::idx#2 ] ( main:2::tables_init:9 [ tables_init::j#2 tables_init::pli#2 tables_init::idx#2 ] ) always clobbers reg byte a +Statement [326] (byte*) tables_init::pli#1 ← (byte*) tables_init::pli#2 + (const byte) PLAYFIELD_COLS#0 [ tables_init::j#2 tables_init::idx#2 tables_init::pli#1 ] ( main:2::tables_init:9 [ tables_init::j#2 tables_init::idx#2 tables_init::pli#1 ] ) always clobbers reg byte a +Statement [327] (byte) tables_init::idx#1 ← (byte) tables_init::idx#2 + (const byte) PLAYFIELD_COLS#0 [ tables_init::j#2 tables_init::pli#1 tables_init::idx#1 ] ( main:2::tables_init:9 [ tables_init::j#2 tables_init::pli#1 tables_init::idx#1 ] ) always clobbers reg byte a +Statement [330] *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0+(const byte) PLAYFIELD_LINES#0) ← (const byte) PLAYFIELD_COLS#0*(const byte) PLAYFIELD_LINES#0 [ ] ( main:2::tables_init:9 [ ] ) always clobbers reg byte a +Statement [337] (byte~) render_init::$5 ← (byte) render_init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ render_init::i#2 render_init::li#2 render_init::$5 ] ( main:2::render_init:7 [ render_init::i#2 render_init::li#2 render_init::$5 ] ) always clobbers reg byte a +Statement [338] *((const byte*[PLAYFIELD_LINES#0+3]) screen_lines#0 + (byte~) render_init::$5) ← (byte*) render_init::li#2 [ render_init::i#2 render_init::li#2 ] ( main:2::render_init:7 [ render_init::i#2 render_init::li#2 ] ) always clobbers reg byte a +Statement [339] (byte*) render_init::li#1 ← (byte*) render_init::li#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ render_init::i#2 render_init::li#1 ] ( main:2::render_init:7 [ render_init::i#2 render_init::li#1 ] ) always clobbers reg byte a +Statement [344] (byte*~) render_init::$10 ← (byte*) render_init::line#4 + (byte) render_init::c#2 [ render_init::line#4 render_init::l#4 render_init::c#2 render_init::$10 ] ( main:2::render_init:7 [ render_init::line#4 render_init::l#4 render_init::c#2 render_init::$10 ] ) always clobbers reg byte a +Statement [345] *((byte*~) render_init::$10) ← (const byte) DARK_GREY#0 [ render_init::line#4 render_init::l#4 render_init::c#2 ] ( main:2::render_init:7 [ render_init::line#4 render_init::l#4 render_init::c#2 ] ) always clobbers reg byte a reg byte y +Statement [348] (byte*) render_init::line#1 ← (byte*) render_init::line#4 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ render_init::l#4 render_init::line#1 ] ( main:2::render_init:7 [ render_init::l#4 render_init::line#1 ] ) always clobbers reg byte a +Statement [353] (byte*) fill::end#0 ← (byte*) fill::addr#0 + (word/signed word/dword/signed dword) 1000 [ fill::addr#0 fill::val#3 fill::end#0 ] ( main:2::render_init:7::fill:333 [ fill::addr#0 fill::val#3 fill::end#0 ] main:2::render_init:7::fill:335 [ fill::addr#0 fill::val#3 fill::end#0 ] ) always clobbers reg byte a +Statement [355] *((byte*) fill::addr#2) ← (byte) fill::val#3 [ fill::val#3 fill::end#0 fill::addr#2 ] ( main:2::render_init:7::fill:333 [ fill::val#3 fill::end#0 fill::addr#2 ] main:2::render_init:7::fill:335 [ fill::val#3 fill::end#0 fill::addr#2 ] ) always clobbers reg byte a reg byte y +Statement [357] if((byte*) fill::addr#1!=(byte*) fill::end#0) goto fill::@1 [ fill::val#3 fill::end#0 fill::addr#1 ] ( main:2::render_init:7::fill:333 [ fill::val#3 fill::end#0 fill::addr#1 ] main:2::render_init:7::fill:335 [ fill::val#3 fill::end#0 fill::addr#1 ] ) always clobbers reg byte a +Statement [359] *((const word*) SID_VOICE3_FREQ#0) ← (word/dword/signed dword) 65535 [ ] ( main:2::sid_rnd_init:5 [ ] ) always clobbers reg byte a +Statement [360] *((const byte*) SID_VOICE3_CONTROL#0) ← (const byte) SID_CONTROL_NOISE#0 [ ] ( main:2::sid_rnd_init:5 [ ] ) always clobbers reg byte a Potential registers zp ZP_BYTE:2 [ current_ypos#12 current_ypos#16 current_ypos#31 current_ypos#4 ] : zp ZP_BYTE:2 , reg byte x , Potential registers zp ZP_BYTE:3 [ current_movedown_counter#15 current_movedown_counter#12 current_movedown_counter#10 ] : zp ZP_BYTE:3 , reg byte x , -Potential registers zp ZP_BYTE:4 [ current_ypos#22 current_ypos#69 ] : zp ZP_BYTE:4 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:5 [ current_xpos#63 current_xpos#94 ] : zp ZP_BYTE:5 , reg byte x , reg byte y , -Potential registers zp ZP_WORD:6 [ current_piece_gfx#63 current_piece_gfx#85 current_piece_gfx#86 ] : zp ZP_WORD:6 , -Potential registers zp ZP_BYTE:8 [ current_piece_color#65 current_piece_color#73 current_piece_color#74 ] : zp ZP_BYTE:8 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:4 [ current_ypos#22 current_ypos#70 ] : zp ZP_BYTE:4 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:5 [ current_xpos#63 current_xpos#95 ] : zp ZP_BYTE:5 , reg byte x , reg byte y , +Potential registers zp ZP_WORD:6 [ current_piece_gfx#63 current_piece_gfx#86 current_piece_gfx#87 ] : zp ZP_WORD:6 , +Potential registers zp ZP_BYTE:8 [ current_piece_color#66 current_piece_color#74 current_piece_color#75 ] : zp ZP_BYTE:8 , reg byte x , reg byte y , Potential registers zp ZP_BYTE:9 [ render_current::ypos2#2 render_current::ypos2#0 render_current::ypos2#1 ] : zp ZP_BYTE:9 , reg byte x , reg byte y , Potential registers zp ZP_BYTE:10 [ render_current::l#3 render_current::l#1 ] : zp ZP_BYTE:10 , reg byte x , reg byte y , Potential registers zp ZP_BYTE:11 [ render_current::i#2 render_current::i#1 render_current::i#4 render_current::i#8 ] : zp ZP_BYTE:11 , reg byte x , reg byte y , @@ -9006,7 +9061,7 @@ Potential registers zp ZP_WORD:16 [ render_playfield::line#2 render_playfield::l Potential registers zp ZP_BYTE:18 [ render_playfield::c#2 render_playfield::c#1 ] : zp ZP_BYTE:18 , reg byte x , Potential registers zp ZP_BYTE:19 [ play_move_rotate::return#2 ] : zp ZP_BYTE:19 , reg byte a , reg byte x , reg byte y , Potential registers zp ZP_BYTE:20 [ play_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#2 ] : zp ZP_BYTE:20 , reg byte x , reg byte y , -Potential registers zp ZP_WORD:21 [ current_piece#15 current_piece#70 current_piece#71 current_piece#72 current_piece#73 ] : zp ZP_WORD:21 , +Potential registers zp ZP_WORD:21 [ current_piece#15 current_piece#71 current_piece#72 current_piece#73 current_piece#74 ] : zp ZP_WORD:21 , Potential registers zp ZP_BYTE:23 [ collision::orientation#4 collision::orientation#0 collision::orientation#1 collision::orientation#2 collision::orientation#3 ] : zp ZP_BYTE:23 , reg byte x , reg byte y , Potential registers zp ZP_BYTE:24 [ collision::ypos#4 collision::ypos#0 collision::ypos#1 collision::ypos#2 collision::ypos#3 ] : zp ZP_BYTE:24 , reg byte x , reg byte y , Potential registers zp ZP_BYTE:25 [ collision::xpos#5 collision::xpos#0 collision::xpos#1 collision::xpos#2 collision::xpos#3 ] : zp ZP_BYTE:25 , reg byte x , reg byte y , @@ -9018,7 +9073,7 @@ Potential registers zp ZP_BYTE:30 [ collision::c#2 collision::c#1 ] : zp ZP_BYTE Potential registers zp ZP_BYTE:31 [ collision::return#14 ] : zp ZP_BYTE:31 , reg byte a , reg byte x , reg byte y , Potential registers zp ZP_BYTE:32 [ play_move_leftright::return#2 ] : zp ZP_BYTE:32 , reg byte a , reg byte x , reg byte y , Potential registers zp ZP_BYTE:33 [ play_move_down::movedown#6 play_move_down::movedown#3 play_move_down::movedown#7 play_move_down::movedown#2 play_move_down::movedown#10 ] : zp ZP_BYTE:33 , reg byte x , reg byte y , -Potential registers zp ZP_WORD:34 [ current_piece#23 current_piece#74 current_piece#11 current_piece#13 current_piece#69 ] : zp ZP_WORD:34 , +Potential registers zp ZP_WORD:34 [ current_piece#23 current_piece#75 current_piece#11 current_piece#13 current_piece#70 ] : zp ZP_WORD:34 , Potential registers zp ZP_BYTE:36 [ current_orientation#33 current_orientation#15 current_orientation#23 current_orientation#8 current_orientation#18 ] : zp ZP_BYTE:36 , reg byte x , Potential registers zp ZP_WORD:37 [ current_piece_gfx#29 current_piece_gfx#15 current_piece_gfx#18 current_piece_gfx#10 current_piece_gfx#8 current_piece_gfx#17 ] : zp ZP_WORD:37 , Potential registers zp ZP_BYTE:39 [ current_xpos#36 current_xpos#16 current_xpos#23 current_xpos#9 current_xpos#19 current_xpos#7 ] : zp ZP_BYTE:39 , reg byte x , @@ -9045,29 +9100,29 @@ Potential registers zp ZP_BYTE:59 [ keyboard_event_scan::row#2 keyboard_event_sc Potential registers zp ZP_BYTE:60 [ keyboard_event_scan::col#2 keyboard_event_scan::col#1 ] : zp ZP_BYTE:60 , reg byte x , reg byte y , Potential registers zp ZP_BYTE:61 [ keyboard_event_scan::keycode#10 keyboard_event_scan::keycode#11 keyboard_event_scan::keycode#14 keyboard_event_scan::keycode#1 keyboard_event_scan::keycode#15 ] : zp ZP_BYTE:61 , reg byte x , reg byte y , Potential registers zp ZP_BYTE:62 [ 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:62 , reg byte x , -Potential registers zp ZP_BYTE:63 [ init::i#2 init::i#1 ] : zp ZP_BYTE:63 , reg byte x , reg byte y , -Potential registers zp ZP_WORD:64 [ init::li#2 init::li#1 ] : zp ZP_WORD:64 , -Potential registers zp ZP_BYTE:66 [ init::j#2 init::j#1 ] : zp ZP_BYTE:66 , reg byte x , reg byte y , -Potential registers zp ZP_WORD:67 [ init::pli#2 init::pli#1 ] : zp ZP_WORD:67 , -Potential registers zp ZP_BYTE:69 [ init::idx#2 init::idx#1 ] : zp ZP_BYTE:69 , reg byte x , reg byte y , -Potential registers zp ZP_WORD:70 [ init::line#4 init::line#1 ] : zp ZP_WORD:70 , -Potential registers zp ZP_BYTE:72 [ init::l#4 init::l#1 ] : zp ZP_BYTE:72 , reg byte x , -Potential registers zp ZP_BYTE:73 [ init::c#2 init::c#1 ] : zp ZP_BYTE:73 , reg byte x , +Potential registers zp ZP_BYTE:63 [ tables_init::j#2 tables_init::j#1 ] : zp ZP_BYTE:63 , reg byte x , reg byte y , +Potential registers zp ZP_WORD:64 [ tables_init::pli#2 tables_init::pli#1 ] : zp ZP_WORD:64 , +Potential registers zp ZP_BYTE:66 [ tables_init::idx#2 tables_init::idx#1 ] : zp ZP_BYTE:66 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:67 [ render_init::i#2 render_init::i#1 ] : zp ZP_BYTE:67 , reg byte x , reg byte y , +Potential registers zp ZP_WORD:68 [ render_init::li#2 render_init::li#1 ] : zp ZP_WORD:68 , +Potential registers zp ZP_WORD:70 [ render_init::line#4 render_init::line#1 ] : zp ZP_WORD:70 , +Potential registers zp ZP_BYTE:72 [ render_init::l#4 render_init::l#1 ] : zp ZP_BYTE:72 , reg byte x , +Potential registers zp ZP_BYTE:73 [ render_init::c#2 render_init::c#1 ] : zp ZP_BYTE:73 , reg byte x , Potential registers zp ZP_BYTE:74 [ fill::val#3 ] : zp ZP_BYTE:74 , reg byte x , Potential registers zp ZP_WORD:75 [ fill::addr#2 fill::addr#0 fill::addr#1 ] : zp ZP_WORD:75 , Potential registers zp ZP_BYTE:77 [ keyboard_event_get::return#3 ] : zp ZP_BYTE:77 , reg byte a , reg byte x , reg byte y , Potential registers zp ZP_BYTE:78 [ main::key_event#0 ] : zp ZP_BYTE:78 , reg byte x , reg byte y , Potential registers zp ZP_BYTE:79 [ play_move_down::key_event#0 ] : zp ZP_BYTE:79 , reg byte a , reg byte x , reg byte y , Potential registers zp ZP_BYTE:80 [ play_move_down::return#0 ] : zp ZP_BYTE:80 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:81 [ main::$9 ] : zp ZP_BYTE:81 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:81 [ main::$10 ] : zp ZP_BYTE:81 , reg byte a , reg byte x , reg byte y , Potential registers zp ZP_BYTE:82 [ main::render#1 ] : zp ZP_BYTE:82 , reg byte x , reg byte y , Potential registers zp ZP_BYTE:83 [ play_move_leftright::key_event#0 ] : zp ZP_BYTE:83 , reg byte a , reg byte x , reg byte y , Potential registers zp ZP_BYTE:84 [ play_move_leftright::return#0 ] : zp ZP_BYTE:84 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:85 [ main::$10 ] : zp ZP_BYTE:85 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:85 [ main::$11 ] : zp ZP_BYTE:85 , reg byte a , reg byte x , reg byte y , Potential registers zp ZP_BYTE:86 [ main::render#2 ] : zp ZP_BYTE:86 , reg byte x , reg byte y , Potential registers zp ZP_BYTE:87 [ play_move_rotate::key_event#0 ] : zp ZP_BYTE:87 , reg byte a , reg byte x , reg byte y , Potential registers zp ZP_BYTE:88 [ play_move_rotate::return#0 ] : zp ZP_BYTE:88 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:89 [ main::$11 ] : zp ZP_BYTE:89 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:89 [ main::$12 ] : zp ZP_BYTE:89 , reg byte a , reg byte x , reg byte y , Potential registers zp ZP_BYTE:90 [ main::render#3 ] : zp ZP_BYTE:90 , reg byte a , reg byte x , reg byte y , Potential registers zp ZP_WORD:91 [ render_current::screen_line#0 ] : zp ZP_WORD:91 , Potential registers zp ZP_BYTE:93 [ render_current::current_cell#0 ] : zp ZP_BYTE:93 , reg byte a , reg byte x , reg byte y , @@ -9118,9 +9173,9 @@ Potential registers zp ZP_BYTE:140 [ keyboard_event_scan::$4 ] : zp ZP_BYTE:140 Potential registers zp ZP_BYTE:141 [ keyboard_event_scan::event_type#0 ] : zp ZP_BYTE:141 , reg byte a , reg byte x , reg byte y , Potential registers zp ZP_BYTE:142 [ keyboard_event_scan::$11 ] : zp ZP_BYTE:142 , reg byte a , reg byte x , reg byte y , Potential registers zp ZP_BYTE:143 [ keyboard_matrix_read::return#0 ] : zp ZP_BYTE:143 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:144 [ init::$5 ] : zp ZP_BYTE:144 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:145 [ init::$8 ] : zp ZP_BYTE:145 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_WORD:146 [ init::$14 ] : zp ZP_WORD:146 , +Potential registers zp ZP_BYTE:144 [ tables_init::$1 ] : zp ZP_BYTE:144 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:145 [ render_init::$5 ] : zp ZP_BYTE:145 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_WORD:146 [ render_init::$10 ] : zp ZP_WORD:146 , Potential registers zp ZP_WORD:148 [ fill::end#0 ] : zp ZP_WORD:148 , REGISTER UPLIFT SCOPES @@ -9130,14 +9185,15 @@ Uplift Scope [keyboard_event_scan] 2,002: zp ZP_BYTE:139 [ keyboard_event_scan:: Uplift Scope [collision] 3,823.33: zp ZP_BYTE:28 [ collision::i#2 collision::i#3 collision::i#11 collision::i#13 ] 2,002: zp ZP_BYTE:104 [ collision::$7 ] 1,340.75: zp ZP_BYTE:29 [ collision::col#2 collision::col#9 collision::col#1 ] 1,223.44: zp ZP_BYTE:30 [ collision::c#2 collision::c#1 ] 161.77: zp ZP_BYTE:103 [ collision::i#1 ] 141.57: zp ZP_BYTE:26 [ collision::ypos2#2 collision::ypos2#0 collision::ypos2#1 ] 113.62: zp ZP_BYTE:27 [ collision::l#6 collision::l#1 ] 78.71: zp ZP_WORD:101 [ collision::playfield_line#0 ] 47.76: zp ZP_WORD:99 [ collision::piece_gfx#0 ] 18: zp ZP_BYTE:23 [ collision::orientation#4 collision::orientation#0 collision::orientation#1 collision::orientation#2 collision::orientation#3 ] 10: zp ZP_BYTE:24 [ collision::ypos#4 collision::ypos#0 collision::ypos#1 collision::ypos#2 collision::ypos#3 ] 9.29: zp ZP_BYTE:25 [ collision::xpos#5 collision::xpos#0 collision::xpos#1 collision::xpos#2 collision::xpos#3 ] 4: zp ZP_BYTE:96 [ collision::return#13 ] 4: zp ZP_BYTE:105 [ collision::return#12 ] 4: zp ZP_BYTE:107 [ collision::return#1 ] 4: zp ZP_BYTE:111 [ collision::return#0 ] 1.33: zp ZP_BYTE:31 [ collision::return#14 ] Uplift Scope [lock_current] 3,823.33: zp ZP_BYTE:54 [ lock_current::i#2 lock_current::i#3 lock_current::i#7 lock_current::i#9 ] 1,478.5: zp ZP_BYTE:55 [ lock_current::col#2 lock_current::col#0 lock_current::col#1 ] 1,401.4: zp ZP_BYTE:56 [ lock_current::c#2 lock_current::c#1 ] 233.67: zp ZP_BYTE:123 [ lock_current::i#1 ] 117.83: zp ZP_BYTE:53 [ lock_current::l#6 lock_current::l#1 ] 110.2: zp ZP_WORD:121 [ lock_current::playfield_line#0 ] 82.23: zp ZP_BYTE:52 [ lock_current::ypos2#2 lock_current::ypos2#0 lock_current::ypos2#1 ] Uplift Scope [render_current] 2,357.5: zp ZP_BYTE:11 [ render_current::i#2 render_current::i#1 render_current::i#4 render_current::i#8 ] 1,787.5: zp ZP_BYTE:13 [ render_current::c#2 render_current::c#1 ] 1,553.5: zp ZP_BYTE:12 [ render_current::xpos#2 render_current::xpos#1 render_current::xpos#0 ] 1,001: zp ZP_BYTE:93 [ render_current::current_cell#0 ] 164.97: zp ZP_BYTE:10 [ render_current::l#3 render_current::l#1 ] 100.33: zp ZP_BYTE:9 [ render_current::ypos2#2 render_current::ypos2#0 render_current::ypos2#1 ] 100.18: zp ZP_WORD:91 [ render_current::screen_line#0 ] -Uplift Scope [] 5,895.74: zp ZP_BYTE:62 [ 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 ] 79.37: zp ZP_BYTE:8 [ current_piece_color#65 current_piece_color#73 current_piece_color#74 ] 66.37: zp ZP_WORD:6 [ current_piece_gfx#63 current_piece_gfx#85 current_piece_gfx#86 ] 32.67: zp ZP_WORD:37 [ current_piece_gfx#29 current_piece_gfx#15 current_piece_gfx#18 current_piece_gfx#10 current_piece_gfx#8 current_piece_gfx#17 ] 27.69: zp ZP_BYTE:40 [ current_piece_color#23 current_piece_color#11 current_piece_color#13 current_piece_color#15 ] 26: zp ZP_WORD:21 [ current_piece#15 current_piece#70 current_piece#71 current_piece#72 current_piece#73 ] 18.5: zp ZP_BYTE:4 [ current_ypos#22 current_ypos#69 ] 15.88: zp ZP_BYTE:39 [ current_xpos#36 current_xpos#16 current_xpos#23 current_xpos#9 current_xpos#19 current_xpos#7 ] 14.9: zp ZP_WORD:34 [ current_piece#23 current_piece#74 current_piece#11 current_piece#13 current_piece#69 ] 13.23: zp ZP_BYTE:5 [ current_xpos#63 current_xpos#94 ] 9.04: zp ZP_BYTE:2 [ current_ypos#12 current_ypos#16 current_ypos#31 current_ypos#4 ] 8.89: zp ZP_BYTE:36 [ current_orientation#33 current_orientation#15 current_orientation#23 current_orientation#8 current_orientation#18 ] 2.33: zp ZP_BYTE:3 [ current_movedown_counter#15 current_movedown_counter#12 current_movedown_counter#10 ] +Uplift Scope [] 5,895.76: zp ZP_BYTE:62 [ 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 ] 79.37: zp ZP_BYTE:8 [ current_piece_color#66 current_piece_color#74 current_piece_color#75 ] 66.37: zp ZP_WORD:6 [ current_piece_gfx#63 current_piece_gfx#86 current_piece_gfx#87 ] 32.79: zp ZP_WORD:37 [ current_piece_gfx#29 current_piece_gfx#15 current_piece_gfx#18 current_piece_gfx#10 current_piece_gfx#8 current_piece_gfx#17 ] 27.73: zp ZP_BYTE:40 [ current_piece_color#23 current_piece_color#11 current_piece_color#13 current_piece_color#15 ] 26: zp ZP_WORD:21 [ current_piece#15 current_piece#71 current_piece#72 current_piece#73 current_piece#74 ] 18.5: zp ZP_BYTE:4 [ current_ypos#22 current_ypos#70 ] 15.91: zp ZP_BYTE:39 [ current_xpos#36 current_xpos#16 current_xpos#23 current_xpos#9 current_xpos#19 current_xpos#7 ] 14.91: zp ZP_WORD:34 [ current_piece#23 current_piece#75 current_piece#11 current_piece#13 current_piece#70 ] 13.23: zp ZP_BYTE:5 [ current_xpos#63 current_xpos#95 ] 9.04: zp ZP_BYTE:2 [ current_ypos#12 current_ypos#16 current_ypos#31 current_ypos#4 ] 8.96: zp ZP_BYTE:36 [ current_orientation#33 current_orientation#15 current_orientation#23 current_orientation#8 current_orientation#18 ] 2.35: zp ZP_BYTE:3 [ current_movedown_counter#15 current_movedown_counter#12 current_movedown_counter#10 ] Uplift Scope [render_playfield] 2,254.5: zp ZP_WORD:16 [ render_playfield::line#2 render_playfield::line#0 render_playfield::line#1 ] 2,002: zp ZP_BYTE:18 [ render_playfield::c#2 render_playfield::c#1 ] 1,522.6: zp ZP_BYTE:15 [ render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 ] 202: zp ZP_BYTE:94 [ render_playfield::$1 ] 185.17: zp ZP_BYTE:14 [ render_playfield::l#2 render_playfield::l#1 ] -Uplift Scope [init] 252.5: zp ZP_BYTE:73 [ init::c#2 init::c#1 ] 202: zp ZP_WORD:146 [ init::$14 ] 27.83: zp ZP_WORD:70 [ init::line#4 init::line#1 ] 24.75: zp ZP_BYTE:63 [ init::i#2 init::i#1 ] 23.83: zp ZP_BYTE:66 [ init::j#2 init::j#1 ] 22: zp ZP_BYTE:144 [ init::$5 ] 22: zp ZP_BYTE:145 [ init::$8 ] 19.64: zp ZP_BYTE:72 [ init::l#4 init::l#1 ] 18.33: zp ZP_WORD:64 [ init::li#2 init::li#1 ] 13.93: zp ZP_BYTE:69 [ init::idx#2 init::idx#1 ] 13.75: zp ZP_WORD:67 [ init::pli#2 init::pli#1 ] -Uplift Scope [spawn_current] 243.2: zp ZP_BYTE:42 [ spawn_current::piece_idx#2 spawn_current::piece_idx#1 ] 202: zp ZP_BYTE:115 [ spawn_current::$1 ] 0.18: zp ZP_BYTE:113 [ spawn_current::$3 ] +Uplift Scope [render_init] 252.5: zp ZP_BYTE:73 [ render_init::c#2 render_init::c#1 ] 202: zp ZP_WORD:146 [ render_init::$10 ] 27.83: zp ZP_WORD:70 [ render_init::line#4 render_init::line#1 ] 24.75: zp ZP_BYTE:67 [ render_init::i#2 render_init::i#1 ] 22: zp ZP_BYTE:145 [ render_init::$5 ] 19.64: zp ZP_BYTE:72 [ render_init::l#4 render_init::l#1 ] 18.33: zp ZP_WORD:68 [ render_init::li#2 render_init::li#1 ] +Uplift Scope [spawn_current] 253.5: zp ZP_BYTE:42 [ spawn_current::piece_idx#2 spawn_current::piece_idx#1 ] 202: zp ZP_BYTE:115 [ spawn_current::$1 ] 0.18: zp ZP_BYTE:113 [ spawn_current::$3 ] Uplift Scope [keyboard_matrix_read] 202: zp ZP_BYTE:129 [ keyboard_matrix_read::return#2 ] 103: zp ZP_BYTE:128 [ keyboard_matrix_read::rowid#0 ] 34.33: zp ZP_BYTE:143 [ keyboard_matrix_read::return#0 ] Uplift Scope [remove_lines] 180.36: zp ZP_BYTE:43 [ remove_lines::done#3 remove_lines::done#2 ] 151.5: zp ZP_BYTE:118 [ remove_lines::line_ypos#0 ] Uplift Scope [sid_rnd] 202: zp ZP_BYTE:114 [ sid_rnd::return#2 ] 34.33: zp ZP_BYTE:116 [ sid_rnd::return#0 ] -Uplift Scope [main] 22: zp ZP_BYTE:81 [ main::$9 ] 22: zp ZP_BYTE:85 [ main::$10 ] 22: zp ZP_BYTE:89 [ main::$11 ] 22: zp ZP_BYTE:90 [ main::render#3 ] 4.4: zp ZP_BYTE:82 [ main::render#1 ] 4.4: zp ZP_BYTE:86 [ main::render#2 ] 4: zp ZP_BYTE:78 [ main::key_event#0 ] +Uplift Scope [main] 22: zp ZP_BYTE:81 [ main::$10 ] 22: zp ZP_BYTE:85 [ main::$11 ] 22: zp ZP_BYTE:89 [ main::$12 ] 22: zp ZP_BYTE:90 [ main::render#3 ] 4.4: zp ZP_BYTE:82 [ main::render#1 ] 4.4: zp ZP_BYTE:86 [ main::render#2 ] 4: zp ZP_BYTE:78 [ main::key_event#0 ] +Uplift Scope [tables_init] 23.83: zp ZP_BYTE:63 [ tables_init::j#2 tables_init::j#1 ] 22: zp ZP_BYTE:144 [ tables_init::$1 ] 13.93: zp ZP_BYTE:66 [ tables_init::idx#2 tables_init::idx#1 ] 13.75: zp ZP_WORD:64 [ tables_init::pli#2 tables_init::pli#1 ] Uplift Scope [play_move_down] 22: zp ZP_BYTE:80 [ play_move_down::return#0 ] 20: zp ZP_BYTE:33 [ play_move_down::movedown#6 play_move_down::movedown#3 play_move_down::movedown#7 play_move_down::movedown#2 play_move_down::movedown#10 ] 6.5: zp ZP_BYTE:79 [ play_move_down::key_event#0 ] 4: zp ZP_BYTE:110 [ play_move_down::$2 ] 4: zp ZP_BYTE:112 [ play_move_down::$12 ] 3.67: zp ZP_BYTE:41 [ play_move_down::return#3 ] Uplift Scope [play_move_rotate] 22: zp ZP_BYTE:88 [ play_move_rotate::return#0 ] 8.89: zp ZP_BYTE:20 [ play_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#2 ] 7.5: zp ZP_BYTE:87 [ play_move_rotate::key_event#0 ] 4: zp ZP_BYTE:95 [ play_move_rotate::$2 ] 4: zp ZP_BYTE:97 [ play_move_rotate::$6 ] 4: zp ZP_BYTE:98 [ play_move_rotate::$4 ] 3.67: zp ZP_BYTE:19 [ play_move_rotate::return#2 ] Uplift Scope [play_move_leftright] 22: zp ZP_BYTE:84 [ play_move_leftright::return#0 ] 7.5: zp ZP_BYTE:83 [ play_move_leftright::key_event#0 ] 4: zp ZP_BYTE:106 [ play_move_leftright::$4 ] 4: zp ZP_BYTE:108 [ play_move_leftright::$8 ] 3.67: zp ZP_BYTE:32 [ play_move_leftright::return#2 ] @@ -9146,204 +9202,204 @@ Uplift Scope [keyboard_event_pressed] 4: zp ZP_BYTE:109 [ keyboard_event_pressed Uplift Scope [keyboard_event_get] 22: zp ZP_BYTE:77 [ keyboard_event_get::return#3 ] 8.33: zp ZP_BYTE:58 [ keyboard_event_get::return#2 keyboard_event_get::return#1 ] Uplift Scope [sid_rnd_init] -Uplifting [find_line] best 1741055 combination zp ZP_BYTE:48 [ find_line::i#2 find_line::i#3 find_line::i#8 find_line::i#10 ] reg byte x [ find_line::x#2 find_line::x#1 ] zp ZP_BYTE:50 [ find_line::filled#4 find_line::filled#2 ] zp ZP_BYTE:120 [ find_line::i#1 ] zp ZP_BYTE:51 [ find_line::return#2 find_line::y#8 find_line::y#1 ] zp ZP_BYTE:117 [ find_line::return#0 ] +Uplifting [find_line] best 1740913 combination zp ZP_BYTE:48 [ find_line::i#2 find_line::i#3 find_line::i#8 find_line::i#10 ] reg byte x [ find_line::x#2 find_line::x#1 ] zp ZP_BYTE:50 [ find_line::filled#4 find_line::filled#2 ] zp ZP_BYTE:120 [ find_line::i#1 ] zp ZP_BYTE:51 [ find_line::return#2 find_line::y#8 find_line::y#1 ] zp ZP_BYTE:117 [ find_line::return#0 ] Limited combination testing to 100 combinations of 1296 possible. -Uplifting [remove_line] best 1621045 combination reg byte y [ remove_line::i2#2 remove_line::i2#3 remove_line::i2#0 remove_line::i2#1 ] zp ZP_BYTE:47 [ remove_line::x#2 remove_line::x#1 ] reg byte x [ remove_line::i1#2 remove_line::i1#3 remove_line::i1#0 remove_line::i1#1 ] zp ZP_BYTE:44 [ remove_line::y#4 remove_line::ypos#0 remove_line::y#1 ] reg byte a [ remove_line::$0 ] +Uplifting [remove_line] best 1620903 combination reg byte y [ remove_line::i2#2 remove_line::i2#3 remove_line::i2#0 remove_line::i2#1 ] zp ZP_BYTE:47 [ remove_line::x#2 remove_line::x#1 ] reg byte x [ remove_line::i1#2 remove_line::i1#3 remove_line::i1#0 remove_line::i1#1 ] zp ZP_BYTE:44 [ remove_line::y#4 remove_line::ypos#0 remove_line::y#1 ] reg byte a [ remove_line::$0 ] Limited combination testing to 100 combinations of 324 possible. -Uplifting [keyboard_event_scan] best 1597045 combination reg byte a [ keyboard_event_scan::$3 ] reg byte a [ keyboard_event_scan::$4 ] reg byte a [ keyboard_event_scan::event_type#0 ] reg byte a [ keyboard_event_scan::$11 ] zp ZP_BYTE:60 [ keyboard_event_scan::col#2 keyboard_event_scan::col#1 ] zp ZP_BYTE:61 [ keyboard_event_scan::keycode#10 keyboard_event_scan::keycode#11 keyboard_event_scan::keycode#14 keyboard_event_scan::keycode#1 keyboard_event_scan::keycode#15 ] zp ZP_BYTE:59 [ keyboard_event_scan::row#2 keyboard_event_scan::row#1 ] zp ZP_BYTE:130 [ keyboard_event_scan::row_scan#0 ] zp ZP_BYTE:132 [ keyboard_event_scan::$14 ] zp ZP_BYTE:134 [ keyboard_event_scan::$18 ] zp ZP_BYTE:136 [ keyboard_event_scan::$22 ] zp ZP_BYTE:138 [ keyboard_event_scan::$26 ] +Uplifting [keyboard_event_scan] best 1596903 combination reg byte a [ keyboard_event_scan::$3 ] reg byte a [ keyboard_event_scan::$4 ] reg byte a [ keyboard_event_scan::event_type#0 ] reg byte a [ keyboard_event_scan::$11 ] zp ZP_BYTE:60 [ keyboard_event_scan::col#2 keyboard_event_scan::col#1 ] zp ZP_BYTE:61 [ keyboard_event_scan::keycode#10 keyboard_event_scan::keycode#11 keyboard_event_scan::keycode#14 keyboard_event_scan::keycode#1 keyboard_event_scan::keycode#15 ] zp ZP_BYTE:59 [ keyboard_event_scan::row#2 keyboard_event_scan::row#1 ] zp ZP_BYTE:130 [ keyboard_event_scan::row_scan#0 ] zp ZP_BYTE:132 [ keyboard_event_scan::$14 ] zp ZP_BYTE:134 [ keyboard_event_scan::$18 ] zp ZP_BYTE:136 [ keyboard_event_scan::$22 ] zp ZP_BYTE:138 [ keyboard_event_scan::$26 ] Limited combination testing to 100 combinations of 5308416 possible. -Uplifting [collision] best 1582045 combination zp ZP_BYTE:28 [ collision::i#2 collision::i#3 collision::i#11 collision::i#13 ] reg byte a [ collision::$7 ] zp ZP_BYTE:29 [ collision::col#2 collision::col#9 collision::col#1 ] reg byte x [ collision::c#2 collision::c#1 ] zp ZP_BYTE:103 [ collision::i#1 ] zp ZP_BYTE:26 [ collision::ypos2#2 collision::ypos2#0 collision::ypos2#1 ] zp ZP_BYTE:27 [ collision::l#6 collision::l#1 ] zp ZP_WORD:101 [ collision::playfield_line#0 ] zp ZP_WORD:99 [ collision::piece_gfx#0 ] zp ZP_BYTE:23 [ collision::orientation#4 collision::orientation#0 collision::orientation#1 collision::orientation#2 collision::orientation#3 ] zp ZP_BYTE:24 [ collision::ypos#4 collision::ypos#0 collision::ypos#1 collision::ypos#2 collision::ypos#3 ] zp ZP_BYTE:25 [ collision::xpos#5 collision::xpos#0 collision::xpos#1 collision::xpos#2 collision::xpos#3 ] zp ZP_BYTE:96 [ collision::return#13 ] zp ZP_BYTE:105 [ collision::return#12 ] zp ZP_BYTE:107 [ collision::return#1 ] zp ZP_BYTE:111 [ collision::return#0 ] zp ZP_BYTE:31 [ collision::return#14 ] +Uplifting [collision] best 1581903 combination zp ZP_BYTE:28 [ collision::i#2 collision::i#3 collision::i#11 collision::i#13 ] reg byte a [ collision::$7 ] zp ZP_BYTE:29 [ collision::col#2 collision::col#9 collision::col#1 ] reg byte x [ collision::c#2 collision::c#1 ] zp ZP_BYTE:103 [ collision::i#1 ] zp ZP_BYTE:26 [ collision::ypos2#2 collision::ypos2#0 collision::ypos2#1 ] zp ZP_BYTE:27 [ collision::l#6 collision::l#1 ] zp ZP_WORD:101 [ collision::playfield_line#0 ] zp ZP_WORD:99 [ collision::piece_gfx#0 ] zp ZP_BYTE:23 [ collision::orientation#4 collision::orientation#0 collision::orientation#1 collision::orientation#2 collision::orientation#3 ] zp ZP_BYTE:24 [ collision::ypos#4 collision::ypos#0 collision::ypos#1 collision::ypos#2 collision::ypos#3 ] zp ZP_BYTE:25 [ collision::xpos#5 collision::xpos#0 collision::xpos#1 collision::xpos#2 collision::xpos#3 ] zp ZP_BYTE:96 [ collision::return#13 ] zp ZP_BYTE:105 [ collision::return#12 ] zp ZP_BYTE:107 [ collision::return#1 ] zp ZP_BYTE:111 [ collision::return#0 ] zp ZP_BYTE:31 [ collision::return#14 ] Limited combination testing to 100 combinations of 80621568 possible. -Uplifting [lock_current] best 1573045 combination zp ZP_BYTE:54 [ lock_current::i#2 lock_current::i#3 lock_current::i#7 lock_current::i#9 ] zp ZP_BYTE:55 [ lock_current::col#2 lock_current::col#0 lock_current::col#1 ] reg byte x [ lock_current::c#2 lock_current::c#1 ] zp ZP_BYTE:123 [ lock_current::i#1 ] zp ZP_BYTE:53 [ lock_current::l#6 lock_current::l#1 ] zp ZP_WORD:121 [ lock_current::playfield_line#0 ] zp ZP_BYTE:52 [ lock_current::ypos2#2 lock_current::ypos2#0 lock_current::ypos2#1 ] +Uplifting [lock_current] best 1572903 combination zp ZP_BYTE:54 [ lock_current::i#2 lock_current::i#3 lock_current::i#7 lock_current::i#9 ] zp ZP_BYTE:55 [ lock_current::col#2 lock_current::col#0 lock_current::col#1 ] reg byte x [ lock_current::c#2 lock_current::c#1 ] zp ZP_BYTE:123 [ lock_current::i#1 ] zp ZP_BYTE:53 [ lock_current::l#6 lock_current::l#1 ] zp ZP_WORD:121 [ lock_current::playfield_line#0 ] zp ZP_BYTE:52 [ lock_current::ypos2#2 lock_current::ypos2#0 lock_current::ypos2#1 ] Limited combination testing to 100 combinations of 729 possible. -Uplifting [render_current] best 1558045 combination zp ZP_BYTE:11 [ render_current::i#2 render_current::i#1 render_current::i#4 render_current::i#8 ] reg byte x [ render_current::c#2 render_current::c#1 ] zp ZP_BYTE:12 [ render_current::xpos#2 render_current::xpos#1 render_current::xpos#0 ] reg byte a [ render_current::current_cell#0 ] zp ZP_BYTE:10 [ render_current::l#3 render_current::l#1 ] zp ZP_BYTE:9 [ render_current::ypos2#2 render_current::ypos2#0 render_current::ypos2#1 ] zp ZP_WORD:91 [ render_current::screen_line#0 ] +Uplifting [render_current] best 1557903 combination zp ZP_BYTE:11 [ render_current::i#2 render_current::i#1 render_current::i#4 render_current::i#8 ] reg byte x [ render_current::c#2 render_current::c#1 ] zp ZP_BYTE:12 [ render_current::xpos#2 render_current::xpos#1 render_current::xpos#0 ] reg byte a [ render_current::current_cell#0 ] zp ZP_BYTE:10 [ render_current::l#3 render_current::l#1 ] zp ZP_BYTE:9 [ render_current::ypos2#2 render_current::ypos2#0 render_current::ypos2#1 ] zp ZP_WORD:91 [ render_current::screen_line#0 ] Limited combination testing to 100 combinations of 972 possible. -Uplifting [] best 1558011 combination zp ZP_BYTE:62 [ keyboard_events_size#10 keyboard_events_size#29 keyboard_events_size#19 keyboard_events_size#16 keyboard_events_size#13 keyboard_events_size#4 keyboard_events_size#30 keyboard_events_size#2 keyboard_events_size#1 ] zp ZP_BYTE:8 [ current_piece_color#65 current_piece_color#73 current_piece_color#74 ] zp ZP_WORD:6 [ current_piece_gfx#63 current_piece_gfx#85 current_piece_gfx#86 ] zp ZP_WORD:37 [ current_piece_gfx#29 current_piece_gfx#15 current_piece_gfx#18 current_piece_gfx#10 current_piece_gfx#8 current_piece_gfx#17 ] zp ZP_BYTE:40 [ current_piece_color#23 current_piece_color#11 current_piece_color#13 current_piece_color#15 ] zp ZP_WORD:21 [ current_piece#15 current_piece#70 current_piece#71 current_piece#72 current_piece#73 ] reg byte x [ current_ypos#22 current_ypos#69 ] zp ZP_BYTE:39 [ current_xpos#36 current_xpos#16 current_xpos#23 current_xpos#9 current_xpos#19 current_xpos#7 ] zp ZP_WORD:34 [ current_piece#23 current_piece#74 current_piece#11 current_piece#13 current_piece#69 ] zp ZP_BYTE:5 [ current_xpos#63 current_xpos#94 ] zp ZP_BYTE:2 [ current_ypos#12 current_ypos#16 current_ypos#31 current_ypos#4 ] zp ZP_BYTE:36 [ current_orientation#33 current_orientation#15 current_orientation#23 current_orientation#8 current_orientation#18 ] zp ZP_BYTE:3 [ current_movedown_counter#15 current_movedown_counter#12 current_movedown_counter#10 ] +Uplifting [] best 1557869 combination zp ZP_BYTE:62 [ keyboard_events_size#10 keyboard_events_size#29 keyboard_events_size#19 keyboard_events_size#16 keyboard_events_size#13 keyboard_events_size#4 keyboard_events_size#30 keyboard_events_size#2 keyboard_events_size#1 ] zp ZP_BYTE:8 [ current_piece_color#66 current_piece_color#74 current_piece_color#75 ] zp ZP_WORD:6 [ current_piece_gfx#63 current_piece_gfx#86 current_piece_gfx#87 ] zp ZP_WORD:37 [ current_piece_gfx#29 current_piece_gfx#15 current_piece_gfx#18 current_piece_gfx#10 current_piece_gfx#8 current_piece_gfx#17 ] zp ZP_BYTE:40 [ current_piece_color#23 current_piece_color#11 current_piece_color#13 current_piece_color#15 ] zp ZP_WORD:21 [ current_piece#15 current_piece#71 current_piece#72 current_piece#73 current_piece#74 ] reg byte x [ current_ypos#22 current_ypos#70 ] zp ZP_BYTE:39 [ current_xpos#36 current_xpos#16 current_xpos#23 current_xpos#9 current_xpos#19 current_xpos#7 ] zp ZP_WORD:34 [ current_piece#23 current_piece#75 current_piece#11 current_piece#13 current_piece#70 ] zp ZP_BYTE:5 [ current_xpos#63 current_xpos#95 ] zp ZP_BYTE:2 [ current_ypos#12 current_ypos#16 current_ypos#31 current_ypos#4 ] zp ZP_BYTE:36 [ current_orientation#33 current_orientation#15 current_orientation#23 current_orientation#8 current_orientation#18 ] zp ZP_BYTE:3 [ current_movedown_counter#15 current_movedown_counter#12 current_movedown_counter#10 ] Limited combination testing to 100 combinations of 1728 possible. -Uplifting [render_playfield] best 1548611 combination zp ZP_WORD:16 [ render_playfield::line#2 render_playfield::line#0 render_playfield::line#1 ] reg byte x [ render_playfield::c#2 render_playfield::c#1 ] zp ZP_BYTE:15 [ render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 ] reg byte a [ render_playfield::$1 ] zp ZP_BYTE:14 [ render_playfield::l#2 render_playfield::l#1 ] -Uplifting [init] best 1547301 combination reg byte x [ init::c#2 init::c#1 ] zp ZP_WORD:146 [ init::$14 ] zp ZP_WORD:70 [ init::line#4 init::line#1 ] reg byte x [ init::i#2 init::i#1 ] reg byte x [ init::j#2 init::j#1 ] reg byte a [ init::$5 ] reg byte a [ init::$8 ] zp ZP_BYTE:72 [ init::l#4 init::l#1 ] zp ZP_WORD:64 [ init::li#2 init::li#1 ] zp ZP_BYTE:69 [ init::idx#2 init::idx#1 ] zp ZP_WORD:67 [ init::pli#2 init::pli#1 ] -Limited combination testing to 100 combinations of 1728 possible. -Uplifting [spawn_current] best 1545997 combination reg byte x [ spawn_current::piece_idx#2 spawn_current::piece_idx#1 ] reg byte a [ spawn_current::$1 ] zp ZP_BYTE:113 [ spawn_current::$3 ] -Uplifting [keyboard_matrix_read] best 1544791 combination reg byte a [ keyboard_matrix_read::return#2 ] reg byte x [ keyboard_matrix_read::rowid#0 ] reg byte a [ keyboard_matrix_read::return#0 ] -Uplifting [remove_lines] best 1543891 combination zp ZP_BYTE:43 [ remove_lines::done#3 remove_lines::done#2 ] reg byte a [ remove_lines::line_ypos#0 ] -Uplifting [sid_rnd] best 1542988 combination reg byte a [ sid_rnd::return#2 ] reg byte a [ sid_rnd::return#0 ] -Uplifting [main] best 1542748 combination reg byte a [ main::$9 ] reg byte a [ main::$10 ] reg byte a [ main::$11 ] reg byte a [ main::render#3 ] zp ZP_BYTE:82 [ main::render#1 ] zp ZP_BYTE:86 [ main::render#2 ] zp ZP_BYTE:78 [ main::key_event#0 ] +Uplifting [render_playfield] best 1548469 combination zp ZP_WORD:16 [ render_playfield::line#2 render_playfield::line#0 render_playfield::line#1 ] reg byte x [ render_playfield::c#2 render_playfield::c#1 ] zp ZP_BYTE:15 [ render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 ] reg byte a [ render_playfield::$1 ] zp ZP_BYTE:14 [ render_playfield::l#2 render_playfield::l#1 ] +Uplifting [render_init] best 1547329 combination reg byte x [ render_init::c#2 render_init::c#1 ] zp ZP_WORD:146 [ render_init::$10 ] zp ZP_WORD:70 [ render_init::line#4 render_init::line#1 ] reg byte x [ render_init::i#2 render_init::i#1 ] reg byte a [ render_init::$5 ] zp ZP_BYTE:72 [ render_init::l#4 render_init::l#1 ] zp ZP_WORD:68 [ render_init::li#2 render_init::li#1 ] +Uplifting [spawn_current] best 1546025 combination reg byte x [ spawn_current::piece_idx#2 spawn_current::piece_idx#1 ] reg byte a [ spawn_current::$1 ] zp ZP_BYTE:113 [ spawn_current::$3 ] +Uplifting [keyboard_matrix_read] best 1544819 combination reg byte a [ keyboard_matrix_read::return#2 ] reg byte x [ keyboard_matrix_read::rowid#0 ] reg byte a [ keyboard_matrix_read::return#0 ] +Uplifting [remove_lines] best 1543919 combination zp ZP_BYTE:43 [ remove_lines::done#3 remove_lines::done#2 ] reg byte a [ remove_lines::line_ypos#0 ] +Uplifting [sid_rnd] best 1543016 combination reg byte a [ sid_rnd::return#2 ] reg byte a [ sid_rnd::return#0 ] +Uplifting [main] best 1542776 combination reg byte a [ main::$10 ] reg byte a [ main::$11 ] reg byte a [ main::$12 ] reg byte a [ main::render#3 ] zp ZP_BYTE:82 [ main::render#1 ] zp ZP_BYTE:86 [ main::render#2 ] zp ZP_BYTE:78 [ main::key_event#0 ] Limited combination testing to 100 combinations of 6912 possible. -Uplifting [play_move_down] best 1542634 combination reg byte a [ play_move_down::return#0 ] reg byte x [ play_move_down::movedown#6 play_move_down::movedown#3 play_move_down::movedown#7 play_move_down::movedown#2 play_move_down::movedown#10 ] reg byte a [ play_move_down::key_event#0 ] reg byte a [ play_move_down::$2 ] zp ZP_BYTE:112 [ play_move_down::$12 ] zp ZP_BYTE:41 [ play_move_down::return#3 ] +Uplifting [tables_init] best 1542606 combination reg byte x [ tables_init::j#2 tables_init::j#1 ] reg byte a [ tables_init::$1 ] zp ZP_BYTE:66 [ tables_init::idx#2 tables_init::idx#1 ] zp ZP_WORD:64 [ tables_init::pli#2 tables_init::pli#1 ] +Uplifting [play_move_down] best 1542492 combination reg byte a [ play_move_down::return#0 ] reg byte x [ play_move_down::movedown#6 play_move_down::movedown#3 play_move_down::movedown#7 play_move_down::movedown#2 play_move_down::movedown#10 ] reg byte a [ play_move_down::key_event#0 ] reg byte a [ play_move_down::$2 ] zp ZP_BYTE:112 [ play_move_down::$12 ] zp ZP_BYTE:41 [ play_move_down::return#3 ] Limited combination testing to 100 combinations of 3072 possible. -Uplifting [play_move_rotate] best 1542532 combination reg byte a [ play_move_rotate::return#0 ] zp ZP_BYTE:20 [ play_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#2 ] reg byte a [ play_move_rotate::key_event#0 ] reg byte a [ play_move_rotate::$2 ] zp ZP_BYTE:97 [ play_move_rotate::$6 ] zp ZP_BYTE:98 [ play_move_rotate::$4 ] zp ZP_BYTE:19 [ play_move_rotate::return#2 ] +Uplifting [play_move_rotate] best 1542390 combination reg byte a [ play_move_rotate::return#0 ] zp ZP_BYTE:20 [ play_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#2 ] reg byte a [ play_move_rotate::key_event#0 ] reg byte a [ play_move_rotate::$2 ] zp ZP_BYTE:97 [ play_move_rotate::$6 ] zp ZP_BYTE:98 [ play_move_rotate::$4 ] zp ZP_BYTE:19 [ play_move_rotate::return#2 ] Limited combination testing to 100 combinations of 12288 possible. -Uplifting [play_move_leftright] best 1542424 combination reg byte a [ play_move_leftright::return#0 ] reg byte a [ play_move_leftright::key_event#0 ] reg byte a [ play_move_leftright::$4 ] reg byte a [ play_move_leftright::$8 ] zp ZP_BYTE:32 [ play_move_leftright::return#2 ] +Uplifting [play_move_leftright] best 1542282 combination reg byte a [ play_move_leftright::return#0 ] reg byte a [ play_move_leftright::key_event#0 ] reg byte a [ play_move_leftright::$4 ] reg byte a [ play_move_leftright::$8 ] zp ZP_BYTE:32 [ play_move_leftright::return#2 ] Limited combination testing to 100 combinations of 1024 possible. -Uplifting [fill] best 1542408 combination zp ZP_WORD:75 [ fill::addr#2 fill::addr#0 fill::addr#1 ] zp ZP_WORD:148 [ fill::end#0 ] reg byte x [ fill::val#3 ] -Uplifting [keyboard_event_pressed] best 1542388 combination reg byte a [ keyboard_event_pressed::return#12 ] reg byte a [ keyboard_event_pressed::$0 ] reg byte a [ keyboard_event_pressed::$1 ] reg byte a [ keyboard_event_pressed::return#0 ] zp ZP_BYTE:133 [ keyboard_event_pressed::return#1 ] zp ZP_BYTE:135 [ keyboard_event_pressed::return#2 ] zp ZP_BYTE:137 [ keyboard_event_pressed::return#10 ] zp ZP_BYTE:125 [ keyboard_event_pressed::row_bits#0 ] zp ZP_BYTE:127 [ keyboard_event_pressed::return#11 ] zp ZP_BYTE:57 [ keyboard_event_pressed::keycode#5 ] +Uplifting [fill] best 1542266 combination zp ZP_WORD:75 [ fill::addr#2 fill::addr#0 fill::addr#1 ] zp ZP_WORD:148 [ fill::end#0 ] reg byte x [ fill::val#3 ] +Uplifting [keyboard_event_pressed] best 1542246 combination reg byte a [ keyboard_event_pressed::return#12 ] reg byte a [ keyboard_event_pressed::$0 ] reg byte a [ keyboard_event_pressed::$1 ] reg byte a [ keyboard_event_pressed::return#0 ] zp ZP_BYTE:133 [ keyboard_event_pressed::return#1 ] zp ZP_BYTE:135 [ keyboard_event_pressed::return#2 ] zp ZP_BYTE:137 [ keyboard_event_pressed::return#10 ] zp ZP_BYTE:125 [ keyboard_event_pressed::row_bits#0 ] zp ZP_BYTE:127 [ keyboard_event_pressed::return#11 ] zp ZP_BYTE:57 [ keyboard_event_pressed::keycode#5 ] Limited combination testing to 100 combinations of 589824 possible. -Uplifting [keyboard_event_get] best 1542292 combination reg byte a [ keyboard_event_get::return#3 ] reg byte a [ keyboard_event_get::return#2 keyboard_event_get::return#1 ] -Uplifting [sid_rnd_init] best 1542292 combination +Uplifting [keyboard_event_get] best 1542150 combination reg byte a [ keyboard_event_get::return#3 ] reg byte a [ keyboard_event_get::return#2 keyboard_event_get::return#1 ] +Uplifting [sid_rnd_init] best 1542150 combination Attempting to uplift remaining variables inzp ZP_BYTE:48 [ find_line::i#2 find_line::i#3 find_line::i#8 find_line::i#10 ] -Uplifting [find_line] best 1542292 combination zp ZP_BYTE:48 [ find_line::i#2 find_line::i#3 find_line::i#8 find_line::i#10 ] +Uplifting [find_line] best 1542150 combination zp ZP_BYTE:48 [ find_line::i#2 find_line::i#3 find_line::i#8 find_line::i#10 ] Attempting to uplift remaining variables inzp ZP_BYTE:47 [ remove_line::x#2 remove_line::x#1 ] -Uplifting [remove_line] best 1542292 combination zp ZP_BYTE:47 [ remove_line::x#2 remove_line::x#1 ] +Uplifting [remove_line] best 1542150 combination zp ZP_BYTE:47 [ remove_line::x#2 remove_line::x#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:50 [ find_line::filled#4 find_line::filled#2 ] -Uplifting [find_line] best 1542292 combination zp ZP_BYTE:50 [ find_line::filled#4 find_line::filled#2 ] +Uplifting [find_line] best 1542150 combination zp ZP_BYTE:50 [ find_line::filled#4 find_line::filled#2 ] Attempting to uplift remaining variables inzp ZP_BYTE:62 [ keyboard_events_size#10 keyboard_events_size#29 keyboard_events_size#19 keyboard_events_size#16 keyboard_events_size#13 keyboard_events_size#4 keyboard_events_size#30 keyboard_events_size#2 keyboard_events_size#1 ] -Uplifting [] best 1542292 combination zp ZP_BYTE:62 [ keyboard_events_size#10 keyboard_events_size#29 keyboard_events_size#19 keyboard_events_size#16 keyboard_events_size#13 keyboard_events_size#4 keyboard_events_size#30 keyboard_events_size#2 keyboard_events_size#1 ] +Uplifting [] best 1542150 combination zp ZP_BYTE:62 [ keyboard_events_size#10 keyboard_events_size#29 keyboard_events_size#19 keyboard_events_size#16 keyboard_events_size#13 keyboard_events_size#4 keyboard_events_size#30 keyboard_events_size#2 keyboard_events_size#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:28 [ collision::i#2 collision::i#3 collision::i#11 collision::i#13 ] -Uplifting [collision] best 1542292 combination zp ZP_BYTE:28 [ collision::i#2 collision::i#3 collision::i#11 collision::i#13 ] +Uplifting [collision] best 1542150 combination zp ZP_BYTE:28 [ collision::i#2 collision::i#3 collision::i#11 collision::i#13 ] Attempting to uplift remaining variables inzp ZP_BYTE:54 [ lock_current::i#2 lock_current::i#3 lock_current::i#7 lock_current::i#9 ] -Uplifting [lock_current] best 1542292 combination zp ZP_BYTE:54 [ lock_current::i#2 lock_current::i#3 lock_current::i#7 lock_current::i#9 ] +Uplifting [lock_current] best 1542150 combination zp ZP_BYTE:54 [ lock_current::i#2 lock_current::i#3 lock_current::i#7 lock_current::i#9 ] Attempting to uplift remaining variables inzp ZP_BYTE:11 [ render_current::i#2 render_current::i#1 render_current::i#4 render_current::i#8 ] -Uplifting [render_current] best 1542292 combination zp ZP_BYTE:11 [ render_current::i#2 render_current::i#1 render_current::i#4 render_current::i#8 ] +Uplifting [render_current] best 1542150 combination zp ZP_BYTE:11 [ render_current::i#2 render_current::i#1 render_current::i#4 render_current::i#8 ] Attempting to uplift remaining variables inzp ZP_BYTE:120 [ find_line::i#1 ] -Uplifting [find_line] best 1542292 combination zp ZP_BYTE:120 [ find_line::i#1 ] +Uplifting [find_line] best 1542150 combination zp ZP_BYTE:120 [ find_line::i#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:44 [ remove_line::y#4 remove_line::ypos#0 remove_line::y#1 ] -Uplifting [remove_line] best 1542292 combination zp ZP_BYTE:44 [ remove_line::y#4 remove_line::ypos#0 remove_line::y#1 ] +Uplifting [remove_line] best 1542150 combination zp ZP_BYTE:44 [ remove_line::y#4 remove_line::ypos#0 remove_line::y#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:60 [ keyboard_event_scan::col#2 keyboard_event_scan::col#1 ] -Uplifting [keyboard_event_scan] best 1527292 combination reg byte x [ keyboard_event_scan::col#2 keyboard_event_scan::col#1 ] +Uplifting [keyboard_event_scan] best 1527150 combination reg byte x [ keyboard_event_scan::col#2 keyboard_event_scan::col#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:51 [ find_line::return#2 find_line::y#8 find_line::y#1 ] -Uplifting [find_line] best 1527292 combination zp ZP_BYTE:51 [ find_line::return#2 find_line::y#8 find_line::y#1 ] +Uplifting [find_line] best 1527150 combination zp ZP_BYTE:51 [ find_line::return#2 find_line::y#8 find_line::y#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:12 [ render_current::xpos#2 render_current::xpos#1 render_current::xpos#0 ] -Uplifting [render_current] best 1527292 combination zp ZP_BYTE:12 [ render_current::xpos#2 render_current::xpos#1 render_current::xpos#0 ] +Uplifting [render_current] best 1527150 combination zp ZP_BYTE:12 [ render_current::xpos#2 render_current::xpos#1 render_current::xpos#0 ] Attempting to uplift remaining variables inzp ZP_BYTE:15 [ render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 ] -Uplifting [render_playfield] best 1527292 combination zp ZP_BYTE:15 [ render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 ] +Uplifting [render_playfield] best 1527150 combination zp ZP_BYTE:15 [ render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:55 [ lock_current::col#2 lock_current::col#0 lock_current::col#1 ] -Uplifting [lock_current] best 1527292 combination zp ZP_BYTE:55 [ lock_current::col#2 lock_current::col#0 lock_current::col#1 ] +Uplifting [lock_current] best 1527150 combination zp ZP_BYTE:55 [ lock_current::col#2 lock_current::col#0 lock_current::col#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:29 [ collision::col#2 collision::col#9 collision::col#1 ] -Uplifting [collision] best 1527292 combination zp ZP_BYTE:29 [ collision::col#2 collision::col#9 collision::col#1 ] +Uplifting [collision] best 1527150 combination zp ZP_BYTE:29 [ collision::col#2 collision::col#9 collision::col#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:61 [ keyboard_event_scan::keycode#10 keyboard_event_scan::keycode#11 keyboard_event_scan::keycode#14 keyboard_event_scan::keycode#1 keyboard_event_scan::keycode#15 ] -Uplifting [keyboard_event_scan] best 1527292 combination zp ZP_BYTE:61 [ keyboard_event_scan::keycode#10 keyboard_event_scan::keycode#11 keyboard_event_scan::keycode#14 keyboard_event_scan::keycode#1 keyboard_event_scan::keycode#15 ] +Uplifting [keyboard_event_scan] best 1527150 combination zp ZP_BYTE:61 [ keyboard_event_scan::keycode#10 keyboard_event_scan::keycode#11 keyboard_event_scan::keycode#14 keyboard_event_scan::keycode#1 keyboard_event_scan::keycode#15 ] Attempting to uplift remaining variables inzp ZP_BYTE:123 [ lock_current::i#1 ] -Uplifting [lock_current] best 1527292 combination zp ZP_BYTE:123 [ lock_current::i#1 ] +Uplifting [lock_current] best 1527150 combination zp ZP_BYTE:123 [ lock_current::i#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:59 [ keyboard_event_scan::row#2 keyboard_event_scan::row#1 ] -Uplifting [keyboard_event_scan] best 1527292 combination zp ZP_BYTE:59 [ keyboard_event_scan::row#2 keyboard_event_scan::row#1 ] +Uplifting [keyboard_event_scan] best 1527150 combination zp ZP_BYTE:59 [ keyboard_event_scan::row#2 keyboard_event_scan::row#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:117 [ find_line::return#0 ] -Uplifting [find_line] best 1526692 combination reg byte a [ find_line::return#0 ] +Uplifting [find_line] best 1526550 combination reg byte a [ find_line::return#0 ] Attempting to uplift remaining variables inzp ZP_BYTE:14 [ render_playfield::l#2 render_playfield::l#1 ] -Uplifting [render_playfield] best 1526692 combination zp ZP_BYTE:14 [ render_playfield::l#2 render_playfield::l#1 ] +Uplifting [render_playfield] best 1526550 combination zp ZP_BYTE:14 [ render_playfield::l#2 render_playfield::l#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:43 [ remove_lines::done#3 remove_lines::done#2 ] -Uplifting [remove_lines] best 1526692 combination zp ZP_BYTE:43 [ remove_lines::done#3 remove_lines::done#2 ] +Uplifting [remove_lines] best 1526550 combination zp ZP_BYTE:43 [ remove_lines::done#3 remove_lines::done#2 ] Attempting to uplift remaining variables inzp ZP_BYTE:10 [ render_current::l#3 render_current::l#1 ] -Uplifting [render_current] best 1526692 combination zp ZP_BYTE:10 [ render_current::l#3 render_current::l#1 ] +Uplifting [render_current] best 1526550 combination zp ZP_BYTE:10 [ render_current::l#3 render_current::l#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:103 [ collision::i#1 ] -Uplifting [collision] best 1526692 combination zp ZP_BYTE:103 [ collision::i#1 ] +Uplifting [collision] best 1526550 combination zp ZP_BYTE:103 [ collision::i#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:26 [ collision::ypos2#2 collision::ypos2#0 collision::ypos2#1 ] -Uplifting [collision] best 1526692 combination zp ZP_BYTE:26 [ collision::ypos2#2 collision::ypos2#0 collision::ypos2#1 ] +Uplifting [collision] best 1526550 combination zp ZP_BYTE:26 [ collision::ypos2#2 collision::ypos2#0 collision::ypos2#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:130 [ keyboard_event_scan::row_scan#0 ] -Uplifting [keyboard_event_scan] best 1526692 combination zp ZP_BYTE:130 [ keyboard_event_scan::row_scan#0 ] +Uplifting [keyboard_event_scan] best 1526550 combination zp ZP_BYTE:130 [ keyboard_event_scan::row_scan#0 ] Attempting to uplift remaining variables inzp ZP_BYTE:53 [ lock_current::l#6 lock_current::l#1 ] -Uplifting [lock_current] best 1526692 combination zp ZP_BYTE:53 [ lock_current::l#6 lock_current::l#1 ] +Uplifting [lock_current] best 1526550 combination zp ZP_BYTE:53 [ lock_current::l#6 lock_current::l#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:27 [ collision::l#6 collision::l#1 ] -Uplifting [collision] best 1526692 combination zp ZP_BYTE:27 [ collision::l#6 collision::l#1 ] +Uplifting [collision] best 1526550 combination zp ZP_BYTE:27 [ collision::l#6 collision::l#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:9 [ render_current::ypos2#2 render_current::ypos2#0 render_current::ypos2#1 ] -Uplifting [render_current] best 1526692 combination zp ZP_BYTE:9 [ render_current::ypos2#2 render_current::ypos2#0 render_current::ypos2#1 ] +Uplifting [render_current] best 1526550 combination zp ZP_BYTE:9 [ render_current::ypos2#2 render_current::ypos2#0 render_current::ypos2#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:52 [ lock_current::ypos2#2 lock_current::ypos2#0 lock_current::ypos2#1 ] -Uplifting [lock_current] best 1526692 combination zp ZP_BYTE:52 [ lock_current::ypos2#2 lock_current::ypos2#0 lock_current::ypos2#1 ] -Attempting to uplift remaining variables inzp ZP_BYTE:8 [ current_piece_color#65 current_piece_color#73 current_piece_color#74 ] -Uplifting [] best 1526692 combination zp ZP_BYTE:8 [ current_piece_color#65 current_piece_color#73 current_piece_color#74 ] +Uplifting [lock_current] best 1526550 combination zp ZP_BYTE:52 [ lock_current::ypos2#2 lock_current::ypos2#0 lock_current::ypos2#1 ] +Attempting to uplift remaining variables inzp ZP_BYTE:8 [ current_piece_color#66 current_piece_color#74 current_piece_color#75 ] +Uplifting [] best 1526550 combination zp ZP_BYTE:8 [ current_piece_color#66 current_piece_color#74 current_piece_color#75 ] Attempting to uplift remaining variables inzp ZP_BYTE:40 [ current_piece_color#23 current_piece_color#11 current_piece_color#13 current_piece_color#15 ] -Uplifting [] best 1526692 combination zp ZP_BYTE:40 [ current_piece_color#23 current_piece_color#11 current_piece_color#13 current_piece_color#15 ] -Attempting to uplift remaining variables inzp ZP_BYTE:72 [ init::l#4 init::l#1 ] -Uplifting [init] best 1526692 combination zp ZP_BYTE:72 [ init::l#4 init::l#1 ] +Uplifting [] best 1526550 combination zp ZP_BYTE:40 [ current_piece_color#23 current_piece_color#11 current_piece_color#13 current_piece_color#15 ] +Attempting to uplift remaining variables inzp ZP_BYTE:72 [ render_init::l#4 render_init::l#1 ] +Uplifting [render_init] best 1526550 combination zp ZP_BYTE:72 [ render_init::l#4 render_init::l#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:23 [ collision::orientation#4 collision::orientation#0 collision::orientation#1 collision::orientation#2 collision::orientation#3 ] -Uplifting [collision] best 1526679 combination reg byte x [ collision::orientation#4 collision::orientation#0 collision::orientation#1 collision::orientation#2 collision::orientation#3 ] +Uplifting [collision] best 1526537 combination reg byte x [ collision::orientation#4 collision::orientation#0 collision::orientation#1 collision::orientation#2 collision::orientation#3 ] Attempting to uplift remaining variables inzp ZP_BYTE:39 [ current_xpos#36 current_xpos#16 current_xpos#23 current_xpos#9 current_xpos#19 current_xpos#7 ] -Uplifting [] best 1526679 combination zp ZP_BYTE:39 [ current_xpos#36 current_xpos#16 current_xpos#23 current_xpos#9 current_xpos#19 current_xpos#7 ] -Attempting to uplift remaining variables inzp ZP_BYTE:69 [ init::idx#2 init::idx#1 ] -Uplifting [init] best 1526679 combination zp ZP_BYTE:69 [ init::idx#2 init::idx#1 ] -Attempting to uplift remaining variables inzp ZP_BYTE:5 [ current_xpos#63 current_xpos#94 ] -Uplifting [] best 1526679 combination zp ZP_BYTE:5 [ current_xpos#63 current_xpos#94 ] +Uplifting [] best 1526537 combination zp ZP_BYTE:39 [ current_xpos#36 current_xpos#16 current_xpos#23 current_xpos#9 current_xpos#19 current_xpos#7 ] +Attempting to uplift remaining variables inzp ZP_BYTE:66 [ tables_init::idx#2 tables_init::idx#1 ] +Uplifting [tables_init] best 1526537 combination zp ZP_BYTE:66 [ tables_init::idx#2 tables_init::idx#1 ] +Attempting to uplift remaining variables inzp ZP_BYTE:5 [ current_xpos#63 current_xpos#95 ] +Uplifting [] best 1526537 combination zp ZP_BYTE:5 [ current_xpos#63 current_xpos#95 ] Attempting to uplift remaining variables inzp ZP_BYTE:24 [ collision::ypos#4 collision::ypos#0 collision::ypos#1 collision::ypos#2 collision::ypos#3 ] -Uplifting [collision] best 1526666 combination reg byte y [ collision::ypos#4 collision::ypos#0 collision::ypos#1 collision::ypos#2 collision::ypos#3 ] +Uplifting [collision] best 1526524 combination reg byte y [ collision::ypos#4 collision::ypos#0 collision::ypos#1 collision::ypos#2 collision::ypos#3 ] Attempting to uplift remaining variables inzp ZP_BYTE:25 [ collision::xpos#5 collision::xpos#0 collision::xpos#1 collision::xpos#2 collision::xpos#3 ] -Uplifting [collision] best 1526666 combination zp ZP_BYTE:25 [ collision::xpos#5 collision::xpos#0 collision::xpos#1 collision::xpos#2 collision::xpos#3 ] +Uplifting [collision] best 1526524 combination zp ZP_BYTE:25 [ collision::xpos#5 collision::xpos#0 collision::xpos#1 collision::xpos#2 collision::xpos#3 ] Attempting to uplift remaining variables inzp ZP_BYTE:2 [ current_ypos#12 current_ypos#16 current_ypos#31 current_ypos#4 ] -Uplifting [] best 1526666 combination zp ZP_BYTE:2 [ current_ypos#12 current_ypos#16 current_ypos#31 current_ypos#4 ] +Uplifting [] best 1526524 combination zp ZP_BYTE:2 [ current_ypos#12 current_ypos#16 current_ypos#31 current_ypos#4 ] Attempting to uplift remaining variables inzp ZP_BYTE:36 [ current_orientation#33 current_orientation#15 current_orientation#23 current_orientation#8 current_orientation#18 ] -Uplifting [] best 1526666 combination zp ZP_BYTE:36 [ current_orientation#33 current_orientation#15 current_orientation#23 current_orientation#8 current_orientation#18 ] +Uplifting [] best 1526524 combination zp ZP_BYTE:36 [ current_orientation#33 current_orientation#15 current_orientation#23 current_orientation#8 current_orientation#18 ] Attempting to uplift remaining variables inzp ZP_BYTE:20 [ play_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#2 ] -Uplifting [play_move_rotate] best 1526666 combination zp ZP_BYTE:20 [ play_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#2 ] +Uplifting [play_move_rotate] best 1526524 combination zp ZP_BYTE:20 [ play_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#2 ] Attempting to uplift remaining variables inzp ZP_BYTE:82 [ main::render#1 ] -Uplifting [main] best 1526666 combination zp ZP_BYTE:82 [ main::render#1 ] +Uplifting [main] best 1526524 combination zp ZP_BYTE:82 [ main::render#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:86 [ main::render#2 ] -Uplifting [main] best 1526666 combination zp ZP_BYTE:86 [ main::render#2 ] +Uplifting [main] best 1526524 combination zp ZP_BYTE:86 [ main::render#2 ] Attempting to uplift remaining variables inzp ZP_BYTE:78 [ main::key_event#0 ] -Uplifting [main] best 1526666 combination zp ZP_BYTE:78 [ main::key_event#0 ] +Uplifting [main] best 1526524 combination zp ZP_BYTE:78 [ main::key_event#0 ] Attempting to uplift remaining variables inzp ZP_BYTE:96 [ collision::return#13 ] -Uplifting [collision] best 1526660 combination reg byte a [ collision::return#13 ] +Uplifting [collision] best 1526518 combination reg byte a [ collision::return#13 ] Attempting to uplift remaining variables inzp ZP_BYTE:97 [ play_move_rotate::$6 ] -Uplifting [play_move_rotate] best 1526656 combination reg byte a [ play_move_rotate::$6 ] +Uplifting [play_move_rotate] best 1526512 combination reg byte a [ play_move_rotate::$6 ] Attempting to uplift remaining variables inzp ZP_BYTE:98 [ play_move_rotate::$4 ] -Uplifting [play_move_rotate] best 1526650 combination reg byte a [ play_move_rotate::$4 ] +Uplifting [play_move_rotate] best 1526506 combination reg byte a [ play_move_rotate::$4 ] Attempting to uplift remaining variables inzp ZP_BYTE:105 [ collision::return#12 ] -Uplifting [collision] best 1526644 combination reg byte a [ collision::return#12 ] +Uplifting [collision] best 1526500 combination reg byte a [ collision::return#12 ] Attempting to uplift remaining variables inzp ZP_BYTE:107 [ collision::return#1 ] -Uplifting [collision] best 1526638 combination reg byte a [ collision::return#1 ] +Uplifting [collision] best 1526494 combination reg byte a [ collision::return#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:111 [ collision::return#0 ] -Uplifting [collision] best 1526632 combination reg byte a [ collision::return#0 ] +Uplifting [collision] best 1526488 combination reg byte a [ collision::return#0 ] Attempting to uplift remaining variables inzp ZP_BYTE:112 [ play_move_down::$12 ] -Uplifting [play_move_down] best 1526626 combination reg byte a [ play_move_down::$12 ] +Uplifting [play_move_down] best 1526482 combination reg byte a [ play_move_down::$12 ] Attempting to uplift remaining variables inzp ZP_BYTE:132 [ keyboard_event_scan::$14 ] -Uplifting [keyboard_event_scan] best 1526620 combination reg byte a [ keyboard_event_scan::$14 ] +Uplifting [keyboard_event_scan] best 1526476 combination reg byte a [ keyboard_event_scan::$14 ] Attempting to uplift remaining variables inzp ZP_BYTE:133 [ keyboard_event_pressed::return#1 ] -Uplifting [keyboard_event_pressed] best 1526614 combination reg byte a [ keyboard_event_pressed::return#1 ] +Uplifting [keyboard_event_pressed] best 1526470 combination reg byte a [ keyboard_event_pressed::return#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:134 [ keyboard_event_scan::$18 ] -Uplifting [keyboard_event_scan] best 1526608 combination reg byte a [ keyboard_event_scan::$18 ] +Uplifting [keyboard_event_scan] best 1526464 combination reg byte a [ keyboard_event_scan::$18 ] Attempting to uplift remaining variables inzp ZP_BYTE:135 [ keyboard_event_pressed::return#2 ] -Uplifting [keyboard_event_pressed] best 1526602 combination reg byte a [ keyboard_event_pressed::return#2 ] +Uplifting [keyboard_event_pressed] best 1526458 combination reg byte a [ keyboard_event_pressed::return#2 ] Attempting to uplift remaining variables inzp ZP_BYTE:136 [ keyboard_event_scan::$22 ] -Uplifting [keyboard_event_scan] best 1526596 combination reg byte a [ keyboard_event_scan::$22 ] +Uplifting [keyboard_event_scan] best 1526452 combination reg byte a [ keyboard_event_scan::$22 ] Attempting to uplift remaining variables inzp ZP_BYTE:137 [ keyboard_event_pressed::return#10 ] -Uplifting [keyboard_event_pressed] best 1526590 combination reg byte a [ keyboard_event_pressed::return#10 ] +Uplifting [keyboard_event_pressed] best 1526446 combination reg byte a [ keyboard_event_pressed::return#10 ] Attempting to uplift remaining variables inzp ZP_BYTE:138 [ keyboard_event_scan::$26 ] -Uplifting [keyboard_event_scan] best 1526584 combination reg byte a [ keyboard_event_scan::$26 ] +Uplifting [keyboard_event_scan] best 1526440 combination reg byte a [ keyboard_event_scan::$26 ] Attempting to uplift remaining variables inzp ZP_BYTE:19 [ play_move_rotate::return#2 ] -Uplifting [play_move_rotate] best 1526548 combination reg byte a [ play_move_rotate::return#2 ] +Uplifting [play_move_rotate] best 1526404 combination reg byte a [ play_move_rotate::return#2 ] Attempting to uplift remaining variables inzp ZP_BYTE:32 [ play_move_leftright::return#2 ] -Uplifting [play_move_leftright] best 1526512 combination reg byte a [ play_move_leftright::return#2 ] +Uplifting [play_move_leftright] best 1526368 combination reg byte a [ play_move_leftright::return#2 ] Attempting to uplift remaining variables inzp ZP_BYTE:41 [ play_move_down::return#3 ] -Uplifting [play_move_down] best 1526496 combination reg byte x [ play_move_down::return#3 ] +Uplifting [play_move_down] best 1526352 combination reg byte x [ play_move_down::return#3 ] Attempting to uplift remaining variables inzp ZP_BYTE:3 [ current_movedown_counter#15 current_movedown_counter#12 current_movedown_counter#10 ] -Uplifting [] best 1526496 combination zp ZP_BYTE:3 [ current_movedown_counter#15 current_movedown_counter#12 current_movedown_counter#10 ] +Uplifting [] best 1526352 combination zp ZP_BYTE:3 [ current_movedown_counter#15 current_movedown_counter#12 current_movedown_counter#10 ] Attempting to uplift remaining variables inzp ZP_BYTE:125 [ keyboard_event_pressed::row_bits#0 ] -Uplifting [keyboard_event_pressed] best 1526496 combination zp ZP_BYTE:125 [ keyboard_event_pressed::row_bits#0 ] +Uplifting [keyboard_event_pressed] best 1526352 combination zp ZP_BYTE:125 [ keyboard_event_pressed::row_bits#0 ] Attempting to uplift remaining variables inzp ZP_BYTE:127 [ keyboard_event_pressed::return#11 ] -Uplifting [keyboard_event_pressed] best 1526478 combination reg byte a [ keyboard_event_pressed::return#11 ] +Uplifting [keyboard_event_pressed] best 1526334 combination reg byte a [ keyboard_event_pressed::return#11 ] Attempting to uplift remaining variables inzp ZP_BYTE:31 [ collision::return#14 ] -Uplifting [collision] best 1526451 combination reg byte a [ collision::return#14 ] +Uplifting [collision] best 1526307 combination reg byte a [ collision::return#14 ] Attempting to uplift remaining variables inzp ZP_BYTE:57 [ keyboard_event_pressed::keycode#5 ] -Uplifting [keyboard_event_pressed] best 1526451 combination zp ZP_BYTE:57 [ keyboard_event_pressed::keycode#5 ] +Uplifting [keyboard_event_pressed] best 1526307 combination zp ZP_BYTE:57 [ keyboard_event_pressed::keycode#5 ] Attempting to uplift remaining variables inzp ZP_BYTE:113 [ spawn_current::$3 ] -Uplifting [spawn_current] best 1526451 combination zp ZP_BYTE:113 [ spawn_current::$3 ] +Uplifting [spawn_current] best 1526307 combination zp ZP_BYTE:113 [ spawn_current::$3 ] Coalescing zero page register with common assignment [ zp ZP_BYTE:2 [ current_ypos#12 current_ypos#16 current_ypos#31 current_ypos#4 ] ] with [ zp ZP_BYTE:52 [ lock_current::ypos2#2 lock_current::ypos2#0 lock_current::ypos2#1 ] ] - score: 1 -Coalescing zero page register with common assignment [ zp ZP_WORD:21 [ current_piece#15 current_piece#70 current_piece#71 current_piece#72 current_piece#73 ] ] with [ zp ZP_WORD:99 [ collision::piece_gfx#0 ] ] - score: 1 +Coalescing zero page register with common assignment [ zp ZP_WORD:21 [ current_piece#15 current_piece#71 current_piece#72 current_piece#73 current_piece#74 ] ] with [ zp ZP_WORD:99 [ collision::piece_gfx#0 ] ] - score: 1 Coalescing zero page register with common assignment [ zp ZP_BYTE:82 [ main::render#1 ] ] with [ zp ZP_BYTE:86 [ main::render#2 ] ] - score: 1 Coalescing zero page register [ zp ZP_BYTE:2 [ current_ypos#12 current_ypos#16 current_ypos#31 current_ypos#4 lock_current::ypos2#2 lock_current::ypos2#0 lock_current::ypos2#1 ] ] with [ zp ZP_BYTE:43 [ remove_lines::done#3 remove_lines::done#2 ] ] -Coalescing zero page register [ zp ZP_BYTE:2 [ current_ypos#12 current_ypos#16 current_ypos#31 current_ypos#4 lock_current::ypos2#2 lock_current::ypos2#0 lock_current::ypos2#1 remove_lines::done#3 remove_lines::done#2 ] ] with [ zp ZP_BYTE:69 [ init::idx#2 init::idx#1 ] ] -Coalescing zero page register [ zp ZP_BYTE:2 [ current_ypos#12 current_ypos#16 current_ypos#31 current_ypos#4 lock_current::ypos2#2 lock_current::ypos2#0 lock_current::ypos2#1 remove_lines::done#3 remove_lines::done#2 init::idx#2 init::idx#1 ] ] with [ zp ZP_BYTE:72 [ init::l#4 init::l#1 ] ] -Coalescing zero page register [ zp ZP_BYTE:2 [ current_ypos#12 current_ypos#16 current_ypos#31 current_ypos#4 lock_current::ypos2#2 lock_current::ypos2#0 lock_current::ypos2#1 remove_lines::done#3 remove_lines::done#2 init::idx#2 init::idx#1 init::l#4 init::l#1 ] ] with [ zp ZP_BYTE:113 [ spawn_current::$3 ] ] +Coalescing zero page register [ zp ZP_BYTE:2 [ current_ypos#12 current_ypos#16 current_ypos#31 current_ypos#4 lock_current::ypos2#2 lock_current::ypos2#0 lock_current::ypos2#1 remove_lines::done#3 remove_lines::done#2 ] ] with [ zp ZP_BYTE:66 [ tables_init::idx#2 tables_init::idx#1 ] ] +Coalescing zero page register [ zp ZP_BYTE:2 [ current_ypos#12 current_ypos#16 current_ypos#31 current_ypos#4 lock_current::ypos2#2 lock_current::ypos2#0 lock_current::ypos2#1 remove_lines::done#3 remove_lines::done#2 tables_init::idx#2 tables_init::idx#1 ] ] with [ zp ZP_BYTE:72 [ render_init::l#4 render_init::l#1 ] ] +Coalescing zero page register [ zp ZP_BYTE:2 [ current_ypos#12 current_ypos#16 current_ypos#31 current_ypos#4 lock_current::ypos2#2 lock_current::ypos2#0 lock_current::ypos2#1 remove_lines::done#3 remove_lines::done#2 tables_init::idx#2 tables_init::idx#1 render_init::l#4 render_init::l#1 ] ] with [ zp ZP_BYTE:113 [ spawn_current::$3 ] ] Coalescing zero page register [ zp ZP_BYTE:3 [ current_movedown_counter#15 current_movedown_counter#12 current_movedown_counter#10 ] ] with [ zp ZP_BYTE:44 [ remove_line::y#4 remove_line::ypos#0 remove_line::y#1 ] ] Coalescing zero page register [ zp ZP_BYTE:3 [ current_movedown_counter#15 current_movedown_counter#12 current_movedown_counter#10 remove_line::y#4 remove_line::ypos#0 remove_line::y#1 ] ] with [ zp ZP_BYTE:48 [ find_line::i#2 find_line::i#3 find_line::i#8 find_line::i#10 ] ] Coalescing zero page register [ zp ZP_BYTE:3 [ current_movedown_counter#15 current_movedown_counter#12 current_movedown_counter#10 remove_line::y#4 remove_line::ypos#0 remove_line::y#1 find_line::i#2 find_line::i#3 find_line::i#8 find_line::i#10 ] ] with [ zp ZP_BYTE:53 [ lock_current::l#6 lock_current::l#1 ] ] -Coalescing zero page register [ zp ZP_BYTE:5 [ current_xpos#63 current_xpos#94 ] ] with [ zp ZP_BYTE:14 [ render_playfield::l#2 render_playfield::l#1 ] ] -Coalescing zero page register [ zp ZP_BYTE:5 [ current_xpos#63 current_xpos#94 render_playfield::l#2 render_playfield::l#1 ] ] with [ zp ZP_BYTE:20 [ play_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#2 ] ] -Coalescing zero page register [ zp ZP_BYTE:5 [ current_xpos#63 current_xpos#94 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:47 [ remove_line::x#2 remove_line::x#1 ] ] -Coalescing zero page register [ zp ZP_BYTE:5 [ current_xpos#63 current_xpos#94 render_playfield::l#2 render_playfield::l#1 play_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#2 remove_line::x#2 remove_line::x#1 ] ] with [ zp ZP_BYTE:50 [ find_line::filled#4 find_line::filled#2 ] ] -Coalescing zero page register [ zp ZP_BYTE:5 [ current_xpos#63 current_xpos#94 render_playfield::l#2 render_playfield::l#1 play_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#2 remove_line::x#2 remove_line::x#1 find_line::filled#4 find_line::filled#2 ] ] with [ zp ZP_BYTE:54 [ lock_current::i#2 lock_current::i#3 lock_current::i#7 lock_current::i#9 ] ] -Coalescing zero page register [ zp ZP_BYTE:5 [ current_xpos#63 current_xpos#94 render_playfield::l#2 render_playfield::l#1 play_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#2 remove_line::x#2 remove_line::x#1 find_line::filled#4 find_line::filled#2 lock_current::i#2 lock_current::i#3 lock_current::i#7 lock_current::i#9 ] ] with [ zp ZP_BYTE:57 [ keyboard_event_pressed::keycode#5 ] ] -Coalescing zero page register [ zp ZP_BYTE:5 [ current_xpos#63 current_xpos#94 render_playfield::l#2 render_playfield::l#1 play_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#2 remove_line::x#2 remove_line::x#1 find_line::filled#4 find_line::filled#2 lock_current::i#2 lock_current::i#3 lock_current::i#7 lock_current::i#9 keyboard_event_pressed::keycode#5 ] ] with [ zp ZP_BYTE:59 [ keyboard_event_scan::row#2 keyboard_event_scan::row#1 ] ] -Coalescing zero page register [ zp ZP_WORD:6 [ current_piece_gfx#63 current_piece_gfx#85 current_piece_gfx#86 ] ] with [ zp ZP_WORD:16 [ render_playfield::line#2 render_playfield::line#0 render_playfield::line#1 ] ] -Coalescing zero page register [ zp ZP_WORD:6 [ current_piece_gfx#63 current_piece_gfx#85 current_piece_gfx#86 render_playfield::line#2 render_playfield::line#0 render_playfield::line#1 ] ] with [ zp ZP_WORD:21 [ current_piece#15 current_piece#70 current_piece#71 current_piece#72 current_piece#73 collision::piece_gfx#0 ] ] -Coalescing zero page register [ zp ZP_WORD:6 [ current_piece_gfx#63 current_piece_gfx#85 current_piece_gfx#86 render_playfield::line#2 render_playfield::line#0 render_playfield::line#1 current_piece#15 current_piece#70 current_piece#71 current_piece#72 current_piece#73 collision::piece_gfx#0 ] ] with [ zp ZP_WORD:64 [ init::li#2 init::li#1 ] ] -Coalescing zero page register [ zp ZP_WORD:6 [ current_piece_gfx#63 current_piece_gfx#85 current_piece_gfx#86 render_playfield::line#2 render_playfield::line#0 render_playfield::line#1 current_piece#15 current_piece#70 current_piece#71 current_piece#72 current_piece#73 collision::piece_gfx#0 init::li#2 init::li#1 ] ] with [ zp ZP_WORD:67 [ init::pli#2 init::pli#1 ] ] -Coalescing zero page register [ zp ZP_WORD:6 [ current_piece_gfx#63 current_piece_gfx#85 current_piece_gfx#86 render_playfield::line#2 render_playfield::line#0 render_playfield::line#1 current_piece#15 current_piece#70 current_piece#71 current_piece#72 current_piece#73 collision::piece_gfx#0 init::li#2 init::li#1 init::pli#2 init::pli#1 ] ] with [ zp ZP_WORD:70 [ init::line#4 init::line#1 ] ] -Coalescing zero page register [ zp ZP_WORD:6 [ current_piece_gfx#63 current_piece_gfx#85 current_piece_gfx#86 render_playfield::line#2 render_playfield::line#0 render_playfield::line#1 current_piece#15 current_piece#70 current_piece#71 current_piece#72 current_piece#73 collision::piece_gfx#0 init::li#2 init::li#1 init::pli#2 init::pli#1 init::line#4 init::line#1 ] ] with [ zp ZP_WORD:75 [ fill::addr#2 fill::addr#0 fill::addr#1 ] ] -Coalescing zero page register [ zp ZP_WORD:6 [ current_piece_gfx#63 current_piece_gfx#85 current_piece_gfx#86 render_playfield::line#2 render_playfield::line#0 render_playfield::line#1 current_piece#15 current_piece#70 current_piece#71 current_piece#72 current_piece#73 collision::piece_gfx#0 init::li#2 init::li#1 init::pli#2 init::pli#1 init::line#4 init::line#1 fill::addr#2 fill::addr#0 fill::addr#1 ] ] with [ zp ZP_WORD:121 [ lock_current::playfield_line#0 ] ] -Coalescing zero page register [ zp ZP_BYTE:8 [ current_piece_color#65 current_piece_color#73 current_piece_color#74 ] ] with [ zp ZP_BYTE:15 [ render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 ] ] -Coalescing zero page register [ zp ZP_BYTE:8 [ current_piece_color#65 current_piece_color#73 current_piece_color#74 render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 ] ] with [ zp ZP_BYTE:25 [ collision::xpos#5 collision::xpos#0 collision::xpos#1 collision::xpos#2 collision::xpos#3 ] ] -Coalescing zero page register [ zp ZP_BYTE:8 [ current_piece_color#65 current_piece_color#73 current_piece_color#74 render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 collision::xpos#5 collision::xpos#0 collision::xpos#1 collision::xpos#2 collision::xpos#3 ] ] with [ zp ZP_BYTE:51 [ find_line::return#2 find_line::y#8 find_line::y#1 ] ] -Coalescing zero page register [ zp ZP_BYTE:8 [ current_piece_color#65 current_piece_color#73 current_piece_color#74 render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 collision::xpos#5 collision::xpos#0 collision::xpos#1 collision::xpos#2 collision::xpos#3 find_line::return#2 find_line::y#8 find_line::y#1 ] ] with [ zp ZP_BYTE:55 [ lock_current::col#2 lock_current::col#0 lock_current::col#1 ] ] -Coalescing zero page register [ zp ZP_BYTE:8 [ current_piece_color#65 current_piece_color#73 current_piece_color#74 render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 collision::xpos#5 collision::xpos#0 collision::xpos#1 collision::xpos#2 collision::xpos#3 find_line::return#2 find_line::y#8 find_line::y#1 lock_current::col#2 lock_current::col#0 lock_current::col#1 ] ] with [ zp ZP_BYTE:61 [ 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:8 [ current_piece_color#65 current_piece_color#73 current_piece_color#74 render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 collision::xpos#5 collision::xpos#0 collision::xpos#1 collision::xpos#2 collision::xpos#3 find_line::return#2 find_line::y#8 find_line::y#1 lock_current::col#2 lock_current::col#0 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:125 [ keyboard_event_pressed::row_bits#0 ] ] +Coalescing zero page register [ zp ZP_BYTE:5 [ current_xpos#63 current_xpos#95 ] ] with [ zp ZP_BYTE:14 [ render_playfield::l#2 render_playfield::l#1 ] ] +Coalescing zero page register [ zp ZP_BYTE:5 [ current_xpos#63 current_xpos#95 render_playfield::l#2 render_playfield::l#1 ] ] with [ zp ZP_BYTE:20 [ play_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#2 ] ] +Coalescing zero page register [ zp ZP_BYTE:5 [ current_xpos#63 current_xpos#95 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:47 [ remove_line::x#2 remove_line::x#1 ] ] +Coalescing zero page register [ zp ZP_BYTE:5 [ current_xpos#63 current_xpos#95 render_playfield::l#2 render_playfield::l#1 play_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#2 remove_line::x#2 remove_line::x#1 ] ] with [ zp ZP_BYTE:50 [ find_line::filled#4 find_line::filled#2 ] ] +Coalescing zero page register [ zp ZP_BYTE:5 [ current_xpos#63 current_xpos#95 render_playfield::l#2 render_playfield::l#1 play_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#2 remove_line::x#2 remove_line::x#1 find_line::filled#4 find_line::filled#2 ] ] with [ zp ZP_BYTE:54 [ lock_current::i#2 lock_current::i#3 lock_current::i#7 lock_current::i#9 ] ] +Coalescing zero page register [ zp ZP_BYTE:5 [ current_xpos#63 current_xpos#95 render_playfield::l#2 render_playfield::l#1 play_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#2 remove_line::x#2 remove_line::x#1 find_line::filled#4 find_line::filled#2 lock_current::i#2 lock_current::i#3 lock_current::i#7 lock_current::i#9 ] ] with [ zp ZP_BYTE:57 [ keyboard_event_pressed::keycode#5 ] ] +Coalescing zero page register [ zp ZP_BYTE:5 [ current_xpos#63 current_xpos#95 render_playfield::l#2 render_playfield::l#1 play_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#2 remove_line::x#2 remove_line::x#1 find_line::filled#4 find_line::filled#2 lock_current::i#2 lock_current::i#3 lock_current::i#7 lock_current::i#9 keyboard_event_pressed::keycode#5 ] ] with [ zp ZP_BYTE:59 [ keyboard_event_scan::row#2 keyboard_event_scan::row#1 ] ] +Coalescing zero page register [ zp ZP_WORD:6 [ current_piece_gfx#63 current_piece_gfx#86 current_piece_gfx#87 ] ] with [ zp ZP_WORD:16 [ render_playfield::line#2 render_playfield::line#0 render_playfield::line#1 ] ] +Coalescing zero page register [ zp ZP_WORD:6 [ current_piece_gfx#63 current_piece_gfx#86 current_piece_gfx#87 render_playfield::line#2 render_playfield::line#0 render_playfield::line#1 ] ] with [ zp ZP_WORD:21 [ current_piece#15 current_piece#71 current_piece#72 current_piece#73 current_piece#74 collision::piece_gfx#0 ] ] +Coalescing zero page register [ zp ZP_WORD:6 [ current_piece_gfx#63 current_piece_gfx#86 current_piece_gfx#87 render_playfield::line#2 render_playfield::line#0 render_playfield::line#1 current_piece#15 current_piece#71 current_piece#72 current_piece#73 current_piece#74 collision::piece_gfx#0 ] ] with [ zp ZP_WORD:64 [ tables_init::pli#2 tables_init::pli#1 ] ] +Coalescing zero page register [ zp ZP_WORD:6 [ current_piece_gfx#63 current_piece_gfx#86 current_piece_gfx#87 render_playfield::line#2 render_playfield::line#0 render_playfield::line#1 current_piece#15 current_piece#71 current_piece#72 current_piece#73 current_piece#74 collision::piece_gfx#0 tables_init::pli#2 tables_init::pli#1 ] ] with [ zp ZP_WORD:68 [ render_init::li#2 render_init::li#1 ] ] +Coalescing zero page register [ zp ZP_WORD:6 [ current_piece_gfx#63 current_piece_gfx#86 current_piece_gfx#87 render_playfield::line#2 render_playfield::line#0 render_playfield::line#1 current_piece#15 current_piece#71 current_piece#72 current_piece#73 current_piece#74 collision::piece_gfx#0 tables_init::pli#2 tables_init::pli#1 render_init::li#2 render_init::li#1 ] ] with [ zp ZP_WORD:70 [ render_init::line#4 render_init::line#1 ] ] +Coalescing zero page register [ zp ZP_WORD:6 [ current_piece_gfx#63 current_piece_gfx#86 current_piece_gfx#87 render_playfield::line#2 render_playfield::line#0 render_playfield::line#1 current_piece#15 current_piece#71 current_piece#72 current_piece#73 current_piece#74 collision::piece_gfx#0 tables_init::pli#2 tables_init::pli#1 render_init::li#2 render_init::li#1 render_init::line#4 render_init::line#1 ] ] with [ zp ZP_WORD:75 [ fill::addr#2 fill::addr#0 fill::addr#1 ] ] +Coalescing zero page register [ zp ZP_WORD:6 [ current_piece_gfx#63 current_piece_gfx#86 current_piece_gfx#87 render_playfield::line#2 render_playfield::line#0 render_playfield::line#1 current_piece#15 current_piece#71 current_piece#72 current_piece#73 current_piece#74 collision::piece_gfx#0 tables_init::pli#2 tables_init::pli#1 render_init::li#2 render_init::li#1 render_init::line#4 render_init::line#1 fill::addr#2 fill::addr#0 fill::addr#1 ] ] with [ zp ZP_WORD:121 [ lock_current::playfield_line#0 ] ] +Coalescing zero page register [ zp ZP_BYTE:8 [ current_piece_color#66 current_piece_color#74 current_piece_color#75 ] ] with [ zp ZP_BYTE:15 [ render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 ] ] +Coalescing zero page register [ zp ZP_BYTE:8 [ current_piece_color#66 current_piece_color#74 current_piece_color#75 render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 ] ] with [ zp ZP_BYTE:25 [ collision::xpos#5 collision::xpos#0 collision::xpos#1 collision::xpos#2 collision::xpos#3 ] ] +Coalescing zero page register [ zp ZP_BYTE:8 [ current_piece_color#66 current_piece_color#74 current_piece_color#75 render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 collision::xpos#5 collision::xpos#0 collision::xpos#1 collision::xpos#2 collision::xpos#3 ] ] with [ zp ZP_BYTE:51 [ find_line::return#2 find_line::y#8 find_line::y#1 ] ] +Coalescing zero page register [ zp ZP_BYTE:8 [ current_piece_color#66 current_piece_color#74 current_piece_color#75 render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 collision::xpos#5 collision::xpos#0 collision::xpos#1 collision::xpos#2 collision::xpos#3 find_line::return#2 find_line::y#8 find_line::y#1 ] ] with [ zp ZP_BYTE:55 [ lock_current::col#2 lock_current::col#0 lock_current::col#1 ] ] +Coalescing zero page register [ zp ZP_BYTE:8 [ current_piece_color#66 current_piece_color#74 current_piece_color#75 render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 collision::xpos#5 collision::xpos#0 collision::xpos#1 collision::xpos#2 collision::xpos#3 find_line::return#2 find_line::y#8 find_line::y#1 lock_current::col#2 lock_current::col#0 lock_current::col#1 ] ] with [ zp ZP_BYTE:61 [ 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:8 [ current_piece_color#66 current_piece_color#74 current_piece_color#75 render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 collision::xpos#5 collision::xpos#0 collision::xpos#1 collision::xpos#2 collision::xpos#3 find_line::return#2 find_line::y#8 find_line::y#1 lock_current::col#2 lock_current::col#0 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:125 [ keyboard_event_pressed::row_bits#0 ] ] Coalescing zero page register [ zp ZP_BYTE:9 [ render_current::ypos2#2 render_current::ypos2#0 render_current::ypos2#1 ] ] with [ zp ZP_BYTE:26 [ collision::ypos2#2 collision::ypos2#0 collision::ypos2#1 ] ] Coalescing zero page register [ zp ZP_BYTE:9 [ render_current::ypos2#2 render_current::ypos2#0 render_current::ypos2#1 collision::ypos2#2 collision::ypos2#0 collision::ypos2#1 ] ] with [ zp ZP_BYTE:120 [ find_line::i#1 ] ] Coalescing zero page register [ zp ZP_BYTE:9 [ render_current::ypos2#2 render_current::ypos2#0 render_current::ypos2#1 collision::ypos2#2 collision::ypos2#0 collision::ypos2#1 find_line::i#1 ] ] with [ zp ZP_BYTE:123 [ lock_current::i#1 ] ] @@ -9351,17 +9407,17 @@ Coalescing zero page register [ zp ZP_BYTE:9 [ render_current::ypos2#2 render_cu Coalescing zero page register [ zp ZP_BYTE:10 [ render_current::l#3 render_current::l#1 ] ] with [ zp ZP_BYTE:27 [ collision::l#6 collision::l#1 ] ] Coalescing zero page register [ zp ZP_BYTE:11 [ render_current::i#2 render_current::i#1 render_current::i#4 render_current::i#8 ] ] with [ zp ZP_BYTE:28 [ collision::i#2 collision::i#3 collision::i#11 collision::i#13 ] ] Coalescing zero page register [ zp ZP_BYTE:12 [ render_current::xpos#2 render_current::xpos#1 render_current::xpos#0 ] ] with [ zp ZP_BYTE:29 [ collision::col#2 collision::col#9 collision::col#1 ] ] -Coalescing zero page register [ zp ZP_WORD:34 [ current_piece#23 current_piece#74 current_piece#11 current_piece#13 current_piece#69 ] ] with [ zp ZP_WORD:146 [ init::$14 ] ] -Coalescing zero page register [ zp ZP_WORD:34 [ current_piece#23 current_piece#74 current_piece#11 current_piece#13 current_piece#69 init::$14 ] ] with [ zp ZP_WORD:148 [ fill::end#0 ] ] +Coalescing zero page register [ zp ZP_WORD:34 [ current_piece#23 current_piece#75 current_piece#11 current_piece#13 current_piece#70 ] ] with [ zp ZP_WORD:146 [ render_init::$10 ] ] +Coalescing zero page register [ zp ZP_WORD:34 [ current_piece#23 current_piece#75 current_piece#11 current_piece#13 current_piece#70 render_init::$10 ] ] with [ zp ZP_WORD:148 [ fill::end#0 ] ] Coalescing zero page register [ zp ZP_WORD:91 [ render_current::screen_line#0 ] ] with [ zp ZP_WORD:101 [ collision::playfield_line#0 ] ] -Allocated (was zp ZP_BYTE:5) zp ZP_BYTE:4 [ current_xpos#63 current_xpos#94 render_playfield::l#2 render_playfield::l#1 play_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#2 remove_line::x#2 remove_line::x#1 find_line::filled#4 find_line::filled#2 lock_current::i#2 lock_current::i#3 lock_current::i#7 lock_current::i#9 keyboard_event_pressed::keycode#5 keyboard_event_scan::row#2 keyboard_event_scan::row#1 ] -Allocated (was zp ZP_WORD:6) zp ZP_WORD:5 [ current_piece_gfx#63 current_piece_gfx#85 current_piece_gfx#86 render_playfield::line#2 render_playfield::line#0 render_playfield::line#1 current_piece#15 current_piece#70 current_piece#71 current_piece#72 current_piece#73 collision::piece_gfx#0 init::li#2 init::li#1 init::pli#2 init::pli#1 init::line#4 init::line#1 fill::addr#2 fill::addr#0 fill::addr#1 lock_current::playfield_line#0 ] -Allocated (was zp ZP_BYTE:8) zp ZP_BYTE:7 [ current_piece_color#65 current_piece_color#73 current_piece_color#74 render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 collision::xpos#5 collision::xpos#0 collision::xpos#1 collision::xpos#2 collision::xpos#3 find_line::return#2 find_line::y#8 find_line::y#1 lock_current::col#2 lock_current::col#0 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:5) zp ZP_BYTE:4 [ current_xpos#63 current_xpos#95 render_playfield::l#2 render_playfield::l#1 play_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#2 remove_line::x#2 remove_line::x#1 find_line::filled#4 find_line::filled#2 lock_current::i#2 lock_current::i#3 lock_current::i#7 lock_current::i#9 keyboard_event_pressed::keycode#5 keyboard_event_scan::row#2 keyboard_event_scan::row#1 ] +Allocated (was zp ZP_WORD:6) zp ZP_WORD:5 [ current_piece_gfx#63 current_piece_gfx#86 current_piece_gfx#87 render_playfield::line#2 render_playfield::line#0 render_playfield::line#1 current_piece#15 current_piece#71 current_piece#72 current_piece#73 current_piece#74 collision::piece_gfx#0 tables_init::pli#2 tables_init::pli#1 render_init::li#2 render_init::li#1 render_init::line#4 render_init::line#1 fill::addr#2 fill::addr#0 fill::addr#1 lock_current::playfield_line#0 ] +Allocated (was zp ZP_BYTE:8) zp ZP_BYTE:7 [ current_piece_color#66 current_piece_color#74 current_piece_color#75 render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 collision::xpos#5 collision::xpos#0 collision::xpos#1 collision::xpos#2 collision::xpos#3 find_line::return#2 find_line::y#8 find_line::y#1 lock_current::col#2 lock_current::col#0 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:9) zp ZP_BYTE:8 [ render_current::ypos2#2 render_current::ypos2#0 render_current::ypos2#1 collision::ypos2#2 collision::ypos2#0 collision::ypos2#1 find_line::i#1 lock_current::i#1 keyboard_event_scan::row_scan#0 ] Allocated (was zp ZP_BYTE:10) zp ZP_BYTE:9 [ render_current::l#3 render_current::l#1 collision::l#6 collision::l#1 ] Allocated (was zp ZP_BYTE:11) zp ZP_BYTE:10 [ render_current::i#2 render_current::i#1 render_current::i#4 render_current::i#8 collision::i#2 collision::i#3 collision::i#11 collision::i#13 ] Allocated (was zp ZP_BYTE:12) zp ZP_BYTE:11 [ render_current::xpos#2 render_current::xpos#1 render_current::xpos#0 collision::col#2 collision::col#9 collision::col#1 ] -Allocated (was zp ZP_WORD:34) zp ZP_WORD:12 [ current_piece#23 current_piece#74 current_piece#11 current_piece#13 current_piece#69 init::$14 fill::end#0 ] +Allocated (was zp ZP_WORD:34) zp ZP_WORD:12 [ current_piece#23 current_piece#75 current_piece#11 current_piece#13 current_piece#70 render_init::$10 fill::end#0 ] Allocated (was zp ZP_BYTE:36) zp ZP_BYTE:14 [ current_orientation#33 current_orientation#15 current_orientation#23 current_orientation#8 current_orientation#18 ] Allocated (was zp ZP_WORD:37) zp ZP_WORD:15 [ current_piece_gfx#29 current_piece_gfx#15 current_piece_gfx#18 current_piece_gfx#10 current_piece_gfx#8 current_piece_gfx#17 ] Allocated (was zp ZP_BYTE:39) zp ZP_BYTE:17 [ current_xpos#36 current_xpos#16 current_xpos#23 current_xpos#9 current_xpos#19 current_xpos#7 ] @@ -9422,29 +9478,29 @@ ASSEMBLER BEFORE OPTIMIZATION .label current_piece_15 = 5 .label current_xpos_63 = 4 .label current_piece_gfx_63 = 5 - .label current_piece_color_65 = 7 - .label current_xpos_94 = 4 - .label current_piece_gfx_85 = 5 + .label current_piece_color_66 = 7 + .label current_xpos_95 = 4 .label current_piece_gfx_86 = 5 - .label current_piece_color_73 = 7 + .label current_piece_gfx_87 = 5 .label current_piece_color_74 = 7 - .label current_piece_70 = 5 + .label current_piece_color_75 = 7 .label current_piece_71 = 5 .label current_piece_72 = 5 .label current_piece_73 = 5 + .label current_piece_74 = 5 //SEG2 @begin bbegin: -//SEG3 [1] phi from @begin to @26 [phi:@begin->@26] -b26_from_bbegin: - jmp b26 -//SEG4 @26 -b26: +//SEG3 [1] phi from @begin to @27 [phi:@begin->@27] +b27_from_bbegin: + jmp b27 +//SEG4 @27 +b27: //SEG5 [2] call main -//SEG6 [4] phi from @26 to main [phi:@26->main] -main_from_b26: +//SEG6 [4] phi from @27 to main [phi:@27->main] +main_from_b27: jsr main -//SEG7 [3] phi from @26 to @end [phi:@26->@end] -bend_from_b26: +//SEG7 [3] phi from @27 to @end [phi:@27->@end] +bend_from_b27: jmp bend //SEG8 @end bend: @@ -9459,486 +9515,492 @@ main: { b21: //SEG12 asm { sei } sei - //SEG13 [7] call init - //SEG14 [321] phi from main::@21 to init [phi:main::@21->init] - init_from_b21: - jsr init + //SEG13 [7] call render_init + //SEG14 [332] phi from main::@21 to render_init [phi:main::@21->render_init] + render_init_from_b21: + jsr render_init //SEG15 [8] phi from main::@21 to main::@22 [phi:main::@21->main::@22] b22_from_b21: jmp b22 //SEG16 main::@22 b22: - //SEG17 [9] call spawn_current - jsr spawn_current - //SEG18 [10] phi from main::@22 to main::@23 [phi:main::@22->main::@23] + //SEG17 [9] call tables_init + //SEG18 [321] phi from main::@22 to tables_init [phi:main::@22->tables_init] + tables_init_from_b22: + jsr tables_init + //SEG19 [10] phi from main::@22 to main::@23 [phi:main::@22->main::@23] b23_from_b22: jmp b23 - //SEG19 main::@23 + //SEG20 main::@23 b23: - //SEG20 [11] call render_playfield - //SEG21 [70] phi from main::@23 to render_playfield [phi:main::@23->render_playfield] - render_playfield_from_b23: - jsr render_playfield + //SEG21 [11] call spawn_current + //SEG22 [183] phi from main::@23 to spawn_current [phi:main::@23->spawn_current] + spawn_current_from_b23: + jsr spawn_current + //SEG23 [12] phi from main::@23 to main::@24 [phi:main::@23->main::@24] + b24_from_b23: jmp b24 - //SEG22 main::@24 + //SEG24 main::@24 b24: - //SEG23 [12] (byte*~) current_piece_gfx#85 ← (byte*) current_piece_gfx#10 -- pbuz1=pbuz2 + //SEG25 [13] call render_playfield + //SEG26 [71] phi from main::@24 to render_playfield [phi:main::@24->render_playfield] + render_playfield_from_b24: + jsr render_playfield + jmp b25 + //SEG27 main::@25 + b25: + //SEG28 [14] (byte*~) current_piece_gfx#86 ← (byte*) current_piece_gfx#10 -- pbuz1=pbuz2 lda current_piece_gfx - sta current_piece_gfx_85 + sta current_piece_gfx_86 lda current_piece_gfx+1 - sta current_piece_gfx_85+1 - //SEG24 [13] (byte~) current_piece_color#73 ← (byte) current_piece_color#15 -- vbuz1=vbuz2 + sta current_piece_gfx_86+1 + //SEG29 [15] (byte~) current_piece_color#74 ← (byte) current_piece_color#15 -- vbuz1=vbuz2 lda current_piece_color - sta current_piece_color_73 - //SEG25 [14] call render_current - //SEG26 [50] phi from main::@24 to render_current [phi:main::@24->render_current] - render_current_from_b24: - //SEG27 [50] phi (byte) current_piece_color#65 = (byte~) current_piece_color#73 [phi:main::@24->render_current#0] -- register_copy - //SEG28 [50] phi (byte*) current_piece_gfx#63 = (byte*~) current_piece_gfx#85 [phi:main::@24->render_current#1] -- register_copy - //SEG29 [50] phi (byte) current_xpos#63 = (byte/signed byte/word/signed word/dword/signed dword) 3 [phi:main::@24->render_current#2] -- vbuz1=vbuc1 + sta current_piece_color_74 + //SEG30 [16] call render_current + //SEG31 [51] phi from main::@25 to render_current [phi:main::@25->render_current] + render_current_from_b25: + //SEG32 [51] phi (byte) current_piece_color#66 = (byte~) current_piece_color#74 [phi:main::@25->render_current#0] -- register_copy + //SEG33 [51] phi (byte*) current_piece_gfx#63 = (byte*~) current_piece_gfx#86 [phi:main::@25->render_current#1] -- register_copy + //SEG34 [51] phi (byte) current_xpos#63 = (byte/signed byte/word/signed word/dword/signed dword) 3 [phi:main::@25->render_current#2] -- vbuz1=vbuc1 lda #3 sta current_xpos_63 - //SEG30 [50] phi (byte) current_ypos#22 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@24->render_current#3] -- vbuxx=vbuc1 + //SEG35 [51] phi (byte) current_ypos#22 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@25->render_current#3] -- vbuxx=vbuc1 ldx #0 jsr render_current - //SEG31 [15] (byte*~) current_piece#69 ← (byte*)*((const word[]) PIECES#0 + (byte~) spawn_current::$3) -- pbuz1=pptc1_derefidx_vbuz2 + //SEG36 [17] (byte*~) current_piece#70 ← (byte*)*((const word[]) PIECES#0 + (byte~) spawn_current::$3) -- pbuz1=pptc1_derefidx_vbuz2 ldy spawn_current._3 lda PIECES,y sta current_piece lda PIECES+1,y sta current_piece+1 - //SEG32 [16] phi from main::@24 to main::@1 [phi:main::@24->main::@1] - b1_from_b24: - //SEG33 [16] phi (byte) current_movedown_counter#15 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@24->main::@1#0] -- vbuz1=vbuc1 + //SEG37 [18] phi from main::@25 to main::@1 [phi:main::@25->main::@1] + b1_from_b25: + //SEG38 [18] phi (byte) current_movedown_counter#15 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@25->main::@1#0] -- vbuz1=vbuc1 lda #0 sta current_movedown_counter - //SEG34 [16] phi (byte) keyboard_events_size#19 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@24->main::@1#1] -- vbuz1=vbuc1 + //SEG39 [18] phi (byte) keyboard_events_size#19 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@25->main::@1#1] -- vbuz1=vbuc1 lda #0 sta keyboard_events_size - //SEG35 [16] phi (byte) current_piece_color#11 = (byte) current_piece_color#15 [phi:main::@24->main::@1#2] -- register_copy - //SEG36 [16] phi (byte) current_ypos#12 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@24->main::@1#3] -- vbuz1=vbuc1 + //SEG40 [18] phi (byte) current_piece_color#11 = (byte) current_piece_color#15 [phi:main::@25->main::@1#2] -- register_copy + //SEG41 [18] phi (byte) current_ypos#12 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@25->main::@1#3] -- vbuz1=vbuc1 lda #0 sta current_ypos - //SEG37 [16] phi (byte) current_xpos#16 = (byte/signed byte/word/signed word/dword/signed dword) 3 [phi:main::@24->main::@1#4] -- vbuz1=vbuc1 + //SEG42 [18] phi (byte) current_xpos#16 = (byte/signed byte/word/signed word/dword/signed dword) 3 [phi:main::@25->main::@1#4] -- vbuz1=vbuc1 lda #3 sta current_xpos - //SEG38 [16] phi (byte*) current_piece_gfx#15 = (byte*) current_piece_gfx#10 [phi:main::@24->main::@1#5] -- register_copy - //SEG39 [16] phi (byte) current_orientation#15 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@24->main::@1#6] -- vbuz1=vbuc1 + //SEG43 [18] phi (byte*) current_piece_gfx#15 = (byte*) current_piece_gfx#10 [phi:main::@25->main::@1#5] -- register_copy + //SEG44 [18] phi (byte) current_orientation#15 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@25->main::@1#6] -- vbuz1=vbuc1 lda #0 sta current_orientation - //SEG40 [16] phi (byte*) current_piece#11 = (byte*~) current_piece#69 [phi:main::@24->main::@1#7] -- register_copy + //SEG45 [18] phi (byte*) current_piece#11 = (byte*~) current_piece#70 [phi:main::@25->main::@1#7] -- register_copy jmp b1 - //SEG41 main::@1 + //SEG46 main::@1 b1: jmp b4 - //SEG42 main::@4 + //SEG47 main::@4 b4: - //SEG43 [17] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@4 -- _deref_pbuc1_neq_vbuc2_then_la1 + //SEG48 [19] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@4 -- _deref_pbuc1_neq_vbuc2_then_la1 lda RASTER cmp #$ff bne b4 jmp b7 - //SEG44 main::@7 + //SEG49 main::@7 b7: - //SEG45 [18] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 254) goto main::@7 -- _deref_pbuc1_neq_vbuc2_then_la1 + //SEG50 [20] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 254) goto main::@7 -- _deref_pbuc1_neq_vbuc2_then_la1 lda RASTER cmp #$fe bne b7 jmp b9 - //SEG46 main::@9 + //SEG51 main::@9 b9: - //SEG47 [19] *((const byte*) BORDERCOL#0) ← ++ *((const byte*) BORDERCOL#0) -- _deref_pbuc1=_inc__deref_pbuc1 + //SEG52 [21] *((const byte*) BORDERCOL#0) ← ++ *((const byte*) BORDERCOL#0) -- _deref_pbuc1=_inc__deref_pbuc1 inc BORDERCOL - //SEG48 [20] call keyboard_event_scan - //SEG49 [265] phi from main::@9 to keyboard_event_scan [phi:main::@9->keyboard_event_scan] + //SEG53 [22] call keyboard_event_scan + //SEG54 [265] phi from main::@9 to keyboard_event_scan [phi:main::@9->keyboard_event_scan] keyboard_event_scan_from_b9: jsr keyboard_event_scan - //SEG50 [21] phi from main::@9 to main::@26 [phi:main::@9->main::@26] - b26_from_b9: - jmp b26 - //SEG51 main::@26 - b26: - //SEG52 [22] call keyboard_event_get - jsr keyboard_event_get - //SEG53 [23] (byte) keyboard_event_get::return#3 ← (byte) keyboard_event_get::return#2 - // (byte) keyboard_event_get::return#3 = (byte) keyboard_event_get::return#2 // register copy reg byte a + //SEG55 [23] phi from main::@9 to main::@27 [phi:main::@9->main::@27] + b27_from_b9: jmp b27 - //SEG54 main::@27 + //SEG56 main::@27 b27: - //SEG55 [24] (byte) main::key_event#0 ← (byte) keyboard_event_get::return#3 -- vbuz1=vbuaa - sta key_event - //SEG56 [25] (byte) play_move_down::key_event#0 ← (byte) main::key_event#0 -- vbuaa=vbuz1 - lda key_event - //SEG57 [26] call play_move_down - jsr play_move_down - //SEG58 [27] (byte) play_move_down::return#0 ← (byte) play_move_down::return#3 -- vbuaa=vbuxx - txa + //SEG57 [24] call keyboard_event_get + jsr keyboard_event_get + //SEG58 [25] (byte) keyboard_event_get::return#3 ← (byte) keyboard_event_get::return#2 + // (byte) keyboard_event_get::return#3 = (byte) keyboard_event_get::return#2 // register copy reg byte a jmp b28 //SEG59 main::@28 b28: - //SEG60 [28] (byte~) main::$9 ← (byte) play_move_down::return#0 - // (byte~) main::$9 = (byte) play_move_down::return#0 // register copy reg byte a - //SEG61 [29] (byte) main::render#1 ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte~) main::$9 -- vbuz1=vbuc1_plus_vbuaa + //SEG60 [26] (byte) main::key_event#0 ← (byte) keyboard_event_get::return#3 -- vbuz1=vbuaa + sta key_event + //SEG61 [27] (byte) play_move_down::key_event#0 ← (byte) main::key_event#0 -- vbuaa=vbuz1 + lda key_event + //SEG62 [28] call play_move_down + jsr play_move_down + //SEG63 [29] (byte) play_move_down::return#0 ← (byte) play_move_down::return#3 -- vbuaa=vbuxx + txa + jmp b29 + //SEG64 main::@29 + b29: + //SEG65 [30] (byte~) main::$10 ← (byte) play_move_down::return#0 + // (byte~) main::$10 = (byte) play_move_down::return#0 // register copy reg byte a + //SEG66 [31] (byte) main::render#1 ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte~) main::$10 -- vbuz1=vbuc1_plus_vbuaa clc adc #0 sta render - //SEG62 [30] (byte) play_move_leftright::key_event#0 ← (byte) main::key_event#0 -- vbuaa=vbuz1 + //SEG67 [32] (byte) play_move_leftright::key_event#0 ← (byte) main::key_event#0 -- vbuaa=vbuz1 lda key_event - //SEG63 [31] call play_move_leftright + //SEG68 [33] call play_move_leftright jsr play_move_leftright - //SEG64 [32] (byte) play_move_leftright::return#0 ← (byte) play_move_leftright::return#2 + //SEG69 [34] (byte) play_move_leftright::return#0 ← (byte) play_move_leftright::return#2 // (byte) play_move_leftright::return#0 = (byte) play_move_leftright::return#2 // register copy reg byte a - jmp b29 - //SEG65 main::@29 - b29: - //SEG66 [33] (byte~) main::$10 ← (byte) play_move_leftright::return#0 - // (byte~) main::$10 = (byte) play_move_leftright::return#0 // register copy reg byte a - //SEG67 [34] (byte) main::render#2 ← (byte) main::render#1 + (byte~) main::$10 -- vbuz1=vbuz1_plus_vbuaa + jmp b30 + //SEG70 main::@30 + b30: + //SEG71 [35] (byte~) main::$11 ← (byte) play_move_leftright::return#0 + // (byte~) main::$11 = (byte) play_move_leftright::return#0 // register copy reg byte a + //SEG72 [36] (byte) main::render#2 ← (byte) main::render#1 + (byte~) main::$11 -- vbuz1=vbuz1_plus_vbuaa clc adc render sta render - //SEG68 [35] (byte) play_move_rotate::key_event#0 ← (byte) main::key_event#0 -- vbuaa=vbuz1 + //SEG73 [37] (byte) play_move_rotate::key_event#0 ← (byte) main::key_event#0 -- vbuaa=vbuz1 lda key_event - //SEG69 [36] call play_move_rotate + //SEG74 [38] call play_move_rotate jsr play_move_rotate - //SEG70 [37] (byte) play_move_rotate::return#0 ← (byte) play_move_rotate::return#2 + //SEG75 [39] (byte) play_move_rotate::return#0 ← (byte) play_move_rotate::return#2 // (byte) play_move_rotate::return#0 = (byte) play_move_rotate::return#2 // register copy reg byte a - jmp b30 - //SEG71 main::@30 - b30: - //SEG72 [38] (byte~) main::$11 ← (byte) play_move_rotate::return#0 - // (byte~) main::$11 = (byte) play_move_rotate::return#0 // register copy reg byte a - //SEG73 [39] (byte) main::render#3 ← (byte) main::render#2 + (byte~) main::$11 -- vbuaa=vbuz1_plus_vbuaa + jmp b31 + //SEG76 main::@31 + b31: + //SEG77 [40] (byte~) main::$12 ← (byte) play_move_rotate::return#0 + // (byte~) main::$12 = (byte) play_move_rotate::return#0 // register copy reg byte a + //SEG78 [41] (byte) main::render#3 ← (byte) main::render#2 + (byte~) main::$12 -- vbuaa=vbuz1_plus_vbuaa clc adc render - //SEG74 [40] if((byte) main::render#3==(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@10 -- vbuaa_eq_0_then_la1 + //SEG79 [42] if((byte) main::render#3==(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@10 -- vbuaa_eq_0_then_la1 cmp #0 beq b10 + //SEG80 [43] phi from main::@31 to main::@19 [phi:main::@31->main::@19] + b19_from_b31: jmp b19 - //SEG75 main::@19 + //SEG81 main::@19 b19: - //SEG76 [41] *((const byte*) BORDERCOL#0) ← ++ *((const byte*) BORDERCOL#0) -- _deref_pbuc1=_inc__deref_pbuc1 - inc BORDERCOL - //SEG77 [42] call render_playfield - //SEG78 [70] phi from main::@19 to render_playfield [phi:main::@19->render_playfield] + //SEG82 [44] call render_playfield + //SEG83 [71] phi from main::@19 to render_playfield [phi:main::@19->render_playfield] render_playfield_from_b19: jsr render_playfield - jmp b31 - //SEG79 main::@31 - b31: - //SEG80 [43] (byte~) current_ypos#69 ← (byte) current_ypos#16 -- vbuxx=vbuz1 - ldx current_ypos - //SEG81 [44] (byte~) current_xpos#94 ← (byte) current_xpos#23 -- vbuz1=vbuz2 - lda current_xpos - sta current_xpos_94 - //SEG82 [45] (byte*~) current_piece_gfx#86 ← (byte*) current_piece_gfx#18 -- pbuz1=pbuz2 - lda current_piece_gfx - sta current_piece_gfx_86 - lda current_piece_gfx+1 - sta current_piece_gfx_86+1 - //SEG83 [46] (byte~) current_piece_color#74 ← (byte) current_piece_color#13 -- vbuz1=vbuz2 - lda current_piece_color - sta current_piece_color_74 - //SEG84 [47] call render_current - //SEG85 [50] phi from main::@31 to render_current [phi:main::@31->render_current] - render_current_from_b31: - //SEG86 [50] phi (byte) current_piece_color#65 = (byte~) current_piece_color#74 [phi:main::@31->render_current#0] -- register_copy - //SEG87 [50] phi (byte*) current_piece_gfx#63 = (byte*~) current_piece_gfx#86 [phi:main::@31->render_current#1] -- register_copy - //SEG88 [50] phi (byte) current_xpos#63 = (byte~) current_xpos#94 [phi:main::@31->render_current#2] -- register_copy - //SEG89 [50] phi (byte) current_ypos#22 = (byte~) current_ypos#69 [phi:main::@31->render_current#3] -- register_copy - jsr render_current jmp b32 - //SEG90 main::@32 + //SEG84 main::@32 b32: - //SEG91 [48] *((const byte*) BORDERCOL#0) ← -- *((const byte*) BORDERCOL#0) -- _deref_pbuc1=_dec__deref_pbuc1 - dec BORDERCOL + //SEG85 [45] (byte~) current_ypos#70 ← (byte) current_ypos#16 -- vbuxx=vbuz1 + ldx current_ypos + //SEG86 [46] (byte~) current_xpos#95 ← (byte) current_xpos#23 -- vbuz1=vbuz2 + lda current_xpos + sta current_xpos_95 + //SEG87 [47] (byte*~) current_piece_gfx#87 ← (byte*) current_piece_gfx#18 -- pbuz1=pbuz2 + lda current_piece_gfx + sta current_piece_gfx_87 + lda current_piece_gfx+1 + sta current_piece_gfx_87+1 + //SEG88 [48] (byte~) current_piece_color#75 ← (byte) current_piece_color#13 -- vbuz1=vbuz2 + lda current_piece_color + sta current_piece_color_75 + //SEG89 [49] call render_current + //SEG90 [51] phi from main::@32 to render_current [phi:main::@32->render_current] + render_current_from_b32: + //SEG91 [51] phi (byte) current_piece_color#66 = (byte~) current_piece_color#75 [phi:main::@32->render_current#0] -- register_copy + //SEG92 [51] phi (byte*) current_piece_gfx#63 = (byte*~) current_piece_gfx#87 [phi:main::@32->render_current#1] -- register_copy + //SEG93 [51] phi (byte) current_xpos#63 = (byte~) current_xpos#95 [phi:main::@32->render_current#2] -- register_copy + //SEG94 [51] phi (byte) current_ypos#22 = (byte~) current_ypos#70 [phi:main::@32->render_current#3] -- register_copy + jsr render_current jmp b10 - //SEG92 main::@10 + //SEG95 main::@10 b10: - //SEG93 [49] *((const byte*) BORDERCOL#0) ← -- *((const byte*) BORDERCOL#0) -- _deref_pbuc1=_dec__deref_pbuc1 + //SEG96 [50] *((const byte*) BORDERCOL#0) ← -- *((const byte*) BORDERCOL#0) -- _deref_pbuc1=_dec__deref_pbuc1 dec BORDERCOL - //SEG94 [16] phi from main::@10 to main::@1 [phi:main::@10->main::@1] + //SEG97 [18] phi from main::@10 to main::@1 [phi:main::@10->main::@1] b1_from_b10: - //SEG95 [16] phi (byte) current_movedown_counter#15 = (byte) current_movedown_counter#12 [phi:main::@10->main::@1#0] -- register_copy - //SEG96 [16] phi (byte) keyboard_events_size#19 = (byte) keyboard_events_size#16 [phi:main::@10->main::@1#1] -- register_copy - //SEG97 [16] phi (byte) current_piece_color#11 = (byte) current_piece_color#13 [phi:main::@10->main::@1#2] -- register_copy - //SEG98 [16] phi (byte) current_ypos#12 = (byte) current_ypos#16 [phi:main::@10->main::@1#3] -- register_copy - //SEG99 [16] phi (byte) current_xpos#16 = (byte) current_xpos#23 [phi:main::@10->main::@1#4] -- register_copy - //SEG100 [16] phi (byte*) current_piece_gfx#15 = (byte*) current_piece_gfx#18 [phi:main::@10->main::@1#5] -- register_copy - //SEG101 [16] phi (byte) current_orientation#15 = (byte) current_orientation#23 [phi:main::@10->main::@1#6] -- register_copy - //SEG102 [16] phi (byte*) current_piece#11 = (byte*) current_piece#13 [phi:main::@10->main::@1#7] -- register_copy + //SEG98 [18] phi (byte) current_movedown_counter#15 = (byte) current_movedown_counter#12 [phi:main::@10->main::@1#0] -- register_copy + //SEG99 [18] phi (byte) keyboard_events_size#19 = (byte) keyboard_events_size#16 [phi:main::@10->main::@1#1] -- register_copy + //SEG100 [18] phi (byte) current_piece_color#11 = (byte) current_piece_color#13 [phi:main::@10->main::@1#2] -- register_copy + //SEG101 [18] phi (byte) current_ypos#12 = (byte) current_ypos#16 [phi:main::@10->main::@1#3] -- register_copy + //SEG102 [18] phi (byte) current_xpos#16 = (byte) current_xpos#23 [phi:main::@10->main::@1#4] -- register_copy + //SEG103 [18] phi (byte*) current_piece_gfx#15 = (byte*) current_piece_gfx#18 [phi:main::@10->main::@1#5] -- register_copy + //SEG104 [18] phi (byte) current_orientation#15 = (byte) current_orientation#23 [phi:main::@10->main::@1#6] -- register_copy + //SEG105 [18] phi (byte*) current_piece#11 = (byte*) current_piece#13 [phi:main::@10->main::@1#7] -- register_copy jmp b1 } -//SEG103 render_current +//SEG106 render_current render_current: { .label ypos2 = 8 .label l = 9 .label screen_line = $16 .label xpos = $b .label i = $a - //SEG104 [51] (byte) render_current::ypos2#0 ← (byte) current_ypos#22 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuxx_rol_1 + //SEG107 [52] (byte) render_current::ypos2#0 ← (byte) current_ypos#22 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuxx_rol_1 txa asl sta ypos2 - //SEG105 [52] phi from render_current to render_current::@1 [phi:render_current->render_current::@1] + //SEG108 [53] phi from render_current to render_current::@1 [phi:render_current->render_current::@1] b1_from_render_current: - //SEG106 [52] phi (byte) render_current::i#4 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_current->render_current::@1#0] -- vbuz1=vbuc1 + //SEG109 [53] phi (byte) render_current::i#4 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_current->render_current::@1#0] -- vbuz1=vbuc1 lda #0 sta i - //SEG107 [52] phi (byte) render_current::l#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_current->render_current::@1#1] -- vbuz1=vbuc1 + //SEG110 [53] phi (byte) render_current::l#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_current->render_current::@1#1] -- vbuz1=vbuc1 lda #0 sta l - //SEG108 [52] phi (byte) render_current::ypos2#2 = (byte) render_current::ypos2#0 [phi:render_current->render_current::@1#2] -- register_copy + //SEG111 [53] phi (byte) render_current::ypos2#2 = (byte) render_current::ypos2#0 [phi:render_current->render_current::@1#2] -- register_copy jmp b1 - //SEG109 [52] phi from render_current::@2 to render_current::@1 [phi:render_current::@2->render_current::@1] + //SEG112 [53] phi from render_current::@2 to render_current::@1 [phi:render_current::@2->render_current::@1] b1_from_b2: - //SEG110 [52] phi (byte) render_current::i#4 = (byte) render_current::i#8 [phi:render_current::@2->render_current::@1#0] -- register_copy - //SEG111 [52] phi (byte) render_current::l#3 = (byte) render_current::l#1 [phi:render_current::@2->render_current::@1#1] -- register_copy - //SEG112 [52] phi (byte) render_current::ypos2#2 = (byte) render_current::ypos2#1 [phi:render_current::@2->render_current::@1#2] -- register_copy + //SEG113 [53] phi (byte) render_current::i#4 = (byte) render_current::i#8 [phi:render_current::@2->render_current::@1#0] -- register_copy + //SEG114 [53] phi (byte) render_current::l#3 = (byte) render_current::l#1 [phi:render_current::@2->render_current::@1#1] -- register_copy + //SEG115 [53] phi (byte) render_current::ypos2#2 = (byte) render_current::ypos2#1 [phi:render_current::@2->render_current::@1#2] -- register_copy jmp b1 - //SEG113 render_current::@1 + //SEG116 render_current::@1 b1: - //SEG114 [53] if((byte) render_current::ypos2#2>=(byte/signed byte/word/signed word/dword/signed dword) 2*(const byte) PLAYFIELD_LINES#0) goto render_current::@2 -- vbuz1_ge_vbuc1_then_la1 + //SEG117 [54] if((byte) render_current::ypos2#2>=(byte/signed byte/word/signed word/dword/signed dword) 2*(const byte) PLAYFIELD_LINES#0) goto render_current::@2 -- vbuz1_ge_vbuc1_then_la1 lda ypos2 cmp #2*PLAYFIELD_LINES bcs b2_from_b1 jmp b6 - //SEG115 render_current::@6 + //SEG118 render_current::@6 b6: - //SEG116 [54] (byte*) render_current::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0+3]) screen_lines#0 + (byte) render_current::ypos2#2) -- pbuz1=pptc1_derefidx_vbuz2 + //SEG119 [55] (byte*) render_current::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0+3]) screen_lines#0 + (byte) render_current::ypos2#2) -- pbuz1=pptc1_derefidx_vbuz2 ldy ypos2 lda screen_lines,y sta screen_line lda screen_lines+1,y sta screen_line+1 - //SEG117 [55] (byte) render_current::xpos#0 ← (byte) current_xpos#63 -- vbuz1=vbuz2 + //SEG120 [56] (byte) render_current::xpos#0 ← (byte) current_xpos#63 -- vbuz1=vbuz2 lda current_xpos_63 sta xpos - //SEG118 [56] phi from render_current::@6 to render_current::@3 [phi:render_current::@6->render_current::@3] + //SEG121 [57] phi from render_current::@6 to render_current::@3 [phi:render_current::@6->render_current::@3] b3_from_b6: - //SEG119 [56] phi (byte) render_current::c#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_current::@6->render_current::@3#0] -- vbuxx=vbuc1 + //SEG122 [57] phi (byte) render_current::c#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_current::@6->render_current::@3#0] -- vbuxx=vbuc1 ldx #0 - //SEG120 [56] phi (byte) render_current::xpos#2 = (byte) render_current::xpos#0 [phi:render_current::@6->render_current::@3#1] -- register_copy - //SEG121 [56] phi (byte) render_current::i#2 = (byte) render_current::i#4 [phi:render_current::@6->render_current::@3#2] -- register_copy + //SEG123 [57] phi (byte) render_current::xpos#2 = (byte) render_current::xpos#0 [phi:render_current::@6->render_current::@3#1] -- register_copy + //SEG124 [57] phi (byte) render_current::i#2 = (byte) render_current::i#4 [phi:render_current::@6->render_current::@3#2] -- register_copy jmp b3 - //SEG122 [56] phi from render_current::@4 to render_current::@3 [phi:render_current::@4->render_current::@3] + //SEG125 [57] phi from render_current::@4 to render_current::@3 [phi:render_current::@4->render_current::@3] b3_from_b4: - //SEG123 [56] phi (byte) render_current::c#2 = (byte) render_current::c#1 [phi:render_current::@4->render_current::@3#0] -- register_copy - //SEG124 [56] phi (byte) render_current::xpos#2 = (byte) render_current::xpos#1 [phi:render_current::@4->render_current::@3#1] -- register_copy - //SEG125 [56] phi (byte) render_current::i#2 = (byte) render_current::i#1 [phi:render_current::@4->render_current::@3#2] -- register_copy + //SEG126 [57] phi (byte) render_current::c#2 = (byte) render_current::c#1 [phi:render_current::@4->render_current::@3#0] -- register_copy + //SEG127 [57] phi (byte) render_current::xpos#2 = (byte) render_current::xpos#1 [phi:render_current::@4->render_current::@3#1] -- register_copy + //SEG128 [57] phi (byte) render_current::i#2 = (byte) render_current::i#1 [phi:render_current::@4->render_current::@3#2] -- register_copy jmp b3 - //SEG126 render_current::@3 + //SEG129 render_current::@3 b3: - //SEG127 [57] (byte) render_current::current_cell#0 ← *((byte*) current_piece_gfx#63 + (byte) render_current::i#2) -- vbuaa=pbuz1_derefidx_vbuz2 + //SEG130 [58] (byte) render_current::current_cell#0 ← *((byte*) current_piece_gfx#63 + (byte) render_current::i#2) -- vbuaa=pbuz1_derefidx_vbuz2 ldy i lda (current_piece_gfx_63),y - //SEG128 [58] (byte) render_current::i#1 ← ++ (byte) render_current::i#2 -- vbuz1=_inc_vbuz1 + //SEG131 [59] (byte) render_current::i#1 ← ++ (byte) render_current::i#2 -- vbuz1=_inc_vbuz1 inc i - //SEG129 [59] if((byte) render_current::current_cell#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto render_current::@4 -- vbuaa_eq_0_then_la1 + //SEG132 [60] if((byte) render_current::current_cell#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto render_current::@4 -- vbuaa_eq_0_then_la1 cmp #0 beq b4 jmp b7 - //SEG130 render_current::@7 + //SEG133 render_current::@7 b7: - //SEG131 [60] if((byte) render_current::xpos#2>=(const byte) PLAYFIELD_COLS#0) goto render_current::@4 -- vbuz1_ge_vbuc1_then_la1 + //SEG134 [61] if((byte) render_current::xpos#2>=(const byte) PLAYFIELD_COLS#0) goto render_current::@4 -- vbuz1_ge_vbuc1_then_la1 lda xpos cmp #PLAYFIELD_COLS bcs b4 jmp b8 - //SEG132 render_current::@8 + //SEG135 render_current::@8 b8: - //SEG133 [61] *((byte*) render_current::screen_line#0 + (byte) render_current::xpos#2) ← (byte) current_piece_color#65 -- pbuz1_derefidx_vbuz2=vbuz3 - lda current_piece_color_65 + //SEG136 [62] *((byte*) render_current::screen_line#0 + (byte) render_current::xpos#2) ← (byte) current_piece_color#66 -- pbuz1_derefidx_vbuz2=vbuz3 + lda current_piece_color_66 ldy xpos sta (screen_line),y jmp b4 - //SEG134 render_current::@4 + //SEG137 render_current::@4 b4: - //SEG135 [62] (byte) render_current::xpos#1 ← ++ (byte) render_current::xpos#2 -- vbuz1=_inc_vbuz1 + //SEG138 [63] (byte) render_current::xpos#1 ← ++ (byte) render_current::xpos#2 -- vbuz1=_inc_vbuz1 inc xpos - //SEG136 [63] (byte) render_current::c#1 ← ++ (byte) render_current::c#2 -- vbuxx=_inc_vbuxx + //SEG139 [64] (byte) render_current::c#1 ← ++ (byte) render_current::c#2 -- vbuxx=_inc_vbuxx inx - //SEG137 [64] if((byte) render_current::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_current::@3 -- vbuxx_neq_vbuc1_then_la1 + //SEG140 [65] if((byte) render_current::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_current::@3 -- vbuxx_neq_vbuc1_then_la1 cpx #4 bne b3_from_b4 - //SEG138 [65] phi from render_current::@1 render_current::@4 to render_current::@2 [phi:render_current::@1/render_current::@4->render_current::@2] + //SEG141 [66] phi from render_current::@1 render_current::@4 to render_current::@2 [phi:render_current::@1/render_current::@4->render_current::@2] b2_from_b1: b2_from_b4: - //SEG139 [65] phi (byte) render_current::i#8 = (byte) render_current::i#4 [phi:render_current::@1/render_current::@4->render_current::@2#0] -- register_copy + //SEG142 [66] phi (byte) render_current::i#8 = (byte) render_current::i#4 [phi:render_current::@1/render_current::@4->render_current::@2#0] -- register_copy jmp b2 - //SEG140 render_current::@2 + //SEG143 render_current::@2 b2: - //SEG141 [66] (byte) render_current::ypos2#1 ← (byte) render_current::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 -- vbuz1=vbuz1_plus_2 + //SEG144 [67] (byte) render_current::ypos2#1 ← (byte) render_current::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 -- vbuz1=vbuz1_plus_2 lda ypos2 clc adc #2 sta ypos2 - //SEG142 [67] (byte) render_current::l#1 ← ++ (byte) render_current::l#3 -- vbuz1=_inc_vbuz1 + //SEG145 [68] (byte) render_current::l#1 ← ++ (byte) render_current::l#3 -- vbuz1=_inc_vbuz1 inc l - //SEG143 [68] if((byte) render_current::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_current::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG146 [69] if((byte) render_current::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_current::@1 -- vbuz1_neq_vbuc1_then_la1 lda l cmp #4 bne b1_from_b2 jmp breturn - //SEG144 render_current::@return + //SEG147 render_current::@return breturn: - //SEG145 [69] return + //SEG148 [70] return rts } -//SEG146 render_playfield +//SEG149 render_playfield render_playfield: { .label line = 5 .label i = 7 .label l = 4 - //SEG147 [71] phi from render_playfield to render_playfield::@1 [phi:render_playfield->render_playfield::@1] + //SEG150 [72] phi from render_playfield to render_playfield::@1 [phi:render_playfield->render_playfield::@1] b1_from_render_playfield: - //SEG148 [71] phi (byte) render_playfield::i#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_playfield->render_playfield::@1#0] -- vbuz1=vbuc1 + //SEG151 [72] phi (byte) render_playfield::i#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_playfield->render_playfield::@1#0] -- vbuz1=vbuc1 lda #0 sta i - //SEG149 [71] phi (byte) render_playfield::l#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_playfield->render_playfield::@1#1] -- vbuz1=vbuc1 + //SEG152 [72] phi (byte) render_playfield::l#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_playfield->render_playfield::@1#1] -- vbuz1=vbuc1 lda #0 sta l jmp b1 - //SEG150 [71] phi from render_playfield::@3 to render_playfield::@1 [phi:render_playfield::@3->render_playfield::@1] + //SEG153 [72] phi from render_playfield::@3 to render_playfield::@1 [phi:render_playfield::@3->render_playfield::@1] b1_from_b3: - //SEG151 [71] phi (byte) render_playfield::i#3 = (byte) render_playfield::i#1 [phi:render_playfield::@3->render_playfield::@1#0] -- register_copy - //SEG152 [71] phi (byte) render_playfield::l#2 = (byte) render_playfield::l#1 [phi:render_playfield::@3->render_playfield::@1#1] -- register_copy + //SEG154 [72] phi (byte) render_playfield::i#3 = (byte) render_playfield::i#1 [phi:render_playfield::@3->render_playfield::@1#0] -- register_copy + //SEG155 [72] phi (byte) render_playfield::l#2 = (byte) render_playfield::l#1 [phi:render_playfield::@3->render_playfield::@1#1] -- register_copy jmp b1 - //SEG153 render_playfield::@1 + //SEG156 render_playfield::@1 b1: - //SEG154 [72] (byte~) render_playfield::$1 ← (byte) render_playfield::l#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuaa=vbuz1_rol_1 + //SEG157 [73] (byte~) render_playfield::$1 ← (byte) render_playfield::l#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuaa=vbuz1_rol_1 lda l asl - //SEG155 [73] (byte*) render_playfield::line#0 ← *((const byte*[PLAYFIELD_LINES#0+3]) screen_lines#0 + (byte~) render_playfield::$1) -- pbuz1=pptc1_derefidx_vbuaa + //SEG158 [74] (byte*) render_playfield::line#0 ← *((const byte*[PLAYFIELD_LINES#0+3]) screen_lines#0 + (byte~) render_playfield::$1) -- pbuz1=pptc1_derefidx_vbuaa tay lda screen_lines,y sta line lda screen_lines+1,y sta line+1 - //SEG156 [74] phi from render_playfield::@1 to render_playfield::@2 [phi:render_playfield::@1->render_playfield::@2] + //SEG159 [75] phi from render_playfield::@1 to render_playfield::@2 [phi:render_playfield::@1->render_playfield::@2] b2_from_b1: - //SEG157 [74] phi (byte) render_playfield::c#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_playfield::@1->render_playfield::@2#0] -- vbuxx=vbuc1 + //SEG160 [75] phi (byte) render_playfield::c#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_playfield::@1->render_playfield::@2#0] -- vbuxx=vbuc1 ldx #0 - //SEG158 [74] phi (byte*) render_playfield::line#2 = (byte*) render_playfield::line#0 [phi:render_playfield::@1->render_playfield::@2#1] -- register_copy - //SEG159 [74] phi (byte) render_playfield::i#2 = (byte) render_playfield::i#3 [phi:render_playfield::@1->render_playfield::@2#2] -- register_copy + //SEG161 [75] phi (byte*) render_playfield::line#2 = (byte*) render_playfield::line#0 [phi:render_playfield::@1->render_playfield::@2#1] -- register_copy + //SEG162 [75] phi (byte) render_playfield::i#2 = (byte) render_playfield::i#3 [phi:render_playfield::@1->render_playfield::@2#2] -- register_copy jmp b2 - //SEG160 [74] phi from render_playfield::@2 to render_playfield::@2 [phi:render_playfield::@2->render_playfield::@2] + //SEG163 [75] phi from render_playfield::@2 to render_playfield::@2 [phi:render_playfield::@2->render_playfield::@2] b2_from_b2: - //SEG161 [74] phi (byte) render_playfield::c#2 = (byte) render_playfield::c#1 [phi:render_playfield::@2->render_playfield::@2#0] -- register_copy - //SEG162 [74] phi (byte*) render_playfield::line#2 = (byte*) render_playfield::line#1 [phi:render_playfield::@2->render_playfield::@2#1] -- register_copy - //SEG163 [74] phi (byte) render_playfield::i#2 = (byte) render_playfield::i#1 [phi:render_playfield::@2->render_playfield::@2#2] -- register_copy + //SEG164 [75] phi (byte) render_playfield::c#2 = (byte) render_playfield::c#1 [phi:render_playfield::@2->render_playfield::@2#0] -- register_copy + //SEG165 [75] phi (byte*) render_playfield::line#2 = (byte*) render_playfield::line#1 [phi:render_playfield::@2->render_playfield::@2#1] -- register_copy + //SEG166 [75] phi (byte) render_playfield::i#2 = (byte) render_playfield::i#1 [phi:render_playfield::@2->render_playfield::@2#2] -- register_copy jmp b2 - //SEG164 render_playfield::@2 + //SEG167 render_playfield::@2 b2: - //SEG165 [75] *((byte*) render_playfield::line#2) ← *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) render_playfield::i#2) -- _deref_pbuz1=pbuc1_derefidx_vbuz2 + //SEG168 [76] *((byte*) render_playfield::line#2) ← *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) render_playfield::i#2) -- _deref_pbuz1=pbuc1_derefidx_vbuz2 ldy i lda playfield,y ldy #0 sta (line),y - //SEG166 [76] (byte*) render_playfield::line#1 ← ++ (byte*) render_playfield::line#2 -- pbuz1=_inc_pbuz1 + //SEG169 [77] (byte*) render_playfield::line#1 ← ++ (byte*) render_playfield::line#2 -- pbuz1=_inc_pbuz1 inc line bne !+ inc line+1 !: - //SEG167 [77] (byte) render_playfield::i#1 ← ++ (byte) render_playfield::i#2 -- vbuz1=_inc_vbuz1 + //SEG170 [78] (byte) render_playfield::i#1 ← ++ (byte) render_playfield::i#2 -- vbuz1=_inc_vbuz1 inc i - //SEG168 [78] (byte) render_playfield::c#1 ← ++ (byte) render_playfield::c#2 -- vbuxx=_inc_vbuxx + //SEG171 [79] (byte) render_playfield::c#1 ← ++ (byte) render_playfield::c#2 -- vbuxx=_inc_vbuxx inx - //SEG169 [79] if((byte) render_playfield::c#1!=(const byte) PLAYFIELD_COLS#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_playfield::@2 -- vbuxx_neq_vbuc1_then_la1 + //SEG172 [80] if((byte) render_playfield::c#1!=(const byte) PLAYFIELD_COLS#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_playfield::@2 -- vbuxx_neq_vbuc1_then_la1 cpx #PLAYFIELD_COLS-1+1 bne b2_from_b2 jmp b3 - //SEG170 render_playfield::@3 + //SEG173 render_playfield::@3 b3: - //SEG171 [80] (byte) render_playfield::l#1 ← ++ (byte) render_playfield::l#2 -- vbuz1=_inc_vbuz1 + //SEG174 [81] (byte) render_playfield::l#1 ← ++ (byte) render_playfield::l#2 -- vbuz1=_inc_vbuz1 inc l - //SEG172 [81] if((byte) render_playfield::l#1!=(const byte) PLAYFIELD_LINES#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_playfield::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG175 [82] if((byte) render_playfield::l#1!=(const byte) PLAYFIELD_LINES#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_playfield::@1 -- vbuz1_neq_vbuc1_then_la1 lda l cmp #PLAYFIELD_LINES-1+1 bne b1_from_b3 jmp breturn - //SEG173 render_playfield::@return + //SEG176 render_playfield::@return breturn: - //SEG174 [82] return + //SEG177 [83] return rts } -//SEG175 play_move_rotate +//SEG178 play_move_rotate play_move_rotate: { .label orientation = 4 - //SEG176 [83] if((byte) play_move_rotate::key_event#0==(const byte) KEY_Z#0) goto play_move_rotate::@1 -- vbuaa_eq_vbuc1_then_la1 + //SEG179 [84] if((byte) play_move_rotate::key_event#0==(const byte) KEY_Z#0) goto play_move_rotate::@1 -- vbuaa_eq_vbuc1_then_la1 cmp #KEY_Z beq b1 jmp b6 - //SEG177 play_move_rotate::@6 + //SEG180 play_move_rotate::@6 b6: - //SEG178 [84] if((byte) play_move_rotate::key_event#0==(const byte) KEY_X#0) goto play_move_rotate::@2 -- vbuaa_eq_vbuc1_then_la1 + //SEG181 [85] if((byte) play_move_rotate::key_event#0==(const byte) KEY_X#0) goto play_move_rotate::@2 -- vbuaa_eq_vbuc1_then_la1 cmp #KEY_X beq b2 - //SEG179 [85] 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] + //SEG182 [86] phi from play_move_rotate::@14 play_move_rotate::@6 to play_move_rotate::@return [phi:play_move_rotate::@14/play_move_rotate::@6->play_move_rotate::@return] breturn_from_b14: breturn_from_b6: - //SEG180 [85] phi (byte*) current_piece_gfx#18 = (byte*) current_piece_gfx#17 [phi:play_move_rotate::@14/play_move_rotate::@6->play_move_rotate::@return#0] -- register_copy - //SEG181 [85] phi (byte) current_orientation#23 = (byte) current_orientation#18 [phi:play_move_rotate::@14/play_move_rotate::@6->play_move_rotate::@return#1] -- register_copy - //SEG182 [85] phi (byte) play_move_rotate::return#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_rotate::@14/play_move_rotate::@6->play_move_rotate::@return#2] -- vbuaa=vbuc1 + //SEG183 [86] phi (byte*) current_piece_gfx#18 = (byte*) current_piece_gfx#17 [phi:play_move_rotate::@14/play_move_rotate::@6->play_move_rotate::@return#0] -- register_copy + //SEG184 [86] phi (byte) current_orientation#23 = (byte) current_orientation#18 [phi:play_move_rotate::@14/play_move_rotate::@6->play_move_rotate::@return#1] -- register_copy + //SEG185 [86] phi (byte) play_move_rotate::return#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_rotate::@14/play_move_rotate::@6->play_move_rotate::@return#2] -- vbuaa=vbuc1 lda #0 jmp breturn - //SEG183 play_move_rotate::@return + //SEG186 play_move_rotate::@return breturn: - //SEG184 [86] return + //SEG187 [87] return rts - //SEG185 play_move_rotate::@2 + //SEG188 play_move_rotate::@2 b2: - //SEG186 [87] (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 ← (byte) current_orientation#18 + (byte/signed byte/word/signed word/dword/signed dword) 16 -- vbuaa=vbuz1_plus_vbuc1 + //SEG189 [88] (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 ← (byte) current_orientation#18 + (byte/signed byte/word/signed word/dword/signed dword) 16 -- vbuaa=vbuz1_plus_vbuc1 lda #$10 clc adc current_orientation - //SEG187 [88] (byte) play_move_rotate::orientation#2 ← (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 & (byte/signed byte/word/signed word/dword/signed dword) 63 -- vbuz1=vbuaa_band_vbuc1 + //SEG190 [89] (byte) play_move_rotate::orientation#2 ← (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 & (byte/signed byte/word/signed word/dword/signed dword) 63 -- vbuz1=vbuaa_band_vbuc1 and #$3f sta orientation - //SEG188 [89] phi from play_move_rotate::@1 play_move_rotate::@2 to play_move_rotate::@4 [phi:play_move_rotate::@1/play_move_rotate::@2->play_move_rotate::@4] + //SEG191 [90] phi from play_move_rotate::@1 play_move_rotate::@2 to play_move_rotate::@4 [phi:play_move_rotate::@1/play_move_rotate::@2->play_move_rotate::@4] b4_from_b1: b4_from_b2: - //SEG189 [89] 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 + //SEG192 [90] phi (byte) play_move_rotate::orientation#3 = (byte) play_move_rotate::orientation#1 [phi:play_move_rotate::@1/play_move_rotate::@2->play_move_rotate::@4#0] -- register_copy jmp b4 - //SEG190 play_move_rotate::@4 + //SEG193 play_move_rotate::@4 b4: - //SEG191 [90] (byte) collision::xpos#3 ← (byte) current_xpos#23 -- vbuz1=vbuz2 + //SEG194 [91] (byte) collision::xpos#3 ← (byte) current_xpos#23 -- vbuz1=vbuz2 lda current_xpos sta collision.xpos - //SEG192 [91] (byte) collision::ypos#3 ← (byte) current_ypos#16 -- vbuyy=vbuz1 + //SEG195 [92] (byte) collision::ypos#3 ← (byte) current_ypos#16 -- vbuyy=vbuz1 ldy current_ypos - //SEG193 [92] (byte) collision::orientation#3 ← (byte) play_move_rotate::orientation#3 -- vbuxx=vbuz1 + //SEG196 [93] (byte) collision::orientation#3 ← (byte) play_move_rotate::orientation#3 -- vbuxx=vbuz1 ldx orientation - //SEG194 [93] (byte*~) current_piece#73 ← (byte*) current_piece#13 -- pbuz1=pbuz2 + //SEG197 [94] (byte*~) current_piece#74 ← (byte*) current_piece#13 -- pbuz1=pbuz2 lda current_piece - sta current_piece_73 + sta current_piece_74 lda current_piece+1 - sta current_piece_73+1 - //SEG195 [94] call collision - //SEG196 [102] phi from play_move_rotate::@4 to collision [phi:play_move_rotate::@4->collision] + sta current_piece_74+1 + //SEG198 [95] call collision + //SEG199 [103] phi from play_move_rotate::@4 to collision [phi:play_move_rotate::@4->collision] collision_from_b4: - //SEG197 [102] phi (byte) collision::xpos#5 = (byte) collision::xpos#3 [phi:play_move_rotate::@4->collision#0] -- register_copy - //SEG198 [102] phi (byte) collision::ypos#4 = (byte) collision::ypos#3 [phi:play_move_rotate::@4->collision#1] -- register_copy - //SEG199 [102] phi (byte) collision::orientation#4 = (byte) collision::orientation#3 [phi:play_move_rotate::@4->collision#2] -- register_copy - //SEG200 [102] phi (byte*) current_piece#15 = (byte*~) current_piece#73 [phi:play_move_rotate::@4->collision#3] -- register_copy + //SEG200 [103] phi (byte) collision::xpos#5 = (byte) collision::xpos#3 [phi:play_move_rotate::@4->collision#0] -- register_copy + //SEG201 [103] phi (byte) collision::ypos#4 = (byte) collision::ypos#3 [phi:play_move_rotate::@4->collision#1] -- register_copy + //SEG202 [103] phi (byte) collision::orientation#4 = (byte) collision::orientation#3 [phi:play_move_rotate::@4->collision#2] -- register_copy + //SEG203 [103] phi (byte*) current_piece#15 = (byte*~) current_piece#74 [phi:play_move_rotate::@4->collision#3] -- register_copy jsr collision - //SEG201 [95] (byte) collision::return#13 ← (byte) collision::return#14 + //SEG204 [96] (byte) collision::return#13 ← (byte) collision::return#14 // (byte) collision::return#13 = (byte) collision::return#14 // register copy reg byte a jmp b14 - //SEG202 play_move_rotate::@14 + //SEG205 play_move_rotate::@14 b14: - //SEG203 [96] (byte~) play_move_rotate::$6 ← (byte) collision::return#13 + //SEG206 [97] (byte~) play_move_rotate::$6 ← (byte) collision::return#13 // (byte~) play_move_rotate::$6 = (byte) collision::return#13 // register copy reg byte a - //SEG204 [97] if((byte~) play_move_rotate::$6!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_move_rotate::@return -- vbuaa_neq_0_then_la1 - cmp #0 + //SEG207 [98] if((byte~) play_move_rotate::$6!=(const byte) COLLISION_NONE#0) goto play_move_rotate::@return -- vbuaa_neq_vbuc1_then_la1 + cmp #COLLISION_NONE bne breturn_from_b14 jmp b11 - //SEG205 play_move_rotate::@11 + //SEG208 play_move_rotate::@11 b11: - //SEG206 [98] (byte) current_orientation#8 ← (byte) play_move_rotate::orientation#3 -- vbuz1=vbuz2 + //SEG209 [99] (byte) current_orientation#8 ← (byte) play_move_rotate::orientation#3 -- vbuz1=vbuz2 lda orientation sta current_orientation - //SEG207 [99] (byte*) current_piece_gfx#8 ← (byte*) current_piece#13 + (byte) current_orientation#8 -- pbuz1=pbuz2_plus_vbuz3 + //SEG210 [100] (byte*) current_piece_gfx#8 ← (byte*) current_piece#13 + (byte) current_orientation#8 -- pbuz1=pbuz2_plus_vbuz3 lda current_orientation clc adc current_piece @@ -9946,25 +10008,25 @@ play_move_rotate: { lda #0 adc current_piece+1 sta current_piece_gfx+1 - //SEG208 [85] phi from play_move_rotate::@11 to play_move_rotate::@return [phi:play_move_rotate::@11->play_move_rotate::@return] + //SEG211 [86] phi from play_move_rotate::@11 to play_move_rotate::@return [phi:play_move_rotate::@11->play_move_rotate::@return] breturn_from_b11: - //SEG209 [85] phi (byte*) current_piece_gfx#18 = (byte*) current_piece_gfx#8 [phi:play_move_rotate::@11->play_move_rotate::@return#0] -- register_copy - //SEG210 [85] phi (byte) current_orientation#23 = (byte) current_orientation#8 [phi:play_move_rotate::@11->play_move_rotate::@return#1] -- register_copy - //SEG211 [85] phi (byte) play_move_rotate::return#2 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_move_rotate::@11->play_move_rotate::@return#2] -- vbuaa=vbuc1 + //SEG212 [86] phi (byte*) current_piece_gfx#18 = (byte*) current_piece_gfx#8 [phi:play_move_rotate::@11->play_move_rotate::@return#0] -- register_copy + //SEG213 [86] phi (byte) current_orientation#23 = (byte) current_orientation#8 [phi:play_move_rotate::@11->play_move_rotate::@return#1] -- register_copy + //SEG214 [86] phi (byte) play_move_rotate::return#2 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_move_rotate::@11->play_move_rotate::@return#2] -- vbuaa=vbuc1 lda #1 jmp breturn - //SEG212 play_move_rotate::@1 + //SEG215 play_move_rotate::@1 b1: - //SEG213 [100] (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 ← (byte) current_orientation#18 - (byte/signed byte/word/signed word/dword/signed dword) 16 -- vbuaa=vbuz1_minus_vbuc1 + //SEG216 [101] (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 ← (byte) current_orientation#18 - (byte/signed byte/word/signed word/dword/signed dword) 16 -- vbuaa=vbuz1_minus_vbuc1 lda current_orientation sec sbc #$10 - //SEG214 [101] (byte) play_move_rotate::orientation#1 ← (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 & (byte/signed byte/word/signed word/dword/signed dword) 63 -- vbuz1=vbuaa_band_vbuc1 + //SEG217 [102] (byte) play_move_rotate::orientation#1 ← (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 & (byte/signed byte/word/signed word/dword/signed dword) 63 -- vbuz1=vbuaa_band_vbuc1 and #$3f sta orientation jmp b4_from_b1 } -//SEG215 collision +//SEG218 collision collision: { .label xpos = 7 .label piece_gfx = 5 @@ -9977,7 +10039,7 @@ collision: { .label i_3 = $a .label i_11 = $a .label i_13 = $a - //SEG216 [103] (byte*) collision::piece_gfx#0 ← (byte*) current_piece#15 + (byte) collision::orientation#4 -- pbuz1=pbuz1_plus_vbuxx + //SEG219 [104] (byte*) collision::piece_gfx#0 ← (byte*) current_piece#15 + (byte) collision::orientation#4 -- pbuz1=pbuz1_plus_vbuxx txa clc adc piece_gfx @@ -9985,663 +10047,661 @@ collision: { lda #0 adc piece_gfx+1 sta piece_gfx+1 - //SEG217 [104] (byte) collision::ypos2#0 ← (byte) collision::ypos#4 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuyy_rol_1 + //SEG220 [105] (byte) collision::ypos2#0 ← (byte) collision::ypos#4 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuyy_rol_1 tya asl sta ypos2 - //SEG218 [105] phi from collision to collision::@1 [phi:collision->collision::@1] + //SEG221 [106] phi from collision to collision::@1 [phi:collision->collision::@1] b1_from_collision: - //SEG219 [105] phi (byte) collision::l#6 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:collision->collision::@1#0] -- vbuz1=vbuc1 + //SEG222 [106] phi (byte) collision::l#6 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:collision->collision::@1#0] -- vbuz1=vbuc1 lda #0 sta l - //SEG220 [105] phi (byte) collision::i#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:collision->collision::@1#1] -- vbuz1=vbuc1 + //SEG223 [106] phi (byte) collision::i#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:collision->collision::@1#1] -- vbuz1=vbuc1 lda #0 sta i_3 - //SEG221 [105] phi (byte) collision::ypos2#2 = (byte) collision::ypos2#0 [phi:collision->collision::@1#2] -- register_copy + //SEG224 [106] phi (byte) collision::ypos2#2 = (byte) collision::ypos2#0 [phi:collision->collision::@1#2] -- register_copy jmp b1 - //SEG222 collision::@1 + //SEG225 collision::@1 b1: - //SEG223 [106] (byte*) collision::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) collision::ypos2#2) -- pbuz1=pptc1_derefidx_vbuz2 + //SEG226 [107] (byte*) collision::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) collision::ypos2#2) -- pbuz1=pptc1_derefidx_vbuz2 ldy ypos2 lda playfield_lines,y sta playfield_line lda playfield_lines+1,y sta playfield_line+1 - //SEG224 [107] (byte~) collision::col#9 ← (byte) collision::xpos#5 -- vbuz1=vbuz2 + //SEG227 [108] (byte~) collision::col#9 ← (byte) collision::xpos#5 -- vbuz1=vbuz2 lda xpos sta col - //SEG225 [108] phi from collision::@1 to collision::@2 [phi:collision::@1->collision::@2] + //SEG228 [109] phi from collision::@1 to collision::@2 [phi:collision::@1->collision::@2] b2_from_b1: - //SEG226 [108] phi (byte) collision::c#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:collision::@1->collision::@2#0] -- vbuxx=vbuc1 + //SEG229 [109] phi (byte) collision::c#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:collision::@1->collision::@2#0] -- vbuxx=vbuc1 ldx #0 - //SEG227 [108] phi (byte) collision::col#2 = (byte~) collision::col#9 [phi:collision::@1->collision::@2#1] -- register_copy - //SEG228 [108] phi (byte) collision::i#2 = (byte) collision::i#3 [phi:collision::@1->collision::@2#2] -- register_copy + //SEG230 [109] phi (byte) collision::col#2 = (byte~) collision::col#9 [phi:collision::@1->collision::@2#1] -- register_copy + //SEG231 [109] phi (byte) collision::i#2 = (byte) collision::i#3 [phi:collision::@1->collision::@2#2] -- register_copy jmp b2 - //SEG229 collision::@2 + //SEG232 collision::@2 b2: - //SEG230 [109] (byte) collision::i#1 ← ++ (byte) collision::i#2 -- vbuz1=_inc_vbuz2 + //SEG233 [110] (byte) collision::i#1 ← ++ (byte) collision::i#2 -- vbuz1=_inc_vbuz2 ldy i_2 iny sty i - //SEG231 [110] if(*((byte*) collision::piece_gfx#0 + (byte) collision::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto collision::@3 -- pbuz1_derefidx_vbuz2_eq_0_then_la1 + //SEG234 [111] if(*((byte*) collision::piece_gfx#0 + (byte) collision::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto collision::@3 -- pbuz1_derefidx_vbuz2_eq_0_then_la1 ldy i_2 lda (piece_gfx),y cmp #0 beq b3 jmp b8 - //SEG232 collision::@8 + //SEG235 collision::@8 b8: - //SEG233 [111] if((byte) collision::ypos2#2<(byte/signed byte/word/signed word/dword/signed dword) 2*(const byte) PLAYFIELD_LINES#0) goto collision::@4 -- vbuz1_lt_vbuc1_then_la1 + //SEG236 [112] if((byte) collision::ypos2#2<(byte/signed byte/word/signed word/dword/signed dword) 2*(const byte) PLAYFIELD_LINES#0) goto collision::@4 -- vbuz1_lt_vbuc1_then_la1 lda ypos2 cmp #2*PLAYFIELD_LINES bcc b4 - //SEG234 [112] phi from collision::@8 to collision::@return [phi:collision::@8->collision::@return] + //SEG237 [113] phi from collision::@8 to collision::@return [phi:collision::@8->collision::@return] breturn_from_b8: - //SEG235 [112] phi (byte) collision::return#14 = (const byte) COLLISION_BOTTOM#0 [phi:collision::@8->collision::@return#0] -- vbuaa=vbuc1 + //SEG238 [113] phi (byte) collision::return#14 = (const byte) COLLISION_BOTTOM#0 [phi:collision::@8->collision::@return#0] -- vbuaa=vbuc1 lda #COLLISION_BOTTOM jmp breturn - //SEG236 collision::@return + //SEG239 collision::@return breturn: - //SEG237 [113] return + //SEG240 [114] return rts - //SEG238 collision::@4 + //SEG241 collision::@4 b4: - //SEG239 [114] (byte~) collision::$7 ← (byte) collision::col#2 & (byte/word/signed word/dword/signed dword) 128 -- vbuaa=vbuz1_band_vbuc1 + //SEG242 [115] (byte~) collision::$7 ← (byte) collision::col#2 & (byte/word/signed word/dword/signed dword) 128 -- vbuaa=vbuz1_band_vbuc1 lda #$80 and col - //SEG240 [115] if((byte~) collision::$7==(byte/signed byte/word/signed word/dword/signed dword) 0) goto collision::@5 -- vbuaa_eq_0_then_la1 + //SEG243 [116] if((byte~) collision::$7==(byte/signed byte/word/signed word/dword/signed dword) 0) goto collision::@5 -- vbuaa_eq_0_then_la1 cmp #0 beq b5 - //SEG241 [112] phi from collision::@4 to collision::@return [phi:collision::@4->collision::@return] + //SEG244 [113] phi from collision::@4 to collision::@return [phi:collision::@4->collision::@return] breturn_from_b4: - //SEG242 [112] phi (byte) collision::return#14 = (const byte) COLLISION_LEFT#0 [phi:collision::@4->collision::@return#0] -- vbuaa=vbuc1 + //SEG245 [113] phi (byte) collision::return#14 = (const byte) COLLISION_LEFT#0 [phi:collision::@4->collision::@return#0] -- vbuaa=vbuc1 lda #COLLISION_LEFT jmp breturn - //SEG243 collision::@5 + //SEG246 collision::@5 b5: - //SEG244 [116] if((byte) collision::col#2<(const byte) PLAYFIELD_COLS#0) goto collision::@6 -- vbuz1_lt_vbuc1_then_la1 + //SEG247 [117] if((byte) collision::col#2<(const byte) PLAYFIELD_COLS#0) goto collision::@6 -- vbuz1_lt_vbuc1_then_la1 lda col cmp #PLAYFIELD_COLS bcc b6 - //SEG245 [112] phi from collision::@5 to collision::@return [phi:collision::@5->collision::@return] + //SEG248 [113] phi from collision::@5 to collision::@return [phi:collision::@5->collision::@return] breturn_from_b5: - //SEG246 [112] phi (byte) collision::return#14 = (const byte) COLLISION_RIGHT#0 [phi:collision::@5->collision::@return#0] -- vbuaa=vbuc1 + //SEG249 [113] phi (byte) collision::return#14 = (const byte) COLLISION_RIGHT#0 [phi:collision::@5->collision::@return#0] -- vbuaa=vbuc1 lda #COLLISION_RIGHT jmp breturn - //SEG247 collision::@6 + //SEG250 collision::@6 b6: - //SEG248 [117] if(*((byte*) collision::playfield_line#0 + (byte) collision::col#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto collision::@3 -- pbuz1_derefidx_vbuz2_eq_0_then_la1 + //SEG251 [118] if(*((byte*) collision::playfield_line#0 + (byte) collision::col#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto collision::@3 -- pbuz1_derefidx_vbuz2_eq_0_then_la1 ldy col lda (playfield_line),y cmp #0 beq b3 - //SEG249 [112] phi from collision::@6 to collision::@return [phi:collision::@6->collision::@return] + //SEG252 [113] phi from collision::@6 to collision::@return [phi:collision::@6->collision::@return] breturn_from_b6: - //SEG250 [112] phi (byte) collision::return#14 = (const byte) COLLISION_PLAYFIELD#0 [phi:collision::@6->collision::@return#0] -- vbuaa=vbuc1 + //SEG253 [113] phi (byte) collision::return#14 = (const byte) COLLISION_PLAYFIELD#0 [phi:collision::@6->collision::@return#0] -- vbuaa=vbuc1 lda #COLLISION_PLAYFIELD jmp breturn - //SEG251 collision::@3 + //SEG254 collision::@3 b3: - //SEG252 [118] (byte) collision::col#1 ← ++ (byte) collision::col#2 -- vbuz1=_inc_vbuz1 + //SEG255 [119] (byte) collision::col#1 ← ++ (byte) collision::col#2 -- vbuz1=_inc_vbuz1 inc col - //SEG253 [119] (byte) collision::c#1 ← ++ (byte) collision::c#2 -- vbuxx=_inc_vbuxx + //SEG256 [120] (byte) collision::c#1 ← ++ (byte) collision::c#2 -- vbuxx=_inc_vbuxx inx - //SEG254 [120] if((byte) collision::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto collision::@21 -- vbuxx_neq_vbuc1_then_la1 + //SEG257 [121] if((byte) collision::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto collision::@21 -- vbuxx_neq_vbuc1_then_la1 cpx #4 bne b21 jmp b17 - //SEG255 collision::@17 + //SEG258 collision::@17 b17: - //SEG256 [121] (byte) collision::ypos2#1 ← (byte) collision::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 -- vbuz1=vbuz1_plus_2 + //SEG259 [122] (byte) collision::ypos2#1 ← (byte) collision::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 -- vbuz1=vbuz1_plus_2 lda ypos2 clc adc #2 sta ypos2 - //SEG257 [122] (byte) collision::l#1 ← ++ (byte) collision::l#6 -- vbuz1=_inc_vbuz1 + //SEG260 [123] (byte) collision::l#1 ← ++ (byte) collision::l#6 -- vbuz1=_inc_vbuz1 inc l - //SEG258 [123] if((byte) collision::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto collision::@20 -- vbuz1_neq_vbuc1_then_la1 + //SEG261 [124] if((byte) collision::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto collision::@20 -- vbuz1_neq_vbuc1_then_la1 lda l cmp #4 bne b20 - //SEG259 [112] phi from collision::@17 to collision::@return [phi:collision::@17->collision::@return] + //SEG262 [113] phi from collision::@17 to collision::@return [phi:collision::@17->collision::@return] breturn_from_b17: - //SEG260 [112] phi (byte) collision::return#14 = (const byte) COLLISION_NONE#0 [phi:collision::@17->collision::@return#0] -- vbuaa=vbuc1 + //SEG263 [113] phi (byte) collision::return#14 = (const byte) COLLISION_NONE#0 [phi:collision::@17->collision::@return#0] -- vbuaa=vbuc1 lda #COLLISION_NONE jmp breturn - //SEG261 collision::@20 + //SEG264 collision::@20 b20: - //SEG262 [124] (byte~) collision::i#11 ← (byte) collision::i#1 -- vbuz1=vbuz2 + //SEG265 [125] (byte~) collision::i#11 ← (byte) collision::i#1 -- vbuz1=vbuz2 lda i sta i_11 - //SEG263 [105] phi from collision::@20 to collision::@1 [phi:collision::@20->collision::@1] + //SEG266 [106] phi from collision::@20 to collision::@1 [phi:collision::@20->collision::@1] b1_from_b20: - //SEG264 [105] phi (byte) collision::l#6 = (byte) collision::l#1 [phi:collision::@20->collision::@1#0] -- register_copy - //SEG265 [105] phi (byte) collision::i#3 = (byte~) collision::i#11 [phi:collision::@20->collision::@1#1] -- register_copy - //SEG266 [105] phi (byte) collision::ypos2#2 = (byte) collision::ypos2#1 [phi:collision::@20->collision::@1#2] -- register_copy + //SEG267 [106] phi (byte) collision::l#6 = (byte) collision::l#1 [phi:collision::@20->collision::@1#0] -- register_copy + //SEG268 [106] phi (byte) collision::i#3 = (byte~) collision::i#11 [phi:collision::@20->collision::@1#1] -- register_copy + //SEG269 [106] phi (byte) collision::ypos2#2 = (byte) collision::ypos2#1 [phi:collision::@20->collision::@1#2] -- register_copy jmp b1 - //SEG267 collision::@21 + //SEG270 collision::@21 b21: - //SEG268 [125] (byte~) collision::i#13 ← (byte) collision::i#1 -- vbuz1=vbuz2 + //SEG271 [126] (byte~) collision::i#13 ← (byte) collision::i#1 -- vbuz1=vbuz2 lda i sta i_13 - //SEG269 [108] phi from collision::@21 to collision::@2 [phi:collision::@21->collision::@2] + //SEG272 [109] phi from collision::@21 to collision::@2 [phi:collision::@21->collision::@2] b2_from_b21: - //SEG270 [108] phi (byte) collision::c#2 = (byte) collision::c#1 [phi:collision::@21->collision::@2#0] -- register_copy - //SEG271 [108] phi (byte) collision::col#2 = (byte) collision::col#1 [phi:collision::@21->collision::@2#1] -- register_copy - //SEG272 [108] phi (byte) collision::i#2 = (byte~) collision::i#13 [phi:collision::@21->collision::@2#2] -- register_copy + //SEG273 [109] phi (byte) collision::c#2 = (byte) collision::c#1 [phi:collision::@21->collision::@2#0] -- register_copy + //SEG274 [109] phi (byte) collision::col#2 = (byte) collision::col#1 [phi:collision::@21->collision::@2#1] -- register_copy + //SEG275 [109] phi (byte) collision::i#2 = (byte~) collision::i#13 [phi:collision::@21->collision::@2#2] -- register_copy jmp b2 } -//SEG273 play_move_leftright +//SEG276 play_move_leftright play_move_leftright: { - //SEG274 [126] if((byte) play_move_leftright::key_event#0==(const byte) KEY_COMMA#0) goto play_move_leftright::@1 -- vbuaa_eq_vbuc1_then_la1 + //SEG277 [127] if((byte) play_move_leftright::key_event#0==(const byte) KEY_COMMA#0) goto play_move_leftright::@1 -- vbuaa_eq_vbuc1_then_la1 cmp #KEY_COMMA beq b1 jmp b6 - //SEG275 play_move_leftright::@6 + //SEG278 play_move_leftright::@6 b6: - //SEG276 [127] if((byte) play_move_leftright::key_event#0!=(const byte) KEY_DOT#0) goto play_move_leftright::@return -- vbuaa_neq_vbuc1_then_la1 + //SEG279 [128] if((byte) play_move_leftright::key_event#0!=(const byte) KEY_DOT#0) goto play_move_leftright::@return -- vbuaa_neq_vbuc1_then_la1 cmp #KEY_DOT bne breturn_from_b6 jmp b7 - //SEG277 play_move_leftright::@7 + //SEG280 play_move_leftright::@7 b7: - //SEG278 [128] (byte) collision::xpos#2 ← (byte) current_xpos#19 + (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_plus_1 + //SEG281 [129] (byte) collision::xpos#2 ← (byte) current_xpos#19 + (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_plus_1 ldy current_xpos iny sty collision.xpos - //SEG279 [129] (byte) collision::ypos#2 ← (byte) current_ypos#16 -- vbuyy=vbuz1 + //SEG282 [130] (byte) collision::ypos#2 ← (byte) current_ypos#16 -- vbuyy=vbuz1 ldy current_ypos - //SEG280 [130] (byte) collision::orientation#2 ← (byte) current_orientation#18 -- vbuxx=vbuz1 + //SEG283 [131] (byte) collision::orientation#2 ← (byte) current_orientation#18 -- vbuxx=vbuz1 ldx current_orientation - //SEG281 [131] (byte*~) current_piece#72 ← (byte*) current_piece#13 -- pbuz1=pbuz2 + //SEG284 [132] (byte*~) current_piece#73 ← (byte*) current_piece#13 -- pbuz1=pbuz2 + lda current_piece + sta current_piece_73 + lda current_piece+1 + sta current_piece_73+1 + //SEG285 [133] call collision + //SEG286 [103] phi from play_move_leftright::@7 to collision [phi:play_move_leftright::@7->collision] + collision_from_b7: + //SEG287 [103] phi (byte) collision::xpos#5 = (byte) collision::xpos#2 [phi:play_move_leftright::@7->collision#0] -- register_copy + //SEG288 [103] phi (byte) collision::ypos#4 = (byte) collision::ypos#2 [phi:play_move_leftright::@7->collision#1] -- register_copy + //SEG289 [103] phi (byte) collision::orientation#4 = (byte) collision::orientation#2 [phi:play_move_leftright::@7->collision#2] -- register_copy + //SEG290 [103] phi (byte*) current_piece#15 = (byte*~) current_piece#73 [phi:play_move_leftright::@7->collision#3] -- register_copy + jsr collision + //SEG291 [134] (byte) collision::return#12 ← (byte) collision::return#14 + // (byte) collision::return#12 = (byte) collision::return#14 // register copy reg byte a + jmp b15 + //SEG292 play_move_leftright::@15 + b15: + //SEG293 [135] (byte~) play_move_leftright::$4 ← (byte) collision::return#12 + // (byte~) play_move_leftright::$4 = (byte) collision::return#12 // register copy reg byte a + //SEG294 [136] if((byte~) play_move_leftright::$4!=(const byte) COLLISION_NONE#0) goto play_move_leftright::@return -- vbuaa_neq_vbuc1_then_la1 + cmp #COLLISION_NONE + bne breturn_from_b15 + jmp b8 + //SEG295 play_move_leftright::@8 + b8: + //SEG296 [137] (byte) current_xpos#7 ← ++ (byte) current_xpos#19 -- vbuz1=_inc_vbuz1 + inc current_xpos + //SEG297 [138] phi from play_move_leftright::@11 play_move_leftright::@8 to play_move_leftright::@return [phi:play_move_leftright::@11/play_move_leftright::@8->play_move_leftright::@return] + breturn_from_b11: + breturn_from_b8: + //SEG298 [138] phi (byte) current_xpos#23 = (byte) current_xpos#9 [phi:play_move_leftright::@11/play_move_leftright::@8->play_move_leftright::@return#0] -- register_copy + //SEG299 [138] phi (byte) play_move_leftright::return#2 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_move_leftright::@11/play_move_leftright::@8->play_move_leftright::@return#1] -- vbuaa=vbuc1 + lda #1 + jmp breturn + //SEG300 [138] phi from play_move_leftright::@14 play_move_leftright::@15 play_move_leftright::@6 to play_move_leftright::@return [phi:play_move_leftright::@14/play_move_leftright::@15/play_move_leftright::@6->play_move_leftright::@return] + breturn_from_b14: + breturn_from_b15: + breturn_from_b6: + //SEG301 [138] phi (byte) current_xpos#23 = (byte) current_xpos#19 [phi:play_move_leftright::@14/play_move_leftright::@15/play_move_leftright::@6->play_move_leftright::@return#0] -- register_copy + //SEG302 [138] phi (byte) play_move_leftright::return#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_leftright::@14/play_move_leftright::@15/play_move_leftright::@6->play_move_leftright::@return#1] -- vbuaa=vbuc1 + lda #0 + jmp breturn + //SEG303 play_move_leftright::@return + breturn: + //SEG304 [139] return + rts + //SEG305 play_move_leftright::@1 + b1: + //SEG306 [140] (byte) collision::xpos#1 ← (byte) current_xpos#19 - (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_minus_1 + ldx current_xpos + dex + stx collision.xpos + //SEG307 [141] (byte) collision::ypos#1 ← (byte) current_ypos#16 -- vbuyy=vbuz1 + ldy current_ypos + //SEG308 [142] (byte) collision::orientation#1 ← (byte) current_orientation#18 -- vbuxx=vbuz1 + ldx current_orientation + //SEG309 [143] (byte*~) current_piece#72 ← (byte*) current_piece#13 -- pbuz1=pbuz2 lda current_piece sta current_piece_72 lda current_piece+1 sta current_piece_72+1 - //SEG282 [132] call collision - //SEG283 [102] phi from play_move_leftright::@7 to collision [phi:play_move_leftright::@7->collision] - collision_from_b7: - //SEG284 [102] phi (byte) collision::xpos#5 = (byte) collision::xpos#2 [phi:play_move_leftright::@7->collision#0] -- register_copy - //SEG285 [102] phi (byte) collision::ypos#4 = (byte) collision::ypos#2 [phi:play_move_leftright::@7->collision#1] -- register_copy - //SEG286 [102] phi (byte) collision::orientation#4 = (byte) collision::orientation#2 [phi:play_move_leftright::@7->collision#2] -- register_copy - //SEG287 [102] phi (byte*) current_piece#15 = (byte*~) current_piece#72 [phi:play_move_leftright::@7->collision#3] -- register_copy - jsr collision - //SEG288 [133] (byte) collision::return#12 ← (byte) collision::return#14 - // (byte) collision::return#12 = (byte) collision::return#14 // register copy reg byte a - jmp b15 - //SEG289 play_move_leftright::@15 - b15: - //SEG290 [134] (byte~) play_move_leftright::$4 ← (byte) collision::return#12 - // (byte~) play_move_leftright::$4 = (byte) collision::return#12 // register copy reg byte a - //SEG291 [135] if((byte~) play_move_leftright::$4!=(const byte) COLLISION_NONE#0) goto play_move_leftright::@return -- vbuaa_neq_vbuc1_then_la1 - cmp #COLLISION_NONE - bne breturn_from_b15 - jmp b8 - //SEG292 play_move_leftright::@8 - b8: - //SEG293 [136] (byte) current_xpos#7 ← ++ (byte) current_xpos#19 -- vbuz1=_inc_vbuz1 - inc current_xpos - //SEG294 [137] 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: - //SEG295 [137] phi (byte) current_xpos#23 = (byte) current_xpos#9 [phi:play_move_leftright::@11/play_move_leftright::@8->play_move_leftright::@return#0] -- register_copy - //SEG296 [137] phi (byte) play_move_leftright::return#2 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_move_leftright::@11/play_move_leftright::@8->play_move_leftright::@return#1] -- vbuaa=vbuc1 - lda #1 - jmp breturn - //SEG297 [137] phi from play_move_leftright::@14 play_move_leftright::@15 play_move_leftright::@6 to play_move_leftright::@return [phi:play_move_leftright::@14/play_move_leftright::@15/play_move_leftright::@6->play_move_leftright::@return] - breturn_from_b14: - breturn_from_b15: - breturn_from_b6: - //SEG298 [137] phi (byte) current_xpos#23 = (byte) current_xpos#19 [phi:play_move_leftright::@14/play_move_leftright::@15/play_move_leftright::@6->play_move_leftright::@return#0] -- register_copy - //SEG299 [137] phi (byte) play_move_leftright::return#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_leftright::@14/play_move_leftright::@15/play_move_leftright::@6->play_move_leftright::@return#1] -- vbuaa=vbuc1 - lda #0 - jmp breturn - //SEG300 play_move_leftright::@return - breturn: - //SEG301 [138] return - rts - //SEG302 play_move_leftright::@1 - b1: - //SEG303 [139] (byte) collision::xpos#1 ← (byte) current_xpos#19 - (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_minus_1 - ldx current_xpos - dex - stx collision.xpos - //SEG304 [140] (byte) collision::ypos#1 ← (byte) current_ypos#16 -- vbuyy=vbuz1 - ldy current_ypos - //SEG305 [141] (byte) collision::orientation#1 ← (byte) current_orientation#18 -- vbuxx=vbuz1 - ldx current_orientation - //SEG306 [142] (byte*~) current_piece#71 ← (byte*) current_piece#13 -- pbuz1=pbuz2 - lda current_piece - sta current_piece_71 - lda current_piece+1 - sta current_piece_71+1 - //SEG307 [143] call collision - //SEG308 [102] phi from play_move_leftright::@1 to collision [phi:play_move_leftright::@1->collision] + //SEG310 [144] call collision + //SEG311 [103] phi from play_move_leftright::@1 to collision [phi:play_move_leftright::@1->collision] collision_from_b1: - //SEG309 [102] phi (byte) collision::xpos#5 = (byte) collision::xpos#1 [phi:play_move_leftright::@1->collision#0] -- register_copy - //SEG310 [102] phi (byte) collision::ypos#4 = (byte) collision::ypos#1 [phi:play_move_leftright::@1->collision#1] -- register_copy - //SEG311 [102] phi (byte) collision::orientation#4 = (byte) collision::orientation#1 [phi:play_move_leftright::@1->collision#2] -- register_copy - //SEG312 [102] phi (byte*) current_piece#15 = (byte*~) current_piece#71 [phi:play_move_leftright::@1->collision#3] -- register_copy + //SEG312 [103] phi (byte) collision::xpos#5 = (byte) collision::xpos#1 [phi:play_move_leftright::@1->collision#0] -- register_copy + //SEG313 [103] phi (byte) collision::ypos#4 = (byte) collision::ypos#1 [phi:play_move_leftright::@1->collision#1] -- register_copy + //SEG314 [103] phi (byte) collision::orientation#4 = (byte) collision::orientation#1 [phi:play_move_leftright::@1->collision#2] -- register_copy + //SEG315 [103] phi (byte*) current_piece#15 = (byte*~) current_piece#72 [phi:play_move_leftright::@1->collision#3] -- register_copy jsr collision - //SEG313 [144] (byte) collision::return#1 ← (byte) collision::return#14 + //SEG316 [145] (byte) collision::return#1 ← (byte) collision::return#14 // (byte) collision::return#1 = (byte) collision::return#14 // register copy reg byte a jmp b14 - //SEG314 play_move_leftright::@14 + //SEG317 play_move_leftright::@14 b14: - //SEG315 [145] (byte~) play_move_leftright::$8 ← (byte) collision::return#1 + //SEG318 [146] (byte~) play_move_leftright::$8 ← (byte) collision::return#1 // (byte~) play_move_leftright::$8 = (byte) collision::return#1 // register copy reg byte a - //SEG316 [146] if((byte~) play_move_leftright::$8!=(const byte) COLLISION_NONE#0) goto play_move_leftright::@return -- vbuaa_neq_vbuc1_then_la1 + //SEG319 [147] if((byte~) play_move_leftright::$8!=(const byte) COLLISION_NONE#0) goto play_move_leftright::@return -- vbuaa_neq_vbuc1_then_la1 cmp #COLLISION_NONE bne breturn_from_b14 jmp b11 - //SEG317 play_move_leftright::@11 + //SEG320 play_move_leftright::@11 b11: - //SEG318 [147] (byte) current_xpos#9 ← -- (byte) current_xpos#19 -- vbuz1=_dec_vbuz1 + //SEG321 [148] (byte) current_xpos#9 ← -- (byte) current_xpos#19 -- vbuz1=_dec_vbuz1 dec current_xpos jmp breturn_from_b11 } -//SEG319 play_move_down +//SEG322 play_move_down play_move_down: { - //SEG320 [148] (byte) current_movedown_counter#10 ← ++ (byte) current_movedown_counter#15 -- vbuz1=_inc_vbuz1 + //SEG323 [149] (byte) current_movedown_counter#10 ← ++ (byte) current_movedown_counter#15 -- vbuz1=_inc_vbuz1 inc current_movedown_counter - //SEG321 [149] if((byte) play_move_down::key_event#0!=(const byte) KEY_SPACE#0) goto play_move_down::@1 -- vbuaa_neq_vbuc1_then_la1 + //SEG324 [150] if((byte) play_move_down::key_event#0!=(const byte) KEY_SPACE#0) goto play_move_down::@1 -- vbuaa_neq_vbuc1_then_la1 cmp #KEY_SPACE bne b1_from_play_move_down - //SEG322 [150] phi from play_move_down to play_move_down::@8 [phi:play_move_down->play_move_down::@8] + //SEG325 [151] phi from play_move_down to play_move_down::@8 [phi:play_move_down->play_move_down::@8] b8_from_play_move_down: jmp b8 - //SEG323 play_move_down::@8 + //SEG326 play_move_down::@8 b8: - //SEG324 [151] phi from play_move_down::@8 to play_move_down::@1 [phi:play_move_down::@8->play_move_down::@1] + //SEG327 [152] phi from play_move_down::@8 to play_move_down::@1 [phi:play_move_down::@8->play_move_down::@1] b1_from_b8: - //SEG325 [151] phi (byte) play_move_down::movedown#10 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_move_down::@8->play_move_down::@1#0] -- vbuxx=vbuc1 + //SEG328 [152] phi (byte) play_move_down::movedown#10 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_move_down::@8->play_move_down::@1#0] -- vbuxx=vbuc1 ldx #1 jmp b1 - //SEG326 [151] phi from play_move_down to play_move_down::@1 [phi:play_move_down->play_move_down::@1] + //SEG329 [152] phi from play_move_down to play_move_down::@1 [phi:play_move_down->play_move_down::@1] b1_from_play_move_down: - //SEG327 [151] phi (byte) play_move_down::movedown#10 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_down->play_move_down::@1#0] -- vbuxx=vbuc1 + //SEG330 [152] phi (byte) play_move_down::movedown#10 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_down->play_move_down::@1#0] -- vbuxx=vbuc1 ldx #0 jmp b1 - //SEG328 play_move_down::@1 + //SEG331 play_move_down::@1 b1: - //SEG329 [152] call keyboard_event_pressed - //SEG330 [254] phi from play_move_down::@1 to keyboard_event_pressed [phi:play_move_down::@1->keyboard_event_pressed] + //SEG332 [153] call keyboard_event_pressed + //SEG333 [254] phi from play_move_down::@1 to keyboard_event_pressed [phi:play_move_down::@1->keyboard_event_pressed] keyboard_event_pressed_from_b1: - //SEG331 [254] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_SPACE#0 [phi:play_move_down::@1->keyboard_event_pressed#0] -- vbuz1=vbuc1 + //SEG334 [254] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_SPACE#0 [phi:play_move_down::@1->keyboard_event_pressed#0] -- vbuz1=vbuc1 lda #KEY_SPACE sta keyboard_event_pressed.keycode jsr keyboard_event_pressed - //SEG332 [153] (byte) keyboard_event_pressed::return#12 ← (byte) keyboard_event_pressed::return#11 + //SEG335 [154] (byte) keyboard_event_pressed::return#12 ← (byte) keyboard_event_pressed::return#11 // (byte) keyboard_event_pressed::return#12 = (byte) keyboard_event_pressed::return#11 // register copy reg byte a jmp b17 - //SEG333 play_move_down::@17 + //SEG336 play_move_down::@17 b17: - //SEG334 [154] (byte~) play_move_down::$2 ← (byte) keyboard_event_pressed::return#12 + //SEG337 [155] (byte~) play_move_down::$2 ← (byte) keyboard_event_pressed::return#12 // (byte~) play_move_down::$2 = (byte) keyboard_event_pressed::return#12 // register copy reg byte a - //SEG335 [155] if((byte~) play_move_down::$2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_move_down::@2 -- vbuaa_eq_0_then_la1 + //SEG338 [156] if((byte~) play_move_down::$2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_move_down::@2 -- vbuaa_eq_0_then_la1 cmp #0 beq b2_from_b17 jmp b9 - //SEG336 play_move_down::@9 + //SEG339 play_move_down::@9 b9: - //SEG337 [156] if((byte) current_movedown_counter#10<(const byte) current_movedown_fast#0) goto play_move_down::@2 -- vbuz1_lt_vbuc1_then_la1 + //SEG340 [157] if((byte) current_movedown_counter#10<(const byte) current_movedown_fast#0) goto play_move_down::@2 -- vbuz1_lt_vbuc1_then_la1 lda current_movedown_counter cmp #current_movedown_fast bcc b2_from_b9 jmp b10 - //SEG338 play_move_down::@10 + //SEG341 play_move_down::@10 b10: - //SEG339 [157] (byte) play_move_down::movedown#2 ← ++ (byte) play_move_down::movedown#10 -- vbuxx=_inc_vbuxx + //SEG342 [158] (byte) play_move_down::movedown#2 ← ++ (byte) play_move_down::movedown#10 -- vbuxx=_inc_vbuxx inx - //SEG340 [158] phi from play_move_down::@10 play_move_down::@17 play_move_down::@9 to play_move_down::@2 [phi:play_move_down::@10/play_move_down::@17/play_move_down::@9->play_move_down::@2] + //SEG343 [159] phi from play_move_down::@10 play_move_down::@17 play_move_down::@9 to play_move_down::@2 [phi:play_move_down::@10/play_move_down::@17/play_move_down::@9->play_move_down::@2] b2_from_b10: b2_from_b17: b2_from_b9: - //SEG341 [158] phi (byte) play_move_down::movedown#7 = (byte) play_move_down::movedown#2 [phi:play_move_down::@10/play_move_down::@17/play_move_down::@9->play_move_down::@2#0] -- register_copy + //SEG344 [159] phi (byte) play_move_down::movedown#7 = (byte) play_move_down::movedown#2 [phi:play_move_down::@10/play_move_down::@17/play_move_down::@9->play_move_down::@2#0] -- register_copy jmp b2 - //SEG342 play_move_down::@2 + //SEG345 play_move_down::@2 b2: - //SEG343 [159] if((byte) current_movedown_counter#10<(const byte) current_movedown_slow#0) goto play_move_down::@4 -- vbuz1_lt_vbuc1_then_la1 + //SEG346 [160] if((byte) current_movedown_counter#10<(const byte) current_movedown_slow#0) goto play_move_down::@4 -- vbuz1_lt_vbuc1_then_la1 lda current_movedown_counter cmp #current_movedown_slow bcc b4_from_b2 jmp b11 - //SEG344 play_move_down::@11 + //SEG347 play_move_down::@11 b11: - //SEG345 [160] (byte) play_move_down::movedown#3 ← ++ (byte) play_move_down::movedown#7 -- vbuxx=_inc_vbuxx + //SEG348 [161] (byte) play_move_down::movedown#3 ← ++ (byte) play_move_down::movedown#7 -- vbuxx=_inc_vbuxx inx - //SEG346 [161] phi from play_move_down::@11 play_move_down::@2 to play_move_down::@4 [phi:play_move_down::@11/play_move_down::@2->play_move_down::@4] + //SEG349 [162] phi from play_move_down::@11 play_move_down::@2 to play_move_down::@4 [phi:play_move_down::@11/play_move_down::@2->play_move_down::@4] b4_from_b11: b4_from_b2: - //SEG347 [161] phi (byte) play_move_down::movedown#6 = (byte) play_move_down::movedown#3 [phi:play_move_down::@11/play_move_down::@2->play_move_down::@4#0] -- register_copy + //SEG350 [162] phi (byte) play_move_down::movedown#6 = (byte) play_move_down::movedown#3 [phi:play_move_down::@11/play_move_down::@2->play_move_down::@4#0] -- register_copy jmp b4 - //SEG348 play_move_down::@4 + //SEG351 play_move_down::@4 b4: - //SEG349 [162] if((byte) play_move_down::movedown#6==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_move_down::@return -- vbuxx_eq_0_then_la1 + //SEG352 [163] if((byte) play_move_down::movedown#6==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_move_down::@return -- vbuxx_eq_0_then_la1 cpx #0 beq breturn_from_b4 jmp b12 - //SEG350 play_move_down::@12 + //SEG353 play_move_down::@12 b12: - //SEG351 [163] (byte) collision::ypos#0 ← (byte) current_ypos#12 + (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuyy=vbuz1_plus_1 + //SEG354 [164] (byte) collision::ypos#0 ← (byte) current_ypos#12 + (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuyy=vbuz1_plus_1 ldy current_ypos iny - //SEG352 [164] (byte) collision::xpos#0 ← (byte) current_xpos#16 -- vbuz1=vbuz2 + //SEG355 [165] (byte) collision::xpos#0 ← (byte) current_xpos#16 -- vbuz1=vbuz2 lda current_xpos sta collision.xpos - //SEG353 [165] (byte) collision::orientation#0 ← (byte) current_orientation#15 -- vbuxx=vbuz1 + //SEG356 [166] (byte) collision::orientation#0 ← (byte) current_orientation#15 -- vbuxx=vbuz1 ldx current_orientation - //SEG354 [166] (byte*~) current_piece#70 ← (byte*) current_piece#11 -- pbuz1=pbuz2 + //SEG357 [167] (byte*~) current_piece#71 ← (byte*) current_piece#11 -- pbuz1=pbuz2 lda current_piece - sta current_piece_70 + sta current_piece_71 lda current_piece+1 - sta current_piece_70+1 - //SEG355 [167] call collision - //SEG356 [102] phi from play_move_down::@12 to collision [phi:play_move_down::@12->collision] + sta current_piece_71+1 + //SEG358 [168] call collision + //SEG359 [103] phi from play_move_down::@12 to collision [phi:play_move_down::@12->collision] collision_from_b12: - //SEG357 [102] phi (byte) collision::xpos#5 = (byte) collision::xpos#0 [phi:play_move_down::@12->collision#0] -- register_copy - //SEG358 [102] phi (byte) collision::ypos#4 = (byte) collision::ypos#0 [phi:play_move_down::@12->collision#1] -- register_copy - //SEG359 [102] phi (byte) collision::orientation#4 = (byte) collision::orientation#0 [phi:play_move_down::@12->collision#2] -- register_copy - //SEG360 [102] phi (byte*) current_piece#15 = (byte*~) current_piece#70 [phi:play_move_down::@12->collision#3] -- register_copy + //SEG360 [103] phi (byte) collision::xpos#5 = (byte) collision::xpos#0 [phi:play_move_down::@12->collision#0] -- register_copy + //SEG361 [103] phi (byte) collision::ypos#4 = (byte) collision::ypos#0 [phi:play_move_down::@12->collision#1] -- register_copy + //SEG362 [103] phi (byte) collision::orientation#4 = (byte) collision::orientation#0 [phi:play_move_down::@12->collision#2] -- register_copy + //SEG363 [103] phi (byte*) current_piece#15 = (byte*~) current_piece#71 [phi:play_move_down::@12->collision#3] -- register_copy jsr collision - //SEG361 [168] (byte) collision::return#0 ← (byte) collision::return#14 + //SEG364 [169] (byte) collision::return#0 ← (byte) collision::return#14 // (byte) collision::return#0 = (byte) collision::return#14 // register copy reg byte a jmp b18 - //SEG362 play_move_down::@18 + //SEG365 play_move_down::@18 b18: - //SEG363 [169] (byte~) play_move_down::$12 ← (byte) collision::return#0 + //SEG366 [170] (byte~) play_move_down::$12 ← (byte) collision::return#0 // (byte~) play_move_down::$12 = (byte) collision::return#0 // register copy reg byte a - //SEG364 [170] if((byte~) play_move_down::$12==(const byte) COLLISION_NONE#0) goto play_move_down::@6 -- vbuaa_eq_vbuc1_then_la1 + //SEG367 [171] if((byte~) play_move_down::$12==(const byte) COLLISION_NONE#0) goto play_move_down::@6 -- vbuaa_eq_vbuc1_then_la1 cmp #COLLISION_NONE beq b6 - //SEG365 [171] phi from play_move_down::@18 to play_move_down::@13 [phi:play_move_down::@18->play_move_down::@13] + //SEG368 [172] phi from play_move_down::@18 to play_move_down::@13 [phi:play_move_down::@18->play_move_down::@13] b13_from_b18: jmp b13 - //SEG366 play_move_down::@13 + //SEG369 play_move_down::@13 b13: - //SEG367 [172] call lock_current + //SEG370 [173] call lock_current jsr lock_current - //SEG368 [173] phi from play_move_down::@13 to play_move_down::@19 [phi:play_move_down::@13->play_move_down::@19] + //SEG371 [174] phi from play_move_down::@13 to play_move_down::@19 [phi:play_move_down::@13->play_move_down::@19] b19_from_b13: jmp b19 - //SEG369 play_move_down::@19 + //SEG372 play_move_down::@19 b19: - //SEG370 [174] call remove_lines - //SEG371 [197] phi from play_move_down::@19 to remove_lines [phi:play_move_down::@19->remove_lines] + //SEG373 [175] call remove_lines + //SEG374 [197] phi from play_move_down::@19 to remove_lines [phi:play_move_down::@19->remove_lines] remove_lines_from_b19: jsr remove_lines - //SEG372 [175] phi from play_move_down::@19 to play_move_down::@20 [phi:play_move_down::@19->play_move_down::@20] + //SEG375 [176] phi from play_move_down::@19 to play_move_down::@20 [phi:play_move_down::@19->play_move_down::@20] b20_from_b19: jmp b20 - //SEG373 play_move_down::@20 + //SEG376 play_move_down::@20 b20: - //SEG374 [176] call spawn_current + //SEG377 [177] call spawn_current + //SEG378 [183] phi from play_move_down::@20 to spawn_current [phi:play_move_down::@20->spawn_current] + spawn_current_from_b20: jsr spawn_current - //SEG375 [177] (byte*~) current_piece#74 ← (byte*)*((const word[]) PIECES#0 + (byte~) spawn_current::$3) -- pbuz1=pptc1_derefidx_vbuz2 + //SEG379 [178] (byte*~) current_piece#75 ← (byte*)*((const word[]) PIECES#0 + (byte~) spawn_current::$3) -- pbuz1=pptc1_derefidx_vbuz2 ldy spawn_current._3 lda PIECES,y sta current_piece lda PIECES+1,y sta current_piece+1 - //SEG376 [178] phi from play_move_down::@20 to play_move_down::@7 [phi:play_move_down::@20->play_move_down::@7] + //SEG380 [179] phi from play_move_down::@20 to play_move_down::@7 [phi:play_move_down::@20->play_move_down::@7] b7_from_b20: - //SEG377 [178] phi (byte) current_piece_color#23 = (byte) current_piece_color#15 [phi:play_move_down::@20->play_move_down::@7#0] -- register_copy - //SEG378 [178] phi (byte) current_xpos#36 = (byte/signed byte/word/signed word/dword/signed dword) 3 [phi:play_move_down::@20->play_move_down::@7#1] -- vbuz1=vbuc1 + //SEG381 [179] phi (byte) current_piece_color#23 = (byte) current_piece_color#15 [phi:play_move_down::@20->play_move_down::@7#0] -- register_copy + //SEG382 [179] phi (byte) current_xpos#36 = (byte/signed byte/word/signed word/dword/signed dword) 3 [phi:play_move_down::@20->play_move_down::@7#1] -- vbuz1=vbuc1 lda #3 sta current_xpos - //SEG379 [178] phi (byte*) current_piece_gfx#29 = (byte*) current_piece_gfx#10 [phi:play_move_down::@20->play_move_down::@7#2] -- register_copy - //SEG380 [178] phi (byte) current_orientation#33 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_down::@20->play_move_down::@7#3] -- vbuz1=vbuc1 + //SEG383 [179] phi (byte*) current_piece_gfx#29 = (byte*) current_piece_gfx#10 [phi:play_move_down::@20->play_move_down::@7#2] -- register_copy + //SEG384 [179] phi (byte) current_orientation#33 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_down::@20->play_move_down::@7#3] -- vbuz1=vbuc1 lda #0 sta current_orientation - //SEG381 [178] phi (byte*) current_piece#23 = (byte*~) current_piece#74 [phi:play_move_down::@20->play_move_down::@7#4] -- register_copy - //SEG382 [178] phi (byte) current_ypos#31 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_down::@20->play_move_down::@7#5] -- vbuz1=vbuc1 + //SEG385 [179] phi (byte*) current_piece#23 = (byte*~) current_piece#75 [phi:play_move_down::@20->play_move_down::@7#4] -- register_copy + //SEG386 [179] phi (byte) current_ypos#31 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_down::@20->play_move_down::@7#5] -- vbuz1=vbuc1 lda #0 sta current_ypos jmp b7 - //SEG383 play_move_down::@7 + //SEG387 play_move_down::@7 b7: - //SEG384 [179] phi from play_move_down::@7 to play_move_down::@return [phi:play_move_down::@7->play_move_down::@return] + //SEG388 [180] phi from play_move_down::@7 to play_move_down::@return [phi:play_move_down::@7->play_move_down::@return] breturn_from_b7: - //SEG385 [179] phi (byte) current_piece_color#13 = (byte) current_piece_color#23 [phi:play_move_down::@7->play_move_down::@return#0] -- register_copy - //SEG386 [179] phi (byte) current_xpos#19 = (byte) current_xpos#36 [phi:play_move_down::@7->play_move_down::@return#1] -- register_copy - //SEG387 [179] phi (byte*) current_piece_gfx#17 = (byte*) current_piece_gfx#29 [phi:play_move_down::@7->play_move_down::@return#2] -- register_copy - //SEG388 [179] phi (byte) current_orientation#18 = (byte) current_orientation#33 [phi:play_move_down::@7->play_move_down::@return#3] -- register_copy - //SEG389 [179] phi (byte*) current_piece#13 = (byte*) current_piece#23 [phi:play_move_down::@7->play_move_down::@return#4] -- register_copy - //SEG390 [179] phi (byte) current_ypos#16 = (byte) current_ypos#31 [phi:play_move_down::@7->play_move_down::@return#5] -- register_copy - //SEG391 [179] phi (byte) current_movedown_counter#12 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_down::@7->play_move_down::@return#6] -- vbuz1=vbuc1 + //SEG389 [180] phi (byte) current_piece_color#13 = (byte) current_piece_color#23 [phi:play_move_down::@7->play_move_down::@return#0] -- register_copy + //SEG390 [180] phi (byte) current_xpos#19 = (byte) current_xpos#36 [phi:play_move_down::@7->play_move_down::@return#1] -- register_copy + //SEG391 [180] phi (byte*) current_piece_gfx#17 = (byte*) current_piece_gfx#29 [phi:play_move_down::@7->play_move_down::@return#2] -- register_copy + //SEG392 [180] phi (byte) current_orientation#18 = (byte) current_orientation#33 [phi:play_move_down::@7->play_move_down::@return#3] -- register_copy + //SEG393 [180] phi (byte*) current_piece#13 = (byte*) current_piece#23 [phi:play_move_down::@7->play_move_down::@return#4] -- register_copy + //SEG394 [180] phi (byte) current_ypos#16 = (byte) current_ypos#31 [phi:play_move_down::@7->play_move_down::@return#5] -- register_copy + //SEG395 [180] phi (byte) current_movedown_counter#12 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_down::@7->play_move_down::@return#6] -- vbuz1=vbuc1 lda #0 sta current_movedown_counter - //SEG392 [179] phi (byte) play_move_down::return#3 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_move_down::@7->play_move_down::@return#7] -- vbuxx=vbuc1 + //SEG396 [180] phi (byte) play_move_down::return#3 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_move_down::@7->play_move_down::@return#7] -- vbuxx=vbuc1 ldx #1 jmp breturn - //SEG393 [179] phi from play_move_down::@4 to play_move_down::@return [phi:play_move_down::@4->play_move_down::@return] + //SEG397 [180] phi from play_move_down::@4 to play_move_down::@return [phi:play_move_down::@4->play_move_down::@return] breturn_from_b4: - //SEG394 [179] phi (byte) current_piece_color#13 = (byte) current_piece_color#11 [phi:play_move_down::@4->play_move_down::@return#0] -- register_copy - //SEG395 [179] phi (byte) current_xpos#19 = (byte) current_xpos#16 [phi:play_move_down::@4->play_move_down::@return#1] -- register_copy - //SEG396 [179] phi (byte*) current_piece_gfx#17 = (byte*) current_piece_gfx#15 [phi:play_move_down::@4->play_move_down::@return#2] -- register_copy - //SEG397 [179] phi (byte) current_orientation#18 = (byte) current_orientation#15 [phi:play_move_down::@4->play_move_down::@return#3] -- register_copy - //SEG398 [179] phi (byte*) current_piece#13 = (byte*) current_piece#11 [phi:play_move_down::@4->play_move_down::@return#4] -- register_copy - //SEG399 [179] phi (byte) current_ypos#16 = (byte) current_ypos#12 [phi:play_move_down::@4->play_move_down::@return#5] -- register_copy - //SEG400 [179] phi (byte) current_movedown_counter#12 = (byte) current_movedown_counter#10 [phi:play_move_down::@4->play_move_down::@return#6] -- register_copy - //SEG401 [179] phi (byte) play_move_down::return#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_down::@4->play_move_down::@return#7] -- vbuxx=vbuc1 + //SEG398 [180] phi (byte) current_piece_color#13 = (byte) current_piece_color#11 [phi:play_move_down::@4->play_move_down::@return#0] -- register_copy + //SEG399 [180] phi (byte) current_xpos#19 = (byte) current_xpos#16 [phi:play_move_down::@4->play_move_down::@return#1] -- register_copy + //SEG400 [180] phi (byte*) current_piece_gfx#17 = (byte*) current_piece_gfx#15 [phi:play_move_down::@4->play_move_down::@return#2] -- register_copy + //SEG401 [180] phi (byte) current_orientation#18 = (byte) current_orientation#15 [phi:play_move_down::@4->play_move_down::@return#3] -- register_copy + //SEG402 [180] phi (byte*) current_piece#13 = (byte*) current_piece#11 [phi:play_move_down::@4->play_move_down::@return#4] -- register_copy + //SEG403 [180] phi (byte) current_ypos#16 = (byte) current_ypos#12 [phi:play_move_down::@4->play_move_down::@return#5] -- register_copy + //SEG404 [180] phi (byte) current_movedown_counter#12 = (byte) current_movedown_counter#10 [phi:play_move_down::@4->play_move_down::@return#6] -- register_copy + //SEG405 [180] phi (byte) play_move_down::return#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_down::@4->play_move_down::@return#7] -- vbuxx=vbuc1 ldx #0 jmp breturn - //SEG402 play_move_down::@return + //SEG406 play_move_down::@return breturn: - //SEG403 [180] return + //SEG407 [181] return rts - //SEG404 play_move_down::@6 + //SEG408 play_move_down::@6 b6: - //SEG405 [181] (byte) current_ypos#4 ← ++ (byte) current_ypos#12 -- vbuz1=_inc_vbuz1 + //SEG409 [182] (byte) current_ypos#4 ← ++ (byte) current_ypos#12 -- vbuz1=_inc_vbuz1 inc current_ypos - //SEG406 [178] phi from play_move_down::@6 to play_move_down::@7 [phi:play_move_down::@6->play_move_down::@7] + //SEG410 [179] phi from play_move_down::@6 to play_move_down::@7 [phi:play_move_down::@6->play_move_down::@7] b7_from_b6: - //SEG407 [178] phi (byte) current_piece_color#23 = (byte) current_piece_color#11 [phi:play_move_down::@6->play_move_down::@7#0] -- register_copy - //SEG408 [178] phi (byte) current_xpos#36 = (byte) current_xpos#16 [phi:play_move_down::@6->play_move_down::@7#1] -- register_copy - //SEG409 [178] phi (byte*) current_piece_gfx#29 = (byte*) current_piece_gfx#15 [phi:play_move_down::@6->play_move_down::@7#2] -- register_copy - //SEG410 [178] phi (byte) current_orientation#33 = (byte) current_orientation#15 [phi:play_move_down::@6->play_move_down::@7#3] -- register_copy - //SEG411 [178] phi (byte*) current_piece#23 = (byte*) current_piece#11 [phi:play_move_down::@6->play_move_down::@7#4] -- register_copy - //SEG412 [178] phi (byte) current_ypos#31 = (byte) current_ypos#4 [phi:play_move_down::@6->play_move_down::@7#5] -- register_copy + //SEG411 [179] phi (byte) current_piece_color#23 = (byte) current_piece_color#11 [phi:play_move_down::@6->play_move_down::@7#0] -- register_copy + //SEG412 [179] phi (byte) current_xpos#36 = (byte) current_xpos#16 [phi:play_move_down::@6->play_move_down::@7#1] -- register_copy + //SEG413 [179] phi (byte*) current_piece_gfx#29 = (byte*) current_piece_gfx#15 [phi:play_move_down::@6->play_move_down::@7#2] -- register_copy + //SEG414 [179] phi (byte) current_orientation#33 = (byte) current_orientation#15 [phi:play_move_down::@6->play_move_down::@7#3] -- register_copy + //SEG415 [179] phi (byte*) current_piece#23 = (byte*) current_piece#11 [phi:play_move_down::@6->play_move_down::@7#4] -- register_copy + //SEG416 [179] phi (byte) current_ypos#31 = (byte) current_ypos#4 [phi:play_move_down::@6->play_move_down::@7#5] -- register_copy jmp b7 } -//SEG413 spawn_current +//SEG417 spawn_current spawn_current: { .label _3 = 2 - //SEG414 [182] *((const byte*) BORDERCOL#0) ← ++ *((const byte*) BORDERCOL#0) -- _deref_pbuc1=_inc__deref_pbuc1 - inc BORDERCOL - //SEG415 [183] phi from spawn_current to spawn_current::@1 [phi:spawn_current->spawn_current::@1] + //SEG418 [184] phi from spawn_current to spawn_current::@1 [phi:spawn_current->spawn_current::@1] b1_from_spawn_current: - //SEG416 [183] phi (byte) spawn_current::piece_idx#2 = (byte/signed byte/word/signed word/dword/signed dword) 7 [phi:spawn_current->spawn_current::@1#0] -- vbuxx=vbuc1 + //SEG419 [184] phi (byte) spawn_current::piece_idx#2 = (byte/signed byte/word/signed word/dword/signed dword) 7 [phi:spawn_current->spawn_current::@1#0] -- vbuxx=vbuc1 ldx #7 jmp b1 - //SEG417 spawn_current::@1 + //SEG420 spawn_current::@1 b1: - //SEG418 [184] if((byte) spawn_current::piece_idx#2==(byte/signed byte/word/signed word/dword/signed dword) 7) goto spawn_current::@2 -- vbuxx_eq_vbuc1_then_la1 + //SEG421 [185] if((byte) spawn_current::piece_idx#2==(byte/signed byte/word/signed word/dword/signed dword) 7) goto spawn_current::@2 -- vbuxx_eq_vbuc1_then_la1 cpx #7 beq b2_from_b1 jmp b3 - //SEG419 spawn_current::@3 + //SEG422 spawn_current::@3 b3: - //SEG420 [185] *((const byte*) BORDERCOL#0) ← -- *((const byte*) BORDERCOL#0) -- _deref_pbuc1=_dec__deref_pbuc1 - dec BORDERCOL - //SEG421 [186] (byte~) spawn_current::$3 ← (byte) spawn_current::piece_idx#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuxx_rol_1 + //SEG423 [186] (byte~) spawn_current::$3 ← (byte) spawn_current::piece_idx#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuxx_rol_1 txa asl sta _3 - //SEG422 [187] (byte*) current_piece_gfx#10 ← (byte*)*((const word[]) PIECES#0 + (byte~) spawn_current::$3) + (byte/signed byte/word/signed word/dword/signed dword) 0 -- pbuz1=pptc1_derefidx_vbuz2_plus_0 + //SEG424 [187] (byte*) current_piece_gfx#10 ← (byte*)*((const word[]) PIECES#0 + (byte~) spawn_current::$3) + (byte/signed byte/word/signed word/dword/signed dword) 0 -- pbuz1=pptc1_derefidx_vbuz2_plus_0 ldy _3 lda PIECES,y sta current_piece_gfx lda PIECES+1,y sta current_piece_gfx+1 - //SEG423 [188] (byte) current_piece_color#15 ← *((const byte[]) PIECES_COLORS#0 + (byte) spawn_current::piece_idx#2) -- vbuz1=pbuc1_derefidx_vbuxx + //SEG425 [188] (byte) current_piece_color#15 ← *((const byte[]) PIECES_COLORS#0 + (byte) spawn_current::piece_idx#2) -- vbuz1=pbuc1_derefidx_vbuxx lda PIECES_COLORS,x sta current_piece_color jmp breturn - //SEG424 spawn_current::@return + //SEG426 spawn_current::@return breturn: - //SEG425 [189] return + //SEG427 [189] return rts - //SEG426 [190] phi from spawn_current::@1 to spawn_current::@2 [phi:spawn_current::@1->spawn_current::@2] + //SEG428 [190] phi from spawn_current::@1 to spawn_current::@2 [phi:spawn_current::@1->spawn_current::@2] b2_from_b1: jmp b2 - //SEG427 spawn_current::@2 + //SEG429 spawn_current::@2 b2: - //SEG428 [191] call sid_rnd + //SEG430 [191] call sid_rnd jsr sid_rnd - //SEG429 [192] (byte) sid_rnd::return#2 ← (byte) sid_rnd::return#0 + //SEG431 [192] (byte) sid_rnd::return#2 ← (byte) sid_rnd::return#0 // (byte) sid_rnd::return#2 = (byte) sid_rnd::return#0 // register copy reg byte a jmp b7 - //SEG430 spawn_current::@7 + //SEG432 spawn_current::@7 b7: - //SEG431 [193] (byte~) spawn_current::$1 ← (byte) sid_rnd::return#2 + //SEG433 [193] (byte~) spawn_current::$1 ← (byte) sid_rnd::return#2 // (byte~) spawn_current::$1 = (byte) sid_rnd::return#2 // register copy reg byte a - //SEG432 [194] (byte) spawn_current::piece_idx#1 ← (byte~) spawn_current::$1 & (byte/signed byte/word/signed word/dword/signed dword) 7 -- vbuxx=vbuaa_band_vbuc1 + //SEG434 [194] (byte) spawn_current::piece_idx#1 ← (byte~) spawn_current::$1 & (byte/signed byte/word/signed word/dword/signed dword) 7 -- vbuxx=vbuaa_band_vbuc1 and #7 tax - //SEG433 [183] phi from spawn_current::@7 to spawn_current::@1 [phi:spawn_current::@7->spawn_current::@1] + //SEG435 [184] phi from spawn_current::@7 to spawn_current::@1 [phi:spawn_current::@7->spawn_current::@1] b1_from_b7: - //SEG434 [183] phi (byte) spawn_current::piece_idx#2 = (byte) spawn_current::piece_idx#1 [phi:spawn_current::@7->spawn_current::@1#0] -- register_copy + //SEG436 [184] phi (byte) spawn_current::piece_idx#2 = (byte) spawn_current::piece_idx#1 [phi:spawn_current::@7->spawn_current::@1#0] -- register_copy jmp b1 } -//SEG435 sid_rnd +//SEG437 sid_rnd sid_rnd: { - //SEG436 [195] (byte) sid_rnd::return#0 ← *((const byte*) SID_VOICE3_OSC#0) -- vbuaa=_deref_pbuc1 + //SEG438 [195] (byte) sid_rnd::return#0 ← *((const byte*) SID_VOICE3_OSC#0) -- vbuaa=_deref_pbuc1 lda SID_VOICE3_OSC jmp breturn - //SEG437 sid_rnd::@return + //SEG439 sid_rnd::@return breturn: - //SEG438 [196] return + //SEG440 [196] return rts } -//SEG439 remove_lines +//SEG441 remove_lines remove_lines: { .label done = 2 - //SEG440 [198] phi from remove_lines to remove_lines::@1 [phi:remove_lines->remove_lines::@1] + //SEG442 [198] phi from remove_lines to remove_lines::@1 [phi:remove_lines->remove_lines::@1] b1_from_remove_lines: - //SEG441 [198] phi (byte) remove_lines::done#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:remove_lines->remove_lines::@1#0] -- vbuz1=vbuc1 + //SEG443 [198] phi (byte) remove_lines::done#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:remove_lines->remove_lines::@1#0] -- vbuz1=vbuc1 lda #0 sta done jmp b1 - //SEG442 [198] phi from remove_lines::@3 to remove_lines::@1 [phi:remove_lines::@3->remove_lines::@1] + //SEG444 [198] phi from remove_lines::@3 to remove_lines::@1 [phi:remove_lines::@3->remove_lines::@1] b1_from_b3: - //SEG443 [198] phi (byte) remove_lines::done#3 = (byte) remove_lines::done#2 [phi:remove_lines::@3->remove_lines::@1#0] -- register_copy + //SEG445 [198] phi (byte) remove_lines::done#3 = (byte) remove_lines::done#2 [phi:remove_lines::@3->remove_lines::@1#0] -- register_copy jmp b1 - //SEG444 remove_lines::@1 + //SEG446 remove_lines::@1 b1: - //SEG445 [199] call find_line - //SEG446 [221] phi from remove_lines::@1 to find_line [phi:remove_lines::@1->find_line] + //SEG447 [199] call find_line + //SEG448 [221] phi from remove_lines::@1 to find_line [phi:remove_lines::@1->find_line] find_line_from_b1: jsr find_line - //SEG447 [200] (byte) find_line::return#0 ← (byte) find_line::return#2 -- vbuaa=vbuz1 + //SEG449 [200] (byte) find_line::return#0 ← (byte) find_line::return#2 -- vbuaa=vbuz1 lda find_line.return jmp b7 - //SEG448 remove_lines::@7 + //SEG450 remove_lines::@7 b7: - //SEG449 [201] (byte) remove_lines::line_ypos#0 ← (byte) find_line::return#0 + //SEG451 [201] (byte) remove_lines::line_ypos#0 ← (byte) find_line::return#0 // (byte) remove_lines::line_ypos#0 = (byte) find_line::return#0 // register copy reg byte a - //SEG450 [202] if((byte) remove_lines::line_ypos#0!=(byte/word/signed word/dword/signed dword) 255) goto remove_lines::@2 -- vbuaa_neq_vbuc1_then_la1 + //SEG452 [202] if((byte) remove_lines::line_ypos#0!=(byte/word/signed word/dword/signed dword) 255) goto remove_lines::@2 -- vbuaa_neq_vbuc1_then_la1 cmp #$ff bne b2 - //SEG451 [203] phi from remove_lines::@7 to remove_lines::@3 [phi:remove_lines::@7->remove_lines::@3] + //SEG453 [203] phi from remove_lines::@7 to remove_lines::@3 [phi:remove_lines::@7->remove_lines::@3] b3_from_b7: - //SEG452 [203] phi (byte) remove_lines::done#2 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:remove_lines::@7->remove_lines::@3#0] -- vbuz1=vbuc1 + //SEG454 [203] phi (byte) remove_lines::done#2 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:remove_lines::@7->remove_lines::@3#0] -- vbuz1=vbuc1 lda #1 sta done jmp b3 - //SEG453 remove_lines::@3 + //SEG455 remove_lines::@3 b3: - //SEG454 [204] if((byte) remove_lines::done#2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto remove_lines::@1 -- vbuz1_eq_0_then_la1 + //SEG456 [204] if((byte) remove_lines::done#2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto remove_lines::@1 -- vbuz1_eq_0_then_la1 lda done cmp #0 beq b1_from_b3 jmp breturn - //SEG455 remove_lines::@return + //SEG457 remove_lines::@return breturn: - //SEG456 [205] return + //SEG458 [205] return rts - //SEG457 remove_lines::@2 + //SEG459 remove_lines::@2 b2: - //SEG458 [206] (byte) remove_line::ypos#0 ← (byte) remove_lines::line_ypos#0 -- vbuz1=vbuaa + //SEG460 [206] (byte) remove_line::ypos#0 ← (byte) remove_lines::line_ypos#0 -- vbuz1=vbuaa sta remove_line.ypos - //SEG459 [207] call remove_line + //SEG461 [207] call remove_line jsr remove_line - //SEG460 [203] phi from remove_lines::@2 to remove_lines::@3 [phi:remove_lines::@2->remove_lines::@3] + //SEG462 [203] phi from remove_lines::@2 to remove_lines::@3 [phi:remove_lines::@2->remove_lines::@3] b3_from_b2: - //SEG461 [203] phi (byte) remove_lines::done#2 = (byte) remove_lines::done#3 [phi:remove_lines::@2->remove_lines::@3#0] -- register_copy + //SEG463 [203] phi (byte) remove_lines::done#2 = (byte) remove_lines::done#3 [phi:remove_lines::@2->remove_lines::@3#0] -- register_copy jmp b3 } -//SEG462 remove_line +//SEG464 remove_line remove_line: { .label ypos = 3 .label x = 4 .label y = 3 - //SEG463 [208] (byte~) remove_line::$0 ← (byte) remove_line::ypos#0 -- vbuaa=vbuz1 + //SEG465 [208] (byte~) remove_line::$0 ← (byte) remove_line::ypos#0 -- vbuaa=vbuz1 lda ypos - //SEG464 [209] (byte) remove_line::i2#0 ← *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte~) remove_line::$0) - (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuyy=pbuc1_derefidx_vbuaa_minus_1 + //SEG466 [209] (byte) remove_line::i2#0 ← *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte~) remove_line::$0) - (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuyy=pbuc1_derefidx_vbuaa_minus_1 tay lda playfield_lines_idx+1,y tay dey - //SEG465 [210] (byte) remove_line::i1#0 ← *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0 + (byte) remove_line::ypos#0) - (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuxx=pbuc1_derefidx_vbuz1_minus_1 + //SEG467 [210] (byte) remove_line::i1#0 ← *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0 + (byte) remove_line::ypos#0) - (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuxx=pbuc1_derefidx_vbuz1_minus_1 ldx ypos lda playfield_lines_idx,x tax dex - //SEG466 [211] phi from remove_line remove_line::@3 to remove_line::@1 [phi:remove_line/remove_line::@3->remove_line::@1] + //SEG468 [211] phi from remove_line remove_line::@3 to remove_line::@1 [phi:remove_line/remove_line::@3->remove_line::@1] b1_from_remove_line: b1_from_b3: - //SEG467 [211] phi (byte) remove_line::y#4 = (byte) remove_line::ypos#0 [phi:remove_line/remove_line::@3->remove_line::@1#0] -- register_copy - //SEG468 [211] phi (byte) remove_line::i2#3 = (byte) remove_line::i2#0 [phi:remove_line/remove_line::@3->remove_line::@1#1] -- register_copy - //SEG469 [211] phi (byte) remove_line::i1#3 = (byte) remove_line::i1#0 [phi:remove_line/remove_line::@3->remove_line::@1#2] -- register_copy + //SEG469 [211] phi (byte) remove_line::y#4 = (byte) remove_line::ypos#0 [phi:remove_line/remove_line::@3->remove_line::@1#0] -- register_copy + //SEG470 [211] phi (byte) remove_line::i2#3 = (byte) remove_line::i2#0 [phi:remove_line/remove_line::@3->remove_line::@1#1] -- register_copy + //SEG471 [211] phi (byte) remove_line::i1#3 = (byte) remove_line::i1#0 [phi:remove_line/remove_line::@3->remove_line::@1#2] -- register_copy jmp b1 - //SEG470 remove_line::@1 + //SEG472 remove_line::@1 b1: - //SEG471 [212] phi from remove_line::@1 to remove_line::@2 [phi:remove_line::@1->remove_line::@2] + //SEG473 [212] phi from remove_line::@1 to remove_line::@2 [phi:remove_line::@1->remove_line::@2] b2_from_b1: - //SEG472 [212] phi (byte) remove_line::x#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:remove_line::@1->remove_line::@2#0] -- vbuz1=vbuc1 + //SEG474 [212] phi (byte) remove_line::x#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:remove_line::@1->remove_line::@2#0] -- vbuz1=vbuc1 lda #0 sta x - //SEG473 [212] phi (byte) remove_line::i2#2 = (byte) remove_line::i2#3 [phi:remove_line::@1->remove_line::@2#1] -- register_copy - //SEG474 [212] phi (byte) remove_line::i1#2 = (byte) remove_line::i1#3 [phi:remove_line::@1->remove_line::@2#2] -- register_copy + //SEG475 [212] phi (byte) remove_line::i2#2 = (byte) remove_line::i2#3 [phi:remove_line::@1->remove_line::@2#1] -- register_copy + //SEG476 [212] phi (byte) remove_line::i1#2 = (byte) remove_line::i1#3 [phi:remove_line::@1->remove_line::@2#2] -- register_copy jmp b2 - //SEG475 [212] phi from remove_line::@2 to remove_line::@2 [phi:remove_line::@2->remove_line::@2] + //SEG477 [212] phi from remove_line::@2 to remove_line::@2 [phi:remove_line::@2->remove_line::@2] b2_from_b2: - //SEG476 [212] phi (byte) remove_line::x#2 = (byte) remove_line::x#1 [phi:remove_line::@2->remove_line::@2#0] -- register_copy - //SEG477 [212] phi (byte) remove_line::i2#2 = (byte) remove_line::i2#1 [phi:remove_line::@2->remove_line::@2#1] -- register_copy - //SEG478 [212] phi (byte) remove_line::i1#2 = (byte) remove_line::i1#1 [phi:remove_line::@2->remove_line::@2#2] -- register_copy + //SEG478 [212] phi (byte) remove_line::x#2 = (byte) remove_line::x#1 [phi:remove_line::@2->remove_line::@2#0] -- register_copy + //SEG479 [212] phi (byte) remove_line::i2#2 = (byte) remove_line::i2#1 [phi:remove_line::@2->remove_line::@2#1] -- register_copy + //SEG480 [212] phi (byte) remove_line::i1#2 = (byte) remove_line::i1#1 [phi:remove_line::@2->remove_line::@2#2] -- register_copy jmp b2 - //SEG479 remove_line::@2 + //SEG481 remove_line::@2 b2: - //SEG480 [213] *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) remove_line::i2#2) ← *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) remove_line::i1#2) -- pbuc1_derefidx_vbuyy=pbuc1_derefidx_vbuxx + //SEG482 [213] *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) remove_line::i2#2) ← *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) remove_line::i1#2) -- pbuc1_derefidx_vbuyy=pbuc1_derefidx_vbuxx lda playfield,x sta playfield,y - //SEG481 [214] (byte) remove_line::i2#1 ← -- (byte) remove_line::i2#2 -- vbuyy=_dec_vbuyy + //SEG483 [214] (byte) remove_line::i2#1 ← -- (byte) remove_line::i2#2 -- vbuyy=_dec_vbuyy dey - //SEG482 [215] (byte) remove_line::i1#1 ← -- (byte) remove_line::i1#2 -- vbuxx=_dec_vbuxx + //SEG484 [215] (byte) remove_line::i1#1 ← -- (byte) remove_line::i1#2 -- vbuxx=_dec_vbuxx dex - //SEG483 [216] (byte) remove_line::x#1 ← ++ (byte) remove_line::x#2 -- vbuz1=_inc_vbuz1 + //SEG485 [216] (byte) remove_line::x#1 ← ++ (byte) remove_line::x#2 -- vbuz1=_inc_vbuz1 inc x - //SEG484 [217] if((byte) remove_line::x#1!=(const byte) PLAYFIELD_COLS#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto remove_line::@2 -- vbuz1_neq_vbuc1_then_la1 + //SEG486 [217] if((byte) remove_line::x#1!=(const byte) PLAYFIELD_COLS#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto remove_line::@2 -- vbuz1_neq_vbuc1_then_la1 lda x cmp #PLAYFIELD_COLS-1+1 bne b2_from_b2 jmp b3 - //SEG485 remove_line::@3 + //SEG487 remove_line::@3 b3: - //SEG486 [218] (byte) remove_line::y#1 ← -- (byte) remove_line::y#4 -- vbuz1=_dec_vbuz1 + //SEG488 [218] (byte) remove_line::y#1 ← -- (byte) remove_line::y#4 -- vbuz1=_dec_vbuz1 dec y - //SEG487 [219] if((byte) remove_line::y#1!=(byte/signed byte/word/signed word/dword/signed dword) 1) goto remove_line::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG489 [219] if((byte) remove_line::y#1!=(byte/signed byte/word/signed word/dword/signed dword) 1) goto remove_line::@1 -- vbuz1_neq_vbuc1_then_la1 lda y cmp #1 bne b1_from_b3 jmp breturn - //SEG488 remove_line::@return + //SEG490 remove_line::@return breturn: - //SEG489 [220] return + //SEG491 [220] return rts } -//SEG490 find_line +//SEG492 find_line find_line: { .label i = 8 .label y = 7 @@ -10651,111 +10711,111 @@ find_line: { .label i_3 = 3 .label i_8 = 3 .label i_10 = 3 - //SEG491 [222] phi from find_line to find_line::@1 [phi:find_line->find_line::@1] + //SEG493 [222] phi from find_line to find_line::@1 [phi:find_line->find_line::@1] b1_from_find_line: - //SEG492 [222] phi (byte) find_line::y#8 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:find_line->find_line::@1#0] -- vbuz1=vbuc1 + //SEG494 [222] phi (byte) find_line::y#8 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:find_line->find_line::@1#0] -- vbuz1=vbuc1 lda #0 sta y - //SEG493 [222] phi (byte) find_line::i#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:find_line->find_line::@1#1] -- vbuz1=vbuc1 + //SEG495 [222] phi (byte) find_line::i#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:find_line->find_line::@1#1] -- vbuz1=vbuc1 lda #0 sta i_3 jmp b1 - //SEG494 find_line::@1 + //SEG496 find_line::@1 b1: - //SEG495 [223] phi from find_line::@1 to find_line::@2 [phi:find_line::@1->find_line::@2] + //SEG497 [223] phi from find_line::@1 to find_line::@2 [phi:find_line::@1->find_line::@2] b2_from_b1: - //SEG496 [223] phi (byte) find_line::filled#4 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:find_line::@1->find_line::@2#0] -- vbuz1=vbuc1 + //SEG498 [223] phi (byte) find_line::filled#4 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:find_line::@1->find_line::@2#0] -- vbuz1=vbuc1 lda #1 sta filled - //SEG497 [223] phi (byte) find_line::x#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:find_line::@1->find_line::@2#1] -- vbuxx=vbuc1 + //SEG499 [223] phi (byte) find_line::x#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:find_line::@1->find_line::@2#1] -- vbuxx=vbuc1 ldx #0 - //SEG498 [223] phi (byte) find_line::i#2 = (byte) find_line::i#3 [phi:find_line::@1->find_line::@2#2] -- register_copy + //SEG500 [223] phi (byte) find_line::i#2 = (byte) find_line::i#3 [phi:find_line::@1->find_line::@2#2] -- register_copy jmp b2 - //SEG499 find_line::@2 + //SEG501 find_line::@2 b2: - //SEG500 [224] (byte) find_line::i#1 ← ++ (byte) find_line::i#2 -- vbuz1=_inc_vbuz2 + //SEG502 [224] (byte) find_line::i#1 ← ++ (byte) find_line::i#2 -- vbuz1=_inc_vbuz2 ldy i_2 iny sty i - //SEG501 [225] if(*((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) find_line::i#2)!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto find_line::@13 -- pbuc1_derefidx_vbuz1_neq_0_then_la1 + //SEG503 [225] if(*((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) find_line::i#2)!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto find_line::@13 -- pbuc1_derefidx_vbuz1_neq_0_then_la1 ldy i_2 lda playfield,y cmp #0 bne b13_from_b2 - //SEG502 [226] phi from find_line::@2 to find_line::@3 [phi:find_line::@2->find_line::@3] + //SEG504 [226] phi from find_line::@2 to find_line::@3 [phi:find_line::@2->find_line::@3] b3_from_b2: - //SEG503 [226] phi (byte) find_line::filled#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:find_line::@2->find_line::@3#0] -- vbuz1=vbuc1 + //SEG505 [226] phi (byte) find_line::filled#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:find_line::@2->find_line::@3#0] -- vbuz1=vbuc1 lda #0 sta filled jmp b3 - //SEG504 find_line::@3 + //SEG506 find_line::@3 b3: - //SEG505 [227] (byte) find_line::x#1 ← ++ (byte) find_line::x#2 -- vbuxx=_inc_vbuxx + //SEG507 [227] (byte) find_line::x#1 ← ++ (byte) find_line::x#2 -- vbuxx=_inc_vbuxx inx - //SEG506 [228] if((byte) find_line::x#1!=(const byte) PLAYFIELD_COLS#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto find_line::@12 -- vbuxx_neq_vbuc1_then_la1 + //SEG508 [228] if((byte) find_line::x#1!=(const byte) PLAYFIELD_COLS#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto find_line::@12 -- vbuxx_neq_vbuc1_then_la1 cpx #PLAYFIELD_COLS-1+1 bne b12 jmp b6 - //SEG507 find_line::@6 + //SEG509 find_line::@6 b6: - //SEG508 [229] if((byte) find_line::filled#2!=(byte/signed byte/word/signed word/dword/signed dword) 1) goto find_line::@4 -- vbuz1_neq_vbuc1_then_la1 + //SEG510 [229] if((byte) find_line::filled#2!=(byte/signed byte/word/signed word/dword/signed dword) 1) goto find_line::@4 -- vbuz1_neq_vbuc1_then_la1 lda filled cmp #1 bne b4 - //SEG509 [230] phi from find_line::@6 to find_line::@return [phi:find_line::@6->find_line::@return] + //SEG511 [230] phi from find_line::@6 to find_line::@return [phi:find_line::@6->find_line::@return] breturn_from_b6: - //SEG510 [230] phi (byte) find_line::return#2 = (byte) find_line::y#8 [phi:find_line::@6->find_line::@return#0] -- register_copy + //SEG512 [230] phi (byte) find_line::return#2 = (byte) find_line::y#8 [phi:find_line::@6->find_line::@return#0] -- register_copy jmp breturn - //SEG511 find_line::@return + //SEG513 find_line::@return breturn: - //SEG512 [231] return + //SEG514 [231] return rts - //SEG513 find_line::@4 + //SEG515 find_line::@4 b4: - //SEG514 [232] (byte) find_line::y#1 ← ++ (byte) find_line::y#8 -- vbuz1=_inc_vbuz1 + //SEG516 [232] (byte) find_line::y#1 ← ++ (byte) find_line::y#8 -- vbuz1=_inc_vbuz1 inc y - //SEG515 [233] if((byte) find_line::y#1!=(const byte) PLAYFIELD_LINES#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto find_line::@11 -- vbuz1_neq_vbuc1_then_la1 + //SEG517 [233] if((byte) find_line::y#1!=(const byte) PLAYFIELD_LINES#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto find_line::@11 -- vbuz1_neq_vbuc1_then_la1 lda y cmp #PLAYFIELD_LINES-1+1 bne b11 - //SEG516 [230] phi from find_line::@4 to find_line::@return [phi:find_line::@4->find_line::@return] + //SEG518 [230] phi from find_line::@4 to find_line::@return [phi:find_line::@4->find_line::@return] breturn_from_b4: - //SEG517 [230] phi (byte) find_line::return#2 = (byte/word/signed word/dword/signed dword) 255 [phi:find_line::@4->find_line::@return#0] -- vbuz1=vbuc1 + //SEG519 [230] phi (byte) find_line::return#2 = (byte/word/signed word/dword/signed dword) 255 [phi:find_line::@4->find_line::@return#0] -- vbuz1=vbuc1 lda #$ff sta return jmp breturn - //SEG518 find_line::@11 + //SEG520 find_line::@11 b11: - //SEG519 [234] (byte~) find_line::i#8 ← (byte) find_line::i#1 -- vbuz1=vbuz2 + //SEG521 [234] (byte~) find_line::i#8 ← (byte) find_line::i#1 -- vbuz1=vbuz2 lda i sta i_8 - //SEG520 [222] phi from find_line::@11 to find_line::@1 [phi:find_line::@11->find_line::@1] + //SEG522 [222] phi from find_line::@11 to find_line::@1 [phi:find_line::@11->find_line::@1] b1_from_b11: - //SEG521 [222] phi (byte) find_line::y#8 = (byte) find_line::y#1 [phi:find_line::@11->find_line::@1#0] -- register_copy - //SEG522 [222] phi (byte) find_line::i#3 = (byte~) find_line::i#8 [phi:find_line::@11->find_line::@1#1] -- register_copy + //SEG523 [222] phi (byte) find_line::y#8 = (byte) find_line::y#1 [phi:find_line::@11->find_line::@1#0] -- register_copy + //SEG524 [222] phi (byte) find_line::i#3 = (byte~) find_line::i#8 [phi:find_line::@11->find_line::@1#1] -- register_copy jmp b1 - //SEG523 find_line::@12 + //SEG525 find_line::@12 b12: - //SEG524 [235] (byte~) find_line::i#10 ← (byte) find_line::i#1 -- vbuz1=vbuz2 + //SEG526 [235] (byte~) find_line::i#10 ← (byte) find_line::i#1 -- vbuz1=vbuz2 lda i sta i_10 - //SEG525 [223] phi from find_line::@12 to find_line::@2 [phi:find_line::@12->find_line::@2] + //SEG527 [223] phi from find_line::@12 to find_line::@2 [phi:find_line::@12->find_line::@2] b2_from_b12: - //SEG526 [223] phi (byte) find_line::filled#4 = (byte) find_line::filled#2 [phi:find_line::@12->find_line::@2#0] -- register_copy - //SEG527 [223] phi (byte) find_line::x#2 = (byte) find_line::x#1 [phi:find_line::@12->find_line::@2#1] -- register_copy - //SEG528 [223] phi (byte) find_line::i#2 = (byte~) find_line::i#10 [phi:find_line::@12->find_line::@2#2] -- register_copy + //SEG528 [223] phi (byte) find_line::filled#4 = (byte) find_line::filled#2 [phi:find_line::@12->find_line::@2#0] -- register_copy + //SEG529 [223] phi (byte) find_line::x#2 = (byte) find_line::x#1 [phi:find_line::@12->find_line::@2#1] -- register_copy + //SEG530 [223] phi (byte) find_line::i#2 = (byte~) find_line::i#10 [phi:find_line::@12->find_line::@2#2] -- register_copy jmp b2 - //SEG529 [236] phi from find_line::@2 to find_line::@13 [phi:find_line::@2->find_line::@13] + //SEG531 [236] phi from find_line::@2 to find_line::@13 [phi:find_line::@2->find_line::@13] b13_from_b2: jmp b13 - //SEG530 find_line::@13 + //SEG532 find_line::@13 b13: - //SEG531 [226] phi from find_line::@13 to find_line::@3 [phi:find_line::@13->find_line::@3] + //SEG533 [226] phi from find_line::@13 to find_line::@3 [phi:find_line::@13->find_line::@3] b3_from_b13: - //SEG532 [226] phi (byte) find_line::filled#2 = (byte) find_line::filled#4 [phi:find_line::@13->find_line::@3#0] -- register_copy + //SEG534 [226] phi (byte) find_line::filled#2 = (byte) find_line::filled#4 [phi:find_line::@13->find_line::@3#0] -- register_copy jmp b3 } -//SEG533 lock_current +//SEG535 lock_current lock_current: { .label ypos2 = 2 .label playfield_line = 5 @@ -10766,546 +10826,476 @@ lock_current: { .label i_3 = 4 .label i_7 = 4 .label i_9 = 4 - //SEG534 [237] (byte) lock_current::ypos2#0 ← (byte) current_ypos#12 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz1_rol_1 + //SEG536 [237] (byte) lock_current::ypos2#0 ← (byte) current_ypos#12 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz1_rol_1 asl ypos2 - //SEG535 [238] phi from lock_current to lock_current::@1 [phi:lock_current->lock_current::@1] + //SEG537 [238] phi from lock_current to lock_current::@1 [phi:lock_current->lock_current::@1] b1_from_lock_current: - //SEG536 [238] phi (byte) lock_current::l#6 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:lock_current->lock_current::@1#0] -- vbuz1=vbuc1 + //SEG538 [238] phi (byte) lock_current::l#6 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:lock_current->lock_current::@1#0] -- vbuz1=vbuc1 lda #0 sta l - //SEG537 [238] phi (byte) lock_current::i#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:lock_current->lock_current::@1#1] -- vbuz1=vbuc1 + //SEG539 [238] phi (byte) lock_current::i#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:lock_current->lock_current::@1#1] -- vbuz1=vbuc1 lda #0 sta i_3 - //SEG538 [238] phi (byte) lock_current::ypos2#2 = (byte) lock_current::ypos2#0 [phi:lock_current->lock_current::@1#2] -- register_copy + //SEG540 [238] phi (byte) lock_current::ypos2#2 = (byte) lock_current::ypos2#0 [phi:lock_current->lock_current::@1#2] -- register_copy jmp b1 - //SEG539 lock_current::@1 + //SEG541 lock_current::@1 b1: - //SEG540 [239] (byte*) lock_current::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) lock_current::ypos2#2) -- pbuz1=pptc1_derefidx_vbuz2 + //SEG542 [239] (byte*) lock_current::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) lock_current::ypos2#2) -- pbuz1=pptc1_derefidx_vbuz2 ldy ypos2 lda playfield_lines,y sta playfield_line lda playfield_lines+1,y sta playfield_line+1 - //SEG541 [240] (byte) lock_current::col#0 ← (byte) current_xpos#16 -- vbuz1=vbuz2 + //SEG543 [240] (byte) lock_current::col#0 ← (byte) current_xpos#16 -- vbuz1=vbuz2 lda current_xpos sta col - //SEG542 [241] phi from lock_current::@1 to lock_current::@2 [phi:lock_current::@1->lock_current::@2] + //SEG544 [241] phi from lock_current::@1 to lock_current::@2 [phi:lock_current::@1->lock_current::@2] b2_from_b1: - //SEG543 [241] phi (byte) lock_current::c#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:lock_current::@1->lock_current::@2#0] -- vbuxx=vbuc1 + //SEG545 [241] phi (byte) lock_current::c#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:lock_current::@1->lock_current::@2#0] -- vbuxx=vbuc1 ldx #0 - //SEG544 [241] phi (byte) lock_current::col#2 = (byte) lock_current::col#0 [phi:lock_current::@1->lock_current::@2#1] -- register_copy - //SEG545 [241] phi (byte) lock_current::i#2 = (byte) lock_current::i#3 [phi:lock_current::@1->lock_current::@2#2] -- register_copy + //SEG546 [241] phi (byte) lock_current::col#2 = (byte) lock_current::col#0 [phi:lock_current::@1->lock_current::@2#1] -- register_copy + //SEG547 [241] phi (byte) lock_current::i#2 = (byte) lock_current::i#3 [phi:lock_current::@1->lock_current::@2#2] -- register_copy jmp b2 - //SEG546 lock_current::@2 + //SEG548 lock_current::@2 b2: - //SEG547 [242] (byte) lock_current::i#1 ← ++ (byte) lock_current::i#2 -- vbuz1=_inc_vbuz2 + //SEG549 [242] (byte) lock_current::i#1 ← ++ (byte) lock_current::i#2 -- vbuz1=_inc_vbuz2 ldy i_2 iny sty i - //SEG548 [243] if(*((byte*) current_piece_gfx#15 + (byte) lock_current::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto lock_current::@3 -- pbuz1_derefidx_vbuz2_eq_0_then_la1 + //SEG550 [243] if(*((byte*) current_piece_gfx#15 + (byte) lock_current::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto lock_current::@3 -- pbuz1_derefidx_vbuz2_eq_0_then_la1 ldy i_2 lda (current_piece_gfx),y cmp #0 beq b3 jmp b4 - //SEG549 lock_current::@4 + //SEG551 lock_current::@4 b4: - //SEG550 [244] *((byte*) lock_current::playfield_line#0 + (byte) lock_current::col#2) ← (byte) current_piece_color#11 -- pbuz1_derefidx_vbuz2=vbuz3 + //SEG552 [244] *((byte*) lock_current::playfield_line#0 + (byte) lock_current::col#2) ← (byte) current_piece_color#11 -- pbuz1_derefidx_vbuz2=vbuz3 lda current_piece_color ldy col sta (playfield_line),y jmp b3 - //SEG551 lock_current::@3 + //SEG553 lock_current::@3 b3: - //SEG552 [245] (byte) lock_current::col#1 ← ++ (byte) lock_current::col#2 -- vbuz1=_inc_vbuz1 + //SEG554 [245] (byte) lock_current::col#1 ← ++ (byte) lock_current::col#2 -- vbuz1=_inc_vbuz1 inc col - //SEG553 [246] (byte) lock_current::c#1 ← ++ (byte) lock_current::c#2 -- vbuxx=_inc_vbuxx + //SEG555 [246] (byte) lock_current::c#1 ← ++ (byte) lock_current::c#2 -- vbuxx=_inc_vbuxx inx - //SEG554 [247] if((byte) lock_current::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto lock_current::@8 -- vbuxx_neq_vbuc1_then_la1 + //SEG556 [247] if((byte) lock_current::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto lock_current::@8 -- vbuxx_neq_vbuc1_then_la1 cpx #4 bne b8 jmp b5 - //SEG555 lock_current::@5 + //SEG557 lock_current::@5 b5: - //SEG556 [248] (byte) lock_current::ypos2#1 ← (byte) lock_current::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 -- vbuz1=vbuz1_plus_2 + //SEG558 [248] (byte) lock_current::ypos2#1 ← (byte) lock_current::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 -- vbuz1=vbuz1_plus_2 lda ypos2 clc adc #2 sta ypos2 - //SEG557 [249] (byte) lock_current::l#1 ← ++ (byte) lock_current::l#6 -- vbuz1=_inc_vbuz1 + //SEG559 [249] (byte) lock_current::l#1 ← ++ (byte) lock_current::l#6 -- vbuz1=_inc_vbuz1 inc l - //SEG558 [250] if((byte) lock_current::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto lock_current::@7 -- vbuz1_neq_vbuc1_then_la1 + //SEG560 [250] if((byte) lock_current::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto lock_current::@7 -- vbuz1_neq_vbuc1_then_la1 lda l cmp #4 bne b7 jmp breturn - //SEG559 lock_current::@return + //SEG561 lock_current::@return breturn: - //SEG560 [251] return + //SEG562 [251] return rts - //SEG561 lock_current::@7 + //SEG563 lock_current::@7 b7: - //SEG562 [252] (byte~) lock_current::i#7 ← (byte) lock_current::i#1 -- vbuz1=vbuz2 + //SEG564 [252] (byte~) lock_current::i#7 ← (byte) lock_current::i#1 -- vbuz1=vbuz2 lda i sta i_7 - //SEG563 [238] phi from lock_current::@7 to lock_current::@1 [phi:lock_current::@7->lock_current::@1] + //SEG565 [238] phi from lock_current::@7 to lock_current::@1 [phi:lock_current::@7->lock_current::@1] b1_from_b7: - //SEG564 [238] phi (byte) lock_current::l#6 = (byte) lock_current::l#1 [phi:lock_current::@7->lock_current::@1#0] -- register_copy - //SEG565 [238] phi (byte) lock_current::i#3 = (byte~) lock_current::i#7 [phi:lock_current::@7->lock_current::@1#1] -- register_copy - //SEG566 [238] phi (byte) lock_current::ypos2#2 = (byte) lock_current::ypos2#1 [phi:lock_current::@7->lock_current::@1#2] -- register_copy + //SEG566 [238] phi (byte) lock_current::l#6 = (byte) lock_current::l#1 [phi:lock_current::@7->lock_current::@1#0] -- register_copy + //SEG567 [238] phi (byte) lock_current::i#3 = (byte~) lock_current::i#7 [phi:lock_current::@7->lock_current::@1#1] -- register_copy + //SEG568 [238] phi (byte) lock_current::ypos2#2 = (byte) lock_current::ypos2#1 [phi:lock_current::@7->lock_current::@1#2] -- register_copy jmp b1 - //SEG567 lock_current::@8 + //SEG569 lock_current::@8 b8: - //SEG568 [253] (byte~) lock_current::i#9 ← (byte) lock_current::i#1 -- vbuz1=vbuz2 + //SEG570 [253] (byte~) lock_current::i#9 ← (byte) lock_current::i#1 -- vbuz1=vbuz2 lda i sta i_9 - //SEG569 [241] phi from lock_current::@8 to lock_current::@2 [phi:lock_current::@8->lock_current::@2] + //SEG571 [241] phi from lock_current::@8 to lock_current::@2 [phi:lock_current::@8->lock_current::@2] b2_from_b8: - //SEG570 [241] phi (byte) lock_current::c#2 = (byte) lock_current::c#1 [phi:lock_current::@8->lock_current::@2#0] -- register_copy - //SEG571 [241] phi (byte) lock_current::col#2 = (byte) lock_current::col#1 [phi:lock_current::@8->lock_current::@2#1] -- register_copy - //SEG572 [241] phi (byte) lock_current::i#2 = (byte~) lock_current::i#9 [phi:lock_current::@8->lock_current::@2#2] -- register_copy + //SEG572 [241] phi (byte) lock_current::c#2 = (byte) lock_current::c#1 [phi:lock_current::@8->lock_current::@2#0] -- register_copy + //SEG573 [241] phi (byte) lock_current::col#2 = (byte) lock_current::col#1 [phi:lock_current::@8->lock_current::@2#1] -- register_copy + //SEG574 [241] phi (byte) lock_current::i#2 = (byte~) lock_current::i#9 [phi:lock_current::@8->lock_current::@2#2] -- register_copy jmp b2 } -//SEG573 keyboard_event_pressed +//SEG575 keyboard_event_pressed keyboard_event_pressed: { .label row_bits = 7 .label keycode = 4 - //SEG574 [255] (byte~) keyboard_event_pressed::$0 ← (byte) keyboard_event_pressed::keycode#5 >> (byte/signed byte/word/signed word/dword/signed dword) 3 -- vbuaa=vbuz1_ror_3 + //SEG576 [255] (byte~) keyboard_event_pressed::$0 ← (byte) keyboard_event_pressed::keycode#5 >> (byte/signed byte/word/signed word/dword/signed dword) 3 -- vbuaa=vbuz1_ror_3 lda keycode lsr lsr lsr - //SEG575 [256] (byte) keyboard_event_pressed::row_bits#0 ← *((const byte[8]) keyboard_scan_values#0 + (byte~) keyboard_event_pressed::$0) -- vbuz1=pbuc1_derefidx_vbuaa + //SEG577 [256] (byte) keyboard_event_pressed::row_bits#0 ← *((const byte[8]) keyboard_scan_values#0 + (byte~) keyboard_event_pressed::$0) -- vbuz1=pbuc1_derefidx_vbuaa tay lda keyboard_scan_values,y sta row_bits - //SEG576 [257] (byte~) keyboard_event_pressed::$1 ← (byte) keyboard_event_pressed::keycode#5 & (byte/signed byte/word/signed word/dword/signed dword) 7 -- vbuaa=vbuz1_band_vbuc1 + //SEG578 [257] (byte~) keyboard_event_pressed::$1 ← (byte) keyboard_event_pressed::keycode#5 & (byte/signed byte/word/signed word/dword/signed dword) 7 -- vbuaa=vbuz1_band_vbuc1 lda #7 and keycode - //SEG577 [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) -- vbuaa=vbuz1_band_pbuc1_derefidx_vbuaa + //SEG579 [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) -- vbuaa=vbuz1_band_pbuc1_derefidx_vbuaa tay lda keyboard_matrix_col_bitmask,y and row_bits jmp breturn - //SEG578 keyboard_event_pressed::@return + //SEG580 keyboard_event_pressed::@return breturn: - //SEG579 [259] return + //SEG581 [259] return rts } -//SEG580 keyboard_event_get +//SEG582 keyboard_event_get keyboard_event_get: { - //SEG581 [260] if((byte) keyboard_events_size#13==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_get::@return -- vbuz1_eq_0_then_la1 + //SEG583 [260] if((byte) keyboard_events_size#13==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_get::@return -- vbuz1_eq_0_then_la1 lda keyboard_events_size cmp #0 beq breturn_from_keyboard_event_get jmp b3 - //SEG582 keyboard_event_get::@3 + //SEG584 keyboard_event_get::@3 b3: - //SEG583 [261] (byte) keyboard_events_size#4 ← -- (byte) keyboard_events_size#13 -- vbuz1=_dec_vbuz1 + //SEG585 [261] (byte) keyboard_events_size#4 ← -- (byte) keyboard_events_size#13 -- vbuz1=_dec_vbuz1 dec keyboard_events_size - //SEG584 [262] (byte) keyboard_event_get::return#1 ← *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#4) -- vbuaa=pbuc1_derefidx_vbuz1 + //SEG586 [262] (byte) keyboard_event_get::return#1 ← *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#4) -- vbuaa=pbuc1_derefidx_vbuz1 ldy keyboard_events_size lda keyboard_events,y - //SEG585 [263] phi from keyboard_event_get::@3 to keyboard_event_get::@return [phi:keyboard_event_get::@3->keyboard_event_get::@return] + //SEG587 [263] phi from keyboard_event_get::@3 to keyboard_event_get::@return [phi:keyboard_event_get::@3->keyboard_event_get::@return] breturn_from_b3: - //SEG586 [263] phi (byte) keyboard_events_size#16 = (byte) keyboard_events_size#4 [phi:keyboard_event_get::@3->keyboard_event_get::@return#0] -- register_copy - //SEG587 [263] phi (byte) keyboard_event_get::return#2 = (byte) keyboard_event_get::return#1 [phi:keyboard_event_get::@3->keyboard_event_get::@return#1] -- register_copy + //SEG588 [263] phi (byte) keyboard_events_size#16 = (byte) keyboard_events_size#4 [phi:keyboard_event_get::@3->keyboard_event_get::@return#0] -- register_copy + //SEG589 [263] phi (byte) keyboard_event_get::return#2 = (byte) keyboard_event_get::return#1 [phi:keyboard_event_get::@3->keyboard_event_get::@return#1] -- register_copy jmp breturn - //SEG588 [263] phi from keyboard_event_get to keyboard_event_get::@return [phi:keyboard_event_get->keyboard_event_get::@return] + //SEG590 [263] phi from keyboard_event_get to keyboard_event_get::@return [phi:keyboard_event_get->keyboard_event_get::@return] breturn_from_keyboard_event_get: - //SEG589 [263] phi (byte) keyboard_events_size#16 = (byte) keyboard_events_size#13 [phi:keyboard_event_get->keyboard_event_get::@return#0] -- register_copy - //SEG590 [263] phi (byte) keyboard_event_get::return#2 = (byte/word/signed word/dword/signed dword) 255 [phi:keyboard_event_get->keyboard_event_get::@return#1] -- vbuaa=vbuc1 + //SEG591 [263] phi (byte) keyboard_events_size#16 = (byte) keyboard_events_size#13 [phi:keyboard_event_get->keyboard_event_get::@return#0] -- register_copy + //SEG592 [263] phi (byte) keyboard_event_get::return#2 = (byte/word/signed word/dword/signed dword) 255 [phi:keyboard_event_get->keyboard_event_get::@return#1] -- vbuaa=vbuc1 lda #$ff jmp breturn - //SEG591 keyboard_event_get::@return + //SEG593 keyboard_event_get::@return breturn: - //SEG592 [264] return + //SEG594 [264] return rts } -//SEG593 keyboard_event_scan +//SEG595 keyboard_event_scan keyboard_event_scan: { .label row_scan = 8 .label keycode = 7 .label row = 4 - //SEG594 [266] phi from keyboard_event_scan to keyboard_event_scan::@1 [phi:keyboard_event_scan->keyboard_event_scan::@1] + //SEG596 [266] phi from keyboard_event_scan to keyboard_event_scan::@1 [phi:keyboard_event_scan->keyboard_event_scan::@1] b1_from_keyboard_event_scan: - //SEG595 [266] phi (byte) keyboard_events_size#29 = (byte) keyboard_events_size#19 [phi:keyboard_event_scan->keyboard_event_scan::@1#0] -- register_copy - //SEG596 [266] phi (byte) keyboard_event_scan::keycode#11 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:keyboard_event_scan->keyboard_event_scan::@1#1] -- vbuz1=vbuc1 + //SEG597 [266] phi (byte) keyboard_events_size#29 = (byte) keyboard_events_size#19 [phi:keyboard_event_scan->keyboard_event_scan::@1#0] -- register_copy + //SEG598 [266] phi (byte) keyboard_event_scan::keycode#11 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:keyboard_event_scan->keyboard_event_scan::@1#1] -- vbuz1=vbuc1 lda #0 sta keycode - //SEG597 [266] phi (byte) keyboard_event_scan::row#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:keyboard_event_scan->keyboard_event_scan::@1#2] -- vbuz1=vbuc1 + //SEG599 [266] phi (byte) keyboard_event_scan::row#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:keyboard_event_scan->keyboard_event_scan::@1#2] -- vbuz1=vbuc1 lda #0 sta row jmp b1 - //SEG598 [266] phi from keyboard_event_scan::@3 to keyboard_event_scan::@1 [phi:keyboard_event_scan::@3->keyboard_event_scan::@1] + //SEG600 [266] phi from keyboard_event_scan::@3 to keyboard_event_scan::@1 [phi:keyboard_event_scan::@3->keyboard_event_scan::@1] b1_from_b3: - //SEG599 [266] phi (byte) keyboard_events_size#29 = (byte) keyboard_events_size#13 [phi:keyboard_event_scan::@3->keyboard_event_scan::@1#0] -- register_copy - //SEG600 [266] phi (byte) keyboard_event_scan::keycode#11 = (byte) keyboard_event_scan::keycode#14 [phi:keyboard_event_scan::@3->keyboard_event_scan::@1#1] -- register_copy - //SEG601 [266] phi (byte) keyboard_event_scan::row#2 = (byte) keyboard_event_scan::row#1 [phi:keyboard_event_scan::@3->keyboard_event_scan::@1#2] -- register_copy + //SEG601 [266] phi (byte) keyboard_events_size#29 = (byte) keyboard_events_size#13 [phi:keyboard_event_scan::@3->keyboard_event_scan::@1#0] -- register_copy + //SEG602 [266] phi (byte) keyboard_event_scan::keycode#11 = (byte) keyboard_event_scan::keycode#14 [phi:keyboard_event_scan::@3->keyboard_event_scan::@1#1] -- register_copy + //SEG603 [266] phi (byte) keyboard_event_scan::row#2 = (byte) keyboard_event_scan::row#1 [phi:keyboard_event_scan::@3->keyboard_event_scan::@1#2] -- register_copy jmp b1 - //SEG602 keyboard_event_scan::@1 + //SEG604 keyboard_event_scan::@1 b1: - //SEG603 [267] (byte) keyboard_matrix_read::rowid#0 ← (byte) keyboard_event_scan::row#2 -- vbuxx=vbuz1 + //SEG605 [267] (byte) keyboard_matrix_read::rowid#0 ← (byte) keyboard_event_scan::row#2 -- vbuxx=vbuz1 ldx row - //SEG604 [268] call keyboard_matrix_read + //SEG606 [268] call keyboard_matrix_read jsr keyboard_matrix_read - //SEG605 [269] (byte) keyboard_matrix_read::return#2 ← (byte) keyboard_matrix_read::return#0 + //SEG607 [269] (byte) keyboard_matrix_read::return#2 ← (byte) keyboard_matrix_read::return#0 // (byte) keyboard_matrix_read::return#2 = (byte) keyboard_matrix_read::return#0 // register copy reg byte a jmp b25 - //SEG606 keyboard_event_scan::@25 + //SEG608 keyboard_event_scan::@25 b25: - //SEG607 [270] (byte) keyboard_event_scan::row_scan#0 ← (byte) keyboard_matrix_read::return#2 -- vbuz1=vbuaa + //SEG609 [270] (byte) keyboard_event_scan::row_scan#0 ← (byte) keyboard_matrix_read::return#2 -- vbuz1=vbuaa sta row_scan - //SEG608 [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 -- vbuz1_neq_pbuc1_derefidx_vbuz2_then_la1 + //SEG610 [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 -- vbuz1_neq_pbuc1_derefidx_vbuz2_then_la1 lda row_scan ldy row cmp keyboard_scan_values,y bne b4_from_b25 jmp b13 - //SEG609 keyboard_event_scan::@13 + //SEG611 keyboard_event_scan::@13 b13: - //SEG610 [272] (byte) keyboard_event_scan::keycode#1 ← (byte) keyboard_event_scan::keycode#11 + (byte/signed byte/word/signed word/dword/signed dword) 8 -- vbuz1=vbuz1_plus_vbuc1 + //SEG612 [272] (byte) keyboard_event_scan::keycode#1 ← (byte) keyboard_event_scan::keycode#11 + (byte/signed byte/word/signed word/dword/signed dword) 8 -- vbuz1=vbuz1_plus_vbuc1 lda #8 clc adc keycode sta keycode - //SEG611 [273] phi from keyboard_event_scan::@13 keyboard_event_scan::@19 to keyboard_event_scan::@3 [phi:keyboard_event_scan::@13/keyboard_event_scan::@19->keyboard_event_scan::@3] + //SEG613 [273] phi from keyboard_event_scan::@13 keyboard_event_scan::@19 to keyboard_event_scan::@3 [phi:keyboard_event_scan::@13/keyboard_event_scan::@19->keyboard_event_scan::@3] b3_from_b13: b3_from_b19: - //SEG612 [273] phi (byte) keyboard_events_size#13 = (byte) keyboard_events_size#29 [phi:keyboard_event_scan::@13/keyboard_event_scan::@19->keyboard_event_scan::@3#0] -- register_copy - //SEG613 [273] phi (byte) keyboard_event_scan::keycode#14 = (byte) keyboard_event_scan::keycode#1 [phi:keyboard_event_scan::@13/keyboard_event_scan::@19->keyboard_event_scan::@3#1] -- register_copy + //SEG614 [273] phi (byte) keyboard_events_size#13 = (byte) keyboard_events_size#29 [phi:keyboard_event_scan::@13/keyboard_event_scan::@19->keyboard_event_scan::@3#0] -- register_copy + //SEG615 [273] phi (byte) keyboard_event_scan::keycode#14 = (byte) keyboard_event_scan::keycode#1 [phi:keyboard_event_scan::@13/keyboard_event_scan::@19->keyboard_event_scan::@3#1] -- register_copy jmp b3 - //SEG614 keyboard_event_scan::@3 + //SEG616 keyboard_event_scan::@3 b3: - //SEG615 [274] (byte) keyboard_event_scan::row#1 ← ++ (byte) keyboard_event_scan::row#2 -- vbuz1=_inc_vbuz1 + //SEG617 [274] (byte) keyboard_event_scan::row#1 ← ++ (byte) keyboard_event_scan::row#2 -- vbuz1=_inc_vbuz1 inc row - //SEG616 [275] if((byte) keyboard_event_scan::row#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto keyboard_event_scan::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG618 [275] if((byte) keyboard_event_scan::row#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto keyboard_event_scan::@1 -- vbuz1_neq_vbuc1_then_la1 lda row cmp #8 bne b1_from_b3 - //SEG617 [276] phi from keyboard_event_scan::@3 to keyboard_event_scan::@20 [phi:keyboard_event_scan::@3->keyboard_event_scan::@20] + //SEG619 [276] phi from keyboard_event_scan::@3 to keyboard_event_scan::@20 [phi:keyboard_event_scan::@3->keyboard_event_scan::@20] b20_from_b3: jmp b20 - //SEG618 keyboard_event_scan::@20 + //SEG620 keyboard_event_scan::@20 b20: - //SEG619 [277] call keyboard_event_pressed - //SEG620 [254] phi from keyboard_event_scan::@20 to keyboard_event_pressed [phi:keyboard_event_scan::@20->keyboard_event_pressed] + //SEG621 [277] call keyboard_event_pressed + //SEG622 [254] phi from keyboard_event_scan::@20 to keyboard_event_pressed [phi:keyboard_event_scan::@20->keyboard_event_pressed] keyboard_event_pressed_from_b20: - //SEG621 [254] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_LSHIFT#0 [phi:keyboard_event_scan::@20->keyboard_event_pressed#0] -- vbuz1=vbuc1 + //SEG623 [254] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_LSHIFT#0 [phi:keyboard_event_scan::@20->keyboard_event_pressed#0] -- vbuz1=vbuc1 lda #KEY_LSHIFT sta keyboard_event_pressed.keycode jsr keyboard_event_pressed - //SEG622 [278] (byte) keyboard_event_pressed::return#0 ← (byte) keyboard_event_pressed::return#11 + //SEG624 [278] (byte) keyboard_event_pressed::return#0 ← (byte) keyboard_event_pressed::return#11 // (byte) keyboard_event_pressed::return#0 = (byte) keyboard_event_pressed::return#11 // register copy reg byte a jmp b26 - //SEG623 keyboard_event_scan::@26 + //SEG625 keyboard_event_scan::@26 b26: - //SEG624 [279] (byte~) keyboard_event_scan::$14 ← (byte) keyboard_event_pressed::return#0 + //SEG626 [279] (byte~) keyboard_event_scan::$14 ← (byte) keyboard_event_pressed::return#0 // (byte~) keyboard_event_scan::$14 = (byte) keyboard_event_pressed::return#0 // register copy reg byte a - //SEG625 [280] if((byte~) keyboard_event_scan::$14==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@9 -- vbuaa_eq_0_then_la1 + //SEG627 [280] if((byte~) keyboard_event_scan::$14==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@9 -- vbuaa_eq_0_then_la1 cmp #0 beq b9_from_b26 - //SEG626 [281] phi from keyboard_event_scan::@26 to keyboard_event_scan::@21 [phi:keyboard_event_scan::@26->keyboard_event_scan::@21] + //SEG628 [281] phi from keyboard_event_scan::@26 to keyboard_event_scan::@21 [phi:keyboard_event_scan::@26->keyboard_event_scan::@21] b21_from_b26: jmp b21 - //SEG627 keyboard_event_scan::@21 + //SEG629 keyboard_event_scan::@21 b21: - //SEG628 [282] phi from keyboard_event_scan::@21 keyboard_event_scan::@26 to keyboard_event_scan::@9 [phi:keyboard_event_scan::@21/keyboard_event_scan::@26->keyboard_event_scan::@9] + //SEG630 [282] phi from keyboard_event_scan::@21 keyboard_event_scan::@26 to keyboard_event_scan::@9 [phi:keyboard_event_scan::@21/keyboard_event_scan::@26->keyboard_event_scan::@9] b9_from_b21: b9_from_b26: jmp b9 - //SEG629 keyboard_event_scan::@9 + //SEG631 keyboard_event_scan::@9 b9: - //SEG630 [283] call keyboard_event_pressed - //SEG631 [254] phi from keyboard_event_scan::@9 to keyboard_event_pressed [phi:keyboard_event_scan::@9->keyboard_event_pressed] + //SEG632 [283] call keyboard_event_pressed + //SEG633 [254] phi from keyboard_event_scan::@9 to keyboard_event_pressed [phi:keyboard_event_scan::@9->keyboard_event_pressed] keyboard_event_pressed_from_b9: - //SEG632 [254] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_RSHIFT#0 [phi:keyboard_event_scan::@9->keyboard_event_pressed#0] -- vbuz1=vbuc1 + //SEG634 [254] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_RSHIFT#0 [phi:keyboard_event_scan::@9->keyboard_event_pressed#0] -- vbuz1=vbuc1 lda #KEY_RSHIFT sta keyboard_event_pressed.keycode jsr keyboard_event_pressed - //SEG633 [284] (byte) keyboard_event_pressed::return#1 ← (byte) keyboard_event_pressed::return#11 + //SEG635 [284] (byte) keyboard_event_pressed::return#1 ← (byte) keyboard_event_pressed::return#11 // (byte) keyboard_event_pressed::return#1 = (byte) keyboard_event_pressed::return#11 // register copy reg byte a jmp b27 - //SEG634 keyboard_event_scan::@27 + //SEG636 keyboard_event_scan::@27 b27: - //SEG635 [285] (byte~) keyboard_event_scan::$18 ← (byte) keyboard_event_pressed::return#1 + //SEG637 [285] (byte~) keyboard_event_scan::$18 ← (byte) keyboard_event_pressed::return#1 // (byte~) keyboard_event_scan::$18 = (byte) keyboard_event_pressed::return#1 // register copy reg byte a - //SEG636 [286] if((byte~) keyboard_event_scan::$18==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@10 -- vbuaa_eq_0_then_la1 + //SEG638 [286] if((byte~) keyboard_event_scan::$18==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@10 -- vbuaa_eq_0_then_la1 cmp #0 beq b10_from_b27 - //SEG637 [287] phi from keyboard_event_scan::@27 to keyboard_event_scan::@22 [phi:keyboard_event_scan::@27->keyboard_event_scan::@22] + //SEG639 [287] phi from keyboard_event_scan::@27 to keyboard_event_scan::@22 [phi:keyboard_event_scan::@27->keyboard_event_scan::@22] b22_from_b27: jmp b22 - //SEG638 keyboard_event_scan::@22 + //SEG640 keyboard_event_scan::@22 b22: - //SEG639 [288] phi from keyboard_event_scan::@22 keyboard_event_scan::@27 to keyboard_event_scan::@10 [phi:keyboard_event_scan::@22/keyboard_event_scan::@27->keyboard_event_scan::@10] + //SEG641 [288] phi from keyboard_event_scan::@22 keyboard_event_scan::@27 to keyboard_event_scan::@10 [phi:keyboard_event_scan::@22/keyboard_event_scan::@27->keyboard_event_scan::@10] b10_from_b22: b10_from_b27: jmp b10 - //SEG640 keyboard_event_scan::@10 + //SEG642 keyboard_event_scan::@10 b10: - //SEG641 [289] call keyboard_event_pressed - //SEG642 [254] phi from keyboard_event_scan::@10 to keyboard_event_pressed [phi:keyboard_event_scan::@10->keyboard_event_pressed] + //SEG643 [289] call keyboard_event_pressed + //SEG644 [254] phi from keyboard_event_scan::@10 to keyboard_event_pressed [phi:keyboard_event_scan::@10->keyboard_event_pressed] keyboard_event_pressed_from_b10: - //SEG643 [254] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_CTRL#0 [phi:keyboard_event_scan::@10->keyboard_event_pressed#0] -- vbuz1=vbuc1 + //SEG645 [254] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_CTRL#0 [phi:keyboard_event_scan::@10->keyboard_event_pressed#0] -- vbuz1=vbuc1 lda #KEY_CTRL sta keyboard_event_pressed.keycode jsr keyboard_event_pressed - //SEG644 [290] (byte) keyboard_event_pressed::return#2 ← (byte) keyboard_event_pressed::return#11 + //SEG646 [290] (byte) keyboard_event_pressed::return#2 ← (byte) keyboard_event_pressed::return#11 // (byte) keyboard_event_pressed::return#2 = (byte) keyboard_event_pressed::return#11 // register copy reg byte a jmp b28 - //SEG645 keyboard_event_scan::@28 + //SEG647 keyboard_event_scan::@28 b28: - //SEG646 [291] (byte~) keyboard_event_scan::$22 ← (byte) keyboard_event_pressed::return#2 + //SEG648 [291] (byte~) keyboard_event_scan::$22 ← (byte) keyboard_event_pressed::return#2 // (byte~) keyboard_event_scan::$22 = (byte) keyboard_event_pressed::return#2 // register copy reg byte a - //SEG647 [292] if((byte~) keyboard_event_scan::$22==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@11 -- vbuaa_eq_0_then_la1 + //SEG649 [292] if((byte~) keyboard_event_scan::$22==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@11 -- vbuaa_eq_0_then_la1 cmp #0 beq b11_from_b28 - //SEG648 [293] phi from keyboard_event_scan::@28 to keyboard_event_scan::@23 [phi:keyboard_event_scan::@28->keyboard_event_scan::@23] + //SEG650 [293] phi from keyboard_event_scan::@28 to keyboard_event_scan::@23 [phi:keyboard_event_scan::@28->keyboard_event_scan::@23] b23_from_b28: jmp b23 - //SEG649 keyboard_event_scan::@23 + //SEG651 keyboard_event_scan::@23 b23: - //SEG650 [294] phi from keyboard_event_scan::@23 keyboard_event_scan::@28 to keyboard_event_scan::@11 [phi:keyboard_event_scan::@23/keyboard_event_scan::@28->keyboard_event_scan::@11] + //SEG652 [294] phi from keyboard_event_scan::@23 keyboard_event_scan::@28 to keyboard_event_scan::@11 [phi:keyboard_event_scan::@23/keyboard_event_scan::@28->keyboard_event_scan::@11] b11_from_b23: b11_from_b28: jmp b11 - //SEG651 keyboard_event_scan::@11 + //SEG653 keyboard_event_scan::@11 b11: - //SEG652 [295] call keyboard_event_pressed - //SEG653 [254] phi from keyboard_event_scan::@11 to keyboard_event_pressed [phi:keyboard_event_scan::@11->keyboard_event_pressed] + //SEG654 [295] call keyboard_event_pressed + //SEG655 [254] phi from keyboard_event_scan::@11 to keyboard_event_pressed [phi:keyboard_event_scan::@11->keyboard_event_pressed] keyboard_event_pressed_from_b11: - //SEG654 [254] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_COMMODORE#0 [phi:keyboard_event_scan::@11->keyboard_event_pressed#0] -- vbuz1=vbuc1 + //SEG656 [254] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_COMMODORE#0 [phi:keyboard_event_scan::@11->keyboard_event_pressed#0] -- vbuz1=vbuc1 lda #KEY_COMMODORE sta keyboard_event_pressed.keycode jsr keyboard_event_pressed - //SEG655 [296] (byte) keyboard_event_pressed::return#10 ← (byte) keyboard_event_pressed::return#11 + //SEG657 [296] (byte) keyboard_event_pressed::return#10 ← (byte) keyboard_event_pressed::return#11 // (byte) keyboard_event_pressed::return#10 = (byte) keyboard_event_pressed::return#11 // register copy reg byte a jmp b29 - //SEG656 keyboard_event_scan::@29 + //SEG658 keyboard_event_scan::@29 b29: - //SEG657 [297] (byte~) keyboard_event_scan::$26 ← (byte) keyboard_event_pressed::return#10 + //SEG659 [297] (byte~) keyboard_event_scan::$26 ← (byte) keyboard_event_pressed::return#10 // (byte~) keyboard_event_scan::$26 = (byte) keyboard_event_pressed::return#10 // register copy reg byte a - //SEG658 [298] if((byte~) keyboard_event_scan::$26==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@return -- vbuaa_eq_0_then_la1 + //SEG660 [298] if((byte~) keyboard_event_scan::$26==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@return -- vbuaa_eq_0_then_la1 cmp #0 beq breturn - //SEG659 [299] phi from keyboard_event_scan::@29 to keyboard_event_scan::@24 [phi:keyboard_event_scan::@29->keyboard_event_scan::@24] + //SEG661 [299] phi from keyboard_event_scan::@29 to keyboard_event_scan::@24 [phi:keyboard_event_scan::@29->keyboard_event_scan::@24] b24_from_b29: jmp b24 - //SEG660 keyboard_event_scan::@24 + //SEG662 keyboard_event_scan::@24 b24: jmp breturn - //SEG661 keyboard_event_scan::@return + //SEG663 keyboard_event_scan::@return breturn: - //SEG662 [300] return + //SEG664 [300] return rts - //SEG663 [301] phi from keyboard_event_scan::@25 to keyboard_event_scan::@4 [phi:keyboard_event_scan::@25->keyboard_event_scan::@4] + //SEG665 [301] phi from keyboard_event_scan::@25 to keyboard_event_scan::@4 [phi:keyboard_event_scan::@25->keyboard_event_scan::@4] b4_from_b25: - //SEG664 [301] phi (byte) keyboard_events_size#10 = (byte) keyboard_events_size#29 [phi:keyboard_event_scan::@25->keyboard_event_scan::@4#0] -- register_copy - //SEG665 [301] phi (byte) keyboard_event_scan::keycode#10 = (byte) keyboard_event_scan::keycode#11 [phi:keyboard_event_scan::@25->keyboard_event_scan::@4#1] -- register_copy - //SEG666 [301] phi (byte) keyboard_event_scan::col#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:keyboard_event_scan::@25->keyboard_event_scan::@4#2] -- vbuxx=vbuc1 + //SEG666 [301] phi (byte) keyboard_events_size#10 = (byte) keyboard_events_size#29 [phi:keyboard_event_scan::@25->keyboard_event_scan::@4#0] -- register_copy + //SEG667 [301] phi (byte) keyboard_event_scan::keycode#10 = (byte) keyboard_event_scan::keycode#11 [phi:keyboard_event_scan::@25->keyboard_event_scan::@4#1] -- register_copy + //SEG668 [301] phi (byte) keyboard_event_scan::col#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:keyboard_event_scan::@25->keyboard_event_scan::@4#2] -- vbuxx=vbuc1 ldx #0 jmp b4 - //SEG667 [301] phi from keyboard_event_scan::@5 to keyboard_event_scan::@4 [phi:keyboard_event_scan::@5->keyboard_event_scan::@4] + //SEG669 [301] phi from keyboard_event_scan::@5 to keyboard_event_scan::@4 [phi:keyboard_event_scan::@5->keyboard_event_scan::@4] b4_from_b5: - //SEG668 [301] phi (byte) keyboard_events_size#10 = (byte) keyboard_events_size#30 [phi:keyboard_event_scan::@5->keyboard_event_scan::@4#0] -- register_copy - //SEG669 [301] phi (byte) keyboard_event_scan::keycode#10 = (byte) keyboard_event_scan::keycode#15 [phi:keyboard_event_scan::@5->keyboard_event_scan::@4#1] -- register_copy - //SEG670 [301] phi (byte) keyboard_event_scan::col#2 = (byte) keyboard_event_scan::col#1 [phi:keyboard_event_scan::@5->keyboard_event_scan::@4#2] -- register_copy + //SEG670 [301] phi (byte) keyboard_events_size#10 = (byte) keyboard_events_size#30 [phi:keyboard_event_scan::@5->keyboard_event_scan::@4#0] -- register_copy + //SEG671 [301] phi (byte) keyboard_event_scan::keycode#10 = (byte) keyboard_event_scan::keycode#15 [phi:keyboard_event_scan::@5->keyboard_event_scan::@4#1] -- register_copy + //SEG672 [301] phi (byte) keyboard_event_scan::col#2 = (byte) keyboard_event_scan::col#1 [phi:keyboard_event_scan::@5->keyboard_event_scan::@4#2] -- register_copy jmp b4 - //SEG671 keyboard_event_scan::@4 + //SEG673 keyboard_event_scan::@4 b4: - //SEG672 [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) -- vbuaa=vbuz1_bxor_pbuc1_derefidx_vbuz2 + //SEG674 [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) -- vbuaa=vbuz1_bxor_pbuc1_derefidx_vbuz2 lda row_scan ldy row eor keyboard_scan_values,y - //SEG673 [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) -- vbuaa=vbuaa_band_pbuc1_derefidx_vbuxx + //SEG675 [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) -- vbuaa=vbuaa_band_pbuc1_derefidx_vbuxx and keyboard_matrix_col_bitmask,x - //SEG674 [304] if((byte~) keyboard_event_scan::$4==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@5 -- vbuaa_eq_0_then_la1 + //SEG676 [304] if((byte~) keyboard_event_scan::$4==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@5 -- vbuaa_eq_0_then_la1 cmp #0 beq b5_from_b4 jmp b15 - //SEG675 keyboard_event_scan::@15 + //SEG677 keyboard_event_scan::@15 b15: - //SEG676 [305] if((byte) keyboard_events_size#10==(byte/signed byte/word/signed word/dword/signed dword) 8) goto keyboard_event_scan::@5 -- vbuz1_eq_vbuc1_then_la1 + //SEG678 [305] if((byte) keyboard_events_size#10==(byte/signed byte/word/signed word/dword/signed dword) 8) goto keyboard_event_scan::@5 -- vbuz1_eq_vbuc1_then_la1 lda keyboard_events_size cmp #8 beq b5_from_b15 jmp b16 - //SEG677 keyboard_event_scan::@16 + //SEG679 keyboard_event_scan::@16 b16: - //SEG678 [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) -- vbuaa=vbuz1_band_pbuc1_derefidx_vbuxx + //SEG680 [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) -- vbuaa=vbuz1_band_pbuc1_derefidx_vbuxx lda keyboard_matrix_col_bitmask,x and row_scan - //SEG679 [307] if((byte) keyboard_event_scan::event_type#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@7 -- vbuaa_eq_0_then_la1 + //SEG681 [307] if((byte) keyboard_event_scan::event_type#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@7 -- vbuaa_eq_0_then_la1 cmp #0 beq b7 jmp b17 - //SEG680 keyboard_event_scan::@17 + //SEG682 keyboard_event_scan::@17 b17: - //SEG681 [308] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte) keyboard_event_scan::keycode#10 -- pbuc1_derefidx_vbuz1=vbuz2 + //SEG683 [308] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte) keyboard_event_scan::keycode#10 -- pbuc1_derefidx_vbuz1=vbuz2 lda keycode ldy keyboard_events_size sta keyboard_events,y - //SEG682 [309] (byte) keyboard_events_size#2 ← ++ (byte) keyboard_events_size#10 -- vbuz1=_inc_vbuz1 + //SEG684 [309] (byte) keyboard_events_size#2 ← ++ (byte) keyboard_events_size#10 -- vbuz1=_inc_vbuz1 inc keyboard_events_size - //SEG683 [310] phi from keyboard_event_scan::@15 keyboard_event_scan::@17 keyboard_event_scan::@4 keyboard_event_scan::@7 to keyboard_event_scan::@5 [phi:keyboard_event_scan::@15/keyboard_event_scan::@17/keyboard_event_scan::@4/keyboard_event_scan::@7->keyboard_event_scan::@5] + //SEG685 [310] phi from keyboard_event_scan::@15 keyboard_event_scan::@17 keyboard_event_scan::@4 keyboard_event_scan::@7 to keyboard_event_scan::@5 [phi:keyboard_event_scan::@15/keyboard_event_scan::@17/keyboard_event_scan::@4/keyboard_event_scan::@7->keyboard_event_scan::@5] b5_from_b15: b5_from_b17: b5_from_b4: b5_from_b7: - //SEG684 [310] phi (byte) keyboard_events_size#30 = (byte) keyboard_events_size#10 [phi:keyboard_event_scan::@15/keyboard_event_scan::@17/keyboard_event_scan::@4/keyboard_event_scan::@7->keyboard_event_scan::@5#0] -- register_copy + //SEG686 [310] phi (byte) keyboard_events_size#30 = (byte) keyboard_events_size#10 [phi:keyboard_event_scan::@15/keyboard_event_scan::@17/keyboard_event_scan::@4/keyboard_event_scan::@7->keyboard_event_scan::@5#0] -- register_copy jmp b5 - //SEG685 keyboard_event_scan::@5 + //SEG687 keyboard_event_scan::@5 b5: - //SEG686 [311] (byte) keyboard_event_scan::keycode#15 ← ++ (byte) keyboard_event_scan::keycode#10 -- vbuz1=_inc_vbuz1 + //SEG688 [311] (byte) keyboard_event_scan::keycode#15 ← ++ (byte) keyboard_event_scan::keycode#10 -- vbuz1=_inc_vbuz1 inc keycode - //SEG687 [312] (byte) keyboard_event_scan::col#1 ← ++ (byte) keyboard_event_scan::col#2 -- vbuxx=_inc_vbuxx + //SEG689 [312] (byte) keyboard_event_scan::col#1 ← ++ (byte) keyboard_event_scan::col#2 -- vbuxx=_inc_vbuxx inx - //SEG688 [313] if((byte) keyboard_event_scan::col#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto keyboard_event_scan::@4 -- vbuxx_neq_vbuc1_then_la1 + //SEG690 [313] if((byte) keyboard_event_scan::col#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto keyboard_event_scan::@4 -- vbuxx_neq_vbuc1_then_la1 cpx #8 bne b4_from_b5 jmp b19 - //SEG689 keyboard_event_scan::@19 + //SEG691 keyboard_event_scan::@19 b19: - //SEG690 [314] *((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2) ← (byte) keyboard_event_scan::row_scan#0 -- pbuc1_derefidx_vbuz1=vbuz2 + //SEG692 [314] *((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2) ← (byte) keyboard_event_scan::row_scan#0 -- pbuc1_derefidx_vbuz1=vbuz2 lda row_scan ldy row sta keyboard_scan_values,y jmp b3_from_b19 - //SEG691 keyboard_event_scan::@7 + //SEG693 keyboard_event_scan::@7 b7: - //SEG692 [315] (byte/word/dword~) keyboard_event_scan::$11 ← (byte) keyboard_event_scan::keycode#10 | (byte/signed byte/word/signed word/dword/signed dword) 64 -- vbuaa=vbuz1_bor_vbuc1 + //SEG694 [315] (byte/word/dword~) keyboard_event_scan::$11 ← (byte) keyboard_event_scan::keycode#10 | (byte/signed byte/word/signed word/dword/signed dword) 64 -- vbuaa=vbuz1_bor_vbuc1 lda #$40 ora keycode - //SEG693 [316] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte/word/dword~) keyboard_event_scan::$11 -- pbuc1_derefidx_vbuz1=vbuaa + //SEG695 [316] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte/word/dword~) keyboard_event_scan::$11 -- pbuc1_derefidx_vbuz1=vbuaa ldy keyboard_events_size sta keyboard_events,y - //SEG694 [317] (byte) keyboard_events_size#1 ← ++ (byte) keyboard_events_size#10 -- vbuz1=_inc_vbuz1 + //SEG696 [317] (byte) keyboard_events_size#1 ← ++ (byte) keyboard_events_size#10 -- vbuz1=_inc_vbuz1 inc keyboard_events_size jmp b5_from_b7 } -//SEG695 keyboard_matrix_read +//SEG697 keyboard_matrix_read keyboard_matrix_read: { - //SEG696 [318] *((const byte*) CIA1_PORT_A#0) ← *((const byte[8]) keyboard_matrix_row_bitmask#0 + (byte) keyboard_matrix_read::rowid#0) -- _deref_pbuc1=pbuc2_derefidx_vbuxx + //SEG698 [318] *((const byte*) CIA1_PORT_A#0) ← *((const byte[8]) keyboard_matrix_row_bitmask#0 + (byte) keyboard_matrix_read::rowid#0) -- _deref_pbuc1=pbuc2_derefidx_vbuxx lda keyboard_matrix_row_bitmask,x sta CIA1_PORT_A - //SEG697 [319] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) -- vbuaa=_bnot__deref_pbuc1 + //SEG699 [319] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) -- vbuaa=_bnot__deref_pbuc1 lda CIA1_PORT_B eor #$ff jmp breturn - //SEG698 keyboard_matrix_read::@return + //SEG700 keyboard_matrix_read::@return breturn: - //SEG699 [320] return + //SEG701 [320] return rts } -//SEG700 init -init: { - .label _14 = $c - .label li = 5 +//SEG702 tables_init +tables_init: { .label pli = 5 .label idx = 2 - .label line = 5 - .label l = 2 - //SEG701 [322] call fill - //SEG702 [350] phi from init to fill [phi:init->fill] - fill_from_init: - //SEG703 [350] phi (byte) fill::val#3 = (byte/word/signed word/dword/signed dword) 160 [phi:init->fill#0] -- vbuxx=vbuc1 - ldx #$a0 - //SEG704 [350] phi (byte*) fill::addr#0 = (const byte*) SCREEN#0 [phi:init->fill#1] -- pbuz1=pbuc1 - lda #SCREEN - sta fill.addr+1 - jsr fill - //SEG705 [323] phi from init to init::@9 [phi:init->init::@9] - b9_from_init: - jmp b9 - //SEG706 init::@9 - b9: - //SEG707 [324] call fill - //SEG708 [350] phi from init::@9 to fill [phi:init::@9->fill] - fill_from_b9: - //SEG709 [350] phi (byte) fill::val#3 = (const byte) BLACK#0 [phi:init::@9->fill#0] -- vbuxx=vbuc1 - ldx #BLACK - //SEG710 [350] phi (byte*) fill::addr#0 = (const byte*) COLS#0 [phi:init::@9->fill#1] -- pbuz1=pbuc1 - lda #COLS - sta fill.addr+1 - jsr fill - //SEG711 [325] phi from init::@9 to init::@1 [phi:init::@9->init::@1] - b1_from_b9: - //SEG712 [325] phi (byte*) init::li#2 = (const byte*) COLS#0+(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 15 [phi:init::@9->init::@1#0] -- pbuz1=pbuc1 - lda #COLS+$28+$f - sta li+1 - //SEG713 [325] phi (byte) init::i#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:init::@9->init::@1#1] -- vbuxx=vbuc1 - ldx #0 - jmp b1 - //SEG714 [325] phi from init::@1 to init::@1 [phi:init::@1->init::@1] - b1_from_b1: - //SEG715 [325] phi (byte*) init::li#2 = (byte*) init::li#1 [phi:init::@1->init::@1#0] -- register_copy - //SEG716 [325] phi (byte) init::i#2 = (byte) init::i#1 [phi:init::@1->init::@1#1] -- register_copy - jmp b1 - //SEG717 init::@1 - b1: - //SEG718 [326] (byte~) init::$5 ← (byte) init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuaa=vbuxx_rol_1 - txa - asl - //SEG719 [327] *((const byte*[PLAYFIELD_LINES#0+3]) screen_lines#0 + (byte~) init::$5) ← (byte*) init::li#2 -- pptc1_derefidx_vbuaa=pbuz1 - tay - lda li - sta screen_lines,y - lda li+1 - sta screen_lines+1,y - //SEG720 [328] (byte*) init::li#1 ← (byte*) init::li#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 -- pbuz1=pbuz1_plus_vbuc1 - lda li - clc - adc #$28 - sta li - bcc !+ - inc li+1 - !: - //SEG721 [329] (byte) init::i#1 ← ++ (byte) init::i#2 -- vbuxx=_inc_vbuxx - inx - //SEG722 [330] if((byte) init::i#1!=(const byte) PLAYFIELD_LINES#0+(byte/signed byte/word/signed word/dword/signed dword) 2+(byte/signed byte/word/signed word/dword/signed dword) 1) goto init::@1 -- vbuxx_neq_vbuc1_then_la1 - cpx #PLAYFIELD_LINES+2+1 - bne b1_from_b1 - //SEG723 [331] phi from init::@1 to init::@2 [phi:init::@1->init::@2] - b2_from_b1: - //SEG724 [331] phi (byte) init::idx#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:init::@1->init::@2#0] -- vbuz1=vbuc1 + //SEG703 [322] phi from tables_init to tables_init::@1 [phi:tables_init->tables_init::@1] + b1_from_tables_init: + //SEG704 [322] phi (byte) tables_init::idx#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:tables_init->tables_init::@1#0] -- vbuz1=vbuc1 lda #0 sta idx - //SEG725 [331] phi (byte*) init::pli#2 = (const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 [phi:init::@1->init::@2#1] -- pbuz1=pbuc1 + //SEG705 [322] phi (byte*) tables_init::pli#2 = (const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 [phi:tables_init->tables_init::@1#1] -- pbuz1=pbuc1 lda #playfield sta pli+1 - //SEG726 [331] phi (byte) init::j#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:init::@1->init::@2#2] -- vbuxx=vbuc1 + //SEG706 [322] phi (byte) tables_init::j#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:tables_init->tables_init::@1#2] -- vbuxx=vbuc1 ldx #0 - jmp b2 - //SEG727 [331] phi from init::@2 to init::@2 [phi:init::@2->init::@2] - b2_from_b2: - //SEG728 [331] phi (byte) init::idx#2 = (byte) init::idx#1 [phi:init::@2->init::@2#0] -- register_copy - //SEG729 [331] phi (byte*) init::pli#2 = (byte*) init::pli#1 [phi:init::@2->init::@2#1] -- register_copy - //SEG730 [331] phi (byte) init::j#2 = (byte) init::j#1 [phi:init::@2->init::@2#2] -- register_copy - jmp b2 - //SEG731 init::@2 - b2: - //SEG732 [332] (byte~) init::$8 ← (byte) init::j#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuaa=vbuxx_rol_1 + jmp b1 + //SEG707 [322] phi from tables_init::@1 to tables_init::@1 [phi:tables_init::@1->tables_init::@1] + b1_from_b1: + //SEG708 [322] phi (byte) tables_init::idx#2 = (byte) tables_init::idx#1 [phi:tables_init::@1->tables_init::@1#0] -- register_copy + //SEG709 [322] phi (byte*) tables_init::pli#2 = (byte*) tables_init::pli#1 [phi:tables_init::@1->tables_init::@1#1] -- register_copy + //SEG710 [322] phi (byte) tables_init::j#2 = (byte) tables_init::j#1 [phi:tables_init::@1->tables_init::@1#2] -- register_copy + jmp b1 + //SEG711 tables_init::@1 + b1: + //SEG712 [323] (byte~) tables_init::$1 ← (byte) tables_init::j#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuaa=vbuxx_rol_1 txa asl - //SEG733 [333] *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte~) init::$8) ← (byte*) init::pli#2 -- pptc1_derefidx_vbuaa=pbuz1 + //SEG713 [324] *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte~) tables_init::$1) ← (byte*) tables_init::pli#2 -- pptc1_derefidx_vbuaa=pbuz1 tay lda pli sta playfield_lines,y lda pli+1 sta playfield_lines+1,y - //SEG734 [334] *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0 + (byte) init::j#2) ← (byte) init::idx#2 -- pbuc1_derefidx_vbuxx=vbuz1 + //SEG714 [325] *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0 + (byte) tables_init::j#2) ← (byte) tables_init::idx#2 -- pbuc1_derefidx_vbuxx=vbuz1 lda idx sta playfield_lines_idx,x - //SEG735 [335] (byte*) init::pli#1 ← (byte*) init::pli#2 + (const byte) PLAYFIELD_COLS#0 -- pbuz1=pbuz1_plus_vbuc1 + //SEG715 [326] (byte*) tables_init::pli#1 ← (byte*) tables_init::pli#2 + (const byte) PLAYFIELD_COLS#0 -- pbuz1=pbuz1_plus_vbuc1 lda pli clc adc #PLAYFIELD_COLS @@ -11313,72 +11303,150 @@ init: { bcc !+ inc pli+1 !: - //SEG736 [336] (byte) init::idx#1 ← (byte) init::idx#2 + (const byte) PLAYFIELD_COLS#0 -- vbuz1=vbuz1_plus_vbuc1 + //SEG716 [327] (byte) tables_init::idx#1 ← (byte) tables_init::idx#2 + (const byte) PLAYFIELD_COLS#0 -- vbuz1=vbuz1_plus_vbuc1 lda #PLAYFIELD_COLS clc adc idx sta idx - //SEG737 [337] (byte) init::j#1 ← ++ (byte) init::j#2 -- vbuxx=_inc_vbuxx + //SEG717 [328] (byte) tables_init::j#1 ← ++ (byte) tables_init::j#2 -- vbuxx=_inc_vbuxx inx - //SEG738 [338] if((byte) init::j#1!=(const byte) PLAYFIELD_LINES#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto init::@2 -- vbuxx_neq_vbuc1_then_la1 + //SEG718 [329] if((byte) tables_init::j#1!=(const byte) PLAYFIELD_LINES#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto tables_init::@1 -- vbuxx_neq_vbuc1_then_la1 cpx #PLAYFIELD_LINES-1+1 - bne b2_from_b2 - jmp b6 - //SEG739 init::@6 - b6: - //SEG740 [339] *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0+(const byte) PLAYFIELD_LINES#0) ← (const byte) PLAYFIELD_COLS#0*(const byte) PLAYFIELD_LINES#0 -- _deref_pbuc1=vbuc2 + bne b1_from_b1 + jmp b2 + //SEG719 tables_init::@2 + b2: + //SEG720 [330] *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0+(const byte) PLAYFIELD_LINES#0) ← (const byte) PLAYFIELD_COLS#0*(const byte) PLAYFIELD_LINES#0 -- _deref_pbuc1=vbuc2 lda #PLAYFIELD_COLS*PLAYFIELD_LINES sta playfield_lines_idx+PLAYFIELD_LINES - //SEG741 [340] phi from init::@6 to init::@3 [phi:init::@6->init::@3] - b3_from_b6: - //SEG742 [340] phi (byte) init::l#4 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:init::@6->init::@3#0] -- vbuz1=vbuc1 + jmp breturn + //SEG721 tables_init::@return + breturn: + //SEG722 [331] return + rts +} +//SEG723 render_init +render_init: { + .label _10 = $c + .label li = 5 + .label line = 5 + .label l = 2 + //SEG724 [333] call fill + //SEG725 [352] phi from render_init to fill [phi:render_init->fill] + fill_from_render_init: + //SEG726 [352] phi (byte) fill::val#3 = (byte/word/signed word/dword/signed dword) 160 [phi:render_init->fill#0] -- vbuxx=vbuc1 + ldx #$a0 + //SEG727 [352] phi (byte*) fill::addr#0 = (const byte*) SCREEN#0 [phi:render_init->fill#1] -- pbuz1=pbuc1 + lda #SCREEN + sta fill.addr+1 + jsr fill + //SEG728 [334] phi from render_init to render_init::@7 [phi:render_init->render_init::@7] + b7_from_render_init: + jmp b7 + //SEG729 render_init::@7 + b7: + //SEG730 [335] call fill + //SEG731 [352] phi from render_init::@7 to fill [phi:render_init::@7->fill] + fill_from_b7: + //SEG732 [352] phi (byte) fill::val#3 = (const byte) BLACK#0 [phi:render_init::@7->fill#0] -- vbuxx=vbuc1 + ldx #BLACK + //SEG733 [352] phi (byte*) fill::addr#0 = (const byte*) COLS#0 [phi:render_init::@7->fill#1] -- pbuz1=pbuc1 + lda #COLS + sta fill.addr+1 + jsr fill + //SEG734 [336] phi from render_init::@7 to render_init::@1 [phi:render_init::@7->render_init::@1] + b1_from_b7: + //SEG735 [336] phi (byte*) render_init::li#2 = (const byte*) COLS#0+(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 15 [phi:render_init::@7->render_init::@1#0] -- pbuz1=pbuc1 + lda #COLS+$28+$f + sta li+1 + //SEG736 [336] phi (byte) render_init::i#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_init::@7->render_init::@1#1] -- vbuxx=vbuc1 + ldx #0 + jmp b1 + //SEG737 [336] phi from render_init::@1 to render_init::@1 [phi:render_init::@1->render_init::@1] + b1_from_b1: + //SEG738 [336] phi (byte*) render_init::li#2 = (byte*) render_init::li#1 [phi:render_init::@1->render_init::@1#0] -- register_copy + //SEG739 [336] phi (byte) render_init::i#2 = (byte) render_init::i#1 [phi:render_init::@1->render_init::@1#1] -- register_copy + jmp b1 + //SEG740 render_init::@1 + b1: + //SEG741 [337] (byte~) render_init::$5 ← (byte) render_init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuaa=vbuxx_rol_1 + txa + asl + //SEG742 [338] *((const byte*[PLAYFIELD_LINES#0+3]) screen_lines#0 + (byte~) render_init::$5) ← (byte*) render_init::li#2 -- pptc1_derefidx_vbuaa=pbuz1 + tay + lda li + sta screen_lines,y + lda li+1 + sta screen_lines+1,y + //SEG743 [339] (byte*) render_init::li#1 ← (byte*) render_init::li#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 -- pbuz1=pbuz1_plus_vbuc1 + lda li + clc + adc #$28 + sta li + bcc !+ + inc li+1 + !: + //SEG744 [340] (byte) render_init::i#1 ← ++ (byte) render_init::i#2 -- vbuxx=_inc_vbuxx + inx + //SEG745 [341] if((byte) render_init::i#1!=(const byte) PLAYFIELD_LINES#0+(byte/signed byte/word/signed word/dword/signed dword) 2+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_init::@1 -- vbuxx_neq_vbuc1_then_la1 + cpx #PLAYFIELD_LINES+2+1 + bne b1_from_b1 + //SEG746 [342] phi from render_init::@1 to render_init::@2 [phi:render_init::@1->render_init::@2] + b2_from_b1: + //SEG747 [342] phi (byte) render_init::l#4 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_init::@1->render_init::@2#0] -- vbuz1=vbuc1 lda #0 sta l - //SEG743 [340] phi (byte*) init::line#4 = (const byte*) COLS#0+(byte/signed byte/word/signed word/dword/signed dword) 14 [phi:init::@6->init::@3#1] -- pbuz1=pbuc1 + //SEG748 [342] phi (byte*) render_init::line#4 = (const byte*) COLS#0+(byte/signed byte/word/signed word/dword/signed dword) 14 [phi:render_init::@1->render_init::@2#1] -- pbuz1=pbuc1 lda #COLS+$e sta line+1 - jmp b3 - //SEG744 [340] phi from init::@7 to init::@3 [phi:init::@7->init::@3] - b3_from_b7: - //SEG745 [340] phi (byte) init::l#4 = (byte) init::l#1 [phi:init::@7->init::@3#0] -- register_copy - //SEG746 [340] phi (byte*) init::line#4 = (byte*) init::line#1 [phi:init::@7->init::@3#1] -- register_copy - jmp b3 - //SEG747 init::@3 - b3: - //SEG748 [341] phi from init::@3 to init::@4 [phi:init::@3->init::@4] - b4_from_b3: - //SEG749 [341] phi (byte) init::c#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:init::@3->init::@4#0] -- vbuxx=vbuc1 + jmp b2 + //SEG749 [342] phi from render_init::@5 to render_init::@2 [phi:render_init::@5->render_init::@2] + b2_from_b5: + //SEG750 [342] phi (byte) render_init::l#4 = (byte) render_init::l#1 [phi:render_init::@5->render_init::@2#0] -- register_copy + //SEG751 [342] phi (byte*) render_init::line#4 = (byte*) render_init::line#1 [phi:render_init::@5->render_init::@2#1] -- register_copy + jmp b2 + //SEG752 render_init::@2 + b2: + //SEG753 [343] phi from render_init::@2 to render_init::@3 [phi:render_init::@2->render_init::@3] + b3_from_b2: + //SEG754 [343] phi (byte) render_init::c#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_init::@2->render_init::@3#0] -- vbuxx=vbuc1 ldx #0 - jmp b4 - //SEG750 [341] phi from init::@4 to init::@4 [phi:init::@4->init::@4] - b4_from_b4: - //SEG751 [341] phi (byte) init::c#2 = (byte) init::c#1 [phi:init::@4->init::@4#0] -- register_copy - jmp b4 - //SEG752 init::@4 - b4: - //SEG753 [342] (byte*~) init::$14 ← (byte*) init::line#4 + (byte) init::c#2 -- pbuz1=pbuz2_plus_vbuxx + jmp b3 + //SEG755 [343] phi from render_init::@3 to render_init::@3 [phi:render_init::@3->render_init::@3] + b3_from_b3: + //SEG756 [343] phi (byte) render_init::c#2 = (byte) render_init::c#1 [phi:render_init::@3->render_init::@3#0] -- register_copy + jmp b3 + //SEG757 render_init::@3 + b3: + //SEG758 [344] (byte*~) render_init::$10 ← (byte*) render_init::line#4 + (byte) render_init::c#2 -- pbuz1=pbuz2_plus_vbuxx txa clc adc line - sta _14 + sta _10 lda #0 adc line+1 - sta _14+1 - //SEG754 [343] *((byte*~) init::$14) ← (const byte) DARK_GREY#0 -- _deref_pbuz1=vbuc1 + sta _10+1 + //SEG759 [345] *((byte*~) render_init::$10) ← (const byte) DARK_GREY#0 -- _deref_pbuz1=vbuc1 lda #DARK_GREY ldy #0 - sta (_14),y - //SEG755 [344] (byte) init::c#1 ← ++ (byte) init::c#2 -- vbuxx=_inc_vbuxx + sta (_10),y + //SEG760 [346] (byte) render_init::c#1 ← ++ (byte) render_init::c#2 -- vbuxx=_inc_vbuxx inx - //SEG756 [345] if((byte) init::c#1!=(const byte) PLAYFIELD_COLS#0+(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto init::@4 -- vbuxx_neq_vbuc1_then_la1 + //SEG761 [347] if((byte) render_init::c#1!=(const byte) PLAYFIELD_COLS#0+(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_init::@3 -- vbuxx_neq_vbuc1_then_la1 cpx #PLAYFIELD_COLS+1+1 - bne b4_from_b4 - jmp b7 - //SEG757 init::@7 - b7: - //SEG758 [346] (byte*) init::line#1 ← (byte*) init::line#4 + (byte/signed byte/word/signed word/dword/signed dword) 40 -- pbuz1=pbuz1_plus_vbuc1 + bne b3_from_b3 + jmp b5 + //SEG762 render_init::@5 + b5: + //SEG763 [348] (byte*) render_init::line#1 ← (byte*) render_init::line#4 + (byte/signed byte/word/signed word/dword/signed dword) 40 -- pbuz1=pbuz1_plus_vbuc1 lda line clc adc #$28 @@ -11386,23 +11454,23 @@ init: { bcc !+ inc line+1 !: - //SEG759 [347] (byte) init::l#1 ← ++ (byte) init::l#4 -- vbuz1=_inc_vbuz1 + //SEG764 [349] (byte) render_init::l#1 ← ++ (byte) render_init::l#4 -- vbuz1=_inc_vbuz1 inc l - //SEG760 [348] if((byte) init::l#1!=(const byte) PLAYFIELD_LINES#0+(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto init::@3 -- vbuz1_neq_vbuc1_then_la1 + //SEG765 [350] if((byte) render_init::l#1!=(const byte) PLAYFIELD_LINES#0+(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_init::@2 -- vbuz1_neq_vbuc1_then_la1 lda l cmp #PLAYFIELD_LINES+1+1 - bne b3_from_b7 + bne b2_from_b5 jmp breturn - //SEG761 init::@return + //SEG766 render_init::@return breturn: - //SEG762 [349] return + //SEG767 [351] return rts } -//SEG763 fill +//SEG768 fill fill: { .label end = $c .label addr = 5 - //SEG764 [351] (byte*) fill::end#0 ← (byte*) fill::addr#0 + (word/signed word/dword/signed dword) 1000 -- pbuz1=pbuz2_plus_vwuc1 + //SEG769 [353] (byte*) fill::end#0 ← (byte*) fill::addr#0 + (word/signed word/dword/signed dword) 1000 -- pbuz1=pbuz2_plus_vwuc1 lda addr clc adc #<$3e8 @@ -11410,23 +11478,23 @@ fill: { lda addr+1 adc #>$3e8 sta end+1 - //SEG765 [352] phi from fill fill::@1 to fill::@1 [phi:fill/fill::@1->fill::@1] + //SEG770 [354] phi from fill fill::@1 to fill::@1 [phi:fill/fill::@1->fill::@1] b1_from_fill: b1_from_b1: - //SEG766 [352] phi (byte*) fill::addr#2 = (byte*) fill::addr#0 [phi:fill/fill::@1->fill::@1#0] -- register_copy + //SEG771 [354] phi (byte*) fill::addr#2 = (byte*) fill::addr#0 [phi:fill/fill::@1->fill::@1#0] -- register_copy jmp b1 - //SEG767 fill::@1 + //SEG772 fill::@1 b1: - //SEG768 [353] *((byte*) fill::addr#2) ← (byte) fill::val#3 -- _deref_pbuz1=vbuxx + //SEG773 [355] *((byte*) fill::addr#2) ← (byte) fill::val#3 -- _deref_pbuz1=vbuxx txa ldy #0 sta (addr),y - //SEG769 [354] (byte*) fill::addr#1 ← ++ (byte*) fill::addr#2 -- pbuz1=_inc_pbuz1 + //SEG774 [356] (byte*) fill::addr#1 ← ++ (byte*) fill::addr#2 -- pbuz1=_inc_pbuz1 inc addr bne !+ inc addr+1 !: - //SEG770 [355] if((byte*) fill::addr#1!=(byte*) fill::end#0) goto fill::@1 -- pbuz1_neq_pbuz2_then_la1 + //SEG775 [357] if((byte*) fill::addr#1!=(byte*) fill::end#0) goto fill::@1 -- pbuz1_neq_pbuz2_then_la1 lda addr+1 cmp end+1 bne b1_from_b1 @@ -11434,25 +11502,25 @@ fill: { cmp end bne b1_from_b1 jmp breturn - //SEG771 fill::@return + //SEG776 fill::@return breturn: - //SEG772 [356] return + //SEG777 [358] return rts } -//SEG773 sid_rnd_init +//SEG778 sid_rnd_init sid_rnd_init: { - //SEG774 [357] *((const word*) SID_VOICE3_FREQ#0) ← (word/dword/signed dword) 65535 -- _deref_pwuc1=vwuc2 + //SEG779 [359] *((const word*) SID_VOICE3_FREQ#0) ← (word/dword/signed dword) 65535 -- _deref_pwuc1=vwuc2 lda #<$ffff sta SID_VOICE3_FREQ lda #>$ffff sta SID_VOICE3_FREQ+1 - //SEG775 [358] *((const byte*) SID_VOICE3_CONTROL#0) ← (const byte) SID_CONTROL_NOISE#0 -- _deref_pbuc1=vbuc2 + //SEG780 [360] *((const byte*) SID_VOICE3_CONTROL#0) ← (const byte) SID_CONTROL_NOISE#0 -- _deref_pbuc1=vbuc2 lda #SID_CONTROL_NOISE sta SID_VOICE3_CONTROL jmp breturn - //SEG776 sid_rnd_init::@return + //SEG781 sid_rnd_init::@return breturn: - //SEG777 [359] return + //SEG782 [361] return rts } keyboard_matrix_row_bitmask: .byte $fe, $fd, $fb, $f7, $ef, $df, $bf, $7f @@ -11481,23 +11549,23 @@ sid_rnd_init: { screen_lines: .fill 2*(PLAYFIELD_LINES+3), 0 ASSEMBLER OPTIMIZATIONS -Removing instruction jmp b26 +Removing instruction jmp b27 Removing instruction jmp bend Removing instruction jmp b21 Removing instruction jmp b22 Removing instruction jmp b23 Removing instruction jmp b24 +Removing instruction jmp b25 Removing instruction jmp b1 Removing instruction jmp b4 Removing instruction jmp b7 Removing instruction jmp b9 -Removing instruction jmp b26 Removing instruction jmp b27 Removing instruction jmp b28 Removing instruction jmp b29 Removing instruction jmp b30 -Removing instruction jmp b19 Removing instruction jmp b31 +Removing instruction jmp b19 Removing instruction jmp b32 Removing instruction jmp b10 Removing instruction jmp b1 @@ -11597,13 +11665,14 @@ Removing instruction jmp b17 Removing instruction jmp b5 Removing instruction jmp b19 Removing instruction jmp breturn -Removing instruction jmp b9 Removing instruction jmp b1 Removing instruction jmp b2 -Removing instruction jmp b6 -Removing instruction jmp b3 -Removing instruction jmp b4 +Removing instruction jmp breturn Removing instruction jmp b7 +Removing instruction jmp b1 +Removing instruction jmp b2 +Removing instruction jmp b3 +Removing instruction jmp b5 Removing instruction jmp breturn Removing instruction jmp b1 Removing instruction jmp breturn @@ -11653,20 +11722,25 @@ Replacing label b4_from_b5 with b4 Replacing label b3_from_b19 with b3 Replacing label b5_from_b7 with b5 Replacing label b1_from_b1 with b1 -Replacing label b2_from_b2 with b2 -Replacing label b4_from_b4 with b4 -Replacing label b3_from_b7 with b3 +Replacing label b1_from_b1 with b1 +Replacing label b3_from_b3 with b3 +Replacing label b2_from_b5 with b2 Replacing label b1_from_b1 with b1 Replacing label b1_from_b1 with b1 Removing instruction bbegin: -Removing instruction b26_from_bbegin: -Removing instruction main_from_b26: -Removing instruction bend_from_b26: +Removing instruction b27_from_bbegin: +Removing instruction main_from_b27: +Removing instruction bend_from_b27: Removing instruction b22_from_b21: +Removing instruction tables_init_from_b22: Removing instruction b23_from_b22: -Removing instruction render_playfield_from_b23: +Removing instruction spawn_current_from_b23: +Removing instruction b24_from_b23: +Removing instruction render_playfield_from_b24: Removing instruction b1: -Removing instruction b26_from_b9: +Removing instruction b27_from_b9: +Removing instruction b19_from_b31: +Removing instruction render_playfield_from_b19: Removing instruction b1_from_b2: Removing instruction b3_from_b4: Removing instruction b2_from_b1: @@ -11691,6 +11765,7 @@ Removing instruction b13_from_b18: Removing instruction b19_from_b13: Removing instruction remove_lines_from_b19: Removing instruction b20_from_b19: +Removing instruction spawn_current_from_b20: Removing instruction breturn_from_b7: Removing instruction b2_from_b1: Removing instruction b1_from_b3: @@ -11730,37 +11805,36 @@ Removing instruction b5_from_b15: Removing instruction b5_from_b17: Removing instruction b5_from_b4: Removing instruction b5_from_b7: -Removing instruction b9_from_init: -Removing instruction fill_from_b9: Removing instruction b1_from_b1: -Removing instruction b2_from_b2: -Removing instruction b3_from_b7: -Removing instruction b4_from_b3: -Removing instruction b4_from_b4: +Removing instruction b7_from_render_init: +Removing instruction fill_from_b7: +Removing instruction b1_from_b1: +Removing instruction b2_from_b5: +Removing instruction b3_from_b2: +Removing instruction b3_from_b3: Removing instruction b1_from_fill: Removing instruction b1_from_b1: Succesful ASM optimization Pass5RedundantLabelElimination -Removing instruction b26: +Removing instruction b27: Removing instruction bend: Removing instruction b21: -Removing instruction init_from_b21: +Removing instruction render_init_from_b21: Removing instruction b22: Removing instruction b23: Removing instruction b24: -Removing instruction render_current_from_b24: -Removing instruction b1_from_b24: +Removing instruction b25: +Removing instruction render_current_from_b25: +Removing instruction b1_from_b25: Removing instruction b9: Removing instruction keyboard_event_scan_from_b9: -Removing instruction b26: Removing instruction b27: Removing instruction b28: Removing instruction b29: Removing instruction b30: -Removing instruction b19: -Removing instruction render_playfield_from_b19: Removing instruction b31: -Removing instruction render_current_from_b31: +Removing instruction b19: Removing instruction b32: +Removing instruction render_current_from_b32: Removing instruction b1_from_b10: Removing instruction b1_from_render_current: Removing instruction b6: @@ -11851,13 +11925,14 @@ Removing instruction b16: Removing instruction b17: Removing instruction b19: Removing instruction breturn: -Removing instruction fill_from_init: -Removing instruction b9: -Removing instruction b1_from_b9: -Removing instruction b2_from_b1: -Removing instruction b6: -Removing instruction b3_from_b6: +Removing instruction b1_from_tables_init: +Removing instruction b2: +Removing instruction breturn: +Removing instruction fill_from_render_init: Removing instruction b7: +Removing instruction b1_from_b7: +Removing instruction b2_from_b1: +Removing instruction b5: Removing instruction breturn: Removing instruction breturn: Removing instruction breturn: @@ -11885,9 +11960,9 @@ Removing instruction beq b11 Removing instruction beq b24 Removing instruction jmp b4 Removing instruction jmp b1 +Removing instruction jmp b1 Removing instruction jmp b2 Removing instruction jmp b3 -Removing instruction jmp b4 Succesful ASM optimization Pass5NextJumpElimination Replacing instruction ldy ypos2 with TAY Removing instruction b13: @@ -11900,7 +11975,7 @@ Removing unreachable instruction jmp b3 Succesful ASM optimization Pass5UnreachableCodeElimination FINAL SYMBOL TABLE -(label) @26 +(label) @27 (label) @begin (label) @end (byte) BLACK @@ -12050,7 +12125,7 @@ FINAL SYMBOL TABLE (byte) collision::ypos2#2 ypos2 zp ZP_BYTE:8 87.06666666666668 (byte) current_movedown_counter (byte) current_movedown_counter#10 current_movedown_counter zp ZP_BYTE:3 0.5333333333333333 -(byte) current_movedown_counter#12 current_movedown_counter zp ZP_BYTE:3 0.5 +(byte) current_movedown_counter#12 current_movedown_counter zp ZP_BYTE:3 0.52 (byte) current_movedown_counter#15 current_movedown_counter zp ZP_BYTE:3 1.3 (byte) current_movedown_fast (const byte) current_movedown_fast#0 current_movedown_fast = (byte/signed byte/word/signed word/dword/signed dword) 5 @@ -12059,54 +12134,54 @@ FINAL SYMBOL TABLE (byte) current_orientation (byte) current_orientation#15 current_orientation zp ZP_BYTE:14 0.5 (byte) current_orientation#18 current_orientation zp ZP_BYTE:14 0.32653061224489793 -(byte) current_orientation#23 current_orientation zp ZP_BYTE:14 1.0625 +(byte) current_orientation#23 current_orientation zp ZP_BYTE:14 1.1333333333333333 (byte) current_orientation#33 current_orientation zp ZP_BYTE:14 4.0 (byte) current_orientation#8 current_orientation zp ZP_BYTE:14 3.0 (byte*) current_piece (byte*) current_piece#11 current_piece zp ZP_WORD:12 0.5588235294117647 -(byte*) current_piece#13 current_piece zp ZP_WORD:12 0.3432835820895522 +(byte*) current_piece#13 current_piece zp ZP_WORD:12 0.3484848484848484 (byte*) current_piece#15 current_piece#15 zp ZP_WORD:5 10.0 (byte*) current_piece#23 current_piece zp ZP_WORD:12 6.0 -(byte*~) current_piece#69 current_piece zp ZP_WORD:12 4.0 -(byte*~) current_piece#70 current_piece#70 zp ZP_WORD:5 4.0 +(byte*~) current_piece#70 current_piece zp ZP_WORD:12 4.0 (byte*~) current_piece#71 current_piece#71 zp ZP_WORD:5 4.0 (byte*~) current_piece#72 current_piece#72 zp ZP_WORD:5 4.0 (byte*~) current_piece#73 current_piece#73 zp ZP_WORD:5 4.0 -(byte*~) current_piece#74 current_piece zp ZP_WORD:12 4.0 +(byte*~) current_piece#74 current_piece#74 zp ZP_WORD:5 4.0 +(byte*~) current_piece#75 current_piece zp ZP_WORD:12 4.0 (byte) current_piece_color (byte) current_piece_color#11 current_piece_color zp ZP_BYTE:18 19.96078431372549 -(byte) current_piece_color#13 current_piece_color zp ZP_BYTE:18 1.0 +(byte) current_piece_color#13 current_piece_color zp ZP_BYTE:18 1.04 (byte) current_piece_color#15 current_piece_color zp ZP_BYTE:18 0.7272727272727273 (byte) current_piece_color#23 current_piece_color zp ZP_BYTE:18 6.0 -(byte) current_piece_color#65 current_piece_color#65 zp ZP_BYTE:7 53.368421052631575 -(byte~) current_piece_color#73 current_piece_color#73 zp ZP_BYTE:7 4.0 -(byte~) current_piece_color#74 current_piece_color#74 zp ZP_BYTE:7 22.0 +(byte) current_piece_color#66 current_piece_color#66 zp ZP_BYTE:7 53.368421052631575 +(byte~) current_piece_color#74 current_piece_color#74 zp ZP_BYTE:7 4.0 +(byte~) current_piece_color#75 current_piece_color#75 zp ZP_BYTE:7 22.0 (byte*) current_piece_gfx (byte*) current_piece_gfx#10 current_piece_gfx zp ZP_WORD:15 0.6666666666666666 (byte*) current_piece_gfx#15 current_piece_gfx zp ZP_WORD:15 19.96078431372549 (byte*) current_piece_gfx#17 current_piece_gfx zp ZP_WORD:15 0.2962962962962963 -(byte*) current_piece_gfx#18 current_piece_gfx zp ZP_WORD:15 1.75 +(byte*) current_piece_gfx#18 current_piece_gfx zp ZP_WORD:15 1.8666666666666665 (byte*) current_piece_gfx#29 current_piece_gfx zp ZP_WORD:15 6.0 (byte*) current_piece_gfx#63 current_piece_gfx#63 zp ZP_WORD:5 53.368421052631575 (byte*) current_piece_gfx#8 current_piece_gfx zp ZP_WORD:15 4.0 -(byte*~) current_piece_gfx#85 current_piece_gfx#85 zp ZP_WORD:5 2.0 -(byte*~) current_piece_gfx#86 current_piece_gfx#86 zp ZP_WORD:5 11.0 +(byte*~) current_piece_gfx#86 current_piece_gfx#86 zp ZP_WORD:5 2.0 +(byte*~) current_piece_gfx#87 current_piece_gfx#87 zp ZP_WORD:5 11.0 (byte) current_xpos (byte) current_xpos#16 current_xpos zp ZP_BYTE:17 2.313725490196078 (byte) current_xpos#19 current_xpos zp ZP_BYTE:17 0.72 -(byte) current_xpos#23 current_xpos zp ZP_BYTE:17 0.8500000000000003 +(byte) current_xpos#23 current_xpos zp ZP_BYTE:17 0.871794871794872 (byte) current_xpos#36 current_xpos zp ZP_BYTE:17 4.0 (byte) current_xpos#63 current_xpos#63 zp ZP_BYTE:4 5.894736842105264 (byte) current_xpos#7 current_xpos zp ZP_BYTE:17 4.0 (byte) current_xpos#9 current_xpos zp ZP_BYTE:17 4.0 -(byte~) current_xpos#94 current_xpos#94 zp ZP_BYTE:4 7.333333333333333 +(byte~) current_xpos#95 current_xpos#95 zp ZP_BYTE:4 7.333333333333333 (byte) current_ypos (byte) current_ypos#12 current_ypos zp ZP_BYTE:2 0.5588235294117647 -(byte) current_ypos#16 current_ypos zp ZP_BYTE:2 0.47761194029850734 +(byte) current_ypos#16 current_ypos zp ZP_BYTE:2 0.48484848484848475 (byte) current_ypos#22 reg byte x 13.0 (byte) current_ypos#31 current_ypos zp ZP_BYTE:2 4.0 (byte) current_ypos#4 current_ypos zp ZP_BYTE:2 4.0 -(byte~) current_ypos#69 reg byte x 5.5 +(byte~) current_ypos#70 reg byte x 5.5 (void()) fill((byte*) fill::start , (word) fill::size , (byte) fill::val) (label) fill::@1 (label) fill::@return @@ -12148,42 +12223,6 @@ FINAL SYMBOL TABLE (byte) find_line::y (byte) find_line::y#1 y zp ZP_BYTE:7 1001.0 (byte) find_line::y#8 y zp ZP_BYTE:7 300.29999999999995 -(void()) init() -(byte*~) init::$14 $14 zp ZP_WORD:12 202.0 -(byte~) init::$5 reg byte a 22.0 -(byte~) init::$8 reg byte a 22.0 -(label) init::@1 -(label) init::@2 -(label) init::@3 -(label) init::@4 -(label) init::@6 -(label) init::@7 -(label) init::@9 -(label) init::@return -(byte) init::c -(byte) init::c#1 reg byte x 151.5 -(byte) init::c#2 reg byte x 101.0 -(byte) init::i -(byte) init::i#1 reg byte x 16.5 -(byte) init::i#2 reg byte x 8.25 -(byte) init::idx -(byte) init::idx#1 idx zp ZP_BYTE:2 7.333333333333333 -(byte) init::idx#2 idx zp ZP_BYTE:2 6.6000000000000005 -(byte) init::j -(byte) init::j#1 reg byte x 16.5 -(byte) init::j#2 reg byte x 7.333333333333333 -(byte) init::l -(byte) init::l#1 l zp ZP_BYTE:2 16.5 -(byte) init::l#4 l zp ZP_BYTE:2 3.142857142857143 -(byte*) init::li -(byte*) init::li#1 li zp ZP_WORD:5 7.333333333333333 -(byte*) init::li#2 li zp ZP_WORD:5 11.0 -(byte*) init::line -(byte*) init::line#1 line zp ZP_WORD:5 7.333333333333333 -(byte*) init::line#4 line zp ZP_WORD:5 20.499999999999996 -(byte*) init::pli -(byte*) init::pli#1 pli zp ZP_WORD:5 5.5 -(byte*) init::pli#2 pli zp ZP_WORD:5 8.25 (byte()) keyboard_event_get() (label) keyboard_event_get::@3 (label) keyboard_event_get::@return @@ -12260,7 +12299,7 @@ FINAL SYMBOL TABLE (byte) keyboard_events_size#1 keyboard_events_size zp ZP_BYTE:19 2002.0 (byte) keyboard_events_size#10 keyboard_events_size zp ZP_BYTE:19 810.9000000000001 (byte) keyboard_events_size#13 keyboard_events_size zp ZP_BYTE:19 9.967741935483872 -(byte) keyboard_events_size#16 keyboard_events_size zp ZP_BYTE:19 0.49999999999999994 +(byte) keyboard_events_size#16 keyboard_events_size zp ZP_BYTE:19 0.5172413793103449 (byte) keyboard_events_size#19 keyboard_events_size zp ZP_BYTE:19 2.6 (byte) keyboard_events_size#2 keyboard_events_size zp ZP_BYTE:19 2002.0 (byte) keyboard_events_size#29 keyboard_events_size zp ZP_BYTE:19 43.57142857142858 @@ -12315,7 +12354,7 @@ FINAL SYMBOL TABLE (void()) main() (byte~) main::$10 reg byte a 22.0 (byte~) main::$11 reg byte a 22.0 -(byte~) main::$9 reg byte a 22.0 +(byte~) main::$12 reg byte a 22.0 (label) main::@1 (label) main::@10 (label) main::@19 @@ -12323,7 +12362,7 @@ FINAL SYMBOL TABLE (label) main::@22 (label) main::@23 (label) main::@24 -(label) main::@26 +(label) main::@25 (label) main::@27 (label) main::@28 (label) main::@29 @@ -12478,6 +12517,30 @@ FINAL SYMBOL TABLE (byte) render_current::ypos2#0 ypos2 zp ZP_BYTE:8 4.0 (byte) render_current::ypos2#1 ypos2 zp ZP_BYTE:8 67.33333333333333 (byte) render_current::ypos2#2 ypos2 zp ZP_BYTE:8 29.000000000000004 +(void()) render_init() +(byte*~) render_init::$10 $10 zp ZP_WORD:12 202.0 +(byte~) render_init::$5 reg byte a 22.0 +(label) render_init::@1 +(label) render_init::@2 +(label) render_init::@3 +(label) render_init::@5 +(label) render_init::@7 +(label) render_init::@return +(byte) render_init::c +(byte) render_init::c#1 reg byte x 151.5 +(byte) render_init::c#2 reg byte x 101.0 +(byte) render_init::i +(byte) render_init::i#1 reg byte x 16.5 +(byte) render_init::i#2 reg byte x 8.25 +(byte) render_init::l +(byte) render_init::l#1 l zp ZP_BYTE:2 16.5 +(byte) render_init::l#4 l zp ZP_BYTE:2 3.142857142857143 +(byte*) render_init::li +(byte*) render_init::li#1 li zp ZP_WORD:5 7.333333333333333 +(byte*) render_init::li#2 li zp ZP_WORD:5 11.0 +(byte*) render_init::line +(byte*) render_init::line#1 line zp ZP_WORD:5 7.333333333333333 +(byte*) render_init::line#4 line zp ZP_WORD:5 20.499999999999996 (void()) render_playfield() (byte~) render_playfield::$1 reg byte a 202.0 (label) render_playfield::@1 @@ -12517,14 +12580,28 @@ FINAL SYMBOL TABLE (label) spawn_current::@return (byte) spawn_current::piece_idx (byte) spawn_current::piece_idx#1 reg byte x 202.0 -(byte) spawn_current::piece_idx#2 reg byte x 41.199999999999996 +(byte) spawn_current::piece_idx#2 reg byte x 51.5 +(void()) tables_init() +(byte~) tables_init::$1 reg byte a 22.0 +(label) tables_init::@1 +(label) tables_init::@2 +(label) tables_init::@return +(byte) tables_init::idx +(byte) tables_init::idx#1 idx zp ZP_BYTE:2 7.333333333333333 +(byte) tables_init::idx#2 idx zp ZP_BYTE:2 6.6000000000000005 +(byte) tables_init::j +(byte) tables_init::j#1 reg byte x 16.5 +(byte) tables_init::j#2 reg byte x 7.333333333333333 +(byte*) tables_init::pli +(byte*) tables_init::pli#1 pli zp ZP_WORD:5 5.5 +(byte*) tables_init::pli#2 pli zp ZP_WORD:5 8.25 -zp ZP_BYTE:2 [ current_ypos#12 current_ypos#16 current_ypos#31 current_ypos#4 lock_current::ypos2#2 lock_current::ypos2#0 lock_current::ypos2#1 remove_lines::done#3 remove_lines::done#2 init::idx#2 init::idx#1 init::l#4 init::l#1 spawn_current::$3 ] +zp ZP_BYTE:2 [ current_ypos#12 current_ypos#16 current_ypos#31 current_ypos#4 lock_current::ypos2#2 lock_current::ypos2#0 lock_current::ypos2#1 remove_lines::done#3 remove_lines::done#2 tables_init::idx#2 tables_init::idx#1 render_init::l#4 render_init::l#1 spawn_current::$3 ] zp ZP_BYTE:3 [ current_movedown_counter#15 current_movedown_counter#12 current_movedown_counter#10 remove_line::y#4 remove_line::ypos#0 remove_line::y#1 find_line::i#2 find_line::i#3 find_line::i#8 find_line::i#10 lock_current::l#6 lock_current::l#1 ] -reg byte x [ current_ypos#22 current_ypos#69 ] -zp ZP_BYTE:4 [ current_xpos#63 current_xpos#94 render_playfield::l#2 render_playfield::l#1 play_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#2 remove_line::x#2 remove_line::x#1 find_line::filled#4 find_line::filled#2 lock_current::i#2 lock_current::i#3 lock_current::i#7 lock_current::i#9 keyboard_event_pressed::keycode#5 keyboard_event_scan::row#2 keyboard_event_scan::row#1 ] -zp ZP_WORD:5 [ current_piece_gfx#63 current_piece_gfx#85 current_piece_gfx#86 render_playfield::line#2 render_playfield::line#0 render_playfield::line#1 current_piece#15 current_piece#70 current_piece#71 current_piece#72 current_piece#73 collision::piece_gfx#0 init::li#2 init::li#1 init::pli#2 init::pli#1 init::line#4 init::line#1 fill::addr#2 fill::addr#0 fill::addr#1 lock_current::playfield_line#0 ] -zp ZP_BYTE:7 [ current_piece_color#65 current_piece_color#73 current_piece_color#74 render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 collision::xpos#5 collision::xpos#0 collision::xpos#1 collision::xpos#2 collision::xpos#3 find_line::return#2 find_line::y#8 find_line::y#1 lock_current::col#2 lock_current::col#0 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#22 current_ypos#70 ] +zp ZP_BYTE:4 [ current_xpos#63 current_xpos#95 render_playfield::l#2 render_playfield::l#1 play_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#2 remove_line::x#2 remove_line::x#1 find_line::filled#4 find_line::filled#2 lock_current::i#2 lock_current::i#3 lock_current::i#7 lock_current::i#9 keyboard_event_pressed::keycode#5 keyboard_event_scan::row#2 keyboard_event_scan::row#1 ] +zp ZP_WORD:5 [ current_piece_gfx#63 current_piece_gfx#86 current_piece_gfx#87 render_playfield::line#2 render_playfield::line#0 render_playfield::line#1 current_piece#15 current_piece#71 current_piece#72 current_piece#73 current_piece#74 collision::piece_gfx#0 tables_init::pli#2 tables_init::pli#1 render_init::li#2 render_init::li#1 render_init::line#4 render_init::line#1 fill::addr#2 fill::addr#0 fill::addr#1 lock_current::playfield_line#0 ] +zp ZP_BYTE:7 [ current_piece_color#66 current_piece_color#74 current_piece_color#75 render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 collision::xpos#5 collision::xpos#0 collision::xpos#1 collision::xpos#2 collision::xpos#3 find_line::return#2 find_line::y#8 find_line::y#1 lock_current::col#2 lock_current::col#0 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:8 [ render_current::ypos2#2 render_current::ypos2#0 render_current::ypos2#1 collision::ypos2#2 collision::ypos2#0 collision::ypos2#1 find_line::i#1 lock_current::i#1 keyboard_event_scan::row_scan#0 ] zp ZP_BYTE:9 [ render_current::l#3 render_current::l#1 collision::l#6 collision::l#1 ] zp ZP_BYTE:10 [ render_current::i#2 render_current::i#1 render_current::i#4 render_current::i#8 collision::i#2 collision::i#3 collision::i#11 collision::i#13 ] @@ -12538,7 +12615,7 @@ reg byte x [ collision::c#2 collision::c#1 ] reg byte a [ collision::return#14 ] reg byte a [ play_move_leftright::return#2 ] 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_WORD:12 [ current_piece#23 current_piece#74 current_piece#11 current_piece#13 current_piece#69 init::$14 fill::end#0 ] +zp ZP_WORD:12 [ current_piece#23 current_piece#75 current_piece#11 current_piece#13 current_piece#70 render_init::$10 fill::end#0 ] zp ZP_BYTE:14 [ current_orientation#33 current_orientation#15 current_orientation#23 current_orientation#8 current_orientation#18 ] zp ZP_WORD:15 [ current_piece_gfx#29 current_piece_gfx#15 current_piece_gfx#18 current_piece_gfx#10 current_piece_gfx#8 current_piece_gfx#17 ] zp ZP_BYTE:17 [ current_xpos#36 current_xpos#16 current_xpos#23 current_xpos#9 current_xpos#19 current_xpos#7 ] @@ -12552,22 +12629,22 @@ reg byte x [ lock_current::c#2 lock_current::c#1 ] reg byte a [ keyboard_event_get::return#2 keyboard_event_get::return#1 ] reg byte x [ keyboard_event_scan::col#2 keyboard_event_scan::col#1 ] 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 ] -reg byte x [ init::i#2 init::i#1 ] -reg byte x [ init::j#2 init::j#1 ] -reg byte x [ init::c#2 init::c#1 ] +reg byte x [ tables_init::j#2 tables_init::j#1 ] +reg byte x [ render_init::i#2 render_init::i#1 ] +reg byte x [ render_init::c#2 render_init::c#1 ] reg byte x [ fill::val#3 ] reg byte a [ keyboard_event_get::return#3 ] zp ZP_BYTE:20 [ main::key_event#0 ] reg byte a [ play_move_down::key_event#0 ] reg byte a [ play_move_down::return#0 ] -reg byte a [ main::$9 ] +reg byte a [ main::$10 ] zp ZP_BYTE:21 [ main::render#1 main::render#2 ] reg byte a [ play_move_leftright::key_event#0 ] reg byte a [ play_move_leftright::return#0 ] -reg byte a [ main::$10 ] +reg byte a [ main::$11 ] reg byte a [ play_move_rotate::key_event#0 ] reg byte a [ play_move_rotate::return#0 ] -reg byte a [ main::$11 ] +reg byte a [ main::$12 ] reg byte a [ main::render#3 ] zp ZP_WORD:22 [ render_current::screen_line#0 collision::playfield_line#0 ] reg byte a [ render_current::current_cell#0 ] @@ -12610,12 +12687,12 @@ reg byte a [ keyboard_event_scan::$4 ] reg byte a [ keyboard_event_scan::event_type#0 ] reg byte a [ keyboard_event_scan::$11 ] reg byte a [ keyboard_matrix_read::return#0 ] -reg byte a [ init::$5 ] -reg byte a [ init::$8 ] +reg byte a [ tables_init::$1 ] +reg byte a [ render_init::$5 ] FINAL ASSEMBLER -Score: 1198193 +Score: 1198073 //SEG0 Basic Upstart .pc = $801 "Basic" @@ -12666,23 +12743,23 @@ Score: 1198193 .label current_piece_15 = 5 .label current_xpos_63 = 4 .label current_piece_gfx_63 = 5 - .label current_piece_color_65 = 7 - .label current_xpos_94 = 4 - .label current_piece_gfx_85 = 5 + .label current_piece_color_66 = 7 + .label current_xpos_95 = 4 .label current_piece_gfx_86 = 5 - .label current_piece_color_73 = 7 + .label current_piece_gfx_87 = 5 .label current_piece_color_74 = 7 - .label current_piece_70 = 5 + .label current_piece_color_75 = 7 .label current_piece_71 = 5 .label current_piece_72 = 5 .label current_piece_73 = 5 + .label current_piece_74 = 5 //SEG2 @begin -//SEG3 [1] phi from @begin to @26 [phi:@begin->@26] -//SEG4 @26 +//SEG3 [1] phi from @begin to @27 [phi:@begin->@27] +//SEG4 @27 //SEG5 [2] call main -//SEG6 [4] phi from @26 to main [phi:@26->main] +//SEG6 [4] phi from @27 to main [phi:@27->main] jsr main -//SEG7 [3] phi from @26 to @end [phi:@26->@end] +//SEG7 [3] phi from @27 to @end [phi:@27->@end] //SEG8 @end //SEG9 main main: { @@ -12693,421 +12770,423 @@ main: { //SEG11 main::@21 //SEG12 asm { sei } sei - //SEG13 [7] call init - //SEG14 [321] phi from main::@21 to init [phi:main::@21->init] - jsr init + //SEG13 [7] call render_init + //SEG14 [332] phi from main::@21 to render_init [phi:main::@21->render_init] + jsr render_init //SEG15 [8] phi from main::@21 to main::@22 [phi:main::@21->main::@22] //SEG16 main::@22 - //SEG17 [9] call spawn_current + //SEG17 [9] call tables_init + //SEG18 [321] phi from main::@22 to tables_init [phi:main::@22->tables_init] + jsr tables_init + //SEG19 [10] phi from main::@22 to main::@23 [phi:main::@22->main::@23] + //SEG20 main::@23 + //SEG21 [11] call spawn_current + //SEG22 [183] phi from main::@23 to spawn_current [phi:main::@23->spawn_current] jsr spawn_current - //SEG18 [10] phi from main::@22 to main::@23 [phi:main::@22->main::@23] - //SEG19 main::@23 - //SEG20 [11] call render_playfield - //SEG21 [70] phi from main::@23 to render_playfield [phi:main::@23->render_playfield] + //SEG23 [12] phi from main::@23 to main::@24 [phi:main::@23->main::@24] + //SEG24 main::@24 + //SEG25 [13] call render_playfield + //SEG26 [71] phi from main::@24 to render_playfield [phi:main::@24->render_playfield] jsr render_playfield - //SEG22 main::@24 - //SEG23 [12] (byte*~) current_piece_gfx#85 ← (byte*) current_piece_gfx#10 -- pbuz1=pbuz2 + //SEG27 main::@25 + //SEG28 [14] (byte*~) current_piece_gfx#86 ← (byte*) current_piece_gfx#10 -- pbuz1=pbuz2 lda current_piece_gfx - sta current_piece_gfx_85 + sta current_piece_gfx_86 lda current_piece_gfx+1 - sta current_piece_gfx_85+1 - //SEG24 [13] (byte~) current_piece_color#73 ← (byte) current_piece_color#15 -- vbuz1=vbuz2 + sta current_piece_gfx_86+1 + //SEG29 [15] (byte~) current_piece_color#74 ← (byte) current_piece_color#15 -- vbuz1=vbuz2 lda current_piece_color - sta current_piece_color_73 - //SEG25 [14] call render_current - //SEG26 [50] phi from main::@24 to render_current [phi:main::@24->render_current] - //SEG27 [50] phi (byte) current_piece_color#65 = (byte~) current_piece_color#73 [phi:main::@24->render_current#0] -- register_copy - //SEG28 [50] phi (byte*) current_piece_gfx#63 = (byte*~) current_piece_gfx#85 [phi:main::@24->render_current#1] -- register_copy - //SEG29 [50] phi (byte) current_xpos#63 = (byte/signed byte/word/signed word/dword/signed dword) 3 [phi:main::@24->render_current#2] -- vbuz1=vbuc1 + sta current_piece_color_74 + //SEG30 [16] call render_current + //SEG31 [51] phi from main::@25 to render_current [phi:main::@25->render_current] + //SEG32 [51] phi (byte) current_piece_color#66 = (byte~) current_piece_color#74 [phi:main::@25->render_current#0] -- register_copy + //SEG33 [51] phi (byte*) current_piece_gfx#63 = (byte*~) current_piece_gfx#86 [phi:main::@25->render_current#1] -- register_copy + //SEG34 [51] phi (byte) current_xpos#63 = (byte/signed byte/word/signed word/dword/signed dword) 3 [phi:main::@25->render_current#2] -- vbuz1=vbuc1 lda #3 sta current_xpos_63 - //SEG30 [50] phi (byte) current_ypos#22 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@24->render_current#3] -- vbuxx=vbuc1 + //SEG35 [51] phi (byte) current_ypos#22 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@25->render_current#3] -- vbuxx=vbuc1 ldx #0 jsr render_current - //SEG31 [15] (byte*~) current_piece#69 ← (byte*)*((const word[]) PIECES#0 + (byte~) spawn_current::$3) -- pbuz1=pptc1_derefidx_vbuz2 + //SEG36 [17] (byte*~) current_piece#70 ← (byte*)*((const word[]) PIECES#0 + (byte~) spawn_current::$3) -- pbuz1=pptc1_derefidx_vbuz2 ldy spawn_current._3 lda PIECES,y sta current_piece lda PIECES+1,y sta current_piece+1 - //SEG32 [16] phi from main::@24 to main::@1 [phi:main::@24->main::@1] - //SEG33 [16] phi (byte) current_movedown_counter#15 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@24->main::@1#0] -- vbuz1=vbuc1 + //SEG37 [18] phi from main::@25 to main::@1 [phi:main::@25->main::@1] + //SEG38 [18] phi (byte) current_movedown_counter#15 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@25->main::@1#0] -- vbuz1=vbuc1 lda #0 sta current_movedown_counter - //SEG34 [16] phi (byte) keyboard_events_size#19 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@24->main::@1#1] -- vbuz1=vbuc1 + //SEG39 [18] phi (byte) keyboard_events_size#19 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@25->main::@1#1] -- vbuz1=vbuc1 sta keyboard_events_size - //SEG35 [16] phi (byte) current_piece_color#11 = (byte) current_piece_color#15 [phi:main::@24->main::@1#2] -- register_copy - //SEG36 [16] phi (byte) current_ypos#12 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@24->main::@1#3] -- vbuz1=vbuc1 + //SEG40 [18] phi (byte) current_piece_color#11 = (byte) current_piece_color#15 [phi:main::@25->main::@1#2] -- register_copy + //SEG41 [18] phi (byte) current_ypos#12 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@25->main::@1#3] -- vbuz1=vbuc1 sta current_ypos - //SEG37 [16] phi (byte) current_xpos#16 = (byte/signed byte/word/signed word/dword/signed dword) 3 [phi:main::@24->main::@1#4] -- vbuz1=vbuc1 + //SEG42 [18] phi (byte) current_xpos#16 = (byte/signed byte/word/signed word/dword/signed dword) 3 [phi:main::@25->main::@1#4] -- vbuz1=vbuc1 lda #3 sta current_xpos - //SEG38 [16] phi (byte*) current_piece_gfx#15 = (byte*) current_piece_gfx#10 [phi:main::@24->main::@1#5] -- register_copy - //SEG39 [16] phi (byte) current_orientation#15 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@24->main::@1#6] -- vbuz1=vbuc1 + //SEG43 [18] phi (byte*) current_piece_gfx#15 = (byte*) current_piece_gfx#10 [phi:main::@25->main::@1#5] -- register_copy + //SEG44 [18] phi (byte) current_orientation#15 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@25->main::@1#6] -- vbuz1=vbuc1 lda #0 sta current_orientation - //SEG40 [16] phi (byte*) current_piece#11 = (byte*~) current_piece#69 [phi:main::@24->main::@1#7] -- register_copy - //SEG41 main::@1 - //SEG42 main::@4 + //SEG45 [18] phi (byte*) current_piece#11 = (byte*~) current_piece#70 [phi:main::@25->main::@1#7] -- register_copy + //SEG46 main::@1 + //SEG47 main::@4 b4: - //SEG43 [17] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@4 -- _deref_pbuc1_neq_vbuc2_then_la1 + //SEG48 [19] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@4 -- _deref_pbuc1_neq_vbuc2_then_la1 lda RASTER cmp #$ff bne b4 - //SEG44 main::@7 + //SEG49 main::@7 b7: - //SEG45 [18] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 254) goto main::@7 -- _deref_pbuc1_neq_vbuc2_then_la1 + //SEG50 [20] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 254) goto main::@7 -- _deref_pbuc1_neq_vbuc2_then_la1 lda RASTER cmp #$fe bne b7 - //SEG46 main::@9 - //SEG47 [19] *((const byte*) BORDERCOL#0) ← ++ *((const byte*) BORDERCOL#0) -- _deref_pbuc1=_inc__deref_pbuc1 + //SEG51 main::@9 + //SEG52 [21] *((const byte*) BORDERCOL#0) ← ++ *((const byte*) BORDERCOL#0) -- _deref_pbuc1=_inc__deref_pbuc1 inc BORDERCOL - //SEG48 [20] call keyboard_event_scan - //SEG49 [265] phi from main::@9 to keyboard_event_scan [phi:main::@9->keyboard_event_scan] + //SEG53 [22] call keyboard_event_scan + //SEG54 [265] phi from main::@9 to keyboard_event_scan [phi:main::@9->keyboard_event_scan] jsr keyboard_event_scan - //SEG50 [21] phi from main::@9 to main::@26 [phi:main::@9->main::@26] - //SEG51 main::@26 - //SEG52 [22] call keyboard_event_get + //SEG55 [23] phi from main::@9 to main::@27 [phi:main::@9->main::@27] + //SEG56 main::@27 + //SEG57 [24] call keyboard_event_get jsr keyboard_event_get - //SEG53 [23] (byte) keyboard_event_get::return#3 ← (byte) keyboard_event_get::return#2 + //SEG58 [25] (byte) keyboard_event_get::return#3 ← (byte) keyboard_event_get::return#2 // (byte) keyboard_event_get::return#3 = (byte) keyboard_event_get::return#2 // register copy reg byte a - //SEG54 main::@27 - //SEG55 [24] (byte) main::key_event#0 ← (byte) keyboard_event_get::return#3 -- vbuz1=vbuaa - sta key_event - //SEG56 [25] (byte) play_move_down::key_event#0 ← (byte) main::key_event#0 -- vbuaa=vbuz1 - //SEG57 [26] call play_move_down - jsr play_move_down - //SEG58 [27] (byte) play_move_down::return#0 ← (byte) play_move_down::return#3 -- vbuaa=vbuxx - txa //SEG59 main::@28 - //SEG60 [28] (byte~) main::$9 ← (byte) play_move_down::return#0 - // (byte~) main::$9 = (byte) play_move_down::return#0 // register copy reg byte a - //SEG61 [29] (byte) main::render#1 ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte~) main::$9 -- vbuz1=vbuc1_plus_vbuaa + //SEG60 [26] (byte) main::key_event#0 ← (byte) keyboard_event_get::return#3 -- vbuz1=vbuaa + sta key_event + //SEG61 [27] (byte) play_move_down::key_event#0 ← (byte) main::key_event#0 -- vbuaa=vbuz1 + //SEG62 [28] call play_move_down + jsr play_move_down + //SEG63 [29] (byte) play_move_down::return#0 ← (byte) play_move_down::return#3 -- vbuaa=vbuxx + txa + //SEG64 main::@29 + //SEG65 [30] (byte~) main::$10 ← (byte) play_move_down::return#0 + // (byte~) main::$10 = (byte) play_move_down::return#0 // register copy reg byte a + //SEG66 [31] (byte) main::render#1 ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte~) main::$10 -- vbuz1=vbuc1_plus_vbuaa clc adc #0 sta render - //SEG62 [30] (byte) play_move_leftright::key_event#0 ← (byte) main::key_event#0 -- vbuaa=vbuz1 + //SEG67 [32] (byte) play_move_leftright::key_event#0 ← (byte) main::key_event#0 -- vbuaa=vbuz1 lda key_event - //SEG63 [31] call play_move_leftright + //SEG68 [33] call play_move_leftright jsr play_move_leftright - //SEG64 [32] (byte) play_move_leftright::return#0 ← (byte) play_move_leftright::return#2 + //SEG69 [34] (byte) play_move_leftright::return#0 ← (byte) play_move_leftright::return#2 // (byte) play_move_leftright::return#0 = (byte) play_move_leftright::return#2 // register copy reg byte a - //SEG65 main::@29 - //SEG66 [33] (byte~) main::$10 ← (byte) play_move_leftright::return#0 - // (byte~) main::$10 = (byte) play_move_leftright::return#0 // register copy reg byte a - //SEG67 [34] (byte) main::render#2 ← (byte) main::render#1 + (byte~) main::$10 -- vbuz1=vbuz1_plus_vbuaa + //SEG70 main::@30 + //SEG71 [35] (byte~) main::$11 ← (byte) play_move_leftright::return#0 + // (byte~) main::$11 = (byte) play_move_leftright::return#0 // register copy reg byte a + //SEG72 [36] (byte) main::render#2 ← (byte) main::render#1 + (byte~) main::$11 -- vbuz1=vbuz1_plus_vbuaa clc adc render sta render - //SEG68 [35] (byte) play_move_rotate::key_event#0 ← (byte) main::key_event#0 -- vbuaa=vbuz1 + //SEG73 [37] (byte) play_move_rotate::key_event#0 ← (byte) main::key_event#0 -- vbuaa=vbuz1 lda key_event - //SEG69 [36] call play_move_rotate + //SEG74 [38] call play_move_rotate jsr play_move_rotate - //SEG70 [37] (byte) play_move_rotate::return#0 ← (byte) play_move_rotate::return#2 + //SEG75 [39] (byte) play_move_rotate::return#0 ← (byte) play_move_rotate::return#2 // (byte) play_move_rotate::return#0 = (byte) play_move_rotate::return#2 // register copy reg byte a - //SEG71 main::@30 - //SEG72 [38] (byte~) main::$11 ← (byte) play_move_rotate::return#0 - // (byte~) main::$11 = (byte) play_move_rotate::return#0 // register copy reg byte a - //SEG73 [39] (byte) main::render#3 ← (byte) main::render#2 + (byte~) main::$11 -- vbuaa=vbuz1_plus_vbuaa + //SEG76 main::@31 + //SEG77 [40] (byte~) main::$12 ← (byte) play_move_rotate::return#0 + // (byte~) main::$12 = (byte) play_move_rotate::return#0 // register copy reg byte a + //SEG78 [41] (byte) main::render#3 ← (byte) main::render#2 + (byte~) main::$12 -- vbuaa=vbuz1_plus_vbuaa clc adc render - //SEG74 [40] if((byte) main::render#3==(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@10 -- vbuaa_eq_0_then_la1 + //SEG79 [42] if((byte) main::render#3==(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@10 -- vbuaa_eq_0_then_la1 cmp #0 beq b10 - //SEG75 main::@19 - //SEG76 [41] *((const byte*) BORDERCOL#0) ← ++ *((const byte*) BORDERCOL#0) -- _deref_pbuc1=_inc__deref_pbuc1 - inc BORDERCOL - //SEG77 [42] call render_playfield - //SEG78 [70] phi from main::@19 to render_playfield [phi:main::@19->render_playfield] + //SEG80 [43] phi from main::@31 to main::@19 [phi:main::@31->main::@19] + //SEG81 main::@19 + //SEG82 [44] call render_playfield + //SEG83 [71] phi from main::@19 to render_playfield [phi:main::@19->render_playfield] jsr render_playfield - //SEG79 main::@31 - //SEG80 [43] (byte~) current_ypos#69 ← (byte) current_ypos#16 -- vbuxx=vbuz1 + //SEG84 main::@32 + //SEG85 [45] (byte~) current_ypos#70 ← (byte) current_ypos#16 -- vbuxx=vbuz1 ldx current_ypos - //SEG81 [44] (byte~) current_xpos#94 ← (byte) current_xpos#23 -- vbuz1=vbuz2 + //SEG86 [46] (byte~) current_xpos#95 ← (byte) current_xpos#23 -- vbuz1=vbuz2 lda current_xpos - sta current_xpos_94 - //SEG82 [45] (byte*~) current_piece_gfx#86 ← (byte*) current_piece_gfx#18 -- pbuz1=pbuz2 + sta current_xpos_95 + //SEG87 [47] (byte*~) current_piece_gfx#87 ← (byte*) current_piece_gfx#18 -- pbuz1=pbuz2 lda current_piece_gfx - sta current_piece_gfx_86 + sta current_piece_gfx_87 lda current_piece_gfx+1 - sta current_piece_gfx_86+1 - //SEG83 [46] (byte~) current_piece_color#74 ← (byte) current_piece_color#13 -- vbuz1=vbuz2 + sta current_piece_gfx_87+1 + //SEG88 [48] (byte~) current_piece_color#75 ← (byte) current_piece_color#13 -- vbuz1=vbuz2 lda current_piece_color - sta current_piece_color_74 - //SEG84 [47] call render_current - //SEG85 [50] phi from main::@31 to render_current [phi:main::@31->render_current] - //SEG86 [50] phi (byte) current_piece_color#65 = (byte~) current_piece_color#74 [phi:main::@31->render_current#0] -- register_copy - //SEG87 [50] phi (byte*) current_piece_gfx#63 = (byte*~) current_piece_gfx#86 [phi:main::@31->render_current#1] -- register_copy - //SEG88 [50] phi (byte) current_xpos#63 = (byte~) current_xpos#94 [phi:main::@31->render_current#2] -- register_copy - //SEG89 [50] phi (byte) current_ypos#22 = (byte~) current_ypos#69 [phi:main::@31->render_current#3] -- register_copy + sta current_piece_color_75 + //SEG89 [49] call render_current + //SEG90 [51] phi from main::@32 to render_current [phi:main::@32->render_current] + //SEG91 [51] phi (byte) current_piece_color#66 = (byte~) current_piece_color#75 [phi:main::@32->render_current#0] -- register_copy + //SEG92 [51] phi (byte*) current_piece_gfx#63 = (byte*~) current_piece_gfx#87 [phi:main::@32->render_current#1] -- register_copy + //SEG93 [51] phi (byte) current_xpos#63 = (byte~) current_xpos#95 [phi:main::@32->render_current#2] -- register_copy + //SEG94 [51] phi (byte) current_ypos#22 = (byte~) current_ypos#70 [phi:main::@32->render_current#3] -- register_copy jsr render_current - //SEG90 main::@32 - //SEG91 [48] *((const byte*) BORDERCOL#0) ← -- *((const byte*) BORDERCOL#0) -- _deref_pbuc1=_dec__deref_pbuc1 - dec BORDERCOL - //SEG92 main::@10 + //SEG95 main::@10 b10: - //SEG93 [49] *((const byte*) BORDERCOL#0) ← -- *((const byte*) BORDERCOL#0) -- _deref_pbuc1=_dec__deref_pbuc1 + //SEG96 [50] *((const byte*) BORDERCOL#0) ← -- *((const byte*) BORDERCOL#0) -- _deref_pbuc1=_dec__deref_pbuc1 dec BORDERCOL - //SEG94 [16] phi from main::@10 to main::@1 [phi:main::@10->main::@1] - //SEG95 [16] phi (byte) current_movedown_counter#15 = (byte) current_movedown_counter#12 [phi:main::@10->main::@1#0] -- register_copy - //SEG96 [16] phi (byte) keyboard_events_size#19 = (byte) keyboard_events_size#16 [phi:main::@10->main::@1#1] -- register_copy - //SEG97 [16] phi (byte) current_piece_color#11 = (byte) current_piece_color#13 [phi:main::@10->main::@1#2] -- register_copy - //SEG98 [16] phi (byte) current_ypos#12 = (byte) current_ypos#16 [phi:main::@10->main::@1#3] -- register_copy - //SEG99 [16] phi (byte) current_xpos#16 = (byte) current_xpos#23 [phi:main::@10->main::@1#4] -- register_copy - //SEG100 [16] phi (byte*) current_piece_gfx#15 = (byte*) current_piece_gfx#18 [phi:main::@10->main::@1#5] -- register_copy - //SEG101 [16] phi (byte) current_orientation#15 = (byte) current_orientation#23 [phi:main::@10->main::@1#6] -- register_copy - //SEG102 [16] phi (byte*) current_piece#11 = (byte*) current_piece#13 [phi:main::@10->main::@1#7] -- register_copy + //SEG97 [18] phi from main::@10 to main::@1 [phi:main::@10->main::@1] + //SEG98 [18] phi (byte) current_movedown_counter#15 = (byte) current_movedown_counter#12 [phi:main::@10->main::@1#0] -- register_copy + //SEG99 [18] phi (byte) keyboard_events_size#19 = (byte) keyboard_events_size#16 [phi:main::@10->main::@1#1] -- register_copy + //SEG100 [18] phi (byte) current_piece_color#11 = (byte) current_piece_color#13 [phi:main::@10->main::@1#2] -- register_copy + //SEG101 [18] phi (byte) current_ypos#12 = (byte) current_ypos#16 [phi:main::@10->main::@1#3] -- register_copy + //SEG102 [18] phi (byte) current_xpos#16 = (byte) current_xpos#23 [phi:main::@10->main::@1#4] -- register_copy + //SEG103 [18] phi (byte*) current_piece_gfx#15 = (byte*) current_piece_gfx#18 [phi:main::@10->main::@1#5] -- register_copy + //SEG104 [18] phi (byte) current_orientation#15 = (byte) current_orientation#23 [phi:main::@10->main::@1#6] -- register_copy + //SEG105 [18] phi (byte*) current_piece#11 = (byte*) current_piece#13 [phi:main::@10->main::@1#7] -- register_copy jmp b4 } -//SEG103 render_current +//SEG106 render_current render_current: { .label ypos2 = 8 .label l = 9 .label screen_line = $16 .label xpos = $b .label i = $a - //SEG104 [51] (byte) render_current::ypos2#0 ← (byte) current_ypos#22 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuxx_rol_1 + //SEG107 [52] (byte) render_current::ypos2#0 ← (byte) current_ypos#22 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuxx_rol_1 txa asl sta ypos2 - //SEG105 [52] phi from render_current to render_current::@1 [phi:render_current->render_current::@1] - //SEG106 [52] phi (byte) render_current::i#4 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_current->render_current::@1#0] -- vbuz1=vbuc1 + //SEG108 [53] phi from render_current to render_current::@1 [phi:render_current->render_current::@1] + //SEG109 [53] phi (byte) render_current::i#4 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_current->render_current::@1#0] -- vbuz1=vbuc1 lda #0 sta i - //SEG107 [52] phi (byte) render_current::l#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_current->render_current::@1#1] -- vbuz1=vbuc1 + //SEG110 [53] phi (byte) render_current::l#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_current->render_current::@1#1] -- vbuz1=vbuc1 sta l - //SEG108 [52] phi (byte) render_current::ypos2#2 = (byte) render_current::ypos2#0 [phi:render_current->render_current::@1#2] -- register_copy - //SEG109 [52] phi from render_current::@2 to render_current::@1 [phi:render_current::@2->render_current::@1] - //SEG110 [52] phi (byte) render_current::i#4 = (byte) render_current::i#8 [phi:render_current::@2->render_current::@1#0] -- register_copy - //SEG111 [52] phi (byte) render_current::l#3 = (byte) render_current::l#1 [phi:render_current::@2->render_current::@1#1] -- register_copy - //SEG112 [52] phi (byte) render_current::ypos2#2 = (byte) render_current::ypos2#1 [phi:render_current::@2->render_current::@1#2] -- register_copy - //SEG113 render_current::@1 + //SEG111 [53] phi (byte) render_current::ypos2#2 = (byte) render_current::ypos2#0 [phi:render_current->render_current::@1#2] -- register_copy + //SEG112 [53] phi from render_current::@2 to render_current::@1 [phi:render_current::@2->render_current::@1] + //SEG113 [53] phi (byte) render_current::i#4 = (byte) render_current::i#8 [phi:render_current::@2->render_current::@1#0] -- register_copy + //SEG114 [53] phi (byte) render_current::l#3 = (byte) render_current::l#1 [phi:render_current::@2->render_current::@1#1] -- register_copy + //SEG115 [53] phi (byte) render_current::ypos2#2 = (byte) render_current::ypos2#1 [phi:render_current::@2->render_current::@1#2] -- register_copy + //SEG116 render_current::@1 b1: - //SEG114 [53] if((byte) render_current::ypos2#2>=(byte/signed byte/word/signed word/dword/signed dword) 2*(const byte) PLAYFIELD_LINES#0) goto render_current::@2 -- vbuz1_ge_vbuc1_then_la1 + //SEG117 [54] if((byte) render_current::ypos2#2>=(byte/signed byte/word/signed word/dword/signed dword) 2*(const byte) PLAYFIELD_LINES#0) goto render_current::@2 -- vbuz1_ge_vbuc1_then_la1 lda ypos2 cmp #2*PLAYFIELD_LINES bcs b2 - //SEG115 render_current::@6 - //SEG116 [54] (byte*) render_current::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0+3]) screen_lines#0 + (byte) render_current::ypos2#2) -- pbuz1=pptc1_derefidx_vbuz2 + //SEG118 render_current::@6 + //SEG119 [55] (byte*) render_current::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0+3]) screen_lines#0 + (byte) render_current::ypos2#2) -- pbuz1=pptc1_derefidx_vbuz2 tay lda screen_lines,y sta screen_line lda screen_lines+1,y sta screen_line+1 - //SEG117 [55] (byte) render_current::xpos#0 ← (byte) current_xpos#63 -- vbuz1=vbuz2 + //SEG120 [56] (byte) render_current::xpos#0 ← (byte) current_xpos#63 -- vbuz1=vbuz2 lda current_xpos_63 sta xpos - //SEG118 [56] phi from render_current::@6 to render_current::@3 [phi:render_current::@6->render_current::@3] - //SEG119 [56] phi (byte) render_current::c#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_current::@6->render_current::@3#0] -- vbuxx=vbuc1 + //SEG121 [57] phi from render_current::@6 to render_current::@3 [phi:render_current::@6->render_current::@3] + //SEG122 [57] phi (byte) render_current::c#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_current::@6->render_current::@3#0] -- vbuxx=vbuc1 ldx #0 - //SEG120 [56] phi (byte) render_current::xpos#2 = (byte) render_current::xpos#0 [phi:render_current::@6->render_current::@3#1] -- register_copy - //SEG121 [56] phi (byte) render_current::i#2 = (byte) render_current::i#4 [phi:render_current::@6->render_current::@3#2] -- register_copy - //SEG122 [56] phi from render_current::@4 to render_current::@3 [phi:render_current::@4->render_current::@3] - //SEG123 [56] phi (byte) render_current::c#2 = (byte) render_current::c#1 [phi:render_current::@4->render_current::@3#0] -- register_copy - //SEG124 [56] phi (byte) render_current::xpos#2 = (byte) render_current::xpos#1 [phi:render_current::@4->render_current::@3#1] -- register_copy - //SEG125 [56] phi (byte) render_current::i#2 = (byte) render_current::i#1 [phi:render_current::@4->render_current::@3#2] -- register_copy - //SEG126 render_current::@3 + //SEG123 [57] phi (byte) render_current::xpos#2 = (byte) render_current::xpos#0 [phi:render_current::@6->render_current::@3#1] -- register_copy + //SEG124 [57] phi (byte) render_current::i#2 = (byte) render_current::i#4 [phi:render_current::@6->render_current::@3#2] -- register_copy + //SEG125 [57] phi from render_current::@4 to render_current::@3 [phi:render_current::@4->render_current::@3] + //SEG126 [57] phi (byte) render_current::c#2 = (byte) render_current::c#1 [phi:render_current::@4->render_current::@3#0] -- register_copy + //SEG127 [57] phi (byte) render_current::xpos#2 = (byte) render_current::xpos#1 [phi:render_current::@4->render_current::@3#1] -- register_copy + //SEG128 [57] phi (byte) render_current::i#2 = (byte) render_current::i#1 [phi:render_current::@4->render_current::@3#2] -- register_copy + //SEG129 render_current::@3 b3: - //SEG127 [57] (byte) render_current::current_cell#0 ← *((byte*) current_piece_gfx#63 + (byte) render_current::i#2) -- vbuaa=pbuz1_derefidx_vbuz2 + //SEG130 [58] (byte) render_current::current_cell#0 ← *((byte*) current_piece_gfx#63 + (byte) render_current::i#2) -- vbuaa=pbuz1_derefidx_vbuz2 ldy i lda (current_piece_gfx_63),y - //SEG128 [58] (byte) render_current::i#1 ← ++ (byte) render_current::i#2 -- vbuz1=_inc_vbuz1 + //SEG131 [59] (byte) render_current::i#1 ← ++ (byte) render_current::i#2 -- vbuz1=_inc_vbuz1 inc i - //SEG129 [59] if((byte) render_current::current_cell#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto render_current::@4 -- vbuaa_eq_0_then_la1 + //SEG132 [60] if((byte) render_current::current_cell#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto render_current::@4 -- vbuaa_eq_0_then_la1 cmp #0 beq b4 - //SEG130 render_current::@7 - //SEG131 [60] if((byte) render_current::xpos#2>=(const byte) PLAYFIELD_COLS#0) goto render_current::@4 -- vbuz1_ge_vbuc1_then_la1 + //SEG133 render_current::@7 + //SEG134 [61] if((byte) render_current::xpos#2>=(const byte) PLAYFIELD_COLS#0) goto render_current::@4 -- vbuz1_ge_vbuc1_then_la1 lda xpos cmp #PLAYFIELD_COLS bcs b4 - //SEG132 render_current::@8 - //SEG133 [61] *((byte*) render_current::screen_line#0 + (byte) render_current::xpos#2) ← (byte) current_piece_color#65 -- pbuz1_derefidx_vbuz2=vbuz3 - lda current_piece_color_65 + //SEG135 render_current::@8 + //SEG136 [62] *((byte*) render_current::screen_line#0 + (byte) render_current::xpos#2) ← (byte) current_piece_color#66 -- pbuz1_derefidx_vbuz2=vbuz3 + lda current_piece_color_66 ldy xpos sta (screen_line),y - //SEG134 render_current::@4 + //SEG137 render_current::@4 b4: - //SEG135 [62] (byte) render_current::xpos#1 ← ++ (byte) render_current::xpos#2 -- vbuz1=_inc_vbuz1 + //SEG138 [63] (byte) render_current::xpos#1 ← ++ (byte) render_current::xpos#2 -- vbuz1=_inc_vbuz1 inc xpos - //SEG136 [63] (byte) render_current::c#1 ← ++ (byte) render_current::c#2 -- vbuxx=_inc_vbuxx + //SEG139 [64] (byte) render_current::c#1 ← ++ (byte) render_current::c#2 -- vbuxx=_inc_vbuxx inx - //SEG137 [64] if((byte) render_current::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_current::@3 -- vbuxx_neq_vbuc1_then_la1 + //SEG140 [65] if((byte) render_current::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_current::@3 -- vbuxx_neq_vbuc1_then_la1 cpx #4 bne b3 - //SEG138 [65] phi from render_current::@1 render_current::@4 to render_current::@2 [phi:render_current::@1/render_current::@4->render_current::@2] - //SEG139 [65] phi (byte) render_current::i#8 = (byte) render_current::i#4 [phi:render_current::@1/render_current::@4->render_current::@2#0] -- register_copy - //SEG140 render_current::@2 + //SEG141 [66] phi from render_current::@1 render_current::@4 to render_current::@2 [phi:render_current::@1/render_current::@4->render_current::@2] + //SEG142 [66] phi (byte) render_current::i#8 = (byte) render_current::i#4 [phi:render_current::@1/render_current::@4->render_current::@2#0] -- register_copy + //SEG143 render_current::@2 b2: - //SEG141 [66] (byte) render_current::ypos2#1 ← (byte) render_current::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 -- vbuz1=vbuz1_plus_2 + //SEG144 [67] (byte) render_current::ypos2#1 ← (byte) render_current::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 -- vbuz1=vbuz1_plus_2 lda ypos2 clc adc #2 sta ypos2 - //SEG142 [67] (byte) render_current::l#1 ← ++ (byte) render_current::l#3 -- vbuz1=_inc_vbuz1 + //SEG145 [68] (byte) render_current::l#1 ← ++ (byte) render_current::l#3 -- vbuz1=_inc_vbuz1 inc l - //SEG143 [68] if((byte) render_current::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_current::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG146 [69] if((byte) render_current::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_current::@1 -- vbuz1_neq_vbuc1_then_la1 lda l cmp #4 bne b1 - //SEG144 render_current::@return - //SEG145 [69] return + //SEG147 render_current::@return + //SEG148 [70] return rts } -//SEG146 render_playfield +//SEG149 render_playfield render_playfield: { .label line = 5 .label i = 7 .label l = 4 - //SEG147 [71] phi from render_playfield to render_playfield::@1 [phi:render_playfield->render_playfield::@1] - //SEG148 [71] phi (byte) render_playfield::i#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_playfield->render_playfield::@1#0] -- vbuz1=vbuc1 + //SEG150 [72] phi from render_playfield to render_playfield::@1 [phi:render_playfield->render_playfield::@1] + //SEG151 [72] phi (byte) render_playfield::i#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_playfield->render_playfield::@1#0] -- vbuz1=vbuc1 lda #0 sta i - //SEG149 [71] phi (byte) render_playfield::l#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_playfield->render_playfield::@1#1] -- vbuz1=vbuc1 + //SEG152 [72] phi (byte) render_playfield::l#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_playfield->render_playfield::@1#1] -- vbuz1=vbuc1 sta l - //SEG150 [71] phi from render_playfield::@3 to render_playfield::@1 [phi:render_playfield::@3->render_playfield::@1] - //SEG151 [71] phi (byte) render_playfield::i#3 = (byte) render_playfield::i#1 [phi:render_playfield::@3->render_playfield::@1#0] -- register_copy - //SEG152 [71] phi (byte) render_playfield::l#2 = (byte) render_playfield::l#1 [phi:render_playfield::@3->render_playfield::@1#1] -- register_copy - //SEG153 render_playfield::@1 + //SEG153 [72] phi from render_playfield::@3 to render_playfield::@1 [phi:render_playfield::@3->render_playfield::@1] + //SEG154 [72] phi (byte) render_playfield::i#3 = (byte) render_playfield::i#1 [phi:render_playfield::@3->render_playfield::@1#0] -- register_copy + //SEG155 [72] phi (byte) render_playfield::l#2 = (byte) render_playfield::l#1 [phi:render_playfield::@3->render_playfield::@1#1] -- register_copy + //SEG156 render_playfield::@1 b1: - //SEG154 [72] (byte~) render_playfield::$1 ← (byte) render_playfield::l#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuaa=vbuz1_rol_1 + //SEG157 [73] (byte~) render_playfield::$1 ← (byte) render_playfield::l#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuaa=vbuz1_rol_1 lda l asl - //SEG155 [73] (byte*) render_playfield::line#0 ← *((const byte*[PLAYFIELD_LINES#0+3]) screen_lines#0 + (byte~) render_playfield::$1) -- pbuz1=pptc1_derefidx_vbuaa + //SEG158 [74] (byte*) render_playfield::line#0 ← *((const byte*[PLAYFIELD_LINES#0+3]) screen_lines#0 + (byte~) render_playfield::$1) -- pbuz1=pptc1_derefidx_vbuaa tay lda screen_lines,y sta line lda screen_lines+1,y sta line+1 - //SEG156 [74] phi from render_playfield::@1 to render_playfield::@2 [phi:render_playfield::@1->render_playfield::@2] - //SEG157 [74] phi (byte) render_playfield::c#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_playfield::@1->render_playfield::@2#0] -- vbuxx=vbuc1 + //SEG159 [75] phi from render_playfield::@1 to render_playfield::@2 [phi:render_playfield::@1->render_playfield::@2] + //SEG160 [75] phi (byte) render_playfield::c#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_playfield::@1->render_playfield::@2#0] -- vbuxx=vbuc1 ldx #0 - //SEG158 [74] phi (byte*) render_playfield::line#2 = (byte*) render_playfield::line#0 [phi:render_playfield::@1->render_playfield::@2#1] -- register_copy - //SEG159 [74] phi (byte) render_playfield::i#2 = (byte) render_playfield::i#3 [phi:render_playfield::@1->render_playfield::@2#2] -- register_copy - //SEG160 [74] phi from render_playfield::@2 to render_playfield::@2 [phi:render_playfield::@2->render_playfield::@2] - //SEG161 [74] phi (byte) render_playfield::c#2 = (byte) render_playfield::c#1 [phi:render_playfield::@2->render_playfield::@2#0] -- register_copy - //SEG162 [74] phi (byte*) render_playfield::line#2 = (byte*) render_playfield::line#1 [phi:render_playfield::@2->render_playfield::@2#1] -- register_copy - //SEG163 [74] phi (byte) render_playfield::i#2 = (byte) render_playfield::i#1 [phi:render_playfield::@2->render_playfield::@2#2] -- register_copy - //SEG164 render_playfield::@2 + //SEG161 [75] phi (byte*) render_playfield::line#2 = (byte*) render_playfield::line#0 [phi:render_playfield::@1->render_playfield::@2#1] -- register_copy + //SEG162 [75] phi (byte) render_playfield::i#2 = (byte) render_playfield::i#3 [phi:render_playfield::@1->render_playfield::@2#2] -- register_copy + //SEG163 [75] phi from render_playfield::@2 to render_playfield::@2 [phi:render_playfield::@2->render_playfield::@2] + //SEG164 [75] phi (byte) render_playfield::c#2 = (byte) render_playfield::c#1 [phi:render_playfield::@2->render_playfield::@2#0] -- register_copy + //SEG165 [75] phi (byte*) render_playfield::line#2 = (byte*) render_playfield::line#1 [phi:render_playfield::@2->render_playfield::@2#1] -- register_copy + //SEG166 [75] phi (byte) render_playfield::i#2 = (byte) render_playfield::i#1 [phi:render_playfield::@2->render_playfield::@2#2] -- register_copy + //SEG167 render_playfield::@2 b2: - //SEG165 [75] *((byte*) render_playfield::line#2) ← *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) render_playfield::i#2) -- _deref_pbuz1=pbuc1_derefidx_vbuz2 + //SEG168 [76] *((byte*) render_playfield::line#2) ← *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) render_playfield::i#2) -- _deref_pbuz1=pbuc1_derefidx_vbuz2 ldy i lda playfield,y ldy #0 sta (line),y - //SEG166 [76] (byte*) render_playfield::line#1 ← ++ (byte*) render_playfield::line#2 -- pbuz1=_inc_pbuz1 + //SEG169 [77] (byte*) render_playfield::line#1 ← ++ (byte*) render_playfield::line#2 -- pbuz1=_inc_pbuz1 inc line bne !+ inc line+1 !: - //SEG167 [77] (byte) render_playfield::i#1 ← ++ (byte) render_playfield::i#2 -- vbuz1=_inc_vbuz1 + //SEG170 [78] (byte) render_playfield::i#1 ← ++ (byte) render_playfield::i#2 -- vbuz1=_inc_vbuz1 inc i - //SEG168 [78] (byte) render_playfield::c#1 ← ++ (byte) render_playfield::c#2 -- vbuxx=_inc_vbuxx + //SEG171 [79] (byte) render_playfield::c#1 ← ++ (byte) render_playfield::c#2 -- vbuxx=_inc_vbuxx inx - //SEG169 [79] if((byte) render_playfield::c#1!=(const byte) PLAYFIELD_COLS#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_playfield::@2 -- vbuxx_neq_vbuc1_then_la1 + //SEG172 [80] if((byte) render_playfield::c#1!=(const byte) PLAYFIELD_COLS#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_playfield::@2 -- vbuxx_neq_vbuc1_then_la1 cpx #PLAYFIELD_COLS-1+1 bne b2 - //SEG170 render_playfield::@3 - //SEG171 [80] (byte) render_playfield::l#1 ← ++ (byte) render_playfield::l#2 -- vbuz1=_inc_vbuz1 + //SEG173 render_playfield::@3 + //SEG174 [81] (byte) render_playfield::l#1 ← ++ (byte) render_playfield::l#2 -- vbuz1=_inc_vbuz1 inc l - //SEG172 [81] if((byte) render_playfield::l#1!=(const byte) PLAYFIELD_LINES#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_playfield::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG175 [82] if((byte) render_playfield::l#1!=(const byte) PLAYFIELD_LINES#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_playfield::@1 -- vbuz1_neq_vbuc1_then_la1 lda l cmp #PLAYFIELD_LINES-1+1 bne b1 - //SEG173 render_playfield::@return - //SEG174 [82] return + //SEG176 render_playfield::@return + //SEG177 [83] return rts } -//SEG175 play_move_rotate +//SEG178 play_move_rotate play_move_rotate: { .label orientation = 4 - //SEG176 [83] if((byte) play_move_rotate::key_event#0==(const byte) KEY_Z#0) goto play_move_rotate::@1 -- vbuaa_eq_vbuc1_then_la1 + //SEG179 [84] if((byte) play_move_rotate::key_event#0==(const byte) KEY_Z#0) goto play_move_rotate::@1 -- vbuaa_eq_vbuc1_then_la1 cmp #KEY_Z beq b1 - //SEG177 play_move_rotate::@6 - //SEG178 [84] if((byte) play_move_rotate::key_event#0==(const byte) KEY_X#0) goto play_move_rotate::@2 -- vbuaa_eq_vbuc1_then_la1 + //SEG180 play_move_rotate::@6 + //SEG181 [85] if((byte) play_move_rotate::key_event#0==(const byte) KEY_X#0) goto play_move_rotate::@2 -- vbuaa_eq_vbuc1_then_la1 cmp #KEY_X beq b2 - //SEG179 [85] 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] + //SEG182 [86] phi from play_move_rotate::@14 play_move_rotate::@6 to play_move_rotate::@return [phi:play_move_rotate::@14/play_move_rotate::@6->play_move_rotate::@return] b3: - //SEG180 [85] phi (byte*) current_piece_gfx#18 = (byte*) current_piece_gfx#17 [phi:play_move_rotate::@14/play_move_rotate::@6->play_move_rotate::@return#0] -- register_copy - //SEG181 [85] phi (byte) current_orientation#23 = (byte) current_orientation#18 [phi:play_move_rotate::@14/play_move_rotate::@6->play_move_rotate::@return#1] -- register_copy - //SEG182 [85] phi (byte) play_move_rotate::return#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_rotate::@14/play_move_rotate::@6->play_move_rotate::@return#2] -- vbuaa=vbuc1 + //SEG183 [86] phi (byte*) current_piece_gfx#18 = (byte*) current_piece_gfx#17 [phi:play_move_rotate::@14/play_move_rotate::@6->play_move_rotate::@return#0] -- register_copy + //SEG184 [86] phi (byte) current_orientation#23 = (byte) current_orientation#18 [phi:play_move_rotate::@14/play_move_rotate::@6->play_move_rotate::@return#1] -- register_copy + //SEG185 [86] phi (byte) play_move_rotate::return#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_rotate::@14/play_move_rotate::@6->play_move_rotate::@return#2] -- vbuaa=vbuc1 lda #0 - //SEG183 play_move_rotate::@return + //SEG186 play_move_rotate::@return breturn: - //SEG184 [86] return + //SEG187 [87] return rts - //SEG185 play_move_rotate::@2 + //SEG188 play_move_rotate::@2 b2: - //SEG186 [87] (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 ← (byte) current_orientation#18 + (byte/signed byte/word/signed word/dword/signed dword) 16 -- vbuaa=vbuz1_plus_vbuc1 + //SEG189 [88] (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 ← (byte) current_orientation#18 + (byte/signed byte/word/signed word/dword/signed dword) 16 -- vbuaa=vbuz1_plus_vbuc1 lda #$10 clc adc current_orientation - //SEG187 [88] (byte) play_move_rotate::orientation#2 ← (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 & (byte/signed byte/word/signed word/dword/signed dword) 63 -- vbuz1=vbuaa_band_vbuc1 + //SEG190 [89] (byte) play_move_rotate::orientation#2 ← (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 & (byte/signed byte/word/signed word/dword/signed dword) 63 -- vbuz1=vbuaa_band_vbuc1 and #$3f sta orientation - //SEG188 [89] phi from play_move_rotate::@1 play_move_rotate::@2 to play_move_rotate::@4 [phi:play_move_rotate::@1/play_move_rotate::@2->play_move_rotate::@4] - //SEG189 [89] 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 - //SEG190 play_move_rotate::@4 + //SEG191 [90] phi from play_move_rotate::@1 play_move_rotate::@2 to play_move_rotate::@4 [phi:play_move_rotate::@1/play_move_rotate::@2->play_move_rotate::@4] + //SEG192 [90] phi (byte) play_move_rotate::orientation#3 = (byte) play_move_rotate::orientation#1 [phi:play_move_rotate::@1/play_move_rotate::@2->play_move_rotate::@4#0] -- register_copy + //SEG193 play_move_rotate::@4 b4: - //SEG191 [90] (byte) collision::xpos#3 ← (byte) current_xpos#23 -- vbuz1=vbuz2 + //SEG194 [91] (byte) collision::xpos#3 ← (byte) current_xpos#23 -- vbuz1=vbuz2 lda current_xpos sta collision.xpos - //SEG192 [91] (byte) collision::ypos#3 ← (byte) current_ypos#16 -- vbuyy=vbuz1 + //SEG195 [92] (byte) collision::ypos#3 ← (byte) current_ypos#16 -- vbuyy=vbuz1 ldy current_ypos - //SEG193 [92] (byte) collision::orientation#3 ← (byte) play_move_rotate::orientation#3 -- vbuxx=vbuz1 + //SEG196 [93] (byte) collision::orientation#3 ← (byte) play_move_rotate::orientation#3 -- vbuxx=vbuz1 ldx orientation - //SEG194 [93] (byte*~) current_piece#73 ← (byte*) current_piece#13 -- pbuz1=pbuz2 + //SEG197 [94] (byte*~) current_piece#74 ← (byte*) current_piece#13 -- pbuz1=pbuz2 lda current_piece - sta current_piece_73 + sta current_piece_74 lda current_piece+1 - sta current_piece_73+1 - //SEG195 [94] call collision - //SEG196 [102] phi from play_move_rotate::@4 to collision [phi:play_move_rotate::@4->collision] - //SEG197 [102] phi (byte) collision::xpos#5 = (byte) collision::xpos#3 [phi:play_move_rotate::@4->collision#0] -- register_copy - //SEG198 [102] phi (byte) collision::ypos#4 = (byte) collision::ypos#3 [phi:play_move_rotate::@4->collision#1] -- register_copy - //SEG199 [102] phi (byte) collision::orientation#4 = (byte) collision::orientation#3 [phi:play_move_rotate::@4->collision#2] -- register_copy - //SEG200 [102] phi (byte*) current_piece#15 = (byte*~) current_piece#73 [phi:play_move_rotate::@4->collision#3] -- register_copy + sta current_piece_74+1 + //SEG198 [95] call collision + //SEG199 [103] phi from play_move_rotate::@4 to collision [phi:play_move_rotate::@4->collision] + //SEG200 [103] phi (byte) collision::xpos#5 = (byte) collision::xpos#3 [phi:play_move_rotate::@4->collision#0] -- register_copy + //SEG201 [103] phi (byte) collision::ypos#4 = (byte) collision::ypos#3 [phi:play_move_rotate::@4->collision#1] -- register_copy + //SEG202 [103] phi (byte) collision::orientation#4 = (byte) collision::orientation#3 [phi:play_move_rotate::@4->collision#2] -- register_copy + //SEG203 [103] phi (byte*) current_piece#15 = (byte*~) current_piece#74 [phi:play_move_rotate::@4->collision#3] -- register_copy jsr collision - //SEG201 [95] (byte) collision::return#13 ← (byte) collision::return#14 + //SEG204 [96] (byte) collision::return#13 ← (byte) collision::return#14 // (byte) collision::return#13 = (byte) collision::return#14 // register copy reg byte a - //SEG202 play_move_rotate::@14 - //SEG203 [96] (byte~) play_move_rotate::$6 ← (byte) collision::return#13 + //SEG205 play_move_rotate::@14 + //SEG206 [97] (byte~) play_move_rotate::$6 ← (byte) collision::return#13 // (byte~) play_move_rotate::$6 = (byte) collision::return#13 // register copy reg byte a - //SEG204 [97] if((byte~) play_move_rotate::$6!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_move_rotate::@return -- vbuaa_neq_0_then_la1 - cmp #0 + //SEG207 [98] if((byte~) play_move_rotate::$6!=(const byte) COLLISION_NONE#0) goto play_move_rotate::@return -- vbuaa_neq_vbuc1_then_la1 + cmp #COLLISION_NONE bne b3 - //SEG205 play_move_rotate::@11 - //SEG206 [98] (byte) current_orientation#8 ← (byte) play_move_rotate::orientation#3 -- vbuz1=vbuz2 + //SEG208 play_move_rotate::@11 + //SEG209 [99] (byte) current_orientation#8 ← (byte) play_move_rotate::orientation#3 -- vbuz1=vbuz2 lda orientation sta current_orientation - //SEG207 [99] (byte*) current_piece_gfx#8 ← (byte*) current_piece#13 + (byte) current_orientation#8 -- pbuz1=pbuz2_plus_vbuz3 + //SEG210 [100] (byte*) current_piece_gfx#8 ← (byte*) current_piece#13 + (byte) current_orientation#8 -- pbuz1=pbuz2_plus_vbuz3 clc adc current_piece sta current_piece_gfx lda #0 adc current_piece+1 sta current_piece_gfx+1 - //SEG208 [85] phi from play_move_rotate::@11 to play_move_rotate::@return [phi:play_move_rotate::@11->play_move_rotate::@return] - //SEG209 [85] phi (byte*) current_piece_gfx#18 = (byte*) current_piece_gfx#8 [phi:play_move_rotate::@11->play_move_rotate::@return#0] -- register_copy - //SEG210 [85] phi (byte) current_orientation#23 = (byte) current_orientation#8 [phi:play_move_rotate::@11->play_move_rotate::@return#1] -- register_copy - //SEG211 [85] phi (byte) play_move_rotate::return#2 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_move_rotate::@11->play_move_rotate::@return#2] -- vbuaa=vbuc1 + //SEG211 [86] phi from play_move_rotate::@11 to play_move_rotate::@return [phi:play_move_rotate::@11->play_move_rotate::@return] + //SEG212 [86] phi (byte*) current_piece_gfx#18 = (byte*) current_piece_gfx#8 [phi:play_move_rotate::@11->play_move_rotate::@return#0] -- register_copy + //SEG213 [86] phi (byte) current_orientation#23 = (byte) current_orientation#8 [phi:play_move_rotate::@11->play_move_rotate::@return#1] -- register_copy + //SEG214 [86] phi (byte) play_move_rotate::return#2 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_move_rotate::@11->play_move_rotate::@return#2] -- vbuaa=vbuc1 lda #1 jmp breturn - //SEG212 play_move_rotate::@1 + //SEG215 play_move_rotate::@1 b1: - //SEG213 [100] (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 ← (byte) current_orientation#18 - (byte/signed byte/word/signed word/dword/signed dword) 16 -- vbuaa=vbuz1_minus_vbuc1 + //SEG216 [101] (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 ← (byte) current_orientation#18 - (byte/signed byte/word/signed word/dword/signed dword) 16 -- vbuaa=vbuz1_minus_vbuc1 lda current_orientation sec sbc #$10 - //SEG214 [101] (byte) play_move_rotate::orientation#1 ← (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 & (byte/signed byte/word/signed word/dword/signed dword) 63 -- vbuz1=vbuaa_band_vbuc1 + //SEG217 [102] (byte) play_move_rotate::orientation#1 ← (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 & (byte/signed byte/word/signed word/dword/signed dword) 63 -- vbuz1=vbuaa_band_vbuc1 and #$3f sta orientation jmp b4 } -//SEG215 collision +//SEG218 collision collision: { .label xpos = 7 .label piece_gfx = 5 @@ -13120,7 +13199,7 @@ collision: { .label i_3 = $a .label i_11 = $a .label i_13 = $a - //SEG216 [103] (byte*) collision::piece_gfx#0 ← (byte*) current_piece#15 + (byte) collision::orientation#4 -- pbuz1=pbuz1_plus_vbuxx + //SEG219 [104] (byte*) collision::piece_gfx#0 ← (byte*) current_piece#15 + (byte) collision::orientation#4 -- pbuz1=pbuz1_plus_vbuxx txa clc adc piece_gfx @@ -13128,550 +13207,547 @@ collision: { lda #0 adc piece_gfx+1 sta piece_gfx+1 - //SEG217 [104] (byte) collision::ypos2#0 ← (byte) collision::ypos#4 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuyy_rol_1 + //SEG220 [105] (byte) collision::ypos2#0 ← (byte) collision::ypos#4 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuyy_rol_1 tya asl sta ypos2 - //SEG218 [105] phi from collision to collision::@1 [phi:collision->collision::@1] - //SEG219 [105] phi (byte) collision::l#6 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:collision->collision::@1#0] -- vbuz1=vbuc1 + //SEG221 [106] phi from collision to collision::@1 [phi:collision->collision::@1] + //SEG222 [106] phi (byte) collision::l#6 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:collision->collision::@1#0] -- vbuz1=vbuc1 lda #0 sta l - //SEG220 [105] phi (byte) collision::i#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:collision->collision::@1#1] -- vbuz1=vbuc1 + //SEG223 [106] phi (byte) collision::i#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:collision->collision::@1#1] -- vbuz1=vbuc1 sta i_3 - //SEG221 [105] phi (byte) collision::ypos2#2 = (byte) collision::ypos2#0 [phi:collision->collision::@1#2] -- register_copy - //SEG222 collision::@1 + //SEG224 [106] phi (byte) collision::ypos2#2 = (byte) collision::ypos2#0 [phi:collision->collision::@1#2] -- register_copy + //SEG225 collision::@1 b1: - //SEG223 [106] (byte*) collision::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) collision::ypos2#2) -- pbuz1=pptc1_derefidx_vbuz2 + //SEG226 [107] (byte*) collision::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) collision::ypos2#2) -- pbuz1=pptc1_derefidx_vbuz2 ldy ypos2 lda playfield_lines,y sta playfield_line lda playfield_lines+1,y sta playfield_line+1 - //SEG224 [107] (byte~) collision::col#9 ← (byte) collision::xpos#5 -- vbuz1=vbuz2 + //SEG227 [108] (byte~) collision::col#9 ← (byte) collision::xpos#5 -- vbuz1=vbuz2 lda xpos sta col - //SEG225 [108] phi from collision::@1 to collision::@2 [phi:collision::@1->collision::@2] - //SEG226 [108] phi (byte) collision::c#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:collision::@1->collision::@2#0] -- vbuxx=vbuc1 + //SEG228 [109] phi from collision::@1 to collision::@2 [phi:collision::@1->collision::@2] + //SEG229 [109] phi (byte) collision::c#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:collision::@1->collision::@2#0] -- vbuxx=vbuc1 ldx #0 - //SEG227 [108] phi (byte) collision::col#2 = (byte~) collision::col#9 [phi:collision::@1->collision::@2#1] -- register_copy - //SEG228 [108] phi (byte) collision::i#2 = (byte) collision::i#3 [phi:collision::@1->collision::@2#2] -- register_copy - //SEG229 collision::@2 + //SEG230 [109] phi (byte) collision::col#2 = (byte~) collision::col#9 [phi:collision::@1->collision::@2#1] -- register_copy + //SEG231 [109] phi (byte) collision::i#2 = (byte) collision::i#3 [phi:collision::@1->collision::@2#2] -- register_copy + //SEG232 collision::@2 b2: - //SEG230 [109] (byte) collision::i#1 ← ++ (byte) collision::i#2 -- vbuz1=_inc_vbuz2 + //SEG233 [110] (byte) collision::i#1 ← ++ (byte) collision::i#2 -- vbuz1=_inc_vbuz2 ldy i_2 iny sty i - //SEG231 [110] if(*((byte*) collision::piece_gfx#0 + (byte) collision::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto collision::@3 -- pbuz1_derefidx_vbuz2_eq_0_then_la1 + //SEG234 [111] if(*((byte*) collision::piece_gfx#0 + (byte) collision::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto collision::@3 -- pbuz1_derefidx_vbuz2_eq_0_then_la1 ldy i_2 lda (piece_gfx),y cmp #0 beq b3 - //SEG232 collision::@8 - //SEG233 [111] if((byte) collision::ypos2#2<(byte/signed byte/word/signed word/dword/signed dword) 2*(const byte) PLAYFIELD_LINES#0) goto collision::@4 -- vbuz1_lt_vbuc1_then_la1 + //SEG235 collision::@8 + //SEG236 [112] if((byte) collision::ypos2#2<(byte/signed byte/word/signed word/dword/signed dword) 2*(const byte) PLAYFIELD_LINES#0) goto collision::@4 -- vbuz1_lt_vbuc1_then_la1 lda ypos2 cmp #2*PLAYFIELD_LINES bcc b4 - //SEG234 [112] phi from collision::@8 to collision::@return [phi:collision::@8->collision::@return] - //SEG235 [112] phi (byte) collision::return#14 = (const byte) COLLISION_BOTTOM#0 [phi:collision::@8->collision::@return#0] -- vbuaa=vbuc1 + //SEG237 [113] phi from collision::@8 to collision::@return [phi:collision::@8->collision::@return] + //SEG238 [113] phi (byte) collision::return#14 = (const byte) COLLISION_BOTTOM#0 [phi:collision::@8->collision::@return#0] -- vbuaa=vbuc1 lda #COLLISION_BOTTOM - //SEG236 collision::@return + //SEG239 collision::@return breturn: - //SEG237 [113] return + //SEG240 [114] return rts - //SEG238 collision::@4 + //SEG241 collision::@4 b4: - //SEG239 [114] (byte~) collision::$7 ← (byte) collision::col#2 & (byte/word/signed word/dword/signed dword) 128 -- vbuaa=vbuz1_band_vbuc1 + //SEG242 [115] (byte~) collision::$7 ← (byte) collision::col#2 & (byte/word/signed word/dword/signed dword) 128 -- vbuaa=vbuz1_band_vbuc1 lda #$80 and col - //SEG240 [115] if((byte~) collision::$7==(byte/signed byte/word/signed word/dword/signed dword) 0) goto collision::@5 -- vbuaa_eq_0_then_la1 + //SEG243 [116] if((byte~) collision::$7==(byte/signed byte/word/signed word/dword/signed dword) 0) goto collision::@5 -- vbuaa_eq_0_then_la1 cmp #0 beq b5 - //SEG241 [112] phi from collision::@4 to collision::@return [phi:collision::@4->collision::@return] - //SEG242 [112] phi (byte) collision::return#14 = (const byte) COLLISION_LEFT#0 [phi:collision::@4->collision::@return#0] -- vbuaa=vbuc1 + //SEG244 [113] phi from collision::@4 to collision::@return [phi:collision::@4->collision::@return] + //SEG245 [113] phi (byte) collision::return#14 = (const byte) COLLISION_LEFT#0 [phi:collision::@4->collision::@return#0] -- vbuaa=vbuc1 lda #COLLISION_LEFT jmp breturn - //SEG243 collision::@5 + //SEG246 collision::@5 b5: - //SEG244 [116] if((byte) collision::col#2<(const byte) PLAYFIELD_COLS#0) goto collision::@6 -- vbuz1_lt_vbuc1_then_la1 + //SEG247 [117] if((byte) collision::col#2<(const byte) PLAYFIELD_COLS#0) goto collision::@6 -- vbuz1_lt_vbuc1_then_la1 lda col cmp #PLAYFIELD_COLS bcc b6 - //SEG245 [112] phi from collision::@5 to collision::@return [phi:collision::@5->collision::@return] - //SEG246 [112] phi (byte) collision::return#14 = (const byte) COLLISION_RIGHT#0 [phi:collision::@5->collision::@return#0] -- vbuaa=vbuc1 + //SEG248 [113] phi from collision::@5 to collision::@return [phi:collision::@5->collision::@return] + //SEG249 [113] phi (byte) collision::return#14 = (const byte) COLLISION_RIGHT#0 [phi:collision::@5->collision::@return#0] -- vbuaa=vbuc1 lda #COLLISION_RIGHT jmp breturn - //SEG247 collision::@6 + //SEG250 collision::@6 b6: - //SEG248 [117] if(*((byte*) collision::playfield_line#0 + (byte) collision::col#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto collision::@3 -- pbuz1_derefidx_vbuz2_eq_0_then_la1 + //SEG251 [118] if(*((byte*) collision::playfield_line#0 + (byte) collision::col#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto collision::@3 -- pbuz1_derefidx_vbuz2_eq_0_then_la1 ldy col lda (playfield_line),y cmp #0 beq b3 - //SEG249 [112] phi from collision::@6 to collision::@return [phi:collision::@6->collision::@return] - //SEG250 [112] phi (byte) collision::return#14 = (const byte) COLLISION_PLAYFIELD#0 [phi:collision::@6->collision::@return#0] -- vbuaa=vbuc1 + //SEG252 [113] phi from collision::@6 to collision::@return [phi:collision::@6->collision::@return] + //SEG253 [113] phi (byte) collision::return#14 = (const byte) COLLISION_PLAYFIELD#0 [phi:collision::@6->collision::@return#0] -- vbuaa=vbuc1 lda #COLLISION_PLAYFIELD jmp breturn - //SEG251 collision::@3 + //SEG254 collision::@3 b3: - //SEG252 [118] (byte) collision::col#1 ← ++ (byte) collision::col#2 -- vbuz1=_inc_vbuz1 + //SEG255 [119] (byte) collision::col#1 ← ++ (byte) collision::col#2 -- vbuz1=_inc_vbuz1 inc col - //SEG253 [119] (byte) collision::c#1 ← ++ (byte) collision::c#2 -- vbuxx=_inc_vbuxx + //SEG256 [120] (byte) collision::c#1 ← ++ (byte) collision::c#2 -- vbuxx=_inc_vbuxx inx - //SEG254 [120] if((byte) collision::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto collision::@21 -- vbuxx_neq_vbuc1_then_la1 + //SEG257 [121] if((byte) collision::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto collision::@21 -- vbuxx_neq_vbuc1_then_la1 cpx #4 bne b21 - //SEG255 collision::@17 - //SEG256 [121] (byte) collision::ypos2#1 ← (byte) collision::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 -- vbuz1=vbuz1_plus_2 + //SEG258 collision::@17 + //SEG259 [122] (byte) collision::ypos2#1 ← (byte) collision::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 -- vbuz1=vbuz1_plus_2 lda ypos2 clc adc #2 sta ypos2 - //SEG257 [122] (byte) collision::l#1 ← ++ (byte) collision::l#6 -- vbuz1=_inc_vbuz1 + //SEG260 [123] (byte) collision::l#1 ← ++ (byte) collision::l#6 -- vbuz1=_inc_vbuz1 inc l - //SEG258 [123] if((byte) collision::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto collision::@20 -- vbuz1_neq_vbuc1_then_la1 + //SEG261 [124] if((byte) collision::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto collision::@20 -- vbuz1_neq_vbuc1_then_la1 lda l cmp #4 bne b20 - //SEG259 [112] phi from collision::@17 to collision::@return [phi:collision::@17->collision::@return] - //SEG260 [112] phi (byte) collision::return#14 = (const byte) COLLISION_NONE#0 [phi:collision::@17->collision::@return#0] -- vbuaa=vbuc1 + //SEG262 [113] phi from collision::@17 to collision::@return [phi:collision::@17->collision::@return] + //SEG263 [113] phi (byte) collision::return#14 = (const byte) COLLISION_NONE#0 [phi:collision::@17->collision::@return#0] -- vbuaa=vbuc1 lda #COLLISION_NONE jmp breturn - //SEG261 collision::@20 + //SEG264 collision::@20 b20: - //SEG262 [124] (byte~) collision::i#11 ← (byte) collision::i#1 -- vbuz1=vbuz2 + //SEG265 [125] (byte~) collision::i#11 ← (byte) collision::i#1 -- vbuz1=vbuz2 lda i sta i_11 - //SEG263 [105] phi from collision::@20 to collision::@1 [phi:collision::@20->collision::@1] - //SEG264 [105] phi (byte) collision::l#6 = (byte) collision::l#1 [phi:collision::@20->collision::@1#0] -- register_copy - //SEG265 [105] phi (byte) collision::i#3 = (byte~) collision::i#11 [phi:collision::@20->collision::@1#1] -- register_copy - //SEG266 [105] phi (byte) collision::ypos2#2 = (byte) collision::ypos2#1 [phi:collision::@20->collision::@1#2] -- register_copy + //SEG266 [106] phi from collision::@20 to collision::@1 [phi:collision::@20->collision::@1] + //SEG267 [106] phi (byte) collision::l#6 = (byte) collision::l#1 [phi:collision::@20->collision::@1#0] -- register_copy + //SEG268 [106] phi (byte) collision::i#3 = (byte~) collision::i#11 [phi:collision::@20->collision::@1#1] -- register_copy + //SEG269 [106] phi (byte) collision::ypos2#2 = (byte) collision::ypos2#1 [phi:collision::@20->collision::@1#2] -- register_copy jmp b1 - //SEG267 collision::@21 + //SEG270 collision::@21 b21: - //SEG268 [125] (byte~) collision::i#13 ← (byte) collision::i#1 -- vbuz1=vbuz2 + //SEG271 [126] (byte~) collision::i#13 ← (byte) collision::i#1 -- vbuz1=vbuz2 lda i sta i_13 - //SEG269 [108] phi from collision::@21 to collision::@2 [phi:collision::@21->collision::@2] - //SEG270 [108] phi (byte) collision::c#2 = (byte) collision::c#1 [phi:collision::@21->collision::@2#0] -- register_copy - //SEG271 [108] phi (byte) collision::col#2 = (byte) collision::col#1 [phi:collision::@21->collision::@2#1] -- register_copy - //SEG272 [108] phi (byte) collision::i#2 = (byte~) collision::i#13 [phi:collision::@21->collision::@2#2] -- register_copy + //SEG272 [109] phi from collision::@21 to collision::@2 [phi:collision::@21->collision::@2] + //SEG273 [109] phi (byte) collision::c#2 = (byte) collision::c#1 [phi:collision::@21->collision::@2#0] -- register_copy + //SEG274 [109] phi (byte) collision::col#2 = (byte) collision::col#1 [phi:collision::@21->collision::@2#1] -- register_copy + //SEG275 [109] phi (byte) collision::i#2 = (byte~) collision::i#13 [phi:collision::@21->collision::@2#2] -- register_copy jmp b2 } -//SEG273 play_move_leftright +//SEG276 play_move_leftright play_move_leftright: { - //SEG274 [126] if((byte) play_move_leftright::key_event#0==(const byte) KEY_COMMA#0) goto play_move_leftright::@1 -- vbuaa_eq_vbuc1_then_la1 + //SEG277 [127] if((byte) play_move_leftright::key_event#0==(const byte) KEY_COMMA#0) goto play_move_leftright::@1 -- vbuaa_eq_vbuc1_then_la1 cmp #KEY_COMMA beq b1 - //SEG275 play_move_leftright::@6 - //SEG276 [127] if((byte) play_move_leftright::key_event#0!=(const byte) KEY_DOT#0) goto play_move_leftright::@return -- vbuaa_neq_vbuc1_then_la1 + //SEG278 play_move_leftright::@6 + //SEG279 [128] if((byte) play_move_leftright::key_event#0!=(const byte) KEY_DOT#0) goto play_move_leftright::@return -- vbuaa_neq_vbuc1_then_la1 cmp #KEY_DOT bne b3 - //SEG277 play_move_leftright::@7 - //SEG278 [128] (byte) collision::xpos#2 ← (byte) current_xpos#19 + (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_plus_1 + //SEG280 play_move_leftright::@7 + //SEG281 [129] (byte) collision::xpos#2 ← (byte) current_xpos#19 + (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_plus_1 ldy current_xpos iny sty collision.xpos - //SEG279 [129] (byte) collision::ypos#2 ← (byte) current_ypos#16 -- vbuyy=vbuz1 + //SEG282 [130] (byte) collision::ypos#2 ← (byte) current_ypos#16 -- vbuyy=vbuz1 ldy current_ypos - //SEG280 [130] (byte) collision::orientation#2 ← (byte) current_orientation#18 -- vbuxx=vbuz1 + //SEG283 [131] (byte) collision::orientation#2 ← (byte) current_orientation#18 -- vbuxx=vbuz1 ldx current_orientation - //SEG281 [131] (byte*~) current_piece#72 ← (byte*) current_piece#13 -- pbuz1=pbuz2 + //SEG284 [132] (byte*~) current_piece#73 ← (byte*) current_piece#13 -- pbuz1=pbuz2 + lda current_piece + sta current_piece_73 + lda current_piece+1 + sta current_piece_73+1 + //SEG285 [133] call collision + //SEG286 [103] phi from play_move_leftright::@7 to collision [phi:play_move_leftright::@7->collision] + //SEG287 [103] phi (byte) collision::xpos#5 = (byte) collision::xpos#2 [phi:play_move_leftright::@7->collision#0] -- register_copy + //SEG288 [103] phi (byte) collision::ypos#4 = (byte) collision::ypos#2 [phi:play_move_leftright::@7->collision#1] -- register_copy + //SEG289 [103] phi (byte) collision::orientation#4 = (byte) collision::orientation#2 [phi:play_move_leftright::@7->collision#2] -- register_copy + //SEG290 [103] phi (byte*) current_piece#15 = (byte*~) current_piece#73 [phi:play_move_leftright::@7->collision#3] -- register_copy + jsr collision + //SEG291 [134] (byte) collision::return#12 ← (byte) collision::return#14 + // (byte) collision::return#12 = (byte) collision::return#14 // register copy reg byte a + //SEG292 play_move_leftright::@15 + //SEG293 [135] (byte~) play_move_leftright::$4 ← (byte) collision::return#12 + // (byte~) play_move_leftright::$4 = (byte) collision::return#12 // register copy reg byte a + //SEG294 [136] if((byte~) play_move_leftright::$4!=(const byte) COLLISION_NONE#0) goto play_move_leftright::@return -- vbuaa_neq_vbuc1_then_la1 + cmp #COLLISION_NONE + bne b3 + //SEG295 play_move_leftright::@8 + //SEG296 [137] (byte) current_xpos#7 ← ++ (byte) current_xpos#19 -- vbuz1=_inc_vbuz1 + inc current_xpos + //SEG297 [138] phi from play_move_leftright::@11 play_move_leftright::@8 to play_move_leftright::@return [phi:play_move_leftright::@11/play_move_leftright::@8->play_move_leftright::@return] + b2: + //SEG298 [138] phi (byte) current_xpos#23 = (byte) current_xpos#9 [phi:play_move_leftright::@11/play_move_leftright::@8->play_move_leftright::@return#0] -- register_copy + //SEG299 [138] phi (byte) play_move_leftright::return#2 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_move_leftright::@11/play_move_leftright::@8->play_move_leftright::@return#1] -- vbuaa=vbuc1 + lda #1 + jmp breturn + //SEG300 [138] phi from play_move_leftright::@14 play_move_leftright::@15 play_move_leftright::@6 to play_move_leftright::@return [phi:play_move_leftright::@14/play_move_leftright::@15/play_move_leftright::@6->play_move_leftright::@return] + b3: + //SEG301 [138] phi (byte) current_xpos#23 = (byte) current_xpos#19 [phi:play_move_leftright::@14/play_move_leftright::@15/play_move_leftright::@6->play_move_leftright::@return#0] -- register_copy + //SEG302 [138] phi (byte) play_move_leftright::return#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_leftright::@14/play_move_leftright::@15/play_move_leftright::@6->play_move_leftright::@return#1] -- vbuaa=vbuc1 + lda #0 + //SEG303 play_move_leftright::@return + breturn: + //SEG304 [139] return + rts + //SEG305 play_move_leftright::@1 + b1: + //SEG306 [140] (byte) collision::xpos#1 ← (byte) current_xpos#19 - (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_minus_1 + ldx current_xpos + dex + stx collision.xpos + //SEG307 [141] (byte) collision::ypos#1 ← (byte) current_ypos#16 -- vbuyy=vbuz1 + ldy current_ypos + //SEG308 [142] (byte) collision::orientation#1 ← (byte) current_orientation#18 -- vbuxx=vbuz1 + ldx current_orientation + //SEG309 [143] (byte*~) current_piece#72 ← (byte*) current_piece#13 -- pbuz1=pbuz2 lda current_piece sta current_piece_72 lda current_piece+1 sta current_piece_72+1 - //SEG282 [132] call collision - //SEG283 [102] phi from play_move_leftright::@7 to collision [phi:play_move_leftright::@7->collision] - //SEG284 [102] phi (byte) collision::xpos#5 = (byte) collision::xpos#2 [phi:play_move_leftright::@7->collision#0] -- register_copy - //SEG285 [102] phi (byte) collision::ypos#4 = (byte) collision::ypos#2 [phi:play_move_leftright::@7->collision#1] -- register_copy - //SEG286 [102] phi (byte) collision::orientation#4 = (byte) collision::orientation#2 [phi:play_move_leftright::@7->collision#2] -- register_copy - //SEG287 [102] phi (byte*) current_piece#15 = (byte*~) current_piece#72 [phi:play_move_leftright::@7->collision#3] -- register_copy + //SEG310 [144] call collision + //SEG311 [103] phi from play_move_leftright::@1 to collision [phi:play_move_leftright::@1->collision] + //SEG312 [103] phi (byte) collision::xpos#5 = (byte) collision::xpos#1 [phi:play_move_leftright::@1->collision#0] -- register_copy + //SEG313 [103] phi (byte) collision::ypos#4 = (byte) collision::ypos#1 [phi:play_move_leftright::@1->collision#1] -- register_copy + //SEG314 [103] phi (byte) collision::orientation#4 = (byte) collision::orientation#1 [phi:play_move_leftright::@1->collision#2] -- register_copy + //SEG315 [103] phi (byte*) current_piece#15 = (byte*~) current_piece#72 [phi:play_move_leftright::@1->collision#3] -- register_copy jsr collision - //SEG288 [133] (byte) collision::return#12 ← (byte) collision::return#14 - // (byte) collision::return#12 = (byte) collision::return#14 // register copy reg byte a - //SEG289 play_move_leftright::@15 - //SEG290 [134] (byte~) play_move_leftright::$4 ← (byte) collision::return#12 - // (byte~) play_move_leftright::$4 = (byte) collision::return#12 // register copy reg byte a - //SEG291 [135] if((byte~) play_move_leftright::$4!=(const byte) COLLISION_NONE#0) goto play_move_leftright::@return -- vbuaa_neq_vbuc1_then_la1 + //SEG316 [145] (byte) collision::return#1 ← (byte) collision::return#14 + // (byte) collision::return#1 = (byte) collision::return#14 // register copy reg byte a + //SEG317 play_move_leftright::@14 + //SEG318 [146] (byte~) play_move_leftright::$8 ← (byte) collision::return#1 + // (byte~) play_move_leftright::$8 = (byte) collision::return#1 // register copy reg byte a + //SEG319 [147] if((byte~) play_move_leftright::$8!=(const byte) COLLISION_NONE#0) goto play_move_leftright::@return -- vbuaa_neq_vbuc1_then_la1 cmp #COLLISION_NONE bne b3 - //SEG292 play_move_leftright::@8 - //SEG293 [136] (byte) current_xpos#7 ← ++ (byte) current_xpos#19 -- vbuz1=_inc_vbuz1 - inc current_xpos - //SEG294 [137] 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: - //SEG295 [137] phi (byte) current_xpos#23 = (byte) current_xpos#9 [phi:play_move_leftright::@11/play_move_leftright::@8->play_move_leftright::@return#0] -- register_copy - //SEG296 [137] phi (byte) play_move_leftright::return#2 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_move_leftright::@11/play_move_leftright::@8->play_move_leftright::@return#1] -- vbuaa=vbuc1 - lda #1 - jmp breturn - //SEG297 [137] 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] + //SEG320 play_move_leftright::@11 + //SEG321 [148] (byte) current_xpos#9 ← -- (byte) current_xpos#19 -- vbuz1=_dec_vbuz1 + dec current_xpos + jmp b2 +} +//SEG322 play_move_down +play_move_down: { + //SEG323 [149] (byte) current_movedown_counter#10 ← ++ (byte) current_movedown_counter#15 -- vbuz1=_inc_vbuz1 + inc current_movedown_counter + //SEG324 [150] if((byte) play_move_down::key_event#0!=(const byte) KEY_SPACE#0) goto play_move_down::@1 -- vbuaa_neq_vbuc1_then_la1 + cmp #KEY_SPACE + bne b3 + //SEG325 [151] phi from play_move_down to play_move_down::@8 [phi:play_move_down->play_move_down::@8] + //SEG326 play_move_down::@8 + //SEG327 [152] phi from play_move_down::@8 to play_move_down::@1 [phi:play_move_down::@8->play_move_down::@1] + //SEG328 [152] phi (byte) play_move_down::movedown#10 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_move_down::@8->play_move_down::@1#0] -- vbuxx=vbuc1 + ldx #1 + jmp b1 + //SEG329 [152] phi from play_move_down to play_move_down::@1 [phi:play_move_down->play_move_down::@1] b3: - //SEG298 [137] phi (byte) current_xpos#23 = (byte) current_xpos#19 [phi:play_move_leftright::@14/play_move_leftright::@15/play_move_leftright::@6->play_move_leftright::@return#0] -- register_copy - //SEG299 [137] phi (byte) play_move_leftright::return#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_leftright::@14/play_move_leftright::@15/play_move_leftright::@6->play_move_leftright::@return#1] -- vbuaa=vbuc1 - lda #0 - //SEG300 play_move_leftright::@return - breturn: - //SEG301 [138] return - rts - //SEG302 play_move_leftright::@1 + //SEG330 [152] phi (byte) play_move_down::movedown#10 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_down->play_move_down::@1#0] -- vbuxx=vbuc1 + ldx #0 + //SEG331 play_move_down::@1 b1: - //SEG303 [139] (byte) collision::xpos#1 ← (byte) current_xpos#19 - (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_minus_1 - ldx current_xpos - dex - stx collision.xpos - //SEG304 [140] (byte) collision::ypos#1 ← (byte) current_ypos#16 -- vbuyy=vbuz1 + //SEG332 [153] call keyboard_event_pressed + //SEG333 [254] phi from play_move_down::@1 to keyboard_event_pressed [phi:play_move_down::@1->keyboard_event_pressed] + //SEG334 [254] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_SPACE#0 [phi:play_move_down::@1->keyboard_event_pressed#0] -- vbuz1=vbuc1 + lda #KEY_SPACE + sta keyboard_event_pressed.keycode + jsr keyboard_event_pressed + //SEG335 [154] (byte) keyboard_event_pressed::return#12 ← (byte) keyboard_event_pressed::return#11 + // (byte) keyboard_event_pressed::return#12 = (byte) keyboard_event_pressed::return#11 // register copy reg byte a + //SEG336 play_move_down::@17 + //SEG337 [155] (byte~) play_move_down::$2 ← (byte) keyboard_event_pressed::return#12 + // (byte~) play_move_down::$2 = (byte) keyboard_event_pressed::return#12 // register copy reg byte a + //SEG338 [156] if((byte~) play_move_down::$2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_move_down::@2 -- vbuaa_eq_0_then_la1 + cmp #0 + beq b2 + //SEG339 play_move_down::@9 + //SEG340 [157] if((byte) current_movedown_counter#10<(const byte) current_movedown_fast#0) goto play_move_down::@2 -- vbuz1_lt_vbuc1_then_la1 + lda current_movedown_counter + cmp #current_movedown_fast + bcc b2 + //SEG341 play_move_down::@10 + //SEG342 [158] (byte) play_move_down::movedown#2 ← ++ (byte) play_move_down::movedown#10 -- vbuxx=_inc_vbuxx + inx + //SEG343 [159] phi from play_move_down::@10 play_move_down::@17 play_move_down::@9 to play_move_down::@2 [phi:play_move_down::@10/play_move_down::@17/play_move_down::@9->play_move_down::@2] + //SEG344 [159] phi (byte) play_move_down::movedown#7 = (byte) play_move_down::movedown#2 [phi:play_move_down::@10/play_move_down::@17/play_move_down::@9->play_move_down::@2#0] -- register_copy + //SEG345 play_move_down::@2 + b2: + //SEG346 [160] if((byte) current_movedown_counter#10<(const byte) current_movedown_slow#0) goto play_move_down::@4 -- vbuz1_lt_vbuc1_then_la1 + lda current_movedown_counter + cmp #current_movedown_slow + bcc b4 + //SEG347 play_move_down::@11 + //SEG348 [161] (byte) play_move_down::movedown#3 ← ++ (byte) play_move_down::movedown#7 -- vbuxx=_inc_vbuxx + inx + //SEG349 [162] phi from play_move_down::@11 play_move_down::@2 to play_move_down::@4 [phi:play_move_down::@11/play_move_down::@2->play_move_down::@4] + //SEG350 [162] phi (byte) play_move_down::movedown#6 = (byte) play_move_down::movedown#3 [phi:play_move_down::@11/play_move_down::@2->play_move_down::@4#0] -- register_copy + //SEG351 play_move_down::@4 + b4: + //SEG352 [163] if((byte) play_move_down::movedown#6==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_move_down::@return -- vbuxx_eq_0_then_la1 + cpx #0 + beq b5 + //SEG353 play_move_down::@12 + //SEG354 [164] (byte) collision::ypos#0 ← (byte) current_ypos#12 + (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuyy=vbuz1_plus_1 ldy current_ypos - //SEG305 [141] (byte) collision::orientation#1 ← (byte) current_orientation#18 -- vbuxx=vbuz1 + iny + //SEG355 [165] (byte) collision::xpos#0 ← (byte) current_xpos#16 -- vbuz1=vbuz2 + lda current_xpos + sta collision.xpos + //SEG356 [166] (byte) collision::orientation#0 ← (byte) current_orientation#15 -- vbuxx=vbuz1 ldx current_orientation - //SEG306 [142] (byte*~) current_piece#71 ← (byte*) current_piece#13 -- pbuz1=pbuz2 + //SEG357 [167] (byte*~) current_piece#71 ← (byte*) current_piece#11 -- pbuz1=pbuz2 lda current_piece sta current_piece_71 lda current_piece+1 sta current_piece_71+1 - //SEG307 [143] call collision - //SEG308 [102] phi from play_move_leftright::@1 to collision [phi:play_move_leftright::@1->collision] - //SEG309 [102] phi (byte) collision::xpos#5 = (byte) collision::xpos#1 [phi:play_move_leftright::@1->collision#0] -- register_copy - //SEG310 [102] phi (byte) collision::ypos#4 = (byte) collision::ypos#1 [phi:play_move_leftright::@1->collision#1] -- register_copy - //SEG311 [102] phi (byte) collision::orientation#4 = (byte) collision::orientation#1 [phi:play_move_leftright::@1->collision#2] -- register_copy - //SEG312 [102] phi (byte*) current_piece#15 = (byte*~) current_piece#71 [phi:play_move_leftright::@1->collision#3] -- register_copy + //SEG358 [168] call collision + //SEG359 [103] phi from play_move_down::@12 to collision [phi:play_move_down::@12->collision] + //SEG360 [103] phi (byte) collision::xpos#5 = (byte) collision::xpos#0 [phi:play_move_down::@12->collision#0] -- register_copy + //SEG361 [103] phi (byte) collision::ypos#4 = (byte) collision::ypos#0 [phi:play_move_down::@12->collision#1] -- register_copy + //SEG362 [103] phi (byte) collision::orientation#4 = (byte) collision::orientation#0 [phi:play_move_down::@12->collision#2] -- register_copy + //SEG363 [103] phi (byte*) current_piece#15 = (byte*~) current_piece#71 [phi:play_move_down::@12->collision#3] -- register_copy jsr collision - //SEG313 [144] (byte) collision::return#1 ← (byte) collision::return#14 - // (byte) collision::return#1 = (byte) collision::return#14 // register copy reg byte a - //SEG314 play_move_leftright::@14 - //SEG315 [145] (byte~) play_move_leftright::$8 ← (byte) collision::return#1 - // (byte~) play_move_leftright::$8 = (byte) collision::return#1 // register copy reg byte a - //SEG316 [146] if((byte~) play_move_leftright::$8!=(const byte) COLLISION_NONE#0) goto play_move_leftright::@return -- vbuaa_neq_vbuc1_then_la1 - cmp #COLLISION_NONE - bne b3 - //SEG317 play_move_leftright::@11 - //SEG318 [147] (byte) current_xpos#9 ← -- (byte) current_xpos#19 -- vbuz1=_dec_vbuz1 - dec current_xpos - jmp b2 -} -//SEG319 play_move_down -play_move_down: { - //SEG320 [148] (byte) current_movedown_counter#10 ← ++ (byte) current_movedown_counter#15 -- vbuz1=_inc_vbuz1 - inc current_movedown_counter - //SEG321 [149] if((byte) play_move_down::key_event#0!=(const byte) KEY_SPACE#0) goto play_move_down::@1 -- vbuaa_neq_vbuc1_then_la1 - cmp #KEY_SPACE - bne b3 - //SEG322 [150] phi from play_move_down to play_move_down::@8 [phi:play_move_down->play_move_down::@8] - //SEG323 play_move_down::@8 - //SEG324 [151] phi from play_move_down::@8 to play_move_down::@1 [phi:play_move_down::@8->play_move_down::@1] - //SEG325 [151] phi (byte) play_move_down::movedown#10 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_move_down::@8->play_move_down::@1#0] -- vbuxx=vbuc1 - ldx #1 - jmp b1 - //SEG326 [151] phi from play_move_down to play_move_down::@1 [phi:play_move_down->play_move_down::@1] - b3: - //SEG327 [151] phi (byte) play_move_down::movedown#10 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_down->play_move_down::@1#0] -- vbuxx=vbuc1 - ldx #0 - //SEG328 play_move_down::@1 - b1: - //SEG329 [152] call keyboard_event_pressed - //SEG330 [254] phi from play_move_down::@1 to keyboard_event_pressed [phi:play_move_down::@1->keyboard_event_pressed] - //SEG331 [254] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_SPACE#0 [phi:play_move_down::@1->keyboard_event_pressed#0] -- vbuz1=vbuc1 - lda #KEY_SPACE - sta keyboard_event_pressed.keycode - jsr keyboard_event_pressed - //SEG332 [153] (byte) keyboard_event_pressed::return#12 ← (byte) keyboard_event_pressed::return#11 - // (byte) keyboard_event_pressed::return#12 = (byte) keyboard_event_pressed::return#11 // register copy reg byte a - //SEG333 play_move_down::@17 - //SEG334 [154] (byte~) play_move_down::$2 ← (byte) keyboard_event_pressed::return#12 - // (byte~) play_move_down::$2 = (byte) keyboard_event_pressed::return#12 // register copy reg byte a - //SEG335 [155] if((byte~) play_move_down::$2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_move_down::@2 -- vbuaa_eq_0_then_la1 - cmp #0 - beq b2 - //SEG336 play_move_down::@9 - //SEG337 [156] if((byte) current_movedown_counter#10<(const byte) current_movedown_fast#0) goto play_move_down::@2 -- vbuz1_lt_vbuc1_then_la1 - lda current_movedown_counter - cmp #current_movedown_fast - bcc b2 - //SEG338 play_move_down::@10 - //SEG339 [157] (byte) play_move_down::movedown#2 ← ++ (byte) play_move_down::movedown#10 -- vbuxx=_inc_vbuxx - inx - //SEG340 [158] phi from play_move_down::@10 play_move_down::@17 play_move_down::@9 to play_move_down::@2 [phi:play_move_down::@10/play_move_down::@17/play_move_down::@9->play_move_down::@2] - //SEG341 [158] phi (byte) play_move_down::movedown#7 = (byte) play_move_down::movedown#2 [phi:play_move_down::@10/play_move_down::@17/play_move_down::@9->play_move_down::@2#0] -- register_copy - //SEG342 play_move_down::@2 - b2: - //SEG343 [159] if((byte) current_movedown_counter#10<(const byte) current_movedown_slow#0) goto play_move_down::@4 -- vbuz1_lt_vbuc1_then_la1 - lda current_movedown_counter - cmp #current_movedown_slow - bcc b4 - //SEG344 play_move_down::@11 - //SEG345 [160] (byte) play_move_down::movedown#3 ← ++ (byte) play_move_down::movedown#7 -- vbuxx=_inc_vbuxx - inx - //SEG346 [161] phi from play_move_down::@11 play_move_down::@2 to play_move_down::@4 [phi:play_move_down::@11/play_move_down::@2->play_move_down::@4] - //SEG347 [161] phi (byte) play_move_down::movedown#6 = (byte) play_move_down::movedown#3 [phi:play_move_down::@11/play_move_down::@2->play_move_down::@4#0] -- register_copy - //SEG348 play_move_down::@4 - b4: - //SEG349 [162] if((byte) play_move_down::movedown#6==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_move_down::@return -- vbuxx_eq_0_then_la1 - cpx #0 - beq b5 - //SEG350 play_move_down::@12 - //SEG351 [163] (byte) collision::ypos#0 ← (byte) current_ypos#12 + (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuyy=vbuz1_plus_1 - ldy current_ypos - iny - //SEG352 [164] (byte) collision::xpos#0 ← (byte) current_xpos#16 -- vbuz1=vbuz2 - lda current_xpos - sta collision.xpos - //SEG353 [165] (byte) collision::orientation#0 ← (byte) current_orientation#15 -- vbuxx=vbuz1 - ldx current_orientation - //SEG354 [166] (byte*~) current_piece#70 ← (byte*) current_piece#11 -- pbuz1=pbuz2 - lda current_piece - sta current_piece_70 - lda current_piece+1 - sta current_piece_70+1 - //SEG355 [167] call collision - //SEG356 [102] phi from play_move_down::@12 to collision [phi:play_move_down::@12->collision] - //SEG357 [102] phi (byte) collision::xpos#5 = (byte) collision::xpos#0 [phi:play_move_down::@12->collision#0] -- register_copy - //SEG358 [102] phi (byte) collision::ypos#4 = (byte) collision::ypos#0 [phi:play_move_down::@12->collision#1] -- register_copy - //SEG359 [102] phi (byte) collision::orientation#4 = (byte) collision::orientation#0 [phi:play_move_down::@12->collision#2] -- register_copy - //SEG360 [102] phi (byte*) current_piece#15 = (byte*~) current_piece#70 [phi:play_move_down::@12->collision#3] -- register_copy - jsr collision - //SEG361 [168] (byte) collision::return#0 ← (byte) collision::return#14 + //SEG364 [169] (byte) collision::return#0 ← (byte) collision::return#14 // (byte) collision::return#0 = (byte) collision::return#14 // register copy reg byte a - //SEG362 play_move_down::@18 - //SEG363 [169] (byte~) play_move_down::$12 ← (byte) collision::return#0 + //SEG365 play_move_down::@18 + //SEG366 [170] (byte~) play_move_down::$12 ← (byte) collision::return#0 // (byte~) play_move_down::$12 = (byte) collision::return#0 // register copy reg byte a - //SEG364 [170] if((byte~) play_move_down::$12==(const byte) COLLISION_NONE#0) goto play_move_down::@6 -- vbuaa_eq_vbuc1_then_la1 + //SEG367 [171] if((byte~) play_move_down::$12==(const byte) COLLISION_NONE#0) goto play_move_down::@6 -- vbuaa_eq_vbuc1_then_la1 cmp #COLLISION_NONE beq b6 - //SEG365 [171] phi from play_move_down::@18 to play_move_down::@13 [phi:play_move_down::@18->play_move_down::@13] - //SEG366 play_move_down::@13 - //SEG367 [172] call lock_current + //SEG368 [172] phi from play_move_down::@18 to play_move_down::@13 [phi:play_move_down::@18->play_move_down::@13] + //SEG369 play_move_down::@13 + //SEG370 [173] call lock_current jsr lock_current - //SEG368 [173] phi from play_move_down::@13 to play_move_down::@19 [phi:play_move_down::@13->play_move_down::@19] - //SEG369 play_move_down::@19 - //SEG370 [174] call remove_lines - //SEG371 [197] phi from play_move_down::@19 to remove_lines [phi:play_move_down::@19->remove_lines] + //SEG371 [174] phi from play_move_down::@13 to play_move_down::@19 [phi:play_move_down::@13->play_move_down::@19] + //SEG372 play_move_down::@19 + //SEG373 [175] call remove_lines + //SEG374 [197] phi from play_move_down::@19 to remove_lines [phi:play_move_down::@19->remove_lines] jsr remove_lines - //SEG372 [175] phi from play_move_down::@19 to play_move_down::@20 [phi:play_move_down::@19->play_move_down::@20] - //SEG373 play_move_down::@20 - //SEG374 [176] call spawn_current + //SEG375 [176] phi from play_move_down::@19 to play_move_down::@20 [phi:play_move_down::@19->play_move_down::@20] + //SEG376 play_move_down::@20 + //SEG377 [177] call spawn_current + //SEG378 [183] phi from play_move_down::@20 to spawn_current [phi:play_move_down::@20->spawn_current] jsr spawn_current - //SEG375 [177] (byte*~) current_piece#74 ← (byte*)*((const word[]) PIECES#0 + (byte~) spawn_current::$3) -- pbuz1=pptc1_derefidx_vbuz2 + //SEG379 [178] (byte*~) current_piece#75 ← (byte*)*((const word[]) PIECES#0 + (byte~) spawn_current::$3) -- pbuz1=pptc1_derefidx_vbuz2 ldy spawn_current._3 lda PIECES,y sta current_piece lda PIECES+1,y sta current_piece+1 - //SEG376 [178] phi from play_move_down::@20 to play_move_down::@7 [phi:play_move_down::@20->play_move_down::@7] - //SEG377 [178] phi (byte) current_piece_color#23 = (byte) current_piece_color#15 [phi:play_move_down::@20->play_move_down::@7#0] -- register_copy - //SEG378 [178] phi (byte) current_xpos#36 = (byte/signed byte/word/signed word/dword/signed dword) 3 [phi:play_move_down::@20->play_move_down::@7#1] -- vbuz1=vbuc1 + //SEG380 [179] phi from play_move_down::@20 to play_move_down::@7 [phi:play_move_down::@20->play_move_down::@7] + //SEG381 [179] phi (byte) current_piece_color#23 = (byte) current_piece_color#15 [phi:play_move_down::@20->play_move_down::@7#0] -- register_copy + //SEG382 [179] phi (byte) current_xpos#36 = (byte/signed byte/word/signed word/dword/signed dword) 3 [phi:play_move_down::@20->play_move_down::@7#1] -- vbuz1=vbuc1 lda #3 sta current_xpos - //SEG379 [178] phi (byte*) current_piece_gfx#29 = (byte*) current_piece_gfx#10 [phi:play_move_down::@20->play_move_down::@7#2] -- register_copy - //SEG380 [178] phi (byte) current_orientation#33 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_down::@20->play_move_down::@7#3] -- vbuz1=vbuc1 + //SEG383 [179] phi (byte*) current_piece_gfx#29 = (byte*) current_piece_gfx#10 [phi:play_move_down::@20->play_move_down::@7#2] -- register_copy + //SEG384 [179] phi (byte) current_orientation#33 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_down::@20->play_move_down::@7#3] -- vbuz1=vbuc1 lda #0 sta current_orientation - //SEG381 [178] phi (byte*) current_piece#23 = (byte*~) current_piece#74 [phi:play_move_down::@20->play_move_down::@7#4] -- register_copy - //SEG382 [178] phi (byte) current_ypos#31 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_down::@20->play_move_down::@7#5] -- vbuz1=vbuc1 + //SEG385 [179] phi (byte*) current_piece#23 = (byte*~) current_piece#75 [phi:play_move_down::@20->play_move_down::@7#4] -- register_copy + //SEG386 [179] phi (byte) current_ypos#31 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_down::@20->play_move_down::@7#5] -- vbuz1=vbuc1 sta current_ypos - //SEG383 play_move_down::@7 + //SEG387 play_move_down::@7 b7: - //SEG384 [179] phi from play_move_down::@7 to play_move_down::@return [phi:play_move_down::@7->play_move_down::@return] - //SEG385 [179] phi (byte) current_piece_color#13 = (byte) current_piece_color#23 [phi:play_move_down::@7->play_move_down::@return#0] -- register_copy - //SEG386 [179] phi (byte) current_xpos#19 = (byte) current_xpos#36 [phi:play_move_down::@7->play_move_down::@return#1] -- register_copy - //SEG387 [179] phi (byte*) current_piece_gfx#17 = (byte*) current_piece_gfx#29 [phi:play_move_down::@7->play_move_down::@return#2] -- register_copy - //SEG388 [179] phi (byte) current_orientation#18 = (byte) current_orientation#33 [phi:play_move_down::@7->play_move_down::@return#3] -- register_copy - //SEG389 [179] phi (byte*) current_piece#13 = (byte*) current_piece#23 [phi:play_move_down::@7->play_move_down::@return#4] -- register_copy - //SEG390 [179] phi (byte) current_ypos#16 = (byte) current_ypos#31 [phi:play_move_down::@7->play_move_down::@return#5] -- register_copy - //SEG391 [179] phi (byte) current_movedown_counter#12 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_down::@7->play_move_down::@return#6] -- vbuz1=vbuc1 + //SEG388 [180] phi from play_move_down::@7 to play_move_down::@return [phi:play_move_down::@7->play_move_down::@return] + //SEG389 [180] phi (byte) current_piece_color#13 = (byte) current_piece_color#23 [phi:play_move_down::@7->play_move_down::@return#0] -- register_copy + //SEG390 [180] phi (byte) current_xpos#19 = (byte) current_xpos#36 [phi:play_move_down::@7->play_move_down::@return#1] -- register_copy + //SEG391 [180] phi (byte*) current_piece_gfx#17 = (byte*) current_piece_gfx#29 [phi:play_move_down::@7->play_move_down::@return#2] -- register_copy + //SEG392 [180] phi (byte) current_orientation#18 = (byte) current_orientation#33 [phi:play_move_down::@7->play_move_down::@return#3] -- register_copy + //SEG393 [180] phi (byte*) current_piece#13 = (byte*) current_piece#23 [phi:play_move_down::@7->play_move_down::@return#4] -- register_copy + //SEG394 [180] phi (byte) current_ypos#16 = (byte) current_ypos#31 [phi:play_move_down::@7->play_move_down::@return#5] -- register_copy + //SEG395 [180] phi (byte) current_movedown_counter#12 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_down::@7->play_move_down::@return#6] -- vbuz1=vbuc1 lda #0 sta current_movedown_counter - //SEG392 [179] phi (byte) play_move_down::return#3 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_move_down::@7->play_move_down::@return#7] -- vbuxx=vbuc1 + //SEG396 [180] phi (byte) play_move_down::return#3 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_move_down::@7->play_move_down::@return#7] -- vbuxx=vbuc1 ldx #1 jmp breturn - //SEG393 [179] phi from play_move_down::@4 to play_move_down::@return [phi:play_move_down::@4->play_move_down::@return] + //SEG397 [180] phi from play_move_down::@4 to play_move_down::@return [phi:play_move_down::@4->play_move_down::@return] b5: - //SEG394 [179] phi (byte) current_piece_color#13 = (byte) current_piece_color#11 [phi:play_move_down::@4->play_move_down::@return#0] -- register_copy - //SEG395 [179] phi (byte) current_xpos#19 = (byte) current_xpos#16 [phi:play_move_down::@4->play_move_down::@return#1] -- register_copy - //SEG396 [179] phi (byte*) current_piece_gfx#17 = (byte*) current_piece_gfx#15 [phi:play_move_down::@4->play_move_down::@return#2] -- register_copy - //SEG397 [179] phi (byte) current_orientation#18 = (byte) current_orientation#15 [phi:play_move_down::@4->play_move_down::@return#3] -- register_copy - //SEG398 [179] phi (byte*) current_piece#13 = (byte*) current_piece#11 [phi:play_move_down::@4->play_move_down::@return#4] -- register_copy - //SEG399 [179] phi (byte) current_ypos#16 = (byte) current_ypos#12 [phi:play_move_down::@4->play_move_down::@return#5] -- register_copy - //SEG400 [179] phi (byte) current_movedown_counter#12 = (byte) current_movedown_counter#10 [phi:play_move_down::@4->play_move_down::@return#6] -- register_copy - //SEG401 [179] phi (byte) play_move_down::return#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_down::@4->play_move_down::@return#7] -- vbuxx=vbuc1 + //SEG398 [180] phi (byte) current_piece_color#13 = (byte) current_piece_color#11 [phi:play_move_down::@4->play_move_down::@return#0] -- register_copy + //SEG399 [180] phi (byte) current_xpos#19 = (byte) current_xpos#16 [phi:play_move_down::@4->play_move_down::@return#1] -- register_copy + //SEG400 [180] phi (byte*) current_piece_gfx#17 = (byte*) current_piece_gfx#15 [phi:play_move_down::@4->play_move_down::@return#2] -- register_copy + //SEG401 [180] phi (byte) current_orientation#18 = (byte) current_orientation#15 [phi:play_move_down::@4->play_move_down::@return#3] -- register_copy + //SEG402 [180] phi (byte*) current_piece#13 = (byte*) current_piece#11 [phi:play_move_down::@4->play_move_down::@return#4] -- register_copy + //SEG403 [180] phi (byte) current_ypos#16 = (byte) current_ypos#12 [phi:play_move_down::@4->play_move_down::@return#5] -- register_copy + //SEG404 [180] phi (byte) current_movedown_counter#12 = (byte) current_movedown_counter#10 [phi:play_move_down::@4->play_move_down::@return#6] -- register_copy + //SEG405 [180] phi (byte) play_move_down::return#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_down::@4->play_move_down::@return#7] -- vbuxx=vbuc1 ldx #0 - //SEG402 play_move_down::@return + //SEG406 play_move_down::@return breturn: - //SEG403 [180] return + //SEG407 [181] return rts - //SEG404 play_move_down::@6 + //SEG408 play_move_down::@6 b6: - //SEG405 [181] (byte) current_ypos#4 ← ++ (byte) current_ypos#12 -- vbuz1=_inc_vbuz1 + //SEG409 [182] (byte) current_ypos#4 ← ++ (byte) current_ypos#12 -- vbuz1=_inc_vbuz1 inc current_ypos - //SEG406 [178] phi from play_move_down::@6 to play_move_down::@7 [phi:play_move_down::@6->play_move_down::@7] - //SEG407 [178] phi (byte) current_piece_color#23 = (byte) current_piece_color#11 [phi:play_move_down::@6->play_move_down::@7#0] -- register_copy - //SEG408 [178] phi (byte) current_xpos#36 = (byte) current_xpos#16 [phi:play_move_down::@6->play_move_down::@7#1] -- register_copy - //SEG409 [178] phi (byte*) current_piece_gfx#29 = (byte*) current_piece_gfx#15 [phi:play_move_down::@6->play_move_down::@7#2] -- register_copy - //SEG410 [178] phi (byte) current_orientation#33 = (byte) current_orientation#15 [phi:play_move_down::@6->play_move_down::@7#3] -- register_copy - //SEG411 [178] phi (byte*) current_piece#23 = (byte*) current_piece#11 [phi:play_move_down::@6->play_move_down::@7#4] -- register_copy - //SEG412 [178] phi (byte) current_ypos#31 = (byte) current_ypos#4 [phi:play_move_down::@6->play_move_down::@7#5] -- register_copy + //SEG410 [179] phi from play_move_down::@6 to play_move_down::@7 [phi:play_move_down::@6->play_move_down::@7] + //SEG411 [179] phi (byte) current_piece_color#23 = (byte) current_piece_color#11 [phi:play_move_down::@6->play_move_down::@7#0] -- register_copy + //SEG412 [179] phi (byte) current_xpos#36 = (byte) current_xpos#16 [phi:play_move_down::@6->play_move_down::@7#1] -- register_copy + //SEG413 [179] phi (byte*) current_piece_gfx#29 = (byte*) current_piece_gfx#15 [phi:play_move_down::@6->play_move_down::@7#2] -- register_copy + //SEG414 [179] phi (byte) current_orientation#33 = (byte) current_orientation#15 [phi:play_move_down::@6->play_move_down::@7#3] -- register_copy + //SEG415 [179] phi (byte*) current_piece#23 = (byte*) current_piece#11 [phi:play_move_down::@6->play_move_down::@7#4] -- register_copy + //SEG416 [179] phi (byte) current_ypos#31 = (byte) current_ypos#4 [phi:play_move_down::@6->play_move_down::@7#5] -- register_copy jmp b7 } -//SEG413 spawn_current +//SEG417 spawn_current spawn_current: { .label _3 = 2 - //SEG414 [182] *((const byte*) BORDERCOL#0) ← ++ *((const byte*) BORDERCOL#0) -- _deref_pbuc1=_inc__deref_pbuc1 - inc BORDERCOL - //SEG415 [183] phi from spawn_current to spawn_current::@1 [phi:spawn_current->spawn_current::@1] - //SEG416 [183] phi (byte) spawn_current::piece_idx#2 = (byte/signed byte/word/signed word/dword/signed dword) 7 [phi:spawn_current->spawn_current::@1#0] -- vbuxx=vbuc1 + //SEG418 [184] phi from spawn_current to spawn_current::@1 [phi:spawn_current->spawn_current::@1] + //SEG419 [184] phi (byte) spawn_current::piece_idx#2 = (byte/signed byte/word/signed word/dword/signed dword) 7 [phi:spawn_current->spawn_current::@1#0] -- vbuxx=vbuc1 ldx #7 - //SEG417 spawn_current::@1 + //SEG420 spawn_current::@1 b1: - //SEG418 [184] if((byte) spawn_current::piece_idx#2==(byte/signed byte/word/signed word/dword/signed dword) 7) goto spawn_current::@2 -- vbuxx_eq_vbuc1_then_la1 + //SEG421 [185] if((byte) spawn_current::piece_idx#2==(byte/signed byte/word/signed word/dword/signed dword) 7) goto spawn_current::@2 -- vbuxx_eq_vbuc1_then_la1 cpx #7 beq b2 - //SEG419 spawn_current::@3 - //SEG420 [185] *((const byte*) BORDERCOL#0) ← -- *((const byte*) BORDERCOL#0) -- _deref_pbuc1=_dec__deref_pbuc1 - dec BORDERCOL - //SEG421 [186] (byte~) spawn_current::$3 ← (byte) spawn_current::piece_idx#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuxx_rol_1 + //SEG422 spawn_current::@3 + //SEG423 [186] (byte~) spawn_current::$3 ← (byte) spawn_current::piece_idx#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuxx_rol_1 txa asl sta _3 - //SEG422 [187] (byte*) current_piece_gfx#10 ← (byte*)*((const word[]) PIECES#0 + (byte~) spawn_current::$3) + (byte/signed byte/word/signed word/dword/signed dword) 0 -- pbuz1=pptc1_derefidx_vbuz2_plus_0 + //SEG424 [187] (byte*) current_piece_gfx#10 ← (byte*)*((const word[]) PIECES#0 + (byte~) spawn_current::$3) + (byte/signed byte/word/signed word/dword/signed dword) 0 -- pbuz1=pptc1_derefidx_vbuz2_plus_0 tay lda PIECES,y sta current_piece_gfx lda PIECES+1,y sta current_piece_gfx+1 - //SEG423 [188] (byte) current_piece_color#15 ← *((const byte[]) PIECES_COLORS#0 + (byte) spawn_current::piece_idx#2) -- vbuz1=pbuc1_derefidx_vbuxx + //SEG425 [188] (byte) current_piece_color#15 ← *((const byte[]) PIECES_COLORS#0 + (byte) spawn_current::piece_idx#2) -- vbuz1=pbuc1_derefidx_vbuxx lda PIECES_COLORS,x sta current_piece_color - //SEG424 spawn_current::@return - //SEG425 [189] return + //SEG426 spawn_current::@return + //SEG427 [189] return rts - //SEG426 [190] phi from spawn_current::@1 to spawn_current::@2 [phi:spawn_current::@1->spawn_current::@2] - //SEG427 spawn_current::@2 + //SEG428 [190] phi from spawn_current::@1 to spawn_current::@2 [phi:spawn_current::@1->spawn_current::@2] + //SEG429 spawn_current::@2 b2: - //SEG428 [191] call sid_rnd + //SEG430 [191] call sid_rnd jsr sid_rnd - //SEG429 [192] (byte) sid_rnd::return#2 ← (byte) sid_rnd::return#0 + //SEG431 [192] (byte) sid_rnd::return#2 ← (byte) sid_rnd::return#0 // (byte) sid_rnd::return#2 = (byte) sid_rnd::return#0 // register copy reg byte a - //SEG430 spawn_current::@7 - //SEG431 [193] (byte~) spawn_current::$1 ← (byte) sid_rnd::return#2 + //SEG432 spawn_current::@7 + //SEG433 [193] (byte~) spawn_current::$1 ← (byte) sid_rnd::return#2 // (byte~) spawn_current::$1 = (byte) sid_rnd::return#2 // register copy reg byte a - //SEG432 [194] (byte) spawn_current::piece_idx#1 ← (byte~) spawn_current::$1 & (byte/signed byte/word/signed word/dword/signed dword) 7 -- vbuxx=vbuaa_band_vbuc1 + //SEG434 [194] (byte) spawn_current::piece_idx#1 ← (byte~) spawn_current::$1 & (byte/signed byte/word/signed word/dword/signed dword) 7 -- vbuxx=vbuaa_band_vbuc1 and #7 tax - //SEG433 [183] phi from spawn_current::@7 to spawn_current::@1 [phi:spawn_current::@7->spawn_current::@1] - //SEG434 [183] phi (byte) spawn_current::piece_idx#2 = (byte) spawn_current::piece_idx#1 [phi:spawn_current::@7->spawn_current::@1#0] -- register_copy + //SEG435 [184] phi from spawn_current::@7 to spawn_current::@1 [phi:spawn_current::@7->spawn_current::@1] + //SEG436 [184] phi (byte) spawn_current::piece_idx#2 = (byte) spawn_current::piece_idx#1 [phi:spawn_current::@7->spawn_current::@1#0] -- register_copy jmp b1 } -//SEG435 sid_rnd +//SEG437 sid_rnd sid_rnd: { - //SEG436 [195] (byte) sid_rnd::return#0 ← *((const byte*) SID_VOICE3_OSC#0) -- vbuaa=_deref_pbuc1 + //SEG438 [195] (byte) sid_rnd::return#0 ← *((const byte*) SID_VOICE3_OSC#0) -- vbuaa=_deref_pbuc1 lda SID_VOICE3_OSC - //SEG437 sid_rnd::@return - //SEG438 [196] return + //SEG439 sid_rnd::@return + //SEG440 [196] return rts } -//SEG439 remove_lines +//SEG441 remove_lines remove_lines: { .label done = 2 - //SEG440 [198] phi from remove_lines to remove_lines::@1 [phi:remove_lines->remove_lines::@1] - //SEG441 [198] phi (byte) remove_lines::done#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:remove_lines->remove_lines::@1#0] -- vbuz1=vbuc1 + //SEG442 [198] phi from remove_lines to remove_lines::@1 [phi:remove_lines->remove_lines::@1] + //SEG443 [198] phi (byte) remove_lines::done#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:remove_lines->remove_lines::@1#0] -- vbuz1=vbuc1 lda #0 sta done - //SEG442 [198] phi from remove_lines::@3 to remove_lines::@1 [phi:remove_lines::@3->remove_lines::@1] - //SEG443 [198] phi (byte) remove_lines::done#3 = (byte) remove_lines::done#2 [phi:remove_lines::@3->remove_lines::@1#0] -- register_copy - //SEG444 remove_lines::@1 + //SEG444 [198] phi from remove_lines::@3 to remove_lines::@1 [phi:remove_lines::@3->remove_lines::@1] + //SEG445 [198] phi (byte) remove_lines::done#3 = (byte) remove_lines::done#2 [phi:remove_lines::@3->remove_lines::@1#0] -- register_copy + //SEG446 remove_lines::@1 b1: - //SEG445 [199] call find_line - //SEG446 [221] phi from remove_lines::@1 to find_line [phi:remove_lines::@1->find_line] + //SEG447 [199] call find_line + //SEG448 [221] phi from remove_lines::@1 to find_line [phi:remove_lines::@1->find_line] jsr find_line - //SEG447 [200] (byte) find_line::return#0 ← (byte) find_line::return#2 -- vbuaa=vbuz1 + //SEG449 [200] (byte) find_line::return#0 ← (byte) find_line::return#2 -- vbuaa=vbuz1 lda find_line.return - //SEG448 remove_lines::@7 - //SEG449 [201] (byte) remove_lines::line_ypos#0 ← (byte) find_line::return#0 + //SEG450 remove_lines::@7 + //SEG451 [201] (byte) remove_lines::line_ypos#0 ← (byte) find_line::return#0 // (byte) remove_lines::line_ypos#0 = (byte) find_line::return#0 // register copy reg byte a - //SEG450 [202] if((byte) remove_lines::line_ypos#0!=(byte/word/signed word/dword/signed dword) 255) goto remove_lines::@2 -- vbuaa_neq_vbuc1_then_la1 + //SEG452 [202] if((byte) remove_lines::line_ypos#0!=(byte/word/signed word/dword/signed dword) 255) goto remove_lines::@2 -- vbuaa_neq_vbuc1_then_la1 cmp #$ff bne b2 - //SEG451 [203] phi from remove_lines::@7 to remove_lines::@3 [phi:remove_lines::@7->remove_lines::@3] - //SEG452 [203] phi (byte) remove_lines::done#2 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:remove_lines::@7->remove_lines::@3#0] -- vbuz1=vbuc1 + //SEG453 [203] phi from remove_lines::@7 to remove_lines::@3 [phi:remove_lines::@7->remove_lines::@3] + //SEG454 [203] phi (byte) remove_lines::done#2 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:remove_lines::@7->remove_lines::@3#0] -- vbuz1=vbuc1 lda #1 sta done - //SEG453 remove_lines::@3 + //SEG455 remove_lines::@3 b3: - //SEG454 [204] if((byte) remove_lines::done#2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto remove_lines::@1 -- vbuz1_eq_0_then_la1 + //SEG456 [204] if((byte) remove_lines::done#2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto remove_lines::@1 -- vbuz1_eq_0_then_la1 lda done cmp #0 beq b1 - //SEG455 remove_lines::@return - //SEG456 [205] return + //SEG457 remove_lines::@return + //SEG458 [205] return rts - //SEG457 remove_lines::@2 + //SEG459 remove_lines::@2 b2: - //SEG458 [206] (byte) remove_line::ypos#0 ← (byte) remove_lines::line_ypos#0 -- vbuz1=vbuaa + //SEG460 [206] (byte) remove_line::ypos#0 ← (byte) remove_lines::line_ypos#0 -- vbuz1=vbuaa sta remove_line.ypos - //SEG459 [207] call remove_line + //SEG461 [207] call remove_line jsr remove_line - //SEG460 [203] phi from remove_lines::@2 to remove_lines::@3 [phi:remove_lines::@2->remove_lines::@3] - //SEG461 [203] phi (byte) remove_lines::done#2 = (byte) remove_lines::done#3 [phi:remove_lines::@2->remove_lines::@3#0] -- register_copy + //SEG462 [203] phi from remove_lines::@2 to remove_lines::@3 [phi:remove_lines::@2->remove_lines::@3] + //SEG463 [203] phi (byte) remove_lines::done#2 = (byte) remove_lines::done#3 [phi:remove_lines::@2->remove_lines::@3#0] -- register_copy jmp b3 } -//SEG462 remove_line +//SEG464 remove_line remove_line: { .label ypos = 3 .label x = 4 .label y = 3 - //SEG463 [208] (byte~) remove_line::$0 ← (byte) remove_line::ypos#0 -- vbuaa=vbuz1 + //SEG465 [208] (byte~) remove_line::$0 ← (byte) remove_line::ypos#0 -- vbuaa=vbuz1 lda ypos - //SEG464 [209] (byte) remove_line::i2#0 ← *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte~) remove_line::$0) - (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuyy=pbuc1_derefidx_vbuaa_minus_1 + //SEG466 [209] (byte) remove_line::i2#0 ← *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte~) remove_line::$0) - (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuyy=pbuc1_derefidx_vbuaa_minus_1 tay lda playfield_lines_idx+1,y tay dey - //SEG465 [210] (byte) remove_line::i1#0 ← *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0 + (byte) remove_line::ypos#0) - (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuxx=pbuc1_derefidx_vbuz1_minus_1 + //SEG467 [210] (byte) remove_line::i1#0 ← *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0 + (byte) remove_line::ypos#0) - (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuxx=pbuc1_derefidx_vbuz1_minus_1 ldx ypos lda playfield_lines_idx,x tax dex - //SEG466 [211] phi from remove_line remove_line::@3 to remove_line::@1 [phi:remove_line/remove_line::@3->remove_line::@1] - //SEG467 [211] phi (byte) remove_line::y#4 = (byte) remove_line::ypos#0 [phi:remove_line/remove_line::@3->remove_line::@1#0] -- register_copy - //SEG468 [211] phi (byte) remove_line::i2#3 = (byte) remove_line::i2#0 [phi:remove_line/remove_line::@3->remove_line::@1#1] -- register_copy - //SEG469 [211] phi (byte) remove_line::i1#3 = (byte) remove_line::i1#0 [phi:remove_line/remove_line::@3->remove_line::@1#2] -- register_copy - //SEG470 remove_line::@1 + //SEG468 [211] phi from remove_line remove_line::@3 to remove_line::@1 [phi:remove_line/remove_line::@3->remove_line::@1] + //SEG469 [211] phi (byte) remove_line::y#4 = (byte) remove_line::ypos#0 [phi:remove_line/remove_line::@3->remove_line::@1#0] -- register_copy + //SEG470 [211] phi (byte) remove_line::i2#3 = (byte) remove_line::i2#0 [phi:remove_line/remove_line::@3->remove_line::@1#1] -- register_copy + //SEG471 [211] phi (byte) remove_line::i1#3 = (byte) remove_line::i1#0 [phi:remove_line/remove_line::@3->remove_line::@1#2] -- register_copy + //SEG472 remove_line::@1 b1: - //SEG471 [212] phi from remove_line::@1 to remove_line::@2 [phi:remove_line::@1->remove_line::@2] - //SEG472 [212] phi (byte) remove_line::x#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:remove_line::@1->remove_line::@2#0] -- vbuz1=vbuc1 + //SEG473 [212] phi from remove_line::@1 to remove_line::@2 [phi:remove_line::@1->remove_line::@2] + //SEG474 [212] phi (byte) remove_line::x#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:remove_line::@1->remove_line::@2#0] -- vbuz1=vbuc1 lda #0 sta x - //SEG473 [212] phi (byte) remove_line::i2#2 = (byte) remove_line::i2#3 [phi:remove_line::@1->remove_line::@2#1] -- register_copy - //SEG474 [212] phi (byte) remove_line::i1#2 = (byte) remove_line::i1#3 [phi:remove_line::@1->remove_line::@2#2] -- register_copy - //SEG475 [212] phi from remove_line::@2 to remove_line::@2 [phi:remove_line::@2->remove_line::@2] - //SEG476 [212] phi (byte) remove_line::x#2 = (byte) remove_line::x#1 [phi:remove_line::@2->remove_line::@2#0] -- register_copy - //SEG477 [212] phi (byte) remove_line::i2#2 = (byte) remove_line::i2#1 [phi:remove_line::@2->remove_line::@2#1] -- register_copy - //SEG478 [212] phi (byte) remove_line::i1#2 = (byte) remove_line::i1#1 [phi:remove_line::@2->remove_line::@2#2] -- register_copy - //SEG479 remove_line::@2 + //SEG475 [212] phi (byte) remove_line::i2#2 = (byte) remove_line::i2#3 [phi:remove_line::@1->remove_line::@2#1] -- register_copy + //SEG476 [212] phi (byte) remove_line::i1#2 = (byte) remove_line::i1#3 [phi:remove_line::@1->remove_line::@2#2] -- register_copy + //SEG477 [212] phi from remove_line::@2 to remove_line::@2 [phi:remove_line::@2->remove_line::@2] + //SEG478 [212] phi (byte) remove_line::x#2 = (byte) remove_line::x#1 [phi:remove_line::@2->remove_line::@2#0] -- register_copy + //SEG479 [212] phi (byte) remove_line::i2#2 = (byte) remove_line::i2#1 [phi:remove_line::@2->remove_line::@2#1] -- register_copy + //SEG480 [212] phi (byte) remove_line::i1#2 = (byte) remove_line::i1#1 [phi:remove_line::@2->remove_line::@2#2] -- register_copy + //SEG481 remove_line::@2 b2: - //SEG480 [213] *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) remove_line::i2#2) ← *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) remove_line::i1#2) -- pbuc1_derefidx_vbuyy=pbuc1_derefidx_vbuxx + //SEG482 [213] *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) remove_line::i2#2) ← *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) remove_line::i1#2) -- pbuc1_derefidx_vbuyy=pbuc1_derefidx_vbuxx lda playfield,x sta playfield,y - //SEG481 [214] (byte) remove_line::i2#1 ← -- (byte) remove_line::i2#2 -- vbuyy=_dec_vbuyy + //SEG483 [214] (byte) remove_line::i2#1 ← -- (byte) remove_line::i2#2 -- vbuyy=_dec_vbuyy dey - //SEG482 [215] (byte) remove_line::i1#1 ← -- (byte) remove_line::i1#2 -- vbuxx=_dec_vbuxx + //SEG484 [215] (byte) remove_line::i1#1 ← -- (byte) remove_line::i1#2 -- vbuxx=_dec_vbuxx dex - //SEG483 [216] (byte) remove_line::x#1 ← ++ (byte) remove_line::x#2 -- vbuz1=_inc_vbuz1 + //SEG485 [216] (byte) remove_line::x#1 ← ++ (byte) remove_line::x#2 -- vbuz1=_inc_vbuz1 inc x - //SEG484 [217] if((byte) remove_line::x#1!=(const byte) PLAYFIELD_COLS#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto remove_line::@2 -- vbuz1_neq_vbuc1_then_la1 + //SEG486 [217] if((byte) remove_line::x#1!=(const byte) PLAYFIELD_COLS#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto remove_line::@2 -- vbuz1_neq_vbuc1_then_la1 lda x cmp #PLAYFIELD_COLS-1+1 bne b2 - //SEG485 remove_line::@3 - //SEG486 [218] (byte) remove_line::y#1 ← -- (byte) remove_line::y#4 -- vbuz1=_dec_vbuz1 + //SEG487 remove_line::@3 + //SEG488 [218] (byte) remove_line::y#1 ← -- (byte) remove_line::y#4 -- vbuz1=_dec_vbuz1 dec y - //SEG487 [219] if((byte) remove_line::y#1!=(byte/signed byte/word/signed word/dword/signed dword) 1) goto remove_line::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG489 [219] if((byte) remove_line::y#1!=(byte/signed byte/word/signed word/dword/signed dword) 1) goto remove_line::@1 -- vbuz1_neq_vbuc1_then_la1 lda y cmp #1 bne b1 - //SEG488 remove_line::@return - //SEG489 [220] return + //SEG490 remove_line::@return + //SEG491 [220] return rts } -//SEG490 find_line +//SEG492 find_line find_line: { .label i = 8 .label y = 7 @@ -13681,92 +13757,92 @@ find_line: { .label i_3 = 3 .label i_8 = 3 .label i_10 = 3 - //SEG491 [222] phi from find_line to find_line::@1 [phi:find_line->find_line::@1] - //SEG492 [222] phi (byte) find_line::y#8 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:find_line->find_line::@1#0] -- vbuz1=vbuc1 + //SEG493 [222] phi from find_line to find_line::@1 [phi:find_line->find_line::@1] + //SEG494 [222] phi (byte) find_line::y#8 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:find_line->find_line::@1#0] -- vbuz1=vbuc1 lda #0 sta y - //SEG493 [222] phi (byte) find_line::i#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:find_line->find_line::@1#1] -- vbuz1=vbuc1 + //SEG495 [222] phi (byte) find_line::i#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:find_line->find_line::@1#1] -- vbuz1=vbuc1 sta i_3 - //SEG494 find_line::@1 + //SEG496 find_line::@1 b1: - //SEG495 [223] phi from find_line::@1 to find_line::@2 [phi:find_line::@1->find_line::@2] - //SEG496 [223] phi (byte) find_line::filled#4 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:find_line::@1->find_line::@2#0] -- vbuz1=vbuc1 + //SEG497 [223] phi from find_line::@1 to find_line::@2 [phi:find_line::@1->find_line::@2] + //SEG498 [223] phi (byte) find_line::filled#4 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:find_line::@1->find_line::@2#0] -- vbuz1=vbuc1 lda #1 sta filled - //SEG497 [223] phi (byte) find_line::x#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:find_line::@1->find_line::@2#1] -- vbuxx=vbuc1 + //SEG499 [223] phi (byte) find_line::x#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:find_line::@1->find_line::@2#1] -- vbuxx=vbuc1 ldx #0 - //SEG498 [223] phi (byte) find_line::i#2 = (byte) find_line::i#3 [phi:find_line::@1->find_line::@2#2] -- register_copy - //SEG499 find_line::@2 + //SEG500 [223] phi (byte) find_line::i#2 = (byte) find_line::i#3 [phi:find_line::@1->find_line::@2#2] -- register_copy + //SEG501 find_line::@2 b2: - //SEG500 [224] (byte) find_line::i#1 ← ++ (byte) find_line::i#2 -- vbuz1=_inc_vbuz2 + //SEG502 [224] (byte) find_line::i#1 ← ++ (byte) find_line::i#2 -- vbuz1=_inc_vbuz2 ldy i_2 iny sty i - //SEG501 [225] if(*((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) find_line::i#2)!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto find_line::@13 -- pbuc1_derefidx_vbuz1_neq_0_then_la1 + //SEG503 [225] if(*((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) find_line::i#2)!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto find_line::@13 -- pbuc1_derefidx_vbuz1_neq_0_then_la1 ldy i_2 lda playfield,y cmp #0 bne b3 - //SEG502 [226] phi from find_line::@2 to find_line::@3 [phi:find_line::@2->find_line::@3] - //SEG503 [226] phi (byte) find_line::filled#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:find_line::@2->find_line::@3#0] -- vbuz1=vbuc1 + //SEG504 [226] phi from find_line::@2 to find_line::@3 [phi:find_line::@2->find_line::@3] + //SEG505 [226] phi (byte) find_line::filled#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:find_line::@2->find_line::@3#0] -- vbuz1=vbuc1 lda #0 sta filled - //SEG504 find_line::@3 + //SEG506 find_line::@3 b3: - //SEG505 [227] (byte) find_line::x#1 ← ++ (byte) find_line::x#2 -- vbuxx=_inc_vbuxx + //SEG507 [227] (byte) find_line::x#1 ← ++ (byte) find_line::x#2 -- vbuxx=_inc_vbuxx inx - //SEG506 [228] if((byte) find_line::x#1!=(const byte) PLAYFIELD_COLS#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto find_line::@12 -- vbuxx_neq_vbuc1_then_la1 + //SEG508 [228] if((byte) find_line::x#1!=(const byte) PLAYFIELD_COLS#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto find_line::@12 -- vbuxx_neq_vbuc1_then_la1 cpx #PLAYFIELD_COLS-1+1 bne b12 - //SEG507 find_line::@6 - //SEG508 [229] if((byte) find_line::filled#2!=(byte/signed byte/word/signed word/dword/signed dword) 1) goto find_line::@4 -- vbuz1_neq_vbuc1_then_la1 + //SEG509 find_line::@6 + //SEG510 [229] if((byte) find_line::filled#2!=(byte/signed byte/word/signed word/dword/signed dword) 1) goto find_line::@4 -- vbuz1_neq_vbuc1_then_la1 lda filled cmp #1 bne b4 - //SEG509 [230] phi from find_line::@6 to find_line::@return [phi:find_line::@6->find_line::@return] - //SEG510 [230] phi (byte) find_line::return#2 = (byte) find_line::y#8 [phi:find_line::@6->find_line::@return#0] -- register_copy - //SEG511 find_line::@return + //SEG511 [230] phi from find_line::@6 to find_line::@return [phi:find_line::@6->find_line::@return] + //SEG512 [230] phi (byte) find_line::return#2 = (byte) find_line::y#8 [phi:find_line::@6->find_line::@return#0] -- register_copy + //SEG513 find_line::@return breturn: - //SEG512 [231] return + //SEG514 [231] return rts - //SEG513 find_line::@4 + //SEG515 find_line::@4 b4: - //SEG514 [232] (byte) find_line::y#1 ← ++ (byte) find_line::y#8 -- vbuz1=_inc_vbuz1 + //SEG516 [232] (byte) find_line::y#1 ← ++ (byte) find_line::y#8 -- vbuz1=_inc_vbuz1 inc y - //SEG515 [233] if((byte) find_line::y#1!=(const byte) PLAYFIELD_LINES#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto find_line::@11 -- vbuz1_neq_vbuc1_then_la1 + //SEG517 [233] if((byte) find_line::y#1!=(const byte) PLAYFIELD_LINES#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto find_line::@11 -- vbuz1_neq_vbuc1_then_la1 lda y cmp #PLAYFIELD_LINES-1+1 bne b11 - //SEG516 [230] phi from find_line::@4 to find_line::@return [phi:find_line::@4->find_line::@return] - //SEG517 [230] phi (byte) find_line::return#2 = (byte/word/signed word/dword/signed dword) 255 [phi:find_line::@4->find_line::@return#0] -- vbuz1=vbuc1 + //SEG518 [230] phi from find_line::@4 to find_line::@return [phi:find_line::@4->find_line::@return] + //SEG519 [230] phi (byte) find_line::return#2 = (byte/word/signed word/dword/signed dword) 255 [phi:find_line::@4->find_line::@return#0] -- vbuz1=vbuc1 lda #$ff sta return jmp breturn - //SEG518 find_line::@11 + //SEG520 find_line::@11 b11: - //SEG519 [234] (byte~) find_line::i#8 ← (byte) find_line::i#1 -- vbuz1=vbuz2 + //SEG521 [234] (byte~) find_line::i#8 ← (byte) find_line::i#1 -- vbuz1=vbuz2 lda i sta i_8 - //SEG520 [222] phi from find_line::@11 to find_line::@1 [phi:find_line::@11->find_line::@1] - //SEG521 [222] phi (byte) find_line::y#8 = (byte) find_line::y#1 [phi:find_line::@11->find_line::@1#0] -- register_copy - //SEG522 [222] phi (byte) find_line::i#3 = (byte~) find_line::i#8 [phi:find_line::@11->find_line::@1#1] -- register_copy + //SEG522 [222] phi from find_line::@11 to find_line::@1 [phi:find_line::@11->find_line::@1] + //SEG523 [222] phi (byte) find_line::y#8 = (byte) find_line::y#1 [phi:find_line::@11->find_line::@1#0] -- register_copy + //SEG524 [222] phi (byte) find_line::i#3 = (byte~) find_line::i#8 [phi:find_line::@11->find_line::@1#1] -- register_copy jmp b1 - //SEG523 find_line::@12 + //SEG525 find_line::@12 b12: - //SEG524 [235] (byte~) find_line::i#10 ← (byte) find_line::i#1 -- vbuz1=vbuz2 + //SEG526 [235] (byte~) find_line::i#10 ← (byte) find_line::i#1 -- vbuz1=vbuz2 lda i sta i_10 - //SEG525 [223] phi from find_line::@12 to find_line::@2 [phi:find_line::@12->find_line::@2] - //SEG526 [223] phi (byte) find_line::filled#4 = (byte) find_line::filled#2 [phi:find_line::@12->find_line::@2#0] -- register_copy - //SEG527 [223] phi (byte) find_line::x#2 = (byte) find_line::x#1 [phi:find_line::@12->find_line::@2#1] -- register_copy - //SEG528 [223] phi (byte) find_line::i#2 = (byte~) find_line::i#10 [phi:find_line::@12->find_line::@2#2] -- register_copy + //SEG527 [223] phi from find_line::@12 to find_line::@2 [phi:find_line::@12->find_line::@2] + //SEG528 [223] phi (byte) find_line::filled#4 = (byte) find_line::filled#2 [phi:find_line::@12->find_line::@2#0] -- register_copy + //SEG529 [223] phi (byte) find_line::x#2 = (byte) find_line::x#1 [phi:find_line::@12->find_line::@2#1] -- register_copy + //SEG530 [223] phi (byte) find_line::i#2 = (byte~) find_line::i#10 [phi:find_line::@12->find_line::@2#2] -- register_copy jmp b2 - //SEG529 [236] phi from find_line::@2 to find_line::@13 [phi:find_line::@2->find_line::@13] - //SEG530 find_line::@13 - //SEG531 [226] phi from find_line::@13 to find_line::@3 [phi:find_line::@13->find_line::@3] - //SEG532 [226] phi (byte) find_line::filled#2 = (byte) find_line::filled#4 [phi:find_line::@13->find_line::@3#0] -- register_copy + //SEG531 [236] phi from find_line::@2 to find_line::@13 [phi:find_line::@2->find_line::@13] + //SEG532 find_line::@13 + //SEG533 [226] phi from find_line::@13 to find_line::@3 [phi:find_line::@13->find_line::@3] + //SEG534 [226] phi (byte) find_line::filled#2 = (byte) find_line::filled#4 [phi:find_line::@13->find_line::@3#0] -- register_copy } -//SEG533 lock_current +//SEG535 lock_current lock_current: { .label ypos2 = 2 .label playfield_line = 5 @@ -13777,437 +13853,376 @@ lock_current: { .label i_3 = 4 .label i_7 = 4 .label i_9 = 4 - //SEG534 [237] (byte) lock_current::ypos2#0 ← (byte) current_ypos#12 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz1_rol_1 + //SEG536 [237] (byte) lock_current::ypos2#0 ← (byte) current_ypos#12 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz1_rol_1 asl ypos2 - //SEG535 [238] phi from lock_current to lock_current::@1 [phi:lock_current->lock_current::@1] - //SEG536 [238] phi (byte) lock_current::l#6 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:lock_current->lock_current::@1#0] -- vbuz1=vbuc1 + //SEG537 [238] phi from lock_current to lock_current::@1 [phi:lock_current->lock_current::@1] + //SEG538 [238] phi (byte) lock_current::l#6 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:lock_current->lock_current::@1#0] -- vbuz1=vbuc1 lda #0 sta l - //SEG537 [238] phi (byte) lock_current::i#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:lock_current->lock_current::@1#1] -- vbuz1=vbuc1 + //SEG539 [238] phi (byte) lock_current::i#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:lock_current->lock_current::@1#1] -- vbuz1=vbuc1 sta i_3 - //SEG538 [238] phi (byte) lock_current::ypos2#2 = (byte) lock_current::ypos2#0 [phi:lock_current->lock_current::@1#2] -- register_copy - //SEG539 lock_current::@1 + //SEG540 [238] phi (byte) lock_current::ypos2#2 = (byte) lock_current::ypos2#0 [phi:lock_current->lock_current::@1#2] -- register_copy + //SEG541 lock_current::@1 b1: - //SEG540 [239] (byte*) lock_current::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) lock_current::ypos2#2) -- pbuz1=pptc1_derefidx_vbuz2 + //SEG542 [239] (byte*) lock_current::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) lock_current::ypos2#2) -- pbuz1=pptc1_derefidx_vbuz2 ldy ypos2 lda playfield_lines,y sta playfield_line lda playfield_lines+1,y sta playfield_line+1 - //SEG541 [240] (byte) lock_current::col#0 ← (byte) current_xpos#16 -- vbuz1=vbuz2 + //SEG543 [240] (byte) lock_current::col#0 ← (byte) current_xpos#16 -- vbuz1=vbuz2 lda current_xpos sta col - //SEG542 [241] phi from lock_current::@1 to lock_current::@2 [phi:lock_current::@1->lock_current::@2] - //SEG543 [241] phi (byte) lock_current::c#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:lock_current::@1->lock_current::@2#0] -- vbuxx=vbuc1 + //SEG544 [241] phi from lock_current::@1 to lock_current::@2 [phi:lock_current::@1->lock_current::@2] + //SEG545 [241] phi (byte) lock_current::c#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:lock_current::@1->lock_current::@2#0] -- vbuxx=vbuc1 ldx #0 - //SEG544 [241] phi (byte) lock_current::col#2 = (byte) lock_current::col#0 [phi:lock_current::@1->lock_current::@2#1] -- register_copy - //SEG545 [241] phi (byte) lock_current::i#2 = (byte) lock_current::i#3 [phi:lock_current::@1->lock_current::@2#2] -- register_copy - //SEG546 lock_current::@2 + //SEG546 [241] phi (byte) lock_current::col#2 = (byte) lock_current::col#0 [phi:lock_current::@1->lock_current::@2#1] -- register_copy + //SEG547 [241] phi (byte) lock_current::i#2 = (byte) lock_current::i#3 [phi:lock_current::@1->lock_current::@2#2] -- register_copy + //SEG548 lock_current::@2 b2: - //SEG547 [242] (byte) lock_current::i#1 ← ++ (byte) lock_current::i#2 -- vbuz1=_inc_vbuz2 + //SEG549 [242] (byte) lock_current::i#1 ← ++ (byte) lock_current::i#2 -- vbuz1=_inc_vbuz2 ldy i_2 iny sty i - //SEG548 [243] if(*((byte*) current_piece_gfx#15 + (byte) lock_current::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto lock_current::@3 -- pbuz1_derefidx_vbuz2_eq_0_then_la1 + //SEG550 [243] if(*((byte*) current_piece_gfx#15 + (byte) lock_current::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto lock_current::@3 -- pbuz1_derefidx_vbuz2_eq_0_then_la1 ldy i_2 lda (current_piece_gfx),y cmp #0 beq b3 - //SEG549 lock_current::@4 - //SEG550 [244] *((byte*) lock_current::playfield_line#0 + (byte) lock_current::col#2) ← (byte) current_piece_color#11 -- pbuz1_derefidx_vbuz2=vbuz3 + //SEG551 lock_current::@4 + //SEG552 [244] *((byte*) lock_current::playfield_line#0 + (byte) lock_current::col#2) ← (byte) current_piece_color#11 -- pbuz1_derefidx_vbuz2=vbuz3 lda current_piece_color ldy col sta (playfield_line),y - //SEG551 lock_current::@3 + //SEG553 lock_current::@3 b3: - //SEG552 [245] (byte) lock_current::col#1 ← ++ (byte) lock_current::col#2 -- vbuz1=_inc_vbuz1 + //SEG554 [245] (byte) lock_current::col#1 ← ++ (byte) lock_current::col#2 -- vbuz1=_inc_vbuz1 inc col - //SEG553 [246] (byte) lock_current::c#1 ← ++ (byte) lock_current::c#2 -- vbuxx=_inc_vbuxx + //SEG555 [246] (byte) lock_current::c#1 ← ++ (byte) lock_current::c#2 -- vbuxx=_inc_vbuxx inx - //SEG554 [247] if((byte) lock_current::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto lock_current::@8 -- vbuxx_neq_vbuc1_then_la1 + //SEG556 [247] if((byte) lock_current::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto lock_current::@8 -- vbuxx_neq_vbuc1_then_la1 cpx #4 bne b8 - //SEG555 lock_current::@5 - //SEG556 [248] (byte) lock_current::ypos2#1 ← (byte) lock_current::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 -- vbuz1=vbuz1_plus_2 + //SEG557 lock_current::@5 + //SEG558 [248] (byte) lock_current::ypos2#1 ← (byte) lock_current::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 -- vbuz1=vbuz1_plus_2 lda ypos2 clc adc #2 sta ypos2 - //SEG557 [249] (byte) lock_current::l#1 ← ++ (byte) lock_current::l#6 -- vbuz1=_inc_vbuz1 + //SEG559 [249] (byte) lock_current::l#1 ← ++ (byte) lock_current::l#6 -- vbuz1=_inc_vbuz1 inc l - //SEG558 [250] if((byte) lock_current::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto lock_current::@7 -- vbuz1_neq_vbuc1_then_la1 + //SEG560 [250] if((byte) lock_current::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto lock_current::@7 -- vbuz1_neq_vbuc1_then_la1 lda l cmp #4 bne b7 - //SEG559 lock_current::@return - //SEG560 [251] return + //SEG561 lock_current::@return + //SEG562 [251] return rts - //SEG561 lock_current::@7 + //SEG563 lock_current::@7 b7: - //SEG562 [252] (byte~) lock_current::i#7 ← (byte) lock_current::i#1 -- vbuz1=vbuz2 + //SEG564 [252] (byte~) lock_current::i#7 ← (byte) lock_current::i#1 -- vbuz1=vbuz2 lda i sta i_7 - //SEG563 [238] phi from lock_current::@7 to lock_current::@1 [phi:lock_current::@7->lock_current::@1] - //SEG564 [238] phi (byte) lock_current::l#6 = (byte) lock_current::l#1 [phi:lock_current::@7->lock_current::@1#0] -- register_copy - //SEG565 [238] phi (byte) lock_current::i#3 = (byte~) lock_current::i#7 [phi:lock_current::@7->lock_current::@1#1] -- register_copy - //SEG566 [238] phi (byte) lock_current::ypos2#2 = (byte) lock_current::ypos2#1 [phi:lock_current::@7->lock_current::@1#2] -- register_copy + //SEG565 [238] phi from lock_current::@7 to lock_current::@1 [phi:lock_current::@7->lock_current::@1] + //SEG566 [238] phi (byte) lock_current::l#6 = (byte) lock_current::l#1 [phi:lock_current::@7->lock_current::@1#0] -- register_copy + //SEG567 [238] phi (byte) lock_current::i#3 = (byte~) lock_current::i#7 [phi:lock_current::@7->lock_current::@1#1] -- register_copy + //SEG568 [238] phi (byte) lock_current::ypos2#2 = (byte) lock_current::ypos2#1 [phi:lock_current::@7->lock_current::@1#2] -- register_copy jmp b1 - //SEG567 lock_current::@8 + //SEG569 lock_current::@8 b8: - //SEG568 [253] (byte~) lock_current::i#9 ← (byte) lock_current::i#1 -- vbuz1=vbuz2 + //SEG570 [253] (byte~) lock_current::i#9 ← (byte) lock_current::i#1 -- vbuz1=vbuz2 lda i sta i_9 - //SEG569 [241] phi from lock_current::@8 to lock_current::@2 [phi:lock_current::@8->lock_current::@2] - //SEG570 [241] phi (byte) lock_current::c#2 = (byte) lock_current::c#1 [phi:lock_current::@8->lock_current::@2#0] -- register_copy - //SEG571 [241] phi (byte) lock_current::col#2 = (byte) lock_current::col#1 [phi:lock_current::@8->lock_current::@2#1] -- register_copy - //SEG572 [241] phi (byte) lock_current::i#2 = (byte~) lock_current::i#9 [phi:lock_current::@8->lock_current::@2#2] -- register_copy + //SEG571 [241] phi from lock_current::@8 to lock_current::@2 [phi:lock_current::@8->lock_current::@2] + //SEG572 [241] phi (byte) lock_current::c#2 = (byte) lock_current::c#1 [phi:lock_current::@8->lock_current::@2#0] -- register_copy + //SEG573 [241] phi (byte) lock_current::col#2 = (byte) lock_current::col#1 [phi:lock_current::@8->lock_current::@2#1] -- register_copy + //SEG574 [241] phi (byte) lock_current::i#2 = (byte~) lock_current::i#9 [phi:lock_current::@8->lock_current::@2#2] -- register_copy jmp b2 } -//SEG573 keyboard_event_pressed +//SEG575 keyboard_event_pressed keyboard_event_pressed: { .label row_bits = 7 .label keycode = 4 - //SEG574 [255] (byte~) keyboard_event_pressed::$0 ← (byte) keyboard_event_pressed::keycode#5 >> (byte/signed byte/word/signed word/dword/signed dword) 3 -- vbuaa=vbuz1_ror_3 + //SEG576 [255] (byte~) keyboard_event_pressed::$0 ← (byte) keyboard_event_pressed::keycode#5 >> (byte/signed byte/word/signed word/dword/signed dword) 3 -- vbuaa=vbuz1_ror_3 lda keycode lsr lsr lsr - //SEG575 [256] (byte) keyboard_event_pressed::row_bits#0 ← *((const byte[8]) keyboard_scan_values#0 + (byte~) keyboard_event_pressed::$0) -- vbuz1=pbuc1_derefidx_vbuaa + //SEG577 [256] (byte) keyboard_event_pressed::row_bits#0 ← *((const byte[8]) keyboard_scan_values#0 + (byte~) keyboard_event_pressed::$0) -- vbuz1=pbuc1_derefidx_vbuaa tay lda keyboard_scan_values,y sta row_bits - //SEG576 [257] (byte~) keyboard_event_pressed::$1 ← (byte) keyboard_event_pressed::keycode#5 & (byte/signed byte/word/signed word/dword/signed dword) 7 -- vbuaa=vbuz1_band_vbuc1 + //SEG578 [257] (byte~) keyboard_event_pressed::$1 ← (byte) keyboard_event_pressed::keycode#5 & (byte/signed byte/word/signed word/dword/signed dword) 7 -- vbuaa=vbuz1_band_vbuc1 lda #7 and keycode - //SEG577 [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) -- vbuaa=vbuz1_band_pbuc1_derefidx_vbuaa + //SEG579 [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) -- vbuaa=vbuz1_band_pbuc1_derefidx_vbuaa tay lda keyboard_matrix_col_bitmask,y and row_bits - //SEG578 keyboard_event_pressed::@return - //SEG579 [259] return + //SEG580 keyboard_event_pressed::@return + //SEG581 [259] return rts } -//SEG580 keyboard_event_get +//SEG582 keyboard_event_get keyboard_event_get: { - //SEG581 [260] if((byte) keyboard_events_size#13==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_get::@return -- vbuz1_eq_0_then_la1 + //SEG583 [260] if((byte) keyboard_events_size#13==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_get::@return -- vbuz1_eq_0_then_la1 lda keyboard_events_size cmp #0 beq b1 - //SEG582 keyboard_event_get::@3 - //SEG583 [261] (byte) keyboard_events_size#4 ← -- (byte) keyboard_events_size#13 -- vbuz1=_dec_vbuz1 + //SEG584 keyboard_event_get::@3 + //SEG585 [261] (byte) keyboard_events_size#4 ← -- (byte) keyboard_events_size#13 -- vbuz1=_dec_vbuz1 dec keyboard_events_size - //SEG584 [262] (byte) keyboard_event_get::return#1 ← *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#4) -- vbuaa=pbuc1_derefidx_vbuz1 + //SEG586 [262] (byte) keyboard_event_get::return#1 ← *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#4) -- vbuaa=pbuc1_derefidx_vbuz1 ldy keyboard_events_size lda keyboard_events,y - //SEG585 [263] phi from keyboard_event_get::@3 to keyboard_event_get::@return [phi:keyboard_event_get::@3->keyboard_event_get::@return] - //SEG586 [263] phi (byte) keyboard_events_size#16 = (byte) keyboard_events_size#4 [phi:keyboard_event_get::@3->keyboard_event_get::@return#0] -- register_copy - //SEG587 [263] phi (byte) keyboard_event_get::return#2 = (byte) keyboard_event_get::return#1 [phi:keyboard_event_get::@3->keyboard_event_get::@return#1] -- register_copy + //SEG587 [263] phi from keyboard_event_get::@3 to keyboard_event_get::@return [phi:keyboard_event_get::@3->keyboard_event_get::@return] + //SEG588 [263] phi (byte) keyboard_events_size#16 = (byte) keyboard_events_size#4 [phi:keyboard_event_get::@3->keyboard_event_get::@return#0] -- register_copy + //SEG589 [263] phi (byte) keyboard_event_get::return#2 = (byte) keyboard_event_get::return#1 [phi:keyboard_event_get::@3->keyboard_event_get::@return#1] -- register_copy jmp breturn - //SEG588 [263] phi from keyboard_event_get to keyboard_event_get::@return [phi:keyboard_event_get->keyboard_event_get::@return] + //SEG590 [263] phi from keyboard_event_get to keyboard_event_get::@return [phi:keyboard_event_get->keyboard_event_get::@return] b1: - //SEG589 [263] phi (byte) keyboard_events_size#16 = (byte) keyboard_events_size#13 [phi:keyboard_event_get->keyboard_event_get::@return#0] -- register_copy - //SEG590 [263] phi (byte) keyboard_event_get::return#2 = (byte/word/signed word/dword/signed dword) 255 [phi:keyboard_event_get->keyboard_event_get::@return#1] -- vbuaa=vbuc1 + //SEG591 [263] phi (byte) keyboard_events_size#16 = (byte) keyboard_events_size#13 [phi:keyboard_event_get->keyboard_event_get::@return#0] -- register_copy + //SEG592 [263] phi (byte) keyboard_event_get::return#2 = (byte/word/signed word/dword/signed dword) 255 [phi:keyboard_event_get->keyboard_event_get::@return#1] -- vbuaa=vbuc1 lda #$ff - //SEG591 keyboard_event_get::@return + //SEG593 keyboard_event_get::@return breturn: - //SEG592 [264] return + //SEG594 [264] return rts } -//SEG593 keyboard_event_scan +//SEG595 keyboard_event_scan keyboard_event_scan: { .label row_scan = 8 .label keycode = 7 .label row = 4 - //SEG594 [266] phi from keyboard_event_scan to keyboard_event_scan::@1 [phi:keyboard_event_scan->keyboard_event_scan::@1] - //SEG595 [266] phi (byte) keyboard_events_size#29 = (byte) keyboard_events_size#19 [phi:keyboard_event_scan->keyboard_event_scan::@1#0] -- register_copy - //SEG596 [266] phi (byte) keyboard_event_scan::keycode#11 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:keyboard_event_scan->keyboard_event_scan::@1#1] -- vbuz1=vbuc1 + //SEG596 [266] phi from keyboard_event_scan to keyboard_event_scan::@1 [phi:keyboard_event_scan->keyboard_event_scan::@1] + //SEG597 [266] phi (byte) keyboard_events_size#29 = (byte) keyboard_events_size#19 [phi:keyboard_event_scan->keyboard_event_scan::@1#0] -- register_copy + //SEG598 [266] phi (byte) keyboard_event_scan::keycode#11 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:keyboard_event_scan->keyboard_event_scan::@1#1] -- vbuz1=vbuc1 lda #0 sta keycode - //SEG597 [266] phi (byte) keyboard_event_scan::row#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:keyboard_event_scan->keyboard_event_scan::@1#2] -- vbuz1=vbuc1 + //SEG599 [266] phi (byte) keyboard_event_scan::row#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:keyboard_event_scan->keyboard_event_scan::@1#2] -- vbuz1=vbuc1 sta row - //SEG598 [266] phi from keyboard_event_scan::@3 to keyboard_event_scan::@1 [phi:keyboard_event_scan::@3->keyboard_event_scan::@1] - //SEG599 [266] phi (byte) keyboard_events_size#29 = (byte) keyboard_events_size#13 [phi:keyboard_event_scan::@3->keyboard_event_scan::@1#0] -- register_copy - //SEG600 [266] phi (byte) keyboard_event_scan::keycode#11 = (byte) keyboard_event_scan::keycode#14 [phi:keyboard_event_scan::@3->keyboard_event_scan::@1#1] -- register_copy - //SEG601 [266] phi (byte) keyboard_event_scan::row#2 = (byte) keyboard_event_scan::row#1 [phi:keyboard_event_scan::@3->keyboard_event_scan::@1#2] -- register_copy - //SEG602 keyboard_event_scan::@1 + //SEG600 [266] phi from keyboard_event_scan::@3 to keyboard_event_scan::@1 [phi:keyboard_event_scan::@3->keyboard_event_scan::@1] + //SEG601 [266] phi (byte) keyboard_events_size#29 = (byte) keyboard_events_size#13 [phi:keyboard_event_scan::@3->keyboard_event_scan::@1#0] -- register_copy + //SEG602 [266] phi (byte) keyboard_event_scan::keycode#11 = (byte) keyboard_event_scan::keycode#14 [phi:keyboard_event_scan::@3->keyboard_event_scan::@1#1] -- register_copy + //SEG603 [266] phi (byte) keyboard_event_scan::row#2 = (byte) keyboard_event_scan::row#1 [phi:keyboard_event_scan::@3->keyboard_event_scan::@1#2] -- register_copy + //SEG604 keyboard_event_scan::@1 b1: - //SEG603 [267] (byte) keyboard_matrix_read::rowid#0 ← (byte) keyboard_event_scan::row#2 -- vbuxx=vbuz1 + //SEG605 [267] (byte) keyboard_matrix_read::rowid#0 ← (byte) keyboard_event_scan::row#2 -- vbuxx=vbuz1 ldx row - //SEG604 [268] call keyboard_matrix_read + //SEG606 [268] call keyboard_matrix_read jsr keyboard_matrix_read - //SEG605 [269] (byte) keyboard_matrix_read::return#2 ← (byte) keyboard_matrix_read::return#0 + //SEG607 [269] (byte) keyboard_matrix_read::return#2 ← (byte) keyboard_matrix_read::return#0 // (byte) keyboard_matrix_read::return#2 = (byte) keyboard_matrix_read::return#0 // register copy reg byte a - //SEG606 keyboard_event_scan::@25 - //SEG607 [270] (byte) keyboard_event_scan::row_scan#0 ← (byte) keyboard_matrix_read::return#2 -- vbuz1=vbuaa + //SEG608 keyboard_event_scan::@25 + //SEG609 [270] (byte) keyboard_event_scan::row_scan#0 ← (byte) keyboard_matrix_read::return#2 -- vbuz1=vbuaa sta row_scan - //SEG608 [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 -- vbuz1_neq_pbuc1_derefidx_vbuz2_then_la1 + //SEG610 [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 -- vbuz1_neq_pbuc1_derefidx_vbuz2_then_la1 ldy row cmp keyboard_scan_values,y bne b2 - //SEG609 keyboard_event_scan::@13 - //SEG610 [272] (byte) keyboard_event_scan::keycode#1 ← (byte) keyboard_event_scan::keycode#11 + (byte/signed byte/word/signed word/dword/signed dword) 8 -- vbuz1=vbuz1_plus_vbuc1 + //SEG611 keyboard_event_scan::@13 + //SEG612 [272] (byte) keyboard_event_scan::keycode#1 ← (byte) keyboard_event_scan::keycode#11 + (byte/signed byte/word/signed word/dword/signed dword) 8 -- vbuz1=vbuz1_plus_vbuc1 lda #8 clc adc keycode sta keycode - //SEG611 [273] phi from keyboard_event_scan::@13 keyboard_event_scan::@19 to keyboard_event_scan::@3 [phi:keyboard_event_scan::@13/keyboard_event_scan::@19->keyboard_event_scan::@3] - //SEG612 [273] phi (byte) keyboard_events_size#13 = (byte) keyboard_events_size#29 [phi:keyboard_event_scan::@13/keyboard_event_scan::@19->keyboard_event_scan::@3#0] -- register_copy - //SEG613 [273] phi (byte) keyboard_event_scan::keycode#14 = (byte) keyboard_event_scan::keycode#1 [phi:keyboard_event_scan::@13/keyboard_event_scan::@19->keyboard_event_scan::@3#1] -- register_copy - //SEG614 keyboard_event_scan::@3 + //SEG613 [273] phi from keyboard_event_scan::@13 keyboard_event_scan::@19 to keyboard_event_scan::@3 [phi:keyboard_event_scan::@13/keyboard_event_scan::@19->keyboard_event_scan::@3] + //SEG614 [273] phi (byte) keyboard_events_size#13 = (byte) keyboard_events_size#29 [phi:keyboard_event_scan::@13/keyboard_event_scan::@19->keyboard_event_scan::@3#0] -- register_copy + //SEG615 [273] phi (byte) keyboard_event_scan::keycode#14 = (byte) keyboard_event_scan::keycode#1 [phi:keyboard_event_scan::@13/keyboard_event_scan::@19->keyboard_event_scan::@3#1] -- register_copy + //SEG616 keyboard_event_scan::@3 b3: - //SEG615 [274] (byte) keyboard_event_scan::row#1 ← ++ (byte) keyboard_event_scan::row#2 -- vbuz1=_inc_vbuz1 + //SEG617 [274] (byte) keyboard_event_scan::row#1 ← ++ (byte) keyboard_event_scan::row#2 -- vbuz1=_inc_vbuz1 inc row - //SEG616 [275] if((byte) keyboard_event_scan::row#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto keyboard_event_scan::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG618 [275] if((byte) keyboard_event_scan::row#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto keyboard_event_scan::@1 -- vbuz1_neq_vbuc1_then_la1 lda row cmp #8 bne b1 - //SEG617 [276] phi from keyboard_event_scan::@3 to keyboard_event_scan::@20 [phi:keyboard_event_scan::@3->keyboard_event_scan::@20] - //SEG618 keyboard_event_scan::@20 - //SEG619 [277] call keyboard_event_pressed - //SEG620 [254] phi from keyboard_event_scan::@20 to keyboard_event_pressed [phi:keyboard_event_scan::@20->keyboard_event_pressed] - //SEG621 [254] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_LSHIFT#0 [phi:keyboard_event_scan::@20->keyboard_event_pressed#0] -- vbuz1=vbuc1 + //SEG619 [276] phi from keyboard_event_scan::@3 to keyboard_event_scan::@20 [phi:keyboard_event_scan::@3->keyboard_event_scan::@20] + //SEG620 keyboard_event_scan::@20 + //SEG621 [277] call keyboard_event_pressed + //SEG622 [254] phi from keyboard_event_scan::@20 to keyboard_event_pressed [phi:keyboard_event_scan::@20->keyboard_event_pressed] + //SEG623 [254] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_LSHIFT#0 [phi:keyboard_event_scan::@20->keyboard_event_pressed#0] -- vbuz1=vbuc1 lda #KEY_LSHIFT sta keyboard_event_pressed.keycode jsr keyboard_event_pressed - //SEG622 [278] (byte) keyboard_event_pressed::return#0 ← (byte) keyboard_event_pressed::return#11 + //SEG624 [278] (byte) keyboard_event_pressed::return#0 ← (byte) keyboard_event_pressed::return#11 // (byte) keyboard_event_pressed::return#0 = (byte) keyboard_event_pressed::return#11 // register copy reg byte a - //SEG623 keyboard_event_scan::@26 - //SEG624 [279] (byte~) keyboard_event_scan::$14 ← (byte) keyboard_event_pressed::return#0 + //SEG625 keyboard_event_scan::@26 + //SEG626 [279] (byte~) keyboard_event_scan::$14 ← (byte) keyboard_event_pressed::return#0 // (byte~) keyboard_event_scan::$14 = (byte) keyboard_event_pressed::return#0 // register copy reg byte a - //SEG625 [280] if((byte~) keyboard_event_scan::$14==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@9 -- vbuaa_eq_0_then_la1 + //SEG627 [280] if((byte~) keyboard_event_scan::$14==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@9 -- vbuaa_eq_0_then_la1 cmp #0 - //SEG626 [281] phi from keyboard_event_scan::@26 to keyboard_event_scan::@21 [phi:keyboard_event_scan::@26->keyboard_event_scan::@21] - //SEG627 keyboard_event_scan::@21 - //SEG628 [282] phi from keyboard_event_scan::@21 keyboard_event_scan::@26 to keyboard_event_scan::@9 [phi:keyboard_event_scan::@21/keyboard_event_scan::@26->keyboard_event_scan::@9] - //SEG629 keyboard_event_scan::@9 - //SEG630 [283] call keyboard_event_pressed - //SEG631 [254] phi from keyboard_event_scan::@9 to keyboard_event_pressed [phi:keyboard_event_scan::@9->keyboard_event_pressed] - //SEG632 [254] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_RSHIFT#0 [phi:keyboard_event_scan::@9->keyboard_event_pressed#0] -- vbuz1=vbuc1 + //SEG628 [281] phi from keyboard_event_scan::@26 to keyboard_event_scan::@21 [phi:keyboard_event_scan::@26->keyboard_event_scan::@21] + //SEG629 keyboard_event_scan::@21 + //SEG630 [282] phi from keyboard_event_scan::@21 keyboard_event_scan::@26 to keyboard_event_scan::@9 [phi:keyboard_event_scan::@21/keyboard_event_scan::@26->keyboard_event_scan::@9] + //SEG631 keyboard_event_scan::@9 + //SEG632 [283] call keyboard_event_pressed + //SEG633 [254] phi from keyboard_event_scan::@9 to keyboard_event_pressed [phi:keyboard_event_scan::@9->keyboard_event_pressed] + //SEG634 [254] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_RSHIFT#0 [phi:keyboard_event_scan::@9->keyboard_event_pressed#0] -- vbuz1=vbuc1 lda #KEY_RSHIFT sta keyboard_event_pressed.keycode jsr keyboard_event_pressed - //SEG633 [284] (byte) keyboard_event_pressed::return#1 ← (byte) keyboard_event_pressed::return#11 + //SEG635 [284] (byte) keyboard_event_pressed::return#1 ← (byte) keyboard_event_pressed::return#11 // (byte) keyboard_event_pressed::return#1 = (byte) keyboard_event_pressed::return#11 // register copy reg byte a - //SEG634 keyboard_event_scan::@27 - //SEG635 [285] (byte~) keyboard_event_scan::$18 ← (byte) keyboard_event_pressed::return#1 + //SEG636 keyboard_event_scan::@27 + //SEG637 [285] (byte~) keyboard_event_scan::$18 ← (byte) keyboard_event_pressed::return#1 // (byte~) keyboard_event_scan::$18 = (byte) keyboard_event_pressed::return#1 // register copy reg byte a - //SEG636 [286] if((byte~) keyboard_event_scan::$18==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@10 -- vbuaa_eq_0_then_la1 + //SEG638 [286] if((byte~) keyboard_event_scan::$18==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@10 -- vbuaa_eq_0_then_la1 cmp #0 - //SEG637 [287] phi from keyboard_event_scan::@27 to keyboard_event_scan::@22 [phi:keyboard_event_scan::@27->keyboard_event_scan::@22] - //SEG638 keyboard_event_scan::@22 - //SEG639 [288] phi from keyboard_event_scan::@22 keyboard_event_scan::@27 to keyboard_event_scan::@10 [phi:keyboard_event_scan::@22/keyboard_event_scan::@27->keyboard_event_scan::@10] - //SEG640 keyboard_event_scan::@10 - //SEG641 [289] call keyboard_event_pressed - //SEG642 [254] phi from keyboard_event_scan::@10 to keyboard_event_pressed [phi:keyboard_event_scan::@10->keyboard_event_pressed] - //SEG643 [254] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_CTRL#0 [phi:keyboard_event_scan::@10->keyboard_event_pressed#0] -- vbuz1=vbuc1 + //SEG639 [287] phi from keyboard_event_scan::@27 to keyboard_event_scan::@22 [phi:keyboard_event_scan::@27->keyboard_event_scan::@22] + //SEG640 keyboard_event_scan::@22 + //SEG641 [288] phi from keyboard_event_scan::@22 keyboard_event_scan::@27 to keyboard_event_scan::@10 [phi:keyboard_event_scan::@22/keyboard_event_scan::@27->keyboard_event_scan::@10] + //SEG642 keyboard_event_scan::@10 + //SEG643 [289] call keyboard_event_pressed + //SEG644 [254] phi from keyboard_event_scan::@10 to keyboard_event_pressed [phi:keyboard_event_scan::@10->keyboard_event_pressed] + //SEG645 [254] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_CTRL#0 [phi:keyboard_event_scan::@10->keyboard_event_pressed#0] -- vbuz1=vbuc1 lda #KEY_CTRL sta keyboard_event_pressed.keycode jsr keyboard_event_pressed - //SEG644 [290] (byte) keyboard_event_pressed::return#2 ← (byte) keyboard_event_pressed::return#11 + //SEG646 [290] (byte) keyboard_event_pressed::return#2 ← (byte) keyboard_event_pressed::return#11 // (byte) keyboard_event_pressed::return#2 = (byte) keyboard_event_pressed::return#11 // register copy reg byte a - //SEG645 keyboard_event_scan::@28 - //SEG646 [291] (byte~) keyboard_event_scan::$22 ← (byte) keyboard_event_pressed::return#2 + //SEG647 keyboard_event_scan::@28 + //SEG648 [291] (byte~) keyboard_event_scan::$22 ← (byte) keyboard_event_pressed::return#2 // (byte~) keyboard_event_scan::$22 = (byte) keyboard_event_pressed::return#2 // register copy reg byte a - //SEG647 [292] if((byte~) keyboard_event_scan::$22==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@11 -- vbuaa_eq_0_then_la1 + //SEG649 [292] if((byte~) keyboard_event_scan::$22==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@11 -- vbuaa_eq_0_then_la1 cmp #0 - //SEG648 [293] phi from keyboard_event_scan::@28 to keyboard_event_scan::@23 [phi:keyboard_event_scan::@28->keyboard_event_scan::@23] - //SEG649 keyboard_event_scan::@23 - //SEG650 [294] phi from keyboard_event_scan::@23 keyboard_event_scan::@28 to keyboard_event_scan::@11 [phi:keyboard_event_scan::@23/keyboard_event_scan::@28->keyboard_event_scan::@11] - //SEG651 keyboard_event_scan::@11 - //SEG652 [295] call keyboard_event_pressed - //SEG653 [254] phi from keyboard_event_scan::@11 to keyboard_event_pressed [phi:keyboard_event_scan::@11->keyboard_event_pressed] - //SEG654 [254] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_COMMODORE#0 [phi:keyboard_event_scan::@11->keyboard_event_pressed#0] -- vbuz1=vbuc1 + //SEG650 [293] phi from keyboard_event_scan::@28 to keyboard_event_scan::@23 [phi:keyboard_event_scan::@28->keyboard_event_scan::@23] + //SEG651 keyboard_event_scan::@23 + //SEG652 [294] phi from keyboard_event_scan::@23 keyboard_event_scan::@28 to keyboard_event_scan::@11 [phi:keyboard_event_scan::@23/keyboard_event_scan::@28->keyboard_event_scan::@11] + //SEG653 keyboard_event_scan::@11 + //SEG654 [295] call keyboard_event_pressed + //SEG655 [254] phi from keyboard_event_scan::@11 to keyboard_event_pressed [phi:keyboard_event_scan::@11->keyboard_event_pressed] + //SEG656 [254] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_COMMODORE#0 [phi:keyboard_event_scan::@11->keyboard_event_pressed#0] -- vbuz1=vbuc1 lda #KEY_COMMODORE sta keyboard_event_pressed.keycode jsr keyboard_event_pressed - //SEG655 [296] (byte) keyboard_event_pressed::return#10 ← (byte) keyboard_event_pressed::return#11 + //SEG657 [296] (byte) keyboard_event_pressed::return#10 ← (byte) keyboard_event_pressed::return#11 // (byte) keyboard_event_pressed::return#10 = (byte) keyboard_event_pressed::return#11 // register copy reg byte a - //SEG656 keyboard_event_scan::@29 - //SEG657 [297] (byte~) keyboard_event_scan::$26 ← (byte) keyboard_event_pressed::return#10 + //SEG658 keyboard_event_scan::@29 + //SEG659 [297] (byte~) keyboard_event_scan::$26 ← (byte) keyboard_event_pressed::return#10 // (byte~) keyboard_event_scan::$26 = (byte) keyboard_event_pressed::return#10 // register copy reg byte a - //SEG658 [298] if((byte~) keyboard_event_scan::$26==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@return -- vbuaa_eq_0_then_la1 + //SEG660 [298] if((byte~) keyboard_event_scan::$26==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@return -- vbuaa_eq_0_then_la1 cmp #0 - //SEG659 [299] phi from keyboard_event_scan::@29 to keyboard_event_scan::@24 [phi:keyboard_event_scan::@29->keyboard_event_scan::@24] - //SEG660 keyboard_event_scan::@24 - //SEG661 keyboard_event_scan::@return - //SEG662 [300] return + //SEG661 [299] phi from keyboard_event_scan::@29 to keyboard_event_scan::@24 [phi:keyboard_event_scan::@29->keyboard_event_scan::@24] + //SEG662 keyboard_event_scan::@24 + //SEG663 keyboard_event_scan::@return + //SEG664 [300] return rts - //SEG663 [301] phi from keyboard_event_scan::@25 to keyboard_event_scan::@4 [phi:keyboard_event_scan::@25->keyboard_event_scan::@4] + //SEG665 [301] phi from keyboard_event_scan::@25 to keyboard_event_scan::@4 [phi:keyboard_event_scan::@25->keyboard_event_scan::@4] b2: - //SEG664 [301] phi (byte) keyboard_events_size#10 = (byte) keyboard_events_size#29 [phi:keyboard_event_scan::@25->keyboard_event_scan::@4#0] -- register_copy - //SEG665 [301] phi (byte) keyboard_event_scan::keycode#10 = (byte) keyboard_event_scan::keycode#11 [phi:keyboard_event_scan::@25->keyboard_event_scan::@4#1] -- register_copy - //SEG666 [301] phi (byte) keyboard_event_scan::col#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:keyboard_event_scan::@25->keyboard_event_scan::@4#2] -- vbuxx=vbuc1 + //SEG666 [301] phi (byte) keyboard_events_size#10 = (byte) keyboard_events_size#29 [phi:keyboard_event_scan::@25->keyboard_event_scan::@4#0] -- register_copy + //SEG667 [301] phi (byte) keyboard_event_scan::keycode#10 = (byte) keyboard_event_scan::keycode#11 [phi:keyboard_event_scan::@25->keyboard_event_scan::@4#1] -- register_copy + //SEG668 [301] phi (byte) keyboard_event_scan::col#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:keyboard_event_scan::@25->keyboard_event_scan::@4#2] -- vbuxx=vbuc1 ldx #0 - //SEG667 [301] phi from keyboard_event_scan::@5 to keyboard_event_scan::@4 [phi:keyboard_event_scan::@5->keyboard_event_scan::@4] - //SEG668 [301] phi (byte) keyboard_events_size#10 = (byte) keyboard_events_size#30 [phi:keyboard_event_scan::@5->keyboard_event_scan::@4#0] -- register_copy - //SEG669 [301] phi (byte) keyboard_event_scan::keycode#10 = (byte) keyboard_event_scan::keycode#15 [phi:keyboard_event_scan::@5->keyboard_event_scan::@4#1] -- register_copy - //SEG670 [301] phi (byte) keyboard_event_scan::col#2 = (byte) keyboard_event_scan::col#1 [phi:keyboard_event_scan::@5->keyboard_event_scan::@4#2] -- register_copy - //SEG671 keyboard_event_scan::@4 + //SEG669 [301] phi from keyboard_event_scan::@5 to keyboard_event_scan::@4 [phi:keyboard_event_scan::@5->keyboard_event_scan::@4] + //SEG670 [301] phi (byte) keyboard_events_size#10 = (byte) keyboard_events_size#30 [phi:keyboard_event_scan::@5->keyboard_event_scan::@4#0] -- register_copy + //SEG671 [301] phi (byte) keyboard_event_scan::keycode#10 = (byte) keyboard_event_scan::keycode#15 [phi:keyboard_event_scan::@5->keyboard_event_scan::@4#1] -- register_copy + //SEG672 [301] phi (byte) keyboard_event_scan::col#2 = (byte) keyboard_event_scan::col#1 [phi:keyboard_event_scan::@5->keyboard_event_scan::@4#2] -- register_copy + //SEG673 keyboard_event_scan::@4 b4: - //SEG672 [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) -- vbuaa=vbuz1_bxor_pbuc1_derefidx_vbuz2 + //SEG674 [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) -- vbuaa=vbuz1_bxor_pbuc1_derefidx_vbuz2 lda row_scan ldy row eor keyboard_scan_values,y - //SEG673 [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) -- vbuaa=vbuaa_band_pbuc1_derefidx_vbuxx + //SEG675 [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) -- vbuaa=vbuaa_band_pbuc1_derefidx_vbuxx and keyboard_matrix_col_bitmask,x - //SEG674 [304] if((byte~) keyboard_event_scan::$4==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@5 -- vbuaa_eq_0_then_la1 + //SEG676 [304] if((byte~) keyboard_event_scan::$4==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@5 -- vbuaa_eq_0_then_la1 cmp #0 beq b5 - //SEG675 keyboard_event_scan::@15 - //SEG676 [305] if((byte) keyboard_events_size#10==(byte/signed byte/word/signed word/dword/signed dword) 8) goto keyboard_event_scan::@5 -- vbuz1_eq_vbuc1_then_la1 + //SEG677 keyboard_event_scan::@15 + //SEG678 [305] if((byte) keyboard_events_size#10==(byte/signed byte/word/signed word/dword/signed dword) 8) goto keyboard_event_scan::@5 -- vbuz1_eq_vbuc1_then_la1 lda keyboard_events_size cmp #8 beq b5 - //SEG677 keyboard_event_scan::@16 - //SEG678 [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) -- vbuaa=vbuz1_band_pbuc1_derefidx_vbuxx + //SEG679 keyboard_event_scan::@16 + //SEG680 [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) -- vbuaa=vbuz1_band_pbuc1_derefidx_vbuxx lda keyboard_matrix_col_bitmask,x and row_scan - //SEG679 [307] if((byte) keyboard_event_scan::event_type#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@7 -- vbuaa_eq_0_then_la1 + //SEG681 [307] if((byte) keyboard_event_scan::event_type#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@7 -- vbuaa_eq_0_then_la1 cmp #0 beq b7 - //SEG680 keyboard_event_scan::@17 - //SEG681 [308] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte) keyboard_event_scan::keycode#10 -- pbuc1_derefidx_vbuz1=vbuz2 + //SEG682 keyboard_event_scan::@17 + //SEG683 [308] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte) keyboard_event_scan::keycode#10 -- pbuc1_derefidx_vbuz1=vbuz2 lda keycode ldy keyboard_events_size sta keyboard_events,y - //SEG682 [309] (byte) keyboard_events_size#2 ← ++ (byte) keyboard_events_size#10 -- vbuz1=_inc_vbuz1 + //SEG684 [309] (byte) keyboard_events_size#2 ← ++ (byte) keyboard_events_size#10 -- vbuz1=_inc_vbuz1 inc keyboard_events_size - //SEG683 [310] phi from keyboard_event_scan::@15 keyboard_event_scan::@17 keyboard_event_scan::@4 keyboard_event_scan::@7 to keyboard_event_scan::@5 [phi:keyboard_event_scan::@15/keyboard_event_scan::@17/keyboard_event_scan::@4/keyboard_event_scan::@7->keyboard_event_scan::@5] - //SEG684 [310] phi (byte) keyboard_events_size#30 = (byte) keyboard_events_size#10 [phi:keyboard_event_scan::@15/keyboard_event_scan::@17/keyboard_event_scan::@4/keyboard_event_scan::@7->keyboard_event_scan::@5#0] -- register_copy - //SEG685 keyboard_event_scan::@5 + //SEG685 [310] phi from keyboard_event_scan::@15 keyboard_event_scan::@17 keyboard_event_scan::@4 keyboard_event_scan::@7 to keyboard_event_scan::@5 [phi:keyboard_event_scan::@15/keyboard_event_scan::@17/keyboard_event_scan::@4/keyboard_event_scan::@7->keyboard_event_scan::@5] + //SEG686 [310] phi (byte) keyboard_events_size#30 = (byte) keyboard_events_size#10 [phi:keyboard_event_scan::@15/keyboard_event_scan::@17/keyboard_event_scan::@4/keyboard_event_scan::@7->keyboard_event_scan::@5#0] -- register_copy + //SEG687 keyboard_event_scan::@5 b5: - //SEG686 [311] (byte) keyboard_event_scan::keycode#15 ← ++ (byte) keyboard_event_scan::keycode#10 -- vbuz1=_inc_vbuz1 + //SEG688 [311] (byte) keyboard_event_scan::keycode#15 ← ++ (byte) keyboard_event_scan::keycode#10 -- vbuz1=_inc_vbuz1 inc keycode - //SEG687 [312] (byte) keyboard_event_scan::col#1 ← ++ (byte) keyboard_event_scan::col#2 -- vbuxx=_inc_vbuxx + //SEG689 [312] (byte) keyboard_event_scan::col#1 ← ++ (byte) keyboard_event_scan::col#2 -- vbuxx=_inc_vbuxx inx - //SEG688 [313] if((byte) keyboard_event_scan::col#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto keyboard_event_scan::@4 -- vbuxx_neq_vbuc1_then_la1 + //SEG690 [313] if((byte) keyboard_event_scan::col#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto keyboard_event_scan::@4 -- vbuxx_neq_vbuc1_then_la1 cpx #8 bne b4 - //SEG689 keyboard_event_scan::@19 - //SEG690 [314] *((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2) ← (byte) keyboard_event_scan::row_scan#0 -- pbuc1_derefidx_vbuz1=vbuz2 + //SEG691 keyboard_event_scan::@19 + //SEG692 [314] *((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2) ← (byte) keyboard_event_scan::row_scan#0 -- pbuc1_derefidx_vbuz1=vbuz2 lda row_scan ldy row sta keyboard_scan_values,y jmp b3 - //SEG691 keyboard_event_scan::@7 + //SEG693 keyboard_event_scan::@7 b7: - //SEG692 [315] (byte/word/dword~) keyboard_event_scan::$11 ← (byte) keyboard_event_scan::keycode#10 | (byte/signed byte/word/signed word/dword/signed dword) 64 -- vbuaa=vbuz1_bor_vbuc1 + //SEG694 [315] (byte/word/dword~) keyboard_event_scan::$11 ← (byte) keyboard_event_scan::keycode#10 | (byte/signed byte/word/signed word/dword/signed dword) 64 -- vbuaa=vbuz1_bor_vbuc1 lda #$40 ora keycode - //SEG693 [316] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte/word/dword~) keyboard_event_scan::$11 -- pbuc1_derefidx_vbuz1=vbuaa + //SEG695 [316] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte/word/dword~) keyboard_event_scan::$11 -- pbuc1_derefidx_vbuz1=vbuaa ldy keyboard_events_size sta keyboard_events,y - //SEG694 [317] (byte) keyboard_events_size#1 ← ++ (byte) keyboard_events_size#10 -- vbuz1=_inc_vbuz1 + //SEG696 [317] (byte) keyboard_events_size#1 ← ++ (byte) keyboard_events_size#10 -- vbuz1=_inc_vbuz1 inc keyboard_events_size jmp b5 } -//SEG695 keyboard_matrix_read +//SEG697 keyboard_matrix_read keyboard_matrix_read: { - //SEG696 [318] *((const byte*) CIA1_PORT_A#0) ← *((const byte[8]) keyboard_matrix_row_bitmask#0 + (byte) keyboard_matrix_read::rowid#0) -- _deref_pbuc1=pbuc2_derefidx_vbuxx + //SEG698 [318] *((const byte*) CIA1_PORT_A#0) ← *((const byte[8]) keyboard_matrix_row_bitmask#0 + (byte) keyboard_matrix_read::rowid#0) -- _deref_pbuc1=pbuc2_derefidx_vbuxx lda keyboard_matrix_row_bitmask,x sta CIA1_PORT_A - //SEG697 [319] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) -- vbuaa=_bnot__deref_pbuc1 + //SEG699 [319] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) -- vbuaa=_bnot__deref_pbuc1 lda CIA1_PORT_B eor #$ff - //SEG698 keyboard_matrix_read::@return - //SEG699 [320] return + //SEG700 keyboard_matrix_read::@return + //SEG701 [320] return rts } -//SEG700 init -init: { - .label _14 = $c - .label li = 5 +//SEG702 tables_init +tables_init: { .label pli = 5 .label idx = 2 - .label line = 5 - .label l = 2 - //SEG701 [322] call fill - //SEG702 [350] phi from init to fill [phi:init->fill] - //SEG703 [350] phi (byte) fill::val#3 = (byte/word/signed word/dword/signed dword) 160 [phi:init->fill#0] -- vbuxx=vbuc1 - ldx #$a0 - //SEG704 [350] phi (byte*) fill::addr#0 = (const byte*) SCREEN#0 [phi:init->fill#1] -- pbuz1=pbuc1 - lda #SCREEN - sta fill.addr+1 - jsr fill - //SEG705 [323] phi from init to init::@9 [phi:init->init::@9] - //SEG706 init::@9 - //SEG707 [324] call fill - //SEG708 [350] phi from init::@9 to fill [phi:init::@9->fill] - //SEG709 [350] phi (byte) fill::val#3 = (const byte) BLACK#0 [phi:init::@9->fill#0] -- vbuxx=vbuc1 - ldx #BLACK - //SEG710 [350] phi (byte*) fill::addr#0 = (const byte*) COLS#0 [phi:init::@9->fill#1] -- pbuz1=pbuc1 - lda #COLS - sta fill.addr+1 - jsr fill - //SEG711 [325] phi from init::@9 to init::@1 [phi:init::@9->init::@1] - //SEG712 [325] phi (byte*) init::li#2 = (const byte*) COLS#0+(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 15 [phi:init::@9->init::@1#0] -- pbuz1=pbuc1 - lda #COLS+$28+$f - sta li+1 - //SEG713 [325] phi (byte) init::i#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:init::@9->init::@1#1] -- vbuxx=vbuc1 - ldx #0 - //SEG714 [325] phi from init::@1 to init::@1 [phi:init::@1->init::@1] - //SEG715 [325] phi (byte*) init::li#2 = (byte*) init::li#1 [phi:init::@1->init::@1#0] -- register_copy - //SEG716 [325] phi (byte) init::i#2 = (byte) init::i#1 [phi:init::@1->init::@1#1] -- register_copy - //SEG717 init::@1 - b1: - //SEG718 [326] (byte~) init::$5 ← (byte) init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuaa=vbuxx_rol_1 - txa - asl - //SEG719 [327] *((const byte*[PLAYFIELD_LINES#0+3]) screen_lines#0 + (byte~) init::$5) ← (byte*) init::li#2 -- pptc1_derefidx_vbuaa=pbuz1 - tay - lda li - sta screen_lines,y - lda li+1 - sta screen_lines+1,y - //SEG720 [328] (byte*) init::li#1 ← (byte*) init::li#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 -- pbuz1=pbuz1_plus_vbuc1 - lda li - clc - adc #$28 - sta li - bcc !+ - inc li+1 - !: - //SEG721 [329] (byte) init::i#1 ← ++ (byte) init::i#2 -- vbuxx=_inc_vbuxx - inx - //SEG722 [330] if((byte) init::i#1!=(const byte) PLAYFIELD_LINES#0+(byte/signed byte/word/signed word/dword/signed dword) 2+(byte/signed byte/word/signed word/dword/signed dword) 1) goto init::@1 -- vbuxx_neq_vbuc1_then_la1 - cpx #PLAYFIELD_LINES+2+1 - bne b1 - //SEG723 [331] phi from init::@1 to init::@2 [phi:init::@1->init::@2] - //SEG724 [331] phi (byte) init::idx#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:init::@1->init::@2#0] -- vbuz1=vbuc1 + //SEG703 [322] phi from tables_init to tables_init::@1 [phi:tables_init->tables_init::@1] + //SEG704 [322] phi (byte) tables_init::idx#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:tables_init->tables_init::@1#0] -- vbuz1=vbuc1 lda #0 sta idx - //SEG725 [331] phi (byte*) init::pli#2 = (const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 [phi:init::@1->init::@2#1] -- pbuz1=pbuc1 + //SEG705 [322] phi (byte*) tables_init::pli#2 = (const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 [phi:tables_init->tables_init::@1#1] -- pbuz1=pbuc1 lda #playfield sta pli+1 - //SEG726 [331] phi (byte) init::j#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:init::@1->init::@2#2] -- vbuxx=vbuc1 + //SEG706 [322] phi (byte) tables_init::j#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:tables_init->tables_init::@1#2] -- vbuxx=vbuc1 ldx #0 - //SEG727 [331] phi from init::@2 to init::@2 [phi:init::@2->init::@2] - //SEG728 [331] phi (byte) init::idx#2 = (byte) init::idx#1 [phi:init::@2->init::@2#0] -- register_copy - //SEG729 [331] phi (byte*) init::pli#2 = (byte*) init::pli#1 [phi:init::@2->init::@2#1] -- register_copy - //SEG730 [331] phi (byte) init::j#2 = (byte) init::j#1 [phi:init::@2->init::@2#2] -- register_copy - //SEG731 init::@2 - b2: - //SEG732 [332] (byte~) init::$8 ← (byte) init::j#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuaa=vbuxx_rol_1 + //SEG707 [322] phi from tables_init::@1 to tables_init::@1 [phi:tables_init::@1->tables_init::@1] + //SEG708 [322] phi (byte) tables_init::idx#2 = (byte) tables_init::idx#1 [phi:tables_init::@1->tables_init::@1#0] -- register_copy + //SEG709 [322] phi (byte*) tables_init::pli#2 = (byte*) tables_init::pli#1 [phi:tables_init::@1->tables_init::@1#1] -- register_copy + //SEG710 [322] phi (byte) tables_init::j#2 = (byte) tables_init::j#1 [phi:tables_init::@1->tables_init::@1#2] -- register_copy + //SEG711 tables_init::@1 + b1: + //SEG712 [323] (byte~) tables_init::$1 ← (byte) tables_init::j#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuaa=vbuxx_rol_1 txa asl - //SEG733 [333] *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte~) init::$8) ← (byte*) init::pli#2 -- pptc1_derefidx_vbuaa=pbuz1 + //SEG713 [324] *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte~) tables_init::$1) ← (byte*) tables_init::pli#2 -- pptc1_derefidx_vbuaa=pbuz1 tay lda pli sta playfield_lines,y lda pli+1 sta playfield_lines+1,y - //SEG734 [334] *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0 + (byte) init::j#2) ← (byte) init::idx#2 -- pbuc1_derefidx_vbuxx=vbuz1 + //SEG714 [325] *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0 + (byte) tables_init::j#2) ← (byte) tables_init::idx#2 -- pbuc1_derefidx_vbuxx=vbuz1 lda idx sta playfield_lines_idx,x - //SEG735 [335] (byte*) init::pli#1 ← (byte*) init::pli#2 + (const byte) PLAYFIELD_COLS#0 -- pbuz1=pbuz1_plus_vbuc1 + //SEG715 [326] (byte*) tables_init::pli#1 ← (byte*) tables_init::pli#2 + (const byte) PLAYFIELD_COLS#0 -- pbuz1=pbuz1_plus_vbuc1 lda pli clc adc #PLAYFIELD_COLS @@ -14215,60 +14230,127 @@ init: { bcc !+ inc pli+1 !: - //SEG736 [336] (byte) init::idx#1 ← (byte) init::idx#2 + (const byte) PLAYFIELD_COLS#0 -- vbuz1=vbuz1_plus_vbuc1 + //SEG716 [327] (byte) tables_init::idx#1 ← (byte) tables_init::idx#2 + (const byte) PLAYFIELD_COLS#0 -- vbuz1=vbuz1_plus_vbuc1 lda #PLAYFIELD_COLS clc adc idx sta idx - //SEG737 [337] (byte) init::j#1 ← ++ (byte) init::j#2 -- vbuxx=_inc_vbuxx + //SEG717 [328] (byte) tables_init::j#1 ← ++ (byte) tables_init::j#2 -- vbuxx=_inc_vbuxx inx - //SEG738 [338] if((byte) init::j#1!=(const byte) PLAYFIELD_LINES#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto init::@2 -- vbuxx_neq_vbuc1_then_la1 + //SEG718 [329] if((byte) tables_init::j#1!=(const byte) PLAYFIELD_LINES#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto tables_init::@1 -- vbuxx_neq_vbuc1_then_la1 cpx #PLAYFIELD_LINES-1+1 - bne b2 - //SEG739 init::@6 - //SEG740 [339] *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0+(const byte) PLAYFIELD_LINES#0) ← (const byte) PLAYFIELD_COLS#0*(const byte) PLAYFIELD_LINES#0 -- _deref_pbuc1=vbuc2 + bne b1 + //SEG719 tables_init::@2 + //SEG720 [330] *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0+(const byte) PLAYFIELD_LINES#0) ← (const byte) PLAYFIELD_COLS#0*(const byte) PLAYFIELD_LINES#0 -- _deref_pbuc1=vbuc2 lda #PLAYFIELD_COLS*PLAYFIELD_LINES sta playfield_lines_idx+PLAYFIELD_LINES - //SEG741 [340] phi from init::@6 to init::@3 [phi:init::@6->init::@3] - //SEG742 [340] phi (byte) init::l#4 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:init::@6->init::@3#0] -- vbuz1=vbuc1 + //SEG721 tables_init::@return + //SEG722 [331] return + rts +} +//SEG723 render_init +render_init: { + .label _10 = $c + .label li = 5 + .label line = 5 + .label l = 2 + //SEG724 [333] call fill + //SEG725 [352] phi from render_init to fill [phi:render_init->fill] + //SEG726 [352] phi (byte) fill::val#3 = (byte/word/signed word/dword/signed dword) 160 [phi:render_init->fill#0] -- vbuxx=vbuc1 + ldx #$a0 + //SEG727 [352] phi (byte*) fill::addr#0 = (const byte*) SCREEN#0 [phi:render_init->fill#1] -- pbuz1=pbuc1 + lda #SCREEN + sta fill.addr+1 + jsr fill + //SEG728 [334] phi from render_init to render_init::@7 [phi:render_init->render_init::@7] + //SEG729 render_init::@7 + //SEG730 [335] call fill + //SEG731 [352] phi from render_init::@7 to fill [phi:render_init::@7->fill] + //SEG732 [352] phi (byte) fill::val#3 = (const byte) BLACK#0 [phi:render_init::@7->fill#0] -- vbuxx=vbuc1 + ldx #BLACK + //SEG733 [352] phi (byte*) fill::addr#0 = (const byte*) COLS#0 [phi:render_init::@7->fill#1] -- pbuz1=pbuc1 + lda #COLS + sta fill.addr+1 + jsr fill + //SEG734 [336] phi from render_init::@7 to render_init::@1 [phi:render_init::@7->render_init::@1] + //SEG735 [336] phi (byte*) render_init::li#2 = (const byte*) COLS#0+(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 15 [phi:render_init::@7->render_init::@1#0] -- pbuz1=pbuc1 + lda #COLS+$28+$f + sta li+1 + //SEG736 [336] phi (byte) render_init::i#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_init::@7->render_init::@1#1] -- vbuxx=vbuc1 + ldx #0 + //SEG737 [336] phi from render_init::@1 to render_init::@1 [phi:render_init::@1->render_init::@1] + //SEG738 [336] phi (byte*) render_init::li#2 = (byte*) render_init::li#1 [phi:render_init::@1->render_init::@1#0] -- register_copy + //SEG739 [336] phi (byte) render_init::i#2 = (byte) render_init::i#1 [phi:render_init::@1->render_init::@1#1] -- register_copy + //SEG740 render_init::@1 + b1: + //SEG741 [337] (byte~) render_init::$5 ← (byte) render_init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuaa=vbuxx_rol_1 + txa + asl + //SEG742 [338] *((const byte*[PLAYFIELD_LINES#0+3]) screen_lines#0 + (byte~) render_init::$5) ← (byte*) render_init::li#2 -- pptc1_derefidx_vbuaa=pbuz1 + tay + lda li + sta screen_lines,y + lda li+1 + sta screen_lines+1,y + //SEG743 [339] (byte*) render_init::li#1 ← (byte*) render_init::li#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 -- pbuz1=pbuz1_plus_vbuc1 + lda li + clc + adc #$28 + sta li + bcc !+ + inc li+1 + !: + //SEG744 [340] (byte) render_init::i#1 ← ++ (byte) render_init::i#2 -- vbuxx=_inc_vbuxx + inx + //SEG745 [341] if((byte) render_init::i#1!=(const byte) PLAYFIELD_LINES#0+(byte/signed byte/word/signed word/dword/signed dword) 2+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_init::@1 -- vbuxx_neq_vbuc1_then_la1 + cpx #PLAYFIELD_LINES+2+1 + bne b1 + //SEG746 [342] phi from render_init::@1 to render_init::@2 [phi:render_init::@1->render_init::@2] + //SEG747 [342] phi (byte) render_init::l#4 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_init::@1->render_init::@2#0] -- vbuz1=vbuc1 lda #0 sta l - //SEG743 [340] phi (byte*) init::line#4 = (const byte*) COLS#0+(byte/signed byte/word/signed word/dword/signed dword) 14 [phi:init::@6->init::@3#1] -- pbuz1=pbuc1 + //SEG748 [342] phi (byte*) render_init::line#4 = (const byte*) COLS#0+(byte/signed byte/word/signed word/dword/signed dword) 14 [phi:render_init::@1->render_init::@2#1] -- pbuz1=pbuc1 lda #COLS+$e sta line+1 - //SEG744 [340] phi from init::@7 to init::@3 [phi:init::@7->init::@3] - //SEG745 [340] phi (byte) init::l#4 = (byte) init::l#1 [phi:init::@7->init::@3#0] -- register_copy - //SEG746 [340] phi (byte*) init::line#4 = (byte*) init::line#1 [phi:init::@7->init::@3#1] -- register_copy - //SEG747 init::@3 - b3: - //SEG748 [341] phi from init::@3 to init::@4 [phi:init::@3->init::@4] - //SEG749 [341] phi (byte) init::c#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:init::@3->init::@4#0] -- vbuxx=vbuc1 + //SEG749 [342] phi from render_init::@5 to render_init::@2 [phi:render_init::@5->render_init::@2] + //SEG750 [342] phi (byte) render_init::l#4 = (byte) render_init::l#1 [phi:render_init::@5->render_init::@2#0] -- register_copy + //SEG751 [342] phi (byte*) render_init::line#4 = (byte*) render_init::line#1 [phi:render_init::@5->render_init::@2#1] -- register_copy + //SEG752 render_init::@2 + b2: + //SEG753 [343] phi from render_init::@2 to render_init::@3 [phi:render_init::@2->render_init::@3] + //SEG754 [343] phi (byte) render_init::c#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_init::@2->render_init::@3#0] -- vbuxx=vbuc1 ldx #0 - //SEG750 [341] phi from init::@4 to init::@4 [phi:init::@4->init::@4] - //SEG751 [341] phi (byte) init::c#2 = (byte) init::c#1 [phi:init::@4->init::@4#0] -- register_copy - //SEG752 init::@4 - b4: - //SEG753 [342] (byte*~) init::$14 ← (byte*) init::line#4 + (byte) init::c#2 -- pbuz1=pbuz2_plus_vbuxx + //SEG755 [343] phi from render_init::@3 to render_init::@3 [phi:render_init::@3->render_init::@3] + //SEG756 [343] phi (byte) render_init::c#2 = (byte) render_init::c#1 [phi:render_init::@3->render_init::@3#0] -- register_copy + //SEG757 render_init::@3 + b3: + //SEG758 [344] (byte*~) render_init::$10 ← (byte*) render_init::line#4 + (byte) render_init::c#2 -- pbuz1=pbuz2_plus_vbuxx txa clc adc line - sta _14 + sta _10 lda #0 adc line+1 - sta _14+1 - //SEG754 [343] *((byte*~) init::$14) ← (const byte) DARK_GREY#0 -- _deref_pbuz1=vbuc1 + sta _10+1 + //SEG759 [345] *((byte*~) render_init::$10) ← (const byte) DARK_GREY#0 -- _deref_pbuz1=vbuc1 lda #DARK_GREY ldy #0 - sta (_14),y - //SEG755 [344] (byte) init::c#1 ← ++ (byte) init::c#2 -- vbuxx=_inc_vbuxx + sta (_10),y + //SEG760 [346] (byte) render_init::c#1 ← ++ (byte) render_init::c#2 -- vbuxx=_inc_vbuxx inx - //SEG756 [345] if((byte) init::c#1!=(const byte) PLAYFIELD_COLS#0+(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto init::@4 -- vbuxx_neq_vbuc1_then_la1 + //SEG761 [347] if((byte) render_init::c#1!=(const byte) PLAYFIELD_COLS#0+(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_init::@3 -- vbuxx_neq_vbuc1_then_la1 cpx #PLAYFIELD_COLS+1+1 - bne b4 - //SEG757 init::@7 - //SEG758 [346] (byte*) init::line#1 ← (byte*) init::line#4 + (byte/signed byte/word/signed word/dword/signed dword) 40 -- pbuz1=pbuz1_plus_vbuc1 + bne b3 + //SEG762 render_init::@5 + //SEG763 [348] (byte*) render_init::line#1 ← (byte*) render_init::line#4 + (byte/signed byte/word/signed word/dword/signed dword) 40 -- pbuz1=pbuz1_plus_vbuc1 lda line clc adc #$28 @@ -14276,21 +14358,21 @@ init: { bcc !+ inc line+1 !: - //SEG759 [347] (byte) init::l#1 ← ++ (byte) init::l#4 -- vbuz1=_inc_vbuz1 + //SEG764 [349] (byte) render_init::l#1 ← ++ (byte) render_init::l#4 -- vbuz1=_inc_vbuz1 inc l - //SEG760 [348] if((byte) init::l#1!=(const byte) PLAYFIELD_LINES#0+(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto init::@3 -- vbuz1_neq_vbuc1_then_la1 + //SEG765 [350] if((byte) render_init::l#1!=(const byte) PLAYFIELD_LINES#0+(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_init::@2 -- vbuz1_neq_vbuc1_then_la1 lda l cmp #PLAYFIELD_LINES+1+1 - bne b3 - //SEG761 init::@return - //SEG762 [349] return + bne b2 + //SEG766 render_init::@return + //SEG767 [351] return rts } -//SEG763 fill +//SEG768 fill fill: { .label end = $c .label addr = 5 - //SEG764 [351] (byte*) fill::end#0 ← (byte*) fill::addr#0 + (word/signed word/dword/signed dword) 1000 -- pbuz1=pbuz2_plus_vwuc1 + //SEG769 [353] (byte*) fill::end#0 ← (byte*) fill::addr#0 + (word/signed word/dword/signed dword) 1000 -- pbuz1=pbuz2_plus_vwuc1 lda addr clc adc #<$3e8 @@ -14298,42 +14380,42 @@ fill: { lda addr+1 adc #>$3e8 sta end+1 - //SEG765 [352] phi from fill fill::@1 to fill::@1 [phi:fill/fill::@1->fill::@1] - //SEG766 [352] phi (byte*) fill::addr#2 = (byte*) fill::addr#0 [phi:fill/fill::@1->fill::@1#0] -- register_copy - //SEG767 fill::@1 + //SEG770 [354] phi from fill fill::@1 to fill::@1 [phi:fill/fill::@1->fill::@1] + //SEG771 [354] phi (byte*) fill::addr#2 = (byte*) fill::addr#0 [phi:fill/fill::@1->fill::@1#0] -- register_copy + //SEG772 fill::@1 b1: - //SEG768 [353] *((byte*) fill::addr#2) ← (byte) fill::val#3 -- _deref_pbuz1=vbuxx + //SEG773 [355] *((byte*) fill::addr#2) ← (byte) fill::val#3 -- _deref_pbuz1=vbuxx txa ldy #0 sta (addr),y - //SEG769 [354] (byte*) fill::addr#1 ← ++ (byte*) fill::addr#2 -- pbuz1=_inc_pbuz1 + //SEG774 [356] (byte*) fill::addr#1 ← ++ (byte*) fill::addr#2 -- pbuz1=_inc_pbuz1 inc addr bne !+ inc addr+1 !: - //SEG770 [355] if((byte*) fill::addr#1!=(byte*) fill::end#0) goto fill::@1 -- pbuz1_neq_pbuz2_then_la1 + //SEG775 [357] if((byte*) fill::addr#1!=(byte*) fill::end#0) goto fill::@1 -- pbuz1_neq_pbuz2_then_la1 lda addr+1 cmp end+1 bne b1 lda addr cmp end bne b1 - //SEG771 fill::@return - //SEG772 [356] return + //SEG776 fill::@return + //SEG777 [358] return rts } -//SEG773 sid_rnd_init +//SEG778 sid_rnd_init sid_rnd_init: { - //SEG774 [357] *((const word*) SID_VOICE3_FREQ#0) ← (word/dword/signed dword) 65535 -- _deref_pwuc1=vwuc2 + //SEG779 [359] *((const word*) SID_VOICE3_FREQ#0) ← (word/dword/signed dword) 65535 -- _deref_pwuc1=vwuc2 lda #<$ffff sta SID_VOICE3_FREQ lda #>$ffff sta SID_VOICE3_FREQ+1 - //SEG775 [358] *((const byte*) SID_VOICE3_CONTROL#0) ← (const byte) SID_CONTROL_NOISE#0 -- _deref_pbuc1=vbuc2 + //SEG780 [360] *((const byte*) SID_VOICE3_CONTROL#0) ← (const byte) SID_CONTROL_NOISE#0 -- _deref_pbuc1=vbuc2 lda #SID_CONTROL_NOISE sta SID_VOICE3_CONTROL - //SEG776 sid_rnd_init::@return - //SEG777 [359] return + //SEG781 sid_rnd_init::@return + //SEG782 [361] return rts } keyboard_matrix_row_bitmask: .byte $fe, $fd, $fb, $f7, $ef, $df, $bf, $7f diff --git a/src/test/ref/examples/tetris/tetris.sym b/src/test/ref/examples/tetris/tetris.sym index 1f4c3dad6..3d686a78a 100644 --- a/src/test/ref/examples/tetris/tetris.sym +++ b/src/test/ref/examples/tetris/tetris.sym @@ -1,4 +1,4 @@ -(label) @26 +(label) @27 (label) @begin (label) @end (byte) BLACK @@ -148,7 +148,7 @@ (byte) collision::ypos2#2 ypos2 zp ZP_BYTE:8 87.06666666666668 (byte) current_movedown_counter (byte) current_movedown_counter#10 current_movedown_counter zp ZP_BYTE:3 0.5333333333333333 -(byte) current_movedown_counter#12 current_movedown_counter zp ZP_BYTE:3 0.5 +(byte) current_movedown_counter#12 current_movedown_counter zp ZP_BYTE:3 0.52 (byte) current_movedown_counter#15 current_movedown_counter zp ZP_BYTE:3 1.3 (byte) current_movedown_fast (const byte) current_movedown_fast#0 current_movedown_fast = (byte/signed byte/word/signed word/dword/signed dword) 5 @@ -157,54 +157,54 @@ (byte) current_orientation (byte) current_orientation#15 current_orientation zp ZP_BYTE:14 0.5 (byte) current_orientation#18 current_orientation zp ZP_BYTE:14 0.32653061224489793 -(byte) current_orientation#23 current_orientation zp ZP_BYTE:14 1.0625 +(byte) current_orientation#23 current_orientation zp ZP_BYTE:14 1.1333333333333333 (byte) current_orientation#33 current_orientation zp ZP_BYTE:14 4.0 (byte) current_orientation#8 current_orientation zp ZP_BYTE:14 3.0 (byte*) current_piece (byte*) current_piece#11 current_piece zp ZP_WORD:12 0.5588235294117647 -(byte*) current_piece#13 current_piece zp ZP_WORD:12 0.3432835820895522 +(byte*) current_piece#13 current_piece zp ZP_WORD:12 0.3484848484848484 (byte*) current_piece#15 current_piece#15 zp ZP_WORD:5 10.0 (byte*) current_piece#23 current_piece zp ZP_WORD:12 6.0 -(byte*~) current_piece#69 current_piece zp ZP_WORD:12 4.0 -(byte*~) current_piece#70 current_piece#70 zp ZP_WORD:5 4.0 +(byte*~) current_piece#70 current_piece zp ZP_WORD:12 4.0 (byte*~) current_piece#71 current_piece#71 zp ZP_WORD:5 4.0 (byte*~) current_piece#72 current_piece#72 zp ZP_WORD:5 4.0 (byte*~) current_piece#73 current_piece#73 zp ZP_WORD:5 4.0 -(byte*~) current_piece#74 current_piece zp ZP_WORD:12 4.0 +(byte*~) current_piece#74 current_piece#74 zp ZP_WORD:5 4.0 +(byte*~) current_piece#75 current_piece zp ZP_WORD:12 4.0 (byte) current_piece_color (byte) current_piece_color#11 current_piece_color zp ZP_BYTE:18 19.96078431372549 -(byte) current_piece_color#13 current_piece_color zp ZP_BYTE:18 1.0 +(byte) current_piece_color#13 current_piece_color zp ZP_BYTE:18 1.04 (byte) current_piece_color#15 current_piece_color zp ZP_BYTE:18 0.7272727272727273 (byte) current_piece_color#23 current_piece_color zp ZP_BYTE:18 6.0 -(byte) current_piece_color#65 current_piece_color#65 zp ZP_BYTE:7 53.368421052631575 -(byte~) current_piece_color#73 current_piece_color#73 zp ZP_BYTE:7 4.0 -(byte~) current_piece_color#74 current_piece_color#74 zp ZP_BYTE:7 22.0 +(byte) current_piece_color#66 current_piece_color#66 zp ZP_BYTE:7 53.368421052631575 +(byte~) current_piece_color#74 current_piece_color#74 zp ZP_BYTE:7 4.0 +(byte~) current_piece_color#75 current_piece_color#75 zp ZP_BYTE:7 22.0 (byte*) current_piece_gfx (byte*) current_piece_gfx#10 current_piece_gfx zp ZP_WORD:15 0.6666666666666666 (byte*) current_piece_gfx#15 current_piece_gfx zp ZP_WORD:15 19.96078431372549 (byte*) current_piece_gfx#17 current_piece_gfx zp ZP_WORD:15 0.2962962962962963 -(byte*) current_piece_gfx#18 current_piece_gfx zp ZP_WORD:15 1.75 +(byte*) current_piece_gfx#18 current_piece_gfx zp ZP_WORD:15 1.8666666666666665 (byte*) current_piece_gfx#29 current_piece_gfx zp ZP_WORD:15 6.0 (byte*) current_piece_gfx#63 current_piece_gfx#63 zp ZP_WORD:5 53.368421052631575 (byte*) current_piece_gfx#8 current_piece_gfx zp ZP_WORD:15 4.0 -(byte*~) current_piece_gfx#85 current_piece_gfx#85 zp ZP_WORD:5 2.0 -(byte*~) current_piece_gfx#86 current_piece_gfx#86 zp ZP_WORD:5 11.0 +(byte*~) current_piece_gfx#86 current_piece_gfx#86 zp ZP_WORD:5 2.0 +(byte*~) current_piece_gfx#87 current_piece_gfx#87 zp ZP_WORD:5 11.0 (byte) current_xpos (byte) current_xpos#16 current_xpos zp ZP_BYTE:17 2.313725490196078 (byte) current_xpos#19 current_xpos zp ZP_BYTE:17 0.72 -(byte) current_xpos#23 current_xpos zp ZP_BYTE:17 0.8500000000000003 +(byte) current_xpos#23 current_xpos zp ZP_BYTE:17 0.871794871794872 (byte) current_xpos#36 current_xpos zp ZP_BYTE:17 4.0 (byte) current_xpos#63 current_xpos#63 zp ZP_BYTE:4 5.894736842105264 (byte) current_xpos#7 current_xpos zp ZP_BYTE:17 4.0 (byte) current_xpos#9 current_xpos zp ZP_BYTE:17 4.0 -(byte~) current_xpos#94 current_xpos#94 zp ZP_BYTE:4 7.333333333333333 +(byte~) current_xpos#95 current_xpos#95 zp ZP_BYTE:4 7.333333333333333 (byte) current_ypos (byte) current_ypos#12 current_ypos zp ZP_BYTE:2 0.5588235294117647 -(byte) current_ypos#16 current_ypos zp ZP_BYTE:2 0.47761194029850734 +(byte) current_ypos#16 current_ypos zp ZP_BYTE:2 0.48484848484848475 (byte) current_ypos#22 reg byte x 13.0 (byte) current_ypos#31 current_ypos zp ZP_BYTE:2 4.0 (byte) current_ypos#4 current_ypos zp ZP_BYTE:2 4.0 -(byte~) current_ypos#69 reg byte x 5.5 +(byte~) current_ypos#70 reg byte x 5.5 (void()) fill((byte*) fill::start , (word) fill::size , (byte) fill::val) (label) fill::@1 (label) fill::@return @@ -246,42 +246,6 @@ (byte) find_line::y (byte) find_line::y#1 y zp ZP_BYTE:7 1001.0 (byte) find_line::y#8 y zp ZP_BYTE:7 300.29999999999995 -(void()) init() -(byte*~) init::$14 $14 zp ZP_WORD:12 202.0 -(byte~) init::$5 reg byte a 22.0 -(byte~) init::$8 reg byte a 22.0 -(label) init::@1 -(label) init::@2 -(label) init::@3 -(label) init::@4 -(label) init::@6 -(label) init::@7 -(label) init::@9 -(label) init::@return -(byte) init::c -(byte) init::c#1 reg byte x 151.5 -(byte) init::c#2 reg byte x 101.0 -(byte) init::i -(byte) init::i#1 reg byte x 16.5 -(byte) init::i#2 reg byte x 8.25 -(byte) init::idx -(byte) init::idx#1 idx zp ZP_BYTE:2 7.333333333333333 -(byte) init::idx#2 idx zp ZP_BYTE:2 6.6000000000000005 -(byte) init::j -(byte) init::j#1 reg byte x 16.5 -(byte) init::j#2 reg byte x 7.333333333333333 -(byte) init::l -(byte) init::l#1 l zp ZP_BYTE:2 16.5 -(byte) init::l#4 l zp ZP_BYTE:2 3.142857142857143 -(byte*) init::li -(byte*) init::li#1 li zp ZP_WORD:5 7.333333333333333 -(byte*) init::li#2 li zp ZP_WORD:5 11.0 -(byte*) init::line -(byte*) init::line#1 line zp ZP_WORD:5 7.333333333333333 -(byte*) init::line#4 line zp ZP_WORD:5 20.499999999999996 -(byte*) init::pli -(byte*) init::pli#1 pli zp ZP_WORD:5 5.5 -(byte*) init::pli#2 pli zp ZP_WORD:5 8.25 (byte()) keyboard_event_get() (label) keyboard_event_get::@3 (label) keyboard_event_get::@return @@ -358,7 +322,7 @@ (byte) keyboard_events_size#1 keyboard_events_size zp ZP_BYTE:19 2002.0 (byte) keyboard_events_size#10 keyboard_events_size zp ZP_BYTE:19 810.9000000000001 (byte) keyboard_events_size#13 keyboard_events_size zp ZP_BYTE:19 9.967741935483872 -(byte) keyboard_events_size#16 keyboard_events_size zp ZP_BYTE:19 0.49999999999999994 +(byte) keyboard_events_size#16 keyboard_events_size zp ZP_BYTE:19 0.5172413793103449 (byte) keyboard_events_size#19 keyboard_events_size zp ZP_BYTE:19 2.6 (byte) keyboard_events_size#2 keyboard_events_size zp ZP_BYTE:19 2002.0 (byte) keyboard_events_size#29 keyboard_events_size zp ZP_BYTE:19 43.57142857142858 @@ -413,7 +377,7 @@ (void()) main() (byte~) main::$10 reg byte a 22.0 (byte~) main::$11 reg byte a 22.0 -(byte~) main::$9 reg byte a 22.0 +(byte~) main::$12 reg byte a 22.0 (label) main::@1 (label) main::@10 (label) main::@19 @@ -421,7 +385,7 @@ (label) main::@22 (label) main::@23 (label) main::@24 -(label) main::@26 +(label) main::@25 (label) main::@27 (label) main::@28 (label) main::@29 @@ -576,6 +540,30 @@ (byte) render_current::ypos2#0 ypos2 zp ZP_BYTE:8 4.0 (byte) render_current::ypos2#1 ypos2 zp ZP_BYTE:8 67.33333333333333 (byte) render_current::ypos2#2 ypos2 zp ZP_BYTE:8 29.000000000000004 +(void()) render_init() +(byte*~) render_init::$10 $10 zp ZP_WORD:12 202.0 +(byte~) render_init::$5 reg byte a 22.0 +(label) render_init::@1 +(label) render_init::@2 +(label) render_init::@3 +(label) render_init::@5 +(label) render_init::@7 +(label) render_init::@return +(byte) render_init::c +(byte) render_init::c#1 reg byte x 151.5 +(byte) render_init::c#2 reg byte x 101.0 +(byte) render_init::i +(byte) render_init::i#1 reg byte x 16.5 +(byte) render_init::i#2 reg byte x 8.25 +(byte) render_init::l +(byte) render_init::l#1 l zp ZP_BYTE:2 16.5 +(byte) render_init::l#4 l zp ZP_BYTE:2 3.142857142857143 +(byte*) render_init::li +(byte*) render_init::li#1 li zp ZP_WORD:5 7.333333333333333 +(byte*) render_init::li#2 li zp ZP_WORD:5 11.0 +(byte*) render_init::line +(byte*) render_init::line#1 line zp ZP_WORD:5 7.333333333333333 +(byte*) render_init::line#4 line zp ZP_WORD:5 20.499999999999996 (void()) render_playfield() (byte~) render_playfield::$1 reg byte a 202.0 (label) render_playfield::@1 @@ -615,14 +603,28 @@ (label) spawn_current::@return (byte) spawn_current::piece_idx (byte) spawn_current::piece_idx#1 reg byte x 202.0 -(byte) spawn_current::piece_idx#2 reg byte x 41.199999999999996 +(byte) spawn_current::piece_idx#2 reg byte x 51.5 +(void()) tables_init() +(byte~) tables_init::$1 reg byte a 22.0 +(label) tables_init::@1 +(label) tables_init::@2 +(label) tables_init::@return +(byte) tables_init::idx +(byte) tables_init::idx#1 idx zp ZP_BYTE:2 7.333333333333333 +(byte) tables_init::idx#2 idx zp ZP_BYTE:2 6.6000000000000005 +(byte) tables_init::j +(byte) tables_init::j#1 reg byte x 16.5 +(byte) tables_init::j#2 reg byte x 7.333333333333333 +(byte*) tables_init::pli +(byte*) tables_init::pli#1 pli zp ZP_WORD:5 5.5 +(byte*) tables_init::pli#2 pli zp ZP_WORD:5 8.25 -zp ZP_BYTE:2 [ current_ypos#12 current_ypos#16 current_ypos#31 current_ypos#4 lock_current::ypos2#2 lock_current::ypos2#0 lock_current::ypos2#1 remove_lines::done#3 remove_lines::done#2 init::idx#2 init::idx#1 init::l#4 init::l#1 spawn_current::$3 ] +zp ZP_BYTE:2 [ current_ypos#12 current_ypos#16 current_ypos#31 current_ypos#4 lock_current::ypos2#2 lock_current::ypos2#0 lock_current::ypos2#1 remove_lines::done#3 remove_lines::done#2 tables_init::idx#2 tables_init::idx#1 render_init::l#4 render_init::l#1 spawn_current::$3 ] zp ZP_BYTE:3 [ current_movedown_counter#15 current_movedown_counter#12 current_movedown_counter#10 remove_line::y#4 remove_line::ypos#0 remove_line::y#1 find_line::i#2 find_line::i#3 find_line::i#8 find_line::i#10 lock_current::l#6 lock_current::l#1 ] -reg byte x [ current_ypos#22 current_ypos#69 ] -zp ZP_BYTE:4 [ current_xpos#63 current_xpos#94 render_playfield::l#2 render_playfield::l#1 play_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#2 remove_line::x#2 remove_line::x#1 find_line::filled#4 find_line::filled#2 lock_current::i#2 lock_current::i#3 lock_current::i#7 lock_current::i#9 keyboard_event_pressed::keycode#5 keyboard_event_scan::row#2 keyboard_event_scan::row#1 ] -zp ZP_WORD:5 [ current_piece_gfx#63 current_piece_gfx#85 current_piece_gfx#86 render_playfield::line#2 render_playfield::line#0 render_playfield::line#1 current_piece#15 current_piece#70 current_piece#71 current_piece#72 current_piece#73 collision::piece_gfx#0 init::li#2 init::li#1 init::pli#2 init::pli#1 init::line#4 init::line#1 fill::addr#2 fill::addr#0 fill::addr#1 lock_current::playfield_line#0 ] -zp ZP_BYTE:7 [ current_piece_color#65 current_piece_color#73 current_piece_color#74 render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 collision::xpos#5 collision::xpos#0 collision::xpos#1 collision::xpos#2 collision::xpos#3 find_line::return#2 find_line::y#8 find_line::y#1 lock_current::col#2 lock_current::col#0 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#22 current_ypos#70 ] +zp ZP_BYTE:4 [ current_xpos#63 current_xpos#95 render_playfield::l#2 render_playfield::l#1 play_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#2 remove_line::x#2 remove_line::x#1 find_line::filled#4 find_line::filled#2 lock_current::i#2 lock_current::i#3 lock_current::i#7 lock_current::i#9 keyboard_event_pressed::keycode#5 keyboard_event_scan::row#2 keyboard_event_scan::row#1 ] +zp ZP_WORD:5 [ current_piece_gfx#63 current_piece_gfx#86 current_piece_gfx#87 render_playfield::line#2 render_playfield::line#0 render_playfield::line#1 current_piece#15 current_piece#71 current_piece#72 current_piece#73 current_piece#74 collision::piece_gfx#0 tables_init::pli#2 tables_init::pli#1 render_init::li#2 render_init::li#1 render_init::line#4 render_init::line#1 fill::addr#2 fill::addr#0 fill::addr#1 lock_current::playfield_line#0 ] +zp ZP_BYTE:7 [ current_piece_color#66 current_piece_color#74 current_piece_color#75 render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 collision::xpos#5 collision::xpos#0 collision::xpos#1 collision::xpos#2 collision::xpos#3 find_line::return#2 find_line::y#8 find_line::y#1 lock_current::col#2 lock_current::col#0 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:8 [ render_current::ypos2#2 render_current::ypos2#0 render_current::ypos2#1 collision::ypos2#2 collision::ypos2#0 collision::ypos2#1 find_line::i#1 lock_current::i#1 keyboard_event_scan::row_scan#0 ] zp ZP_BYTE:9 [ render_current::l#3 render_current::l#1 collision::l#6 collision::l#1 ] zp ZP_BYTE:10 [ render_current::i#2 render_current::i#1 render_current::i#4 render_current::i#8 collision::i#2 collision::i#3 collision::i#11 collision::i#13 ] @@ -636,7 +638,7 @@ reg byte x [ collision::c#2 collision::c#1 ] reg byte a [ collision::return#14 ] reg byte a [ play_move_leftright::return#2 ] 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_WORD:12 [ current_piece#23 current_piece#74 current_piece#11 current_piece#13 current_piece#69 init::$14 fill::end#0 ] +zp ZP_WORD:12 [ current_piece#23 current_piece#75 current_piece#11 current_piece#13 current_piece#70 render_init::$10 fill::end#0 ] zp ZP_BYTE:14 [ current_orientation#33 current_orientation#15 current_orientation#23 current_orientation#8 current_orientation#18 ] zp ZP_WORD:15 [ current_piece_gfx#29 current_piece_gfx#15 current_piece_gfx#18 current_piece_gfx#10 current_piece_gfx#8 current_piece_gfx#17 ] zp ZP_BYTE:17 [ current_xpos#36 current_xpos#16 current_xpos#23 current_xpos#9 current_xpos#19 current_xpos#7 ] @@ -650,22 +652,22 @@ reg byte x [ lock_current::c#2 lock_current::c#1 ] reg byte a [ keyboard_event_get::return#2 keyboard_event_get::return#1 ] reg byte x [ keyboard_event_scan::col#2 keyboard_event_scan::col#1 ] 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 ] -reg byte x [ init::i#2 init::i#1 ] -reg byte x [ init::j#2 init::j#1 ] -reg byte x [ init::c#2 init::c#1 ] +reg byte x [ tables_init::j#2 tables_init::j#1 ] +reg byte x [ render_init::i#2 render_init::i#1 ] +reg byte x [ render_init::c#2 render_init::c#1 ] reg byte x [ fill::val#3 ] reg byte a [ keyboard_event_get::return#3 ] zp ZP_BYTE:20 [ main::key_event#0 ] reg byte a [ play_move_down::key_event#0 ] reg byte a [ play_move_down::return#0 ] -reg byte a [ main::$9 ] +reg byte a [ main::$10 ] zp ZP_BYTE:21 [ main::render#1 main::render#2 ] reg byte a [ play_move_leftright::key_event#0 ] reg byte a [ play_move_leftright::return#0 ] -reg byte a [ main::$10 ] +reg byte a [ main::$11 ] reg byte a [ play_move_rotate::key_event#0 ] reg byte a [ play_move_rotate::return#0 ] -reg byte a [ main::$11 ] +reg byte a [ main::$12 ] reg byte a [ main::render#3 ] zp ZP_WORD:22 [ render_current::screen_line#0 collision::playfield_line#0 ] reg byte a [ render_current::current_cell#0 ] @@ -708,5 +710,5 @@ reg byte a [ keyboard_event_scan::$4 ] reg byte a [ keyboard_event_scan::event_type#0 ] reg byte a [ keyboard_event_scan::$11 ] reg byte a [ keyboard_matrix_read::return#0 ] -reg byte a [ init::$5 ] -reg byte a [ init::$8 ] +reg byte a [ tables_init::$1 ] +reg byte a [ render_init::$5 ]