diff --git a/src/test/kc/complex/tetris/tetris-data.kc b/src/test/kc/complex/tetris/tetris-data.kc index 35313fbb1..02df67f2e 100644 --- a/src/test/kc/complex/tetris/tetris-data.kc +++ b/src/test/kc/complex/tetris/tetris-data.kc @@ -9,10 +9,6 @@ const char* PLAYFIELD_SCREEN_2 = 0x2c00; const char* PLAYFIELD_SPRITE_PTRS_1 = (PLAYFIELD_SCREEN_1+SPRITE_PTRS); // Screen Sprite pointers on screen 2 const char* PLAYFIELD_SPRITE_PTRS_2 = (PLAYFIELD_SCREEN_2+SPRITE_PTRS); -// Address of the original playscreen chars -const char* PLAYFIELD_SCREEN_ORIGINAL = 0x3000; -// Address of the original playscreen colors -const char* PLAYFIELD_COLORS_ORIGINAL = 0x1c00; // Address of the sprites covering the playfield const char* PLAYFIELD_SPRITES = 0x2000; // Address of the charset diff --git a/src/test/kc/complex/tetris/tetris-render.kc b/src/test/kc/complex/tetris/tetris-render.kc index 7a6f2241f..f6873137d 100644 --- a/src/test/kc/complex/tetris/tetris-render.kc +++ b/src/test/kc/complex/tetris/tetris-render.kc @@ -10,8 +10,9 @@ kickasm(pc PLAYFIELD_CHARSET, resource "playfield-screen.imap") {{ .import binary "playfield-screen.imap" }} +// Address of the original playscreen chars const char PLAYFIELD_SCREEN_ORIGINAL_WIDTH=32; -kickasm(pc PLAYFIELD_SCREEN_ORIGINAL, resource "playfield-screen.iscr", resource "playfield-extended.col" ) {{ +const char[] PLAYFIELD_SCREEN_ORIGINAL = kickasm(resource "playfield-screen.iscr", resource "playfield-extended.col" ) {{ // Load chars for the screen .var screen = LoadBinary("playfield-screen.iscr") // Load extended colors for the screen @@ -20,12 +21,12 @@ kickasm(pc PLAYFIELD_SCREEN_ORIGINAL, resource "playfield-screen.iscr", resource // extended.get(i)-1 because the extended colors are 1-based (1/2/3/4) // <<6 to move extended colors to the upper 2 bits .fill screen.getSize(), ( (screen.get(i)+1) | (extended.get(i)-1)<<6 ) -}} +}}; // Original Color Data -kickasm(pc PLAYFIELD_COLORS_ORIGINAL, resource "playfield-screen.col") {{ +const char[] PLAYFIELD_COLORS_ORIGINAL = kickasm(resource "playfield-screen.col") {{ .import binary "playfield-screen.col" -}} +}}; // The color #1 to use for the pieces for each level char[] PIECES_COLORS_1 = { @@ -194,7 +195,6 @@ void render_moving() { // Render the next tetromino in the "next" area void render_next() { - // Find the screen area unsigned int next_area_offset = 40*12 + 24 + 4; char* screen_next_area; diff --git a/src/test/ref/complex/tetris/tetris.asm b/src/test/ref/complex/tetris/tetris.asm index 438146013..aca025881 100644 --- a/src/test/ref/complex/tetris/tetris.asm +++ b/src/test/ref/complex/tetris/tetris.asm @@ -90,10 +90,6 @@ .label PLAYFIELD_SPRITE_PTRS_1 = PLAYFIELD_SCREEN_1+SPRITE_PTRS // Screen Sprite pointers on screen 2 .label PLAYFIELD_SPRITE_PTRS_2 = PLAYFIELD_SCREEN_2+SPRITE_PTRS - // Address of the original playscreen chars - .label PLAYFIELD_SCREEN_ORIGINAL = $3000 - // Address of the original playscreen colors - .label PLAYFIELD_COLORS_ORIGINAL = $1c00 // Address of the sprites covering the playfield .label PLAYFIELD_SPRITES = $2000 // Address of the charset @@ -181,7 +177,6 @@ __b1: lda #>0>>$10 sta.z score_bcd+3 // kickasm -// Original Color Data // irq_raster_next = IRQ_RASTER_FIRST // The raster line of the next IRQ lda #IRQ_RASTER_FIRST @@ -2081,6 +2076,20 @@ sprites_irq: { // The initial X/Y for each piece PIECES_START_X: .byte 4, 4, 4, 4, 4, 4, 4 PIECES_START_Y: .byte 1, 1, 1, 1, 1, 0, 1 +PLAYFIELD_SCREEN_ORIGINAL: +// Load chars for the screen + .var screen = LoadBinary("playfield-screen.iscr") + // Load extended colors for the screen + .var extended = LoadBinary("playfield-extended.col") + // screen.get(i)+1 because the charset is loaded into PLAYFIELD_CHARSET+8 + // extended.get(i)-1 because the extended colors are 1-based (1/2/3/4) + // <<6 to move extended colors to the upper 2 bits + .fill screen.getSize(), ( (screen.get(i)+1) | (extended.get(i)-1)<<6 ) + + // Original Color Data +PLAYFIELD_COLORS_ORIGINAL: +.import binary "playfield-screen.col" + // The color #1 to use for the pieces for each level PIECES_COLORS_1: .byte BLUE, GREEN, PURPLE, BLUE, RED, LIGHT_GREEN, RED, BLUE, LIGHT_BLUE, RED, BLUE, GREEN, PURPLE, BLUE, RED, LIGHT_GREEN, RED, BLUE, LIGHT_BLUE, RED, BLUE, GREEN, PURPLE, BLUE, RED, LIGHT_GREEN, RED, BLUE, LIGHT_BLUE, RED // The color #2 to use for the pieces for each level @@ -2108,19 +2117,6 @@ sprites_irq: { .fill 8,$00 // Place a filled char at the start of the charset .import binary "playfield-screen.imap" -.pc = PLAYFIELD_SCREEN_ORIGINAL "PLAYFIELD_SCREEN_ORIGINAL" - // Load chars for the screen - .var screen = LoadBinary("playfield-screen.iscr") - // Load extended colors for the screen - .var extended = LoadBinary("playfield-extended.col") - // screen.get(i)+1 because the charset is loaded into PLAYFIELD_CHARSET+8 - // extended.get(i)-1 because the extended colors are 1-based (1/2/3/4) - // <<6 to move extended colors to the upper 2 bits - .fill screen.getSize(), ( (screen.get(i)+1) | (extended.get(i)-1)<<6 ) - -.pc = PLAYFIELD_COLORS_ORIGINAL "PLAYFIELD_COLORS_ORIGINAL" - .import binary "playfield-screen.col" - .pc = PLAYFIELD_SPRITES "PLAYFIELD_SPRITES" .var sprites = LoadPicture("playfield-sprites.png", List().add($010101, $000000)) // Put the sprites into memory diff --git a/src/test/ref/complex/tetris/tetris.cfg b/src/test/ref/complex/tetris/tetris.cfg index 0cb664c19..8c3be748e 100644 --- a/src/test/ref/complex/tetris/tetris.cfg +++ b/src/test/ref/complex/tetris/tetris.cfg @@ -6,17 +6,6 @@ [2] (dword) score_bcd ← (dword) 0 kickasm(location (const byte*) PLAYFIELD_CHARSET) {{ .fill 8,$00 // Place a filled char at the start of the charset .import binary "playfield-screen.imap" - }} - kickasm(location (const byte*) PLAYFIELD_SCREEN_ORIGINAL) {{ // Load chars for the screen - .var screen = LoadBinary("playfield-screen.iscr") - // Load extended colors for the screen - .var extended = LoadBinary("playfield-extended.col") - // screen.get(i)+1 because the charset is loaded into PLAYFIELD_CHARSET+8 - // extended.get(i)-1 because the extended colors are 1-based (1/2/3/4) - // <<6 to move extended colors to the upper 2 bits - .fill screen.getSize(), ( (screen.get(i)+1) | (extended.get(i)-1)<<6 ) - }} - kickasm(location (const byte*) PLAYFIELD_COLORS_ORIGINAL) {{ .import binary "playfield-screen.col" }} to:@2 @2: scope:[] from @1 @@ -37,1236 +26,1236 @@ }} to:@3 @3: scope:[] from @2 - [7] (byte) irq_raster_next ← (const byte) IRQ_RASTER_FIRST - [8] (byte) irq_sprite_ypos ← (const byte) SPRITES_FIRST_YPOS+(byte) $15 + [5] (byte) irq_raster_next ← (const byte) IRQ_RASTER_FIRST + [6] (byte) irq_sprite_ypos ← (const byte) SPRITES_FIRST_YPOS+(byte) $15 to:toSpritePtr1 toSpritePtr1: scope:[] from @3 - [9] phi() + [7] phi() to:@5 @5: scope:[] from toSpritePtr1 - [10] (byte) irq_sprite_ptr ← (const byte) toSpritePtr1_return#0+(byte) 3 - [11] (byte) irq_cnt ← (byte) 0 + [8] (byte) irq_sprite_ptr ← (const byte) toSpritePtr1_return#0+(byte) 3 + [9] (byte) irq_cnt ← (byte) 0 to:@4 @4: scope:[] from @5 - [12] phi() - [13] call main + [10] phi() + [11] call main to:@end @end: scope:[] from @4 - [14] phi() + [12] phi() (void()) main() main: scope:[main] from @4 - [15] phi() - [16] call sid_rnd_init + [13] phi() + [14] call sid_rnd_init to:main::@8 main::@8: scope:[main] from main asm { sei } - [18] call render_init + [16] call render_init to:main::@9 main::@9: scope:[main] from main::@8 - [19] phi() - [20] call sprites_init + [17] phi() + [18] call sprites_init to:main::@10 main::@10: scope:[main] from main::@9 - [21] phi() - [22] call sprites_irq_init + [19] phi() + [20] call sprites_irq_init to:main::@11 main::@11: scope:[main] from main::@10 - [23] phi() - [24] call play_init + [21] phi() + [22] call play_init to:main::@12 main::@12: scope:[main] from main::@11 - [25] phi() - [26] call play_spawn_current + [23] phi() + [24] call play_spawn_current to:main::@13 main::@13: scope:[main] from main::@12 - [27] phi() - [28] call play_spawn_current + [25] phi() + [26] call play_spawn_current to:main::@14 main::@14: scope:[main] from main::@13 - [29] phi() - [30] call render_playfield + [27] phi() + [28] call render_playfield to:main::@15 main::@15: scope:[main] from main::@14 - [31] (byte) current_ypos#97 ← (byte) current_ypos#6 - [32] (byte) current_xpos#118 ← (byte) current_xpos#100 - [33] (byte*) current_piece_gfx#111 ← (byte*)*((const word*) PIECES + (byte~) play_spawn_current::$7) - [34] (byte) current_piece_char#99 ← (byte) current_piece_char#5 - [35] call render_moving + [29] (byte) current_ypos#97 ← (byte) current_ypos#6 + [30] (byte) current_xpos#118 ← (byte) current_xpos#100 + [31] (byte*) current_piece_gfx#111 ← (byte*)*((const word*) PIECES + (byte~) play_spawn_current::$7) + [32] (byte) current_piece_char#99 ← (byte) current_piece_char#5 + [33] call render_moving to:main::@16 main::@16: scope:[main] from main::@15 - [36] (byte) next_piece_idx#76 ← (byte) play_spawn_current::piece_idx#2 - [37] call render_next + [34] (byte) next_piece_idx#76 ← (byte) play_spawn_current::piece_idx#2 + [35] call render_next to:main::@17 main::@17: scope:[main] from main::@16 - [38] (byte*) current_piece#101 ← (byte*)*((const word*) PIECES + (byte~) play_spawn_current::$7) - [39] (byte*) current_piece_gfx#123 ← (byte*)*((const word*) PIECES + (byte~) play_spawn_current::$7) + [36] (byte*) current_piece#101 ← (byte*)*((const word*) PIECES + (byte~) play_spawn_current::$7) + [37] (byte*) current_piece_gfx#123 ← (byte*)*((const word*) PIECES + (byte~) play_spawn_current::$7) to:main::@1 main::@1: scope:[main] from main::@17 main::@25 main::@6 - [40] (byte) level_bcd#11 ← phi( main::@6/(byte) level_bcd#17 main::@17/(byte) 0 main::@25/(byte) level_bcd#17 ) - [40] (byte) level#10 ← phi( main::@6/(byte) level#17 main::@17/(byte) 0 main::@25/(byte) level#17 ) - [40] (word) lines_bcd#19 ← phi( main::@6/(word) lines_bcd#15 main::@17/(word) 0 main::@25/(word) lines_bcd#15 ) - [40] (byte) current_movedown_counter#16 ← phi( main::@6/(byte) current_movedown_counter#14 main::@17/(byte) 0 main::@25/(byte) current_movedown_counter#14 ) - [40] (byte) keyboard_events_size#19 ← phi( main::@6/(byte) keyboard_events_size#16 main::@17/(byte) 0 main::@25/(byte) keyboard_events_size#16 ) - [40] (byte) next_piece_idx#10 ← phi( main::@6/(byte) next_piece_idx#16 main::@17/(byte) play_spawn_current::piece_idx#2 main::@25/(byte) next_piece_idx#16 ) - [40] (byte) game_over#10 ← phi( main::@6/(byte) game_over#15 main::@17/(byte) game_over#52 main::@25/(byte) game_over#15 ) - [40] (byte) current_ypos#11 ← phi( main::@6/(byte) current_ypos#19 main::@17/(byte) current_ypos#6 main::@25/(byte) current_ypos#19 ) - [40] (byte) current_xpos#14 ← phi( main::@6/(byte) current_xpos#19 main::@17/(byte) current_xpos#100 main::@25/(byte) current_xpos#19 ) - [40] (byte*) current_piece_gfx#13 ← phi( main::@6/(byte*) current_piece_gfx#18 main::@17/(byte*) current_piece_gfx#123 main::@25/(byte*) current_piece_gfx#18 ) - [40] (byte) current_orientation#13 ← phi( main::@6/(byte) current_orientation#17 main::@17/(byte) 0 main::@25/(byte) current_orientation#17 ) - [40] (byte) current_piece_char#10 ← phi( main::@6/(byte) current_piece_char#16 main::@17/(byte) current_piece_char#5 main::@25/(byte) current_piece_char#16 ) - [40] (byte*) current_piece#10 ← phi( main::@6/(byte*) current_piece#15 main::@17/(byte*) current_piece#101 main::@25/(byte*) current_piece#15 ) - [40] (byte) current_movedown_slow#14 ← phi( main::@6/(byte) current_movedown_slow#21 main::@17/(byte) current_movedown_slow#1 main::@25/(byte) current_movedown_slow#21 ) - [40] (byte) render_screen_render#18 ← phi( main::@6/(byte) render_screen_render#18 main::@17/(byte) $20 main::@25/(byte) render_screen_render#11 ) - [40] (byte) render_screen_show#16 ← phi( main::@6/(byte) render_screen_show#16 main::@17/(byte) 0 main::@25/(byte) render_screen_show#13 ) + [38] (byte) level_bcd#11 ← phi( main::@6/(byte) level_bcd#17 main::@17/(byte) 0 main::@25/(byte) level_bcd#17 ) + [38] (byte) level#10 ← phi( main::@6/(byte) level#17 main::@17/(byte) 0 main::@25/(byte) level#17 ) + [38] (word) lines_bcd#19 ← phi( main::@6/(word) lines_bcd#15 main::@17/(word) 0 main::@25/(word) lines_bcd#15 ) + [38] (byte) current_movedown_counter#16 ← phi( main::@6/(byte) current_movedown_counter#14 main::@17/(byte) 0 main::@25/(byte) current_movedown_counter#14 ) + [38] (byte) keyboard_events_size#19 ← phi( main::@6/(byte) keyboard_events_size#16 main::@17/(byte) 0 main::@25/(byte) keyboard_events_size#16 ) + [38] (byte) next_piece_idx#10 ← phi( main::@6/(byte) next_piece_idx#16 main::@17/(byte) play_spawn_current::piece_idx#2 main::@25/(byte) next_piece_idx#16 ) + [38] (byte) game_over#10 ← phi( main::@6/(byte) game_over#15 main::@17/(byte) game_over#52 main::@25/(byte) game_over#15 ) + [38] (byte) current_ypos#11 ← phi( main::@6/(byte) current_ypos#19 main::@17/(byte) current_ypos#6 main::@25/(byte) current_ypos#19 ) + [38] (byte) current_xpos#14 ← phi( main::@6/(byte) current_xpos#19 main::@17/(byte) current_xpos#100 main::@25/(byte) current_xpos#19 ) + [38] (byte*) current_piece_gfx#13 ← phi( main::@6/(byte*) current_piece_gfx#18 main::@17/(byte*) current_piece_gfx#123 main::@25/(byte*) current_piece_gfx#18 ) + [38] (byte) current_orientation#13 ← phi( main::@6/(byte) current_orientation#17 main::@17/(byte) 0 main::@25/(byte) current_orientation#17 ) + [38] (byte) current_piece_char#10 ← phi( main::@6/(byte) current_piece_char#16 main::@17/(byte) current_piece_char#5 main::@25/(byte) current_piece_char#16 ) + [38] (byte*) current_piece#10 ← phi( main::@6/(byte*) current_piece#15 main::@17/(byte*) current_piece#101 main::@25/(byte*) current_piece#15 ) + [38] (byte) current_movedown_slow#14 ← phi( main::@6/(byte) current_movedown_slow#21 main::@17/(byte) current_movedown_slow#1 main::@25/(byte) current_movedown_slow#21 ) + [38] (byte) render_screen_render#18 ← phi( main::@6/(byte) render_screen_render#18 main::@17/(byte) $20 main::@25/(byte) render_screen_render#11 ) + [38] (byte) render_screen_show#16 ← phi( main::@6/(byte) render_screen_show#16 main::@17/(byte) 0 main::@25/(byte) render_screen_show#13 ) to:main::@2 main::@2: scope:[main] from main::@1 main::@2 - [41] if(*((const byte*) RASTER)!=(byte) $ff) goto main::@2 + [39] if(*((const byte*) RASTER)!=(byte) $ff) goto main::@2 to:main::@3 main::@3: scope:[main] from main::@2 - [42] phi() - [43] call render_show + [40] phi() + [41] call render_show to:main::@18 main::@18: scope:[main] from main::@3 - [44] phi() - [45] call keyboard_event_scan + [42] phi() + [43] call keyboard_event_scan to:main::@19 main::@19: scope:[main] from main::@18 - [46] phi() - [47] call keyboard_event_get - [48] (byte) keyboard_event_get::return#3 ← (byte) keyboard_event_get::return#2 + [44] phi() + [45] call keyboard_event_get + [46] (byte) keyboard_event_get::return#3 ← (byte) keyboard_event_get::return#2 to:main::@20 main::@20: scope:[main] from main::@19 - [49] (byte) main::key_event#0 ← (byte) keyboard_event_get::return#3 - [50] if((byte) game_over#10==(byte) 0) goto main::@4 + [47] (byte) main::key_event#0 ← (byte) keyboard_event_get::return#3 + [48] if((byte) game_over#10==(byte) 0) goto main::@4 to:main::@5 main::@5: scope:[main] from main::@20 main::@5 - [51] *((const byte*) BORDERCOL) ← ++ *((const byte*) BORDERCOL) + [49] *((const byte*) BORDERCOL) ← ++ *((const byte*) BORDERCOL) to:main::@5 main::@4: scope:[main] from main::@20 - [52] (byte) play_movement::key_event#0 ← (byte) main::key_event#0 - [53] call play_movement - [54] (byte) play_movement::return#3 ← (byte) play_movement::return#2 + [50] (byte) play_movement::key_event#0 ← (byte) main::key_event#0 + [51] call play_movement + [52] (byte) play_movement::return#3 ← (byte) play_movement::return#2 to:main::@21 main::@21: scope:[main] from main::@4 - [55] (byte) main::render#1 ← (byte) play_movement::return#3 + [53] (byte) main::render#1 ← (byte) play_movement::return#3 to:main::@6 main::@6: scope:[main] from main::@21 - [56] if((byte) main::render#1==(byte) 0) goto main::@1 + [54] if((byte) main::render#1==(byte) 0) goto main::@1 to:main::@7 main::@7: scope:[main] from main::@6 - [57] (byte) render_screen_render#63 ← (byte) render_screen_render#18 - [58] call render_playfield + [55] (byte) render_screen_render#63 ← (byte) render_screen_render#18 + [56] call render_playfield to:main::@22 main::@22: scope:[main] from main::@7 - [59] (byte) current_ypos#98 ← (byte) current_ypos#19 - [60] (byte) render_screen_render#64 ← (byte) render_screen_render#18 - [61] (byte) current_xpos#119 ← (byte) current_xpos#19 - [62] (byte*) current_piece_gfx#112 ← (byte*) current_piece_gfx#18 - [63] (byte) current_piece_char#100 ← (byte) current_piece_char#16 - [64] call render_moving + [57] (byte) current_ypos#98 ← (byte) current_ypos#19 + [58] (byte) render_screen_render#64 ← (byte) render_screen_render#18 + [59] (byte) current_xpos#119 ← (byte) current_xpos#19 + [60] (byte*) current_piece_gfx#112 ← (byte*) current_piece_gfx#18 + [61] (byte) current_piece_char#100 ← (byte) current_piece_char#16 + [62] call render_moving to:main::@23 main::@23: scope:[main] from main::@22 - [65] (byte) render_screen_render#65 ← (byte) render_screen_render#18 - [66] (byte) next_piece_idx#77 ← (byte) next_piece_idx#16 - [67] call render_next + [63] (byte) render_screen_render#65 ← (byte) render_screen_render#18 + [64] (byte) next_piece_idx#77 ← (byte) next_piece_idx#16 + [65] call render_next to:main::@24 main::@24: scope:[main] from main::@23 - [68] phi() - [69] call render_score + [66] phi() + [67] call render_score to:main::@25 main::@25: scope:[main] from main::@24 - [70] phi() - [71] call render_screen_swap + [68] phi() + [69] call render_screen_swap to:main::@1 (void()) render_screen_swap() render_screen_swap: scope:[render_screen_swap] from main::@25 - [72] (byte) render_screen_render#11 ← (byte) render_screen_render#18 ^ (byte) $20 - [73] (byte) render_screen_show#13 ← (byte) render_screen_show#16 ^ (byte) $20 + [70] (byte) render_screen_render#11 ← (byte) render_screen_render#18 ^ (byte) $20 + [71] (byte) render_screen_show#13 ← (byte) render_screen_show#16 ^ (byte) $20 to:render_screen_swap::@return render_screen_swap::@return: scope:[render_screen_swap] from render_screen_swap - [74] return + [72] return to:@return (void()) render_score() render_score: scope:[render_score] from main::@24 - [75] if((byte) render_screen_render#18==(byte) 0) goto render_score::@1 + [73] if((byte) render_screen_render#18==(byte) 0) goto render_score::@1 to:render_score::@2 render_score::@1: scope:[render_score] from render_score - [76] phi() + [74] phi() to:render_score::@2 render_score::@2: scope:[render_score] from render_score render_score::@1 - [77] (byte*) render_score::screen#3 ← phi( render_score::@1/(const byte*) PLAYFIELD_SCREEN_1 render_score/(const byte*) PLAYFIELD_SCREEN_2 ) - [78] (byte*) render_bcd::screen#0 ← (byte*) render_score::screen#3 - [79] (byte) render_bcd::bcd#0 ← *((const byte*) render_score::score_bytes+(byte) 2) - [80] call render_bcd + [75] (byte*) render_score::screen#3 ← phi( render_score::@1/(const byte*) PLAYFIELD_SCREEN_1 render_score/(const byte*) PLAYFIELD_SCREEN_2 ) + [76] (byte*) render_bcd::screen#0 ← (byte*) render_score::screen#3 + [77] (byte) render_bcd::bcd#0 ← *((const byte*) render_score::score_bytes+(byte) 2) + [78] call render_bcd to:render_score::@3 render_score::@3: scope:[render_score] from render_score::@2 - [81] (byte*) render_bcd::screen#1 ← (byte*) render_score::screen#3 - [82] (byte) render_bcd::bcd#1 ← *((const byte*) render_score::score_bytes+(byte) 1) - [83] call render_bcd + [79] (byte*) render_bcd::screen#1 ← (byte*) render_score::screen#3 + [80] (byte) render_bcd::bcd#1 ← *((const byte*) render_score::score_bytes+(byte) 1) + [81] call render_bcd to:render_score::@4 render_score::@4: scope:[render_score] from render_score::@3 - [84] (byte*) render_bcd::screen#2 ← (byte*) render_score::screen#3 - [85] (byte) render_bcd::bcd#2 ← *((const byte*) render_score::score_bytes) - [86] call render_bcd + [82] (byte*) render_bcd::screen#2 ← (byte*) render_score::screen#3 + [83] (byte) render_bcd::bcd#2 ← *((const byte*) render_score::score_bytes) + [84] call render_bcd to:render_score::@5 render_score::@5: scope:[render_score] from render_score::@4 - [87] (byte) render_bcd::bcd#3 ← > (word) lines_bcd#15 - [88] (byte*) render_bcd::screen#3 ← (byte*) render_score::screen#3 - [89] call render_bcd + [85] (byte) render_bcd::bcd#3 ← > (word) lines_bcd#15 + [86] (byte*) render_bcd::screen#3 ← (byte*) render_score::screen#3 + [87] call render_bcd to:render_score::@6 render_score::@6: scope:[render_score] from render_score::@5 - [90] (byte) render_bcd::bcd#4 ← < (word) lines_bcd#15 - [91] (byte*) render_bcd::screen#4 ← (byte*) render_score::screen#3 - [92] call render_bcd + [88] (byte) render_bcd::bcd#4 ← < (word) lines_bcd#15 + [89] (byte*) render_bcd::screen#4 ← (byte*) render_score::screen#3 + [90] call render_bcd to:render_score::@7 render_score::@7: scope:[render_score] from render_score::@6 - [93] (byte*) render_bcd::screen#5 ← (byte*) render_score::screen#3 - [94] (byte) render_bcd::bcd#5 ← (byte) level_bcd#17 - [95] call render_bcd + [91] (byte*) render_bcd::screen#5 ← (byte*) render_score::screen#3 + [92] (byte) render_bcd::bcd#5 ← (byte) level_bcd#17 + [93] call render_bcd to:render_score::@return render_score::@return: scope:[render_score] from render_score::@7 - [96] return + [94] return to:@return (void()) render_bcd((byte*) render_bcd::screen , (word) render_bcd::offset , (byte) render_bcd::bcd , (byte) render_bcd::only_low) render_bcd: scope:[render_bcd] from render_score::@2 render_score::@3 render_score::@4 render_score::@5 render_score::@6 render_score::@7 - [97] (byte) render_bcd::bcd#6 ← phi( render_score::@2/(byte) render_bcd::bcd#0 render_score::@3/(byte) render_bcd::bcd#1 render_score::@4/(byte) render_bcd::bcd#2 render_score::@5/(byte) render_bcd::bcd#3 render_score::@6/(byte) render_bcd::bcd#4 render_score::@7/(byte) render_bcd::bcd#5 ) - [97] (byte) render_bcd::only_low#6 ← phi( render_score::@2/(byte) 0 render_score::@3/(byte) 0 render_score::@4/(byte) 0 render_score::@5/(byte) 1 render_score::@6/(byte) 0 render_score::@7/(byte) 0 ) - [97] (word) render_bcd::offset#6 ← phi( render_score::@2/(const word) render_score::score_offset render_score::@3/(const word) render_score::score_offset+(byte) 2 render_score::@4/(const word) render_score::score_offset+(byte) 4 render_score::@5/(const word) render_score::lines_offset render_score::@6/(const word) render_score::lines_offset+(byte) 1 render_score::@7/(const word) render_score::level_offset ) - [97] (byte*) render_bcd::screen#6 ← phi( render_score::@2/(byte*) render_bcd::screen#0 render_score::@3/(byte*) render_bcd::screen#1 render_score::@4/(byte*) render_bcd::screen#2 render_score::@5/(byte*) render_bcd::screen#3 render_score::@6/(byte*) render_bcd::screen#4 render_score::@7/(byte*) render_bcd::screen#5 ) - [98] (byte*) render_bcd::screen_pos#0 ← (byte*) render_bcd::screen#6 + (word) render_bcd::offset#6 - [99] if((byte) render_bcd::only_low#6!=(byte) 0) goto render_bcd::@1 + [95] (byte) render_bcd::bcd#6 ← phi( render_score::@2/(byte) render_bcd::bcd#0 render_score::@3/(byte) render_bcd::bcd#1 render_score::@4/(byte) render_bcd::bcd#2 render_score::@5/(byte) render_bcd::bcd#3 render_score::@6/(byte) render_bcd::bcd#4 render_score::@7/(byte) render_bcd::bcd#5 ) + [95] (byte) render_bcd::only_low#6 ← phi( render_score::@2/(byte) 0 render_score::@3/(byte) 0 render_score::@4/(byte) 0 render_score::@5/(byte) 1 render_score::@6/(byte) 0 render_score::@7/(byte) 0 ) + [95] (word) render_bcd::offset#6 ← phi( render_score::@2/(const word) render_score::score_offset render_score::@3/(const word) render_score::score_offset+(byte) 2 render_score::@4/(const word) render_score::score_offset+(byte) 4 render_score::@5/(const word) render_score::lines_offset render_score::@6/(const word) render_score::lines_offset+(byte) 1 render_score::@7/(const word) render_score::level_offset ) + [95] (byte*) render_bcd::screen#6 ← phi( render_score::@2/(byte*) render_bcd::screen#0 render_score::@3/(byte*) render_bcd::screen#1 render_score::@4/(byte*) render_bcd::screen#2 render_score::@5/(byte*) render_bcd::screen#3 render_score::@6/(byte*) render_bcd::screen#4 render_score::@7/(byte*) render_bcd::screen#5 ) + [96] (byte*) render_bcd::screen_pos#0 ← (byte*) render_bcd::screen#6 + (word) render_bcd::offset#6 + [97] if((byte) render_bcd::only_low#6!=(byte) 0) goto render_bcd::@1 to:render_bcd::@2 render_bcd::@2: scope:[render_bcd] from render_bcd - [100] (byte~) render_bcd::$5 ← (byte) render_bcd::bcd#6 >> (byte) 4 - [101] (byte~) render_bcd::$6 ← (const byte) render_bcd::ZERO_CHAR + (byte~) render_bcd::$5 - [102] *((byte*) render_bcd::screen_pos#0) ← (byte~) render_bcd::$6 - [103] (byte*) render_bcd::screen_pos#2 ← ++ (byte*) render_bcd::screen_pos#0 + [98] (byte~) render_bcd::$5 ← (byte) render_bcd::bcd#6 >> (byte) 4 + [99] (byte~) render_bcd::$6 ← (const byte) render_bcd::ZERO_CHAR + (byte~) render_bcd::$5 + [100] *((byte*) render_bcd::screen_pos#0) ← (byte~) render_bcd::$6 + [101] (byte*) render_bcd::screen_pos#2 ← ++ (byte*) render_bcd::screen_pos#0 to:render_bcd::@1 render_bcd::@1: scope:[render_bcd] from render_bcd render_bcd::@2 - [104] (byte*) render_bcd::screen_pos#3 ← phi( render_bcd/(byte*) render_bcd::screen_pos#0 render_bcd::@2/(byte*) render_bcd::screen_pos#2 ) - [105] (byte~) render_bcd::$3 ← (byte) render_bcd::bcd#6 & (byte) $f - [106] (byte~) render_bcd::$4 ← (const byte) render_bcd::ZERO_CHAR + (byte~) render_bcd::$3 - [107] *((byte*) render_bcd::screen_pos#3) ← (byte~) render_bcd::$4 + [102] (byte*) render_bcd::screen_pos#3 ← phi( render_bcd/(byte*) render_bcd::screen_pos#0 render_bcd::@2/(byte*) render_bcd::screen_pos#2 ) + [103] (byte~) render_bcd::$3 ← (byte) render_bcd::bcd#6 & (byte) $f + [104] (byte~) render_bcd::$4 ← (const byte) render_bcd::ZERO_CHAR + (byte~) render_bcd::$3 + [105] *((byte*) render_bcd::screen_pos#3) ← (byte~) render_bcd::$4 to:render_bcd::@return render_bcd::@return: scope:[render_bcd] from render_bcd::@1 - [108] return + [106] return to:@return (void()) render_next() render_next: scope:[render_next] from main::@16 main::@23 - [109] (byte) next_piece_idx#12 ← phi( main::@16/(byte) next_piece_idx#76 main::@23/(byte) next_piece_idx#77 ) - [109] (byte) render_screen_render#15 ← phi( main::@16/(byte) $20 main::@23/(byte) render_screen_render#65 ) - [110] if((byte) render_screen_render#15==(byte) 0) goto render_next::@1 + [107] (byte) next_piece_idx#12 ← phi( main::@16/(byte) next_piece_idx#76 main::@23/(byte) next_piece_idx#77 ) + [107] (byte) render_screen_render#15 ← phi( main::@16/(byte) $20 main::@23/(byte) render_screen_render#65 ) + [108] if((byte) render_screen_render#15==(byte) 0) goto render_next::@1 to:render_next::@2 render_next::@1: scope:[render_next] from render_next - [111] phi() + [109] phi() to:render_next::@2 render_next::@2: scope:[render_next] from render_next render_next::@1 - [112] (byte*) render_next::screen_next_area#11 ← phi( render_next::@1/(const byte*) PLAYFIELD_SCREEN_1+(const word) render_next::next_area_offset render_next/(const byte*) PLAYFIELD_SCREEN_2+(const word) render_next::next_area_offset ) - [113] (byte~) render_next::$6 ← (byte) next_piece_idx#12 << (byte) 1 - [114] (byte) render_next::next_piece_char#0 ← *((const byte*) PIECES_NEXT_CHARS + (byte) next_piece_idx#12) - [115] (byte*) render_next::next_piece_gfx#9 ← (byte*)*((const word*) PIECES + (byte~) render_next::$6) + [110] (byte*) render_next::screen_next_area#11 ← phi( render_next::@1/(const byte*) PLAYFIELD_SCREEN_1+(const word) render_next::next_area_offset render_next/(const byte*) PLAYFIELD_SCREEN_2+(const word) render_next::next_area_offset ) + [111] (byte~) render_next::$6 ← (byte) next_piece_idx#12 << (byte) 1 + [112] (byte) render_next::next_piece_char#0 ← *((const byte*) PIECES_NEXT_CHARS + (byte) next_piece_idx#12) + [113] (byte*) render_next::next_piece_gfx#9 ← (byte*)*((const word*) PIECES + (byte~) render_next::$6) to:render_next::@3 render_next::@3: scope:[render_next] from render_next::@2 render_next::@8 - [116] (byte) render_next::l#7 ← phi( render_next::@8/(byte) render_next::l#1 render_next::@2/(byte) 0 ) - [116] (byte*) render_next::screen_next_area#10 ← phi( render_next::@8/(byte*) render_next::screen_next_area#4 render_next::@2/(byte*) render_next::screen_next_area#11 ) - [116] (byte*) render_next::next_piece_gfx#3 ← phi( render_next::@8/(byte*) render_next::next_piece_gfx#1 render_next::@2/(byte*) render_next::next_piece_gfx#9 ) + [114] (byte) render_next::l#7 ← phi( render_next::@8/(byte) render_next::l#1 render_next::@2/(byte) 0 ) + [114] (byte*) render_next::screen_next_area#10 ← phi( render_next::@8/(byte*) render_next::screen_next_area#4 render_next::@2/(byte*) render_next::screen_next_area#11 ) + [114] (byte*) render_next::next_piece_gfx#3 ← phi( render_next::@8/(byte*) render_next::next_piece_gfx#1 render_next::@2/(byte*) render_next::next_piece_gfx#9 ) to:render_next::@4 render_next::@4: scope:[render_next] from render_next::@3 render_next::@6 - [117] (byte) render_next::c#2 ← phi( render_next::@3/(byte) 0 render_next::@6/(byte) render_next::c#1 ) - [117] (byte*) render_next::screen_next_area#5 ← phi( render_next::@3/(byte*) render_next::screen_next_area#10 render_next::@6/(byte*) render_next::screen_next_area#3 ) - [117] (byte*) render_next::next_piece_gfx#2 ← phi( render_next::@3/(byte*) render_next::next_piece_gfx#3 render_next::@6/(byte*) render_next::next_piece_gfx#1 ) - [118] (byte) render_next::cell#0 ← *((byte*) render_next::next_piece_gfx#2) - [119] (byte*) render_next::next_piece_gfx#1 ← ++ (byte*) render_next::next_piece_gfx#2 - [120] if((byte) render_next::cell#0!=(byte) 0) goto render_next::@5 + [115] (byte) render_next::c#2 ← phi( render_next::@3/(byte) 0 render_next::@6/(byte) render_next::c#1 ) + [115] (byte*) render_next::screen_next_area#5 ← phi( render_next::@3/(byte*) render_next::screen_next_area#10 render_next::@6/(byte*) render_next::screen_next_area#3 ) + [115] (byte*) render_next::next_piece_gfx#2 ← phi( render_next::@3/(byte*) render_next::next_piece_gfx#3 render_next::@6/(byte*) render_next::next_piece_gfx#1 ) + [116] (byte) render_next::cell#0 ← *((byte*) render_next::next_piece_gfx#2) + [117] (byte*) render_next::next_piece_gfx#1 ← ++ (byte*) render_next::next_piece_gfx#2 + [118] if((byte) render_next::cell#0!=(byte) 0) goto render_next::@5 to:render_next::@7 render_next::@7: scope:[render_next] from render_next::@4 - [121] *((byte*) render_next::screen_next_area#5) ← (byte) 0 + [119] *((byte*) render_next::screen_next_area#5) ← (byte) 0 to:render_next::@6 render_next::@6: scope:[render_next] from render_next::@5 render_next::@7 - [122] (byte*) render_next::screen_next_area#3 ← ++ (byte*) render_next::screen_next_area#5 - [123] (byte) render_next::c#1 ← ++ (byte) render_next::c#2 - [124] if((byte) render_next::c#1!=(byte) 4) goto render_next::@4 + [120] (byte*) render_next::screen_next_area#3 ← ++ (byte*) render_next::screen_next_area#5 + [121] (byte) render_next::c#1 ← ++ (byte) render_next::c#2 + [122] if((byte) render_next::c#1!=(byte) 4) goto render_next::@4 to:render_next::@8 render_next::@8: scope:[render_next] from render_next::@6 - [125] (byte*) render_next::screen_next_area#4 ← (byte*) render_next::screen_next_area#3 + (byte) $24 - [126] (byte) render_next::l#1 ← ++ (byte) render_next::l#7 - [127] if((byte) render_next::l#1!=(byte) 4) goto render_next::@3 + [123] (byte*) render_next::screen_next_area#4 ← (byte*) render_next::screen_next_area#3 + (byte) $24 + [124] (byte) render_next::l#1 ← ++ (byte) render_next::l#7 + [125] if((byte) render_next::l#1!=(byte) 4) goto render_next::@3 to:render_next::@return render_next::@return: scope:[render_next] from render_next::@8 - [128] return + [126] return to:@return render_next::@5: scope:[render_next] from render_next::@4 - [129] *((byte*) render_next::screen_next_area#5) ← (byte) render_next::next_piece_char#0 + [127] *((byte*) render_next::screen_next_area#5) ← (byte) render_next::next_piece_char#0 to:render_next::@6 (void()) render_moving() render_moving: scope:[render_moving] from main::@15 main::@22 - [130] (byte) current_piece_char#68 ← phi( main::@15/(byte) current_piece_char#99 main::@22/(byte) current_piece_char#100 ) - [130] (byte*) current_piece_gfx#64 ← phi( main::@15/(byte*) current_piece_gfx#111 main::@22/(byte*) current_piece_gfx#112 ) - [130] (byte) current_xpos#59 ← phi( main::@15/(byte) current_xpos#118 main::@22/(byte) current_xpos#119 ) - [130] (byte) render_screen_render#33 ← phi( main::@15/(byte) $20 main::@22/(byte) render_screen_render#64 ) - [130] (byte) current_ypos#13 ← phi( main::@15/(byte) current_ypos#97 main::@22/(byte) current_ypos#98 ) - [131] (byte) render_moving::ypos#0 ← (byte) current_ypos#13 + [128] (byte) current_piece_char#68 ← phi( main::@15/(byte) current_piece_char#99 main::@22/(byte) current_piece_char#100 ) + [128] (byte*) current_piece_gfx#64 ← phi( main::@15/(byte*) current_piece_gfx#111 main::@22/(byte*) current_piece_gfx#112 ) + [128] (byte) current_xpos#59 ← phi( main::@15/(byte) current_xpos#118 main::@22/(byte) current_xpos#119 ) + [128] (byte) render_screen_render#33 ← phi( main::@15/(byte) $20 main::@22/(byte) render_screen_render#64 ) + [128] (byte) current_ypos#13 ← phi( main::@15/(byte) current_ypos#97 main::@22/(byte) current_ypos#98 ) + [129] (byte) render_moving::ypos#0 ← (byte) current_ypos#13 to:render_moving::@1 render_moving::@1: scope:[render_moving] from render_moving render_moving::@3 - [132] (byte) render_moving::l#4 ← phi( render_moving/(byte) 0 render_moving::@3/(byte) render_moving::l#1 ) - [132] (byte) render_moving::i#3 ← phi( render_moving/(byte) 0 render_moving::@3/(byte) render_moving::i#8 ) - [132] (byte) render_moving::ypos#2 ← phi( render_moving/(byte) render_moving::ypos#0 render_moving::@3/(byte) render_moving::ypos#1 ) - [133] if((byte) render_moving::ypos#2>=(byte) 1+(byte) 1) goto render_moving::@2 + [130] (byte) render_moving::l#4 ← phi( render_moving/(byte) 0 render_moving::@3/(byte) render_moving::l#1 ) + [130] (byte) render_moving::i#3 ← phi( render_moving/(byte) 0 render_moving::@3/(byte) render_moving::i#8 ) + [130] (byte) render_moving::ypos#2 ← phi( render_moving/(byte) render_moving::ypos#0 render_moving::@3/(byte) render_moving::ypos#1 ) + [131] if((byte) render_moving::ypos#2>=(byte) 1+(byte) 1) goto render_moving::@2 to:render_moving::@7 render_moving::@7: scope:[render_moving] from render_moving::@1 - [134] (byte) render_moving::i#1 ← (byte) render_moving::i#3 + (byte) 4 + [132] (byte) render_moving::i#1 ← (byte) render_moving::i#3 + (byte) 4 to:render_moving::@3 render_moving::@3: scope:[render_moving] from render_moving::@5 render_moving::@7 - [135] (byte) render_moving::i#8 ← phi( render_moving::@5/(byte) render_moving::i#2 render_moving::@7/(byte) render_moving::i#1 ) - [136] (byte) render_moving::ypos#1 ← ++ (byte) render_moving::ypos#2 - [137] (byte) render_moving::l#1 ← ++ (byte) render_moving::l#4 - [138] if((byte) render_moving::l#1!=(byte) 4) goto render_moving::@1 + [133] (byte) render_moving::i#8 ← phi( render_moving::@5/(byte) render_moving::i#2 render_moving::@7/(byte) render_moving::i#1 ) + [134] (byte) render_moving::ypos#1 ← ++ (byte) render_moving::ypos#2 + [135] (byte) render_moving::l#1 ← ++ (byte) render_moving::l#4 + [136] if((byte) render_moving::l#1!=(byte) 4) goto render_moving::@1 to:render_moving::@return render_moving::@return: scope:[render_moving] from render_moving::@3 - [139] return + [137] return to:@return render_moving::@2: scope:[render_moving] from render_moving::@1 - [140] (byte~) render_moving::$1 ← (byte) render_screen_render#33 + (byte) render_moving::ypos#2 - [141] (byte~) render_moving::$6 ← (byte~) render_moving::$1 << (byte) 1 - [142] (byte*) render_moving::screen_line#0 ← *((const byte**) screen_lines_1 + (byte~) render_moving::$6) - [143] (byte) render_moving::xpos#0 ← (byte) current_xpos#59 + [138] (byte~) render_moving::$1 ← (byte) render_screen_render#33 + (byte) render_moving::ypos#2 + [139] (byte~) render_moving::$6 ← (byte~) render_moving::$1 << (byte) 1 + [140] (byte*) render_moving::screen_line#0 ← *((const byte**) screen_lines_1 + (byte~) render_moving::$6) + [141] (byte) render_moving::xpos#0 ← (byte) current_xpos#59 to:render_moving::@4 render_moving::@4: scope:[render_moving] from render_moving::@2 render_moving::@5 - [144] (byte) render_moving::c#2 ← phi( render_moving::@2/(byte) 0 render_moving::@5/(byte) render_moving::c#1 ) - [144] (byte) render_moving::xpos#2 ← phi( render_moving::@2/(byte) render_moving::xpos#0 render_moving::@5/(byte) render_moving::xpos#1 ) - [144] (byte) render_moving::i#4 ← phi( render_moving::@2/(byte) render_moving::i#3 render_moving::@5/(byte) render_moving::i#2 ) - [145] (byte) render_moving::current_cell#0 ← *((byte*) current_piece_gfx#64 + (byte) render_moving::i#4) - [146] (byte) render_moving::i#2 ← ++ (byte) render_moving::i#4 - [147] if((byte) render_moving::current_cell#0==(byte) 0) goto render_moving::@5 + [142] (byte) render_moving::c#2 ← phi( render_moving::@2/(byte) 0 render_moving::@5/(byte) render_moving::c#1 ) + [142] (byte) render_moving::xpos#2 ← phi( render_moving::@2/(byte) render_moving::xpos#0 render_moving::@5/(byte) render_moving::xpos#1 ) + [142] (byte) render_moving::i#4 ← phi( render_moving::@2/(byte) render_moving::i#3 render_moving::@5/(byte) render_moving::i#2 ) + [143] (byte) render_moving::current_cell#0 ← *((byte*) current_piece_gfx#64 + (byte) render_moving::i#4) + [144] (byte) render_moving::i#2 ← ++ (byte) render_moving::i#4 + [145] if((byte) render_moving::current_cell#0==(byte) 0) goto render_moving::@5 to:render_moving::@6 render_moving::@6: scope:[render_moving] from render_moving::@4 - [148] *((byte*) render_moving::screen_line#0 + (byte) render_moving::xpos#2) ← (byte) current_piece_char#68 + [146] *((byte*) render_moving::screen_line#0 + (byte) render_moving::xpos#2) ← (byte) current_piece_char#68 to:render_moving::@5 render_moving::@5: scope:[render_moving] from render_moving::@4 render_moving::@6 - [149] (byte) render_moving::xpos#1 ← ++ (byte) render_moving::xpos#2 - [150] (byte) render_moving::c#1 ← ++ (byte) render_moving::c#2 - [151] if((byte) render_moving::c#1!=(byte) 4) goto render_moving::@4 + [147] (byte) render_moving::xpos#1 ← ++ (byte) render_moving::xpos#2 + [148] (byte) render_moving::c#1 ← ++ (byte) render_moving::c#2 + [149] if((byte) render_moving::c#1!=(byte) 4) goto render_moving::@4 to:render_moving::@3 (void()) render_playfield() render_playfield: scope:[render_playfield] from main::@14 main::@7 - [152] (byte) render_screen_render#22 ← phi( main::@7/(byte) render_screen_render#63 main::@14/(byte) $20 ) + [150] (byte) render_screen_render#22 ← phi( main::@7/(byte) render_screen_render#63 main::@14/(byte) $20 ) to:render_playfield::@1 render_playfield::@1: scope:[render_playfield] from render_playfield render_playfield::@3 - [153] (byte) render_playfield::i#3 ← phi( render_playfield/(const byte) PLAYFIELD_COLS*(byte) 2 render_playfield::@3/(byte) render_playfield::i#1 ) - [153] (byte) render_playfield::l#2 ← phi( render_playfield/(byte) 2 render_playfield::@3/(byte) render_playfield::l#1 ) - [154] (byte~) render_playfield::$0 ← (byte) render_screen_render#22 + (byte) render_playfield::l#2 - [155] (byte~) render_playfield::$3 ← (byte~) render_playfield::$0 << (byte) 1 - [156] (byte*) render_playfield::screen_line#0 ← *((const byte**) screen_lines_1 + (byte~) render_playfield::$3) + [151] (byte) render_playfield::i#3 ← phi( render_playfield/(const byte) PLAYFIELD_COLS*(byte) 2 render_playfield::@3/(byte) render_playfield::i#1 ) + [151] (byte) render_playfield::l#2 ← phi( render_playfield/(byte) 2 render_playfield::@3/(byte) render_playfield::l#1 ) + [152] (byte~) render_playfield::$0 ← (byte) render_screen_render#22 + (byte) render_playfield::l#2 + [153] (byte~) render_playfield::$3 ← (byte~) render_playfield::$0 << (byte) 1 + [154] (byte*) render_playfield::screen_line#0 ← *((const byte**) screen_lines_1 + (byte~) render_playfield::$3) to:render_playfield::@2 render_playfield::@2: scope:[render_playfield] from render_playfield::@1 render_playfield::@2 - [157] (byte) render_playfield::c#2 ← phi( render_playfield::@1/(byte) 0 render_playfield::@2/(byte) render_playfield::c#1 ) - [157] (byte*) render_playfield::screen_line#2 ← phi( render_playfield::@1/(byte*) render_playfield::screen_line#0 render_playfield::@2/(byte*) render_playfield::screen_line#1 ) - [157] (byte) render_playfield::i#2 ← phi( render_playfield::@1/(byte) render_playfield::i#3 render_playfield::@2/(byte) render_playfield::i#1 ) - [158] *((byte*) render_playfield::screen_line#2) ← *((const byte*) playfield + (byte) render_playfield::i#2) - [159] (byte*) render_playfield::screen_line#1 ← ++ (byte*) render_playfield::screen_line#2 - [160] (byte) render_playfield::i#1 ← ++ (byte) render_playfield::i#2 - [161] (byte) render_playfield::c#1 ← ++ (byte) render_playfield::c#2 - [162] if((byte) render_playfield::c#1!=(const byte) PLAYFIELD_COLS-(byte) 1+(byte) 1) goto render_playfield::@2 + [155] (byte) render_playfield::c#2 ← phi( render_playfield::@1/(byte) 0 render_playfield::@2/(byte) render_playfield::c#1 ) + [155] (byte*) render_playfield::screen_line#2 ← phi( render_playfield::@1/(byte*) render_playfield::screen_line#0 render_playfield::@2/(byte*) render_playfield::screen_line#1 ) + [155] (byte) render_playfield::i#2 ← phi( render_playfield::@1/(byte) render_playfield::i#3 render_playfield::@2/(byte) render_playfield::i#1 ) + [156] *((byte*) render_playfield::screen_line#2) ← *((const byte*) playfield + (byte) render_playfield::i#2) + [157] (byte*) render_playfield::screen_line#1 ← ++ (byte*) render_playfield::screen_line#2 + [158] (byte) render_playfield::i#1 ← ++ (byte) render_playfield::i#2 + [159] (byte) render_playfield::c#1 ← ++ (byte) render_playfield::c#2 + [160] if((byte) render_playfield::c#1!=(const byte) PLAYFIELD_COLS-(byte) 1+(byte) 1) goto render_playfield::@2 to:render_playfield::@3 render_playfield::@3: scope:[render_playfield] from render_playfield::@2 - [163] (byte) render_playfield::l#1 ← ++ (byte) render_playfield::l#2 - [164] if((byte) render_playfield::l#1!=(const byte) PLAYFIELD_LINES-(byte) 1+(byte) 1) goto render_playfield::@1 + [161] (byte) render_playfield::l#1 ← ++ (byte) render_playfield::l#2 + [162] if((byte) render_playfield::l#1!=(const byte) PLAYFIELD_LINES-(byte) 1+(byte) 1) goto render_playfield::@1 to:render_playfield::@return render_playfield::@return: scope:[render_playfield] from render_playfield::@3 - [165] return + [163] return to:@return (byte()) play_movement((byte) play_movement::key_event) play_movement: scope:[play_movement] from main::@4 - [166] (byte) play_move_down::key_event#0 ← (byte) play_movement::key_event#0 - [167] call play_move_down - [168] (byte) play_move_down::return#0 ← (byte) play_move_down::return#3 + [164] (byte) play_move_down::key_event#0 ← (byte) play_movement::key_event#0 + [165] call play_move_down + [166] (byte) play_move_down::return#0 ← (byte) play_move_down::return#3 to:play_movement::@2 play_movement::@2: scope:[play_movement] from play_movement - [169] (byte) play_movement::render#1 ← (byte) play_move_down::return#0 - [170] if((byte) game_over#15==(byte) 0) goto play_movement::@1 + [167] (byte) play_movement::render#1 ← (byte) play_move_down::return#0 + [168] if((byte) game_over#15==(byte) 0) goto play_movement::@1 to:play_movement::@return play_movement::@return: scope:[play_movement] from play_movement::@2 play_movement::@4 - [171] (byte) current_xpos#19 ← phi( play_movement::@2/(byte) current_xpos#22 play_movement::@4/(byte) current_xpos#26 ) - [171] (byte*) current_piece_gfx#18 ← phi( play_movement::@2/(byte*) current_piece_gfx#20 play_movement::@4/(byte*) current_piece_gfx#21 ) - [171] (byte) current_orientation#17 ← phi( play_movement::@2/(byte) current_orientation#20 play_movement::@4/(byte) current_orientation#25 ) - [171] (byte) play_movement::return#2 ← phi( play_movement::@2/(byte) play_movement::render#1 play_movement::@4/(byte) play_movement::return#0 ) - [172] return + [169] (byte) current_xpos#19 ← phi( play_movement::@2/(byte) current_xpos#22 play_movement::@4/(byte) current_xpos#26 ) + [169] (byte*) current_piece_gfx#18 ← phi( play_movement::@2/(byte*) current_piece_gfx#20 play_movement::@4/(byte*) current_piece_gfx#21 ) + [169] (byte) current_orientation#17 ← phi( play_movement::@2/(byte) current_orientation#20 play_movement::@4/(byte) current_orientation#25 ) + [169] (byte) play_movement::return#2 ← phi( play_movement::@2/(byte) play_movement::render#1 play_movement::@4/(byte) play_movement::return#0 ) + [170] return to:@return play_movement::@1: scope:[play_movement] from play_movement::@2 - [173] (byte) play_move_leftright::key_event#0 ← (byte) play_movement::key_event#0 - [174] call play_move_leftright - [175] (byte) play_move_leftright::return#0 ← (byte) play_move_leftright::return#2 + [171] (byte) play_move_leftright::key_event#0 ← (byte) play_movement::key_event#0 + [172] call play_move_leftright + [173] (byte) play_move_leftright::return#0 ← (byte) play_move_leftright::return#2 to:play_movement::@3 play_movement::@3: scope:[play_movement] from play_movement::@1 - [176] (byte~) play_movement::$3 ← (byte) play_move_leftright::return#0 - [177] (byte) play_movement::render#2 ← (byte) play_movement::render#1 + (byte~) play_movement::$3 - [178] (byte) play_move_rotate::key_event#0 ← (byte) play_movement::key_event#0 - [179] call play_move_rotate - [180] (byte) play_move_rotate::return#0 ← (byte) play_move_rotate::return#2 + [174] (byte~) play_movement::$3 ← (byte) play_move_leftright::return#0 + [175] (byte) play_movement::render#2 ← (byte) play_movement::render#1 + (byte~) play_movement::$3 + [176] (byte) play_move_rotate::key_event#0 ← (byte) play_movement::key_event#0 + [177] call play_move_rotate + [178] (byte) play_move_rotate::return#0 ← (byte) play_move_rotate::return#2 to:play_movement::@4 play_movement::@4: scope:[play_movement] from play_movement::@3 - [181] (byte~) play_movement::$4 ← (byte) play_move_rotate::return#0 - [182] (byte) play_movement::return#0 ← (byte) play_movement::render#2 + (byte~) play_movement::$4 + [179] (byte~) play_movement::$4 ← (byte) play_move_rotate::return#0 + [180] (byte) play_movement::return#0 ← (byte) play_movement::render#2 + (byte~) play_movement::$4 to:play_movement::@return (byte()) play_move_rotate((byte) play_move_rotate::key_event) play_move_rotate: scope:[play_move_rotate] from play_movement::@3 - [183] if((byte) play_move_rotate::key_event#0==(const byte) KEY_Z) goto play_move_rotate::@1 + [181] if((byte) play_move_rotate::key_event#0==(const byte) KEY_Z) goto play_move_rotate::@1 to:play_move_rotate::@4 play_move_rotate::@4: scope:[play_move_rotate] from play_move_rotate - [184] if((byte) play_move_rotate::key_event#0==(const byte) KEY_X) goto play_move_rotate::@2 + [182] if((byte) play_move_rotate::key_event#0==(const byte) KEY_X) goto play_move_rotate::@2 to:play_move_rotate::@return play_move_rotate::@return: scope:[play_move_rotate] from play_move_rotate::@4 play_move_rotate::@5 play_move_rotate::@6 - [185] (byte*) current_piece_gfx#21 ← phi( play_move_rotate::@5/(byte*) current_piece_gfx#7 play_move_rotate::@6/(byte*) current_piece_gfx#20 play_move_rotate::@4/(byte*) current_piece_gfx#20 ) - [185] (byte) current_orientation#25 ← phi( play_move_rotate::@5/(byte) current_orientation#7 play_move_rotate::@6/(byte) current_orientation#20 play_move_rotate::@4/(byte) current_orientation#20 ) - [185] (byte) play_move_rotate::return#2 ← phi( play_move_rotate::@5/(byte) 1 play_move_rotate::@6/(byte) 0 play_move_rotate::@4/(byte) 0 ) - [186] return + [183] (byte*) current_piece_gfx#21 ← phi( play_move_rotate::@5/(byte*) current_piece_gfx#7 play_move_rotate::@6/(byte*) current_piece_gfx#20 play_move_rotate::@4/(byte*) current_piece_gfx#20 ) + [183] (byte) current_orientation#25 ← phi( play_move_rotate::@5/(byte) current_orientation#7 play_move_rotate::@6/(byte) current_orientation#20 play_move_rotate::@4/(byte) current_orientation#20 ) + [183] (byte) play_move_rotate::return#2 ← phi( play_move_rotate::@5/(byte) 1 play_move_rotate::@6/(byte) 0 play_move_rotate::@4/(byte) 0 ) + [184] return to:@return play_move_rotate::@2: scope:[play_move_rotate] from play_move_rotate::@4 - [187] (byte~) play_move_rotate::$5 ← (byte) current_orientation#20 + (byte) $10 - [188] (byte) play_move_rotate::orientation#2 ← (byte~) play_move_rotate::$5 & (byte) $3f + [185] (byte~) play_move_rotate::$5 ← (byte) current_orientation#20 + (byte) $10 + [186] (byte) play_move_rotate::orientation#2 ← (byte~) play_move_rotate::$5 & (byte) $3f to:play_move_rotate::@3 play_move_rotate::@3: scope:[play_move_rotate] from play_move_rotate::@1 play_move_rotate::@2 - [189] (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 ) - [190] (byte) play_collision::xpos#3 ← (byte) current_xpos#26 - [191] (byte) play_collision::ypos#3 ← (byte) current_ypos#19 - [192] (byte) play_collision::orientation#3 ← (byte) play_move_rotate::orientation#3 - [193] (byte*) current_piece#98 ← (byte*) current_piece#15 - [194] call play_collision - [195] (byte) play_collision::return#14 ← (byte) play_collision::return#15 + [187] (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 ) + [188] (byte) play_collision::xpos#3 ← (byte) current_xpos#26 + [189] (byte) play_collision::ypos#3 ← (byte) current_ypos#19 + [190] (byte) play_collision::orientation#3 ← (byte) play_move_rotate::orientation#3 + [191] (byte*) current_piece#98 ← (byte*) current_piece#15 + [192] call play_collision + [193] (byte) play_collision::return#14 ← (byte) play_collision::return#15 to:play_move_rotate::@6 play_move_rotate::@6: scope:[play_move_rotate] from play_move_rotate::@3 - [196] (byte~) play_move_rotate::$2 ← (byte) play_collision::return#14 - [197] if((byte~) play_move_rotate::$2!=(const byte) COLLISION_NONE) goto play_move_rotate::@return + [194] (byte~) play_move_rotate::$2 ← (byte) play_collision::return#14 + [195] if((byte~) play_move_rotate::$2!=(const byte) COLLISION_NONE) goto play_move_rotate::@return to:play_move_rotate::@5 play_move_rotate::@5: scope:[play_move_rotate] from play_move_rotate::@6 - [198] (byte) current_orientation#7 ← (byte) play_move_rotate::orientation#3 - [199] (byte*) current_piece_gfx#7 ← (byte*) current_piece#15 + (byte) current_orientation#7 + [196] (byte) current_orientation#7 ← (byte) play_move_rotate::orientation#3 + [197] (byte*) current_piece_gfx#7 ← (byte*) current_piece#15 + (byte) current_orientation#7 to:play_move_rotate::@return play_move_rotate::@1: scope:[play_move_rotate] from play_move_rotate - [200] (byte~) play_move_rotate::$7 ← (byte) current_orientation#20 - (byte) $10 - [201] (byte) play_move_rotate::orientation#1 ← (byte~) play_move_rotate::$7 & (byte) $3f + [198] (byte~) play_move_rotate::$7 ← (byte) current_orientation#20 - (byte) $10 + [199] (byte) play_move_rotate::orientation#1 ← (byte~) play_move_rotate::$7 & (byte) $3f to:play_move_rotate::@3 (byte()) play_collision((byte) play_collision::xpos , (byte) play_collision::ypos , (byte) play_collision::orientation) play_collision: scope:[play_collision] from play_move_down::@8 play_move_leftright::@1 play_move_leftright::@3 play_move_rotate::@3 play_spawn_current - [202] (byte) play_collision::xpos#6 ← phi( play_move_down::@8/(byte) play_collision::xpos#0 play_move_leftright::@1/(byte) play_collision::xpos#1 play_move_leftright::@3/(byte) play_collision::xpos#2 play_move_rotate::@3/(byte) play_collision::xpos#3 play_spawn_current/(byte) play_collision::xpos#4 ) - [202] (byte) play_collision::yp#0 ← phi( play_move_down::@8/(byte) play_collision::ypos#0 play_move_leftright::@1/(byte) play_collision::ypos#1 play_move_leftright::@3/(byte) play_collision::ypos#2 play_move_rotate::@3/(byte) play_collision::ypos#3 play_spawn_current/(byte) play_collision::ypos#4 ) - [202] (byte) play_collision::orientation#5 ← phi( play_move_down::@8/(byte) play_collision::orientation#0 play_move_leftright::@1/(byte) play_collision::orientation#1 play_move_leftright::@3/(byte) play_collision::orientation#2 play_move_rotate::@3/(byte) play_collision::orientation#3 play_spawn_current/(byte) 0 ) - [202] (byte*) current_piece#17 ← phi( play_move_down::@8/(byte*) current_piece#95 play_move_leftright::@1/(byte*) current_piece#96 play_move_leftright::@3/(byte*) current_piece#97 play_move_rotate::@3/(byte*) current_piece#98 play_spawn_current/(byte*) current_piece#99 ) - [203] (byte*) play_collision::piece_gfx#0 ← (byte*) current_piece#17 + (byte) play_collision::orientation#5 + [200] (byte) play_collision::xpos#6 ← phi( play_move_down::@8/(byte) play_collision::xpos#0 play_move_leftright::@1/(byte) play_collision::xpos#1 play_move_leftright::@3/(byte) play_collision::xpos#2 play_move_rotate::@3/(byte) play_collision::xpos#3 play_spawn_current/(byte) play_collision::xpos#4 ) + [200] (byte) play_collision::yp#0 ← phi( play_move_down::@8/(byte) play_collision::ypos#0 play_move_leftright::@1/(byte) play_collision::ypos#1 play_move_leftright::@3/(byte) play_collision::ypos#2 play_move_rotate::@3/(byte) play_collision::ypos#3 play_spawn_current/(byte) play_collision::ypos#4 ) + [200] (byte) play_collision::orientation#5 ← phi( play_move_down::@8/(byte) play_collision::orientation#0 play_move_leftright::@1/(byte) play_collision::orientation#1 play_move_leftright::@3/(byte) play_collision::orientation#2 play_move_rotate::@3/(byte) play_collision::orientation#3 play_spawn_current/(byte) 0 ) + [200] (byte*) current_piece#17 ← phi( play_move_down::@8/(byte*) current_piece#95 play_move_leftright::@1/(byte*) current_piece#96 play_move_leftright::@3/(byte*) current_piece#97 play_move_rotate::@3/(byte*) current_piece#98 play_spawn_current/(byte*) current_piece#99 ) + [201] (byte*) play_collision::piece_gfx#0 ← (byte*) current_piece#17 + (byte) play_collision::orientation#5 to:play_collision::@1 play_collision::@1: scope:[play_collision] from play_collision play_collision::@9 - [204] (byte) play_collision::l#6 ← phi( play_collision/(byte) 0 play_collision::@9/(byte) play_collision::l#1 ) - [204] (byte) play_collision::i#3 ← phi( play_collision/(byte) 0 play_collision::@9/(byte) play_collision::i#10 ) - [204] (byte) play_collision::yp#2 ← phi( play_collision/(byte) play_collision::yp#0 play_collision::@9/(byte) play_collision::yp#1 ) - [205] (byte~) play_collision::$14 ← (byte) play_collision::yp#2 << (byte) 1 - [206] (byte*) play_collision::playfield_line#0 ← *((const byte**) playfield_lines + (byte~) play_collision::$14) - [207] (byte) play_collision::xp#8 ← (byte) play_collision::xpos#6 + [202] (byte) play_collision::l#6 ← phi( play_collision/(byte) 0 play_collision::@9/(byte) play_collision::l#1 ) + [202] (byte) play_collision::i#3 ← phi( play_collision/(byte) 0 play_collision::@9/(byte) play_collision::i#10 ) + [202] (byte) play_collision::yp#2 ← phi( play_collision/(byte) play_collision::yp#0 play_collision::@9/(byte) play_collision::yp#1 ) + [203] (byte~) play_collision::$14 ← (byte) play_collision::yp#2 << (byte) 1 + [204] (byte*) play_collision::playfield_line#0 ← *((const byte**) playfield_lines + (byte~) play_collision::$14) + [205] (byte) play_collision::xp#8 ← (byte) play_collision::xpos#6 to:play_collision::@2 play_collision::@2: scope:[play_collision] from play_collision::@1 play_collision::@10 - [208] (byte) play_collision::c#2 ← phi( play_collision::@1/(byte) 0 play_collision::@10/(byte) play_collision::c#1 ) - [208] (byte) play_collision::xp#2 ← phi( play_collision::@1/(byte) play_collision::xp#8 play_collision::@10/(byte) play_collision::xp#1 ) - [208] (byte) play_collision::i#2 ← phi( play_collision::@1/(byte) play_collision::i#3 play_collision::@10/(byte) play_collision::i#12 ) - [209] (byte) play_collision::i#1 ← ++ (byte) play_collision::i#2 - [210] if(*((byte*) play_collision::piece_gfx#0 + (byte) play_collision::i#2)==(byte) 0) goto play_collision::@3 + [206] (byte) play_collision::c#2 ← phi( play_collision::@1/(byte) 0 play_collision::@10/(byte) play_collision::c#1 ) + [206] (byte) play_collision::xp#2 ← phi( play_collision::@1/(byte) play_collision::xp#8 play_collision::@10/(byte) play_collision::xp#1 ) + [206] (byte) play_collision::i#2 ← phi( play_collision::@1/(byte) play_collision::i#3 play_collision::@10/(byte) play_collision::i#12 ) + [207] (byte) play_collision::i#1 ← ++ (byte) play_collision::i#2 + [208] if(*((byte*) play_collision::piece_gfx#0 + (byte) play_collision::i#2)==(byte) 0) goto play_collision::@3 to:play_collision::@7 play_collision::@7: scope:[play_collision] from play_collision::@2 - [211] if((byte) play_collision::yp#2<(const byte) PLAYFIELD_LINES) goto play_collision::@4 + [209] if((byte) play_collision::yp#2<(const byte) PLAYFIELD_LINES) goto play_collision::@4 to:play_collision::@return play_collision::@4: scope:[play_collision] from play_collision::@7 - [212] (byte~) play_collision::$5 ← (byte) play_collision::xp#2 & (byte) $80 - [213] if((byte~) play_collision::$5==(byte) 0) goto play_collision::@5 + [210] (byte~) play_collision::$5 ← (byte) play_collision::xp#2 & (byte) $80 + [211] if((byte~) play_collision::$5==(byte) 0) goto play_collision::@5 to:play_collision::@return play_collision::@5: scope:[play_collision] from play_collision::@4 - [214] if((byte) play_collision::xp#2<(const byte) PLAYFIELD_COLS) goto play_collision::@6 + [212] if((byte) play_collision::xp#2<(const byte) PLAYFIELD_COLS) goto play_collision::@6 to:play_collision::@return play_collision::@6: scope:[play_collision] from play_collision::@5 - [215] if(*((byte*) play_collision::playfield_line#0 + (byte) play_collision::xp#2)==(byte) 0) goto play_collision::@3 + [213] if(*((byte*) play_collision::playfield_line#0 + (byte) play_collision::xp#2)==(byte) 0) goto play_collision::@3 to:play_collision::@return play_collision::@return: scope:[play_collision] from play_collision::@4 play_collision::@5 play_collision::@6 play_collision::@7 play_collision::@8 - [216] (byte) play_collision::return#15 ← phi( play_collision::@5/(const byte) COLLISION_RIGHT play_collision::@6/(const byte) COLLISION_PLAYFIELD play_collision::@7/(const byte) COLLISION_BOTTOM play_collision::@8/(const byte) COLLISION_NONE play_collision::@4/(const byte) COLLISION_LEFT ) - [217] return + [214] (byte) play_collision::return#15 ← phi( play_collision::@5/(const byte) COLLISION_RIGHT play_collision::@6/(const byte) COLLISION_PLAYFIELD play_collision::@7/(const byte) COLLISION_BOTTOM play_collision::@8/(const byte) COLLISION_NONE play_collision::@4/(const byte) COLLISION_LEFT ) + [215] return to:@return play_collision::@3: scope:[play_collision] from play_collision::@2 play_collision::@6 - [218] (byte) play_collision::xp#1 ← ++ (byte) play_collision::xp#2 - [219] (byte) play_collision::c#1 ← ++ (byte) play_collision::c#2 - [220] if((byte) play_collision::c#1!=(byte) 4) goto play_collision::@10 + [216] (byte) play_collision::xp#1 ← ++ (byte) play_collision::xp#2 + [217] (byte) play_collision::c#1 ← ++ (byte) play_collision::c#2 + [218] if((byte) play_collision::c#1!=(byte) 4) goto play_collision::@10 to:play_collision::@8 play_collision::@8: scope:[play_collision] from play_collision::@3 - [221] (byte) play_collision::yp#1 ← ++ (byte) play_collision::yp#2 - [222] (byte) play_collision::l#1 ← ++ (byte) play_collision::l#6 - [223] if((byte) play_collision::l#1!=(byte) 4) goto play_collision::@9 + [219] (byte) play_collision::yp#1 ← ++ (byte) play_collision::yp#2 + [220] (byte) play_collision::l#1 ← ++ (byte) play_collision::l#6 + [221] if((byte) play_collision::l#1!=(byte) 4) goto play_collision::@9 to:play_collision::@return play_collision::@9: scope:[play_collision] from play_collision::@8 - [224] (byte) play_collision::i#10 ← (byte) play_collision::i#1 + [222] (byte) play_collision::i#10 ← (byte) play_collision::i#1 to:play_collision::@1 play_collision::@10: scope:[play_collision] from play_collision::@3 - [225] (byte) play_collision::i#12 ← (byte) play_collision::i#1 + [223] (byte) play_collision::i#12 ← (byte) play_collision::i#1 to:play_collision::@2 (byte()) play_move_leftright((byte) play_move_leftright::key_event) play_move_leftright: scope:[play_move_leftright] from play_movement::@1 - [226] if((byte) play_move_leftright::key_event#0==(const byte) KEY_COMMA) goto play_move_leftright::@1 + [224] if((byte) play_move_leftright::key_event#0==(const byte) KEY_COMMA) goto play_move_leftright::@1 to:play_move_leftright::@2 play_move_leftright::@2: scope:[play_move_leftright] from play_move_leftright - [227] if((byte) play_move_leftright::key_event#0!=(const byte) KEY_DOT) goto play_move_leftright::@return + [225] if((byte) play_move_leftright::key_event#0!=(const byte) KEY_DOT) goto play_move_leftright::@return to:play_move_leftright::@3 play_move_leftright::@3: scope:[play_move_leftright] from play_move_leftright::@2 - [228] (byte) play_collision::xpos#2 ← (byte) current_xpos#22 + (byte) 1 - [229] (byte) play_collision::ypos#2 ← (byte) current_ypos#19 - [230] (byte) play_collision::orientation#2 ← (byte) current_orientation#20 - [231] (byte*) current_piece#97 ← (byte*) current_piece#15 - [232] call play_collision - [233] (byte) play_collision::return#13 ← (byte) play_collision::return#15 + [226] (byte) play_collision::xpos#2 ← (byte) current_xpos#22 + (byte) 1 + [227] (byte) play_collision::ypos#2 ← (byte) current_ypos#19 + [228] (byte) play_collision::orientation#2 ← (byte) current_orientation#20 + [229] (byte*) current_piece#97 ← (byte*) current_piece#15 + [230] call play_collision + [231] (byte) play_collision::return#13 ← (byte) play_collision::return#15 to:play_move_leftright::@7 play_move_leftright::@7: scope:[play_move_leftright] from play_move_leftright::@3 - [234] (byte~) play_move_leftright::$4 ← (byte) play_collision::return#13 - [235] if((byte~) play_move_leftright::$4!=(const byte) COLLISION_NONE) goto play_move_leftright::@return + [232] (byte~) play_move_leftright::$4 ← (byte) play_collision::return#13 + [233] if((byte~) play_move_leftright::$4!=(const byte) COLLISION_NONE) goto play_move_leftright::@return to:play_move_leftright::@4 play_move_leftright::@4: scope:[play_move_leftright] from play_move_leftright::@7 - [236] (byte) current_xpos#6 ← ++ (byte) current_xpos#22 + [234] (byte) current_xpos#6 ← ++ (byte) current_xpos#22 to:play_move_leftright::@return play_move_leftright::@return: scope:[play_move_leftright] from play_move_leftright::@2 play_move_leftright::@4 play_move_leftright::@5 play_move_leftright::@6 play_move_leftright::@7 - [237] (byte) current_xpos#26 ← phi( play_move_leftright::@6/(byte) current_xpos#22 play_move_leftright::@4/(byte) current_xpos#6 play_move_leftright::@5/(byte) current_xpos#8 play_move_leftright::@7/(byte) current_xpos#22 play_move_leftright::@2/(byte) current_xpos#22 ) - [237] (byte) play_move_leftright::return#2 ← phi( play_move_leftright::@6/(byte) 0 play_move_leftright::@4/(byte) 1 play_move_leftright::@5/(byte) 1 play_move_leftright::@7/(byte) 0 play_move_leftright::@2/(byte) 0 ) - [238] return + [235] (byte) current_xpos#26 ← phi( play_move_leftright::@6/(byte) current_xpos#22 play_move_leftright::@4/(byte) current_xpos#6 play_move_leftright::@5/(byte) current_xpos#8 play_move_leftright::@7/(byte) current_xpos#22 play_move_leftright::@2/(byte) current_xpos#22 ) + [235] (byte) play_move_leftright::return#2 ← phi( play_move_leftright::@6/(byte) 0 play_move_leftright::@4/(byte) 1 play_move_leftright::@5/(byte) 1 play_move_leftright::@7/(byte) 0 play_move_leftright::@2/(byte) 0 ) + [236] return to:@return play_move_leftright::@1: scope:[play_move_leftright] from play_move_leftright - [239] (byte) play_collision::xpos#1 ← (byte) current_xpos#22 - (byte) 1 - [240] (byte) play_collision::ypos#1 ← (byte) current_ypos#19 - [241] (byte) play_collision::orientation#1 ← (byte) current_orientation#20 - [242] (byte*) current_piece#96 ← (byte*) current_piece#15 - [243] call play_collision - [244] (byte) play_collision::return#1 ← (byte) play_collision::return#15 + [237] (byte) play_collision::xpos#1 ← (byte) current_xpos#22 - (byte) 1 + [238] (byte) play_collision::ypos#1 ← (byte) current_ypos#19 + [239] (byte) play_collision::orientation#1 ← (byte) current_orientation#20 + [240] (byte*) current_piece#96 ← (byte*) current_piece#15 + [241] call play_collision + [242] (byte) play_collision::return#1 ← (byte) play_collision::return#15 to:play_move_leftright::@6 play_move_leftright::@6: scope:[play_move_leftright] from play_move_leftright::@1 - [245] (byte~) play_move_leftright::$8 ← (byte) play_collision::return#1 - [246] if((byte~) play_move_leftright::$8!=(const byte) COLLISION_NONE) goto play_move_leftright::@return + [243] (byte~) play_move_leftright::$8 ← (byte) play_collision::return#1 + [244] if((byte~) play_move_leftright::$8!=(const byte) COLLISION_NONE) goto play_move_leftright::@return to:play_move_leftright::@5 play_move_leftright::@5: scope:[play_move_leftright] from play_move_leftright::@6 - [247] (byte) current_xpos#8 ← -- (byte) current_xpos#22 + [245] (byte) current_xpos#8 ← -- (byte) current_xpos#22 to:play_move_leftright::@return (byte()) play_move_down((byte) play_move_down::key_event) play_move_down: scope:[play_move_down] from play_movement - [248] (byte) current_movedown_counter#12 ← ++ (byte) current_movedown_counter#16 - [249] if((byte) play_move_down::key_event#0!=(const byte) KEY_SPACE) goto play_move_down::@1 + [246] (byte) current_movedown_counter#12 ← ++ (byte) current_movedown_counter#16 + [247] if((byte) play_move_down::key_event#0!=(const byte) KEY_SPACE) goto play_move_down::@1 to:play_move_down::@4 play_move_down::@4: scope:[play_move_down] from play_move_down - [250] phi() + [248] phi() to:play_move_down::@1 play_move_down::@1: scope:[play_move_down] from play_move_down play_move_down::@4 - [251] (byte) play_move_down::movedown#10 ← phi( play_move_down/(byte) 0 play_move_down::@4/(byte) 1 ) - [252] call keyboard_event_pressed - [253] (byte) keyboard_event_pressed::return#12 ← (byte) keyboard_event_pressed::return#11 + [249] (byte) play_move_down::movedown#10 ← phi( play_move_down/(byte) 0 play_move_down::@4/(byte) 1 ) + [250] call keyboard_event_pressed + [251] (byte) keyboard_event_pressed::return#12 ← (byte) keyboard_event_pressed::return#11 to:play_move_down::@12 play_move_down::@12: scope:[play_move_down] from play_move_down::@1 - [254] (byte~) play_move_down::$2 ← (byte) keyboard_event_pressed::return#12 - [255] if((byte~) play_move_down::$2==(byte) 0) goto play_move_down::@2 + [252] (byte~) play_move_down::$2 ← (byte) keyboard_event_pressed::return#12 + [253] if((byte~) play_move_down::$2==(byte) 0) goto play_move_down::@2 to:play_move_down::@5 play_move_down::@5: scope:[play_move_down] from play_move_down::@12 - [256] if((byte) current_movedown_counter#12<(const byte) current_movedown_fast) goto play_move_down::@2 + [254] if((byte) current_movedown_counter#12<(const byte) current_movedown_fast) goto play_move_down::@2 to:play_move_down::@6 play_move_down::@6: scope:[play_move_down] from play_move_down::@5 - [257] (byte) play_move_down::movedown#2 ← ++ (byte) play_move_down::movedown#10 + [255] (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::@12 play_move_down::@5 play_move_down::@6 - [258] (byte) play_move_down::movedown#7 ← phi( play_move_down::@12/(byte) play_move_down::movedown#10 play_move_down::@5/(byte) play_move_down::movedown#10 play_move_down::@6/(byte) play_move_down::movedown#2 ) - [259] if((byte) current_movedown_counter#12<(byte) current_movedown_slow#14) goto play_move_down::@3 + [256] (byte) play_move_down::movedown#7 ← phi( play_move_down::@12/(byte) play_move_down::movedown#10 play_move_down::@5/(byte) play_move_down::movedown#10 play_move_down::@6/(byte) play_move_down::movedown#2 ) + [257] if((byte) current_movedown_counter#12<(byte) current_movedown_slow#14) goto play_move_down::@3 to:play_move_down::@7 play_move_down::@7: scope:[play_move_down] from play_move_down::@2 - [260] (byte) play_move_down::movedown#3 ← ++ (byte) play_move_down::movedown#7 + [258] (byte) play_move_down::movedown#3 ← ++ (byte) play_move_down::movedown#7 to:play_move_down::@3 play_move_down::@3: scope:[play_move_down] from play_move_down::@2 play_move_down::@7 - [261] (byte) play_move_down::movedown#6 ← phi( play_move_down::@2/(byte) play_move_down::movedown#7 play_move_down::@7/(byte) play_move_down::movedown#3 ) - [262] if((byte) play_move_down::movedown#6==(byte) 0) goto play_move_down::@return + [259] (byte) play_move_down::movedown#6 ← phi( play_move_down::@2/(byte) play_move_down::movedown#7 play_move_down::@7/(byte) play_move_down::movedown#3 ) + [260] if((byte) play_move_down::movedown#6==(byte) 0) goto play_move_down::@return to:play_move_down::@8 play_move_down::@8: scope:[play_move_down] from play_move_down::@3 - [263] (byte) play_collision::ypos#0 ← (byte) current_ypos#11 + (byte) 1 - [264] (byte) play_collision::xpos#0 ← (byte) current_xpos#14 - [265] (byte) play_collision::orientation#0 ← (byte) current_orientation#13 - [266] (byte*) current_piece#95 ← (byte*) current_piece#10 - [267] call play_collision - [268] (byte) play_collision::return#0 ← (byte) play_collision::return#15 + [261] (byte) play_collision::ypos#0 ← (byte) current_ypos#11 + (byte) 1 + [262] (byte) play_collision::xpos#0 ← (byte) current_xpos#14 + [263] (byte) play_collision::orientation#0 ← (byte) current_orientation#13 + [264] (byte*) current_piece#95 ← (byte*) current_piece#10 + [265] call play_collision + [266] (byte) play_collision::return#0 ← (byte) play_collision::return#15 to:play_move_down::@13 play_move_down::@13: scope:[play_move_down] from play_move_down::@8 - [269] (byte~) play_move_down::$12 ← (byte) play_collision::return#0 - [270] if((byte~) play_move_down::$12==(const byte) COLLISION_NONE) goto play_move_down::@10 + [267] (byte~) play_move_down::$12 ← (byte) play_collision::return#0 + [268] if((byte~) play_move_down::$12==(const byte) COLLISION_NONE) goto play_move_down::@10 to:play_move_down::@9 play_move_down::@9: scope:[play_move_down] from play_move_down::@13 - [271] phi() - [272] call play_lock_current + [269] phi() + [270] call play_lock_current to:play_move_down::@14 play_move_down::@14: scope:[play_move_down] from play_move_down::@9 - [273] phi() - [274] call play_remove_lines - [275] (byte) play_remove_lines::return#0 ← (byte) play_remove_lines::removed#8 + [271] phi() + [272] call play_remove_lines + [273] (byte) play_remove_lines::return#0 ← (byte) play_remove_lines::removed#8 to:play_move_down::@15 play_move_down::@15: scope:[play_move_down] from play_move_down::@14 - [276] (byte) play_move_down::removed#0 ← (byte) play_remove_lines::return#0 - [277] (byte) play_update_score::removed#0 ← (byte) play_move_down::removed#0 - [278] call play_update_score + [274] (byte) play_move_down::removed#0 ← (byte) play_remove_lines::return#0 + [275] (byte) play_update_score::removed#0 ← (byte) play_move_down::removed#0 + [276] call play_update_score to:play_move_down::@16 play_move_down::@16: scope:[play_move_down] from play_move_down::@15 - [279] phi() - [280] call play_spawn_current + [277] phi() + [278] call play_spawn_current to:play_move_down::@17 play_move_down::@17: scope:[play_move_down] from play_move_down::@16 - [281] (byte*) current_piece#92 ← (byte*)*((const word*) PIECES + (byte~) play_spawn_current::$7) - [282] (byte*) current_piece_gfx#116 ← (byte*)*((const word*) PIECES + (byte~) play_spawn_current::$7) + [279] (byte*) current_piece#92 ← (byte*)*((const word*) PIECES + (byte~) play_spawn_current::$7) + [280] (byte*) current_piece_gfx#116 ← (byte*)*((const word*) PIECES + (byte~) play_spawn_current::$7) to:play_move_down::@11 play_move_down::@11: scope:[play_move_down] from play_move_down::@10 play_move_down::@17 - [283] (byte) next_piece_idx#30 ← phi( play_move_down::@10/(byte) next_piece_idx#10 play_move_down::@17/(byte) play_spawn_current::piece_idx#2 ) - [283] (byte) game_over#27 ← phi( play_move_down::@10/(byte) game_over#10 play_move_down::@17/(byte) game_over#52 ) - [283] (byte) current_xpos#43 ← phi( play_move_down::@10/(byte) current_xpos#14 play_move_down::@17/(byte) current_xpos#100 ) - [283] (byte*) current_piece_gfx#35 ← phi( play_move_down::@10/(byte*) current_piece_gfx#13 play_move_down::@17/(byte*) current_piece_gfx#116 ) - [283] (byte) current_orientation#37 ← phi( play_move_down::@10/(byte) current_orientation#13 play_move_down::@17/(byte) 0 ) - [283] (byte) current_piece_char#29 ← phi( play_move_down::@10/(byte) current_piece_char#10 play_move_down::@17/(byte) current_piece_char#5 ) - [283] (byte*) current_piece#28 ← phi( play_move_down::@10/(byte*) current_piece#10 play_move_down::@17/(byte*) current_piece#92 ) - [283] (byte) level_bcd#31 ← phi( play_move_down::@10/(byte) level_bcd#11 play_move_down::@17/(byte) level_bcd#19 ) - [283] (byte) current_movedown_slow#37 ← phi( play_move_down::@10/(byte) current_movedown_slow#14 play_move_down::@17/(byte) current_movedown_slow#23 ) - [283] (byte) level#33 ← phi( play_move_down::@10/(byte) level#10 play_move_down::@17/(byte) level#19 ) - [283] (word) lines_bcd#26 ← phi( play_move_down::@10/(word) lines_bcd#19 play_move_down::@17/(word) lines_bcd#17 ) - [283] (byte) current_ypos#38 ← phi( play_move_down::@10/(byte) current_ypos#3 play_move_down::@17/(byte) current_ypos#6 ) + [281] (byte) next_piece_idx#30 ← phi( play_move_down::@10/(byte) next_piece_idx#10 play_move_down::@17/(byte) play_spawn_current::piece_idx#2 ) + [281] (byte) game_over#27 ← phi( play_move_down::@10/(byte) game_over#10 play_move_down::@17/(byte) game_over#52 ) + [281] (byte) current_xpos#43 ← phi( play_move_down::@10/(byte) current_xpos#14 play_move_down::@17/(byte) current_xpos#100 ) + [281] (byte*) current_piece_gfx#35 ← phi( play_move_down::@10/(byte*) current_piece_gfx#13 play_move_down::@17/(byte*) current_piece_gfx#116 ) + [281] (byte) current_orientation#37 ← phi( play_move_down::@10/(byte) current_orientation#13 play_move_down::@17/(byte) 0 ) + [281] (byte) current_piece_char#29 ← phi( play_move_down::@10/(byte) current_piece_char#10 play_move_down::@17/(byte) current_piece_char#5 ) + [281] (byte*) current_piece#28 ← phi( play_move_down::@10/(byte*) current_piece#10 play_move_down::@17/(byte*) current_piece#92 ) + [281] (byte) level_bcd#31 ← phi( play_move_down::@10/(byte) level_bcd#11 play_move_down::@17/(byte) level_bcd#19 ) + [281] (byte) current_movedown_slow#37 ← phi( play_move_down::@10/(byte) current_movedown_slow#14 play_move_down::@17/(byte) current_movedown_slow#23 ) + [281] (byte) level#33 ← phi( play_move_down::@10/(byte) level#10 play_move_down::@17/(byte) level#19 ) + [281] (word) lines_bcd#26 ← phi( play_move_down::@10/(word) lines_bcd#19 play_move_down::@17/(word) lines_bcd#17 ) + [281] (byte) current_ypos#38 ← phi( play_move_down::@10/(byte) current_ypos#3 play_move_down::@17/(byte) current_ypos#6 ) to:play_move_down::@return play_move_down::@return: scope:[play_move_down] from play_move_down::@11 play_move_down::@3 - [284] (byte) next_piece_idx#16 ← phi( play_move_down::@11/(byte) next_piece_idx#30 play_move_down::@3/(byte) next_piece_idx#10 ) - [284] (byte) game_over#15 ← phi( play_move_down::@11/(byte) game_over#27 play_move_down::@3/(byte) game_over#10 ) - [284] (byte) current_xpos#22 ← phi( play_move_down::@11/(byte) current_xpos#43 play_move_down::@3/(byte) current_xpos#14 ) - [284] (byte*) current_piece_gfx#20 ← phi( play_move_down::@11/(byte*) current_piece_gfx#35 play_move_down::@3/(byte*) current_piece_gfx#13 ) - [284] (byte) current_orientation#20 ← phi( play_move_down::@11/(byte) current_orientation#37 play_move_down::@3/(byte) current_orientation#13 ) - [284] (byte) current_piece_char#16 ← phi( play_move_down::@11/(byte) current_piece_char#29 play_move_down::@3/(byte) current_piece_char#10 ) - [284] (byte*) current_piece#15 ← phi( play_move_down::@11/(byte*) current_piece#28 play_move_down::@3/(byte*) current_piece#10 ) - [284] (byte) level_bcd#17 ← phi( play_move_down::@11/(byte) level_bcd#31 play_move_down::@3/(byte) level_bcd#11 ) - [284] (byte) current_movedown_slow#21 ← phi( play_move_down::@11/(byte) current_movedown_slow#37 play_move_down::@3/(byte) current_movedown_slow#14 ) - [284] (byte) level#17 ← phi( play_move_down::@11/(byte) level#33 play_move_down::@3/(byte) level#10 ) - [284] (word) lines_bcd#15 ← phi( play_move_down::@11/(word) lines_bcd#26 play_move_down::@3/(word) lines_bcd#19 ) - [284] (byte) current_ypos#19 ← phi( play_move_down::@11/(byte) current_ypos#38 play_move_down::@3/(byte) current_ypos#11 ) - [284] (byte) current_movedown_counter#14 ← phi( play_move_down::@11/(byte) 0 play_move_down::@3/(byte) current_movedown_counter#12 ) - [284] (byte) play_move_down::return#3 ← phi( play_move_down::@11/(byte) 1 play_move_down::@3/(byte) 0 ) - [285] return + [282] (byte) next_piece_idx#16 ← phi( play_move_down::@11/(byte) next_piece_idx#30 play_move_down::@3/(byte) next_piece_idx#10 ) + [282] (byte) game_over#15 ← phi( play_move_down::@11/(byte) game_over#27 play_move_down::@3/(byte) game_over#10 ) + [282] (byte) current_xpos#22 ← phi( play_move_down::@11/(byte) current_xpos#43 play_move_down::@3/(byte) current_xpos#14 ) + [282] (byte*) current_piece_gfx#20 ← phi( play_move_down::@11/(byte*) current_piece_gfx#35 play_move_down::@3/(byte*) current_piece_gfx#13 ) + [282] (byte) current_orientation#20 ← phi( play_move_down::@11/(byte) current_orientation#37 play_move_down::@3/(byte) current_orientation#13 ) + [282] (byte) current_piece_char#16 ← phi( play_move_down::@11/(byte) current_piece_char#29 play_move_down::@3/(byte) current_piece_char#10 ) + [282] (byte*) current_piece#15 ← phi( play_move_down::@11/(byte*) current_piece#28 play_move_down::@3/(byte*) current_piece#10 ) + [282] (byte) level_bcd#17 ← phi( play_move_down::@11/(byte) level_bcd#31 play_move_down::@3/(byte) level_bcd#11 ) + [282] (byte) current_movedown_slow#21 ← phi( play_move_down::@11/(byte) current_movedown_slow#37 play_move_down::@3/(byte) current_movedown_slow#14 ) + [282] (byte) level#17 ← phi( play_move_down::@11/(byte) level#33 play_move_down::@3/(byte) level#10 ) + [282] (word) lines_bcd#15 ← phi( play_move_down::@11/(word) lines_bcd#26 play_move_down::@3/(word) lines_bcd#19 ) + [282] (byte) current_ypos#19 ← phi( play_move_down::@11/(byte) current_ypos#38 play_move_down::@3/(byte) current_ypos#11 ) + [282] (byte) current_movedown_counter#14 ← phi( play_move_down::@11/(byte) 0 play_move_down::@3/(byte) current_movedown_counter#12 ) + [282] (byte) play_move_down::return#3 ← phi( play_move_down::@11/(byte) 1 play_move_down::@3/(byte) 0 ) + [283] return to:@return play_move_down::@10: scope:[play_move_down] from play_move_down::@13 - [286] (byte) current_ypos#3 ← ++ (byte) current_ypos#11 + [284] (byte) current_ypos#3 ← ++ (byte) current_ypos#11 to:play_move_down::@11 (void()) play_spawn_current() play_spawn_current: scope:[play_spawn_current] from main::@12 main::@13 play_move_down::@16 - [287] (byte) game_over#65 ← phi( main::@12/(byte) 0 main::@13/(byte) game_over#52 play_move_down::@16/(byte) game_over#10 ) - [287] (byte) next_piece_idx#17 ← phi( main::@12/(byte) 0 main::@13/(byte) play_spawn_current::piece_idx#2 play_move_down::@16/(byte) next_piece_idx#10 ) - [288] (byte) play_spawn_current::current_piece_idx#0 ← (byte) next_piece_idx#17 - [289] (byte~) play_spawn_current::$7 ← (byte) play_spawn_current::current_piece_idx#0 << (byte) 1 - [290] (byte) current_piece_char#5 ← *((const byte*) PIECES_CHARS + (byte) play_spawn_current::current_piece_idx#0) - [291] (byte) current_xpos#100 ← *((const byte*) PIECES_START_X + (byte) play_spawn_current::current_piece_idx#0) - [292] (byte) current_ypos#6 ← *((const byte*) PIECES_START_Y + (byte) play_spawn_current::current_piece_idx#0) - [293] (byte) play_collision::xpos#4 ← (byte) current_xpos#100 - [294] (byte) play_collision::ypos#4 ← (byte) current_ypos#6 - [295] (byte*) current_piece#99 ← (byte*)*((const word*) PIECES + (byte~) play_spawn_current::$7) - [296] call play_collision - [297] (byte) play_collision::return#10 ← (byte) play_collision::return#15 + [285] (byte) game_over#65 ← phi( main::@12/(byte) 0 main::@13/(byte) game_over#52 play_move_down::@16/(byte) game_over#10 ) + [285] (byte) next_piece_idx#17 ← phi( main::@12/(byte) 0 main::@13/(byte) play_spawn_current::piece_idx#2 play_move_down::@16/(byte) next_piece_idx#10 ) + [286] (byte) play_spawn_current::current_piece_idx#0 ← (byte) next_piece_idx#17 + [287] (byte~) play_spawn_current::$7 ← (byte) play_spawn_current::current_piece_idx#0 << (byte) 1 + [288] (byte) current_piece_char#5 ← *((const byte*) PIECES_CHARS + (byte) play_spawn_current::current_piece_idx#0) + [289] (byte) current_xpos#100 ← *((const byte*) PIECES_START_X + (byte) play_spawn_current::current_piece_idx#0) + [290] (byte) current_ypos#6 ← *((const byte*) PIECES_START_Y + (byte) play_spawn_current::current_piece_idx#0) + [291] (byte) play_collision::xpos#4 ← (byte) current_xpos#100 + [292] (byte) play_collision::ypos#4 ← (byte) current_ypos#6 + [293] (byte*) current_piece#99 ← (byte*)*((const word*) PIECES + (byte~) play_spawn_current::$7) + [294] call play_collision + [295] (byte) play_collision::return#10 ← (byte) play_collision::return#15 to:play_spawn_current::@4 play_spawn_current::@4: scope:[play_spawn_current] from play_spawn_current - [298] (byte~) play_spawn_current::$1 ← (byte) play_collision::return#10 - [299] if((byte~) play_spawn_current::$1!=(const byte) COLLISION_PLAYFIELD) goto play_spawn_current::@5 + [296] (byte~) play_spawn_current::$1 ← (byte) play_collision::return#10 + [297] if((byte~) play_spawn_current::$1!=(const byte) COLLISION_PLAYFIELD) goto play_spawn_current::@5 to:play_spawn_current::@1 play_spawn_current::@5: scope:[play_spawn_current] from play_spawn_current::@4 - [300] phi() + [298] phi() to:play_spawn_current::@1 play_spawn_current::@1: scope:[play_spawn_current] from play_spawn_current::@4 play_spawn_current::@5 - [301] (byte) game_over#52 ← phi( play_spawn_current::@5/(byte) game_over#65 play_spawn_current::@4/(byte) 1 ) + [299] (byte) game_over#52 ← phi( play_spawn_current::@5/(byte) game_over#65 play_spawn_current::@4/(byte) 1 ) to:play_spawn_current::@2 play_spawn_current::@2: scope:[play_spawn_current] from play_spawn_current::@1 play_spawn_current::@3 - [302] (byte) play_spawn_current::piece_idx#2 ← phi( play_spawn_current::@1/(byte) 7 play_spawn_current::@3/(byte) play_spawn_current::piece_idx#1 ) - [303] if((byte) play_spawn_current::piece_idx#2==(byte) 7) goto play_spawn_current::sid_rnd1 + [300] (byte) play_spawn_current::piece_idx#2 ← phi( play_spawn_current::@1/(byte) 7 play_spawn_current::@3/(byte) play_spawn_current::piece_idx#1 ) + [301] if((byte) play_spawn_current::piece_idx#2==(byte) 7) goto play_spawn_current::sid_rnd1 to:play_spawn_current::@return play_spawn_current::@return: scope:[play_spawn_current] from play_spawn_current::@2 - [304] return + [302] return to:@return play_spawn_current::sid_rnd1: scope:[play_spawn_current] from play_spawn_current::@2 - [305] (byte) play_spawn_current::sid_rnd1_return#0 ← *((const byte*) SID_VOICE3_OSC) + [303] (byte) play_spawn_current::sid_rnd1_return#0 ← *((const byte*) SID_VOICE3_OSC) to:play_spawn_current::@3 play_spawn_current::@3: scope:[play_spawn_current] from play_spawn_current::sid_rnd1 - [306] (byte) play_spawn_current::piece_idx#1 ← (byte) play_spawn_current::sid_rnd1_return#0 & (byte) 7 + [304] (byte) play_spawn_current::piece_idx#1 ← (byte) play_spawn_current::sid_rnd1_return#0 & (byte) 7 to:play_spawn_current::@2 (void()) play_update_score((byte) play_update_score::removed) play_update_score: scope:[play_update_score] from play_move_down::@15 - [307] if((byte) play_update_score::removed#0==(byte) 0) goto play_update_score::@return + [305] if((byte) play_update_score::removed#0==(byte) 0) goto play_update_score::@return to:play_update_score::@1 play_update_score::@1: scope:[play_update_score] from play_update_score - [308] (byte~) play_update_score::$2 ← < (word) lines_bcd#19 - [309] (byte) play_update_score::lines_before#0 ← (byte~) play_update_score::$2 & (byte) $f0 - [310] (byte~) play_update_score::$9 ← (byte) play_update_score::removed#0 << (byte) 2 - [311] (dword) play_update_score::add_bcd#0 ← *((const dword*) score_add_bcd + (byte~) play_update_score::$9) + [306] (byte~) play_update_score::$2 ← < (word) lines_bcd#19 + [307] (byte) play_update_score::lines_before#0 ← (byte~) play_update_score::$2 & (byte) $f0 + [308] (byte~) play_update_score::$9 ← (byte) play_update_score::removed#0 << (byte) 2 + [309] (dword) play_update_score::add_bcd#0 ← *((const dword*) score_add_bcd + (byte~) play_update_score::$9) asm { sed } - [313] (word) lines_bcd#29 ← (word) lines_bcd#19 + (byte) play_update_score::removed#0 - [314] (dword) score_bcd ← (dword) score_bcd + (dword) play_update_score::add_bcd#0 + [311] (word) lines_bcd#29 ← (word) lines_bcd#19 + (byte) play_update_score::removed#0 + [312] (dword) score_bcd ← (dword) score_bcd + (dword) play_update_score::add_bcd#0 asm { cld } - [316] (byte~) play_update_score::$4 ← < (word) lines_bcd#29 - [317] (byte) play_update_score::lines_after#0 ← (byte~) play_update_score::$4 & (byte) $f0 - [318] if((byte) play_update_score::lines_before#0==(byte) play_update_score::lines_after#0) goto play_update_score::@return + [314] (byte~) play_update_score::$4 ← < (word) lines_bcd#29 + [315] (byte) play_update_score::lines_after#0 ← (byte~) play_update_score::$4 & (byte) $f0 + [316] if((byte) play_update_score::lines_before#0==(byte) play_update_score::lines_after#0) goto play_update_score::@return to:play_update_score::@2 play_update_score::@2: scope:[play_update_score] from play_update_score::@1 - [319] phi() - [320] call play_increase_level + [317] phi() + [318] call play_increase_level to:play_update_score::@return play_update_score::@return: scope:[play_update_score] from play_update_score play_update_score::@1 play_update_score::@2 - [321] (byte) level_bcd#19 ← phi( play_update_score/(byte) level_bcd#11 play_update_score::@1/(byte) level_bcd#11 play_update_score::@2/(byte) level_bcd#62 ) - [321] (byte) current_movedown_slow#23 ← phi( play_update_score/(byte) current_movedown_slow#14 play_update_score::@1/(byte) current_movedown_slow#14 play_update_score::@2/(byte) current_movedown_slow#65 ) - [321] (byte) level#19 ← phi( play_update_score/(byte) level#10 play_update_score::@1/(byte) level#10 play_update_score::@2/(byte) level#21 ) - [321] (word) lines_bcd#17 ← phi( play_update_score/(word) lines_bcd#19 play_update_score::@1/(word) lines_bcd#29 play_update_score::@2/(word) lines_bcd#29 ) - [322] return + [319] (byte) level_bcd#19 ← phi( play_update_score/(byte) level_bcd#11 play_update_score::@1/(byte) level_bcd#11 play_update_score::@2/(byte) level_bcd#62 ) + [319] (byte) current_movedown_slow#23 ← phi( play_update_score/(byte) current_movedown_slow#14 play_update_score::@1/(byte) current_movedown_slow#14 play_update_score::@2/(byte) current_movedown_slow#65 ) + [319] (byte) level#19 ← phi( play_update_score/(byte) level#10 play_update_score::@1/(byte) level#10 play_update_score::@2/(byte) level#21 ) + [319] (word) lines_bcd#17 ← phi( play_update_score/(word) lines_bcd#19 play_update_score::@1/(word) lines_bcd#29 play_update_score::@2/(word) lines_bcd#29 ) + [320] return to:@return (void()) play_increase_level() play_increase_level: scope:[play_increase_level] from play_update_score::@2 - [323] (byte) level#21 ← ++ (byte) level#10 - [324] if((byte) level#21>=(byte) $1d+(byte) 1) goto play_increase_level::@1 + [321] (byte) level#21 ← ++ (byte) level#10 + [322] if((byte) level#21>=(byte) $1d+(byte) 1) goto play_increase_level::@1 to:play_increase_level::@3 play_increase_level::@3: scope:[play_increase_level] from play_increase_level - [325] (byte) current_movedown_slow#10 ← *((const byte*) MOVEDOWN_SLOW_SPEEDS + (byte) level#21) + [323] (byte) current_movedown_slow#10 ← *((const byte*) MOVEDOWN_SLOW_SPEEDS + (byte) level#21) to:play_increase_level::@1 play_increase_level::@1: scope:[play_increase_level] from play_increase_level play_increase_level::@3 - [326] (byte) current_movedown_slow#65 ← phi( play_increase_level/(byte) 1 play_increase_level::@3/(byte) current_movedown_slow#10 ) - [327] (byte) level_bcd#21 ← ++ (byte) level_bcd#11 - [328] (byte~) play_increase_level::$1 ← (byte) level_bcd#21 & (byte) $f - [329] if((byte~) play_increase_level::$1!=(byte) $a) goto play_increase_level::@2 + [324] (byte) current_movedown_slow#65 ← phi( play_increase_level/(byte) 1 play_increase_level::@3/(byte) current_movedown_slow#10 ) + [325] (byte) level_bcd#21 ← ++ (byte) level_bcd#11 + [326] (byte~) play_increase_level::$1 ← (byte) level_bcd#21 & (byte) $f + [327] if((byte~) play_increase_level::$1!=(byte) $a) goto play_increase_level::@2 to:play_increase_level::@4 play_increase_level::@4: scope:[play_increase_level] from play_increase_level::@1 - [330] (byte) level_bcd#8 ← (byte) level_bcd#21 + (byte) 6 + [328] (byte) level_bcd#8 ← (byte) level_bcd#21 + (byte) 6 to:play_increase_level::@2 play_increase_level::@2: scope:[play_increase_level] from play_increase_level::@1 play_increase_level::@4 - [331] (byte) level_bcd#62 ← phi( play_increase_level::@1/(byte) level_bcd#21 play_increase_level::@4/(byte) level_bcd#8 ) + [329] (byte) level_bcd#62 ← phi( play_increase_level::@1/(byte) level_bcd#21 play_increase_level::@4/(byte) level_bcd#8 ) asm { sed } to:play_increase_level::@5 play_increase_level::@5: scope:[play_increase_level] from play_increase_level::@2 play_increase_level::@5 - [333] (byte) play_increase_level::b#2 ← phi( play_increase_level::@2/(byte) 0 play_increase_level::@5/(byte) play_increase_level::b#1 ) - [334] (byte~) play_increase_level::$5 ← (byte) play_increase_level::b#2 << (byte) 2 - [335] *((const dword*) score_add_bcd + (byte~) play_increase_level::$5) ← *((const dword*) score_add_bcd + (byte~) play_increase_level::$5) + *((const dword*) SCORE_BASE_BCD + (byte~) play_increase_level::$5) - [336] (byte) play_increase_level::b#1 ← ++ (byte) play_increase_level::b#2 - [337] if((byte) play_increase_level::b#1!=(byte) 5) goto play_increase_level::@5 + [331] (byte) play_increase_level::b#2 ← phi( play_increase_level::@2/(byte) 0 play_increase_level::@5/(byte) play_increase_level::b#1 ) + [332] (byte~) play_increase_level::$5 ← (byte) play_increase_level::b#2 << (byte) 2 + [333] *((const dword*) score_add_bcd + (byte~) play_increase_level::$5) ← *((const dword*) score_add_bcd + (byte~) play_increase_level::$5) + *((const dword*) SCORE_BASE_BCD + (byte~) play_increase_level::$5) + [334] (byte) play_increase_level::b#1 ← ++ (byte) play_increase_level::b#2 + [335] if((byte) play_increase_level::b#1!=(byte) 5) goto play_increase_level::@5 to:play_increase_level::@6 play_increase_level::@6: scope:[play_increase_level] from play_increase_level::@5 asm { cld } to:play_increase_level::@return play_increase_level::@return: scope:[play_increase_level] from play_increase_level::@6 - [339] return + [337] return to:@return (byte()) play_remove_lines() play_remove_lines: scope:[play_remove_lines] from play_move_down::@14 - [340] phi() + [338] phi() to:play_remove_lines::@1 play_remove_lines::@1: scope:[play_remove_lines] from play_remove_lines play_remove_lines::@6 - [341] (byte) play_remove_lines::removed#11 ← phi( play_remove_lines/(byte) 0 play_remove_lines::@6/(byte) play_remove_lines::removed#8 ) - [341] (byte) play_remove_lines::y#8 ← phi( play_remove_lines/(byte) 0 play_remove_lines::@6/(byte) play_remove_lines::y#1 ) - [341] (byte) play_remove_lines::w#12 ← phi( play_remove_lines/(const byte) PLAYFIELD_LINES*(const byte) PLAYFIELD_COLS-(byte) 1 play_remove_lines::@6/(byte) play_remove_lines::w#11 ) - [341] (byte) play_remove_lines::r#3 ← phi( play_remove_lines/(const byte) PLAYFIELD_LINES*(const byte) PLAYFIELD_COLS-(byte) 1 play_remove_lines::@6/(byte) play_remove_lines::r#1 ) + [339] (byte) play_remove_lines::removed#11 ← phi( play_remove_lines/(byte) 0 play_remove_lines::@6/(byte) play_remove_lines::removed#8 ) + [339] (byte) play_remove_lines::y#8 ← phi( play_remove_lines/(byte) 0 play_remove_lines::@6/(byte) play_remove_lines::y#1 ) + [339] (byte) play_remove_lines::w#12 ← phi( play_remove_lines/(const byte) PLAYFIELD_LINES*(const byte) PLAYFIELD_COLS-(byte) 1 play_remove_lines::@6/(byte) play_remove_lines::w#11 ) + [339] (byte) play_remove_lines::r#3 ← phi( play_remove_lines/(const byte) PLAYFIELD_LINES*(const byte) PLAYFIELD_COLS-(byte) 1 play_remove_lines::@6/(byte) play_remove_lines::r#1 ) to:play_remove_lines::@2 play_remove_lines::@2: scope:[play_remove_lines] from play_remove_lines::@1 play_remove_lines::@3 - [342] (byte) play_remove_lines::full#4 ← phi( play_remove_lines::@1/(byte) 1 play_remove_lines::@3/(byte) play_remove_lines::full#2 ) - [342] (byte) play_remove_lines::x#2 ← phi( play_remove_lines::@1/(byte) 0 play_remove_lines::@3/(byte) play_remove_lines::x#1 ) - [342] (byte) play_remove_lines::w#4 ← phi( play_remove_lines::@1/(byte) play_remove_lines::w#12 play_remove_lines::@3/(byte) play_remove_lines::w#1 ) - [342] (byte) play_remove_lines::r#2 ← phi( play_remove_lines::@1/(byte) play_remove_lines::r#3 play_remove_lines::@3/(byte) play_remove_lines::r#1 ) - [343] (byte) play_remove_lines::c#0 ← *((const byte*) playfield + (byte) play_remove_lines::r#2) - [344] (byte) play_remove_lines::r#1 ← -- (byte) play_remove_lines::r#2 - [345] if((byte) play_remove_lines::c#0!=(byte) 0) goto play_remove_lines::@9 + [340] (byte) play_remove_lines::full#4 ← phi( play_remove_lines::@1/(byte) 1 play_remove_lines::@3/(byte) play_remove_lines::full#2 ) + [340] (byte) play_remove_lines::x#2 ← phi( play_remove_lines::@1/(byte) 0 play_remove_lines::@3/(byte) play_remove_lines::x#1 ) + [340] (byte) play_remove_lines::w#4 ← phi( play_remove_lines::@1/(byte) play_remove_lines::w#12 play_remove_lines::@3/(byte) play_remove_lines::w#1 ) + [340] (byte) play_remove_lines::r#2 ← phi( play_remove_lines::@1/(byte) play_remove_lines::r#3 play_remove_lines::@3/(byte) play_remove_lines::r#1 ) + [341] (byte) play_remove_lines::c#0 ← *((const byte*) playfield + (byte) play_remove_lines::r#2) + [342] (byte) play_remove_lines::r#1 ← -- (byte) play_remove_lines::r#2 + [343] if((byte) play_remove_lines::c#0!=(byte) 0) goto play_remove_lines::@9 to:play_remove_lines::@3 play_remove_lines::@9: scope:[play_remove_lines] from play_remove_lines::@2 - [346] phi() + [344] phi() to:play_remove_lines::@3 play_remove_lines::@3: scope:[play_remove_lines] from play_remove_lines::@2 play_remove_lines::@9 - [347] (byte) play_remove_lines::full#2 ← phi( play_remove_lines::@9/(byte) play_remove_lines::full#4 play_remove_lines::@2/(byte) 0 ) - [348] *((const byte*) playfield + (byte) play_remove_lines::w#4) ← (byte) play_remove_lines::c#0 - [349] (byte) play_remove_lines::w#1 ← -- (byte) play_remove_lines::w#4 - [350] (byte) play_remove_lines::x#1 ← ++ (byte) play_remove_lines::x#2 - [351] if((byte) play_remove_lines::x#1!=(const byte) PLAYFIELD_COLS-(byte) 1+(byte) 1) goto play_remove_lines::@2 + [345] (byte) play_remove_lines::full#2 ← phi( play_remove_lines::@9/(byte) play_remove_lines::full#4 play_remove_lines::@2/(byte) 0 ) + [346] *((const byte*) playfield + (byte) play_remove_lines::w#4) ← (byte) play_remove_lines::c#0 + [347] (byte) play_remove_lines::w#1 ← -- (byte) play_remove_lines::w#4 + [348] (byte) play_remove_lines::x#1 ← ++ (byte) play_remove_lines::x#2 + [349] if((byte) play_remove_lines::x#1!=(const byte) PLAYFIELD_COLS-(byte) 1+(byte) 1) goto play_remove_lines::@2 to:play_remove_lines::@4 play_remove_lines::@4: scope:[play_remove_lines] from play_remove_lines::@3 - [352] if((byte) play_remove_lines::full#2!=(byte) 1) goto play_remove_lines::@6 + [350] if((byte) play_remove_lines::full#2!=(byte) 1) goto play_remove_lines::@6 to:play_remove_lines::@5 play_remove_lines::@5: scope:[play_remove_lines] from play_remove_lines::@4 - [353] (byte) play_remove_lines::w#2 ← (byte) play_remove_lines::w#1 + (const byte) PLAYFIELD_COLS - [354] (byte) play_remove_lines::removed#1 ← ++ (byte) play_remove_lines::removed#11 + [351] (byte) play_remove_lines::w#2 ← (byte) play_remove_lines::w#1 + (const byte) PLAYFIELD_COLS + [352] (byte) play_remove_lines::removed#1 ← ++ (byte) play_remove_lines::removed#11 to:play_remove_lines::@6 play_remove_lines::@6: scope:[play_remove_lines] from play_remove_lines::@4 play_remove_lines::@5 - [355] (byte) play_remove_lines::removed#8 ← phi( play_remove_lines::@4/(byte) play_remove_lines::removed#11 play_remove_lines::@5/(byte) play_remove_lines::removed#1 ) - [355] (byte) play_remove_lines::w#11 ← phi( play_remove_lines::@4/(byte) play_remove_lines::w#1 play_remove_lines::@5/(byte) play_remove_lines::w#2 ) - [356] (byte) play_remove_lines::y#1 ← ++ (byte) play_remove_lines::y#8 - [357] if((byte) play_remove_lines::y#1!=(const byte) PLAYFIELD_LINES-(byte) 1+(byte) 1) goto play_remove_lines::@1 + [353] (byte) play_remove_lines::removed#8 ← phi( play_remove_lines::@4/(byte) play_remove_lines::removed#11 play_remove_lines::@5/(byte) play_remove_lines::removed#1 ) + [353] (byte) play_remove_lines::w#11 ← phi( play_remove_lines::@4/(byte) play_remove_lines::w#1 play_remove_lines::@5/(byte) play_remove_lines::w#2 ) + [354] (byte) play_remove_lines::y#1 ← ++ (byte) play_remove_lines::y#8 + [355] if((byte) play_remove_lines::y#1!=(const byte) PLAYFIELD_LINES-(byte) 1+(byte) 1) goto play_remove_lines::@1 to:play_remove_lines::@7 play_remove_lines::@7: scope:[play_remove_lines] from play_remove_lines::@6 play_remove_lines::@8 - [358] (byte) play_remove_lines::w#6 ← phi( play_remove_lines::@8/(byte) play_remove_lines::w#3 play_remove_lines::@6/(byte) play_remove_lines::w#11 ) - [359] if((byte) play_remove_lines::w#6!=(byte) $ff) goto play_remove_lines::@8 + [356] (byte) play_remove_lines::w#6 ← phi( play_remove_lines::@8/(byte) play_remove_lines::w#3 play_remove_lines::@6/(byte) play_remove_lines::w#11 ) + [357] if((byte) play_remove_lines::w#6!=(byte) $ff) goto play_remove_lines::@8 to:play_remove_lines::@return play_remove_lines::@return: scope:[play_remove_lines] from play_remove_lines::@7 - [360] return + [358] return to:@return play_remove_lines::@8: scope:[play_remove_lines] from play_remove_lines::@7 - [361] *((const byte*) playfield + (byte) play_remove_lines::w#6) ← (byte) 0 - [362] (byte) play_remove_lines::w#3 ← -- (byte) play_remove_lines::w#6 + [359] *((const byte*) playfield + (byte) play_remove_lines::w#6) ← (byte) 0 + [360] (byte) play_remove_lines::w#3 ← -- (byte) play_remove_lines::w#6 to:play_remove_lines::@7 (void()) play_lock_current() play_lock_current: scope:[play_lock_current] from play_move_down::@9 - [363] (byte) play_lock_current::yp#0 ← (byte) current_ypos#11 + [361] (byte) play_lock_current::yp#0 ← (byte) current_ypos#11 to:play_lock_current::@1 play_lock_current::@1: scope:[play_lock_current] from play_lock_current play_lock_current::@6 - [364] (byte) play_lock_current::l#6 ← phi( play_lock_current/(byte) 0 play_lock_current::@6/(byte) play_lock_current::l#1 ) - [364] (byte) play_lock_current::i#3 ← phi( play_lock_current/(byte) 0 play_lock_current::@6/(byte) play_lock_current::i#7 ) - [364] (byte) play_lock_current::yp#2 ← phi( play_lock_current/(byte) play_lock_current::yp#0 play_lock_current::@6/(byte) play_lock_current::yp#1 ) - [365] (byte~) play_lock_current::$4 ← (byte) play_lock_current::yp#2 << (byte) 1 - [366] (byte*) play_lock_current::playfield_line#0 ← *((const byte**) playfield_lines + (byte~) play_lock_current::$4) - [367] (byte) play_lock_current::xp#0 ← (byte) current_xpos#14 + [362] (byte) play_lock_current::l#6 ← phi( play_lock_current/(byte) 0 play_lock_current::@6/(byte) play_lock_current::l#1 ) + [362] (byte) play_lock_current::i#3 ← phi( play_lock_current/(byte) 0 play_lock_current::@6/(byte) play_lock_current::i#7 ) + [362] (byte) play_lock_current::yp#2 ← phi( play_lock_current/(byte) play_lock_current::yp#0 play_lock_current::@6/(byte) play_lock_current::yp#1 ) + [363] (byte~) play_lock_current::$4 ← (byte) play_lock_current::yp#2 << (byte) 1 + [364] (byte*) play_lock_current::playfield_line#0 ← *((const byte**) playfield_lines + (byte~) play_lock_current::$4) + [365] (byte) play_lock_current::xp#0 ← (byte) current_xpos#14 to:play_lock_current::@2 play_lock_current::@2: scope:[play_lock_current] from play_lock_current::@1 play_lock_current::@7 - [368] (byte) play_lock_current::c#2 ← phi( play_lock_current::@1/(byte) 0 play_lock_current::@7/(byte) play_lock_current::c#1 ) - [368] (byte) play_lock_current::xp#2 ← phi( play_lock_current::@1/(byte) play_lock_current::xp#0 play_lock_current::@7/(byte) play_lock_current::xp#1 ) - [368] (byte) play_lock_current::i#2 ← phi( play_lock_current::@1/(byte) play_lock_current::i#3 play_lock_current::@7/(byte) play_lock_current::i#9 ) - [369] (byte) play_lock_current::i#1 ← ++ (byte) play_lock_current::i#2 - [370] if(*((byte*) current_piece_gfx#13 + (byte) play_lock_current::i#2)==(byte) 0) goto play_lock_current::@3 + [366] (byte) play_lock_current::c#2 ← phi( play_lock_current::@1/(byte) 0 play_lock_current::@7/(byte) play_lock_current::c#1 ) + [366] (byte) play_lock_current::xp#2 ← phi( play_lock_current::@1/(byte) play_lock_current::xp#0 play_lock_current::@7/(byte) play_lock_current::xp#1 ) + [366] (byte) play_lock_current::i#2 ← phi( play_lock_current::@1/(byte) play_lock_current::i#3 play_lock_current::@7/(byte) play_lock_current::i#9 ) + [367] (byte) play_lock_current::i#1 ← ++ (byte) play_lock_current::i#2 + [368] if(*((byte*) current_piece_gfx#13 + (byte) play_lock_current::i#2)==(byte) 0) goto play_lock_current::@3 to:play_lock_current::@4 play_lock_current::@4: scope:[play_lock_current] from play_lock_current::@2 - [371] *((byte*) play_lock_current::playfield_line#0 + (byte) play_lock_current::xp#2) ← (byte) current_piece_char#10 + [369] *((byte*) play_lock_current::playfield_line#0 + (byte) play_lock_current::xp#2) ← (byte) current_piece_char#10 to:play_lock_current::@3 play_lock_current::@3: scope:[play_lock_current] from play_lock_current::@2 play_lock_current::@4 - [372] (byte) play_lock_current::xp#1 ← ++ (byte) play_lock_current::xp#2 - [373] (byte) play_lock_current::c#1 ← ++ (byte) play_lock_current::c#2 - [374] if((byte) play_lock_current::c#1!=(byte) 4) goto play_lock_current::@7 + [370] (byte) play_lock_current::xp#1 ← ++ (byte) play_lock_current::xp#2 + [371] (byte) play_lock_current::c#1 ← ++ (byte) play_lock_current::c#2 + [372] if((byte) play_lock_current::c#1!=(byte) 4) goto play_lock_current::@7 to:play_lock_current::@5 play_lock_current::@5: scope:[play_lock_current] from play_lock_current::@3 - [375] (byte) play_lock_current::yp#1 ← ++ (byte) play_lock_current::yp#2 - [376] (byte) play_lock_current::l#1 ← ++ (byte) play_lock_current::l#6 - [377] if((byte) play_lock_current::l#1!=(byte) 4) goto play_lock_current::@6 + [373] (byte) play_lock_current::yp#1 ← ++ (byte) play_lock_current::yp#2 + [374] (byte) play_lock_current::l#1 ← ++ (byte) play_lock_current::l#6 + [375] if((byte) play_lock_current::l#1!=(byte) 4) goto play_lock_current::@6 to:play_lock_current::@return play_lock_current::@return: scope:[play_lock_current] from play_lock_current::@5 - [378] return + [376] return to:@return play_lock_current::@6: scope:[play_lock_current] from play_lock_current::@5 - [379] (byte) play_lock_current::i#7 ← (byte) play_lock_current::i#1 + [377] (byte) play_lock_current::i#7 ← (byte) play_lock_current::i#1 to:play_lock_current::@1 play_lock_current::@7: scope:[play_lock_current] from play_lock_current::@3 - [380] (byte) play_lock_current::i#9 ← (byte) play_lock_current::i#1 + [378] (byte) play_lock_current::i#9 ← (byte) play_lock_current::i#1 to:play_lock_current::@2 (byte()) keyboard_event_pressed((byte) keyboard_event_pressed::keycode) keyboard_event_pressed: scope:[keyboard_event_pressed] from keyboard_event_scan::@1 keyboard_event_scan::@17 keyboard_event_scan::@2 keyboard_event_scan::@3 play_move_down::@1 - [381] (byte) keyboard_event_pressed::keycode#5 ← phi( keyboard_event_scan::@1/(const byte) KEY_RSHIFT keyboard_event_scan::@2/(const byte) KEY_CTRL keyboard_event_scan::@17/(const byte) KEY_LSHIFT keyboard_event_scan::@3/(const byte) KEY_COMMODORE play_move_down::@1/(const byte) KEY_SPACE ) - [382] (byte~) keyboard_event_pressed::$0 ← (byte) keyboard_event_pressed::keycode#5 >> (byte) 3 - [383] (byte) keyboard_event_pressed::row_bits#0 ← *((const byte*) keyboard_scan_values + (byte~) keyboard_event_pressed::$0) - [384] (byte~) keyboard_event_pressed::$1 ← (byte) keyboard_event_pressed::keycode#5 & (byte) 7 - [385] (byte) keyboard_event_pressed::return#11 ← (byte) keyboard_event_pressed::row_bits#0 & *((const byte*) keyboard_matrix_col_bitmask + (byte~) keyboard_event_pressed::$1) + [379] (byte) keyboard_event_pressed::keycode#5 ← phi( keyboard_event_scan::@1/(const byte) KEY_RSHIFT keyboard_event_scan::@2/(const byte) KEY_CTRL keyboard_event_scan::@17/(const byte) KEY_LSHIFT keyboard_event_scan::@3/(const byte) KEY_COMMODORE play_move_down::@1/(const byte) KEY_SPACE ) + [380] (byte~) keyboard_event_pressed::$0 ← (byte) keyboard_event_pressed::keycode#5 >> (byte) 3 + [381] (byte) keyboard_event_pressed::row_bits#0 ← *((const byte*) keyboard_scan_values + (byte~) keyboard_event_pressed::$0) + [382] (byte~) keyboard_event_pressed::$1 ← (byte) keyboard_event_pressed::keycode#5 & (byte) 7 + [383] (byte) keyboard_event_pressed::return#11 ← (byte) keyboard_event_pressed::row_bits#0 & *((const byte*) keyboard_matrix_col_bitmask + (byte~) keyboard_event_pressed::$1) to:keyboard_event_pressed::@return keyboard_event_pressed::@return: scope:[keyboard_event_pressed] from keyboard_event_pressed - [386] return + [384] return to:@return (byte()) keyboard_event_get() keyboard_event_get: scope:[keyboard_event_get] from main::@19 - [387] if((byte) keyboard_events_size#13==(byte) 0) goto keyboard_event_get::@return + [385] if((byte) keyboard_events_size#13==(byte) 0) goto keyboard_event_get::@return to:keyboard_event_get::@1 keyboard_event_get::@1: scope:[keyboard_event_get] from keyboard_event_get - [388] (byte) keyboard_events_size#4 ← -- (byte) keyboard_events_size#13 - [389] (byte) keyboard_event_get::return#1 ← *((const byte*) keyboard_events + (byte) keyboard_events_size#4) + [386] (byte) keyboard_events_size#4 ← -- (byte) keyboard_events_size#13 + [387] (byte) keyboard_event_get::return#1 ← *((const byte*) keyboard_events + (byte) keyboard_events_size#4) to:keyboard_event_get::@return keyboard_event_get::@return: scope:[keyboard_event_get] from keyboard_event_get keyboard_event_get::@1 - [390] (byte) keyboard_events_size#16 ← phi( keyboard_event_get/(byte) keyboard_events_size#13 keyboard_event_get::@1/(byte) keyboard_events_size#4 ) - [390] (byte) keyboard_event_get::return#2 ← phi( keyboard_event_get/(byte) $ff keyboard_event_get::@1/(byte) keyboard_event_get::return#1 ) - [391] return + [388] (byte) keyboard_events_size#16 ← phi( keyboard_event_get/(byte) keyboard_events_size#13 keyboard_event_get::@1/(byte) keyboard_events_size#4 ) + [388] (byte) keyboard_event_get::return#2 ← phi( keyboard_event_get/(byte) $ff keyboard_event_get::@1/(byte) keyboard_event_get::return#1 ) + [389] return to:@return (void()) keyboard_event_scan() keyboard_event_scan: scope:[keyboard_event_scan] from main::@18 - [392] phi() + [390] phi() to:keyboard_event_scan::@7 keyboard_event_scan::@7: scope:[keyboard_event_scan] from keyboard_event_scan keyboard_event_scan::@8 - [393] (byte) keyboard_events_size#30 ← phi( keyboard_event_scan/(byte) keyboard_events_size#19 keyboard_event_scan::@8/(byte) keyboard_events_size#13 ) - [393] (byte) keyboard_event_scan::keycode#11 ← phi( keyboard_event_scan/(byte) 0 keyboard_event_scan::@8/(byte) keyboard_event_scan::keycode#13 ) - [393] (byte) keyboard_event_scan::row#2 ← phi( keyboard_event_scan/(byte) 0 keyboard_event_scan::@8/(byte) keyboard_event_scan::row#1 ) - [394] (byte) keyboard_matrix_read::rowid#0 ← (byte) keyboard_event_scan::row#2 - [395] call keyboard_matrix_read - [396] (byte) keyboard_matrix_read::return#2 ← (byte) keyboard_matrix_read::return#0 + [391] (byte) keyboard_events_size#30 ← phi( keyboard_event_scan/(byte) keyboard_events_size#19 keyboard_event_scan::@8/(byte) keyboard_events_size#13 ) + [391] (byte) keyboard_event_scan::keycode#11 ← phi( keyboard_event_scan/(byte) 0 keyboard_event_scan::@8/(byte) keyboard_event_scan::keycode#13 ) + [391] (byte) keyboard_event_scan::row#2 ← phi( keyboard_event_scan/(byte) 0 keyboard_event_scan::@8/(byte) keyboard_event_scan::row#1 ) + [392] (byte) keyboard_matrix_read::rowid#0 ← (byte) keyboard_event_scan::row#2 + [393] call keyboard_matrix_read + [394] (byte) keyboard_matrix_read::return#2 ← (byte) keyboard_matrix_read::return#0 to:keyboard_event_scan::@19 keyboard_event_scan::@19: scope:[keyboard_event_scan] from keyboard_event_scan::@7 - [397] (byte) keyboard_event_scan::row_scan#0 ← (byte) keyboard_matrix_read::return#2 - [398] if((byte) keyboard_event_scan::row_scan#0!=*((const byte*) keyboard_scan_values + (byte) keyboard_event_scan::row#2)) goto keyboard_event_scan::@9 + [395] (byte) keyboard_event_scan::row_scan#0 ← (byte) keyboard_matrix_read::return#2 + [396] if((byte) keyboard_event_scan::row_scan#0!=*((const byte*) keyboard_scan_values + (byte) keyboard_event_scan::row#2)) goto keyboard_event_scan::@9 to:keyboard_event_scan::@16 keyboard_event_scan::@16: scope:[keyboard_event_scan] from keyboard_event_scan::@19 - [399] (byte) keyboard_event_scan::keycode#1 ← (byte) keyboard_event_scan::keycode#11 + (byte) 8 + [397] (byte) keyboard_event_scan::keycode#1 ← (byte) keyboard_event_scan::keycode#11 + (byte) 8 to:keyboard_event_scan::@8 keyboard_event_scan::@8: scope:[keyboard_event_scan] from keyboard_event_scan::@15 keyboard_event_scan::@16 - [400] (byte) keyboard_events_size#13 ← phi( keyboard_event_scan::@15/(byte) keyboard_events_size#29 keyboard_event_scan::@16/(byte) keyboard_events_size#30 ) - [400] (byte) keyboard_event_scan::keycode#13 ← phi( keyboard_event_scan::@15/(byte) keyboard_event_scan::keycode#14 keyboard_event_scan::@16/(byte) keyboard_event_scan::keycode#1 ) - [401] (byte) keyboard_event_scan::row#1 ← ++ (byte) keyboard_event_scan::row#2 - [402] if((byte) keyboard_event_scan::row#1!=(byte) 8) goto keyboard_event_scan::@7 + [398] (byte) keyboard_events_size#13 ← phi( keyboard_event_scan::@15/(byte) keyboard_events_size#29 keyboard_event_scan::@16/(byte) keyboard_events_size#30 ) + [398] (byte) keyboard_event_scan::keycode#13 ← phi( keyboard_event_scan::@15/(byte) keyboard_event_scan::keycode#14 keyboard_event_scan::@16/(byte) keyboard_event_scan::keycode#1 ) + [399] (byte) keyboard_event_scan::row#1 ← ++ (byte) keyboard_event_scan::row#2 + [400] if((byte) keyboard_event_scan::row#1!=(byte) 8) goto keyboard_event_scan::@7 to:keyboard_event_scan::@17 keyboard_event_scan::@17: scope:[keyboard_event_scan] from keyboard_event_scan::@8 - [403] phi() - [404] call keyboard_event_pressed - [405] (byte) keyboard_event_pressed::return#0 ← (byte) keyboard_event_pressed::return#11 + [401] phi() + [402] call keyboard_event_pressed + [403] (byte) keyboard_event_pressed::return#0 ← (byte) keyboard_event_pressed::return#11 to:keyboard_event_scan::@20 keyboard_event_scan::@20: scope:[keyboard_event_scan] from keyboard_event_scan::@17 - [406] (byte~) keyboard_event_scan::$0 ← (byte) keyboard_event_pressed::return#0 - [407] if((byte~) keyboard_event_scan::$0==(byte) 0) goto keyboard_event_scan::@1 + [404] (byte~) keyboard_event_scan::$0 ← (byte) keyboard_event_pressed::return#0 + [405] if((byte~) keyboard_event_scan::$0==(byte) 0) goto keyboard_event_scan::@1 to:keyboard_event_scan::@18 keyboard_event_scan::@18: scope:[keyboard_event_scan] from keyboard_event_scan::@20 - [408] phi() + [406] phi() to:keyboard_event_scan::@1 keyboard_event_scan::@1: scope:[keyboard_event_scan] from keyboard_event_scan::@18 keyboard_event_scan::@20 - [409] phi() - [410] call keyboard_event_pressed - [411] (byte) keyboard_event_pressed::return#1 ← (byte) keyboard_event_pressed::return#11 + [407] phi() + [408] call keyboard_event_pressed + [409] (byte) keyboard_event_pressed::return#1 ← (byte) keyboard_event_pressed::return#11 to:keyboard_event_scan::@21 keyboard_event_scan::@21: scope:[keyboard_event_scan] from keyboard_event_scan::@1 - [412] (byte~) keyboard_event_scan::$3 ← (byte) keyboard_event_pressed::return#1 - [413] if((byte~) keyboard_event_scan::$3==(byte) 0) goto keyboard_event_scan::@2 + [410] (byte~) keyboard_event_scan::$3 ← (byte) keyboard_event_pressed::return#1 + [411] if((byte~) keyboard_event_scan::$3==(byte) 0) goto keyboard_event_scan::@2 to:keyboard_event_scan::@4 keyboard_event_scan::@4: scope:[keyboard_event_scan] from keyboard_event_scan::@21 - [414] phi() + [412] phi() to:keyboard_event_scan::@2 keyboard_event_scan::@2: scope:[keyboard_event_scan] from keyboard_event_scan::@21 keyboard_event_scan::@4 - [415] phi() - [416] call keyboard_event_pressed - [417] (byte) keyboard_event_pressed::return#2 ← (byte) keyboard_event_pressed::return#11 + [413] phi() + [414] call keyboard_event_pressed + [415] (byte) keyboard_event_pressed::return#2 ← (byte) keyboard_event_pressed::return#11 to:keyboard_event_scan::@22 keyboard_event_scan::@22: scope:[keyboard_event_scan] from keyboard_event_scan::@2 - [418] (byte~) keyboard_event_scan::$6 ← (byte) keyboard_event_pressed::return#2 - [419] if((byte~) keyboard_event_scan::$6==(byte) 0) goto keyboard_event_scan::@3 + [416] (byte~) keyboard_event_scan::$6 ← (byte) keyboard_event_pressed::return#2 + [417] if((byte~) keyboard_event_scan::$6==(byte) 0) goto keyboard_event_scan::@3 to:keyboard_event_scan::@5 keyboard_event_scan::@5: scope:[keyboard_event_scan] from keyboard_event_scan::@22 - [420] phi() + [418] phi() to:keyboard_event_scan::@3 keyboard_event_scan::@3: scope:[keyboard_event_scan] from keyboard_event_scan::@22 keyboard_event_scan::@5 - [421] phi() - [422] call keyboard_event_pressed - [423] (byte) keyboard_event_pressed::return#10 ← (byte) keyboard_event_pressed::return#11 + [419] phi() + [420] call keyboard_event_pressed + [421] (byte) keyboard_event_pressed::return#10 ← (byte) keyboard_event_pressed::return#11 to:keyboard_event_scan::@23 keyboard_event_scan::@23: scope:[keyboard_event_scan] from keyboard_event_scan::@3 - [424] (byte~) keyboard_event_scan::$9 ← (byte) keyboard_event_pressed::return#10 - [425] if((byte~) keyboard_event_scan::$9==(byte) 0) goto keyboard_event_scan::@return + [422] (byte~) keyboard_event_scan::$9 ← (byte) keyboard_event_pressed::return#10 + [423] if((byte~) keyboard_event_scan::$9==(byte) 0) goto keyboard_event_scan::@return to:keyboard_event_scan::@6 keyboard_event_scan::@6: scope:[keyboard_event_scan] from keyboard_event_scan::@23 - [426] phi() + [424] phi() to:keyboard_event_scan::@return keyboard_event_scan::@return: scope:[keyboard_event_scan] from keyboard_event_scan::@23 keyboard_event_scan::@6 - [427] return + [425] return to:@return keyboard_event_scan::@9: scope:[keyboard_event_scan] from keyboard_event_scan::@10 keyboard_event_scan::@19 - [428] (byte) keyboard_events_size#10 ← phi( keyboard_event_scan::@10/(byte) keyboard_events_size#29 keyboard_event_scan::@19/(byte) keyboard_events_size#30 ) - [428] (byte) keyboard_event_scan::keycode#10 ← phi( keyboard_event_scan::@10/(byte) keyboard_event_scan::keycode#14 keyboard_event_scan::@19/(byte) keyboard_event_scan::keycode#11 ) - [428] (byte) keyboard_event_scan::col#2 ← phi( keyboard_event_scan::@10/(byte) keyboard_event_scan::col#1 keyboard_event_scan::@19/(byte) 0 ) - [429] (byte~) keyboard_event_scan::$15 ← (byte) keyboard_event_scan::row_scan#0 ^ *((const byte*) keyboard_scan_values + (byte) keyboard_event_scan::row#2) - [430] (byte~) keyboard_event_scan::$16 ← (byte~) keyboard_event_scan::$15 & *((const byte*) keyboard_matrix_col_bitmask + (byte) keyboard_event_scan::col#2) - [431] if((byte~) keyboard_event_scan::$16==(byte) 0) goto keyboard_event_scan::@10 + [426] (byte) keyboard_events_size#10 ← phi( keyboard_event_scan::@10/(byte) keyboard_events_size#29 keyboard_event_scan::@19/(byte) keyboard_events_size#30 ) + [426] (byte) keyboard_event_scan::keycode#10 ← phi( keyboard_event_scan::@10/(byte) keyboard_event_scan::keycode#14 keyboard_event_scan::@19/(byte) keyboard_event_scan::keycode#11 ) + [426] (byte) keyboard_event_scan::col#2 ← phi( keyboard_event_scan::@10/(byte) keyboard_event_scan::col#1 keyboard_event_scan::@19/(byte) 0 ) + [427] (byte~) keyboard_event_scan::$15 ← (byte) keyboard_event_scan::row_scan#0 ^ *((const byte*) keyboard_scan_values + (byte) keyboard_event_scan::row#2) + [428] (byte~) keyboard_event_scan::$16 ← (byte~) keyboard_event_scan::$15 & *((const byte*) keyboard_matrix_col_bitmask + (byte) keyboard_event_scan::col#2) + [429] if((byte~) keyboard_event_scan::$16==(byte) 0) goto keyboard_event_scan::@10 to:keyboard_event_scan::@12 keyboard_event_scan::@12: scope:[keyboard_event_scan] from keyboard_event_scan::@9 - [432] if((byte) keyboard_events_size#10==(byte) 8) goto keyboard_event_scan::@10 + [430] if((byte) keyboard_events_size#10==(byte) 8) goto keyboard_event_scan::@10 to:keyboard_event_scan::@13 keyboard_event_scan::@13: scope:[keyboard_event_scan] from keyboard_event_scan::@12 - [433] (byte) keyboard_event_scan::event_type#0 ← (byte) keyboard_event_scan::row_scan#0 & *((const byte*) keyboard_matrix_col_bitmask + (byte) keyboard_event_scan::col#2) - [434] if((byte) keyboard_event_scan::event_type#0==(byte) 0) goto keyboard_event_scan::@11 + [431] (byte) keyboard_event_scan::event_type#0 ← (byte) keyboard_event_scan::row_scan#0 & *((const byte*) keyboard_matrix_col_bitmask + (byte) keyboard_event_scan::col#2) + [432] if((byte) keyboard_event_scan::event_type#0==(byte) 0) goto keyboard_event_scan::@11 to:keyboard_event_scan::@14 keyboard_event_scan::@14: scope:[keyboard_event_scan] from keyboard_event_scan::@13 - [435] *((const byte*) keyboard_events + (byte) keyboard_events_size#10) ← (byte) keyboard_event_scan::keycode#10 - [436] (byte) keyboard_events_size#2 ← ++ (byte) keyboard_events_size#10 + [433] *((const byte*) keyboard_events + (byte) keyboard_events_size#10) ← (byte) keyboard_event_scan::keycode#10 + [434] (byte) keyboard_events_size#2 ← ++ (byte) keyboard_events_size#10 to:keyboard_event_scan::@10 keyboard_event_scan::@10: scope:[keyboard_event_scan] from keyboard_event_scan::@11 keyboard_event_scan::@12 keyboard_event_scan::@14 keyboard_event_scan::@9 - [437] (byte) keyboard_events_size#29 ← phi( keyboard_event_scan::@9/(byte) keyboard_events_size#10 keyboard_event_scan::@11/(byte) keyboard_events_size#1 keyboard_event_scan::@12/(byte) keyboard_events_size#10 keyboard_event_scan::@14/(byte) keyboard_events_size#2 ) - [438] (byte) keyboard_event_scan::keycode#14 ← ++ (byte) keyboard_event_scan::keycode#10 - [439] (byte) keyboard_event_scan::col#1 ← ++ (byte) keyboard_event_scan::col#2 - [440] if((byte) keyboard_event_scan::col#1!=(byte) 8) goto keyboard_event_scan::@9 + [435] (byte) keyboard_events_size#29 ← phi( keyboard_event_scan::@9/(byte) keyboard_events_size#10 keyboard_event_scan::@11/(byte) keyboard_events_size#1 keyboard_event_scan::@12/(byte) keyboard_events_size#10 keyboard_event_scan::@14/(byte) keyboard_events_size#2 ) + [436] (byte) keyboard_event_scan::keycode#14 ← ++ (byte) keyboard_event_scan::keycode#10 + [437] (byte) keyboard_event_scan::col#1 ← ++ (byte) keyboard_event_scan::col#2 + [438] if((byte) keyboard_event_scan::col#1!=(byte) 8) goto keyboard_event_scan::@9 to:keyboard_event_scan::@15 keyboard_event_scan::@15: scope:[keyboard_event_scan] from keyboard_event_scan::@10 - [441] *((const byte*) keyboard_scan_values + (byte) keyboard_event_scan::row#2) ← (byte) keyboard_event_scan::row_scan#0 + [439] *((const byte*) keyboard_scan_values + (byte) keyboard_event_scan::row#2) ← (byte) keyboard_event_scan::row_scan#0 to:keyboard_event_scan::@8 keyboard_event_scan::@11: scope:[keyboard_event_scan] from keyboard_event_scan::@13 - [442] (byte~) keyboard_event_scan::$23 ← (byte) keyboard_event_scan::keycode#10 | (byte) $40 - [443] *((const byte*) keyboard_events + (byte) keyboard_events_size#10) ← (byte~) keyboard_event_scan::$23 - [444] (byte) keyboard_events_size#1 ← ++ (byte) keyboard_events_size#10 + [440] (byte~) keyboard_event_scan::$23 ← (byte) keyboard_event_scan::keycode#10 | (byte) $40 + [441] *((const byte*) keyboard_events + (byte) keyboard_events_size#10) ← (byte~) keyboard_event_scan::$23 + [442] (byte) keyboard_events_size#1 ← ++ (byte) keyboard_events_size#10 to:keyboard_event_scan::@10 (byte()) keyboard_matrix_read((byte) keyboard_matrix_read::rowid) keyboard_matrix_read: scope:[keyboard_matrix_read] from keyboard_event_scan::@7 - [445] *((const byte*) CIA1_PORT_A) ← *((const byte*) keyboard_matrix_row_bitmask + (byte) keyboard_matrix_read::rowid#0) - [446] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B) + [443] *((const byte*) CIA1_PORT_A) ← *((const byte*) keyboard_matrix_row_bitmask + (byte) keyboard_matrix_read::rowid#0) + [444] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B) to:keyboard_matrix_read::@return keyboard_matrix_read::@return: scope:[keyboard_matrix_read] from keyboard_matrix_read - [447] return + [445] return to:@return (void()) render_show() render_show: scope:[render_show] from main::@3 - [448] if((byte) render_screen_show#16==(byte) 0) goto render_show::toD0181 + [446] if((byte) render_screen_show#16==(byte) 0) goto render_show::toD0181 to:render_show::toD0182 render_show::toD0182: scope:[render_show] from render_show - [449] phi() + [447] phi() to:render_show::@1 render_show::@1: scope:[render_show] from render_show::toD0181 render_show::toD0182 - [450] (byte) render_show::d018val#3 ← phi( render_show::toD0181/(const byte) render_show::toD0181_return#0 render_show::toD0182/(const byte) render_show::toD0182_return#0 ) - [451] *((const byte*) D018) ← (byte) render_show::d018val#3 - [452] *((const byte*) BGCOL2) ← *((const byte*) PIECES_COLORS_1 + (byte) level#10) - [453] *((const byte*) BGCOL3) ← *((const byte*) PIECES_COLORS_2 + (byte) level#10) - [454] (byte) render_screen_showing ← (byte) render_screen_show#16 + [448] (byte) render_show::d018val#3 ← phi( render_show::toD0181/(const byte) render_show::toD0181_return#0 render_show::toD0182/(const byte) render_show::toD0182_return#0 ) + [449] *((const byte*) D018) ← (byte) render_show::d018val#3 + [450] *((const byte*) BGCOL2) ← *((const byte*) PIECES_COLORS_1 + (byte) level#10) + [451] *((const byte*) BGCOL3) ← *((const byte*) PIECES_COLORS_2 + (byte) level#10) + [452] (byte) render_screen_showing ← (byte) render_screen_show#16 to:render_show::@return render_show::@return: scope:[render_show] from render_show::@1 - [455] return + [453] return to:@return render_show::toD0181: scope:[render_show] from render_show - [456] phi() + [454] phi() to:render_show::@1 (void()) play_init() play_init: scope:[play_init] from main::@11 - [457] phi() + [455] phi() to:play_init::@1 play_init::@1: scope:[play_init] from play_init play_init::@1 - [458] (byte) play_init::idx#2 ← phi( play_init/(byte) 0 play_init::@1/(byte) play_init::idx#1 ) - [458] (byte*) play_init::pli#2 ← phi( play_init/(const byte*) playfield play_init::@1/(byte*) play_init::pli#1 ) - [458] (byte) play_init::j#2 ← phi( play_init/(byte) 0 play_init::@1/(byte) play_init::j#1 ) - [459] (byte~) play_init::$2 ← (byte) play_init::j#2 << (byte) 1 - [460] *((const byte**) playfield_lines + (byte~) play_init::$2) ← (byte*) play_init::pli#2 - [461] *((const byte*) playfield_lines_idx + (byte) play_init::j#2) ← (byte) play_init::idx#2 - [462] (byte*) play_init::pli#1 ← (byte*) play_init::pli#2 + (const byte) PLAYFIELD_COLS - [463] (byte) play_init::idx#1 ← (byte) play_init::idx#2 + (const byte) PLAYFIELD_COLS - [464] (byte) play_init::j#1 ← ++ (byte) play_init::j#2 - [465] if((byte) play_init::j#1!=(const byte) PLAYFIELD_LINES-(byte) 1+(byte) 1) goto play_init::@1 + [456] (byte) play_init::idx#2 ← phi( play_init/(byte) 0 play_init::@1/(byte) play_init::idx#1 ) + [456] (byte*) play_init::pli#2 ← phi( play_init/(const byte*) playfield play_init::@1/(byte*) play_init::pli#1 ) + [456] (byte) play_init::j#2 ← phi( play_init/(byte) 0 play_init::@1/(byte) play_init::j#1 ) + [457] (byte~) play_init::$2 ← (byte) play_init::j#2 << (byte) 1 + [458] *((const byte**) playfield_lines + (byte~) play_init::$2) ← (byte*) play_init::pli#2 + [459] *((const byte*) playfield_lines_idx + (byte) play_init::j#2) ← (byte) play_init::idx#2 + [460] (byte*) play_init::pli#1 ← (byte*) play_init::pli#2 + (const byte) PLAYFIELD_COLS + [461] (byte) play_init::idx#1 ← (byte) play_init::idx#2 + (const byte) PLAYFIELD_COLS + [462] (byte) play_init::j#1 ← ++ (byte) play_init::j#2 + [463] if((byte) play_init::j#1!=(const byte) PLAYFIELD_LINES-(byte) 1+(byte) 1) goto play_init::@1 to:play_init::@2 play_init::@2: scope:[play_init] from play_init::@1 - [466] *((const byte*) playfield_lines_idx+(const byte) PLAYFIELD_LINES) ← (const byte) PLAYFIELD_COLS*(const byte) PLAYFIELD_LINES - [467] (byte) current_movedown_slow#1 ← *((const byte*) MOVEDOWN_SLOW_SPEEDS) + [464] *((const byte*) playfield_lines_idx+(const byte) PLAYFIELD_LINES) ← (const byte) PLAYFIELD_COLS*(const byte) PLAYFIELD_LINES + [465] (byte) current_movedown_slow#1 ← *((const byte*) MOVEDOWN_SLOW_SPEEDS) to:play_init::@3 play_init::@3: scope:[play_init] from play_init::@2 play_init::@3 - [468] (byte) play_init::b#2 ← phi( play_init::@2/(byte) 0 play_init::@3/(byte) play_init::b#1 ) - [469] (byte~) play_init::$3 ← (byte) play_init::b#2 << (byte) 2 - [470] *((const dword*) score_add_bcd + (byte~) play_init::$3) ← *((const dword*) SCORE_BASE_BCD + (byte~) play_init::$3) - [471] (byte) play_init::b#1 ← ++ (byte) play_init::b#2 - [472] if((byte) play_init::b#1!=(byte) 5) goto play_init::@3 + [466] (byte) play_init::b#2 ← phi( play_init::@2/(byte) 0 play_init::@3/(byte) play_init::b#1 ) + [467] (byte~) play_init::$3 ← (byte) play_init::b#2 << (byte) 2 + [468] *((const dword*) score_add_bcd + (byte~) play_init::$3) ← *((const dword*) SCORE_BASE_BCD + (byte~) play_init::$3) + [469] (byte) play_init::b#1 ← ++ (byte) play_init::b#2 + [470] if((byte) play_init::b#1!=(byte) 5) goto play_init::@3 to:play_init::@return play_init::@return: scope:[play_init] from play_init::@3 - [473] return + [471] return to:@return (void()) sprites_irq_init() sprites_irq_init: scope:[sprites_irq_init] from main::@10 asm { sei } - [475] *((const byte*) IRQ_STATUS) ← (const byte) IRQ_RASTER + [473] *((const byte*) IRQ_STATUS) ← (const byte) IRQ_RASTER asm { ldaCIA1_INTERRUPT } - [477] *((const byte*) PROCPORT_DDR) ← (const byte) PROCPORT_DDR_MEMORY_MASK - [478] *((const byte*) PROCPORT) ← (const byte) PROCPORT_RAM_IO - [479] *((const byte*) CIA1_INTERRUPT) ← (const byte) CIA_INTERRUPT_CLEAR - [480] *((const byte*) VIC_CONTROL) ← *((const byte*) VIC_CONTROL) & (byte) $7f - [481] *((const byte*) RASTER) ← (const byte) IRQ_RASTER_FIRST - [482] *((const byte*) IRQ_ENABLE) ← (const byte) IRQ_RASTER - [483] *((const void()**) HARDWARE_IRQ) ← &interrupt(HARDWARE_CLOBBER)(void()) sprites_irq() + [475] *((const byte*) PROCPORT_DDR) ← (const byte) PROCPORT_DDR_MEMORY_MASK + [476] *((const byte*) PROCPORT) ← (const byte) PROCPORT_RAM_IO + [477] *((const byte*) CIA1_INTERRUPT) ← (const byte) CIA_INTERRUPT_CLEAR + [478] *((const byte*) VIC_CONTROL) ← *((const byte*) VIC_CONTROL) & (byte) $7f + [479] *((const byte*) RASTER) ← (const byte) IRQ_RASTER_FIRST + [480] *((const byte*) IRQ_ENABLE) ← (const byte) IRQ_RASTER + [481] *((const void()**) HARDWARE_IRQ) ← &interrupt(HARDWARE_CLOBBER)(void()) sprites_irq() asm { cli } to:sprites_irq_init::@return sprites_irq_init::@return: scope:[sprites_irq_init] from sprites_irq_init - [485] return + [483] return to:@return (void()) sprites_init() sprites_init: scope:[sprites_init] from main::@9 - [486] *((const byte*) SPRITES_ENABLE) ← (byte) $f - [487] *((const byte*) SPRITES_MC) ← (byte) 0 - [488] *((const byte*) SPRITES_EXPAND_Y) ← *((const byte*) SPRITES_MC) - [489] *((const byte*) SPRITES_EXPAND_X) ← *((const byte*) SPRITES_EXPAND_Y) + [484] *((const byte*) SPRITES_ENABLE) ← (byte) $f + [485] *((const byte*) SPRITES_MC) ← (byte) 0 + [486] *((const byte*) SPRITES_EXPAND_Y) ← *((const byte*) SPRITES_MC) + [487] *((const byte*) SPRITES_EXPAND_X) ← *((const byte*) SPRITES_EXPAND_Y) to:sprites_init::@1 sprites_init::@1: scope:[sprites_init] from sprites_init sprites_init::@1 - [490] (byte) sprites_init::xpos#2 ← phi( sprites_init/(byte)(number) $18+(number) $f*(number) 8 sprites_init::@1/(byte) sprites_init::xpos#1 ) - [490] (byte) sprites_init::s#2 ← phi( sprites_init/(byte) 0 sprites_init::@1/(byte) sprites_init::s#1 ) - [491] (byte) sprites_init::s2#0 ← (byte) sprites_init::s#2 << (byte) 1 - [492] *((const byte*) SPRITES_XPOS + (byte) sprites_init::s2#0) ← (byte) sprites_init::xpos#2 - [493] *((const byte*) SPRITES_COLS + (byte) sprites_init::s#2) ← (const byte) BLACK - [494] (byte) sprites_init::xpos#1 ← (byte) sprites_init::xpos#2 + (byte) $18 - [495] (byte) sprites_init::s#1 ← ++ (byte) sprites_init::s#2 - [496] if((byte) sprites_init::s#1!=(byte) 4) goto sprites_init::@1 + [488] (byte) sprites_init::xpos#2 ← phi( sprites_init/(byte)(number) $18+(number) $f*(number) 8 sprites_init::@1/(byte) sprites_init::xpos#1 ) + [488] (byte) sprites_init::s#2 ← phi( sprites_init/(byte) 0 sprites_init::@1/(byte) sprites_init::s#1 ) + [489] (byte) sprites_init::s2#0 ← (byte) sprites_init::s#2 << (byte) 1 + [490] *((const byte*) SPRITES_XPOS + (byte) sprites_init::s2#0) ← (byte) sprites_init::xpos#2 + [491] *((const byte*) SPRITES_COLS + (byte) sprites_init::s#2) ← (const byte) BLACK + [492] (byte) sprites_init::xpos#1 ← (byte) sprites_init::xpos#2 + (byte) $18 + [493] (byte) sprites_init::s#1 ← ++ (byte) sprites_init::s#2 + [494] if((byte) sprites_init::s#1!=(byte) 4) goto sprites_init::@1 to:sprites_init::@return sprites_init::@return: scope:[sprites_init] from sprites_init::@1 - [497] return + [495] return to:@return (void()) render_init() render_init: scope:[render_init] from main::@8 - [498] phi() + [496] phi() to:render_init::vicSelectGfxBank1 render_init::vicSelectGfxBank1: scope:[render_init] from render_init - [499] *((const byte*) CIA2_PORT_A_DDR) ← (byte) 3 + [497] *((const byte*) CIA2_PORT_A_DDR) ← (byte) 3 to:render_init::vicSelectGfxBank1_toDd001 render_init::vicSelectGfxBank1_toDd001: scope:[render_init] from render_init::vicSelectGfxBank1 - [500] phi() + [498] phi() to:render_init::vicSelectGfxBank1_@1 render_init::vicSelectGfxBank1_@1: scope:[render_init] from render_init::vicSelectGfxBank1_toDd001 - [501] *((const byte*) CIA2_PORT_A) ← (const byte) render_init::vicSelectGfxBank1_toDd001_return#0 + [499] *((const byte*) CIA2_PORT_A) ← (const byte) render_init::vicSelectGfxBank1_toDd001_return#0 to:render_init::@2 render_init::@2: scope:[render_init] from render_init::vicSelectGfxBank1_@1 - [502] *((const byte*) D011) ← (const byte) VIC_ECM|(const byte) VIC_DEN|(const byte) VIC_RSEL|(byte) 3 - [503] *((const byte*) BORDERCOL) ← (const byte) BLACK - [504] *((const byte*) BGCOL1) ← (const byte) BLACK - [505] *((const byte*) BGCOL2) ← *((const byte*) PIECES_COLORS_1) - [506] *((const byte*) BGCOL3) ← *((const byte*) PIECES_COLORS_2) - [507] *((const byte*) BGCOL4) ← (const byte) GREY - [508] call render_screen_original + [500] *((const byte*) D011) ← (const byte) VIC_ECM|(const byte) VIC_DEN|(const byte) VIC_RSEL|(byte) 3 + [501] *((const byte*) BORDERCOL) ← (const byte) BLACK + [502] *((const byte*) BGCOL1) ← (const byte) BLACK + [503] *((const byte*) BGCOL2) ← *((const byte*) PIECES_COLORS_1) + [504] *((const byte*) BGCOL3) ← *((const byte*) PIECES_COLORS_2) + [505] *((const byte*) BGCOL4) ← (const byte) GREY + [506] call render_screen_original to:render_init::@3 render_init::@3: scope:[render_init] from render_init::@2 - [509] phi() - [510] call render_screen_original + [507] phi() + [508] call render_screen_original to:render_init::@1 render_init::@1: scope:[render_init] from render_init::@1 render_init::@3 - [511] (byte*) render_init::li_2#2 ← phi( render_init::@1/(byte*) render_init::li_2#1 render_init::@3/(const byte*) PLAYFIELD_SCREEN_2+(byte)(number) 2*(number) $28+(byte) $10 ) - [511] (byte*) render_init::li_1#2 ← phi( render_init::@1/(byte*) render_init::li_1#1 render_init::@3/(const byte*) PLAYFIELD_SCREEN_1+(byte)(number) 2*(number) $28+(byte) $10 ) - [511] (byte) render_init::i#2 ← phi( render_init::@1/(byte) render_init::i#1 render_init::@3/(byte) 0 ) - [512] (byte~) render_init::$5 ← (byte) render_init::i#2 << (byte) 1 - [513] *((const byte**) screen_lines_1 + (byte~) render_init::$5) ← (byte*) render_init::li_1#2 - [514] *((const byte**) screen_lines_2 + (byte~) render_init::$5) ← (byte*) render_init::li_2#2 - [515] (byte*) render_init::li_1#1 ← (byte*) render_init::li_1#2 + (byte) $28 - [516] (byte*) render_init::li_2#1 ← (byte*) render_init::li_2#2 + (byte) $28 - [517] (byte) render_init::i#1 ← ++ (byte) render_init::i#2 - [518] if((byte) render_init::i#1!=(const byte) PLAYFIELD_LINES-(byte) 1+(byte) 1) goto render_init::@1 + [509] (byte*) render_init::li_2#2 ← phi( render_init::@1/(byte*) render_init::li_2#1 render_init::@3/(const byte*) PLAYFIELD_SCREEN_2+(byte)(number) 2*(number) $28+(byte) $10 ) + [509] (byte*) render_init::li_1#2 ← phi( render_init::@1/(byte*) render_init::li_1#1 render_init::@3/(const byte*) PLAYFIELD_SCREEN_1+(byte)(number) 2*(number) $28+(byte) $10 ) + [509] (byte) render_init::i#2 ← phi( render_init::@1/(byte) render_init::i#1 render_init::@3/(byte) 0 ) + [510] (byte~) render_init::$5 ← (byte) render_init::i#2 << (byte) 1 + [511] *((const byte**) screen_lines_1 + (byte~) render_init::$5) ← (byte*) render_init::li_1#2 + [512] *((const byte**) screen_lines_2 + (byte~) render_init::$5) ← (byte*) render_init::li_2#2 + [513] (byte*) render_init::li_1#1 ← (byte*) render_init::li_1#2 + (byte) $28 + [514] (byte*) render_init::li_2#1 ← (byte*) render_init::li_2#2 + (byte) $28 + [515] (byte) render_init::i#1 ← ++ (byte) render_init::i#2 + [516] if((byte) render_init::i#1!=(const byte) PLAYFIELD_LINES-(byte) 1+(byte) 1) goto render_init::@1 to:render_init::@return render_init::@return: scope:[render_init] from render_init::@1 - [519] return + [517] return to:@return (void()) render_screen_original((byte*) render_screen_original::screen) render_screen_original: scope:[render_screen_original] from render_init::@2 render_init::@3 - [520] (byte*) render_screen_original::screen#9 ← phi( render_init::@2/(const byte*) PLAYFIELD_SCREEN_1 render_init::@3/(const byte*) PLAYFIELD_SCREEN_2 ) + [518] (byte*) render_screen_original::screen#9 ← phi( render_init::@2/(const byte*) PLAYFIELD_SCREEN_1 render_init::@3/(const byte*) PLAYFIELD_SCREEN_2 ) to:render_screen_original::@1 render_screen_original::@1: scope:[render_screen_original] from render_screen_original render_screen_original::@5 - [521] (byte) render_screen_original::y#6 ← phi( render_screen_original/(byte) 0 render_screen_original::@5/(byte) render_screen_original::y#1 ) - [521] (byte*) render_screen_original::ocols#4 ← phi( render_screen_original/(const byte*) PLAYFIELD_COLORS_ORIGINAL+(byte)(number) $20*(number) 2 render_screen_original::@5/(byte*) render_screen_original::ocols#1 ) - [521] (byte*) render_screen_original::oscr#4 ← phi( render_screen_original/(const byte*) PLAYFIELD_SCREEN_ORIGINAL+(byte)(number) $20*(number) 2 render_screen_original::@5/(byte*) render_screen_original::oscr#1 ) - [521] (byte*) render_screen_original::cols#7 ← phi( render_screen_original/(const byte*) COLS render_screen_original::@5/(byte*) render_screen_original::cols#3 ) - [521] (byte*) render_screen_original::screen#8 ← phi( render_screen_original/(byte*) render_screen_original::screen#9 render_screen_original::@5/(byte*) render_screen_original::screen#10 ) + [519] (byte) render_screen_original::y#6 ← phi( render_screen_original/(byte) 0 render_screen_original::@5/(byte) render_screen_original::y#1 ) + [519] (byte*) render_screen_original::ocols#4 ← phi( render_screen_original/(const byte*) PLAYFIELD_COLORS_ORIGINAL+(byte)(number) $20*(number) 2 render_screen_original::@5/(byte*) render_screen_original::ocols#1 ) + [519] (byte*) render_screen_original::oscr#4 ← phi( render_screen_original/(const byte*) PLAYFIELD_SCREEN_ORIGINAL+(byte)(number) $20*(number) 2 render_screen_original::@5/(byte*) render_screen_original::oscr#1 ) + [519] (byte*) render_screen_original::cols#7 ← phi( render_screen_original/(const byte*) COLS render_screen_original::@5/(byte*) render_screen_original::cols#3 ) + [519] (byte*) render_screen_original::screen#8 ← phi( render_screen_original/(byte*) render_screen_original::screen#9 render_screen_original::@5/(byte*) render_screen_original::screen#10 ) to:render_screen_original::@2 render_screen_original::@2: scope:[render_screen_original] from render_screen_original::@1 render_screen_original::@2 - [522] (byte) render_screen_original::x#4 ← phi( render_screen_original::@1/(byte) 0 render_screen_original::@2/(byte) render_screen_original::x#1 ) - [522] (byte*) render_screen_original::cols#4 ← phi( render_screen_original::@1/(byte*) render_screen_original::cols#7 render_screen_original::@2/(byte*) render_screen_original::cols#1 ) - [522] (byte*) render_screen_original::screen#5 ← phi( render_screen_original::@1/(byte*) render_screen_original::screen#8 render_screen_original::@2/(byte*) render_screen_original::screen#2 ) - [523] *((byte*) render_screen_original::screen#5) ← (const byte) render_screen_original::SPACE - [524] (byte*) render_screen_original::screen#2 ← ++ (byte*) render_screen_original::screen#5 - [525] *((byte*) render_screen_original::cols#4) ← (const byte) BLACK - [526] (byte*) render_screen_original::cols#1 ← ++ (byte*) render_screen_original::cols#4 - [527] (byte) render_screen_original::x#1 ← ++ (byte) render_screen_original::x#4 - [528] if((byte) render_screen_original::x#1!=(byte) 4) goto render_screen_original::@2 + [520] (byte) render_screen_original::x#4 ← phi( render_screen_original::@1/(byte) 0 render_screen_original::@2/(byte) render_screen_original::x#1 ) + [520] (byte*) render_screen_original::cols#4 ← phi( render_screen_original::@1/(byte*) render_screen_original::cols#7 render_screen_original::@2/(byte*) render_screen_original::cols#1 ) + [520] (byte*) render_screen_original::screen#5 ← phi( render_screen_original::@1/(byte*) render_screen_original::screen#8 render_screen_original::@2/(byte*) render_screen_original::screen#2 ) + [521] *((byte*) render_screen_original::screen#5) ← (const byte) render_screen_original::SPACE + [522] (byte*) render_screen_original::screen#2 ← ++ (byte*) render_screen_original::screen#5 + [523] *((byte*) render_screen_original::cols#4) ← (const byte) BLACK + [524] (byte*) render_screen_original::cols#1 ← ++ (byte*) render_screen_original::cols#4 + [525] (byte) render_screen_original::x#1 ← ++ (byte) render_screen_original::x#4 + [526] if((byte) render_screen_original::x#1!=(byte) 4) goto render_screen_original::@2 to:render_screen_original::@3 render_screen_original::@3: scope:[render_screen_original] from render_screen_original::@2 render_screen_original::@3 - [529] (byte) render_screen_original::x#5 ← phi( render_screen_original::@2/(byte) render_screen_original::x#1 render_screen_original::@3/(byte) render_screen_original::x#2 ) - [529] (byte*) render_screen_original::cols#5 ← phi( render_screen_original::@2/(byte*) render_screen_original::cols#1 render_screen_original::@3/(byte*) render_screen_original::cols#2 ) - [529] (byte*) render_screen_original::ocols#2 ← phi( render_screen_original::@2/(byte*) render_screen_original::ocols#4 render_screen_original::@3/(byte*) render_screen_original::ocols#1 ) - [529] (byte*) render_screen_original::screen#6 ← phi( render_screen_original::@2/(byte*) render_screen_original::screen#2 render_screen_original::@3/(byte*) render_screen_original::screen#3 ) - [529] (byte*) render_screen_original::oscr#2 ← phi( render_screen_original::@2/(byte*) render_screen_original::oscr#4 render_screen_original::@3/(byte*) render_screen_original::oscr#1 ) - [530] *((byte*) render_screen_original::screen#6) ← *((byte*) render_screen_original::oscr#2) - [531] (byte*) render_screen_original::screen#3 ← ++ (byte*) render_screen_original::screen#6 - [532] (byte*) render_screen_original::oscr#1 ← ++ (byte*) render_screen_original::oscr#2 - [533] *((byte*) render_screen_original::cols#5) ← *((byte*) render_screen_original::ocols#2) - [534] (byte*) render_screen_original::cols#2 ← ++ (byte*) render_screen_original::cols#5 - [535] (byte*) render_screen_original::ocols#1 ← ++ (byte*) render_screen_original::ocols#2 - [536] (byte) render_screen_original::x#2 ← ++ (byte) render_screen_original::x#5 - [537] if((byte) render_screen_original::x#2!=(byte) $24) goto render_screen_original::@3 + [527] (byte) render_screen_original::x#5 ← phi( render_screen_original::@2/(byte) render_screen_original::x#1 render_screen_original::@3/(byte) render_screen_original::x#2 ) + [527] (byte*) render_screen_original::cols#5 ← phi( render_screen_original::@2/(byte*) render_screen_original::cols#1 render_screen_original::@3/(byte*) render_screen_original::cols#2 ) + [527] (byte*) render_screen_original::ocols#2 ← phi( render_screen_original::@2/(byte*) render_screen_original::ocols#4 render_screen_original::@3/(byte*) render_screen_original::ocols#1 ) + [527] (byte*) render_screen_original::screen#6 ← phi( render_screen_original::@2/(byte*) render_screen_original::screen#2 render_screen_original::@3/(byte*) render_screen_original::screen#3 ) + [527] (byte*) render_screen_original::oscr#2 ← phi( render_screen_original::@2/(byte*) render_screen_original::oscr#4 render_screen_original::@3/(byte*) render_screen_original::oscr#1 ) + [528] *((byte*) render_screen_original::screen#6) ← *((byte*) render_screen_original::oscr#2) + [529] (byte*) render_screen_original::screen#3 ← ++ (byte*) render_screen_original::screen#6 + [530] (byte*) render_screen_original::oscr#1 ← ++ (byte*) render_screen_original::oscr#2 + [531] *((byte*) render_screen_original::cols#5) ← *((byte*) render_screen_original::ocols#2) + [532] (byte*) render_screen_original::cols#2 ← ++ (byte*) render_screen_original::cols#5 + [533] (byte*) render_screen_original::ocols#1 ← ++ (byte*) render_screen_original::ocols#2 + [534] (byte) render_screen_original::x#2 ← ++ (byte) render_screen_original::x#5 + [535] if((byte) render_screen_original::x#2!=(byte) $24) goto render_screen_original::@3 to:render_screen_original::@4 render_screen_original::@4: scope:[render_screen_original] from render_screen_original::@3 render_screen_original::@4 - [538] (byte) render_screen_original::x#6 ← phi( render_screen_original::@3/(byte) render_screen_original::x#2 render_screen_original::@4/(byte) render_screen_original::x#3 ) - [538] (byte*) render_screen_original::cols#6 ← phi( render_screen_original::@3/(byte*) render_screen_original::cols#2 render_screen_original::@4/(byte*) render_screen_original::cols#3 ) - [538] (byte*) render_screen_original::screen#7 ← phi( render_screen_original::@3/(byte*) render_screen_original::screen#3 render_screen_original::@4/(byte*) render_screen_original::screen#10 ) - [539] *((byte*) render_screen_original::screen#7) ← (const byte) render_screen_original::SPACE - [540] (byte*) render_screen_original::screen#10 ← ++ (byte*) render_screen_original::screen#7 - [541] *((byte*) render_screen_original::cols#6) ← (const byte) BLACK - [542] (byte*) render_screen_original::cols#3 ← ++ (byte*) render_screen_original::cols#6 - [543] (byte) render_screen_original::x#3 ← ++ (byte) render_screen_original::x#6 - [544] if((byte) render_screen_original::x#3!=(byte) $28) goto render_screen_original::@4 + [536] (byte) render_screen_original::x#6 ← phi( render_screen_original::@3/(byte) render_screen_original::x#2 render_screen_original::@4/(byte) render_screen_original::x#3 ) + [536] (byte*) render_screen_original::cols#6 ← phi( render_screen_original::@3/(byte*) render_screen_original::cols#2 render_screen_original::@4/(byte*) render_screen_original::cols#3 ) + [536] (byte*) render_screen_original::screen#7 ← phi( render_screen_original::@3/(byte*) render_screen_original::screen#3 render_screen_original::@4/(byte*) render_screen_original::screen#10 ) + [537] *((byte*) render_screen_original::screen#7) ← (const byte) render_screen_original::SPACE + [538] (byte*) render_screen_original::screen#10 ← ++ (byte*) render_screen_original::screen#7 + [539] *((byte*) render_screen_original::cols#6) ← (const byte) BLACK + [540] (byte*) render_screen_original::cols#3 ← ++ (byte*) render_screen_original::cols#6 + [541] (byte) render_screen_original::x#3 ← ++ (byte) render_screen_original::x#6 + [542] if((byte) render_screen_original::x#3!=(byte) $28) goto render_screen_original::@4 to:render_screen_original::@5 render_screen_original::@5: scope:[render_screen_original] from render_screen_original::@4 - [545] (byte) render_screen_original::y#1 ← ++ (byte) render_screen_original::y#6 - [546] if((byte) render_screen_original::y#1!=(byte) $19) goto render_screen_original::@1 + [543] (byte) render_screen_original::y#1 ← ++ (byte) render_screen_original::y#6 + [544] if((byte) render_screen_original::y#1!=(byte) $19) goto render_screen_original::@1 to:render_screen_original::@return render_screen_original::@return: scope:[render_screen_original] from render_screen_original::@5 - [547] return + [545] return to:@return (void()) sid_rnd_init() sid_rnd_init: scope:[sid_rnd_init] from main - [548] *((const word*) SID_VOICE3_FREQ) ← (word) $ffff - [549] *((const byte*) SID_VOICE3_CONTROL) ← (const byte) SID_CONTROL_NOISE + [546] *((const word*) SID_VOICE3_FREQ) ← (word) $ffff + [547] *((const byte*) SID_VOICE3_CONTROL) ← (const byte) SID_CONTROL_NOISE to:sid_rnd_init::@return sid_rnd_init::@return: scope:[sid_rnd_init] from sid_rnd_init - [550] return + [548] return to:@return interrupt(HARDWARE_CLOBBER)(void()) sprites_irq() sprites_irq: scope:[sprites_irq] from asm { cld } - [552] (byte) sprites_irq::ypos#0 ← (byte) irq_sprite_ypos - [553] *((const byte*) SPRITES_YPOS) ← (byte) sprites_irq::ypos#0 - [554] *((const byte*) SPRITES_YPOS+(byte) 2) ← (byte) sprites_irq::ypos#0 - [555] *((const byte*) SPRITES_YPOS+(byte) 4) ← (byte) sprites_irq::ypos#0 - [556] *((const byte*) SPRITES_YPOS+(byte) 6) ← (byte) sprites_irq::ypos#0 - [557] (byte~) sprites_irq::$0 ← (byte) irq_raster_next + (byte) 1 - [558] (byte) sprites_irq::raster_sprite_gfx_modify ← (byte~) sprites_irq::$0 + [550] (byte) sprites_irq::ypos#0 ← (byte) irq_sprite_ypos + [551] *((const byte*) SPRITES_YPOS) ← (byte) sprites_irq::ypos#0 + [552] *((const byte*) SPRITES_YPOS+(byte) 2) ← (byte) sprites_irq::ypos#0 + [553] *((const byte*) SPRITES_YPOS+(byte) 4) ← (byte) sprites_irq::ypos#0 + [554] *((const byte*) SPRITES_YPOS+(byte) 6) ← (byte) sprites_irq::ypos#0 + [555] (byte~) sprites_irq::$0 ← (byte) irq_raster_next + (byte) 1 + [556] (byte) sprites_irq::raster_sprite_gfx_modify ← (byte~) sprites_irq::$0 to:sprites_irq::@8 sprites_irq::@8: scope:[sprites_irq] from sprites_irq sprites_irq::@8 - [559] if(*((const byte*) RASTER)<(byte) sprites_irq::raster_sprite_gfx_modify) goto sprites_irq::@8 + [557] if(*((const byte*) RASTER)<(byte) sprites_irq::raster_sprite_gfx_modify) goto sprites_irq::@8 to:sprites_irq::@9 sprites_irq::@9: scope:[sprites_irq] from sprites_irq::@8 - [560] (byte) sprites_irq::ptr#0 ← (byte) irq_sprite_ptr - [561] if((byte) render_screen_showing==(byte) 0) goto sprites_irq::@1 + [558] (byte) sprites_irq::ptr#0 ← (byte) irq_sprite_ptr + [559] if((byte) render_screen_showing==(byte) 0) goto sprites_irq::@1 to:sprites_irq::@10 sprites_irq::@10: scope:[sprites_irq] from sprites_irq::@9 - [562] *((const byte*) PLAYFIELD_SPRITE_PTRS_2) ← (byte) sprites_irq::ptr#0 - [563] (byte) sprites_irq::ptr#3 ← ++ (byte) sprites_irq::ptr#0 - [564] *((const byte*) PLAYFIELD_SPRITE_PTRS_2+(byte) 1) ← (byte) sprites_irq::ptr#3 - [565] *((const byte*) PLAYFIELD_SPRITE_PTRS_2+(byte) 2) ← (byte) sprites_irq::ptr#3 - [566] (byte) sprites_irq::ptr#4 ← ++ (byte) sprites_irq::ptr#3 - [567] *((const byte*) PLAYFIELD_SPRITE_PTRS_2+(byte) 3) ← (byte) sprites_irq::ptr#4 + [560] *((const byte*) PLAYFIELD_SPRITE_PTRS_2) ← (byte) sprites_irq::ptr#0 + [561] (byte) sprites_irq::ptr#3 ← ++ (byte) sprites_irq::ptr#0 + [562] *((const byte*) PLAYFIELD_SPRITE_PTRS_2+(byte) 1) ← (byte) sprites_irq::ptr#3 + [563] *((const byte*) PLAYFIELD_SPRITE_PTRS_2+(byte) 2) ← (byte) sprites_irq::ptr#3 + [564] (byte) sprites_irq::ptr#4 ← ++ (byte) sprites_irq::ptr#3 + [565] *((const byte*) PLAYFIELD_SPRITE_PTRS_2+(byte) 3) ← (byte) sprites_irq::ptr#4 to:sprites_irq::@2 sprites_irq::@2: scope:[sprites_irq] from sprites_irq::@1 sprites_irq::@10 - [568] (byte) irq_cnt ← ++ (byte) irq_cnt - [569] if((byte) irq_cnt==(byte) 9) goto sprites_irq::@3 + [566] (byte) irq_cnt ← ++ (byte) irq_cnt + [567] if((byte) irq_cnt==(byte) 9) goto sprites_irq::@3 to:sprites_irq::@6 sprites_irq::@6: scope:[sprites_irq] from sprites_irq::@2 - [570] if((byte) irq_cnt==(byte) $a) goto sprites_irq::@4 + [568] if((byte) irq_cnt==(byte) $a) goto sprites_irq::@4 to:sprites_irq::@7 sprites_irq::@7: scope:[sprites_irq] from sprites_irq::@6 - [571] (byte) irq_raster_next ← (byte) irq_raster_next + (byte) $14 - [572] (byte) irq_sprite_ypos ← (byte) irq_sprite_ypos + (byte) $15 - [573] (byte) irq_sprite_ptr ← (byte) irq_sprite_ptr + (byte) 3 + [569] (byte) irq_raster_next ← (byte) irq_raster_next + (byte) $14 + [570] (byte) irq_sprite_ypos ← (byte) irq_sprite_ypos + (byte) $15 + [571] (byte) irq_sprite_ptr ← (byte) irq_sprite_ptr + (byte) 3 to:sprites_irq::@5 sprites_irq::@5: scope:[sprites_irq] from sprites_irq::@11 sprites_irq::@4 sprites_irq::@7 - [574] *((const byte*) RASTER) ← (byte) irq_raster_next - [575] *((const byte*) IRQ_STATUS) ← (const byte) IRQ_RASTER + [572] *((const byte*) RASTER) ← (byte) irq_raster_next + [573] *((const byte*) IRQ_STATUS) ← (const byte) IRQ_RASTER to:sprites_irq::@return sprites_irq::@return: scope:[sprites_irq] from sprites_irq::@5 - [576] return + [574] return to:@return sprites_irq::@4: scope:[sprites_irq] from sprites_irq::@6 - [577] (byte) irq_cnt ← (byte) 0 - [578] (byte) irq_raster_next ← (const byte) IRQ_RASTER_FIRST - [579] (byte) irq_sprite_ypos ← (byte) irq_sprite_ypos + (byte) $15 - [580] (byte) irq_sprite_ptr ← (byte) irq_sprite_ptr + (byte) 3 + [575] (byte) irq_cnt ← (byte) 0 + [576] (byte) irq_raster_next ← (const byte) IRQ_RASTER_FIRST + [577] (byte) irq_sprite_ypos ← (byte) irq_sprite_ypos + (byte) $15 + [578] (byte) irq_sprite_ptr ← (byte) irq_sprite_ptr + (byte) 3 to:sprites_irq::@5 sprites_irq::@3: scope:[sprites_irq] from sprites_irq::@2 - [581] (byte) irq_raster_next ← (byte) irq_raster_next + (byte) $15 - [582] (byte) irq_sprite_ypos ← (const byte) SPRITES_FIRST_YPOS + [579] (byte) irq_raster_next ← (byte) irq_raster_next + (byte) $15 + [580] (byte) irq_sprite_ypos ← (const byte) SPRITES_FIRST_YPOS to:sprites_irq::toSpritePtr2 sprites_irq::toSpritePtr2: scope:[sprites_irq] from sprites_irq::@3 - [583] phi() + [581] phi() to:sprites_irq::@11 sprites_irq::@11: scope:[sprites_irq] from sprites_irq::toSpritePtr2 - [584] (byte) irq_sprite_ptr ← (const byte) sprites_irq::toSpritePtr2_return#0 + [582] (byte) irq_sprite_ptr ← (const byte) sprites_irq::toSpritePtr2_return#0 to:sprites_irq::@5 sprites_irq::@1: scope:[sprites_irq] from sprites_irq::@9 - [585] *((const byte*) PLAYFIELD_SPRITE_PTRS_1) ← (byte) sprites_irq::ptr#0 - [586] (byte) sprites_irq::ptr#1 ← ++ (byte) sprites_irq::ptr#0 - [587] *((const byte*) PLAYFIELD_SPRITE_PTRS_1+(byte) 1) ← (byte) sprites_irq::ptr#1 - [588] *((const byte*) PLAYFIELD_SPRITE_PTRS_1+(byte) 2) ← (byte) sprites_irq::ptr#1 - [589] (byte) sprites_irq::ptr#2 ← ++ (byte) sprites_irq::ptr#1 - [590] *((const byte*) PLAYFIELD_SPRITE_PTRS_1+(byte) 3) ← (byte) sprites_irq::ptr#2 + [583] *((const byte*) PLAYFIELD_SPRITE_PTRS_1) ← (byte) sprites_irq::ptr#0 + [584] (byte) sprites_irq::ptr#1 ← ++ (byte) sprites_irq::ptr#0 + [585] *((const byte*) PLAYFIELD_SPRITE_PTRS_1+(byte) 1) ← (byte) sprites_irq::ptr#1 + [586] *((const byte*) PLAYFIELD_SPRITE_PTRS_1+(byte) 2) ← (byte) sprites_irq::ptr#1 + [587] (byte) sprites_irq::ptr#2 ← ++ (byte) sprites_irq::ptr#1 + [588] *((const byte*) PLAYFIELD_SPRITE_PTRS_1+(byte) 3) ← (byte) sprites_irq::ptr#2 to:sprites_irq::@2 diff --git a/src/test/ref/complex/tetris/tetris.log b/src/test/ref/complex/tetris/tetris.log index b958299da..626f811dd 100644 --- a/src/test/ref/complex/tetris/tetris.log +++ b/src/test/ref/complex/tetris/tetris.log @@ -453,17 +453,6 @@ sid_rnd_init::@return: scope:[sid_rnd_init] from sid_rnd_init (byte) game_over#0 ← (byte) 0 kickasm(location (const byte*) PLAYFIELD_CHARSET) {{ .fill 8,$00 // Place a filled char at the start of the charset .import binary "playfield-screen.imap" - }} - kickasm(location (const byte*) PLAYFIELD_SCREEN_ORIGINAL) {{ // Load chars for the screen - .var screen = LoadBinary("playfield-screen.iscr") - // Load extended colors for the screen - .var extended = LoadBinary("playfield-extended.col") - // screen.get(i)+1 because the charset is loaded into PLAYFIELD_CHARSET+8 - // extended.get(i)-1 because the extended colors are 1-based (1/2/3/4) - // <<6 to move extended colors to the upper 2 bits - .fill screen.getSize(), ( (screen.get(i)+1) | (extended.get(i)-1)<<6 ) - }} - kickasm(location (const byte*) PLAYFIELD_COLORS_ORIGINAL) {{ .import binary "playfield-screen.col" }} to:@22 @@ -3454,12 +3443,21 @@ SYMBOL TABLE SSA (const byte*) PIECE_Z[(number) $40] = { (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 1, (byte) 1, (byte) 0, (byte) 0, (byte) 0, (byte) 1, (byte) 1, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 1, (byte) 0, (byte) 0, (byte) 1, (byte) 1, (byte) 0, (byte) 0, (byte) 1, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 1, (byte) 1, (byte) 0, (byte) 0, (byte) 0, (byte) 1, (byte) 1, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 1, (byte) 0, (byte) 0, (byte) 1, (byte) 1, (byte) 0, (byte) 0, (byte) 1, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0 } (const byte) PINK = (byte) $a (const byte*) PLAYFIELD_CHARSET = (byte*)(number) $2800 -(const byte*) PLAYFIELD_COLORS_ORIGINAL = (byte*)(number) $1c00 +(const byte*) PLAYFIELD_COLORS_ORIGINAL[] = kickasm {{ .import binary "playfield-screen.col" + }} (const byte) PLAYFIELD_COLS = (byte) $a (const byte) PLAYFIELD_LINES = (byte) $16 (const byte*) PLAYFIELD_SCREEN_1 = (byte*)(number) $400 (const byte*) PLAYFIELD_SCREEN_2 = (byte*)(number) $2c00 -(const byte*) PLAYFIELD_SCREEN_ORIGINAL = (byte*)(number) $3000 +(const byte*) PLAYFIELD_SCREEN_ORIGINAL[] = kickasm {{ // Load chars for the screen + .var screen = LoadBinary("playfield-screen.iscr") + // Load extended colors for the screen + .var extended = LoadBinary("playfield-extended.col") + // screen.get(i)+1 because the charset is loaded into PLAYFIELD_CHARSET+8 + // extended.get(i)-1 because the extended colors are 1-based (1/2/3/4) + // <<6 to move extended colors to the upper 2 bits + .fill screen.getSize(), ( (screen.get(i)+1) | (extended.get(i)-1)<<6 ) + }} (const byte*) PLAYFIELD_SPRITES = (byte*)(number) $2000 (const byte*) PLAYFIELD_SPRITE_PTRS_1 = (const byte*) PLAYFIELD_SCREEN_1+(const word) SPRITE_PTRS (const byte*) PLAYFIELD_SPRITE_PTRS_2 = (const byte*) PLAYFIELD_SCREEN_2+(const word) SPRITE_PTRS @@ -6514,8 +6512,6 @@ Simplifying constant pointer cast (byte*) 54290 Simplifying constant pointer cast (byte*) 54299 Simplifying constant pointer cast (byte*) 1024 Simplifying constant pointer cast (byte*) 11264 -Simplifying constant pointer cast (byte*) 12288 -Simplifying constant pointer cast (byte*) 7168 Simplifying constant pointer cast (byte*) 8192 Simplifying constant pointer cast (byte*) 10240 Simplifying constant integer cast $13 @@ -6870,31 +6866,31 @@ Inversing boolean not [68] (bool~) keyboard_event_scan::$2 ← (byte~) keyboard_ Inversing boolean not [77] (bool~) keyboard_event_scan::$5 ← (byte~) keyboard_event_scan::$3 == (byte) 0 from [76] (bool~) keyboard_event_scan::$4 ← (byte~) keyboard_event_scan::$3 != (byte) 0 Inversing boolean not [89] (bool~) keyboard_event_scan::$8 ← (byte~) keyboard_event_scan::$6 == (byte) 0 from [88] (bool~) keyboard_event_scan::$7 ← (byte~) keyboard_event_scan::$6 != (byte) 0 Inversing boolean not [101] (bool~) keyboard_event_scan::$11 ← (byte~) keyboard_event_scan::$9 == (byte) 0 from [100] (bool~) keyboard_event_scan::$10 ← (byte~) keyboard_event_scan::$9 != (byte) 0 -Inversing boolean not [306] (bool~) render_bcd::$2 ← (byte) render_bcd::only_low#6 != (byte) 0 from [305] (bool~) render_bcd::$1 ← (byte) render_bcd::only_low#6 == (byte) 0 -Inversing boolean not [401] (bool~) render_moving::$3 ← (byte) render_moving::current_cell#0 == (byte) 0 from [400] (bool~) render_moving::$2 ← (byte) render_moving::current_cell#0 != (byte) 0 -Inversing boolean not [604] (bool~) play_movement::$2 ← (byte) game_over#1 == (byte) 0 from [603] (bool~) play_movement::$1 ← (byte) game_over#1 != (byte) 0 -Inversing boolean not [645] (bool~) play_move_down::$1 ← (byte) play_move_down::key_event#1 != (const byte) KEY_SPACE from [644] (bool~) play_move_down::$0 ← (byte) play_move_down::key_event#1 == (const byte) KEY_SPACE -Inversing boolean not [654] (bool~) play_move_down::$4 ← (byte~) play_move_down::$2 == (byte) 0 from [653] (bool~) play_move_down::$3 ← (byte~) play_move_down::$2 != (byte) 0 -Inversing boolean not [660] (bool~) play_move_down::$6 ← (byte) current_movedown_counter#12 < (byte) current_movedown_slow#19 from [659] (bool~) play_move_down::$5 ← (byte) current_movedown_counter#12 >= (byte) current_movedown_slow#19 -Inversing boolean not [664] (bool~) play_move_down::$10 ← (byte) current_movedown_counter#13 < (const byte) current_movedown_fast from [663] (bool~) play_move_down::$9 ← (byte) current_movedown_counter#13 >= (const byte) current_movedown_fast -Inversing boolean not [670] (bool~) play_move_down::$8 ← (byte) play_move_down::movedown#6 == (byte) 0 from [669] (bool~) play_move_down::$7 ← (byte) play_move_down::movedown#6 != (byte) 0 -Inversing boolean not [746] (bool~) play_move_leftright::$10 ← (byte~) play_move_leftright::$8 != (const byte) COLLISION_NONE from [745] (bool~) play_move_leftright::$9 ← (byte~) play_move_leftright::$8 == (const byte) COLLISION_NONE -Inversing boolean not [750] (bool~) play_move_leftright::$2 ← (byte) play_move_leftright::key_event#2 != (const byte) KEY_DOT from [749] (bool~) play_move_leftright::$1 ← (byte) play_move_leftright::key_event#2 == (const byte) KEY_DOT -Inversing boolean not [762] (bool~) play_move_leftright::$6 ← (byte~) play_move_leftright::$4 != (const byte) COLLISION_NONE from [761] (bool~) play_move_leftright::$5 ← (byte~) play_move_leftright::$4 == (const byte) COLLISION_NONE -Inversing boolean not [807] (bool~) play_move_rotate::$4 ← (byte~) play_move_rotate::$2 != (const byte) COLLISION_NONE from [806] (bool~) play_move_rotate::$3 ← (byte~) play_move_rotate::$2 == (const byte) COLLISION_NONE -Inversing boolean not [829] (bool~) play_collision::$2 ← *((byte*) play_collision::piece_gfx#1 + (byte) play_collision::i#2) == (byte) 0 from [828] (bool~) play_collision::$1 ← *((byte*) play_collision::piece_gfx#1 + (byte) play_collision::i#2) != (byte) 0 -Inversing boolean not [839] (bool~) play_collision::$4 ← (byte) play_collision::yp#3 < (const byte) PLAYFIELD_LINES from [838] (bool~) play_collision::$3 ← (byte) play_collision::yp#3 >= (const byte) PLAYFIELD_LINES -Inversing boolean not [844] (bool~) play_collision::$7 ← (byte~) play_collision::$5 == (byte) 0 from [843] (bool~) play_collision::$6 ← (byte~) play_collision::$5 != (byte) 0 -Inversing boolean not [852] (bool~) play_collision::$9 ← (byte) play_collision::xp#4 < (const byte) PLAYFIELD_COLS from [851] (bool~) play_collision::$8 ← (byte) play_collision::xp#4 >= (const byte) PLAYFIELD_COLS -Inversing boolean not [857] (bool~) play_collision::$11 ← *((byte*) play_collision::playfield_line#1 + (byte) play_collision::xp#5) == (byte) 0 from [856] (bool~) play_collision::$10 ← *((byte*) play_collision::playfield_line#1 + (byte) play_collision::xp#5) != (byte) 0 -Inversing boolean not [878] (bool~) play_lock_current::$1 ← *((byte*) current_piece_gfx#22 + (byte) play_lock_current::i#2) == (byte) 0 from [877] (bool~) play_lock_current::$0 ← *((byte*) current_piece_gfx#22 + (byte) play_lock_current::i#2) != (byte) 0 -Inversing boolean not [912] (bool~) play_spawn_current::$3 ← (byte~) play_spawn_current::$1 != (const byte) COLLISION_PLAYFIELD from [911] (bool~) play_spawn_current::$2 ← (byte~) play_spawn_current::$1 == (const byte) COLLISION_PLAYFIELD -Inversing boolean not [952] (bool~) play_remove_lines::$1 ← (byte) play_remove_lines::c#0 != (byte) 0 from [951] (bool~) play_remove_lines::$0 ← (byte) play_remove_lines::c#0 == (byte) 0 -Inversing boolean not [964] (bool~) play_remove_lines::$4 ← (byte) play_remove_lines::full#2 != (byte) 1 from [963] (bool~) play_remove_lines::$3 ← (byte) play_remove_lines::full#2 == (byte) 1 -Inversing boolean not [987] (bool~) play_update_score::$1 ← (byte) play_update_score::removed#1 == (byte) 0 from [986] (bool~) play_update_score::$0 ← (byte) play_update_score::removed#1 != (byte) 0 -Inversing boolean not [1003] (bool~) play_update_score::$7 ← (byte) play_update_score::lines_before#0 == (byte) play_update_score::lines_after#0 from [1002] (bool~) play_update_score::$6 ← (byte) play_update_score::lines_before#0 != (byte) play_update_score::lines_after#0 -Inversing boolean not [1029] (bool~) play_increase_level::$3 ← (byte~) play_increase_level::$1 != (byte) $a from [1028] (bool~) play_increase_level::$2 ← (byte~) play_increase_level::$1 == (byte) $a -Inversing boolean not [1137] (bool~) main::$18 ← (byte) main::render#2 == (byte) 0 from [1136] (bool~) main::$17 ← (byte) main::render#2 != (byte) 0 +Inversing boolean not [304] (bool~) render_bcd::$2 ← (byte) render_bcd::only_low#6 != (byte) 0 from [303] (bool~) render_bcd::$1 ← (byte) render_bcd::only_low#6 == (byte) 0 +Inversing boolean not [399] (bool~) render_moving::$3 ← (byte) render_moving::current_cell#0 == (byte) 0 from [398] (bool~) render_moving::$2 ← (byte) render_moving::current_cell#0 != (byte) 0 +Inversing boolean not [602] (bool~) play_movement::$2 ← (byte) game_over#1 == (byte) 0 from [601] (bool~) play_movement::$1 ← (byte) game_over#1 != (byte) 0 +Inversing boolean not [643] (bool~) play_move_down::$1 ← (byte) play_move_down::key_event#1 != (const byte) KEY_SPACE from [642] (bool~) play_move_down::$0 ← (byte) play_move_down::key_event#1 == (const byte) KEY_SPACE +Inversing boolean not [652] (bool~) play_move_down::$4 ← (byte~) play_move_down::$2 == (byte) 0 from [651] (bool~) play_move_down::$3 ← (byte~) play_move_down::$2 != (byte) 0 +Inversing boolean not [658] (bool~) play_move_down::$6 ← (byte) current_movedown_counter#12 < (byte) current_movedown_slow#19 from [657] (bool~) play_move_down::$5 ← (byte) current_movedown_counter#12 >= (byte) current_movedown_slow#19 +Inversing boolean not [662] (bool~) play_move_down::$10 ← (byte) current_movedown_counter#13 < (const byte) current_movedown_fast from [661] (bool~) play_move_down::$9 ← (byte) current_movedown_counter#13 >= (const byte) current_movedown_fast +Inversing boolean not [668] (bool~) play_move_down::$8 ← (byte) play_move_down::movedown#6 == (byte) 0 from [667] (bool~) play_move_down::$7 ← (byte) play_move_down::movedown#6 != (byte) 0 +Inversing boolean not [744] (bool~) play_move_leftright::$10 ← (byte~) play_move_leftright::$8 != (const byte) COLLISION_NONE from [743] (bool~) play_move_leftright::$9 ← (byte~) play_move_leftright::$8 == (const byte) COLLISION_NONE +Inversing boolean not [748] (bool~) play_move_leftright::$2 ← (byte) play_move_leftright::key_event#2 != (const byte) KEY_DOT from [747] (bool~) play_move_leftright::$1 ← (byte) play_move_leftright::key_event#2 == (const byte) KEY_DOT +Inversing boolean not [760] (bool~) play_move_leftright::$6 ← (byte~) play_move_leftright::$4 != (const byte) COLLISION_NONE from [759] (bool~) play_move_leftright::$5 ← (byte~) play_move_leftright::$4 == (const byte) COLLISION_NONE +Inversing boolean not [805] (bool~) play_move_rotate::$4 ← (byte~) play_move_rotate::$2 != (const byte) COLLISION_NONE from [804] (bool~) play_move_rotate::$3 ← (byte~) play_move_rotate::$2 == (const byte) COLLISION_NONE +Inversing boolean not [827] (bool~) play_collision::$2 ← *((byte*) play_collision::piece_gfx#1 + (byte) play_collision::i#2) == (byte) 0 from [826] (bool~) play_collision::$1 ← *((byte*) play_collision::piece_gfx#1 + (byte) play_collision::i#2) != (byte) 0 +Inversing boolean not [837] (bool~) play_collision::$4 ← (byte) play_collision::yp#3 < (const byte) PLAYFIELD_LINES from [836] (bool~) play_collision::$3 ← (byte) play_collision::yp#3 >= (const byte) PLAYFIELD_LINES +Inversing boolean not [842] (bool~) play_collision::$7 ← (byte~) play_collision::$5 == (byte) 0 from [841] (bool~) play_collision::$6 ← (byte~) play_collision::$5 != (byte) 0 +Inversing boolean not [850] (bool~) play_collision::$9 ← (byte) play_collision::xp#4 < (const byte) PLAYFIELD_COLS from [849] (bool~) play_collision::$8 ← (byte) play_collision::xp#4 >= (const byte) PLAYFIELD_COLS +Inversing boolean not [855] (bool~) play_collision::$11 ← *((byte*) play_collision::playfield_line#1 + (byte) play_collision::xp#5) == (byte) 0 from [854] (bool~) play_collision::$10 ← *((byte*) play_collision::playfield_line#1 + (byte) play_collision::xp#5) != (byte) 0 +Inversing boolean not [876] (bool~) play_lock_current::$1 ← *((byte*) current_piece_gfx#22 + (byte) play_lock_current::i#2) == (byte) 0 from [875] (bool~) play_lock_current::$0 ← *((byte*) current_piece_gfx#22 + (byte) play_lock_current::i#2) != (byte) 0 +Inversing boolean not [910] (bool~) play_spawn_current::$3 ← (byte~) play_spawn_current::$1 != (const byte) COLLISION_PLAYFIELD from [909] (bool~) play_spawn_current::$2 ← (byte~) play_spawn_current::$1 == (const byte) COLLISION_PLAYFIELD +Inversing boolean not [950] (bool~) play_remove_lines::$1 ← (byte) play_remove_lines::c#0 != (byte) 0 from [949] (bool~) play_remove_lines::$0 ← (byte) play_remove_lines::c#0 == (byte) 0 +Inversing boolean not [962] (bool~) play_remove_lines::$4 ← (byte) play_remove_lines::full#2 != (byte) 1 from [961] (bool~) play_remove_lines::$3 ← (byte) play_remove_lines::full#2 == (byte) 1 +Inversing boolean not [985] (bool~) play_update_score::$1 ← (byte) play_update_score::removed#1 == (byte) 0 from [984] (bool~) play_update_score::$0 ← (byte) play_update_score::removed#1 != (byte) 0 +Inversing boolean not [1001] (bool~) play_update_score::$7 ← (byte) play_update_score::lines_before#0 == (byte) play_update_score::lines_after#0 from [1000] (bool~) play_update_score::$6 ← (byte) play_update_score::lines_before#0 != (byte) play_update_score::lines_after#0 +Inversing boolean not [1027] (bool~) play_increase_level::$3 ← (byte~) play_increase_level::$1 != (byte) $a from [1026] (bool~) play_increase_level::$2 ← (byte~) play_increase_level::$1 == (byte) $a +Inversing boolean not [1135] (bool~) main::$18 ← (byte) main::render#2 == (byte) 0 from [1134] (bool~) main::$17 ← (byte) main::render#2 != (byte) 0 Successful SSA optimization Pass2UnaryNotSimplification Alias candidate removed (volatile)(byte) render_screen_show#11 = (byte) render_screen_showing Alias candidate removed (volatile)(byte) sprites_irq::toSpritePtr2_return#0 = (byte) irq_sprite_ptr (byte~) $1 (byte~) sprites_irq::toSpritePtr2_$2 (byte) sprites_irq::toSpritePtr2_return#2 (byte) sprites_irq::toSpritePtr2_return#1 (byte) sprites_irq::toSpritePtr2_return#3 (byte~) sprites_irq::$5 @@ -7776,7 +7772,7 @@ Identical Phi Values (byte) current_xpos#16 (byte) current_xpos#59 Identical Phi Values (byte*) current_piece_gfx#29 (byte*) current_piece_gfx#64 Identical Phi Values (byte) current_piece_char#37 (byte) current_piece_char#68 Successful SSA optimization Pass2IdenticalPhiElimination -Identified duplicate assignment right side [184] (byte~) render_init::$5 ← (byte) render_init::i#2 * (const byte) SIZEOF_POINTER +Identified duplicate assignment right side [182] (byte~) render_init::$5 ← (byte) render_init::i#2 * (const byte) SIZEOF_POINTER Successful SSA optimization Pass2DuplicateRValueIdentification Simple Condition (bool~) keyboard_event_scan::$13 [15] if((byte) keyboard_event_scan::row_scan#0!=*((const byte*) keyboard_scan_values + (byte) keyboard_event_scan::row#2)) goto keyboard_event_scan::@9 Simple Condition (bool~) keyboard_event_scan::$25 [21] if((byte) keyboard_event_scan::row#1!=rangelast(0,7)) goto keyboard_event_scan::@8 @@ -7789,76 +7785,76 @@ Simple Condition (bool~) keyboard_event_scan::$5 [56] if((byte~) keyboard_event_ Simple Condition (bool~) keyboard_event_scan::$8 [64] if((byte~) keyboard_event_scan::$6==(byte) 0) goto keyboard_event_scan::@3 Simple Condition (bool~) keyboard_event_scan::$11 [72] if((byte~) keyboard_event_scan::$9==(byte) 0) goto keyboard_event_scan::@return Simple Condition (bool~) keyboard_event_get::$0 [85] if((byte) keyboard_events_size#13==(byte) 0) goto keyboard_event_get::@1 -Simple Condition (bool~) render_init::$3 [138] if((byte) render_init::i#1!=rangelast(0,PLAYFIELD_LINES-1)) goto render_init::@1 -Simple Condition (bool~) render_show::$0 [145] if((byte) render_screen_show#16==(byte) 0) goto render_show::@1 -Simple Condition (bool~) render_score::$0 [181] if((byte) render_screen_render#18==(byte) 0) goto render_score::@1 -Simple Condition (bool~) render_bcd::$2 [219] if((byte) render_bcd::only_low#6!=(byte) 0) goto render_bcd::@1 -Simple Condition (bool~) render_screen_original::$0 [244] if((byte) render_screen_original::x#1!=(byte) 4) goto render_screen_original::@2 -Simple Condition (bool~) render_screen_original::$1 [254] if((byte) render_screen_original::x#2!=(byte) $24) goto render_screen_original::@4 -Simple Condition (bool~) render_screen_original::$2 [262] if((byte) render_screen_original::x#3!=(byte) $28) goto render_screen_original::@6 -Simple Condition (bool~) render_screen_original::$3 [265] if((byte) render_screen_original::y#1!=rangelast(0,$18)) goto render_screen_original::@1 -Simple Condition (bool~) render_playfield::$1 [281] if((byte) render_playfield::c#1!=rangelast(0,PLAYFIELD_COLS-1)) goto render_playfield::@2 -Simple Condition (bool~) render_playfield::$2 [284] if((byte) render_playfield::l#1!=rangelast(2,PLAYFIELD_LINES-1)) goto render_playfield::@1 -Simple Condition (bool~) render_moving::$0 [292] if((byte) render_moving::ypos#2>(byte) 1) goto render_moving::@2 -Simple Condition (bool~) render_moving::$5 [303] if((byte) render_moving::l#1!=rangelast(0,3)) goto render_moving::@1 -Simple Condition (bool~) render_moving::$3 [308] if((byte) render_moving::current_cell#0==(byte) 0) goto render_moving::@5 -Simple Condition (bool~) render_moving::$4 [312] if((byte) render_moving::c#1!=rangelast(0,3)) goto render_moving::@4 -Simple Condition (bool~) render_next::$0 [318] if((byte) render_screen_render#15==(byte) 0) goto render_next::@1 -Simple Condition (bool~) render_next::$3 [332] if((byte) render_next::cell#0!=(byte) 0) goto render_next::@7 -Simple Condition (bool~) render_next::$4 [338] if((byte) render_next::c#1!=rangelast(0,3)) goto render_next::@6 -Simple Condition (bool~) render_next::$5 [342] if((byte) render_next::l#1!=rangelast(0,3)) goto render_next::@5 -Simple Condition (bool~) sprites_init::$2 [358] if((byte) sprites_init::s#1!=rangelast(0,3)) goto sprites_init::@1 -Simple Condition (bool~) sprites_irq::$4 [390] if(*((const byte*) RASTER)<(byte) sprites_irq::raster_sprite_gfx_modify) goto sprites_irq::@11 -Simple Condition (bool~) sprites_irq::$1 [393] if((byte) render_screen_showing==(byte) 0) goto sprites_irq::@1 -Simple Condition (bool~) sprites_irq::$2 [408] if((byte) irq_cnt==(byte) 9) goto sprites_irq::@3 -Simple Condition (bool~) sprites_irq::$3 [422] if((byte) irq_cnt==(byte) $a) goto sprites_irq::@4 -Simple Condition (bool~) play_init::$0 [450] if((byte) play_init::j#1!=rangelast(0,PLAYFIELD_LINES-1)) goto play_init::@1 -Simple Condition (bool~) play_init::$1 [459] if((byte) play_init::b#1!=rangelast(0,4)) goto play_init::@3 -Simple Condition (bool~) play_movement::$2 [470] if((byte) game_over#15==(byte) 0) goto play_movement::@1 -Simple Condition (bool~) play_move_down::$1 [489] if((byte) play_move_down::key_event#0!=(const byte) KEY_SPACE) goto play_move_down::@1 -Simple Condition (bool~) play_move_down::$4 [496] if((byte~) play_move_down::$2==(byte) 0) goto play_move_down::@2 -Simple Condition (bool~) play_move_down::$6 [500] if((byte) current_movedown_counter#12<(byte) current_movedown_slow#14) goto play_move_down::@3 -Simple Condition (bool~) play_move_down::$10 [502] if((byte) current_movedown_counter#12<(const byte) current_movedown_fast) goto play_move_down::@2 -Simple Condition (bool~) play_move_down::$8 [506] if((byte) play_move_down::movedown#6==(byte) 0) goto play_move_down::@4 -Simple Condition (bool~) play_move_down::$13 [516] if((byte~) play_move_down::$12==(const byte) COLLISION_NONE) goto play_move_down::@14 -Simple Condition (bool~) play_move_leftright::$0 [534] if((byte) play_move_leftright::key_event#0==(const byte) KEY_COMMA) goto play_move_leftright::@1 -Simple Condition (bool~) play_move_leftright::$10 [542] if((byte~) play_move_leftright::$8!=(const byte) COLLISION_NONE) goto play_move_leftright::@3 -Simple Condition (bool~) play_move_leftright::$2 [544] if((byte) play_move_leftright::key_event#0!=(const byte) KEY_DOT) goto play_move_leftright::@3 -Simple Condition (bool~) play_move_leftright::$6 [552] if((byte~) play_move_leftright::$4!=(const byte) COLLISION_NONE) goto play_move_leftright::@3 -Simple Condition (bool~) play_move_rotate::$0 [563] if((byte) play_move_rotate::key_event#0==(const byte) KEY_Z) goto play_move_rotate::@1 -Simple Condition (bool~) play_move_rotate::$1 [567] if((byte) play_move_rotate::key_event#0==(const byte) KEY_X) goto play_move_rotate::@2 -Simple Condition (bool~) play_move_rotate::$4 [581] if((byte~) play_move_rotate::$2!=(const byte) COLLISION_NONE) goto play_move_rotate::@5 -Simple Condition (bool~) play_collision::$2 [597] if(*((byte*) play_collision::piece_gfx#0 + (byte) play_collision::i#2)==(byte) 0) goto play_collision::@3 -Simple Condition (bool~) play_collision::$12 [601] if((byte) play_collision::c#1!=rangelast(0,3)) goto play_collision::@2 -Simple Condition (bool~) play_collision::$4 [603] if((byte) play_collision::yp#2<(const byte) PLAYFIELD_LINES) goto play_collision::@4 -Simple Condition (bool~) play_collision::$7 [606] if((byte~) play_collision::$5==(byte) 0) goto play_collision::@5 -Simple Condition (bool~) play_collision::$9 [611] if((byte) play_collision::xp#2<(const byte) PLAYFIELD_COLS) goto play_collision::@6 -Simple Condition (bool~) play_collision::$11 [614] if(*((byte*) play_collision::playfield_line#0 + (byte) play_collision::xp#2)==(byte) 0) goto play_collision::@3 -Simple Condition (bool~) play_collision::$13 [620] if((byte) play_collision::l#1!=rangelast(0,3)) goto play_collision::@1 -Simple Condition (bool~) play_lock_current::$1 [634] if(*((byte*) current_piece_gfx#13 + (byte) play_lock_current::i#2)==(byte) 0) goto play_lock_current::@3 -Simple Condition (bool~) play_lock_current::$2 [638] if((byte) play_lock_current::c#1!=rangelast(0,3)) goto play_lock_current::@2 -Simple Condition (bool~) play_lock_current::$3 [643] if((byte) play_lock_current::l#1!=rangelast(0,3)) goto play_lock_current::@1 -Simple Condition (bool~) play_spawn_current::$3 [661] if((byte~) play_spawn_current::$1!=(const byte) COLLISION_PLAYFIELD) goto play_spawn_current::@1 -Simple Condition (bool~) play_spawn_current::$4 [667] if((byte) play_spawn_current::piece_idx#2==(byte) 7) goto play_spawn_current::sid_rnd1 -Simple Condition (bool~) play_remove_lines::$1 [683] if((byte) play_remove_lines::c#0!=(byte) 0) goto play_remove_lines::@3 -Simple Condition (bool~) play_remove_lines::$2 [689] if((byte) play_remove_lines::x#1!=rangelast(0,PLAYFIELD_COLS-1)) goto play_remove_lines::@2 -Simple Condition (bool~) play_remove_lines::$4 [692] if((byte) play_remove_lines::full#2!=(byte) 1) goto play_remove_lines::@7 -Simple Condition (bool~) play_remove_lines::$6 [696] if((byte) play_remove_lines::y#1!=rangelast(0,PLAYFIELD_LINES-1)) goto play_remove_lines::@1 -Simple Condition (bool~) play_remove_lines::$7 [701] if((byte) play_remove_lines::w#6!=(byte) $ff) goto play_remove_lines::@10 -Simple Condition (bool~) play_update_score::$1 [707] if((byte) play_update_score::removed#0==(byte) 0) goto play_update_score::@return -Simple Condition (bool~) play_update_score::$7 [719] if((byte) play_update_score::lines_before#0==(byte) play_update_score::lines_after#0) goto play_update_score::@return -Simple Condition (bool~) play_increase_level::$0 [727] if((byte) level#21>(byte) $1d) goto play_increase_level::@1 -Simple Condition (bool~) play_increase_level::$3 [734] if((byte~) play_increase_level::$1!=(byte) $a) goto play_increase_level::@3 -Simple Condition (bool~) play_increase_level::$4 [744] if((byte) play_increase_level::b#1!=rangelast(0,4)) goto play_increase_level::@7 -Simple Condition (bool~) main::$10 [767] if(*((const byte*) RASTER)!=(byte) $ff) goto main::@4 -Simple Condition (bool~) main::$14 [777] if((byte) game_over#10==(byte) 0) goto main::@11 -Simple Condition (bool~) main::$18 [788] if((byte) main::render#2==(byte) 0) goto main::@1 +Simple Condition (bool~) render_init::$3 [136] if((byte) render_init::i#1!=rangelast(0,PLAYFIELD_LINES-1)) goto render_init::@1 +Simple Condition (bool~) render_show::$0 [143] if((byte) render_screen_show#16==(byte) 0) goto render_show::@1 +Simple Condition (bool~) render_score::$0 [179] if((byte) render_screen_render#18==(byte) 0) goto render_score::@1 +Simple Condition (bool~) render_bcd::$2 [217] if((byte) render_bcd::only_low#6!=(byte) 0) goto render_bcd::@1 +Simple Condition (bool~) render_screen_original::$0 [242] if((byte) render_screen_original::x#1!=(byte) 4) goto render_screen_original::@2 +Simple Condition (bool~) render_screen_original::$1 [252] if((byte) render_screen_original::x#2!=(byte) $24) goto render_screen_original::@4 +Simple Condition (bool~) render_screen_original::$2 [260] if((byte) render_screen_original::x#3!=(byte) $28) goto render_screen_original::@6 +Simple Condition (bool~) render_screen_original::$3 [263] if((byte) render_screen_original::y#1!=rangelast(0,$18)) goto render_screen_original::@1 +Simple Condition (bool~) render_playfield::$1 [279] if((byte) render_playfield::c#1!=rangelast(0,PLAYFIELD_COLS-1)) goto render_playfield::@2 +Simple Condition (bool~) render_playfield::$2 [282] if((byte) render_playfield::l#1!=rangelast(2,PLAYFIELD_LINES-1)) goto render_playfield::@1 +Simple Condition (bool~) render_moving::$0 [290] if((byte) render_moving::ypos#2>(byte) 1) goto render_moving::@2 +Simple Condition (bool~) render_moving::$5 [301] if((byte) render_moving::l#1!=rangelast(0,3)) goto render_moving::@1 +Simple Condition (bool~) render_moving::$3 [306] if((byte) render_moving::current_cell#0==(byte) 0) goto render_moving::@5 +Simple Condition (bool~) render_moving::$4 [310] if((byte) render_moving::c#1!=rangelast(0,3)) goto render_moving::@4 +Simple Condition (bool~) render_next::$0 [316] if((byte) render_screen_render#15==(byte) 0) goto render_next::@1 +Simple Condition (bool~) render_next::$3 [330] if((byte) render_next::cell#0!=(byte) 0) goto render_next::@7 +Simple Condition (bool~) render_next::$4 [336] if((byte) render_next::c#1!=rangelast(0,3)) goto render_next::@6 +Simple Condition (bool~) render_next::$5 [340] if((byte) render_next::l#1!=rangelast(0,3)) goto render_next::@5 +Simple Condition (bool~) sprites_init::$2 [356] if((byte) sprites_init::s#1!=rangelast(0,3)) goto sprites_init::@1 +Simple Condition (bool~) sprites_irq::$4 [388] if(*((const byte*) RASTER)<(byte) sprites_irq::raster_sprite_gfx_modify) goto sprites_irq::@11 +Simple Condition (bool~) sprites_irq::$1 [391] if((byte) render_screen_showing==(byte) 0) goto sprites_irq::@1 +Simple Condition (bool~) sprites_irq::$2 [406] if((byte) irq_cnt==(byte) 9) goto sprites_irq::@3 +Simple Condition (bool~) sprites_irq::$3 [420] if((byte) irq_cnt==(byte) $a) goto sprites_irq::@4 +Simple Condition (bool~) play_init::$0 [448] if((byte) play_init::j#1!=rangelast(0,PLAYFIELD_LINES-1)) goto play_init::@1 +Simple Condition (bool~) play_init::$1 [457] if((byte) play_init::b#1!=rangelast(0,4)) goto play_init::@3 +Simple Condition (bool~) play_movement::$2 [468] if((byte) game_over#15==(byte) 0) goto play_movement::@1 +Simple Condition (bool~) play_move_down::$1 [487] if((byte) play_move_down::key_event#0!=(const byte) KEY_SPACE) goto play_move_down::@1 +Simple Condition (bool~) play_move_down::$4 [494] if((byte~) play_move_down::$2==(byte) 0) goto play_move_down::@2 +Simple Condition (bool~) play_move_down::$6 [498] if((byte) current_movedown_counter#12<(byte) current_movedown_slow#14) goto play_move_down::@3 +Simple Condition (bool~) play_move_down::$10 [500] if((byte) current_movedown_counter#12<(const byte) current_movedown_fast) goto play_move_down::@2 +Simple Condition (bool~) play_move_down::$8 [504] if((byte) play_move_down::movedown#6==(byte) 0) goto play_move_down::@4 +Simple Condition (bool~) play_move_down::$13 [514] if((byte~) play_move_down::$12==(const byte) COLLISION_NONE) goto play_move_down::@14 +Simple Condition (bool~) play_move_leftright::$0 [532] if((byte) play_move_leftright::key_event#0==(const byte) KEY_COMMA) goto play_move_leftright::@1 +Simple Condition (bool~) play_move_leftright::$10 [540] if((byte~) play_move_leftright::$8!=(const byte) COLLISION_NONE) goto play_move_leftright::@3 +Simple Condition (bool~) play_move_leftright::$2 [542] if((byte) play_move_leftright::key_event#0!=(const byte) KEY_DOT) goto play_move_leftright::@3 +Simple Condition (bool~) play_move_leftright::$6 [550] if((byte~) play_move_leftright::$4!=(const byte) COLLISION_NONE) goto play_move_leftright::@3 +Simple Condition (bool~) play_move_rotate::$0 [561] if((byte) play_move_rotate::key_event#0==(const byte) KEY_Z) goto play_move_rotate::@1 +Simple Condition (bool~) play_move_rotate::$1 [565] if((byte) play_move_rotate::key_event#0==(const byte) KEY_X) goto play_move_rotate::@2 +Simple Condition (bool~) play_move_rotate::$4 [579] if((byte~) play_move_rotate::$2!=(const byte) COLLISION_NONE) goto play_move_rotate::@5 +Simple Condition (bool~) play_collision::$2 [595] if(*((byte*) play_collision::piece_gfx#0 + (byte) play_collision::i#2)==(byte) 0) goto play_collision::@3 +Simple Condition (bool~) play_collision::$12 [599] if((byte) play_collision::c#1!=rangelast(0,3)) goto play_collision::@2 +Simple Condition (bool~) play_collision::$4 [601] if((byte) play_collision::yp#2<(const byte) PLAYFIELD_LINES) goto play_collision::@4 +Simple Condition (bool~) play_collision::$7 [604] if((byte~) play_collision::$5==(byte) 0) goto play_collision::@5 +Simple Condition (bool~) play_collision::$9 [609] if((byte) play_collision::xp#2<(const byte) PLAYFIELD_COLS) goto play_collision::@6 +Simple Condition (bool~) play_collision::$11 [612] if(*((byte*) play_collision::playfield_line#0 + (byte) play_collision::xp#2)==(byte) 0) goto play_collision::@3 +Simple Condition (bool~) play_collision::$13 [618] if((byte) play_collision::l#1!=rangelast(0,3)) goto play_collision::@1 +Simple Condition (bool~) play_lock_current::$1 [632] if(*((byte*) current_piece_gfx#13 + (byte) play_lock_current::i#2)==(byte) 0) goto play_lock_current::@3 +Simple Condition (bool~) play_lock_current::$2 [636] if((byte) play_lock_current::c#1!=rangelast(0,3)) goto play_lock_current::@2 +Simple Condition (bool~) play_lock_current::$3 [641] if((byte) play_lock_current::l#1!=rangelast(0,3)) goto play_lock_current::@1 +Simple Condition (bool~) play_spawn_current::$3 [659] if((byte~) play_spawn_current::$1!=(const byte) COLLISION_PLAYFIELD) goto play_spawn_current::@1 +Simple Condition (bool~) play_spawn_current::$4 [665] if((byte) play_spawn_current::piece_idx#2==(byte) 7) goto play_spawn_current::sid_rnd1 +Simple Condition (bool~) play_remove_lines::$1 [681] if((byte) play_remove_lines::c#0!=(byte) 0) goto play_remove_lines::@3 +Simple Condition (bool~) play_remove_lines::$2 [687] if((byte) play_remove_lines::x#1!=rangelast(0,PLAYFIELD_COLS-1)) goto play_remove_lines::@2 +Simple Condition (bool~) play_remove_lines::$4 [690] if((byte) play_remove_lines::full#2!=(byte) 1) goto play_remove_lines::@7 +Simple Condition (bool~) play_remove_lines::$6 [694] if((byte) play_remove_lines::y#1!=rangelast(0,PLAYFIELD_LINES-1)) goto play_remove_lines::@1 +Simple Condition (bool~) play_remove_lines::$7 [699] if((byte) play_remove_lines::w#6!=(byte) $ff) goto play_remove_lines::@10 +Simple Condition (bool~) play_update_score::$1 [705] if((byte) play_update_score::removed#0==(byte) 0) goto play_update_score::@return +Simple Condition (bool~) play_update_score::$7 [717] if((byte) play_update_score::lines_before#0==(byte) play_update_score::lines_after#0) goto play_update_score::@return +Simple Condition (bool~) play_increase_level::$0 [725] if((byte) level#21>(byte) $1d) goto play_increase_level::@1 +Simple Condition (bool~) play_increase_level::$3 [732] if((byte~) play_increase_level::$1!=(byte) $a) goto play_increase_level::@3 +Simple Condition (bool~) play_increase_level::$4 [742] if((byte) play_increase_level::b#1!=rangelast(0,4)) goto play_increase_level::@7 +Simple Condition (bool~) main::$10 [765] if(*((const byte*) RASTER)!=(byte) $ff) goto main::@4 +Simple Condition (bool~) main::$14 [775] if((byte) game_over#10==(byte) 0) goto main::@11 +Simple Condition (bool~) main::$18 [786] if((byte) main::render#2==(byte) 0) goto main::@1 Successful SSA optimization Pass2ConditionalJumpSimplification -Constant right-side identified [190] (word) render_bcd::offset#1 ← (const word) render_score::score_offset + (byte) 2 -Constant right-side identified [195] (word) render_bcd::offset#2 ← (const word) render_score::score_offset + (byte) 4 -Constant right-side identified [205] (word) render_bcd::offset#4 ← (const word) render_score::lines_offset + (byte) 1 -Constant right-side identified [319] (byte*) render_next::screen_next_area#1 ← (const byte*) PLAYFIELD_SCREEN_1 + (const word) render_next::next_area_offset -Constant right-side identified [320] (byte*) render_next::screen_next_area#2 ← (const byte*) PLAYFIELD_SCREEN_2 + (const word) render_next::next_area_offset +Constant right-side identified [188] (word) render_bcd::offset#1 ← (const word) render_score::score_offset + (byte) 2 +Constant right-side identified [193] (word) render_bcd::offset#2 ← (const word) render_score::score_offset + (byte) 4 +Constant right-side identified [203] (word) render_bcd::offset#4 ← (const word) render_score::lines_offset + (byte) 1 +Constant right-side identified [317] (byte*) render_next::screen_next_area#1 ← (const byte*) PLAYFIELD_SCREEN_1 + (const word) render_next::next_area_offset +Constant right-side identified [318] (byte*) render_next::screen_next_area#2 ← (const byte*) PLAYFIELD_SCREEN_2 + (const word) render_next::next_area_offset Successful SSA optimization Pass2ConstantRValueConsolidation Constant (const byte) keyboard_events_size#0 = 0 Constant (const byte) keyboard_modifiers#0 = 0 @@ -7985,7 +7981,7 @@ Constant (const word) toSpritePtr1_$0 = (word)toSpritePtr1_sprite#0 Constant (const word) sprites_irq::toSpritePtr2_$0 = (word)sprites_irq::toSpritePtr2_sprite#0 Constant (const byte) play_collision::orientation#4 = current_orientation#68 Successful SSA optimization Pass2ConstantIdentification -if() condition always true - replacing block destination [764] if(true) goto main::@4 +if() condition always true - replacing block destination [762] if(true) goto main::@4 Removing PHI-reference to removed block (main::@12) in block main::@19 Removing PHI-reference to removed block (main::@12) in block main::@19 Removing PHI-reference to removed block (main::@12) in block main::@19 @@ -8000,62 +7996,62 @@ Removing PHI-reference to removed block (main::@12) in block main::@19 Removing PHI-reference to removed block (main::@12) in block main::@19 Removing PHI-reference to removed block (main::@12) in block main::@19 Removing PHI-reference to removed block (main::@12) in block main::@19 -if() condition always true - replacing block destination [784] if(true) goto main::@13 +if() condition always true - replacing block destination [782] if(true) goto main::@13 Successful SSA optimization Pass2ConstantIfs Resolved ranged next value [19] keyboard_event_scan::row#1 ← ++ keyboard_event_scan::row#2 to ++ Resolved ranged comparison value [21] if(keyboard_event_scan::row#1!=rangelast(0,7)) goto keyboard_event_scan::@8 to (number) 8 Resolved ranged next value [29] keyboard_event_scan::col#1 ← ++ keyboard_event_scan::col#2 to ++ Resolved ranged comparison value [31] if(keyboard_event_scan::col#1!=rangelast(0,7)) goto keyboard_event_scan::@11 to (number) 8 -Resolved ranged next value [136] render_init::i#1 ← ++ render_init::i#2 to ++ -Resolved ranged comparison value [138] if(render_init::i#1!=rangelast(0,PLAYFIELD_LINES-1)) goto render_init::@1 to (const byte) PLAYFIELD_LINES-(byte) 1+(number) 1 -Resolved ranged next value [263] render_screen_original::y#1 ← ++ render_screen_original::y#6 to ++ -Resolved ranged comparison value [265] if(render_screen_original::y#1!=rangelast(0,$18)) goto render_screen_original::@1 to (number) $19 -Resolved ranged next value [279] render_playfield::c#1 ← ++ render_playfield::c#2 to ++ -Resolved ranged comparison value [281] if(render_playfield::c#1!=rangelast(0,PLAYFIELD_COLS-1)) goto render_playfield::@2 to (const byte) PLAYFIELD_COLS-(byte) 1+(number) 1 -Resolved ranged next value [282] render_playfield::l#1 ← ++ render_playfield::l#2 to ++ -Resolved ranged comparison value [284] if(render_playfield::l#1!=rangelast(2,PLAYFIELD_LINES-1)) goto render_playfield::@1 to (const byte) PLAYFIELD_LINES-(byte) 1+(number) 1 -Resolved ranged next value [301] render_moving::l#1 ← ++ render_moving::l#4 to ++ -Resolved ranged comparison value [303] if(render_moving::l#1!=rangelast(0,3)) goto render_moving::@1 to (number) 4 -Resolved ranged next value [310] render_moving::c#1 ← ++ render_moving::c#2 to ++ -Resolved ranged comparison value [312] if(render_moving::c#1!=rangelast(0,3)) goto render_moving::@4 to (number) 4 -Resolved ranged next value [336] render_next::c#1 ← ++ render_next::c#2 to ++ -Resolved ranged comparison value [338] if(render_next::c#1!=rangelast(0,3)) goto render_next::@6 to (number) 4 -Resolved ranged next value [340] render_next::l#1 ← ++ render_next::l#7 to ++ -Resolved ranged comparison value [342] if(render_next::l#1!=rangelast(0,3)) goto render_next::@5 to (number) 4 -Resolved ranged next value [356] sprites_init::s#1 ← ++ sprites_init::s#2 to ++ -Resolved ranged comparison value [358] if(sprites_init::s#1!=rangelast(0,3)) goto sprites_init::@1 to (number) 4 -Resolved ranged next value [448] play_init::j#1 ← ++ play_init::j#2 to ++ -Resolved ranged comparison value [450] if(play_init::j#1!=rangelast(0,PLAYFIELD_LINES-1)) goto play_init::@1 to (const byte) PLAYFIELD_LINES-(byte) 1+(number) 1 -Resolved ranged next value [457] play_init::b#1 ← ++ play_init::b#2 to ++ -Resolved ranged comparison value [459] if(play_init::b#1!=rangelast(0,4)) goto play_init::@3 to (number) 5 -Resolved ranged next value [599] play_collision::c#1 ← ++ play_collision::c#2 to ++ -Resolved ranged comparison value [601] if(play_collision::c#1!=rangelast(0,3)) goto play_collision::@2 to (number) 4 -Resolved ranged next value [618] play_collision::l#1 ← ++ play_collision::l#6 to ++ -Resolved ranged comparison value [620] if(play_collision::l#1!=rangelast(0,3)) goto play_collision::@1 to (number) 4 -Resolved ranged next value [636] play_lock_current::c#1 ← ++ play_lock_current::c#2 to ++ -Resolved ranged comparison value [638] if(play_lock_current::c#1!=rangelast(0,3)) goto play_lock_current::@2 to (number) 4 -Resolved ranged next value [641] play_lock_current::l#1 ← ++ play_lock_current::l#6 to ++ -Resolved ranged comparison value [643] if(play_lock_current::l#1!=rangelast(0,3)) goto play_lock_current::@1 to (number) 4 -Resolved ranged next value [687] play_remove_lines::x#1 ← ++ play_remove_lines::x#2 to ++ -Resolved ranged comparison value [689] if(play_remove_lines::x#1!=rangelast(0,PLAYFIELD_COLS-1)) goto play_remove_lines::@2 to (const byte) PLAYFIELD_COLS-(byte) 1+(number) 1 -Resolved ranged next value [694] play_remove_lines::y#1 ← ++ play_remove_lines::y#8 to ++ -Resolved ranged comparison value [696] if(play_remove_lines::y#1!=rangelast(0,PLAYFIELD_LINES-1)) goto play_remove_lines::@1 to (const byte) PLAYFIELD_LINES-(byte) 1+(number) 1 -Resolved ranged next value [742] play_increase_level::b#1 ← ++ play_increase_level::b#2 to ++ -Resolved ranged comparison value [744] if(play_increase_level::b#1!=rangelast(0,4)) goto play_increase_level::@7 to (number) 5 -Rewriting conditional comparison [292] if((byte) render_moving::ypos#2>(byte) 1) goto render_moving::@2 -Rewriting conditional comparison [727] if((byte) level#21>(byte) $1d) goto play_increase_level::@1 +Resolved ranged next value [134] render_init::i#1 ← ++ render_init::i#2 to ++ +Resolved ranged comparison value [136] if(render_init::i#1!=rangelast(0,PLAYFIELD_LINES-1)) goto render_init::@1 to (const byte) PLAYFIELD_LINES-(byte) 1+(number) 1 +Resolved ranged next value [261] render_screen_original::y#1 ← ++ render_screen_original::y#6 to ++ +Resolved ranged comparison value [263] if(render_screen_original::y#1!=rangelast(0,$18)) goto render_screen_original::@1 to (number) $19 +Resolved ranged next value [277] render_playfield::c#1 ← ++ render_playfield::c#2 to ++ +Resolved ranged comparison value [279] if(render_playfield::c#1!=rangelast(0,PLAYFIELD_COLS-1)) goto render_playfield::@2 to (const byte) PLAYFIELD_COLS-(byte) 1+(number) 1 +Resolved ranged next value [280] render_playfield::l#1 ← ++ render_playfield::l#2 to ++ +Resolved ranged comparison value [282] if(render_playfield::l#1!=rangelast(2,PLAYFIELD_LINES-1)) goto render_playfield::@1 to (const byte) PLAYFIELD_LINES-(byte) 1+(number) 1 +Resolved ranged next value [299] render_moving::l#1 ← ++ render_moving::l#4 to ++ +Resolved ranged comparison value [301] if(render_moving::l#1!=rangelast(0,3)) goto render_moving::@1 to (number) 4 +Resolved ranged next value [308] render_moving::c#1 ← ++ render_moving::c#2 to ++ +Resolved ranged comparison value [310] if(render_moving::c#1!=rangelast(0,3)) goto render_moving::@4 to (number) 4 +Resolved ranged next value [334] render_next::c#1 ← ++ render_next::c#2 to ++ +Resolved ranged comparison value [336] if(render_next::c#1!=rangelast(0,3)) goto render_next::@6 to (number) 4 +Resolved ranged next value [338] render_next::l#1 ← ++ render_next::l#7 to ++ +Resolved ranged comparison value [340] if(render_next::l#1!=rangelast(0,3)) goto render_next::@5 to (number) 4 +Resolved ranged next value [354] sprites_init::s#1 ← ++ sprites_init::s#2 to ++ +Resolved ranged comparison value [356] if(sprites_init::s#1!=rangelast(0,3)) goto sprites_init::@1 to (number) 4 +Resolved ranged next value [446] play_init::j#1 ← ++ play_init::j#2 to ++ +Resolved ranged comparison value [448] if(play_init::j#1!=rangelast(0,PLAYFIELD_LINES-1)) goto play_init::@1 to (const byte) PLAYFIELD_LINES-(byte) 1+(number) 1 +Resolved ranged next value [455] play_init::b#1 ← ++ play_init::b#2 to ++ +Resolved ranged comparison value [457] if(play_init::b#1!=rangelast(0,4)) goto play_init::@3 to (number) 5 +Resolved ranged next value [597] play_collision::c#1 ← ++ play_collision::c#2 to ++ +Resolved ranged comparison value [599] if(play_collision::c#1!=rangelast(0,3)) goto play_collision::@2 to (number) 4 +Resolved ranged next value [616] play_collision::l#1 ← ++ play_collision::l#6 to ++ +Resolved ranged comparison value [618] if(play_collision::l#1!=rangelast(0,3)) goto play_collision::@1 to (number) 4 +Resolved ranged next value [634] play_lock_current::c#1 ← ++ play_lock_current::c#2 to ++ +Resolved ranged comparison value [636] if(play_lock_current::c#1!=rangelast(0,3)) goto play_lock_current::@2 to (number) 4 +Resolved ranged next value [639] play_lock_current::l#1 ← ++ play_lock_current::l#6 to ++ +Resolved ranged comparison value [641] if(play_lock_current::l#1!=rangelast(0,3)) goto play_lock_current::@1 to (number) 4 +Resolved ranged next value [685] play_remove_lines::x#1 ← ++ play_remove_lines::x#2 to ++ +Resolved ranged comparison value [687] if(play_remove_lines::x#1!=rangelast(0,PLAYFIELD_COLS-1)) goto play_remove_lines::@2 to (const byte) PLAYFIELD_COLS-(byte) 1+(number) 1 +Resolved ranged next value [692] play_remove_lines::y#1 ← ++ play_remove_lines::y#8 to ++ +Resolved ranged comparison value [694] if(play_remove_lines::y#1!=rangelast(0,PLAYFIELD_LINES-1)) goto play_remove_lines::@1 to (const byte) PLAYFIELD_LINES-(byte) 1+(number) 1 +Resolved ranged next value [740] play_increase_level::b#1 ← ++ play_increase_level::b#2 to ++ +Resolved ranged comparison value [742] if(play_increase_level::b#1!=rangelast(0,4)) goto play_increase_level::@7 to (number) 5 +Rewriting conditional comparison [290] if((byte) render_moving::ypos#2>(byte) 1) goto render_moving::@2 +Rewriting conditional comparison [725] if((byte) level#21>(byte) $1d) goto play_increase_level::@1 Simplifying expression containing zero KEY_MODIFIER_LSHIFT in [57] (byte) keyboard_modifiers#2 ← (const byte) keyboard_modifiers#1 | (const byte) KEY_MODIFIER_LSHIFT -Simplifying expression containing zero PIECES_COLORS_1 in [119] *((const byte*) BGCOL2) ← *((const byte*) PIECES_COLORS_1 + (byte) 0) -Simplifying expression containing zero PIECES_COLORS_2 in [120] *((const byte*) BGCOL3) ← *((const byte*) PIECES_COLORS_2 + (byte) 0) -Simplifying expression containing zero render_score::score_bytes in [197] (byte) render_bcd::bcd#2 ← *((const byte*) render_score::score_bytes + (byte) 0) -Simplifying expression containing zero SPRITES_YPOS in [383] *((const byte*) SPRITES_YPOS + (byte) 0) ← (byte) sprites_irq::ypos#0 -Simplifying expression containing zero PLAYFIELD_SPRITE_PTRS_1 in [394] *((const byte*) PLAYFIELD_SPRITE_PTRS_1 + (byte) 0) ← (byte) sprites_irq::ptr#0 -Simplifying expression containing zero PLAYFIELD_SPRITE_PTRS_2 in [400] *((const byte*) PLAYFIELD_SPRITE_PTRS_2 + (byte) 0) ← (byte) sprites_irq::ptr#0 -Simplifying expression containing zero MOVEDOWN_SLOW_SPEEDS in [452] (byte) current_movedown_slow#1 ← *((const byte*) MOVEDOWN_SLOW_SPEEDS + (const byte) level#0) -Simplifying expression containing zero play_movement::$0 in [468] (byte) play_movement::render#1 ← (const byte) play_movement::render#0 + (byte~) play_movement::$0 -Simplifying expression containing zero current_piece#5 in [651] (byte*) current_piece_gfx#74 ← (byte*) current_piece#5 + (const byte) current_orientation#68 +Simplifying expression containing zero PIECES_COLORS_1 in [117] *((const byte*) BGCOL2) ← *((const byte*) PIECES_COLORS_1 + (byte) 0) +Simplifying expression containing zero PIECES_COLORS_2 in [118] *((const byte*) BGCOL3) ← *((const byte*) PIECES_COLORS_2 + (byte) 0) +Simplifying expression containing zero render_score::score_bytes in [195] (byte) render_bcd::bcd#2 ← *((const byte*) render_score::score_bytes + (byte) 0) +Simplifying expression containing zero SPRITES_YPOS in [381] *((const byte*) SPRITES_YPOS + (byte) 0) ← (byte) sprites_irq::ypos#0 +Simplifying expression containing zero PLAYFIELD_SPRITE_PTRS_1 in [392] *((const byte*) PLAYFIELD_SPRITE_PTRS_1 + (byte) 0) ← (byte) sprites_irq::ptr#0 +Simplifying expression containing zero PLAYFIELD_SPRITE_PTRS_2 in [398] *((const byte*) PLAYFIELD_SPRITE_PTRS_2 + (byte) 0) ← (byte) sprites_irq::ptr#0 +Simplifying expression containing zero MOVEDOWN_SLOW_SPEEDS in [450] (byte) current_movedown_slow#1 ← *((const byte*) MOVEDOWN_SLOW_SPEEDS + (const byte) level#0) +Simplifying expression containing zero play_movement::$0 in [466] (byte) play_movement::render#1 ← (const byte) play_movement::render#0 + (byte~) play_movement::$0 +Simplifying expression containing zero current_piece#5 in [649] (byte*) current_piece_gfx#74 ← (byte*) current_piece#5 + (const byte) current_orientation#68 Successful SSA optimization PassNSimplifyExpressionWithZero -Eliminating unused variable (byte*) render_bcd::screen_pos#1 and assignment [149] (byte*) render_bcd::screen_pos#1 ← ++ (byte*) render_bcd::screen_pos#3 +Eliminating unused variable (byte*) render_bcd::screen_pos#1 and assignment [147] (byte*) render_bcd::screen_pos#1 ← ++ (byte*) render_bcd::screen_pos#3 Eliminating unused variable - keeping the phi block (byte) keyboard_modifiers#16 Eliminating unused constant (const byte) render_show::d018val#0 Eliminating unused constant (const byte*) render_score::screen#0 @@ -8211,14 +8207,14 @@ Identical Phi Values (word) lines_bcd#40 (word) lines_bcd#15 Identical Phi Values (byte) level#102 (byte) level#17 Identical Phi Values (byte) level_bcd#50 (byte) level_bcd#17 Successful SSA optimization Pass2IdenticalPhiElimination -Constant right-side identified [67] (byte~) render_init::vicSelectGfxBank1_toDd001_$1 ← > (const word) render_init::vicSelectGfxBank1_toDd001_$0 -Constant right-side identified [89] (word~) render_show::toD0181_$1 ← (const word) render_show::toD0181_$0 & (word) $3fff -Constant right-side identified [92] (byte~) render_show::toD0181_$5 ← > (const word) render_show::toD0181_$4 -Constant right-side identified [96] (word~) render_show::toD0182_$1 ← (const word) render_show::toD0182_$0 & (word) $3fff -Constant right-side identified [99] (byte~) render_show::toD0182_$5 ← > (const word) render_show::toD0182_$4 -Constant right-side identified [244] (word~) toSpritePtr1_$1 ← (const word) toSpritePtr1_$0 / (byte) $40 -Constant right-side identified [288] (word~) sprites_irq::toSpritePtr2_$1 ← (const word) sprites_irq::toSpritePtr2_$0 / (byte) $40 -Constant right-side identified [345] (byte) play_move_down::movedown#1 ← ++ (const byte) play_move_down::movedown#0 +Constant right-side identified [65] (byte~) render_init::vicSelectGfxBank1_toDd001_$1 ← > (const word) render_init::vicSelectGfxBank1_toDd001_$0 +Constant right-side identified [87] (word~) render_show::toD0181_$1 ← (const word) render_show::toD0181_$0 & (word) $3fff +Constant right-side identified [90] (byte~) render_show::toD0181_$5 ← > (const word) render_show::toD0181_$4 +Constant right-side identified [94] (word~) render_show::toD0182_$1 ← (const word) render_show::toD0182_$0 & (word) $3fff +Constant right-side identified [97] (byte~) render_show::toD0182_$5 ← > (const word) render_show::toD0182_$4 +Constant right-side identified [242] (word~) toSpritePtr1_$1 ← (const word) toSpritePtr1_$0 / (byte) $40 +Constant right-side identified [286] (word~) sprites_irq::toSpritePtr2_$1 ← (const word) sprites_irq::toSpritePtr2_$0 / (byte) $40 +Constant right-side identified [343] (byte) play_move_down::movedown#1 ← ++ (const byte) play_move_down::movedown#0 Successful SSA optimization Pass2ConstantRValueConsolidation Constant (const byte) render_init::vicSelectGfxBank1_toDd001_$1 = >render_init::vicSelectGfxBank1_toDd001_$0 Constant (const word) render_show::toD0181_$1 = render_show::toD0181_$0&$3fff @@ -8240,12 +8236,12 @@ Constant (const byte) sprites_irq::$5 = sprites_irq::toSpritePtr2_return#1 Successful SSA optimization Pass2ConstantIdentification Alias candidate removed (volatile)(byte) irq_sprite_ptr = (byte~) $1 Alias candidate removed (volatile)(byte) sprites_irq::raster_sprite_gfx_modify = (byte~) sprites_irq::$0 -Constant right-side identified [67] (byte~) render_init::vicSelectGfxBank1_toDd001_$2 ← (const byte) render_init::vicSelectGfxBank1_toDd001_$1 / (byte) $40 -Constant right-side identified [88] (word~) render_show::toD0181_$2 ← (const word) render_show::toD0181_$1 * (byte) 4 -Constant right-side identified [90] (byte~) render_show::toD0181_$6 ← (const byte) render_show::toD0181_$5 / (byte) 4 -Constant right-side identified [93] (word~) render_show::toD0182_$2 ← (const word) render_show::toD0182_$1 * (byte) 4 -Constant right-side identified [95] (byte~) render_show::toD0182_$6 ← (const byte) render_show::toD0182_$5 / (byte) 4 -Constant right-side identified [239] (byte~) $1 ← (const byte) toSpritePtr1_return#0 + (byte) 3 +Constant right-side identified [65] (byte~) render_init::vicSelectGfxBank1_toDd001_$2 ← (const byte) render_init::vicSelectGfxBank1_toDd001_$1 / (byte) $40 +Constant right-side identified [86] (word~) render_show::toD0181_$2 ← (const word) render_show::toD0181_$1 * (byte) 4 +Constant right-side identified [88] (byte~) render_show::toD0181_$6 ← (const byte) render_show::toD0181_$5 / (byte) 4 +Constant right-side identified [91] (word~) render_show::toD0182_$2 ← (const word) render_show::toD0182_$1 * (byte) 4 +Constant right-side identified [93] (byte~) render_show::toD0182_$6 ← (const byte) render_show::toD0182_$5 / (byte) 4 +Constant right-side identified [237] (byte~) $1 ← (const byte) toSpritePtr1_return#0 + (byte) 3 Successful SSA optimization Pass2ConstantRValueConsolidation Constant (const byte) render_init::vicSelectGfxBank1_toDd001_$2 = render_init::vicSelectGfxBank1_toDd001_$1/$40 Constant (const word) render_show::toD0181_$2 = render_show::toD0181_$1*4 @@ -8256,7 +8252,7 @@ Constant (const byte) $1 = toSpritePtr1_return#0+3 Successful SSA optimization Pass2ConstantIdentification Simplifying constant evaluating to zero (const byte) render_init::vicSelectGfxBank1_toDd001_$1/(byte) $40 in Successful SSA optimization PassNSimplifyConstantZero -Simplifying expression containing zero 3 in [68] (byte) render_init::vicSelectGfxBank1_toDd001_return#0 ← (byte) 3 ^ (const byte) render_init::vicSelectGfxBank1_toDd001_$2 +Simplifying expression containing zero 3 in [66] (byte) render_init::vicSelectGfxBank1_toDd001_return#0 ← (byte) 3 ^ (const byte) render_init::vicSelectGfxBank1_toDd001_$2 Successful SSA optimization PassNSimplifyExpressionWithZero Eliminating unused constant (const byte) render_init::vicSelectGfxBank1_toDd001_$1 Eliminating unused constant (const byte) render_init::vicSelectGfxBank1_toDd001_$2 @@ -8266,10 +8262,10 @@ Successful SSA optimization PassNEliminateUnusedVars Eliminating unused constant (const byte*) render_init::vicSelectGfxBank1_gfx#0 Successful SSA optimization PassNEliminateUnusedVars Alias candidate removed (volatile)(byte) sprites_irq::raster_sprite_gfx_modify = (byte~) sprites_irq::$0 -Constant right-side identified [87] (byte~) render_show::toD0181_$3 ← > (const word) render_show::toD0181_$2 -Constant right-side identified [88] (byte~) render_show::toD0181_$7 ← (const byte) render_show::toD0181_$6 & (byte) $f -Constant right-side identified [90] (byte~) render_show::toD0182_$3 ← > (const word) render_show::toD0182_$2 -Constant right-side identified [91] (byte~) render_show::toD0182_$7 ← (const byte) render_show::toD0182_$6 & (byte) $f +Constant right-side identified [85] (byte~) render_show::toD0181_$3 ← > (const word) render_show::toD0181_$2 +Constant right-side identified [86] (byte~) render_show::toD0181_$7 ← (const byte) render_show::toD0181_$6 & (byte) $f +Constant right-side identified [88] (byte~) render_show::toD0182_$3 ← > (const word) render_show::toD0182_$2 +Constant right-side identified [89] (byte~) render_show::toD0182_$7 ← (const byte) render_show::toD0182_$6 & (byte) $f Successful SSA optimization Pass2ConstantRValueConsolidation Constant (const byte) render_init::vicSelectGfxBank1_toDd001_return#0 = 3 Constant (const byte) render_show::toD0181_$3 = >render_show::toD0181_$2 @@ -8278,28 +8274,28 @@ Constant (const byte) render_show::toD0182_$3 = >render_show::toD0182_$2 Constant (const byte) render_show::toD0182_$7 = render_show::toD0182_$6&$f Successful SSA optimization Pass2ConstantIdentification Alias candidate removed (volatile)(byte) sprites_irq::raster_sprite_gfx_modify = (byte~) sprites_irq::$0 -Constant right-side identified [86] (byte) render_show::toD0181_return#0 ← (const byte) render_show::toD0181_$3 | (const byte) render_show::toD0181_$7 -Constant right-side identified [87] (byte) render_show::toD0182_return#0 ← (const byte) render_show::toD0182_$3 | (const byte) render_show::toD0182_$7 +Constant right-side identified [84] (byte) render_show::toD0181_return#0 ← (const byte) render_show::toD0181_$3 | (const byte) render_show::toD0181_$7 +Constant right-side identified [85] (byte) render_show::toD0182_return#0 ← (const byte) render_show::toD0182_$3 | (const byte) render_show::toD0182_$7 Successful SSA optimization Pass2ConstantRValueConsolidation Constant (const byte) render_show::toD0181_return#0 = render_show::toD0181_$3|render_show::toD0181_$7 Constant (const byte) render_show::toD0182_return#0 = render_show::toD0182_$3|render_show::toD0182_$7 Successful SSA optimization Pass2ConstantIdentification Alias candidate removed (volatile)(byte) sprites_irq::raster_sprite_gfx_modify = (byte~) sprites_irq::$0 -Inlining Noop Cast [196] (byte*) render_next::next_piece_gfx#0 ← (byte*)*((const word*) PIECES + (byte~) render_next::$6) keeping *(PIECES + render_next::$6) -Inlining Noop Cast [423] (byte*) current_piece_gfx#74 ← (byte*)*((const word*) PIECES + (byte~) play_spawn_current::$7) keeping *(PIECES + play_spawn_current::$7) +Inlining Noop Cast [194] (byte*) render_next::next_piece_gfx#0 ← (byte*)*((const word*) PIECES + (byte~) render_next::$6) keeping *(PIECES + render_next::$6) +Inlining Noop Cast [421] (byte*) current_piece_gfx#74 ← (byte*)*((const word*) PIECES + (byte~) play_spawn_current::$7) keeping *(PIECES + play_spawn_current::$7) Successful SSA optimization Pass2NopCastInlining -Rewriting multiplication to use shift [77] (byte~) render_init::$5 ← (byte) render_init::i#2 * (const byte) SIZEOF_POINTER -Rewriting multiplication to use shift [159] (byte~) render_playfield::$3 ← (byte~) render_playfield::$0 * (const byte) SIZEOF_POINTER -Rewriting multiplication to use shift [175] (byte~) render_moving::$6 ← (byte~) render_moving::$1 * (const byte) SIZEOF_POINTER -Rewriting multiplication to use shift [195] (byte~) render_next::$6 ← (byte) next_piece_idx#12 * (const byte) SIZEOF_WORD -Rewriting multiplication to use shift [218] (byte) sprites_init::s2#0 ← (byte) sprites_init::s#2 * (byte) 2 -Rewriting multiplication to use shift [281] (byte~) play_init::$2 ← (byte) play_init::j#2 * (const byte) SIZEOF_POINTER -Rewriting multiplication to use shift [291] (byte~) play_init::$3 ← (byte) play_init::b#2 * (const byte) SIZEOF_DWORD -Rewriting multiplication to use shift [386] (byte~) play_collision::$14 ← (byte) play_collision::yp#2 * (const byte) SIZEOF_POINTER -Rewriting multiplication to use shift [406] (byte~) play_lock_current::$4 ← (byte) play_lock_current::yp#2 * (const byte) SIZEOF_POINTER -Rewriting multiplication to use shift [422] (byte~) play_spawn_current::$7 ← (byte) play_spawn_current::current_piece_idx#0 * (const byte) SIZEOF_WORD -Rewriting multiplication to use shift [464] (byte~) play_update_score::$9 ← (byte) play_update_score::removed#0 * (const byte) SIZEOF_DWORD -Rewriting multiplication to use shift [487] (byte~) play_increase_level::$5 ← (byte) play_increase_level::b#2 * (const byte) SIZEOF_DWORD +Rewriting multiplication to use shift [75] (byte~) render_init::$5 ← (byte) render_init::i#2 * (const byte) SIZEOF_POINTER +Rewriting multiplication to use shift [157] (byte~) render_playfield::$3 ← (byte~) render_playfield::$0 * (const byte) SIZEOF_POINTER +Rewriting multiplication to use shift [173] (byte~) render_moving::$6 ← (byte~) render_moving::$1 * (const byte) SIZEOF_POINTER +Rewriting multiplication to use shift [193] (byte~) render_next::$6 ← (byte) next_piece_idx#12 * (const byte) SIZEOF_WORD +Rewriting multiplication to use shift [216] (byte) sprites_init::s2#0 ← (byte) sprites_init::s#2 * (byte) 2 +Rewriting multiplication to use shift [279] (byte~) play_init::$2 ← (byte) play_init::j#2 * (const byte) SIZEOF_POINTER +Rewriting multiplication to use shift [289] (byte~) play_init::$3 ← (byte) play_init::b#2 * (const byte) SIZEOF_DWORD +Rewriting multiplication to use shift [384] (byte~) play_collision::$14 ← (byte) play_collision::yp#2 * (const byte) SIZEOF_POINTER +Rewriting multiplication to use shift [404] (byte~) play_lock_current::$4 ← (byte) play_lock_current::yp#2 * (const byte) SIZEOF_POINTER +Rewriting multiplication to use shift [420] (byte~) play_spawn_current::$7 ← (byte) play_spawn_current::current_piece_idx#0 * (const byte) SIZEOF_WORD +Rewriting multiplication to use shift [462] (byte~) play_update_score::$9 ← (byte) play_update_score::removed#0 * (const byte) SIZEOF_DWORD +Rewriting multiplication to use shift [485] (byte~) play_increase_level::$5 ← (byte) play_increase_level::b#2 * (const byte) SIZEOF_DWORD Successful SSA optimization Pass2MultiplyToShiftRewriting Inlining constant with var siblings (const byte) keyboard_event_scan::keycode#0 Inlining constant with var siblings (const byte) keyboard_event_scan::row#0 @@ -8646,312 +8642,312 @@ Adding NOP phi() at start of render_init::@2 Adding NOP phi() at start of sprites_irq::toSpritePtr2 Adding NOP phi() at start of sprites_irq::toSpritePtr2_@return CALL GRAPH -Calls in [] to main:16 -Calls in [main] to sid_rnd_init:20 render_init:22 sprites_init:24 sprites_irq_init:26 play_init:28 play_spawn_current:30 play_spawn_current:33 render_playfield:35 render_moving:40 render_next:42 render_show:54 keyboard_event_scan:56 keyboard_event_get:58 play_movement:65 render_playfield:70 render_moving:76 render_next:79 render_score:81 render_screen_swap:83 -Calls in [render_score] to render_bcd:126 render_bcd:131 render_bcd:136 render_bcd:141 render_bcd:146 render_bcd:151 -Calls in [play_movement] to play_move_down:255 play_move_leftright:266 play_move_rotate:271 -Calls in [play_move_rotate] to play_collision:296 -Calls in [play_move_leftright] to play_collision:353 play_collision:369 -Calls in [play_move_down] to keyboard_event_pressed:379 play_collision:399 play_lock_current:404 play_remove_lines:406 play_update_score:410 play_spawn_current:413 -Calls in [play_spawn_current] to play_collision:480 -Calls in [play_update_score] to play_increase_level:508 -Calls in [keyboard_event_scan] to keyboard_matrix_read:628 keyboard_event_pressed:639 keyboard_event_pressed:645 keyboard_event_pressed:651 keyboard_event_pressed:657 -Calls in [render_init] to render_screen_original:770 render_screen_original:772 +Calls in [] to main:14 +Calls in [main] to sid_rnd_init:18 render_init:20 sprites_init:22 sprites_irq_init:24 play_init:26 play_spawn_current:28 play_spawn_current:31 render_playfield:33 render_moving:38 render_next:40 render_show:52 keyboard_event_scan:54 keyboard_event_get:56 play_movement:63 render_playfield:68 render_moving:74 render_next:77 render_score:79 render_screen_swap:81 +Calls in [render_score] to render_bcd:124 render_bcd:129 render_bcd:134 render_bcd:139 render_bcd:144 render_bcd:149 +Calls in [play_movement] to play_move_down:253 play_move_leftright:264 play_move_rotate:269 +Calls in [play_move_rotate] to play_collision:294 +Calls in [play_move_leftright] to play_collision:351 play_collision:367 +Calls in [play_move_down] to keyboard_event_pressed:377 play_collision:397 play_lock_current:402 play_remove_lines:404 play_update_score:408 play_spawn_current:411 +Calls in [play_spawn_current] to play_collision:478 +Calls in [play_update_score] to play_increase_level:506 +Calls in [keyboard_event_scan] to keyboard_matrix_read:626 keyboard_event_pressed:637 keyboard_event_pressed:643 keyboard_event_pressed:649 keyboard_event_pressed:655 +Calls in [render_init] to render_screen_original:768 render_screen_original:770 Created 167 initial phi equivalence classes -Coalesced [31] next_piece_idx#82 ← next_piece_idx#18 -Coalesced [32] game_over#89 ← game_over#52 -Not coalescing [36] current_ypos#97 ← current_ypos#6 -Not coalescing [37] current_xpos#118 ← current_xpos#100 -Not coalescing [39] current_piece_char#99 ← current_piece_char#5 -Not coalescing [41] next_piece_idx#76 ← next_piece_idx#18 -Coalesced [43] current_movedown_slow#96 ← current_movedown_slow#1 -Coalesced [45] current_piece_char#106 ← current_piece_char#5 -Coalesced [47] current_xpos#130 ← current_xpos#100 -Coalesced [48] current_ypos#104 ← current_ypos#6 -Coalesced [49] game_over#93 ← game_over#52 -Coalesced [50] next_piece_idx#85 ← next_piece_idx#18 -Not coalescing [69] render_screen_render#63 ← render_screen_render#18 -Not coalescing [71] current_ypos#98 ← current_ypos#19 -Not coalescing [72] render_screen_render#64 ← render_screen_render#18 -Not coalescing [73] current_xpos#119 ← current_xpos#19 -Not coalescing [74] current_piece_gfx#112 ← current_piece_gfx#18 -Not coalescing [75] current_piece_char#100 ← current_piece_char#16 -Not coalescing [77] render_screen_render#65 ← render_screen_render#18 -Not coalescing [78] next_piece_idx#77 ← next_piece_idx#16 -Coalesced [84] render_screen_show#60 ← render_screen_show#13 -Coalesced [85] render_screen_render#67 ← render_screen_render#11 -Coalesced [86] current_movedown_slow#97 ← current_movedown_slow#21 -Coalesced [87] current_piece#102 ← current_piece#15 -Coalesced [88] current_piece_char#107 ← current_piece_char#16 -Coalesced [89] current_orientation#104 ← current_orientation#17 -Coalesced [90] current_piece_gfx#124 ← current_piece_gfx#18 -Coalesced [91] current_xpos#131 ← current_xpos#19 -Coalesced [92] current_ypos#105 ← current_ypos#19 -Coalesced [93] game_over#94 ← game_over#15 -Coalesced [94] next_piece_idx#86 ← next_piece_idx#16 -Coalesced [95] keyboard_events_size#91 ← keyboard_events_size#16 -Coalesced [96] current_movedown_counter#60 ← current_movedown_counter#14 -Coalesced [97] lines_bcd#95 ← lines_bcd#15 -Coalesced [98] level#111 ← level#17 -Coalesced [99] level_bcd#110 ← level_bcd#17 -Coalesced (already) [100] render_screen_show#59 ← render_screen_show#16 -Coalesced (already) [101] render_screen_render#66 ← render_screen_render#18 -Coalesced (already) [102] current_movedown_slow#95 ← current_movedown_slow#21 -Coalesced (already) [103] current_piece#100 ← current_piece#15 -Coalesced (already) [104] current_piece_char#105 ← current_piece_char#16 -Coalesced (already) [105] current_orientation#103 ← current_orientation#17 -Coalesced (already) [106] current_piece_gfx#122 ← current_piece_gfx#18 -Coalesced (already) [107] current_xpos#129 ← current_xpos#19 -Coalesced (already) [108] current_ypos#103 ← current_ypos#19 -Coalesced (already) [109] game_over#92 ← game_over#15 -Coalesced (already) [110] next_piece_idx#84 ← next_piece_idx#16 -Coalesced (already) [111] keyboard_events_size#90 ← keyboard_events_size#16 -Coalesced (already) [112] current_movedown_counter#59 ← current_movedown_counter#14 -Coalesced (already) [113] lines_bcd#94 ← lines_bcd#15 -Coalesced (already) [114] level#110 ← level#17 -Coalesced (already) [115] level_bcd#109 ← level_bcd#17 -Coalesced [124] render_bcd::screen#7 ← render_bcd::screen#0 -Coalesced [125] render_bcd::bcd#9 ← render_bcd::bcd#0 -Coalesced [129] render_bcd::screen#8 ← render_bcd::screen#1 -Coalesced [130] render_bcd::bcd#10 ← render_bcd::bcd#1 -Coalesced [134] render_bcd::screen#9 ← render_bcd::screen#2 -Coalesced [135] render_bcd::bcd#11 ← render_bcd::bcd#2 -Coalesced [139] render_bcd::screen#10 ← render_bcd::screen#3 -Coalesced [140] render_bcd::bcd#12 ← render_bcd::bcd#3 -Coalesced [144] render_bcd::screen#11 ← render_bcd::screen#4 -Coalesced [145] render_bcd::bcd#13 ← render_bcd::bcd#4 -Coalesced [149] render_bcd::screen#12 ← render_bcd::screen#5 -Coalesced [150] render_bcd::bcd#14 ← render_bcd::bcd#5 -Coalesced [162] render_bcd::screen_pos#6 ← render_bcd::screen_pos#2 -Coalesced [168] render_bcd::screen_pos#5 ← render_bcd::screen_pos#0 -Coalesced [176] render_next::screen_next_area#13 ← render_next::screen_next_area#11 -Coalesced [178] render_next::next_piece_gfx#10 ← render_next::next_piece_gfx#3 -Coalesced [179] render_next::screen_next_area#14 ← render_next::screen_next_area#10 -Coalesced [192] render_next::next_piece_gfx#8 ← render_next::next_piece_gfx#1 -Coalesced [193] render_next::screen_next_area#12 ← render_next::screen_next_area#4 -Coalesced [194] render_next::l#8 ← render_next::l#1 -Coalesced (already) [195] render_next::next_piece_gfx#11 ← render_next::next_piece_gfx#1 -Coalesced [196] render_next::screen_next_area#15 ← render_next::screen_next_area#3 -Coalesced [197] render_next::c#6 ← render_next::c#1 -Coalesced [202] render_moving::ypos#9 ← render_moving::ypos#0 -Coalesced [206] render_moving::i#12 ← render_moving::i#1 -Coalesced [212] render_moving::ypos#10 ← render_moving::ypos#1 -Coalesced [213] render_moving::i#10 ← render_moving::i#8 -Coalesced [214] render_moving::l#9 ← render_moving::l#1 -Coalesced [219] render_moving::i#13 ← render_moving::i#3 -Coalesced [220] render_moving::xpos#5 ← render_moving::xpos#0 -Coalesced [229] render_moving::i#11 ← render_moving::i#2 -Coalesced (already) [230] render_moving::i#14 ← render_moving::i#2 -Coalesced [231] render_moving::xpos#6 ← render_moving::xpos#1 -Coalesced [232] render_moving::c#5 ← render_moving::c#1 -Coalesced [238] render_playfield::i#6 ← render_playfield::i#3 -Coalesced [239] render_playfield::screen_line#3 ← render_playfield::screen_line#0 -Coalesced [249] render_playfield::l#5 ← render_playfield::l#1 -Coalesced [250] render_playfield::i#5 ← render_playfield::i#1 -Coalesced (already) [251] render_playfield::i#7 ← render_playfield::i#1 -Coalesced [252] render_playfield::screen_line#4 ← render_playfield::screen_line#1 -Coalesced [253] render_playfield::c#3 ← render_playfield::c#1 -Coalesced [259] play_movement::return#6 ← play_movement::render#1 -Coalesced [260] current_orientation#95 ← current_orientation#20 -Coalesced [261] current_piece_gfx#113 ← current_piece_gfx#20 -Coalesced [262] current_xpos#120 ← current_xpos#22 -Coalesced [275] play_movement::return#7 ← play_movement::return#0 -Coalesced [276] current_orientation#96 ← current_orientation#25 -Coalesced [277] current_piece_gfx#114 ← current_piece_gfx#21 -Coalesced [278] current_xpos#121 ← current_xpos#26 -Coalesced (already) [281] current_orientation#102 ← current_orientation#20 -Coalesced (already) [282] current_piece_gfx#121 ← current_piece_gfx#20 -Coalesced [287] play_move_rotate::orientation#7 ← play_move_rotate::orientation#2 -Not coalescing [292] current_piece#98 ← current_piece#15 -Coalesced [293] play_collision::orientation#9 ← play_collision::orientation#3 -Coalesced [294] play_collision::yp#13 ← play_collision::ypos#3 -Coalesced [295] play_collision::xpos#17 ← play_collision::xpos#3 -Coalesced [302] current_orientation#100 ← current_orientation#7 -Coalesced [303] current_piece_gfx#119 ← current_piece_gfx#7 -Coalesced (already) [304] current_orientation#101 ← current_orientation#20 -Coalesced (already) [305] current_piece_gfx#120 ← current_piece_gfx#20 -Coalesced [308] play_move_rotate::orientation#6 ← play_move_rotate::orientation#1 -Coalesced [311] play_collision::yp#15 ← play_collision::yp#0 -Coalesced [315] play_collision::i#11 ← play_collision::i#3 -Not coalescing [316] play_collision::xp#8 ← play_collision::xpos#6 -Coalesced [338] play_collision::yp#16 ← play_collision::yp#1 -Not coalescing [339] play_collision::i#10 ← play_collision::i#1 -Coalesced [340] play_collision::l#10 ← play_collision::l#1 -Not coalescing [341] play_collision::i#12 ← play_collision::i#1 -Coalesced [342] play_collision::xp#9 ← play_collision::xp#1 -Coalesced [343] play_collision::c#8 ← play_collision::c#1 -Not coalescing [349] current_piece#97 ← current_piece#15 -Coalesced [350] play_collision::orientation#8 ← play_collision::orientation#2 -Coalesced [351] play_collision::yp#12 ← play_collision::ypos#2 -Coalesced [352] play_collision::xpos#16 ← play_collision::xpos#2 -Coalesced [358] current_xpos#127 ← current_xpos#6 -Coalesced (already) [361] current_xpos#126 ← current_xpos#22 -Not coalescing [365] current_piece#96 ← current_piece#15 -Coalesced [366] play_collision::orientation#7 ← play_collision::orientation#1 -Coalesced [367] play_collision::yp#11 ← play_collision::ypos#1 -Coalesced [368] play_collision::xpos#15 ← play_collision::xpos#1 -Coalesced [374] current_xpos#128 ← current_xpos#8 -Coalesced [385] play_move_down::movedown#14 ← play_move_down::movedown#2 -Coalesced [389] play_move_down::movedown#16 ← play_move_down::movedown#3 -Not coalescing [395] current_piece#95 ← current_piece#10 -Coalesced [396] play_collision::orientation#6 ← play_collision::orientation#0 -Coalesced [397] play_collision::yp#10 ← play_collision::ypos#0 -Coalesced [398] play_collision::xpos#14 ← play_collision::xpos#0 -Coalesced (already) [411] next_piece_idx#83 ← next_piece_idx#10 -Coalesced (already) [412] game_over#90 ← game_over#10 -Coalesced [414] current_ypos#100 ← current_ypos#6 -Coalesced [415] lines_bcd#88 ← lines_bcd#17 -Coalesced [416] level#104 ← level#19 -Coalesced [417] current_movedown_slow#88 ← current_movedown_slow#23 -Coalesced [418] level_bcd#101 ← level_bcd#19 -Coalesced [420] current_piece_char#102 ← current_piece_char#5 -Coalesced [422] current_xpos#123 ← current_xpos#100 -Coalesced [423] game_over#86 ← game_over#52 -Coalesced [424] next_piece_idx#79 ← next_piece_idx#18 -Coalesced (already) [426] current_ypos#101 ← current_ypos#38 -Coalesced [427] lines_bcd#89 ← lines_bcd#26 -Coalesced [428] level#105 ← level#33 -Coalesced [429] current_movedown_slow#89 ← current_movedown_slow#37 -Coalesced [430] level_bcd#102 ← level_bcd#31 -Coalesced [431] current_piece#93 ← current_piece#28 -Coalesced (already) [432] current_piece_char#103 ← current_piece_char#29 -Coalesced [433] current_orientation#98 ← current_orientation#37 -Coalesced [434] current_piece_gfx#117 ← current_piece_gfx#35 -Coalesced (already) [435] current_xpos#124 ← current_xpos#43 -Coalesced (already) [436] game_over#87 ← game_over#27 -Coalesced (already) [437] next_piece_idx#80 ← next_piece_idx#30 -Coalesced [441] current_ypos#99 ← current_ypos#3 -Coalesced (already) [442] lines_bcd#87 ← lines_bcd#19 -Coalesced (already) [443] level#103 ← level#10 -Coalesced (already) [444] current_movedown_slow#87 ← current_movedown_slow#14 -Coalesced (already) [445] level_bcd#100 ← level_bcd#11 -Coalesced (already) [446] current_piece#91 ← current_piece#10 -Coalesced (already) [447] current_piece_char#101 ← current_piece_char#10 -Coalesced (already) [448] current_orientation#97 ← current_orientation#13 -Coalesced (already) [449] current_piece_gfx#115 ← current_piece_gfx#13 -Coalesced (already) [450] current_xpos#122 ← current_xpos#14 -Coalesced (already) [451] game_over#85 ← game_over#10 -Coalesced (already) [452] next_piece_idx#78 ← next_piece_idx#10 -Coalesced [453] current_movedown_counter#58 ← current_movedown_counter#12 -Coalesced (already) [454] current_ypos#102 ← current_ypos#11 -Coalesced (already) [455] lines_bcd#90 ← lines_bcd#19 -Coalesced (already) [456] level#106 ← level#10 -Coalesced (already) [457] current_movedown_slow#90 ← current_movedown_slow#14 -Coalesced (already) [458] level_bcd#103 ← level_bcd#11 -Coalesced (already) [459] current_piece#94 ← current_piece#10 -Coalesced (already) [460] current_piece_char#104 ← current_piece_char#10 -Coalesced (already) [461] current_orientation#99 ← current_orientation#13 -Coalesced (already) [462] current_piece_gfx#118 ← current_piece_gfx#13 -Coalesced (already) [463] current_xpos#125 ← current_xpos#14 -Coalesced (already) [464] game_over#88 ← game_over#10 -Coalesced (already) [465] next_piece_idx#81 ← next_piece_idx#10 -Coalesced [466] play_move_down::movedown#15 ← play_move_down::movedown#7 -Coalesced [467] play_move_down::movedown#13 ← play_move_down::movedown#10 -Coalesced (already) [468] play_move_down::movedown#12 ← play_move_down::movedown#10 -Coalesced [478] play_collision::yp#14 ← play_collision::ypos#4 -Coalesced [479] play_collision::xpos#18 ← play_collision::xpos#4 -Coalesced [488] next_piece_idx#18 ← play_spawn_current::piece_idx#2 -Coalesced [493] play_spawn_current::piece_idx#4 ← play_spawn_current::piece_idx#1 -Coalesced (already) [494] game_over#91 ← game_over#65 -Coalesced [509] lines_bcd#93 ← lines_bcd#29 -Coalesced [510] level#109 ← level#21 -Coalesced [511] current_movedown_slow#93 ← current_movedown_slow#65 -Coalesced [512] level_bcd#106 ← level_bcd#62 -Coalesced (already) [515] lines_bcd#92 ← lines_bcd#29 -Coalesced (already) [516] level#108 ← level#10 -Coalesced (already) [517] current_movedown_slow#92 ← current_movedown_slow#14 -Coalesced (already) [518] level_bcd#105 ← level_bcd#11 -Coalesced (already) [519] lines_bcd#91 ← lines_bcd#19 -Coalesced (already) [520] level#107 ← level#10 -Coalesced (already) [521] current_movedown_slow#91 ← current_movedown_slow#14 -Coalesced (already) [522] level_bcd#104 ← level_bcd#11 -Coalesced [526] current_movedown_slow#94 ← current_movedown_slow#10 -Coalesced [532] level_bcd#108 ← level_bcd#8 -Coalesced [542] play_increase_level::b#3 ← play_increase_level::b#1 -Coalesced [543] level_bcd#107 ← level_bcd#21 -Coalesced [547] play_remove_lines::r#10 ← play_remove_lines::r#3 -Coalesced [548] play_remove_lines::w#14 ← play_remove_lines::w#12 -Coalesced [562] play_remove_lines::w#17 ← play_remove_lines::w#2 -Coalesced [563] play_remove_lines::removed#14 ← play_remove_lines::removed#1 -Coalesced [567] play_remove_lines::w#19 ← play_remove_lines::w#11 -Coalesced [574] play_remove_lines::w#18 ← play_remove_lines::w#3 -Coalesced [575] play_remove_lines::r#9 ← play_remove_lines::r#1 -Coalesced [576] play_remove_lines::w#13 ← play_remove_lines::w#11 -Coalesced [577] play_remove_lines::y#9 ← play_remove_lines::y#1 -Coalesced [578] play_remove_lines::removed#12 ← play_remove_lines::removed#8 -Coalesced [579] play_remove_lines::w#16 ← play_remove_lines::w#1 -Coalesced (already) [580] play_remove_lines::removed#13 ← play_remove_lines::removed#11 -Coalesced (already) [581] play_remove_lines::r#11 ← play_remove_lines::r#1 -Coalesced (already) [582] play_remove_lines::w#15 ← play_remove_lines::w#1 -Coalesced [583] play_remove_lines::x#5 ← play_remove_lines::x#1 -Coalesced [584] play_remove_lines::full#5 ← play_remove_lines::full#2 -Coalesced (already) [585] play_remove_lines::full#6 ← play_remove_lines::full#4 -Coalesced [587] play_lock_current::yp#7 ← play_lock_current::yp#0 -Coalesced [592] play_lock_current::i#8 ← play_lock_current::i#3 -Coalesced [593] play_lock_current::xp#5 ← play_lock_current::xp#0 -Coalesced [605] play_lock_current::yp#8 ← play_lock_current::yp#1 -Not coalescing [606] play_lock_current::i#7 ← play_lock_current::i#1 -Coalesced [607] play_lock_current::l#7 ← play_lock_current::l#1 -Not coalescing [608] play_lock_current::i#9 ← play_lock_current::i#1 -Coalesced [609] play_lock_current::xp#6 ← play_lock_current::xp#1 -Coalesced [610] play_lock_current::c#5 ← play_lock_current::c#1 -Coalesced [620] keyboard_event_get::return#6 ← keyboard_event_get::return#1 -Coalesced [621] keyboard_events_size#89 ← keyboard_events_size#4 -Coalesced [624] keyboard_events_size#88 ← keyboard_events_size#13 -Coalesced [625] keyboard_events_size#78 ← keyboard_events_size#19 -Coalesced [633] keyboard_event_scan::keycode#17 ← keyboard_event_scan::keycode#1 -Coalesced (already) [634] keyboard_events_size#81 ← keyboard_events_size#30 -Coalesced [663] keyboard_event_scan::row#14 ← keyboard_event_scan::row#1 -Coalesced [664] keyboard_event_scan::keycode#15 ← keyboard_event_scan::keycode#13 -Coalesced (already) [665] keyboard_events_size#79 ← keyboard_events_size#13 -Coalesced [666] keyboard_event_scan::keycode#19 ← keyboard_event_scan::keycode#11 -Coalesced [667] keyboard_events_size#83 ← keyboard_events_size#30 -Coalesced [677] keyboard_events_size#87 ← keyboard_events_size#2 -Coalesced [683] keyboard_event_scan::keycode#16 ← keyboard_event_scan::keycode#14 -Coalesced [684] keyboard_events_size#80 ← keyboard_events_size#29 -Coalesced [685] keyboard_event_scan::col#8 ← keyboard_event_scan::col#1 -Coalesced (already) [686] keyboard_event_scan::keycode#18 ← keyboard_event_scan::keycode#14 -Coalesced (already) [687] keyboard_events_size#82 ← keyboard_events_size#29 -Coalesced [691] keyboard_events_size#85 ← keyboard_events_size#1 -Coalesced (already) [692] keyboard_events_size#86 ← keyboard_events_size#10 -Coalesced (already) [693] keyboard_events_size#84 ← keyboard_events_size#10 -Coalesced [729] play_init::b#3 ← play_init::b#1 -Coalesced [730] play_init::j#3 ← play_init::j#1 -Coalesced [731] play_init::pli#3 ← play_init::pli#1 -Coalesced [732] play_init::idx#3 ← play_init::idx#1 -Coalesced [757] sprites_init::s#3 ← sprites_init::s#1 -Coalesced [758] sprites_init::xpos#3 ← sprites_init::xpos#1 -Coalesced [784] render_init::i#3 ← render_init::i#1 -Coalesced [785] render_init::li_1#3 ← render_init::li_1#1 -Coalesced [786] render_init::li_2#3 ← render_init::li_2#1 -Coalesced [788] render_screen_original::screen#11 ← render_screen_original::screen#9 -Coalesced [790] render_screen_original::screen#13 ← render_screen_original::screen#8 -Coalesced [791] render_screen_original::cols#10 ← render_screen_original::cols#7 -Coalesced [799] render_screen_original::oscr#8 ← render_screen_original::oscr#4 -Coalesced [800] render_screen_original::screen#15 ← render_screen_original::screen#2 -Coalesced [801] render_screen_original::ocols#8 ← render_screen_original::ocols#4 -Coalesced [802] render_screen_original::cols#12 ← render_screen_original::cols#1 -Coalesced [803] render_screen_original::x#8 ← render_screen_original::x#1 -Coalesced [813] render_screen_original::screen#17 ← render_screen_original::screen#3 -Coalesced [814] render_screen_original::cols#14 ← render_screen_original::cols#2 -Coalesced [815] render_screen_original::x#10 ← render_screen_original::x#2 -Coalesced [826] render_screen_original::screen#12 ← render_screen_original::screen#10 -Coalesced [827] render_screen_original::cols#9 ← render_screen_original::cols#3 -Coalesced [828] render_screen_original::oscr#7 ← render_screen_original::oscr#1 -Coalesced [829] render_screen_original::ocols#7 ← render_screen_original::ocols#1 -Coalesced [830] render_screen_original::y#7 ← render_screen_original::y#1 -Coalesced [831] render_screen_original::screen#18 ← render_screen_original::screen#10 -Coalesced [832] render_screen_original::cols#15 ← render_screen_original::cols#3 -Coalesced [833] render_screen_original::x#11 ← render_screen_original::x#3 -Coalesced (already) [834] render_screen_original::oscr#9 ← render_screen_original::oscr#1 -Coalesced [835] render_screen_original::screen#16 ← render_screen_original::screen#3 -Coalesced (already) [836] render_screen_original::ocols#9 ← render_screen_original::ocols#1 -Coalesced [837] render_screen_original::cols#13 ← render_screen_original::cols#2 -Coalesced [838] render_screen_original::x#9 ← render_screen_original::x#2 -Coalesced (already) [839] render_screen_original::screen#14 ← render_screen_original::screen#2 -Coalesced (already) [840] render_screen_original::cols#11 ← render_screen_original::cols#1 -Coalesced [841] render_screen_original::x#7 ← render_screen_original::x#1 +Coalesced [29] next_piece_idx#82 ← next_piece_idx#18 +Coalesced [30] game_over#89 ← game_over#52 +Not coalescing [34] current_ypos#97 ← current_ypos#6 +Not coalescing [35] current_xpos#118 ← current_xpos#100 +Not coalescing [37] current_piece_char#99 ← current_piece_char#5 +Not coalescing [39] next_piece_idx#76 ← next_piece_idx#18 +Coalesced [41] current_movedown_slow#96 ← current_movedown_slow#1 +Coalesced [43] current_piece_char#106 ← current_piece_char#5 +Coalesced [45] current_xpos#130 ← current_xpos#100 +Coalesced [46] current_ypos#104 ← current_ypos#6 +Coalesced [47] game_over#93 ← game_over#52 +Coalesced [48] next_piece_idx#85 ← next_piece_idx#18 +Not coalescing [67] render_screen_render#63 ← render_screen_render#18 +Not coalescing [69] current_ypos#98 ← current_ypos#19 +Not coalescing [70] render_screen_render#64 ← render_screen_render#18 +Not coalescing [71] current_xpos#119 ← current_xpos#19 +Not coalescing [72] current_piece_gfx#112 ← current_piece_gfx#18 +Not coalescing [73] current_piece_char#100 ← current_piece_char#16 +Not coalescing [75] render_screen_render#65 ← render_screen_render#18 +Not coalescing [76] next_piece_idx#77 ← next_piece_idx#16 +Coalesced [82] render_screen_show#60 ← render_screen_show#13 +Coalesced [83] render_screen_render#67 ← render_screen_render#11 +Coalesced [84] current_movedown_slow#97 ← current_movedown_slow#21 +Coalesced [85] current_piece#102 ← current_piece#15 +Coalesced [86] current_piece_char#107 ← current_piece_char#16 +Coalesced [87] current_orientation#104 ← current_orientation#17 +Coalesced [88] current_piece_gfx#124 ← current_piece_gfx#18 +Coalesced [89] current_xpos#131 ← current_xpos#19 +Coalesced [90] current_ypos#105 ← current_ypos#19 +Coalesced [91] game_over#94 ← game_over#15 +Coalesced [92] next_piece_idx#86 ← next_piece_idx#16 +Coalesced [93] keyboard_events_size#91 ← keyboard_events_size#16 +Coalesced [94] current_movedown_counter#60 ← current_movedown_counter#14 +Coalesced [95] lines_bcd#95 ← lines_bcd#15 +Coalesced [96] level#111 ← level#17 +Coalesced [97] level_bcd#110 ← level_bcd#17 +Coalesced (already) [98] render_screen_show#59 ← render_screen_show#16 +Coalesced (already) [99] render_screen_render#66 ← render_screen_render#18 +Coalesced (already) [100] current_movedown_slow#95 ← current_movedown_slow#21 +Coalesced (already) [101] current_piece#100 ← current_piece#15 +Coalesced (already) [102] current_piece_char#105 ← current_piece_char#16 +Coalesced (already) [103] current_orientation#103 ← current_orientation#17 +Coalesced (already) [104] current_piece_gfx#122 ← current_piece_gfx#18 +Coalesced (already) [105] current_xpos#129 ← current_xpos#19 +Coalesced (already) [106] current_ypos#103 ← current_ypos#19 +Coalesced (already) [107] game_over#92 ← game_over#15 +Coalesced (already) [108] next_piece_idx#84 ← next_piece_idx#16 +Coalesced (already) [109] keyboard_events_size#90 ← keyboard_events_size#16 +Coalesced (already) [110] current_movedown_counter#59 ← current_movedown_counter#14 +Coalesced (already) [111] lines_bcd#94 ← lines_bcd#15 +Coalesced (already) [112] level#110 ← level#17 +Coalesced (already) [113] level_bcd#109 ← level_bcd#17 +Coalesced [122] render_bcd::screen#7 ← render_bcd::screen#0 +Coalesced [123] render_bcd::bcd#9 ← render_bcd::bcd#0 +Coalesced [127] render_bcd::screen#8 ← render_bcd::screen#1 +Coalesced [128] render_bcd::bcd#10 ← render_bcd::bcd#1 +Coalesced [132] render_bcd::screen#9 ← render_bcd::screen#2 +Coalesced [133] render_bcd::bcd#11 ← render_bcd::bcd#2 +Coalesced [137] render_bcd::screen#10 ← render_bcd::screen#3 +Coalesced [138] render_bcd::bcd#12 ← render_bcd::bcd#3 +Coalesced [142] render_bcd::screen#11 ← render_bcd::screen#4 +Coalesced [143] render_bcd::bcd#13 ← render_bcd::bcd#4 +Coalesced [147] render_bcd::screen#12 ← render_bcd::screen#5 +Coalesced [148] render_bcd::bcd#14 ← render_bcd::bcd#5 +Coalesced [160] render_bcd::screen_pos#6 ← render_bcd::screen_pos#2 +Coalesced [166] render_bcd::screen_pos#5 ← render_bcd::screen_pos#0 +Coalesced [174] render_next::screen_next_area#13 ← render_next::screen_next_area#11 +Coalesced [176] render_next::next_piece_gfx#10 ← render_next::next_piece_gfx#3 +Coalesced [177] render_next::screen_next_area#14 ← render_next::screen_next_area#10 +Coalesced [190] render_next::next_piece_gfx#8 ← render_next::next_piece_gfx#1 +Coalesced [191] render_next::screen_next_area#12 ← render_next::screen_next_area#4 +Coalesced [192] render_next::l#8 ← render_next::l#1 +Coalesced (already) [193] render_next::next_piece_gfx#11 ← render_next::next_piece_gfx#1 +Coalesced [194] render_next::screen_next_area#15 ← render_next::screen_next_area#3 +Coalesced [195] render_next::c#6 ← render_next::c#1 +Coalesced [200] render_moving::ypos#9 ← render_moving::ypos#0 +Coalesced [204] render_moving::i#12 ← render_moving::i#1 +Coalesced [210] render_moving::ypos#10 ← render_moving::ypos#1 +Coalesced [211] render_moving::i#10 ← render_moving::i#8 +Coalesced [212] render_moving::l#9 ← render_moving::l#1 +Coalesced [217] render_moving::i#13 ← render_moving::i#3 +Coalesced [218] render_moving::xpos#5 ← render_moving::xpos#0 +Coalesced [227] render_moving::i#11 ← render_moving::i#2 +Coalesced (already) [228] render_moving::i#14 ← render_moving::i#2 +Coalesced [229] render_moving::xpos#6 ← render_moving::xpos#1 +Coalesced [230] render_moving::c#5 ← render_moving::c#1 +Coalesced [236] render_playfield::i#6 ← render_playfield::i#3 +Coalesced [237] render_playfield::screen_line#3 ← render_playfield::screen_line#0 +Coalesced [247] render_playfield::l#5 ← render_playfield::l#1 +Coalesced [248] render_playfield::i#5 ← render_playfield::i#1 +Coalesced (already) [249] render_playfield::i#7 ← render_playfield::i#1 +Coalesced [250] render_playfield::screen_line#4 ← render_playfield::screen_line#1 +Coalesced [251] render_playfield::c#3 ← render_playfield::c#1 +Coalesced [257] play_movement::return#6 ← play_movement::render#1 +Coalesced [258] current_orientation#95 ← current_orientation#20 +Coalesced [259] current_piece_gfx#113 ← current_piece_gfx#20 +Coalesced [260] current_xpos#120 ← current_xpos#22 +Coalesced [273] play_movement::return#7 ← play_movement::return#0 +Coalesced [274] current_orientation#96 ← current_orientation#25 +Coalesced [275] current_piece_gfx#114 ← current_piece_gfx#21 +Coalesced [276] current_xpos#121 ← current_xpos#26 +Coalesced (already) [279] current_orientation#102 ← current_orientation#20 +Coalesced (already) [280] current_piece_gfx#121 ← current_piece_gfx#20 +Coalesced [285] play_move_rotate::orientation#7 ← play_move_rotate::orientation#2 +Not coalescing [290] current_piece#98 ← current_piece#15 +Coalesced [291] play_collision::orientation#9 ← play_collision::orientation#3 +Coalesced [292] play_collision::yp#13 ← play_collision::ypos#3 +Coalesced [293] play_collision::xpos#17 ← play_collision::xpos#3 +Coalesced [300] current_orientation#100 ← current_orientation#7 +Coalesced [301] current_piece_gfx#119 ← current_piece_gfx#7 +Coalesced (already) [302] current_orientation#101 ← current_orientation#20 +Coalesced (already) [303] current_piece_gfx#120 ← current_piece_gfx#20 +Coalesced [306] play_move_rotate::orientation#6 ← play_move_rotate::orientation#1 +Coalesced [309] play_collision::yp#15 ← play_collision::yp#0 +Coalesced [313] play_collision::i#11 ← play_collision::i#3 +Not coalescing [314] play_collision::xp#8 ← play_collision::xpos#6 +Coalesced [336] play_collision::yp#16 ← play_collision::yp#1 +Not coalescing [337] play_collision::i#10 ← play_collision::i#1 +Coalesced [338] play_collision::l#10 ← play_collision::l#1 +Not coalescing [339] play_collision::i#12 ← play_collision::i#1 +Coalesced [340] play_collision::xp#9 ← play_collision::xp#1 +Coalesced [341] play_collision::c#8 ← play_collision::c#1 +Not coalescing [347] current_piece#97 ← current_piece#15 +Coalesced [348] play_collision::orientation#8 ← play_collision::orientation#2 +Coalesced [349] play_collision::yp#12 ← play_collision::ypos#2 +Coalesced [350] play_collision::xpos#16 ← play_collision::xpos#2 +Coalesced [356] current_xpos#127 ← current_xpos#6 +Coalesced (already) [359] current_xpos#126 ← current_xpos#22 +Not coalescing [363] current_piece#96 ← current_piece#15 +Coalesced [364] play_collision::orientation#7 ← play_collision::orientation#1 +Coalesced [365] play_collision::yp#11 ← play_collision::ypos#1 +Coalesced [366] play_collision::xpos#15 ← play_collision::xpos#1 +Coalesced [372] current_xpos#128 ← current_xpos#8 +Coalesced [383] play_move_down::movedown#14 ← play_move_down::movedown#2 +Coalesced [387] play_move_down::movedown#16 ← play_move_down::movedown#3 +Not coalescing [393] current_piece#95 ← current_piece#10 +Coalesced [394] play_collision::orientation#6 ← play_collision::orientation#0 +Coalesced [395] play_collision::yp#10 ← play_collision::ypos#0 +Coalesced [396] play_collision::xpos#14 ← play_collision::xpos#0 +Coalesced (already) [409] next_piece_idx#83 ← next_piece_idx#10 +Coalesced (already) [410] game_over#90 ← game_over#10 +Coalesced [412] current_ypos#100 ← current_ypos#6 +Coalesced [413] lines_bcd#88 ← lines_bcd#17 +Coalesced [414] level#104 ← level#19 +Coalesced [415] current_movedown_slow#88 ← current_movedown_slow#23 +Coalesced [416] level_bcd#101 ← level_bcd#19 +Coalesced [418] current_piece_char#102 ← current_piece_char#5 +Coalesced [420] current_xpos#123 ← current_xpos#100 +Coalesced [421] game_over#86 ← game_over#52 +Coalesced [422] next_piece_idx#79 ← next_piece_idx#18 +Coalesced (already) [424] current_ypos#101 ← current_ypos#38 +Coalesced [425] lines_bcd#89 ← lines_bcd#26 +Coalesced [426] level#105 ← level#33 +Coalesced [427] current_movedown_slow#89 ← current_movedown_slow#37 +Coalesced [428] level_bcd#102 ← level_bcd#31 +Coalesced [429] current_piece#93 ← current_piece#28 +Coalesced (already) [430] current_piece_char#103 ← current_piece_char#29 +Coalesced [431] current_orientation#98 ← current_orientation#37 +Coalesced [432] current_piece_gfx#117 ← current_piece_gfx#35 +Coalesced (already) [433] current_xpos#124 ← current_xpos#43 +Coalesced (already) [434] game_over#87 ← game_over#27 +Coalesced (already) [435] next_piece_idx#80 ← next_piece_idx#30 +Coalesced [439] current_ypos#99 ← current_ypos#3 +Coalesced (already) [440] lines_bcd#87 ← lines_bcd#19 +Coalesced (already) [441] level#103 ← level#10 +Coalesced (already) [442] current_movedown_slow#87 ← current_movedown_slow#14 +Coalesced (already) [443] level_bcd#100 ← level_bcd#11 +Coalesced (already) [444] current_piece#91 ← current_piece#10 +Coalesced (already) [445] current_piece_char#101 ← current_piece_char#10 +Coalesced (already) [446] current_orientation#97 ← current_orientation#13 +Coalesced (already) [447] current_piece_gfx#115 ← current_piece_gfx#13 +Coalesced (already) [448] current_xpos#122 ← current_xpos#14 +Coalesced (already) [449] game_over#85 ← game_over#10 +Coalesced (already) [450] next_piece_idx#78 ← next_piece_idx#10 +Coalesced [451] current_movedown_counter#58 ← current_movedown_counter#12 +Coalesced (already) [452] current_ypos#102 ← current_ypos#11 +Coalesced (already) [453] lines_bcd#90 ← lines_bcd#19 +Coalesced (already) [454] level#106 ← level#10 +Coalesced (already) [455] current_movedown_slow#90 ← current_movedown_slow#14 +Coalesced (already) [456] level_bcd#103 ← level_bcd#11 +Coalesced (already) [457] current_piece#94 ← current_piece#10 +Coalesced (already) [458] current_piece_char#104 ← current_piece_char#10 +Coalesced (already) [459] current_orientation#99 ← current_orientation#13 +Coalesced (already) [460] current_piece_gfx#118 ← current_piece_gfx#13 +Coalesced (already) [461] current_xpos#125 ← current_xpos#14 +Coalesced (already) [462] game_over#88 ← game_over#10 +Coalesced (already) [463] next_piece_idx#81 ← next_piece_idx#10 +Coalesced [464] play_move_down::movedown#15 ← play_move_down::movedown#7 +Coalesced [465] play_move_down::movedown#13 ← play_move_down::movedown#10 +Coalesced (already) [466] play_move_down::movedown#12 ← play_move_down::movedown#10 +Coalesced [476] play_collision::yp#14 ← play_collision::ypos#4 +Coalesced [477] play_collision::xpos#18 ← play_collision::xpos#4 +Coalesced [486] next_piece_idx#18 ← play_spawn_current::piece_idx#2 +Coalesced [491] play_spawn_current::piece_idx#4 ← play_spawn_current::piece_idx#1 +Coalesced (already) [492] game_over#91 ← game_over#65 +Coalesced [507] lines_bcd#93 ← lines_bcd#29 +Coalesced [508] level#109 ← level#21 +Coalesced [509] current_movedown_slow#93 ← current_movedown_slow#65 +Coalesced [510] level_bcd#106 ← level_bcd#62 +Coalesced (already) [513] lines_bcd#92 ← lines_bcd#29 +Coalesced (already) [514] level#108 ← level#10 +Coalesced (already) [515] current_movedown_slow#92 ← current_movedown_slow#14 +Coalesced (already) [516] level_bcd#105 ← level_bcd#11 +Coalesced (already) [517] lines_bcd#91 ← lines_bcd#19 +Coalesced (already) [518] level#107 ← level#10 +Coalesced (already) [519] current_movedown_slow#91 ← current_movedown_slow#14 +Coalesced (already) [520] level_bcd#104 ← level_bcd#11 +Coalesced [524] current_movedown_slow#94 ← current_movedown_slow#10 +Coalesced [530] level_bcd#108 ← level_bcd#8 +Coalesced [540] play_increase_level::b#3 ← play_increase_level::b#1 +Coalesced [541] level_bcd#107 ← level_bcd#21 +Coalesced [545] play_remove_lines::r#10 ← play_remove_lines::r#3 +Coalesced [546] play_remove_lines::w#14 ← play_remove_lines::w#12 +Coalesced [560] play_remove_lines::w#17 ← play_remove_lines::w#2 +Coalesced [561] play_remove_lines::removed#14 ← play_remove_lines::removed#1 +Coalesced [565] play_remove_lines::w#19 ← play_remove_lines::w#11 +Coalesced [572] play_remove_lines::w#18 ← play_remove_lines::w#3 +Coalesced [573] play_remove_lines::r#9 ← play_remove_lines::r#1 +Coalesced [574] play_remove_lines::w#13 ← play_remove_lines::w#11 +Coalesced [575] play_remove_lines::y#9 ← play_remove_lines::y#1 +Coalesced [576] play_remove_lines::removed#12 ← play_remove_lines::removed#8 +Coalesced [577] play_remove_lines::w#16 ← play_remove_lines::w#1 +Coalesced (already) [578] play_remove_lines::removed#13 ← play_remove_lines::removed#11 +Coalesced (already) [579] play_remove_lines::r#11 ← play_remove_lines::r#1 +Coalesced (already) [580] play_remove_lines::w#15 ← play_remove_lines::w#1 +Coalesced [581] play_remove_lines::x#5 ← play_remove_lines::x#1 +Coalesced [582] play_remove_lines::full#5 ← play_remove_lines::full#2 +Coalesced (already) [583] play_remove_lines::full#6 ← play_remove_lines::full#4 +Coalesced [585] play_lock_current::yp#7 ← play_lock_current::yp#0 +Coalesced [590] play_lock_current::i#8 ← play_lock_current::i#3 +Coalesced [591] play_lock_current::xp#5 ← play_lock_current::xp#0 +Coalesced [603] play_lock_current::yp#8 ← play_lock_current::yp#1 +Not coalescing [604] play_lock_current::i#7 ← play_lock_current::i#1 +Coalesced [605] play_lock_current::l#7 ← play_lock_current::l#1 +Not coalescing [606] play_lock_current::i#9 ← play_lock_current::i#1 +Coalesced [607] play_lock_current::xp#6 ← play_lock_current::xp#1 +Coalesced [608] play_lock_current::c#5 ← play_lock_current::c#1 +Coalesced [618] keyboard_event_get::return#6 ← keyboard_event_get::return#1 +Coalesced [619] keyboard_events_size#89 ← keyboard_events_size#4 +Coalesced [622] keyboard_events_size#88 ← keyboard_events_size#13 +Coalesced [623] keyboard_events_size#78 ← keyboard_events_size#19 +Coalesced [631] keyboard_event_scan::keycode#17 ← keyboard_event_scan::keycode#1 +Coalesced (already) [632] keyboard_events_size#81 ← keyboard_events_size#30 +Coalesced [661] keyboard_event_scan::row#14 ← keyboard_event_scan::row#1 +Coalesced [662] keyboard_event_scan::keycode#15 ← keyboard_event_scan::keycode#13 +Coalesced (already) [663] keyboard_events_size#79 ← keyboard_events_size#13 +Coalesced [664] keyboard_event_scan::keycode#19 ← keyboard_event_scan::keycode#11 +Coalesced [665] keyboard_events_size#83 ← keyboard_events_size#30 +Coalesced [675] keyboard_events_size#87 ← keyboard_events_size#2 +Coalesced [681] keyboard_event_scan::keycode#16 ← keyboard_event_scan::keycode#14 +Coalesced [682] keyboard_events_size#80 ← keyboard_events_size#29 +Coalesced [683] keyboard_event_scan::col#8 ← keyboard_event_scan::col#1 +Coalesced (already) [684] keyboard_event_scan::keycode#18 ← keyboard_event_scan::keycode#14 +Coalesced (already) [685] keyboard_events_size#82 ← keyboard_events_size#29 +Coalesced [689] keyboard_events_size#85 ← keyboard_events_size#1 +Coalesced (already) [690] keyboard_events_size#86 ← keyboard_events_size#10 +Coalesced (already) [691] keyboard_events_size#84 ← keyboard_events_size#10 +Coalesced [727] play_init::b#3 ← play_init::b#1 +Coalesced [728] play_init::j#3 ← play_init::j#1 +Coalesced [729] play_init::pli#3 ← play_init::pli#1 +Coalesced [730] play_init::idx#3 ← play_init::idx#1 +Coalesced [755] sprites_init::s#3 ← sprites_init::s#1 +Coalesced [756] sprites_init::xpos#3 ← sprites_init::xpos#1 +Coalesced [782] render_init::i#3 ← render_init::i#1 +Coalesced [783] render_init::li_1#3 ← render_init::li_1#1 +Coalesced [784] render_init::li_2#3 ← render_init::li_2#1 +Coalesced [786] render_screen_original::screen#11 ← render_screen_original::screen#9 +Coalesced [788] render_screen_original::screen#13 ← render_screen_original::screen#8 +Coalesced [789] render_screen_original::cols#10 ← render_screen_original::cols#7 +Coalesced [797] render_screen_original::oscr#8 ← render_screen_original::oscr#4 +Coalesced [798] render_screen_original::screen#15 ← render_screen_original::screen#2 +Coalesced [799] render_screen_original::ocols#8 ← render_screen_original::ocols#4 +Coalesced [800] render_screen_original::cols#12 ← render_screen_original::cols#1 +Coalesced [801] render_screen_original::x#8 ← render_screen_original::x#1 +Coalesced [811] render_screen_original::screen#17 ← render_screen_original::screen#3 +Coalesced [812] render_screen_original::cols#14 ← render_screen_original::cols#2 +Coalesced [813] render_screen_original::x#10 ← render_screen_original::x#2 +Coalesced [824] render_screen_original::screen#12 ← render_screen_original::screen#10 +Coalesced [825] render_screen_original::cols#9 ← render_screen_original::cols#3 +Coalesced [826] render_screen_original::oscr#7 ← render_screen_original::oscr#1 +Coalesced [827] render_screen_original::ocols#7 ← render_screen_original::ocols#1 +Coalesced [828] render_screen_original::y#7 ← render_screen_original::y#1 +Coalesced [829] render_screen_original::screen#18 ← render_screen_original::screen#10 +Coalesced [830] render_screen_original::cols#15 ← render_screen_original::cols#3 +Coalesced [831] render_screen_original::x#11 ← render_screen_original::x#3 +Coalesced (already) [832] render_screen_original::oscr#9 ← render_screen_original::oscr#1 +Coalesced [833] render_screen_original::screen#16 ← render_screen_original::screen#3 +Coalesced (already) [834] render_screen_original::ocols#9 ← render_screen_original::ocols#1 +Coalesced [835] render_screen_original::cols#13 ← render_screen_original::cols#2 +Coalesced [836] render_screen_original::x#9 ← render_screen_original::x#2 +Coalesced (already) [837] render_screen_original::screen#14 ← render_screen_original::screen#2 +Coalesced (already) [838] render_screen_original::cols#11 ← render_screen_original::cols#1 +Coalesced [839] render_screen_original::x#7 ← render_screen_original::x#1 Coalesced down to 93 phi equivalence classes Culled Empty Block (label) @8 Culled Empty Block (label) toSpritePtr1_@return @@ -9203,17 +9199,6 @@ FINAL CONTROL FLOW GRAPH [2] (dword) score_bcd ← (dword) 0 kickasm(location (const byte*) PLAYFIELD_CHARSET) {{ .fill 8,$00 // Place a filled char at the start of the charset .import binary "playfield-screen.imap" - }} - kickasm(location (const byte*) PLAYFIELD_SCREEN_ORIGINAL) {{ // Load chars for the screen - .var screen = LoadBinary("playfield-screen.iscr") - // Load extended colors for the screen - .var extended = LoadBinary("playfield-extended.col") - // screen.get(i)+1 because the charset is loaded into PLAYFIELD_CHARSET+8 - // extended.get(i)-1 because the extended colors are 1-based (1/2/3/4) - // <<6 to move extended colors to the upper 2 bits - .fill screen.getSize(), ( (screen.get(i)+1) | (extended.get(i)-1)<<6 ) - }} - kickasm(location (const byte*) PLAYFIELD_COLORS_ORIGINAL) {{ .import binary "playfield-screen.col" }} to:@2 @2: scope:[] from @1 @@ -9234,1238 +9219,1238 @@ FINAL CONTROL FLOW GRAPH }} to:@3 @3: scope:[] from @2 - [7] (byte) irq_raster_next ← (const byte) IRQ_RASTER_FIRST - [8] (byte) irq_sprite_ypos ← (const byte) SPRITES_FIRST_YPOS+(byte) $15 + [5] (byte) irq_raster_next ← (const byte) IRQ_RASTER_FIRST + [6] (byte) irq_sprite_ypos ← (const byte) SPRITES_FIRST_YPOS+(byte) $15 to:toSpritePtr1 toSpritePtr1: scope:[] from @3 - [9] phi() + [7] phi() to:@5 @5: scope:[] from toSpritePtr1 - [10] (byte) irq_sprite_ptr ← (const byte) toSpritePtr1_return#0+(byte) 3 - [11] (byte) irq_cnt ← (byte) 0 + [8] (byte) irq_sprite_ptr ← (const byte) toSpritePtr1_return#0+(byte) 3 + [9] (byte) irq_cnt ← (byte) 0 to:@4 @4: scope:[] from @5 - [12] phi() - [13] call main + [10] phi() + [11] call main to:@end @end: scope:[] from @4 - [14] phi() + [12] phi() (void()) main() main: scope:[main] from @4 - [15] phi() - [16] call sid_rnd_init + [13] phi() + [14] call sid_rnd_init to:main::@8 main::@8: scope:[main] from main asm { sei } - [18] call render_init + [16] call render_init to:main::@9 main::@9: scope:[main] from main::@8 - [19] phi() - [20] call sprites_init + [17] phi() + [18] call sprites_init to:main::@10 main::@10: scope:[main] from main::@9 - [21] phi() - [22] call sprites_irq_init + [19] phi() + [20] call sprites_irq_init to:main::@11 main::@11: scope:[main] from main::@10 - [23] phi() - [24] call play_init + [21] phi() + [22] call play_init to:main::@12 main::@12: scope:[main] from main::@11 - [25] phi() - [26] call play_spawn_current + [23] phi() + [24] call play_spawn_current to:main::@13 main::@13: scope:[main] from main::@12 - [27] phi() - [28] call play_spawn_current + [25] phi() + [26] call play_spawn_current to:main::@14 main::@14: scope:[main] from main::@13 - [29] phi() - [30] call render_playfield + [27] phi() + [28] call render_playfield to:main::@15 main::@15: scope:[main] from main::@14 - [31] (byte) current_ypos#97 ← (byte) current_ypos#6 - [32] (byte) current_xpos#118 ← (byte) current_xpos#100 - [33] (byte*) current_piece_gfx#111 ← (byte*)*((const word*) PIECES + (byte~) play_spawn_current::$7) - [34] (byte) current_piece_char#99 ← (byte) current_piece_char#5 - [35] call render_moving + [29] (byte) current_ypos#97 ← (byte) current_ypos#6 + [30] (byte) current_xpos#118 ← (byte) current_xpos#100 + [31] (byte*) current_piece_gfx#111 ← (byte*)*((const word*) PIECES + (byte~) play_spawn_current::$7) + [32] (byte) current_piece_char#99 ← (byte) current_piece_char#5 + [33] call render_moving to:main::@16 main::@16: scope:[main] from main::@15 - [36] (byte) next_piece_idx#76 ← (byte) play_spawn_current::piece_idx#2 - [37] call render_next + [34] (byte) next_piece_idx#76 ← (byte) play_spawn_current::piece_idx#2 + [35] call render_next to:main::@17 main::@17: scope:[main] from main::@16 - [38] (byte*) current_piece#101 ← (byte*)*((const word*) PIECES + (byte~) play_spawn_current::$7) - [39] (byte*) current_piece_gfx#123 ← (byte*)*((const word*) PIECES + (byte~) play_spawn_current::$7) + [36] (byte*) current_piece#101 ← (byte*)*((const word*) PIECES + (byte~) play_spawn_current::$7) + [37] (byte*) current_piece_gfx#123 ← (byte*)*((const word*) PIECES + (byte~) play_spawn_current::$7) to:main::@1 main::@1: scope:[main] from main::@17 main::@25 main::@6 - [40] (byte) level_bcd#11 ← phi( main::@6/(byte) level_bcd#17 main::@17/(byte) 0 main::@25/(byte) level_bcd#17 ) - [40] (byte) level#10 ← phi( main::@6/(byte) level#17 main::@17/(byte) 0 main::@25/(byte) level#17 ) - [40] (word) lines_bcd#19 ← phi( main::@6/(word) lines_bcd#15 main::@17/(word) 0 main::@25/(word) lines_bcd#15 ) - [40] (byte) current_movedown_counter#16 ← phi( main::@6/(byte) current_movedown_counter#14 main::@17/(byte) 0 main::@25/(byte) current_movedown_counter#14 ) - [40] (byte) keyboard_events_size#19 ← phi( main::@6/(byte) keyboard_events_size#16 main::@17/(byte) 0 main::@25/(byte) keyboard_events_size#16 ) - [40] (byte) next_piece_idx#10 ← phi( main::@6/(byte) next_piece_idx#16 main::@17/(byte) play_spawn_current::piece_idx#2 main::@25/(byte) next_piece_idx#16 ) - [40] (byte) game_over#10 ← phi( main::@6/(byte) game_over#15 main::@17/(byte) game_over#52 main::@25/(byte) game_over#15 ) - [40] (byte) current_ypos#11 ← phi( main::@6/(byte) current_ypos#19 main::@17/(byte) current_ypos#6 main::@25/(byte) current_ypos#19 ) - [40] (byte) current_xpos#14 ← phi( main::@6/(byte) current_xpos#19 main::@17/(byte) current_xpos#100 main::@25/(byte) current_xpos#19 ) - [40] (byte*) current_piece_gfx#13 ← phi( main::@6/(byte*) current_piece_gfx#18 main::@17/(byte*) current_piece_gfx#123 main::@25/(byte*) current_piece_gfx#18 ) - [40] (byte) current_orientation#13 ← phi( main::@6/(byte) current_orientation#17 main::@17/(byte) 0 main::@25/(byte) current_orientation#17 ) - [40] (byte) current_piece_char#10 ← phi( main::@6/(byte) current_piece_char#16 main::@17/(byte) current_piece_char#5 main::@25/(byte) current_piece_char#16 ) - [40] (byte*) current_piece#10 ← phi( main::@6/(byte*) current_piece#15 main::@17/(byte*) current_piece#101 main::@25/(byte*) current_piece#15 ) - [40] (byte) current_movedown_slow#14 ← phi( main::@6/(byte) current_movedown_slow#21 main::@17/(byte) current_movedown_slow#1 main::@25/(byte) current_movedown_slow#21 ) - [40] (byte) render_screen_render#18 ← phi( main::@6/(byte) render_screen_render#18 main::@17/(byte) $20 main::@25/(byte) render_screen_render#11 ) - [40] (byte) render_screen_show#16 ← phi( main::@6/(byte) render_screen_show#16 main::@17/(byte) 0 main::@25/(byte) render_screen_show#13 ) + [38] (byte) level_bcd#11 ← phi( main::@6/(byte) level_bcd#17 main::@17/(byte) 0 main::@25/(byte) level_bcd#17 ) + [38] (byte) level#10 ← phi( main::@6/(byte) level#17 main::@17/(byte) 0 main::@25/(byte) level#17 ) + [38] (word) lines_bcd#19 ← phi( main::@6/(word) lines_bcd#15 main::@17/(word) 0 main::@25/(word) lines_bcd#15 ) + [38] (byte) current_movedown_counter#16 ← phi( main::@6/(byte) current_movedown_counter#14 main::@17/(byte) 0 main::@25/(byte) current_movedown_counter#14 ) + [38] (byte) keyboard_events_size#19 ← phi( main::@6/(byte) keyboard_events_size#16 main::@17/(byte) 0 main::@25/(byte) keyboard_events_size#16 ) + [38] (byte) next_piece_idx#10 ← phi( main::@6/(byte) next_piece_idx#16 main::@17/(byte) play_spawn_current::piece_idx#2 main::@25/(byte) next_piece_idx#16 ) + [38] (byte) game_over#10 ← phi( main::@6/(byte) game_over#15 main::@17/(byte) game_over#52 main::@25/(byte) game_over#15 ) + [38] (byte) current_ypos#11 ← phi( main::@6/(byte) current_ypos#19 main::@17/(byte) current_ypos#6 main::@25/(byte) current_ypos#19 ) + [38] (byte) current_xpos#14 ← phi( main::@6/(byte) current_xpos#19 main::@17/(byte) current_xpos#100 main::@25/(byte) current_xpos#19 ) + [38] (byte*) current_piece_gfx#13 ← phi( main::@6/(byte*) current_piece_gfx#18 main::@17/(byte*) current_piece_gfx#123 main::@25/(byte*) current_piece_gfx#18 ) + [38] (byte) current_orientation#13 ← phi( main::@6/(byte) current_orientation#17 main::@17/(byte) 0 main::@25/(byte) current_orientation#17 ) + [38] (byte) current_piece_char#10 ← phi( main::@6/(byte) current_piece_char#16 main::@17/(byte) current_piece_char#5 main::@25/(byte) current_piece_char#16 ) + [38] (byte*) current_piece#10 ← phi( main::@6/(byte*) current_piece#15 main::@17/(byte*) current_piece#101 main::@25/(byte*) current_piece#15 ) + [38] (byte) current_movedown_slow#14 ← phi( main::@6/(byte) current_movedown_slow#21 main::@17/(byte) current_movedown_slow#1 main::@25/(byte) current_movedown_slow#21 ) + [38] (byte) render_screen_render#18 ← phi( main::@6/(byte) render_screen_render#18 main::@17/(byte) $20 main::@25/(byte) render_screen_render#11 ) + [38] (byte) render_screen_show#16 ← phi( main::@6/(byte) render_screen_show#16 main::@17/(byte) 0 main::@25/(byte) render_screen_show#13 ) to:main::@2 main::@2: scope:[main] from main::@1 main::@2 - [41] if(*((const byte*) RASTER)!=(byte) $ff) goto main::@2 + [39] if(*((const byte*) RASTER)!=(byte) $ff) goto main::@2 to:main::@3 main::@3: scope:[main] from main::@2 - [42] phi() - [43] call render_show + [40] phi() + [41] call render_show to:main::@18 main::@18: scope:[main] from main::@3 - [44] phi() - [45] call keyboard_event_scan + [42] phi() + [43] call keyboard_event_scan to:main::@19 main::@19: scope:[main] from main::@18 - [46] phi() - [47] call keyboard_event_get - [48] (byte) keyboard_event_get::return#3 ← (byte) keyboard_event_get::return#2 + [44] phi() + [45] call keyboard_event_get + [46] (byte) keyboard_event_get::return#3 ← (byte) keyboard_event_get::return#2 to:main::@20 main::@20: scope:[main] from main::@19 - [49] (byte) main::key_event#0 ← (byte) keyboard_event_get::return#3 - [50] if((byte) game_over#10==(byte) 0) goto main::@4 + [47] (byte) main::key_event#0 ← (byte) keyboard_event_get::return#3 + [48] if((byte) game_over#10==(byte) 0) goto main::@4 to:main::@5 main::@5: scope:[main] from main::@20 main::@5 - [51] *((const byte*) BORDERCOL) ← ++ *((const byte*) BORDERCOL) + [49] *((const byte*) BORDERCOL) ← ++ *((const byte*) BORDERCOL) to:main::@5 main::@4: scope:[main] from main::@20 - [52] (byte) play_movement::key_event#0 ← (byte) main::key_event#0 - [53] call play_movement - [54] (byte) play_movement::return#3 ← (byte) play_movement::return#2 + [50] (byte) play_movement::key_event#0 ← (byte) main::key_event#0 + [51] call play_movement + [52] (byte) play_movement::return#3 ← (byte) play_movement::return#2 to:main::@21 main::@21: scope:[main] from main::@4 - [55] (byte) main::render#1 ← (byte) play_movement::return#3 + [53] (byte) main::render#1 ← (byte) play_movement::return#3 to:main::@6 main::@6: scope:[main] from main::@21 - [56] if((byte) main::render#1==(byte) 0) goto main::@1 + [54] if((byte) main::render#1==(byte) 0) goto main::@1 to:main::@7 main::@7: scope:[main] from main::@6 - [57] (byte) render_screen_render#63 ← (byte) render_screen_render#18 - [58] call render_playfield + [55] (byte) render_screen_render#63 ← (byte) render_screen_render#18 + [56] call render_playfield to:main::@22 main::@22: scope:[main] from main::@7 - [59] (byte) current_ypos#98 ← (byte) current_ypos#19 - [60] (byte) render_screen_render#64 ← (byte) render_screen_render#18 - [61] (byte) current_xpos#119 ← (byte) current_xpos#19 - [62] (byte*) current_piece_gfx#112 ← (byte*) current_piece_gfx#18 - [63] (byte) current_piece_char#100 ← (byte) current_piece_char#16 - [64] call render_moving + [57] (byte) current_ypos#98 ← (byte) current_ypos#19 + [58] (byte) render_screen_render#64 ← (byte) render_screen_render#18 + [59] (byte) current_xpos#119 ← (byte) current_xpos#19 + [60] (byte*) current_piece_gfx#112 ← (byte*) current_piece_gfx#18 + [61] (byte) current_piece_char#100 ← (byte) current_piece_char#16 + [62] call render_moving to:main::@23 main::@23: scope:[main] from main::@22 - [65] (byte) render_screen_render#65 ← (byte) render_screen_render#18 - [66] (byte) next_piece_idx#77 ← (byte) next_piece_idx#16 - [67] call render_next + [63] (byte) render_screen_render#65 ← (byte) render_screen_render#18 + [64] (byte) next_piece_idx#77 ← (byte) next_piece_idx#16 + [65] call render_next to:main::@24 main::@24: scope:[main] from main::@23 - [68] phi() - [69] call render_score + [66] phi() + [67] call render_score to:main::@25 main::@25: scope:[main] from main::@24 - [70] phi() - [71] call render_screen_swap + [68] phi() + [69] call render_screen_swap to:main::@1 (void()) render_screen_swap() render_screen_swap: scope:[render_screen_swap] from main::@25 - [72] (byte) render_screen_render#11 ← (byte) render_screen_render#18 ^ (byte) $20 - [73] (byte) render_screen_show#13 ← (byte) render_screen_show#16 ^ (byte) $20 + [70] (byte) render_screen_render#11 ← (byte) render_screen_render#18 ^ (byte) $20 + [71] (byte) render_screen_show#13 ← (byte) render_screen_show#16 ^ (byte) $20 to:render_screen_swap::@return render_screen_swap::@return: scope:[render_screen_swap] from render_screen_swap - [74] return + [72] return to:@return (void()) render_score() render_score: scope:[render_score] from main::@24 - [75] if((byte) render_screen_render#18==(byte) 0) goto render_score::@1 + [73] if((byte) render_screen_render#18==(byte) 0) goto render_score::@1 to:render_score::@2 render_score::@1: scope:[render_score] from render_score - [76] phi() + [74] phi() to:render_score::@2 render_score::@2: scope:[render_score] from render_score render_score::@1 - [77] (byte*) render_score::screen#3 ← phi( render_score::@1/(const byte*) PLAYFIELD_SCREEN_1 render_score/(const byte*) PLAYFIELD_SCREEN_2 ) - [78] (byte*) render_bcd::screen#0 ← (byte*) render_score::screen#3 - [79] (byte) render_bcd::bcd#0 ← *((const byte*) render_score::score_bytes+(byte) 2) - [80] call render_bcd + [75] (byte*) render_score::screen#3 ← phi( render_score::@1/(const byte*) PLAYFIELD_SCREEN_1 render_score/(const byte*) PLAYFIELD_SCREEN_2 ) + [76] (byte*) render_bcd::screen#0 ← (byte*) render_score::screen#3 + [77] (byte) render_bcd::bcd#0 ← *((const byte*) render_score::score_bytes+(byte) 2) + [78] call render_bcd to:render_score::@3 render_score::@3: scope:[render_score] from render_score::@2 - [81] (byte*) render_bcd::screen#1 ← (byte*) render_score::screen#3 - [82] (byte) render_bcd::bcd#1 ← *((const byte*) render_score::score_bytes+(byte) 1) - [83] call render_bcd + [79] (byte*) render_bcd::screen#1 ← (byte*) render_score::screen#3 + [80] (byte) render_bcd::bcd#1 ← *((const byte*) render_score::score_bytes+(byte) 1) + [81] call render_bcd to:render_score::@4 render_score::@4: scope:[render_score] from render_score::@3 - [84] (byte*) render_bcd::screen#2 ← (byte*) render_score::screen#3 - [85] (byte) render_bcd::bcd#2 ← *((const byte*) render_score::score_bytes) - [86] call render_bcd + [82] (byte*) render_bcd::screen#2 ← (byte*) render_score::screen#3 + [83] (byte) render_bcd::bcd#2 ← *((const byte*) render_score::score_bytes) + [84] call render_bcd to:render_score::@5 render_score::@5: scope:[render_score] from render_score::@4 - [87] (byte) render_bcd::bcd#3 ← > (word) lines_bcd#15 - [88] (byte*) render_bcd::screen#3 ← (byte*) render_score::screen#3 - [89] call render_bcd + [85] (byte) render_bcd::bcd#3 ← > (word) lines_bcd#15 + [86] (byte*) render_bcd::screen#3 ← (byte*) render_score::screen#3 + [87] call render_bcd to:render_score::@6 render_score::@6: scope:[render_score] from render_score::@5 - [90] (byte) render_bcd::bcd#4 ← < (word) lines_bcd#15 - [91] (byte*) render_bcd::screen#4 ← (byte*) render_score::screen#3 - [92] call render_bcd + [88] (byte) render_bcd::bcd#4 ← < (word) lines_bcd#15 + [89] (byte*) render_bcd::screen#4 ← (byte*) render_score::screen#3 + [90] call render_bcd to:render_score::@7 render_score::@7: scope:[render_score] from render_score::@6 - [93] (byte*) render_bcd::screen#5 ← (byte*) render_score::screen#3 - [94] (byte) render_bcd::bcd#5 ← (byte) level_bcd#17 - [95] call render_bcd + [91] (byte*) render_bcd::screen#5 ← (byte*) render_score::screen#3 + [92] (byte) render_bcd::bcd#5 ← (byte) level_bcd#17 + [93] call render_bcd to:render_score::@return render_score::@return: scope:[render_score] from render_score::@7 - [96] return + [94] return to:@return (void()) render_bcd((byte*) render_bcd::screen , (word) render_bcd::offset , (byte) render_bcd::bcd , (byte) render_bcd::only_low) render_bcd: scope:[render_bcd] from render_score::@2 render_score::@3 render_score::@4 render_score::@5 render_score::@6 render_score::@7 - [97] (byte) render_bcd::bcd#6 ← phi( render_score::@2/(byte) render_bcd::bcd#0 render_score::@3/(byte) render_bcd::bcd#1 render_score::@4/(byte) render_bcd::bcd#2 render_score::@5/(byte) render_bcd::bcd#3 render_score::@6/(byte) render_bcd::bcd#4 render_score::@7/(byte) render_bcd::bcd#5 ) - [97] (byte) render_bcd::only_low#6 ← phi( render_score::@2/(byte) 0 render_score::@3/(byte) 0 render_score::@4/(byte) 0 render_score::@5/(byte) 1 render_score::@6/(byte) 0 render_score::@7/(byte) 0 ) - [97] (word) render_bcd::offset#6 ← phi( render_score::@2/(const word) render_score::score_offset render_score::@3/(const word) render_score::score_offset+(byte) 2 render_score::@4/(const word) render_score::score_offset+(byte) 4 render_score::@5/(const word) render_score::lines_offset render_score::@6/(const word) render_score::lines_offset+(byte) 1 render_score::@7/(const word) render_score::level_offset ) - [97] (byte*) render_bcd::screen#6 ← phi( render_score::@2/(byte*) render_bcd::screen#0 render_score::@3/(byte*) render_bcd::screen#1 render_score::@4/(byte*) render_bcd::screen#2 render_score::@5/(byte*) render_bcd::screen#3 render_score::@6/(byte*) render_bcd::screen#4 render_score::@7/(byte*) render_bcd::screen#5 ) - [98] (byte*) render_bcd::screen_pos#0 ← (byte*) render_bcd::screen#6 + (word) render_bcd::offset#6 - [99] if((byte) render_bcd::only_low#6!=(byte) 0) goto render_bcd::@1 + [95] (byte) render_bcd::bcd#6 ← phi( render_score::@2/(byte) render_bcd::bcd#0 render_score::@3/(byte) render_bcd::bcd#1 render_score::@4/(byte) render_bcd::bcd#2 render_score::@5/(byte) render_bcd::bcd#3 render_score::@6/(byte) render_bcd::bcd#4 render_score::@7/(byte) render_bcd::bcd#5 ) + [95] (byte) render_bcd::only_low#6 ← phi( render_score::@2/(byte) 0 render_score::@3/(byte) 0 render_score::@4/(byte) 0 render_score::@5/(byte) 1 render_score::@6/(byte) 0 render_score::@7/(byte) 0 ) + [95] (word) render_bcd::offset#6 ← phi( render_score::@2/(const word) render_score::score_offset render_score::@3/(const word) render_score::score_offset+(byte) 2 render_score::@4/(const word) render_score::score_offset+(byte) 4 render_score::@5/(const word) render_score::lines_offset render_score::@6/(const word) render_score::lines_offset+(byte) 1 render_score::@7/(const word) render_score::level_offset ) + [95] (byte*) render_bcd::screen#6 ← phi( render_score::@2/(byte*) render_bcd::screen#0 render_score::@3/(byte*) render_bcd::screen#1 render_score::@4/(byte*) render_bcd::screen#2 render_score::@5/(byte*) render_bcd::screen#3 render_score::@6/(byte*) render_bcd::screen#4 render_score::@7/(byte*) render_bcd::screen#5 ) + [96] (byte*) render_bcd::screen_pos#0 ← (byte*) render_bcd::screen#6 + (word) render_bcd::offset#6 + [97] if((byte) render_bcd::only_low#6!=(byte) 0) goto render_bcd::@1 to:render_bcd::@2 render_bcd::@2: scope:[render_bcd] from render_bcd - [100] (byte~) render_bcd::$5 ← (byte) render_bcd::bcd#6 >> (byte) 4 - [101] (byte~) render_bcd::$6 ← (const byte) render_bcd::ZERO_CHAR + (byte~) render_bcd::$5 - [102] *((byte*) render_bcd::screen_pos#0) ← (byte~) render_bcd::$6 - [103] (byte*) render_bcd::screen_pos#2 ← ++ (byte*) render_bcd::screen_pos#0 + [98] (byte~) render_bcd::$5 ← (byte) render_bcd::bcd#6 >> (byte) 4 + [99] (byte~) render_bcd::$6 ← (const byte) render_bcd::ZERO_CHAR + (byte~) render_bcd::$5 + [100] *((byte*) render_bcd::screen_pos#0) ← (byte~) render_bcd::$6 + [101] (byte*) render_bcd::screen_pos#2 ← ++ (byte*) render_bcd::screen_pos#0 to:render_bcd::@1 render_bcd::@1: scope:[render_bcd] from render_bcd render_bcd::@2 - [104] (byte*) render_bcd::screen_pos#3 ← phi( render_bcd/(byte*) render_bcd::screen_pos#0 render_bcd::@2/(byte*) render_bcd::screen_pos#2 ) - [105] (byte~) render_bcd::$3 ← (byte) render_bcd::bcd#6 & (byte) $f - [106] (byte~) render_bcd::$4 ← (const byte) render_bcd::ZERO_CHAR + (byte~) render_bcd::$3 - [107] *((byte*) render_bcd::screen_pos#3) ← (byte~) render_bcd::$4 + [102] (byte*) render_bcd::screen_pos#3 ← phi( render_bcd/(byte*) render_bcd::screen_pos#0 render_bcd::@2/(byte*) render_bcd::screen_pos#2 ) + [103] (byte~) render_bcd::$3 ← (byte) render_bcd::bcd#6 & (byte) $f + [104] (byte~) render_bcd::$4 ← (const byte) render_bcd::ZERO_CHAR + (byte~) render_bcd::$3 + [105] *((byte*) render_bcd::screen_pos#3) ← (byte~) render_bcd::$4 to:render_bcd::@return render_bcd::@return: scope:[render_bcd] from render_bcd::@1 - [108] return + [106] return to:@return (void()) render_next() render_next: scope:[render_next] from main::@16 main::@23 - [109] (byte) next_piece_idx#12 ← phi( main::@16/(byte) next_piece_idx#76 main::@23/(byte) next_piece_idx#77 ) - [109] (byte) render_screen_render#15 ← phi( main::@16/(byte) $20 main::@23/(byte) render_screen_render#65 ) - [110] if((byte) render_screen_render#15==(byte) 0) goto render_next::@1 + [107] (byte) next_piece_idx#12 ← phi( main::@16/(byte) next_piece_idx#76 main::@23/(byte) next_piece_idx#77 ) + [107] (byte) render_screen_render#15 ← phi( main::@16/(byte) $20 main::@23/(byte) render_screen_render#65 ) + [108] if((byte) render_screen_render#15==(byte) 0) goto render_next::@1 to:render_next::@2 render_next::@1: scope:[render_next] from render_next - [111] phi() + [109] phi() to:render_next::@2 render_next::@2: scope:[render_next] from render_next render_next::@1 - [112] (byte*) render_next::screen_next_area#11 ← phi( render_next::@1/(const byte*) PLAYFIELD_SCREEN_1+(const word) render_next::next_area_offset render_next/(const byte*) PLAYFIELD_SCREEN_2+(const word) render_next::next_area_offset ) - [113] (byte~) render_next::$6 ← (byte) next_piece_idx#12 << (byte) 1 - [114] (byte) render_next::next_piece_char#0 ← *((const byte*) PIECES_NEXT_CHARS + (byte) next_piece_idx#12) - [115] (byte*) render_next::next_piece_gfx#9 ← (byte*)*((const word*) PIECES + (byte~) render_next::$6) + [110] (byte*) render_next::screen_next_area#11 ← phi( render_next::@1/(const byte*) PLAYFIELD_SCREEN_1+(const word) render_next::next_area_offset render_next/(const byte*) PLAYFIELD_SCREEN_2+(const word) render_next::next_area_offset ) + [111] (byte~) render_next::$6 ← (byte) next_piece_idx#12 << (byte) 1 + [112] (byte) render_next::next_piece_char#0 ← *((const byte*) PIECES_NEXT_CHARS + (byte) next_piece_idx#12) + [113] (byte*) render_next::next_piece_gfx#9 ← (byte*)*((const word*) PIECES + (byte~) render_next::$6) to:render_next::@3 render_next::@3: scope:[render_next] from render_next::@2 render_next::@8 - [116] (byte) render_next::l#7 ← phi( render_next::@8/(byte) render_next::l#1 render_next::@2/(byte) 0 ) - [116] (byte*) render_next::screen_next_area#10 ← phi( render_next::@8/(byte*) render_next::screen_next_area#4 render_next::@2/(byte*) render_next::screen_next_area#11 ) - [116] (byte*) render_next::next_piece_gfx#3 ← phi( render_next::@8/(byte*) render_next::next_piece_gfx#1 render_next::@2/(byte*) render_next::next_piece_gfx#9 ) + [114] (byte) render_next::l#7 ← phi( render_next::@8/(byte) render_next::l#1 render_next::@2/(byte) 0 ) + [114] (byte*) render_next::screen_next_area#10 ← phi( render_next::@8/(byte*) render_next::screen_next_area#4 render_next::@2/(byte*) render_next::screen_next_area#11 ) + [114] (byte*) render_next::next_piece_gfx#3 ← phi( render_next::@8/(byte*) render_next::next_piece_gfx#1 render_next::@2/(byte*) render_next::next_piece_gfx#9 ) to:render_next::@4 render_next::@4: scope:[render_next] from render_next::@3 render_next::@6 - [117] (byte) render_next::c#2 ← phi( render_next::@3/(byte) 0 render_next::@6/(byte) render_next::c#1 ) - [117] (byte*) render_next::screen_next_area#5 ← phi( render_next::@3/(byte*) render_next::screen_next_area#10 render_next::@6/(byte*) render_next::screen_next_area#3 ) - [117] (byte*) render_next::next_piece_gfx#2 ← phi( render_next::@3/(byte*) render_next::next_piece_gfx#3 render_next::@6/(byte*) render_next::next_piece_gfx#1 ) - [118] (byte) render_next::cell#0 ← *((byte*) render_next::next_piece_gfx#2) - [119] (byte*) render_next::next_piece_gfx#1 ← ++ (byte*) render_next::next_piece_gfx#2 - [120] if((byte) render_next::cell#0!=(byte) 0) goto render_next::@5 + [115] (byte) render_next::c#2 ← phi( render_next::@3/(byte) 0 render_next::@6/(byte) render_next::c#1 ) + [115] (byte*) render_next::screen_next_area#5 ← phi( render_next::@3/(byte*) render_next::screen_next_area#10 render_next::@6/(byte*) render_next::screen_next_area#3 ) + [115] (byte*) render_next::next_piece_gfx#2 ← phi( render_next::@3/(byte*) render_next::next_piece_gfx#3 render_next::@6/(byte*) render_next::next_piece_gfx#1 ) + [116] (byte) render_next::cell#0 ← *((byte*) render_next::next_piece_gfx#2) + [117] (byte*) render_next::next_piece_gfx#1 ← ++ (byte*) render_next::next_piece_gfx#2 + [118] if((byte) render_next::cell#0!=(byte) 0) goto render_next::@5 to:render_next::@7 render_next::@7: scope:[render_next] from render_next::@4 - [121] *((byte*) render_next::screen_next_area#5) ← (byte) 0 + [119] *((byte*) render_next::screen_next_area#5) ← (byte) 0 to:render_next::@6 render_next::@6: scope:[render_next] from render_next::@5 render_next::@7 - [122] (byte*) render_next::screen_next_area#3 ← ++ (byte*) render_next::screen_next_area#5 - [123] (byte) render_next::c#1 ← ++ (byte) render_next::c#2 - [124] if((byte) render_next::c#1!=(byte) 4) goto render_next::@4 + [120] (byte*) render_next::screen_next_area#3 ← ++ (byte*) render_next::screen_next_area#5 + [121] (byte) render_next::c#1 ← ++ (byte) render_next::c#2 + [122] if((byte) render_next::c#1!=(byte) 4) goto render_next::@4 to:render_next::@8 render_next::@8: scope:[render_next] from render_next::@6 - [125] (byte*) render_next::screen_next_area#4 ← (byte*) render_next::screen_next_area#3 + (byte) $24 - [126] (byte) render_next::l#1 ← ++ (byte) render_next::l#7 - [127] if((byte) render_next::l#1!=(byte) 4) goto render_next::@3 + [123] (byte*) render_next::screen_next_area#4 ← (byte*) render_next::screen_next_area#3 + (byte) $24 + [124] (byte) render_next::l#1 ← ++ (byte) render_next::l#7 + [125] if((byte) render_next::l#1!=(byte) 4) goto render_next::@3 to:render_next::@return render_next::@return: scope:[render_next] from render_next::@8 - [128] return + [126] return to:@return render_next::@5: scope:[render_next] from render_next::@4 - [129] *((byte*) render_next::screen_next_area#5) ← (byte) render_next::next_piece_char#0 + [127] *((byte*) render_next::screen_next_area#5) ← (byte) render_next::next_piece_char#0 to:render_next::@6 (void()) render_moving() render_moving: scope:[render_moving] from main::@15 main::@22 - [130] (byte) current_piece_char#68 ← phi( main::@15/(byte) current_piece_char#99 main::@22/(byte) current_piece_char#100 ) - [130] (byte*) current_piece_gfx#64 ← phi( main::@15/(byte*) current_piece_gfx#111 main::@22/(byte*) current_piece_gfx#112 ) - [130] (byte) current_xpos#59 ← phi( main::@15/(byte) current_xpos#118 main::@22/(byte) current_xpos#119 ) - [130] (byte) render_screen_render#33 ← phi( main::@15/(byte) $20 main::@22/(byte) render_screen_render#64 ) - [130] (byte) current_ypos#13 ← phi( main::@15/(byte) current_ypos#97 main::@22/(byte) current_ypos#98 ) - [131] (byte) render_moving::ypos#0 ← (byte) current_ypos#13 + [128] (byte) current_piece_char#68 ← phi( main::@15/(byte) current_piece_char#99 main::@22/(byte) current_piece_char#100 ) + [128] (byte*) current_piece_gfx#64 ← phi( main::@15/(byte*) current_piece_gfx#111 main::@22/(byte*) current_piece_gfx#112 ) + [128] (byte) current_xpos#59 ← phi( main::@15/(byte) current_xpos#118 main::@22/(byte) current_xpos#119 ) + [128] (byte) render_screen_render#33 ← phi( main::@15/(byte) $20 main::@22/(byte) render_screen_render#64 ) + [128] (byte) current_ypos#13 ← phi( main::@15/(byte) current_ypos#97 main::@22/(byte) current_ypos#98 ) + [129] (byte) render_moving::ypos#0 ← (byte) current_ypos#13 to:render_moving::@1 render_moving::@1: scope:[render_moving] from render_moving render_moving::@3 - [132] (byte) render_moving::l#4 ← phi( render_moving/(byte) 0 render_moving::@3/(byte) render_moving::l#1 ) - [132] (byte) render_moving::i#3 ← phi( render_moving/(byte) 0 render_moving::@3/(byte) render_moving::i#8 ) - [132] (byte) render_moving::ypos#2 ← phi( render_moving/(byte) render_moving::ypos#0 render_moving::@3/(byte) render_moving::ypos#1 ) - [133] if((byte) render_moving::ypos#2>=(byte) 1+(byte) 1) goto render_moving::@2 + [130] (byte) render_moving::l#4 ← phi( render_moving/(byte) 0 render_moving::@3/(byte) render_moving::l#1 ) + [130] (byte) render_moving::i#3 ← phi( render_moving/(byte) 0 render_moving::@3/(byte) render_moving::i#8 ) + [130] (byte) render_moving::ypos#2 ← phi( render_moving/(byte) render_moving::ypos#0 render_moving::@3/(byte) render_moving::ypos#1 ) + [131] if((byte) render_moving::ypos#2>=(byte) 1+(byte) 1) goto render_moving::@2 to:render_moving::@7 render_moving::@7: scope:[render_moving] from render_moving::@1 - [134] (byte) render_moving::i#1 ← (byte) render_moving::i#3 + (byte) 4 + [132] (byte) render_moving::i#1 ← (byte) render_moving::i#3 + (byte) 4 to:render_moving::@3 render_moving::@3: scope:[render_moving] from render_moving::@5 render_moving::@7 - [135] (byte) render_moving::i#8 ← phi( render_moving::@5/(byte) render_moving::i#2 render_moving::@7/(byte) render_moving::i#1 ) - [136] (byte) render_moving::ypos#1 ← ++ (byte) render_moving::ypos#2 - [137] (byte) render_moving::l#1 ← ++ (byte) render_moving::l#4 - [138] if((byte) render_moving::l#1!=(byte) 4) goto render_moving::@1 + [133] (byte) render_moving::i#8 ← phi( render_moving::@5/(byte) render_moving::i#2 render_moving::@7/(byte) render_moving::i#1 ) + [134] (byte) render_moving::ypos#1 ← ++ (byte) render_moving::ypos#2 + [135] (byte) render_moving::l#1 ← ++ (byte) render_moving::l#4 + [136] if((byte) render_moving::l#1!=(byte) 4) goto render_moving::@1 to:render_moving::@return render_moving::@return: scope:[render_moving] from render_moving::@3 - [139] return + [137] return to:@return render_moving::@2: scope:[render_moving] from render_moving::@1 - [140] (byte~) render_moving::$1 ← (byte) render_screen_render#33 + (byte) render_moving::ypos#2 - [141] (byte~) render_moving::$6 ← (byte~) render_moving::$1 << (byte) 1 - [142] (byte*) render_moving::screen_line#0 ← *((const byte**) screen_lines_1 + (byte~) render_moving::$6) - [143] (byte) render_moving::xpos#0 ← (byte) current_xpos#59 + [138] (byte~) render_moving::$1 ← (byte) render_screen_render#33 + (byte) render_moving::ypos#2 + [139] (byte~) render_moving::$6 ← (byte~) render_moving::$1 << (byte) 1 + [140] (byte*) render_moving::screen_line#0 ← *((const byte**) screen_lines_1 + (byte~) render_moving::$6) + [141] (byte) render_moving::xpos#0 ← (byte) current_xpos#59 to:render_moving::@4 render_moving::@4: scope:[render_moving] from render_moving::@2 render_moving::@5 - [144] (byte) render_moving::c#2 ← phi( render_moving::@2/(byte) 0 render_moving::@5/(byte) render_moving::c#1 ) - [144] (byte) render_moving::xpos#2 ← phi( render_moving::@2/(byte) render_moving::xpos#0 render_moving::@5/(byte) render_moving::xpos#1 ) - [144] (byte) render_moving::i#4 ← phi( render_moving::@2/(byte) render_moving::i#3 render_moving::@5/(byte) render_moving::i#2 ) - [145] (byte) render_moving::current_cell#0 ← *((byte*) current_piece_gfx#64 + (byte) render_moving::i#4) - [146] (byte) render_moving::i#2 ← ++ (byte) render_moving::i#4 - [147] if((byte) render_moving::current_cell#0==(byte) 0) goto render_moving::@5 + [142] (byte) render_moving::c#2 ← phi( render_moving::@2/(byte) 0 render_moving::@5/(byte) render_moving::c#1 ) + [142] (byte) render_moving::xpos#2 ← phi( render_moving::@2/(byte) render_moving::xpos#0 render_moving::@5/(byte) render_moving::xpos#1 ) + [142] (byte) render_moving::i#4 ← phi( render_moving::@2/(byte) render_moving::i#3 render_moving::@5/(byte) render_moving::i#2 ) + [143] (byte) render_moving::current_cell#0 ← *((byte*) current_piece_gfx#64 + (byte) render_moving::i#4) + [144] (byte) render_moving::i#2 ← ++ (byte) render_moving::i#4 + [145] if((byte) render_moving::current_cell#0==(byte) 0) goto render_moving::@5 to:render_moving::@6 render_moving::@6: scope:[render_moving] from render_moving::@4 - [148] *((byte*) render_moving::screen_line#0 + (byte) render_moving::xpos#2) ← (byte) current_piece_char#68 + [146] *((byte*) render_moving::screen_line#0 + (byte) render_moving::xpos#2) ← (byte) current_piece_char#68 to:render_moving::@5 render_moving::@5: scope:[render_moving] from render_moving::@4 render_moving::@6 - [149] (byte) render_moving::xpos#1 ← ++ (byte) render_moving::xpos#2 - [150] (byte) render_moving::c#1 ← ++ (byte) render_moving::c#2 - [151] if((byte) render_moving::c#1!=(byte) 4) goto render_moving::@4 + [147] (byte) render_moving::xpos#1 ← ++ (byte) render_moving::xpos#2 + [148] (byte) render_moving::c#1 ← ++ (byte) render_moving::c#2 + [149] if((byte) render_moving::c#1!=(byte) 4) goto render_moving::@4 to:render_moving::@3 (void()) render_playfield() render_playfield: scope:[render_playfield] from main::@14 main::@7 - [152] (byte) render_screen_render#22 ← phi( main::@7/(byte) render_screen_render#63 main::@14/(byte) $20 ) + [150] (byte) render_screen_render#22 ← phi( main::@7/(byte) render_screen_render#63 main::@14/(byte) $20 ) to:render_playfield::@1 render_playfield::@1: scope:[render_playfield] from render_playfield render_playfield::@3 - [153] (byte) render_playfield::i#3 ← phi( render_playfield/(const byte) PLAYFIELD_COLS*(byte) 2 render_playfield::@3/(byte) render_playfield::i#1 ) - [153] (byte) render_playfield::l#2 ← phi( render_playfield/(byte) 2 render_playfield::@3/(byte) render_playfield::l#1 ) - [154] (byte~) render_playfield::$0 ← (byte) render_screen_render#22 + (byte) render_playfield::l#2 - [155] (byte~) render_playfield::$3 ← (byte~) render_playfield::$0 << (byte) 1 - [156] (byte*) render_playfield::screen_line#0 ← *((const byte**) screen_lines_1 + (byte~) render_playfield::$3) + [151] (byte) render_playfield::i#3 ← phi( render_playfield/(const byte) PLAYFIELD_COLS*(byte) 2 render_playfield::@3/(byte) render_playfield::i#1 ) + [151] (byte) render_playfield::l#2 ← phi( render_playfield/(byte) 2 render_playfield::@3/(byte) render_playfield::l#1 ) + [152] (byte~) render_playfield::$0 ← (byte) render_screen_render#22 + (byte) render_playfield::l#2 + [153] (byte~) render_playfield::$3 ← (byte~) render_playfield::$0 << (byte) 1 + [154] (byte*) render_playfield::screen_line#0 ← *((const byte**) screen_lines_1 + (byte~) render_playfield::$3) to:render_playfield::@2 render_playfield::@2: scope:[render_playfield] from render_playfield::@1 render_playfield::@2 - [157] (byte) render_playfield::c#2 ← phi( render_playfield::@1/(byte) 0 render_playfield::@2/(byte) render_playfield::c#1 ) - [157] (byte*) render_playfield::screen_line#2 ← phi( render_playfield::@1/(byte*) render_playfield::screen_line#0 render_playfield::@2/(byte*) render_playfield::screen_line#1 ) - [157] (byte) render_playfield::i#2 ← phi( render_playfield::@1/(byte) render_playfield::i#3 render_playfield::@2/(byte) render_playfield::i#1 ) - [158] *((byte*) render_playfield::screen_line#2) ← *((const byte*) playfield + (byte) render_playfield::i#2) - [159] (byte*) render_playfield::screen_line#1 ← ++ (byte*) render_playfield::screen_line#2 - [160] (byte) render_playfield::i#1 ← ++ (byte) render_playfield::i#2 - [161] (byte) render_playfield::c#1 ← ++ (byte) render_playfield::c#2 - [162] if((byte) render_playfield::c#1!=(const byte) PLAYFIELD_COLS-(byte) 1+(byte) 1) goto render_playfield::@2 + [155] (byte) render_playfield::c#2 ← phi( render_playfield::@1/(byte) 0 render_playfield::@2/(byte) render_playfield::c#1 ) + [155] (byte*) render_playfield::screen_line#2 ← phi( render_playfield::@1/(byte*) render_playfield::screen_line#0 render_playfield::@2/(byte*) render_playfield::screen_line#1 ) + [155] (byte) render_playfield::i#2 ← phi( render_playfield::@1/(byte) render_playfield::i#3 render_playfield::@2/(byte) render_playfield::i#1 ) + [156] *((byte*) render_playfield::screen_line#2) ← *((const byte*) playfield + (byte) render_playfield::i#2) + [157] (byte*) render_playfield::screen_line#1 ← ++ (byte*) render_playfield::screen_line#2 + [158] (byte) render_playfield::i#1 ← ++ (byte) render_playfield::i#2 + [159] (byte) render_playfield::c#1 ← ++ (byte) render_playfield::c#2 + [160] if((byte) render_playfield::c#1!=(const byte) PLAYFIELD_COLS-(byte) 1+(byte) 1) goto render_playfield::@2 to:render_playfield::@3 render_playfield::@3: scope:[render_playfield] from render_playfield::@2 - [163] (byte) render_playfield::l#1 ← ++ (byte) render_playfield::l#2 - [164] if((byte) render_playfield::l#1!=(const byte) PLAYFIELD_LINES-(byte) 1+(byte) 1) goto render_playfield::@1 + [161] (byte) render_playfield::l#1 ← ++ (byte) render_playfield::l#2 + [162] if((byte) render_playfield::l#1!=(const byte) PLAYFIELD_LINES-(byte) 1+(byte) 1) goto render_playfield::@1 to:render_playfield::@return render_playfield::@return: scope:[render_playfield] from render_playfield::@3 - [165] return + [163] return to:@return (byte()) play_movement((byte) play_movement::key_event) play_movement: scope:[play_movement] from main::@4 - [166] (byte) play_move_down::key_event#0 ← (byte) play_movement::key_event#0 - [167] call play_move_down - [168] (byte) play_move_down::return#0 ← (byte) play_move_down::return#3 + [164] (byte) play_move_down::key_event#0 ← (byte) play_movement::key_event#0 + [165] call play_move_down + [166] (byte) play_move_down::return#0 ← (byte) play_move_down::return#3 to:play_movement::@2 play_movement::@2: scope:[play_movement] from play_movement - [169] (byte) play_movement::render#1 ← (byte) play_move_down::return#0 - [170] if((byte) game_over#15==(byte) 0) goto play_movement::@1 + [167] (byte) play_movement::render#1 ← (byte) play_move_down::return#0 + [168] if((byte) game_over#15==(byte) 0) goto play_movement::@1 to:play_movement::@return play_movement::@return: scope:[play_movement] from play_movement::@2 play_movement::@4 - [171] (byte) current_xpos#19 ← phi( play_movement::@2/(byte) current_xpos#22 play_movement::@4/(byte) current_xpos#26 ) - [171] (byte*) current_piece_gfx#18 ← phi( play_movement::@2/(byte*) current_piece_gfx#20 play_movement::@4/(byte*) current_piece_gfx#21 ) - [171] (byte) current_orientation#17 ← phi( play_movement::@2/(byte) current_orientation#20 play_movement::@4/(byte) current_orientation#25 ) - [171] (byte) play_movement::return#2 ← phi( play_movement::@2/(byte) play_movement::render#1 play_movement::@4/(byte) play_movement::return#0 ) - [172] return + [169] (byte) current_xpos#19 ← phi( play_movement::@2/(byte) current_xpos#22 play_movement::@4/(byte) current_xpos#26 ) + [169] (byte*) current_piece_gfx#18 ← phi( play_movement::@2/(byte*) current_piece_gfx#20 play_movement::@4/(byte*) current_piece_gfx#21 ) + [169] (byte) current_orientation#17 ← phi( play_movement::@2/(byte) current_orientation#20 play_movement::@4/(byte) current_orientation#25 ) + [169] (byte) play_movement::return#2 ← phi( play_movement::@2/(byte) play_movement::render#1 play_movement::@4/(byte) play_movement::return#0 ) + [170] return to:@return play_movement::@1: scope:[play_movement] from play_movement::@2 - [173] (byte) play_move_leftright::key_event#0 ← (byte) play_movement::key_event#0 - [174] call play_move_leftright - [175] (byte) play_move_leftright::return#0 ← (byte) play_move_leftright::return#2 + [171] (byte) play_move_leftright::key_event#0 ← (byte) play_movement::key_event#0 + [172] call play_move_leftright + [173] (byte) play_move_leftright::return#0 ← (byte) play_move_leftright::return#2 to:play_movement::@3 play_movement::@3: scope:[play_movement] from play_movement::@1 - [176] (byte~) play_movement::$3 ← (byte) play_move_leftright::return#0 - [177] (byte) play_movement::render#2 ← (byte) play_movement::render#1 + (byte~) play_movement::$3 - [178] (byte) play_move_rotate::key_event#0 ← (byte) play_movement::key_event#0 - [179] call play_move_rotate - [180] (byte) play_move_rotate::return#0 ← (byte) play_move_rotate::return#2 + [174] (byte~) play_movement::$3 ← (byte) play_move_leftright::return#0 + [175] (byte) play_movement::render#2 ← (byte) play_movement::render#1 + (byte~) play_movement::$3 + [176] (byte) play_move_rotate::key_event#0 ← (byte) play_movement::key_event#0 + [177] call play_move_rotate + [178] (byte) play_move_rotate::return#0 ← (byte) play_move_rotate::return#2 to:play_movement::@4 play_movement::@4: scope:[play_movement] from play_movement::@3 - [181] (byte~) play_movement::$4 ← (byte) play_move_rotate::return#0 - [182] (byte) play_movement::return#0 ← (byte) play_movement::render#2 + (byte~) play_movement::$4 + [179] (byte~) play_movement::$4 ← (byte) play_move_rotate::return#0 + [180] (byte) play_movement::return#0 ← (byte) play_movement::render#2 + (byte~) play_movement::$4 to:play_movement::@return (byte()) play_move_rotate((byte) play_move_rotate::key_event) play_move_rotate: scope:[play_move_rotate] from play_movement::@3 - [183] if((byte) play_move_rotate::key_event#0==(const byte) KEY_Z) goto play_move_rotate::@1 + [181] if((byte) play_move_rotate::key_event#0==(const byte) KEY_Z) goto play_move_rotate::@1 to:play_move_rotate::@4 play_move_rotate::@4: scope:[play_move_rotate] from play_move_rotate - [184] if((byte) play_move_rotate::key_event#0==(const byte) KEY_X) goto play_move_rotate::@2 + [182] if((byte) play_move_rotate::key_event#0==(const byte) KEY_X) goto play_move_rotate::@2 to:play_move_rotate::@return play_move_rotate::@return: scope:[play_move_rotate] from play_move_rotate::@4 play_move_rotate::@5 play_move_rotate::@6 - [185] (byte*) current_piece_gfx#21 ← phi( play_move_rotate::@5/(byte*) current_piece_gfx#7 play_move_rotate::@6/(byte*) current_piece_gfx#20 play_move_rotate::@4/(byte*) current_piece_gfx#20 ) - [185] (byte) current_orientation#25 ← phi( play_move_rotate::@5/(byte) current_orientation#7 play_move_rotate::@6/(byte) current_orientation#20 play_move_rotate::@4/(byte) current_orientation#20 ) - [185] (byte) play_move_rotate::return#2 ← phi( play_move_rotate::@5/(byte) 1 play_move_rotate::@6/(byte) 0 play_move_rotate::@4/(byte) 0 ) - [186] return + [183] (byte*) current_piece_gfx#21 ← phi( play_move_rotate::@5/(byte*) current_piece_gfx#7 play_move_rotate::@6/(byte*) current_piece_gfx#20 play_move_rotate::@4/(byte*) current_piece_gfx#20 ) + [183] (byte) current_orientation#25 ← phi( play_move_rotate::@5/(byte) current_orientation#7 play_move_rotate::@6/(byte) current_orientation#20 play_move_rotate::@4/(byte) current_orientation#20 ) + [183] (byte) play_move_rotate::return#2 ← phi( play_move_rotate::@5/(byte) 1 play_move_rotate::@6/(byte) 0 play_move_rotate::@4/(byte) 0 ) + [184] return to:@return play_move_rotate::@2: scope:[play_move_rotate] from play_move_rotate::@4 - [187] (byte~) play_move_rotate::$5 ← (byte) current_orientation#20 + (byte) $10 - [188] (byte) play_move_rotate::orientation#2 ← (byte~) play_move_rotate::$5 & (byte) $3f + [185] (byte~) play_move_rotate::$5 ← (byte) current_orientation#20 + (byte) $10 + [186] (byte) play_move_rotate::orientation#2 ← (byte~) play_move_rotate::$5 & (byte) $3f to:play_move_rotate::@3 play_move_rotate::@3: scope:[play_move_rotate] from play_move_rotate::@1 play_move_rotate::@2 - [189] (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 ) - [190] (byte) play_collision::xpos#3 ← (byte) current_xpos#26 - [191] (byte) play_collision::ypos#3 ← (byte) current_ypos#19 - [192] (byte) play_collision::orientation#3 ← (byte) play_move_rotate::orientation#3 - [193] (byte*) current_piece#98 ← (byte*) current_piece#15 - [194] call play_collision - [195] (byte) play_collision::return#14 ← (byte) play_collision::return#15 + [187] (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 ) + [188] (byte) play_collision::xpos#3 ← (byte) current_xpos#26 + [189] (byte) play_collision::ypos#3 ← (byte) current_ypos#19 + [190] (byte) play_collision::orientation#3 ← (byte) play_move_rotate::orientation#3 + [191] (byte*) current_piece#98 ← (byte*) current_piece#15 + [192] call play_collision + [193] (byte) play_collision::return#14 ← (byte) play_collision::return#15 to:play_move_rotate::@6 play_move_rotate::@6: scope:[play_move_rotate] from play_move_rotate::@3 - [196] (byte~) play_move_rotate::$2 ← (byte) play_collision::return#14 - [197] if((byte~) play_move_rotate::$2!=(const byte) COLLISION_NONE) goto play_move_rotate::@return + [194] (byte~) play_move_rotate::$2 ← (byte) play_collision::return#14 + [195] if((byte~) play_move_rotate::$2!=(const byte) COLLISION_NONE) goto play_move_rotate::@return to:play_move_rotate::@5 play_move_rotate::@5: scope:[play_move_rotate] from play_move_rotate::@6 - [198] (byte) current_orientation#7 ← (byte) play_move_rotate::orientation#3 - [199] (byte*) current_piece_gfx#7 ← (byte*) current_piece#15 + (byte) current_orientation#7 + [196] (byte) current_orientation#7 ← (byte) play_move_rotate::orientation#3 + [197] (byte*) current_piece_gfx#7 ← (byte*) current_piece#15 + (byte) current_orientation#7 to:play_move_rotate::@return play_move_rotate::@1: scope:[play_move_rotate] from play_move_rotate - [200] (byte~) play_move_rotate::$7 ← (byte) current_orientation#20 - (byte) $10 - [201] (byte) play_move_rotate::orientation#1 ← (byte~) play_move_rotate::$7 & (byte) $3f + [198] (byte~) play_move_rotate::$7 ← (byte) current_orientation#20 - (byte) $10 + [199] (byte) play_move_rotate::orientation#1 ← (byte~) play_move_rotate::$7 & (byte) $3f to:play_move_rotate::@3 (byte()) play_collision((byte) play_collision::xpos , (byte) play_collision::ypos , (byte) play_collision::orientation) play_collision: scope:[play_collision] from play_move_down::@8 play_move_leftright::@1 play_move_leftright::@3 play_move_rotate::@3 play_spawn_current - [202] (byte) play_collision::xpos#6 ← phi( play_move_down::@8/(byte) play_collision::xpos#0 play_move_leftright::@1/(byte) play_collision::xpos#1 play_move_leftright::@3/(byte) play_collision::xpos#2 play_move_rotate::@3/(byte) play_collision::xpos#3 play_spawn_current/(byte) play_collision::xpos#4 ) - [202] (byte) play_collision::yp#0 ← phi( play_move_down::@8/(byte) play_collision::ypos#0 play_move_leftright::@1/(byte) play_collision::ypos#1 play_move_leftright::@3/(byte) play_collision::ypos#2 play_move_rotate::@3/(byte) play_collision::ypos#3 play_spawn_current/(byte) play_collision::ypos#4 ) - [202] (byte) play_collision::orientation#5 ← phi( play_move_down::@8/(byte) play_collision::orientation#0 play_move_leftright::@1/(byte) play_collision::orientation#1 play_move_leftright::@3/(byte) play_collision::orientation#2 play_move_rotate::@3/(byte) play_collision::orientation#3 play_spawn_current/(byte) 0 ) - [202] (byte*) current_piece#17 ← phi( play_move_down::@8/(byte*) current_piece#95 play_move_leftright::@1/(byte*) current_piece#96 play_move_leftright::@3/(byte*) current_piece#97 play_move_rotate::@3/(byte*) current_piece#98 play_spawn_current/(byte*) current_piece#99 ) - [203] (byte*) play_collision::piece_gfx#0 ← (byte*) current_piece#17 + (byte) play_collision::orientation#5 + [200] (byte) play_collision::xpos#6 ← phi( play_move_down::@8/(byte) play_collision::xpos#0 play_move_leftright::@1/(byte) play_collision::xpos#1 play_move_leftright::@3/(byte) play_collision::xpos#2 play_move_rotate::@3/(byte) play_collision::xpos#3 play_spawn_current/(byte) play_collision::xpos#4 ) + [200] (byte) play_collision::yp#0 ← phi( play_move_down::@8/(byte) play_collision::ypos#0 play_move_leftright::@1/(byte) play_collision::ypos#1 play_move_leftright::@3/(byte) play_collision::ypos#2 play_move_rotate::@3/(byte) play_collision::ypos#3 play_spawn_current/(byte) play_collision::ypos#4 ) + [200] (byte) play_collision::orientation#5 ← phi( play_move_down::@8/(byte) play_collision::orientation#0 play_move_leftright::@1/(byte) play_collision::orientation#1 play_move_leftright::@3/(byte) play_collision::orientation#2 play_move_rotate::@3/(byte) play_collision::orientation#3 play_spawn_current/(byte) 0 ) + [200] (byte*) current_piece#17 ← phi( play_move_down::@8/(byte*) current_piece#95 play_move_leftright::@1/(byte*) current_piece#96 play_move_leftright::@3/(byte*) current_piece#97 play_move_rotate::@3/(byte*) current_piece#98 play_spawn_current/(byte*) current_piece#99 ) + [201] (byte*) play_collision::piece_gfx#0 ← (byte*) current_piece#17 + (byte) play_collision::orientation#5 to:play_collision::@1 play_collision::@1: scope:[play_collision] from play_collision play_collision::@9 - [204] (byte) play_collision::l#6 ← phi( play_collision/(byte) 0 play_collision::@9/(byte) play_collision::l#1 ) - [204] (byte) play_collision::i#3 ← phi( play_collision/(byte) 0 play_collision::@9/(byte) play_collision::i#10 ) - [204] (byte) play_collision::yp#2 ← phi( play_collision/(byte) play_collision::yp#0 play_collision::@9/(byte) play_collision::yp#1 ) - [205] (byte~) play_collision::$14 ← (byte) play_collision::yp#2 << (byte) 1 - [206] (byte*) play_collision::playfield_line#0 ← *((const byte**) playfield_lines + (byte~) play_collision::$14) - [207] (byte) play_collision::xp#8 ← (byte) play_collision::xpos#6 + [202] (byte) play_collision::l#6 ← phi( play_collision/(byte) 0 play_collision::@9/(byte) play_collision::l#1 ) + [202] (byte) play_collision::i#3 ← phi( play_collision/(byte) 0 play_collision::@9/(byte) play_collision::i#10 ) + [202] (byte) play_collision::yp#2 ← phi( play_collision/(byte) play_collision::yp#0 play_collision::@9/(byte) play_collision::yp#1 ) + [203] (byte~) play_collision::$14 ← (byte) play_collision::yp#2 << (byte) 1 + [204] (byte*) play_collision::playfield_line#0 ← *((const byte**) playfield_lines + (byte~) play_collision::$14) + [205] (byte) play_collision::xp#8 ← (byte) play_collision::xpos#6 to:play_collision::@2 play_collision::@2: scope:[play_collision] from play_collision::@1 play_collision::@10 - [208] (byte) play_collision::c#2 ← phi( play_collision::@1/(byte) 0 play_collision::@10/(byte) play_collision::c#1 ) - [208] (byte) play_collision::xp#2 ← phi( play_collision::@1/(byte) play_collision::xp#8 play_collision::@10/(byte) play_collision::xp#1 ) - [208] (byte) play_collision::i#2 ← phi( play_collision::@1/(byte) play_collision::i#3 play_collision::@10/(byte) play_collision::i#12 ) - [209] (byte) play_collision::i#1 ← ++ (byte) play_collision::i#2 - [210] if(*((byte*) play_collision::piece_gfx#0 + (byte) play_collision::i#2)==(byte) 0) goto play_collision::@3 + [206] (byte) play_collision::c#2 ← phi( play_collision::@1/(byte) 0 play_collision::@10/(byte) play_collision::c#1 ) + [206] (byte) play_collision::xp#2 ← phi( play_collision::@1/(byte) play_collision::xp#8 play_collision::@10/(byte) play_collision::xp#1 ) + [206] (byte) play_collision::i#2 ← phi( play_collision::@1/(byte) play_collision::i#3 play_collision::@10/(byte) play_collision::i#12 ) + [207] (byte) play_collision::i#1 ← ++ (byte) play_collision::i#2 + [208] if(*((byte*) play_collision::piece_gfx#0 + (byte) play_collision::i#2)==(byte) 0) goto play_collision::@3 to:play_collision::@7 play_collision::@7: scope:[play_collision] from play_collision::@2 - [211] if((byte) play_collision::yp#2<(const byte) PLAYFIELD_LINES) goto play_collision::@4 + [209] if((byte) play_collision::yp#2<(const byte) PLAYFIELD_LINES) goto play_collision::@4 to:play_collision::@return play_collision::@4: scope:[play_collision] from play_collision::@7 - [212] (byte~) play_collision::$5 ← (byte) play_collision::xp#2 & (byte) $80 - [213] if((byte~) play_collision::$5==(byte) 0) goto play_collision::@5 + [210] (byte~) play_collision::$5 ← (byte) play_collision::xp#2 & (byte) $80 + [211] if((byte~) play_collision::$5==(byte) 0) goto play_collision::@5 to:play_collision::@return play_collision::@5: scope:[play_collision] from play_collision::@4 - [214] if((byte) play_collision::xp#2<(const byte) PLAYFIELD_COLS) goto play_collision::@6 + [212] if((byte) play_collision::xp#2<(const byte) PLAYFIELD_COLS) goto play_collision::@6 to:play_collision::@return play_collision::@6: scope:[play_collision] from play_collision::@5 - [215] if(*((byte*) play_collision::playfield_line#0 + (byte) play_collision::xp#2)==(byte) 0) goto play_collision::@3 + [213] if(*((byte*) play_collision::playfield_line#0 + (byte) play_collision::xp#2)==(byte) 0) goto play_collision::@3 to:play_collision::@return play_collision::@return: scope:[play_collision] from play_collision::@4 play_collision::@5 play_collision::@6 play_collision::@7 play_collision::@8 - [216] (byte) play_collision::return#15 ← phi( play_collision::@5/(const byte) COLLISION_RIGHT play_collision::@6/(const byte) COLLISION_PLAYFIELD play_collision::@7/(const byte) COLLISION_BOTTOM play_collision::@8/(const byte) COLLISION_NONE play_collision::@4/(const byte) COLLISION_LEFT ) - [217] return + [214] (byte) play_collision::return#15 ← phi( play_collision::@5/(const byte) COLLISION_RIGHT play_collision::@6/(const byte) COLLISION_PLAYFIELD play_collision::@7/(const byte) COLLISION_BOTTOM play_collision::@8/(const byte) COLLISION_NONE play_collision::@4/(const byte) COLLISION_LEFT ) + [215] return to:@return play_collision::@3: scope:[play_collision] from play_collision::@2 play_collision::@6 - [218] (byte) play_collision::xp#1 ← ++ (byte) play_collision::xp#2 - [219] (byte) play_collision::c#1 ← ++ (byte) play_collision::c#2 - [220] if((byte) play_collision::c#1!=(byte) 4) goto play_collision::@10 + [216] (byte) play_collision::xp#1 ← ++ (byte) play_collision::xp#2 + [217] (byte) play_collision::c#1 ← ++ (byte) play_collision::c#2 + [218] if((byte) play_collision::c#1!=(byte) 4) goto play_collision::@10 to:play_collision::@8 play_collision::@8: scope:[play_collision] from play_collision::@3 - [221] (byte) play_collision::yp#1 ← ++ (byte) play_collision::yp#2 - [222] (byte) play_collision::l#1 ← ++ (byte) play_collision::l#6 - [223] if((byte) play_collision::l#1!=(byte) 4) goto play_collision::@9 + [219] (byte) play_collision::yp#1 ← ++ (byte) play_collision::yp#2 + [220] (byte) play_collision::l#1 ← ++ (byte) play_collision::l#6 + [221] if((byte) play_collision::l#1!=(byte) 4) goto play_collision::@9 to:play_collision::@return play_collision::@9: scope:[play_collision] from play_collision::@8 - [224] (byte) play_collision::i#10 ← (byte) play_collision::i#1 + [222] (byte) play_collision::i#10 ← (byte) play_collision::i#1 to:play_collision::@1 play_collision::@10: scope:[play_collision] from play_collision::@3 - [225] (byte) play_collision::i#12 ← (byte) play_collision::i#1 + [223] (byte) play_collision::i#12 ← (byte) play_collision::i#1 to:play_collision::@2 (byte()) play_move_leftright((byte) play_move_leftright::key_event) play_move_leftright: scope:[play_move_leftright] from play_movement::@1 - [226] if((byte) play_move_leftright::key_event#0==(const byte) KEY_COMMA) goto play_move_leftright::@1 + [224] if((byte) play_move_leftright::key_event#0==(const byte) KEY_COMMA) goto play_move_leftright::@1 to:play_move_leftright::@2 play_move_leftright::@2: scope:[play_move_leftright] from play_move_leftright - [227] if((byte) play_move_leftright::key_event#0!=(const byte) KEY_DOT) goto play_move_leftright::@return + [225] if((byte) play_move_leftright::key_event#0!=(const byte) KEY_DOT) goto play_move_leftright::@return to:play_move_leftright::@3 play_move_leftright::@3: scope:[play_move_leftright] from play_move_leftright::@2 - [228] (byte) play_collision::xpos#2 ← (byte) current_xpos#22 + (byte) 1 - [229] (byte) play_collision::ypos#2 ← (byte) current_ypos#19 - [230] (byte) play_collision::orientation#2 ← (byte) current_orientation#20 - [231] (byte*) current_piece#97 ← (byte*) current_piece#15 - [232] call play_collision - [233] (byte) play_collision::return#13 ← (byte) play_collision::return#15 + [226] (byte) play_collision::xpos#2 ← (byte) current_xpos#22 + (byte) 1 + [227] (byte) play_collision::ypos#2 ← (byte) current_ypos#19 + [228] (byte) play_collision::orientation#2 ← (byte) current_orientation#20 + [229] (byte*) current_piece#97 ← (byte*) current_piece#15 + [230] call play_collision + [231] (byte) play_collision::return#13 ← (byte) play_collision::return#15 to:play_move_leftright::@7 play_move_leftright::@7: scope:[play_move_leftright] from play_move_leftright::@3 - [234] (byte~) play_move_leftright::$4 ← (byte) play_collision::return#13 - [235] if((byte~) play_move_leftright::$4!=(const byte) COLLISION_NONE) goto play_move_leftright::@return + [232] (byte~) play_move_leftright::$4 ← (byte) play_collision::return#13 + [233] if((byte~) play_move_leftright::$4!=(const byte) COLLISION_NONE) goto play_move_leftright::@return to:play_move_leftright::@4 play_move_leftright::@4: scope:[play_move_leftright] from play_move_leftright::@7 - [236] (byte) current_xpos#6 ← ++ (byte) current_xpos#22 + [234] (byte) current_xpos#6 ← ++ (byte) current_xpos#22 to:play_move_leftright::@return play_move_leftright::@return: scope:[play_move_leftright] from play_move_leftright::@2 play_move_leftright::@4 play_move_leftright::@5 play_move_leftright::@6 play_move_leftright::@7 - [237] (byte) current_xpos#26 ← phi( play_move_leftright::@6/(byte) current_xpos#22 play_move_leftright::@4/(byte) current_xpos#6 play_move_leftright::@5/(byte) current_xpos#8 play_move_leftright::@7/(byte) current_xpos#22 play_move_leftright::@2/(byte) current_xpos#22 ) - [237] (byte) play_move_leftright::return#2 ← phi( play_move_leftright::@6/(byte) 0 play_move_leftright::@4/(byte) 1 play_move_leftright::@5/(byte) 1 play_move_leftright::@7/(byte) 0 play_move_leftright::@2/(byte) 0 ) - [238] return + [235] (byte) current_xpos#26 ← phi( play_move_leftright::@6/(byte) current_xpos#22 play_move_leftright::@4/(byte) current_xpos#6 play_move_leftright::@5/(byte) current_xpos#8 play_move_leftright::@7/(byte) current_xpos#22 play_move_leftright::@2/(byte) current_xpos#22 ) + [235] (byte) play_move_leftright::return#2 ← phi( play_move_leftright::@6/(byte) 0 play_move_leftright::@4/(byte) 1 play_move_leftright::@5/(byte) 1 play_move_leftright::@7/(byte) 0 play_move_leftright::@2/(byte) 0 ) + [236] return to:@return play_move_leftright::@1: scope:[play_move_leftright] from play_move_leftright - [239] (byte) play_collision::xpos#1 ← (byte) current_xpos#22 - (byte) 1 - [240] (byte) play_collision::ypos#1 ← (byte) current_ypos#19 - [241] (byte) play_collision::orientation#1 ← (byte) current_orientation#20 - [242] (byte*) current_piece#96 ← (byte*) current_piece#15 - [243] call play_collision - [244] (byte) play_collision::return#1 ← (byte) play_collision::return#15 + [237] (byte) play_collision::xpos#1 ← (byte) current_xpos#22 - (byte) 1 + [238] (byte) play_collision::ypos#1 ← (byte) current_ypos#19 + [239] (byte) play_collision::orientation#1 ← (byte) current_orientation#20 + [240] (byte*) current_piece#96 ← (byte*) current_piece#15 + [241] call play_collision + [242] (byte) play_collision::return#1 ← (byte) play_collision::return#15 to:play_move_leftright::@6 play_move_leftright::@6: scope:[play_move_leftright] from play_move_leftright::@1 - [245] (byte~) play_move_leftright::$8 ← (byte) play_collision::return#1 - [246] if((byte~) play_move_leftright::$8!=(const byte) COLLISION_NONE) goto play_move_leftright::@return + [243] (byte~) play_move_leftright::$8 ← (byte) play_collision::return#1 + [244] if((byte~) play_move_leftright::$8!=(const byte) COLLISION_NONE) goto play_move_leftright::@return to:play_move_leftright::@5 play_move_leftright::@5: scope:[play_move_leftright] from play_move_leftright::@6 - [247] (byte) current_xpos#8 ← -- (byte) current_xpos#22 + [245] (byte) current_xpos#8 ← -- (byte) current_xpos#22 to:play_move_leftright::@return (byte()) play_move_down((byte) play_move_down::key_event) play_move_down: scope:[play_move_down] from play_movement - [248] (byte) current_movedown_counter#12 ← ++ (byte) current_movedown_counter#16 - [249] if((byte) play_move_down::key_event#0!=(const byte) KEY_SPACE) goto play_move_down::@1 + [246] (byte) current_movedown_counter#12 ← ++ (byte) current_movedown_counter#16 + [247] if((byte) play_move_down::key_event#0!=(const byte) KEY_SPACE) goto play_move_down::@1 to:play_move_down::@4 play_move_down::@4: scope:[play_move_down] from play_move_down - [250] phi() + [248] phi() to:play_move_down::@1 play_move_down::@1: scope:[play_move_down] from play_move_down play_move_down::@4 - [251] (byte) play_move_down::movedown#10 ← phi( play_move_down/(byte) 0 play_move_down::@4/(byte) 1 ) - [252] call keyboard_event_pressed - [253] (byte) keyboard_event_pressed::return#12 ← (byte) keyboard_event_pressed::return#11 + [249] (byte) play_move_down::movedown#10 ← phi( play_move_down/(byte) 0 play_move_down::@4/(byte) 1 ) + [250] call keyboard_event_pressed + [251] (byte) keyboard_event_pressed::return#12 ← (byte) keyboard_event_pressed::return#11 to:play_move_down::@12 play_move_down::@12: scope:[play_move_down] from play_move_down::@1 - [254] (byte~) play_move_down::$2 ← (byte) keyboard_event_pressed::return#12 - [255] if((byte~) play_move_down::$2==(byte) 0) goto play_move_down::@2 + [252] (byte~) play_move_down::$2 ← (byte) keyboard_event_pressed::return#12 + [253] if((byte~) play_move_down::$2==(byte) 0) goto play_move_down::@2 to:play_move_down::@5 play_move_down::@5: scope:[play_move_down] from play_move_down::@12 - [256] if((byte) current_movedown_counter#12<(const byte) current_movedown_fast) goto play_move_down::@2 + [254] if((byte) current_movedown_counter#12<(const byte) current_movedown_fast) goto play_move_down::@2 to:play_move_down::@6 play_move_down::@6: scope:[play_move_down] from play_move_down::@5 - [257] (byte) play_move_down::movedown#2 ← ++ (byte) play_move_down::movedown#10 + [255] (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::@12 play_move_down::@5 play_move_down::@6 - [258] (byte) play_move_down::movedown#7 ← phi( play_move_down::@12/(byte) play_move_down::movedown#10 play_move_down::@5/(byte) play_move_down::movedown#10 play_move_down::@6/(byte) play_move_down::movedown#2 ) - [259] if((byte) current_movedown_counter#12<(byte) current_movedown_slow#14) goto play_move_down::@3 + [256] (byte) play_move_down::movedown#7 ← phi( play_move_down::@12/(byte) play_move_down::movedown#10 play_move_down::@5/(byte) play_move_down::movedown#10 play_move_down::@6/(byte) play_move_down::movedown#2 ) + [257] if((byte) current_movedown_counter#12<(byte) current_movedown_slow#14) goto play_move_down::@3 to:play_move_down::@7 play_move_down::@7: scope:[play_move_down] from play_move_down::@2 - [260] (byte) play_move_down::movedown#3 ← ++ (byte) play_move_down::movedown#7 + [258] (byte) play_move_down::movedown#3 ← ++ (byte) play_move_down::movedown#7 to:play_move_down::@3 play_move_down::@3: scope:[play_move_down] from play_move_down::@2 play_move_down::@7 - [261] (byte) play_move_down::movedown#6 ← phi( play_move_down::@2/(byte) play_move_down::movedown#7 play_move_down::@7/(byte) play_move_down::movedown#3 ) - [262] if((byte) play_move_down::movedown#6==(byte) 0) goto play_move_down::@return + [259] (byte) play_move_down::movedown#6 ← phi( play_move_down::@2/(byte) play_move_down::movedown#7 play_move_down::@7/(byte) play_move_down::movedown#3 ) + [260] if((byte) play_move_down::movedown#6==(byte) 0) goto play_move_down::@return to:play_move_down::@8 play_move_down::@8: scope:[play_move_down] from play_move_down::@3 - [263] (byte) play_collision::ypos#0 ← (byte) current_ypos#11 + (byte) 1 - [264] (byte) play_collision::xpos#0 ← (byte) current_xpos#14 - [265] (byte) play_collision::orientation#0 ← (byte) current_orientation#13 - [266] (byte*) current_piece#95 ← (byte*) current_piece#10 - [267] call play_collision - [268] (byte) play_collision::return#0 ← (byte) play_collision::return#15 + [261] (byte) play_collision::ypos#0 ← (byte) current_ypos#11 + (byte) 1 + [262] (byte) play_collision::xpos#0 ← (byte) current_xpos#14 + [263] (byte) play_collision::orientation#0 ← (byte) current_orientation#13 + [264] (byte*) current_piece#95 ← (byte*) current_piece#10 + [265] call play_collision + [266] (byte) play_collision::return#0 ← (byte) play_collision::return#15 to:play_move_down::@13 play_move_down::@13: scope:[play_move_down] from play_move_down::@8 - [269] (byte~) play_move_down::$12 ← (byte) play_collision::return#0 - [270] if((byte~) play_move_down::$12==(const byte) COLLISION_NONE) goto play_move_down::@10 + [267] (byte~) play_move_down::$12 ← (byte) play_collision::return#0 + [268] if((byte~) play_move_down::$12==(const byte) COLLISION_NONE) goto play_move_down::@10 to:play_move_down::@9 play_move_down::@9: scope:[play_move_down] from play_move_down::@13 - [271] phi() - [272] call play_lock_current + [269] phi() + [270] call play_lock_current to:play_move_down::@14 play_move_down::@14: scope:[play_move_down] from play_move_down::@9 - [273] phi() - [274] call play_remove_lines - [275] (byte) play_remove_lines::return#0 ← (byte) play_remove_lines::removed#8 + [271] phi() + [272] call play_remove_lines + [273] (byte) play_remove_lines::return#0 ← (byte) play_remove_lines::removed#8 to:play_move_down::@15 play_move_down::@15: scope:[play_move_down] from play_move_down::@14 - [276] (byte) play_move_down::removed#0 ← (byte) play_remove_lines::return#0 - [277] (byte) play_update_score::removed#0 ← (byte) play_move_down::removed#0 - [278] call play_update_score + [274] (byte) play_move_down::removed#0 ← (byte) play_remove_lines::return#0 + [275] (byte) play_update_score::removed#0 ← (byte) play_move_down::removed#0 + [276] call play_update_score to:play_move_down::@16 play_move_down::@16: scope:[play_move_down] from play_move_down::@15 - [279] phi() - [280] call play_spawn_current + [277] phi() + [278] call play_spawn_current to:play_move_down::@17 play_move_down::@17: scope:[play_move_down] from play_move_down::@16 - [281] (byte*) current_piece#92 ← (byte*)*((const word*) PIECES + (byte~) play_spawn_current::$7) - [282] (byte*) current_piece_gfx#116 ← (byte*)*((const word*) PIECES + (byte~) play_spawn_current::$7) + [279] (byte*) current_piece#92 ← (byte*)*((const word*) PIECES + (byte~) play_spawn_current::$7) + [280] (byte*) current_piece_gfx#116 ← (byte*)*((const word*) PIECES + (byte~) play_spawn_current::$7) to:play_move_down::@11 play_move_down::@11: scope:[play_move_down] from play_move_down::@10 play_move_down::@17 - [283] (byte) next_piece_idx#30 ← phi( play_move_down::@10/(byte) next_piece_idx#10 play_move_down::@17/(byte) play_spawn_current::piece_idx#2 ) - [283] (byte) game_over#27 ← phi( play_move_down::@10/(byte) game_over#10 play_move_down::@17/(byte) game_over#52 ) - [283] (byte) current_xpos#43 ← phi( play_move_down::@10/(byte) current_xpos#14 play_move_down::@17/(byte) current_xpos#100 ) - [283] (byte*) current_piece_gfx#35 ← phi( play_move_down::@10/(byte*) current_piece_gfx#13 play_move_down::@17/(byte*) current_piece_gfx#116 ) - [283] (byte) current_orientation#37 ← phi( play_move_down::@10/(byte) current_orientation#13 play_move_down::@17/(byte) 0 ) - [283] (byte) current_piece_char#29 ← phi( play_move_down::@10/(byte) current_piece_char#10 play_move_down::@17/(byte) current_piece_char#5 ) - [283] (byte*) current_piece#28 ← phi( play_move_down::@10/(byte*) current_piece#10 play_move_down::@17/(byte*) current_piece#92 ) - [283] (byte) level_bcd#31 ← phi( play_move_down::@10/(byte) level_bcd#11 play_move_down::@17/(byte) level_bcd#19 ) - [283] (byte) current_movedown_slow#37 ← phi( play_move_down::@10/(byte) current_movedown_slow#14 play_move_down::@17/(byte) current_movedown_slow#23 ) - [283] (byte) level#33 ← phi( play_move_down::@10/(byte) level#10 play_move_down::@17/(byte) level#19 ) - [283] (word) lines_bcd#26 ← phi( play_move_down::@10/(word) lines_bcd#19 play_move_down::@17/(word) lines_bcd#17 ) - [283] (byte) current_ypos#38 ← phi( play_move_down::@10/(byte) current_ypos#3 play_move_down::@17/(byte) current_ypos#6 ) + [281] (byte) next_piece_idx#30 ← phi( play_move_down::@10/(byte) next_piece_idx#10 play_move_down::@17/(byte) play_spawn_current::piece_idx#2 ) + [281] (byte) game_over#27 ← phi( play_move_down::@10/(byte) game_over#10 play_move_down::@17/(byte) game_over#52 ) + [281] (byte) current_xpos#43 ← phi( play_move_down::@10/(byte) current_xpos#14 play_move_down::@17/(byte) current_xpos#100 ) + [281] (byte*) current_piece_gfx#35 ← phi( play_move_down::@10/(byte*) current_piece_gfx#13 play_move_down::@17/(byte*) current_piece_gfx#116 ) + [281] (byte) current_orientation#37 ← phi( play_move_down::@10/(byte) current_orientation#13 play_move_down::@17/(byte) 0 ) + [281] (byte) current_piece_char#29 ← phi( play_move_down::@10/(byte) current_piece_char#10 play_move_down::@17/(byte) current_piece_char#5 ) + [281] (byte*) current_piece#28 ← phi( play_move_down::@10/(byte*) current_piece#10 play_move_down::@17/(byte*) current_piece#92 ) + [281] (byte) level_bcd#31 ← phi( play_move_down::@10/(byte) level_bcd#11 play_move_down::@17/(byte) level_bcd#19 ) + [281] (byte) current_movedown_slow#37 ← phi( play_move_down::@10/(byte) current_movedown_slow#14 play_move_down::@17/(byte) current_movedown_slow#23 ) + [281] (byte) level#33 ← phi( play_move_down::@10/(byte) level#10 play_move_down::@17/(byte) level#19 ) + [281] (word) lines_bcd#26 ← phi( play_move_down::@10/(word) lines_bcd#19 play_move_down::@17/(word) lines_bcd#17 ) + [281] (byte) current_ypos#38 ← phi( play_move_down::@10/(byte) current_ypos#3 play_move_down::@17/(byte) current_ypos#6 ) to:play_move_down::@return play_move_down::@return: scope:[play_move_down] from play_move_down::@11 play_move_down::@3 - [284] (byte) next_piece_idx#16 ← phi( play_move_down::@11/(byte) next_piece_idx#30 play_move_down::@3/(byte) next_piece_idx#10 ) - [284] (byte) game_over#15 ← phi( play_move_down::@11/(byte) game_over#27 play_move_down::@3/(byte) game_over#10 ) - [284] (byte) current_xpos#22 ← phi( play_move_down::@11/(byte) current_xpos#43 play_move_down::@3/(byte) current_xpos#14 ) - [284] (byte*) current_piece_gfx#20 ← phi( play_move_down::@11/(byte*) current_piece_gfx#35 play_move_down::@3/(byte*) current_piece_gfx#13 ) - [284] (byte) current_orientation#20 ← phi( play_move_down::@11/(byte) current_orientation#37 play_move_down::@3/(byte) current_orientation#13 ) - [284] (byte) current_piece_char#16 ← phi( play_move_down::@11/(byte) current_piece_char#29 play_move_down::@3/(byte) current_piece_char#10 ) - [284] (byte*) current_piece#15 ← phi( play_move_down::@11/(byte*) current_piece#28 play_move_down::@3/(byte*) current_piece#10 ) - [284] (byte) level_bcd#17 ← phi( play_move_down::@11/(byte) level_bcd#31 play_move_down::@3/(byte) level_bcd#11 ) - [284] (byte) current_movedown_slow#21 ← phi( play_move_down::@11/(byte) current_movedown_slow#37 play_move_down::@3/(byte) current_movedown_slow#14 ) - [284] (byte) level#17 ← phi( play_move_down::@11/(byte) level#33 play_move_down::@3/(byte) level#10 ) - [284] (word) lines_bcd#15 ← phi( play_move_down::@11/(word) lines_bcd#26 play_move_down::@3/(word) lines_bcd#19 ) - [284] (byte) current_ypos#19 ← phi( play_move_down::@11/(byte) current_ypos#38 play_move_down::@3/(byte) current_ypos#11 ) - [284] (byte) current_movedown_counter#14 ← phi( play_move_down::@11/(byte) 0 play_move_down::@3/(byte) current_movedown_counter#12 ) - [284] (byte) play_move_down::return#3 ← phi( play_move_down::@11/(byte) 1 play_move_down::@3/(byte) 0 ) - [285] return + [282] (byte) next_piece_idx#16 ← phi( play_move_down::@11/(byte) next_piece_idx#30 play_move_down::@3/(byte) next_piece_idx#10 ) + [282] (byte) game_over#15 ← phi( play_move_down::@11/(byte) game_over#27 play_move_down::@3/(byte) game_over#10 ) + [282] (byte) current_xpos#22 ← phi( play_move_down::@11/(byte) current_xpos#43 play_move_down::@3/(byte) current_xpos#14 ) + [282] (byte*) current_piece_gfx#20 ← phi( play_move_down::@11/(byte*) current_piece_gfx#35 play_move_down::@3/(byte*) current_piece_gfx#13 ) + [282] (byte) current_orientation#20 ← phi( play_move_down::@11/(byte) current_orientation#37 play_move_down::@3/(byte) current_orientation#13 ) + [282] (byte) current_piece_char#16 ← phi( play_move_down::@11/(byte) current_piece_char#29 play_move_down::@3/(byte) current_piece_char#10 ) + [282] (byte*) current_piece#15 ← phi( play_move_down::@11/(byte*) current_piece#28 play_move_down::@3/(byte*) current_piece#10 ) + [282] (byte) level_bcd#17 ← phi( play_move_down::@11/(byte) level_bcd#31 play_move_down::@3/(byte) level_bcd#11 ) + [282] (byte) current_movedown_slow#21 ← phi( play_move_down::@11/(byte) current_movedown_slow#37 play_move_down::@3/(byte) current_movedown_slow#14 ) + [282] (byte) level#17 ← phi( play_move_down::@11/(byte) level#33 play_move_down::@3/(byte) level#10 ) + [282] (word) lines_bcd#15 ← phi( play_move_down::@11/(word) lines_bcd#26 play_move_down::@3/(word) lines_bcd#19 ) + [282] (byte) current_ypos#19 ← phi( play_move_down::@11/(byte) current_ypos#38 play_move_down::@3/(byte) current_ypos#11 ) + [282] (byte) current_movedown_counter#14 ← phi( play_move_down::@11/(byte) 0 play_move_down::@3/(byte) current_movedown_counter#12 ) + [282] (byte) play_move_down::return#3 ← phi( play_move_down::@11/(byte) 1 play_move_down::@3/(byte) 0 ) + [283] return to:@return play_move_down::@10: scope:[play_move_down] from play_move_down::@13 - [286] (byte) current_ypos#3 ← ++ (byte) current_ypos#11 + [284] (byte) current_ypos#3 ← ++ (byte) current_ypos#11 to:play_move_down::@11 (void()) play_spawn_current() play_spawn_current: scope:[play_spawn_current] from main::@12 main::@13 play_move_down::@16 - [287] (byte) game_over#65 ← phi( main::@12/(byte) 0 main::@13/(byte) game_over#52 play_move_down::@16/(byte) game_over#10 ) - [287] (byte) next_piece_idx#17 ← phi( main::@12/(byte) 0 main::@13/(byte) play_spawn_current::piece_idx#2 play_move_down::@16/(byte) next_piece_idx#10 ) - [288] (byte) play_spawn_current::current_piece_idx#0 ← (byte) next_piece_idx#17 - [289] (byte~) play_spawn_current::$7 ← (byte) play_spawn_current::current_piece_idx#0 << (byte) 1 - [290] (byte) current_piece_char#5 ← *((const byte*) PIECES_CHARS + (byte) play_spawn_current::current_piece_idx#0) - [291] (byte) current_xpos#100 ← *((const byte*) PIECES_START_X + (byte) play_spawn_current::current_piece_idx#0) - [292] (byte) current_ypos#6 ← *((const byte*) PIECES_START_Y + (byte) play_spawn_current::current_piece_idx#0) - [293] (byte) play_collision::xpos#4 ← (byte) current_xpos#100 - [294] (byte) play_collision::ypos#4 ← (byte) current_ypos#6 - [295] (byte*) current_piece#99 ← (byte*)*((const word*) PIECES + (byte~) play_spawn_current::$7) - [296] call play_collision - [297] (byte) play_collision::return#10 ← (byte) play_collision::return#15 + [285] (byte) game_over#65 ← phi( main::@12/(byte) 0 main::@13/(byte) game_over#52 play_move_down::@16/(byte) game_over#10 ) + [285] (byte) next_piece_idx#17 ← phi( main::@12/(byte) 0 main::@13/(byte) play_spawn_current::piece_idx#2 play_move_down::@16/(byte) next_piece_idx#10 ) + [286] (byte) play_spawn_current::current_piece_idx#0 ← (byte) next_piece_idx#17 + [287] (byte~) play_spawn_current::$7 ← (byte) play_spawn_current::current_piece_idx#0 << (byte) 1 + [288] (byte) current_piece_char#5 ← *((const byte*) PIECES_CHARS + (byte) play_spawn_current::current_piece_idx#0) + [289] (byte) current_xpos#100 ← *((const byte*) PIECES_START_X + (byte) play_spawn_current::current_piece_idx#0) + [290] (byte) current_ypos#6 ← *((const byte*) PIECES_START_Y + (byte) play_spawn_current::current_piece_idx#0) + [291] (byte) play_collision::xpos#4 ← (byte) current_xpos#100 + [292] (byte) play_collision::ypos#4 ← (byte) current_ypos#6 + [293] (byte*) current_piece#99 ← (byte*)*((const word*) PIECES + (byte~) play_spawn_current::$7) + [294] call play_collision + [295] (byte) play_collision::return#10 ← (byte) play_collision::return#15 to:play_spawn_current::@4 play_spawn_current::@4: scope:[play_spawn_current] from play_spawn_current - [298] (byte~) play_spawn_current::$1 ← (byte) play_collision::return#10 - [299] if((byte~) play_spawn_current::$1!=(const byte) COLLISION_PLAYFIELD) goto play_spawn_current::@5 + [296] (byte~) play_spawn_current::$1 ← (byte) play_collision::return#10 + [297] if((byte~) play_spawn_current::$1!=(const byte) COLLISION_PLAYFIELD) goto play_spawn_current::@5 to:play_spawn_current::@1 play_spawn_current::@5: scope:[play_spawn_current] from play_spawn_current::@4 - [300] phi() + [298] phi() to:play_spawn_current::@1 play_spawn_current::@1: scope:[play_spawn_current] from play_spawn_current::@4 play_spawn_current::@5 - [301] (byte) game_over#52 ← phi( play_spawn_current::@5/(byte) game_over#65 play_spawn_current::@4/(byte) 1 ) + [299] (byte) game_over#52 ← phi( play_spawn_current::@5/(byte) game_over#65 play_spawn_current::@4/(byte) 1 ) to:play_spawn_current::@2 play_spawn_current::@2: scope:[play_spawn_current] from play_spawn_current::@1 play_spawn_current::@3 - [302] (byte) play_spawn_current::piece_idx#2 ← phi( play_spawn_current::@1/(byte) 7 play_spawn_current::@3/(byte) play_spawn_current::piece_idx#1 ) - [303] if((byte) play_spawn_current::piece_idx#2==(byte) 7) goto play_spawn_current::sid_rnd1 + [300] (byte) play_spawn_current::piece_idx#2 ← phi( play_spawn_current::@1/(byte) 7 play_spawn_current::@3/(byte) play_spawn_current::piece_idx#1 ) + [301] if((byte) play_spawn_current::piece_idx#2==(byte) 7) goto play_spawn_current::sid_rnd1 to:play_spawn_current::@return play_spawn_current::@return: scope:[play_spawn_current] from play_spawn_current::@2 - [304] return + [302] return to:@return play_spawn_current::sid_rnd1: scope:[play_spawn_current] from play_spawn_current::@2 - [305] (byte) play_spawn_current::sid_rnd1_return#0 ← *((const byte*) SID_VOICE3_OSC) + [303] (byte) play_spawn_current::sid_rnd1_return#0 ← *((const byte*) SID_VOICE3_OSC) to:play_spawn_current::@3 play_spawn_current::@3: scope:[play_spawn_current] from play_spawn_current::sid_rnd1 - [306] (byte) play_spawn_current::piece_idx#1 ← (byte) play_spawn_current::sid_rnd1_return#0 & (byte) 7 + [304] (byte) play_spawn_current::piece_idx#1 ← (byte) play_spawn_current::sid_rnd1_return#0 & (byte) 7 to:play_spawn_current::@2 (void()) play_update_score((byte) play_update_score::removed) play_update_score: scope:[play_update_score] from play_move_down::@15 - [307] if((byte) play_update_score::removed#0==(byte) 0) goto play_update_score::@return + [305] if((byte) play_update_score::removed#0==(byte) 0) goto play_update_score::@return to:play_update_score::@1 play_update_score::@1: scope:[play_update_score] from play_update_score - [308] (byte~) play_update_score::$2 ← < (word) lines_bcd#19 - [309] (byte) play_update_score::lines_before#0 ← (byte~) play_update_score::$2 & (byte) $f0 - [310] (byte~) play_update_score::$9 ← (byte) play_update_score::removed#0 << (byte) 2 - [311] (dword) play_update_score::add_bcd#0 ← *((const dword*) score_add_bcd + (byte~) play_update_score::$9) + [306] (byte~) play_update_score::$2 ← < (word) lines_bcd#19 + [307] (byte) play_update_score::lines_before#0 ← (byte~) play_update_score::$2 & (byte) $f0 + [308] (byte~) play_update_score::$9 ← (byte) play_update_score::removed#0 << (byte) 2 + [309] (dword) play_update_score::add_bcd#0 ← *((const dword*) score_add_bcd + (byte~) play_update_score::$9) asm { sed } - [313] (word) lines_bcd#29 ← (word) lines_bcd#19 + (byte) play_update_score::removed#0 - [314] (dword) score_bcd ← (dword) score_bcd + (dword) play_update_score::add_bcd#0 + [311] (word) lines_bcd#29 ← (word) lines_bcd#19 + (byte) play_update_score::removed#0 + [312] (dword) score_bcd ← (dword) score_bcd + (dword) play_update_score::add_bcd#0 asm { cld } - [316] (byte~) play_update_score::$4 ← < (word) lines_bcd#29 - [317] (byte) play_update_score::lines_after#0 ← (byte~) play_update_score::$4 & (byte) $f0 - [318] if((byte) play_update_score::lines_before#0==(byte) play_update_score::lines_after#0) goto play_update_score::@return + [314] (byte~) play_update_score::$4 ← < (word) lines_bcd#29 + [315] (byte) play_update_score::lines_after#0 ← (byte~) play_update_score::$4 & (byte) $f0 + [316] if((byte) play_update_score::lines_before#0==(byte) play_update_score::lines_after#0) goto play_update_score::@return to:play_update_score::@2 play_update_score::@2: scope:[play_update_score] from play_update_score::@1 - [319] phi() - [320] call play_increase_level + [317] phi() + [318] call play_increase_level to:play_update_score::@return play_update_score::@return: scope:[play_update_score] from play_update_score play_update_score::@1 play_update_score::@2 - [321] (byte) level_bcd#19 ← phi( play_update_score/(byte) level_bcd#11 play_update_score::@1/(byte) level_bcd#11 play_update_score::@2/(byte) level_bcd#62 ) - [321] (byte) current_movedown_slow#23 ← phi( play_update_score/(byte) current_movedown_slow#14 play_update_score::@1/(byte) current_movedown_slow#14 play_update_score::@2/(byte) current_movedown_slow#65 ) - [321] (byte) level#19 ← phi( play_update_score/(byte) level#10 play_update_score::@1/(byte) level#10 play_update_score::@2/(byte) level#21 ) - [321] (word) lines_bcd#17 ← phi( play_update_score/(word) lines_bcd#19 play_update_score::@1/(word) lines_bcd#29 play_update_score::@2/(word) lines_bcd#29 ) - [322] return + [319] (byte) level_bcd#19 ← phi( play_update_score/(byte) level_bcd#11 play_update_score::@1/(byte) level_bcd#11 play_update_score::@2/(byte) level_bcd#62 ) + [319] (byte) current_movedown_slow#23 ← phi( play_update_score/(byte) current_movedown_slow#14 play_update_score::@1/(byte) current_movedown_slow#14 play_update_score::@2/(byte) current_movedown_slow#65 ) + [319] (byte) level#19 ← phi( play_update_score/(byte) level#10 play_update_score::@1/(byte) level#10 play_update_score::@2/(byte) level#21 ) + [319] (word) lines_bcd#17 ← phi( play_update_score/(word) lines_bcd#19 play_update_score::@1/(word) lines_bcd#29 play_update_score::@2/(word) lines_bcd#29 ) + [320] return to:@return (void()) play_increase_level() play_increase_level: scope:[play_increase_level] from play_update_score::@2 - [323] (byte) level#21 ← ++ (byte) level#10 - [324] if((byte) level#21>=(byte) $1d+(byte) 1) goto play_increase_level::@1 + [321] (byte) level#21 ← ++ (byte) level#10 + [322] if((byte) level#21>=(byte) $1d+(byte) 1) goto play_increase_level::@1 to:play_increase_level::@3 play_increase_level::@3: scope:[play_increase_level] from play_increase_level - [325] (byte) current_movedown_slow#10 ← *((const byte*) MOVEDOWN_SLOW_SPEEDS + (byte) level#21) + [323] (byte) current_movedown_slow#10 ← *((const byte*) MOVEDOWN_SLOW_SPEEDS + (byte) level#21) to:play_increase_level::@1 play_increase_level::@1: scope:[play_increase_level] from play_increase_level play_increase_level::@3 - [326] (byte) current_movedown_slow#65 ← phi( play_increase_level/(byte) 1 play_increase_level::@3/(byte) current_movedown_slow#10 ) - [327] (byte) level_bcd#21 ← ++ (byte) level_bcd#11 - [328] (byte~) play_increase_level::$1 ← (byte) level_bcd#21 & (byte) $f - [329] if((byte~) play_increase_level::$1!=(byte) $a) goto play_increase_level::@2 + [324] (byte) current_movedown_slow#65 ← phi( play_increase_level/(byte) 1 play_increase_level::@3/(byte) current_movedown_slow#10 ) + [325] (byte) level_bcd#21 ← ++ (byte) level_bcd#11 + [326] (byte~) play_increase_level::$1 ← (byte) level_bcd#21 & (byte) $f + [327] if((byte~) play_increase_level::$1!=(byte) $a) goto play_increase_level::@2 to:play_increase_level::@4 play_increase_level::@4: scope:[play_increase_level] from play_increase_level::@1 - [330] (byte) level_bcd#8 ← (byte) level_bcd#21 + (byte) 6 + [328] (byte) level_bcd#8 ← (byte) level_bcd#21 + (byte) 6 to:play_increase_level::@2 play_increase_level::@2: scope:[play_increase_level] from play_increase_level::@1 play_increase_level::@4 - [331] (byte) level_bcd#62 ← phi( play_increase_level::@1/(byte) level_bcd#21 play_increase_level::@4/(byte) level_bcd#8 ) + [329] (byte) level_bcd#62 ← phi( play_increase_level::@1/(byte) level_bcd#21 play_increase_level::@4/(byte) level_bcd#8 ) asm { sed } to:play_increase_level::@5 play_increase_level::@5: scope:[play_increase_level] from play_increase_level::@2 play_increase_level::@5 - [333] (byte) play_increase_level::b#2 ← phi( play_increase_level::@2/(byte) 0 play_increase_level::@5/(byte) play_increase_level::b#1 ) - [334] (byte~) play_increase_level::$5 ← (byte) play_increase_level::b#2 << (byte) 2 - [335] *((const dword*) score_add_bcd + (byte~) play_increase_level::$5) ← *((const dword*) score_add_bcd + (byte~) play_increase_level::$5) + *((const dword*) SCORE_BASE_BCD + (byte~) play_increase_level::$5) - [336] (byte) play_increase_level::b#1 ← ++ (byte) play_increase_level::b#2 - [337] if((byte) play_increase_level::b#1!=(byte) 5) goto play_increase_level::@5 + [331] (byte) play_increase_level::b#2 ← phi( play_increase_level::@2/(byte) 0 play_increase_level::@5/(byte) play_increase_level::b#1 ) + [332] (byte~) play_increase_level::$5 ← (byte) play_increase_level::b#2 << (byte) 2 + [333] *((const dword*) score_add_bcd + (byte~) play_increase_level::$5) ← *((const dword*) score_add_bcd + (byte~) play_increase_level::$5) + *((const dword*) SCORE_BASE_BCD + (byte~) play_increase_level::$5) + [334] (byte) play_increase_level::b#1 ← ++ (byte) play_increase_level::b#2 + [335] if((byte) play_increase_level::b#1!=(byte) 5) goto play_increase_level::@5 to:play_increase_level::@6 play_increase_level::@6: scope:[play_increase_level] from play_increase_level::@5 asm { cld } to:play_increase_level::@return play_increase_level::@return: scope:[play_increase_level] from play_increase_level::@6 - [339] return + [337] return to:@return (byte()) play_remove_lines() play_remove_lines: scope:[play_remove_lines] from play_move_down::@14 - [340] phi() + [338] phi() to:play_remove_lines::@1 play_remove_lines::@1: scope:[play_remove_lines] from play_remove_lines play_remove_lines::@6 - [341] (byte) play_remove_lines::removed#11 ← phi( play_remove_lines/(byte) 0 play_remove_lines::@6/(byte) play_remove_lines::removed#8 ) - [341] (byte) play_remove_lines::y#8 ← phi( play_remove_lines/(byte) 0 play_remove_lines::@6/(byte) play_remove_lines::y#1 ) - [341] (byte) play_remove_lines::w#12 ← phi( play_remove_lines/(const byte) PLAYFIELD_LINES*(const byte) PLAYFIELD_COLS-(byte) 1 play_remove_lines::@6/(byte) play_remove_lines::w#11 ) - [341] (byte) play_remove_lines::r#3 ← phi( play_remove_lines/(const byte) PLAYFIELD_LINES*(const byte) PLAYFIELD_COLS-(byte) 1 play_remove_lines::@6/(byte) play_remove_lines::r#1 ) + [339] (byte) play_remove_lines::removed#11 ← phi( play_remove_lines/(byte) 0 play_remove_lines::@6/(byte) play_remove_lines::removed#8 ) + [339] (byte) play_remove_lines::y#8 ← phi( play_remove_lines/(byte) 0 play_remove_lines::@6/(byte) play_remove_lines::y#1 ) + [339] (byte) play_remove_lines::w#12 ← phi( play_remove_lines/(const byte) PLAYFIELD_LINES*(const byte) PLAYFIELD_COLS-(byte) 1 play_remove_lines::@6/(byte) play_remove_lines::w#11 ) + [339] (byte) play_remove_lines::r#3 ← phi( play_remove_lines/(const byte) PLAYFIELD_LINES*(const byte) PLAYFIELD_COLS-(byte) 1 play_remove_lines::@6/(byte) play_remove_lines::r#1 ) to:play_remove_lines::@2 play_remove_lines::@2: scope:[play_remove_lines] from play_remove_lines::@1 play_remove_lines::@3 - [342] (byte) play_remove_lines::full#4 ← phi( play_remove_lines::@1/(byte) 1 play_remove_lines::@3/(byte) play_remove_lines::full#2 ) - [342] (byte) play_remove_lines::x#2 ← phi( play_remove_lines::@1/(byte) 0 play_remove_lines::@3/(byte) play_remove_lines::x#1 ) - [342] (byte) play_remove_lines::w#4 ← phi( play_remove_lines::@1/(byte) play_remove_lines::w#12 play_remove_lines::@3/(byte) play_remove_lines::w#1 ) - [342] (byte) play_remove_lines::r#2 ← phi( play_remove_lines::@1/(byte) play_remove_lines::r#3 play_remove_lines::@3/(byte) play_remove_lines::r#1 ) - [343] (byte) play_remove_lines::c#0 ← *((const byte*) playfield + (byte) play_remove_lines::r#2) - [344] (byte) play_remove_lines::r#1 ← -- (byte) play_remove_lines::r#2 - [345] if((byte) play_remove_lines::c#0!=(byte) 0) goto play_remove_lines::@9 + [340] (byte) play_remove_lines::full#4 ← phi( play_remove_lines::@1/(byte) 1 play_remove_lines::@3/(byte) play_remove_lines::full#2 ) + [340] (byte) play_remove_lines::x#2 ← phi( play_remove_lines::@1/(byte) 0 play_remove_lines::@3/(byte) play_remove_lines::x#1 ) + [340] (byte) play_remove_lines::w#4 ← phi( play_remove_lines::@1/(byte) play_remove_lines::w#12 play_remove_lines::@3/(byte) play_remove_lines::w#1 ) + [340] (byte) play_remove_lines::r#2 ← phi( play_remove_lines::@1/(byte) play_remove_lines::r#3 play_remove_lines::@3/(byte) play_remove_lines::r#1 ) + [341] (byte) play_remove_lines::c#0 ← *((const byte*) playfield + (byte) play_remove_lines::r#2) + [342] (byte) play_remove_lines::r#1 ← -- (byte) play_remove_lines::r#2 + [343] if((byte) play_remove_lines::c#0!=(byte) 0) goto play_remove_lines::@9 to:play_remove_lines::@3 play_remove_lines::@9: scope:[play_remove_lines] from play_remove_lines::@2 - [346] phi() + [344] phi() to:play_remove_lines::@3 play_remove_lines::@3: scope:[play_remove_lines] from play_remove_lines::@2 play_remove_lines::@9 - [347] (byte) play_remove_lines::full#2 ← phi( play_remove_lines::@9/(byte) play_remove_lines::full#4 play_remove_lines::@2/(byte) 0 ) - [348] *((const byte*) playfield + (byte) play_remove_lines::w#4) ← (byte) play_remove_lines::c#0 - [349] (byte) play_remove_lines::w#1 ← -- (byte) play_remove_lines::w#4 - [350] (byte) play_remove_lines::x#1 ← ++ (byte) play_remove_lines::x#2 - [351] if((byte) play_remove_lines::x#1!=(const byte) PLAYFIELD_COLS-(byte) 1+(byte) 1) goto play_remove_lines::@2 + [345] (byte) play_remove_lines::full#2 ← phi( play_remove_lines::@9/(byte) play_remove_lines::full#4 play_remove_lines::@2/(byte) 0 ) + [346] *((const byte*) playfield + (byte) play_remove_lines::w#4) ← (byte) play_remove_lines::c#0 + [347] (byte) play_remove_lines::w#1 ← -- (byte) play_remove_lines::w#4 + [348] (byte) play_remove_lines::x#1 ← ++ (byte) play_remove_lines::x#2 + [349] if((byte) play_remove_lines::x#1!=(const byte) PLAYFIELD_COLS-(byte) 1+(byte) 1) goto play_remove_lines::@2 to:play_remove_lines::@4 play_remove_lines::@4: scope:[play_remove_lines] from play_remove_lines::@3 - [352] if((byte) play_remove_lines::full#2!=(byte) 1) goto play_remove_lines::@6 + [350] if((byte) play_remove_lines::full#2!=(byte) 1) goto play_remove_lines::@6 to:play_remove_lines::@5 play_remove_lines::@5: scope:[play_remove_lines] from play_remove_lines::@4 - [353] (byte) play_remove_lines::w#2 ← (byte) play_remove_lines::w#1 + (const byte) PLAYFIELD_COLS - [354] (byte) play_remove_lines::removed#1 ← ++ (byte) play_remove_lines::removed#11 + [351] (byte) play_remove_lines::w#2 ← (byte) play_remove_lines::w#1 + (const byte) PLAYFIELD_COLS + [352] (byte) play_remove_lines::removed#1 ← ++ (byte) play_remove_lines::removed#11 to:play_remove_lines::@6 play_remove_lines::@6: scope:[play_remove_lines] from play_remove_lines::@4 play_remove_lines::@5 - [355] (byte) play_remove_lines::removed#8 ← phi( play_remove_lines::@4/(byte) play_remove_lines::removed#11 play_remove_lines::@5/(byte) play_remove_lines::removed#1 ) - [355] (byte) play_remove_lines::w#11 ← phi( play_remove_lines::@4/(byte) play_remove_lines::w#1 play_remove_lines::@5/(byte) play_remove_lines::w#2 ) - [356] (byte) play_remove_lines::y#1 ← ++ (byte) play_remove_lines::y#8 - [357] if((byte) play_remove_lines::y#1!=(const byte) PLAYFIELD_LINES-(byte) 1+(byte) 1) goto play_remove_lines::@1 + [353] (byte) play_remove_lines::removed#8 ← phi( play_remove_lines::@4/(byte) play_remove_lines::removed#11 play_remove_lines::@5/(byte) play_remove_lines::removed#1 ) + [353] (byte) play_remove_lines::w#11 ← phi( play_remove_lines::@4/(byte) play_remove_lines::w#1 play_remove_lines::@5/(byte) play_remove_lines::w#2 ) + [354] (byte) play_remove_lines::y#1 ← ++ (byte) play_remove_lines::y#8 + [355] if((byte) play_remove_lines::y#1!=(const byte) PLAYFIELD_LINES-(byte) 1+(byte) 1) goto play_remove_lines::@1 to:play_remove_lines::@7 play_remove_lines::@7: scope:[play_remove_lines] from play_remove_lines::@6 play_remove_lines::@8 - [358] (byte) play_remove_lines::w#6 ← phi( play_remove_lines::@8/(byte) play_remove_lines::w#3 play_remove_lines::@6/(byte) play_remove_lines::w#11 ) - [359] if((byte) play_remove_lines::w#6!=(byte) $ff) goto play_remove_lines::@8 + [356] (byte) play_remove_lines::w#6 ← phi( play_remove_lines::@8/(byte) play_remove_lines::w#3 play_remove_lines::@6/(byte) play_remove_lines::w#11 ) + [357] if((byte) play_remove_lines::w#6!=(byte) $ff) goto play_remove_lines::@8 to:play_remove_lines::@return play_remove_lines::@return: scope:[play_remove_lines] from play_remove_lines::@7 - [360] return + [358] return to:@return play_remove_lines::@8: scope:[play_remove_lines] from play_remove_lines::@7 - [361] *((const byte*) playfield + (byte) play_remove_lines::w#6) ← (byte) 0 - [362] (byte) play_remove_lines::w#3 ← -- (byte) play_remove_lines::w#6 + [359] *((const byte*) playfield + (byte) play_remove_lines::w#6) ← (byte) 0 + [360] (byte) play_remove_lines::w#3 ← -- (byte) play_remove_lines::w#6 to:play_remove_lines::@7 (void()) play_lock_current() play_lock_current: scope:[play_lock_current] from play_move_down::@9 - [363] (byte) play_lock_current::yp#0 ← (byte) current_ypos#11 + [361] (byte) play_lock_current::yp#0 ← (byte) current_ypos#11 to:play_lock_current::@1 play_lock_current::@1: scope:[play_lock_current] from play_lock_current play_lock_current::@6 - [364] (byte) play_lock_current::l#6 ← phi( play_lock_current/(byte) 0 play_lock_current::@6/(byte) play_lock_current::l#1 ) - [364] (byte) play_lock_current::i#3 ← phi( play_lock_current/(byte) 0 play_lock_current::@6/(byte) play_lock_current::i#7 ) - [364] (byte) play_lock_current::yp#2 ← phi( play_lock_current/(byte) play_lock_current::yp#0 play_lock_current::@6/(byte) play_lock_current::yp#1 ) - [365] (byte~) play_lock_current::$4 ← (byte) play_lock_current::yp#2 << (byte) 1 - [366] (byte*) play_lock_current::playfield_line#0 ← *((const byte**) playfield_lines + (byte~) play_lock_current::$4) - [367] (byte) play_lock_current::xp#0 ← (byte) current_xpos#14 + [362] (byte) play_lock_current::l#6 ← phi( play_lock_current/(byte) 0 play_lock_current::@6/(byte) play_lock_current::l#1 ) + [362] (byte) play_lock_current::i#3 ← phi( play_lock_current/(byte) 0 play_lock_current::@6/(byte) play_lock_current::i#7 ) + [362] (byte) play_lock_current::yp#2 ← phi( play_lock_current/(byte) play_lock_current::yp#0 play_lock_current::@6/(byte) play_lock_current::yp#1 ) + [363] (byte~) play_lock_current::$4 ← (byte) play_lock_current::yp#2 << (byte) 1 + [364] (byte*) play_lock_current::playfield_line#0 ← *((const byte**) playfield_lines + (byte~) play_lock_current::$4) + [365] (byte) play_lock_current::xp#0 ← (byte) current_xpos#14 to:play_lock_current::@2 play_lock_current::@2: scope:[play_lock_current] from play_lock_current::@1 play_lock_current::@7 - [368] (byte) play_lock_current::c#2 ← phi( play_lock_current::@1/(byte) 0 play_lock_current::@7/(byte) play_lock_current::c#1 ) - [368] (byte) play_lock_current::xp#2 ← phi( play_lock_current::@1/(byte) play_lock_current::xp#0 play_lock_current::@7/(byte) play_lock_current::xp#1 ) - [368] (byte) play_lock_current::i#2 ← phi( play_lock_current::@1/(byte) play_lock_current::i#3 play_lock_current::@7/(byte) play_lock_current::i#9 ) - [369] (byte) play_lock_current::i#1 ← ++ (byte) play_lock_current::i#2 - [370] if(*((byte*) current_piece_gfx#13 + (byte) play_lock_current::i#2)==(byte) 0) goto play_lock_current::@3 + [366] (byte) play_lock_current::c#2 ← phi( play_lock_current::@1/(byte) 0 play_lock_current::@7/(byte) play_lock_current::c#1 ) + [366] (byte) play_lock_current::xp#2 ← phi( play_lock_current::@1/(byte) play_lock_current::xp#0 play_lock_current::@7/(byte) play_lock_current::xp#1 ) + [366] (byte) play_lock_current::i#2 ← phi( play_lock_current::@1/(byte) play_lock_current::i#3 play_lock_current::@7/(byte) play_lock_current::i#9 ) + [367] (byte) play_lock_current::i#1 ← ++ (byte) play_lock_current::i#2 + [368] if(*((byte*) current_piece_gfx#13 + (byte) play_lock_current::i#2)==(byte) 0) goto play_lock_current::@3 to:play_lock_current::@4 play_lock_current::@4: scope:[play_lock_current] from play_lock_current::@2 - [371] *((byte*) play_lock_current::playfield_line#0 + (byte) play_lock_current::xp#2) ← (byte) current_piece_char#10 + [369] *((byte*) play_lock_current::playfield_line#0 + (byte) play_lock_current::xp#2) ← (byte) current_piece_char#10 to:play_lock_current::@3 play_lock_current::@3: scope:[play_lock_current] from play_lock_current::@2 play_lock_current::@4 - [372] (byte) play_lock_current::xp#1 ← ++ (byte) play_lock_current::xp#2 - [373] (byte) play_lock_current::c#1 ← ++ (byte) play_lock_current::c#2 - [374] if((byte) play_lock_current::c#1!=(byte) 4) goto play_lock_current::@7 + [370] (byte) play_lock_current::xp#1 ← ++ (byte) play_lock_current::xp#2 + [371] (byte) play_lock_current::c#1 ← ++ (byte) play_lock_current::c#2 + [372] if((byte) play_lock_current::c#1!=(byte) 4) goto play_lock_current::@7 to:play_lock_current::@5 play_lock_current::@5: scope:[play_lock_current] from play_lock_current::@3 - [375] (byte) play_lock_current::yp#1 ← ++ (byte) play_lock_current::yp#2 - [376] (byte) play_lock_current::l#1 ← ++ (byte) play_lock_current::l#6 - [377] if((byte) play_lock_current::l#1!=(byte) 4) goto play_lock_current::@6 + [373] (byte) play_lock_current::yp#1 ← ++ (byte) play_lock_current::yp#2 + [374] (byte) play_lock_current::l#1 ← ++ (byte) play_lock_current::l#6 + [375] if((byte) play_lock_current::l#1!=(byte) 4) goto play_lock_current::@6 to:play_lock_current::@return play_lock_current::@return: scope:[play_lock_current] from play_lock_current::@5 - [378] return + [376] return to:@return play_lock_current::@6: scope:[play_lock_current] from play_lock_current::@5 - [379] (byte) play_lock_current::i#7 ← (byte) play_lock_current::i#1 + [377] (byte) play_lock_current::i#7 ← (byte) play_lock_current::i#1 to:play_lock_current::@1 play_lock_current::@7: scope:[play_lock_current] from play_lock_current::@3 - [380] (byte) play_lock_current::i#9 ← (byte) play_lock_current::i#1 + [378] (byte) play_lock_current::i#9 ← (byte) play_lock_current::i#1 to:play_lock_current::@2 (byte()) keyboard_event_pressed((byte) keyboard_event_pressed::keycode) keyboard_event_pressed: scope:[keyboard_event_pressed] from keyboard_event_scan::@1 keyboard_event_scan::@17 keyboard_event_scan::@2 keyboard_event_scan::@3 play_move_down::@1 - [381] (byte) keyboard_event_pressed::keycode#5 ← phi( keyboard_event_scan::@1/(const byte) KEY_RSHIFT keyboard_event_scan::@2/(const byte) KEY_CTRL keyboard_event_scan::@17/(const byte) KEY_LSHIFT keyboard_event_scan::@3/(const byte) KEY_COMMODORE play_move_down::@1/(const byte) KEY_SPACE ) - [382] (byte~) keyboard_event_pressed::$0 ← (byte) keyboard_event_pressed::keycode#5 >> (byte) 3 - [383] (byte) keyboard_event_pressed::row_bits#0 ← *((const byte*) keyboard_scan_values + (byte~) keyboard_event_pressed::$0) - [384] (byte~) keyboard_event_pressed::$1 ← (byte) keyboard_event_pressed::keycode#5 & (byte) 7 - [385] (byte) keyboard_event_pressed::return#11 ← (byte) keyboard_event_pressed::row_bits#0 & *((const byte*) keyboard_matrix_col_bitmask + (byte~) keyboard_event_pressed::$1) + [379] (byte) keyboard_event_pressed::keycode#5 ← phi( keyboard_event_scan::@1/(const byte) KEY_RSHIFT keyboard_event_scan::@2/(const byte) KEY_CTRL keyboard_event_scan::@17/(const byte) KEY_LSHIFT keyboard_event_scan::@3/(const byte) KEY_COMMODORE play_move_down::@1/(const byte) KEY_SPACE ) + [380] (byte~) keyboard_event_pressed::$0 ← (byte) keyboard_event_pressed::keycode#5 >> (byte) 3 + [381] (byte) keyboard_event_pressed::row_bits#0 ← *((const byte*) keyboard_scan_values + (byte~) keyboard_event_pressed::$0) + [382] (byte~) keyboard_event_pressed::$1 ← (byte) keyboard_event_pressed::keycode#5 & (byte) 7 + [383] (byte) keyboard_event_pressed::return#11 ← (byte) keyboard_event_pressed::row_bits#0 & *((const byte*) keyboard_matrix_col_bitmask + (byte~) keyboard_event_pressed::$1) to:keyboard_event_pressed::@return keyboard_event_pressed::@return: scope:[keyboard_event_pressed] from keyboard_event_pressed - [386] return + [384] return to:@return (byte()) keyboard_event_get() keyboard_event_get: scope:[keyboard_event_get] from main::@19 - [387] if((byte) keyboard_events_size#13==(byte) 0) goto keyboard_event_get::@return + [385] if((byte) keyboard_events_size#13==(byte) 0) goto keyboard_event_get::@return to:keyboard_event_get::@1 keyboard_event_get::@1: scope:[keyboard_event_get] from keyboard_event_get - [388] (byte) keyboard_events_size#4 ← -- (byte) keyboard_events_size#13 - [389] (byte) keyboard_event_get::return#1 ← *((const byte*) keyboard_events + (byte) keyboard_events_size#4) + [386] (byte) keyboard_events_size#4 ← -- (byte) keyboard_events_size#13 + [387] (byte) keyboard_event_get::return#1 ← *((const byte*) keyboard_events + (byte) keyboard_events_size#4) to:keyboard_event_get::@return keyboard_event_get::@return: scope:[keyboard_event_get] from keyboard_event_get keyboard_event_get::@1 - [390] (byte) keyboard_events_size#16 ← phi( keyboard_event_get/(byte) keyboard_events_size#13 keyboard_event_get::@1/(byte) keyboard_events_size#4 ) - [390] (byte) keyboard_event_get::return#2 ← phi( keyboard_event_get/(byte) $ff keyboard_event_get::@1/(byte) keyboard_event_get::return#1 ) - [391] return + [388] (byte) keyboard_events_size#16 ← phi( keyboard_event_get/(byte) keyboard_events_size#13 keyboard_event_get::@1/(byte) keyboard_events_size#4 ) + [388] (byte) keyboard_event_get::return#2 ← phi( keyboard_event_get/(byte) $ff keyboard_event_get::@1/(byte) keyboard_event_get::return#1 ) + [389] return to:@return (void()) keyboard_event_scan() keyboard_event_scan: scope:[keyboard_event_scan] from main::@18 - [392] phi() + [390] phi() to:keyboard_event_scan::@7 keyboard_event_scan::@7: scope:[keyboard_event_scan] from keyboard_event_scan keyboard_event_scan::@8 - [393] (byte) keyboard_events_size#30 ← phi( keyboard_event_scan/(byte) keyboard_events_size#19 keyboard_event_scan::@8/(byte) keyboard_events_size#13 ) - [393] (byte) keyboard_event_scan::keycode#11 ← phi( keyboard_event_scan/(byte) 0 keyboard_event_scan::@8/(byte) keyboard_event_scan::keycode#13 ) - [393] (byte) keyboard_event_scan::row#2 ← phi( keyboard_event_scan/(byte) 0 keyboard_event_scan::@8/(byte) keyboard_event_scan::row#1 ) - [394] (byte) keyboard_matrix_read::rowid#0 ← (byte) keyboard_event_scan::row#2 - [395] call keyboard_matrix_read - [396] (byte) keyboard_matrix_read::return#2 ← (byte) keyboard_matrix_read::return#0 + [391] (byte) keyboard_events_size#30 ← phi( keyboard_event_scan/(byte) keyboard_events_size#19 keyboard_event_scan::@8/(byte) keyboard_events_size#13 ) + [391] (byte) keyboard_event_scan::keycode#11 ← phi( keyboard_event_scan/(byte) 0 keyboard_event_scan::@8/(byte) keyboard_event_scan::keycode#13 ) + [391] (byte) keyboard_event_scan::row#2 ← phi( keyboard_event_scan/(byte) 0 keyboard_event_scan::@8/(byte) keyboard_event_scan::row#1 ) + [392] (byte) keyboard_matrix_read::rowid#0 ← (byte) keyboard_event_scan::row#2 + [393] call keyboard_matrix_read + [394] (byte) keyboard_matrix_read::return#2 ← (byte) keyboard_matrix_read::return#0 to:keyboard_event_scan::@19 keyboard_event_scan::@19: scope:[keyboard_event_scan] from keyboard_event_scan::@7 - [397] (byte) keyboard_event_scan::row_scan#0 ← (byte) keyboard_matrix_read::return#2 - [398] if((byte) keyboard_event_scan::row_scan#0!=*((const byte*) keyboard_scan_values + (byte) keyboard_event_scan::row#2)) goto keyboard_event_scan::@9 + [395] (byte) keyboard_event_scan::row_scan#0 ← (byte) keyboard_matrix_read::return#2 + [396] if((byte) keyboard_event_scan::row_scan#0!=*((const byte*) keyboard_scan_values + (byte) keyboard_event_scan::row#2)) goto keyboard_event_scan::@9 to:keyboard_event_scan::@16 keyboard_event_scan::@16: scope:[keyboard_event_scan] from keyboard_event_scan::@19 - [399] (byte) keyboard_event_scan::keycode#1 ← (byte) keyboard_event_scan::keycode#11 + (byte) 8 + [397] (byte) keyboard_event_scan::keycode#1 ← (byte) keyboard_event_scan::keycode#11 + (byte) 8 to:keyboard_event_scan::@8 keyboard_event_scan::@8: scope:[keyboard_event_scan] from keyboard_event_scan::@15 keyboard_event_scan::@16 - [400] (byte) keyboard_events_size#13 ← phi( keyboard_event_scan::@15/(byte) keyboard_events_size#29 keyboard_event_scan::@16/(byte) keyboard_events_size#30 ) - [400] (byte) keyboard_event_scan::keycode#13 ← phi( keyboard_event_scan::@15/(byte) keyboard_event_scan::keycode#14 keyboard_event_scan::@16/(byte) keyboard_event_scan::keycode#1 ) - [401] (byte) keyboard_event_scan::row#1 ← ++ (byte) keyboard_event_scan::row#2 - [402] if((byte) keyboard_event_scan::row#1!=(byte) 8) goto keyboard_event_scan::@7 + [398] (byte) keyboard_events_size#13 ← phi( keyboard_event_scan::@15/(byte) keyboard_events_size#29 keyboard_event_scan::@16/(byte) keyboard_events_size#30 ) + [398] (byte) keyboard_event_scan::keycode#13 ← phi( keyboard_event_scan::@15/(byte) keyboard_event_scan::keycode#14 keyboard_event_scan::@16/(byte) keyboard_event_scan::keycode#1 ) + [399] (byte) keyboard_event_scan::row#1 ← ++ (byte) keyboard_event_scan::row#2 + [400] if((byte) keyboard_event_scan::row#1!=(byte) 8) goto keyboard_event_scan::@7 to:keyboard_event_scan::@17 keyboard_event_scan::@17: scope:[keyboard_event_scan] from keyboard_event_scan::@8 - [403] phi() - [404] call keyboard_event_pressed - [405] (byte) keyboard_event_pressed::return#0 ← (byte) keyboard_event_pressed::return#11 + [401] phi() + [402] call keyboard_event_pressed + [403] (byte) keyboard_event_pressed::return#0 ← (byte) keyboard_event_pressed::return#11 to:keyboard_event_scan::@20 keyboard_event_scan::@20: scope:[keyboard_event_scan] from keyboard_event_scan::@17 - [406] (byte~) keyboard_event_scan::$0 ← (byte) keyboard_event_pressed::return#0 - [407] if((byte~) keyboard_event_scan::$0==(byte) 0) goto keyboard_event_scan::@1 + [404] (byte~) keyboard_event_scan::$0 ← (byte) keyboard_event_pressed::return#0 + [405] if((byte~) keyboard_event_scan::$0==(byte) 0) goto keyboard_event_scan::@1 to:keyboard_event_scan::@18 keyboard_event_scan::@18: scope:[keyboard_event_scan] from keyboard_event_scan::@20 - [408] phi() + [406] phi() to:keyboard_event_scan::@1 keyboard_event_scan::@1: scope:[keyboard_event_scan] from keyboard_event_scan::@18 keyboard_event_scan::@20 - [409] phi() - [410] call keyboard_event_pressed - [411] (byte) keyboard_event_pressed::return#1 ← (byte) keyboard_event_pressed::return#11 + [407] phi() + [408] call keyboard_event_pressed + [409] (byte) keyboard_event_pressed::return#1 ← (byte) keyboard_event_pressed::return#11 to:keyboard_event_scan::@21 keyboard_event_scan::@21: scope:[keyboard_event_scan] from keyboard_event_scan::@1 - [412] (byte~) keyboard_event_scan::$3 ← (byte) keyboard_event_pressed::return#1 - [413] if((byte~) keyboard_event_scan::$3==(byte) 0) goto keyboard_event_scan::@2 + [410] (byte~) keyboard_event_scan::$3 ← (byte) keyboard_event_pressed::return#1 + [411] if((byte~) keyboard_event_scan::$3==(byte) 0) goto keyboard_event_scan::@2 to:keyboard_event_scan::@4 keyboard_event_scan::@4: scope:[keyboard_event_scan] from keyboard_event_scan::@21 - [414] phi() + [412] phi() to:keyboard_event_scan::@2 keyboard_event_scan::@2: scope:[keyboard_event_scan] from keyboard_event_scan::@21 keyboard_event_scan::@4 - [415] phi() - [416] call keyboard_event_pressed - [417] (byte) keyboard_event_pressed::return#2 ← (byte) keyboard_event_pressed::return#11 + [413] phi() + [414] call keyboard_event_pressed + [415] (byte) keyboard_event_pressed::return#2 ← (byte) keyboard_event_pressed::return#11 to:keyboard_event_scan::@22 keyboard_event_scan::@22: scope:[keyboard_event_scan] from keyboard_event_scan::@2 - [418] (byte~) keyboard_event_scan::$6 ← (byte) keyboard_event_pressed::return#2 - [419] if((byte~) keyboard_event_scan::$6==(byte) 0) goto keyboard_event_scan::@3 + [416] (byte~) keyboard_event_scan::$6 ← (byte) keyboard_event_pressed::return#2 + [417] if((byte~) keyboard_event_scan::$6==(byte) 0) goto keyboard_event_scan::@3 to:keyboard_event_scan::@5 keyboard_event_scan::@5: scope:[keyboard_event_scan] from keyboard_event_scan::@22 - [420] phi() + [418] phi() to:keyboard_event_scan::@3 keyboard_event_scan::@3: scope:[keyboard_event_scan] from keyboard_event_scan::@22 keyboard_event_scan::@5 - [421] phi() - [422] call keyboard_event_pressed - [423] (byte) keyboard_event_pressed::return#10 ← (byte) keyboard_event_pressed::return#11 + [419] phi() + [420] call keyboard_event_pressed + [421] (byte) keyboard_event_pressed::return#10 ← (byte) keyboard_event_pressed::return#11 to:keyboard_event_scan::@23 keyboard_event_scan::@23: scope:[keyboard_event_scan] from keyboard_event_scan::@3 - [424] (byte~) keyboard_event_scan::$9 ← (byte) keyboard_event_pressed::return#10 - [425] if((byte~) keyboard_event_scan::$9==(byte) 0) goto keyboard_event_scan::@return + [422] (byte~) keyboard_event_scan::$9 ← (byte) keyboard_event_pressed::return#10 + [423] if((byte~) keyboard_event_scan::$9==(byte) 0) goto keyboard_event_scan::@return to:keyboard_event_scan::@6 keyboard_event_scan::@6: scope:[keyboard_event_scan] from keyboard_event_scan::@23 - [426] phi() + [424] phi() to:keyboard_event_scan::@return keyboard_event_scan::@return: scope:[keyboard_event_scan] from keyboard_event_scan::@23 keyboard_event_scan::@6 - [427] return + [425] return to:@return keyboard_event_scan::@9: scope:[keyboard_event_scan] from keyboard_event_scan::@10 keyboard_event_scan::@19 - [428] (byte) keyboard_events_size#10 ← phi( keyboard_event_scan::@10/(byte) keyboard_events_size#29 keyboard_event_scan::@19/(byte) keyboard_events_size#30 ) - [428] (byte) keyboard_event_scan::keycode#10 ← phi( keyboard_event_scan::@10/(byte) keyboard_event_scan::keycode#14 keyboard_event_scan::@19/(byte) keyboard_event_scan::keycode#11 ) - [428] (byte) keyboard_event_scan::col#2 ← phi( keyboard_event_scan::@10/(byte) keyboard_event_scan::col#1 keyboard_event_scan::@19/(byte) 0 ) - [429] (byte~) keyboard_event_scan::$15 ← (byte) keyboard_event_scan::row_scan#0 ^ *((const byte*) keyboard_scan_values + (byte) keyboard_event_scan::row#2) - [430] (byte~) keyboard_event_scan::$16 ← (byte~) keyboard_event_scan::$15 & *((const byte*) keyboard_matrix_col_bitmask + (byte) keyboard_event_scan::col#2) - [431] if((byte~) keyboard_event_scan::$16==(byte) 0) goto keyboard_event_scan::@10 + [426] (byte) keyboard_events_size#10 ← phi( keyboard_event_scan::@10/(byte) keyboard_events_size#29 keyboard_event_scan::@19/(byte) keyboard_events_size#30 ) + [426] (byte) keyboard_event_scan::keycode#10 ← phi( keyboard_event_scan::@10/(byte) keyboard_event_scan::keycode#14 keyboard_event_scan::@19/(byte) keyboard_event_scan::keycode#11 ) + [426] (byte) keyboard_event_scan::col#2 ← phi( keyboard_event_scan::@10/(byte) keyboard_event_scan::col#1 keyboard_event_scan::@19/(byte) 0 ) + [427] (byte~) keyboard_event_scan::$15 ← (byte) keyboard_event_scan::row_scan#0 ^ *((const byte*) keyboard_scan_values + (byte) keyboard_event_scan::row#2) + [428] (byte~) keyboard_event_scan::$16 ← (byte~) keyboard_event_scan::$15 & *((const byte*) keyboard_matrix_col_bitmask + (byte) keyboard_event_scan::col#2) + [429] if((byte~) keyboard_event_scan::$16==(byte) 0) goto keyboard_event_scan::@10 to:keyboard_event_scan::@12 keyboard_event_scan::@12: scope:[keyboard_event_scan] from keyboard_event_scan::@9 - [432] if((byte) keyboard_events_size#10==(byte) 8) goto keyboard_event_scan::@10 + [430] if((byte) keyboard_events_size#10==(byte) 8) goto keyboard_event_scan::@10 to:keyboard_event_scan::@13 keyboard_event_scan::@13: scope:[keyboard_event_scan] from keyboard_event_scan::@12 - [433] (byte) keyboard_event_scan::event_type#0 ← (byte) keyboard_event_scan::row_scan#0 & *((const byte*) keyboard_matrix_col_bitmask + (byte) keyboard_event_scan::col#2) - [434] if((byte) keyboard_event_scan::event_type#0==(byte) 0) goto keyboard_event_scan::@11 + [431] (byte) keyboard_event_scan::event_type#0 ← (byte) keyboard_event_scan::row_scan#0 & *((const byte*) keyboard_matrix_col_bitmask + (byte) keyboard_event_scan::col#2) + [432] if((byte) keyboard_event_scan::event_type#0==(byte) 0) goto keyboard_event_scan::@11 to:keyboard_event_scan::@14 keyboard_event_scan::@14: scope:[keyboard_event_scan] from keyboard_event_scan::@13 - [435] *((const byte*) keyboard_events + (byte) keyboard_events_size#10) ← (byte) keyboard_event_scan::keycode#10 - [436] (byte) keyboard_events_size#2 ← ++ (byte) keyboard_events_size#10 + [433] *((const byte*) keyboard_events + (byte) keyboard_events_size#10) ← (byte) keyboard_event_scan::keycode#10 + [434] (byte) keyboard_events_size#2 ← ++ (byte) keyboard_events_size#10 to:keyboard_event_scan::@10 keyboard_event_scan::@10: scope:[keyboard_event_scan] from keyboard_event_scan::@11 keyboard_event_scan::@12 keyboard_event_scan::@14 keyboard_event_scan::@9 - [437] (byte) keyboard_events_size#29 ← phi( keyboard_event_scan::@9/(byte) keyboard_events_size#10 keyboard_event_scan::@11/(byte) keyboard_events_size#1 keyboard_event_scan::@12/(byte) keyboard_events_size#10 keyboard_event_scan::@14/(byte) keyboard_events_size#2 ) - [438] (byte) keyboard_event_scan::keycode#14 ← ++ (byte) keyboard_event_scan::keycode#10 - [439] (byte) keyboard_event_scan::col#1 ← ++ (byte) keyboard_event_scan::col#2 - [440] if((byte) keyboard_event_scan::col#1!=(byte) 8) goto keyboard_event_scan::@9 + [435] (byte) keyboard_events_size#29 ← phi( keyboard_event_scan::@9/(byte) keyboard_events_size#10 keyboard_event_scan::@11/(byte) keyboard_events_size#1 keyboard_event_scan::@12/(byte) keyboard_events_size#10 keyboard_event_scan::@14/(byte) keyboard_events_size#2 ) + [436] (byte) keyboard_event_scan::keycode#14 ← ++ (byte) keyboard_event_scan::keycode#10 + [437] (byte) keyboard_event_scan::col#1 ← ++ (byte) keyboard_event_scan::col#2 + [438] if((byte) keyboard_event_scan::col#1!=(byte) 8) goto keyboard_event_scan::@9 to:keyboard_event_scan::@15 keyboard_event_scan::@15: scope:[keyboard_event_scan] from keyboard_event_scan::@10 - [441] *((const byte*) keyboard_scan_values + (byte) keyboard_event_scan::row#2) ← (byte) keyboard_event_scan::row_scan#0 + [439] *((const byte*) keyboard_scan_values + (byte) keyboard_event_scan::row#2) ← (byte) keyboard_event_scan::row_scan#0 to:keyboard_event_scan::@8 keyboard_event_scan::@11: scope:[keyboard_event_scan] from keyboard_event_scan::@13 - [442] (byte~) keyboard_event_scan::$23 ← (byte) keyboard_event_scan::keycode#10 | (byte) $40 - [443] *((const byte*) keyboard_events + (byte) keyboard_events_size#10) ← (byte~) keyboard_event_scan::$23 - [444] (byte) keyboard_events_size#1 ← ++ (byte) keyboard_events_size#10 + [440] (byte~) keyboard_event_scan::$23 ← (byte) keyboard_event_scan::keycode#10 | (byte) $40 + [441] *((const byte*) keyboard_events + (byte) keyboard_events_size#10) ← (byte~) keyboard_event_scan::$23 + [442] (byte) keyboard_events_size#1 ← ++ (byte) keyboard_events_size#10 to:keyboard_event_scan::@10 (byte()) keyboard_matrix_read((byte) keyboard_matrix_read::rowid) keyboard_matrix_read: scope:[keyboard_matrix_read] from keyboard_event_scan::@7 - [445] *((const byte*) CIA1_PORT_A) ← *((const byte*) keyboard_matrix_row_bitmask + (byte) keyboard_matrix_read::rowid#0) - [446] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B) + [443] *((const byte*) CIA1_PORT_A) ← *((const byte*) keyboard_matrix_row_bitmask + (byte) keyboard_matrix_read::rowid#0) + [444] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B) to:keyboard_matrix_read::@return keyboard_matrix_read::@return: scope:[keyboard_matrix_read] from keyboard_matrix_read - [447] return + [445] return to:@return (void()) render_show() render_show: scope:[render_show] from main::@3 - [448] if((byte) render_screen_show#16==(byte) 0) goto render_show::toD0181 + [446] if((byte) render_screen_show#16==(byte) 0) goto render_show::toD0181 to:render_show::toD0182 render_show::toD0182: scope:[render_show] from render_show - [449] phi() + [447] phi() to:render_show::@1 render_show::@1: scope:[render_show] from render_show::toD0181 render_show::toD0182 - [450] (byte) render_show::d018val#3 ← phi( render_show::toD0181/(const byte) render_show::toD0181_return#0 render_show::toD0182/(const byte) render_show::toD0182_return#0 ) - [451] *((const byte*) D018) ← (byte) render_show::d018val#3 - [452] *((const byte*) BGCOL2) ← *((const byte*) PIECES_COLORS_1 + (byte) level#10) - [453] *((const byte*) BGCOL3) ← *((const byte*) PIECES_COLORS_2 + (byte) level#10) - [454] (byte) render_screen_showing ← (byte) render_screen_show#16 + [448] (byte) render_show::d018val#3 ← phi( render_show::toD0181/(const byte) render_show::toD0181_return#0 render_show::toD0182/(const byte) render_show::toD0182_return#0 ) + [449] *((const byte*) D018) ← (byte) render_show::d018val#3 + [450] *((const byte*) BGCOL2) ← *((const byte*) PIECES_COLORS_1 + (byte) level#10) + [451] *((const byte*) BGCOL3) ← *((const byte*) PIECES_COLORS_2 + (byte) level#10) + [452] (byte) render_screen_showing ← (byte) render_screen_show#16 to:render_show::@return render_show::@return: scope:[render_show] from render_show::@1 - [455] return + [453] return to:@return render_show::toD0181: scope:[render_show] from render_show - [456] phi() + [454] phi() to:render_show::@1 (void()) play_init() play_init: scope:[play_init] from main::@11 - [457] phi() + [455] phi() to:play_init::@1 play_init::@1: scope:[play_init] from play_init play_init::@1 - [458] (byte) play_init::idx#2 ← phi( play_init/(byte) 0 play_init::@1/(byte) play_init::idx#1 ) - [458] (byte*) play_init::pli#2 ← phi( play_init/(const byte*) playfield play_init::@1/(byte*) play_init::pli#1 ) - [458] (byte) play_init::j#2 ← phi( play_init/(byte) 0 play_init::@1/(byte) play_init::j#1 ) - [459] (byte~) play_init::$2 ← (byte) play_init::j#2 << (byte) 1 - [460] *((const byte**) playfield_lines + (byte~) play_init::$2) ← (byte*) play_init::pli#2 - [461] *((const byte*) playfield_lines_idx + (byte) play_init::j#2) ← (byte) play_init::idx#2 - [462] (byte*) play_init::pli#1 ← (byte*) play_init::pli#2 + (const byte) PLAYFIELD_COLS - [463] (byte) play_init::idx#1 ← (byte) play_init::idx#2 + (const byte) PLAYFIELD_COLS - [464] (byte) play_init::j#1 ← ++ (byte) play_init::j#2 - [465] if((byte) play_init::j#1!=(const byte) PLAYFIELD_LINES-(byte) 1+(byte) 1) goto play_init::@1 + [456] (byte) play_init::idx#2 ← phi( play_init/(byte) 0 play_init::@1/(byte) play_init::idx#1 ) + [456] (byte*) play_init::pli#2 ← phi( play_init/(const byte*) playfield play_init::@1/(byte*) play_init::pli#1 ) + [456] (byte) play_init::j#2 ← phi( play_init/(byte) 0 play_init::@1/(byte) play_init::j#1 ) + [457] (byte~) play_init::$2 ← (byte) play_init::j#2 << (byte) 1 + [458] *((const byte**) playfield_lines + (byte~) play_init::$2) ← (byte*) play_init::pli#2 + [459] *((const byte*) playfield_lines_idx + (byte) play_init::j#2) ← (byte) play_init::idx#2 + [460] (byte*) play_init::pli#1 ← (byte*) play_init::pli#2 + (const byte) PLAYFIELD_COLS + [461] (byte) play_init::idx#1 ← (byte) play_init::idx#2 + (const byte) PLAYFIELD_COLS + [462] (byte) play_init::j#1 ← ++ (byte) play_init::j#2 + [463] if((byte) play_init::j#1!=(const byte) PLAYFIELD_LINES-(byte) 1+(byte) 1) goto play_init::@1 to:play_init::@2 play_init::@2: scope:[play_init] from play_init::@1 - [466] *((const byte*) playfield_lines_idx+(const byte) PLAYFIELD_LINES) ← (const byte) PLAYFIELD_COLS*(const byte) PLAYFIELD_LINES - [467] (byte) current_movedown_slow#1 ← *((const byte*) MOVEDOWN_SLOW_SPEEDS) + [464] *((const byte*) playfield_lines_idx+(const byte) PLAYFIELD_LINES) ← (const byte) PLAYFIELD_COLS*(const byte) PLAYFIELD_LINES + [465] (byte) current_movedown_slow#1 ← *((const byte*) MOVEDOWN_SLOW_SPEEDS) to:play_init::@3 play_init::@3: scope:[play_init] from play_init::@2 play_init::@3 - [468] (byte) play_init::b#2 ← phi( play_init::@2/(byte) 0 play_init::@3/(byte) play_init::b#1 ) - [469] (byte~) play_init::$3 ← (byte) play_init::b#2 << (byte) 2 - [470] *((const dword*) score_add_bcd + (byte~) play_init::$3) ← *((const dword*) SCORE_BASE_BCD + (byte~) play_init::$3) - [471] (byte) play_init::b#1 ← ++ (byte) play_init::b#2 - [472] if((byte) play_init::b#1!=(byte) 5) goto play_init::@3 + [466] (byte) play_init::b#2 ← phi( play_init::@2/(byte) 0 play_init::@3/(byte) play_init::b#1 ) + [467] (byte~) play_init::$3 ← (byte) play_init::b#2 << (byte) 2 + [468] *((const dword*) score_add_bcd + (byte~) play_init::$3) ← *((const dword*) SCORE_BASE_BCD + (byte~) play_init::$3) + [469] (byte) play_init::b#1 ← ++ (byte) play_init::b#2 + [470] if((byte) play_init::b#1!=(byte) 5) goto play_init::@3 to:play_init::@return play_init::@return: scope:[play_init] from play_init::@3 - [473] return + [471] return to:@return (void()) sprites_irq_init() sprites_irq_init: scope:[sprites_irq_init] from main::@10 asm { sei } - [475] *((const byte*) IRQ_STATUS) ← (const byte) IRQ_RASTER + [473] *((const byte*) IRQ_STATUS) ← (const byte) IRQ_RASTER asm { ldaCIA1_INTERRUPT } - [477] *((const byte*) PROCPORT_DDR) ← (const byte) PROCPORT_DDR_MEMORY_MASK - [478] *((const byte*) PROCPORT) ← (const byte) PROCPORT_RAM_IO - [479] *((const byte*) CIA1_INTERRUPT) ← (const byte) CIA_INTERRUPT_CLEAR - [480] *((const byte*) VIC_CONTROL) ← *((const byte*) VIC_CONTROL) & (byte) $7f - [481] *((const byte*) RASTER) ← (const byte) IRQ_RASTER_FIRST - [482] *((const byte*) IRQ_ENABLE) ← (const byte) IRQ_RASTER - [483] *((const void()**) HARDWARE_IRQ) ← &interrupt(HARDWARE_CLOBBER)(void()) sprites_irq() + [475] *((const byte*) PROCPORT_DDR) ← (const byte) PROCPORT_DDR_MEMORY_MASK + [476] *((const byte*) PROCPORT) ← (const byte) PROCPORT_RAM_IO + [477] *((const byte*) CIA1_INTERRUPT) ← (const byte) CIA_INTERRUPT_CLEAR + [478] *((const byte*) VIC_CONTROL) ← *((const byte*) VIC_CONTROL) & (byte) $7f + [479] *((const byte*) RASTER) ← (const byte) IRQ_RASTER_FIRST + [480] *((const byte*) IRQ_ENABLE) ← (const byte) IRQ_RASTER + [481] *((const void()**) HARDWARE_IRQ) ← &interrupt(HARDWARE_CLOBBER)(void()) sprites_irq() asm { cli } to:sprites_irq_init::@return sprites_irq_init::@return: scope:[sprites_irq_init] from sprites_irq_init - [485] return + [483] return to:@return (void()) sprites_init() sprites_init: scope:[sprites_init] from main::@9 - [486] *((const byte*) SPRITES_ENABLE) ← (byte) $f - [487] *((const byte*) SPRITES_MC) ← (byte) 0 - [488] *((const byte*) SPRITES_EXPAND_Y) ← *((const byte*) SPRITES_MC) - [489] *((const byte*) SPRITES_EXPAND_X) ← *((const byte*) SPRITES_EXPAND_Y) + [484] *((const byte*) SPRITES_ENABLE) ← (byte) $f + [485] *((const byte*) SPRITES_MC) ← (byte) 0 + [486] *((const byte*) SPRITES_EXPAND_Y) ← *((const byte*) SPRITES_MC) + [487] *((const byte*) SPRITES_EXPAND_X) ← *((const byte*) SPRITES_EXPAND_Y) to:sprites_init::@1 sprites_init::@1: scope:[sprites_init] from sprites_init sprites_init::@1 - [490] (byte) sprites_init::xpos#2 ← phi( sprites_init/(byte)(number) $18+(number) $f*(number) 8 sprites_init::@1/(byte) sprites_init::xpos#1 ) - [490] (byte) sprites_init::s#2 ← phi( sprites_init/(byte) 0 sprites_init::@1/(byte) sprites_init::s#1 ) - [491] (byte) sprites_init::s2#0 ← (byte) sprites_init::s#2 << (byte) 1 - [492] *((const byte*) SPRITES_XPOS + (byte) sprites_init::s2#0) ← (byte) sprites_init::xpos#2 - [493] *((const byte*) SPRITES_COLS + (byte) sprites_init::s#2) ← (const byte) BLACK - [494] (byte) sprites_init::xpos#1 ← (byte) sprites_init::xpos#2 + (byte) $18 - [495] (byte) sprites_init::s#1 ← ++ (byte) sprites_init::s#2 - [496] if((byte) sprites_init::s#1!=(byte) 4) goto sprites_init::@1 + [488] (byte) sprites_init::xpos#2 ← phi( sprites_init/(byte)(number) $18+(number) $f*(number) 8 sprites_init::@1/(byte) sprites_init::xpos#1 ) + [488] (byte) sprites_init::s#2 ← phi( sprites_init/(byte) 0 sprites_init::@1/(byte) sprites_init::s#1 ) + [489] (byte) sprites_init::s2#0 ← (byte) sprites_init::s#2 << (byte) 1 + [490] *((const byte*) SPRITES_XPOS + (byte) sprites_init::s2#0) ← (byte) sprites_init::xpos#2 + [491] *((const byte*) SPRITES_COLS + (byte) sprites_init::s#2) ← (const byte) BLACK + [492] (byte) sprites_init::xpos#1 ← (byte) sprites_init::xpos#2 + (byte) $18 + [493] (byte) sprites_init::s#1 ← ++ (byte) sprites_init::s#2 + [494] if((byte) sprites_init::s#1!=(byte) 4) goto sprites_init::@1 to:sprites_init::@return sprites_init::@return: scope:[sprites_init] from sprites_init::@1 - [497] return + [495] return to:@return (void()) render_init() render_init: scope:[render_init] from main::@8 - [498] phi() + [496] phi() to:render_init::vicSelectGfxBank1 render_init::vicSelectGfxBank1: scope:[render_init] from render_init - [499] *((const byte*) CIA2_PORT_A_DDR) ← (byte) 3 + [497] *((const byte*) CIA2_PORT_A_DDR) ← (byte) 3 to:render_init::vicSelectGfxBank1_toDd001 render_init::vicSelectGfxBank1_toDd001: scope:[render_init] from render_init::vicSelectGfxBank1 - [500] phi() + [498] phi() to:render_init::vicSelectGfxBank1_@1 render_init::vicSelectGfxBank1_@1: scope:[render_init] from render_init::vicSelectGfxBank1_toDd001 - [501] *((const byte*) CIA2_PORT_A) ← (const byte) render_init::vicSelectGfxBank1_toDd001_return#0 + [499] *((const byte*) CIA2_PORT_A) ← (const byte) render_init::vicSelectGfxBank1_toDd001_return#0 to:render_init::@2 render_init::@2: scope:[render_init] from render_init::vicSelectGfxBank1_@1 - [502] *((const byte*) D011) ← (const byte) VIC_ECM|(const byte) VIC_DEN|(const byte) VIC_RSEL|(byte) 3 - [503] *((const byte*) BORDERCOL) ← (const byte) BLACK - [504] *((const byte*) BGCOL1) ← (const byte) BLACK - [505] *((const byte*) BGCOL2) ← *((const byte*) PIECES_COLORS_1) - [506] *((const byte*) BGCOL3) ← *((const byte*) PIECES_COLORS_2) - [507] *((const byte*) BGCOL4) ← (const byte) GREY - [508] call render_screen_original + [500] *((const byte*) D011) ← (const byte) VIC_ECM|(const byte) VIC_DEN|(const byte) VIC_RSEL|(byte) 3 + [501] *((const byte*) BORDERCOL) ← (const byte) BLACK + [502] *((const byte*) BGCOL1) ← (const byte) BLACK + [503] *((const byte*) BGCOL2) ← *((const byte*) PIECES_COLORS_1) + [504] *((const byte*) BGCOL3) ← *((const byte*) PIECES_COLORS_2) + [505] *((const byte*) BGCOL4) ← (const byte) GREY + [506] call render_screen_original to:render_init::@3 render_init::@3: scope:[render_init] from render_init::@2 - [509] phi() - [510] call render_screen_original + [507] phi() + [508] call render_screen_original to:render_init::@1 render_init::@1: scope:[render_init] from render_init::@1 render_init::@3 - [511] (byte*) render_init::li_2#2 ← phi( render_init::@1/(byte*) render_init::li_2#1 render_init::@3/(const byte*) PLAYFIELD_SCREEN_2+(byte)(number) 2*(number) $28+(byte) $10 ) - [511] (byte*) render_init::li_1#2 ← phi( render_init::@1/(byte*) render_init::li_1#1 render_init::@3/(const byte*) PLAYFIELD_SCREEN_1+(byte)(number) 2*(number) $28+(byte) $10 ) - [511] (byte) render_init::i#2 ← phi( render_init::@1/(byte) render_init::i#1 render_init::@3/(byte) 0 ) - [512] (byte~) render_init::$5 ← (byte) render_init::i#2 << (byte) 1 - [513] *((const byte**) screen_lines_1 + (byte~) render_init::$5) ← (byte*) render_init::li_1#2 - [514] *((const byte**) screen_lines_2 + (byte~) render_init::$5) ← (byte*) render_init::li_2#2 - [515] (byte*) render_init::li_1#1 ← (byte*) render_init::li_1#2 + (byte) $28 - [516] (byte*) render_init::li_2#1 ← (byte*) render_init::li_2#2 + (byte) $28 - [517] (byte) render_init::i#1 ← ++ (byte) render_init::i#2 - [518] if((byte) render_init::i#1!=(const byte) PLAYFIELD_LINES-(byte) 1+(byte) 1) goto render_init::@1 + [509] (byte*) render_init::li_2#2 ← phi( render_init::@1/(byte*) render_init::li_2#1 render_init::@3/(const byte*) PLAYFIELD_SCREEN_2+(byte)(number) 2*(number) $28+(byte) $10 ) + [509] (byte*) render_init::li_1#2 ← phi( render_init::@1/(byte*) render_init::li_1#1 render_init::@3/(const byte*) PLAYFIELD_SCREEN_1+(byte)(number) 2*(number) $28+(byte) $10 ) + [509] (byte) render_init::i#2 ← phi( render_init::@1/(byte) render_init::i#1 render_init::@3/(byte) 0 ) + [510] (byte~) render_init::$5 ← (byte) render_init::i#2 << (byte) 1 + [511] *((const byte**) screen_lines_1 + (byte~) render_init::$5) ← (byte*) render_init::li_1#2 + [512] *((const byte**) screen_lines_2 + (byte~) render_init::$5) ← (byte*) render_init::li_2#2 + [513] (byte*) render_init::li_1#1 ← (byte*) render_init::li_1#2 + (byte) $28 + [514] (byte*) render_init::li_2#1 ← (byte*) render_init::li_2#2 + (byte) $28 + [515] (byte) render_init::i#1 ← ++ (byte) render_init::i#2 + [516] if((byte) render_init::i#1!=(const byte) PLAYFIELD_LINES-(byte) 1+(byte) 1) goto render_init::@1 to:render_init::@return render_init::@return: scope:[render_init] from render_init::@1 - [519] return + [517] return to:@return (void()) render_screen_original((byte*) render_screen_original::screen) render_screen_original: scope:[render_screen_original] from render_init::@2 render_init::@3 - [520] (byte*) render_screen_original::screen#9 ← phi( render_init::@2/(const byte*) PLAYFIELD_SCREEN_1 render_init::@3/(const byte*) PLAYFIELD_SCREEN_2 ) + [518] (byte*) render_screen_original::screen#9 ← phi( render_init::@2/(const byte*) PLAYFIELD_SCREEN_1 render_init::@3/(const byte*) PLAYFIELD_SCREEN_2 ) to:render_screen_original::@1 render_screen_original::@1: scope:[render_screen_original] from render_screen_original render_screen_original::@5 - [521] (byte) render_screen_original::y#6 ← phi( render_screen_original/(byte) 0 render_screen_original::@5/(byte) render_screen_original::y#1 ) - [521] (byte*) render_screen_original::ocols#4 ← phi( render_screen_original/(const byte*) PLAYFIELD_COLORS_ORIGINAL+(byte)(number) $20*(number) 2 render_screen_original::@5/(byte*) render_screen_original::ocols#1 ) - [521] (byte*) render_screen_original::oscr#4 ← phi( render_screen_original/(const byte*) PLAYFIELD_SCREEN_ORIGINAL+(byte)(number) $20*(number) 2 render_screen_original::@5/(byte*) render_screen_original::oscr#1 ) - [521] (byte*) render_screen_original::cols#7 ← phi( render_screen_original/(const byte*) COLS render_screen_original::@5/(byte*) render_screen_original::cols#3 ) - [521] (byte*) render_screen_original::screen#8 ← phi( render_screen_original/(byte*) render_screen_original::screen#9 render_screen_original::@5/(byte*) render_screen_original::screen#10 ) + [519] (byte) render_screen_original::y#6 ← phi( render_screen_original/(byte) 0 render_screen_original::@5/(byte) render_screen_original::y#1 ) + [519] (byte*) render_screen_original::ocols#4 ← phi( render_screen_original/(const byte*) PLAYFIELD_COLORS_ORIGINAL+(byte)(number) $20*(number) 2 render_screen_original::@5/(byte*) render_screen_original::ocols#1 ) + [519] (byte*) render_screen_original::oscr#4 ← phi( render_screen_original/(const byte*) PLAYFIELD_SCREEN_ORIGINAL+(byte)(number) $20*(number) 2 render_screen_original::@5/(byte*) render_screen_original::oscr#1 ) + [519] (byte*) render_screen_original::cols#7 ← phi( render_screen_original/(const byte*) COLS render_screen_original::@5/(byte*) render_screen_original::cols#3 ) + [519] (byte*) render_screen_original::screen#8 ← phi( render_screen_original/(byte*) render_screen_original::screen#9 render_screen_original::@5/(byte*) render_screen_original::screen#10 ) to:render_screen_original::@2 render_screen_original::@2: scope:[render_screen_original] from render_screen_original::@1 render_screen_original::@2 - [522] (byte) render_screen_original::x#4 ← phi( render_screen_original::@1/(byte) 0 render_screen_original::@2/(byte) render_screen_original::x#1 ) - [522] (byte*) render_screen_original::cols#4 ← phi( render_screen_original::@1/(byte*) render_screen_original::cols#7 render_screen_original::@2/(byte*) render_screen_original::cols#1 ) - [522] (byte*) render_screen_original::screen#5 ← phi( render_screen_original::@1/(byte*) render_screen_original::screen#8 render_screen_original::@2/(byte*) render_screen_original::screen#2 ) - [523] *((byte*) render_screen_original::screen#5) ← (const byte) render_screen_original::SPACE - [524] (byte*) render_screen_original::screen#2 ← ++ (byte*) render_screen_original::screen#5 - [525] *((byte*) render_screen_original::cols#4) ← (const byte) BLACK - [526] (byte*) render_screen_original::cols#1 ← ++ (byte*) render_screen_original::cols#4 - [527] (byte) render_screen_original::x#1 ← ++ (byte) render_screen_original::x#4 - [528] if((byte) render_screen_original::x#1!=(byte) 4) goto render_screen_original::@2 + [520] (byte) render_screen_original::x#4 ← phi( render_screen_original::@1/(byte) 0 render_screen_original::@2/(byte) render_screen_original::x#1 ) + [520] (byte*) render_screen_original::cols#4 ← phi( render_screen_original::@1/(byte*) render_screen_original::cols#7 render_screen_original::@2/(byte*) render_screen_original::cols#1 ) + [520] (byte*) render_screen_original::screen#5 ← phi( render_screen_original::@1/(byte*) render_screen_original::screen#8 render_screen_original::@2/(byte*) render_screen_original::screen#2 ) + [521] *((byte*) render_screen_original::screen#5) ← (const byte) render_screen_original::SPACE + [522] (byte*) render_screen_original::screen#2 ← ++ (byte*) render_screen_original::screen#5 + [523] *((byte*) render_screen_original::cols#4) ← (const byte) BLACK + [524] (byte*) render_screen_original::cols#1 ← ++ (byte*) render_screen_original::cols#4 + [525] (byte) render_screen_original::x#1 ← ++ (byte) render_screen_original::x#4 + [526] if((byte) render_screen_original::x#1!=(byte) 4) goto render_screen_original::@2 to:render_screen_original::@3 render_screen_original::@3: scope:[render_screen_original] from render_screen_original::@2 render_screen_original::@3 - [529] (byte) render_screen_original::x#5 ← phi( render_screen_original::@2/(byte) render_screen_original::x#1 render_screen_original::@3/(byte) render_screen_original::x#2 ) - [529] (byte*) render_screen_original::cols#5 ← phi( render_screen_original::@2/(byte*) render_screen_original::cols#1 render_screen_original::@3/(byte*) render_screen_original::cols#2 ) - [529] (byte*) render_screen_original::ocols#2 ← phi( render_screen_original::@2/(byte*) render_screen_original::ocols#4 render_screen_original::@3/(byte*) render_screen_original::ocols#1 ) - [529] (byte*) render_screen_original::screen#6 ← phi( render_screen_original::@2/(byte*) render_screen_original::screen#2 render_screen_original::@3/(byte*) render_screen_original::screen#3 ) - [529] (byte*) render_screen_original::oscr#2 ← phi( render_screen_original::@2/(byte*) render_screen_original::oscr#4 render_screen_original::@3/(byte*) render_screen_original::oscr#1 ) - [530] *((byte*) render_screen_original::screen#6) ← *((byte*) render_screen_original::oscr#2) - [531] (byte*) render_screen_original::screen#3 ← ++ (byte*) render_screen_original::screen#6 - [532] (byte*) render_screen_original::oscr#1 ← ++ (byte*) render_screen_original::oscr#2 - [533] *((byte*) render_screen_original::cols#5) ← *((byte*) render_screen_original::ocols#2) - [534] (byte*) render_screen_original::cols#2 ← ++ (byte*) render_screen_original::cols#5 - [535] (byte*) render_screen_original::ocols#1 ← ++ (byte*) render_screen_original::ocols#2 - [536] (byte) render_screen_original::x#2 ← ++ (byte) render_screen_original::x#5 - [537] if((byte) render_screen_original::x#2!=(byte) $24) goto render_screen_original::@3 + [527] (byte) render_screen_original::x#5 ← phi( render_screen_original::@2/(byte) render_screen_original::x#1 render_screen_original::@3/(byte) render_screen_original::x#2 ) + [527] (byte*) render_screen_original::cols#5 ← phi( render_screen_original::@2/(byte*) render_screen_original::cols#1 render_screen_original::@3/(byte*) render_screen_original::cols#2 ) + [527] (byte*) render_screen_original::ocols#2 ← phi( render_screen_original::@2/(byte*) render_screen_original::ocols#4 render_screen_original::@3/(byte*) render_screen_original::ocols#1 ) + [527] (byte*) render_screen_original::screen#6 ← phi( render_screen_original::@2/(byte*) render_screen_original::screen#2 render_screen_original::@3/(byte*) render_screen_original::screen#3 ) + [527] (byte*) render_screen_original::oscr#2 ← phi( render_screen_original::@2/(byte*) render_screen_original::oscr#4 render_screen_original::@3/(byte*) render_screen_original::oscr#1 ) + [528] *((byte*) render_screen_original::screen#6) ← *((byte*) render_screen_original::oscr#2) + [529] (byte*) render_screen_original::screen#3 ← ++ (byte*) render_screen_original::screen#6 + [530] (byte*) render_screen_original::oscr#1 ← ++ (byte*) render_screen_original::oscr#2 + [531] *((byte*) render_screen_original::cols#5) ← *((byte*) render_screen_original::ocols#2) + [532] (byte*) render_screen_original::cols#2 ← ++ (byte*) render_screen_original::cols#5 + [533] (byte*) render_screen_original::ocols#1 ← ++ (byte*) render_screen_original::ocols#2 + [534] (byte) render_screen_original::x#2 ← ++ (byte) render_screen_original::x#5 + [535] if((byte) render_screen_original::x#2!=(byte) $24) goto render_screen_original::@3 to:render_screen_original::@4 render_screen_original::@4: scope:[render_screen_original] from render_screen_original::@3 render_screen_original::@4 - [538] (byte) render_screen_original::x#6 ← phi( render_screen_original::@3/(byte) render_screen_original::x#2 render_screen_original::@4/(byte) render_screen_original::x#3 ) - [538] (byte*) render_screen_original::cols#6 ← phi( render_screen_original::@3/(byte*) render_screen_original::cols#2 render_screen_original::@4/(byte*) render_screen_original::cols#3 ) - [538] (byte*) render_screen_original::screen#7 ← phi( render_screen_original::@3/(byte*) render_screen_original::screen#3 render_screen_original::@4/(byte*) render_screen_original::screen#10 ) - [539] *((byte*) render_screen_original::screen#7) ← (const byte) render_screen_original::SPACE - [540] (byte*) render_screen_original::screen#10 ← ++ (byte*) render_screen_original::screen#7 - [541] *((byte*) render_screen_original::cols#6) ← (const byte) BLACK - [542] (byte*) render_screen_original::cols#3 ← ++ (byte*) render_screen_original::cols#6 - [543] (byte) render_screen_original::x#3 ← ++ (byte) render_screen_original::x#6 - [544] if((byte) render_screen_original::x#3!=(byte) $28) goto render_screen_original::@4 + [536] (byte) render_screen_original::x#6 ← phi( render_screen_original::@3/(byte) render_screen_original::x#2 render_screen_original::@4/(byte) render_screen_original::x#3 ) + [536] (byte*) render_screen_original::cols#6 ← phi( render_screen_original::@3/(byte*) render_screen_original::cols#2 render_screen_original::@4/(byte*) render_screen_original::cols#3 ) + [536] (byte*) render_screen_original::screen#7 ← phi( render_screen_original::@3/(byte*) render_screen_original::screen#3 render_screen_original::@4/(byte*) render_screen_original::screen#10 ) + [537] *((byte*) render_screen_original::screen#7) ← (const byte) render_screen_original::SPACE + [538] (byte*) render_screen_original::screen#10 ← ++ (byte*) render_screen_original::screen#7 + [539] *((byte*) render_screen_original::cols#6) ← (const byte) BLACK + [540] (byte*) render_screen_original::cols#3 ← ++ (byte*) render_screen_original::cols#6 + [541] (byte) render_screen_original::x#3 ← ++ (byte) render_screen_original::x#6 + [542] if((byte) render_screen_original::x#3!=(byte) $28) goto render_screen_original::@4 to:render_screen_original::@5 render_screen_original::@5: scope:[render_screen_original] from render_screen_original::@4 - [545] (byte) render_screen_original::y#1 ← ++ (byte) render_screen_original::y#6 - [546] if((byte) render_screen_original::y#1!=(byte) $19) goto render_screen_original::@1 + [543] (byte) render_screen_original::y#1 ← ++ (byte) render_screen_original::y#6 + [544] if((byte) render_screen_original::y#1!=(byte) $19) goto render_screen_original::@1 to:render_screen_original::@return render_screen_original::@return: scope:[render_screen_original] from render_screen_original::@5 - [547] return + [545] return to:@return (void()) sid_rnd_init() sid_rnd_init: scope:[sid_rnd_init] from main - [548] *((const word*) SID_VOICE3_FREQ) ← (word) $ffff - [549] *((const byte*) SID_VOICE3_CONTROL) ← (const byte) SID_CONTROL_NOISE + [546] *((const word*) SID_VOICE3_FREQ) ← (word) $ffff + [547] *((const byte*) SID_VOICE3_CONTROL) ← (const byte) SID_CONTROL_NOISE to:sid_rnd_init::@return sid_rnd_init::@return: scope:[sid_rnd_init] from sid_rnd_init - [550] return + [548] return to:@return interrupt(HARDWARE_CLOBBER)(void()) sprites_irq() sprites_irq: scope:[sprites_irq] from asm { cld } - [552] (byte) sprites_irq::ypos#0 ← (byte) irq_sprite_ypos - [553] *((const byte*) SPRITES_YPOS) ← (byte) sprites_irq::ypos#0 - [554] *((const byte*) SPRITES_YPOS+(byte) 2) ← (byte) sprites_irq::ypos#0 - [555] *((const byte*) SPRITES_YPOS+(byte) 4) ← (byte) sprites_irq::ypos#0 - [556] *((const byte*) SPRITES_YPOS+(byte) 6) ← (byte) sprites_irq::ypos#0 - [557] (byte~) sprites_irq::$0 ← (byte) irq_raster_next + (byte) 1 - [558] (byte) sprites_irq::raster_sprite_gfx_modify ← (byte~) sprites_irq::$0 + [550] (byte) sprites_irq::ypos#0 ← (byte) irq_sprite_ypos + [551] *((const byte*) SPRITES_YPOS) ← (byte) sprites_irq::ypos#0 + [552] *((const byte*) SPRITES_YPOS+(byte) 2) ← (byte) sprites_irq::ypos#0 + [553] *((const byte*) SPRITES_YPOS+(byte) 4) ← (byte) sprites_irq::ypos#0 + [554] *((const byte*) SPRITES_YPOS+(byte) 6) ← (byte) sprites_irq::ypos#0 + [555] (byte~) sprites_irq::$0 ← (byte) irq_raster_next + (byte) 1 + [556] (byte) sprites_irq::raster_sprite_gfx_modify ← (byte~) sprites_irq::$0 to:sprites_irq::@8 sprites_irq::@8: scope:[sprites_irq] from sprites_irq sprites_irq::@8 - [559] if(*((const byte*) RASTER)<(byte) sprites_irq::raster_sprite_gfx_modify) goto sprites_irq::@8 + [557] if(*((const byte*) RASTER)<(byte) sprites_irq::raster_sprite_gfx_modify) goto sprites_irq::@8 to:sprites_irq::@9 sprites_irq::@9: scope:[sprites_irq] from sprites_irq::@8 - [560] (byte) sprites_irq::ptr#0 ← (byte) irq_sprite_ptr - [561] if((byte) render_screen_showing==(byte) 0) goto sprites_irq::@1 + [558] (byte) sprites_irq::ptr#0 ← (byte) irq_sprite_ptr + [559] if((byte) render_screen_showing==(byte) 0) goto sprites_irq::@1 to:sprites_irq::@10 sprites_irq::@10: scope:[sprites_irq] from sprites_irq::@9 - [562] *((const byte*) PLAYFIELD_SPRITE_PTRS_2) ← (byte) sprites_irq::ptr#0 - [563] (byte) sprites_irq::ptr#3 ← ++ (byte) sprites_irq::ptr#0 - [564] *((const byte*) PLAYFIELD_SPRITE_PTRS_2+(byte) 1) ← (byte) sprites_irq::ptr#3 - [565] *((const byte*) PLAYFIELD_SPRITE_PTRS_2+(byte) 2) ← (byte) sprites_irq::ptr#3 - [566] (byte) sprites_irq::ptr#4 ← ++ (byte) sprites_irq::ptr#3 - [567] *((const byte*) PLAYFIELD_SPRITE_PTRS_2+(byte) 3) ← (byte) sprites_irq::ptr#4 + [560] *((const byte*) PLAYFIELD_SPRITE_PTRS_2) ← (byte) sprites_irq::ptr#0 + [561] (byte) sprites_irq::ptr#3 ← ++ (byte) sprites_irq::ptr#0 + [562] *((const byte*) PLAYFIELD_SPRITE_PTRS_2+(byte) 1) ← (byte) sprites_irq::ptr#3 + [563] *((const byte*) PLAYFIELD_SPRITE_PTRS_2+(byte) 2) ← (byte) sprites_irq::ptr#3 + [564] (byte) sprites_irq::ptr#4 ← ++ (byte) sprites_irq::ptr#3 + [565] *((const byte*) PLAYFIELD_SPRITE_PTRS_2+(byte) 3) ← (byte) sprites_irq::ptr#4 to:sprites_irq::@2 sprites_irq::@2: scope:[sprites_irq] from sprites_irq::@1 sprites_irq::@10 - [568] (byte) irq_cnt ← ++ (byte) irq_cnt - [569] if((byte) irq_cnt==(byte) 9) goto sprites_irq::@3 + [566] (byte) irq_cnt ← ++ (byte) irq_cnt + [567] if((byte) irq_cnt==(byte) 9) goto sprites_irq::@3 to:sprites_irq::@6 sprites_irq::@6: scope:[sprites_irq] from sprites_irq::@2 - [570] if((byte) irq_cnt==(byte) $a) goto sprites_irq::@4 + [568] if((byte) irq_cnt==(byte) $a) goto sprites_irq::@4 to:sprites_irq::@7 sprites_irq::@7: scope:[sprites_irq] from sprites_irq::@6 - [571] (byte) irq_raster_next ← (byte) irq_raster_next + (byte) $14 - [572] (byte) irq_sprite_ypos ← (byte) irq_sprite_ypos + (byte) $15 - [573] (byte) irq_sprite_ptr ← (byte) irq_sprite_ptr + (byte) 3 + [569] (byte) irq_raster_next ← (byte) irq_raster_next + (byte) $14 + [570] (byte) irq_sprite_ypos ← (byte) irq_sprite_ypos + (byte) $15 + [571] (byte) irq_sprite_ptr ← (byte) irq_sprite_ptr + (byte) 3 to:sprites_irq::@5 sprites_irq::@5: scope:[sprites_irq] from sprites_irq::@11 sprites_irq::@4 sprites_irq::@7 - [574] *((const byte*) RASTER) ← (byte) irq_raster_next - [575] *((const byte*) IRQ_STATUS) ← (const byte) IRQ_RASTER + [572] *((const byte*) RASTER) ← (byte) irq_raster_next + [573] *((const byte*) IRQ_STATUS) ← (const byte) IRQ_RASTER to:sprites_irq::@return sprites_irq::@return: scope:[sprites_irq] from sprites_irq::@5 - [576] return + [574] return to:@return sprites_irq::@4: scope:[sprites_irq] from sprites_irq::@6 - [577] (byte) irq_cnt ← (byte) 0 - [578] (byte) irq_raster_next ← (const byte) IRQ_RASTER_FIRST - [579] (byte) irq_sprite_ypos ← (byte) irq_sprite_ypos + (byte) $15 - [580] (byte) irq_sprite_ptr ← (byte) irq_sprite_ptr + (byte) 3 + [575] (byte) irq_cnt ← (byte) 0 + [576] (byte) irq_raster_next ← (const byte) IRQ_RASTER_FIRST + [577] (byte) irq_sprite_ypos ← (byte) irq_sprite_ypos + (byte) $15 + [578] (byte) irq_sprite_ptr ← (byte) irq_sprite_ptr + (byte) 3 to:sprites_irq::@5 sprites_irq::@3: scope:[sprites_irq] from sprites_irq::@2 - [581] (byte) irq_raster_next ← (byte) irq_raster_next + (byte) $15 - [582] (byte) irq_sprite_ypos ← (const byte) SPRITES_FIRST_YPOS + [579] (byte) irq_raster_next ← (byte) irq_raster_next + (byte) $15 + [580] (byte) irq_sprite_ypos ← (const byte) SPRITES_FIRST_YPOS to:sprites_irq::toSpritePtr2 sprites_irq::toSpritePtr2: scope:[sprites_irq] from sprites_irq::@3 - [583] phi() + [581] phi() to:sprites_irq::@11 sprites_irq::@11: scope:[sprites_irq] from sprites_irq::toSpritePtr2 - [584] (byte) irq_sprite_ptr ← (const byte) sprites_irq::toSpritePtr2_return#0 + [582] (byte) irq_sprite_ptr ← (const byte) sprites_irq::toSpritePtr2_return#0 to:sprites_irq::@5 sprites_irq::@1: scope:[sprites_irq] from sprites_irq::@9 - [585] *((const byte*) PLAYFIELD_SPRITE_PTRS_1) ← (byte) sprites_irq::ptr#0 - [586] (byte) sprites_irq::ptr#1 ← ++ (byte) sprites_irq::ptr#0 - [587] *((const byte*) PLAYFIELD_SPRITE_PTRS_1+(byte) 1) ← (byte) sprites_irq::ptr#1 - [588] *((const byte*) PLAYFIELD_SPRITE_PTRS_1+(byte) 2) ← (byte) sprites_irq::ptr#1 - [589] (byte) sprites_irq::ptr#2 ← ++ (byte) sprites_irq::ptr#1 - [590] *((const byte*) PLAYFIELD_SPRITE_PTRS_1+(byte) 3) ← (byte) sprites_irq::ptr#2 + [583] *((const byte*) PLAYFIELD_SPRITE_PTRS_1) ← (byte) sprites_irq::ptr#0 + [584] (byte) sprites_irq::ptr#1 ← ++ (byte) sprites_irq::ptr#0 + [585] *((const byte*) PLAYFIELD_SPRITE_PTRS_1+(byte) 1) ← (byte) sprites_irq::ptr#1 + [586] *((const byte*) PLAYFIELD_SPRITE_PTRS_1+(byte) 2) ← (byte) sprites_irq::ptr#1 + [587] (byte) sprites_irq::ptr#2 ← ++ (byte) sprites_irq::ptr#1 + [588] *((const byte*) PLAYFIELD_SPRITE_PTRS_1+(byte) 3) ← (byte) sprites_irq::ptr#2 to:sprites_irq::@2 @@ -11017,7 +11002,7 @@ VARIABLE REGISTER WEIGHTS (byte*) render_show::toD0182_gfx (byte) render_show::toD0182_return (byte*) render_show::toD0182_screen -(dword) score_bcd loadstore 0.04316546762589928 +(dword) score_bcd loadstore 0.043795620437956206 (void()) sid_rnd_init() (void()) sprites_init() (byte) sprites_init::s @@ -11724,10 +11709,6 @@ Target platform is c64basic / MOS6502X .label PLAYFIELD_SPRITE_PTRS_1 = PLAYFIELD_SCREEN_1+SPRITE_PTRS // Screen Sprite pointers on screen 2 .label PLAYFIELD_SPRITE_PTRS_2 = PLAYFIELD_SCREEN_2+SPRITE_PTRS - // Address of the original playscreen chars - .label PLAYFIELD_SCREEN_ORIGINAL = $3000 - // Address of the original playscreen colors - .label PLAYFIELD_COLORS_ORIGINAL = $1c00 // Address of the sprites covering the playfield .label PLAYFIELD_SPRITES = $2000 // Address of the charset @@ -11828,9 +11809,6 @@ __b1: lda #>0>>$10 sta.z score_bcd+3 // kickasm(location (const byte*) PLAYFIELD_CHARSET) {{ .fill 8,$00 // Place a filled char at the start of the charset .import binary "playfield-screen.imap" }} - // kickasm(location (const byte*) PLAYFIELD_SCREEN_ORIGINAL) {{ // Load chars for the screen .var screen = LoadBinary("playfield-screen.iscr") // Load extended colors for the screen .var extended = LoadBinary("playfield-extended.col") // screen.get(i)+1 because the charset is loaded into PLAYFIELD_CHARSET+8 // extended.get(i)-1 because the extended colors are 1-based (1/2/3/4) // <<6 to move extended colors to the upper 2 bits .fill screen.getSize(), ( (screen.get(i)+1) | (extended.get(i)-1)<<6 ) }} - // kickasm(location (const byte*) PLAYFIELD_COLORS_ORIGINAL) {{ .import binary "playfield-screen.col" }} - // Original Color Data jmp __b2 // @2 __b2: @@ -11838,15 +11816,15 @@ __b2: jmp __b3 // @3 __b3: - // [7] (byte) irq_raster_next ← (const byte) IRQ_RASTER_FIRST -- vbuz1=vbuc1 + // [5] (byte) irq_raster_next ← (const byte) IRQ_RASTER_FIRST -- vbuz1=vbuc1 // The raster line of the next IRQ lda #IRQ_RASTER_FIRST sta.z irq_raster_next - // [8] (byte) irq_sprite_ypos ← (const byte) SPRITES_FIRST_YPOS+(byte) $15 -- vbuz1=vbuc1 + // [6] (byte) irq_sprite_ypos ← (const byte) SPRITES_FIRST_YPOS+(byte) $15 -- vbuz1=vbuc1 // Y-pos of the sprites on the next IRQ lda #SPRITES_FIRST_YPOS+$15 sta.z irq_sprite_ypos - // [9] phi from @3 to toSpritePtr1 [phi:@3->toSpritePtr1] + // [7] phi from @3 to toSpritePtr1 [phi:@3->toSpritePtr1] toSpritePtr1_from___b3: jmp toSpritePtr1 // toSpritePtr1 @@ -11854,24 +11832,24 @@ toSpritePtr1: jmp __b5 // @5 __b5: - // [10] (byte) irq_sprite_ptr ← (const byte) toSpritePtr1_return#0+(byte) 3 -- vbuz1=vbuc1 + // [8] (byte) irq_sprite_ptr ← (const byte) toSpritePtr1_return#0+(byte) 3 -- vbuz1=vbuc1 // Index of the sprites to show on the next IRQ lda #toSpritePtr1_return+3 sta.z irq_sprite_ptr - // [11] (byte) irq_cnt ← (byte) 0 -- vbuz1=vbuc1 + // [9] (byte) irq_cnt ← (byte) 0 -- vbuz1=vbuc1 // Counting the 10 IRQs lda #0 sta.z irq_cnt - // [12] phi from @5 to @4 [phi:@5->@4] + // [10] phi from @5 to @4 [phi:@5->@4] __b4_from___b5: jmp __b4 // @4 __b4: - // [13] call main - // [15] phi from @4 to main [phi:@4->main] + // [11] call main + // [13] phi from @4 to main [phi:@4->main] main_from___b4: jsr main - // [14] phi from @4 to @end [phi:@4->@end] + // [12] phi from @4 to @end [phi:@4->@end] __bend_from___b4: jmp __bend // @end @@ -11880,192 +11858,192 @@ __bend: main: { .label key_event = $7a .label render = $7d - // [16] call sid_rnd_init + // [14] call sid_rnd_init jsr sid_rnd_init jmp __b8 // main::@8 __b8: // asm { sei } sei - // [18] call render_init - // [498] phi from main::@8 to render_init [phi:main::@8->render_init] + // [16] call render_init + // [496] phi from main::@8 to render_init [phi:main::@8->render_init] render_init_from___b8: jsr render_init - // [19] phi from main::@8 to main::@9 [phi:main::@8->main::@9] + // [17] phi from main::@8 to main::@9 [phi:main::@8->main::@9] __b9_from___b8: jmp __b9 // main::@9 __b9: - // [20] call sprites_init + // [18] call sprites_init jsr sprites_init - // [21] phi from main::@9 to main::@10 [phi:main::@9->main::@10] + // [19] phi from main::@9 to main::@10 [phi:main::@9->main::@10] __b10_from___b9: jmp __b10 // main::@10 __b10: - // [22] call sprites_irq_init + // [20] call sprites_irq_init jsr sprites_irq_init - // [23] phi from main::@10 to main::@11 [phi:main::@10->main::@11] + // [21] phi from main::@10 to main::@11 [phi:main::@10->main::@11] __b11_from___b10: jmp __b11 // main::@11 __b11: - // [24] call play_init - // [457] phi from main::@11 to play_init [phi:main::@11->play_init] + // [22] call play_init + // [455] phi from main::@11 to play_init [phi:main::@11->play_init] play_init_from___b11: jsr play_init - // [25] phi from main::@11 to main::@12 [phi:main::@11->main::@12] + // [23] phi from main::@11 to main::@12 [phi:main::@11->main::@12] __b12_from___b11: jmp __b12 // main::@12 __b12: - // [26] call play_spawn_current - // [287] phi from main::@12 to play_spawn_current [phi:main::@12->play_spawn_current] + // [24] call play_spawn_current + // [285] phi from main::@12 to play_spawn_current [phi:main::@12->play_spawn_current] play_spawn_current_from___b12: - // [287] phi (byte) game_over#65 = (byte) 0 [phi:main::@12->play_spawn_current#0] -- vbuz1=vbuc1 + // [285] phi (byte) game_over#65 = (byte) 0 [phi:main::@12->play_spawn_current#0] -- vbuz1=vbuc1 lda #0 sta.z game_over - // [287] phi (byte) next_piece_idx#17 = (byte) 0 [phi:main::@12->play_spawn_current#1] -- vbuz1=vbuc1 + // [285] phi (byte) next_piece_idx#17 = (byte) 0 [phi:main::@12->play_spawn_current#1] -- vbuz1=vbuc1 lda #0 sta.z next_piece_idx jsr play_spawn_current - // [27] phi from main::@12 to main::@13 [phi:main::@12->main::@13] + // [25] phi from main::@12 to main::@13 [phi:main::@12->main::@13] __b13_from___b12: jmp __b13 // main::@13 __b13: - // [28] call play_spawn_current - // [287] phi from main::@13 to play_spawn_current [phi:main::@13->play_spawn_current] + // [26] call play_spawn_current + // [285] phi from main::@13 to play_spawn_current [phi:main::@13->play_spawn_current] play_spawn_current_from___b13: - // [287] phi (byte) game_over#65 = (byte) game_over#52 [phi:main::@13->play_spawn_current#0] -- register_copy - // [287] phi (byte) next_piece_idx#17 = (byte) play_spawn_current::piece_idx#2 [phi:main::@13->play_spawn_current#1] -- register_copy + // [285] phi (byte) game_over#65 = (byte) game_over#52 [phi:main::@13->play_spawn_current#0] -- register_copy + // [285] phi (byte) next_piece_idx#17 = (byte) play_spawn_current::piece_idx#2 [phi:main::@13->play_spawn_current#1] -- register_copy jsr play_spawn_current - // [29] phi from main::@13 to main::@14 [phi:main::@13->main::@14] + // [27] phi from main::@13 to main::@14 [phi:main::@13->main::@14] __b14_from___b13: jmp __b14 // main::@14 __b14: - // [30] call render_playfield - // [152] phi from main::@14 to render_playfield [phi:main::@14->render_playfield] + // [28] call render_playfield + // [150] phi from main::@14 to render_playfield [phi:main::@14->render_playfield] render_playfield_from___b14: - // [152] phi (byte) render_screen_render#22 = (byte) $20 [phi:main::@14->render_playfield#0] -- vbuz1=vbuc1 + // [150] phi (byte) render_screen_render#22 = (byte) $20 [phi:main::@14->render_playfield#0] -- vbuz1=vbuc1 lda #$20 sta.z render_screen_render_2 jsr render_playfield jmp __b15 // main::@15 __b15: - // [31] (byte) current_ypos#97 ← (byte) current_ypos#6 -- vbuz1=vbuz2 + // [29] (byte) current_ypos#97 ← (byte) current_ypos#6 -- vbuz1=vbuz2 lda.z current_ypos sta.z current_ypos_1 - // [32] (byte) current_xpos#118 ← (byte) current_xpos#100 -- vbuz1=vbuz2 + // [30] (byte) current_xpos#118 ← (byte) current_xpos#100 -- vbuz1=vbuz2 lda.z current_xpos sta.z current_xpos_1 - // [33] (byte*) current_piece_gfx#111 ← (byte*)*((const word*) PIECES + (byte~) play_spawn_current::$7) -- pbuz1=pptc1_derefidx_vbuz2 + // [31] (byte*) current_piece_gfx#111 ← (byte*)*((const word*) PIECES + (byte~) play_spawn_current::$7) -- pbuz1=pptc1_derefidx_vbuz2 ldy.z play_spawn_current.__7 lda PIECES,y sta.z current_piece_gfx_1 lda PIECES+1,y sta.z current_piece_gfx_1+1 - // [34] (byte) current_piece_char#99 ← (byte) current_piece_char#5 -- vbuz1=vbuz2 + // [32] (byte) current_piece_char#99 ← (byte) current_piece_char#5 -- vbuz1=vbuz2 lda.z current_piece_char sta.z current_piece_char_1 - // [35] call render_moving - // [130] phi from main::@15 to render_moving [phi:main::@15->render_moving] + // [33] call render_moving + // [128] phi from main::@15 to render_moving [phi:main::@15->render_moving] render_moving_from___b15: - // [130] phi (byte) current_piece_char#68 = (byte) current_piece_char#99 [phi:main::@15->render_moving#0] -- register_copy - // [130] phi (byte*) current_piece_gfx#64 = (byte*) current_piece_gfx#111 [phi:main::@15->render_moving#1] -- register_copy - // [130] phi (byte) current_xpos#59 = (byte) current_xpos#118 [phi:main::@15->render_moving#2] -- register_copy - // [130] phi (byte) render_screen_render#33 = (byte) $20 [phi:main::@15->render_moving#3] -- vbuz1=vbuc1 + // [128] phi (byte) current_piece_char#68 = (byte) current_piece_char#99 [phi:main::@15->render_moving#0] -- register_copy + // [128] phi (byte*) current_piece_gfx#64 = (byte*) current_piece_gfx#111 [phi:main::@15->render_moving#1] -- register_copy + // [128] phi (byte) current_xpos#59 = (byte) current_xpos#118 [phi:main::@15->render_moving#2] -- register_copy + // [128] phi (byte) render_screen_render#33 = (byte) $20 [phi:main::@15->render_moving#3] -- vbuz1=vbuc1 lda #$20 sta.z render_screen_render_3 - // [130] phi (byte) current_ypos#13 = (byte) current_ypos#97 [phi:main::@15->render_moving#4] -- register_copy + // [128] phi (byte) current_ypos#13 = (byte) current_ypos#97 [phi:main::@15->render_moving#4] -- register_copy jsr render_moving jmp __b16 // main::@16 __b16: - // [36] (byte) next_piece_idx#76 ← (byte) play_spawn_current::piece_idx#2 -- vbuz1=vbuz2 + // [34] (byte) next_piece_idx#76 ← (byte) play_spawn_current::piece_idx#2 -- vbuz1=vbuz2 lda.z play_spawn_current.piece_idx sta.z next_piece_idx_1 - // [37] call render_next - // [109] phi from main::@16 to render_next [phi:main::@16->render_next] + // [35] call render_next + // [107] phi from main::@16 to render_next [phi:main::@16->render_next] render_next_from___b16: - // [109] phi (byte) next_piece_idx#12 = (byte) next_piece_idx#76 [phi:main::@16->render_next#0] -- register_copy - // [109] phi (byte) render_screen_render#15 = (byte) $20 [phi:main::@16->render_next#1] -- vbuz1=vbuc1 + // [107] phi (byte) next_piece_idx#12 = (byte) next_piece_idx#76 [phi:main::@16->render_next#0] -- register_copy + // [107] phi (byte) render_screen_render#15 = (byte) $20 [phi:main::@16->render_next#1] -- vbuz1=vbuc1 lda #$20 sta.z render_screen_render_1 jsr render_next jmp __b17 // main::@17 __b17: - // [38] (byte*) current_piece#101 ← (byte*)*((const word*) PIECES + (byte~) play_spawn_current::$7) -- pbuz1=pptc1_derefidx_vbuz2 + // [36] (byte*) current_piece#101 ← (byte*)*((const word*) PIECES + (byte~) play_spawn_current::$7) -- pbuz1=pptc1_derefidx_vbuz2 ldy.z play_spawn_current.__7 lda PIECES,y sta.z current_piece lda PIECES+1,y sta.z current_piece+1 - // [39] (byte*) current_piece_gfx#123 ← (byte*)*((const word*) PIECES + (byte~) play_spawn_current::$7) -- pbuz1=pptc1_derefidx_vbuz2 + // [37] (byte*) current_piece_gfx#123 ← (byte*)*((const word*) PIECES + (byte~) play_spawn_current::$7) -- pbuz1=pptc1_derefidx_vbuz2 ldy.z play_spawn_current.__7 lda PIECES,y sta.z current_piece_gfx lda PIECES+1,y sta.z current_piece_gfx+1 - // [40] phi from main::@17 to main::@1 [phi:main::@17->main::@1] + // [38] phi from main::@17 to main::@1 [phi:main::@17->main::@1] __b1_from___b17: - // [40] phi (byte) level_bcd#11 = (byte) 0 [phi:main::@17->main::@1#0] -- vbuz1=vbuc1 + // [38] phi (byte) level_bcd#11 = (byte) 0 [phi:main::@17->main::@1#0] -- vbuz1=vbuc1 lda #0 sta.z level_bcd - // [40] phi (byte) level#10 = (byte) 0 [phi:main::@17->main::@1#1] -- vbuz1=vbuc1 + // [38] phi (byte) level#10 = (byte) 0 [phi:main::@17->main::@1#1] -- vbuz1=vbuc1 lda #0 sta.z level - // [40] phi (word) lines_bcd#19 = (word) 0 [phi:main::@17->main::@1#2] -- vwuz1=vwuc1 + // [38] phi (word) lines_bcd#19 = (word) 0 [phi:main::@17->main::@1#2] -- vwuz1=vwuc1 lda #<0 sta.z lines_bcd lda #>0 sta.z lines_bcd+1 - // [40] phi (byte) current_movedown_counter#16 = (byte) 0 [phi:main::@17->main::@1#3] -- vbuz1=vbuc1 + // [38] phi (byte) current_movedown_counter#16 = (byte) 0 [phi:main::@17->main::@1#3] -- vbuz1=vbuc1 lda #0 sta.z current_movedown_counter - // [40] phi (byte) keyboard_events_size#19 = (byte) 0 [phi:main::@17->main::@1#4] -- vbuz1=vbuc1 + // [38] phi (byte) keyboard_events_size#19 = (byte) 0 [phi:main::@17->main::@1#4] -- vbuz1=vbuc1 lda #0 sta.z keyboard_events_size - // [40] phi (byte) next_piece_idx#10 = (byte) play_spawn_current::piece_idx#2 [phi:main::@17->main::@1#5] -- register_copy - // [40] phi (byte) game_over#10 = (byte) game_over#52 [phi:main::@17->main::@1#6] -- register_copy - // [40] phi (byte) current_ypos#11 = (byte) current_ypos#6 [phi:main::@17->main::@1#7] -- register_copy - // [40] phi (byte) current_xpos#14 = (byte) current_xpos#100 [phi:main::@17->main::@1#8] -- register_copy - // [40] phi (byte*) current_piece_gfx#13 = (byte*) current_piece_gfx#123 [phi:main::@17->main::@1#9] -- register_copy - // [40] phi (byte) current_orientation#13 = (byte) 0 [phi:main::@17->main::@1#10] -- vbuz1=vbuc1 + // [38] phi (byte) next_piece_idx#10 = (byte) play_spawn_current::piece_idx#2 [phi:main::@17->main::@1#5] -- register_copy + // [38] phi (byte) game_over#10 = (byte) game_over#52 [phi:main::@17->main::@1#6] -- register_copy + // [38] phi (byte) current_ypos#11 = (byte) current_ypos#6 [phi:main::@17->main::@1#7] -- register_copy + // [38] phi (byte) current_xpos#14 = (byte) current_xpos#100 [phi:main::@17->main::@1#8] -- register_copy + // [38] phi (byte*) current_piece_gfx#13 = (byte*) current_piece_gfx#123 [phi:main::@17->main::@1#9] -- register_copy + // [38] phi (byte) current_orientation#13 = (byte) 0 [phi:main::@17->main::@1#10] -- vbuz1=vbuc1 lda #0 sta.z current_orientation - // [40] phi (byte) current_piece_char#10 = (byte) current_piece_char#5 [phi:main::@17->main::@1#11] -- register_copy - // [40] phi (byte*) current_piece#10 = (byte*) current_piece#101 [phi:main::@17->main::@1#12] -- register_copy - // [40] phi (byte) current_movedown_slow#14 = (byte) current_movedown_slow#1 [phi:main::@17->main::@1#13] -- register_copy - // [40] phi (byte) render_screen_render#18 = (byte) $20 [phi:main::@17->main::@1#14] -- vbuz1=vbuc1 + // [38] phi (byte) current_piece_char#10 = (byte) current_piece_char#5 [phi:main::@17->main::@1#11] -- register_copy + // [38] phi (byte*) current_piece#10 = (byte*) current_piece#101 [phi:main::@17->main::@1#12] -- register_copy + // [38] phi (byte) current_movedown_slow#14 = (byte) current_movedown_slow#1 [phi:main::@17->main::@1#13] -- register_copy + // [38] phi (byte) render_screen_render#18 = (byte) $20 [phi:main::@17->main::@1#14] -- vbuz1=vbuc1 lda #$20 sta.z render_screen_render - // [40] phi (byte) render_screen_show#16 = (byte) 0 [phi:main::@17->main::@1#15] -- vbuz1=vbuc1 + // [38] phi (byte) render_screen_show#16 = (byte) 0 [phi:main::@17->main::@1#15] -- vbuz1=vbuc1 lda #0 sta.z render_screen_show jmp __b1 - // [40] phi from main::@25 main::@6 to main::@1 [phi:main::@25/main::@6->main::@1] + // [38] phi from main::@25 main::@6 to main::@1 [phi:main::@25/main::@6->main::@1] __b1_from___b25: __b1_from___b6: - // [40] phi (byte) level_bcd#11 = (byte) level_bcd#17 [phi:main::@25/main::@6->main::@1#0] -- register_copy - // [40] phi (byte) level#10 = (byte) level#17 [phi:main::@25/main::@6->main::@1#1] -- register_copy - // [40] phi (word) lines_bcd#19 = (word) lines_bcd#15 [phi:main::@25/main::@6->main::@1#2] -- register_copy - // [40] phi (byte) current_movedown_counter#16 = (byte) current_movedown_counter#14 [phi:main::@25/main::@6->main::@1#3] -- register_copy - // [40] phi (byte) keyboard_events_size#19 = (byte) keyboard_events_size#16 [phi:main::@25/main::@6->main::@1#4] -- register_copy - // [40] phi (byte) next_piece_idx#10 = (byte) next_piece_idx#16 [phi:main::@25/main::@6->main::@1#5] -- register_copy - // [40] phi (byte) game_over#10 = (byte) game_over#15 [phi:main::@25/main::@6->main::@1#6] -- register_copy - // [40] phi (byte) current_ypos#11 = (byte) current_ypos#19 [phi:main::@25/main::@6->main::@1#7] -- register_copy - // [40] phi (byte) current_xpos#14 = (byte) current_xpos#19 [phi:main::@25/main::@6->main::@1#8] -- register_copy - // [40] phi (byte*) current_piece_gfx#13 = (byte*) current_piece_gfx#18 [phi:main::@25/main::@6->main::@1#9] -- register_copy - // [40] phi (byte) current_orientation#13 = (byte) current_orientation#17 [phi:main::@25/main::@6->main::@1#10] -- register_copy - // [40] phi (byte) current_piece_char#10 = (byte) current_piece_char#16 [phi:main::@25/main::@6->main::@1#11] -- register_copy - // [40] phi (byte*) current_piece#10 = (byte*) current_piece#15 [phi:main::@25/main::@6->main::@1#12] -- register_copy - // [40] phi (byte) current_movedown_slow#14 = (byte) current_movedown_slow#21 [phi:main::@25/main::@6->main::@1#13] -- register_copy - // [40] phi (byte) render_screen_render#18 = (byte) render_screen_render#11 [phi:main::@25/main::@6->main::@1#14] -- register_copy - // [40] phi (byte) render_screen_show#16 = (byte) render_screen_show#13 [phi:main::@25/main::@6->main::@1#15] -- register_copy + // [38] phi (byte) level_bcd#11 = (byte) level_bcd#17 [phi:main::@25/main::@6->main::@1#0] -- register_copy + // [38] phi (byte) level#10 = (byte) level#17 [phi:main::@25/main::@6->main::@1#1] -- register_copy + // [38] phi (word) lines_bcd#19 = (word) lines_bcd#15 [phi:main::@25/main::@6->main::@1#2] -- register_copy + // [38] phi (byte) current_movedown_counter#16 = (byte) current_movedown_counter#14 [phi:main::@25/main::@6->main::@1#3] -- register_copy + // [38] phi (byte) keyboard_events_size#19 = (byte) keyboard_events_size#16 [phi:main::@25/main::@6->main::@1#4] -- register_copy + // [38] phi (byte) next_piece_idx#10 = (byte) next_piece_idx#16 [phi:main::@25/main::@6->main::@1#5] -- register_copy + // [38] phi (byte) game_over#10 = (byte) game_over#15 [phi:main::@25/main::@6->main::@1#6] -- register_copy + // [38] phi (byte) current_ypos#11 = (byte) current_ypos#19 [phi:main::@25/main::@6->main::@1#7] -- register_copy + // [38] phi (byte) current_xpos#14 = (byte) current_xpos#19 [phi:main::@25/main::@6->main::@1#8] -- register_copy + // [38] phi (byte*) current_piece_gfx#13 = (byte*) current_piece_gfx#18 [phi:main::@25/main::@6->main::@1#9] -- register_copy + // [38] phi (byte) current_orientation#13 = (byte) current_orientation#17 [phi:main::@25/main::@6->main::@1#10] -- register_copy + // [38] phi (byte) current_piece_char#10 = (byte) current_piece_char#16 [phi:main::@25/main::@6->main::@1#11] -- register_copy + // [38] phi (byte*) current_piece#10 = (byte*) current_piece#15 [phi:main::@25/main::@6->main::@1#12] -- register_copy + // [38] phi (byte) current_movedown_slow#14 = (byte) current_movedown_slow#21 [phi:main::@25/main::@6->main::@1#13] -- register_copy + // [38] phi (byte) render_screen_render#18 = (byte) render_screen_render#11 [phi:main::@25/main::@6->main::@1#14] -- register_copy + // [38] phi (byte) render_screen_show#16 = (byte) render_screen_show#13 [phi:main::@25/main::@6->main::@1#15] -- register_copy jmp __b1 // main::@1 __b1: @@ -12073,161 +12051,161 @@ main: { // Wait for a frame to pass // main::@2 __b2: - // [41] if(*((const byte*) RASTER)!=(byte) $ff) goto main::@2 -- _deref_pbuc1_neq_vbuc2_then_la1 + // [39] if(*((const byte*) RASTER)!=(byte) $ff) goto main::@2 -- _deref_pbuc1_neq_vbuc2_then_la1 lda #$ff cmp RASTER bne __b2 - // [42] phi from main::@2 to main::@3 [phi:main::@2->main::@3] + // [40] phi from main::@2 to main::@3 [phi:main::@2->main::@3] __b3_from___b2: jmp __b3 // main::@3 __b3: - // [43] call render_show + // [41] call render_show jsr render_show - // [44] phi from main::@3 to main::@18 [phi:main::@3->main::@18] + // [42] phi from main::@3 to main::@18 [phi:main::@3->main::@18] __b18_from___b3: jmp __b18 // main::@18 __b18: - // [45] call keyboard_event_scan - // [392] phi from main::@18 to keyboard_event_scan [phi:main::@18->keyboard_event_scan] + // [43] call keyboard_event_scan + // [390] phi from main::@18 to keyboard_event_scan [phi:main::@18->keyboard_event_scan] keyboard_event_scan_from___b18: jsr keyboard_event_scan - // [46] phi from main::@18 to main::@19 [phi:main::@18->main::@19] + // [44] phi from main::@18 to main::@19 [phi:main::@18->main::@19] __b19_from___b18: jmp __b19 // main::@19 __b19: - // [47] call keyboard_event_get + // [45] call keyboard_event_get jsr keyboard_event_get - // [48] (byte) keyboard_event_get::return#3 ← (byte) keyboard_event_get::return#2 -- vbuz1=vbuz2 + // [46] (byte) keyboard_event_get::return#3 ← (byte) keyboard_event_get::return#2 -- vbuz1=vbuz2 lda.z keyboard_event_get.return sta.z keyboard_event_get.return_1 jmp __b20 // main::@20 __b20: - // [49] (byte) main::key_event#0 ← (byte) keyboard_event_get::return#3 -- vbuz1=vbuz2 + // [47] (byte) main::key_event#0 ← (byte) keyboard_event_get::return#3 -- vbuz1=vbuz2 lda.z keyboard_event_get.return_1 sta.z key_event - // [50] if((byte) game_over#10==(byte) 0) goto main::@4 -- vbuz1_eq_0_then_la1 + // [48] if((byte) game_over#10==(byte) 0) goto main::@4 -- vbuz1_eq_0_then_la1 lda.z game_over cmp #0 beq __b4 jmp __b5 // main::@5 __b5: - // [51] *((const byte*) BORDERCOL) ← ++ *((const byte*) BORDERCOL) -- _deref_pbuc1=_inc__deref_pbuc1 + // [49] *((const byte*) BORDERCOL) ← ++ *((const byte*) BORDERCOL) -- _deref_pbuc1=_inc__deref_pbuc1 inc BORDERCOL jmp __b5 // main::@4 __b4: - // [52] (byte) play_movement::key_event#0 ← (byte) main::key_event#0 -- vbuz1=vbuz2 + // [50] (byte) play_movement::key_event#0 ← (byte) main::key_event#0 -- vbuz1=vbuz2 lda.z key_event sta.z play_movement.key_event - // [53] call play_movement + // [51] call play_movement jsr play_movement - // [54] (byte) play_movement::return#3 ← (byte) play_movement::return#2 -- vbuz1=vbuz2 + // [52] (byte) play_movement::return#3 ← (byte) play_movement::return#2 -- vbuz1=vbuz2 lda.z play_movement.return sta.z play_movement.return_1 jmp __b21 // main::@21 __b21: - // [55] (byte) main::render#1 ← (byte) play_movement::return#3 -- vbuz1=vbuz2 + // [53] (byte) main::render#1 ← (byte) play_movement::return#3 -- vbuz1=vbuz2 lda.z play_movement.return_1 sta.z render jmp __b6 // main::@6 __b6: - // [56] if((byte) main::render#1==(byte) 0) goto main::@1 -- vbuz1_eq_0_then_la1 + // [54] if((byte) main::render#1==(byte) 0) goto main::@1 -- vbuz1_eq_0_then_la1 lda.z render cmp #0 beq __b1_from___b6 jmp __b7 // main::@7 __b7: - // [57] (byte) render_screen_render#63 ← (byte) render_screen_render#18 -- vbuz1=vbuz2 + // [55] (byte) render_screen_render#63 ← (byte) render_screen_render#18 -- vbuz1=vbuz2 lda.z render_screen_render sta.z render_screen_render_2 - // [58] call render_playfield - // [152] phi from main::@7 to render_playfield [phi:main::@7->render_playfield] + // [56] call render_playfield + // [150] phi from main::@7 to render_playfield [phi:main::@7->render_playfield] render_playfield_from___b7: - // [152] phi (byte) render_screen_render#22 = (byte) render_screen_render#63 [phi:main::@7->render_playfield#0] -- register_copy + // [150] phi (byte) render_screen_render#22 = (byte) render_screen_render#63 [phi:main::@7->render_playfield#0] -- register_copy jsr render_playfield jmp __b22 // main::@22 __b22: - // [59] (byte) current_ypos#98 ← (byte) current_ypos#19 -- vbuz1=vbuz2 + // [57] (byte) current_ypos#98 ← (byte) current_ypos#19 -- vbuz1=vbuz2 lda.z current_ypos sta.z current_ypos_1 - // [60] (byte) render_screen_render#64 ← (byte) render_screen_render#18 -- vbuz1=vbuz2 + // [58] (byte) render_screen_render#64 ← (byte) render_screen_render#18 -- vbuz1=vbuz2 lda.z render_screen_render sta.z render_screen_render_3 - // [61] (byte) current_xpos#119 ← (byte) current_xpos#19 -- vbuz1=vbuz2 + // [59] (byte) current_xpos#119 ← (byte) current_xpos#19 -- vbuz1=vbuz2 lda.z current_xpos sta.z current_xpos_1 - // [62] (byte*) current_piece_gfx#112 ← (byte*) current_piece_gfx#18 -- pbuz1=pbuz2 + // [60] (byte*) current_piece_gfx#112 ← (byte*) current_piece_gfx#18 -- pbuz1=pbuz2 lda.z current_piece_gfx sta.z current_piece_gfx_1 lda.z current_piece_gfx+1 sta.z current_piece_gfx_1+1 - // [63] (byte) current_piece_char#100 ← (byte) current_piece_char#16 -- vbuz1=vbuz2 + // [61] (byte) current_piece_char#100 ← (byte) current_piece_char#16 -- vbuz1=vbuz2 lda.z current_piece_char sta.z current_piece_char_1 - // [64] call render_moving - // [130] phi from main::@22 to render_moving [phi:main::@22->render_moving] + // [62] call render_moving + // [128] phi from main::@22 to render_moving [phi:main::@22->render_moving] render_moving_from___b22: - // [130] phi (byte) current_piece_char#68 = (byte) current_piece_char#100 [phi:main::@22->render_moving#0] -- register_copy - // [130] phi (byte*) current_piece_gfx#64 = (byte*) current_piece_gfx#112 [phi:main::@22->render_moving#1] -- register_copy - // [130] phi (byte) current_xpos#59 = (byte) current_xpos#119 [phi:main::@22->render_moving#2] -- register_copy - // [130] phi (byte) render_screen_render#33 = (byte) render_screen_render#64 [phi:main::@22->render_moving#3] -- register_copy - // [130] phi (byte) current_ypos#13 = (byte) current_ypos#98 [phi:main::@22->render_moving#4] -- register_copy + // [128] phi (byte) current_piece_char#68 = (byte) current_piece_char#100 [phi:main::@22->render_moving#0] -- register_copy + // [128] phi (byte*) current_piece_gfx#64 = (byte*) current_piece_gfx#112 [phi:main::@22->render_moving#1] -- register_copy + // [128] phi (byte) current_xpos#59 = (byte) current_xpos#119 [phi:main::@22->render_moving#2] -- register_copy + // [128] phi (byte) render_screen_render#33 = (byte) render_screen_render#64 [phi:main::@22->render_moving#3] -- register_copy + // [128] phi (byte) current_ypos#13 = (byte) current_ypos#98 [phi:main::@22->render_moving#4] -- register_copy jsr render_moving jmp __b23 // main::@23 __b23: - // [65] (byte) render_screen_render#65 ← (byte) render_screen_render#18 -- vbuz1=vbuz2 + // [63] (byte) render_screen_render#65 ← (byte) render_screen_render#18 -- vbuz1=vbuz2 lda.z render_screen_render sta.z render_screen_render_1 - // [66] (byte) next_piece_idx#77 ← (byte) next_piece_idx#16 -- vbuz1=vbuz2 + // [64] (byte) next_piece_idx#77 ← (byte) next_piece_idx#16 -- vbuz1=vbuz2 lda.z next_piece_idx sta.z next_piece_idx_1 - // [67] call render_next - // [109] phi from main::@23 to render_next [phi:main::@23->render_next] + // [65] call render_next + // [107] phi from main::@23 to render_next [phi:main::@23->render_next] render_next_from___b23: - // [109] phi (byte) next_piece_idx#12 = (byte) next_piece_idx#77 [phi:main::@23->render_next#0] -- register_copy - // [109] phi (byte) render_screen_render#15 = (byte) render_screen_render#65 [phi:main::@23->render_next#1] -- register_copy + // [107] phi (byte) next_piece_idx#12 = (byte) next_piece_idx#77 [phi:main::@23->render_next#0] -- register_copy + // [107] phi (byte) render_screen_render#15 = (byte) render_screen_render#65 [phi:main::@23->render_next#1] -- register_copy jsr render_next - // [68] phi from main::@23 to main::@24 [phi:main::@23->main::@24] + // [66] phi from main::@23 to main::@24 [phi:main::@23->main::@24] __b24_from___b23: jmp __b24 // main::@24 __b24: - // [69] call render_score + // [67] call render_score jsr render_score - // [70] phi from main::@24 to main::@25 [phi:main::@24->main::@25] + // [68] phi from main::@24 to main::@25 [phi:main::@24->main::@25] __b25_from___b24: jmp __b25 // main::@25 __b25: - // [71] call render_screen_swap + // [69] call render_screen_swap jsr render_screen_swap jmp __b1_from___b25 } // render_screen_swap // Swap rendering to the other screen (used for double buffering) render_screen_swap: { - // [72] (byte) render_screen_render#11 ← (byte) render_screen_render#18 ^ (byte) $20 -- vbuz1=vbuz1_bxor_vbuc1 + // [70] (byte) render_screen_render#11 ← (byte) render_screen_render#18 ^ (byte) $20 -- vbuz1=vbuz1_bxor_vbuc1 lda #$20 eor.z render_screen_render sta.z render_screen_render - // [73] (byte) render_screen_show#13 ← (byte) render_screen_show#16 ^ (byte) $20 -- vbuz1=vbuz1_bxor_vbuc1 + // [71] (byte) render_screen_show#13 ← (byte) render_screen_show#16 ^ (byte) $20 -- vbuz1=vbuz1_bxor_vbuc1 lda #$20 eor.z render_screen_show sta.z render_screen_show jmp __breturn // render_screen_swap::@return __breturn: - // [74] return + // [72] return rts } // render_score @@ -12238,26 +12216,26 @@ render_score: { .const lines_offset = $28*1+$16 .const level_offset = $28*$13+$1f .label screen = 5 - // [75] if((byte) render_screen_render#18==(byte) 0) goto render_score::@1 -- vbuz1_eq_0_then_la1 + // [73] if((byte) render_screen_render#18==(byte) 0) goto render_score::@1 -- vbuz1_eq_0_then_la1 lda.z render_screen_render cmp #0 beq __b1_from_render_score - // [77] phi from render_score to render_score::@2 [phi:render_score->render_score::@2] + // [75] phi from render_score to render_score::@2 [phi:render_score->render_score::@2] __b2_from_render_score: - // [77] phi (byte*) render_score::screen#3 = (const byte*) PLAYFIELD_SCREEN_2 [phi:render_score->render_score::@2#0] -- pbuz1=pbuc1 + // [75] phi (byte*) render_score::screen#3 = (const byte*) PLAYFIELD_SCREEN_2 [phi:render_score->render_score::@2#0] -- pbuz1=pbuc1 lda #PLAYFIELD_SCREEN_2 sta.z screen+1 jmp __b2 - // [76] phi from render_score to render_score::@1 [phi:render_score->render_score::@1] + // [74] phi from render_score to render_score::@1 [phi:render_score->render_score::@1] __b1_from_render_score: jmp __b1 // render_score::@1 __b1: - // [77] phi from render_score::@1 to render_score::@2 [phi:render_score::@1->render_score::@2] + // [75] phi from render_score::@1 to render_score::@2 [phi:render_score::@1->render_score::@2] __b2_from___b1: - // [77] phi (byte*) render_score::screen#3 = (const byte*) PLAYFIELD_SCREEN_1 [phi:render_score::@1->render_score::@2#0] -- pbuz1=pbuc1 + // [75] phi (byte*) render_score::screen#3 = (const byte*) PLAYFIELD_SCREEN_1 [phi:render_score::@1->render_score::@2#0] -- pbuz1=pbuc1 lda #PLAYFIELD_SCREEN_1 @@ -12265,157 +12243,157 @@ render_score: { jmp __b2 // render_score::@2 __b2: - // [78] (byte*) render_bcd::screen#0 ← (byte*) render_score::screen#3 -- pbuz1=pbuz2 + // [76] (byte*) render_bcd::screen#0 ← (byte*) render_score::screen#3 -- pbuz1=pbuz2 lda.z screen sta.z render_bcd.screen lda.z screen+1 sta.z render_bcd.screen+1 - // [79] (byte) render_bcd::bcd#0 ← *((const byte*) render_score::score_bytes+(byte) 2) -- vbuz1=_deref_pbuc1 + // [77] (byte) render_bcd::bcd#0 ← *((const byte*) render_score::score_bytes+(byte) 2) -- vbuz1=_deref_pbuc1 lda score_bytes+2 sta.z render_bcd.bcd - // [80] call render_bcd - // [97] phi from render_score::@2 to render_bcd [phi:render_score::@2->render_bcd] + // [78] call render_bcd + // [95] phi from render_score::@2 to render_bcd [phi:render_score::@2->render_bcd] render_bcd_from___b2: - // [97] phi (byte) render_bcd::bcd#6 = (byte) render_bcd::bcd#0 [phi:render_score::@2->render_bcd#0] -- register_copy - // [97] phi (byte) render_bcd::only_low#6 = (byte) 0 [phi:render_score::@2->render_bcd#1] -- vbuz1=vbuc1 + // [95] phi (byte) render_bcd::bcd#6 = (byte) render_bcd::bcd#0 [phi:render_score::@2->render_bcd#0] -- register_copy + // [95] phi (byte) render_bcd::only_low#6 = (byte) 0 [phi:render_score::@2->render_bcd#1] -- vbuz1=vbuc1 lda #0 sta.z render_bcd.only_low - // [97] phi (word) render_bcd::offset#6 = (const word) render_score::score_offset [phi:render_score::@2->render_bcd#2] -- vwuz1=vwuc1 + // [95] phi (word) render_bcd::offset#6 = (const word) render_score::score_offset [phi:render_score::@2->render_bcd#2] -- vwuz1=vwuc1 lda #score_offset sta.z render_bcd.offset+1 - // [97] phi (byte*) render_bcd::screen#6 = (byte*) render_bcd::screen#0 [phi:render_score::@2->render_bcd#3] -- register_copy + // [95] phi (byte*) render_bcd::screen#6 = (byte*) render_bcd::screen#0 [phi:render_score::@2->render_bcd#3] -- register_copy jsr render_bcd jmp __b3 // render_score::@3 __b3: - // [81] (byte*) render_bcd::screen#1 ← (byte*) render_score::screen#3 -- pbuz1=pbuz2 + // [79] (byte*) render_bcd::screen#1 ← (byte*) render_score::screen#3 -- pbuz1=pbuz2 lda.z screen sta.z render_bcd.screen lda.z screen+1 sta.z render_bcd.screen+1 - // [82] (byte) render_bcd::bcd#1 ← *((const byte*) render_score::score_bytes+(byte) 1) -- vbuz1=_deref_pbuc1 + // [80] (byte) render_bcd::bcd#1 ← *((const byte*) render_score::score_bytes+(byte) 1) -- vbuz1=_deref_pbuc1 lda score_bytes+1 sta.z render_bcd.bcd - // [83] call render_bcd - // [97] phi from render_score::@3 to render_bcd [phi:render_score::@3->render_bcd] + // [81] call render_bcd + // [95] phi from render_score::@3 to render_bcd [phi:render_score::@3->render_bcd] render_bcd_from___b3: - // [97] phi (byte) render_bcd::bcd#6 = (byte) render_bcd::bcd#1 [phi:render_score::@3->render_bcd#0] -- register_copy - // [97] phi (byte) render_bcd::only_low#6 = (byte) 0 [phi:render_score::@3->render_bcd#1] -- vbuz1=vbuc1 + // [95] phi (byte) render_bcd::bcd#6 = (byte) render_bcd::bcd#1 [phi:render_score::@3->render_bcd#0] -- register_copy + // [95] phi (byte) render_bcd::only_low#6 = (byte) 0 [phi:render_score::@3->render_bcd#1] -- vbuz1=vbuc1 lda #0 sta.z render_bcd.only_low - // [97] phi (word) render_bcd::offset#6 = (const word) render_score::score_offset+(byte) 2 [phi:render_score::@3->render_bcd#2] -- vwuz1=vwuc1 + // [95] phi (word) render_bcd::offset#6 = (const word) render_score::score_offset+(byte) 2 [phi:render_score::@3->render_bcd#2] -- vwuz1=vwuc1 lda #score_offset+2 sta.z render_bcd.offset+1 - // [97] phi (byte*) render_bcd::screen#6 = (byte*) render_bcd::screen#1 [phi:render_score::@3->render_bcd#3] -- register_copy + // [95] phi (byte*) render_bcd::screen#6 = (byte*) render_bcd::screen#1 [phi:render_score::@3->render_bcd#3] -- register_copy jsr render_bcd jmp __b4 // render_score::@4 __b4: - // [84] (byte*) render_bcd::screen#2 ← (byte*) render_score::screen#3 -- pbuz1=pbuz2 + // [82] (byte*) render_bcd::screen#2 ← (byte*) render_score::screen#3 -- pbuz1=pbuz2 lda.z screen sta.z render_bcd.screen lda.z screen+1 sta.z render_bcd.screen+1 - // [85] (byte) render_bcd::bcd#2 ← *((const byte*) render_score::score_bytes) -- vbuz1=_deref_pbuc1 + // [83] (byte) render_bcd::bcd#2 ← *((const byte*) render_score::score_bytes) -- vbuz1=_deref_pbuc1 lda.z score_bytes sta.z render_bcd.bcd - // [86] call render_bcd - // [97] phi from render_score::@4 to render_bcd [phi:render_score::@4->render_bcd] + // [84] call render_bcd + // [95] phi from render_score::@4 to render_bcd [phi:render_score::@4->render_bcd] render_bcd_from___b4: - // [97] phi (byte) render_bcd::bcd#6 = (byte) render_bcd::bcd#2 [phi:render_score::@4->render_bcd#0] -- register_copy - // [97] phi (byte) render_bcd::only_low#6 = (byte) 0 [phi:render_score::@4->render_bcd#1] -- vbuz1=vbuc1 + // [95] phi (byte) render_bcd::bcd#6 = (byte) render_bcd::bcd#2 [phi:render_score::@4->render_bcd#0] -- register_copy + // [95] phi (byte) render_bcd::only_low#6 = (byte) 0 [phi:render_score::@4->render_bcd#1] -- vbuz1=vbuc1 lda #0 sta.z render_bcd.only_low - // [97] phi (word) render_bcd::offset#6 = (const word) render_score::score_offset+(byte) 4 [phi:render_score::@4->render_bcd#2] -- vwuz1=vwuc1 + // [95] phi (word) render_bcd::offset#6 = (const word) render_score::score_offset+(byte) 4 [phi:render_score::@4->render_bcd#2] -- vwuz1=vwuc1 lda #score_offset+4 sta.z render_bcd.offset+1 - // [97] phi (byte*) render_bcd::screen#6 = (byte*) render_bcd::screen#2 [phi:render_score::@4->render_bcd#3] -- register_copy + // [95] phi (byte*) render_bcd::screen#6 = (byte*) render_bcd::screen#2 [phi:render_score::@4->render_bcd#3] -- register_copy jsr render_bcd jmp __b5 // render_score::@5 __b5: - // [87] (byte) render_bcd::bcd#3 ← > (word) lines_bcd#15 -- vbuz1=_hi_vwuz2 + // [85] (byte) render_bcd::bcd#3 ← > (word) lines_bcd#15 -- vbuz1=_hi_vwuz2 lda.z lines_bcd+1 sta.z render_bcd.bcd - // [88] (byte*) render_bcd::screen#3 ← (byte*) render_score::screen#3 -- pbuz1=pbuz2 + // [86] (byte*) render_bcd::screen#3 ← (byte*) render_score::screen#3 -- pbuz1=pbuz2 lda.z screen sta.z render_bcd.screen lda.z screen+1 sta.z render_bcd.screen+1 - // [89] call render_bcd - // [97] phi from render_score::@5 to render_bcd [phi:render_score::@5->render_bcd] + // [87] call render_bcd + // [95] phi from render_score::@5 to render_bcd [phi:render_score::@5->render_bcd] render_bcd_from___b5: - // [97] phi (byte) render_bcd::bcd#6 = (byte) render_bcd::bcd#3 [phi:render_score::@5->render_bcd#0] -- register_copy - // [97] phi (byte) render_bcd::only_low#6 = (byte) 1 [phi:render_score::@5->render_bcd#1] -- vbuz1=vbuc1 + // [95] phi (byte) render_bcd::bcd#6 = (byte) render_bcd::bcd#3 [phi:render_score::@5->render_bcd#0] -- register_copy + // [95] phi (byte) render_bcd::only_low#6 = (byte) 1 [phi:render_score::@5->render_bcd#1] -- vbuz1=vbuc1 lda #1 sta.z render_bcd.only_low - // [97] phi (word) render_bcd::offset#6 = (const word) render_score::lines_offset [phi:render_score::@5->render_bcd#2] -- vwuz1=vwuc1 + // [95] phi (word) render_bcd::offset#6 = (const word) render_score::lines_offset [phi:render_score::@5->render_bcd#2] -- vwuz1=vwuc1 lda #lines_offset sta.z render_bcd.offset+1 - // [97] phi (byte*) render_bcd::screen#6 = (byte*) render_bcd::screen#3 [phi:render_score::@5->render_bcd#3] -- register_copy + // [95] phi (byte*) render_bcd::screen#6 = (byte*) render_bcd::screen#3 [phi:render_score::@5->render_bcd#3] -- register_copy jsr render_bcd jmp __b6 // render_score::@6 __b6: - // [90] (byte) render_bcd::bcd#4 ← < (word) lines_bcd#15 -- vbuz1=_lo_vwuz2 + // [88] (byte) render_bcd::bcd#4 ← < (word) lines_bcd#15 -- vbuz1=_lo_vwuz2 lda.z lines_bcd sta.z render_bcd.bcd - // [91] (byte*) render_bcd::screen#4 ← (byte*) render_score::screen#3 -- pbuz1=pbuz2 + // [89] (byte*) render_bcd::screen#4 ← (byte*) render_score::screen#3 -- pbuz1=pbuz2 lda.z screen sta.z render_bcd.screen lda.z screen+1 sta.z render_bcd.screen+1 - // [92] call render_bcd - // [97] phi from render_score::@6 to render_bcd [phi:render_score::@6->render_bcd] + // [90] call render_bcd + // [95] phi from render_score::@6 to render_bcd [phi:render_score::@6->render_bcd] render_bcd_from___b6: - // [97] phi (byte) render_bcd::bcd#6 = (byte) render_bcd::bcd#4 [phi:render_score::@6->render_bcd#0] -- register_copy - // [97] phi (byte) render_bcd::only_low#6 = (byte) 0 [phi:render_score::@6->render_bcd#1] -- vbuz1=vbuc1 + // [95] phi (byte) render_bcd::bcd#6 = (byte) render_bcd::bcd#4 [phi:render_score::@6->render_bcd#0] -- register_copy + // [95] phi (byte) render_bcd::only_low#6 = (byte) 0 [phi:render_score::@6->render_bcd#1] -- vbuz1=vbuc1 lda #0 sta.z render_bcd.only_low - // [97] phi (word) render_bcd::offset#6 = (const word) render_score::lines_offset+(byte) 1 [phi:render_score::@6->render_bcd#2] -- vwuz1=vwuc1 + // [95] phi (word) render_bcd::offset#6 = (const word) render_score::lines_offset+(byte) 1 [phi:render_score::@6->render_bcd#2] -- vwuz1=vwuc1 lda #lines_offset+1 sta.z render_bcd.offset+1 - // [97] phi (byte*) render_bcd::screen#6 = (byte*) render_bcd::screen#4 [phi:render_score::@6->render_bcd#3] -- register_copy + // [95] phi (byte*) render_bcd::screen#6 = (byte*) render_bcd::screen#4 [phi:render_score::@6->render_bcd#3] -- register_copy jsr render_bcd jmp __b7 // render_score::@7 __b7: - // [93] (byte*) render_bcd::screen#5 ← (byte*) render_score::screen#3 -- pbuz1=pbuz2 + // [91] (byte*) render_bcd::screen#5 ← (byte*) render_score::screen#3 -- pbuz1=pbuz2 lda.z screen sta.z render_bcd.screen lda.z screen+1 sta.z render_bcd.screen+1 - // [94] (byte) render_bcd::bcd#5 ← (byte) level_bcd#17 -- vbuz1=vbuz2 + // [92] (byte) render_bcd::bcd#5 ← (byte) level_bcd#17 -- vbuz1=vbuz2 lda.z level_bcd sta.z render_bcd.bcd - // [95] call render_bcd - // [97] phi from render_score::@7 to render_bcd [phi:render_score::@7->render_bcd] + // [93] call render_bcd + // [95] phi from render_score::@7 to render_bcd [phi:render_score::@7->render_bcd] render_bcd_from___b7: - // [97] phi (byte) render_bcd::bcd#6 = (byte) render_bcd::bcd#5 [phi:render_score::@7->render_bcd#0] -- register_copy - // [97] phi (byte) render_bcd::only_low#6 = (byte) 0 [phi:render_score::@7->render_bcd#1] -- vbuz1=vbuc1 + // [95] phi (byte) render_bcd::bcd#6 = (byte) render_bcd::bcd#5 [phi:render_score::@7->render_bcd#0] -- register_copy + // [95] phi (byte) render_bcd::only_low#6 = (byte) 0 [phi:render_score::@7->render_bcd#1] -- vbuz1=vbuc1 lda #0 sta.z render_bcd.only_low - // [97] phi (word) render_bcd::offset#6 = (const word) render_score::level_offset [phi:render_score::@7->render_bcd#2] -- vwuz1=vwuc1 + // [95] phi (word) render_bcd::offset#6 = (const word) render_score::level_offset [phi:render_score::@7->render_bcd#2] -- vwuz1=vwuc1 lda #level_offset sta.z render_bcd.offset+1 - // [97] phi (byte*) render_bcd::screen#6 = (byte*) render_bcd::screen#5 [phi:render_score::@7->render_bcd#3] -- register_copy + // [95] phi (byte*) render_bcd::screen#6 = (byte*) render_bcd::screen#5 [phi:render_score::@7->render_bcd#3] -- register_copy jsr render_bcd jmp __breturn // render_score::@return __breturn: - // [96] return + // [94] return rts } // render_bcd @@ -12436,7 +12414,7 @@ render_bcd: { .label screen_pos = $d .label offset = 9 .label only_low = $b - // [98] (byte*) render_bcd::screen_pos#0 ← (byte*) render_bcd::screen#6 + (word) render_bcd::offset#6 -- pbuz1=pbuz2_plus_vwuz3 + // [96] (byte*) render_bcd::screen_pos#0 ← (byte*) render_bcd::screen#6 + (word) render_bcd::offset#6 -- pbuz1=pbuz2_plus_vwuz3 lda.z screen clc adc.z offset @@ -12444,56 +12422,56 @@ render_bcd: { lda.z screen+1 adc.z offset+1 sta.z screen_pos+1 - // [99] if((byte) render_bcd::only_low#6!=(byte) 0) goto render_bcd::@1 -- vbuz1_neq_0_then_la1 + // [97] if((byte) render_bcd::only_low#6!=(byte) 0) goto render_bcd::@1 -- vbuz1_neq_0_then_la1 lda.z only_low cmp #0 bne __b1_from_render_bcd jmp __b2 // render_bcd::@2 __b2: - // [100] (byte~) render_bcd::$5 ← (byte) render_bcd::bcd#6 >> (byte) 4 -- vbuz1=vbuz2_ror_4 + // [98] (byte~) render_bcd::$5 ← (byte) render_bcd::bcd#6 >> (byte) 4 -- vbuz1=vbuz2_ror_4 lda.z bcd lsr lsr lsr lsr sta.z __5 - // [101] (byte~) render_bcd::$6 ← (const byte) render_bcd::ZERO_CHAR + (byte~) render_bcd::$5 -- vbuz1=vbuc1_plus_vbuz2 + // [99] (byte~) render_bcd::$6 ← (const byte) render_bcd::ZERO_CHAR + (byte~) render_bcd::$5 -- vbuz1=vbuc1_plus_vbuz2 lax.z __5 axs #-[ZERO_CHAR] stx.z __6 - // [102] *((byte*) render_bcd::screen_pos#0) ← (byte~) render_bcd::$6 -- _deref_pbuz1=vbuz2 + // [100] *((byte*) render_bcd::screen_pos#0) ← (byte~) render_bcd::$6 -- _deref_pbuz1=vbuz2 lda.z __6 ldy #0 sta (screen_pos),y - // [103] (byte*) render_bcd::screen_pos#2 ← ++ (byte*) render_bcd::screen_pos#0 -- pbuz1=_inc_pbuz1 + // [101] (byte*) render_bcd::screen_pos#2 ← ++ (byte*) render_bcd::screen_pos#0 -- pbuz1=_inc_pbuz1 inc.z screen_pos bne !+ inc.z screen_pos+1 !: - // [104] phi from render_bcd render_bcd::@2 to render_bcd::@1 [phi:render_bcd/render_bcd::@2->render_bcd::@1] + // [102] phi from render_bcd render_bcd::@2 to render_bcd::@1 [phi:render_bcd/render_bcd::@2->render_bcd::@1] __b1_from_render_bcd: __b1_from___b2: - // [104] phi (byte*) render_bcd::screen_pos#3 = (byte*) render_bcd::screen_pos#0 [phi:render_bcd/render_bcd::@2->render_bcd::@1#0] -- register_copy + // [102] phi (byte*) render_bcd::screen_pos#3 = (byte*) render_bcd::screen_pos#0 [phi:render_bcd/render_bcd::@2->render_bcd::@1#0] -- register_copy jmp __b1 // render_bcd::@1 __b1: - // [105] (byte~) render_bcd::$3 ← (byte) render_bcd::bcd#6 & (byte) $f -- vbuz1=vbuz2_band_vbuc1 + // [103] (byte~) render_bcd::$3 ← (byte) render_bcd::bcd#6 & (byte) $f -- vbuz1=vbuz2_band_vbuc1 lda #$f and.z bcd sta.z __3 - // [106] (byte~) render_bcd::$4 ← (const byte) render_bcd::ZERO_CHAR + (byte~) render_bcd::$3 -- vbuz1=vbuc1_plus_vbuz2 + // [104] (byte~) render_bcd::$4 ← (const byte) render_bcd::ZERO_CHAR + (byte~) render_bcd::$3 -- vbuz1=vbuc1_plus_vbuz2 lax.z __3 axs #-[ZERO_CHAR] stx.z __4 - // [107] *((byte*) render_bcd::screen_pos#3) ← (byte~) render_bcd::$4 -- _deref_pbuz1=vbuz2 + // [105] *((byte*) render_bcd::screen_pos#3) ← (byte~) render_bcd::$4 -- _deref_pbuz1=vbuz2 lda.z __4 ldy #0 sta (screen_pos),y jmp __breturn // render_bcd::@return __breturn: - // [108] return + // [106] return rts } // render_next @@ -12508,26 +12486,26 @@ render_next: { .label screen_next_area = $14 .label c = $16 .label l = $11 - // [110] if((byte) render_screen_render#15==(byte) 0) goto render_next::@1 -- vbuz1_eq_0_then_la1 + // [108] if((byte) render_screen_render#15==(byte) 0) goto render_next::@1 -- vbuz1_eq_0_then_la1 lda.z render_screen_render_1 cmp #0 beq __b1_from_render_next - // [112] phi from render_next to render_next::@2 [phi:render_next->render_next::@2] + // [110] phi from render_next to render_next::@2 [phi:render_next->render_next::@2] __b2_from_render_next: - // [112] phi (byte*) render_next::screen_next_area#11 = (const byte*) PLAYFIELD_SCREEN_2+(const word) render_next::next_area_offset [phi:render_next->render_next::@2#0] -- pbuz1=pbuc1 + // [110] phi (byte*) render_next::screen_next_area#11 = (const byte*) PLAYFIELD_SCREEN_2+(const word) render_next::next_area_offset [phi:render_next->render_next::@2#0] -- pbuz1=pbuc1 lda #PLAYFIELD_SCREEN_2+next_area_offset sta.z screen_next_area+1 jmp __b2 - // [111] phi from render_next to render_next::@1 [phi:render_next->render_next::@1] + // [109] phi from render_next to render_next::@1 [phi:render_next->render_next::@1] __b1_from_render_next: jmp __b1 // render_next::@1 __b1: - // [112] phi from render_next::@1 to render_next::@2 [phi:render_next::@1->render_next::@2] + // [110] phi from render_next::@1 to render_next::@2 [phi:render_next::@1->render_next::@2] __b2_from___b1: - // [112] phi (byte*) render_next::screen_next_area#11 = (const byte*) PLAYFIELD_SCREEN_1+(const word) render_next::next_area_offset [phi:render_next::@1->render_next::@2#0] -- pbuz1=pbuc1 + // [110] phi (byte*) render_next::screen_next_area#11 = (const byte*) PLAYFIELD_SCREEN_1+(const word) render_next::next_area_offset [phi:render_next::@1->render_next::@2#0] -- pbuz1=pbuc1 lda #PLAYFIELD_SCREEN_1+next_area_offset @@ -12535,90 +12513,90 @@ render_next: { jmp __b2 // render_next::@2 __b2: - // [113] (byte~) render_next::$6 ← (byte) next_piece_idx#12 << (byte) 1 -- vbuz1=vbuz2_rol_1 + // [111] (byte~) render_next::$6 ← (byte) next_piece_idx#12 << (byte) 1 -- vbuz1=vbuz2_rol_1 lda.z next_piece_idx_1 asl sta.z __6 - // [114] (byte) render_next::next_piece_char#0 ← *((const byte*) PIECES_NEXT_CHARS + (byte) next_piece_idx#12) -- vbuz1=pbuc1_derefidx_vbuz2 + // [112] (byte) render_next::next_piece_char#0 ← *((const byte*) PIECES_NEXT_CHARS + (byte) next_piece_idx#12) -- vbuz1=pbuc1_derefidx_vbuz2 ldy.z next_piece_idx_1 lda PIECES_NEXT_CHARS,y sta.z next_piece_char - // [115] (byte*) render_next::next_piece_gfx#9 ← (byte*)*((const word*) PIECES + (byte~) render_next::$6) -- pbuz1=pptc1_derefidx_vbuz2 + // [113] (byte*) render_next::next_piece_gfx#9 ← (byte*)*((const word*) PIECES + (byte~) render_next::$6) -- pbuz1=pptc1_derefidx_vbuz2 ldy.z __6 lda PIECES,y sta.z next_piece_gfx lda PIECES+1,y sta.z next_piece_gfx+1 - // [116] phi from render_next::@2 to render_next::@3 [phi:render_next::@2->render_next::@3] + // [114] phi from render_next::@2 to render_next::@3 [phi:render_next::@2->render_next::@3] __b3_from___b2: - // [116] phi (byte) render_next::l#7 = (byte) 0 [phi:render_next::@2->render_next::@3#0] -- vbuz1=vbuc1 + // [114] phi (byte) render_next::l#7 = (byte) 0 [phi:render_next::@2->render_next::@3#0] -- vbuz1=vbuc1 lda #0 sta.z l - // [116] phi (byte*) render_next::screen_next_area#10 = (byte*) render_next::screen_next_area#11 [phi:render_next::@2->render_next::@3#1] -- register_copy - // [116] phi (byte*) render_next::next_piece_gfx#3 = (byte*) render_next::next_piece_gfx#9 [phi:render_next::@2->render_next::@3#2] -- register_copy + // [114] phi (byte*) render_next::screen_next_area#10 = (byte*) render_next::screen_next_area#11 [phi:render_next::@2->render_next::@3#1] -- register_copy + // [114] phi (byte*) render_next::next_piece_gfx#3 = (byte*) render_next::next_piece_gfx#9 [phi:render_next::@2->render_next::@3#2] -- register_copy jmp __b3 - // [116] phi from render_next::@8 to render_next::@3 [phi:render_next::@8->render_next::@3] + // [114] phi from render_next::@8 to render_next::@3 [phi:render_next::@8->render_next::@3] __b3_from___b8: - // [116] phi (byte) render_next::l#7 = (byte) render_next::l#1 [phi:render_next::@8->render_next::@3#0] -- register_copy - // [116] phi (byte*) render_next::screen_next_area#10 = (byte*) render_next::screen_next_area#4 [phi:render_next::@8->render_next::@3#1] -- register_copy - // [116] phi (byte*) render_next::next_piece_gfx#3 = (byte*) render_next::next_piece_gfx#1 [phi:render_next::@8->render_next::@3#2] -- register_copy + // [114] phi (byte) render_next::l#7 = (byte) render_next::l#1 [phi:render_next::@8->render_next::@3#0] -- register_copy + // [114] phi (byte*) render_next::screen_next_area#10 = (byte*) render_next::screen_next_area#4 [phi:render_next::@8->render_next::@3#1] -- register_copy + // [114] phi (byte*) render_next::next_piece_gfx#3 = (byte*) render_next::next_piece_gfx#1 [phi:render_next::@8->render_next::@3#2] -- register_copy jmp __b3 // render_next::@3 __b3: - // [117] phi from render_next::@3 to render_next::@4 [phi:render_next::@3->render_next::@4] + // [115] phi from render_next::@3 to render_next::@4 [phi:render_next::@3->render_next::@4] __b4_from___b3: - // [117] phi (byte) render_next::c#2 = (byte) 0 [phi:render_next::@3->render_next::@4#0] -- vbuz1=vbuc1 + // [115] phi (byte) render_next::c#2 = (byte) 0 [phi:render_next::@3->render_next::@4#0] -- vbuz1=vbuc1 lda #0 sta.z c - // [117] phi (byte*) render_next::screen_next_area#5 = (byte*) render_next::screen_next_area#10 [phi:render_next::@3->render_next::@4#1] -- register_copy - // [117] phi (byte*) render_next::next_piece_gfx#2 = (byte*) render_next::next_piece_gfx#3 [phi:render_next::@3->render_next::@4#2] -- register_copy + // [115] phi (byte*) render_next::screen_next_area#5 = (byte*) render_next::screen_next_area#10 [phi:render_next::@3->render_next::@4#1] -- register_copy + // [115] phi (byte*) render_next::next_piece_gfx#2 = (byte*) render_next::next_piece_gfx#3 [phi:render_next::@3->render_next::@4#2] -- register_copy jmp __b4 - // [117] phi from render_next::@6 to render_next::@4 [phi:render_next::@6->render_next::@4] + // [115] phi from render_next::@6 to render_next::@4 [phi:render_next::@6->render_next::@4] __b4_from___b6: - // [117] phi (byte) render_next::c#2 = (byte) render_next::c#1 [phi:render_next::@6->render_next::@4#0] -- register_copy - // [117] phi (byte*) render_next::screen_next_area#5 = (byte*) render_next::screen_next_area#3 [phi:render_next::@6->render_next::@4#1] -- register_copy - // [117] phi (byte*) render_next::next_piece_gfx#2 = (byte*) render_next::next_piece_gfx#1 [phi:render_next::@6->render_next::@4#2] -- register_copy + // [115] phi (byte) render_next::c#2 = (byte) render_next::c#1 [phi:render_next::@6->render_next::@4#0] -- register_copy + // [115] phi (byte*) render_next::screen_next_area#5 = (byte*) render_next::screen_next_area#3 [phi:render_next::@6->render_next::@4#1] -- register_copy + // [115] phi (byte*) render_next::next_piece_gfx#2 = (byte*) render_next::next_piece_gfx#1 [phi:render_next::@6->render_next::@4#2] -- register_copy jmp __b4 // render_next::@4 __b4: - // [118] (byte) render_next::cell#0 ← *((byte*) render_next::next_piece_gfx#2) -- vbuz1=_deref_pbuz2 + // [116] (byte) render_next::cell#0 ← *((byte*) render_next::next_piece_gfx#2) -- vbuz1=_deref_pbuz2 ldy #0 lda (next_piece_gfx),y sta.z cell - // [119] (byte*) render_next::next_piece_gfx#1 ← ++ (byte*) render_next::next_piece_gfx#2 -- pbuz1=_inc_pbuz1 + // [117] (byte*) render_next::next_piece_gfx#1 ← ++ (byte*) render_next::next_piece_gfx#2 -- pbuz1=_inc_pbuz1 inc.z next_piece_gfx bne !+ inc.z next_piece_gfx+1 !: - // [120] if((byte) render_next::cell#0!=(byte) 0) goto render_next::@5 -- vbuz1_neq_0_then_la1 + // [118] if((byte) render_next::cell#0!=(byte) 0) goto render_next::@5 -- vbuz1_neq_0_then_la1 lda.z cell cmp #0 bne __b5 jmp __b7 // render_next::@7 __b7: - // [121] *((byte*) render_next::screen_next_area#5) ← (byte) 0 -- _deref_pbuz1=vbuc1 + // [119] *((byte*) render_next::screen_next_area#5) ← (byte) 0 -- _deref_pbuz1=vbuc1 lda #0 ldy #0 sta (screen_next_area),y jmp __b6 // render_next::@6 __b6: - // [122] (byte*) render_next::screen_next_area#3 ← ++ (byte*) render_next::screen_next_area#5 -- pbuz1=_inc_pbuz1 + // [120] (byte*) render_next::screen_next_area#3 ← ++ (byte*) render_next::screen_next_area#5 -- pbuz1=_inc_pbuz1 inc.z screen_next_area bne !+ inc.z screen_next_area+1 !: - // [123] (byte) render_next::c#1 ← ++ (byte) render_next::c#2 -- vbuz1=_inc_vbuz1 + // [121] (byte) render_next::c#1 ← ++ (byte) render_next::c#2 -- vbuz1=_inc_vbuz1 inc.z c - // [124] if((byte) render_next::c#1!=(byte) 4) goto render_next::@4 -- vbuz1_neq_vbuc1_then_la1 + // [122] if((byte) render_next::c#1!=(byte) 4) goto render_next::@4 -- vbuz1_neq_vbuc1_then_la1 lda #4 cmp.z c bne __b4_from___b6 jmp __b8 // render_next::@8 __b8: - // [125] (byte*) render_next::screen_next_area#4 ← (byte*) render_next::screen_next_area#3 + (byte) $24 -- pbuz1=pbuz1_plus_vbuc1 + // [123] (byte*) render_next::screen_next_area#4 ← (byte*) render_next::screen_next_area#3 + (byte) $24 -- pbuz1=pbuz1_plus_vbuc1 lda #$24 clc adc.z screen_next_area @@ -12626,20 +12604,20 @@ render_next: { bcc !+ inc.z screen_next_area+1 !: - // [126] (byte) render_next::l#1 ← ++ (byte) render_next::l#7 -- vbuz1=_inc_vbuz1 + // [124] (byte) render_next::l#1 ← ++ (byte) render_next::l#7 -- vbuz1=_inc_vbuz1 inc.z l - // [127] if((byte) render_next::l#1!=(byte) 4) goto render_next::@3 -- vbuz1_neq_vbuc1_then_la1 + // [125] if((byte) render_next::l#1!=(byte) 4) goto render_next::@3 -- vbuz1_neq_vbuc1_then_la1 lda #4 cmp.z l bne __b3_from___b8 jmp __breturn // render_next::@return __breturn: - // [128] return + // [126] return rts // render_next::@5 __b5: - // [129] *((byte*) render_next::screen_next_area#5) ← (byte) render_next::next_piece_char#0 -- _deref_pbuz1=vbuz2 + // [127] *((byte*) render_next::screen_next_area#5) ← (byte) render_next::next_piece_char#0 -- _deref_pbuz1=vbuz2 lda.z next_piece_char ldy #0 sta (screen_next_area),y @@ -12658,119 +12636,119 @@ render_moving: { .label l = $1e .label current_cell = $89 .label c = $21 - // [131] (byte) render_moving::ypos#0 ← (byte) current_ypos#13 -- vbuz1=vbuz2 + // [129] (byte) render_moving::ypos#0 ← (byte) current_ypos#13 -- vbuz1=vbuz2 lda.z current_ypos_1 sta.z ypos - // [132] phi from render_moving to render_moving::@1 [phi:render_moving->render_moving::@1] + // [130] phi from render_moving to render_moving::@1 [phi:render_moving->render_moving::@1] __b1_from_render_moving: - // [132] phi (byte) render_moving::l#4 = (byte) 0 [phi:render_moving->render_moving::@1#0] -- vbuz1=vbuc1 + // [130] phi (byte) render_moving::l#4 = (byte) 0 [phi:render_moving->render_moving::@1#0] -- vbuz1=vbuc1 lda #0 sta.z l - // [132] phi (byte) render_moving::i#3 = (byte) 0 [phi:render_moving->render_moving::@1#1] -- vbuz1=vbuc1 + // [130] phi (byte) render_moving::i#3 = (byte) 0 [phi:render_moving->render_moving::@1#1] -- vbuz1=vbuc1 lda #0 sta.z i - // [132] phi (byte) render_moving::ypos#2 = (byte) render_moving::ypos#0 [phi:render_moving->render_moving::@1#2] -- register_copy + // [130] phi (byte) render_moving::ypos#2 = (byte) render_moving::ypos#0 [phi:render_moving->render_moving::@1#2] -- register_copy jmp __b1 - // [132] phi from render_moving::@3 to render_moving::@1 [phi:render_moving::@3->render_moving::@1] + // [130] phi from render_moving::@3 to render_moving::@1 [phi:render_moving::@3->render_moving::@1] __b1_from___b3: - // [132] phi (byte) render_moving::l#4 = (byte) render_moving::l#1 [phi:render_moving::@3->render_moving::@1#0] -- register_copy - // [132] phi (byte) render_moving::i#3 = (byte) render_moving::i#8 [phi:render_moving::@3->render_moving::@1#1] -- register_copy - // [132] phi (byte) render_moving::ypos#2 = (byte) render_moving::ypos#1 [phi:render_moving::@3->render_moving::@1#2] -- register_copy + // [130] phi (byte) render_moving::l#4 = (byte) render_moving::l#1 [phi:render_moving::@3->render_moving::@1#0] -- register_copy + // [130] phi (byte) render_moving::i#3 = (byte) render_moving::i#8 [phi:render_moving::@3->render_moving::@1#1] -- register_copy + // [130] phi (byte) render_moving::ypos#2 = (byte) render_moving::ypos#1 [phi:render_moving::@3->render_moving::@1#2] -- register_copy jmp __b1 // render_moving::@1 __b1: - // [133] if((byte) render_moving::ypos#2>=(byte) 1+(byte) 1) goto render_moving::@2 -- vbuz1_ge_vbuc1_then_la1 + // [131] if((byte) render_moving::ypos#2>=(byte) 1+(byte) 1) goto render_moving::@2 -- vbuz1_ge_vbuc1_then_la1 lda.z ypos cmp #1+1 bcs __b2 jmp __b7 // render_moving::@7 __b7: - // [134] (byte) render_moving::i#1 ← (byte) render_moving::i#3 + (byte) 4 -- vbuz1=vbuz1_plus_vbuc1 + // [132] (byte) render_moving::i#1 ← (byte) render_moving::i#3 + (byte) 4 -- vbuz1=vbuz1_plus_vbuc1 lax.z i axs #-[4] stx.z i - // [135] phi from render_moving::@5 render_moving::@7 to render_moving::@3 [phi:render_moving::@5/render_moving::@7->render_moving::@3] + // [133] phi from render_moving::@5 render_moving::@7 to render_moving::@3 [phi:render_moving::@5/render_moving::@7->render_moving::@3] __b3_from___b5: __b3_from___b7: - // [135] phi (byte) render_moving::i#8 = (byte) render_moving::i#2 [phi:render_moving::@5/render_moving::@7->render_moving::@3#0] -- register_copy + // [133] phi (byte) render_moving::i#8 = (byte) render_moving::i#2 [phi:render_moving::@5/render_moving::@7->render_moving::@3#0] -- register_copy jmp __b3 // render_moving::@3 __b3: - // [136] (byte) render_moving::ypos#1 ← ++ (byte) render_moving::ypos#2 -- vbuz1=_inc_vbuz1 + // [134] (byte) render_moving::ypos#1 ← ++ (byte) render_moving::ypos#2 -- vbuz1=_inc_vbuz1 inc.z ypos - // [137] (byte) render_moving::l#1 ← ++ (byte) render_moving::l#4 -- vbuz1=_inc_vbuz1 + // [135] (byte) render_moving::l#1 ← ++ (byte) render_moving::l#4 -- vbuz1=_inc_vbuz1 inc.z l - // [138] if((byte) render_moving::l#1!=(byte) 4) goto render_moving::@1 -- vbuz1_neq_vbuc1_then_la1 + // [136] if((byte) render_moving::l#1!=(byte) 4) goto render_moving::@1 -- vbuz1_neq_vbuc1_then_la1 lda #4 cmp.z l bne __b1_from___b3 jmp __breturn // render_moving::@return __breturn: - // [139] return + // [137] return rts // render_moving::@2 __b2: - // [140] (byte~) render_moving::$1 ← (byte) render_screen_render#33 + (byte) render_moving::ypos#2 -- vbuz1=vbuz2_plus_vbuz3 + // [138] (byte~) render_moving::$1 ← (byte) render_screen_render#33 + (byte) render_moving::ypos#2 -- vbuz1=vbuz2_plus_vbuz3 lda.z render_screen_render_3 clc adc.z ypos sta.z __1 - // [141] (byte~) render_moving::$6 ← (byte~) render_moving::$1 << (byte) 1 -- vbuz1=vbuz2_rol_1 + // [139] (byte~) render_moving::$6 ← (byte~) render_moving::$1 << (byte) 1 -- vbuz1=vbuz2_rol_1 lda.z __1 asl sta.z __6 - // [142] (byte*) render_moving::screen_line#0 ← *((const byte**) screen_lines_1 + (byte~) render_moving::$6) -- pbuz1=pptc1_derefidx_vbuz2 + // [140] (byte*) render_moving::screen_line#0 ← *((const byte**) screen_lines_1 + (byte~) render_moving::$6) -- pbuz1=pptc1_derefidx_vbuz2 ldy.z __6 lda screen_lines_1,y sta.z screen_line lda screen_lines_1+1,y sta.z screen_line+1 - // [143] (byte) render_moving::xpos#0 ← (byte) current_xpos#59 -- vbuz1=vbuz2 + // [141] (byte) render_moving::xpos#0 ← (byte) current_xpos#59 -- vbuz1=vbuz2 lda.z current_xpos_1 sta.z xpos - // [144] phi from render_moving::@2 to render_moving::@4 [phi:render_moving::@2->render_moving::@4] + // [142] phi from render_moving::@2 to render_moving::@4 [phi:render_moving::@2->render_moving::@4] __b4_from___b2: - // [144] phi (byte) render_moving::c#2 = (byte) 0 [phi:render_moving::@2->render_moving::@4#0] -- vbuz1=vbuc1 + // [142] phi (byte) render_moving::c#2 = (byte) 0 [phi:render_moving::@2->render_moving::@4#0] -- vbuz1=vbuc1 lda #0 sta.z c - // [144] phi (byte) render_moving::xpos#2 = (byte) render_moving::xpos#0 [phi:render_moving::@2->render_moving::@4#1] -- register_copy - // [144] phi (byte) render_moving::i#4 = (byte) render_moving::i#3 [phi:render_moving::@2->render_moving::@4#2] -- register_copy + // [142] phi (byte) render_moving::xpos#2 = (byte) render_moving::xpos#0 [phi:render_moving::@2->render_moving::@4#1] -- register_copy + // [142] phi (byte) render_moving::i#4 = (byte) render_moving::i#3 [phi:render_moving::@2->render_moving::@4#2] -- register_copy jmp __b4 - // [144] phi from render_moving::@5 to render_moving::@4 [phi:render_moving::@5->render_moving::@4] + // [142] phi from render_moving::@5 to render_moving::@4 [phi:render_moving::@5->render_moving::@4] __b4_from___b5: - // [144] phi (byte) render_moving::c#2 = (byte) render_moving::c#1 [phi:render_moving::@5->render_moving::@4#0] -- register_copy - // [144] phi (byte) render_moving::xpos#2 = (byte) render_moving::xpos#1 [phi:render_moving::@5->render_moving::@4#1] -- register_copy - // [144] phi (byte) render_moving::i#4 = (byte) render_moving::i#2 [phi:render_moving::@5->render_moving::@4#2] -- register_copy + // [142] phi (byte) render_moving::c#2 = (byte) render_moving::c#1 [phi:render_moving::@5->render_moving::@4#0] -- register_copy + // [142] phi (byte) render_moving::xpos#2 = (byte) render_moving::xpos#1 [phi:render_moving::@5->render_moving::@4#1] -- register_copy + // [142] phi (byte) render_moving::i#4 = (byte) render_moving::i#2 [phi:render_moving::@5->render_moving::@4#2] -- register_copy jmp __b4 // render_moving::@4 __b4: - // [145] (byte) render_moving::current_cell#0 ← *((byte*) current_piece_gfx#64 + (byte) render_moving::i#4) -- vbuz1=pbuz2_derefidx_vbuz3 + // [143] (byte) render_moving::current_cell#0 ← *((byte*) current_piece_gfx#64 + (byte) render_moving::i#4) -- vbuz1=pbuz2_derefidx_vbuz3 ldy.z i lda (current_piece_gfx_1),y sta.z current_cell - // [146] (byte) render_moving::i#2 ← ++ (byte) render_moving::i#4 -- vbuz1=_inc_vbuz1 + // [144] (byte) render_moving::i#2 ← ++ (byte) render_moving::i#4 -- vbuz1=_inc_vbuz1 inc.z i - // [147] if((byte) render_moving::current_cell#0==(byte) 0) goto render_moving::@5 -- vbuz1_eq_0_then_la1 + // [145] if((byte) render_moving::current_cell#0==(byte) 0) goto render_moving::@5 -- vbuz1_eq_0_then_la1 lda.z current_cell cmp #0 beq __b5 jmp __b6 // render_moving::@6 __b6: - // [148] *((byte*) render_moving::screen_line#0 + (byte) render_moving::xpos#2) ← (byte) current_piece_char#68 -- pbuz1_derefidx_vbuz2=vbuz3 + // [146] *((byte*) render_moving::screen_line#0 + (byte) render_moving::xpos#2) ← (byte) current_piece_char#68 -- pbuz1_derefidx_vbuz2=vbuz3 lda.z current_piece_char_1 ldy.z xpos sta (screen_line),y jmp __b5 // render_moving::@5 __b5: - // [149] (byte) render_moving::xpos#1 ← ++ (byte) render_moving::xpos#2 -- vbuz1=_inc_vbuz1 + // [147] (byte) render_moving::xpos#1 ← ++ (byte) render_moving::xpos#2 -- vbuz1=_inc_vbuz1 inc.z xpos - // [150] (byte) render_moving::c#1 ← ++ (byte) render_moving::c#2 -- vbuz1=_inc_vbuz1 + // [148] (byte) render_moving::c#1 ← ++ (byte) render_moving::c#2 -- vbuz1=_inc_vbuz1 inc.z c - // [151] if((byte) render_moving::c#1!=(byte) 4) goto render_moving::@4 -- vbuz1_neq_vbuc1_then_la1 + // [149] if((byte) render_moving::c#1!=(byte) 4) goto render_moving::@4 -- vbuz1_neq_vbuc1_then_la1 lda #4 cmp.z c bne __b4_from___b5 @@ -12786,84 +12764,84 @@ render_playfield: { .label i = $24 .label c = $27 .label l = $23 - // [153] phi from render_playfield to render_playfield::@1 [phi:render_playfield->render_playfield::@1] + // [151] phi from render_playfield to render_playfield::@1 [phi:render_playfield->render_playfield::@1] __b1_from_render_playfield: - // [153] phi (byte) render_playfield::i#3 = (const byte) PLAYFIELD_COLS*(byte) 2 [phi:render_playfield->render_playfield::@1#0] -- vbuz1=vbuc1 + // [151] phi (byte) render_playfield::i#3 = (const byte) PLAYFIELD_COLS*(byte) 2 [phi:render_playfield->render_playfield::@1#0] -- vbuz1=vbuc1 lda #PLAYFIELD_COLS*2 sta.z i - // [153] phi (byte) render_playfield::l#2 = (byte) 2 [phi:render_playfield->render_playfield::@1#1] -- vbuz1=vbuc1 + // [151] phi (byte) render_playfield::l#2 = (byte) 2 [phi:render_playfield->render_playfield::@1#1] -- vbuz1=vbuc1 lda #2 sta.z l jmp __b1 - // [153] phi from render_playfield::@3 to render_playfield::@1 [phi:render_playfield::@3->render_playfield::@1] + // [151] phi from render_playfield::@3 to render_playfield::@1 [phi:render_playfield::@3->render_playfield::@1] __b1_from___b3: - // [153] phi (byte) render_playfield::i#3 = (byte) render_playfield::i#1 [phi:render_playfield::@3->render_playfield::@1#0] -- register_copy - // [153] phi (byte) render_playfield::l#2 = (byte) render_playfield::l#1 [phi:render_playfield::@3->render_playfield::@1#1] -- register_copy + // [151] phi (byte) render_playfield::i#3 = (byte) render_playfield::i#1 [phi:render_playfield::@3->render_playfield::@1#0] -- register_copy + // [151] phi (byte) render_playfield::l#2 = (byte) render_playfield::l#1 [phi:render_playfield::@3->render_playfield::@1#1] -- register_copy jmp __b1 // render_playfield::@1 __b1: - // [154] (byte~) render_playfield::$0 ← (byte) render_screen_render#22 + (byte) render_playfield::l#2 -- vbuz1=vbuz2_plus_vbuz3 + // [152] (byte~) render_playfield::$0 ← (byte) render_screen_render#22 + (byte) render_playfield::l#2 -- vbuz1=vbuz2_plus_vbuz3 lda.z render_screen_render_2 clc adc.z l sta.z __0 - // [155] (byte~) render_playfield::$3 ← (byte~) render_playfield::$0 << (byte) 1 -- vbuz1=vbuz2_rol_1 + // [153] (byte~) render_playfield::$3 ← (byte~) render_playfield::$0 << (byte) 1 -- vbuz1=vbuz2_rol_1 lda.z __0 asl sta.z __3 - // [156] (byte*) render_playfield::screen_line#0 ← *((const byte**) screen_lines_1 + (byte~) render_playfield::$3) -- pbuz1=pptc1_derefidx_vbuz2 + // [154] (byte*) render_playfield::screen_line#0 ← *((const byte**) screen_lines_1 + (byte~) render_playfield::$3) -- pbuz1=pptc1_derefidx_vbuz2 ldy.z __3 lda screen_lines_1,y sta.z screen_line lda screen_lines_1+1,y sta.z screen_line+1 - // [157] phi from render_playfield::@1 to render_playfield::@2 [phi:render_playfield::@1->render_playfield::@2] + // [155] phi from render_playfield::@1 to render_playfield::@2 [phi:render_playfield::@1->render_playfield::@2] __b2_from___b1: - // [157] phi (byte) render_playfield::c#2 = (byte) 0 [phi:render_playfield::@1->render_playfield::@2#0] -- vbuz1=vbuc1 + // [155] phi (byte) render_playfield::c#2 = (byte) 0 [phi:render_playfield::@1->render_playfield::@2#0] -- vbuz1=vbuc1 lda #0 sta.z c - // [157] phi (byte*) render_playfield::screen_line#2 = (byte*) render_playfield::screen_line#0 [phi:render_playfield::@1->render_playfield::@2#1] -- register_copy - // [157] phi (byte) render_playfield::i#2 = (byte) render_playfield::i#3 [phi:render_playfield::@1->render_playfield::@2#2] -- register_copy + // [155] phi (byte*) render_playfield::screen_line#2 = (byte*) render_playfield::screen_line#0 [phi:render_playfield::@1->render_playfield::@2#1] -- register_copy + // [155] phi (byte) render_playfield::i#2 = (byte) render_playfield::i#3 [phi:render_playfield::@1->render_playfield::@2#2] -- register_copy jmp __b2 - // [157] phi from render_playfield::@2 to render_playfield::@2 [phi:render_playfield::@2->render_playfield::@2] + // [155] phi from render_playfield::@2 to render_playfield::@2 [phi:render_playfield::@2->render_playfield::@2] __b2_from___b2: - // [157] phi (byte) render_playfield::c#2 = (byte) render_playfield::c#1 [phi:render_playfield::@2->render_playfield::@2#0] -- register_copy - // [157] phi (byte*) render_playfield::screen_line#2 = (byte*) render_playfield::screen_line#1 [phi:render_playfield::@2->render_playfield::@2#1] -- register_copy - // [157] phi (byte) render_playfield::i#2 = (byte) render_playfield::i#1 [phi:render_playfield::@2->render_playfield::@2#2] -- register_copy + // [155] phi (byte) render_playfield::c#2 = (byte) render_playfield::c#1 [phi:render_playfield::@2->render_playfield::@2#0] -- register_copy + // [155] phi (byte*) render_playfield::screen_line#2 = (byte*) render_playfield::screen_line#1 [phi:render_playfield::@2->render_playfield::@2#1] -- register_copy + // [155] phi (byte) render_playfield::i#2 = (byte) render_playfield::i#1 [phi:render_playfield::@2->render_playfield::@2#2] -- register_copy jmp __b2 // render_playfield::@2 __b2: - // [158] *((byte*) render_playfield::screen_line#2) ← *((const byte*) playfield + (byte) render_playfield::i#2) -- _deref_pbuz1=pbuc1_derefidx_vbuz2 + // [156] *((byte*) render_playfield::screen_line#2) ← *((const byte*) playfield + (byte) render_playfield::i#2) -- _deref_pbuz1=pbuc1_derefidx_vbuz2 ldy.z i lda playfield,y ldy #0 sta (screen_line),y - // [159] (byte*) render_playfield::screen_line#1 ← ++ (byte*) render_playfield::screen_line#2 -- pbuz1=_inc_pbuz1 + // [157] (byte*) render_playfield::screen_line#1 ← ++ (byte*) render_playfield::screen_line#2 -- pbuz1=_inc_pbuz1 inc.z screen_line bne !+ inc.z screen_line+1 !: - // [160] (byte) render_playfield::i#1 ← ++ (byte) render_playfield::i#2 -- vbuz1=_inc_vbuz1 + // [158] (byte) render_playfield::i#1 ← ++ (byte) render_playfield::i#2 -- vbuz1=_inc_vbuz1 inc.z i - // [161] (byte) render_playfield::c#1 ← ++ (byte) render_playfield::c#2 -- vbuz1=_inc_vbuz1 + // [159] (byte) render_playfield::c#1 ← ++ (byte) render_playfield::c#2 -- vbuz1=_inc_vbuz1 inc.z c - // [162] if((byte) render_playfield::c#1!=(const byte) PLAYFIELD_COLS-(byte) 1+(byte) 1) goto render_playfield::@2 -- vbuz1_neq_vbuc1_then_la1 + // [160] if((byte) render_playfield::c#1!=(const byte) PLAYFIELD_COLS-(byte) 1+(byte) 1) goto render_playfield::@2 -- vbuz1_neq_vbuc1_then_la1 lda #PLAYFIELD_COLS-1+1 cmp.z c bne __b2_from___b2 jmp __b3 // render_playfield::@3 __b3: - // [163] (byte) render_playfield::l#1 ← ++ (byte) render_playfield::l#2 -- vbuz1=_inc_vbuz1 + // [161] (byte) render_playfield::l#1 ← ++ (byte) render_playfield::l#2 -- vbuz1=_inc_vbuz1 inc.z l - // [164] if((byte) render_playfield::l#1!=(const byte) PLAYFIELD_LINES-(byte) 1+(byte) 1) goto render_playfield::@1 -- vbuz1_neq_vbuc1_then_la1 + // [162] if((byte) render_playfield::l#1!=(const byte) PLAYFIELD_LINES-(byte) 1+(byte) 1) goto render_playfield::@1 -- vbuz1_neq_vbuc1_then_la1 lda #PLAYFIELD_LINES-1+1 cmp.z l bne __b1_from___b3 jmp __breturn // render_playfield::@return __breturn: - // [165] return + // [163] return rts } // play_movement @@ -12879,72 +12857,72 @@ play_movement: { .label return = $28 .label key_event = $7b .label return_1 = $7c - // [166] (byte) play_move_down::key_event#0 ← (byte) play_movement::key_event#0 -- vbuz1=vbuz2 + // [164] (byte) play_move_down::key_event#0 ← (byte) play_movement::key_event#0 -- vbuz1=vbuz2 lda.z key_event sta.z play_move_down.key_event - // [167] call play_move_down + // [165] call play_move_down jsr play_move_down - // [168] (byte) play_move_down::return#0 ← (byte) play_move_down::return#3 -- vbuz1=vbuz2 + // [166] (byte) play_move_down::return#0 ← (byte) play_move_down::return#3 -- vbuz1=vbuz2 lda.z play_move_down.return_1 sta.z play_move_down.return jmp __b2 // play_movement::@2 __b2: - // [169] (byte) play_movement::render#1 ← (byte) play_move_down::return#0 -- vbuz1=vbuz2 + // [167] (byte) play_movement::render#1 ← (byte) play_move_down::return#0 -- vbuz1=vbuz2 lda.z play_move_down.return sta.z render - // [170] if((byte) game_over#15==(byte) 0) goto play_movement::@1 -- vbuz1_eq_0_then_la1 + // [168] if((byte) game_over#15==(byte) 0) goto play_movement::@1 -- vbuz1_eq_0_then_la1 lda.z game_over cmp #0 beq __b1 - // [171] phi from play_movement::@2 play_movement::@4 to play_movement::@return [phi:play_movement::@2/play_movement::@4->play_movement::@return] + // [169] phi from play_movement::@2 play_movement::@4 to play_movement::@return [phi:play_movement::@2/play_movement::@4->play_movement::@return] __breturn_from___b2: __breturn_from___b4: - // [171] phi (byte) current_xpos#19 = (byte) current_xpos#22 [phi:play_movement::@2/play_movement::@4->play_movement::@return#0] -- register_copy - // [171] phi (byte*) current_piece_gfx#18 = (byte*) current_piece_gfx#20 [phi:play_movement::@2/play_movement::@4->play_movement::@return#1] -- register_copy - // [171] phi (byte) current_orientation#17 = (byte) current_orientation#20 [phi:play_movement::@2/play_movement::@4->play_movement::@return#2] -- register_copy - // [171] phi (byte) play_movement::return#2 = (byte) play_movement::render#1 [phi:play_movement::@2/play_movement::@4->play_movement::@return#3] -- register_copy + // [169] phi (byte) current_xpos#19 = (byte) current_xpos#22 [phi:play_movement::@2/play_movement::@4->play_movement::@return#0] -- register_copy + // [169] phi (byte*) current_piece_gfx#18 = (byte*) current_piece_gfx#20 [phi:play_movement::@2/play_movement::@4->play_movement::@return#1] -- register_copy + // [169] phi (byte) current_orientation#17 = (byte) current_orientation#20 [phi:play_movement::@2/play_movement::@4->play_movement::@return#2] -- register_copy + // [169] phi (byte) play_movement::return#2 = (byte) play_movement::render#1 [phi:play_movement::@2/play_movement::@4->play_movement::@return#3] -- register_copy jmp __breturn // play_movement::@return __breturn: - // [172] return + // [170] return rts // play_movement::@1 __b1: - // [173] (byte) play_move_leftright::key_event#0 ← (byte) play_movement::key_event#0 -- vbuz1=vbuz2 + // [171] (byte) play_move_leftright::key_event#0 ← (byte) play_movement::key_event#0 -- vbuz1=vbuz2 lda.z key_event sta.z play_move_leftright.key_event - // [174] call play_move_leftright + // [172] call play_move_leftright jsr play_move_leftright - // [175] (byte) play_move_leftright::return#0 ← (byte) play_move_leftright::return#2 -- vbuz1=vbuz2 + // [173] (byte) play_move_leftright::return#0 ← (byte) play_move_leftright::return#2 -- vbuz1=vbuz2 lda.z play_move_leftright.return_1 sta.z play_move_leftright.return jmp __b3 // play_movement::@3 __b3: - // [176] (byte~) play_movement::$3 ← (byte) play_move_leftright::return#0 -- vbuz1=vbuz2 + // [174] (byte~) play_movement::$3 ← (byte) play_move_leftright::return#0 -- vbuz1=vbuz2 lda.z play_move_leftright.return sta.z __3 - // [177] (byte) play_movement::render#2 ← (byte) play_movement::render#1 + (byte~) play_movement::$3 -- vbuz1=vbuz2_plus_vbuz3 + // [175] (byte) play_movement::render#2 ← (byte) play_movement::render#1 + (byte~) play_movement::$3 -- vbuz1=vbuz2_plus_vbuz3 lda.z render clc adc.z __3 sta.z render_1 - // [178] (byte) play_move_rotate::key_event#0 ← (byte) play_movement::key_event#0 -- vbuz1=vbuz2 + // [176] (byte) play_move_rotate::key_event#0 ← (byte) play_movement::key_event#0 -- vbuz1=vbuz2 lda.z key_event sta.z play_move_rotate.key_event - // [179] call play_move_rotate + // [177] call play_move_rotate jsr play_move_rotate - // [180] (byte) play_move_rotate::return#0 ← (byte) play_move_rotate::return#2 -- vbuz1=vbuz2 + // [178] (byte) play_move_rotate::return#0 ← (byte) play_move_rotate::return#2 -- vbuz1=vbuz2 lda.z play_move_rotate.return_1 sta.z play_move_rotate.return jmp __b4 // play_movement::@4 __b4: - // [181] (byte~) play_movement::$4 ← (byte) play_move_rotate::return#0 -- vbuz1=vbuz2 + // [179] (byte~) play_movement::$4 ← (byte) play_move_rotate::return#0 -- vbuz1=vbuz2 lda.z play_move_rotate.return sta.z __4 - // [182] (byte) play_movement::return#0 ← (byte) play_movement::render#2 + (byte~) play_movement::$4 -- vbuz1=vbuz2_plus_vbuz3 + // [180] (byte) play_movement::return#0 ← (byte) play_movement::render#2 + (byte~) play_movement::$4 -- vbuz1=vbuz2_plus_vbuz3 lda.z render_1 clc adc.z __4 @@ -12964,89 +12942,89 @@ play_move_rotate: { // Handle keyboard events .label orientation = $2a .label return_1 = $29 - // [183] if((byte) play_move_rotate::key_event#0==(const byte) KEY_Z) goto play_move_rotate::@1 -- vbuz1_eq_vbuc1_then_la1 + // [181] if((byte) play_move_rotate::key_event#0==(const byte) KEY_Z) goto play_move_rotate::@1 -- vbuz1_eq_vbuc1_then_la1 lda #KEY_Z cmp.z key_event beq __b1 jmp __b4 // play_move_rotate::@4 __b4: - // [184] if((byte) play_move_rotate::key_event#0==(const byte) KEY_X) goto play_move_rotate::@2 -- vbuz1_eq_vbuc1_then_la1 + // [182] if((byte) play_move_rotate::key_event#0==(const byte) KEY_X) goto play_move_rotate::@2 -- vbuz1_eq_vbuc1_then_la1 lda #KEY_X cmp.z key_event beq __b2 - // [185] phi from play_move_rotate::@4 play_move_rotate::@6 to play_move_rotate::@return [phi:play_move_rotate::@4/play_move_rotate::@6->play_move_rotate::@return] + // [183] phi from play_move_rotate::@4 play_move_rotate::@6 to play_move_rotate::@return [phi:play_move_rotate::@4/play_move_rotate::@6->play_move_rotate::@return] __breturn_from___b4: __breturn_from___b6: - // [185] phi (byte*) current_piece_gfx#21 = (byte*) current_piece_gfx#20 [phi:play_move_rotate::@4/play_move_rotate::@6->play_move_rotate::@return#0] -- register_copy - // [185] phi (byte) current_orientation#25 = (byte) current_orientation#20 [phi:play_move_rotate::@4/play_move_rotate::@6->play_move_rotate::@return#1] -- register_copy - // [185] phi (byte) play_move_rotate::return#2 = (byte) 0 [phi:play_move_rotate::@4/play_move_rotate::@6->play_move_rotate::@return#2] -- vbuz1=vbuc1 + // [183] phi (byte*) current_piece_gfx#21 = (byte*) current_piece_gfx#20 [phi:play_move_rotate::@4/play_move_rotate::@6->play_move_rotate::@return#0] -- register_copy + // [183] phi (byte) current_orientation#25 = (byte) current_orientation#20 [phi:play_move_rotate::@4/play_move_rotate::@6->play_move_rotate::@return#1] -- register_copy + // [183] phi (byte) play_move_rotate::return#2 = (byte) 0 [phi:play_move_rotate::@4/play_move_rotate::@6->play_move_rotate::@return#2] -- vbuz1=vbuc1 lda #0 sta.z return_1 jmp __breturn // play_move_rotate::@return __breturn: - // [186] return + // [184] return rts // play_move_rotate::@2 __b2: - // [187] (byte~) play_move_rotate::$5 ← (byte) current_orientation#20 + (byte) $10 -- vbuz1=vbuz2_plus_vbuc1 + // [185] (byte~) play_move_rotate::$5 ← (byte) current_orientation#20 + (byte) $10 -- vbuz1=vbuz2_plus_vbuc1 lax.z current_orientation axs #-[$10] stx.z __5 - // [188] (byte) play_move_rotate::orientation#2 ← (byte~) play_move_rotate::$5 & (byte) $3f -- vbuz1=vbuz2_band_vbuc1 + // [186] (byte) play_move_rotate::orientation#2 ← (byte~) play_move_rotate::$5 & (byte) $3f -- vbuz1=vbuz2_band_vbuc1 lda #$3f and.z __5 sta.z orientation - // [189] phi from play_move_rotate::@1 play_move_rotate::@2 to play_move_rotate::@3 [phi:play_move_rotate::@1/play_move_rotate::@2->play_move_rotate::@3] + // [187] phi from play_move_rotate::@1 play_move_rotate::@2 to play_move_rotate::@3 [phi:play_move_rotate::@1/play_move_rotate::@2->play_move_rotate::@3] __b3_from___b1: __b3_from___b2: - // [189] 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::@3#0] -- register_copy + // [187] 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::@3#0] -- register_copy jmp __b3 // play_move_rotate::@3 __b3: - // [190] (byte) play_collision::xpos#3 ← (byte) current_xpos#26 -- vbuz1=vbuz2 + // [188] (byte) play_collision::xpos#3 ← (byte) current_xpos#26 -- vbuz1=vbuz2 lda.z current_xpos sta.z play_collision.xpos - // [191] (byte) play_collision::ypos#3 ← (byte) current_ypos#19 -- vbuz1=vbuz2 + // [189] (byte) play_collision::ypos#3 ← (byte) current_ypos#19 -- vbuz1=vbuz2 lda.z current_ypos sta.z play_collision.ypos - // [192] (byte) play_collision::orientation#3 ← (byte) play_move_rotate::orientation#3 -- vbuz1=vbuz2 + // [190] (byte) play_collision::orientation#3 ← (byte) play_move_rotate::orientation#3 -- vbuz1=vbuz2 lda.z orientation sta.z play_collision.orientation - // [193] (byte*) current_piece#98 ← (byte*) current_piece#15 -- pbuz1=pbuz2 + // [191] (byte*) current_piece#98 ← (byte*) current_piece#15 -- pbuz1=pbuz2 lda.z current_piece sta.z current_piece_1 lda.z current_piece+1 sta.z current_piece_1+1 - // [194] call play_collision - // [202] phi from play_move_rotate::@3 to play_collision [phi:play_move_rotate::@3->play_collision] + // [192] call play_collision + // [200] phi from play_move_rotate::@3 to play_collision [phi:play_move_rotate::@3->play_collision] play_collision_from___b3: - // [202] phi (byte) play_collision::xpos#6 = (byte) play_collision::xpos#3 [phi:play_move_rotate::@3->play_collision#0] -- register_copy - // [202] phi (byte) play_collision::yp#0 = (byte) play_collision::ypos#3 [phi:play_move_rotate::@3->play_collision#1] -- register_copy - // [202] phi (byte) play_collision::orientation#5 = (byte) play_collision::orientation#3 [phi:play_move_rotate::@3->play_collision#2] -- register_copy - // [202] phi (byte*) current_piece#17 = (byte*) current_piece#98 [phi:play_move_rotate::@3->play_collision#3] -- register_copy + // [200] phi (byte) play_collision::xpos#6 = (byte) play_collision::xpos#3 [phi:play_move_rotate::@3->play_collision#0] -- register_copy + // [200] phi (byte) play_collision::yp#0 = (byte) play_collision::ypos#3 [phi:play_move_rotate::@3->play_collision#1] -- register_copy + // [200] phi (byte) play_collision::orientation#5 = (byte) play_collision::orientation#3 [phi:play_move_rotate::@3->play_collision#2] -- register_copy + // [200] phi (byte*) current_piece#17 = (byte*) current_piece#98 [phi:play_move_rotate::@3->play_collision#3] -- register_copy jsr play_collision - // [195] (byte) play_collision::return#14 ← (byte) play_collision::return#15 -- vbuz1=vbuz2 + // [193] (byte) play_collision::return#14 ← (byte) play_collision::return#15 -- vbuz1=vbuz2 lda.z play_collision.return_5 sta.z play_collision.return_4 jmp __b6 // play_move_rotate::@6 __b6: - // [196] (byte~) play_move_rotate::$2 ← (byte) play_collision::return#14 -- vbuz1=vbuz2 + // [194] (byte~) play_move_rotate::$2 ← (byte) play_collision::return#14 -- vbuz1=vbuz2 lda.z play_collision.return_4 sta.z __2 - // [197] if((byte~) play_move_rotate::$2!=(const byte) COLLISION_NONE) goto play_move_rotate::@return -- vbuz1_neq_vbuc1_then_la1 + // [195] if((byte~) play_move_rotate::$2!=(const byte) COLLISION_NONE) goto play_move_rotate::@return -- vbuz1_neq_vbuc1_then_la1 lda #COLLISION_NONE cmp.z __2 bne __breturn_from___b6 jmp __b5 // play_move_rotate::@5 __b5: - // [198] (byte) current_orientation#7 ← (byte) play_move_rotate::orientation#3 -- vbuz1=vbuz2 + // [196] (byte) current_orientation#7 ← (byte) play_move_rotate::orientation#3 -- vbuz1=vbuz2 lda.z orientation sta.z current_orientation - // [199] (byte*) current_piece_gfx#7 ← (byte*) current_piece#15 + (byte) current_orientation#7 -- pbuz1=pbuz2_plus_vbuz3 + // [197] (byte*) current_piece_gfx#7 ← (byte*) current_piece#15 + (byte) current_orientation#7 -- pbuz1=pbuz2_plus_vbuz3 lda.z current_orientation clc adc.z current_piece @@ -13054,21 +13032,21 @@ play_move_rotate: { lda #0 adc.z current_piece+1 sta.z current_piece_gfx+1 - // [185] phi from play_move_rotate::@5 to play_move_rotate::@return [phi:play_move_rotate::@5->play_move_rotate::@return] + // [183] phi from play_move_rotate::@5 to play_move_rotate::@return [phi:play_move_rotate::@5->play_move_rotate::@return] __breturn_from___b5: - // [185] phi (byte*) current_piece_gfx#21 = (byte*) current_piece_gfx#7 [phi:play_move_rotate::@5->play_move_rotate::@return#0] -- register_copy - // [185] phi (byte) current_orientation#25 = (byte) current_orientation#7 [phi:play_move_rotate::@5->play_move_rotate::@return#1] -- register_copy - // [185] phi (byte) play_move_rotate::return#2 = (byte) 1 [phi:play_move_rotate::@5->play_move_rotate::@return#2] -- vbuz1=vbuc1 + // [183] phi (byte*) current_piece_gfx#21 = (byte*) current_piece_gfx#7 [phi:play_move_rotate::@5->play_move_rotate::@return#0] -- register_copy + // [183] phi (byte) current_orientation#25 = (byte) current_orientation#7 [phi:play_move_rotate::@5->play_move_rotate::@return#1] -- register_copy + // [183] phi (byte) play_move_rotate::return#2 = (byte) 1 [phi:play_move_rotate::@5->play_move_rotate::@return#2] -- vbuz1=vbuc1 lda #1 sta.z return_1 jmp __breturn // play_move_rotate::@1 __b1: - // [200] (byte~) play_move_rotate::$7 ← (byte) current_orientation#20 - (byte) $10 -- vbuz1=vbuz2_minus_vbuc1 + // [198] (byte~) play_move_rotate::$7 ← (byte) current_orientation#20 - (byte) $10 -- vbuz1=vbuz2_minus_vbuc1 lax.z current_orientation axs #$10 stx.z __7 - // [201] (byte) play_move_rotate::orientation#1 ← (byte~) play_move_rotate::$7 & (byte) $3f -- vbuz1=vbuz2_band_vbuc1 + // [199] (byte) play_move_rotate::orientation#1 ← (byte~) play_move_rotate::$7 & (byte) $3f -- vbuz1=vbuz2_band_vbuc1 lda #$3f and.z __7 sta.z orientation @@ -13122,7 +13100,7 @@ play_collision: { // Beyond left side of the playfield // Collision with a playfield cell .label return_5 = $34 - // [203] (byte*) play_collision::piece_gfx#0 ← (byte*) current_piece#17 + (byte) play_collision::orientation#5 -- pbuz1=pbuz2_plus_vbuz3 + // [201] (byte*) play_collision::piece_gfx#0 ← (byte*) current_piece#17 + (byte) play_collision::orientation#5 -- pbuz1=pbuz2_plus_vbuz3 lda.z orientation clc adc.z current_piece_1 @@ -13130,46 +13108,46 @@ play_collision: { lda #0 adc.z current_piece_1+1 sta.z piece_gfx+1 - // [204] phi from play_collision to play_collision::@1 [phi:play_collision->play_collision::@1] + // [202] phi from play_collision to play_collision::@1 [phi:play_collision->play_collision::@1] __b1_from_play_collision: - // [204] phi (byte) play_collision::l#6 = (byte) 0 [phi:play_collision->play_collision::@1#0] -- vbuz1=vbuc1 + // [202] phi (byte) play_collision::l#6 = (byte) 0 [phi:play_collision->play_collision::@1#0] -- vbuz1=vbuc1 lda #0 sta.z l - // [204] phi (byte) play_collision::i#3 = (byte) 0 [phi:play_collision->play_collision::@1#1] -- vbuz1=vbuc1 + // [202] phi (byte) play_collision::i#3 = (byte) 0 [phi:play_collision->play_collision::@1#1] -- vbuz1=vbuc1 lda #0 sta.z i_1 - // [204] phi (byte) play_collision::yp#2 = (byte) play_collision::yp#0 [phi:play_collision->play_collision::@1#2] -- register_copy + // [202] phi (byte) play_collision::yp#2 = (byte) play_collision::yp#0 [phi:play_collision->play_collision::@1#2] -- register_copy jmp __b1 // play_collision::@1 __b1: - // [205] (byte~) play_collision::$14 ← (byte) play_collision::yp#2 << (byte) 1 -- vbuz1=vbuz2_rol_1 + // [203] (byte~) play_collision::$14 ← (byte) play_collision::yp#2 << (byte) 1 -- vbuz1=vbuz2_rol_1 lda.z yp asl sta.z __14 - // [206] (byte*) play_collision::playfield_line#0 ← *((const byte**) playfield_lines + (byte~) play_collision::$14) -- pbuz1=pptc1_derefidx_vbuz2 + // [204] (byte*) play_collision::playfield_line#0 ← *((const byte**) playfield_lines + (byte~) play_collision::$14) -- pbuz1=pptc1_derefidx_vbuz2 ldy.z __14 lda playfield_lines,y sta.z playfield_line lda playfield_lines+1,y sta.z playfield_line+1 - // [207] (byte) play_collision::xp#8 ← (byte) play_collision::xpos#6 -- vbuz1=vbuz2 + // [205] (byte) play_collision::xp#8 ← (byte) play_collision::xpos#6 -- vbuz1=vbuz2 lda.z xpos sta.z xp - // [208] phi from play_collision::@1 to play_collision::@2 [phi:play_collision::@1->play_collision::@2] + // [206] phi from play_collision::@1 to play_collision::@2 [phi:play_collision::@1->play_collision::@2] __b2_from___b1: - // [208] phi (byte) play_collision::c#2 = (byte) 0 [phi:play_collision::@1->play_collision::@2#0] -- vbuz1=vbuc1 + // [206] phi (byte) play_collision::c#2 = (byte) 0 [phi:play_collision::@1->play_collision::@2#0] -- vbuz1=vbuc1 lda #0 sta.z c - // [208] phi (byte) play_collision::xp#2 = (byte) play_collision::xp#8 [phi:play_collision::@1->play_collision::@2#1] -- register_copy - // [208] phi (byte) play_collision::i#2 = (byte) play_collision::i#3 [phi:play_collision::@1->play_collision::@2#2] -- register_copy + // [206] phi (byte) play_collision::xp#2 = (byte) play_collision::xp#8 [phi:play_collision::@1->play_collision::@2#1] -- register_copy + // [206] phi (byte) play_collision::i#2 = (byte) play_collision::i#3 [phi:play_collision::@1->play_collision::@2#2] -- register_copy jmp __b2 // play_collision::@2 __b2: - // [209] (byte) play_collision::i#1 ← ++ (byte) play_collision::i#2 -- vbuz1=_inc_vbuz2 + // [207] (byte) play_collision::i#1 ← ++ (byte) play_collision::i#2 -- vbuz1=_inc_vbuz2 ldy.z i_1 iny sty.z i - // [210] if(*((byte*) play_collision::piece_gfx#0 + (byte) play_collision::i#2)==(byte) 0) goto play_collision::@3 -- pbuz1_derefidx_vbuz2_eq_0_then_la1 + // [208] if(*((byte*) play_collision::piece_gfx#0 + (byte) play_collision::i#2)==(byte) 0) goto play_collision::@3 -- pbuz1_derefidx_vbuz2_eq_0_then_la1 ldy.z i_1 lda (piece_gfx),y cmp #0 @@ -13177,109 +13155,109 @@ play_collision: { jmp __b7 // play_collision::@7 __b7: - // [211] if((byte) play_collision::yp#2<(const byte) PLAYFIELD_LINES) goto play_collision::@4 -- vbuz1_lt_vbuc1_then_la1 + // [209] if((byte) play_collision::yp#2<(const byte) PLAYFIELD_LINES) goto play_collision::@4 -- vbuz1_lt_vbuc1_then_la1 lda.z yp cmp #PLAYFIELD_LINES bcc __b4 - // [216] phi from play_collision::@7 to play_collision::@return [phi:play_collision::@7->play_collision::@return] + // [214] phi from play_collision::@7 to play_collision::@return [phi:play_collision::@7->play_collision::@return] __breturn_from___b7: - // [216] phi (byte) play_collision::return#15 = (const byte) COLLISION_BOTTOM [phi:play_collision::@7->play_collision::@return#0] -- vbuz1=vbuc1 + // [214] phi (byte) play_collision::return#15 = (const byte) COLLISION_BOTTOM [phi:play_collision::@7->play_collision::@return#0] -- vbuz1=vbuc1 lda #COLLISION_BOTTOM sta.z return_5 jmp __breturn // play_collision::@4 __b4: - // [212] (byte~) play_collision::$5 ← (byte) play_collision::xp#2 & (byte) $80 -- vbuz1=vbuz2_band_vbuc1 + // [210] (byte~) play_collision::$5 ← (byte) play_collision::xp#2 & (byte) $80 -- vbuz1=vbuz2_band_vbuc1 lda #$80 and.z xp sta.z __5 - // [213] if((byte~) play_collision::$5==(byte) 0) goto play_collision::@5 -- vbuz1_eq_0_then_la1 + // [211] if((byte~) play_collision::$5==(byte) 0) goto play_collision::@5 -- vbuz1_eq_0_then_la1 lda.z __5 cmp #0 beq __b5 - // [216] phi from play_collision::@4 to play_collision::@return [phi:play_collision::@4->play_collision::@return] + // [214] phi from play_collision::@4 to play_collision::@return [phi:play_collision::@4->play_collision::@return] __breturn_from___b4: - // [216] phi (byte) play_collision::return#15 = (const byte) COLLISION_LEFT [phi:play_collision::@4->play_collision::@return#0] -- vbuz1=vbuc1 + // [214] phi (byte) play_collision::return#15 = (const byte) COLLISION_LEFT [phi:play_collision::@4->play_collision::@return#0] -- vbuz1=vbuc1 lda #COLLISION_LEFT sta.z return_5 jmp __breturn // play_collision::@5 __b5: - // [214] if((byte) play_collision::xp#2<(const byte) PLAYFIELD_COLS) goto play_collision::@6 -- vbuz1_lt_vbuc1_then_la1 + // [212] if((byte) play_collision::xp#2<(const byte) PLAYFIELD_COLS) goto play_collision::@6 -- vbuz1_lt_vbuc1_then_la1 lda.z xp cmp #PLAYFIELD_COLS bcc __b6 - // [216] phi from play_collision::@5 to play_collision::@return [phi:play_collision::@5->play_collision::@return] + // [214] phi from play_collision::@5 to play_collision::@return [phi:play_collision::@5->play_collision::@return] __breturn_from___b5: - // [216] phi (byte) play_collision::return#15 = (const byte) COLLISION_RIGHT [phi:play_collision::@5->play_collision::@return#0] -- vbuz1=vbuc1 + // [214] phi (byte) play_collision::return#15 = (const byte) COLLISION_RIGHT [phi:play_collision::@5->play_collision::@return#0] -- vbuz1=vbuc1 lda #COLLISION_RIGHT sta.z return_5 jmp __breturn // play_collision::@6 __b6: - // [215] if(*((byte*) play_collision::playfield_line#0 + (byte) play_collision::xp#2)==(byte) 0) goto play_collision::@3 -- pbuz1_derefidx_vbuz2_eq_0_then_la1 + // [213] if(*((byte*) play_collision::playfield_line#0 + (byte) play_collision::xp#2)==(byte) 0) goto play_collision::@3 -- pbuz1_derefidx_vbuz2_eq_0_then_la1 ldy.z xp lda (playfield_line),y cmp #0 beq __b3 - // [216] phi from play_collision::@6 to play_collision::@return [phi:play_collision::@6->play_collision::@return] + // [214] phi from play_collision::@6 to play_collision::@return [phi:play_collision::@6->play_collision::@return] __breturn_from___b6: - // [216] phi (byte) play_collision::return#15 = (const byte) COLLISION_PLAYFIELD [phi:play_collision::@6->play_collision::@return#0] -- vbuz1=vbuc1 + // [214] phi (byte) play_collision::return#15 = (const byte) COLLISION_PLAYFIELD [phi:play_collision::@6->play_collision::@return#0] -- vbuz1=vbuc1 lda #COLLISION_PLAYFIELD sta.z return_5 jmp __breturn // play_collision::@return __breturn: - // [217] return + // [215] return rts // play_collision::@3 __b3: - // [218] (byte) play_collision::xp#1 ← ++ (byte) play_collision::xp#2 -- vbuz1=_inc_vbuz1 + // [216] (byte) play_collision::xp#1 ← ++ (byte) play_collision::xp#2 -- vbuz1=_inc_vbuz1 inc.z xp - // [219] (byte) play_collision::c#1 ← ++ (byte) play_collision::c#2 -- vbuz1=_inc_vbuz1 + // [217] (byte) play_collision::c#1 ← ++ (byte) play_collision::c#2 -- vbuz1=_inc_vbuz1 inc.z c - // [220] if((byte) play_collision::c#1!=(byte) 4) goto play_collision::@10 -- vbuz1_neq_vbuc1_then_la1 + // [218] if((byte) play_collision::c#1!=(byte) 4) goto play_collision::@10 -- vbuz1_neq_vbuc1_then_la1 lda #4 cmp.z c bne __b10 jmp __b8 // play_collision::@8 __b8: - // [221] (byte) play_collision::yp#1 ← ++ (byte) play_collision::yp#2 -- vbuz1=_inc_vbuz1 + // [219] (byte) play_collision::yp#1 ← ++ (byte) play_collision::yp#2 -- vbuz1=_inc_vbuz1 inc.z yp - // [222] (byte) play_collision::l#1 ← ++ (byte) play_collision::l#6 -- vbuz1=_inc_vbuz1 + // [220] (byte) play_collision::l#1 ← ++ (byte) play_collision::l#6 -- vbuz1=_inc_vbuz1 inc.z l - // [223] if((byte) play_collision::l#1!=(byte) 4) goto play_collision::@9 -- vbuz1_neq_vbuc1_then_la1 + // [221] if((byte) play_collision::l#1!=(byte) 4) goto play_collision::@9 -- vbuz1_neq_vbuc1_then_la1 lda #4 cmp.z l bne __b9 - // [216] phi from play_collision::@8 to play_collision::@return [phi:play_collision::@8->play_collision::@return] + // [214] phi from play_collision::@8 to play_collision::@return [phi:play_collision::@8->play_collision::@return] __breturn_from___b8: - // [216] phi (byte) play_collision::return#15 = (const byte) COLLISION_NONE [phi:play_collision::@8->play_collision::@return#0] -- vbuz1=vbuc1 + // [214] phi (byte) play_collision::return#15 = (const byte) COLLISION_NONE [phi:play_collision::@8->play_collision::@return#0] -- vbuz1=vbuc1 lda #COLLISION_NONE sta.z return_5 jmp __breturn // play_collision::@9 __b9: - // [224] (byte) play_collision::i#10 ← (byte) play_collision::i#1 -- vbuz1=vbuz2 + // [222] (byte) play_collision::i#10 ← (byte) play_collision::i#1 -- vbuz1=vbuz2 lda.z i sta.z i_1 - // [204] phi from play_collision::@9 to play_collision::@1 [phi:play_collision::@9->play_collision::@1] + // [202] phi from play_collision::@9 to play_collision::@1 [phi:play_collision::@9->play_collision::@1] __b1_from___b9: - // [204] phi (byte) play_collision::l#6 = (byte) play_collision::l#1 [phi:play_collision::@9->play_collision::@1#0] -- register_copy - // [204] phi (byte) play_collision::i#3 = (byte) play_collision::i#10 [phi:play_collision::@9->play_collision::@1#1] -- register_copy - // [204] phi (byte) play_collision::yp#2 = (byte) play_collision::yp#1 [phi:play_collision::@9->play_collision::@1#2] -- register_copy + // [202] phi (byte) play_collision::l#6 = (byte) play_collision::l#1 [phi:play_collision::@9->play_collision::@1#0] -- register_copy + // [202] phi (byte) play_collision::i#3 = (byte) play_collision::i#10 [phi:play_collision::@9->play_collision::@1#1] -- register_copy + // [202] phi (byte) play_collision::yp#2 = (byte) play_collision::yp#1 [phi:play_collision::@9->play_collision::@1#2] -- register_copy jmp __b1 // play_collision::@10 __b10: - // [225] (byte) play_collision::i#12 ← (byte) play_collision::i#1 -- vbuz1=vbuz2 + // [223] (byte) play_collision::i#12 ← (byte) play_collision::i#1 -- vbuz1=vbuz2 lda.z i sta.z i_1 - // [208] phi from play_collision::@10 to play_collision::@2 [phi:play_collision::@10->play_collision::@2] + // [206] phi from play_collision::@10 to play_collision::@2 [phi:play_collision::@10->play_collision::@2] __b2_from___b10: - // [208] phi (byte) play_collision::c#2 = (byte) play_collision::c#1 [phi:play_collision::@10->play_collision::@2#0] -- register_copy - // [208] phi (byte) play_collision::xp#2 = (byte) play_collision::xp#1 [phi:play_collision::@10->play_collision::@2#1] -- register_copy - // [208] phi (byte) play_collision::i#2 = (byte) play_collision::i#12 [phi:play_collision::@10->play_collision::@2#2] -- register_copy + // [206] phi (byte) play_collision::c#2 = (byte) play_collision::c#1 [phi:play_collision::@10->play_collision::@2#0] -- register_copy + // [206] phi (byte) play_collision::xp#2 = (byte) play_collision::xp#1 [phi:play_collision::@10->play_collision::@2#1] -- register_copy + // [206] phi (byte) play_collision::i#2 = (byte) play_collision::i#12 [phi:play_collision::@10->play_collision::@2#2] -- register_copy jmp __b2 } // play_move_leftright @@ -13292,7 +13270,7 @@ play_move_leftright: { .label key_event = $8e .label return = $8f .label return_1 = $35 - // [226] if((byte) play_move_leftright::key_event#0==(const byte) KEY_COMMA) goto play_move_leftright::@1 -- vbuz1_eq_vbuc1_then_la1 + // [224] if((byte) play_move_leftright::key_event#0==(const byte) KEY_COMMA) goto play_move_leftright::@1 -- vbuz1_eq_vbuc1_then_la1 // Handle keyboard events lda #KEY_COMMA cmp.z key_event @@ -13300,117 +13278,117 @@ play_move_leftright: { jmp __b2 // play_move_leftright::@2 __b2: - // [227] if((byte) play_move_leftright::key_event#0!=(const byte) KEY_DOT) goto play_move_leftright::@return -- vbuz1_neq_vbuc1_then_la1 + // [225] if((byte) play_move_leftright::key_event#0!=(const byte) KEY_DOT) goto play_move_leftright::@return -- vbuz1_neq_vbuc1_then_la1 lda #KEY_DOT cmp.z key_event bne __breturn_from___b2 jmp __b3 // play_move_leftright::@3 __b3: - // [228] (byte) play_collision::xpos#2 ← (byte) current_xpos#22 + (byte) 1 -- vbuz1=vbuz2_plus_1 + // [226] (byte) play_collision::xpos#2 ← (byte) current_xpos#22 + (byte) 1 -- vbuz1=vbuz2_plus_1 ldy.z current_xpos iny sty.z play_collision.xpos - // [229] (byte) play_collision::ypos#2 ← (byte) current_ypos#19 -- vbuz1=vbuz2 + // [227] (byte) play_collision::ypos#2 ← (byte) current_ypos#19 -- vbuz1=vbuz2 lda.z current_ypos sta.z play_collision.ypos - // [230] (byte) play_collision::orientation#2 ← (byte) current_orientation#20 -- vbuz1=vbuz2 + // [228] (byte) play_collision::orientation#2 ← (byte) current_orientation#20 -- vbuz1=vbuz2 lda.z current_orientation sta.z play_collision.orientation - // [231] (byte*) current_piece#97 ← (byte*) current_piece#15 -- pbuz1=pbuz2 + // [229] (byte*) current_piece#97 ← (byte*) current_piece#15 -- pbuz1=pbuz2 lda.z current_piece sta.z current_piece_1 lda.z current_piece+1 sta.z current_piece_1+1 - // [232] call play_collision - // [202] phi from play_move_leftright::@3 to play_collision [phi:play_move_leftright::@3->play_collision] + // [230] call play_collision + // [200] phi from play_move_leftright::@3 to play_collision [phi:play_move_leftright::@3->play_collision] play_collision_from___b3: - // [202] phi (byte) play_collision::xpos#6 = (byte) play_collision::xpos#2 [phi:play_move_leftright::@3->play_collision#0] -- register_copy - // [202] phi (byte) play_collision::yp#0 = (byte) play_collision::ypos#2 [phi:play_move_leftright::@3->play_collision#1] -- register_copy - // [202] phi (byte) play_collision::orientation#5 = (byte) play_collision::orientation#2 [phi:play_move_leftright::@3->play_collision#2] -- register_copy - // [202] phi (byte*) current_piece#17 = (byte*) current_piece#97 [phi:play_move_leftright::@3->play_collision#3] -- register_copy + // [200] phi (byte) play_collision::xpos#6 = (byte) play_collision::xpos#2 [phi:play_move_leftright::@3->play_collision#0] -- register_copy + // [200] phi (byte) play_collision::yp#0 = (byte) play_collision::ypos#2 [phi:play_move_leftright::@3->play_collision#1] -- register_copy + // [200] phi (byte) play_collision::orientation#5 = (byte) play_collision::orientation#2 [phi:play_move_leftright::@3->play_collision#2] -- register_copy + // [200] phi (byte*) current_piece#17 = (byte*) current_piece#97 [phi:play_move_leftright::@3->play_collision#3] -- register_copy jsr play_collision - // [233] (byte) play_collision::return#13 ← (byte) play_collision::return#15 -- vbuz1=vbuz2 + // [231] (byte) play_collision::return#13 ← (byte) play_collision::return#15 -- vbuz1=vbuz2 lda.z play_collision.return_5 sta.z play_collision.return_3 jmp __b7 // play_move_leftright::@7 __b7: - // [234] (byte~) play_move_leftright::$4 ← (byte) play_collision::return#13 -- vbuz1=vbuz2 + // [232] (byte~) play_move_leftright::$4 ← (byte) play_collision::return#13 -- vbuz1=vbuz2 lda.z play_collision.return_3 sta.z __4 - // [235] if((byte~) play_move_leftright::$4!=(const byte) COLLISION_NONE) goto play_move_leftright::@return -- vbuz1_neq_vbuc1_then_la1 + // [233] if((byte~) play_move_leftright::$4!=(const byte) COLLISION_NONE) goto play_move_leftright::@return -- vbuz1_neq_vbuc1_then_la1 lda #COLLISION_NONE cmp.z __4 bne __breturn_from___b7 jmp __b4 // play_move_leftright::@4 __b4: - // [236] (byte) current_xpos#6 ← ++ (byte) current_xpos#22 -- vbuz1=_inc_vbuz1 + // [234] (byte) current_xpos#6 ← ++ (byte) current_xpos#22 -- vbuz1=_inc_vbuz1 inc.z current_xpos - // [237] phi from play_move_leftright::@4 play_move_leftright::@5 to play_move_leftright::@return [phi:play_move_leftright::@4/play_move_leftright::@5->play_move_leftright::@return] + // [235] phi from play_move_leftright::@4 play_move_leftright::@5 to play_move_leftright::@return [phi:play_move_leftright::@4/play_move_leftright::@5->play_move_leftright::@return] __breturn_from___b4: __breturn_from___b5: - // [237] phi (byte) current_xpos#26 = (byte) current_xpos#6 [phi:play_move_leftright::@4/play_move_leftright::@5->play_move_leftright::@return#0] -- register_copy - // [237] phi (byte) play_move_leftright::return#2 = (byte) 1 [phi:play_move_leftright::@4/play_move_leftright::@5->play_move_leftright::@return#1] -- vbuz1=vbuc1 + // [235] phi (byte) current_xpos#26 = (byte) current_xpos#6 [phi:play_move_leftright::@4/play_move_leftright::@5->play_move_leftright::@return#0] -- register_copy + // [235] phi (byte) play_move_leftright::return#2 = (byte) 1 [phi:play_move_leftright::@4/play_move_leftright::@5->play_move_leftright::@return#1] -- vbuz1=vbuc1 lda #1 sta.z return_1 jmp __breturn - // [237] phi from play_move_leftright::@2 play_move_leftright::@6 play_move_leftright::@7 to play_move_leftright::@return [phi:play_move_leftright::@2/play_move_leftright::@6/play_move_leftright::@7->play_move_leftright::@return] + // [235] phi from play_move_leftright::@2 play_move_leftright::@6 play_move_leftright::@7 to play_move_leftright::@return [phi:play_move_leftright::@2/play_move_leftright::@6/play_move_leftright::@7->play_move_leftright::@return] __breturn_from___b2: __breturn_from___b6: __breturn_from___b7: - // [237] phi (byte) current_xpos#26 = (byte) current_xpos#22 [phi:play_move_leftright::@2/play_move_leftright::@6/play_move_leftright::@7->play_move_leftright::@return#0] -- register_copy - // [237] phi (byte) play_move_leftright::return#2 = (byte) 0 [phi:play_move_leftright::@2/play_move_leftright::@6/play_move_leftright::@7->play_move_leftright::@return#1] -- vbuz1=vbuc1 + // [235] phi (byte) current_xpos#26 = (byte) current_xpos#22 [phi:play_move_leftright::@2/play_move_leftright::@6/play_move_leftright::@7->play_move_leftright::@return#0] -- register_copy + // [235] phi (byte) play_move_leftright::return#2 = (byte) 0 [phi:play_move_leftright::@2/play_move_leftright::@6/play_move_leftright::@7->play_move_leftright::@return#1] -- vbuz1=vbuc1 lda #0 sta.z return_1 jmp __breturn // play_move_leftright::@return __breturn: - // [238] return + // [236] return rts // play_move_leftright::@1 __b1: - // [239] (byte) play_collision::xpos#1 ← (byte) current_xpos#22 - (byte) 1 -- vbuz1=vbuz2_minus_1 + // [237] (byte) play_collision::xpos#1 ← (byte) current_xpos#22 - (byte) 1 -- vbuz1=vbuz2_minus_1 ldx.z current_xpos dex stx.z play_collision.xpos - // [240] (byte) play_collision::ypos#1 ← (byte) current_ypos#19 -- vbuz1=vbuz2 + // [238] (byte) play_collision::ypos#1 ← (byte) current_ypos#19 -- vbuz1=vbuz2 lda.z current_ypos sta.z play_collision.ypos - // [241] (byte) play_collision::orientation#1 ← (byte) current_orientation#20 -- vbuz1=vbuz2 + // [239] (byte) play_collision::orientation#1 ← (byte) current_orientation#20 -- vbuz1=vbuz2 lda.z current_orientation sta.z play_collision.orientation - // [242] (byte*) current_piece#96 ← (byte*) current_piece#15 -- pbuz1=pbuz2 + // [240] (byte*) current_piece#96 ← (byte*) current_piece#15 -- pbuz1=pbuz2 lda.z current_piece sta.z current_piece_1 lda.z current_piece+1 sta.z current_piece_1+1 - // [243] call play_collision - // [202] phi from play_move_leftright::@1 to play_collision [phi:play_move_leftright::@1->play_collision] + // [241] call play_collision + // [200] phi from play_move_leftright::@1 to play_collision [phi:play_move_leftright::@1->play_collision] play_collision_from___b1: - // [202] phi (byte) play_collision::xpos#6 = (byte) play_collision::xpos#1 [phi:play_move_leftright::@1->play_collision#0] -- register_copy - // [202] phi (byte) play_collision::yp#0 = (byte) play_collision::ypos#1 [phi:play_move_leftright::@1->play_collision#1] -- register_copy - // [202] phi (byte) play_collision::orientation#5 = (byte) play_collision::orientation#1 [phi:play_move_leftright::@1->play_collision#2] -- register_copy - // [202] phi (byte*) current_piece#17 = (byte*) current_piece#96 [phi:play_move_leftright::@1->play_collision#3] -- register_copy + // [200] phi (byte) play_collision::xpos#6 = (byte) play_collision::xpos#1 [phi:play_move_leftright::@1->play_collision#0] -- register_copy + // [200] phi (byte) play_collision::yp#0 = (byte) play_collision::ypos#1 [phi:play_move_leftright::@1->play_collision#1] -- register_copy + // [200] phi (byte) play_collision::orientation#5 = (byte) play_collision::orientation#1 [phi:play_move_leftright::@1->play_collision#2] -- register_copy + // [200] phi (byte*) current_piece#17 = (byte*) current_piece#96 [phi:play_move_leftright::@1->play_collision#3] -- register_copy jsr play_collision - // [244] (byte) play_collision::return#1 ← (byte) play_collision::return#15 -- vbuz1=vbuz2 + // [242] (byte) play_collision::return#1 ← (byte) play_collision::return#15 -- vbuz1=vbuz2 lda.z play_collision.return_5 sta.z play_collision.return_1 jmp __b6 // play_move_leftright::@6 __b6: - // [245] (byte~) play_move_leftright::$8 ← (byte) play_collision::return#1 -- vbuz1=vbuz2 + // [243] (byte~) play_move_leftright::$8 ← (byte) play_collision::return#1 -- vbuz1=vbuz2 lda.z play_collision.return_1 sta.z __8 - // [246] if((byte~) play_move_leftright::$8!=(const byte) COLLISION_NONE) goto play_move_leftright::@return -- vbuz1_neq_vbuc1_then_la1 + // [244] if((byte~) play_move_leftright::$8!=(const byte) COLLISION_NONE) goto play_move_leftright::@return -- vbuz1_neq_vbuc1_then_la1 lda #COLLISION_NONE cmp.z __8 bne __breturn_from___b6 jmp __b5 // play_move_leftright::@5 __b5: - // [247] (byte) current_xpos#8 ← -- (byte) current_xpos#22 -- vbuz1=_dec_vbuz1 + // [245] (byte) current_xpos#8 ← -- (byte) current_xpos#22 -- vbuz1=_dec_vbuz1 dec.z current_xpos jmp __breturn_from___b5 } @@ -13426,267 +13404,267 @@ play_move_down: { .label movedown = $36 .label removed = $a9 .label return_1 = $44 - // [248] (byte) current_movedown_counter#12 ← ++ (byte) current_movedown_counter#16 -- vbuz1=_inc_vbuz1 + // [246] (byte) current_movedown_counter#12 ← ++ (byte) current_movedown_counter#16 -- vbuz1=_inc_vbuz1 inc.z current_movedown_counter - // [249] if((byte) play_move_down::key_event#0!=(const byte) KEY_SPACE) goto play_move_down::@1 -- vbuz1_neq_vbuc1_then_la1 + // [247] if((byte) play_move_down::key_event#0!=(const byte) KEY_SPACE) goto play_move_down::@1 -- vbuz1_neq_vbuc1_then_la1 lda #KEY_SPACE cmp.z key_event bne __b1_from_play_move_down - // [250] phi from play_move_down to play_move_down::@4 [phi:play_move_down->play_move_down::@4] + // [248] phi from play_move_down to play_move_down::@4 [phi:play_move_down->play_move_down::@4] __b4_from_play_move_down: jmp __b4 // play_move_down::@4 __b4: - // [251] phi from play_move_down::@4 to play_move_down::@1 [phi:play_move_down::@4->play_move_down::@1] + // [249] phi from play_move_down::@4 to play_move_down::@1 [phi:play_move_down::@4->play_move_down::@1] __b1_from___b4: - // [251] phi (byte) play_move_down::movedown#10 = (byte) 1 [phi:play_move_down::@4->play_move_down::@1#0] -- vbuz1=vbuc1 + // [249] phi (byte) play_move_down::movedown#10 = (byte) 1 [phi:play_move_down::@4->play_move_down::@1#0] -- vbuz1=vbuc1 lda #1 sta.z movedown jmp __b1 - // [251] phi from play_move_down to play_move_down::@1 [phi:play_move_down->play_move_down::@1] + // [249] phi from play_move_down to play_move_down::@1 [phi:play_move_down->play_move_down::@1] __b1_from_play_move_down: - // [251] phi (byte) play_move_down::movedown#10 = (byte) 0 [phi:play_move_down->play_move_down::@1#0] -- vbuz1=vbuc1 + // [249] phi (byte) play_move_down::movedown#10 = (byte) 0 [phi:play_move_down->play_move_down::@1#0] -- vbuz1=vbuc1 lda #0 sta.z movedown jmp __b1 // play_move_down::@1 __b1: - // [252] call keyboard_event_pressed - // [381] phi from play_move_down::@1 to keyboard_event_pressed [phi:play_move_down::@1->keyboard_event_pressed] + // [250] call keyboard_event_pressed + // [379] phi from play_move_down::@1 to keyboard_event_pressed [phi:play_move_down::@1->keyboard_event_pressed] keyboard_event_pressed_from___b1: - // [381] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_SPACE [phi:play_move_down::@1->keyboard_event_pressed#0] -- vbuz1=vbuc1 + // [379] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_SPACE [phi:play_move_down::@1->keyboard_event_pressed#0] -- vbuz1=vbuc1 lda #KEY_SPACE sta.z keyboard_event_pressed.keycode jsr keyboard_event_pressed - // [253] (byte) keyboard_event_pressed::return#12 ← (byte) keyboard_event_pressed::return#11 -- vbuz1=vbuz2 + // [251] (byte) keyboard_event_pressed::return#12 ← (byte) keyboard_event_pressed::return#11 -- vbuz1=vbuz2 lda.z keyboard_event_pressed.return_4 sta.z keyboard_event_pressed.return_5 jmp __b12 // play_move_down::@12 __b12: - // [254] (byte~) play_move_down::$2 ← (byte) keyboard_event_pressed::return#12 -- vbuz1=vbuz2 + // [252] (byte~) play_move_down::$2 ← (byte) keyboard_event_pressed::return#12 -- vbuz1=vbuz2 lda.z keyboard_event_pressed.return_5 sta.z __2 - // [255] if((byte~) play_move_down::$2==(byte) 0) goto play_move_down::@2 -- vbuz1_eq_0_then_la1 + // [253] if((byte~) play_move_down::$2==(byte) 0) goto play_move_down::@2 -- vbuz1_eq_0_then_la1 lda.z __2 cmp #0 beq __b2_from___b12 jmp __b5 // play_move_down::@5 __b5: - // [256] if((byte) current_movedown_counter#12<(const byte) current_movedown_fast) goto play_move_down::@2 -- vbuz1_lt_vbuc1_then_la1 + // [254] if((byte) current_movedown_counter#12<(const byte) current_movedown_fast) goto play_move_down::@2 -- vbuz1_lt_vbuc1_then_la1 lda.z current_movedown_counter cmp #current_movedown_fast bcc __b2_from___b5 jmp __b6 // play_move_down::@6 __b6: - // [257] (byte) play_move_down::movedown#2 ← ++ (byte) play_move_down::movedown#10 -- vbuz1=_inc_vbuz1 + // [255] (byte) play_move_down::movedown#2 ← ++ (byte) play_move_down::movedown#10 -- vbuz1=_inc_vbuz1 inc.z movedown - // [258] phi from play_move_down::@12 play_move_down::@5 play_move_down::@6 to play_move_down::@2 [phi:play_move_down::@12/play_move_down::@5/play_move_down::@6->play_move_down::@2] + // [256] phi from play_move_down::@12 play_move_down::@5 play_move_down::@6 to play_move_down::@2 [phi:play_move_down::@12/play_move_down::@5/play_move_down::@6->play_move_down::@2] __b2_from___b12: __b2_from___b5: __b2_from___b6: - // [258] phi (byte) play_move_down::movedown#7 = (byte) play_move_down::movedown#10 [phi:play_move_down::@12/play_move_down::@5/play_move_down::@6->play_move_down::@2#0] -- register_copy + // [256] phi (byte) play_move_down::movedown#7 = (byte) play_move_down::movedown#10 [phi:play_move_down::@12/play_move_down::@5/play_move_down::@6->play_move_down::@2#0] -- register_copy jmp __b2 // play_move_down::@2 __b2: - // [259] if((byte) current_movedown_counter#12<(byte) current_movedown_slow#14) goto play_move_down::@3 -- vbuz1_lt_vbuz2_then_la1 + // [257] if((byte) current_movedown_counter#12<(byte) current_movedown_slow#14) goto play_move_down::@3 -- vbuz1_lt_vbuz2_then_la1 lda.z current_movedown_counter cmp.z current_movedown_slow bcc __b3_from___b2 jmp __b7 // play_move_down::@7 __b7: - // [260] (byte) play_move_down::movedown#3 ← ++ (byte) play_move_down::movedown#7 -- vbuz1=_inc_vbuz1 + // [258] (byte) play_move_down::movedown#3 ← ++ (byte) play_move_down::movedown#7 -- vbuz1=_inc_vbuz1 inc.z movedown - // [261] phi from play_move_down::@2 play_move_down::@7 to play_move_down::@3 [phi:play_move_down::@2/play_move_down::@7->play_move_down::@3] + // [259] phi from play_move_down::@2 play_move_down::@7 to play_move_down::@3 [phi:play_move_down::@2/play_move_down::@7->play_move_down::@3] __b3_from___b2: __b3_from___b7: - // [261] phi (byte) play_move_down::movedown#6 = (byte) play_move_down::movedown#7 [phi:play_move_down::@2/play_move_down::@7->play_move_down::@3#0] -- register_copy + // [259] phi (byte) play_move_down::movedown#6 = (byte) play_move_down::movedown#7 [phi:play_move_down::@2/play_move_down::@7->play_move_down::@3#0] -- register_copy jmp __b3 // play_move_down::@3 __b3: - // [262] if((byte) play_move_down::movedown#6==(byte) 0) goto play_move_down::@return -- vbuz1_eq_0_then_la1 + // [260] if((byte) play_move_down::movedown#6==(byte) 0) goto play_move_down::@return -- vbuz1_eq_0_then_la1 lda.z movedown cmp #0 beq __breturn_from___b3 jmp __b8 // play_move_down::@8 __b8: - // [263] (byte) play_collision::ypos#0 ← (byte) current_ypos#11 + (byte) 1 -- vbuz1=vbuz2_plus_1 + // [261] (byte) play_collision::ypos#0 ← (byte) current_ypos#11 + (byte) 1 -- vbuz1=vbuz2_plus_1 ldy.z current_ypos iny sty.z play_collision.ypos - // [264] (byte) play_collision::xpos#0 ← (byte) current_xpos#14 -- vbuz1=vbuz2 + // [262] (byte) play_collision::xpos#0 ← (byte) current_xpos#14 -- vbuz1=vbuz2 lda.z current_xpos sta.z play_collision.xpos - // [265] (byte) play_collision::orientation#0 ← (byte) current_orientation#13 -- vbuz1=vbuz2 + // [263] (byte) play_collision::orientation#0 ← (byte) current_orientation#13 -- vbuz1=vbuz2 lda.z current_orientation sta.z play_collision.orientation - // [266] (byte*) current_piece#95 ← (byte*) current_piece#10 -- pbuz1=pbuz2 + // [264] (byte*) current_piece#95 ← (byte*) current_piece#10 -- pbuz1=pbuz2 lda.z current_piece sta.z current_piece_1 lda.z current_piece+1 sta.z current_piece_1+1 - // [267] call play_collision - // [202] phi from play_move_down::@8 to play_collision [phi:play_move_down::@8->play_collision] + // [265] call play_collision + // [200] phi from play_move_down::@8 to play_collision [phi:play_move_down::@8->play_collision] play_collision_from___b8: - // [202] phi (byte) play_collision::xpos#6 = (byte) play_collision::xpos#0 [phi:play_move_down::@8->play_collision#0] -- register_copy - // [202] phi (byte) play_collision::yp#0 = (byte) play_collision::ypos#0 [phi:play_move_down::@8->play_collision#1] -- register_copy - // [202] phi (byte) play_collision::orientation#5 = (byte) play_collision::orientation#0 [phi:play_move_down::@8->play_collision#2] -- register_copy - // [202] phi (byte*) current_piece#17 = (byte*) current_piece#95 [phi:play_move_down::@8->play_collision#3] -- register_copy + // [200] phi (byte) play_collision::xpos#6 = (byte) play_collision::xpos#0 [phi:play_move_down::@8->play_collision#0] -- register_copy + // [200] phi (byte) play_collision::yp#0 = (byte) play_collision::ypos#0 [phi:play_move_down::@8->play_collision#1] -- register_copy + // [200] phi (byte) play_collision::orientation#5 = (byte) play_collision::orientation#0 [phi:play_move_down::@8->play_collision#2] -- register_copy + // [200] phi (byte*) current_piece#17 = (byte*) current_piece#95 [phi:play_move_down::@8->play_collision#3] -- register_copy jsr play_collision - // [268] (byte) play_collision::return#0 ← (byte) play_collision::return#15 -- vbuz1=vbuz2 + // [266] (byte) play_collision::return#0 ← (byte) play_collision::return#15 -- vbuz1=vbuz2 lda.z play_collision.return_5 sta.z play_collision.return jmp __b13 // play_move_down::@13 __b13: - // [269] (byte~) play_move_down::$12 ← (byte) play_collision::return#0 -- vbuz1=vbuz2 + // [267] (byte~) play_move_down::$12 ← (byte) play_collision::return#0 -- vbuz1=vbuz2 lda.z play_collision.return sta.z __12 - // [270] if((byte~) play_move_down::$12==(const byte) COLLISION_NONE) goto play_move_down::@10 -- vbuz1_eq_vbuc1_then_la1 + // [268] if((byte~) play_move_down::$12==(const byte) COLLISION_NONE) goto play_move_down::@10 -- vbuz1_eq_vbuc1_then_la1 lda #COLLISION_NONE cmp.z __12 beq __b10 - // [271] phi from play_move_down::@13 to play_move_down::@9 [phi:play_move_down::@13->play_move_down::@9] + // [269] phi from play_move_down::@13 to play_move_down::@9 [phi:play_move_down::@13->play_move_down::@9] __b9_from___b13: jmp __b9 // play_move_down::@9 __b9: - // [272] call play_lock_current + // [270] call play_lock_current jsr play_lock_current - // [273] phi from play_move_down::@9 to play_move_down::@14 [phi:play_move_down::@9->play_move_down::@14] + // [271] phi from play_move_down::@9 to play_move_down::@14 [phi:play_move_down::@9->play_move_down::@14] __b14_from___b9: jmp __b14 // play_move_down::@14 __b14: - // [274] call play_remove_lines - // [340] phi from play_move_down::@14 to play_remove_lines [phi:play_move_down::@14->play_remove_lines] + // [272] call play_remove_lines + // [338] phi from play_move_down::@14 to play_remove_lines [phi:play_move_down::@14->play_remove_lines] play_remove_lines_from___b14: jsr play_remove_lines - // [275] (byte) play_remove_lines::return#0 ← (byte) play_remove_lines::removed#8 -- vbuz1=vbuz2 + // [273] (byte) play_remove_lines::return#0 ← (byte) play_remove_lines::removed#8 -- vbuz1=vbuz2 lda.z play_remove_lines.removed sta.z play_remove_lines.return jmp __b15 // play_move_down::@15 __b15: - // [276] (byte) play_move_down::removed#0 ← (byte) play_remove_lines::return#0 -- vbuz1=vbuz2 + // [274] (byte) play_move_down::removed#0 ← (byte) play_remove_lines::return#0 -- vbuz1=vbuz2 lda.z play_remove_lines.return sta.z removed - // [277] (byte) play_update_score::removed#0 ← (byte) play_move_down::removed#0 -- vbuz1=vbuz2 + // [275] (byte) play_update_score::removed#0 ← (byte) play_move_down::removed#0 -- vbuz1=vbuz2 lda.z removed sta.z play_update_score.removed - // [278] call play_update_score + // [276] call play_update_score jsr play_update_score - // [279] phi from play_move_down::@15 to play_move_down::@16 [phi:play_move_down::@15->play_move_down::@16] + // [277] phi from play_move_down::@15 to play_move_down::@16 [phi:play_move_down::@15->play_move_down::@16] __b16_from___b15: jmp __b16 // play_move_down::@16 __b16: - // [280] call play_spawn_current - // [287] phi from play_move_down::@16 to play_spawn_current [phi:play_move_down::@16->play_spawn_current] + // [278] call play_spawn_current + // [285] phi from play_move_down::@16 to play_spawn_current [phi:play_move_down::@16->play_spawn_current] play_spawn_current_from___b16: - // [287] phi (byte) game_over#65 = (byte) game_over#10 [phi:play_move_down::@16->play_spawn_current#0] -- register_copy - // [287] phi (byte) next_piece_idx#17 = (byte) next_piece_idx#10 [phi:play_move_down::@16->play_spawn_current#1] -- register_copy + // [285] phi (byte) game_over#65 = (byte) game_over#10 [phi:play_move_down::@16->play_spawn_current#0] -- register_copy + // [285] phi (byte) next_piece_idx#17 = (byte) next_piece_idx#10 [phi:play_move_down::@16->play_spawn_current#1] -- register_copy jsr play_spawn_current jmp __b17 // play_move_down::@17 __b17: - // [281] (byte*) current_piece#92 ← (byte*)*((const word*) PIECES + (byte~) play_spawn_current::$7) -- pbuz1=pptc1_derefidx_vbuz2 + // [279] (byte*) current_piece#92 ← (byte*)*((const word*) PIECES + (byte~) play_spawn_current::$7) -- pbuz1=pptc1_derefidx_vbuz2 ldy.z play_spawn_current.__7 lda PIECES,y sta.z current_piece lda PIECES+1,y sta.z current_piece+1 - // [282] (byte*) current_piece_gfx#116 ← (byte*)*((const word*) PIECES + (byte~) play_spawn_current::$7) -- pbuz1=pptc1_derefidx_vbuz2 + // [280] (byte*) current_piece_gfx#116 ← (byte*)*((const word*) PIECES + (byte~) play_spawn_current::$7) -- pbuz1=pptc1_derefidx_vbuz2 ldy.z play_spawn_current.__7 lda PIECES,y sta.z current_piece_gfx lda PIECES+1,y sta.z current_piece_gfx+1 - // [283] phi from play_move_down::@17 to play_move_down::@11 [phi:play_move_down::@17->play_move_down::@11] + // [281] phi from play_move_down::@17 to play_move_down::@11 [phi:play_move_down::@17->play_move_down::@11] __b11_from___b17: - // [283] phi (byte) next_piece_idx#30 = (byte) play_spawn_current::piece_idx#2 [phi:play_move_down::@17->play_move_down::@11#0] -- register_copy - // [283] phi (byte) game_over#27 = (byte) game_over#52 [phi:play_move_down::@17->play_move_down::@11#1] -- register_copy - // [283] phi (byte) current_xpos#43 = (byte) current_xpos#100 [phi:play_move_down::@17->play_move_down::@11#2] -- register_copy - // [283] phi (byte*) current_piece_gfx#35 = (byte*) current_piece_gfx#116 [phi:play_move_down::@17->play_move_down::@11#3] -- register_copy - // [283] phi (byte) current_orientation#37 = (byte) 0 [phi:play_move_down::@17->play_move_down::@11#4] -- vbuz1=vbuc1 + // [281] phi (byte) next_piece_idx#30 = (byte) play_spawn_current::piece_idx#2 [phi:play_move_down::@17->play_move_down::@11#0] -- register_copy + // [281] phi (byte) game_over#27 = (byte) game_over#52 [phi:play_move_down::@17->play_move_down::@11#1] -- register_copy + // [281] phi (byte) current_xpos#43 = (byte) current_xpos#100 [phi:play_move_down::@17->play_move_down::@11#2] -- register_copy + // [281] phi (byte*) current_piece_gfx#35 = (byte*) current_piece_gfx#116 [phi:play_move_down::@17->play_move_down::@11#3] -- register_copy + // [281] phi (byte) current_orientation#37 = (byte) 0 [phi:play_move_down::@17->play_move_down::@11#4] -- vbuz1=vbuc1 lda #0 sta.z current_orientation - // [283] phi (byte) current_piece_char#29 = (byte) current_piece_char#5 [phi:play_move_down::@17->play_move_down::@11#5] -- register_copy - // [283] phi (byte*) current_piece#28 = (byte*) current_piece#92 [phi:play_move_down::@17->play_move_down::@11#6] -- register_copy - // [283] phi (byte) level_bcd#31 = (byte) level_bcd#19 [phi:play_move_down::@17->play_move_down::@11#7] -- register_copy - // [283] phi (byte) current_movedown_slow#37 = (byte) current_movedown_slow#23 [phi:play_move_down::@17->play_move_down::@11#8] -- register_copy - // [283] phi (byte) level#33 = (byte) level#19 [phi:play_move_down::@17->play_move_down::@11#9] -- register_copy - // [283] phi (word) lines_bcd#26 = (word) lines_bcd#17 [phi:play_move_down::@17->play_move_down::@11#10] -- register_copy - // [283] phi (byte) current_ypos#38 = (byte) current_ypos#6 [phi:play_move_down::@17->play_move_down::@11#11] -- register_copy + // [281] phi (byte) current_piece_char#29 = (byte) current_piece_char#5 [phi:play_move_down::@17->play_move_down::@11#5] -- register_copy + // [281] phi (byte*) current_piece#28 = (byte*) current_piece#92 [phi:play_move_down::@17->play_move_down::@11#6] -- register_copy + // [281] phi (byte) level_bcd#31 = (byte) level_bcd#19 [phi:play_move_down::@17->play_move_down::@11#7] -- register_copy + // [281] phi (byte) current_movedown_slow#37 = (byte) current_movedown_slow#23 [phi:play_move_down::@17->play_move_down::@11#8] -- register_copy + // [281] phi (byte) level#33 = (byte) level#19 [phi:play_move_down::@17->play_move_down::@11#9] -- register_copy + // [281] phi (word) lines_bcd#26 = (word) lines_bcd#17 [phi:play_move_down::@17->play_move_down::@11#10] -- register_copy + // [281] phi (byte) current_ypos#38 = (byte) current_ypos#6 [phi:play_move_down::@17->play_move_down::@11#11] -- register_copy jmp __b11 // play_move_down::@11 __b11: - // [284] phi from play_move_down::@11 to play_move_down::@return [phi:play_move_down::@11->play_move_down::@return] + // [282] phi from play_move_down::@11 to play_move_down::@return [phi:play_move_down::@11->play_move_down::@return] __breturn_from___b11: - // [284] phi (byte) next_piece_idx#16 = (byte) next_piece_idx#30 [phi:play_move_down::@11->play_move_down::@return#0] -- register_copy - // [284] phi (byte) game_over#15 = (byte) game_over#27 [phi:play_move_down::@11->play_move_down::@return#1] -- register_copy - // [284] phi (byte) current_xpos#22 = (byte) current_xpos#43 [phi:play_move_down::@11->play_move_down::@return#2] -- register_copy - // [284] phi (byte*) current_piece_gfx#20 = (byte*) current_piece_gfx#35 [phi:play_move_down::@11->play_move_down::@return#3] -- register_copy - // [284] phi (byte) current_orientation#20 = (byte) current_orientation#37 [phi:play_move_down::@11->play_move_down::@return#4] -- register_copy - // [284] phi (byte) current_piece_char#16 = (byte) current_piece_char#29 [phi:play_move_down::@11->play_move_down::@return#5] -- register_copy - // [284] phi (byte*) current_piece#15 = (byte*) current_piece#28 [phi:play_move_down::@11->play_move_down::@return#6] -- register_copy - // [284] phi (byte) level_bcd#17 = (byte) level_bcd#31 [phi:play_move_down::@11->play_move_down::@return#7] -- register_copy - // [284] phi (byte) current_movedown_slow#21 = (byte) current_movedown_slow#37 [phi:play_move_down::@11->play_move_down::@return#8] -- register_copy - // [284] phi (byte) level#17 = (byte) level#33 [phi:play_move_down::@11->play_move_down::@return#9] -- register_copy - // [284] phi (word) lines_bcd#15 = (word) lines_bcd#26 [phi:play_move_down::@11->play_move_down::@return#10] -- register_copy - // [284] phi (byte) current_ypos#19 = (byte) current_ypos#38 [phi:play_move_down::@11->play_move_down::@return#11] -- register_copy - // [284] phi (byte) current_movedown_counter#14 = (byte) 0 [phi:play_move_down::@11->play_move_down::@return#12] -- vbuz1=vbuc1 + // [282] phi (byte) next_piece_idx#16 = (byte) next_piece_idx#30 [phi:play_move_down::@11->play_move_down::@return#0] -- register_copy + // [282] phi (byte) game_over#15 = (byte) game_over#27 [phi:play_move_down::@11->play_move_down::@return#1] -- register_copy + // [282] phi (byte) current_xpos#22 = (byte) current_xpos#43 [phi:play_move_down::@11->play_move_down::@return#2] -- register_copy + // [282] phi (byte*) current_piece_gfx#20 = (byte*) current_piece_gfx#35 [phi:play_move_down::@11->play_move_down::@return#3] -- register_copy + // [282] phi (byte) current_orientation#20 = (byte) current_orientation#37 [phi:play_move_down::@11->play_move_down::@return#4] -- register_copy + // [282] phi (byte) current_piece_char#16 = (byte) current_piece_char#29 [phi:play_move_down::@11->play_move_down::@return#5] -- register_copy + // [282] phi (byte*) current_piece#15 = (byte*) current_piece#28 [phi:play_move_down::@11->play_move_down::@return#6] -- register_copy + // [282] phi (byte) level_bcd#17 = (byte) level_bcd#31 [phi:play_move_down::@11->play_move_down::@return#7] -- register_copy + // [282] phi (byte) current_movedown_slow#21 = (byte) current_movedown_slow#37 [phi:play_move_down::@11->play_move_down::@return#8] -- register_copy + // [282] phi (byte) level#17 = (byte) level#33 [phi:play_move_down::@11->play_move_down::@return#9] -- register_copy + // [282] phi (word) lines_bcd#15 = (word) lines_bcd#26 [phi:play_move_down::@11->play_move_down::@return#10] -- register_copy + // [282] phi (byte) current_ypos#19 = (byte) current_ypos#38 [phi:play_move_down::@11->play_move_down::@return#11] -- register_copy + // [282] phi (byte) current_movedown_counter#14 = (byte) 0 [phi:play_move_down::@11->play_move_down::@return#12] -- vbuz1=vbuc1 lda #0 sta.z current_movedown_counter - // [284] phi (byte) play_move_down::return#3 = (byte) 1 [phi:play_move_down::@11->play_move_down::@return#13] -- vbuz1=vbuc1 + // [282] phi (byte) play_move_down::return#3 = (byte) 1 [phi:play_move_down::@11->play_move_down::@return#13] -- vbuz1=vbuc1 lda #1 sta.z return_1 jmp __breturn - // [284] phi from play_move_down::@3 to play_move_down::@return [phi:play_move_down::@3->play_move_down::@return] + // [282] phi from play_move_down::@3 to play_move_down::@return [phi:play_move_down::@3->play_move_down::@return] __breturn_from___b3: - // [284] phi (byte) next_piece_idx#16 = (byte) next_piece_idx#10 [phi:play_move_down::@3->play_move_down::@return#0] -- register_copy - // [284] phi (byte) game_over#15 = (byte) game_over#10 [phi:play_move_down::@3->play_move_down::@return#1] -- register_copy - // [284] phi (byte) current_xpos#22 = (byte) current_xpos#14 [phi:play_move_down::@3->play_move_down::@return#2] -- register_copy - // [284] phi (byte*) current_piece_gfx#20 = (byte*) current_piece_gfx#13 [phi:play_move_down::@3->play_move_down::@return#3] -- register_copy - // [284] phi (byte) current_orientation#20 = (byte) current_orientation#13 [phi:play_move_down::@3->play_move_down::@return#4] -- register_copy - // [284] phi (byte) current_piece_char#16 = (byte) current_piece_char#10 [phi:play_move_down::@3->play_move_down::@return#5] -- register_copy - // [284] phi (byte*) current_piece#15 = (byte*) current_piece#10 [phi:play_move_down::@3->play_move_down::@return#6] -- register_copy - // [284] phi (byte) level_bcd#17 = (byte) level_bcd#11 [phi:play_move_down::@3->play_move_down::@return#7] -- register_copy - // [284] phi (byte) current_movedown_slow#21 = (byte) current_movedown_slow#14 [phi:play_move_down::@3->play_move_down::@return#8] -- register_copy - // [284] phi (byte) level#17 = (byte) level#10 [phi:play_move_down::@3->play_move_down::@return#9] -- register_copy - // [284] phi (word) lines_bcd#15 = (word) lines_bcd#19 [phi:play_move_down::@3->play_move_down::@return#10] -- register_copy - // [284] phi (byte) current_ypos#19 = (byte) current_ypos#11 [phi:play_move_down::@3->play_move_down::@return#11] -- register_copy - // [284] phi (byte) current_movedown_counter#14 = (byte) current_movedown_counter#12 [phi:play_move_down::@3->play_move_down::@return#12] -- register_copy - // [284] phi (byte) play_move_down::return#3 = (byte) 0 [phi:play_move_down::@3->play_move_down::@return#13] -- vbuz1=vbuc1 + // [282] phi (byte) next_piece_idx#16 = (byte) next_piece_idx#10 [phi:play_move_down::@3->play_move_down::@return#0] -- register_copy + // [282] phi (byte) game_over#15 = (byte) game_over#10 [phi:play_move_down::@3->play_move_down::@return#1] -- register_copy + // [282] phi (byte) current_xpos#22 = (byte) current_xpos#14 [phi:play_move_down::@3->play_move_down::@return#2] -- register_copy + // [282] phi (byte*) current_piece_gfx#20 = (byte*) current_piece_gfx#13 [phi:play_move_down::@3->play_move_down::@return#3] -- register_copy + // [282] phi (byte) current_orientation#20 = (byte) current_orientation#13 [phi:play_move_down::@3->play_move_down::@return#4] -- register_copy + // [282] phi (byte) current_piece_char#16 = (byte) current_piece_char#10 [phi:play_move_down::@3->play_move_down::@return#5] -- register_copy + // [282] phi (byte*) current_piece#15 = (byte*) current_piece#10 [phi:play_move_down::@3->play_move_down::@return#6] -- register_copy + // [282] phi (byte) level_bcd#17 = (byte) level_bcd#11 [phi:play_move_down::@3->play_move_down::@return#7] -- register_copy + // [282] phi (byte) current_movedown_slow#21 = (byte) current_movedown_slow#14 [phi:play_move_down::@3->play_move_down::@return#8] -- register_copy + // [282] phi (byte) level#17 = (byte) level#10 [phi:play_move_down::@3->play_move_down::@return#9] -- register_copy + // [282] phi (word) lines_bcd#15 = (word) lines_bcd#19 [phi:play_move_down::@3->play_move_down::@return#10] -- register_copy + // [282] phi (byte) current_ypos#19 = (byte) current_ypos#11 [phi:play_move_down::@3->play_move_down::@return#11] -- register_copy + // [282] phi (byte) current_movedown_counter#14 = (byte) current_movedown_counter#12 [phi:play_move_down::@3->play_move_down::@return#12] -- register_copy + // [282] phi (byte) play_move_down::return#3 = (byte) 0 [phi:play_move_down::@3->play_move_down::@return#13] -- vbuz1=vbuc1 lda #0 sta.z return_1 jmp __breturn // play_move_down::@return __breturn: - // [285] return + // [283] return rts // play_move_down::@10 __b10: - // [286] (byte) current_ypos#3 ← ++ (byte) current_ypos#11 -- vbuz1=_inc_vbuz1 + // [284] (byte) current_ypos#3 ← ++ (byte) current_ypos#11 -- vbuz1=_inc_vbuz1 inc.z current_ypos - // [283] phi from play_move_down::@10 to play_move_down::@11 [phi:play_move_down::@10->play_move_down::@11] + // [281] phi from play_move_down::@10 to play_move_down::@11 [phi:play_move_down::@10->play_move_down::@11] __b11_from___b10: - // [283] phi (byte) next_piece_idx#30 = (byte) next_piece_idx#10 [phi:play_move_down::@10->play_move_down::@11#0] -- register_copy - // [283] phi (byte) game_over#27 = (byte) game_over#10 [phi:play_move_down::@10->play_move_down::@11#1] -- register_copy - // [283] phi (byte) current_xpos#43 = (byte) current_xpos#14 [phi:play_move_down::@10->play_move_down::@11#2] -- register_copy - // [283] phi (byte*) current_piece_gfx#35 = (byte*) current_piece_gfx#13 [phi:play_move_down::@10->play_move_down::@11#3] -- register_copy - // [283] phi (byte) current_orientation#37 = (byte) current_orientation#13 [phi:play_move_down::@10->play_move_down::@11#4] -- register_copy - // [283] phi (byte) current_piece_char#29 = (byte) current_piece_char#10 [phi:play_move_down::@10->play_move_down::@11#5] -- register_copy - // [283] phi (byte*) current_piece#28 = (byte*) current_piece#10 [phi:play_move_down::@10->play_move_down::@11#6] -- register_copy - // [283] phi (byte) level_bcd#31 = (byte) level_bcd#11 [phi:play_move_down::@10->play_move_down::@11#7] -- register_copy - // [283] phi (byte) current_movedown_slow#37 = (byte) current_movedown_slow#14 [phi:play_move_down::@10->play_move_down::@11#8] -- register_copy - // [283] phi (byte) level#33 = (byte) level#10 [phi:play_move_down::@10->play_move_down::@11#9] -- register_copy - // [283] phi (word) lines_bcd#26 = (word) lines_bcd#19 [phi:play_move_down::@10->play_move_down::@11#10] -- register_copy - // [283] phi (byte) current_ypos#38 = (byte) current_ypos#3 [phi:play_move_down::@10->play_move_down::@11#11] -- register_copy + // [281] phi (byte) next_piece_idx#30 = (byte) next_piece_idx#10 [phi:play_move_down::@10->play_move_down::@11#0] -- register_copy + // [281] phi (byte) game_over#27 = (byte) game_over#10 [phi:play_move_down::@10->play_move_down::@11#1] -- register_copy + // [281] phi (byte) current_xpos#43 = (byte) current_xpos#14 [phi:play_move_down::@10->play_move_down::@11#2] -- register_copy + // [281] phi (byte*) current_piece_gfx#35 = (byte*) current_piece_gfx#13 [phi:play_move_down::@10->play_move_down::@11#3] -- register_copy + // [281] phi (byte) current_orientation#37 = (byte) current_orientation#13 [phi:play_move_down::@10->play_move_down::@11#4] -- register_copy + // [281] phi (byte) current_piece_char#29 = (byte) current_piece_char#10 [phi:play_move_down::@10->play_move_down::@11#5] -- register_copy + // [281] phi (byte*) current_piece#28 = (byte*) current_piece#10 [phi:play_move_down::@10->play_move_down::@11#6] -- register_copy + // [281] phi (byte) level_bcd#31 = (byte) level_bcd#11 [phi:play_move_down::@10->play_move_down::@11#7] -- register_copy + // [281] phi (byte) current_movedown_slow#37 = (byte) current_movedown_slow#14 [phi:play_move_down::@10->play_move_down::@11#8] -- register_copy + // [281] phi (byte) level#33 = (byte) level#10 [phi:play_move_down::@10->play_move_down::@11#9] -- register_copy + // [281] phi (word) lines_bcd#26 = (word) lines_bcd#19 [phi:play_move_down::@10->play_move_down::@11#10] -- register_copy + // [281] phi (byte) current_ypos#38 = (byte) current_ypos#3 [phi:play_move_down::@10->play_move_down::@11#11] -- register_copy jmp __b11 } // play_spawn_current @@ -13700,110 +13678,110 @@ play_spawn_current: { // Spawn a new next piece // Pick a random piece (0-6) .label piece_idx = $45 - // [288] (byte) play_spawn_current::current_piece_idx#0 ← (byte) next_piece_idx#17 -- vbuz1=vbuz2 + // [286] (byte) play_spawn_current::current_piece_idx#0 ← (byte) next_piece_idx#17 -- vbuz1=vbuz2 // Move next piece into current lda.z next_piece_idx sta.z current_piece_idx - // [289] (byte~) play_spawn_current::$7 ← (byte) play_spawn_current::current_piece_idx#0 << (byte) 1 -- vbuz1=vbuz2_rol_1 + // [287] (byte~) play_spawn_current::$7 ← (byte) play_spawn_current::current_piece_idx#0 << (byte) 1 -- vbuz1=vbuz2_rol_1 lda.z current_piece_idx asl sta.z __7 - // [290] (byte) current_piece_char#5 ← *((const byte*) PIECES_CHARS + (byte) play_spawn_current::current_piece_idx#0) -- vbuz1=pbuc1_derefidx_vbuz2 + // [288] (byte) current_piece_char#5 ← *((const byte*) PIECES_CHARS + (byte) play_spawn_current::current_piece_idx#0) -- vbuz1=pbuc1_derefidx_vbuz2 ldy.z current_piece_idx lda PIECES_CHARS,y sta.z current_piece_char - // [291] (byte) current_xpos#100 ← *((const byte*) PIECES_START_X + (byte) play_spawn_current::current_piece_idx#0) -- vbuz1=pbuc1_derefidx_vbuz2 + // [289] (byte) current_xpos#100 ← *((const byte*) PIECES_START_X + (byte) play_spawn_current::current_piece_idx#0) -- vbuz1=pbuc1_derefidx_vbuz2 ldy.z current_piece_idx lda PIECES_START_X,y sta.z current_xpos - // [292] (byte) current_ypos#6 ← *((const byte*) PIECES_START_Y + (byte) play_spawn_current::current_piece_idx#0) -- vbuz1=pbuc1_derefidx_vbuz2 + // [290] (byte) current_ypos#6 ← *((const byte*) PIECES_START_Y + (byte) play_spawn_current::current_piece_idx#0) -- vbuz1=pbuc1_derefidx_vbuz2 ldy.z current_piece_idx lda PIECES_START_Y,y sta.z current_ypos - // [293] (byte) play_collision::xpos#4 ← (byte) current_xpos#100 -- vbuz1=vbuz2 + // [291] (byte) play_collision::xpos#4 ← (byte) current_xpos#100 -- vbuz1=vbuz2 lda.z current_xpos sta.z play_collision.xpos - // [294] (byte) play_collision::ypos#4 ← (byte) current_ypos#6 -- vbuz1=vbuz2 + // [292] (byte) play_collision::ypos#4 ← (byte) current_ypos#6 -- vbuz1=vbuz2 lda.z current_ypos sta.z play_collision.ypos - // [295] (byte*) current_piece#99 ← (byte*)*((const word*) PIECES + (byte~) play_spawn_current::$7) -- pbuz1=pptc1_derefidx_vbuz2 + // [293] (byte*) current_piece#99 ← (byte*)*((const word*) PIECES + (byte~) play_spawn_current::$7) -- pbuz1=pptc1_derefidx_vbuz2 ldy.z __7 lda PIECES,y sta.z current_piece_1 lda PIECES+1,y sta.z current_piece_1+1 - // [296] call play_collision - // [202] phi from play_spawn_current to play_collision [phi:play_spawn_current->play_collision] + // [294] call play_collision + // [200] phi from play_spawn_current to play_collision [phi:play_spawn_current->play_collision] play_collision_from_play_spawn_current: - // [202] phi (byte) play_collision::xpos#6 = (byte) play_collision::xpos#4 [phi:play_spawn_current->play_collision#0] -- register_copy - // [202] phi (byte) play_collision::yp#0 = (byte) play_collision::ypos#4 [phi:play_spawn_current->play_collision#1] -- register_copy - // [202] phi (byte) play_collision::orientation#5 = (byte) 0 [phi:play_spawn_current->play_collision#2] -- vbuz1=vbuc1 + // [200] phi (byte) play_collision::xpos#6 = (byte) play_collision::xpos#4 [phi:play_spawn_current->play_collision#0] -- register_copy + // [200] phi (byte) play_collision::yp#0 = (byte) play_collision::ypos#4 [phi:play_spawn_current->play_collision#1] -- register_copy + // [200] phi (byte) play_collision::orientation#5 = (byte) 0 [phi:play_spawn_current->play_collision#2] -- vbuz1=vbuc1 lda #0 sta.z play_collision.orientation - // [202] phi (byte*) current_piece#17 = (byte*) current_piece#99 [phi:play_spawn_current->play_collision#3] -- register_copy + // [200] phi (byte*) current_piece#17 = (byte*) current_piece#99 [phi:play_spawn_current->play_collision#3] -- register_copy jsr play_collision - // [297] (byte) play_collision::return#10 ← (byte) play_collision::return#15 -- vbuz1=vbuz2 + // [295] (byte) play_collision::return#10 ← (byte) play_collision::return#15 -- vbuz1=vbuz2 lda.z play_collision.return_5 sta.z play_collision.return_2 jmp __b4 // play_spawn_current::@4 __b4: - // [298] (byte~) play_spawn_current::$1 ← (byte) play_collision::return#10 -- vbuz1=vbuz2 + // [296] (byte~) play_spawn_current::$1 ← (byte) play_collision::return#10 -- vbuz1=vbuz2 lda.z play_collision.return_2 sta.z __1 - // [299] if((byte~) play_spawn_current::$1!=(const byte) COLLISION_PLAYFIELD) goto play_spawn_current::@5 -- vbuz1_neq_vbuc1_then_la1 + // [297] if((byte~) play_spawn_current::$1!=(const byte) COLLISION_PLAYFIELD) goto play_spawn_current::@5 -- vbuz1_neq_vbuc1_then_la1 lda #COLLISION_PLAYFIELD cmp.z __1 bne __b5_from___b4 - // [301] phi from play_spawn_current::@4 to play_spawn_current::@1 [phi:play_spawn_current::@4->play_spawn_current::@1] + // [299] phi from play_spawn_current::@4 to play_spawn_current::@1 [phi:play_spawn_current::@4->play_spawn_current::@1] __b1_from___b4: - // [301] phi (byte) game_over#52 = (byte) 1 [phi:play_spawn_current::@4->play_spawn_current::@1#0] -- vbuz1=vbuc1 + // [299] phi (byte) game_over#52 = (byte) 1 [phi:play_spawn_current::@4->play_spawn_current::@1#0] -- vbuz1=vbuc1 lda #1 sta.z game_over jmp __b1 - // [300] phi from play_spawn_current::@4 to play_spawn_current::@5 [phi:play_spawn_current::@4->play_spawn_current::@5] + // [298] phi from play_spawn_current::@4 to play_spawn_current::@5 [phi:play_spawn_current::@4->play_spawn_current::@5] __b5_from___b4: jmp __b5 // play_spawn_current::@5 __b5: - // [301] phi from play_spawn_current::@5 to play_spawn_current::@1 [phi:play_spawn_current::@5->play_spawn_current::@1] + // [299] phi from play_spawn_current::@5 to play_spawn_current::@1 [phi:play_spawn_current::@5->play_spawn_current::@1] __b1_from___b5: - // [301] phi (byte) game_over#52 = (byte) game_over#65 [phi:play_spawn_current::@5->play_spawn_current::@1#0] -- register_copy + // [299] phi (byte) game_over#52 = (byte) game_over#65 [phi:play_spawn_current::@5->play_spawn_current::@1#0] -- register_copy jmp __b1 // play_spawn_current::@1 __b1: - // [302] phi from play_spawn_current::@1 to play_spawn_current::@2 [phi:play_spawn_current::@1->play_spawn_current::@2] + // [300] phi from play_spawn_current::@1 to play_spawn_current::@2 [phi:play_spawn_current::@1->play_spawn_current::@2] __b2_from___b1: - // [302] phi (byte) play_spawn_current::piece_idx#2 = (byte) 7 [phi:play_spawn_current::@1->play_spawn_current::@2#0] -- vbuz1=vbuc1 + // [300] phi (byte) play_spawn_current::piece_idx#2 = (byte) 7 [phi:play_spawn_current::@1->play_spawn_current::@2#0] -- vbuz1=vbuc1 lda #7 sta.z piece_idx jmp __b2 // play_spawn_current::@2 __b2: - // [303] if((byte) play_spawn_current::piece_idx#2==(byte) 7) goto play_spawn_current::sid_rnd1 -- vbuz1_eq_vbuc1_then_la1 + // [301] if((byte) play_spawn_current::piece_idx#2==(byte) 7) goto play_spawn_current::sid_rnd1 -- vbuz1_eq_vbuc1_then_la1 lda #7 cmp.z piece_idx beq sid_rnd1 jmp __breturn // play_spawn_current::@return __breturn: - // [304] return + // [302] return rts // play_spawn_current::sid_rnd1 sid_rnd1: - // [305] (byte) play_spawn_current::sid_rnd1_return#0 ← *((const byte*) SID_VOICE3_OSC) -- vbuz1=_deref_pbuc1 + // [303] (byte) play_spawn_current::sid_rnd1_return#0 ← *((const byte*) SID_VOICE3_OSC) -- vbuz1=_deref_pbuc1 lda SID_VOICE3_OSC sta.z sid_rnd1_return jmp __b3 // play_spawn_current::@3 __b3: - // [306] (byte) play_spawn_current::piece_idx#1 ← (byte) play_spawn_current::sid_rnd1_return#0 & (byte) 7 -- vbuz1=vbuz2_band_vbuc1 + // [304] (byte) play_spawn_current::piece_idx#1 ← (byte) play_spawn_current::sid_rnd1_return#0 & (byte) 7 -- vbuz1=vbuz2_band_vbuc1 lda #7 and.z sid_rnd1_return sta.z piece_idx - // [302] phi from play_spawn_current::@3 to play_spawn_current::@2 [phi:play_spawn_current::@3->play_spawn_current::@2] + // [300] phi from play_spawn_current::@3 to play_spawn_current::@2 [phi:play_spawn_current::@3->play_spawn_current::@2] __b2_from___b3: - // [302] phi (byte) play_spawn_current::piece_idx#2 = (byte) play_spawn_current::piece_idx#1 [phi:play_spawn_current::@3->play_spawn_current::@2#0] -- register_copy + // [300] phi (byte) play_spawn_current::piece_idx#2 = (byte) play_spawn_current::piece_idx#1 [phi:play_spawn_current::@3->play_spawn_current::@2#0] -- register_copy jmp __b2 } // play_update_score @@ -13817,26 +13795,26 @@ play_update_score: { .label lines_before = $b1 .label add_bcd = $b3 .label lines_after = $b8 - // [307] if((byte) play_update_score::removed#0==(byte) 0) goto play_update_score::@return -- vbuz1_eq_0_then_la1 + // [305] if((byte) play_update_score::removed#0==(byte) 0) goto play_update_score::@return -- vbuz1_eq_0_then_la1 lda.z removed cmp #0 beq __breturn_from_play_update_score jmp __b1 // play_update_score::@1 __b1: - // [308] (byte~) play_update_score::$2 ← < (word) lines_bcd#19 -- vbuz1=_lo_vwuz2 + // [306] (byte~) play_update_score::$2 ← < (word) lines_bcd#19 -- vbuz1=_lo_vwuz2 lda.z lines_bcd sta.z __2 - // [309] (byte) play_update_score::lines_before#0 ← (byte~) play_update_score::$2 & (byte) $f0 -- vbuz1=vbuz2_band_vbuc1 + // [307] (byte) play_update_score::lines_before#0 ← (byte~) play_update_score::$2 & (byte) $f0 -- vbuz1=vbuz2_band_vbuc1 lda #$f0 and.z __2 sta.z lines_before - // [310] (byte~) play_update_score::$9 ← (byte) play_update_score::removed#0 << (byte) 2 -- vbuz1=vbuz2_rol_2 + // [308] (byte~) play_update_score::$9 ← (byte) play_update_score::removed#0 << (byte) 2 -- vbuz1=vbuz2_rol_2 lda.z removed asl asl sta.z __9 - // [311] (dword) play_update_score::add_bcd#0 ← *((const dword*) score_add_bcd + (byte~) play_update_score::$9) -- vduz1=pduc1_derefidx_vbuz2 + // [309] (dword) play_update_score::add_bcd#0 ← *((const dword*) score_add_bcd + (byte~) play_update_score::$9) -- vduz1=pduc1_derefidx_vbuz2 ldy.z __9 lda score_add_bcd,y sta.z add_bcd @@ -13848,7 +13826,7 @@ play_update_score: { sta.z add_bcd+3 // asm { sed } sed - // [313] (word) lines_bcd#29 ← (word) lines_bcd#19 + (byte) play_update_score::removed#0 -- vwuz1=vwuz1_plus_vbuz2 + // [311] (word) lines_bcd#29 ← (word) lines_bcd#19 + (byte) play_update_score::removed#0 -- vwuz1=vwuz1_plus_vbuz2 lda.z removed clc adc.z lines_bcd @@ -13856,7 +13834,7 @@ play_update_score: { bcc !+ inc.z lines_bcd+1 !: - // [314] (dword) score_bcd ← (dword) score_bcd + (dword) play_update_score::add_bcd#0 -- vduz1=vduz1_plus_vduz2 + // [312] (dword) score_bcd ← (dword) score_bcd + (dword) play_update_score::add_bcd#0 -- vduz1=vduz1_plus_vduz2 lda.z score_bcd clc adc.z add_bcd @@ -13872,36 +13850,36 @@ play_update_score: { sta.z score_bcd+3 // asm { cld } cld - // [316] (byte~) play_update_score::$4 ← < (word) lines_bcd#29 -- vbuz1=_lo_vwuz2 + // [314] (byte~) play_update_score::$4 ← < (word) lines_bcd#29 -- vbuz1=_lo_vwuz2 lda.z lines_bcd sta.z __4 - // [317] (byte) play_update_score::lines_after#0 ← (byte~) play_update_score::$4 & (byte) $f0 -- vbuz1=vbuz2_band_vbuc1 + // [315] (byte) play_update_score::lines_after#0 ← (byte~) play_update_score::$4 & (byte) $f0 -- vbuz1=vbuz2_band_vbuc1 lda #$f0 and.z __4 sta.z lines_after - // [318] if((byte) play_update_score::lines_before#0==(byte) play_update_score::lines_after#0) goto play_update_score::@return -- vbuz1_eq_vbuz2_then_la1 + // [316] if((byte) play_update_score::lines_before#0==(byte) play_update_score::lines_after#0) goto play_update_score::@return -- vbuz1_eq_vbuz2_then_la1 lda.z lines_before cmp.z lines_after beq __breturn_from___b1 - // [319] phi from play_update_score::@1 to play_update_score::@2 [phi:play_update_score::@1->play_update_score::@2] + // [317] phi from play_update_score::@1 to play_update_score::@2 [phi:play_update_score::@1->play_update_score::@2] __b2_from___b1: jmp __b2 // play_update_score::@2 __b2: - // [320] call play_increase_level + // [318] call play_increase_level jsr play_increase_level - // [321] phi from play_update_score play_update_score::@1 play_update_score::@2 to play_update_score::@return [phi:play_update_score/play_update_score::@1/play_update_score::@2->play_update_score::@return] + // [319] phi from play_update_score play_update_score::@1 play_update_score::@2 to play_update_score::@return [phi:play_update_score/play_update_score::@1/play_update_score::@2->play_update_score::@return] __breturn_from_play_update_score: __breturn_from___b1: __breturn_from___b2: - // [321] phi (byte) level_bcd#19 = (byte) level_bcd#11 [phi:play_update_score/play_update_score::@1/play_update_score::@2->play_update_score::@return#0] -- register_copy - // [321] phi (byte) current_movedown_slow#23 = (byte) current_movedown_slow#14 [phi:play_update_score/play_update_score::@1/play_update_score::@2->play_update_score::@return#1] -- register_copy - // [321] phi (byte) level#19 = (byte) level#10 [phi:play_update_score/play_update_score::@1/play_update_score::@2->play_update_score::@return#2] -- register_copy - // [321] phi (word) lines_bcd#17 = (word) lines_bcd#19 [phi:play_update_score/play_update_score::@1/play_update_score::@2->play_update_score::@return#3] -- register_copy + // [319] phi (byte) level_bcd#19 = (byte) level_bcd#11 [phi:play_update_score/play_update_score::@1/play_update_score::@2->play_update_score::@return#0] -- register_copy + // [319] phi (byte) current_movedown_slow#23 = (byte) current_movedown_slow#14 [phi:play_update_score/play_update_score::@1/play_update_score::@2->play_update_score::@return#1] -- register_copy + // [319] phi (byte) level#19 = (byte) level#10 [phi:play_update_score/play_update_score::@1/play_update_score::@2->play_update_score::@return#2] -- register_copy + // [319] phi (word) lines_bcd#17 = (word) lines_bcd#19 [phi:play_update_score/play_update_score::@1/play_update_score::@2->play_update_score::@return#3] -- register_copy jmp __breturn // play_update_score::@return __breturn: - // [322] return + // [320] return rts } // play_increase_level @@ -13910,9 +13888,9 @@ play_increase_level: { .label __1 = $b9 .label __5 = $ba .label b = $47 - // [323] (byte) level#21 ← ++ (byte) level#10 -- vbuz1=_inc_vbuz1 + // [321] (byte) level#21 ← ++ (byte) level#10 -- vbuz1=_inc_vbuz1 inc.z level - // [324] if((byte) level#21>=(byte) $1d+(byte) 1) goto play_increase_level::@1 -- vbuz1_ge_vbuc1_then_la1 + // [322] if((byte) level#21>=(byte) $1d+(byte) 1) goto play_increase_level::@1 -- vbuz1_ge_vbuc1_then_la1 // Update speed of moving tetrominos down lda.z level cmp #$1d+1 @@ -13920,68 +13898,68 @@ play_increase_level: { jmp __b3 // play_increase_level::@3 __b3: - // [325] (byte) current_movedown_slow#10 ← *((const byte*) MOVEDOWN_SLOW_SPEEDS + (byte) level#21) -- vbuz1=pbuc1_derefidx_vbuz2 + // [323] (byte) current_movedown_slow#10 ← *((const byte*) MOVEDOWN_SLOW_SPEEDS + (byte) level#21) -- vbuz1=pbuc1_derefidx_vbuz2 ldy.z level lda MOVEDOWN_SLOW_SPEEDS,y sta.z current_movedown_slow - // [326] phi from play_increase_level::@3 to play_increase_level::@1 [phi:play_increase_level::@3->play_increase_level::@1] + // [324] phi from play_increase_level::@3 to play_increase_level::@1 [phi:play_increase_level::@3->play_increase_level::@1] __b1_from___b3: - // [326] phi (byte) current_movedown_slow#65 = (byte) current_movedown_slow#10 [phi:play_increase_level::@3->play_increase_level::@1#0] -- register_copy + // [324] phi (byte) current_movedown_slow#65 = (byte) current_movedown_slow#10 [phi:play_increase_level::@3->play_increase_level::@1#0] -- register_copy jmp __b1 - // [326] phi from play_increase_level to play_increase_level::@1 [phi:play_increase_level->play_increase_level::@1] + // [324] phi from play_increase_level to play_increase_level::@1 [phi:play_increase_level->play_increase_level::@1] __b1_from_play_increase_level: - // [326] phi (byte) current_movedown_slow#65 = (byte) 1 [phi:play_increase_level->play_increase_level::@1#0] -- vbuz1=vbuc1 + // [324] phi (byte) current_movedown_slow#65 = (byte) 1 [phi:play_increase_level->play_increase_level::@1#0] -- vbuz1=vbuc1 lda #1 sta.z current_movedown_slow jmp __b1 // play_increase_level::@1 __b1: - // [327] (byte) level_bcd#21 ← ++ (byte) level_bcd#11 -- vbuz1=_inc_vbuz1 + // [325] (byte) level_bcd#21 ← ++ (byte) level_bcd#11 -- vbuz1=_inc_vbuz1 inc.z level_bcd - // [328] (byte~) play_increase_level::$1 ← (byte) level_bcd#21 & (byte) $f -- vbuz1=vbuz2_band_vbuc1 + // [326] (byte~) play_increase_level::$1 ← (byte) level_bcd#21 & (byte) $f -- vbuz1=vbuz2_band_vbuc1 lda #$f and.z level_bcd sta.z __1 - // [329] if((byte~) play_increase_level::$1!=(byte) $a) goto play_increase_level::@2 -- vbuz1_neq_vbuc1_then_la1 + // [327] if((byte~) play_increase_level::$1!=(byte) $a) goto play_increase_level::@2 -- vbuz1_neq_vbuc1_then_la1 lda #$a cmp.z __1 bne __b2_from___b1 jmp __b4 // play_increase_level::@4 __b4: - // [330] (byte) level_bcd#8 ← (byte) level_bcd#21 + (byte) 6 -- vbuz1=vbuz1_plus_vbuc1 + // [328] (byte) level_bcd#8 ← (byte) level_bcd#21 + (byte) 6 -- vbuz1=vbuz1_plus_vbuc1 // If level low nybble hits 0xa change to 0x10 lax.z level_bcd axs #-[6] stx.z level_bcd - // [331] phi from play_increase_level::@1 play_increase_level::@4 to play_increase_level::@2 [phi:play_increase_level::@1/play_increase_level::@4->play_increase_level::@2] + // [329] phi from play_increase_level::@1 play_increase_level::@4 to play_increase_level::@2 [phi:play_increase_level::@1/play_increase_level::@4->play_increase_level::@2] __b2_from___b1: __b2_from___b4: - // [331] phi (byte) level_bcd#62 = (byte) level_bcd#21 [phi:play_increase_level::@1/play_increase_level::@4->play_increase_level::@2#0] -- register_copy + // [329] phi (byte) level_bcd#62 = (byte) level_bcd#21 [phi:play_increase_level::@1/play_increase_level::@4->play_increase_level::@2#0] -- register_copy jmp __b2 // play_increase_level::@2 __b2: // asm { sed } // Increase the score values gained sed - // [333] phi from play_increase_level::@2 to play_increase_level::@5 [phi:play_increase_level::@2->play_increase_level::@5] + // [331] phi from play_increase_level::@2 to play_increase_level::@5 [phi:play_increase_level::@2->play_increase_level::@5] __b5_from___b2: - // [333] phi (byte) play_increase_level::b#2 = (byte) 0 [phi:play_increase_level::@2->play_increase_level::@5#0] -- vbuz1=vbuc1 + // [331] phi (byte) play_increase_level::b#2 = (byte) 0 [phi:play_increase_level::@2->play_increase_level::@5#0] -- vbuz1=vbuc1 lda #0 sta.z b jmp __b5 - // [333] phi from play_increase_level::@5 to play_increase_level::@5 [phi:play_increase_level::@5->play_increase_level::@5] + // [331] phi from play_increase_level::@5 to play_increase_level::@5 [phi:play_increase_level::@5->play_increase_level::@5] __b5_from___b5: - // [333] phi (byte) play_increase_level::b#2 = (byte) play_increase_level::b#1 [phi:play_increase_level::@5->play_increase_level::@5#0] -- register_copy + // [331] phi (byte) play_increase_level::b#2 = (byte) play_increase_level::b#1 [phi:play_increase_level::@5->play_increase_level::@5#0] -- register_copy jmp __b5 // play_increase_level::@5 __b5: - // [334] (byte~) play_increase_level::$5 ← (byte) play_increase_level::b#2 << (byte) 2 -- vbuz1=vbuz2_rol_2 + // [332] (byte~) play_increase_level::$5 ← (byte) play_increase_level::b#2 << (byte) 2 -- vbuz1=vbuz2_rol_2 lda.z b asl asl sta.z __5 - // [335] *((const dword*) score_add_bcd + (byte~) play_increase_level::$5) ← *((const dword*) score_add_bcd + (byte~) play_increase_level::$5) + *((const dword*) SCORE_BASE_BCD + (byte~) play_increase_level::$5) -- pduc1_derefidx_vbuz1=pduc1_derefidx_vbuz1_plus_pduc2_derefidx_vbuz1 + // [333] *((const dword*) score_add_bcd + (byte~) play_increase_level::$5) ← *((const dword*) score_add_bcd + (byte~) play_increase_level::$5) + *((const dword*) SCORE_BASE_BCD + (byte~) play_increase_level::$5) -- pduc1_derefidx_vbuz1=pduc1_derefidx_vbuz1_plus_pduc2_derefidx_vbuz1 ldy.z __5 clc lda score_add_bcd,y @@ -13996,9 +13974,9 @@ play_increase_level: { lda score_add_bcd+3,y adc SCORE_BASE_BCD+3,y sta score_add_bcd+3,y - // [336] (byte) play_increase_level::b#1 ← ++ (byte) play_increase_level::b#2 -- vbuz1=_inc_vbuz1 + // [334] (byte) play_increase_level::b#1 ← ++ (byte) play_increase_level::b#2 -- vbuz1=_inc_vbuz1 inc.z b - // [337] if((byte) play_increase_level::b#1!=(byte) 5) goto play_increase_level::@5 -- vbuz1_neq_vbuc1_then_la1 + // [335] if((byte) play_increase_level::b#1!=(byte) 5) goto play_increase_level::@5 -- vbuz1_neq_vbuc1_then_la1 lda #5 cmp.z b bne __b5_from___b5 @@ -14010,7 +13988,7 @@ play_increase_level: { jmp __breturn // play_increase_level::@return __breturn: - // [339] return + // [337] return rts } // play_remove_lines @@ -14028,144 +14006,144 @@ play_remove_lines: { .label y = $48 .label removed = $49 .label full = $4c - // [341] phi from play_remove_lines to play_remove_lines::@1 [phi:play_remove_lines->play_remove_lines::@1] + // [339] phi from play_remove_lines to play_remove_lines::@1 [phi:play_remove_lines->play_remove_lines::@1] __b1_from_play_remove_lines: - // [341] phi (byte) play_remove_lines::removed#11 = (byte) 0 [phi:play_remove_lines->play_remove_lines::@1#0] -- vbuz1=vbuc1 + // [339] phi (byte) play_remove_lines::removed#11 = (byte) 0 [phi:play_remove_lines->play_remove_lines::@1#0] -- vbuz1=vbuc1 lda #0 sta.z removed - // [341] phi (byte) play_remove_lines::y#8 = (byte) 0 [phi:play_remove_lines->play_remove_lines::@1#1] -- vbuz1=vbuc1 + // [339] phi (byte) play_remove_lines::y#8 = (byte) 0 [phi:play_remove_lines->play_remove_lines::@1#1] -- vbuz1=vbuc1 lda #0 sta.z y - // [341] phi (byte) play_remove_lines::w#12 = (const byte) PLAYFIELD_LINES*(const byte) PLAYFIELD_COLS-(byte) 1 [phi:play_remove_lines->play_remove_lines::@1#2] -- vbuz1=vbuc1 + // [339] phi (byte) play_remove_lines::w#12 = (const byte) PLAYFIELD_LINES*(const byte) PLAYFIELD_COLS-(byte) 1 [phi:play_remove_lines->play_remove_lines::@1#2] -- vbuz1=vbuc1 lda #PLAYFIELD_LINES*PLAYFIELD_COLS-1 sta.z w - // [341] phi (byte) play_remove_lines::r#3 = (const byte) PLAYFIELD_LINES*(const byte) PLAYFIELD_COLS-(byte) 1 [phi:play_remove_lines->play_remove_lines::@1#3] -- vbuz1=vbuc1 + // [339] phi (byte) play_remove_lines::r#3 = (const byte) PLAYFIELD_LINES*(const byte) PLAYFIELD_COLS-(byte) 1 [phi:play_remove_lines->play_remove_lines::@1#3] -- vbuz1=vbuc1 lda #PLAYFIELD_LINES*PLAYFIELD_COLS-1 sta.z r jmp __b1 // Read all lines and rewrite them - // [341] phi from play_remove_lines::@6 to play_remove_lines::@1 [phi:play_remove_lines::@6->play_remove_lines::@1] + // [339] phi from play_remove_lines::@6 to play_remove_lines::@1 [phi:play_remove_lines::@6->play_remove_lines::@1] __b1_from___b6: - // [341] phi (byte) play_remove_lines::removed#11 = (byte) play_remove_lines::removed#8 [phi:play_remove_lines::@6->play_remove_lines::@1#0] -- register_copy - // [341] phi (byte) play_remove_lines::y#8 = (byte) play_remove_lines::y#1 [phi:play_remove_lines::@6->play_remove_lines::@1#1] -- register_copy - // [341] phi (byte) play_remove_lines::w#12 = (byte) play_remove_lines::w#11 [phi:play_remove_lines::@6->play_remove_lines::@1#2] -- register_copy - // [341] phi (byte) play_remove_lines::r#3 = (byte) play_remove_lines::r#1 [phi:play_remove_lines::@6->play_remove_lines::@1#3] -- register_copy + // [339] phi (byte) play_remove_lines::removed#11 = (byte) play_remove_lines::removed#8 [phi:play_remove_lines::@6->play_remove_lines::@1#0] -- register_copy + // [339] phi (byte) play_remove_lines::y#8 = (byte) play_remove_lines::y#1 [phi:play_remove_lines::@6->play_remove_lines::@1#1] -- register_copy + // [339] phi (byte) play_remove_lines::w#12 = (byte) play_remove_lines::w#11 [phi:play_remove_lines::@6->play_remove_lines::@1#2] -- register_copy + // [339] phi (byte) play_remove_lines::r#3 = (byte) play_remove_lines::r#1 [phi:play_remove_lines::@6->play_remove_lines::@1#3] -- register_copy jmp __b1 // play_remove_lines::@1 __b1: - // [342] phi from play_remove_lines::@1 to play_remove_lines::@2 [phi:play_remove_lines::@1->play_remove_lines::@2] + // [340] phi from play_remove_lines::@1 to play_remove_lines::@2 [phi:play_remove_lines::@1->play_remove_lines::@2] __b2_from___b1: - // [342] phi (byte) play_remove_lines::full#4 = (byte) 1 [phi:play_remove_lines::@1->play_remove_lines::@2#0] -- vbuz1=vbuc1 + // [340] phi (byte) play_remove_lines::full#4 = (byte) 1 [phi:play_remove_lines::@1->play_remove_lines::@2#0] -- vbuz1=vbuc1 lda #1 sta.z full - // [342] phi (byte) play_remove_lines::x#2 = (byte) 0 [phi:play_remove_lines::@1->play_remove_lines::@2#1] -- vbuz1=vbuc1 + // [340] phi (byte) play_remove_lines::x#2 = (byte) 0 [phi:play_remove_lines::@1->play_remove_lines::@2#1] -- vbuz1=vbuc1 lda #0 sta.z x - // [342] phi (byte) play_remove_lines::w#4 = (byte) play_remove_lines::w#12 [phi:play_remove_lines::@1->play_remove_lines::@2#2] -- register_copy - // [342] phi (byte) play_remove_lines::r#2 = (byte) play_remove_lines::r#3 [phi:play_remove_lines::@1->play_remove_lines::@2#3] -- register_copy + // [340] phi (byte) play_remove_lines::w#4 = (byte) play_remove_lines::w#12 [phi:play_remove_lines::@1->play_remove_lines::@2#2] -- register_copy + // [340] phi (byte) play_remove_lines::r#2 = (byte) play_remove_lines::r#3 [phi:play_remove_lines::@1->play_remove_lines::@2#3] -- register_copy jmp __b2 - // [342] phi from play_remove_lines::@3 to play_remove_lines::@2 [phi:play_remove_lines::@3->play_remove_lines::@2] + // [340] phi from play_remove_lines::@3 to play_remove_lines::@2 [phi:play_remove_lines::@3->play_remove_lines::@2] __b2_from___b3: - // [342] phi (byte) play_remove_lines::full#4 = (byte) play_remove_lines::full#2 [phi:play_remove_lines::@3->play_remove_lines::@2#0] -- register_copy - // [342] phi (byte) play_remove_lines::x#2 = (byte) play_remove_lines::x#1 [phi:play_remove_lines::@3->play_remove_lines::@2#1] -- register_copy - // [342] phi (byte) play_remove_lines::w#4 = (byte) play_remove_lines::w#1 [phi:play_remove_lines::@3->play_remove_lines::@2#2] -- register_copy - // [342] phi (byte) play_remove_lines::r#2 = (byte) play_remove_lines::r#1 [phi:play_remove_lines::@3->play_remove_lines::@2#3] -- register_copy + // [340] phi (byte) play_remove_lines::full#4 = (byte) play_remove_lines::full#2 [phi:play_remove_lines::@3->play_remove_lines::@2#0] -- register_copy + // [340] phi (byte) play_remove_lines::x#2 = (byte) play_remove_lines::x#1 [phi:play_remove_lines::@3->play_remove_lines::@2#1] -- register_copy + // [340] phi (byte) play_remove_lines::w#4 = (byte) play_remove_lines::w#1 [phi:play_remove_lines::@3->play_remove_lines::@2#2] -- register_copy + // [340] phi (byte) play_remove_lines::r#2 = (byte) play_remove_lines::r#1 [phi:play_remove_lines::@3->play_remove_lines::@2#3] -- register_copy jmp __b2 // play_remove_lines::@2 __b2: - // [343] (byte) play_remove_lines::c#0 ← *((const byte*) playfield + (byte) play_remove_lines::r#2) -- vbuz1=pbuc1_derefidx_vbuz2 + // [341] (byte) play_remove_lines::c#0 ← *((const byte*) playfield + (byte) play_remove_lines::r#2) -- vbuz1=pbuc1_derefidx_vbuz2 ldy.z r lda playfield,y sta.z c - // [344] (byte) play_remove_lines::r#1 ← -- (byte) play_remove_lines::r#2 -- vbuz1=_dec_vbuz1 + // [342] (byte) play_remove_lines::r#1 ← -- (byte) play_remove_lines::r#2 -- vbuz1=_dec_vbuz1 dec.z r - // [345] if((byte) play_remove_lines::c#0!=(byte) 0) goto play_remove_lines::@9 -- vbuz1_neq_0_then_la1 + // [343] if((byte) play_remove_lines::c#0!=(byte) 0) goto play_remove_lines::@9 -- vbuz1_neq_0_then_la1 lda.z c cmp #0 bne __b9_from___b2 - // [347] phi from play_remove_lines::@2 to play_remove_lines::@3 [phi:play_remove_lines::@2->play_remove_lines::@3] + // [345] phi from play_remove_lines::@2 to play_remove_lines::@3 [phi:play_remove_lines::@2->play_remove_lines::@3] __b3_from___b2: - // [347] phi (byte) play_remove_lines::full#2 = (byte) 0 [phi:play_remove_lines::@2->play_remove_lines::@3#0] -- vbuz1=vbuc1 + // [345] phi (byte) play_remove_lines::full#2 = (byte) 0 [phi:play_remove_lines::@2->play_remove_lines::@3#0] -- vbuz1=vbuc1 lda #0 sta.z full jmp __b3 - // [346] phi from play_remove_lines::@2 to play_remove_lines::@9 [phi:play_remove_lines::@2->play_remove_lines::@9] + // [344] phi from play_remove_lines::@2 to play_remove_lines::@9 [phi:play_remove_lines::@2->play_remove_lines::@9] __b9_from___b2: jmp __b9 // play_remove_lines::@9 __b9: - // [347] phi from play_remove_lines::@9 to play_remove_lines::@3 [phi:play_remove_lines::@9->play_remove_lines::@3] + // [345] phi from play_remove_lines::@9 to play_remove_lines::@3 [phi:play_remove_lines::@9->play_remove_lines::@3] __b3_from___b9: - // [347] phi (byte) play_remove_lines::full#2 = (byte) play_remove_lines::full#4 [phi:play_remove_lines::@9->play_remove_lines::@3#0] -- register_copy + // [345] phi (byte) play_remove_lines::full#2 = (byte) play_remove_lines::full#4 [phi:play_remove_lines::@9->play_remove_lines::@3#0] -- register_copy jmp __b3 // play_remove_lines::@3 __b3: - // [348] *((const byte*) playfield + (byte) play_remove_lines::w#4) ← (byte) play_remove_lines::c#0 -- pbuc1_derefidx_vbuz1=vbuz2 + // [346] *((const byte*) playfield + (byte) play_remove_lines::w#4) ← (byte) play_remove_lines::c#0 -- pbuc1_derefidx_vbuz1=vbuz2 lda.z c ldy.z w sta playfield,y - // [349] (byte) play_remove_lines::w#1 ← -- (byte) play_remove_lines::w#4 -- vbuz1=_dec_vbuz1 + // [347] (byte) play_remove_lines::w#1 ← -- (byte) play_remove_lines::w#4 -- vbuz1=_dec_vbuz1 dec.z w - // [350] (byte) play_remove_lines::x#1 ← ++ (byte) play_remove_lines::x#2 -- vbuz1=_inc_vbuz1 + // [348] (byte) play_remove_lines::x#1 ← ++ (byte) play_remove_lines::x#2 -- vbuz1=_inc_vbuz1 inc.z x - // [351] if((byte) play_remove_lines::x#1!=(const byte) PLAYFIELD_COLS-(byte) 1+(byte) 1) goto play_remove_lines::@2 -- vbuz1_neq_vbuc1_then_la1 + // [349] if((byte) play_remove_lines::x#1!=(const byte) PLAYFIELD_COLS-(byte) 1+(byte) 1) goto play_remove_lines::@2 -- vbuz1_neq_vbuc1_then_la1 lda #PLAYFIELD_COLS-1+1 cmp.z x bne __b2_from___b3 jmp __b4 // play_remove_lines::@4 __b4: - // [352] if((byte) play_remove_lines::full#2!=(byte) 1) goto play_remove_lines::@6 -- vbuz1_neq_vbuc1_then_la1 + // [350] if((byte) play_remove_lines::full#2!=(byte) 1) goto play_remove_lines::@6 -- vbuz1_neq_vbuc1_then_la1 lda #1 cmp.z full bne __b6_from___b4 jmp __b5 // play_remove_lines::@5 __b5: - // [353] (byte) play_remove_lines::w#2 ← (byte) play_remove_lines::w#1 + (const byte) PLAYFIELD_COLS -- vbuz1=vbuz1_plus_vbuc1 + // [351] (byte) play_remove_lines::w#2 ← (byte) play_remove_lines::w#1 + (const byte) PLAYFIELD_COLS -- vbuz1=vbuz1_plus_vbuc1 lax.z w axs #-[PLAYFIELD_COLS] stx.z w - // [354] (byte) play_remove_lines::removed#1 ← ++ (byte) play_remove_lines::removed#11 -- vbuz1=_inc_vbuz1 + // [352] (byte) play_remove_lines::removed#1 ← ++ (byte) play_remove_lines::removed#11 -- vbuz1=_inc_vbuz1 inc.z removed - // [355] phi from play_remove_lines::@4 play_remove_lines::@5 to play_remove_lines::@6 [phi:play_remove_lines::@4/play_remove_lines::@5->play_remove_lines::@6] + // [353] phi from play_remove_lines::@4 play_remove_lines::@5 to play_remove_lines::@6 [phi:play_remove_lines::@4/play_remove_lines::@5->play_remove_lines::@6] __b6_from___b4: __b6_from___b5: - // [355] phi (byte) play_remove_lines::removed#8 = (byte) play_remove_lines::removed#11 [phi:play_remove_lines::@4/play_remove_lines::@5->play_remove_lines::@6#0] -- register_copy - // [355] phi (byte) play_remove_lines::w#11 = (byte) play_remove_lines::w#1 [phi:play_remove_lines::@4/play_remove_lines::@5->play_remove_lines::@6#1] -- register_copy + // [353] phi (byte) play_remove_lines::removed#8 = (byte) play_remove_lines::removed#11 [phi:play_remove_lines::@4/play_remove_lines::@5->play_remove_lines::@6#0] -- register_copy + // [353] phi (byte) play_remove_lines::w#11 = (byte) play_remove_lines::w#1 [phi:play_remove_lines::@4/play_remove_lines::@5->play_remove_lines::@6#1] -- register_copy jmp __b6 // play_remove_lines::@6 __b6: - // [356] (byte) play_remove_lines::y#1 ← ++ (byte) play_remove_lines::y#8 -- vbuz1=_inc_vbuz1 + // [354] (byte) play_remove_lines::y#1 ← ++ (byte) play_remove_lines::y#8 -- vbuz1=_inc_vbuz1 inc.z y - // [357] if((byte) play_remove_lines::y#1!=(const byte) PLAYFIELD_LINES-(byte) 1+(byte) 1) goto play_remove_lines::@1 -- vbuz1_neq_vbuc1_then_la1 + // [355] if((byte) play_remove_lines::y#1!=(const byte) PLAYFIELD_LINES-(byte) 1+(byte) 1) goto play_remove_lines::@1 -- vbuz1_neq_vbuc1_then_la1 lda #PLAYFIELD_LINES-1+1 cmp.z y bne __b1_from___b6 - // [358] phi from play_remove_lines::@6 play_remove_lines::@8 to play_remove_lines::@7 [phi:play_remove_lines::@6/play_remove_lines::@8->play_remove_lines::@7] + // [356] phi from play_remove_lines::@6 play_remove_lines::@8 to play_remove_lines::@7 [phi:play_remove_lines::@6/play_remove_lines::@8->play_remove_lines::@7] __b7_from___b6: __b7_from___b8: - // [358] phi (byte) play_remove_lines::w#6 = (byte) play_remove_lines::w#11 [phi:play_remove_lines::@6/play_remove_lines::@8->play_remove_lines::@7#0] -- register_copy + // [356] phi (byte) play_remove_lines::w#6 = (byte) play_remove_lines::w#11 [phi:play_remove_lines::@6/play_remove_lines::@8->play_remove_lines::@7#0] -- register_copy jmp __b7 // Write zeros in the rest of the lines // play_remove_lines::@7 __b7: - // [359] if((byte) play_remove_lines::w#6!=(byte) $ff) goto play_remove_lines::@8 -- vbuz1_neq_vbuc1_then_la1 + // [357] if((byte) play_remove_lines::w#6!=(byte) $ff) goto play_remove_lines::@8 -- vbuz1_neq_vbuc1_then_la1 lda #$ff cmp.z w bne __b8 jmp __breturn // play_remove_lines::@return __breturn: - // [360] return + // [358] return rts // play_remove_lines::@8 __b8: - // [361] *((const byte*) playfield + (byte) play_remove_lines::w#6) ← (byte) 0 -- pbuc1_derefidx_vbuz1=vbuc2 + // [359] *((const byte*) playfield + (byte) play_remove_lines::w#6) ← (byte) 0 -- pbuc1_derefidx_vbuz1=vbuc2 lda #0 ldy.z w sta playfield,y - // [362] (byte) play_remove_lines::w#3 ← -- (byte) play_remove_lines::w#6 -- vbuz1=_dec_vbuz1 + // [360] (byte) play_remove_lines::w#3 ← -- (byte) play_remove_lines::w#6 -- vbuz1=_dec_vbuz1 dec.z w jmp __b7_from___b8 } @@ -14180,49 +14158,49 @@ play_lock_current: { .label c = $52 .label l = $4f .label i_1 = $50 - // [363] (byte) play_lock_current::yp#0 ← (byte) current_ypos#11 -- vbuz1=vbuz2 + // [361] (byte) play_lock_current::yp#0 ← (byte) current_ypos#11 -- vbuz1=vbuz2 lda.z current_ypos sta.z yp - // [364] phi from play_lock_current to play_lock_current::@1 [phi:play_lock_current->play_lock_current::@1] + // [362] phi from play_lock_current to play_lock_current::@1 [phi:play_lock_current->play_lock_current::@1] __b1_from_play_lock_current: - // [364] phi (byte) play_lock_current::l#6 = (byte) 0 [phi:play_lock_current->play_lock_current::@1#0] -- vbuz1=vbuc1 + // [362] phi (byte) play_lock_current::l#6 = (byte) 0 [phi:play_lock_current->play_lock_current::@1#0] -- vbuz1=vbuc1 lda #0 sta.z l - // [364] phi (byte) play_lock_current::i#3 = (byte) 0 [phi:play_lock_current->play_lock_current::@1#1] -- vbuz1=vbuc1 + // [362] phi (byte) play_lock_current::i#3 = (byte) 0 [phi:play_lock_current->play_lock_current::@1#1] -- vbuz1=vbuc1 lda #0 sta.z i_1 - // [364] phi (byte) play_lock_current::yp#2 = (byte) play_lock_current::yp#0 [phi:play_lock_current->play_lock_current::@1#2] -- register_copy + // [362] phi (byte) play_lock_current::yp#2 = (byte) play_lock_current::yp#0 [phi:play_lock_current->play_lock_current::@1#2] -- register_copy jmp __b1 // play_lock_current::@1 __b1: - // [365] (byte~) play_lock_current::$4 ← (byte) play_lock_current::yp#2 << (byte) 1 -- vbuz1=vbuz2_rol_1 + // [363] (byte~) play_lock_current::$4 ← (byte) play_lock_current::yp#2 << (byte) 1 -- vbuz1=vbuz2_rol_1 lda.z yp asl sta.z __4 - // [366] (byte*) play_lock_current::playfield_line#0 ← *((const byte**) playfield_lines + (byte~) play_lock_current::$4) -- pbuz1=pptc1_derefidx_vbuz2 + // [364] (byte*) play_lock_current::playfield_line#0 ← *((const byte**) playfield_lines + (byte~) play_lock_current::$4) -- pbuz1=pptc1_derefidx_vbuz2 ldy.z __4 lda playfield_lines,y sta.z playfield_line lda playfield_lines+1,y sta.z playfield_line+1 - // [367] (byte) play_lock_current::xp#0 ← (byte) current_xpos#14 -- vbuz1=vbuz2 + // [365] (byte) play_lock_current::xp#0 ← (byte) current_xpos#14 -- vbuz1=vbuz2 lda.z current_xpos sta.z xp - // [368] phi from play_lock_current::@1 to play_lock_current::@2 [phi:play_lock_current::@1->play_lock_current::@2] + // [366] phi from play_lock_current::@1 to play_lock_current::@2 [phi:play_lock_current::@1->play_lock_current::@2] __b2_from___b1: - // [368] phi (byte) play_lock_current::c#2 = (byte) 0 [phi:play_lock_current::@1->play_lock_current::@2#0] -- vbuz1=vbuc1 + // [366] phi (byte) play_lock_current::c#2 = (byte) 0 [phi:play_lock_current::@1->play_lock_current::@2#0] -- vbuz1=vbuc1 lda #0 sta.z c - // [368] phi (byte) play_lock_current::xp#2 = (byte) play_lock_current::xp#0 [phi:play_lock_current::@1->play_lock_current::@2#1] -- register_copy - // [368] phi (byte) play_lock_current::i#2 = (byte) play_lock_current::i#3 [phi:play_lock_current::@1->play_lock_current::@2#2] -- register_copy + // [366] phi (byte) play_lock_current::xp#2 = (byte) play_lock_current::xp#0 [phi:play_lock_current::@1->play_lock_current::@2#1] -- register_copy + // [366] phi (byte) play_lock_current::i#2 = (byte) play_lock_current::i#3 [phi:play_lock_current::@1->play_lock_current::@2#2] -- register_copy jmp __b2 // play_lock_current::@2 __b2: - // [369] (byte) play_lock_current::i#1 ← ++ (byte) play_lock_current::i#2 -- vbuz1=_inc_vbuz2 + // [367] (byte) play_lock_current::i#1 ← ++ (byte) play_lock_current::i#2 -- vbuz1=_inc_vbuz2 ldy.z i_1 iny sty.z i - // [370] if(*((byte*) current_piece_gfx#13 + (byte) play_lock_current::i#2)==(byte) 0) goto play_lock_current::@3 -- pbuz1_derefidx_vbuz2_eq_0_then_la1 + // [368] if(*((byte*) current_piece_gfx#13 + (byte) play_lock_current::i#2)==(byte) 0) goto play_lock_current::@3 -- pbuz1_derefidx_vbuz2_eq_0_then_la1 ldy.z i_1 lda (current_piece_gfx),y cmp #0 @@ -14230,58 +14208,58 @@ play_lock_current: { jmp __b4 // play_lock_current::@4 __b4: - // [371] *((byte*) play_lock_current::playfield_line#0 + (byte) play_lock_current::xp#2) ← (byte) current_piece_char#10 -- pbuz1_derefidx_vbuz2=vbuz3 + // [369] *((byte*) play_lock_current::playfield_line#0 + (byte) play_lock_current::xp#2) ← (byte) current_piece_char#10 -- pbuz1_derefidx_vbuz2=vbuz3 lda.z current_piece_char ldy.z xp sta (playfield_line),y jmp __b3 // play_lock_current::@3 __b3: - // [372] (byte) play_lock_current::xp#1 ← ++ (byte) play_lock_current::xp#2 -- vbuz1=_inc_vbuz1 + // [370] (byte) play_lock_current::xp#1 ← ++ (byte) play_lock_current::xp#2 -- vbuz1=_inc_vbuz1 inc.z xp - // [373] (byte) play_lock_current::c#1 ← ++ (byte) play_lock_current::c#2 -- vbuz1=_inc_vbuz1 + // [371] (byte) play_lock_current::c#1 ← ++ (byte) play_lock_current::c#2 -- vbuz1=_inc_vbuz1 inc.z c - // [374] if((byte) play_lock_current::c#1!=(byte) 4) goto play_lock_current::@7 -- vbuz1_neq_vbuc1_then_la1 + // [372] if((byte) play_lock_current::c#1!=(byte) 4) goto play_lock_current::@7 -- vbuz1_neq_vbuc1_then_la1 lda #4 cmp.z c bne __b7 jmp __b5 // play_lock_current::@5 __b5: - // [375] (byte) play_lock_current::yp#1 ← ++ (byte) play_lock_current::yp#2 -- vbuz1=_inc_vbuz1 + // [373] (byte) play_lock_current::yp#1 ← ++ (byte) play_lock_current::yp#2 -- vbuz1=_inc_vbuz1 inc.z yp - // [376] (byte) play_lock_current::l#1 ← ++ (byte) play_lock_current::l#6 -- vbuz1=_inc_vbuz1 + // [374] (byte) play_lock_current::l#1 ← ++ (byte) play_lock_current::l#6 -- vbuz1=_inc_vbuz1 inc.z l - // [377] if((byte) play_lock_current::l#1!=(byte) 4) goto play_lock_current::@6 -- vbuz1_neq_vbuc1_then_la1 + // [375] if((byte) play_lock_current::l#1!=(byte) 4) goto play_lock_current::@6 -- vbuz1_neq_vbuc1_then_la1 lda #4 cmp.z l bne __b6 jmp __breturn // play_lock_current::@return __breturn: - // [378] return + // [376] return rts // play_lock_current::@6 __b6: - // [379] (byte) play_lock_current::i#7 ← (byte) play_lock_current::i#1 -- vbuz1=vbuz2 + // [377] (byte) play_lock_current::i#7 ← (byte) play_lock_current::i#1 -- vbuz1=vbuz2 lda.z i sta.z i_1 - // [364] phi from play_lock_current::@6 to play_lock_current::@1 [phi:play_lock_current::@6->play_lock_current::@1] + // [362] phi from play_lock_current::@6 to play_lock_current::@1 [phi:play_lock_current::@6->play_lock_current::@1] __b1_from___b6: - // [364] phi (byte) play_lock_current::l#6 = (byte) play_lock_current::l#1 [phi:play_lock_current::@6->play_lock_current::@1#0] -- register_copy - // [364] phi (byte) play_lock_current::i#3 = (byte) play_lock_current::i#7 [phi:play_lock_current::@6->play_lock_current::@1#1] -- register_copy - // [364] phi (byte) play_lock_current::yp#2 = (byte) play_lock_current::yp#1 [phi:play_lock_current::@6->play_lock_current::@1#2] -- register_copy + // [362] phi (byte) play_lock_current::l#6 = (byte) play_lock_current::l#1 [phi:play_lock_current::@6->play_lock_current::@1#0] -- register_copy + // [362] phi (byte) play_lock_current::i#3 = (byte) play_lock_current::i#7 [phi:play_lock_current::@6->play_lock_current::@1#1] -- register_copy + // [362] phi (byte) play_lock_current::yp#2 = (byte) play_lock_current::yp#1 [phi:play_lock_current::@6->play_lock_current::@1#2] -- register_copy jmp __b1 // play_lock_current::@7 __b7: - // [380] (byte) play_lock_current::i#9 ← (byte) play_lock_current::i#1 -- vbuz1=vbuz2 + // [378] (byte) play_lock_current::i#9 ← (byte) play_lock_current::i#1 -- vbuz1=vbuz2 lda.z i sta.z i_1 - // [368] phi from play_lock_current::@7 to play_lock_current::@2 [phi:play_lock_current::@7->play_lock_current::@2] + // [366] phi from play_lock_current::@7 to play_lock_current::@2 [phi:play_lock_current::@7->play_lock_current::@2] __b2_from___b7: - // [368] phi (byte) play_lock_current::c#2 = (byte) play_lock_current::c#1 [phi:play_lock_current::@7->play_lock_current::@2#0] -- register_copy - // [368] phi (byte) play_lock_current::xp#2 = (byte) play_lock_current::xp#1 [phi:play_lock_current::@7->play_lock_current::@2#1] -- register_copy - // [368] phi (byte) play_lock_current::i#2 = (byte) play_lock_current::i#9 [phi:play_lock_current::@7->play_lock_current::@2#2] -- register_copy + // [366] phi (byte) play_lock_current::c#2 = (byte) play_lock_current::c#1 [phi:play_lock_current::@7->play_lock_current::@2#0] -- register_copy + // [366] phi (byte) play_lock_current::xp#2 = (byte) play_lock_current::xp#1 [phi:play_lock_current::@7->play_lock_current::@2#1] -- register_copy + // [366] phi (byte) play_lock_current::i#2 = (byte) play_lock_current::i#9 [phi:play_lock_current::@7->play_lock_current::@2#2] -- register_copy jmp __b2 } // keyboard_event_pressed @@ -14299,21 +14277,21 @@ keyboard_event_pressed: { .label keycode = $53 .label return_4 = $c3 .label return_5 = $a4 - // [382] (byte~) keyboard_event_pressed::$0 ← (byte) keyboard_event_pressed::keycode#5 >> (byte) 3 -- vbuz1=vbuz2_ror_3 + // [380] (byte~) keyboard_event_pressed::$0 ← (byte) keyboard_event_pressed::keycode#5 >> (byte) 3 -- vbuz1=vbuz2_ror_3 lda.z keycode lsr lsr lsr sta.z __0 - // [383] (byte) keyboard_event_pressed::row_bits#0 ← *((const byte*) keyboard_scan_values + (byte~) keyboard_event_pressed::$0) -- vbuz1=pbuc1_derefidx_vbuz2 + // [381] (byte) keyboard_event_pressed::row_bits#0 ← *((const byte*) keyboard_scan_values + (byte~) keyboard_event_pressed::$0) -- vbuz1=pbuc1_derefidx_vbuz2 ldy.z __0 lda keyboard_scan_values,y sta.z row_bits - // [384] (byte~) keyboard_event_pressed::$1 ← (byte) keyboard_event_pressed::keycode#5 & (byte) 7 -- vbuz1=vbuz2_band_vbuc1 + // [382] (byte~) keyboard_event_pressed::$1 ← (byte) keyboard_event_pressed::keycode#5 & (byte) 7 -- vbuz1=vbuz2_band_vbuc1 lda #7 and.z keycode sta.z __1 - // [385] (byte) keyboard_event_pressed::return#11 ← (byte) keyboard_event_pressed::row_bits#0 & *((const byte*) keyboard_matrix_col_bitmask + (byte~) keyboard_event_pressed::$1) -- vbuz1=vbuz2_band_pbuc1_derefidx_vbuz3 + // [383] (byte) keyboard_event_pressed::return#11 ← (byte) keyboard_event_pressed::row_bits#0 & *((const byte*) keyboard_matrix_col_bitmask + (byte~) keyboard_event_pressed::$1) -- vbuz1=vbuz2_band_pbuc1_derefidx_vbuz3 lda.z row_bits ldy.z __1 and keyboard_matrix_col_bitmask,y @@ -14321,7 +14299,7 @@ keyboard_event_pressed: { jmp __breturn // keyboard_event_pressed::@return __breturn: - // [386] return + // [384] return rts } // keyboard_event_get @@ -14331,34 +14309,34 @@ keyboard_event_pressed: { keyboard_event_get: { .label return = $54 .label return_1 = $79 - // [387] if((byte) keyboard_events_size#13==(byte) 0) goto keyboard_event_get::@return -- vbuz1_eq_0_then_la1 + // [385] if((byte) keyboard_events_size#13==(byte) 0) goto keyboard_event_get::@return -- vbuz1_eq_0_then_la1 lda.z keyboard_events_size cmp #0 beq __breturn_from_keyboard_event_get jmp __b1 // keyboard_event_get::@1 __b1: - // [388] (byte) keyboard_events_size#4 ← -- (byte) keyboard_events_size#13 -- vbuz1=_dec_vbuz1 + // [386] (byte) keyboard_events_size#4 ← -- (byte) keyboard_events_size#13 -- vbuz1=_dec_vbuz1 dec.z keyboard_events_size - // [389] (byte) keyboard_event_get::return#1 ← *((const byte*) keyboard_events + (byte) keyboard_events_size#4) -- vbuz1=pbuc1_derefidx_vbuz2 + // [387] (byte) keyboard_event_get::return#1 ← *((const byte*) keyboard_events + (byte) keyboard_events_size#4) -- vbuz1=pbuc1_derefidx_vbuz2 ldy.z keyboard_events_size lda keyboard_events,y sta.z return - // [390] phi from keyboard_event_get::@1 to keyboard_event_get::@return [phi:keyboard_event_get::@1->keyboard_event_get::@return] + // [388] phi from keyboard_event_get::@1 to keyboard_event_get::@return [phi:keyboard_event_get::@1->keyboard_event_get::@return] __breturn_from___b1: - // [390] phi (byte) keyboard_events_size#16 = (byte) keyboard_events_size#4 [phi:keyboard_event_get::@1->keyboard_event_get::@return#0] -- register_copy - // [390] phi (byte) keyboard_event_get::return#2 = (byte) keyboard_event_get::return#1 [phi:keyboard_event_get::@1->keyboard_event_get::@return#1] -- register_copy + // [388] phi (byte) keyboard_events_size#16 = (byte) keyboard_events_size#4 [phi:keyboard_event_get::@1->keyboard_event_get::@return#0] -- register_copy + // [388] phi (byte) keyboard_event_get::return#2 = (byte) keyboard_event_get::return#1 [phi:keyboard_event_get::@1->keyboard_event_get::@return#1] -- register_copy jmp __breturn - // [390] phi from keyboard_event_get to keyboard_event_get::@return [phi:keyboard_event_get->keyboard_event_get::@return] + // [388] phi from keyboard_event_get to keyboard_event_get::@return [phi:keyboard_event_get->keyboard_event_get::@return] __breturn_from_keyboard_event_get: - // [390] phi (byte) keyboard_events_size#16 = (byte) keyboard_events_size#13 [phi:keyboard_event_get->keyboard_event_get::@return#0] -- register_copy - // [390] phi (byte) keyboard_event_get::return#2 = (byte) $ff [phi:keyboard_event_get->keyboard_event_get::@return#1] -- vbuz1=vbuc1 + // [388] phi (byte) keyboard_events_size#16 = (byte) keyboard_events_size#13 [phi:keyboard_event_get->keyboard_event_get::@return#0] -- register_copy + // [388] phi (byte) keyboard_event_get::return#2 = (byte) $ff [phi:keyboard_event_get->keyboard_event_get::@return#1] -- vbuz1=vbuc1 lda #$ff sta.z return jmp __breturn // keyboard_event_get::@return __breturn: - // [391] return + // [389] return rts } // keyboard_event_scan @@ -14379,39 +14357,39 @@ keyboard_event_scan: { .label row = $55 .label col = $56 .label event_type = $d1 - // [393] phi from keyboard_event_scan to keyboard_event_scan::@7 [phi:keyboard_event_scan->keyboard_event_scan::@7] + // [391] phi from keyboard_event_scan to keyboard_event_scan::@7 [phi:keyboard_event_scan->keyboard_event_scan::@7] __b7_from_keyboard_event_scan: - // [393] phi (byte) keyboard_events_size#30 = (byte) keyboard_events_size#19 [phi:keyboard_event_scan->keyboard_event_scan::@7#0] -- register_copy - // [393] phi (byte) keyboard_event_scan::keycode#11 = (byte) 0 [phi:keyboard_event_scan->keyboard_event_scan::@7#1] -- vbuz1=vbuc1 + // [391] phi (byte) keyboard_events_size#30 = (byte) keyboard_events_size#19 [phi:keyboard_event_scan->keyboard_event_scan::@7#0] -- register_copy + // [391] phi (byte) keyboard_event_scan::keycode#11 = (byte) 0 [phi:keyboard_event_scan->keyboard_event_scan::@7#1] -- vbuz1=vbuc1 lda #0 sta.z keycode - // [393] phi (byte) keyboard_event_scan::row#2 = (byte) 0 [phi:keyboard_event_scan->keyboard_event_scan::@7#2] -- vbuz1=vbuc1 + // [391] phi (byte) keyboard_event_scan::row#2 = (byte) 0 [phi:keyboard_event_scan->keyboard_event_scan::@7#2] -- vbuz1=vbuc1 lda #0 sta.z row jmp __b7 - // [393] phi from keyboard_event_scan::@8 to keyboard_event_scan::@7 [phi:keyboard_event_scan::@8->keyboard_event_scan::@7] + // [391] phi from keyboard_event_scan::@8 to keyboard_event_scan::@7 [phi:keyboard_event_scan::@8->keyboard_event_scan::@7] __b7_from___b8: - // [393] phi (byte) keyboard_events_size#30 = (byte) keyboard_events_size#13 [phi:keyboard_event_scan::@8->keyboard_event_scan::@7#0] -- register_copy - // [393] phi (byte) keyboard_event_scan::keycode#11 = (byte) keyboard_event_scan::keycode#13 [phi:keyboard_event_scan::@8->keyboard_event_scan::@7#1] -- register_copy - // [393] phi (byte) keyboard_event_scan::row#2 = (byte) keyboard_event_scan::row#1 [phi:keyboard_event_scan::@8->keyboard_event_scan::@7#2] -- register_copy + // [391] phi (byte) keyboard_events_size#30 = (byte) keyboard_events_size#13 [phi:keyboard_event_scan::@8->keyboard_event_scan::@7#0] -- register_copy + // [391] phi (byte) keyboard_event_scan::keycode#11 = (byte) keyboard_event_scan::keycode#13 [phi:keyboard_event_scan::@8->keyboard_event_scan::@7#1] -- register_copy + // [391] phi (byte) keyboard_event_scan::row#2 = (byte) keyboard_event_scan::row#1 [phi:keyboard_event_scan::@8->keyboard_event_scan::@7#2] -- register_copy jmp __b7 // keyboard_event_scan::@7 __b7: - // [394] (byte) keyboard_matrix_read::rowid#0 ← (byte) keyboard_event_scan::row#2 -- vbuz1=vbuz2 + // [392] (byte) keyboard_matrix_read::rowid#0 ← (byte) keyboard_event_scan::row#2 -- vbuz1=vbuz2 lda.z row sta.z keyboard_matrix_read.rowid - // [395] call keyboard_matrix_read + // [393] call keyboard_matrix_read jsr keyboard_matrix_read - // [396] (byte) keyboard_matrix_read::return#2 ← (byte) keyboard_matrix_read::return#0 -- vbuz1=vbuz2 + // [394] (byte) keyboard_matrix_read::return#2 ← (byte) keyboard_matrix_read::return#0 -- vbuz1=vbuz2 lda.z keyboard_matrix_read.return sta.z keyboard_matrix_read.return_1 jmp __b19 // keyboard_event_scan::@19 __b19: - // [397] (byte) keyboard_event_scan::row_scan#0 ← (byte) keyboard_matrix_read::return#2 -- vbuz1=vbuz2 + // [395] (byte) keyboard_event_scan::row_scan#0 ← (byte) keyboard_matrix_read::return#2 -- vbuz1=vbuz2 lda.z keyboard_matrix_read.return_1 sta.z row_scan - // [398] if((byte) keyboard_event_scan::row_scan#0!=*((const byte*) keyboard_scan_values + (byte) keyboard_event_scan::row#2)) goto keyboard_event_scan::@9 -- vbuz1_neq_pbuc1_derefidx_vbuz2_then_la1 + // [396] if((byte) keyboard_event_scan::row_scan#0!=*((const byte*) keyboard_scan_values + (byte) keyboard_event_scan::row#2)) goto keyboard_event_scan::@9 -- vbuz1_neq_pbuc1_derefidx_vbuz2_then_la1 lda.z row_scan ldy.z row cmp keyboard_scan_values,y @@ -14419,143 +14397,143 @@ keyboard_event_scan: { jmp __b16 // keyboard_event_scan::@16 __b16: - // [399] (byte) keyboard_event_scan::keycode#1 ← (byte) keyboard_event_scan::keycode#11 + (byte) 8 -- vbuz1=vbuz1_plus_vbuc1 + // [397] (byte) keyboard_event_scan::keycode#1 ← (byte) keyboard_event_scan::keycode#11 + (byte) 8 -- vbuz1=vbuz1_plus_vbuc1 lax.z keycode axs #-[8] stx.z keycode - // [400] phi from keyboard_event_scan::@15 keyboard_event_scan::@16 to keyboard_event_scan::@8 [phi:keyboard_event_scan::@15/keyboard_event_scan::@16->keyboard_event_scan::@8] + // [398] phi from keyboard_event_scan::@15 keyboard_event_scan::@16 to keyboard_event_scan::@8 [phi:keyboard_event_scan::@15/keyboard_event_scan::@16->keyboard_event_scan::@8] __b8_from___b15: __b8_from___b16: - // [400] phi (byte) keyboard_events_size#13 = (byte) keyboard_events_size#29 [phi:keyboard_event_scan::@15/keyboard_event_scan::@16->keyboard_event_scan::@8#0] -- register_copy - // [400] phi (byte) keyboard_event_scan::keycode#13 = (byte) keyboard_event_scan::keycode#14 [phi:keyboard_event_scan::@15/keyboard_event_scan::@16->keyboard_event_scan::@8#1] -- register_copy + // [398] phi (byte) keyboard_events_size#13 = (byte) keyboard_events_size#29 [phi:keyboard_event_scan::@15/keyboard_event_scan::@16->keyboard_event_scan::@8#0] -- register_copy + // [398] phi (byte) keyboard_event_scan::keycode#13 = (byte) keyboard_event_scan::keycode#14 [phi:keyboard_event_scan::@15/keyboard_event_scan::@16->keyboard_event_scan::@8#1] -- register_copy jmp __b8 // keyboard_event_scan::@8 __b8: - // [401] (byte) keyboard_event_scan::row#1 ← ++ (byte) keyboard_event_scan::row#2 -- vbuz1=_inc_vbuz1 + // [399] (byte) keyboard_event_scan::row#1 ← ++ (byte) keyboard_event_scan::row#2 -- vbuz1=_inc_vbuz1 inc.z row - // [402] if((byte) keyboard_event_scan::row#1!=(byte) 8) goto keyboard_event_scan::@7 -- vbuz1_neq_vbuc1_then_la1 + // [400] if((byte) keyboard_event_scan::row#1!=(byte) 8) goto keyboard_event_scan::@7 -- vbuz1_neq_vbuc1_then_la1 lda #8 cmp.z row bne __b7_from___b8 - // [403] phi from keyboard_event_scan::@8 to keyboard_event_scan::@17 [phi:keyboard_event_scan::@8->keyboard_event_scan::@17] + // [401] phi from keyboard_event_scan::@8 to keyboard_event_scan::@17 [phi:keyboard_event_scan::@8->keyboard_event_scan::@17] __b17_from___b8: jmp __b17 // keyboard_event_scan::@17 __b17: - // [404] call keyboard_event_pressed - // [381] phi from keyboard_event_scan::@17 to keyboard_event_pressed [phi:keyboard_event_scan::@17->keyboard_event_pressed] + // [402] call keyboard_event_pressed + // [379] phi from keyboard_event_scan::@17 to keyboard_event_pressed [phi:keyboard_event_scan::@17->keyboard_event_pressed] keyboard_event_pressed_from___b17: - // [381] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_LSHIFT [phi:keyboard_event_scan::@17->keyboard_event_pressed#0] -- vbuz1=vbuc1 + // [379] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_LSHIFT [phi:keyboard_event_scan::@17->keyboard_event_pressed#0] -- vbuz1=vbuc1 lda #KEY_LSHIFT sta.z keyboard_event_pressed.keycode jsr keyboard_event_pressed - // [405] (byte) keyboard_event_pressed::return#0 ← (byte) keyboard_event_pressed::return#11 -- vbuz1=vbuz2 + // [403] (byte) keyboard_event_pressed::return#0 ← (byte) keyboard_event_pressed::return#11 -- vbuz1=vbuz2 lda.z keyboard_event_pressed.return_4 sta.z keyboard_event_pressed.return jmp __b20 // keyboard_event_scan::@20 __b20: - // [406] (byte~) keyboard_event_scan::$0 ← (byte) keyboard_event_pressed::return#0 -- vbuz1=vbuz2 + // [404] (byte~) keyboard_event_scan::$0 ← (byte) keyboard_event_pressed::return#0 -- vbuz1=vbuz2 lda.z keyboard_event_pressed.return sta.z __0 - // [407] if((byte~) keyboard_event_scan::$0==(byte) 0) goto keyboard_event_scan::@1 -- vbuz1_eq_0_then_la1 + // [405] if((byte~) keyboard_event_scan::$0==(byte) 0) goto keyboard_event_scan::@1 -- vbuz1_eq_0_then_la1 lda.z __0 cmp #0 beq __b1_from___b20 - // [408] phi from keyboard_event_scan::@20 to keyboard_event_scan::@18 [phi:keyboard_event_scan::@20->keyboard_event_scan::@18] + // [406] phi from keyboard_event_scan::@20 to keyboard_event_scan::@18 [phi:keyboard_event_scan::@20->keyboard_event_scan::@18] __b18_from___b20: jmp __b18 // keyboard_event_scan::@18 __b18: - // [409] phi from keyboard_event_scan::@18 keyboard_event_scan::@20 to keyboard_event_scan::@1 [phi:keyboard_event_scan::@18/keyboard_event_scan::@20->keyboard_event_scan::@1] + // [407] phi from keyboard_event_scan::@18 keyboard_event_scan::@20 to keyboard_event_scan::@1 [phi:keyboard_event_scan::@18/keyboard_event_scan::@20->keyboard_event_scan::@1] __b1_from___b18: __b1_from___b20: jmp __b1 // keyboard_event_scan::@1 __b1: - // [410] call keyboard_event_pressed - // [381] phi from keyboard_event_scan::@1 to keyboard_event_pressed [phi:keyboard_event_scan::@1->keyboard_event_pressed] + // [408] call keyboard_event_pressed + // [379] phi from keyboard_event_scan::@1 to keyboard_event_pressed [phi:keyboard_event_scan::@1->keyboard_event_pressed] keyboard_event_pressed_from___b1: - // [381] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_RSHIFT [phi:keyboard_event_scan::@1->keyboard_event_pressed#0] -- vbuz1=vbuc1 + // [379] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_RSHIFT [phi:keyboard_event_scan::@1->keyboard_event_pressed#0] -- vbuz1=vbuc1 lda #KEY_RSHIFT sta.z keyboard_event_pressed.keycode jsr keyboard_event_pressed - // [411] (byte) keyboard_event_pressed::return#1 ← (byte) keyboard_event_pressed::return#11 -- vbuz1=vbuz2 + // [409] (byte) keyboard_event_pressed::return#1 ← (byte) keyboard_event_pressed::return#11 -- vbuz1=vbuz2 lda.z keyboard_event_pressed.return_4 sta.z keyboard_event_pressed.return_1 jmp __b21 // keyboard_event_scan::@21 __b21: - // [412] (byte~) keyboard_event_scan::$3 ← (byte) keyboard_event_pressed::return#1 -- vbuz1=vbuz2 + // [410] (byte~) keyboard_event_scan::$3 ← (byte) keyboard_event_pressed::return#1 -- vbuz1=vbuz2 lda.z keyboard_event_pressed.return_1 sta.z __3 - // [413] if((byte~) keyboard_event_scan::$3==(byte) 0) goto keyboard_event_scan::@2 -- vbuz1_eq_0_then_la1 + // [411] if((byte~) keyboard_event_scan::$3==(byte) 0) goto keyboard_event_scan::@2 -- vbuz1_eq_0_then_la1 lda.z __3 cmp #0 beq __b2_from___b21 - // [414] phi from keyboard_event_scan::@21 to keyboard_event_scan::@4 [phi:keyboard_event_scan::@21->keyboard_event_scan::@4] + // [412] phi from keyboard_event_scan::@21 to keyboard_event_scan::@4 [phi:keyboard_event_scan::@21->keyboard_event_scan::@4] __b4_from___b21: jmp __b4 // keyboard_event_scan::@4 __b4: - // [415] phi from keyboard_event_scan::@21 keyboard_event_scan::@4 to keyboard_event_scan::@2 [phi:keyboard_event_scan::@21/keyboard_event_scan::@4->keyboard_event_scan::@2] + // [413] phi from keyboard_event_scan::@21 keyboard_event_scan::@4 to keyboard_event_scan::@2 [phi:keyboard_event_scan::@21/keyboard_event_scan::@4->keyboard_event_scan::@2] __b2_from___b21: __b2_from___b4: jmp __b2 // keyboard_event_scan::@2 __b2: - // [416] call keyboard_event_pressed - // [381] phi from keyboard_event_scan::@2 to keyboard_event_pressed [phi:keyboard_event_scan::@2->keyboard_event_pressed] + // [414] call keyboard_event_pressed + // [379] phi from keyboard_event_scan::@2 to keyboard_event_pressed [phi:keyboard_event_scan::@2->keyboard_event_pressed] keyboard_event_pressed_from___b2: - // [381] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_CTRL [phi:keyboard_event_scan::@2->keyboard_event_pressed#0] -- vbuz1=vbuc1 + // [379] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_CTRL [phi:keyboard_event_scan::@2->keyboard_event_pressed#0] -- vbuz1=vbuc1 lda #KEY_CTRL sta.z keyboard_event_pressed.keycode jsr keyboard_event_pressed - // [417] (byte) keyboard_event_pressed::return#2 ← (byte) keyboard_event_pressed::return#11 -- vbuz1=vbuz2 + // [415] (byte) keyboard_event_pressed::return#2 ← (byte) keyboard_event_pressed::return#11 -- vbuz1=vbuz2 lda.z keyboard_event_pressed.return_4 sta.z keyboard_event_pressed.return_2 jmp __b22 // keyboard_event_scan::@22 __b22: - // [418] (byte~) keyboard_event_scan::$6 ← (byte) keyboard_event_pressed::return#2 -- vbuz1=vbuz2 + // [416] (byte~) keyboard_event_scan::$6 ← (byte) keyboard_event_pressed::return#2 -- vbuz1=vbuz2 lda.z keyboard_event_pressed.return_2 sta.z __6 - // [419] if((byte~) keyboard_event_scan::$6==(byte) 0) goto keyboard_event_scan::@3 -- vbuz1_eq_0_then_la1 + // [417] if((byte~) keyboard_event_scan::$6==(byte) 0) goto keyboard_event_scan::@3 -- vbuz1_eq_0_then_la1 lda.z __6 cmp #0 beq __b3_from___b22 - // [420] phi from keyboard_event_scan::@22 to keyboard_event_scan::@5 [phi:keyboard_event_scan::@22->keyboard_event_scan::@5] + // [418] phi from keyboard_event_scan::@22 to keyboard_event_scan::@5 [phi:keyboard_event_scan::@22->keyboard_event_scan::@5] __b5_from___b22: jmp __b5 // keyboard_event_scan::@5 __b5: - // [421] phi from keyboard_event_scan::@22 keyboard_event_scan::@5 to keyboard_event_scan::@3 [phi:keyboard_event_scan::@22/keyboard_event_scan::@5->keyboard_event_scan::@3] + // [419] phi from keyboard_event_scan::@22 keyboard_event_scan::@5 to keyboard_event_scan::@3 [phi:keyboard_event_scan::@22/keyboard_event_scan::@5->keyboard_event_scan::@3] __b3_from___b22: __b3_from___b5: jmp __b3 // keyboard_event_scan::@3 __b3: - // [422] call keyboard_event_pressed - // [381] phi from keyboard_event_scan::@3 to keyboard_event_pressed [phi:keyboard_event_scan::@3->keyboard_event_pressed] + // [420] call keyboard_event_pressed + // [379] phi from keyboard_event_scan::@3 to keyboard_event_pressed [phi:keyboard_event_scan::@3->keyboard_event_pressed] keyboard_event_pressed_from___b3: - // [381] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_COMMODORE [phi:keyboard_event_scan::@3->keyboard_event_pressed#0] -- vbuz1=vbuc1 + // [379] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_COMMODORE [phi:keyboard_event_scan::@3->keyboard_event_pressed#0] -- vbuz1=vbuc1 lda #KEY_COMMODORE sta.z keyboard_event_pressed.keycode jsr keyboard_event_pressed - // [423] (byte) keyboard_event_pressed::return#10 ← (byte) keyboard_event_pressed::return#11 -- vbuz1=vbuz2 + // [421] (byte) keyboard_event_pressed::return#10 ← (byte) keyboard_event_pressed::return#11 -- vbuz1=vbuz2 lda.z keyboard_event_pressed.return_4 sta.z keyboard_event_pressed.return_3 jmp __b23 // keyboard_event_scan::@23 __b23: - // [424] (byte~) keyboard_event_scan::$9 ← (byte) keyboard_event_pressed::return#10 -- vbuz1=vbuz2 + // [422] (byte~) keyboard_event_scan::$9 ← (byte) keyboard_event_pressed::return#10 -- vbuz1=vbuz2 lda.z keyboard_event_pressed.return_3 sta.z __9 - // [425] if((byte~) keyboard_event_scan::$9==(byte) 0) goto keyboard_event_scan::@return -- vbuz1_eq_0_then_la1 + // [423] if((byte~) keyboard_event_scan::$9==(byte) 0) goto keyboard_event_scan::@return -- vbuz1_eq_0_then_la1 lda.z __9 cmp #0 beq __breturn - // [426] phi from keyboard_event_scan::@23 to keyboard_event_scan::@6 [phi:keyboard_event_scan::@23->keyboard_event_scan::@6] + // [424] phi from keyboard_event_scan::@23 to keyboard_event_scan::@6 [phi:keyboard_event_scan::@23->keyboard_event_scan::@6] __b6_from___b23: jmp __b6 // keyboard_event_scan::@6 @@ -14563,89 +14541,89 @@ keyboard_event_scan: { jmp __breturn // keyboard_event_scan::@return __breturn: - // [427] return + // [425] return rts // Something has changed on the keyboard row - check each column - // [428] phi from keyboard_event_scan::@10 to keyboard_event_scan::@9 [phi:keyboard_event_scan::@10->keyboard_event_scan::@9] + // [426] phi from keyboard_event_scan::@10 to keyboard_event_scan::@9 [phi:keyboard_event_scan::@10->keyboard_event_scan::@9] __b9_from___b10: - // [428] phi (byte) keyboard_events_size#10 = (byte) keyboard_events_size#29 [phi:keyboard_event_scan::@10->keyboard_event_scan::@9#0] -- register_copy - // [428] phi (byte) keyboard_event_scan::keycode#10 = (byte) keyboard_event_scan::keycode#14 [phi:keyboard_event_scan::@10->keyboard_event_scan::@9#1] -- register_copy - // [428] phi (byte) keyboard_event_scan::col#2 = (byte) keyboard_event_scan::col#1 [phi:keyboard_event_scan::@10->keyboard_event_scan::@9#2] -- register_copy + // [426] phi (byte) keyboard_events_size#10 = (byte) keyboard_events_size#29 [phi:keyboard_event_scan::@10->keyboard_event_scan::@9#0] -- register_copy + // [426] phi (byte) keyboard_event_scan::keycode#10 = (byte) keyboard_event_scan::keycode#14 [phi:keyboard_event_scan::@10->keyboard_event_scan::@9#1] -- register_copy + // [426] phi (byte) keyboard_event_scan::col#2 = (byte) keyboard_event_scan::col#1 [phi:keyboard_event_scan::@10->keyboard_event_scan::@9#2] -- register_copy jmp __b9 - // [428] phi from keyboard_event_scan::@19 to keyboard_event_scan::@9 [phi:keyboard_event_scan::@19->keyboard_event_scan::@9] + // [426] phi from keyboard_event_scan::@19 to keyboard_event_scan::@9 [phi:keyboard_event_scan::@19->keyboard_event_scan::@9] __b9_from___b19: - // [428] phi (byte) keyboard_events_size#10 = (byte) keyboard_events_size#30 [phi:keyboard_event_scan::@19->keyboard_event_scan::@9#0] -- register_copy - // [428] phi (byte) keyboard_event_scan::keycode#10 = (byte) keyboard_event_scan::keycode#11 [phi:keyboard_event_scan::@19->keyboard_event_scan::@9#1] -- register_copy - // [428] phi (byte) keyboard_event_scan::col#2 = (byte) 0 [phi:keyboard_event_scan::@19->keyboard_event_scan::@9#2] -- vbuz1=vbuc1 + // [426] phi (byte) keyboard_events_size#10 = (byte) keyboard_events_size#30 [phi:keyboard_event_scan::@19->keyboard_event_scan::@9#0] -- register_copy + // [426] phi (byte) keyboard_event_scan::keycode#10 = (byte) keyboard_event_scan::keycode#11 [phi:keyboard_event_scan::@19->keyboard_event_scan::@9#1] -- register_copy + // [426] phi (byte) keyboard_event_scan::col#2 = (byte) 0 [phi:keyboard_event_scan::@19->keyboard_event_scan::@9#2] -- vbuz1=vbuc1 lda #0 sta.z col jmp __b9 // keyboard_event_scan::@9 __b9: - // [429] (byte~) keyboard_event_scan::$15 ← (byte) keyboard_event_scan::row_scan#0 ^ *((const byte*) keyboard_scan_values + (byte) keyboard_event_scan::row#2) -- vbuz1=vbuz2_bxor_pbuc1_derefidx_vbuz3 + // [427] (byte~) keyboard_event_scan::$15 ← (byte) keyboard_event_scan::row_scan#0 ^ *((const byte*) keyboard_scan_values + (byte) keyboard_event_scan::row#2) -- vbuz1=vbuz2_bxor_pbuc1_derefidx_vbuz3 lda.z row_scan ldy.z row eor keyboard_scan_values,y sta.z __15 - // [430] (byte~) keyboard_event_scan::$16 ← (byte~) keyboard_event_scan::$15 & *((const byte*) keyboard_matrix_col_bitmask + (byte) keyboard_event_scan::col#2) -- vbuz1=vbuz2_band_pbuc1_derefidx_vbuz3 + // [428] (byte~) keyboard_event_scan::$16 ← (byte~) keyboard_event_scan::$15 & *((const byte*) keyboard_matrix_col_bitmask + (byte) keyboard_event_scan::col#2) -- vbuz1=vbuz2_band_pbuc1_derefidx_vbuz3 lda.z __15 ldy.z col and keyboard_matrix_col_bitmask,y sta.z __16 - // [431] if((byte~) keyboard_event_scan::$16==(byte) 0) goto keyboard_event_scan::@10 -- vbuz1_eq_0_then_la1 + // [429] if((byte~) keyboard_event_scan::$16==(byte) 0) goto keyboard_event_scan::@10 -- vbuz1_eq_0_then_la1 lda.z __16 cmp #0 beq __b10_from___b9 jmp __b12 // keyboard_event_scan::@12 __b12: - // [432] if((byte) keyboard_events_size#10==(byte) 8) goto keyboard_event_scan::@10 -- vbuz1_eq_vbuc1_then_la1 + // [430] if((byte) keyboard_events_size#10==(byte) 8) goto keyboard_event_scan::@10 -- vbuz1_eq_vbuc1_then_la1 lda #8 cmp.z keyboard_events_size beq __b10_from___b12 jmp __b13 // keyboard_event_scan::@13 __b13: - // [433] (byte) keyboard_event_scan::event_type#0 ← (byte) keyboard_event_scan::row_scan#0 & *((const byte*) keyboard_matrix_col_bitmask + (byte) keyboard_event_scan::col#2) -- vbuz1=vbuz2_band_pbuc1_derefidx_vbuz3 + // [431] (byte) keyboard_event_scan::event_type#0 ← (byte) keyboard_event_scan::row_scan#0 & *((const byte*) keyboard_matrix_col_bitmask + (byte) keyboard_event_scan::col#2) -- vbuz1=vbuz2_band_pbuc1_derefidx_vbuz3 lda.z row_scan ldy.z col and keyboard_matrix_col_bitmask,y sta.z event_type - // [434] if((byte) keyboard_event_scan::event_type#0==(byte) 0) goto keyboard_event_scan::@11 -- vbuz1_eq_0_then_la1 + // [432] if((byte) keyboard_event_scan::event_type#0==(byte) 0) goto keyboard_event_scan::@11 -- vbuz1_eq_0_then_la1 lda.z event_type cmp #0 beq __b11 jmp __b14 // keyboard_event_scan::@14 __b14: - // [435] *((const byte*) keyboard_events + (byte) keyboard_events_size#10) ← (byte) keyboard_event_scan::keycode#10 -- pbuc1_derefidx_vbuz1=vbuz2 + // [433] *((const byte*) keyboard_events + (byte) keyboard_events_size#10) ← (byte) keyboard_event_scan::keycode#10 -- pbuc1_derefidx_vbuz1=vbuz2 // Key pressed lda.z keycode ldy.z keyboard_events_size sta keyboard_events,y - // [436] (byte) keyboard_events_size#2 ← ++ (byte) keyboard_events_size#10 -- vbuz1=_inc_vbuz1 + // [434] (byte) keyboard_events_size#2 ← ++ (byte) keyboard_events_size#10 -- vbuz1=_inc_vbuz1 inc.z keyboard_events_size - // [437] phi from keyboard_event_scan::@11 keyboard_event_scan::@12 keyboard_event_scan::@14 keyboard_event_scan::@9 to keyboard_event_scan::@10 [phi:keyboard_event_scan::@11/keyboard_event_scan::@12/keyboard_event_scan::@14/keyboard_event_scan::@9->keyboard_event_scan::@10] + // [435] phi from keyboard_event_scan::@11 keyboard_event_scan::@12 keyboard_event_scan::@14 keyboard_event_scan::@9 to keyboard_event_scan::@10 [phi:keyboard_event_scan::@11/keyboard_event_scan::@12/keyboard_event_scan::@14/keyboard_event_scan::@9->keyboard_event_scan::@10] __b10_from___b11: __b10_from___b12: __b10_from___b14: __b10_from___b9: - // [437] phi (byte) keyboard_events_size#29 = (byte) keyboard_events_size#1 [phi:keyboard_event_scan::@11/keyboard_event_scan::@12/keyboard_event_scan::@14/keyboard_event_scan::@9->keyboard_event_scan::@10#0] -- register_copy + // [435] phi (byte) keyboard_events_size#29 = (byte) keyboard_events_size#1 [phi:keyboard_event_scan::@11/keyboard_event_scan::@12/keyboard_event_scan::@14/keyboard_event_scan::@9->keyboard_event_scan::@10#0] -- register_copy jmp __b10 // keyboard_event_scan::@10 __b10: - // [438] (byte) keyboard_event_scan::keycode#14 ← ++ (byte) keyboard_event_scan::keycode#10 -- vbuz1=_inc_vbuz1 + // [436] (byte) keyboard_event_scan::keycode#14 ← ++ (byte) keyboard_event_scan::keycode#10 -- vbuz1=_inc_vbuz1 inc.z keycode - // [439] (byte) keyboard_event_scan::col#1 ← ++ (byte) keyboard_event_scan::col#2 -- vbuz1=_inc_vbuz1 + // [437] (byte) keyboard_event_scan::col#1 ← ++ (byte) keyboard_event_scan::col#2 -- vbuz1=_inc_vbuz1 inc.z col - // [440] if((byte) keyboard_event_scan::col#1!=(byte) 8) goto keyboard_event_scan::@9 -- vbuz1_neq_vbuc1_then_la1 + // [438] if((byte) keyboard_event_scan::col#1!=(byte) 8) goto keyboard_event_scan::@9 -- vbuz1_neq_vbuc1_then_la1 lda #8 cmp.z col bne __b9_from___b10 jmp __b15 // keyboard_event_scan::@15 __b15: - // [441] *((const byte*) keyboard_scan_values + (byte) keyboard_event_scan::row#2) ← (byte) keyboard_event_scan::row_scan#0 -- pbuc1_derefidx_vbuz1=vbuz2 + // [439] *((const byte*) keyboard_scan_values + (byte) keyboard_event_scan::row#2) ← (byte) keyboard_event_scan::row_scan#0 -- pbuc1_derefidx_vbuz1=vbuz2 // Store the current keyboard status for the row to debounce lda.z row_scan ldy.z row @@ -14653,16 +14631,16 @@ keyboard_event_scan: { jmp __b8_from___b15 // keyboard_event_scan::@11 __b11: - // [442] (byte~) keyboard_event_scan::$23 ← (byte) keyboard_event_scan::keycode#10 | (byte) $40 -- vbuz1=vbuz2_bor_vbuc1 + // [440] (byte~) keyboard_event_scan::$23 ← (byte) keyboard_event_scan::keycode#10 | (byte) $40 -- vbuz1=vbuz2_bor_vbuc1 lda #$40 ora.z keycode sta.z __23 - // [443] *((const byte*) keyboard_events + (byte) keyboard_events_size#10) ← (byte~) keyboard_event_scan::$23 -- pbuc1_derefidx_vbuz1=vbuz2 + // [441] *((const byte*) keyboard_events + (byte) keyboard_events_size#10) ← (byte~) keyboard_event_scan::$23 -- pbuc1_derefidx_vbuz1=vbuz2 // Key released lda.z __23 ldy.z keyboard_events_size sta keyboard_events,y - // [444] (byte) keyboard_events_size#1 ← ++ (byte) keyboard_events_size#10 -- vbuz1=_inc_vbuz1 + // [442] (byte) keyboard_events_size#1 ← ++ (byte) keyboard_events_size#10 -- vbuz1=_inc_vbuz1 inc.z keyboard_events_size jmp __b10_from___b11 } @@ -14677,18 +14655,18 @@ keyboard_matrix_read: { .label return = $d3 .label rowid = $c4 .label return_1 = $c5 - // [445] *((const byte*) CIA1_PORT_A) ← *((const byte*) keyboard_matrix_row_bitmask + (byte) keyboard_matrix_read::rowid#0) -- _deref_pbuc1=pbuc2_derefidx_vbuz1 + // [443] *((const byte*) CIA1_PORT_A) ← *((const byte*) keyboard_matrix_row_bitmask + (byte) keyboard_matrix_read::rowid#0) -- _deref_pbuc1=pbuc2_derefidx_vbuz1 ldy.z rowid lda keyboard_matrix_row_bitmask,y sta CIA1_PORT_A - // [446] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B) -- vbuz1=_bnot__deref_pbuc1 + // [444] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B) -- vbuz1=_bnot__deref_pbuc1 lda CIA1_PORT_B eor #$ff sta.z return jmp __breturn // keyboard_matrix_read::@return __breturn: - // [447] return + // [445] return rts } // render_show @@ -14697,50 +14675,50 @@ render_show: { .const toD0181_return = (>(PLAYFIELD_SCREEN_1&$3fff)*4)|(>PLAYFIELD_CHARSET)/4&$f .const toD0182_return = (>(PLAYFIELD_SCREEN_2&$3fff)*4)|(>PLAYFIELD_CHARSET)/4&$f .label d018val = $59 - // [448] if((byte) render_screen_show#16==(byte) 0) goto render_show::toD0181 -- vbuz1_eq_0_then_la1 + // [446] if((byte) render_screen_show#16==(byte) 0) goto render_show::toD0181 -- vbuz1_eq_0_then_la1 lda.z render_screen_show cmp #0 beq toD0181_from_render_show - // [449] phi from render_show to render_show::toD0182 [phi:render_show->render_show::toD0182] + // [447] phi from render_show to render_show::toD0182 [phi:render_show->render_show::toD0182] toD0182_from_render_show: jmp toD0182 // render_show::toD0182 toD0182: - // [450] phi from render_show::toD0182 to render_show::@1 [phi:render_show::toD0182->render_show::@1] + // [448] phi from render_show::toD0182 to render_show::@1 [phi:render_show::toD0182->render_show::@1] __b1_from_toD0182: - // [450] phi (byte) render_show::d018val#3 = (const byte) render_show::toD0182_return#0 [phi:render_show::toD0182->render_show::@1#0] -- vbuz1=vbuc1 + // [448] phi (byte) render_show::d018val#3 = (const byte) render_show::toD0182_return#0 [phi:render_show::toD0182->render_show::@1#0] -- vbuz1=vbuc1 lda #toD0182_return sta.z d018val jmp __b1 // render_show::@1 __b1: - // [451] *((const byte*) D018) ← (byte) render_show::d018val#3 -- _deref_pbuc1=vbuz1 + // [449] *((const byte*) D018) ← (byte) render_show::d018val#3 -- _deref_pbuc1=vbuz1 lda.z d018val sta D018 - // [452] *((const byte*) BGCOL2) ← *((const byte*) PIECES_COLORS_1 + (byte) level#10) -- _deref_pbuc1=pbuc2_derefidx_vbuz1 + // [450] *((const byte*) BGCOL2) ← *((const byte*) PIECES_COLORS_1 + (byte) level#10) -- _deref_pbuc1=pbuc2_derefidx_vbuz1 ldy.z level lda PIECES_COLORS_1,y sta BGCOL2 - // [453] *((const byte*) BGCOL3) ← *((const byte*) PIECES_COLORS_2 + (byte) level#10) -- _deref_pbuc1=pbuc2_derefidx_vbuz1 + // [451] *((const byte*) BGCOL3) ← *((const byte*) PIECES_COLORS_2 + (byte) level#10) -- _deref_pbuc1=pbuc2_derefidx_vbuz1 ldy.z level lda PIECES_COLORS_2,y sta BGCOL3 - // [454] (byte) render_screen_showing ← (byte) render_screen_show#16 -- vbuz1=vbuz2 + // [452] (byte) render_screen_showing ← (byte) render_screen_show#16 -- vbuz1=vbuz2 lda.z render_screen_show sta.z render_screen_showing jmp __breturn // render_show::@return __breturn: - // [455] return + // [453] return rts - // [456] phi from render_show to render_show::toD0181 [phi:render_show->render_show::toD0181] + // [454] phi from render_show to render_show::toD0181 [phi:render_show->render_show::toD0181] toD0181_from_render_show: jmp toD0181 // render_show::toD0181 toD0181: - // [450] phi from render_show::toD0181 to render_show::@1 [phi:render_show::toD0181->render_show::@1] + // [448] phi from render_show::toD0181 to render_show::@1 [phi:render_show::toD0181->render_show::@1] __b1_from_toD0181: - // [450] phi (byte) render_show::d018val#3 = (const byte) render_show::toD0181_return#0 [phi:render_show::toD0181->render_show::@1#0] -- vbuz1=vbuc1 + // [448] phi (byte) render_show::d018val#3 = (const byte) render_show::toD0181_return#0 [phi:render_show::toD0181->render_show::@1#0] -- vbuz1=vbuc1 lda #toD0181_return sta.z d018val jmp __b1 @@ -14755,43 +14733,43 @@ play_init: { .label idx = $5d .label j = $5a .label b = $5e - // [458] phi from play_init to play_init::@1 [phi:play_init->play_init::@1] + // [456] phi from play_init to play_init::@1 [phi:play_init->play_init::@1] __b1_from_play_init: - // [458] phi (byte) play_init::idx#2 = (byte) 0 [phi:play_init->play_init::@1#0] -- vbuz1=vbuc1 + // [456] phi (byte) play_init::idx#2 = (byte) 0 [phi:play_init->play_init::@1#0] -- vbuz1=vbuc1 lda #0 sta.z idx - // [458] phi (byte*) play_init::pli#2 = (const byte*) playfield [phi:play_init->play_init::@1#1] -- pbuz1=pbuc1 + // [456] phi (byte*) play_init::pli#2 = (const byte*) playfield [phi:play_init->play_init::@1#1] -- pbuz1=pbuc1 lda #playfield sta.z pli+1 - // [458] phi (byte) play_init::j#2 = (byte) 0 [phi:play_init->play_init::@1#2] -- vbuz1=vbuc1 + // [456] phi (byte) play_init::j#2 = (byte) 0 [phi:play_init->play_init::@1#2] -- vbuz1=vbuc1 lda #0 sta.z j jmp __b1 - // [458] phi from play_init::@1 to play_init::@1 [phi:play_init::@1->play_init::@1] + // [456] phi from play_init::@1 to play_init::@1 [phi:play_init::@1->play_init::@1] __b1_from___b1: - // [458] phi (byte) play_init::idx#2 = (byte) play_init::idx#1 [phi:play_init::@1->play_init::@1#0] -- register_copy - // [458] phi (byte*) play_init::pli#2 = (byte*) play_init::pli#1 [phi:play_init::@1->play_init::@1#1] -- register_copy - // [458] phi (byte) play_init::j#2 = (byte) play_init::j#1 [phi:play_init::@1->play_init::@1#2] -- register_copy + // [456] phi (byte) play_init::idx#2 = (byte) play_init::idx#1 [phi:play_init::@1->play_init::@1#0] -- register_copy + // [456] phi (byte*) play_init::pli#2 = (byte*) play_init::pli#1 [phi:play_init::@1->play_init::@1#1] -- register_copy + // [456] phi (byte) play_init::j#2 = (byte) play_init::j#1 [phi:play_init::@1->play_init::@1#2] -- register_copy jmp __b1 // play_init::@1 __b1: - // [459] (byte~) play_init::$2 ← (byte) play_init::j#2 << (byte) 1 -- vbuz1=vbuz2_rol_1 + // [457] (byte~) play_init::$2 ← (byte) play_init::j#2 << (byte) 1 -- vbuz1=vbuz2_rol_1 lda.z j asl sta.z __2 - // [460] *((const byte**) playfield_lines + (byte~) play_init::$2) ← (byte*) play_init::pli#2 -- pptc1_derefidx_vbuz1=pbuz2 + // [458] *((const byte**) playfield_lines + (byte~) play_init::$2) ← (byte*) play_init::pli#2 -- pptc1_derefidx_vbuz1=pbuz2 ldy.z __2 lda.z pli sta playfield_lines,y lda.z pli+1 sta playfield_lines+1,y - // [461] *((const byte*) playfield_lines_idx + (byte) play_init::j#2) ← (byte) play_init::idx#2 -- pbuc1_derefidx_vbuz1=vbuz2 + // [459] *((const byte*) playfield_lines_idx + (byte) play_init::j#2) ← (byte) play_init::idx#2 -- pbuc1_derefidx_vbuz1=vbuz2 lda.z idx ldy.z j sta playfield_lines_idx,y - // [462] (byte*) play_init::pli#1 ← (byte*) play_init::pli#2 + (const byte) PLAYFIELD_COLS -- pbuz1=pbuz1_plus_vbuc1 + // [460] (byte*) play_init::pli#1 ← (byte*) play_init::pli#2 + (const byte) PLAYFIELD_COLS -- pbuz1=pbuz1_plus_vbuc1 lda #PLAYFIELD_COLS clc adc.z pli @@ -14799,45 +14777,45 @@ play_init: { bcc !+ inc.z pli+1 !: - // [463] (byte) play_init::idx#1 ← (byte) play_init::idx#2 + (const byte) PLAYFIELD_COLS -- vbuz1=vbuz1_plus_vbuc1 + // [461] (byte) play_init::idx#1 ← (byte) play_init::idx#2 + (const byte) PLAYFIELD_COLS -- vbuz1=vbuz1_plus_vbuc1 lax.z idx axs #-[PLAYFIELD_COLS] stx.z idx - // [464] (byte) play_init::j#1 ← ++ (byte) play_init::j#2 -- vbuz1=_inc_vbuz1 + // [462] (byte) play_init::j#1 ← ++ (byte) play_init::j#2 -- vbuz1=_inc_vbuz1 inc.z j - // [465] if((byte) play_init::j#1!=(const byte) PLAYFIELD_LINES-(byte) 1+(byte) 1) goto play_init::@1 -- vbuz1_neq_vbuc1_then_la1 + // [463] if((byte) play_init::j#1!=(const byte) PLAYFIELD_LINES-(byte) 1+(byte) 1) goto play_init::@1 -- vbuz1_neq_vbuc1_then_la1 lda #PLAYFIELD_LINES-1+1 cmp.z j bne __b1_from___b1 jmp __b2 // play_init::@2 __b2: - // [466] *((const byte*) playfield_lines_idx+(const byte) PLAYFIELD_LINES) ← (const byte) PLAYFIELD_COLS*(const byte) PLAYFIELD_LINES -- _deref_pbuc1=vbuc2 + // [464] *((const byte*) playfield_lines_idx+(const byte) PLAYFIELD_LINES) ← (const byte) PLAYFIELD_COLS*(const byte) PLAYFIELD_LINES -- _deref_pbuc1=vbuc2 lda #PLAYFIELD_COLS*PLAYFIELD_LINES sta playfield_lines_idx+PLAYFIELD_LINES - // [467] (byte) current_movedown_slow#1 ← *((const byte*) MOVEDOWN_SLOW_SPEEDS) -- vbuz1=_deref_pbuc1 + // [465] (byte) current_movedown_slow#1 ← *((const byte*) MOVEDOWN_SLOW_SPEEDS) -- vbuz1=_deref_pbuc1 // Set initial speed of moving down a tetromino lda MOVEDOWN_SLOW_SPEEDS sta.z current_movedown_slow - // [468] phi from play_init::@2 to play_init::@3 [phi:play_init::@2->play_init::@3] + // [466] phi from play_init::@2 to play_init::@3 [phi:play_init::@2->play_init::@3] __b3_from___b2: - // [468] phi (byte) play_init::b#2 = (byte) 0 [phi:play_init::@2->play_init::@3#0] -- vbuz1=vbuc1 + // [466] phi (byte) play_init::b#2 = (byte) 0 [phi:play_init::@2->play_init::@3#0] -- vbuz1=vbuc1 lda #0 sta.z b jmp __b3 // Set the initial score add values - // [468] phi from play_init::@3 to play_init::@3 [phi:play_init::@3->play_init::@3] + // [466] phi from play_init::@3 to play_init::@3 [phi:play_init::@3->play_init::@3] __b3_from___b3: - // [468] phi (byte) play_init::b#2 = (byte) play_init::b#1 [phi:play_init::@3->play_init::@3#0] -- register_copy + // [466] phi (byte) play_init::b#2 = (byte) play_init::b#1 [phi:play_init::@3->play_init::@3#0] -- register_copy jmp __b3 // play_init::@3 __b3: - // [469] (byte~) play_init::$3 ← (byte) play_init::b#2 << (byte) 2 -- vbuz1=vbuz2_rol_2 + // [467] (byte~) play_init::$3 ← (byte) play_init::b#2 << (byte) 2 -- vbuz1=vbuz2_rol_2 lda.z b asl asl sta.z __3 - // [470] *((const dword*) score_add_bcd + (byte~) play_init::$3) ← *((const dword*) SCORE_BASE_BCD + (byte~) play_init::$3) -- pduc1_derefidx_vbuz1=pduc2_derefidx_vbuz1 + // [468] *((const dword*) score_add_bcd + (byte~) play_init::$3) ← *((const dword*) SCORE_BASE_BCD + (byte~) play_init::$3) -- pduc1_derefidx_vbuz1=pduc2_derefidx_vbuz1 ldy.z __3 lda SCORE_BASE_BCD,y sta score_add_bcd,y @@ -14847,16 +14825,16 @@ play_init: { sta score_add_bcd+2,y lda SCORE_BASE_BCD+3,y sta score_add_bcd+3,y - // [471] (byte) play_init::b#1 ← ++ (byte) play_init::b#2 -- vbuz1=_inc_vbuz1 + // [469] (byte) play_init::b#1 ← ++ (byte) play_init::b#2 -- vbuz1=_inc_vbuz1 inc.z b - // [472] if((byte) play_init::b#1!=(byte) 5) goto play_init::@3 -- vbuz1_neq_vbuc1_then_la1 + // [470] if((byte) play_init::b#1!=(byte) 5) goto play_init::@3 -- vbuz1_neq_vbuc1_then_la1 lda #5 cmp.z b bne __b3_from___b3 jmp __breturn // play_init::@return __breturn: - // [473] return + // [471] return rts } // sprites_irq_init @@ -14864,36 +14842,36 @@ play_init: { sprites_irq_init: { // asm { sei } sei - // [475] *((const byte*) IRQ_STATUS) ← (const byte) IRQ_RASTER -- _deref_pbuc1=vbuc2 + // [473] *((const byte*) IRQ_STATUS) ← (const byte) IRQ_RASTER -- _deref_pbuc1=vbuc2 // Acknowledge any IRQ and setup the next one lda #IRQ_RASTER sta IRQ_STATUS // asm { ldaCIA1_INTERRUPT } lda CIA1_INTERRUPT - // [477] *((const byte*) PROCPORT_DDR) ← (const byte) PROCPORT_DDR_MEMORY_MASK -- _deref_pbuc1=vbuc2 + // [475] *((const byte*) PROCPORT_DDR) ← (const byte) PROCPORT_DDR_MEMORY_MASK -- _deref_pbuc1=vbuc2 // Disable kernal & basic lda #PROCPORT_DDR_MEMORY_MASK sta PROCPORT_DDR - // [478] *((const byte*) PROCPORT) ← (const byte) PROCPORT_RAM_IO -- _deref_pbuc1=vbuc2 + // [476] *((const byte*) PROCPORT) ← (const byte) PROCPORT_RAM_IO -- _deref_pbuc1=vbuc2 lda #PROCPORT_RAM_IO sta PROCPORT - // [479] *((const byte*) CIA1_INTERRUPT) ← (const byte) CIA_INTERRUPT_CLEAR -- _deref_pbuc1=vbuc2 + // [477] *((const byte*) CIA1_INTERRUPT) ← (const byte) CIA_INTERRUPT_CLEAR -- _deref_pbuc1=vbuc2 // Disable CIA 1 Timer IRQ lda #CIA_INTERRUPT_CLEAR sta CIA1_INTERRUPT - // [480] *((const byte*) VIC_CONTROL) ← *((const byte*) VIC_CONTROL) & (byte) $7f -- _deref_pbuc1=_deref_pbuc1_band_vbuc2 + // [478] *((const byte*) VIC_CONTROL) ← *((const byte*) VIC_CONTROL) & (byte) $7f -- _deref_pbuc1=_deref_pbuc1_band_vbuc2 // Set raster line lda #$7f and VIC_CONTROL sta VIC_CONTROL - // [481] *((const byte*) RASTER) ← (const byte) IRQ_RASTER_FIRST -- _deref_pbuc1=vbuc2 + // [479] *((const byte*) RASTER) ← (const byte) IRQ_RASTER_FIRST -- _deref_pbuc1=vbuc2 lda #IRQ_RASTER_FIRST sta RASTER - // [482] *((const byte*) IRQ_ENABLE) ← (const byte) IRQ_RASTER -- _deref_pbuc1=vbuc2 + // [480] *((const byte*) IRQ_ENABLE) ← (const byte) IRQ_RASTER -- _deref_pbuc1=vbuc2 // Enable Raster Interrupt lda #IRQ_RASTER sta IRQ_ENABLE - // [483] *((const void()**) HARDWARE_IRQ) ← &interrupt(HARDWARE_CLOBBER)(void()) sprites_irq() -- _deref_pptc1=pprc2 + // [481] *((const void()**) HARDWARE_IRQ) ← &interrupt(HARDWARE_CLOBBER)(void()) sprites_irq() -- _deref_pptc1=pprc2 // Set the IRQ routine lda #sprites_init::@1] + // [488] phi from sprites_init to sprites_init::@1 [phi:sprites_init->sprites_init::@1] __b1_from_sprites_init: - // [490] phi (byte) sprites_init::xpos#2 = (byte)(number) $18+(number) $f*(number) 8 [phi:sprites_init->sprites_init::@1#0] -- vbuz1=vbuc1 + // [488] phi (byte) sprites_init::xpos#2 = (byte)(number) $18+(number) $f*(number) 8 [phi:sprites_init->sprites_init::@1#0] -- vbuz1=vbuc1 lda #$18+$f*8 sta.z xpos - // [490] phi (byte) sprites_init::s#2 = (byte) 0 [phi:sprites_init->sprites_init::@1#1] -- vbuz1=vbuc1 + // [488] phi (byte) sprites_init::s#2 = (byte) 0 [phi:sprites_init->sprites_init::@1#1] -- vbuz1=vbuc1 lda #0 sta.z s jmp __b1 - // [490] phi from sprites_init::@1 to sprites_init::@1 [phi:sprites_init::@1->sprites_init::@1] + // [488] phi from sprites_init::@1 to sprites_init::@1 [phi:sprites_init::@1->sprites_init::@1] __b1_from___b1: - // [490] phi (byte) sprites_init::xpos#2 = (byte) sprites_init::xpos#1 [phi:sprites_init::@1->sprites_init::@1#0] -- register_copy - // [490] phi (byte) sprites_init::s#2 = (byte) sprites_init::s#1 [phi:sprites_init::@1->sprites_init::@1#1] -- register_copy + // [488] phi (byte) sprites_init::xpos#2 = (byte) sprites_init::xpos#1 [phi:sprites_init::@1->sprites_init::@1#0] -- register_copy + // [488] phi (byte) sprites_init::s#2 = (byte) sprites_init::s#1 [phi:sprites_init::@1->sprites_init::@1#1] -- register_copy jmp __b1 // sprites_init::@1 __b1: - // [491] (byte) sprites_init::s2#0 ← (byte) sprites_init::s#2 << (byte) 1 -- vbuz1=vbuz2_rol_1 + // [489] (byte) sprites_init::s2#0 ← (byte) sprites_init::s#2 << (byte) 1 -- vbuz1=vbuz2_rol_1 lda.z s asl sta.z s2 - // [492] *((const byte*) SPRITES_XPOS + (byte) sprites_init::s2#0) ← (byte) sprites_init::xpos#2 -- pbuc1_derefidx_vbuz1=vbuz2 + // [490] *((const byte*) SPRITES_XPOS + (byte) sprites_init::s2#0) ← (byte) sprites_init::xpos#2 -- pbuc1_derefidx_vbuz1=vbuz2 lda.z xpos ldy.z s2 sta SPRITES_XPOS,y - // [493] *((const byte*) SPRITES_COLS + (byte) sprites_init::s#2) ← (const byte) BLACK -- pbuc1_derefidx_vbuz1=vbuc2 + // [491] *((const byte*) SPRITES_COLS + (byte) sprites_init::s#2) ← (const byte) BLACK -- pbuc1_derefidx_vbuz1=vbuc2 lda #BLACK ldy.z s sta SPRITES_COLS,y - // [494] (byte) sprites_init::xpos#1 ← (byte) sprites_init::xpos#2 + (byte) $18 -- vbuz1=vbuz1_plus_vbuc1 + // [492] (byte) sprites_init::xpos#1 ← (byte) sprites_init::xpos#2 + (byte) $18 -- vbuz1=vbuz1_plus_vbuc1 lax.z xpos axs #-[$18] stx.z xpos - // [495] (byte) sprites_init::s#1 ← ++ (byte) sprites_init::s#2 -- vbuz1=_inc_vbuz1 + // [493] (byte) sprites_init::s#1 ← ++ (byte) sprites_init::s#2 -- vbuz1=_inc_vbuz1 inc.z s - // [496] if((byte) sprites_init::s#1!=(byte) 4) goto sprites_init::@1 -- vbuz1_neq_vbuc1_then_la1 + // [494] if((byte) sprites_init::s#1!=(byte) 4) goto sprites_init::@1 -- vbuz1_neq_vbuc1_then_la1 lda #4 cmp.z s bne __b1_from___b1 jmp __breturn // sprites_init::@return __breturn: - // [497] return + // [495] return rts } // render_init @@ -14981,10 +14959,10 @@ render_init: { jmp vicSelectGfxBank1 // render_init::vicSelectGfxBank1 vicSelectGfxBank1: - // [499] *((const byte*) CIA2_PORT_A_DDR) ← (byte) 3 -- _deref_pbuc1=vbuc2 + // [497] *((const byte*) CIA2_PORT_A_DDR) ← (byte) 3 -- _deref_pbuc1=vbuc2 lda #3 sta CIA2_PORT_A_DDR - // [500] phi from render_init::vicSelectGfxBank1 to render_init::vicSelectGfxBank1_toDd001 [phi:render_init::vicSelectGfxBank1->render_init::vicSelectGfxBank1_toDd001] + // [498] phi from render_init::vicSelectGfxBank1 to render_init::vicSelectGfxBank1_toDd001 [phi:render_init::vicSelectGfxBank1->render_init::vicSelectGfxBank1_toDd001] vicSelectGfxBank1_toDd001_from_vicSelectGfxBank1: jmp vicSelectGfxBank1_toDd001 // render_init::vicSelectGfxBank1_toDd001 @@ -14992,95 +14970,95 @@ render_init: { jmp vicSelectGfxBank1___b1 // render_init::vicSelectGfxBank1_@1 vicSelectGfxBank1___b1: - // [501] *((const byte*) CIA2_PORT_A) ← (const byte) render_init::vicSelectGfxBank1_toDd001_return#0 -- _deref_pbuc1=vbuc2 + // [499] *((const byte*) CIA2_PORT_A) ← (const byte) render_init::vicSelectGfxBank1_toDd001_return#0 -- _deref_pbuc1=vbuc2 lda #vicSelectGfxBank1_toDd001_return sta CIA2_PORT_A jmp __b2 // render_init::@2 __b2: - // [502] *((const byte*) D011) ← (const byte) VIC_ECM|(const byte) VIC_DEN|(const byte) VIC_RSEL|(byte) 3 -- _deref_pbuc1=vbuc2 + // [500] *((const byte*) D011) ← (const byte) VIC_ECM|(const byte) VIC_DEN|(const byte) VIC_RSEL|(byte) 3 -- _deref_pbuc1=vbuc2 // Enable Extended Background Color Mode lda #VIC_ECM|VIC_DEN|VIC_RSEL|3 sta D011 - // [503] *((const byte*) BORDERCOL) ← (const byte) BLACK -- _deref_pbuc1=vbuc2 + // [501] *((const byte*) BORDERCOL) ← (const byte) BLACK -- _deref_pbuc1=vbuc2 lda #BLACK sta BORDERCOL - // [504] *((const byte*) BGCOL1) ← (const byte) BLACK -- _deref_pbuc1=vbuc2 + // [502] *((const byte*) BGCOL1) ← (const byte) BLACK -- _deref_pbuc1=vbuc2 lda #BLACK sta BGCOL1 - // [505] *((const byte*) BGCOL2) ← *((const byte*) PIECES_COLORS_1) -- _deref_pbuc1=_deref_pbuc2 + // [503] *((const byte*) BGCOL2) ← *((const byte*) PIECES_COLORS_1) -- _deref_pbuc1=_deref_pbuc2 lda PIECES_COLORS_1 sta BGCOL2 - // [506] *((const byte*) BGCOL3) ← *((const byte*) PIECES_COLORS_2) -- _deref_pbuc1=_deref_pbuc2 + // [504] *((const byte*) BGCOL3) ← *((const byte*) PIECES_COLORS_2) -- _deref_pbuc1=_deref_pbuc2 lda PIECES_COLORS_2 sta BGCOL3 - // [507] *((const byte*) BGCOL4) ← (const byte) GREY -- _deref_pbuc1=vbuc2 + // [505] *((const byte*) BGCOL4) ← (const byte) GREY -- _deref_pbuc1=vbuc2 lda #GREY sta BGCOL4 - // [508] call render_screen_original - // [520] phi from render_init::@2 to render_screen_original [phi:render_init::@2->render_screen_original] + // [506] call render_screen_original + // [518] phi from render_init::@2 to render_screen_original [phi:render_init::@2->render_screen_original] render_screen_original_from___b2: - // [520] phi (byte*) render_screen_original::screen#9 = (const byte*) PLAYFIELD_SCREEN_1 [phi:render_init::@2->render_screen_original#0] -- pbuz1=pbuc1 + // [518] phi (byte*) render_screen_original::screen#9 = (const byte*) PLAYFIELD_SCREEN_1 [phi:render_init::@2->render_screen_original#0] -- pbuz1=pbuc1 lda #PLAYFIELD_SCREEN_1 sta.z render_screen_original.screen+1 jsr render_screen_original - // [509] phi from render_init::@2 to render_init::@3 [phi:render_init::@2->render_init::@3] + // [507] phi from render_init::@2 to render_init::@3 [phi:render_init::@2->render_init::@3] __b3_from___b2: jmp __b3 // render_init::@3 __b3: - // [510] call render_screen_original - // [520] phi from render_init::@3 to render_screen_original [phi:render_init::@3->render_screen_original] + // [508] call render_screen_original + // [518] phi from render_init::@3 to render_screen_original [phi:render_init::@3->render_screen_original] render_screen_original_from___b3: - // [520] phi (byte*) render_screen_original::screen#9 = (const byte*) PLAYFIELD_SCREEN_2 [phi:render_init::@3->render_screen_original#0] -- pbuz1=pbuc1 + // [518] phi (byte*) render_screen_original::screen#9 = (const byte*) PLAYFIELD_SCREEN_2 [phi:render_init::@3->render_screen_original#0] -- pbuz1=pbuc1 lda #PLAYFIELD_SCREEN_2 sta.z render_screen_original.screen+1 jsr render_screen_original - // [511] phi from render_init::@3 to render_init::@1 [phi:render_init::@3->render_init::@1] + // [509] phi from render_init::@3 to render_init::@1 [phi:render_init::@3->render_init::@1] __b1_from___b3: - // [511] phi (byte*) render_init::li_2#2 = (const byte*) PLAYFIELD_SCREEN_2+(byte)(number) 2*(number) $28+(byte) $10 [phi:render_init::@3->render_init::@1#0] -- pbuz1=pbuc1 + // [509] phi (byte*) render_init::li_2#2 = (const byte*) PLAYFIELD_SCREEN_2+(byte)(number) 2*(number) $28+(byte) $10 [phi:render_init::@3->render_init::@1#0] -- pbuz1=pbuc1 lda #PLAYFIELD_SCREEN_2+2*$28+$10 sta.z li_2+1 - // [511] phi (byte*) render_init::li_1#2 = (const byte*) PLAYFIELD_SCREEN_1+(byte)(number) 2*(number) $28+(byte) $10 [phi:render_init::@3->render_init::@1#1] -- pbuz1=pbuc1 + // [509] phi (byte*) render_init::li_1#2 = (const byte*) PLAYFIELD_SCREEN_1+(byte)(number) 2*(number) $28+(byte) $10 [phi:render_init::@3->render_init::@1#1] -- pbuz1=pbuc1 lda #PLAYFIELD_SCREEN_1+2*$28+$10 sta.z li_1+1 - // [511] phi (byte) render_init::i#2 = (byte) 0 [phi:render_init::@3->render_init::@1#2] -- vbuz1=vbuc1 + // [509] phi (byte) render_init::i#2 = (byte) 0 [phi:render_init::@3->render_init::@1#2] -- vbuz1=vbuc1 lda #0 sta.z i jmp __b1 - // [511] phi from render_init::@1 to render_init::@1 [phi:render_init::@1->render_init::@1] + // [509] phi from render_init::@1 to render_init::@1 [phi:render_init::@1->render_init::@1] __b1_from___b1: - // [511] phi (byte*) render_init::li_2#2 = (byte*) render_init::li_2#1 [phi:render_init::@1->render_init::@1#0] -- register_copy - // [511] phi (byte*) render_init::li_1#2 = (byte*) render_init::li_1#1 [phi:render_init::@1->render_init::@1#1] -- register_copy - // [511] phi (byte) render_init::i#2 = (byte) render_init::i#1 [phi:render_init::@1->render_init::@1#2] -- register_copy + // [509] phi (byte*) render_init::li_2#2 = (byte*) render_init::li_2#1 [phi:render_init::@1->render_init::@1#0] -- register_copy + // [509] phi (byte*) render_init::li_1#2 = (byte*) render_init::li_1#1 [phi:render_init::@1->render_init::@1#1] -- register_copy + // [509] phi (byte) render_init::i#2 = (byte) render_init::i#1 [phi:render_init::@1->render_init::@1#2] -- register_copy jmp __b1 // render_init::@1 __b1: - // [512] (byte~) render_init::$5 ← (byte) render_init::i#2 << (byte) 1 -- vbuz1=vbuz2_rol_1 + // [510] (byte~) render_init::$5 ← (byte) render_init::i#2 << (byte) 1 -- vbuz1=vbuz2_rol_1 lda.z i asl sta.z __5 - // [513] *((const byte**) screen_lines_1 + (byte~) render_init::$5) ← (byte*) render_init::li_1#2 -- pptc1_derefidx_vbuz1=pbuz2 + // [511] *((const byte**) screen_lines_1 + (byte~) render_init::$5) ← (byte*) render_init::li_1#2 -- pptc1_derefidx_vbuz1=pbuz2 ldy.z __5 lda.z li_1 sta screen_lines_1,y lda.z li_1+1 sta screen_lines_1+1,y - // [514] *((const byte**) screen_lines_2 + (byte~) render_init::$5) ← (byte*) render_init::li_2#2 -- pptc1_derefidx_vbuz1=pbuz2 + // [512] *((const byte**) screen_lines_2 + (byte~) render_init::$5) ← (byte*) render_init::li_2#2 -- pptc1_derefidx_vbuz1=pbuz2 ldy.z __5 lda.z li_2 sta screen_lines_2,y lda.z li_2+1 sta screen_lines_2+1,y - // [515] (byte*) render_init::li_1#1 ← (byte*) render_init::li_1#2 + (byte) $28 -- pbuz1=pbuz1_plus_vbuc1 + // [513] (byte*) render_init::li_1#1 ← (byte*) render_init::li_1#2 + (byte) $28 -- pbuz1=pbuz1_plus_vbuc1 lda #$28 clc adc.z li_1 @@ -15088,7 +15066,7 @@ render_init: { bcc !+ inc.z li_1+1 !: - // [516] (byte*) render_init::li_2#1 ← (byte*) render_init::li_2#2 + (byte) $28 -- pbuz1=pbuz1_plus_vbuc1 + // [514] (byte*) render_init::li_2#1 ← (byte*) render_init::li_2#2 + (byte) $28 -- pbuz1=pbuz1_plus_vbuc1 lda #$28 clc adc.z li_2 @@ -15096,16 +15074,16 @@ render_init: { bcc !+ inc.z li_2+1 !: - // [517] (byte) render_init::i#1 ← ++ (byte) render_init::i#2 -- vbuz1=_inc_vbuz1 + // [515] (byte) render_init::i#1 ← ++ (byte) render_init::i#2 -- vbuz1=_inc_vbuz1 inc.z i - // [518] if((byte) render_init::i#1!=(const byte) PLAYFIELD_LINES-(byte) 1+(byte) 1) goto render_init::@1 -- vbuz1_neq_vbuc1_then_la1 + // [516] if((byte) render_init::i#1!=(const byte) PLAYFIELD_LINES-(byte) 1+(byte) 1) goto render_init::@1 -- vbuz1_neq_vbuc1_then_la1 lda #PLAYFIELD_LINES-1+1 cmp.z i bne __b1_from___b1 jmp __breturn // render_init::@return __breturn: - // [519] return + // [517] return rts } // render_screen_original @@ -15120,188 +15098,188 @@ render_screen_original: { .label oscr = $67 .label ocols = $69 .label y = $66 - // [521] phi from render_screen_original to render_screen_original::@1 [phi:render_screen_original->render_screen_original::@1] + // [519] phi from render_screen_original to render_screen_original::@1 [phi:render_screen_original->render_screen_original::@1] __b1_from_render_screen_original: - // [521] phi (byte) render_screen_original::y#6 = (byte) 0 [phi:render_screen_original->render_screen_original::@1#0] -- vbuz1=vbuc1 + // [519] phi (byte) render_screen_original::y#6 = (byte) 0 [phi:render_screen_original->render_screen_original::@1#0] -- vbuz1=vbuc1 lda #0 sta.z y - // [521] phi (byte*) render_screen_original::ocols#4 = (const byte*) PLAYFIELD_COLORS_ORIGINAL+(byte)(number) $20*(number) 2 [phi:render_screen_original->render_screen_original::@1#1] -- pbuz1=pbuc1 + // [519] phi (byte*) render_screen_original::ocols#4 = (const byte*) PLAYFIELD_COLORS_ORIGINAL+(byte)(number) $20*(number) 2 [phi:render_screen_original->render_screen_original::@1#1] -- pbuz1=pbuc1 lda #PLAYFIELD_COLORS_ORIGINAL+$20*2 sta.z ocols+1 - // [521] phi (byte*) render_screen_original::oscr#4 = (const byte*) PLAYFIELD_SCREEN_ORIGINAL+(byte)(number) $20*(number) 2 [phi:render_screen_original->render_screen_original::@1#2] -- pbuz1=pbuc1 + // [519] phi (byte*) render_screen_original::oscr#4 = (const byte*) PLAYFIELD_SCREEN_ORIGINAL+(byte)(number) $20*(number) 2 [phi:render_screen_original->render_screen_original::@1#2] -- pbuz1=pbuc1 lda #PLAYFIELD_SCREEN_ORIGINAL+$20*2 sta.z oscr+1 - // [521] phi (byte*) render_screen_original::cols#7 = (const byte*) COLS [phi:render_screen_original->render_screen_original::@1#3] -- pbuz1=pbuc1 + // [519] phi (byte*) render_screen_original::cols#7 = (const byte*) COLS [phi:render_screen_original->render_screen_original::@1#3] -- pbuz1=pbuc1 lda #COLS sta.z cols+1 - // [521] phi (byte*) render_screen_original::screen#8 = (byte*) render_screen_original::screen#9 [phi:render_screen_original->render_screen_original::@1#4] -- register_copy + // [519] phi (byte*) render_screen_original::screen#8 = (byte*) render_screen_original::screen#9 [phi:render_screen_original->render_screen_original::@1#4] -- register_copy jmp __b1 - // [521] phi from render_screen_original::@5 to render_screen_original::@1 [phi:render_screen_original::@5->render_screen_original::@1] + // [519] phi from render_screen_original::@5 to render_screen_original::@1 [phi:render_screen_original::@5->render_screen_original::@1] __b1_from___b5: - // [521] phi (byte) render_screen_original::y#6 = (byte) render_screen_original::y#1 [phi:render_screen_original::@5->render_screen_original::@1#0] -- register_copy - // [521] phi (byte*) render_screen_original::ocols#4 = (byte*) render_screen_original::ocols#1 [phi:render_screen_original::@5->render_screen_original::@1#1] -- register_copy - // [521] phi (byte*) render_screen_original::oscr#4 = (byte*) render_screen_original::oscr#1 [phi:render_screen_original::@5->render_screen_original::@1#2] -- register_copy - // [521] phi (byte*) render_screen_original::cols#7 = (byte*) render_screen_original::cols#3 [phi:render_screen_original::@5->render_screen_original::@1#3] -- register_copy - // [521] phi (byte*) render_screen_original::screen#8 = (byte*) render_screen_original::screen#10 [phi:render_screen_original::@5->render_screen_original::@1#4] -- register_copy + // [519] phi (byte) render_screen_original::y#6 = (byte) render_screen_original::y#1 [phi:render_screen_original::@5->render_screen_original::@1#0] -- register_copy + // [519] phi (byte*) render_screen_original::ocols#4 = (byte*) render_screen_original::ocols#1 [phi:render_screen_original::@5->render_screen_original::@1#1] -- register_copy + // [519] phi (byte*) render_screen_original::oscr#4 = (byte*) render_screen_original::oscr#1 [phi:render_screen_original::@5->render_screen_original::@1#2] -- register_copy + // [519] phi (byte*) render_screen_original::cols#7 = (byte*) render_screen_original::cols#3 [phi:render_screen_original::@5->render_screen_original::@1#3] -- register_copy + // [519] phi (byte*) render_screen_original::screen#8 = (byte*) render_screen_original::screen#10 [phi:render_screen_original::@5->render_screen_original::@1#4] -- register_copy jmp __b1 // render_screen_original::@1 __b1: - // [522] phi from render_screen_original::@1 to render_screen_original::@2 [phi:render_screen_original::@1->render_screen_original::@2] + // [520] phi from render_screen_original::@1 to render_screen_original::@2 [phi:render_screen_original::@1->render_screen_original::@2] __b2_from___b1: - // [522] phi (byte) render_screen_original::x#4 = (byte) 0 [phi:render_screen_original::@1->render_screen_original::@2#0] -- vbuz1=vbuc1 + // [520] phi (byte) render_screen_original::x#4 = (byte) 0 [phi:render_screen_original::@1->render_screen_original::@2#0] -- vbuz1=vbuc1 lda #0 sta.z x - // [522] phi (byte*) render_screen_original::cols#4 = (byte*) render_screen_original::cols#7 [phi:render_screen_original::@1->render_screen_original::@2#1] -- register_copy - // [522] phi (byte*) render_screen_original::screen#5 = (byte*) render_screen_original::screen#8 [phi:render_screen_original::@1->render_screen_original::@2#2] -- register_copy + // [520] phi (byte*) render_screen_original::cols#4 = (byte*) render_screen_original::cols#7 [phi:render_screen_original::@1->render_screen_original::@2#1] -- register_copy + // [520] phi (byte*) render_screen_original::screen#5 = (byte*) render_screen_original::screen#8 [phi:render_screen_original::@1->render_screen_original::@2#2] -- register_copy jmp __b2 - // [522] phi from render_screen_original::@2 to render_screen_original::@2 [phi:render_screen_original::@2->render_screen_original::@2] + // [520] phi from render_screen_original::@2 to render_screen_original::@2 [phi:render_screen_original::@2->render_screen_original::@2] __b2_from___b2: - // [522] phi (byte) render_screen_original::x#4 = (byte) render_screen_original::x#1 [phi:render_screen_original::@2->render_screen_original::@2#0] -- register_copy - // [522] phi (byte*) render_screen_original::cols#4 = (byte*) render_screen_original::cols#1 [phi:render_screen_original::@2->render_screen_original::@2#1] -- register_copy - // [522] phi (byte*) render_screen_original::screen#5 = (byte*) render_screen_original::screen#2 [phi:render_screen_original::@2->render_screen_original::@2#2] -- register_copy + // [520] phi (byte) render_screen_original::x#4 = (byte) render_screen_original::x#1 [phi:render_screen_original::@2->render_screen_original::@2#0] -- register_copy + // [520] phi (byte*) render_screen_original::cols#4 = (byte*) render_screen_original::cols#1 [phi:render_screen_original::@2->render_screen_original::@2#1] -- register_copy + // [520] phi (byte*) render_screen_original::screen#5 = (byte*) render_screen_original::screen#2 [phi:render_screen_original::@2->render_screen_original::@2#2] -- register_copy jmp __b2 // render_screen_original::@2 __b2: - // [523] *((byte*) render_screen_original::screen#5) ← (const byte) render_screen_original::SPACE -- _deref_pbuz1=vbuc1 + // [521] *((byte*) render_screen_original::screen#5) ← (const byte) render_screen_original::SPACE -- _deref_pbuz1=vbuc1 lda #SPACE ldy #0 sta (screen),y - // [524] (byte*) render_screen_original::screen#2 ← ++ (byte*) render_screen_original::screen#5 -- pbuz1=_inc_pbuz1 + // [522] (byte*) render_screen_original::screen#2 ← ++ (byte*) render_screen_original::screen#5 -- pbuz1=_inc_pbuz1 inc.z screen bne !+ inc.z screen+1 !: - // [525] *((byte*) render_screen_original::cols#4) ← (const byte) BLACK -- _deref_pbuz1=vbuc1 + // [523] *((byte*) render_screen_original::cols#4) ← (const byte) BLACK -- _deref_pbuz1=vbuc1 lda #BLACK ldy #0 sta (cols),y - // [526] (byte*) render_screen_original::cols#1 ← ++ (byte*) render_screen_original::cols#4 -- pbuz1=_inc_pbuz1 + // [524] (byte*) render_screen_original::cols#1 ← ++ (byte*) render_screen_original::cols#4 -- pbuz1=_inc_pbuz1 inc.z cols bne !+ inc.z cols+1 !: - // [527] (byte) render_screen_original::x#1 ← ++ (byte) render_screen_original::x#4 -- vbuz1=_inc_vbuz1 + // [525] (byte) render_screen_original::x#1 ← ++ (byte) render_screen_original::x#4 -- vbuz1=_inc_vbuz1 inc.z x - // [528] if((byte) render_screen_original::x#1!=(byte) 4) goto render_screen_original::@2 -- vbuz1_neq_vbuc1_then_la1 + // [526] if((byte) render_screen_original::x#1!=(byte) 4) goto render_screen_original::@2 -- vbuz1_neq_vbuc1_then_la1 lda #4 cmp.z x bne __b2_from___b2 - // [529] phi from render_screen_original::@2 render_screen_original::@3 to render_screen_original::@3 [phi:render_screen_original::@2/render_screen_original::@3->render_screen_original::@3] + // [527] phi from render_screen_original::@2 render_screen_original::@3 to render_screen_original::@3 [phi:render_screen_original::@2/render_screen_original::@3->render_screen_original::@3] __b3_from___b2: __b3_from___b3: - // [529] phi (byte) render_screen_original::x#5 = (byte) render_screen_original::x#1 [phi:render_screen_original::@2/render_screen_original::@3->render_screen_original::@3#0] -- register_copy - // [529] phi (byte*) render_screen_original::cols#5 = (byte*) render_screen_original::cols#1 [phi:render_screen_original::@2/render_screen_original::@3->render_screen_original::@3#1] -- register_copy - // [529] phi (byte*) render_screen_original::ocols#2 = (byte*) render_screen_original::ocols#4 [phi:render_screen_original::@2/render_screen_original::@3->render_screen_original::@3#2] -- register_copy - // [529] phi (byte*) render_screen_original::screen#6 = (byte*) render_screen_original::screen#2 [phi:render_screen_original::@2/render_screen_original::@3->render_screen_original::@3#3] -- register_copy - // [529] phi (byte*) render_screen_original::oscr#2 = (byte*) render_screen_original::oscr#4 [phi:render_screen_original::@2/render_screen_original::@3->render_screen_original::@3#4] -- register_copy + // [527] phi (byte) render_screen_original::x#5 = (byte) render_screen_original::x#1 [phi:render_screen_original::@2/render_screen_original::@3->render_screen_original::@3#0] -- register_copy + // [527] phi (byte*) render_screen_original::cols#5 = (byte*) render_screen_original::cols#1 [phi:render_screen_original::@2/render_screen_original::@3->render_screen_original::@3#1] -- register_copy + // [527] phi (byte*) render_screen_original::ocols#2 = (byte*) render_screen_original::ocols#4 [phi:render_screen_original::@2/render_screen_original::@3->render_screen_original::@3#2] -- register_copy + // [527] phi (byte*) render_screen_original::screen#6 = (byte*) render_screen_original::screen#2 [phi:render_screen_original::@2/render_screen_original::@3->render_screen_original::@3#3] -- register_copy + // [527] phi (byte*) render_screen_original::oscr#2 = (byte*) render_screen_original::oscr#4 [phi:render_screen_original::@2/render_screen_original::@3->render_screen_original::@3#4] -- register_copy jmp __b3 // render_screen_original::@3 __b3: - // [530] *((byte*) render_screen_original::screen#6) ← *((byte*) render_screen_original::oscr#2) -- _deref_pbuz1=_deref_pbuz2 + // [528] *((byte*) render_screen_original::screen#6) ← *((byte*) render_screen_original::oscr#2) -- _deref_pbuz1=_deref_pbuz2 ldy #0 lda (oscr),y ldy #0 sta (screen),y - // [531] (byte*) render_screen_original::screen#3 ← ++ (byte*) render_screen_original::screen#6 -- pbuz1=_inc_pbuz1 + // [529] (byte*) render_screen_original::screen#3 ← ++ (byte*) render_screen_original::screen#6 -- pbuz1=_inc_pbuz1 inc.z screen bne !+ inc.z screen+1 !: - // [532] (byte*) render_screen_original::oscr#1 ← ++ (byte*) render_screen_original::oscr#2 -- pbuz1=_inc_pbuz1 + // [530] (byte*) render_screen_original::oscr#1 ← ++ (byte*) render_screen_original::oscr#2 -- pbuz1=_inc_pbuz1 inc.z oscr bne !+ inc.z oscr+1 !: - // [533] *((byte*) render_screen_original::cols#5) ← *((byte*) render_screen_original::ocols#2) -- _deref_pbuz1=_deref_pbuz2 + // [531] *((byte*) render_screen_original::cols#5) ← *((byte*) render_screen_original::ocols#2) -- _deref_pbuz1=_deref_pbuz2 ldy #0 lda (ocols),y ldy #0 sta (cols),y - // [534] (byte*) render_screen_original::cols#2 ← ++ (byte*) render_screen_original::cols#5 -- pbuz1=_inc_pbuz1 + // [532] (byte*) render_screen_original::cols#2 ← ++ (byte*) render_screen_original::cols#5 -- pbuz1=_inc_pbuz1 inc.z cols bne !+ inc.z cols+1 !: - // [535] (byte*) render_screen_original::ocols#1 ← ++ (byte*) render_screen_original::ocols#2 -- pbuz1=_inc_pbuz1 + // [533] (byte*) render_screen_original::ocols#1 ← ++ (byte*) render_screen_original::ocols#2 -- pbuz1=_inc_pbuz1 inc.z ocols bne !+ inc.z ocols+1 !: - // [536] (byte) render_screen_original::x#2 ← ++ (byte) render_screen_original::x#5 -- vbuz1=_inc_vbuz1 + // [534] (byte) render_screen_original::x#2 ← ++ (byte) render_screen_original::x#5 -- vbuz1=_inc_vbuz1 inc.z x - // [537] if((byte) render_screen_original::x#2!=(byte) $24) goto render_screen_original::@3 -- vbuz1_neq_vbuc1_then_la1 + // [535] if((byte) render_screen_original::x#2!=(byte) $24) goto render_screen_original::@3 -- vbuz1_neq_vbuc1_then_la1 lda #$24 cmp.z x bne __b3_from___b3 - // [538] phi from render_screen_original::@3 render_screen_original::@4 to render_screen_original::@4 [phi:render_screen_original::@3/render_screen_original::@4->render_screen_original::@4] + // [536] phi from render_screen_original::@3 render_screen_original::@4 to render_screen_original::@4 [phi:render_screen_original::@3/render_screen_original::@4->render_screen_original::@4] __b4_from___b3: __b4_from___b4: - // [538] phi (byte) render_screen_original::x#6 = (byte) render_screen_original::x#2 [phi:render_screen_original::@3/render_screen_original::@4->render_screen_original::@4#0] -- register_copy - // [538] phi (byte*) render_screen_original::cols#6 = (byte*) render_screen_original::cols#2 [phi:render_screen_original::@3/render_screen_original::@4->render_screen_original::@4#1] -- register_copy - // [538] phi (byte*) render_screen_original::screen#7 = (byte*) render_screen_original::screen#3 [phi:render_screen_original::@3/render_screen_original::@4->render_screen_original::@4#2] -- register_copy + // [536] phi (byte) render_screen_original::x#6 = (byte) render_screen_original::x#2 [phi:render_screen_original::@3/render_screen_original::@4->render_screen_original::@4#0] -- register_copy + // [536] phi (byte*) render_screen_original::cols#6 = (byte*) render_screen_original::cols#2 [phi:render_screen_original::@3/render_screen_original::@4->render_screen_original::@4#1] -- register_copy + // [536] phi (byte*) render_screen_original::screen#7 = (byte*) render_screen_original::screen#3 [phi:render_screen_original::@3/render_screen_original::@4->render_screen_original::@4#2] -- register_copy jmp __b4 // render_screen_original::@4 __b4: - // [539] *((byte*) render_screen_original::screen#7) ← (const byte) render_screen_original::SPACE -- _deref_pbuz1=vbuc1 + // [537] *((byte*) render_screen_original::screen#7) ← (const byte) render_screen_original::SPACE -- _deref_pbuz1=vbuc1 lda #SPACE ldy #0 sta (screen),y - // [540] (byte*) render_screen_original::screen#10 ← ++ (byte*) render_screen_original::screen#7 -- pbuz1=_inc_pbuz1 + // [538] (byte*) render_screen_original::screen#10 ← ++ (byte*) render_screen_original::screen#7 -- pbuz1=_inc_pbuz1 inc.z screen bne !+ inc.z screen+1 !: - // [541] *((byte*) render_screen_original::cols#6) ← (const byte) BLACK -- _deref_pbuz1=vbuc1 + // [539] *((byte*) render_screen_original::cols#6) ← (const byte) BLACK -- _deref_pbuz1=vbuc1 lda #BLACK ldy #0 sta (cols),y - // [542] (byte*) render_screen_original::cols#3 ← ++ (byte*) render_screen_original::cols#6 -- pbuz1=_inc_pbuz1 + // [540] (byte*) render_screen_original::cols#3 ← ++ (byte*) render_screen_original::cols#6 -- pbuz1=_inc_pbuz1 inc.z cols bne !+ inc.z cols+1 !: - // [543] (byte) render_screen_original::x#3 ← ++ (byte) render_screen_original::x#6 -- vbuz1=_inc_vbuz1 + // [541] (byte) render_screen_original::x#3 ← ++ (byte) render_screen_original::x#6 -- vbuz1=_inc_vbuz1 inc.z x - // [544] if((byte) render_screen_original::x#3!=(byte) $28) goto render_screen_original::@4 -- vbuz1_neq_vbuc1_then_la1 + // [542] if((byte) render_screen_original::x#3!=(byte) $28) goto render_screen_original::@4 -- vbuz1_neq_vbuc1_then_la1 lda #$28 cmp.z x bne __b4_from___b4 jmp __b5 // render_screen_original::@5 __b5: - // [545] (byte) render_screen_original::y#1 ← ++ (byte) render_screen_original::y#6 -- vbuz1=_inc_vbuz1 + // [543] (byte) render_screen_original::y#1 ← ++ (byte) render_screen_original::y#6 -- vbuz1=_inc_vbuz1 inc.z y - // [546] if((byte) render_screen_original::y#1!=(byte) $19) goto render_screen_original::@1 -- vbuz1_neq_vbuc1_then_la1 + // [544] if((byte) render_screen_original::y#1!=(byte) $19) goto render_screen_original::@1 -- vbuz1_neq_vbuc1_then_la1 lda #$19 cmp.z y bne __b1_from___b5 jmp __breturn // render_screen_original::@return __breturn: - // [547] return + // [545] return rts } // sid_rnd_init // Initialize SID voice 3 for random number generation sid_rnd_init: { - // [548] *((const word*) SID_VOICE3_FREQ) ← (word) $ffff -- _deref_pwuc1=vwuc2 + // [546] *((const word*) SID_VOICE3_FREQ) ← (word) $ffff -- _deref_pwuc1=vwuc2 lda #<$ffff sta SID_VOICE3_FREQ lda #>$ffff sta SID_VOICE3_FREQ+1 - // [549] *((const byte*) SID_VOICE3_CONTROL) ← (const byte) SID_CONTROL_NOISE -- _deref_pbuc1=vbuc2 + // [547] *((const byte*) SID_VOICE3_CONTROL) ← (const byte) SID_CONTROL_NOISE -- _deref_pbuc1=vbuc2 lda #SID_CONTROL_NOISE sta SID_VOICE3_CONTROL jmp __breturn // sid_rnd_init::@return __breturn: - // [550] return + // [548] return rts } // sprites_irq @@ -15326,116 +15304,116 @@ sprites_irq: { //(*BGCOL)++; // Clear decimal flag (because it is used by the score algorithm) cld - // [552] (byte) sprites_irq::ypos#0 ← (byte) irq_sprite_ypos -- vbuz1=vbuz2 + // [550] (byte) sprites_irq::ypos#0 ← (byte) irq_sprite_ypos -- vbuz1=vbuz2 // Place the sprites lda.z irq_sprite_ypos sta.z ypos - // [553] *((const byte*) SPRITES_YPOS) ← (byte) sprites_irq::ypos#0 -- _deref_pbuc1=vbuz1 + // [551] *((const byte*) SPRITES_YPOS) ← (byte) sprites_irq::ypos#0 -- _deref_pbuc1=vbuz1 lda.z ypos sta SPRITES_YPOS - // [554] *((const byte*) SPRITES_YPOS+(byte) 2) ← (byte) sprites_irq::ypos#0 -- _deref_pbuc1=vbuz1 + // [552] *((const byte*) SPRITES_YPOS+(byte) 2) ← (byte) sprites_irq::ypos#0 -- _deref_pbuc1=vbuz1 lda.z ypos sta SPRITES_YPOS+2 - // [555] *((const byte*) SPRITES_YPOS+(byte) 4) ← (byte) sprites_irq::ypos#0 -- _deref_pbuc1=vbuz1 + // [553] *((const byte*) SPRITES_YPOS+(byte) 4) ← (byte) sprites_irq::ypos#0 -- _deref_pbuc1=vbuz1 lda.z ypos sta SPRITES_YPOS+4 - // [556] *((const byte*) SPRITES_YPOS+(byte) 6) ← (byte) sprites_irq::ypos#0 -- _deref_pbuc1=vbuz1 + // [554] *((const byte*) SPRITES_YPOS+(byte) 6) ← (byte) sprites_irq::ypos#0 -- _deref_pbuc1=vbuz1 lda.z ypos sta SPRITES_YPOS+6 - // [557] (byte~) sprites_irq::$0 ← (byte) irq_raster_next + (byte) 1 -- vbuz1=vbuz2_plus_1 + // [555] (byte~) sprites_irq::$0 ← (byte) irq_raster_next + (byte) 1 -- vbuz1=vbuz2_plus_1 ldy.z irq_raster_next iny sty.z __0 - // [558] (byte) sprites_irq::raster_sprite_gfx_modify ← (byte~) sprites_irq::$0 -- vbuz1=vbuz2 + // [556] (byte) sprites_irq::raster_sprite_gfx_modify ← (byte~) sprites_irq::$0 -- vbuz1=vbuz2 // Wait for the y-position before changing sprite pointers lda.z __0 sta.z raster_sprite_gfx_modify jmp __b8 // sprites_irq::@8 __b8: - // [559] if(*((const byte*) RASTER)<(byte) sprites_irq::raster_sprite_gfx_modify) goto sprites_irq::@8 -- _deref_pbuc1_lt_vbuz1_then_la1 + // [557] if(*((const byte*) RASTER)<(byte) sprites_irq::raster_sprite_gfx_modify) goto sprites_irq::@8 -- _deref_pbuc1_lt_vbuz1_then_la1 lda RASTER cmp.z raster_sprite_gfx_modify bcc __b8 jmp __b9 // sprites_irq::@9 __b9: - // [560] (byte) sprites_irq::ptr#0 ← (byte) irq_sprite_ptr -- vbuz1=vbuz2 + // [558] (byte) sprites_irq::ptr#0 ← (byte) irq_sprite_ptr -- vbuz1=vbuz2 lda.z irq_sprite_ptr sta.z ptr - // [561] if((byte) render_screen_showing==(byte) 0) goto sprites_irq::@1 -- vbuz1_eq_0_then_la1 + // [559] if((byte) render_screen_showing==(byte) 0) goto sprites_irq::@1 -- vbuz1_eq_0_then_la1 lda.z render_screen_showing cmp #0 beq __b1 jmp __b10 // sprites_irq::@10 __b10: - // [562] *((const byte*) PLAYFIELD_SPRITE_PTRS_2) ← (byte) sprites_irq::ptr#0 -- _deref_pbuc1=vbuz1 + // [560] *((const byte*) PLAYFIELD_SPRITE_PTRS_2) ← (byte) sprites_irq::ptr#0 -- _deref_pbuc1=vbuz1 lda.z ptr sta PLAYFIELD_SPRITE_PTRS_2 - // [563] (byte) sprites_irq::ptr#3 ← ++ (byte) sprites_irq::ptr#0 -- vbuz1=_inc_vbuz2 + // [561] (byte) sprites_irq::ptr#3 ← ++ (byte) sprites_irq::ptr#0 -- vbuz1=_inc_vbuz2 ldy.z ptr iny sty.z ptr_3 - // [564] *((const byte*) PLAYFIELD_SPRITE_PTRS_2+(byte) 1) ← (byte) sprites_irq::ptr#3 -- _deref_pbuc1=vbuz1 + // [562] *((const byte*) PLAYFIELD_SPRITE_PTRS_2+(byte) 1) ← (byte) sprites_irq::ptr#3 -- _deref_pbuc1=vbuz1 lda.z ptr_3 sta PLAYFIELD_SPRITE_PTRS_2+1 - // [565] *((const byte*) PLAYFIELD_SPRITE_PTRS_2+(byte) 2) ← (byte) sprites_irq::ptr#3 -- _deref_pbuc1=vbuz1 + // [563] *((const byte*) PLAYFIELD_SPRITE_PTRS_2+(byte) 2) ← (byte) sprites_irq::ptr#3 -- _deref_pbuc1=vbuz1 lda.z ptr_3 sta PLAYFIELD_SPRITE_PTRS_2+2 - // [566] (byte) sprites_irq::ptr#4 ← ++ (byte) sprites_irq::ptr#3 -- vbuz1=_inc_vbuz2 + // [564] (byte) sprites_irq::ptr#4 ← ++ (byte) sprites_irq::ptr#3 -- vbuz1=_inc_vbuz2 ldy.z ptr_3 iny sty.z ptr_4 - // [567] *((const byte*) PLAYFIELD_SPRITE_PTRS_2+(byte) 3) ← (byte) sprites_irq::ptr#4 -- _deref_pbuc1=vbuz1 + // [565] *((const byte*) PLAYFIELD_SPRITE_PTRS_2+(byte) 3) ← (byte) sprites_irq::ptr#4 -- _deref_pbuc1=vbuz1 lda.z ptr_4 sta PLAYFIELD_SPRITE_PTRS_2+3 jmp __b2 // sprites_irq::@2 __b2: - // [568] (byte) irq_cnt ← ++ (byte) irq_cnt -- vbuz1=_inc_vbuz1 + // [566] (byte) irq_cnt ← ++ (byte) irq_cnt -- vbuz1=_inc_vbuz1 inc.z irq_cnt - // [569] if((byte) irq_cnt==(byte) 9) goto sprites_irq::@3 -- vbuz1_eq_vbuc1_then_la1 + // [567] if((byte) irq_cnt==(byte) 9) goto sprites_irq::@3 -- vbuz1_eq_vbuc1_then_la1 lda #9 cmp.z irq_cnt beq __b3 jmp __b6 // sprites_irq::@6 __b6: - // [570] if((byte) irq_cnt==(byte) $a) goto sprites_irq::@4 -- vbuz1_eq_vbuc1_then_la1 + // [568] if((byte) irq_cnt==(byte) $a) goto sprites_irq::@4 -- vbuz1_eq_vbuc1_then_la1 lda #$a cmp.z irq_cnt beq __b4 jmp __b7 // sprites_irq::@7 __b7: - // [571] (byte) irq_raster_next ← (byte) irq_raster_next + (byte) $14 -- vbuz1=vbuz1_plus_vbuc1 + // [569] (byte) irq_raster_next ← (byte) irq_raster_next + (byte) $14 -- vbuz1=vbuz1_plus_vbuc1 lax.z irq_raster_next axs #-[$14] stx.z irq_raster_next - // [572] (byte) irq_sprite_ypos ← (byte) irq_sprite_ypos + (byte) $15 -- vbuz1=vbuz1_plus_vbuc1 + // [570] (byte) irq_sprite_ypos ← (byte) irq_sprite_ypos + (byte) $15 -- vbuz1=vbuz1_plus_vbuc1 lax.z irq_sprite_ypos axs #-[$15] stx.z irq_sprite_ypos - // [573] (byte) irq_sprite_ptr ← (byte) irq_sprite_ptr + (byte) 3 -- vbuz1=vbuz1_plus_vbuc1 + // [571] (byte) irq_sprite_ptr ← (byte) irq_sprite_ptr + (byte) 3 -- vbuz1=vbuz1_plus_vbuc1 lax.z irq_sprite_ptr axs #-[3] stx.z irq_sprite_ptr jmp __b5 // sprites_irq::@5 __b5: - // [574] *((const byte*) RASTER) ← (byte) irq_raster_next -- _deref_pbuc1=vbuz1 + // [572] *((const byte*) RASTER) ← (byte) irq_raster_next -- _deref_pbuc1=vbuz1 // Setup next interrupt lda.z irq_raster_next sta RASTER - // [575] *((const byte*) IRQ_STATUS) ← (const byte) IRQ_RASTER -- _deref_pbuc1=vbuc2 + // [573] *((const byte*) IRQ_STATUS) ← (const byte) IRQ_RASTER -- _deref_pbuc1=vbuc2 // Acknowledge the IRQ and setup the next one lda #IRQ_RASTER sta IRQ_STATUS jmp __breturn // sprites_irq::@return __breturn: - // [576] return - exit interrupt(HARDWARE_CLOBBER) + // [574] return - exit interrupt(HARDWARE_CLOBBER) rega: lda #00 regx: @@ -15445,31 +15423,31 @@ sprites_irq: { rti // sprites_irq::@4 __b4: - // [577] (byte) irq_cnt ← (byte) 0 -- vbuz1=vbuc1 + // [575] (byte) irq_cnt ← (byte) 0 -- vbuz1=vbuc1 lda #0 sta.z irq_cnt - // [578] (byte) irq_raster_next ← (const byte) IRQ_RASTER_FIRST -- vbuz1=vbuc1 + // [576] (byte) irq_raster_next ← (const byte) IRQ_RASTER_FIRST -- vbuz1=vbuc1 lda #IRQ_RASTER_FIRST sta.z irq_raster_next - // [579] (byte) irq_sprite_ypos ← (byte) irq_sprite_ypos + (byte) $15 -- vbuz1=vbuz1_plus_vbuc1 + // [577] (byte) irq_sprite_ypos ← (byte) irq_sprite_ypos + (byte) $15 -- vbuz1=vbuz1_plus_vbuc1 lax.z irq_sprite_ypos axs #-[$15] stx.z irq_sprite_ypos - // [580] (byte) irq_sprite_ptr ← (byte) irq_sprite_ptr + (byte) 3 -- vbuz1=vbuz1_plus_vbuc1 + // [578] (byte) irq_sprite_ptr ← (byte) irq_sprite_ptr + (byte) 3 -- vbuz1=vbuz1_plus_vbuc1 lax.z irq_sprite_ptr axs #-[3] stx.z irq_sprite_ptr jmp __b5 // sprites_irq::@3 __b3: - // [581] (byte) irq_raster_next ← (byte) irq_raster_next + (byte) $15 -- vbuz1=vbuz1_plus_vbuc1 + // [579] (byte) irq_raster_next ← (byte) irq_raster_next + (byte) $15 -- vbuz1=vbuz1_plus_vbuc1 lax.z irq_raster_next axs #-[$15] stx.z irq_raster_next - // [582] (byte) irq_sprite_ypos ← (const byte) SPRITES_FIRST_YPOS -- vbuz1=vbuc1 + // [580] (byte) irq_sprite_ypos ← (const byte) SPRITES_FIRST_YPOS -- vbuz1=vbuc1 lda #SPRITES_FIRST_YPOS sta.z irq_sprite_ypos - // [583] phi from sprites_irq::@3 to sprites_irq::toSpritePtr2 [phi:sprites_irq::@3->sprites_irq::toSpritePtr2] + // [581] phi from sprites_irq::@3 to sprites_irq::toSpritePtr2 [phi:sprites_irq::@3->sprites_irq::toSpritePtr2] toSpritePtr2_from___b3: jmp toSpritePtr2 // sprites_irq::toSpritePtr2 @@ -15477,30 +15455,30 @@ sprites_irq: { jmp __b11 // sprites_irq::@11 __b11: - // [584] (byte) irq_sprite_ptr ← (const byte) sprites_irq::toSpritePtr2_return#0 -- vbuz1=vbuc1 + // [582] (byte) irq_sprite_ptr ← (const byte) sprites_irq::toSpritePtr2_return#0 -- vbuz1=vbuc1 lda #toSpritePtr2_return sta.z irq_sprite_ptr jmp __b5 // sprites_irq::@1 __b1: - // [585] *((const byte*) PLAYFIELD_SPRITE_PTRS_1) ← (byte) sprites_irq::ptr#0 -- _deref_pbuc1=vbuz1 + // [583] *((const byte*) PLAYFIELD_SPRITE_PTRS_1) ← (byte) sprites_irq::ptr#0 -- _deref_pbuc1=vbuz1 lda.z ptr sta PLAYFIELD_SPRITE_PTRS_1 - // [586] (byte) sprites_irq::ptr#1 ← ++ (byte) sprites_irq::ptr#0 -- vbuz1=_inc_vbuz2 + // [584] (byte) sprites_irq::ptr#1 ← ++ (byte) sprites_irq::ptr#0 -- vbuz1=_inc_vbuz2 ldy.z ptr iny sty.z ptr_1 - // [587] *((const byte*) PLAYFIELD_SPRITE_PTRS_1+(byte) 1) ← (byte) sprites_irq::ptr#1 -- _deref_pbuc1=vbuz1 + // [585] *((const byte*) PLAYFIELD_SPRITE_PTRS_1+(byte) 1) ← (byte) sprites_irq::ptr#1 -- _deref_pbuc1=vbuz1 lda.z ptr_1 sta PLAYFIELD_SPRITE_PTRS_1+1 - // [588] *((const byte*) PLAYFIELD_SPRITE_PTRS_1+(byte) 2) ← (byte) sprites_irq::ptr#1 -- _deref_pbuc1=vbuz1 + // [586] *((const byte*) PLAYFIELD_SPRITE_PTRS_1+(byte) 2) ← (byte) sprites_irq::ptr#1 -- _deref_pbuc1=vbuz1 lda.z ptr_1 sta PLAYFIELD_SPRITE_PTRS_1+2 - // [589] (byte) sprites_irq::ptr#2 ← ++ (byte) sprites_irq::ptr#1 -- vbuz1=_inc_vbuz2 + // [587] (byte) sprites_irq::ptr#2 ← ++ (byte) sprites_irq::ptr#1 -- vbuz1=_inc_vbuz2 ldy.z ptr_1 iny sty.z ptr_2 - // [590] *((const byte*) PLAYFIELD_SPRITE_PTRS_1+(byte) 3) ← (byte) sprites_irq::ptr#2 -- _deref_pbuc1=vbuz1 + // [588] *((const byte*) PLAYFIELD_SPRITE_PTRS_1+(byte) 3) ← (byte) sprites_irq::ptr#2 -- _deref_pbuc1=vbuz1 lda.z ptr_2 sta PLAYFIELD_SPRITE_PTRS_1+3 jmp __b2 @@ -15547,6 +15525,20 @@ sprites_irq: { // The initial X/Y for each piece PIECES_START_X: .byte 4, 4, 4, 4, 4, 4, 4 PIECES_START_Y: .byte 1, 1, 1, 1, 1, 0, 1 +PLAYFIELD_SCREEN_ORIGINAL: +// Load chars for the screen + .var screen = LoadBinary("playfield-screen.iscr") + // Load extended colors for the screen + .var extended = LoadBinary("playfield-extended.col") + // screen.get(i)+1 because the charset is loaded into PLAYFIELD_CHARSET+8 + // extended.get(i)-1 because the extended colors are 1-based (1/2/3/4) + // <<6 to move extended colors to the upper 2 bits + .fill screen.getSize(), ( (screen.get(i)+1) | (extended.get(i)-1)<<6 ) + + // Original Color Data +PLAYFIELD_COLORS_ORIGINAL: +.import binary "playfield-screen.col" + // The color #1 to use for the pieces for each level PIECES_COLORS_1: .byte BLUE, GREEN, PURPLE, BLUE, RED, LIGHT_GREEN, RED, BLUE, LIGHT_BLUE, RED, BLUE, GREEN, PURPLE, BLUE, RED, LIGHT_GREEN, RED, BLUE, LIGHT_BLUE, RED, BLUE, GREEN, PURPLE, BLUE, RED, LIGHT_GREEN, RED, BLUE, LIGHT_BLUE, RED // The color #2 to use for the pieces for each level @@ -15574,19 +15566,6 @@ sprites_irq: { .fill 8,$00 // Place a filled char at the start of the charset .import binary "playfield-screen.imap" -.pc = PLAYFIELD_SCREEN_ORIGINAL "PLAYFIELD_SCREEN_ORIGINAL" - // Load chars for the screen - .var screen = LoadBinary("playfield-screen.iscr") - // Load extended colors for the screen - .var extended = LoadBinary("playfield-extended.col") - // screen.get(i)+1 because the charset is loaded into PLAYFIELD_CHARSET+8 - // extended.get(i)-1 because the extended colors are 1-based (1/2/3/4) - // <<6 to move extended colors to the upper 2 bits - .fill screen.getSize(), ( (screen.get(i)+1) | (extended.get(i)-1)<<6 ) - -.pc = PLAYFIELD_COLORS_ORIGINAL "PLAYFIELD_COLORS_ORIGINAL" - .import binary "playfield-screen.col" - .pc = PLAYFIELD_SPRITES "PLAYFIELD_SPRITES" .var sprites = LoadPicture("playfield-sprites.png", List().add($010101, $000000)) // Put the sprites into memory @@ -15607,11 +15586,11 @@ sprites_irq: { REGISTER UPLIFT POTENTIAL REGISTERS Statement [1] (byte) render_screen_showing ← (byte) 0 [ ] ( [ ] ) always clobbers reg byte a Statement [2] (dword) score_bcd ← (dword) 0 [ score_bcd ] ( [ score_bcd ] ) always clobbers reg byte a -Statement [7] (byte) irq_raster_next ← (const byte) IRQ_RASTER_FIRST [ score_bcd ] ( [ score_bcd ] ) always clobbers reg byte a -Statement [8] (byte) irq_sprite_ypos ← (const byte) SPRITES_FIRST_YPOS+(byte) $15 [ score_bcd ] ( [ score_bcd ] ) always clobbers reg byte a -Statement [10] (byte) irq_sprite_ptr ← (const byte) toSpritePtr1_return#0+(byte) 3 [ score_bcd ] ( [ score_bcd ] ) always clobbers reg byte a -Statement [11] (byte) irq_cnt ← (byte) 0 [ score_bcd ] ( [ score_bcd ] ) always clobbers reg byte a -Statement [33] (byte*) current_piece_gfx#111 ← (byte*)*((const word*) PIECES + (byte~) play_spawn_current::$7) [ score_bcd current_ypos#97 current_ypos#6 current_xpos#118 current_xpos#100 current_piece_gfx#111 play_spawn_current::$7 current_piece_char#5 play_spawn_current::piece_idx#2 current_movedown_slow#1 game_over#52 ] ( main:13 [ score_bcd current_ypos#97 current_ypos#6 current_xpos#118 current_xpos#100 current_piece_gfx#111 play_spawn_current::$7 current_piece_char#5 play_spawn_current::piece_idx#2 current_movedown_slow#1 game_over#52 ] ) always clobbers reg byte a +Statement [5] (byte) irq_raster_next ← (const byte) IRQ_RASTER_FIRST [ score_bcd ] ( [ score_bcd ] ) always clobbers reg byte a +Statement [6] (byte) irq_sprite_ypos ← (const byte) SPRITES_FIRST_YPOS+(byte) $15 [ score_bcd ] ( [ score_bcd ] ) always clobbers reg byte a +Statement [8] (byte) irq_sprite_ptr ← (const byte) toSpritePtr1_return#0+(byte) 3 [ score_bcd ] ( [ score_bcd ] ) always clobbers reg byte a +Statement [9] (byte) irq_cnt ← (byte) 0 [ score_bcd ] ( [ score_bcd ] ) always clobbers reg byte a +Statement [31] (byte*) current_piece_gfx#111 ← (byte*)*((const word*) PIECES + (byte~) play_spawn_current::$7) [ score_bcd current_ypos#97 current_ypos#6 current_xpos#118 current_xpos#100 current_piece_gfx#111 play_spawn_current::$7 current_piece_char#5 play_spawn_current::piece_idx#2 current_movedown_slow#1 game_over#52 ] ( main:11 [ score_bcd current_ypos#97 current_ypos#6 current_xpos#118 current_xpos#100 current_piece_gfx#111 play_spawn_current::$7 current_piece_char#5 play_spawn_current::piece_idx#2 current_movedown_slow#1 game_over#52 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:23 [ current_ypos#13 current_ypos#97 current_ypos#98 ] Removing always clobbered register reg byte a as potential for zp[1]:55 [ current_ypos#38 current_ypos#3 current_ypos#11 current_ypos#19 current_ypos#6 ] Removing always clobbered register reg byte a as potential for zp[1]:25 [ current_xpos#59 current_xpos#118 current_xpos#119 ] @@ -15621,9 +15600,9 @@ Removing always clobbered register reg byte a as potential for zp[1]:63 [ curren Removing always clobbered register reg byte a as potential for zp[1]:69 [ next_piece_idx#17 next_piece_idx#30 next_piece_idx#10 next_piece_idx#16 play_spawn_current::piece_idx#2 play_spawn_current::piece_idx#1 ] Removing always clobbered register reg byte a as potential for zp[1]:59 [ current_movedown_slow#37 current_movedown_slow#14 current_movedown_slow#21 current_movedown_slow#1 current_movedown_slow#23 current_movedown_slow#65 current_movedown_slow#10 ] Removing always clobbered register reg byte a as potential for zp[1]:70 [ game_over#65 game_over#27 game_over#10 game_over#15 game_over#52 ] -Statement [38] (byte*) current_piece#101 ← (byte*)*((const word*) PIECES + (byte~) play_spawn_current::$7) [ score_bcd current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 play_spawn_current::piece_idx#2 current_piece#101 current_movedown_slow#1 game_over#52 ] ( main:13 [ score_bcd current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 play_spawn_current::piece_idx#2 current_piece#101 current_movedown_slow#1 game_over#52 ] ) always clobbers reg byte a -Statement [39] (byte*) current_piece_gfx#123 ← (byte*)*((const word*) PIECES + (byte~) play_spawn_current::$7) [ score_bcd current_ypos#6 current_xpos#100 current_piece_char#5 play_spawn_current::piece_idx#2 current_piece#101 current_piece_gfx#123 current_movedown_slow#1 game_over#52 ] ( main:13 [ score_bcd current_ypos#6 current_xpos#100 current_piece_char#5 play_spawn_current::piece_idx#2 current_piece#101 current_piece_gfx#123 current_movedown_slow#1 game_over#52 ] ) always clobbers reg byte a -Statement [41] if(*((const byte*) RASTER)!=(byte) $ff) goto main::@2 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 keyboard_events_size#19 current_movedown_counter#16 lines_bcd#19 level#10 level_bcd#11 ] ( main:13 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 keyboard_events_size#19 current_movedown_counter#16 lines_bcd#19 level#10 level_bcd#11 ] ) always clobbers reg byte a +Statement [36] (byte*) current_piece#101 ← (byte*)*((const word*) PIECES + (byte~) play_spawn_current::$7) [ score_bcd current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 play_spawn_current::piece_idx#2 current_piece#101 current_movedown_slow#1 game_over#52 ] ( main:11 [ score_bcd current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 play_spawn_current::piece_idx#2 current_piece#101 current_movedown_slow#1 game_over#52 ] ) always clobbers reg byte a +Statement [37] (byte*) current_piece_gfx#123 ← (byte*)*((const word*) PIECES + (byte~) play_spawn_current::$7) [ score_bcd current_ypos#6 current_xpos#100 current_piece_char#5 play_spawn_current::piece_idx#2 current_piece#101 current_piece_gfx#123 current_movedown_slow#1 game_over#52 ] ( main:11 [ score_bcd current_ypos#6 current_xpos#100 current_piece_char#5 play_spawn_current::piece_idx#2 current_piece#101 current_piece_gfx#123 current_movedown_slow#1 game_over#52 ] ) always clobbers reg byte a +Statement [39] if(*((const byte*) RASTER)!=(byte) $ff) goto main::@2 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 keyboard_events_size#19 current_movedown_counter#16 lines_bcd#19 level#10 level_bcd#11 ] ( main:11 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 keyboard_events_size#19 current_movedown_counter#16 lines_bcd#19 level#10 level_bcd#11 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:2 [ render_screen_show#16 render_screen_show#13 ] Removing always clobbered register reg byte a as potential for zp[1]:3 [ render_screen_render#18 render_screen_render#11 ] Removing always clobbered register reg byte a as potential for zp[1]:64 [ current_orientation#37 current_orientation#13 current_orientation#17 current_orientation#20 current_orientation#25 current_orientation#7 ] @@ -15631,23 +15610,23 @@ Removing always clobbered register reg byte a as potential for zp[1]:88 [ keyboa Removing always clobbered register reg byte a as potential for zp[1]:4 [ current_movedown_counter#16 current_movedown_counter#14 current_movedown_counter#12 ] Removing always clobbered register reg byte a as potential for zp[1]:58 [ level#33 level#10 level#17 level#19 level#21 ] Removing always clobbered register reg byte a as potential for zp[1]:60 [ level_bcd#31 level_bcd#11 level_bcd#17 level_bcd#19 level_bcd#62 level_bcd#21 level_bcd#8 ] -Statement [62] (byte*) current_piece_gfx#112 ← (byte*) current_piece_gfx#18 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 current_ypos#98 render_screen_render#64 current_xpos#119 current_piece_gfx#112 ] ( main:13 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 current_ypos#98 render_screen_render#64 current_xpos#119 current_piece_gfx#112 ] ) always clobbers reg byte a +Statement [60] (byte*) current_piece_gfx#112 ← (byte*) current_piece_gfx#18 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 current_ypos#98 render_screen_render#64 current_xpos#119 current_piece_gfx#112 ] ( main:11 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 current_ypos#98 render_screen_render#64 current_xpos#119 current_piece_gfx#112 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:24 [ render_screen_render#33 render_screen_render#64 ] -Statement [72] (byte) render_screen_render#11 ← (byte) render_screen_render#18 ^ (byte) $20 [ render_screen_show#16 render_screen_render#11 ] ( main:13::render_screen_swap:71 [ score_bcd current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 render_screen_show#16 render_screen_render#11 ] ) always clobbers reg byte a -Statement [73] (byte) render_screen_show#13 ← (byte) render_screen_show#16 ^ (byte) $20 [ render_screen_show#13 render_screen_render#11 ] ( main:13::render_screen_swap:71 [ score_bcd current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 render_screen_show#13 render_screen_render#11 ] ) always clobbers reg byte a -Statement [78] (byte*) render_bcd::screen#0 ← (byte*) render_score::screen#3 [ render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::screen#0 ] ( main:13::render_score:69 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::screen#0 ] ) always clobbers reg byte a -Statement [81] (byte*) render_bcd::screen#1 ← (byte*) render_score::screen#3 [ render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::screen#1 ] ( main:13::render_score:69 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::screen#1 ] ) always clobbers reg byte a -Statement [84] (byte*) render_bcd::screen#2 ← (byte*) render_score::screen#3 [ render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::screen#2 ] ( main:13::render_score:69 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::screen#2 ] ) always clobbers reg byte a -Statement [87] (byte) render_bcd::bcd#3 ← > (word) lines_bcd#15 [ render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::bcd#3 ] ( main:13::render_score:69 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::bcd#3 ] ) always clobbers reg byte a -Statement [88] (byte*) render_bcd::screen#3 ← (byte*) render_score::screen#3 [ render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::bcd#3 render_bcd::screen#3 ] ( main:13::render_score:69 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::bcd#3 render_bcd::screen#3 ] ) always clobbers reg byte a +Statement [70] (byte) render_screen_render#11 ← (byte) render_screen_render#18 ^ (byte) $20 [ render_screen_show#16 render_screen_render#11 ] ( main:11::render_screen_swap:69 [ score_bcd current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 render_screen_show#16 render_screen_render#11 ] ) always clobbers reg byte a +Statement [71] (byte) render_screen_show#13 ← (byte) render_screen_show#16 ^ (byte) $20 [ render_screen_show#13 render_screen_render#11 ] ( main:11::render_screen_swap:69 [ score_bcd current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 render_screen_show#13 render_screen_render#11 ] ) always clobbers reg byte a +Statement [76] (byte*) render_bcd::screen#0 ← (byte*) render_score::screen#3 [ render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::screen#0 ] ( main:11::render_score:67 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::screen#0 ] ) always clobbers reg byte a +Statement [79] (byte*) render_bcd::screen#1 ← (byte*) render_score::screen#3 [ render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::screen#1 ] ( main:11::render_score:67 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::screen#1 ] ) always clobbers reg byte a +Statement [82] (byte*) render_bcd::screen#2 ← (byte*) render_score::screen#3 [ render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::screen#2 ] ( main:11::render_score:67 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::screen#2 ] ) always clobbers reg byte a +Statement [85] (byte) render_bcd::bcd#3 ← > (word) lines_bcd#15 [ render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::bcd#3 ] ( main:11::render_score:67 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::bcd#3 ] ) always clobbers reg byte a +Statement [86] (byte*) render_bcd::screen#3 ← (byte*) render_score::screen#3 [ render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::bcd#3 render_bcd::screen#3 ] ( main:11::render_score:67 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::bcd#3 render_bcd::screen#3 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:12 [ render_bcd::bcd#6 render_bcd::bcd#0 render_bcd::bcd#1 render_bcd::bcd#2 render_bcd::bcd#3 render_bcd::bcd#4 render_bcd::bcd#5 ] -Statement [90] (byte) render_bcd::bcd#4 ← < (word) lines_bcd#15 [ render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::bcd#4 ] ( main:13::render_score:69 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::bcd#4 ] ) always clobbers reg byte a -Statement [91] (byte*) render_bcd::screen#4 ← (byte*) render_score::screen#3 [ render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::bcd#4 render_bcd::screen#4 ] ( main:13::render_score:69 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::bcd#4 render_bcd::screen#4 ] ) always clobbers reg byte a -Statement [93] (byte*) render_bcd::screen#5 ← (byte*) render_score::screen#3 [ render_screen_render#18 lines_bcd#15 level_bcd#17 render_bcd::screen#5 ] ( main:13::render_score:69 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_bcd::screen#5 ] ) always clobbers reg byte a -Statement [98] (byte*) render_bcd::screen_pos#0 ← (byte*) render_bcd::screen#6 + (word) render_bcd::offset#6 [ render_bcd::only_low#6 render_bcd::bcd#6 render_bcd::screen_pos#0 ] ( main:13::render_score:69::render_bcd:80 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::only_low#6 render_bcd::bcd#6 render_bcd::screen_pos#0 ] main:13::render_score:69::render_bcd:83 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::only_low#6 render_bcd::bcd#6 render_bcd::screen_pos#0 ] main:13::render_score:69::render_bcd:86 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::only_low#6 render_bcd::bcd#6 render_bcd::screen_pos#0 ] main:13::render_score:69::render_bcd:89 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::only_low#6 render_bcd::bcd#6 render_bcd::screen_pos#0 ] main:13::render_score:69::render_bcd:92 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::only_low#6 render_bcd::bcd#6 render_bcd::screen_pos#0 ] main:13::render_score:69::render_bcd:95 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_bcd::only_low#6 render_bcd::bcd#6 render_bcd::screen_pos#0 ] ) always clobbers reg byte a +Statement [88] (byte) render_bcd::bcd#4 ← < (word) lines_bcd#15 [ render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::bcd#4 ] ( main:11::render_score:67 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::bcd#4 ] ) always clobbers reg byte a +Statement [89] (byte*) render_bcd::screen#4 ← (byte*) render_score::screen#3 [ render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::bcd#4 render_bcd::screen#4 ] ( main:11::render_score:67 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::bcd#4 render_bcd::screen#4 ] ) always clobbers reg byte a +Statement [91] (byte*) render_bcd::screen#5 ← (byte*) render_score::screen#3 [ render_screen_render#18 lines_bcd#15 level_bcd#17 render_bcd::screen#5 ] ( main:11::render_score:67 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_bcd::screen#5 ] ) always clobbers reg byte a +Statement [96] (byte*) render_bcd::screen_pos#0 ← (byte*) render_bcd::screen#6 + (word) render_bcd::offset#6 [ render_bcd::only_low#6 render_bcd::bcd#6 render_bcd::screen_pos#0 ] ( main:11::render_score:67::render_bcd:78 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::only_low#6 render_bcd::bcd#6 render_bcd::screen_pos#0 ] main:11::render_score:67::render_bcd:81 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::only_low#6 render_bcd::bcd#6 render_bcd::screen_pos#0 ] main:11::render_score:67::render_bcd:84 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::only_low#6 render_bcd::bcd#6 render_bcd::screen_pos#0 ] main:11::render_score:67::render_bcd:87 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::only_low#6 render_bcd::bcd#6 render_bcd::screen_pos#0 ] main:11::render_score:67::render_bcd:90 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::only_low#6 render_bcd::bcd#6 render_bcd::screen_pos#0 ] main:11::render_score:67::render_bcd:93 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_bcd::only_low#6 render_bcd::bcd#6 render_bcd::screen_pos#0 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:11 [ render_bcd::only_low#6 ] -Statement [100] (byte~) render_bcd::$5 ← (byte) render_bcd::bcd#6 >> (byte) 4 [ render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$5 ] ( main:13::render_score:69::render_bcd:80 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$5 ] main:13::render_score:69::render_bcd:83 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$5 ] main:13::render_score:69::render_bcd:86 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$5 ] main:13::render_score:69::render_bcd:89 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$5 ] main:13::render_score:69::render_bcd:92 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$5 ] main:13::render_score:69::render_bcd:95 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$5 ] ) always clobbers reg byte a -Statement [102] *((byte*) render_bcd::screen_pos#0) ← (byte~) render_bcd::$6 [ render_bcd::bcd#6 render_bcd::screen_pos#0 ] ( main:13::render_score:69::render_bcd:80 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::bcd#6 render_bcd::screen_pos#0 ] main:13::render_score:69::render_bcd:83 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::bcd#6 render_bcd::screen_pos#0 ] main:13::render_score:69::render_bcd:86 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::bcd#6 render_bcd::screen_pos#0 ] main:13::render_score:69::render_bcd:89 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::bcd#6 render_bcd::screen_pos#0 ] main:13::render_score:69::render_bcd:92 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::bcd#6 render_bcd::screen_pos#0 ] main:13::render_score:69::render_bcd:95 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_bcd::bcd#6 render_bcd::screen_pos#0 ] ) always clobbers reg byte y +Statement [98] (byte~) render_bcd::$5 ← (byte) render_bcd::bcd#6 >> (byte) 4 [ render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$5 ] ( main:11::render_score:67::render_bcd:78 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$5 ] main:11::render_score:67::render_bcd:81 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$5 ] main:11::render_score:67::render_bcd:84 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$5 ] main:11::render_score:67::render_bcd:87 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$5 ] main:11::render_score:67::render_bcd:90 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$5 ] main:11::render_score:67::render_bcd:93 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$5 ] ) always clobbers reg byte a +Statement [100] *((byte*) render_bcd::screen_pos#0) ← (byte~) render_bcd::$6 [ render_bcd::bcd#6 render_bcd::screen_pos#0 ] ( main:11::render_score:67::render_bcd:78 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::bcd#6 render_bcd::screen_pos#0 ] main:11::render_score:67::render_bcd:81 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::bcd#6 render_bcd::screen_pos#0 ] main:11::render_score:67::render_bcd:84 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::bcd#6 render_bcd::screen_pos#0 ] main:11::render_score:67::render_bcd:87 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::bcd#6 render_bcd::screen_pos#0 ] main:11::render_score:67::render_bcd:90 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::bcd#6 render_bcd::screen_pos#0 ] main:11::render_score:67::render_bcd:93 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_bcd::bcd#6 render_bcd::screen_pos#0 ] ) always clobbers reg byte y Removing always clobbered register reg byte y as potential for zp[1]:2 [ render_screen_show#16 render_screen_show#13 ] Removing always clobbered register reg byte y as potential for zp[1]:59 [ current_movedown_slow#37 current_movedown_slow#14 current_movedown_slow#21 current_movedown_slow#1 current_movedown_slow#23 current_movedown_slow#65 current_movedown_slow#10 ] Removing always clobbered register reg byte y as potential for zp[1]:63 [ current_piece_char#29 current_piece_char#10 current_piece_char#16 current_piece_char#5 ] @@ -15662,88 +15641,88 @@ Removing always clobbered register reg byte y as potential for zp[1]:58 [ level# Removing always clobbered register reg byte y as potential for zp[1]:3 [ render_screen_render#18 render_screen_render#11 ] Removing always clobbered register reg byte y as potential for zp[1]:60 [ level_bcd#31 level_bcd#11 level_bcd#17 level_bcd#19 level_bcd#62 level_bcd#21 level_bcd#8 ] Removing always clobbered register reg byte y as potential for zp[1]:12 [ render_bcd::bcd#6 render_bcd::bcd#0 render_bcd::bcd#1 render_bcd::bcd#2 render_bcd::bcd#3 render_bcd::bcd#4 render_bcd::bcd#5 ] -Statement [105] (byte~) render_bcd::$3 ← (byte) render_bcd::bcd#6 & (byte) $f [ render_bcd::screen_pos#3 render_bcd::$3 ] ( main:13::render_score:69::render_bcd:80 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::screen_pos#3 render_bcd::$3 ] main:13::render_score:69::render_bcd:83 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::screen_pos#3 render_bcd::$3 ] main:13::render_score:69::render_bcd:86 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::screen_pos#3 render_bcd::$3 ] main:13::render_score:69::render_bcd:89 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::screen_pos#3 render_bcd::$3 ] main:13::render_score:69::render_bcd:92 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::screen_pos#3 render_bcd::$3 ] main:13::render_score:69::render_bcd:95 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_bcd::screen_pos#3 render_bcd::$3 ] ) always clobbers reg byte a -Statement [107] *((byte*) render_bcd::screen_pos#3) ← (byte~) render_bcd::$4 [ ] ( main:13::render_score:69::render_bcd:80 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 ] main:13::render_score:69::render_bcd:83 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 ] main:13::render_score:69::render_bcd:86 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 ] main:13::render_score:69::render_bcd:89 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 ] main:13::render_score:69::render_bcd:92 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 ] main:13::render_score:69::render_bcd:95 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 ] ) always clobbers reg byte y -Statement [113] (byte~) render_next::$6 ← (byte) next_piece_idx#12 << (byte) 1 [ next_piece_idx#12 render_next::screen_next_area#11 render_next::$6 ] ( main:13::render_next:37 [ score_bcd current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 play_spawn_current::piece_idx#2 current_movedown_slow#1 game_over#52 next_piece_idx#12 render_next::screen_next_area#11 render_next::$6 ] main:13::render_next:67 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 next_piece_idx#12 render_next::screen_next_area#11 render_next::$6 ] ) always clobbers reg byte a +Statement [103] (byte~) render_bcd::$3 ← (byte) render_bcd::bcd#6 & (byte) $f [ render_bcd::screen_pos#3 render_bcd::$3 ] ( main:11::render_score:67::render_bcd:78 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::screen_pos#3 render_bcd::$3 ] main:11::render_score:67::render_bcd:81 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::screen_pos#3 render_bcd::$3 ] main:11::render_score:67::render_bcd:84 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::screen_pos#3 render_bcd::$3 ] main:11::render_score:67::render_bcd:87 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::screen_pos#3 render_bcd::$3 ] main:11::render_score:67::render_bcd:90 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::screen_pos#3 render_bcd::$3 ] main:11::render_score:67::render_bcd:93 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_bcd::screen_pos#3 render_bcd::$3 ] ) always clobbers reg byte a +Statement [105] *((byte*) render_bcd::screen_pos#3) ← (byte~) render_bcd::$4 [ ] ( main:11::render_score:67::render_bcd:78 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 ] main:11::render_score:67::render_bcd:81 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 ] main:11::render_score:67::render_bcd:84 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 ] main:11::render_score:67::render_bcd:87 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 ] main:11::render_score:67::render_bcd:90 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 ] main:11::render_score:67::render_bcd:93 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 ] ) always clobbers reg byte y +Statement [111] (byte~) render_next::$6 ← (byte) next_piece_idx#12 << (byte) 1 [ next_piece_idx#12 render_next::screen_next_area#11 render_next::$6 ] ( main:11::render_next:35 [ score_bcd current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 play_spawn_current::piece_idx#2 current_movedown_slow#1 game_over#52 next_piece_idx#12 render_next::screen_next_area#11 render_next::$6 ] main:11::render_next:65 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 next_piece_idx#12 render_next::screen_next_area#11 render_next::$6 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:16 [ next_piece_idx#12 next_piece_idx#76 next_piece_idx#77 ] -Statement [115] (byte*) render_next::next_piece_gfx#9 ← (byte*)*((const word*) PIECES + (byte~) render_next::$6) [ render_next::screen_next_area#11 render_next::next_piece_char#0 render_next::next_piece_gfx#9 ] ( main:13::render_next:37 [ score_bcd current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 play_spawn_current::piece_idx#2 current_movedown_slow#1 game_over#52 render_next::screen_next_area#11 render_next::next_piece_char#0 render_next::next_piece_gfx#9 ] main:13::render_next:67 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 render_next::screen_next_area#11 render_next::next_piece_char#0 render_next::next_piece_gfx#9 ] ) always clobbers reg byte a +Statement [113] (byte*) render_next::next_piece_gfx#9 ← (byte*)*((const word*) PIECES + (byte~) render_next::$6) [ render_next::screen_next_area#11 render_next::next_piece_char#0 render_next::next_piece_gfx#9 ] ( main:11::render_next:35 [ score_bcd current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 play_spawn_current::piece_idx#2 current_movedown_slow#1 game_over#52 render_next::screen_next_area#11 render_next::next_piece_char#0 render_next::next_piece_gfx#9 ] main:11::render_next:65 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 render_next::screen_next_area#11 render_next::next_piece_char#0 render_next::next_piece_gfx#9 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:131 [ render_next::next_piece_char#0 ] -Statement [118] (byte) render_next::cell#0 ← *((byte*) render_next::next_piece_gfx#2) [ render_next::next_piece_char#0 render_next::l#7 render_next::next_piece_gfx#2 render_next::screen_next_area#5 render_next::c#2 render_next::cell#0 ] ( main:13::render_next:37 [ score_bcd current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 play_spawn_current::piece_idx#2 current_movedown_slow#1 game_over#52 render_next::next_piece_char#0 render_next::l#7 render_next::next_piece_gfx#2 render_next::screen_next_area#5 render_next::c#2 render_next::cell#0 ] main:13::render_next:67 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 render_next::next_piece_char#0 render_next::l#7 render_next::next_piece_gfx#2 render_next::screen_next_area#5 render_next::c#2 render_next::cell#0 ] ) always clobbers reg byte a reg byte y +Statement [116] (byte) render_next::cell#0 ← *((byte*) render_next::next_piece_gfx#2) [ render_next::next_piece_char#0 render_next::l#7 render_next::next_piece_gfx#2 render_next::screen_next_area#5 render_next::c#2 render_next::cell#0 ] ( main:11::render_next:35 [ score_bcd current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 play_spawn_current::piece_idx#2 current_movedown_slow#1 game_over#52 render_next::next_piece_char#0 render_next::l#7 render_next::next_piece_gfx#2 render_next::screen_next_area#5 render_next::c#2 render_next::cell#0 ] main:11::render_next:65 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 render_next::next_piece_char#0 render_next::l#7 render_next::next_piece_gfx#2 render_next::screen_next_area#5 render_next::c#2 render_next::cell#0 ] ) always clobbers reg byte a reg byte y Removing always clobbered register reg byte y as potential for zp[1]:172 [ play_spawn_current::$7 ] Removing always clobbered register reg byte y as potential for zp[1]:131 [ render_next::next_piece_char#0 ] Removing always clobbered register reg byte a as potential for zp[1]:17 [ render_next::l#7 render_next::l#1 ] Removing always clobbered register reg byte y as potential for zp[1]:17 [ render_next::l#7 render_next::l#1 ] Removing always clobbered register reg byte a as potential for zp[1]:22 [ render_next::c#2 render_next::c#1 ] Removing always clobbered register reg byte y as potential for zp[1]:22 [ render_next::c#2 render_next::c#1 ] -Statement [121] *((byte*) render_next::screen_next_area#5) ← (byte) 0 [ render_next::next_piece_char#0 render_next::l#7 render_next::next_piece_gfx#1 render_next::screen_next_area#5 render_next::c#2 ] ( main:13::render_next:37 [ score_bcd current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 play_spawn_current::piece_idx#2 current_movedown_slow#1 game_over#52 render_next::next_piece_char#0 render_next::l#7 render_next::next_piece_gfx#1 render_next::screen_next_area#5 render_next::c#2 ] main:13::render_next:67 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 render_next::next_piece_char#0 render_next::l#7 render_next::next_piece_gfx#1 render_next::screen_next_area#5 render_next::c#2 ] ) always clobbers reg byte a reg byte y -Statement [125] (byte*) render_next::screen_next_area#4 ← (byte*) render_next::screen_next_area#3 + (byte) $24 [ render_next::next_piece_char#0 render_next::l#7 render_next::next_piece_gfx#1 render_next::screen_next_area#4 ] ( main:13::render_next:37 [ score_bcd current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 play_spawn_current::piece_idx#2 current_movedown_slow#1 game_over#52 render_next::next_piece_char#0 render_next::l#7 render_next::next_piece_gfx#1 render_next::screen_next_area#4 ] main:13::render_next:67 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 render_next::next_piece_char#0 render_next::l#7 render_next::next_piece_gfx#1 render_next::screen_next_area#4 ] ) always clobbers reg byte a -Statement [129] *((byte*) render_next::screen_next_area#5) ← (byte) render_next::next_piece_char#0 [ render_next::next_piece_char#0 render_next::l#7 render_next::next_piece_gfx#1 render_next::screen_next_area#5 render_next::c#2 ] ( main:13::render_next:37 [ score_bcd current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 play_spawn_current::piece_idx#2 current_movedown_slow#1 game_over#52 render_next::next_piece_char#0 render_next::l#7 render_next::next_piece_gfx#1 render_next::screen_next_area#5 render_next::c#2 ] main:13::render_next:67 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 render_next::next_piece_char#0 render_next::l#7 render_next::next_piece_gfx#1 render_next::screen_next_area#5 render_next::c#2 ] ) always clobbers reg byte a reg byte y -Statement [134] (byte) render_moving::i#1 ← (byte) render_moving::i#3 + (byte) 4 [ render_screen_render#33 current_xpos#59 current_piece_gfx#64 current_piece_char#68 render_moving::ypos#2 render_moving::l#4 render_moving::i#1 ] ( main:13::render_moving:35 [ score_bcd current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 play_spawn_current::piece_idx#2 current_movedown_slow#1 game_over#52 render_screen_render#33 current_xpos#59 current_piece_gfx#64 current_piece_char#68 render_moving::ypos#2 render_moving::l#4 render_moving::i#1 ] main:13::render_moving:64 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 render_screen_render#33 current_xpos#59 current_piece_gfx#64 current_piece_char#68 render_moving::ypos#2 render_moving::l#4 render_moving::i#1 ] ) always clobbers reg byte a +Statement [119] *((byte*) render_next::screen_next_area#5) ← (byte) 0 [ render_next::next_piece_char#0 render_next::l#7 render_next::next_piece_gfx#1 render_next::screen_next_area#5 render_next::c#2 ] ( main:11::render_next:35 [ score_bcd current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 play_spawn_current::piece_idx#2 current_movedown_slow#1 game_over#52 render_next::next_piece_char#0 render_next::l#7 render_next::next_piece_gfx#1 render_next::screen_next_area#5 render_next::c#2 ] main:11::render_next:65 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 render_next::next_piece_char#0 render_next::l#7 render_next::next_piece_gfx#1 render_next::screen_next_area#5 render_next::c#2 ] ) always clobbers reg byte a reg byte y +Statement [123] (byte*) render_next::screen_next_area#4 ← (byte*) render_next::screen_next_area#3 + (byte) $24 [ render_next::next_piece_char#0 render_next::l#7 render_next::next_piece_gfx#1 render_next::screen_next_area#4 ] ( main:11::render_next:35 [ score_bcd current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 play_spawn_current::piece_idx#2 current_movedown_slow#1 game_over#52 render_next::next_piece_char#0 render_next::l#7 render_next::next_piece_gfx#1 render_next::screen_next_area#4 ] main:11::render_next:65 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 render_next::next_piece_char#0 render_next::l#7 render_next::next_piece_gfx#1 render_next::screen_next_area#4 ] ) always clobbers reg byte a +Statement [127] *((byte*) render_next::screen_next_area#5) ← (byte) render_next::next_piece_char#0 [ render_next::next_piece_char#0 render_next::l#7 render_next::next_piece_gfx#1 render_next::screen_next_area#5 render_next::c#2 ] ( main:11::render_next:35 [ score_bcd current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 play_spawn_current::piece_idx#2 current_movedown_slow#1 game_over#52 render_next::next_piece_char#0 render_next::l#7 render_next::next_piece_gfx#1 render_next::screen_next_area#5 render_next::c#2 ] main:11::render_next:65 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 render_next::next_piece_char#0 render_next::l#7 render_next::next_piece_gfx#1 render_next::screen_next_area#5 render_next::c#2 ] ) always clobbers reg byte a reg byte y +Statement [132] (byte) render_moving::i#1 ← (byte) render_moving::i#3 + (byte) 4 [ render_screen_render#33 current_xpos#59 current_piece_gfx#64 current_piece_char#68 render_moving::ypos#2 render_moving::l#4 render_moving::i#1 ] ( main:11::render_moving:33 [ score_bcd current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 play_spawn_current::piece_idx#2 current_movedown_slow#1 game_over#52 render_screen_render#33 current_xpos#59 current_piece_gfx#64 current_piece_char#68 render_moving::ypos#2 render_moving::l#4 render_moving::i#1 ] main:11::render_moving:62 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 render_screen_render#33 current_xpos#59 current_piece_gfx#64 current_piece_char#68 render_moving::ypos#2 render_moving::l#4 render_moving::i#1 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:28 [ current_piece_char#68 current_piece_char#99 current_piece_char#100 ] Removing always clobbered register reg byte a as potential for zp[1]:29 [ render_moving::ypos#2 render_moving::ypos#0 render_moving::ypos#1 ] Removing always clobbered register reg byte a as potential for zp[1]:30 [ render_moving::l#4 render_moving::l#1 ] -Statement [140] (byte~) render_moving::$1 ← (byte) render_screen_render#33 + (byte) render_moving::ypos#2 [ render_screen_render#33 current_xpos#59 current_piece_gfx#64 current_piece_char#68 render_moving::ypos#2 render_moving::i#3 render_moving::l#4 render_moving::$1 ] ( main:13::render_moving:35 [ score_bcd current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 play_spawn_current::piece_idx#2 current_movedown_slow#1 game_over#52 render_screen_render#33 current_xpos#59 current_piece_gfx#64 current_piece_char#68 render_moving::ypos#2 render_moving::i#3 render_moving::l#4 render_moving::$1 ] main:13::render_moving:64 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 render_screen_render#33 current_xpos#59 current_piece_gfx#64 current_piece_char#68 render_moving::ypos#2 render_moving::i#3 render_moving::l#4 render_moving::$1 ] ) always clobbers reg byte a +Statement [138] (byte~) render_moving::$1 ← (byte) render_screen_render#33 + (byte) render_moving::ypos#2 [ render_screen_render#33 current_xpos#59 current_piece_gfx#64 current_piece_char#68 render_moving::ypos#2 render_moving::i#3 render_moving::l#4 render_moving::$1 ] ( main:11::render_moving:33 [ score_bcd current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 play_spawn_current::piece_idx#2 current_movedown_slow#1 game_over#52 render_screen_render#33 current_xpos#59 current_piece_gfx#64 current_piece_char#68 render_moving::ypos#2 render_moving::i#3 render_moving::l#4 render_moving::$1 ] main:11::render_moving:62 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 render_screen_render#33 current_xpos#59 current_piece_gfx#64 current_piece_char#68 render_moving::ypos#2 render_moving::i#3 render_moving::l#4 render_moving::$1 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:31 [ render_moving::i#4 render_moving::i#3 render_moving::i#8 render_moving::i#2 render_moving::i#1 ] -Statement [141] (byte~) render_moving::$6 ← (byte~) render_moving::$1 << (byte) 1 [ render_screen_render#33 current_xpos#59 current_piece_gfx#64 current_piece_char#68 render_moving::ypos#2 render_moving::i#3 render_moving::l#4 render_moving::$6 ] ( main:13::render_moving:35 [ score_bcd current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 play_spawn_current::piece_idx#2 current_movedown_slow#1 game_over#52 render_screen_render#33 current_xpos#59 current_piece_gfx#64 current_piece_char#68 render_moving::ypos#2 render_moving::i#3 render_moving::l#4 render_moving::$6 ] main:13::render_moving:64 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 render_screen_render#33 current_xpos#59 current_piece_gfx#64 current_piece_char#68 render_moving::ypos#2 render_moving::i#3 render_moving::l#4 render_moving::$6 ] ) always clobbers reg byte a -Statement [142] (byte*) render_moving::screen_line#0 ← *((const byte**) screen_lines_1 + (byte~) render_moving::$6) [ render_screen_render#33 current_xpos#59 current_piece_gfx#64 current_piece_char#68 render_moving::ypos#2 render_moving::i#3 render_moving::l#4 render_moving::screen_line#0 ] ( main:13::render_moving:35 [ score_bcd current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 play_spawn_current::piece_idx#2 current_movedown_slow#1 game_over#52 render_screen_render#33 current_xpos#59 current_piece_gfx#64 current_piece_char#68 render_moving::ypos#2 render_moving::i#3 render_moving::l#4 render_moving::screen_line#0 ] main:13::render_moving:64 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 render_screen_render#33 current_xpos#59 current_piece_gfx#64 current_piece_char#68 render_moving::ypos#2 render_moving::i#3 render_moving::l#4 render_moving::screen_line#0 ] ) always clobbers reg byte a -Statement [145] (byte) render_moving::current_cell#0 ← *((byte*) current_piece_gfx#64 + (byte) render_moving::i#4) [ render_screen_render#33 current_xpos#59 current_piece_gfx#64 current_piece_char#68 render_moving::ypos#2 render_moving::l#4 render_moving::screen_line#0 render_moving::i#4 render_moving::xpos#2 render_moving::c#2 render_moving::current_cell#0 ] ( main:13::render_moving:35 [ score_bcd current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 play_spawn_current::piece_idx#2 current_movedown_slow#1 game_over#52 render_screen_render#33 current_xpos#59 current_piece_gfx#64 current_piece_char#68 render_moving::ypos#2 render_moving::l#4 render_moving::screen_line#0 render_moving::i#4 render_moving::xpos#2 render_moving::c#2 render_moving::current_cell#0 ] main:13::render_moving:64 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 render_screen_render#33 current_xpos#59 current_piece_gfx#64 current_piece_char#68 render_moving::ypos#2 render_moving::l#4 render_moving::screen_line#0 render_moving::i#4 render_moving::xpos#2 render_moving::c#2 render_moving::current_cell#0 ] ) always clobbers reg byte a +Statement [139] (byte~) render_moving::$6 ← (byte~) render_moving::$1 << (byte) 1 [ render_screen_render#33 current_xpos#59 current_piece_gfx#64 current_piece_char#68 render_moving::ypos#2 render_moving::i#3 render_moving::l#4 render_moving::$6 ] ( main:11::render_moving:33 [ score_bcd current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 play_spawn_current::piece_idx#2 current_movedown_slow#1 game_over#52 render_screen_render#33 current_xpos#59 current_piece_gfx#64 current_piece_char#68 render_moving::ypos#2 render_moving::i#3 render_moving::l#4 render_moving::$6 ] main:11::render_moving:62 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 render_screen_render#33 current_xpos#59 current_piece_gfx#64 current_piece_char#68 render_moving::ypos#2 render_moving::i#3 render_moving::l#4 render_moving::$6 ] ) always clobbers reg byte a +Statement [140] (byte*) render_moving::screen_line#0 ← *((const byte**) screen_lines_1 + (byte~) render_moving::$6) [ render_screen_render#33 current_xpos#59 current_piece_gfx#64 current_piece_char#68 render_moving::ypos#2 render_moving::i#3 render_moving::l#4 render_moving::screen_line#0 ] ( main:11::render_moving:33 [ score_bcd current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 play_spawn_current::piece_idx#2 current_movedown_slow#1 game_over#52 render_screen_render#33 current_xpos#59 current_piece_gfx#64 current_piece_char#68 render_moving::ypos#2 render_moving::i#3 render_moving::l#4 render_moving::screen_line#0 ] main:11::render_moving:62 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 render_screen_render#33 current_xpos#59 current_piece_gfx#64 current_piece_char#68 render_moving::ypos#2 render_moving::i#3 render_moving::l#4 render_moving::screen_line#0 ] ) always clobbers reg byte a +Statement [143] (byte) render_moving::current_cell#0 ← *((byte*) current_piece_gfx#64 + (byte) render_moving::i#4) [ render_screen_render#33 current_xpos#59 current_piece_gfx#64 current_piece_char#68 render_moving::ypos#2 render_moving::l#4 render_moving::screen_line#0 render_moving::i#4 render_moving::xpos#2 render_moving::c#2 render_moving::current_cell#0 ] ( main:11::render_moving:33 [ score_bcd current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 play_spawn_current::piece_idx#2 current_movedown_slow#1 game_over#52 render_screen_render#33 current_xpos#59 current_piece_gfx#64 current_piece_char#68 render_moving::ypos#2 render_moving::l#4 render_moving::screen_line#0 render_moving::i#4 render_moving::xpos#2 render_moving::c#2 render_moving::current_cell#0 ] main:11::render_moving:62 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 render_screen_render#33 current_xpos#59 current_piece_gfx#64 current_piece_char#68 render_moving::ypos#2 render_moving::l#4 render_moving::screen_line#0 render_moving::i#4 render_moving::xpos#2 render_moving::c#2 render_moving::current_cell#0 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:32 [ render_moving::xpos#2 render_moving::xpos#0 render_moving::xpos#1 ] Removing always clobbered register reg byte a as potential for zp[1]:33 [ render_moving::c#2 render_moving::c#1 ] -Statement [148] *((byte*) render_moving::screen_line#0 + (byte) render_moving::xpos#2) ← (byte) current_piece_char#68 [ render_screen_render#33 current_xpos#59 current_piece_gfx#64 current_piece_char#68 render_moving::ypos#2 render_moving::l#4 render_moving::i#2 render_moving::screen_line#0 render_moving::xpos#2 render_moving::c#2 ] ( main:13::render_moving:35 [ score_bcd current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 play_spawn_current::piece_idx#2 current_movedown_slow#1 game_over#52 render_screen_render#33 current_xpos#59 current_piece_gfx#64 current_piece_char#68 render_moving::ypos#2 render_moving::l#4 render_moving::i#2 render_moving::screen_line#0 render_moving::xpos#2 render_moving::c#2 ] main:13::render_moving:64 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 render_screen_render#33 current_xpos#59 current_piece_gfx#64 current_piece_char#68 render_moving::ypos#2 render_moving::l#4 render_moving::i#2 render_moving::screen_line#0 render_moving::xpos#2 render_moving::c#2 ] ) always clobbers reg byte a -Statement [154] (byte~) render_playfield::$0 ← (byte) render_screen_render#22 + (byte) render_playfield::l#2 [ render_screen_render#22 render_playfield::l#2 render_playfield::i#3 render_playfield::$0 ] ( main:13::render_playfield:30 [ score_bcd current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 play_spawn_current::piece_idx#2 current_movedown_slow#1 game_over#52 render_screen_render#22 render_playfield::l#2 render_playfield::i#3 render_playfield::$0 ] main:13::render_playfield:58 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 render_screen_render#22 render_playfield::l#2 render_playfield::i#3 render_playfield::$0 ] ) always clobbers reg byte a +Statement [146] *((byte*) render_moving::screen_line#0 + (byte) render_moving::xpos#2) ← (byte) current_piece_char#68 [ render_screen_render#33 current_xpos#59 current_piece_gfx#64 current_piece_char#68 render_moving::ypos#2 render_moving::l#4 render_moving::i#2 render_moving::screen_line#0 render_moving::xpos#2 render_moving::c#2 ] ( main:11::render_moving:33 [ score_bcd current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 play_spawn_current::piece_idx#2 current_movedown_slow#1 game_over#52 render_screen_render#33 current_xpos#59 current_piece_gfx#64 current_piece_char#68 render_moving::ypos#2 render_moving::l#4 render_moving::i#2 render_moving::screen_line#0 render_moving::xpos#2 render_moving::c#2 ] main:11::render_moving:62 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 render_screen_render#33 current_xpos#59 current_piece_gfx#64 current_piece_char#68 render_moving::ypos#2 render_moving::l#4 render_moving::i#2 render_moving::screen_line#0 render_moving::xpos#2 render_moving::c#2 ] ) always clobbers reg byte a +Statement [152] (byte~) render_playfield::$0 ← (byte) render_screen_render#22 + (byte) render_playfield::l#2 [ render_screen_render#22 render_playfield::l#2 render_playfield::i#3 render_playfield::$0 ] ( main:11::render_playfield:28 [ score_bcd current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 play_spawn_current::piece_idx#2 current_movedown_slow#1 game_over#52 render_screen_render#22 render_playfield::l#2 render_playfield::i#3 render_playfield::$0 ] main:11::render_playfield:56 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 render_screen_render#22 render_playfield::l#2 render_playfield::i#3 render_playfield::$0 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:34 [ render_screen_render#22 render_screen_render#63 ] Removing always clobbered register reg byte a as potential for zp[1]:35 [ render_playfield::l#2 render_playfield::l#1 ] Removing always clobbered register reg byte a as potential for zp[1]:36 [ render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 ] -Statement [155] (byte~) render_playfield::$3 ← (byte~) render_playfield::$0 << (byte) 1 [ render_screen_render#22 render_playfield::l#2 render_playfield::i#3 render_playfield::$3 ] ( main:13::render_playfield:30 [ score_bcd current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 play_spawn_current::piece_idx#2 current_movedown_slow#1 game_over#52 render_screen_render#22 render_playfield::l#2 render_playfield::i#3 render_playfield::$3 ] main:13::render_playfield:58 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 render_screen_render#22 render_playfield::l#2 render_playfield::i#3 render_playfield::$3 ] ) always clobbers reg byte a -Statement [156] (byte*) render_playfield::screen_line#0 ← *((const byte**) screen_lines_1 + (byte~) render_playfield::$3) [ render_screen_render#22 render_playfield::l#2 render_playfield::i#3 render_playfield::screen_line#0 ] ( main:13::render_playfield:30 [ score_bcd current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 play_spawn_current::piece_idx#2 current_movedown_slow#1 game_over#52 render_screen_render#22 render_playfield::l#2 render_playfield::i#3 render_playfield::screen_line#0 ] main:13::render_playfield:58 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 render_screen_render#22 render_playfield::l#2 render_playfield::i#3 render_playfield::screen_line#0 ] ) always clobbers reg byte a -Statement [158] *((byte*) render_playfield::screen_line#2) ← *((const byte*) playfield + (byte) render_playfield::i#2) [ render_screen_render#22 render_playfield::l#2 render_playfield::i#2 render_playfield::screen_line#2 render_playfield::c#2 ] ( main:13::render_playfield:30 [ score_bcd current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 play_spawn_current::piece_idx#2 current_movedown_slow#1 game_over#52 render_screen_render#22 render_playfield::l#2 render_playfield::i#2 render_playfield::screen_line#2 render_playfield::c#2 ] main:13::render_playfield:58 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 render_screen_render#22 render_playfield::l#2 render_playfield::i#2 render_playfield::screen_line#2 render_playfield::c#2 ] ) always clobbers reg byte a reg byte y +Statement [153] (byte~) render_playfield::$3 ← (byte~) render_playfield::$0 << (byte) 1 [ render_screen_render#22 render_playfield::l#2 render_playfield::i#3 render_playfield::$3 ] ( main:11::render_playfield:28 [ score_bcd current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 play_spawn_current::piece_idx#2 current_movedown_slow#1 game_over#52 render_screen_render#22 render_playfield::l#2 render_playfield::i#3 render_playfield::$3 ] main:11::render_playfield:56 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 render_screen_render#22 render_playfield::l#2 render_playfield::i#3 render_playfield::$3 ] ) always clobbers reg byte a +Statement [154] (byte*) render_playfield::screen_line#0 ← *((const byte**) screen_lines_1 + (byte~) render_playfield::$3) [ render_screen_render#22 render_playfield::l#2 render_playfield::i#3 render_playfield::screen_line#0 ] ( main:11::render_playfield:28 [ score_bcd current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 play_spawn_current::piece_idx#2 current_movedown_slow#1 game_over#52 render_screen_render#22 render_playfield::l#2 render_playfield::i#3 render_playfield::screen_line#0 ] main:11::render_playfield:56 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 render_screen_render#22 render_playfield::l#2 render_playfield::i#3 render_playfield::screen_line#0 ] ) always clobbers reg byte a +Statement [156] *((byte*) render_playfield::screen_line#2) ← *((const byte*) playfield + (byte) render_playfield::i#2) [ render_screen_render#22 render_playfield::l#2 render_playfield::i#2 render_playfield::screen_line#2 render_playfield::c#2 ] ( main:11::render_playfield:28 [ score_bcd current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 play_spawn_current::piece_idx#2 current_movedown_slow#1 game_over#52 render_screen_render#22 render_playfield::l#2 render_playfield::i#2 render_playfield::screen_line#2 render_playfield::c#2 ] main:11::render_playfield:56 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 render_screen_render#22 render_playfield::l#2 render_playfield::i#2 render_playfield::screen_line#2 render_playfield::c#2 ] ) always clobbers reg byte a reg byte y Removing always clobbered register reg byte y as potential for zp[1]:34 [ render_screen_render#22 render_screen_render#63 ] Removing always clobbered register reg byte y as potential for zp[1]:35 [ render_playfield::l#2 render_playfield::l#1 ] Removing always clobbered register reg byte y as potential for zp[1]:36 [ render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 ] Removing always clobbered register reg byte a as potential for zp[1]:39 [ render_playfield::c#2 render_playfield::c#1 ] Removing always clobbered register reg byte y as potential for zp[1]:39 [ render_playfield::c#2 render_playfield::c#1 ] -Statement [177] (byte) play_movement::render#2 ← (byte) play_movement::render#1 + (byte~) play_movement::$3 [ score_bcd current_movedown_slow#21 current_piece#15 current_piece_char#16 current_ypos#19 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 play_movement::key_event#0 current_orientation#20 current_piece_gfx#20 current_xpos#26 play_movement::render#2 ] ( main:13::play_movement:53 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 score_bcd current_movedown_slow#21 current_piece#15 current_piece_char#16 current_ypos#19 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 play_movement::key_event#0 current_orientation#20 current_piece_gfx#20 current_xpos#26 play_movement::render#2 ] ) always clobbers reg byte a +Statement [175] (byte) play_movement::render#2 ← (byte) play_movement::render#1 + (byte~) play_movement::$3 [ score_bcd current_movedown_slow#21 current_piece#15 current_piece_char#16 current_ypos#19 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 play_movement::key_event#0 current_orientation#20 current_piece_gfx#20 current_xpos#26 play_movement::render#2 ] ( main:11::play_movement:51 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 score_bcd current_movedown_slow#21 current_piece#15 current_piece_char#16 current_ypos#19 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 play_movement::key_event#0 current_orientation#20 current_piece_gfx#20 current_xpos#26 play_movement::render#2 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:123 [ play_movement::key_event#0 ] -Statement [182] (byte) play_movement::return#0 ← (byte) play_movement::render#2 + (byte~) play_movement::$4 [ score_bcd current_movedown_slow#21 current_piece#15 current_piece_char#16 current_ypos#19 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 play_movement::return#0 current_orientation#25 current_piece_gfx#21 current_xpos#26 ] ( main:13::play_movement:53 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 score_bcd current_movedown_slow#21 current_piece#15 current_piece_char#16 current_ypos#19 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 play_movement::return#0 current_orientation#25 current_piece_gfx#21 current_xpos#26 ] ) always clobbers reg byte a -Statement [187] (byte~) play_move_rotate::$5 ← (byte) current_orientation#20 + (byte) $10 [ current_piece#15 current_ypos#19 current_orientation#20 current_piece_gfx#20 current_xpos#26 play_move_rotate::$5 ] ( main:13::play_movement:53::play_move_rotate:179 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 score_bcd current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 play_movement::render#2 current_piece#15 current_ypos#19 current_orientation#20 current_piece_gfx#20 current_xpos#26 play_move_rotate::$5 ] ) always clobbers reg byte a +Statement [180] (byte) play_movement::return#0 ← (byte) play_movement::render#2 + (byte~) play_movement::$4 [ score_bcd current_movedown_slow#21 current_piece#15 current_piece_char#16 current_ypos#19 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 play_movement::return#0 current_orientation#25 current_piece_gfx#21 current_xpos#26 ] ( main:11::play_movement:51 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 score_bcd current_movedown_slow#21 current_piece#15 current_piece_char#16 current_ypos#19 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 play_movement::return#0 current_orientation#25 current_piece_gfx#21 current_xpos#26 ] ) always clobbers reg byte a +Statement [185] (byte~) play_move_rotate::$5 ← (byte) current_orientation#20 + (byte) $10 [ current_piece#15 current_ypos#19 current_orientation#20 current_piece_gfx#20 current_xpos#26 play_move_rotate::$5 ] ( main:11::play_movement:51::play_move_rotate:177 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 score_bcd current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 play_movement::render#2 current_piece#15 current_ypos#19 current_orientation#20 current_piece_gfx#20 current_xpos#26 play_move_rotate::$5 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:145 [ play_movement::render#2 ] -Statement [193] (byte*) current_piece#98 ← (byte*) current_piece#15 [ current_piece#15 current_ypos#19 current_orientation#20 current_piece_gfx#20 current_xpos#26 play_move_rotate::orientation#3 play_collision::xpos#3 play_collision::ypos#3 play_collision::orientation#3 current_piece#98 ] ( main:13::play_movement:53::play_move_rotate:179 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 score_bcd current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 play_movement::render#2 current_piece#15 current_ypos#19 current_orientation#20 current_piece_gfx#20 current_xpos#26 play_move_rotate::orientation#3 play_collision::xpos#3 play_collision::ypos#3 play_collision::orientation#3 current_piece#98 ] ) always clobbers reg byte a +Statement [191] (byte*) current_piece#98 ← (byte*) current_piece#15 [ current_piece#15 current_ypos#19 current_orientation#20 current_piece_gfx#20 current_xpos#26 play_move_rotate::orientation#3 play_collision::xpos#3 play_collision::ypos#3 play_collision::orientation#3 current_piece#98 ] ( main:11::play_movement:51::play_move_rotate:177 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 score_bcd current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 play_movement::render#2 current_piece#15 current_ypos#19 current_orientation#20 current_piece_gfx#20 current_xpos#26 play_move_rotate::orientation#3 play_collision::xpos#3 play_collision::ypos#3 play_collision::orientation#3 current_piece#98 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:42 [ 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[1]:46 [ play_collision::xpos#6 play_collision::xpos#0 play_collision::xpos#1 play_collision::xpos#2 play_collision::xpos#3 play_collision::xpos#4 ] Removing always clobbered register reg byte a as potential for zp[1]:47 [ play_collision::yp#2 play_collision::yp#0 play_collision::ypos#0 play_collision::ypos#1 play_collision::ypos#2 play_collision::ypos#3 play_collision::ypos#4 play_collision::yp#1 ] Removing always clobbered register reg byte a as potential for zp[1]:45 [ play_collision::orientation#5 play_collision::orientation#0 play_collision::orientation#1 play_collision::orientation#2 play_collision::orientation#3 ] -Statement [199] (byte*) current_piece_gfx#7 ← (byte*) current_piece#15 + (byte) current_orientation#7 [ current_piece#15 current_ypos#19 current_xpos#26 current_orientation#7 current_piece_gfx#7 ] ( main:13::play_movement:53::play_move_rotate:179 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 score_bcd current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 play_movement::render#2 current_piece#15 current_ypos#19 current_xpos#26 current_orientation#7 current_piece_gfx#7 ] ) always clobbers reg byte a -Statement [200] (byte~) play_move_rotate::$7 ← (byte) current_orientation#20 - (byte) $10 [ current_piece#15 current_ypos#19 current_orientation#20 current_piece_gfx#20 current_xpos#26 play_move_rotate::$7 ] ( main:13::play_movement:53::play_move_rotate:179 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 score_bcd current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 play_movement::render#2 current_piece#15 current_ypos#19 current_orientation#20 current_piece_gfx#20 current_xpos#26 play_move_rotate::$7 ] ) always clobbers reg byte a -Statement [203] (byte*) play_collision::piece_gfx#0 ← (byte*) current_piece#17 + (byte) play_collision::orientation#5 [ play_collision::yp#0 play_collision::xpos#6 play_collision::piece_gfx#0 ] ( main:13::play_movement:53::play_move_rotate:179::play_collision:194 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 score_bcd current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 play_movement::render#2 current_piece#15 current_ypos#19 current_orientation#20 current_piece_gfx#20 current_xpos#26 play_move_rotate::orientation#3 play_collision::yp#0 play_collision::xpos#6 play_collision::piece_gfx#0 ] main:13::play_movement:53::play_move_leftright:174::play_collision:232 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 score_bcd current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#20 current_piece#15 current_ypos#19 current_orientation#20 current_xpos#22 play_collision::yp#0 play_collision::xpos#6 play_collision::piece_gfx#0 ] main:13::play_movement:53::play_move_leftright:174::play_collision:243 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 score_bcd current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#20 current_piece#15 current_ypos#19 current_orientation#20 current_xpos#22 play_collision::yp#0 play_collision::xpos#6 play_collision::piece_gfx#0 ] main:13::play_movement:53::play_move_down:167::play_collision:267 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 score_bcd current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 lines_bcd#19 level#10 level_bcd#11 play_collision::yp#0 play_collision::xpos#6 play_collision::piece_gfx#0 ] main:13::play_spawn_current:26::play_collision:296 [ score_bcd current_movedown_slow#1 current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 game_over#65 play_collision::yp#0 play_collision::xpos#6 play_collision::piece_gfx#0 ] main:13::play_spawn_current:28::play_collision:296 [ score_bcd current_movedown_slow#1 current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 game_over#65 play_collision::yp#0 play_collision::xpos#6 play_collision::piece_gfx#0 ] main:13::play_movement:53::play_move_down:167::play_spawn_current:280::play_collision:296 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 score_bcd lines_bcd#17 level#19 current_movedown_slow#23 level_bcd#19 current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 game_over#65 play_collision::yp#0 play_collision::xpos#6 play_collision::piece_gfx#0 ] ) always clobbers reg byte a +Statement [197] (byte*) current_piece_gfx#7 ← (byte*) current_piece#15 + (byte) current_orientation#7 [ current_piece#15 current_ypos#19 current_xpos#26 current_orientation#7 current_piece_gfx#7 ] ( main:11::play_movement:51::play_move_rotate:177 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 score_bcd current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 play_movement::render#2 current_piece#15 current_ypos#19 current_xpos#26 current_orientation#7 current_piece_gfx#7 ] ) always clobbers reg byte a +Statement [198] (byte~) play_move_rotate::$7 ← (byte) current_orientation#20 - (byte) $10 [ current_piece#15 current_ypos#19 current_orientation#20 current_piece_gfx#20 current_xpos#26 play_move_rotate::$7 ] ( main:11::play_movement:51::play_move_rotate:177 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 score_bcd current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 play_movement::render#2 current_piece#15 current_ypos#19 current_orientation#20 current_piece_gfx#20 current_xpos#26 play_move_rotate::$7 ] ) always clobbers reg byte a +Statement [201] (byte*) play_collision::piece_gfx#0 ← (byte*) current_piece#17 + (byte) play_collision::orientation#5 [ play_collision::yp#0 play_collision::xpos#6 play_collision::piece_gfx#0 ] ( main:11::play_movement:51::play_move_rotate:177::play_collision:192 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 score_bcd current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 play_movement::render#2 current_piece#15 current_ypos#19 current_orientation#20 current_piece_gfx#20 current_xpos#26 play_move_rotate::orientation#3 play_collision::yp#0 play_collision::xpos#6 play_collision::piece_gfx#0 ] main:11::play_movement:51::play_move_leftright:172::play_collision:230 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 score_bcd current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#20 current_piece#15 current_ypos#19 current_orientation#20 current_xpos#22 play_collision::yp#0 play_collision::xpos#6 play_collision::piece_gfx#0 ] main:11::play_movement:51::play_move_leftright:172::play_collision:241 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 score_bcd current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#20 current_piece#15 current_ypos#19 current_orientation#20 current_xpos#22 play_collision::yp#0 play_collision::xpos#6 play_collision::piece_gfx#0 ] main:11::play_movement:51::play_move_down:165::play_collision:265 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 score_bcd current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 lines_bcd#19 level#10 level_bcd#11 play_collision::yp#0 play_collision::xpos#6 play_collision::piece_gfx#0 ] main:11::play_spawn_current:24::play_collision:294 [ score_bcd current_movedown_slow#1 current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 game_over#65 play_collision::yp#0 play_collision::xpos#6 play_collision::piece_gfx#0 ] main:11::play_spawn_current:26::play_collision:294 [ score_bcd current_movedown_slow#1 current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 game_over#65 play_collision::yp#0 play_collision::xpos#6 play_collision::piece_gfx#0 ] main:11::play_movement:51::play_move_down:165::play_spawn_current:278::play_collision:294 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 score_bcd lines_bcd#17 level#19 current_movedown_slow#23 level_bcd#19 current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 game_over#65 play_collision::yp#0 play_collision::xpos#6 play_collision::piece_gfx#0 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:40 [ play_movement::return#2 play_movement::render#1 play_movement::return#0 ] -Statement [205] (byte~) play_collision::$14 ← (byte) play_collision::yp#2 << (byte) 1 [ play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::i#3 play_collision::l#6 play_collision::$14 ] ( main:13::play_movement:53::play_move_rotate:179::play_collision:194 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 score_bcd current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 play_movement::render#2 current_piece#15 current_ypos#19 current_orientation#20 current_piece_gfx#20 current_xpos#26 play_move_rotate::orientation#3 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::i#3 play_collision::l#6 play_collision::$14 ] main:13::play_movement:53::play_move_leftright:174::play_collision:232 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 score_bcd current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#20 current_piece#15 current_ypos#19 current_orientation#20 current_xpos#22 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::i#3 play_collision::l#6 play_collision::$14 ] main:13::play_movement:53::play_move_leftright:174::play_collision:243 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 score_bcd current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#20 current_piece#15 current_ypos#19 current_orientation#20 current_xpos#22 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::i#3 play_collision::l#6 play_collision::$14 ] main:13::play_movement:53::play_move_down:167::play_collision:267 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 score_bcd current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 lines_bcd#19 level#10 level_bcd#11 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::i#3 play_collision::l#6 play_collision::$14 ] main:13::play_spawn_current:26::play_collision:296 [ score_bcd current_movedown_slow#1 current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::i#3 play_collision::l#6 play_collision::$14 ] main:13::play_spawn_current:28::play_collision:296 [ score_bcd current_movedown_slow#1 current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::i#3 play_collision::l#6 play_collision::$14 ] main:13::play_movement:53::play_move_down:167::play_spawn_current:280::play_collision:296 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 score_bcd lines_bcd#17 level#19 current_movedown_slow#23 level_bcd#19 current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::i#3 play_collision::l#6 play_collision::$14 ] ) always clobbers reg byte a +Statement [203] (byte~) play_collision::$14 ← (byte) play_collision::yp#2 << (byte) 1 [ play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::i#3 play_collision::l#6 play_collision::$14 ] ( main:11::play_movement:51::play_move_rotate:177::play_collision:192 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 score_bcd current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 play_movement::render#2 current_piece#15 current_ypos#19 current_orientation#20 current_piece_gfx#20 current_xpos#26 play_move_rotate::orientation#3 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::i#3 play_collision::l#6 play_collision::$14 ] main:11::play_movement:51::play_move_leftright:172::play_collision:230 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 score_bcd current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#20 current_piece#15 current_ypos#19 current_orientation#20 current_xpos#22 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::i#3 play_collision::l#6 play_collision::$14 ] main:11::play_movement:51::play_move_leftright:172::play_collision:241 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 score_bcd current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#20 current_piece#15 current_ypos#19 current_orientation#20 current_xpos#22 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::i#3 play_collision::l#6 play_collision::$14 ] main:11::play_movement:51::play_move_down:165::play_collision:265 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 score_bcd current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 lines_bcd#19 level#10 level_bcd#11 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::i#3 play_collision::l#6 play_collision::$14 ] main:11::play_spawn_current:24::play_collision:294 [ score_bcd current_movedown_slow#1 current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::i#3 play_collision::l#6 play_collision::$14 ] main:11::play_spawn_current:26::play_collision:294 [ score_bcd current_movedown_slow#1 current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::i#3 play_collision::l#6 play_collision::$14 ] main:11::play_movement:51::play_move_down:165::play_spawn_current:278::play_collision:294 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 score_bcd lines_bcd#17 level#19 current_movedown_slow#23 level_bcd#19 current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::i#3 play_collision::l#6 play_collision::$14 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:49 [ play_collision::i#2 play_collision::i#3 play_collision::i#10 play_collision::i#12 ] Removing always clobbered register reg byte a as potential for zp[1]:48 [ play_collision::l#6 play_collision::l#1 ] -Statement [206] (byte*) play_collision::playfield_line#0 ← *((const byte**) playfield_lines + (byte~) play_collision::$14) [ play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] ( main:13::play_movement:53::play_move_rotate:179::play_collision:194 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 score_bcd current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 play_movement::render#2 current_piece#15 current_ypos#19 current_orientation#20 current_piece_gfx#20 current_xpos#26 play_move_rotate::orientation#3 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] main:13::play_movement:53::play_move_leftright:174::play_collision:232 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 score_bcd current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#20 current_piece#15 current_ypos#19 current_orientation#20 current_xpos#22 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] main:13::play_movement:53::play_move_leftright:174::play_collision:243 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 score_bcd current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#20 current_piece#15 current_ypos#19 current_orientation#20 current_xpos#22 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] main:13::play_movement:53::play_move_down:167::play_collision:267 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 score_bcd current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 lines_bcd#19 level#10 level_bcd#11 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] main:13::play_spawn_current:26::play_collision:296 [ score_bcd current_movedown_slow#1 current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] main:13::play_spawn_current:28::play_collision:296 [ score_bcd current_movedown_slow#1 current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] main:13::play_movement:53::play_move_down:167::play_spawn_current:280::play_collision:296 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 score_bcd lines_bcd#17 level#19 current_movedown_slow#23 level_bcd#19 current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] ) always clobbers reg byte a -Statement [210] if(*((byte*) play_collision::piece_gfx#0 + (byte) play_collision::i#2)==(byte) 0) goto play_collision::@3 [ play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::xp#2 play_collision::c#2 play_collision::i#1 ] ( main:13::play_movement:53::play_move_rotate:179::play_collision:194 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 score_bcd current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 play_movement::render#2 current_piece#15 current_ypos#19 current_orientation#20 current_piece_gfx#20 current_xpos#26 play_move_rotate::orientation#3 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::xp#2 play_collision::c#2 play_collision::i#1 ] main:13::play_movement:53::play_move_leftright:174::play_collision:232 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 score_bcd current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#20 current_piece#15 current_ypos#19 current_orientation#20 current_xpos#22 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::xp#2 play_collision::c#2 play_collision::i#1 ] main:13::play_movement:53::play_move_leftright:174::play_collision:243 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 score_bcd current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#20 current_piece#15 current_ypos#19 current_orientation#20 current_xpos#22 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::xp#2 play_collision::c#2 play_collision::i#1 ] main:13::play_movement:53::play_move_down:167::play_collision:267 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 score_bcd current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 lines_bcd#19 level#10 level_bcd#11 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::xp#2 play_collision::c#2 play_collision::i#1 ] main:13::play_spawn_current:26::play_collision:296 [ score_bcd current_movedown_slow#1 current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::xp#2 play_collision::c#2 play_collision::i#1 ] main:13::play_spawn_current:28::play_collision:296 [ score_bcd current_movedown_slow#1 current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::xp#2 play_collision::c#2 play_collision::i#1 ] main:13::play_movement:53::play_move_down:167::play_spawn_current:280::play_collision:296 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 score_bcd lines_bcd#17 level#19 current_movedown_slow#23 level_bcd#19 current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::xp#2 play_collision::c#2 play_collision::i#1 ] ) always clobbers reg byte a +Statement [204] (byte*) play_collision::playfield_line#0 ← *((const byte**) playfield_lines + (byte~) play_collision::$14) [ play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] ( main:11::play_movement:51::play_move_rotate:177::play_collision:192 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 score_bcd current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 play_movement::render#2 current_piece#15 current_ypos#19 current_orientation#20 current_piece_gfx#20 current_xpos#26 play_move_rotate::orientation#3 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] main:11::play_movement:51::play_move_leftright:172::play_collision:230 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 score_bcd current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#20 current_piece#15 current_ypos#19 current_orientation#20 current_xpos#22 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] main:11::play_movement:51::play_move_leftright:172::play_collision:241 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 score_bcd current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#20 current_piece#15 current_ypos#19 current_orientation#20 current_xpos#22 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] main:11::play_movement:51::play_move_down:165::play_collision:265 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 score_bcd current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 lines_bcd#19 level#10 level_bcd#11 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] main:11::play_spawn_current:24::play_collision:294 [ score_bcd current_movedown_slow#1 current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] main:11::play_spawn_current:26::play_collision:294 [ score_bcd current_movedown_slow#1 current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] main:11::play_movement:51::play_move_down:165::play_spawn_current:278::play_collision:294 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 score_bcd lines_bcd#17 level#19 current_movedown_slow#23 level_bcd#19 current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] ) always clobbers reg byte a +Statement [208] if(*((byte*) play_collision::piece_gfx#0 + (byte) play_collision::i#2)==(byte) 0) goto play_collision::@3 [ play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::xp#2 play_collision::c#2 play_collision::i#1 ] ( main:11::play_movement:51::play_move_rotate:177::play_collision:192 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 score_bcd current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 play_movement::render#2 current_piece#15 current_ypos#19 current_orientation#20 current_piece_gfx#20 current_xpos#26 play_move_rotate::orientation#3 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::xp#2 play_collision::c#2 play_collision::i#1 ] main:11::play_movement:51::play_move_leftright:172::play_collision:230 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 score_bcd current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#20 current_piece#15 current_ypos#19 current_orientation#20 current_xpos#22 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::xp#2 play_collision::c#2 play_collision::i#1 ] main:11::play_movement:51::play_move_leftright:172::play_collision:241 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 score_bcd current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#20 current_piece#15 current_ypos#19 current_orientation#20 current_xpos#22 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::xp#2 play_collision::c#2 play_collision::i#1 ] main:11::play_movement:51::play_move_down:165::play_collision:265 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 score_bcd current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 lines_bcd#19 level#10 level_bcd#11 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::xp#2 play_collision::c#2 play_collision::i#1 ] main:11::play_spawn_current:24::play_collision:294 [ score_bcd current_movedown_slow#1 current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::xp#2 play_collision::c#2 play_collision::i#1 ] main:11::play_spawn_current:26::play_collision:294 [ score_bcd current_movedown_slow#1 current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::xp#2 play_collision::c#2 play_collision::i#1 ] main:11::play_movement:51::play_move_down:165::play_spawn_current:278::play_collision:294 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 score_bcd lines_bcd#17 level#19 current_movedown_slow#23 level_bcd#19 current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::xp#2 play_collision::c#2 play_collision::i#1 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:50 [ play_collision::xp#2 play_collision::xp#8 play_collision::xp#1 ] Removing always clobbered register reg byte a as potential for zp[1]:51 [ play_collision::c#2 play_collision::c#1 ] Removing always clobbered register reg byte a as potential for zp[1]:158 [ play_collision::i#1 ] -Statement [212] (byte~) play_collision::$5 ← (byte) play_collision::xp#2 & (byte) $80 [ play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::xp#2 play_collision::c#2 play_collision::i#1 play_collision::$5 ] ( main:13::play_movement:53::play_move_rotate:179::play_collision:194 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 score_bcd current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 play_movement::render#2 current_piece#15 current_ypos#19 current_orientation#20 current_piece_gfx#20 current_xpos#26 play_move_rotate::orientation#3 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::xp#2 play_collision::c#2 play_collision::i#1 play_collision::$5 ] main:13::play_movement:53::play_move_leftright:174::play_collision:232 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 score_bcd current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#20 current_piece#15 current_ypos#19 current_orientation#20 current_xpos#22 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::xp#2 play_collision::c#2 play_collision::i#1 play_collision::$5 ] main:13::play_movement:53::play_move_leftright:174::play_collision:243 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 score_bcd current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#20 current_piece#15 current_ypos#19 current_orientation#20 current_xpos#22 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::xp#2 play_collision::c#2 play_collision::i#1 play_collision::$5 ] main:13::play_movement:53::play_move_down:167::play_collision:267 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 score_bcd current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 lines_bcd#19 level#10 level_bcd#11 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::xp#2 play_collision::c#2 play_collision::i#1 play_collision::$5 ] main:13::play_spawn_current:26::play_collision:296 [ score_bcd current_movedown_slow#1 current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::xp#2 play_collision::c#2 play_collision::i#1 play_collision::$5 ] main:13::play_spawn_current:28::play_collision:296 [ score_bcd current_movedown_slow#1 current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::xp#2 play_collision::c#2 play_collision::i#1 play_collision::$5 ] main:13::play_movement:53::play_move_down:167::play_spawn_current:280::play_collision:296 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 score_bcd lines_bcd#17 level#19 current_movedown_slow#23 level_bcd#19 current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::xp#2 play_collision::c#2 play_collision::i#1 play_collision::$5 ] ) always clobbers reg byte a -Statement [215] if(*((byte*) play_collision::playfield_line#0 + (byte) play_collision::xp#2)==(byte) 0) goto play_collision::@3 [ play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::xp#2 play_collision::c#2 play_collision::i#1 ] ( main:13::play_movement:53::play_move_rotate:179::play_collision:194 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 score_bcd current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 play_movement::render#2 current_piece#15 current_ypos#19 current_orientation#20 current_piece_gfx#20 current_xpos#26 play_move_rotate::orientation#3 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::xp#2 play_collision::c#2 play_collision::i#1 ] main:13::play_movement:53::play_move_leftright:174::play_collision:232 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 score_bcd current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#20 current_piece#15 current_ypos#19 current_orientation#20 current_xpos#22 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::xp#2 play_collision::c#2 play_collision::i#1 ] main:13::play_movement:53::play_move_leftright:174::play_collision:243 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 score_bcd current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#20 current_piece#15 current_ypos#19 current_orientation#20 current_xpos#22 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::xp#2 play_collision::c#2 play_collision::i#1 ] main:13::play_movement:53::play_move_down:167::play_collision:267 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 score_bcd current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 lines_bcd#19 level#10 level_bcd#11 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::xp#2 play_collision::c#2 play_collision::i#1 ] main:13::play_spawn_current:26::play_collision:296 [ score_bcd current_movedown_slow#1 current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::xp#2 play_collision::c#2 play_collision::i#1 ] main:13::play_spawn_current:28::play_collision:296 [ score_bcd current_movedown_slow#1 current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::xp#2 play_collision::c#2 play_collision::i#1 ] main:13::play_movement:53::play_move_down:167::play_spawn_current:280::play_collision:296 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 score_bcd lines_bcd#17 level#19 current_movedown_slow#23 level_bcd#19 current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::xp#2 play_collision::c#2 play_collision::i#1 ] ) always clobbers reg byte a -Statement [231] (byte*) current_piece#97 ← (byte*) current_piece#15 [ current_piece#15 current_ypos#19 current_orientation#20 current_xpos#22 current_piece#97 play_collision::orientation#2 play_collision::ypos#2 play_collision::xpos#2 ] ( main:13::play_movement:53::play_move_leftright:174 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 score_bcd current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#20 current_piece#15 current_ypos#19 current_orientation#20 current_xpos#22 current_piece#97 play_collision::orientation#2 play_collision::ypos#2 play_collision::xpos#2 ] ) always clobbers reg byte a -Statement [242] (byte*) current_piece#96 ← (byte*) current_piece#15 [ current_piece#15 current_ypos#19 current_orientation#20 current_xpos#22 current_piece#96 play_collision::orientation#1 play_collision::ypos#1 play_collision::xpos#1 ] ( main:13::play_movement:53::play_move_leftright:174 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 score_bcd current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#20 current_piece#15 current_ypos#19 current_orientation#20 current_xpos#22 current_piece#96 play_collision::orientation#1 play_collision::ypos#1 play_collision::xpos#1 ] ) always clobbers reg byte a -Statement [266] (byte*) current_piece#95 ← (byte*) current_piece#10 [ score_bcd current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 lines_bcd#19 level#10 level_bcd#11 current_piece#95 play_collision::orientation#0 play_collision::ypos#0 play_collision::xpos#0 ] ( main:13::play_movement:53::play_move_down:167 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 score_bcd current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 lines_bcd#19 level#10 level_bcd#11 current_piece#95 play_collision::orientation#0 play_collision::ypos#0 play_collision::xpos#0 ] ) always clobbers reg byte a -Statement [281] (byte*) current_piece#92 ← (byte*)*((const word*) PIECES + (byte~) play_spawn_current::$7) [ score_bcd current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 play_spawn_current::piece_idx#2 game_over#52 current_piece#92 lines_bcd#17 level#19 current_movedown_slow#23 level_bcd#19 ] ( main:13::play_movement:53::play_move_down:167 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 score_bcd current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 play_spawn_current::piece_idx#2 game_over#52 current_piece#92 lines_bcd#17 level#19 current_movedown_slow#23 level_bcd#19 ] ) always clobbers reg byte a -Statement [282] (byte*) current_piece_gfx#116 ← (byte*)*((const word*) PIECES + (byte~) play_spawn_current::$7) [ score_bcd current_ypos#6 current_xpos#100 current_piece_char#5 play_spawn_current::piece_idx#2 game_over#52 current_piece#92 current_piece_gfx#116 lines_bcd#17 level#19 current_movedown_slow#23 level_bcd#19 ] ( main:13::play_movement:53::play_move_down:167 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 score_bcd current_ypos#6 current_xpos#100 current_piece_char#5 play_spawn_current::piece_idx#2 game_over#52 current_piece#92 current_piece_gfx#116 lines_bcd#17 level#19 current_movedown_slow#23 level_bcd#19 ] ) always clobbers reg byte a -Statement [289] (byte~) play_spawn_current::$7 ← (byte) play_spawn_current::current_piece_idx#0 << (byte) 1 [ play_spawn_current::$7 game_over#65 play_spawn_current::current_piece_idx#0 ] ( main:13::play_spawn_current:26 [ score_bcd current_movedown_slow#1 play_spawn_current::$7 game_over#65 play_spawn_current::current_piece_idx#0 ] main:13::play_spawn_current:28 [ score_bcd current_movedown_slow#1 play_spawn_current::$7 game_over#65 play_spawn_current::current_piece_idx#0 ] main:13::play_movement:53::play_move_down:167::play_spawn_current:280 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 score_bcd lines_bcd#17 level#19 current_movedown_slow#23 level_bcd#19 play_spawn_current::$7 game_over#65 play_spawn_current::current_piece_idx#0 ] ) always clobbers reg byte a +Statement [210] (byte~) play_collision::$5 ← (byte) play_collision::xp#2 & (byte) $80 [ play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::xp#2 play_collision::c#2 play_collision::i#1 play_collision::$5 ] ( main:11::play_movement:51::play_move_rotate:177::play_collision:192 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 score_bcd current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 play_movement::render#2 current_piece#15 current_ypos#19 current_orientation#20 current_piece_gfx#20 current_xpos#26 play_move_rotate::orientation#3 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::xp#2 play_collision::c#2 play_collision::i#1 play_collision::$5 ] main:11::play_movement:51::play_move_leftright:172::play_collision:230 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 score_bcd current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#20 current_piece#15 current_ypos#19 current_orientation#20 current_xpos#22 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::xp#2 play_collision::c#2 play_collision::i#1 play_collision::$5 ] main:11::play_movement:51::play_move_leftright:172::play_collision:241 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 score_bcd current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#20 current_piece#15 current_ypos#19 current_orientation#20 current_xpos#22 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::xp#2 play_collision::c#2 play_collision::i#1 play_collision::$5 ] main:11::play_movement:51::play_move_down:165::play_collision:265 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 score_bcd current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 lines_bcd#19 level#10 level_bcd#11 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::xp#2 play_collision::c#2 play_collision::i#1 play_collision::$5 ] main:11::play_spawn_current:24::play_collision:294 [ score_bcd current_movedown_slow#1 current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::xp#2 play_collision::c#2 play_collision::i#1 play_collision::$5 ] main:11::play_spawn_current:26::play_collision:294 [ score_bcd current_movedown_slow#1 current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::xp#2 play_collision::c#2 play_collision::i#1 play_collision::$5 ] main:11::play_movement:51::play_move_down:165::play_spawn_current:278::play_collision:294 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 score_bcd lines_bcd#17 level#19 current_movedown_slow#23 level_bcd#19 current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::xp#2 play_collision::c#2 play_collision::i#1 play_collision::$5 ] ) always clobbers reg byte a +Statement [213] if(*((byte*) play_collision::playfield_line#0 + (byte) play_collision::xp#2)==(byte) 0) goto play_collision::@3 [ play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::xp#2 play_collision::c#2 play_collision::i#1 ] ( main:11::play_movement:51::play_move_rotate:177::play_collision:192 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 score_bcd current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 play_movement::render#2 current_piece#15 current_ypos#19 current_orientation#20 current_piece_gfx#20 current_xpos#26 play_move_rotate::orientation#3 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::xp#2 play_collision::c#2 play_collision::i#1 ] main:11::play_movement:51::play_move_leftright:172::play_collision:230 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 score_bcd current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#20 current_piece#15 current_ypos#19 current_orientation#20 current_xpos#22 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::xp#2 play_collision::c#2 play_collision::i#1 ] main:11::play_movement:51::play_move_leftright:172::play_collision:241 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 score_bcd current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#20 current_piece#15 current_ypos#19 current_orientation#20 current_xpos#22 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::xp#2 play_collision::c#2 play_collision::i#1 ] main:11::play_movement:51::play_move_down:165::play_collision:265 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 score_bcd current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 lines_bcd#19 level#10 level_bcd#11 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::xp#2 play_collision::c#2 play_collision::i#1 ] main:11::play_spawn_current:24::play_collision:294 [ score_bcd current_movedown_slow#1 current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::xp#2 play_collision::c#2 play_collision::i#1 ] main:11::play_spawn_current:26::play_collision:294 [ score_bcd current_movedown_slow#1 current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::xp#2 play_collision::c#2 play_collision::i#1 ] main:11::play_movement:51::play_move_down:165::play_spawn_current:278::play_collision:294 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 score_bcd lines_bcd#17 level#19 current_movedown_slow#23 level_bcd#19 current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::xp#2 play_collision::c#2 play_collision::i#1 ] ) always clobbers reg byte a +Statement [229] (byte*) current_piece#97 ← (byte*) current_piece#15 [ current_piece#15 current_ypos#19 current_orientation#20 current_xpos#22 current_piece#97 play_collision::orientation#2 play_collision::ypos#2 play_collision::xpos#2 ] ( main:11::play_movement:51::play_move_leftright:172 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 score_bcd current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#20 current_piece#15 current_ypos#19 current_orientation#20 current_xpos#22 current_piece#97 play_collision::orientation#2 play_collision::ypos#2 play_collision::xpos#2 ] ) always clobbers reg byte a +Statement [240] (byte*) current_piece#96 ← (byte*) current_piece#15 [ current_piece#15 current_ypos#19 current_orientation#20 current_xpos#22 current_piece#96 play_collision::orientation#1 play_collision::ypos#1 play_collision::xpos#1 ] ( main:11::play_movement:51::play_move_leftright:172 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 score_bcd current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#20 current_piece#15 current_ypos#19 current_orientation#20 current_xpos#22 current_piece#96 play_collision::orientation#1 play_collision::ypos#1 play_collision::xpos#1 ] ) always clobbers reg byte a +Statement [264] (byte*) current_piece#95 ← (byte*) current_piece#10 [ score_bcd current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 lines_bcd#19 level#10 level_bcd#11 current_piece#95 play_collision::orientation#0 play_collision::ypos#0 play_collision::xpos#0 ] ( main:11::play_movement:51::play_move_down:165 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 score_bcd current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 lines_bcd#19 level#10 level_bcd#11 current_piece#95 play_collision::orientation#0 play_collision::ypos#0 play_collision::xpos#0 ] ) always clobbers reg byte a +Statement [279] (byte*) current_piece#92 ← (byte*)*((const word*) PIECES + (byte~) play_spawn_current::$7) [ score_bcd current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 play_spawn_current::piece_idx#2 game_over#52 current_piece#92 lines_bcd#17 level#19 current_movedown_slow#23 level_bcd#19 ] ( main:11::play_movement:51::play_move_down:165 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 score_bcd current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 play_spawn_current::piece_idx#2 game_over#52 current_piece#92 lines_bcd#17 level#19 current_movedown_slow#23 level_bcd#19 ] ) always clobbers reg byte a +Statement [280] (byte*) current_piece_gfx#116 ← (byte*)*((const word*) PIECES + (byte~) play_spawn_current::$7) [ score_bcd current_ypos#6 current_xpos#100 current_piece_char#5 play_spawn_current::piece_idx#2 game_over#52 current_piece#92 current_piece_gfx#116 lines_bcd#17 level#19 current_movedown_slow#23 level_bcd#19 ] ( main:11::play_movement:51::play_move_down:165 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 score_bcd current_ypos#6 current_xpos#100 current_piece_char#5 play_spawn_current::piece_idx#2 game_over#52 current_piece#92 current_piece_gfx#116 lines_bcd#17 level#19 current_movedown_slow#23 level_bcd#19 ] ) always clobbers reg byte a +Statement [287] (byte~) play_spawn_current::$7 ← (byte) play_spawn_current::current_piece_idx#0 << (byte) 1 [ play_spawn_current::$7 game_over#65 play_spawn_current::current_piece_idx#0 ] ( main:11::play_spawn_current:24 [ score_bcd current_movedown_slow#1 play_spawn_current::$7 game_over#65 play_spawn_current::current_piece_idx#0 ] main:11::play_spawn_current:26 [ score_bcd current_movedown_slow#1 play_spawn_current::$7 game_over#65 play_spawn_current::current_piece_idx#0 ] main:11::play_movement:51::play_move_down:165::play_spawn_current:278 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 score_bcd lines_bcd#17 level#19 current_movedown_slow#23 level_bcd#19 play_spawn_current::$7 game_over#65 play_spawn_current::current_piece_idx#0 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:171 [ play_spawn_current::current_piece_idx#0 ] -Statement [295] (byte*) current_piece#99 ← (byte*)*((const word*) PIECES + (byte~) play_spawn_current::$7) [ current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 current_piece#99 play_collision::ypos#4 play_collision::xpos#4 game_over#65 ] ( main:13::play_spawn_current:26 [ score_bcd current_movedown_slow#1 current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 current_piece#99 play_collision::ypos#4 play_collision::xpos#4 game_over#65 ] main:13::play_spawn_current:28 [ score_bcd current_movedown_slow#1 current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 current_piece#99 play_collision::ypos#4 play_collision::xpos#4 game_over#65 ] main:13::play_movement:53::play_move_down:167::play_spawn_current:280 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 score_bcd lines_bcd#17 level#19 current_movedown_slow#23 level_bcd#19 current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 current_piece#99 play_collision::ypos#4 play_collision::xpos#4 game_over#65 ] ) always clobbers reg byte a -Statement [308] (byte~) play_update_score::$2 ← < (word) lines_bcd#19 [ score_bcd current_movedown_slow#14 lines_bcd#19 level#10 level_bcd#11 play_update_score::removed#0 play_update_score::$2 ] ( main:13::play_movement:53::play_move_down:167::play_update_score:278 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 game_over#10 next_piece_idx#10 score_bcd current_movedown_slow#14 lines_bcd#19 level#10 level_bcd#11 play_update_score::removed#0 play_update_score::$2 ] ) always clobbers reg byte a +Statement [293] (byte*) current_piece#99 ← (byte*)*((const word*) PIECES + (byte~) play_spawn_current::$7) [ current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 current_piece#99 play_collision::ypos#4 play_collision::xpos#4 game_over#65 ] ( main:11::play_spawn_current:24 [ score_bcd current_movedown_slow#1 current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 current_piece#99 play_collision::ypos#4 play_collision::xpos#4 game_over#65 ] main:11::play_spawn_current:26 [ score_bcd current_movedown_slow#1 current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 current_piece#99 play_collision::ypos#4 play_collision::xpos#4 game_over#65 ] main:11::play_movement:51::play_move_down:165::play_spawn_current:278 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 score_bcd lines_bcd#17 level#19 current_movedown_slow#23 level_bcd#19 current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 current_piece#99 play_collision::ypos#4 play_collision::xpos#4 game_over#65 ] ) always clobbers reg byte a +Statement [306] (byte~) play_update_score::$2 ← < (word) lines_bcd#19 [ score_bcd current_movedown_slow#14 lines_bcd#19 level#10 level_bcd#11 play_update_score::removed#0 play_update_score::$2 ] ( main:11::play_movement:51::play_move_down:165::play_update_score:276 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 game_over#10 next_piece_idx#10 score_bcd current_movedown_slow#14 lines_bcd#19 level#10 level_bcd#11 play_update_score::removed#0 play_update_score::$2 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:170 [ play_update_score::removed#0 ] -Statement [310] (byte~) play_update_score::$9 ← (byte) play_update_score::removed#0 << (byte) 2 [ score_bcd current_movedown_slow#14 lines_bcd#19 level#10 level_bcd#11 play_update_score::removed#0 play_update_score::lines_before#0 play_update_score::$9 ] ( main:13::play_movement:53::play_move_down:167::play_update_score:278 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 game_over#10 next_piece_idx#10 score_bcd current_movedown_slow#14 lines_bcd#19 level#10 level_bcd#11 play_update_score::removed#0 play_update_score::lines_before#0 play_update_score::$9 ] ) always clobbers reg byte a +Statement [308] (byte~) play_update_score::$9 ← (byte) play_update_score::removed#0 << (byte) 2 [ score_bcd current_movedown_slow#14 lines_bcd#19 level#10 level_bcd#11 play_update_score::removed#0 play_update_score::lines_before#0 play_update_score::$9 ] ( main:11::play_movement:51::play_move_down:165::play_update_score:276 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 game_over#10 next_piece_idx#10 score_bcd current_movedown_slow#14 lines_bcd#19 level#10 level_bcd#11 play_update_score::removed#0 play_update_score::lines_before#0 play_update_score::$9 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:177 [ play_update_score::lines_before#0 ] -Statement [311] (dword) play_update_score::add_bcd#0 ← *((const dword*) score_add_bcd + (byte~) play_update_score::$9) [ score_bcd current_movedown_slow#14 lines_bcd#19 level#10 level_bcd#11 play_update_score::removed#0 play_update_score::lines_before#0 play_update_score::add_bcd#0 ] ( main:13::play_movement:53::play_move_down:167::play_update_score:278 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 game_over#10 next_piece_idx#10 score_bcd current_movedown_slow#14 lines_bcd#19 level#10 level_bcd#11 play_update_score::removed#0 play_update_score::lines_before#0 play_update_score::add_bcd#0 ] ) always clobbers reg byte a -Statement [313] (word) lines_bcd#29 ← (word) lines_bcd#19 + (byte) play_update_score::removed#0 [ score_bcd current_movedown_slow#14 level#10 level_bcd#11 play_update_score::lines_before#0 play_update_score::add_bcd#0 lines_bcd#29 ] ( main:13::play_movement:53::play_move_down:167::play_update_score:278 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 game_over#10 next_piece_idx#10 score_bcd current_movedown_slow#14 level#10 level_bcd#11 play_update_score::lines_before#0 play_update_score::add_bcd#0 lines_bcd#29 ] ) always clobbers reg byte a -Statement [314] (dword) score_bcd ← (dword) score_bcd + (dword) play_update_score::add_bcd#0 [ score_bcd current_movedown_slow#14 level#10 level_bcd#11 play_update_score::lines_before#0 lines_bcd#29 ] ( main:13::play_movement:53::play_move_down:167::play_update_score:278 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 game_over#10 next_piece_idx#10 score_bcd current_movedown_slow#14 level#10 level_bcd#11 play_update_score::lines_before#0 lines_bcd#29 ] ) always clobbers reg byte a -Statement [316] (byte~) play_update_score::$4 ← < (word) lines_bcd#29 [ score_bcd current_movedown_slow#14 level#10 level_bcd#11 play_update_score::lines_before#0 lines_bcd#29 play_update_score::$4 ] ( main:13::play_movement:53::play_move_down:167::play_update_score:278 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 game_over#10 next_piece_idx#10 score_bcd current_movedown_slow#14 level#10 level_bcd#11 play_update_score::lines_before#0 lines_bcd#29 play_update_score::$4 ] ) always clobbers reg byte a -Statement [328] (byte~) play_increase_level::$1 ← (byte) level_bcd#21 & (byte) $f [ level#21 current_movedown_slow#65 level_bcd#21 play_increase_level::$1 ] ( main:13::play_movement:53::play_move_down:167::play_update_score:278::play_increase_level:320 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 game_over#10 next_piece_idx#10 score_bcd lines_bcd#29 level#21 current_movedown_slow#65 level_bcd#21 play_increase_level::$1 ] ) always clobbers reg byte a -Statement [330] (byte) level_bcd#8 ← (byte) level_bcd#21 + (byte) 6 [ level#21 current_movedown_slow#65 level_bcd#8 ] ( main:13::play_movement:53::play_move_down:167::play_update_score:278::play_increase_level:320 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 game_over#10 next_piece_idx#10 score_bcd lines_bcd#29 level#21 current_movedown_slow#65 level_bcd#8 ] ) always clobbers reg byte a reg byte x +Statement [309] (dword) play_update_score::add_bcd#0 ← *((const dword*) score_add_bcd + (byte~) play_update_score::$9) [ score_bcd current_movedown_slow#14 lines_bcd#19 level#10 level_bcd#11 play_update_score::removed#0 play_update_score::lines_before#0 play_update_score::add_bcd#0 ] ( main:11::play_movement:51::play_move_down:165::play_update_score:276 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 game_over#10 next_piece_idx#10 score_bcd current_movedown_slow#14 lines_bcd#19 level#10 level_bcd#11 play_update_score::removed#0 play_update_score::lines_before#0 play_update_score::add_bcd#0 ] ) always clobbers reg byte a +Statement [311] (word) lines_bcd#29 ← (word) lines_bcd#19 + (byte) play_update_score::removed#0 [ score_bcd current_movedown_slow#14 level#10 level_bcd#11 play_update_score::lines_before#0 play_update_score::add_bcd#0 lines_bcd#29 ] ( main:11::play_movement:51::play_move_down:165::play_update_score:276 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 game_over#10 next_piece_idx#10 score_bcd current_movedown_slow#14 level#10 level_bcd#11 play_update_score::lines_before#0 play_update_score::add_bcd#0 lines_bcd#29 ] ) always clobbers reg byte a +Statement [312] (dword) score_bcd ← (dword) score_bcd + (dword) play_update_score::add_bcd#0 [ score_bcd current_movedown_slow#14 level#10 level_bcd#11 play_update_score::lines_before#0 lines_bcd#29 ] ( main:11::play_movement:51::play_move_down:165::play_update_score:276 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 game_over#10 next_piece_idx#10 score_bcd current_movedown_slow#14 level#10 level_bcd#11 play_update_score::lines_before#0 lines_bcd#29 ] ) always clobbers reg byte a +Statement [314] (byte~) play_update_score::$4 ← < (word) lines_bcd#29 [ score_bcd current_movedown_slow#14 level#10 level_bcd#11 play_update_score::lines_before#0 lines_bcd#29 play_update_score::$4 ] ( main:11::play_movement:51::play_move_down:165::play_update_score:276 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 game_over#10 next_piece_idx#10 score_bcd current_movedown_slow#14 level#10 level_bcd#11 play_update_score::lines_before#0 lines_bcd#29 play_update_score::$4 ] ) always clobbers reg byte a +Statement [326] (byte~) play_increase_level::$1 ← (byte) level_bcd#21 & (byte) $f [ level#21 current_movedown_slow#65 level_bcd#21 play_increase_level::$1 ] ( main:11::play_movement:51::play_move_down:165::play_update_score:276::play_increase_level:318 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 game_over#10 next_piece_idx#10 score_bcd lines_bcd#29 level#21 current_movedown_slow#65 level_bcd#21 play_increase_level::$1 ] ) always clobbers reg byte a +Statement [328] (byte) level_bcd#8 ← (byte) level_bcd#21 + (byte) 6 [ level#21 current_movedown_slow#65 level_bcd#8 ] ( main:11::play_movement:51::play_move_down:165::play_update_score:276::play_increase_level:318 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 game_over#10 next_piece_idx#10 score_bcd lines_bcd#29 level#21 current_movedown_slow#65 level_bcd#8 ] ) always clobbers reg byte a reg byte x Removing always clobbered register reg byte x as potential for zp[1]:2 [ render_screen_show#16 render_screen_show#13 ] Removing always clobbered register reg byte x as potential for zp[1]:3 [ render_screen_render#18 render_screen_render#11 ] Removing always clobbered register reg byte x as potential for zp[1]:88 [ keyboard_events_size#10 keyboard_events_size#30 keyboard_events_size#19 keyboard_events_size#16 keyboard_events_size#13 keyboard_events_size#4 keyboard_events_size#29 keyboard_events_size#1 keyboard_events_size#2 ] @@ -15752,224 +15731,224 @@ Removing always clobbered register reg byte x as potential for zp[1]:70 [ game_o Removing always clobbered register reg byte x as potential for zp[1]:69 [ next_piece_idx#17 next_piece_idx#30 next_piece_idx#10 next_piece_idx#16 play_spawn_current::piece_idx#2 play_spawn_current::piece_idx#1 ] Removing always clobbered register reg byte x as potential for zp[1]:58 [ level#33 level#10 level#17 level#19 level#21 ] Removing always clobbered register reg byte x as potential for zp[1]:59 [ current_movedown_slow#37 current_movedown_slow#14 current_movedown_slow#21 current_movedown_slow#1 current_movedown_slow#23 current_movedown_slow#65 current_movedown_slow#10 ] -Statement [334] (byte~) play_increase_level::$5 ← (byte) play_increase_level::b#2 << (byte) 2 [ level#21 current_movedown_slow#65 level_bcd#62 play_increase_level::b#2 play_increase_level::$5 ] ( main:13::play_movement:53::play_move_down:167::play_update_score:278::play_increase_level:320 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 game_over#10 next_piece_idx#10 score_bcd lines_bcd#29 level#21 current_movedown_slow#65 level_bcd#62 play_increase_level::b#2 play_increase_level::$5 ] ) always clobbers reg byte a +Statement [332] (byte~) play_increase_level::$5 ← (byte) play_increase_level::b#2 << (byte) 2 [ level#21 current_movedown_slow#65 level_bcd#62 play_increase_level::b#2 play_increase_level::$5 ] ( main:11::play_movement:51::play_move_down:165::play_update_score:276::play_increase_level:318 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 game_over#10 next_piece_idx#10 score_bcd lines_bcd#29 level#21 current_movedown_slow#65 level_bcd#62 play_increase_level::b#2 play_increase_level::$5 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:71 [ play_increase_level::b#2 play_increase_level::b#1 ] -Statement [335] *((const dword*) score_add_bcd + (byte~) play_increase_level::$5) ← *((const dword*) score_add_bcd + (byte~) play_increase_level::$5) + *((const dword*) SCORE_BASE_BCD + (byte~) play_increase_level::$5) [ level#21 current_movedown_slow#65 level_bcd#62 play_increase_level::b#2 ] ( main:13::play_movement:53::play_move_down:167::play_update_score:278::play_increase_level:320 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 game_over#10 next_piece_idx#10 score_bcd lines_bcd#29 level#21 current_movedown_slow#65 level_bcd#62 play_increase_level::b#2 ] ) always clobbers reg byte a -Statement [353] (byte) play_remove_lines::w#2 ← (byte) play_remove_lines::w#1 + (const byte) PLAYFIELD_COLS [ play_remove_lines::y#8 play_remove_lines::removed#11 play_remove_lines::r#1 play_remove_lines::w#2 ] ( main:13::play_movement:53::play_move_down:167::play_remove_lines:274 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 score_bcd current_movedown_slow#14 game_over#10 next_piece_idx#10 lines_bcd#19 level#10 level_bcd#11 play_remove_lines::y#8 play_remove_lines::removed#11 play_remove_lines::r#1 play_remove_lines::w#2 ] ) always clobbers reg byte a +Statement [333] *((const dword*) score_add_bcd + (byte~) play_increase_level::$5) ← *((const dword*) score_add_bcd + (byte~) play_increase_level::$5) + *((const dword*) SCORE_BASE_BCD + (byte~) play_increase_level::$5) [ level#21 current_movedown_slow#65 level_bcd#62 play_increase_level::b#2 ] ( main:11::play_movement:51::play_move_down:165::play_update_score:276::play_increase_level:318 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 game_over#10 next_piece_idx#10 score_bcd lines_bcd#29 level#21 current_movedown_slow#65 level_bcd#62 play_increase_level::b#2 ] ) always clobbers reg byte a +Statement [351] (byte) play_remove_lines::w#2 ← (byte) play_remove_lines::w#1 + (const byte) PLAYFIELD_COLS [ play_remove_lines::y#8 play_remove_lines::removed#11 play_remove_lines::r#1 play_remove_lines::w#2 ] ( main:11::play_movement:51::play_move_down:165::play_remove_lines:272 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 score_bcd current_movedown_slow#14 game_over#10 next_piece_idx#10 lines_bcd#19 level#10 level_bcd#11 play_remove_lines::y#8 play_remove_lines::removed#11 play_remove_lines::r#1 play_remove_lines::w#2 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:72 [ play_remove_lines::y#8 play_remove_lines::y#1 ] Removing always clobbered register reg byte a as potential for zp[1]:73 [ play_remove_lines::removed#11 play_remove_lines::removed#8 play_remove_lines::removed#1 ] Removing always clobbered register reg byte a as potential for zp[1]:74 [ play_remove_lines::r#2 play_remove_lines::r#3 play_remove_lines::r#1 ] -Statement [361] *((const byte*) playfield + (byte) play_remove_lines::w#6) ← (byte) 0 [ play_remove_lines::removed#8 play_remove_lines::w#6 ] ( main:13::play_movement:53::play_move_down:167::play_remove_lines:274 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 score_bcd current_movedown_slow#14 game_over#10 next_piece_idx#10 lines_bcd#19 level#10 level_bcd#11 play_remove_lines::removed#8 play_remove_lines::w#6 ] ) always clobbers reg byte a +Statement [359] *((const byte*) playfield + (byte) play_remove_lines::w#6) ← (byte) 0 [ play_remove_lines::removed#8 play_remove_lines::w#6 ] ( main:11::play_movement:51::play_move_down:165::play_remove_lines:272 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 score_bcd current_movedown_slow#14 game_over#10 next_piece_idx#10 lines_bcd#19 level#10 level_bcd#11 play_remove_lines::removed#8 play_remove_lines::w#6 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:77 [ play_remove_lines::w#6 play_remove_lines::w#3 play_remove_lines::w#4 play_remove_lines::w#12 play_remove_lines::w#11 play_remove_lines::w#1 play_remove_lines::w#2 ] -Statement [365] (byte~) play_lock_current::$4 ← (byte) play_lock_current::yp#2 << (byte) 1 [ current_piece_char#10 current_piece_gfx#13 current_xpos#14 play_lock_current::yp#2 play_lock_current::i#3 play_lock_current::l#6 play_lock_current::$4 ] ( main:13::play_movement:53::play_move_down:167::play_lock_current:272 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 score_bcd current_movedown_slow#14 game_over#10 next_piece_idx#10 lines_bcd#19 level#10 level_bcd#11 current_piece_char#10 current_piece_gfx#13 current_xpos#14 play_lock_current::yp#2 play_lock_current::i#3 play_lock_current::l#6 play_lock_current::$4 ] ) always clobbers reg byte a +Statement [363] (byte~) play_lock_current::$4 ← (byte) play_lock_current::yp#2 << (byte) 1 [ current_piece_char#10 current_piece_gfx#13 current_xpos#14 play_lock_current::yp#2 play_lock_current::i#3 play_lock_current::l#6 play_lock_current::$4 ] ( main:11::play_movement:51::play_move_down:165::play_lock_current:270 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 score_bcd current_movedown_slow#14 game_over#10 next_piece_idx#10 lines_bcd#19 level#10 level_bcd#11 current_piece_char#10 current_piece_gfx#13 current_xpos#14 play_lock_current::yp#2 play_lock_current::i#3 play_lock_current::l#6 play_lock_current::$4 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:78 [ play_lock_current::yp#2 play_lock_current::yp#0 play_lock_current::yp#1 ] Removing always clobbered register reg byte a as potential for zp[1]:80 [ play_lock_current::i#2 play_lock_current::i#3 play_lock_current::i#7 play_lock_current::i#9 ] Removing always clobbered register reg byte a as potential for zp[1]:79 [ play_lock_current::l#6 play_lock_current::l#1 ] -Statement [366] (byte*) play_lock_current::playfield_line#0 ← *((const byte**) playfield_lines + (byte~) play_lock_current::$4) [ current_piece_char#10 current_piece_gfx#13 current_xpos#14 play_lock_current::yp#2 play_lock_current::i#3 play_lock_current::l#6 play_lock_current::playfield_line#0 ] ( main:13::play_movement:53::play_move_down:167::play_lock_current:272 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 score_bcd current_movedown_slow#14 game_over#10 next_piece_idx#10 lines_bcd#19 level#10 level_bcd#11 current_piece_char#10 current_piece_gfx#13 current_xpos#14 play_lock_current::yp#2 play_lock_current::i#3 play_lock_current::l#6 play_lock_current::playfield_line#0 ] ) always clobbers reg byte a -Statement [370] if(*((byte*) current_piece_gfx#13 + (byte) play_lock_current::i#2)==(byte) 0) goto play_lock_current::@3 [ current_piece_char#10 current_piece_gfx#13 current_xpos#14 play_lock_current::yp#2 play_lock_current::l#6 play_lock_current::playfield_line#0 play_lock_current::xp#2 play_lock_current::c#2 play_lock_current::i#1 ] ( main:13::play_movement:53::play_move_down:167::play_lock_current:272 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 score_bcd current_movedown_slow#14 game_over#10 next_piece_idx#10 lines_bcd#19 level#10 level_bcd#11 current_piece_char#10 current_piece_gfx#13 current_xpos#14 play_lock_current::yp#2 play_lock_current::l#6 play_lock_current::playfield_line#0 play_lock_current::xp#2 play_lock_current::c#2 play_lock_current::i#1 ] ) always clobbers reg byte a +Statement [364] (byte*) play_lock_current::playfield_line#0 ← *((const byte**) playfield_lines + (byte~) play_lock_current::$4) [ current_piece_char#10 current_piece_gfx#13 current_xpos#14 play_lock_current::yp#2 play_lock_current::i#3 play_lock_current::l#6 play_lock_current::playfield_line#0 ] ( main:11::play_movement:51::play_move_down:165::play_lock_current:270 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 score_bcd current_movedown_slow#14 game_over#10 next_piece_idx#10 lines_bcd#19 level#10 level_bcd#11 current_piece_char#10 current_piece_gfx#13 current_xpos#14 play_lock_current::yp#2 play_lock_current::i#3 play_lock_current::l#6 play_lock_current::playfield_line#0 ] ) always clobbers reg byte a +Statement [368] if(*((byte*) current_piece_gfx#13 + (byte) play_lock_current::i#2)==(byte) 0) goto play_lock_current::@3 [ current_piece_char#10 current_piece_gfx#13 current_xpos#14 play_lock_current::yp#2 play_lock_current::l#6 play_lock_current::playfield_line#0 play_lock_current::xp#2 play_lock_current::c#2 play_lock_current::i#1 ] ( main:11::play_movement:51::play_move_down:165::play_lock_current:270 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 score_bcd current_movedown_slow#14 game_over#10 next_piece_idx#10 lines_bcd#19 level#10 level_bcd#11 current_piece_char#10 current_piece_gfx#13 current_xpos#14 play_lock_current::yp#2 play_lock_current::l#6 play_lock_current::playfield_line#0 play_lock_current::xp#2 play_lock_current::c#2 play_lock_current::i#1 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:81 [ play_lock_current::xp#2 play_lock_current::xp#0 play_lock_current::xp#1 ] Removing always clobbered register reg byte a as potential for zp[1]:82 [ play_lock_current::c#2 play_lock_current::c#1 ] Removing always clobbered register reg byte a as potential for zp[1]:191 [ play_lock_current::i#1 ] -Statement [371] *((byte*) play_lock_current::playfield_line#0 + (byte) play_lock_current::xp#2) ← (byte) current_piece_char#10 [ current_piece_char#10 current_piece_gfx#13 current_xpos#14 play_lock_current::yp#2 play_lock_current::l#6 play_lock_current::playfield_line#0 play_lock_current::xp#2 play_lock_current::c#2 play_lock_current::i#1 ] ( main:13::play_movement:53::play_move_down:167::play_lock_current:272 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 score_bcd current_movedown_slow#14 game_over#10 next_piece_idx#10 lines_bcd#19 level#10 level_bcd#11 current_piece_char#10 current_piece_gfx#13 current_xpos#14 play_lock_current::yp#2 play_lock_current::l#6 play_lock_current::playfield_line#0 play_lock_current::xp#2 play_lock_current::c#2 play_lock_current::i#1 ] ) always clobbers reg byte a -Statement [382] (byte~) keyboard_event_pressed::$0 ← (byte) keyboard_event_pressed::keycode#5 >> (byte) 3 [ keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] ( main:13::play_movement:53::play_move_down:167::keyboard_event_pressed:252 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 score_bcd current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 lines_bcd#19 level#10 level_bcd#11 current_movedown_counter#12 play_move_down::movedown#10 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] main:13::keyboard_event_scan:45::keyboard_event_pressed:404 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 level#10 level_bcd#11 keyboard_events_size#13 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] main:13::keyboard_event_scan:45::keyboard_event_pressed:410 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 level#10 level_bcd#11 keyboard_events_size#13 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] main:13::keyboard_event_scan:45::keyboard_event_pressed:416 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 level#10 level_bcd#11 keyboard_events_size#13 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] main:13::keyboard_event_scan:45::keyboard_event_pressed:422 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 level#10 level_bcd#11 keyboard_events_size#13 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] ) always clobbers reg byte a +Statement [369] *((byte*) play_lock_current::playfield_line#0 + (byte) play_lock_current::xp#2) ← (byte) current_piece_char#10 [ current_piece_char#10 current_piece_gfx#13 current_xpos#14 play_lock_current::yp#2 play_lock_current::l#6 play_lock_current::playfield_line#0 play_lock_current::xp#2 play_lock_current::c#2 play_lock_current::i#1 ] ( main:11::play_movement:51::play_move_down:165::play_lock_current:270 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 score_bcd current_movedown_slow#14 game_over#10 next_piece_idx#10 lines_bcd#19 level#10 level_bcd#11 current_piece_char#10 current_piece_gfx#13 current_xpos#14 play_lock_current::yp#2 play_lock_current::l#6 play_lock_current::playfield_line#0 play_lock_current::xp#2 play_lock_current::c#2 play_lock_current::i#1 ] ) always clobbers reg byte a +Statement [380] (byte~) keyboard_event_pressed::$0 ← (byte) keyboard_event_pressed::keycode#5 >> (byte) 3 [ keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] ( main:11::play_movement:51::play_move_down:165::keyboard_event_pressed:250 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 score_bcd current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 lines_bcd#19 level#10 level_bcd#11 current_movedown_counter#12 play_move_down::movedown#10 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] main:11::keyboard_event_scan:43::keyboard_event_pressed:402 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 level#10 level_bcd#11 keyboard_events_size#13 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] main:11::keyboard_event_scan:43::keyboard_event_pressed:408 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 level#10 level_bcd#11 keyboard_events_size#13 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] main:11::keyboard_event_scan:43::keyboard_event_pressed:414 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 level#10 level_bcd#11 keyboard_events_size#13 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] main:11::keyboard_event_scan:43::keyboard_event_pressed:420 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 level#10 level_bcd#11 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[1]:54 [ play_move_down::movedown#6 play_move_down::movedown#7 play_move_down::movedown#10 play_move_down::movedown#2 play_move_down::movedown#3 ] Removing always clobbered register reg byte a as potential for zp[1]:83 [ keyboard_event_pressed::keycode#5 ] -Statement [384] (byte~) keyboard_event_pressed::$1 ← (byte) keyboard_event_pressed::keycode#5 & (byte) 7 [ keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] ( main:13::play_movement:53::play_move_down:167::keyboard_event_pressed:252 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 score_bcd current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 lines_bcd#19 level#10 level_bcd#11 current_movedown_counter#12 play_move_down::movedown#10 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:13::keyboard_event_scan:45::keyboard_event_pressed:404 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 level#10 level_bcd#11 keyboard_events_size#13 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:13::keyboard_event_scan:45::keyboard_event_pressed:410 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 level#10 level_bcd#11 keyboard_events_size#13 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:13::keyboard_event_scan:45::keyboard_event_pressed:416 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 level#10 level_bcd#11 keyboard_events_size#13 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:13::keyboard_event_scan:45::keyboard_event_pressed:422 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 level#10 level_bcd#11 keyboard_events_size#13 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] ) always clobbers reg byte a +Statement [382] (byte~) keyboard_event_pressed::$1 ← (byte) keyboard_event_pressed::keycode#5 & (byte) 7 [ keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] ( main:11::play_movement:51::play_move_down:165::keyboard_event_pressed:250 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 score_bcd current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 lines_bcd#19 level#10 level_bcd#11 current_movedown_counter#12 play_move_down::movedown#10 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:11::keyboard_event_scan:43::keyboard_event_pressed:402 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 level#10 level_bcd#11 keyboard_events_size#13 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:11::keyboard_event_scan:43::keyboard_event_pressed:408 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 level#10 level_bcd#11 keyboard_events_size#13 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:11::keyboard_event_scan:43::keyboard_event_pressed:414 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 level#10 level_bcd#11 keyboard_events_size#13 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:11::keyboard_event_scan:43::keyboard_event_pressed:420 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 level#10 level_bcd#11 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[1]:193 [ keyboard_event_pressed::row_bits#0 ] -Statement [385] (byte) keyboard_event_pressed::return#11 ← (byte) keyboard_event_pressed::row_bits#0 & *((const byte*) keyboard_matrix_col_bitmask + (byte~) keyboard_event_pressed::$1) [ keyboard_event_pressed::return#11 ] ( main:13::play_movement:53::play_move_down:167::keyboard_event_pressed:252 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 score_bcd current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 lines_bcd#19 level#10 level_bcd#11 current_movedown_counter#12 play_move_down::movedown#10 keyboard_event_pressed::return#11 ] main:13::keyboard_event_scan:45::keyboard_event_pressed:404 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 level#10 level_bcd#11 keyboard_events_size#13 keyboard_event_pressed::return#11 ] main:13::keyboard_event_scan:45::keyboard_event_pressed:410 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 level#10 level_bcd#11 keyboard_events_size#13 keyboard_event_pressed::return#11 ] main:13::keyboard_event_scan:45::keyboard_event_pressed:416 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 level#10 level_bcd#11 keyboard_events_size#13 keyboard_event_pressed::return#11 ] main:13::keyboard_event_scan:45::keyboard_event_pressed:422 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 level#10 level_bcd#11 keyboard_events_size#13 keyboard_event_pressed::return#11 ] ) always clobbers reg byte a -Statement [387] if((byte) keyboard_events_size#13==(byte) 0) goto keyboard_event_get::@return [ keyboard_events_size#13 ] ( main:13::keyboard_event_get:47 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 level#10 level_bcd#11 keyboard_events_size#13 ] ) always clobbers reg byte a -Statement [389] (byte) keyboard_event_get::return#1 ← *((const byte*) keyboard_events + (byte) keyboard_events_size#4) [ keyboard_events_size#4 keyboard_event_get::return#1 ] ( main:13::keyboard_event_get:47 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 level#10 level_bcd#11 keyboard_events_size#4 keyboard_event_get::return#1 ] ) always clobbers reg byte y -Statement [399] (byte) keyboard_event_scan::keycode#1 ← (byte) keyboard_event_scan::keycode#11 + (byte) 8 [ keyboard_event_scan::row#2 keyboard_events_size#30 keyboard_event_scan::keycode#1 ] ( main:13::keyboard_event_scan:45 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 level#10 level_bcd#11 keyboard_event_scan::row#2 keyboard_events_size#30 keyboard_event_scan::keycode#1 ] ) always clobbers reg byte a +Statement [383] (byte) keyboard_event_pressed::return#11 ← (byte) keyboard_event_pressed::row_bits#0 & *((const byte*) keyboard_matrix_col_bitmask + (byte~) keyboard_event_pressed::$1) [ keyboard_event_pressed::return#11 ] ( main:11::play_movement:51::play_move_down:165::keyboard_event_pressed:250 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 score_bcd current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 lines_bcd#19 level#10 level_bcd#11 current_movedown_counter#12 play_move_down::movedown#10 keyboard_event_pressed::return#11 ] main:11::keyboard_event_scan:43::keyboard_event_pressed:402 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 level#10 level_bcd#11 keyboard_events_size#13 keyboard_event_pressed::return#11 ] main:11::keyboard_event_scan:43::keyboard_event_pressed:408 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 level#10 level_bcd#11 keyboard_events_size#13 keyboard_event_pressed::return#11 ] main:11::keyboard_event_scan:43::keyboard_event_pressed:414 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 level#10 level_bcd#11 keyboard_events_size#13 keyboard_event_pressed::return#11 ] main:11::keyboard_event_scan:43::keyboard_event_pressed:420 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 level#10 level_bcd#11 keyboard_events_size#13 keyboard_event_pressed::return#11 ] ) always clobbers reg byte a +Statement [385] if((byte) keyboard_events_size#13==(byte) 0) goto keyboard_event_get::@return [ keyboard_events_size#13 ] ( main:11::keyboard_event_get:45 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 level#10 level_bcd#11 keyboard_events_size#13 ] ) always clobbers reg byte a +Statement [387] (byte) keyboard_event_get::return#1 ← *((const byte*) keyboard_events + (byte) keyboard_events_size#4) [ keyboard_events_size#4 keyboard_event_get::return#1 ] ( main:11::keyboard_event_get:45 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 level#10 level_bcd#11 keyboard_events_size#4 keyboard_event_get::return#1 ] ) always clobbers reg byte y +Statement [397] (byte) keyboard_event_scan::keycode#1 ← (byte) keyboard_event_scan::keycode#11 + (byte) 8 [ keyboard_event_scan::row#2 keyboard_events_size#30 keyboard_event_scan::keycode#1 ] ( main:11::keyboard_event_scan:43 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 level#10 level_bcd#11 keyboard_event_scan::row#2 keyboard_events_size#30 keyboard_event_scan::keycode#1 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:85 [ keyboard_event_scan::row#2 keyboard_event_scan::row#1 ] -Statement [429] (byte~) keyboard_event_scan::$15 ← (byte) keyboard_event_scan::row_scan#0 ^ *((const byte*) keyboard_scan_values + (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::$15 ] ( main:13::keyboard_event_scan:45 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 level#10 level_bcd#11 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::$15 ] ) always clobbers reg byte a +Statement [427] (byte~) keyboard_event_scan::$15 ← (byte) keyboard_event_scan::row_scan#0 ^ *((const byte*) keyboard_scan_values + (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::$15 ] ( main:11::keyboard_event_scan:43 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 level#10 level_bcd#11 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::$15 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:198 [ keyboard_event_scan::row_scan#0 ] Removing always clobbered register reg byte a as potential for zp[1]:86 [ keyboard_event_scan::col#2 keyboard_event_scan::col#1 ] Removing always clobbered register reg byte a as potential for zp[1]:87 [ keyboard_event_scan::keycode#10 keyboard_event_scan::keycode#11 keyboard_event_scan::keycode#13 keyboard_event_scan::keycode#14 keyboard_event_scan::keycode#1 ] -Statement [432] if((byte) keyboard_events_size#10==(byte) 8) goto keyboard_event_scan::@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:13::keyboard_event_scan:45 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 level#10 level_bcd#11 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 [433] (byte) keyboard_event_scan::event_type#0 ← (byte) keyboard_event_scan::row_scan#0 & *((const byte*) keyboard_matrix_col_bitmask + (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:13::keyboard_event_scan:45 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 level#10 level_bcd#11 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 [435] *((const byte*) keyboard_events + (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:13::keyboard_event_scan:45 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 level#10 level_bcd#11 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 reg byte y +Statement [430] if((byte) keyboard_events_size#10==(byte) 8) goto keyboard_event_scan::@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:11::keyboard_event_scan:43 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 level#10 level_bcd#11 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 [431] (byte) keyboard_event_scan::event_type#0 ← (byte) keyboard_event_scan::row_scan#0 & *((const byte*) keyboard_matrix_col_bitmask + (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:11::keyboard_event_scan:43 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 level#10 level_bcd#11 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 [433] *((const byte*) keyboard_events + (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:11::keyboard_event_scan:43 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 level#10 level_bcd#11 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 reg byte y Removing always clobbered register reg byte y as potential for zp[1]:85 [ keyboard_event_scan::row#2 keyboard_event_scan::row#1 ] Removing always clobbered register reg byte y as potential for zp[1]:198 [ keyboard_event_scan::row_scan#0 ] Removing always clobbered register reg byte y as potential for zp[1]:86 [ keyboard_event_scan::col#2 keyboard_event_scan::col#1 ] Removing always clobbered register reg byte y as potential for zp[1]:87 [ keyboard_event_scan::keycode#10 keyboard_event_scan::keycode#11 keyboard_event_scan::keycode#13 keyboard_event_scan::keycode#14 keyboard_event_scan::keycode#1 ] -Statement [441] *((const byte*) keyboard_scan_values + (byte) keyboard_event_scan::row#2) ← (byte) keyboard_event_scan::row_scan#0 [ keyboard_event_scan::row#2 keyboard_event_scan::keycode#14 keyboard_events_size#29 ] ( main:13::keyboard_event_scan:45 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 level#10 level_bcd#11 keyboard_event_scan::row#2 keyboard_event_scan::keycode#14 keyboard_events_size#29 ] ) always clobbers reg byte a -Statement [442] (byte~) keyboard_event_scan::$23 ← (byte) keyboard_event_scan::keycode#10 | (byte) $40 [ 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::$23 ] ( main:13::keyboard_event_scan:45 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 level#10 level_bcd#11 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::$23 ] ) always clobbers reg byte a -Statement [443] *((const byte*) keyboard_events + (byte) keyboard_events_size#10) ← (byte~) keyboard_event_scan::$23 [ 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:13::keyboard_event_scan:45 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 level#10 level_bcd#11 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 y -Statement [445] *((const byte*) CIA1_PORT_A) ← *((const byte*) keyboard_matrix_row_bitmask + (byte) keyboard_matrix_read::rowid#0) [ ] ( main:13::keyboard_event_scan:45::keyboard_matrix_read:395 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 level#10 level_bcd#11 keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#30 ] ) always clobbers reg byte a -Statement [446] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B) [ keyboard_matrix_read::return#0 ] ( main:13::keyboard_event_scan:45::keyboard_matrix_read:395 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 level#10 level_bcd#11 keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#30 keyboard_matrix_read::return#0 ] ) always clobbers reg byte a -Statement [448] if((byte) render_screen_show#16==(byte) 0) goto render_show::toD0181 [ render_screen_show#16 level#10 ] ( main:13::render_show:43 [ score_bcd render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 keyboard_events_size#19 current_movedown_counter#16 lines_bcd#19 level_bcd#11 render_screen_show#16 level#10 ] ) always clobbers reg byte a -Statement [452] *((const byte*) BGCOL2) ← *((const byte*) PIECES_COLORS_1 + (byte) level#10) [ render_screen_show#16 level#10 ] ( main:13::render_show:43 [ score_bcd render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 keyboard_events_size#19 current_movedown_counter#16 lines_bcd#19 level_bcd#11 render_screen_show#16 level#10 ] ) always clobbers reg byte a reg byte y -Statement [453] *((const byte*) BGCOL3) ← *((const byte*) PIECES_COLORS_2 + (byte) level#10) [ render_screen_show#16 level#10 ] ( main:13::render_show:43 [ score_bcd render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 keyboard_events_size#19 current_movedown_counter#16 lines_bcd#19 level_bcd#11 render_screen_show#16 level#10 ] ) always clobbers reg byte a reg byte y -Statement [454] (byte) render_screen_showing ← (byte) render_screen_show#16 [ render_screen_show#16 level#10 ] ( main:13::render_show:43 [ score_bcd render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 keyboard_events_size#19 current_movedown_counter#16 lines_bcd#19 level_bcd#11 render_screen_show#16 level#10 ] ) always clobbers reg byte a -Statement [459] (byte~) play_init::$2 ← (byte) play_init::j#2 << (byte) 1 [ play_init::j#2 play_init::pli#2 play_init::idx#2 play_init::$2 ] ( main:13::play_init:24 [ score_bcd play_init::j#2 play_init::pli#2 play_init::idx#2 play_init::$2 ] ) always clobbers reg byte a +Statement [439] *((const byte*) keyboard_scan_values + (byte) keyboard_event_scan::row#2) ← (byte) keyboard_event_scan::row_scan#0 [ keyboard_event_scan::row#2 keyboard_event_scan::keycode#14 keyboard_events_size#29 ] ( main:11::keyboard_event_scan:43 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 level#10 level_bcd#11 keyboard_event_scan::row#2 keyboard_event_scan::keycode#14 keyboard_events_size#29 ] ) always clobbers reg byte a +Statement [440] (byte~) keyboard_event_scan::$23 ← (byte) keyboard_event_scan::keycode#10 | (byte) $40 [ 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::$23 ] ( main:11::keyboard_event_scan:43 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 level#10 level_bcd#11 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::$23 ] ) always clobbers reg byte a +Statement [441] *((const byte*) keyboard_events + (byte) keyboard_events_size#10) ← (byte~) keyboard_event_scan::$23 [ 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:11::keyboard_event_scan:43 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 level#10 level_bcd#11 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 y +Statement [443] *((const byte*) CIA1_PORT_A) ← *((const byte*) keyboard_matrix_row_bitmask + (byte) keyboard_matrix_read::rowid#0) [ ] ( main:11::keyboard_event_scan:43::keyboard_matrix_read:393 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 level#10 level_bcd#11 keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#30 ] ) always clobbers reg byte a +Statement [444] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B) [ keyboard_matrix_read::return#0 ] ( main:11::keyboard_event_scan:43::keyboard_matrix_read:393 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 level#10 level_bcd#11 keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#30 keyboard_matrix_read::return#0 ] ) always clobbers reg byte a +Statement [446] if((byte) render_screen_show#16==(byte) 0) goto render_show::toD0181 [ render_screen_show#16 level#10 ] ( main:11::render_show:41 [ score_bcd render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 keyboard_events_size#19 current_movedown_counter#16 lines_bcd#19 level_bcd#11 render_screen_show#16 level#10 ] ) always clobbers reg byte a +Statement [450] *((const byte*) BGCOL2) ← *((const byte*) PIECES_COLORS_1 + (byte) level#10) [ render_screen_show#16 level#10 ] ( main:11::render_show:41 [ score_bcd render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 keyboard_events_size#19 current_movedown_counter#16 lines_bcd#19 level_bcd#11 render_screen_show#16 level#10 ] ) always clobbers reg byte a reg byte y +Statement [451] *((const byte*) BGCOL3) ← *((const byte*) PIECES_COLORS_2 + (byte) level#10) [ render_screen_show#16 level#10 ] ( main:11::render_show:41 [ score_bcd render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 keyboard_events_size#19 current_movedown_counter#16 lines_bcd#19 level_bcd#11 render_screen_show#16 level#10 ] ) always clobbers reg byte a reg byte y +Statement [452] (byte) render_screen_showing ← (byte) render_screen_show#16 [ render_screen_show#16 level#10 ] ( main:11::render_show:41 [ score_bcd render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 keyboard_events_size#19 current_movedown_counter#16 lines_bcd#19 level_bcd#11 render_screen_show#16 level#10 ] ) always clobbers reg byte a +Statement [457] (byte~) play_init::$2 ← (byte) play_init::j#2 << (byte) 1 [ play_init::j#2 play_init::pli#2 play_init::idx#2 play_init::$2 ] ( main:11::play_init:22 [ score_bcd play_init::j#2 play_init::pli#2 play_init::idx#2 play_init::$2 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:90 [ play_init::j#2 play_init::j#1 ] Removing always clobbered register reg byte a as potential for zp[1]:93 [ play_init::idx#2 play_init::idx#1 ] -Statement [460] *((const byte**) playfield_lines + (byte~) play_init::$2) ← (byte*) play_init::pli#2 [ play_init::j#2 play_init::pli#2 play_init::idx#2 ] ( main:13::play_init:24 [ score_bcd play_init::j#2 play_init::pli#2 play_init::idx#2 ] ) always clobbers reg byte a -Statement [461] *((const byte*) playfield_lines_idx + (byte) play_init::j#2) ← (byte) play_init::idx#2 [ play_init::j#2 play_init::pli#2 play_init::idx#2 ] ( main:13::play_init:24 [ score_bcd play_init::j#2 play_init::pli#2 play_init::idx#2 ] ) always clobbers reg byte a -Statement [462] (byte*) play_init::pli#1 ← (byte*) play_init::pli#2 + (const byte) PLAYFIELD_COLS [ play_init::j#2 play_init::idx#2 play_init::pli#1 ] ( main:13::play_init:24 [ score_bcd play_init::j#2 play_init::idx#2 play_init::pli#1 ] ) always clobbers reg byte a -Statement [463] (byte) play_init::idx#1 ← (byte) play_init::idx#2 + (const byte) PLAYFIELD_COLS [ play_init::j#2 play_init::pli#1 play_init::idx#1 ] ( main:13::play_init:24 [ score_bcd play_init::j#2 play_init::pli#1 play_init::idx#1 ] ) always clobbers reg byte a -Statement [466] *((const byte*) playfield_lines_idx+(const byte) PLAYFIELD_LINES) ← (const byte) PLAYFIELD_COLS*(const byte) PLAYFIELD_LINES [ ] ( main:13::play_init:24 [ score_bcd ] ) always clobbers reg byte a -Statement [467] (byte) current_movedown_slow#1 ← *((const byte*) MOVEDOWN_SLOW_SPEEDS) [ current_movedown_slow#1 ] ( main:13::play_init:24 [ score_bcd current_movedown_slow#1 ] ) always clobbers reg byte a -Statement [469] (byte~) play_init::$3 ← (byte) play_init::b#2 << (byte) 2 [ current_movedown_slow#1 play_init::b#2 play_init::$3 ] ( main:13::play_init:24 [ score_bcd current_movedown_slow#1 play_init::b#2 play_init::$3 ] ) always clobbers reg byte a +Statement [458] *((const byte**) playfield_lines + (byte~) play_init::$2) ← (byte*) play_init::pli#2 [ play_init::j#2 play_init::pli#2 play_init::idx#2 ] ( main:11::play_init:22 [ score_bcd play_init::j#2 play_init::pli#2 play_init::idx#2 ] ) always clobbers reg byte a +Statement [459] *((const byte*) playfield_lines_idx + (byte) play_init::j#2) ← (byte) play_init::idx#2 [ play_init::j#2 play_init::pli#2 play_init::idx#2 ] ( main:11::play_init:22 [ score_bcd play_init::j#2 play_init::pli#2 play_init::idx#2 ] ) always clobbers reg byte a +Statement [460] (byte*) play_init::pli#1 ← (byte*) play_init::pli#2 + (const byte) PLAYFIELD_COLS [ play_init::j#2 play_init::idx#2 play_init::pli#1 ] ( main:11::play_init:22 [ score_bcd play_init::j#2 play_init::idx#2 play_init::pli#1 ] ) always clobbers reg byte a +Statement [461] (byte) play_init::idx#1 ← (byte) play_init::idx#2 + (const byte) PLAYFIELD_COLS [ play_init::j#2 play_init::pli#1 play_init::idx#1 ] ( main:11::play_init:22 [ score_bcd play_init::j#2 play_init::pli#1 play_init::idx#1 ] ) always clobbers reg byte a +Statement [464] *((const byte*) playfield_lines_idx+(const byte) PLAYFIELD_LINES) ← (const byte) PLAYFIELD_COLS*(const byte) PLAYFIELD_LINES [ ] ( main:11::play_init:22 [ score_bcd ] ) always clobbers reg byte a +Statement [465] (byte) current_movedown_slow#1 ← *((const byte*) MOVEDOWN_SLOW_SPEEDS) [ current_movedown_slow#1 ] ( main:11::play_init:22 [ score_bcd current_movedown_slow#1 ] ) always clobbers reg byte a +Statement [467] (byte~) play_init::$3 ← (byte) play_init::b#2 << (byte) 2 [ current_movedown_slow#1 play_init::b#2 play_init::$3 ] ( main:11::play_init:22 [ score_bcd current_movedown_slow#1 play_init::b#2 play_init::$3 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:94 [ play_init::b#2 play_init::b#1 ] -Statement [470] *((const dword*) score_add_bcd + (byte~) play_init::$3) ← *((const dword*) SCORE_BASE_BCD + (byte~) play_init::$3) [ current_movedown_slow#1 play_init::b#2 ] ( main:13::play_init:24 [ score_bcd current_movedown_slow#1 play_init::b#2 ] ) always clobbers reg byte a -Statement [475] *((const byte*) IRQ_STATUS) ← (const byte) IRQ_RASTER [ ] ( main:13::sprites_irq_init:22 [ score_bcd ] ) always clobbers reg byte a +Statement [468] *((const dword*) score_add_bcd + (byte~) play_init::$3) ← *((const dword*) SCORE_BASE_BCD + (byte~) play_init::$3) [ current_movedown_slow#1 play_init::b#2 ] ( main:11::play_init:22 [ score_bcd current_movedown_slow#1 play_init::b#2 ] ) always clobbers reg byte a +Statement [473] *((const byte*) IRQ_STATUS) ← (const byte) IRQ_RASTER [ ] ( main:11::sprites_irq_init:20 [ score_bcd ] ) always clobbers reg byte a Statement asm { ldaCIA1_INTERRUPT } always clobbers reg byte a -Statement [477] *((const byte*) PROCPORT_DDR) ← (const byte) PROCPORT_DDR_MEMORY_MASK [ ] ( main:13::sprites_irq_init:22 [ score_bcd ] ) always clobbers reg byte a -Statement [478] *((const byte*) PROCPORT) ← (const byte) PROCPORT_RAM_IO [ ] ( main:13::sprites_irq_init:22 [ score_bcd ] ) always clobbers reg byte a -Statement [479] *((const byte*) CIA1_INTERRUPT) ← (const byte) CIA_INTERRUPT_CLEAR [ ] ( main:13::sprites_irq_init:22 [ score_bcd ] ) always clobbers reg byte a -Statement [480] *((const byte*) VIC_CONTROL) ← *((const byte*) VIC_CONTROL) & (byte) $7f [ ] ( main:13::sprites_irq_init:22 [ score_bcd ] ) always clobbers reg byte a -Statement [481] *((const byte*) RASTER) ← (const byte) IRQ_RASTER_FIRST [ ] ( main:13::sprites_irq_init:22 [ score_bcd ] ) always clobbers reg byte a -Statement [482] *((const byte*) IRQ_ENABLE) ← (const byte) IRQ_RASTER [ ] ( main:13::sprites_irq_init:22 [ score_bcd ] ) always clobbers reg byte a -Statement [483] *((const void()**) HARDWARE_IRQ) ← &interrupt(HARDWARE_CLOBBER)(void()) sprites_irq() [ ] ( main:13::sprites_irq_init:22 [ score_bcd ] ) always clobbers reg byte a -Statement [486] *((const byte*) SPRITES_ENABLE) ← (byte) $f [ ] ( main:13::sprites_init:20 [ score_bcd ] ) always clobbers reg byte a -Statement [487] *((const byte*) SPRITES_MC) ← (byte) 0 [ ] ( main:13::sprites_init:20 [ score_bcd ] ) always clobbers reg byte a -Statement [488] *((const byte*) SPRITES_EXPAND_Y) ← *((const byte*) SPRITES_MC) [ ] ( main:13::sprites_init:20 [ score_bcd ] ) always clobbers reg byte a -Statement [489] *((const byte*) SPRITES_EXPAND_X) ← *((const byte*) SPRITES_EXPAND_Y) [ ] ( main:13::sprites_init:20 [ score_bcd ] ) always clobbers reg byte a -Statement [491] (byte) sprites_init::s2#0 ← (byte) sprites_init::s#2 << (byte) 1 [ sprites_init::s#2 sprites_init::xpos#2 sprites_init::s2#0 ] ( main:13::sprites_init:20 [ score_bcd sprites_init::s#2 sprites_init::xpos#2 sprites_init::s2#0 ] ) always clobbers reg byte a +Statement [475] *((const byte*) PROCPORT_DDR) ← (const byte) PROCPORT_DDR_MEMORY_MASK [ ] ( main:11::sprites_irq_init:20 [ score_bcd ] ) always clobbers reg byte a +Statement [476] *((const byte*) PROCPORT) ← (const byte) PROCPORT_RAM_IO [ ] ( main:11::sprites_irq_init:20 [ score_bcd ] ) always clobbers reg byte a +Statement [477] *((const byte*) CIA1_INTERRUPT) ← (const byte) CIA_INTERRUPT_CLEAR [ ] ( main:11::sprites_irq_init:20 [ score_bcd ] ) always clobbers reg byte a +Statement [478] *((const byte*) VIC_CONTROL) ← *((const byte*) VIC_CONTROL) & (byte) $7f [ ] ( main:11::sprites_irq_init:20 [ score_bcd ] ) always clobbers reg byte a +Statement [479] *((const byte*) RASTER) ← (const byte) IRQ_RASTER_FIRST [ ] ( main:11::sprites_irq_init:20 [ score_bcd ] ) always clobbers reg byte a +Statement [480] *((const byte*) IRQ_ENABLE) ← (const byte) IRQ_RASTER [ ] ( main:11::sprites_irq_init:20 [ score_bcd ] ) always clobbers reg byte a +Statement [481] *((const void()**) HARDWARE_IRQ) ← &interrupt(HARDWARE_CLOBBER)(void()) sprites_irq() [ ] ( main:11::sprites_irq_init:20 [ score_bcd ] ) always clobbers reg byte a +Statement [484] *((const byte*) SPRITES_ENABLE) ← (byte) $f [ ] ( main:11::sprites_init:18 [ score_bcd ] ) always clobbers reg byte a +Statement [485] *((const byte*) SPRITES_MC) ← (byte) 0 [ ] ( main:11::sprites_init:18 [ score_bcd ] ) always clobbers reg byte a +Statement [486] *((const byte*) SPRITES_EXPAND_Y) ← *((const byte*) SPRITES_MC) [ ] ( main:11::sprites_init:18 [ score_bcd ] ) always clobbers reg byte a +Statement [487] *((const byte*) SPRITES_EXPAND_X) ← *((const byte*) SPRITES_EXPAND_Y) [ ] ( main:11::sprites_init:18 [ score_bcd ] ) always clobbers reg byte a +Statement [489] (byte) sprites_init::s2#0 ← (byte) sprites_init::s#2 << (byte) 1 [ sprites_init::s#2 sprites_init::xpos#2 sprites_init::s2#0 ] ( main:11::sprites_init:18 [ score_bcd sprites_init::s#2 sprites_init::xpos#2 sprites_init::s2#0 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:95 [ sprites_init::s#2 sprites_init::s#1 ] Removing always clobbered register reg byte a as potential for zp[1]:96 [ sprites_init::xpos#2 sprites_init::xpos#1 ] -Statement [492] *((const byte*) SPRITES_XPOS + (byte) sprites_init::s2#0) ← (byte) sprites_init::xpos#2 [ sprites_init::s#2 sprites_init::xpos#2 ] ( main:13::sprites_init:20 [ score_bcd sprites_init::s#2 sprites_init::xpos#2 ] ) always clobbers reg byte a -Statement [493] *((const byte*) SPRITES_COLS + (byte) sprites_init::s#2) ← (const byte) BLACK [ sprites_init::s#2 sprites_init::xpos#2 ] ( main:13::sprites_init:20 [ score_bcd sprites_init::s#2 sprites_init::xpos#2 ] ) always clobbers reg byte a -Statement [494] (byte) sprites_init::xpos#1 ← (byte) sprites_init::xpos#2 + (byte) $18 [ sprites_init::s#2 sprites_init::xpos#1 ] ( main:13::sprites_init:20 [ score_bcd sprites_init::s#2 sprites_init::xpos#1 ] ) always clobbers reg byte a -Statement [499] *((const byte*) CIA2_PORT_A_DDR) ← (byte) 3 [ ] ( main:13::render_init:18 [ score_bcd ] ) always clobbers reg byte a -Statement [501] *((const byte*) CIA2_PORT_A) ← (const byte) render_init::vicSelectGfxBank1_toDd001_return#0 [ ] ( main:13::render_init:18 [ score_bcd ] ) always clobbers reg byte a -Statement [502] *((const byte*) D011) ← (const byte) VIC_ECM|(const byte) VIC_DEN|(const byte) VIC_RSEL|(byte) 3 [ ] ( main:13::render_init:18 [ score_bcd ] ) always clobbers reg byte a -Statement [503] *((const byte*) BORDERCOL) ← (const byte) BLACK [ ] ( main:13::render_init:18 [ score_bcd ] ) always clobbers reg byte a -Statement [504] *((const byte*) BGCOL1) ← (const byte) BLACK [ ] ( main:13::render_init:18 [ score_bcd ] ) always clobbers reg byte a -Statement [505] *((const byte*) BGCOL2) ← *((const byte*) PIECES_COLORS_1) [ ] ( main:13::render_init:18 [ score_bcd ] ) always clobbers reg byte a -Statement [506] *((const byte*) BGCOL3) ← *((const byte*) PIECES_COLORS_2) [ ] ( main:13::render_init:18 [ score_bcd ] ) always clobbers reg byte a -Statement [507] *((const byte*) BGCOL4) ← (const byte) GREY [ ] ( main:13::render_init:18 [ score_bcd ] ) always clobbers reg byte a -Statement [512] (byte~) render_init::$5 ← (byte) render_init::i#2 << (byte) 1 [ render_init::i#2 render_init::li_1#2 render_init::li_2#2 render_init::$5 ] ( main:13::render_init:18 [ score_bcd render_init::i#2 render_init::li_1#2 render_init::li_2#2 render_init::$5 ] ) always clobbers reg byte a +Statement [490] *((const byte*) SPRITES_XPOS + (byte) sprites_init::s2#0) ← (byte) sprites_init::xpos#2 [ sprites_init::s#2 sprites_init::xpos#2 ] ( main:11::sprites_init:18 [ score_bcd sprites_init::s#2 sprites_init::xpos#2 ] ) always clobbers reg byte a +Statement [491] *((const byte*) SPRITES_COLS + (byte) sprites_init::s#2) ← (const byte) BLACK [ sprites_init::s#2 sprites_init::xpos#2 ] ( main:11::sprites_init:18 [ score_bcd sprites_init::s#2 sprites_init::xpos#2 ] ) always clobbers reg byte a +Statement [492] (byte) sprites_init::xpos#1 ← (byte) sprites_init::xpos#2 + (byte) $18 [ sprites_init::s#2 sprites_init::xpos#1 ] ( main:11::sprites_init:18 [ score_bcd sprites_init::s#2 sprites_init::xpos#1 ] ) always clobbers reg byte a +Statement [497] *((const byte*) CIA2_PORT_A_DDR) ← (byte) 3 [ ] ( main:11::render_init:16 [ score_bcd ] ) always clobbers reg byte a +Statement [499] *((const byte*) CIA2_PORT_A) ← (const byte) render_init::vicSelectGfxBank1_toDd001_return#0 [ ] ( main:11::render_init:16 [ score_bcd ] ) always clobbers reg byte a +Statement [500] *((const byte*) D011) ← (const byte) VIC_ECM|(const byte) VIC_DEN|(const byte) VIC_RSEL|(byte) 3 [ ] ( main:11::render_init:16 [ score_bcd ] ) always clobbers reg byte a +Statement [501] *((const byte*) BORDERCOL) ← (const byte) BLACK [ ] ( main:11::render_init:16 [ score_bcd ] ) always clobbers reg byte a +Statement [502] *((const byte*) BGCOL1) ← (const byte) BLACK [ ] ( main:11::render_init:16 [ score_bcd ] ) always clobbers reg byte a +Statement [503] *((const byte*) BGCOL2) ← *((const byte*) PIECES_COLORS_1) [ ] ( main:11::render_init:16 [ score_bcd ] ) always clobbers reg byte a +Statement [504] *((const byte*) BGCOL3) ← *((const byte*) PIECES_COLORS_2) [ ] ( main:11::render_init:16 [ score_bcd ] ) always clobbers reg byte a +Statement [505] *((const byte*) BGCOL4) ← (const byte) GREY [ ] ( main:11::render_init:16 [ score_bcd ] ) always clobbers reg byte a +Statement [510] (byte~) render_init::$5 ← (byte) render_init::i#2 << (byte) 1 [ render_init::i#2 render_init::li_1#2 render_init::li_2#2 render_init::$5 ] ( main:11::render_init:16 [ score_bcd render_init::i#2 render_init::li_1#2 render_init::li_2#2 render_init::$5 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:97 [ render_init::i#2 render_init::i#1 ] -Statement [513] *((const byte**) screen_lines_1 + (byte~) render_init::$5) ← (byte*) render_init::li_1#2 [ render_init::i#2 render_init::li_1#2 render_init::li_2#2 render_init::$5 ] ( main:13::render_init:18 [ score_bcd render_init::i#2 render_init::li_1#2 render_init::li_2#2 render_init::$5 ] ) always clobbers reg byte a +Statement [511] *((const byte**) screen_lines_1 + (byte~) render_init::$5) ← (byte*) render_init::li_1#2 [ render_init::i#2 render_init::li_1#2 render_init::li_2#2 render_init::$5 ] ( main:11::render_init:16 [ score_bcd render_init::i#2 render_init::li_1#2 render_init::li_2#2 render_init::$5 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:215 [ render_init::$5 ] -Statement [514] *((const byte**) screen_lines_2 + (byte~) render_init::$5) ← (byte*) render_init::li_2#2 [ render_init::i#2 render_init::li_1#2 render_init::li_2#2 ] ( main:13::render_init:18 [ score_bcd render_init::i#2 render_init::li_1#2 render_init::li_2#2 ] ) always clobbers reg byte a -Statement [515] (byte*) render_init::li_1#1 ← (byte*) render_init::li_1#2 + (byte) $28 [ render_init::i#2 render_init::li_2#2 render_init::li_1#1 ] ( main:13::render_init:18 [ score_bcd render_init::i#2 render_init::li_2#2 render_init::li_1#1 ] ) always clobbers reg byte a -Statement [516] (byte*) render_init::li_2#1 ← (byte*) render_init::li_2#2 + (byte) $28 [ render_init::i#2 render_init::li_1#1 render_init::li_2#1 ] ( main:13::render_init:18 [ score_bcd render_init::i#2 render_init::li_1#1 render_init::li_2#1 ] ) always clobbers reg byte a -Statement [523] *((byte*) render_screen_original::screen#5) ← (const byte) render_screen_original::SPACE [ render_screen_original::oscr#4 render_screen_original::ocols#4 render_screen_original::y#6 render_screen_original::screen#5 render_screen_original::cols#4 render_screen_original::x#4 ] ( main:13::render_init:18::render_screen_original:508 [ score_bcd render_screen_original::oscr#4 render_screen_original::ocols#4 render_screen_original::y#6 render_screen_original::screen#5 render_screen_original::cols#4 render_screen_original::x#4 ] main:13::render_init:18::render_screen_original:510 [ score_bcd render_screen_original::oscr#4 render_screen_original::ocols#4 render_screen_original::y#6 render_screen_original::screen#5 render_screen_original::cols#4 render_screen_original::x#4 ] ) always clobbers reg byte a reg byte y +Statement [512] *((const byte**) screen_lines_2 + (byte~) render_init::$5) ← (byte*) render_init::li_2#2 [ render_init::i#2 render_init::li_1#2 render_init::li_2#2 ] ( main:11::render_init:16 [ score_bcd render_init::i#2 render_init::li_1#2 render_init::li_2#2 ] ) always clobbers reg byte a +Statement [513] (byte*) render_init::li_1#1 ← (byte*) render_init::li_1#2 + (byte) $28 [ render_init::i#2 render_init::li_2#2 render_init::li_1#1 ] ( main:11::render_init:16 [ score_bcd render_init::i#2 render_init::li_2#2 render_init::li_1#1 ] ) always clobbers reg byte a +Statement [514] (byte*) render_init::li_2#1 ← (byte*) render_init::li_2#2 + (byte) $28 [ render_init::i#2 render_init::li_1#1 render_init::li_2#1 ] ( main:11::render_init:16 [ score_bcd render_init::i#2 render_init::li_1#1 render_init::li_2#1 ] ) always clobbers reg byte a +Statement [521] *((byte*) render_screen_original::screen#5) ← (const byte) render_screen_original::SPACE [ render_screen_original::oscr#4 render_screen_original::ocols#4 render_screen_original::y#6 render_screen_original::screen#5 render_screen_original::cols#4 render_screen_original::x#4 ] ( main:11::render_init:16::render_screen_original:506 [ score_bcd render_screen_original::oscr#4 render_screen_original::ocols#4 render_screen_original::y#6 render_screen_original::screen#5 render_screen_original::cols#4 render_screen_original::x#4 ] main:11::render_init:16::render_screen_original:508 [ score_bcd render_screen_original::oscr#4 render_screen_original::ocols#4 render_screen_original::y#6 render_screen_original::screen#5 render_screen_original::cols#4 render_screen_original::x#4 ] ) always clobbers reg byte a reg byte y Removing always clobbered register reg byte a as potential for zp[1]:102 [ render_screen_original::y#6 render_screen_original::y#1 ] Removing always clobbered register reg byte y as potential for zp[1]:102 [ render_screen_original::y#6 render_screen_original::y#1 ] Removing always clobbered register reg byte a as potential for zp[1]:111 [ render_screen_original::x#6 render_screen_original::x#5 render_screen_original::x#4 render_screen_original::x#1 render_screen_original::x#2 render_screen_original::x#3 ] Removing always clobbered register reg byte y as potential for zp[1]:111 [ render_screen_original::x#6 render_screen_original::x#5 render_screen_original::x#4 render_screen_original::x#1 render_screen_original::x#2 render_screen_original::x#3 ] -Statement [525] *((byte*) render_screen_original::cols#4) ← (const byte) BLACK [ render_screen_original::oscr#4 render_screen_original::ocols#4 render_screen_original::y#6 render_screen_original::cols#4 render_screen_original::x#4 render_screen_original::screen#2 ] ( main:13::render_init:18::render_screen_original:508 [ score_bcd render_screen_original::oscr#4 render_screen_original::ocols#4 render_screen_original::y#6 render_screen_original::cols#4 render_screen_original::x#4 render_screen_original::screen#2 ] main:13::render_init:18::render_screen_original:510 [ score_bcd render_screen_original::oscr#4 render_screen_original::ocols#4 render_screen_original::y#6 render_screen_original::cols#4 render_screen_original::x#4 render_screen_original::screen#2 ] ) always clobbers reg byte a reg byte y -Statement [530] *((byte*) render_screen_original::screen#6) ← *((byte*) render_screen_original::oscr#2) [ render_screen_original::y#6 render_screen_original::oscr#2 render_screen_original::screen#6 render_screen_original::ocols#2 render_screen_original::cols#5 render_screen_original::x#5 ] ( main:13::render_init:18::render_screen_original:508 [ score_bcd render_screen_original::y#6 render_screen_original::oscr#2 render_screen_original::screen#6 render_screen_original::ocols#2 render_screen_original::cols#5 render_screen_original::x#5 ] main:13::render_init:18::render_screen_original:510 [ score_bcd render_screen_original::y#6 render_screen_original::oscr#2 render_screen_original::screen#6 render_screen_original::ocols#2 render_screen_original::cols#5 render_screen_original::x#5 ] ) always clobbers reg byte a reg byte y -Statement [533] *((byte*) render_screen_original::cols#5) ← *((byte*) render_screen_original::ocols#2) [ render_screen_original::y#6 render_screen_original::oscr#1 render_screen_original::ocols#2 render_screen_original::cols#5 render_screen_original::x#5 render_screen_original::screen#3 ] ( main:13::render_init:18::render_screen_original:508 [ score_bcd render_screen_original::y#6 render_screen_original::oscr#1 render_screen_original::ocols#2 render_screen_original::cols#5 render_screen_original::x#5 render_screen_original::screen#3 ] main:13::render_init:18::render_screen_original:510 [ score_bcd render_screen_original::y#6 render_screen_original::oscr#1 render_screen_original::ocols#2 render_screen_original::cols#5 render_screen_original::x#5 render_screen_original::screen#3 ] ) always clobbers reg byte a reg byte y -Statement [539] *((byte*) render_screen_original::screen#7) ← (const byte) render_screen_original::SPACE [ render_screen_original::y#6 render_screen_original::oscr#1 render_screen_original::ocols#1 render_screen_original::screen#7 render_screen_original::cols#6 render_screen_original::x#6 ] ( main:13::render_init:18::render_screen_original:508 [ score_bcd render_screen_original::y#6 render_screen_original::oscr#1 render_screen_original::ocols#1 render_screen_original::screen#7 render_screen_original::cols#6 render_screen_original::x#6 ] main:13::render_init:18::render_screen_original:510 [ score_bcd render_screen_original::y#6 render_screen_original::oscr#1 render_screen_original::ocols#1 render_screen_original::screen#7 render_screen_original::cols#6 render_screen_original::x#6 ] ) always clobbers reg byte a reg byte y -Statement [541] *((byte*) render_screen_original::cols#6) ← (const byte) BLACK [ render_screen_original::y#6 render_screen_original::screen#10 render_screen_original::oscr#1 render_screen_original::ocols#1 render_screen_original::cols#6 render_screen_original::x#6 ] ( main:13::render_init:18::render_screen_original:508 [ score_bcd render_screen_original::y#6 render_screen_original::screen#10 render_screen_original::oscr#1 render_screen_original::ocols#1 render_screen_original::cols#6 render_screen_original::x#6 ] main:13::render_init:18::render_screen_original:510 [ score_bcd render_screen_original::y#6 render_screen_original::screen#10 render_screen_original::oscr#1 render_screen_original::ocols#1 render_screen_original::cols#6 render_screen_original::x#6 ] ) always clobbers reg byte a reg byte y -Statement [548] *((const word*) SID_VOICE3_FREQ) ← (word) $ffff [ ] ( main:13::sid_rnd_init:16 [ score_bcd ] ) always clobbers reg byte a -Statement [549] *((const byte*) SID_VOICE3_CONTROL) ← (const byte) SID_CONTROL_NOISE [ ] ( main:13::sid_rnd_init:16 [ score_bcd ] ) always clobbers reg byte a -Statement [559] if(*((const byte*) RASTER)<(byte) sprites_irq::raster_sprite_gfx_modify) goto sprites_irq::@8 [ render_screen_showing irq_raster_next irq_sprite_ypos irq_sprite_ptr irq_cnt sprites_irq::raster_sprite_gfx_modify ] ( [ render_screen_showing irq_raster_next irq_sprite_ypos irq_sprite_ptr irq_cnt sprites_irq::raster_sprite_gfx_modify ] ) always clobbers reg byte a -Statement [561] if((byte) render_screen_showing==(byte) 0) goto sprites_irq::@1 [ irq_raster_next irq_sprite_ypos irq_sprite_ptr irq_cnt sprites_irq::ptr#0 ] ( [ irq_raster_next irq_sprite_ypos irq_sprite_ptr irq_cnt sprites_irq::ptr#0 ] ) always clobbers reg byte a +Statement [523] *((byte*) render_screen_original::cols#4) ← (const byte) BLACK [ render_screen_original::oscr#4 render_screen_original::ocols#4 render_screen_original::y#6 render_screen_original::cols#4 render_screen_original::x#4 render_screen_original::screen#2 ] ( main:11::render_init:16::render_screen_original:506 [ score_bcd render_screen_original::oscr#4 render_screen_original::ocols#4 render_screen_original::y#6 render_screen_original::cols#4 render_screen_original::x#4 render_screen_original::screen#2 ] main:11::render_init:16::render_screen_original:508 [ score_bcd render_screen_original::oscr#4 render_screen_original::ocols#4 render_screen_original::y#6 render_screen_original::cols#4 render_screen_original::x#4 render_screen_original::screen#2 ] ) always clobbers reg byte a reg byte y +Statement [528] *((byte*) render_screen_original::screen#6) ← *((byte*) render_screen_original::oscr#2) [ render_screen_original::y#6 render_screen_original::oscr#2 render_screen_original::screen#6 render_screen_original::ocols#2 render_screen_original::cols#5 render_screen_original::x#5 ] ( main:11::render_init:16::render_screen_original:506 [ score_bcd render_screen_original::y#6 render_screen_original::oscr#2 render_screen_original::screen#6 render_screen_original::ocols#2 render_screen_original::cols#5 render_screen_original::x#5 ] main:11::render_init:16::render_screen_original:508 [ score_bcd render_screen_original::y#6 render_screen_original::oscr#2 render_screen_original::screen#6 render_screen_original::ocols#2 render_screen_original::cols#5 render_screen_original::x#5 ] ) always clobbers reg byte a reg byte y +Statement [531] *((byte*) render_screen_original::cols#5) ← *((byte*) render_screen_original::ocols#2) [ render_screen_original::y#6 render_screen_original::oscr#1 render_screen_original::ocols#2 render_screen_original::cols#5 render_screen_original::x#5 render_screen_original::screen#3 ] ( main:11::render_init:16::render_screen_original:506 [ score_bcd render_screen_original::y#6 render_screen_original::oscr#1 render_screen_original::ocols#2 render_screen_original::cols#5 render_screen_original::x#5 render_screen_original::screen#3 ] main:11::render_init:16::render_screen_original:508 [ score_bcd render_screen_original::y#6 render_screen_original::oscr#1 render_screen_original::ocols#2 render_screen_original::cols#5 render_screen_original::x#5 render_screen_original::screen#3 ] ) always clobbers reg byte a reg byte y +Statement [537] *((byte*) render_screen_original::screen#7) ← (const byte) render_screen_original::SPACE [ render_screen_original::y#6 render_screen_original::oscr#1 render_screen_original::ocols#1 render_screen_original::screen#7 render_screen_original::cols#6 render_screen_original::x#6 ] ( main:11::render_init:16::render_screen_original:506 [ score_bcd render_screen_original::y#6 render_screen_original::oscr#1 render_screen_original::ocols#1 render_screen_original::screen#7 render_screen_original::cols#6 render_screen_original::x#6 ] main:11::render_init:16::render_screen_original:508 [ score_bcd render_screen_original::y#6 render_screen_original::oscr#1 render_screen_original::ocols#1 render_screen_original::screen#7 render_screen_original::cols#6 render_screen_original::x#6 ] ) always clobbers reg byte a reg byte y +Statement [539] *((byte*) render_screen_original::cols#6) ← (const byte) BLACK [ render_screen_original::y#6 render_screen_original::screen#10 render_screen_original::oscr#1 render_screen_original::ocols#1 render_screen_original::cols#6 render_screen_original::x#6 ] ( main:11::render_init:16::render_screen_original:506 [ score_bcd render_screen_original::y#6 render_screen_original::screen#10 render_screen_original::oscr#1 render_screen_original::ocols#1 render_screen_original::cols#6 render_screen_original::x#6 ] main:11::render_init:16::render_screen_original:508 [ score_bcd render_screen_original::y#6 render_screen_original::screen#10 render_screen_original::oscr#1 render_screen_original::ocols#1 render_screen_original::cols#6 render_screen_original::x#6 ] ) always clobbers reg byte a reg byte y +Statement [546] *((const word*) SID_VOICE3_FREQ) ← (word) $ffff [ ] ( main:11::sid_rnd_init:14 [ score_bcd ] ) always clobbers reg byte a +Statement [547] *((const byte*) SID_VOICE3_CONTROL) ← (const byte) SID_CONTROL_NOISE [ ] ( main:11::sid_rnd_init:14 [ score_bcd ] ) always clobbers reg byte a +Statement [557] if(*((const byte*) RASTER)<(byte) sprites_irq::raster_sprite_gfx_modify) goto sprites_irq::@8 [ render_screen_showing irq_raster_next irq_sprite_ypos irq_sprite_ptr irq_cnt sprites_irq::raster_sprite_gfx_modify ] ( [ render_screen_showing irq_raster_next irq_sprite_ypos irq_sprite_ptr irq_cnt sprites_irq::raster_sprite_gfx_modify ] ) always clobbers reg byte a +Statement [559] if((byte) render_screen_showing==(byte) 0) goto sprites_irq::@1 [ irq_raster_next irq_sprite_ypos irq_sprite_ptr irq_cnt sprites_irq::ptr#0 ] ( [ irq_raster_next irq_sprite_ypos irq_sprite_ptr irq_cnt sprites_irq::ptr#0 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:219 [ sprites_irq::ptr#0 ] -Statement [569] if((byte) irq_cnt==(byte) 9) goto sprites_irq::@3 [ irq_raster_next irq_sprite_ypos irq_sprite_ptr irq_cnt ] ( [ irq_raster_next irq_sprite_ypos irq_sprite_ptr irq_cnt ] ) always clobbers reg byte a -Statement [570] if((byte) irq_cnt==(byte) $a) goto sprites_irq::@4 [ irq_raster_next irq_sprite_ypos irq_sprite_ptr ] ( [ irq_raster_next irq_sprite_ypos irq_sprite_ptr ] ) always clobbers reg byte a -Statement [571] (byte) irq_raster_next ← (byte) irq_raster_next + (byte) $14 [ irq_raster_next irq_sprite_ypos irq_sprite_ptr ] ( [ irq_raster_next irq_sprite_ypos irq_sprite_ptr ] ) always clobbers reg byte a reg byte x -Statement [572] (byte) irq_sprite_ypos ← (byte) irq_sprite_ypos + (byte) $15 [ irq_raster_next irq_sprite_ptr ] ( [ irq_raster_next irq_sprite_ptr ] ) always clobbers reg byte a reg byte x -Statement [573] (byte) irq_sprite_ptr ← (byte) irq_sprite_ptr + (byte) 3 [ irq_raster_next ] ( [ irq_raster_next ] ) always clobbers reg byte a reg byte x -Statement [574] *((const byte*) RASTER) ← (byte) irq_raster_next [ ] ( [ ] ) always clobbers reg byte a -Statement [575] *((const byte*) IRQ_STATUS) ← (const byte) IRQ_RASTER [ ] ( [ ] ) always clobbers reg byte a -Statement [576] return [ ] ( [ ] ) always clobbers reg byte a reg byte x reg byte y -Statement [577] (byte) irq_cnt ← (byte) 0 [ irq_sprite_ypos irq_sprite_ptr ] ( [ irq_sprite_ypos irq_sprite_ptr ] ) always clobbers reg byte a -Statement [578] (byte) irq_raster_next ← (const byte) IRQ_RASTER_FIRST [ irq_raster_next irq_sprite_ypos irq_sprite_ptr ] ( [ irq_raster_next irq_sprite_ypos irq_sprite_ptr ] ) always clobbers reg byte a -Statement [579] (byte) irq_sprite_ypos ← (byte) irq_sprite_ypos + (byte) $15 [ irq_raster_next irq_sprite_ptr ] ( [ irq_raster_next irq_sprite_ptr ] ) always clobbers reg byte a reg byte x -Statement [580] (byte) irq_sprite_ptr ← (byte) irq_sprite_ptr + (byte) 3 [ irq_raster_next ] ( [ irq_raster_next ] ) always clobbers reg byte a reg byte x -Statement [581] (byte) irq_raster_next ← (byte) irq_raster_next + (byte) $15 [ irq_raster_next ] ( [ irq_raster_next ] ) always clobbers reg byte a reg byte x -Statement [582] (byte) irq_sprite_ypos ← (const byte) SPRITES_FIRST_YPOS [ irq_raster_next ] ( [ irq_raster_next ] ) always clobbers reg byte a -Statement [584] (byte) irq_sprite_ptr ← (const byte) sprites_irq::toSpritePtr2_return#0 [ irq_raster_next ] ( [ irq_raster_next ] ) always clobbers reg byte a +Statement [567] if((byte) irq_cnt==(byte) 9) goto sprites_irq::@3 [ irq_raster_next irq_sprite_ypos irq_sprite_ptr irq_cnt ] ( [ irq_raster_next irq_sprite_ypos irq_sprite_ptr irq_cnt ] ) always clobbers reg byte a +Statement [568] if((byte) irq_cnt==(byte) $a) goto sprites_irq::@4 [ irq_raster_next irq_sprite_ypos irq_sprite_ptr ] ( [ irq_raster_next irq_sprite_ypos irq_sprite_ptr ] ) always clobbers reg byte a +Statement [569] (byte) irq_raster_next ← (byte) irq_raster_next + (byte) $14 [ irq_raster_next irq_sprite_ypos irq_sprite_ptr ] ( [ irq_raster_next irq_sprite_ypos irq_sprite_ptr ] ) always clobbers reg byte a reg byte x +Statement [570] (byte) irq_sprite_ypos ← (byte) irq_sprite_ypos + (byte) $15 [ irq_raster_next irq_sprite_ptr ] ( [ irq_raster_next irq_sprite_ptr ] ) always clobbers reg byte a reg byte x +Statement [571] (byte) irq_sprite_ptr ← (byte) irq_sprite_ptr + (byte) 3 [ irq_raster_next ] ( [ irq_raster_next ] ) always clobbers reg byte a reg byte x +Statement [572] *((const byte*) RASTER) ← (byte) irq_raster_next [ ] ( [ ] ) always clobbers reg byte a +Statement [573] *((const byte*) IRQ_STATUS) ← (const byte) IRQ_RASTER [ ] ( [ ] ) always clobbers reg byte a +Statement [574] return [ ] ( [ ] ) always clobbers reg byte a reg byte x reg byte y +Statement [575] (byte) irq_cnt ← (byte) 0 [ irq_sprite_ypos irq_sprite_ptr ] ( [ irq_sprite_ypos irq_sprite_ptr ] ) always clobbers reg byte a +Statement [576] (byte) irq_raster_next ← (const byte) IRQ_RASTER_FIRST [ irq_raster_next irq_sprite_ypos irq_sprite_ptr ] ( [ irq_raster_next irq_sprite_ypos irq_sprite_ptr ] ) always clobbers reg byte a +Statement [577] (byte) irq_sprite_ypos ← (byte) irq_sprite_ypos + (byte) $15 [ irq_raster_next irq_sprite_ptr ] ( [ irq_raster_next irq_sprite_ptr ] ) always clobbers reg byte a reg byte x +Statement [578] (byte) irq_sprite_ptr ← (byte) irq_sprite_ptr + (byte) 3 [ irq_raster_next ] ( [ irq_raster_next ] ) always clobbers reg byte a reg byte x +Statement [579] (byte) irq_raster_next ← (byte) irq_raster_next + (byte) $15 [ irq_raster_next ] ( [ irq_raster_next ] ) always clobbers reg byte a reg byte x +Statement [580] (byte) irq_sprite_ypos ← (const byte) SPRITES_FIRST_YPOS [ irq_raster_next ] ( [ irq_raster_next ] ) always clobbers reg byte a +Statement [582] (byte) irq_sprite_ptr ← (const byte) sprites_irq::toSpritePtr2_return#0 [ irq_raster_next ] ( [ irq_raster_next ] ) always clobbers reg byte a Statement [1] (byte) render_screen_showing ← (byte) 0 [ ] ( [ ] ) always clobbers reg byte a Statement [2] (dword) score_bcd ← (dword) 0 [ score_bcd ] ( [ score_bcd ] ) always clobbers reg byte a -Statement [7] (byte) irq_raster_next ← (const byte) IRQ_RASTER_FIRST [ score_bcd ] ( [ score_bcd ] ) always clobbers reg byte a -Statement [8] (byte) irq_sprite_ypos ← (const byte) SPRITES_FIRST_YPOS+(byte) $15 [ score_bcd ] ( [ score_bcd ] ) always clobbers reg byte a -Statement [10] (byte) irq_sprite_ptr ← (const byte) toSpritePtr1_return#0+(byte) 3 [ score_bcd ] ( [ score_bcd ] ) always clobbers reg byte a -Statement [11] (byte) irq_cnt ← (byte) 0 [ score_bcd ] ( [ score_bcd ] ) always clobbers reg byte a -Statement [33] (byte*) current_piece_gfx#111 ← (byte*)*((const word*) PIECES + (byte~) play_spawn_current::$7) [ score_bcd current_ypos#97 current_ypos#6 current_xpos#118 current_xpos#100 current_piece_gfx#111 play_spawn_current::$7 current_piece_char#5 play_spawn_current::piece_idx#2 current_movedown_slow#1 game_over#52 ] ( main:13 [ score_bcd current_ypos#97 current_ypos#6 current_xpos#118 current_xpos#100 current_piece_gfx#111 play_spawn_current::$7 current_piece_char#5 play_spawn_current::piece_idx#2 current_movedown_slow#1 game_over#52 ] ) always clobbers reg byte a -Statement [38] (byte*) current_piece#101 ← (byte*)*((const word*) PIECES + (byte~) play_spawn_current::$7) [ score_bcd current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 play_spawn_current::piece_idx#2 current_piece#101 current_movedown_slow#1 game_over#52 ] ( main:13 [ score_bcd current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 play_spawn_current::piece_idx#2 current_piece#101 current_movedown_slow#1 game_over#52 ] ) always clobbers reg byte a -Statement [39] (byte*) current_piece_gfx#123 ← (byte*)*((const word*) PIECES + (byte~) play_spawn_current::$7) [ score_bcd current_ypos#6 current_xpos#100 current_piece_char#5 play_spawn_current::piece_idx#2 current_piece#101 current_piece_gfx#123 current_movedown_slow#1 game_over#52 ] ( main:13 [ score_bcd current_ypos#6 current_xpos#100 current_piece_char#5 play_spawn_current::piece_idx#2 current_piece#101 current_piece_gfx#123 current_movedown_slow#1 game_over#52 ] ) always clobbers reg byte a -Statement [41] if(*((const byte*) RASTER)!=(byte) $ff) goto main::@2 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 keyboard_events_size#19 current_movedown_counter#16 lines_bcd#19 level#10 level_bcd#11 ] ( main:13 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 keyboard_events_size#19 current_movedown_counter#16 lines_bcd#19 level#10 level_bcd#11 ] ) always clobbers reg byte a -Statement [50] if((byte) game_over#10==(byte) 0) goto main::@4 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 level#10 level_bcd#11 keyboard_events_size#16 main::key_event#0 ] ( main:13 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 level#10 level_bcd#11 keyboard_events_size#16 main::key_event#0 ] ) always clobbers reg byte a +Statement [5] (byte) irq_raster_next ← (const byte) IRQ_RASTER_FIRST [ score_bcd ] ( [ score_bcd ] ) always clobbers reg byte a +Statement [6] (byte) irq_sprite_ypos ← (const byte) SPRITES_FIRST_YPOS+(byte) $15 [ score_bcd ] ( [ score_bcd ] ) always clobbers reg byte a +Statement [8] (byte) irq_sprite_ptr ← (const byte) toSpritePtr1_return#0+(byte) 3 [ score_bcd ] ( [ score_bcd ] ) always clobbers reg byte a +Statement [9] (byte) irq_cnt ← (byte) 0 [ score_bcd ] ( [ score_bcd ] ) always clobbers reg byte a +Statement [31] (byte*) current_piece_gfx#111 ← (byte*)*((const word*) PIECES + (byte~) play_spawn_current::$7) [ score_bcd current_ypos#97 current_ypos#6 current_xpos#118 current_xpos#100 current_piece_gfx#111 play_spawn_current::$7 current_piece_char#5 play_spawn_current::piece_idx#2 current_movedown_slow#1 game_over#52 ] ( main:11 [ score_bcd current_ypos#97 current_ypos#6 current_xpos#118 current_xpos#100 current_piece_gfx#111 play_spawn_current::$7 current_piece_char#5 play_spawn_current::piece_idx#2 current_movedown_slow#1 game_over#52 ] ) always clobbers reg byte a +Statement [36] (byte*) current_piece#101 ← (byte*)*((const word*) PIECES + (byte~) play_spawn_current::$7) [ score_bcd current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 play_spawn_current::piece_idx#2 current_piece#101 current_movedown_slow#1 game_over#52 ] ( main:11 [ score_bcd current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 play_spawn_current::piece_idx#2 current_piece#101 current_movedown_slow#1 game_over#52 ] ) always clobbers reg byte a +Statement [37] (byte*) current_piece_gfx#123 ← (byte*)*((const word*) PIECES + (byte~) play_spawn_current::$7) [ score_bcd current_ypos#6 current_xpos#100 current_piece_char#5 play_spawn_current::piece_idx#2 current_piece#101 current_piece_gfx#123 current_movedown_slow#1 game_over#52 ] ( main:11 [ score_bcd current_ypos#6 current_xpos#100 current_piece_char#5 play_spawn_current::piece_idx#2 current_piece#101 current_piece_gfx#123 current_movedown_slow#1 game_over#52 ] ) always clobbers reg byte a +Statement [39] if(*((const byte*) RASTER)!=(byte) $ff) goto main::@2 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 keyboard_events_size#19 current_movedown_counter#16 lines_bcd#19 level#10 level_bcd#11 ] ( main:11 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 keyboard_events_size#19 current_movedown_counter#16 lines_bcd#19 level#10 level_bcd#11 ] ) always clobbers reg byte a +Statement [48] if((byte) game_over#10==(byte) 0) goto main::@4 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 level#10 level_bcd#11 keyboard_events_size#16 main::key_event#0 ] ( main:11 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 level#10 level_bcd#11 keyboard_events_size#16 main::key_event#0 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:122 [ main::key_event#0 ] -Statement [62] (byte*) current_piece_gfx#112 ← (byte*) current_piece_gfx#18 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 current_ypos#98 render_screen_render#64 current_xpos#119 current_piece_gfx#112 ] ( main:13 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 current_ypos#98 render_screen_render#64 current_xpos#119 current_piece_gfx#112 ] ) always clobbers reg byte a -Statement [72] (byte) render_screen_render#11 ← (byte) render_screen_render#18 ^ (byte) $20 [ render_screen_show#16 render_screen_render#11 ] ( main:13::render_screen_swap:71 [ score_bcd current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 render_screen_show#16 render_screen_render#11 ] ) always clobbers reg byte a -Statement [73] (byte) render_screen_show#13 ← (byte) render_screen_show#16 ^ (byte) $20 [ render_screen_show#13 render_screen_render#11 ] ( main:13::render_screen_swap:71 [ score_bcd current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 render_screen_show#13 render_screen_render#11 ] ) always clobbers reg byte a -Statement [75] if((byte) render_screen_render#18==(byte) 0) goto render_score::@1 [ render_screen_render#18 lines_bcd#15 level_bcd#17 ] ( main:13::render_score:69 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 ] ) always clobbers reg byte a -Statement [78] (byte*) render_bcd::screen#0 ← (byte*) render_score::screen#3 [ render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::screen#0 ] ( main:13::render_score:69 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::screen#0 ] ) always clobbers reg byte a -Statement [81] (byte*) render_bcd::screen#1 ← (byte*) render_score::screen#3 [ render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::screen#1 ] ( main:13::render_score:69 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::screen#1 ] ) always clobbers reg byte a -Statement [84] (byte*) render_bcd::screen#2 ← (byte*) render_score::screen#3 [ render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::screen#2 ] ( main:13::render_score:69 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::screen#2 ] ) always clobbers reg byte a -Statement [87] (byte) render_bcd::bcd#3 ← > (word) lines_bcd#15 [ render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::bcd#3 ] ( main:13::render_score:69 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::bcd#3 ] ) always clobbers reg byte a -Statement [88] (byte*) render_bcd::screen#3 ← (byte*) render_score::screen#3 [ render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::bcd#3 render_bcd::screen#3 ] ( main:13::render_score:69 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::bcd#3 render_bcd::screen#3 ] ) always clobbers reg byte a -Statement [90] (byte) render_bcd::bcd#4 ← < (word) lines_bcd#15 [ render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::bcd#4 ] ( main:13::render_score:69 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::bcd#4 ] ) always clobbers reg byte a -Statement [91] (byte*) render_bcd::screen#4 ← (byte*) render_score::screen#3 [ render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::bcd#4 render_bcd::screen#4 ] ( main:13::render_score:69 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::bcd#4 render_bcd::screen#4 ] ) always clobbers reg byte a -Statement [93] (byte*) render_bcd::screen#5 ← (byte*) render_score::screen#3 [ render_screen_render#18 lines_bcd#15 level_bcd#17 render_bcd::screen#5 ] ( main:13::render_score:69 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_bcd::screen#5 ] ) always clobbers reg byte a -Statement [98] (byte*) render_bcd::screen_pos#0 ← (byte*) render_bcd::screen#6 + (word) render_bcd::offset#6 [ render_bcd::only_low#6 render_bcd::bcd#6 render_bcd::screen_pos#0 ] ( main:13::render_score:69::render_bcd:80 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::only_low#6 render_bcd::bcd#6 render_bcd::screen_pos#0 ] main:13::render_score:69::render_bcd:83 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::only_low#6 render_bcd::bcd#6 render_bcd::screen_pos#0 ] main:13::render_score:69::render_bcd:86 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::only_low#6 render_bcd::bcd#6 render_bcd::screen_pos#0 ] main:13::render_score:69::render_bcd:89 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::only_low#6 render_bcd::bcd#6 render_bcd::screen_pos#0 ] main:13::render_score:69::render_bcd:92 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::only_low#6 render_bcd::bcd#6 render_bcd::screen_pos#0 ] main:13::render_score:69::render_bcd:95 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_bcd::only_low#6 render_bcd::bcd#6 render_bcd::screen_pos#0 ] ) always clobbers reg byte a -Statement [100] (byte~) render_bcd::$5 ← (byte) render_bcd::bcd#6 >> (byte) 4 [ render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$5 ] ( main:13::render_score:69::render_bcd:80 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$5 ] main:13::render_score:69::render_bcd:83 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$5 ] main:13::render_score:69::render_bcd:86 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$5 ] main:13::render_score:69::render_bcd:89 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$5 ] main:13::render_score:69::render_bcd:92 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$5 ] main:13::render_score:69::render_bcd:95 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$5 ] ) always clobbers reg byte a -Statement [102] *((byte*) render_bcd::screen_pos#0) ← (byte~) render_bcd::$6 [ render_bcd::bcd#6 render_bcd::screen_pos#0 ] ( main:13::render_score:69::render_bcd:80 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::bcd#6 render_bcd::screen_pos#0 ] main:13::render_score:69::render_bcd:83 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::bcd#6 render_bcd::screen_pos#0 ] main:13::render_score:69::render_bcd:86 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::bcd#6 render_bcd::screen_pos#0 ] main:13::render_score:69::render_bcd:89 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::bcd#6 render_bcd::screen_pos#0 ] main:13::render_score:69::render_bcd:92 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::bcd#6 render_bcd::screen_pos#0 ] main:13::render_score:69::render_bcd:95 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_bcd::bcd#6 render_bcd::screen_pos#0 ] ) always clobbers reg byte y -Statement [105] (byte~) render_bcd::$3 ← (byte) render_bcd::bcd#6 & (byte) $f [ render_bcd::screen_pos#3 render_bcd::$3 ] ( main:13::render_score:69::render_bcd:80 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::screen_pos#3 render_bcd::$3 ] main:13::render_score:69::render_bcd:83 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::screen_pos#3 render_bcd::$3 ] main:13::render_score:69::render_bcd:86 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::screen_pos#3 render_bcd::$3 ] main:13::render_score:69::render_bcd:89 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::screen_pos#3 render_bcd::$3 ] main:13::render_score:69::render_bcd:92 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::screen_pos#3 render_bcd::$3 ] main:13::render_score:69::render_bcd:95 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_bcd::screen_pos#3 render_bcd::$3 ] ) always clobbers reg byte a -Statement [107] *((byte*) render_bcd::screen_pos#3) ← (byte~) render_bcd::$4 [ ] ( main:13::render_score:69::render_bcd:80 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 ] main:13::render_score:69::render_bcd:83 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 ] main:13::render_score:69::render_bcd:86 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 ] main:13::render_score:69::render_bcd:89 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 ] main:13::render_score:69::render_bcd:92 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 ] main:13::render_score:69::render_bcd:95 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 ] ) always clobbers reg byte y -Statement [113] (byte~) render_next::$6 ← (byte) next_piece_idx#12 << (byte) 1 [ next_piece_idx#12 render_next::screen_next_area#11 render_next::$6 ] ( main:13::render_next:37 [ score_bcd current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 play_spawn_current::piece_idx#2 current_movedown_slow#1 game_over#52 next_piece_idx#12 render_next::screen_next_area#11 render_next::$6 ] main:13::render_next:67 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 next_piece_idx#12 render_next::screen_next_area#11 render_next::$6 ] ) always clobbers reg byte a -Statement [115] (byte*) render_next::next_piece_gfx#9 ← (byte*)*((const word*) PIECES + (byte~) render_next::$6) [ render_next::screen_next_area#11 render_next::next_piece_char#0 render_next::next_piece_gfx#9 ] ( main:13::render_next:37 [ score_bcd current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 play_spawn_current::piece_idx#2 current_movedown_slow#1 game_over#52 render_next::screen_next_area#11 render_next::next_piece_char#0 render_next::next_piece_gfx#9 ] main:13::render_next:67 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 render_next::screen_next_area#11 render_next::next_piece_char#0 render_next::next_piece_gfx#9 ] ) always clobbers reg byte a -Statement [118] (byte) render_next::cell#0 ← *((byte*) render_next::next_piece_gfx#2) [ render_next::next_piece_char#0 render_next::l#7 render_next::next_piece_gfx#2 render_next::screen_next_area#5 render_next::c#2 render_next::cell#0 ] ( main:13::render_next:37 [ score_bcd current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 play_spawn_current::piece_idx#2 current_movedown_slow#1 game_over#52 render_next::next_piece_char#0 render_next::l#7 render_next::next_piece_gfx#2 render_next::screen_next_area#5 render_next::c#2 render_next::cell#0 ] main:13::render_next:67 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 render_next::next_piece_char#0 render_next::l#7 render_next::next_piece_gfx#2 render_next::screen_next_area#5 render_next::c#2 render_next::cell#0 ] ) always clobbers reg byte a reg byte y -Statement [121] *((byte*) render_next::screen_next_area#5) ← (byte) 0 [ render_next::next_piece_char#0 render_next::l#7 render_next::next_piece_gfx#1 render_next::screen_next_area#5 render_next::c#2 ] ( main:13::render_next:37 [ score_bcd current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 play_spawn_current::piece_idx#2 current_movedown_slow#1 game_over#52 render_next::next_piece_char#0 render_next::l#7 render_next::next_piece_gfx#1 render_next::screen_next_area#5 render_next::c#2 ] main:13::render_next:67 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 render_next::next_piece_char#0 render_next::l#7 render_next::next_piece_gfx#1 render_next::screen_next_area#5 render_next::c#2 ] ) always clobbers reg byte a reg byte y -Statement [125] (byte*) render_next::screen_next_area#4 ← (byte*) render_next::screen_next_area#3 + (byte) $24 [ render_next::next_piece_char#0 render_next::l#7 render_next::next_piece_gfx#1 render_next::screen_next_area#4 ] ( main:13::render_next:37 [ score_bcd current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 play_spawn_current::piece_idx#2 current_movedown_slow#1 game_over#52 render_next::next_piece_char#0 render_next::l#7 render_next::next_piece_gfx#1 render_next::screen_next_area#4 ] main:13::render_next:67 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 render_next::next_piece_char#0 render_next::l#7 render_next::next_piece_gfx#1 render_next::screen_next_area#4 ] ) always clobbers reg byte a -Statement [129] *((byte*) render_next::screen_next_area#5) ← (byte) render_next::next_piece_char#0 [ render_next::next_piece_char#0 render_next::l#7 render_next::next_piece_gfx#1 render_next::screen_next_area#5 render_next::c#2 ] ( main:13::render_next:37 [ score_bcd current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 play_spawn_current::piece_idx#2 current_movedown_slow#1 game_over#52 render_next::next_piece_char#0 render_next::l#7 render_next::next_piece_gfx#1 render_next::screen_next_area#5 render_next::c#2 ] main:13::render_next:67 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 render_next::next_piece_char#0 render_next::l#7 render_next::next_piece_gfx#1 render_next::screen_next_area#5 render_next::c#2 ] ) always clobbers reg byte a reg byte y -Statement [134] (byte) render_moving::i#1 ← (byte) render_moving::i#3 + (byte) 4 [ render_screen_render#33 current_xpos#59 current_piece_gfx#64 current_piece_char#68 render_moving::ypos#2 render_moving::l#4 render_moving::i#1 ] ( main:13::render_moving:35 [ score_bcd current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 play_spawn_current::piece_idx#2 current_movedown_slow#1 game_over#52 render_screen_render#33 current_xpos#59 current_piece_gfx#64 current_piece_char#68 render_moving::ypos#2 render_moving::l#4 render_moving::i#1 ] main:13::render_moving:64 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 render_screen_render#33 current_xpos#59 current_piece_gfx#64 current_piece_char#68 render_moving::ypos#2 render_moving::l#4 render_moving::i#1 ] ) always clobbers reg byte a -Statement [140] (byte~) render_moving::$1 ← (byte) render_screen_render#33 + (byte) render_moving::ypos#2 [ render_screen_render#33 current_xpos#59 current_piece_gfx#64 current_piece_char#68 render_moving::ypos#2 render_moving::i#3 render_moving::l#4 render_moving::$1 ] ( main:13::render_moving:35 [ score_bcd current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 play_spawn_current::piece_idx#2 current_movedown_slow#1 game_over#52 render_screen_render#33 current_xpos#59 current_piece_gfx#64 current_piece_char#68 render_moving::ypos#2 render_moving::i#3 render_moving::l#4 render_moving::$1 ] main:13::render_moving:64 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 render_screen_render#33 current_xpos#59 current_piece_gfx#64 current_piece_char#68 render_moving::ypos#2 render_moving::i#3 render_moving::l#4 render_moving::$1 ] ) always clobbers reg byte a -Statement [141] (byte~) render_moving::$6 ← (byte~) render_moving::$1 << (byte) 1 [ render_screen_render#33 current_xpos#59 current_piece_gfx#64 current_piece_char#68 render_moving::ypos#2 render_moving::i#3 render_moving::l#4 render_moving::$6 ] ( main:13::render_moving:35 [ score_bcd current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 play_spawn_current::piece_idx#2 current_movedown_slow#1 game_over#52 render_screen_render#33 current_xpos#59 current_piece_gfx#64 current_piece_char#68 render_moving::ypos#2 render_moving::i#3 render_moving::l#4 render_moving::$6 ] main:13::render_moving:64 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 render_screen_render#33 current_xpos#59 current_piece_gfx#64 current_piece_char#68 render_moving::ypos#2 render_moving::i#3 render_moving::l#4 render_moving::$6 ] ) always clobbers reg byte a -Statement [142] (byte*) render_moving::screen_line#0 ← *((const byte**) screen_lines_1 + (byte~) render_moving::$6) [ render_screen_render#33 current_xpos#59 current_piece_gfx#64 current_piece_char#68 render_moving::ypos#2 render_moving::i#3 render_moving::l#4 render_moving::screen_line#0 ] ( main:13::render_moving:35 [ score_bcd current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 play_spawn_current::piece_idx#2 current_movedown_slow#1 game_over#52 render_screen_render#33 current_xpos#59 current_piece_gfx#64 current_piece_char#68 render_moving::ypos#2 render_moving::i#3 render_moving::l#4 render_moving::screen_line#0 ] main:13::render_moving:64 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 render_screen_render#33 current_xpos#59 current_piece_gfx#64 current_piece_char#68 render_moving::ypos#2 render_moving::i#3 render_moving::l#4 render_moving::screen_line#0 ] ) always clobbers reg byte a -Statement [145] (byte) render_moving::current_cell#0 ← *((byte*) current_piece_gfx#64 + (byte) render_moving::i#4) [ render_screen_render#33 current_xpos#59 current_piece_gfx#64 current_piece_char#68 render_moving::ypos#2 render_moving::l#4 render_moving::screen_line#0 render_moving::i#4 render_moving::xpos#2 render_moving::c#2 render_moving::current_cell#0 ] ( main:13::render_moving:35 [ score_bcd current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 play_spawn_current::piece_idx#2 current_movedown_slow#1 game_over#52 render_screen_render#33 current_xpos#59 current_piece_gfx#64 current_piece_char#68 render_moving::ypos#2 render_moving::l#4 render_moving::screen_line#0 render_moving::i#4 render_moving::xpos#2 render_moving::c#2 render_moving::current_cell#0 ] main:13::render_moving:64 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 render_screen_render#33 current_xpos#59 current_piece_gfx#64 current_piece_char#68 render_moving::ypos#2 render_moving::l#4 render_moving::screen_line#0 render_moving::i#4 render_moving::xpos#2 render_moving::c#2 render_moving::current_cell#0 ] ) always clobbers reg byte a -Statement [148] *((byte*) render_moving::screen_line#0 + (byte) render_moving::xpos#2) ← (byte) current_piece_char#68 [ render_screen_render#33 current_xpos#59 current_piece_gfx#64 current_piece_char#68 render_moving::ypos#2 render_moving::l#4 render_moving::i#2 render_moving::screen_line#0 render_moving::xpos#2 render_moving::c#2 ] ( main:13::render_moving:35 [ score_bcd current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 play_spawn_current::piece_idx#2 current_movedown_slow#1 game_over#52 render_screen_render#33 current_xpos#59 current_piece_gfx#64 current_piece_char#68 render_moving::ypos#2 render_moving::l#4 render_moving::i#2 render_moving::screen_line#0 render_moving::xpos#2 render_moving::c#2 ] main:13::render_moving:64 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 render_screen_render#33 current_xpos#59 current_piece_gfx#64 current_piece_char#68 render_moving::ypos#2 render_moving::l#4 render_moving::i#2 render_moving::screen_line#0 render_moving::xpos#2 render_moving::c#2 ] ) always clobbers reg byte a -Statement [154] (byte~) render_playfield::$0 ← (byte) render_screen_render#22 + (byte) render_playfield::l#2 [ render_screen_render#22 render_playfield::l#2 render_playfield::i#3 render_playfield::$0 ] ( main:13::render_playfield:30 [ score_bcd current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 play_spawn_current::piece_idx#2 current_movedown_slow#1 game_over#52 render_screen_render#22 render_playfield::l#2 render_playfield::i#3 render_playfield::$0 ] main:13::render_playfield:58 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 render_screen_render#22 render_playfield::l#2 render_playfield::i#3 render_playfield::$0 ] ) always clobbers reg byte a -Statement [155] (byte~) render_playfield::$3 ← (byte~) render_playfield::$0 << (byte) 1 [ render_screen_render#22 render_playfield::l#2 render_playfield::i#3 render_playfield::$3 ] ( main:13::render_playfield:30 [ score_bcd current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 play_spawn_current::piece_idx#2 current_movedown_slow#1 game_over#52 render_screen_render#22 render_playfield::l#2 render_playfield::i#3 render_playfield::$3 ] main:13::render_playfield:58 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 render_screen_render#22 render_playfield::l#2 render_playfield::i#3 render_playfield::$3 ] ) always clobbers reg byte a -Statement [156] (byte*) render_playfield::screen_line#0 ← *((const byte**) screen_lines_1 + (byte~) render_playfield::$3) [ render_screen_render#22 render_playfield::l#2 render_playfield::i#3 render_playfield::screen_line#0 ] ( main:13::render_playfield:30 [ score_bcd current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 play_spawn_current::piece_idx#2 current_movedown_slow#1 game_over#52 render_screen_render#22 render_playfield::l#2 render_playfield::i#3 render_playfield::screen_line#0 ] main:13::render_playfield:58 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 render_screen_render#22 render_playfield::l#2 render_playfield::i#3 render_playfield::screen_line#0 ] ) always clobbers reg byte a -Statement [158] *((byte*) render_playfield::screen_line#2) ← *((const byte*) playfield + (byte) render_playfield::i#2) [ render_screen_render#22 render_playfield::l#2 render_playfield::i#2 render_playfield::screen_line#2 render_playfield::c#2 ] ( main:13::render_playfield:30 [ score_bcd current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 play_spawn_current::piece_idx#2 current_movedown_slow#1 game_over#52 render_screen_render#22 render_playfield::l#2 render_playfield::i#2 render_playfield::screen_line#2 render_playfield::c#2 ] main:13::render_playfield:58 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 render_screen_render#22 render_playfield::l#2 render_playfield::i#2 render_playfield::screen_line#2 render_playfield::c#2 ] ) always clobbers reg byte a reg byte y -Statement [170] if((byte) game_over#15==(byte) 0) goto play_movement::@1 [ score_bcd current_movedown_slow#21 current_piece#15 current_piece_char#16 current_ypos#19 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_orientation#20 current_piece_gfx#20 current_xpos#22 ] ( main:13::play_movement:53 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 score_bcd current_movedown_slow#21 current_piece#15 current_piece_char#16 current_ypos#19 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_orientation#20 current_piece_gfx#20 current_xpos#22 ] ) always clobbers reg byte a -Statement [177] (byte) play_movement::render#2 ← (byte) play_movement::render#1 + (byte~) play_movement::$3 [ score_bcd current_movedown_slow#21 current_piece#15 current_piece_char#16 current_ypos#19 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 play_movement::key_event#0 current_orientation#20 current_piece_gfx#20 current_xpos#26 play_movement::render#2 ] ( main:13::play_movement:53 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 score_bcd current_movedown_slow#21 current_piece#15 current_piece_char#16 current_ypos#19 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 play_movement::key_event#0 current_orientation#20 current_piece_gfx#20 current_xpos#26 play_movement::render#2 ] ) always clobbers reg byte a -Statement [182] (byte) play_movement::return#0 ← (byte) play_movement::render#2 + (byte~) play_movement::$4 [ score_bcd current_movedown_slow#21 current_piece#15 current_piece_char#16 current_ypos#19 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 play_movement::return#0 current_orientation#25 current_piece_gfx#21 current_xpos#26 ] ( main:13::play_movement:53 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 score_bcd current_movedown_slow#21 current_piece#15 current_piece_char#16 current_ypos#19 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 play_movement::return#0 current_orientation#25 current_piece_gfx#21 current_xpos#26 ] ) always clobbers reg byte a -Statement [187] (byte~) play_move_rotate::$5 ← (byte) current_orientation#20 + (byte) $10 [ current_piece#15 current_ypos#19 current_orientation#20 current_piece_gfx#20 current_xpos#26 play_move_rotate::$5 ] ( main:13::play_movement:53::play_move_rotate:179 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 score_bcd current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 play_movement::render#2 current_piece#15 current_ypos#19 current_orientation#20 current_piece_gfx#20 current_xpos#26 play_move_rotate::$5 ] ) always clobbers reg byte a -Statement [193] (byte*) current_piece#98 ← (byte*) current_piece#15 [ current_piece#15 current_ypos#19 current_orientation#20 current_piece_gfx#20 current_xpos#26 play_move_rotate::orientation#3 play_collision::xpos#3 play_collision::ypos#3 play_collision::orientation#3 current_piece#98 ] ( main:13::play_movement:53::play_move_rotate:179 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 score_bcd current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 play_movement::render#2 current_piece#15 current_ypos#19 current_orientation#20 current_piece_gfx#20 current_xpos#26 play_move_rotate::orientation#3 play_collision::xpos#3 play_collision::ypos#3 play_collision::orientation#3 current_piece#98 ] ) always clobbers reg byte a -Statement [199] (byte*) current_piece_gfx#7 ← (byte*) current_piece#15 + (byte) current_orientation#7 [ current_piece#15 current_ypos#19 current_xpos#26 current_orientation#7 current_piece_gfx#7 ] ( main:13::play_movement:53::play_move_rotate:179 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 score_bcd current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 play_movement::render#2 current_piece#15 current_ypos#19 current_xpos#26 current_orientation#7 current_piece_gfx#7 ] ) always clobbers reg byte a -Statement [200] (byte~) play_move_rotate::$7 ← (byte) current_orientation#20 - (byte) $10 [ current_piece#15 current_ypos#19 current_orientation#20 current_piece_gfx#20 current_xpos#26 play_move_rotate::$7 ] ( main:13::play_movement:53::play_move_rotate:179 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 score_bcd current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 play_movement::render#2 current_piece#15 current_ypos#19 current_orientation#20 current_piece_gfx#20 current_xpos#26 play_move_rotate::$7 ] ) always clobbers reg byte a -Statement [203] (byte*) play_collision::piece_gfx#0 ← (byte*) current_piece#17 + (byte) play_collision::orientation#5 [ play_collision::yp#0 play_collision::xpos#6 play_collision::piece_gfx#0 ] ( main:13::play_movement:53::play_move_rotate:179::play_collision:194 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 score_bcd current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 play_movement::render#2 current_piece#15 current_ypos#19 current_orientation#20 current_piece_gfx#20 current_xpos#26 play_move_rotate::orientation#3 play_collision::yp#0 play_collision::xpos#6 play_collision::piece_gfx#0 ] main:13::play_movement:53::play_move_leftright:174::play_collision:232 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 score_bcd current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#20 current_piece#15 current_ypos#19 current_orientation#20 current_xpos#22 play_collision::yp#0 play_collision::xpos#6 play_collision::piece_gfx#0 ] main:13::play_movement:53::play_move_leftright:174::play_collision:243 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 score_bcd current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#20 current_piece#15 current_ypos#19 current_orientation#20 current_xpos#22 play_collision::yp#0 play_collision::xpos#6 play_collision::piece_gfx#0 ] main:13::play_movement:53::play_move_down:167::play_collision:267 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 score_bcd current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 lines_bcd#19 level#10 level_bcd#11 play_collision::yp#0 play_collision::xpos#6 play_collision::piece_gfx#0 ] main:13::play_spawn_current:26::play_collision:296 [ score_bcd current_movedown_slow#1 current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 game_over#65 play_collision::yp#0 play_collision::xpos#6 play_collision::piece_gfx#0 ] main:13::play_spawn_current:28::play_collision:296 [ score_bcd current_movedown_slow#1 current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 game_over#65 play_collision::yp#0 play_collision::xpos#6 play_collision::piece_gfx#0 ] main:13::play_movement:53::play_move_down:167::play_spawn_current:280::play_collision:296 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 score_bcd lines_bcd#17 level#19 current_movedown_slow#23 level_bcd#19 current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 game_over#65 play_collision::yp#0 play_collision::xpos#6 play_collision::piece_gfx#0 ] ) always clobbers reg byte a -Statement [205] (byte~) play_collision::$14 ← (byte) play_collision::yp#2 << (byte) 1 [ play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::i#3 play_collision::l#6 play_collision::$14 ] ( main:13::play_movement:53::play_move_rotate:179::play_collision:194 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 score_bcd current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 play_movement::render#2 current_piece#15 current_ypos#19 current_orientation#20 current_piece_gfx#20 current_xpos#26 play_move_rotate::orientation#3 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::i#3 play_collision::l#6 play_collision::$14 ] main:13::play_movement:53::play_move_leftright:174::play_collision:232 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 score_bcd current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#20 current_piece#15 current_ypos#19 current_orientation#20 current_xpos#22 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::i#3 play_collision::l#6 play_collision::$14 ] main:13::play_movement:53::play_move_leftright:174::play_collision:243 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 score_bcd current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#20 current_piece#15 current_ypos#19 current_orientation#20 current_xpos#22 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::i#3 play_collision::l#6 play_collision::$14 ] main:13::play_movement:53::play_move_down:167::play_collision:267 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 score_bcd current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 lines_bcd#19 level#10 level_bcd#11 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::i#3 play_collision::l#6 play_collision::$14 ] main:13::play_spawn_current:26::play_collision:296 [ score_bcd current_movedown_slow#1 current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::i#3 play_collision::l#6 play_collision::$14 ] main:13::play_spawn_current:28::play_collision:296 [ score_bcd current_movedown_slow#1 current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::i#3 play_collision::l#6 play_collision::$14 ] main:13::play_movement:53::play_move_down:167::play_spawn_current:280::play_collision:296 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 score_bcd lines_bcd#17 level#19 current_movedown_slow#23 level_bcd#19 current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::i#3 play_collision::l#6 play_collision::$14 ] ) always clobbers reg byte a -Statement [206] (byte*) play_collision::playfield_line#0 ← *((const byte**) playfield_lines + (byte~) play_collision::$14) [ play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] ( main:13::play_movement:53::play_move_rotate:179::play_collision:194 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 score_bcd current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 play_movement::render#2 current_piece#15 current_ypos#19 current_orientation#20 current_piece_gfx#20 current_xpos#26 play_move_rotate::orientation#3 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] main:13::play_movement:53::play_move_leftright:174::play_collision:232 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 score_bcd current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#20 current_piece#15 current_ypos#19 current_orientation#20 current_xpos#22 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] main:13::play_movement:53::play_move_leftright:174::play_collision:243 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 score_bcd current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#20 current_piece#15 current_ypos#19 current_orientation#20 current_xpos#22 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] main:13::play_movement:53::play_move_down:167::play_collision:267 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 score_bcd current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 lines_bcd#19 level#10 level_bcd#11 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] main:13::play_spawn_current:26::play_collision:296 [ score_bcd current_movedown_slow#1 current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] main:13::play_spawn_current:28::play_collision:296 [ score_bcd current_movedown_slow#1 current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] main:13::play_movement:53::play_move_down:167::play_spawn_current:280::play_collision:296 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 score_bcd lines_bcd#17 level#19 current_movedown_slow#23 level_bcd#19 current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] ) always clobbers reg byte a -Statement [210] if(*((byte*) play_collision::piece_gfx#0 + (byte) play_collision::i#2)==(byte) 0) goto play_collision::@3 [ play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::xp#2 play_collision::c#2 play_collision::i#1 ] ( main:13::play_movement:53::play_move_rotate:179::play_collision:194 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 score_bcd current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 play_movement::render#2 current_piece#15 current_ypos#19 current_orientation#20 current_piece_gfx#20 current_xpos#26 play_move_rotate::orientation#3 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::xp#2 play_collision::c#2 play_collision::i#1 ] main:13::play_movement:53::play_move_leftright:174::play_collision:232 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 score_bcd current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#20 current_piece#15 current_ypos#19 current_orientation#20 current_xpos#22 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::xp#2 play_collision::c#2 play_collision::i#1 ] main:13::play_movement:53::play_move_leftright:174::play_collision:243 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 score_bcd current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#20 current_piece#15 current_ypos#19 current_orientation#20 current_xpos#22 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::xp#2 play_collision::c#2 play_collision::i#1 ] main:13::play_movement:53::play_move_down:167::play_collision:267 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 score_bcd current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 lines_bcd#19 level#10 level_bcd#11 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::xp#2 play_collision::c#2 play_collision::i#1 ] main:13::play_spawn_current:26::play_collision:296 [ score_bcd current_movedown_slow#1 current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::xp#2 play_collision::c#2 play_collision::i#1 ] main:13::play_spawn_current:28::play_collision:296 [ score_bcd current_movedown_slow#1 current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::xp#2 play_collision::c#2 play_collision::i#1 ] main:13::play_movement:53::play_move_down:167::play_spawn_current:280::play_collision:296 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 score_bcd lines_bcd#17 level#19 current_movedown_slow#23 level_bcd#19 current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::xp#2 play_collision::c#2 play_collision::i#1 ] ) always clobbers reg byte a -Statement [212] (byte~) play_collision::$5 ← (byte) play_collision::xp#2 & (byte) $80 [ play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::xp#2 play_collision::c#2 play_collision::i#1 play_collision::$5 ] ( main:13::play_movement:53::play_move_rotate:179::play_collision:194 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 score_bcd current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 play_movement::render#2 current_piece#15 current_ypos#19 current_orientation#20 current_piece_gfx#20 current_xpos#26 play_move_rotate::orientation#3 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::xp#2 play_collision::c#2 play_collision::i#1 play_collision::$5 ] main:13::play_movement:53::play_move_leftright:174::play_collision:232 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 score_bcd current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#20 current_piece#15 current_ypos#19 current_orientation#20 current_xpos#22 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::xp#2 play_collision::c#2 play_collision::i#1 play_collision::$5 ] main:13::play_movement:53::play_move_leftright:174::play_collision:243 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 score_bcd current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#20 current_piece#15 current_ypos#19 current_orientation#20 current_xpos#22 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::xp#2 play_collision::c#2 play_collision::i#1 play_collision::$5 ] main:13::play_movement:53::play_move_down:167::play_collision:267 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 score_bcd current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 lines_bcd#19 level#10 level_bcd#11 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::xp#2 play_collision::c#2 play_collision::i#1 play_collision::$5 ] main:13::play_spawn_current:26::play_collision:296 [ score_bcd current_movedown_slow#1 current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::xp#2 play_collision::c#2 play_collision::i#1 play_collision::$5 ] main:13::play_spawn_current:28::play_collision:296 [ score_bcd current_movedown_slow#1 current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::xp#2 play_collision::c#2 play_collision::i#1 play_collision::$5 ] main:13::play_movement:53::play_move_down:167::play_spawn_current:280::play_collision:296 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 score_bcd lines_bcd#17 level#19 current_movedown_slow#23 level_bcd#19 current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::xp#2 play_collision::c#2 play_collision::i#1 play_collision::$5 ] ) always clobbers reg byte a -Statement [215] if(*((byte*) play_collision::playfield_line#0 + (byte) play_collision::xp#2)==(byte) 0) goto play_collision::@3 [ play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::xp#2 play_collision::c#2 play_collision::i#1 ] ( main:13::play_movement:53::play_move_rotate:179::play_collision:194 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 score_bcd current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 play_movement::render#2 current_piece#15 current_ypos#19 current_orientation#20 current_piece_gfx#20 current_xpos#26 play_move_rotate::orientation#3 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::xp#2 play_collision::c#2 play_collision::i#1 ] main:13::play_movement:53::play_move_leftright:174::play_collision:232 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 score_bcd current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#20 current_piece#15 current_ypos#19 current_orientation#20 current_xpos#22 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::xp#2 play_collision::c#2 play_collision::i#1 ] main:13::play_movement:53::play_move_leftright:174::play_collision:243 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 score_bcd current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#20 current_piece#15 current_ypos#19 current_orientation#20 current_xpos#22 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::xp#2 play_collision::c#2 play_collision::i#1 ] main:13::play_movement:53::play_move_down:167::play_collision:267 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 score_bcd current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 lines_bcd#19 level#10 level_bcd#11 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::xp#2 play_collision::c#2 play_collision::i#1 ] main:13::play_spawn_current:26::play_collision:296 [ score_bcd current_movedown_slow#1 current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::xp#2 play_collision::c#2 play_collision::i#1 ] main:13::play_spawn_current:28::play_collision:296 [ score_bcd current_movedown_slow#1 current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::xp#2 play_collision::c#2 play_collision::i#1 ] main:13::play_movement:53::play_move_down:167::play_spawn_current:280::play_collision:296 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 score_bcd lines_bcd#17 level#19 current_movedown_slow#23 level_bcd#19 current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::xp#2 play_collision::c#2 play_collision::i#1 ] ) always clobbers reg byte a -Statement [231] (byte*) current_piece#97 ← (byte*) current_piece#15 [ current_piece#15 current_ypos#19 current_orientation#20 current_xpos#22 current_piece#97 play_collision::orientation#2 play_collision::ypos#2 play_collision::xpos#2 ] ( main:13::play_movement:53::play_move_leftright:174 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 score_bcd current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#20 current_piece#15 current_ypos#19 current_orientation#20 current_xpos#22 current_piece#97 play_collision::orientation#2 play_collision::ypos#2 play_collision::xpos#2 ] ) always clobbers reg byte a -Statement [242] (byte*) current_piece#96 ← (byte*) current_piece#15 [ current_piece#15 current_ypos#19 current_orientation#20 current_xpos#22 current_piece#96 play_collision::orientation#1 play_collision::ypos#1 play_collision::xpos#1 ] ( main:13::play_movement:53::play_move_leftright:174 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 score_bcd current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#20 current_piece#15 current_ypos#19 current_orientation#20 current_xpos#22 current_piece#96 play_collision::orientation#1 play_collision::ypos#1 play_collision::xpos#1 ] ) always clobbers reg byte a -Statement [266] (byte*) current_piece#95 ← (byte*) current_piece#10 [ score_bcd current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 lines_bcd#19 level#10 level_bcd#11 current_piece#95 play_collision::orientation#0 play_collision::ypos#0 play_collision::xpos#0 ] ( main:13::play_movement:53::play_move_down:167 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 score_bcd current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 lines_bcd#19 level#10 level_bcd#11 current_piece#95 play_collision::orientation#0 play_collision::ypos#0 play_collision::xpos#0 ] ) always clobbers reg byte a -Statement [281] (byte*) current_piece#92 ← (byte*)*((const word*) PIECES + (byte~) play_spawn_current::$7) [ score_bcd current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 play_spawn_current::piece_idx#2 game_over#52 current_piece#92 lines_bcd#17 level#19 current_movedown_slow#23 level_bcd#19 ] ( main:13::play_movement:53::play_move_down:167 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 score_bcd current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 play_spawn_current::piece_idx#2 game_over#52 current_piece#92 lines_bcd#17 level#19 current_movedown_slow#23 level_bcd#19 ] ) always clobbers reg byte a -Statement [282] (byte*) current_piece_gfx#116 ← (byte*)*((const word*) PIECES + (byte~) play_spawn_current::$7) [ score_bcd current_ypos#6 current_xpos#100 current_piece_char#5 play_spawn_current::piece_idx#2 game_over#52 current_piece#92 current_piece_gfx#116 lines_bcd#17 level#19 current_movedown_slow#23 level_bcd#19 ] ( main:13::play_movement:53::play_move_down:167 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 score_bcd current_ypos#6 current_xpos#100 current_piece_char#5 play_spawn_current::piece_idx#2 game_over#52 current_piece#92 current_piece_gfx#116 lines_bcd#17 level#19 current_movedown_slow#23 level_bcd#19 ] ) always clobbers reg byte a -Statement [289] (byte~) play_spawn_current::$7 ← (byte) play_spawn_current::current_piece_idx#0 << (byte) 1 [ play_spawn_current::$7 game_over#65 play_spawn_current::current_piece_idx#0 ] ( main:13::play_spawn_current:26 [ score_bcd current_movedown_slow#1 play_spawn_current::$7 game_over#65 play_spawn_current::current_piece_idx#0 ] main:13::play_spawn_current:28 [ score_bcd current_movedown_slow#1 play_spawn_current::$7 game_over#65 play_spawn_current::current_piece_idx#0 ] main:13::play_movement:53::play_move_down:167::play_spawn_current:280 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 score_bcd lines_bcd#17 level#19 current_movedown_slow#23 level_bcd#19 play_spawn_current::$7 game_over#65 play_spawn_current::current_piece_idx#0 ] ) always clobbers reg byte a -Statement [295] (byte*) current_piece#99 ← (byte*)*((const word*) PIECES + (byte~) play_spawn_current::$7) [ current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 current_piece#99 play_collision::ypos#4 play_collision::xpos#4 game_over#65 ] ( main:13::play_spawn_current:26 [ score_bcd current_movedown_slow#1 current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 current_piece#99 play_collision::ypos#4 play_collision::xpos#4 game_over#65 ] main:13::play_spawn_current:28 [ score_bcd current_movedown_slow#1 current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 current_piece#99 play_collision::ypos#4 play_collision::xpos#4 game_over#65 ] main:13::play_movement:53::play_move_down:167::play_spawn_current:280 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 score_bcd lines_bcd#17 level#19 current_movedown_slow#23 level_bcd#19 current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 current_piece#99 play_collision::ypos#4 play_collision::xpos#4 game_over#65 ] ) always clobbers reg byte a -Statement [303] if((byte) play_spawn_current::piece_idx#2==(byte) 7) goto play_spawn_current::sid_rnd1 [ current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 play_spawn_current::piece_idx#2 game_over#52 ] ( main:13::play_spawn_current:26 [ score_bcd current_movedown_slow#1 current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 play_spawn_current::piece_idx#2 game_over#52 ] main:13::play_spawn_current:28 [ score_bcd current_movedown_slow#1 current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 play_spawn_current::piece_idx#2 game_over#52 ] main:13::play_movement:53::play_move_down:167::play_spawn_current:280 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 score_bcd lines_bcd#17 level#19 current_movedown_slow#23 level_bcd#19 current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 play_spawn_current::piece_idx#2 game_over#52 ] ) always clobbers reg byte a -Statement [306] (byte) play_spawn_current::piece_idx#1 ← (byte) play_spawn_current::sid_rnd1_return#0 & (byte) 7 [ current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 game_over#52 play_spawn_current::piece_idx#1 ] ( main:13::play_spawn_current:26 [ score_bcd current_movedown_slow#1 current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 game_over#52 play_spawn_current::piece_idx#1 ] main:13::play_spawn_current:28 [ score_bcd current_movedown_slow#1 current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 game_over#52 play_spawn_current::piece_idx#1 ] main:13::play_movement:53::play_move_down:167::play_spawn_current:280 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 score_bcd lines_bcd#17 level#19 current_movedown_slow#23 level_bcd#19 current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 game_over#52 play_spawn_current::piece_idx#1 ] ) always clobbers reg byte a -Statement [308] (byte~) play_update_score::$2 ← < (word) lines_bcd#19 [ score_bcd current_movedown_slow#14 lines_bcd#19 level#10 level_bcd#11 play_update_score::removed#0 play_update_score::$2 ] ( main:13::play_movement:53::play_move_down:167::play_update_score:278 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 game_over#10 next_piece_idx#10 score_bcd current_movedown_slow#14 lines_bcd#19 level#10 level_bcd#11 play_update_score::removed#0 play_update_score::$2 ] ) always clobbers reg byte a -Statement [310] (byte~) play_update_score::$9 ← (byte) play_update_score::removed#0 << (byte) 2 [ score_bcd current_movedown_slow#14 lines_bcd#19 level#10 level_bcd#11 play_update_score::removed#0 play_update_score::lines_before#0 play_update_score::$9 ] ( main:13::play_movement:53::play_move_down:167::play_update_score:278 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 game_over#10 next_piece_idx#10 score_bcd current_movedown_slow#14 lines_bcd#19 level#10 level_bcd#11 play_update_score::removed#0 play_update_score::lines_before#0 play_update_score::$9 ] ) always clobbers reg byte a -Statement [311] (dword) play_update_score::add_bcd#0 ← *((const dword*) score_add_bcd + (byte~) play_update_score::$9) [ score_bcd current_movedown_slow#14 lines_bcd#19 level#10 level_bcd#11 play_update_score::removed#0 play_update_score::lines_before#0 play_update_score::add_bcd#0 ] ( main:13::play_movement:53::play_move_down:167::play_update_score:278 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 game_over#10 next_piece_idx#10 score_bcd current_movedown_slow#14 lines_bcd#19 level#10 level_bcd#11 play_update_score::removed#0 play_update_score::lines_before#0 play_update_score::add_bcd#0 ] ) always clobbers reg byte a -Statement [313] (word) lines_bcd#29 ← (word) lines_bcd#19 + (byte) play_update_score::removed#0 [ score_bcd current_movedown_slow#14 level#10 level_bcd#11 play_update_score::lines_before#0 play_update_score::add_bcd#0 lines_bcd#29 ] ( main:13::play_movement:53::play_move_down:167::play_update_score:278 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 game_over#10 next_piece_idx#10 score_bcd current_movedown_slow#14 level#10 level_bcd#11 play_update_score::lines_before#0 play_update_score::add_bcd#0 lines_bcd#29 ] ) always clobbers reg byte a -Statement [314] (dword) score_bcd ← (dword) score_bcd + (dword) play_update_score::add_bcd#0 [ score_bcd current_movedown_slow#14 level#10 level_bcd#11 play_update_score::lines_before#0 lines_bcd#29 ] ( main:13::play_movement:53::play_move_down:167::play_update_score:278 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 game_over#10 next_piece_idx#10 score_bcd current_movedown_slow#14 level#10 level_bcd#11 play_update_score::lines_before#0 lines_bcd#29 ] ) always clobbers reg byte a -Statement [316] (byte~) play_update_score::$4 ← < (word) lines_bcd#29 [ score_bcd current_movedown_slow#14 level#10 level_bcd#11 play_update_score::lines_before#0 lines_bcd#29 play_update_score::$4 ] ( main:13::play_movement:53::play_move_down:167::play_update_score:278 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 game_over#10 next_piece_idx#10 score_bcd current_movedown_slow#14 level#10 level_bcd#11 play_update_score::lines_before#0 lines_bcd#29 play_update_score::$4 ] ) always clobbers reg byte a -Statement [324] if((byte) level#21>=(byte) $1d+(byte) 1) goto play_increase_level::@1 [ level_bcd#11 level#21 ] ( main:13::play_movement:53::play_move_down:167::play_update_score:278::play_increase_level:320 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 game_over#10 next_piece_idx#10 score_bcd lines_bcd#29 level_bcd#11 level#21 ] ) always clobbers reg byte a -Statement [325] (byte) current_movedown_slow#10 ← *((const byte*) MOVEDOWN_SLOW_SPEEDS + (byte) level#21) [ level_bcd#11 level#21 current_movedown_slow#10 ] ( main:13::play_movement:53::play_move_down:167::play_update_score:278::play_increase_level:320 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 game_over#10 next_piece_idx#10 score_bcd lines_bcd#29 level_bcd#11 level#21 current_movedown_slow#10 ] ) always clobbers reg byte a reg byte y +Statement [60] (byte*) current_piece_gfx#112 ← (byte*) current_piece_gfx#18 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 current_ypos#98 render_screen_render#64 current_xpos#119 current_piece_gfx#112 ] ( main:11 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 current_ypos#98 render_screen_render#64 current_xpos#119 current_piece_gfx#112 ] ) always clobbers reg byte a +Statement [70] (byte) render_screen_render#11 ← (byte) render_screen_render#18 ^ (byte) $20 [ render_screen_show#16 render_screen_render#11 ] ( main:11::render_screen_swap:69 [ score_bcd current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 render_screen_show#16 render_screen_render#11 ] ) always clobbers reg byte a +Statement [71] (byte) render_screen_show#13 ← (byte) render_screen_show#16 ^ (byte) $20 [ render_screen_show#13 render_screen_render#11 ] ( main:11::render_screen_swap:69 [ score_bcd current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 render_screen_show#13 render_screen_render#11 ] ) always clobbers reg byte a +Statement [73] if((byte) render_screen_render#18==(byte) 0) goto render_score::@1 [ render_screen_render#18 lines_bcd#15 level_bcd#17 ] ( main:11::render_score:67 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 ] ) always clobbers reg byte a +Statement [76] (byte*) render_bcd::screen#0 ← (byte*) render_score::screen#3 [ render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::screen#0 ] ( main:11::render_score:67 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::screen#0 ] ) always clobbers reg byte a +Statement [79] (byte*) render_bcd::screen#1 ← (byte*) render_score::screen#3 [ render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::screen#1 ] ( main:11::render_score:67 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::screen#1 ] ) always clobbers reg byte a +Statement [82] (byte*) render_bcd::screen#2 ← (byte*) render_score::screen#3 [ render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::screen#2 ] ( main:11::render_score:67 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::screen#2 ] ) always clobbers reg byte a +Statement [85] (byte) render_bcd::bcd#3 ← > (word) lines_bcd#15 [ render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::bcd#3 ] ( main:11::render_score:67 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::bcd#3 ] ) always clobbers reg byte a +Statement [86] (byte*) render_bcd::screen#3 ← (byte*) render_score::screen#3 [ render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::bcd#3 render_bcd::screen#3 ] ( main:11::render_score:67 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::bcd#3 render_bcd::screen#3 ] ) always clobbers reg byte a +Statement [88] (byte) render_bcd::bcd#4 ← < (word) lines_bcd#15 [ render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::bcd#4 ] ( main:11::render_score:67 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::bcd#4 ] ) always clobbers reg byte a +Statement [89] (byte*) render_bcd::screen#4 ← (byte*) render_score::screen#3 [ render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::bcd#4 render_bcd::screen#4 ] ( main:11::render_score:67 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::bcd#4 render_bcd::screen#4 ] ) always clobbers reg byte a +Statement [91] (byte*) render_bcd::screen#5 ← (byte*) render_score::screen#3 [ render_screen_render#18 lines_bcd#15 level_bcd#17 render_bcd::screen#5 ] ( main:11::render_score:67 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_bcd::screen#5 ] ) always clobbers reg byte a +Statement [96] (byte*) render_bcd::screen_pos#0 ← (byte*) render_bcd::screen#6 + (word) render_bcd::offset#6 [ render_bcd::only_low#6 render_bcd::bcd#6 render_bcd::screen_pos#0 ] ( main:11::render_score:67::render_bcd:78 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::only_low#6 render_bcd::bcd#6 render_bcd::screen_pos#0 ] main:11::render_score:67::render_bcd:81 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::only_low#6 render_bcd::bcd#6 render_bcd::screen_pos#0 ] main:11::render_score:67::render_bcd:84 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::only_low#6 render_bcd::bcd#6 render_bcd::screen_pos#0 ] main:11::render_score:67::render_bcd:87 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::only_low#6 render_bcd::bcd#6 render_bcd::screen_pos#0 ] main:11::render_score:67::render_bcd:90 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::only_low#6 render_bcd::bcd#6 render_bcd::screen_pos#0 ] main:11::render_score:67::render_bcd:93 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_bcd::only_low#6 render_bcd::bcd#6 render_bcd::screen_pos#0 ] ) always clobbers reg byte a +Statement [98] (byte~) render_bcd::$5 ← (byte) render_bcd::bcd#6 >> (byte) 4 [ render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$5 ] ( main:11::render_score:67::render_bcd:78 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$5 ] main:11::render_score:67::render_bcd:81 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$5 ] main:11::render_score:67::render_bcd:84 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$5 ] main:11::render_score:67::render_bcd:87 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$5 ] main:11::render_score:67::render_bcd:90 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$5 ] main:11::render_score:67::render_bcd:93 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$5 ] ) always clobbers reg byte a +Statement [100] *((byte*) render_bcd::screen_pos#0) ← (byte~) render_bcd::$6 [ render_bcd::bcd#6 render_bcd::screen_pos#0 ] ( main:11::render_score:67::render_bcd:78 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::bcd#6 render_bcd::screen_pos#0 ] main:11::render_score:67::render_bcd:81 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::bcd#6 render_bcd::screen_pos#0 ] main:11::render_score:67::render_bcd:84 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::bcd#6 render_bcd::screen_pos#0 ] main:11::render_score:67::render_bcd:87 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::bcd#6 render_bcd::screen_pos#0 ] main:11::render_score:67::render_bcd:90 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::bcd#6 render_bcd::screen_pos#0 ] main:11::render_score:67::render_bcd:93 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_bcd::bcd#6 render_bcd::screen_pos#0 ] ) always clobbers reg byte y +Statement [103] (byte~) render_bcd::$3 ← (byte) render_bcd::bcd#6 & (byte) $f [ render_bcd::screen_pos#3 render_bcd::$3 ] ( main:11::render_score:67::render_bcd:78 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::screen_pos#3 render_bcd::$3 ] main:11::render_score:67::render_bcd:81 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::screen_pos#3 render_bcd::$3 ] main:11::render_score:67::render_bcd:84 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::screen_pos#3 render_bcd::$3 ] main:11::render_score:67::render_bcd:87 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::screen_pos#3 render_bcd::$3 ] main:11::render_score:67::render_bcd:90 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::screen_pos#3 render_bcd::$3 ] main:11::render_score:67::render_bcd:93 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_bcd::screen_pos#3 render_bcd::$3 ] ) always clobbers reg byte a +Statement [105] *((byte*) render_bcd::screen_pos#3) ← (byte~) render_bcd::$4 [ ] ( main:11::render_score:67::render_bcd:78 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 ] main:11::render_score:67::render_bcd:81 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 ] main:11::render_score:67::render_bcd:84 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 ] main:11::render_score:67::render_bcd:87 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 ] main:11::render_score:67::render_bcd:90 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 ] main:11::render_score:67::render_bcd:93 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 ] ) always clobbers reg byte y +Statement [111] (byte~) render_next::$6 ← (byte) next_piece_idx#12 << (byte) 1 [ next_piece_idx#12 render_next::screen_next_area#11 render_next::$6 ] ( main:11::render_next:35 [ score_bcd current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 play_spawn_current::piece_idx#2 current_movedown_slow#1 game_over#52 next_piece_idx#12 render_next::screen_next_area#11 render_next::$6 ] main:11::render_next:65 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 next_piece_idx#12 render_next::screen_next_area#11 render_next::$6 ] ) always clobbers reg byte a +Statement [113] (byte*) render_next::next_piece_gfx#9 ← (byte*)*((const word*) PIECES + (byte~) render_next::$6) [ render_next::screen_next_area#11 render_next::next_piece_char#0 render_next::next_piece_gfx#9 ] ( main:11::render_next:35 [ score_bcd current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 play_spawn_current::piece_idx#2 current_movedown_slow#1 game_over#52 render_next::screen_next_area#11 render_next::next_piece_char#0 render_next::next_piece_gfx#9 ] main:11::render_next:65 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 render_next::screen_next_area#11 render_next::next_piece_char#0 render_next::next_piece_gfx#9 ] ) always clobbers reg byte a +Statement [116] (byte) render_next::cell#0 ← *((byte*) render_next::next_piece_gfx#2) [ render_next::next_piece_char#0 render_next::l#7 render_next::next_piece_gfx#2 render_next::screen_next_area#5 render_next::c#2 render_next::cell#0 ] ( main:11::render_next:35 [ score_bcd current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 play_spawn_current::piece_idx#2 current_movedown_slow#1 game_over#52 render_next::next_piece_char#0 render_next::l#7 render_next::next_piece_gfx#2 render_next::screen_next_area#5 render_next::c#2 render_next::cell#0 ] main:11::render_next:65 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 render_next::next_piece_char#0 render_next::l#7 render_next::next_piece_gfx#2 render_next::screen_next_area#5 render_next::c#2 render_next::cell#0 ] ) always clobbers reg byte a reg byte y +Statement [119] *((byte*) render_next::screen_next_area#5) ← (byte) 0 [ render_next::next_piece_char#0 render_next::l#7 render_next::next_piece_gfx#1 render_next::screen_next_area#5 render_next::c#2 ] ( main:11::render_next:35 [ score_bcd current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 play_spawn_current::piece_idx#2 current_movedown_slow#1 game_over#52 render_next::next_piece_char#0 render_next::l#7 render_next::next_piece_gfx#1 render_next::screen_next_area#5 render_next::c#2 ] main:11::render_next:65 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 render_next::next_piece_char#0 render_next::l#7 render_next::next_piece_gfx#1 render_next::screen_next_area#5 render_next::c#2 ] ) always clobbers reg byte a reg byte y +Statement [123] (byte*) render_next::screen_next_area#4 ← (byte*) render_next::screen_next_area#3 + (byte) $24 [ render_next::next_piece_char#0 render_next::l#7 render_next::next_piece_gfx#1 render_next::screen_next_area#4 ] ( main:11::render_next:35 [ score_bcd current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 play_spawn_current::piece_idx#2 current_movedown_slow#1 game_over#52 render_next::next_piece_char#0 render_next::l#7 render_next::next_piece_gfx#1 render_next::screen_next_area#4 ] main:11::render_next:65 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 render_next::next_piece_char#0 render_next::l#7 render_next::next_piece_gfx#1 render_next::screen_next_area#4 ] ) always clobbers reg byte a +Statement [127] *((byte*) render_next::screen_next_area#5) ← (byte) render_next::next_piece_char#0 [ render_next::next_piece_char#0 render_next::l#7 render_next::next_piece_gfx#1 render_next::screen_next_area#5 render_next::c#2 ] ( main:11::render_next:35 [ score_bcd current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 play_spawn_current::piece_idx#2 current_movedown_slow#1 game_over#52 render_next::next_piece_char#0 render_next::l#7 render_next::next_piece_gfx#1 render_next::screen_next_area#5 render_next::c#2 ] main:11::render_next:65 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 render_next::next_piece_char#0 render_next::l#7 render_next::next_piece_gfx#1 render_next::screen_next_area#5 render_next::c#2 ] ) always clobbers reg byte a reg byte y +Statement [132] (byte) render_moving::i#1 ← (byte) render_moving::i#3 + (byte) 4 [ render_screen_render#33 current_xpos#59 current_piece_gfx#64 current_piece_char#68 render_moving::ypos#2 render_moving::l#4 render_moving::i#1 ] ( main:11::render_moving:33 [ score_bcd current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 play_spawn_current::piece_idx#2 current_movedown_slow#1 game_over#52 render_screen_render#33 current_xpos#59 current_piece_gfx#64 current_piece_char#68 render_moving::ypos#2 render_moving::l#4 render_moving::i#1 ] main:11::render_moving:62 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 render_screen_render#33 current_xpos#59 current_piece_gfx#64 current_piece_char#68 render_moving::ypos#2 render_moving::l#4 render_moving::i#1 ] ) always clobbers reg byte a +Statement [138] (byte~) render_moving::$1 ← (byte) render_screen_render#33 + (byte) render_moving::ypos#2 [ render_screen_render#33 current_xpos#59 current_piece_gfx#64 current_piece_char#68 render_moving::ypos#2 render_moving::i#3 render_moving::l#4 render_moving::$1 ] ( main:11::render_moving:33 [ score_bcd current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 play_spawn_current::piece_idx#2 current_movedown_slow#1 game_over#52 render_screen_render#33 current_xpos#59 current_piece_gfx#64 current_piece_char#68 render_moving::ypos#2 render_moving::i#3 render_moving::l#4 render_moving::$1 ] main:11::render_moving:62 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 render_screen_render#33 current_xpos#59 current_piece_gfx#64 current_piece_char#68 render_moving::ypos#2 render_moving::i#3 render_moving::l#4 render_moving::$1 ] ) always clobbers reg byte a +Statement [139] (byte~) render_moving::$6 ← (byte~) render_moving::$1 << (byte) 1 [ render_screen_render#33 current_xpos#59 current_piece_gfx#64 current_piece_char#68 render_moving::ypos#2 render_moving::i#3 render_moving::l#4 render_moving::$6 ] ( main:11::render_moving:33 [ score_bcd current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 play_spawn_current::piece_idx#2 current_movedown_slow#1 game_over#52 render_screen_render#33 current_xpos#59 current_piece_gfx#64 current_piece_char#68 render_moving::ypos#2 render_moving::i#3 render_moving::l#4 render_moving::$6 ] main:11::render_moving:62 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 render_screen_render#33 current_xpos#59 current_piece_gfx#64 current_piece_char#68 render_moving::ypos#2 render_moving::i#3 render_moving::l#4 render_moving::$6 ] ) always clobbers reg byte a +Statement [140] (byte*) render_moving::screen_line#0 ← *((const byte**) screen_lines_1 + (byte~) render_moving::$6) [ render_screen_render#33 current_xpos#59 current_piece_gfx#64 current_piece_char#68 render_moving::ypos#2 render_moving::i#3 render_moving::l#4 render_moving::screen_line#0 ] ( main:11::render_moving:33 [ score_bcd current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 play_spawn_current::piece_idx#2 current_movedown_slow#1 game_over#52 render_screen_render#33 current_xpos#59 current_piece_gfx#64 current_piece_char#68 render_moving::ypos#2 render_moving::i#3 render_moving::l#4 render_moving::screen_line#0 ] main:11::render_moving:62 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 render_screen_render#33 current_xpos#59 current_piece_gfx#64 current_piece_char#68 render_moving::ypos#2 render_moving::i#3 render_moving::l#4 render_moving::screen_line#0 ] ) always clobbers reg byte a +Statement [143] (byte) render_moving::current_cell#0 ← *((byte*) current_piece_gfx#64 + (byte) render_moving::i#4) [ render_screen_render#33 current_xpos#59 current_piece_gfx#64 current_piece_char#68 render_moving::ypos#2 render_moving::l#4 render_moving::screen_line#0 render_moving::i#4 render_moving::xpos#2 render_moving::c#2 render_moving::current_cell#0 ] ( main:11::render_moving:33 [ score_bcd current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 play_spawn_current::piece_idx#2 current_movedown_slow#1 game_over#52 render_screen_render#33 current_xpos#59 current_piece_gfx#64 current_piece_char#68 render_moving::ypos#2 render_moving::l#4 render_moving::screen_line#0 render_moving::i#4 render_moving::xpos#2 render_moving::c#2 render_moving::current_cell#0 ] main:11::render_moving:62 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 render_screen_render#33 current_xpos#59 current_piece_gfx#64 current_piece_char#68 render_moving::ypos#2 render_moving::l#4 render_moving::screen_line#0 render_moving::i#4 render_moving::xpos#2 render_moving::c#2 render_moving::current_cell#0 ] ) always clobbers reg byte a +Statement [146] *((byte*) render_moving::screen_line#0 + (byte) render_moving::xpos#2) ← (byte) current_piece_char#68 [ render_screen_render#33 current_xpos#59 current_piece_gfx#64 current_piece_char#68 render_moving::ypos#2 render_moving::l#4 render_moving::i#2 render_moving::screen_line#0 render_moving::xpos#2 render_moving::c#2 ] ( main:11::render_moving:33 [ score_bcd current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 play_spawn_current::piece_idx#2 current_movedown_slow#1 game_over#52 render_screen_render#33 current_xpos#59 current_piece_gfx#64 current_piece_char#68 render_moving::ypos#2 render_moving::l#4 render_moving::i#2 render_moving::screen_line#0 render_moving::xpos#2 render_moving::c#2 ] main:11::render_moving:62 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 render_screen_render#33 current_xpos#59 current_piece_gfx#64 current_piece_char#68 render_moving::ypos#2 render_moving::l#4 render_moving::i#2 render_moving::screen_line#0 render_moving::xpos#2 render_moving::c#2 ] ) always clobbers reg byte a +Statement [152] (byte~) render_playfield::$0 ← (byte) render_screen_render#22 + (byte) render_playfield::l#2 [ render_screen_render#22 render_playfield::l#2 render_playfield::i#3 render_playfield::$0 ] ( main:11::render_playfield:28 [ score_bcd current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 play_spawn_current::piece_idx#2 current_movedown_slow#1 game_over#52 render_screen_render#22 render_playfield::l#2 render_playfield::i#3 render_playfield::$0 ] main:11::render_playfield:56 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 render_screen_render#22 render_playfield::l#2 render_playfield::i#3 render_playfield::$0 ] ) always clobbers reg byte a +Statement [153] (byte~) render_playfield::$3 ← (byte~) render_playfield::$0 << (byte) 1 [ render_screen_render#22 render_playfield::l#2 render_playfield::i#3 render_playfield::$3 ] ( main:11::render_playfield:28 [ score_bcd current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 play_spawn_current::piece_idx#2 current_movedown_slow#1 game_over#52 render_screen_render#22 render_playfield::l#2 render_playfield::i#3 render_playfield::$3 ] main:11::render_playfield:56 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 render_screen_render#22 render_playfield::l#2 render_playfield::i#3 render_playfield::$3 ] ) always clobbers reg byte a +Statement [154] (byte*) render_playfield::screen_line#0 ← *((const byte**) screen_lines_1 + (byte~) render_playfield::$3) [ render_screen_render#22 render_playfield::l#2 render_playfield::i#3 render_playfield::screen_line#0 ] ( main:11::render_playfield:28 [ score_bcd current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 play_spawn_current::piece_idx#2 current_movedown_slow#1 game_over#52 render_screen_render#22 render_playfield::l#2 render_playfield::i#3 render_playfield::screen_line#0 ] main:11::render_playfield:56 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 render_screen_render#22 render_playfield::l#2 render_playfield::i#3 render_playfield::screen_line#0 ] ) always clobbers reg byte a +Statement [156] *((byte*) render_playfield::screen_line#2) ← *((const byte*) playfield + (byte) render_playfield::i#2) [ render_screen_render#22 render_playfield::l#2 render_playfield::i#2 render_playfield::screen_line#2 render_playfield::c#2 ] ( main:11::render_playfield:28 [ score_bcd current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 play_spawn_current::piece_idx#2 current_movedown_slow#1 game_over#52 render_screen_render#22 render_playfield::l#2 render_playfield::i#2 render_playfield::screen_line#2 render_playfield::c#2 ] main:11::render_playfield:56 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 render_screen_render#22 render_playfield::l#2 render_playfield::i#2 render_playfield::screen_line#2 render_playfield::c#2 ] ) always clobbers reg byte a reg byte y +Statement [168] if((byte) game_over#15==(byte) 0) goto play_movement::@1 [ score_bcd current_movedown_slow#21 current_piece#15 current_piece_char#16 current_ypos#19 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_orientation#20 current_piece_gfx#20 current_xpos#22 ] ( main:11::play_movement:51 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 score_bcd current_movedown_slow#21 current_piece#15 current_piece_char#16 current_ypos#19 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_orientation#20 current_piece_gfx#20 current_xpos#22 ] ) always clobbers reg byte a +Statement [175] (byte) play_movement::render#2 ← (byte) play_movement::render#1 + (byte~) play_movement::$3 [ score_bcd current_movedown_slow#21 current_piece#15 current_piece_char#16 current_ypos#19 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 play_movement::key_event#0 current_orientation#20 current_piece_gfx#20 current_xpos#26 play_movement::render#2 ] ( main:11::play_movement:51 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 score_bcd current_movedown_slow#21 current_piece#15 current_piece_char#16 current_ypos#19 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 play_movement::key_event#0 current_orientation#20 current_piece_gfx#20 current_xpos#26 play_movement::render#2 ] ) always clobbers reg byte a +Statement [180] (byte) play_movement::return#0 ← (byte) play_movement::render#2 + (byte~) play_movement::$4 [ score_bcd current_movedown_slow#21 current_piece#15 current_piece_char#16 current_ypos#19 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 play_movement::return#0 current_orientation#25 current_piece_gfx#21 current_xpos#26 ] ( main:11::play_movement:51 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 score_bcd current_movedown_slow#21 current_piece#15 current_piece_char#16 current_ypos#19 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 play_movement::return#0 current_orientation#25 current_piece_gfx#21 current_xpos#26 ] ) always clobbers reg byte a +Statement [185] (byte~) play_move_rotate::$5 ← (byte) current_orientation#20 + (byte) $10 [ current_piece#15 current_ypos#19 current_orientation#20 current_piece_gfx#20 current_xpos#26 play_move_rotate::$5 ] ( main:11::play_movement:51::play_move_rotate:177 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 score_bcd current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 play_movement::render#2 current_piece#15 current_ypos#19 current_orientation#20 current_piece_gfx#20 current_xpos#26 play_move_rotate::$5 ] ) always clobbers reg byte a +Statement [191] (byte*) current_piece#98 ← (byte*) current_piece#15 [ current_piece#15 current_ypos#19 current_orientation#20 current_piece_gfx#20 current_xpos#26 play_move_rotate::orientation#3 play_collision::xpos#3 play_collision::ypos#3 play_collision::orientation#3 current_piece#98 ] ( main:11::play_movement:51::play_move_rotate:177 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 score_bcd current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 play_movement::render#2 current_piece#15 current_ypos#19 current_orientation#20 current_piece_gfx#20 current_xpos#26 play_move_rotate::orientation#3 play_collision::xpos#3 play_collision::ypos#3 play_collision::orientation#3 current_piece#98 ] ) always clobbers reg byte a +Statement [197] (byte*) current_piece_gfx#7 ← (byte*) current_piece#15 + (byte) current_orientation#7 [ current_piece#15 current_ypos#19 current_xpos#26 current_orientation#7 current_piece_gfx#7 ] ( main:11::play_movement:51::play_move_rotate:177 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 score_bcd current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 play_movement::render#2 current_piece#15 current_ypos#19 current_xpos#26 current_orientation#7 current_piece_gfx#7 ] ) always clobbers reg byte a +Statement [198] (byte~) play_move_rotate::$7 ← (byte) current_orientation#20 - (byte) $10 [ current_piece#15 current_ypos#19 current_orientation#20 current_piece_gfx#20 current_xpos#26 play_move_rotate::$7 ] ( main:11::play_movement:51::play_move_rotate:177 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 score_bcd current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 play_movement::render#2 current_piece#15 current_ypos#19 current_orientation#20 current_piece_gfx#20 current_xpos#26 play_move_rotate::$7 ] ) always clobbers reg byte a +Statement [201] (byte*) play_collision::piece_gfx#0 ← (byte*) current_piece#17 + (byte) play_collision::orientation#5 [ play_collision::yp#0 play_collision::xpos#6 play_collision::piece_gfx#0 ] ( main:11::play_movement:51::play_move_rotate:177::play_collision:192 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 score_bcd current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 play_movement::render#2 current_piece#15 current_ypos#19 current_orientation#20 current_piece_gfx#20 current_xpos#26 play_move_rotate::orientation#3 play_collision::yp#0 play_collision::xpos#6 play_collision::piece_gfx#0 ] main:11::play_movement:51::play_move_leftright:172::play_collision:230 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 score_bcd current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#20 current_piece#15 current_ypos#19 current_orientation#20 current_xpos#22 play_collision::yp#0 play_collision::xpos#6 play_collision::piece_gfx#0 ] main:11::play_movement:51::play_move_leftright:172::play_collision:241 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 score_bcd current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#20 current_piece#15 current_ypos#19 current_orientation#20 current_xpos#22 play_collision::yp#0 play_collision::xpos#6 play_collision::piece_gfx#0 ] main:11::play_movement:51::play_move_down:165::play_collision:265 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 score_bcd current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 lines_bcd#19 level#10 level_bcd#11 play_collision::yp#0 play_collision::xpos#6 play_collision::piece_gfx#0 ] main:11::play_spawn_current:24::play_collision:294 [ score_bcd current_movedown_slow#1 current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 game_over#65 play_collision::yp#0 play_collision::xpos#6 play_collision::piece_gfx#0 ] main:11::play_spawn_current:26::play_collision:294 [ score_bcd current_movedown_slow#1 current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 game_over#65 play_collision::yp#0 play_collision::xpos#6 play_collision::piece_gfx#0 ] main:11::play_movement:51::play_move_down:165::play_spawn_current:278::play_collision:294 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 score_bcd lines_bcd#17 level#19 current_movedown_slow#23 level_bcd#19 current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 game_over#65 play_collision::yp#0 play_collision::xpos#6 play_collision::piece_gfx#0 ] ) always clobbers reg byte a +Statement [203] (byte~) play_collision::$14 ← (byte) play_collision::yp#2 << (byte) 1 [ play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::i#3 play_collision::l#6 play_collision::$14 ] ( main:11::play_movement:51::play_move_rotate:177::play_collision:192 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 score_bcd current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 play_movement::render#2 current_piece#15 current_ypos#19 current_orientation#20 current_piece_gfx#20 current_xpos#26 play_move_rotate::orientation#3 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::i#3 play_collision::l#6 play_collision::$14 ] main:11::play_movement:51::play_move_leftright:172::play_collision:230 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 score_bcd current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#20 current_piece#15 current_ypos#19 current_orientation#20 current_xpos#22 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::i#3 play_collision::l#6 play_collision::$14 ] main:11::play_movement:51::play_move_leftright:172::play_collision:241 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 score_bcd current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#20 current_piece#15 current_ypos#19 current_orientation#20 current_xpos#22 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::i#3 play_collision::l#6 play_collision::$14 ] main:11::play_movement:51::play_move_down:165::play_collision:265 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 score_bcd current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 lines_bcd#19 level#10 level_bcd#11 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::i#3 play_collision::l#6 play_collision::$14 ] main:11::play_spawn_current:24::play_collision:294 [ score_bcd current_movedown_slow#1 current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::i#3 play_collision::l#6 play_collision::$14 ] main:11::play_spawn_current:26::play_collision:294 [ score_bcd current_movedown_slow#1 current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::i#3 play_collision::l#6 play_collision::$14 ] main:11::play_movement:51::play_move_down:165::play_spawn_current:278::play_collision:294 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 score_bcd lines_bcd#17 level#19 current_movedown_slow#23 level_bcd#19 current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::i#3 play_collision::l#6 play_collision::$14 ] ) always clobbers reg byte a +Statement [204] (byte*) play_collision::playfield_line#0 ← *((const byte**) playfield_lines + (byte~) play_collision::$14) [ play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] ( main:11::play_movement:51::play_move_rotate:177::play_collision:192 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 score_bcd current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 play_movement::render#2 current_piece#15 current_ypos#19 current_orientation#20 current_piece_gfx#20 current_xpos#26 play_move_rotate::orientation#3 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] main:11::play_movement:51::play_move_leftright:172::play_collision:230 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 score_bcd current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#20 current_piece#15 current_ypos#19 current_orientation#20 current_xpos#22 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] main:11::play_movement:51::play_move_leftright:172::play_collision:241 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 score_bcd current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#20 current_piece#15 current_ypos#19 current_orientation#20 current_xpos#22 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] main:11::play_movement:51::play_move_down:165::play_collision:265 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 score_bcd current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 lines_bcd#19 level#10 level_bcd#11 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] main:11::play_spawn_current:24::play_collision:294 [ score_bcd current_movedown_slow#1 current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] main:11::play_spawn_current:26::play_collision:294 [ score_bcd current_movedown_slow#1 current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] main:11::play_movement:51::play_move_down:165::play_spawn_current:278::play_collision:294 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 score_bcd lines_bcd#17 level#19 current_movedown_slow#23 level_bcd#19 current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] ) always clobbers reg byte a +Statement [208] if(*((byte*) play_collision::piece_gfx#0 + (byte) play_collision::i#2)==(byte) 0) goto play_collision::@3 [ play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::xp#2 play_collision::c#2 play_collision::i#1 ] ( main:11::play_movement:51::play_move_rotate:177::play_collision:192 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 score_bcd current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 play_movement::render#2 current_piece#15 current_ypos#19 current_orientation#20 current_piece_gfx#20 current_xpos#26 play_move_rotate::orientation#3 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::xp#2 play_collision::c#2 play_collision::i#1 ] main:11::play_movement:51::play_move_leftright:172::play_collision:230 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 score_bcd current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#20 current_piece#15 current_ypos#19 current_orientation#20 current_xpos#22 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::xp#2 play_collision::c#2 play_collision::i#1 ] main:11::play_movement:51::play_move_leftright:172::play_collision:241 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 score_bcd current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#20 current_piece#15 current_ypos#19 current_orientation#20 current_xpos#22 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::xp#2 play_collision::c#2 play_collision::i#1 ] main:11::play_movement:51::play_move_down:165::play_collision:265 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 score_bcd current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 lines_bcd#19 level#10 level_bcd#11 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::xp#2 play_collision::c#2 play_collision::i#1 ] main:11::play_spawn_current:24::play_collision:294 [ score_bcd current_movedown_slow#1 current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::xp#2 play_collision::c#2 play_collision::i#1 ] main:11::play_spawn_current:26::play_collision:294 [ score_bcd current_movedown_slow#1 current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::xp#2 play_collision::c#2 play_collision::i#1 ] main:11::play_movement:51::play_move_down:165::play_spawn_current:278::play_collision:294 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 score_bcd lines_bcd#17 level#19 current_movedown_slow#23 level_bcd#19 current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::xp#2 play_collision::c#2 play_collision::i#1 ] ) always clobbers reg byte a +Statement [210] (byte~) play_collision::$5 ← (byte) play_collision::xp#2 & (byte) $80 [ play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::xp#2 play_collision::c#2 play_collision::i#1 play_collision::$5 ] ( main:11::play_movement:51::play_move_rotate:177::play_collision:192 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 score_bcd current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 play_movement::render#2 current_piece#15 current_ypos#19 current_orientation#20 current_piece_gfx#20 current_xpos#26 play_move_rotate::orientation#3 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::xp#2 play_collision::c#2 play_collision::i#1 play_collision::$5 ] main:11::play_movement:51::play_move_leftright:172::play_collision:230 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 score_bcd current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#20 current_piece#15 current_ypos#19 current_orientation#20 current_xpos#22 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::xp#2 play_collision::c#2 play_collision::i#1 play_collision::$5 ] main:11::play_movement:51::play_move_leftright:172::play_collision:241 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 score_bcd current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#20 current_piece#15 current_ypos#19 current_orientation#20 current_xpos#22 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::xp#2 play_collision::c#2 play_collision::i#1 play_collision::$5 ] main:11::play_movement:51::play_move_down:165::play_collision:265 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 score_bcd current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 lines_bcd#19 level#10 level_bcd#11 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::xp#2 play_collision::c#2 play_collision::i#1 play_collision::$5 ] main:11::play_spawn_current:24::play_collision:294 [ score_bcd current_movedown_slow#1 current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::xp#2 play_collision::c#2 play_collision::i#1 play_collision::$5 ] main:11::play_spawn_current:26::play_collision:294 [ score_bcd current_movedown_slow#1 current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::xp#2 play_collision::c#2 play_collision::i#1 play_collision::$5 ] main:11::play_movement:51::play_move_down:165::play_spawn_current:278::play_collision:294 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 score_bcd lines_bcd#17 level#19 current_movedown_slow#23 level_bcd#19 current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::xp#2 play_collision::c#2 play_collision::i#1 play_collision::$5 ] ) always clobbers reg byte a +Statement [213] if(*((byte*) play_collision::playfield_line#0 + (byte) play_collision::xp#2)==(byte) 0) goto play_collision::@3 [ play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::xp#2 play_collision::c#2 play_collision::i#1 ] ( main:11::play_movement:51::play_move_rotate:177::play_collision:192 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 score_bcd current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 play_movement::render#2 current_piece#15 current_ypos#19 current_orientation#20 current_piece_gfx#20 current_xpos#26 play_move_rotate::orientation#3 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::xp#2 play_collision::c#2 play_collision::i#1 ] main:11::play_movement:51::play_move_leftright:172::play_collision:230 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 score_bcd current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#20 current_piece#15 current_ypos#19 current_orientation#20 current_xpos#22 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::xp#2 play_collision::c#2 play_collision::i#1 ] main:11::play_movement:51::play_move_leftright:172::play_collision:241 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 score_bcd current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#20 current_piece#15 current_ypos#19 current_orientation#20 current_xpos#22 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::xp#2 play_collision::c#2 play_collision::i#1 ] main:11::play_movement:51::play_move_down:165::play_collision:265 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 score_bcd current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 lines_bcd#19 level#10 level_bcd#11 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::xp#2 play_collision::c#2 play_collision::i#1 ] main:11::play_spawn_current:24::play_collision:294 [ score_bcd current_movedown_slow#1 current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::xp#2 play_collision::c#2 play_collision::i#1 ] main:11::play_spawn_current:26::play_collision:294 [ score_bcd current_movedown_slow#1 current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::xp#2 play_collision::c#2 play_collision::i#1 ] main:11::play_movement:51::play_move_down:165::play_spawn_current:278::play_collision:294 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 score_bcd lines_bcd#17 level#19 current_movedown_slow#23 level_bcd#19 current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::xp#2 play_collision::c#2 play_collision::i#1 ] ) always clobbers reg byte a +Statement [229] (byte*) current_piece#97 ← (byte*) current_piece#15 [ current_piece#15 current_ypos#19 current_orientation#20 current_xpos#22 current_piece#97 play_collision::orientation#2 play_collision::ypos#2 play_collision::xpos#2 ] ( main:11::play_movement:51::play_move_leftright:172 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 score_bcd current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#20 current_piece#15 current_ypos#19 current_orientation#20 current_xpos#22 current_piece#97 play_collision::orientation#2 play_collision::ypos#2 play_collision::xpos#2 ] ) always clobbers reg byte a +Statement [240] (byte*) current_piece#96 ← (byte*) current_piece#15 [ current_piece#15 current_ypos#19 current_orientation#20 current_xpos#22 current_piece#96 play_collision::orientation#1 play_collision::ypos#1 play_collision::xpos#1 ] ( main:11::play_movement:51::play_move_leftright:172 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 score_bcd current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#20 current_piece#15 current_ypos#19 current_orientation#20 current_xpos#22 current_piece#96 play_collision::orientation#1 play_collision::ypos#1 play_collision::xpos#1 ] ) always clobbers reg byte a +Statement [264] (byte*) current_piece#95 ← (byte*) current_piece#10 [ score_bcd current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 lines_bcd#19 level#10 level_bcd#11 current_piece#95 play_collision::orientation#0 play_collision::ypos#0 play_collision::xpos#0 ] ( main:11::play_movement:51::play_move_down:165 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 score_bcd current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 lines_bcd#19 level#10 level_bcd#11 current_piece#95 play_collision::orientation#0 play_collision::ypos#0 play_collision::xpos#0 ] ) always clobbers reg byte a +Statement [279] (byte*) current_piece#92 ← (byte*)*((const word*) PIECES + (byte~) play_spawn_current::$7) [ score_bcd current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 play_spawn_current::piece_idx#2 game_over#52 current_piece#92 lines_bcd#17 level#19 current_movedown_slow#23 level_bcd#19 ] ( main:11::play_movement:51::play_move_down:165 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 score_bcd current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 play_spawn_current::piece_idx#2 game_over#52 current_piece#92 lines_bcd#17 level#19 current_movedown_slow#23 level_bcd#19 ] ) always clobbers reg byte a +Statement [280] (byte*) current_piece_gfx#116 ← (byte*)*((const word*) PIECES + (byte~) play_spawn_current::$7) [ score_bcd current_ypos#6 current_xpos#100 current_piece_char#5 play_spawn_current::piece_idx#2 game_over#52 current_piece#92 current_piece_gfx#116 lines_bcd#17 level#19 current_movedown_slow#23 level_bcd#19 ] ( main:11::play_movement:51::play_move_down:165 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 score_bcd current_ypos#6 current_xpos#100 current_piece_char#5 play_spawn_current::piece_idx#2 game_over#52 current_piece#92 current_piece_gfx#116 lines_bcd#17 level#19 current_movedown_slow#23 level_bcd#19 ] ) always clobbers reg byte a +Statement [287] (byte~) play_spawn_current::$7 ← (byte) play_spawn_current::current_piece_idx#0 << (byte) 1 [ play_spawn_current::$7 game_over#65 play_spawn_current::current_piece_idx#0 ] ( main:11::play_spawn_current:24 [ score_bcd current_movedown_slow#1 play_spawn_current::$7 game_over#65 play_spawn_current::current_piece_idx#0 ] main:11::play_spawn_current:26 [ score_bcd current_movedown_slow#1 play_spawn_current::$7 game_over#65 play_spawn_current::current_piece_idx#0 ] main:11::play_movement:51::play_move_down:165::play_spawn_current:278 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 score_bcd lines_bcd#17 level#19 current_movedown_slow#23 level_bcd#19 play_spawn_current::$7 game_over#65 play_spawn_current::current_piece_idx#0 ] ) always clobbers reg byte a +Statement [293] (byte*) current_piece#99 ← (byte*)*((const word*) PIECES + (byte~) play_spawn_current::$7) [ current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 current_piece#99 play_collision::ypos#4 play_collision::xpos#4 game_over#65 ] ( main:11::play_spawn_current:24 [ score_bcd current_movedown_slow#1 current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 current_piece#99 play_collision::ypos#4 play_collision::xpos#4 game_over#65 ] main:11::play_spawn_current:26 [ score_bcd current_movedown_slow#1 current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 current_piece#99 play_collision::ypos#4 play_collision::xpos#4 game_over#65 ] main:11::play_movement:51::play_move_down:165::play_spawn_current:278 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 score_bcd lines_bcd#17 level#19 current_movedown_slow#23 level_bcd#19 current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 current_piece#99 play_collision::ypos#4 play_collision::xpos#4 game_over#65 ] ) always clobbers reg byte a +Statement [301] if((byte) play_spawn_current::piece_idx#2==(byte) 7) goto play_spawn_current::sid_rnd1 [ current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 play_spawn_current::piece_idx#2 game_over#52 ] ( main:11::play_spawn_current:24 [ score_bcd current_movedown_slow#1 current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 play_spawn_current::piece_idx#2 game_over#52 ] main:11::play_spawn_current:26 [ score_bcd current_movedown_slow#1 current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 play_spawn_current::piece_idx#2 game_over#52 ] main:11::play_movement:51::play_move_down:165::play_spawn_current:278 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 score_bcd lines_bcd#17 level#19 current_movedown_slow#23 level_bcd#19 current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 play_spawn_current::piece_idx#2 game_over#52 ] ) always clobbers reg byte a +Statement [304] (byte) play_spawn_current::piece_idx#1 ← (byte) play_spawn_current::sid_rnd1_return#0 & (byte) 7 [ current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 game_over#52 play_spawn_current::piece_idx#1 ] ( main:11::play_spawn_current:24 [ score_bcd current_movedown_slow#1 current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 game_over#52 play_spawn_current::piece_idx#1 ] main:11::play_spawn_current:26 [ score_bcd current_movedown_slow#1 current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 game_over#52 play_spawn_current::piece_idx#1 ] main:11::play_movement:51::play_move_down:165::play_spawn_current:278 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 score_bcd lines_bcd#17 level#19 current_movedown_slow#23 level_bcd#19 current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 game_over#52 play_spawn_current::piece_idx#1 ] ) always clobbers reg byte a +Statement [306] (byte~) play_update_score::$2 ← < (word) lines_bcd#19 [ score_bcd current_movedown_slow#14 lines_bcd#19 level#10 level_bcd#11 play_update_score::removed#0 play_update_score::$2 ] ( main:11::play_movement:51::play_move_down:165::play_update_score:276 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 game_over#10 next_piece_idx#10 score_bcd current_movedown_slow#14 lines_bcd#19 level#10 level_bcd#11 play_update_score::removed#0 play_update_score::$2 ] ) always clobbers reg byte a +Statement [308] (byte~) play_update_score::$9 ← (byte) play_update_score::removed#0 << (byte) 2 [ score_bcd current_movedown_slow#14 lines_bcd#19 level#10 level_bcd#11 play_update_score::removed#0 play_update_score::lines_before#0 play_update_score::$9 ] ( main:11::play_movement:51::play_move_down:165::play_update_score:276 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 game_over#10 next_piece_idx#10 score_bcd current_movedown_slow#14 lines_bcd#19 level#10 level_bcd#11 play_update_score::removed#0 play_update_score::lines_before#0 play_update_score::$9 ] ) always clobbers reg byte a +Statement [309] (dword) play_update_score::add_bcd#0 ← *((const dword*) score_add_bcd + (byte~) play_update_score::$9) [ score_bcd current_movedown_slow#14 lines_bcd#19 level#10 level_bcd#11 play_update_score::removed#0 play_update_score::lines_before#0 play_update_score::add_bcd#0 ] ( main:11::play_movement:51::play_move_down:165::play_update_score:276 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 game_over#10 next_piece_idx#10 score_bcd current_movedown_slow#14 lines_bcd#19 level#10 level_bcd#11 play_update_score::removed#0 play_update_score::lines_before#0 play_update_score::add_bcd#0 ] ) always clobbers reg byte a +Statement [311] (word) lines_bcd#29 ← (word) lines_bcd#19 + (byte) play_update_score::removed#0 [ score_bcd current_movedown_slow#14 level#10 level_bcd#11 play_update_score::lines_before#0 play_update_score::add_bcd#0 lines_bcd#29 ] ( main:11::play_movement:51::play_move_down:165::play_update_score:276 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 game_over#10 next_piece_idx#10 score_bcd current_movedown_slow#14 level#10 level_bcd#11 play_update_score::lines_before#0 play_update_score::add_bcd#0 lines_bcd#29 ] ) always clobbers reg byte a +Statement [312] (dword) score_bcd ← (dword) score_bcd + (dword) play_update_score::add_bcd#0 [ score_bcd current_movedown_slow#14 level#10 level_bcd#11 play_update_score::lines_before#0 lines_bcd#29 ] ( main:11::play_movement:51::play_move_down:165::play_update_score:276 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 game_over#10 next_piece_idx#10 score_bcd current_movedown_slow#14 level#10 level_bcd#11 play_update_score::lines_before#0 lines_bcd#29 ] ) always clobbers reg byte a +Statement [314] (byte~) play_update_score::$4 ← < (word) lines_bcd#29 [ score_bcd current_movedown_slow#14 level#10 level_bcd#11 play_update_score::lines_before#0 lines_bcd#29 play_update_score::$4 ] ( main:11::play_movement:51::play_move_down:165::play_update_score:276 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 game_over#10 next_piece_idx#10 score_bcd current_movedown_slow#14 level#10 level_bcd#11 play_update_score::lines_before#0 lines_bcd#29 play_update_score::$4 ] ) always clobbers reg byte a +Statement [322] if((byte) level#21>=(byte) $1d+(byte) 1) goto play_increase_level::@1 [ level_bcd#11 level#21 ] ( main:11::play_movement:51::play_move_down:165::play_update_score:276::play_increase_level:318 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 game_over#10 next_piece_idx#10 score_bcd lines_bcd#29 level_bcd#11 level#21 ] ) always clobbers reg byte a +Statement [323] (byte) current_movedown_slow#10 ← *((const byte*) MOVEDOWN_SLOW_SPEEDS + (byte) level#21) [ level_bcd#11 level#21 current_movedown_slow#10 ] ( main:11::play_movement:51::play_move_down:165::play_update_score:276::play_increase_level:318 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 game_over#10 next_piece_idx#10 score_bcd lines_bcd#29 level_bcd#11 level#21 current_movedown_slow#10 ] ) always clobbers reg byte a reg byte y Removing always clobbered register reg byte y as potential for zp[1]:123 [ play_movement::key_event#0 ] -Statement [328] (byte~) play_increase_level::$1 ← (byte) level_bcd#21 & (byte) $f [ level#21 current_movedown_slow#65 level_bcd#21 play_increase_level::$1 ] ( main:13::play_movement:53::play_move_down:167::play_update_score:278::play_increase_level:320 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 game_over#10 next_piece_idx#10 score_bcd lines_bcd#29 level#21 current_movedown_slow#65 level_bcd#21 play_increase_level::$1 ] ) always clobbers reg byte a -Statement [330] (byte) level_bcd#8 ← (byte) level_bcd#21 + (byte) 6 [ level#21 current_movedown_slow#65 level_bcd#8 ] ( main:13::play_movement:53::play_move_down:167::play_update_score:278::play_increase_level:320 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 game_over#10 next_piece_idx#10 score_bcd lines_bcd#29 level#21 current_movedown_slow#65 level_bcd#8 ] ) always clobbers reg byte a reg byte x -Statement [334] (byte~) play_increase_level::$5 ← (byte) play_increase_level::b#2 << (byte) 2 [ level#21 current_movedown_slow#65 level_bcd#62 play_increase_level::b#2 play_increase_level::$5 ] ( main:13::play_movement:53::play_move_down:167::play_update_score:278::play_increase_level:320 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 game_over#10 next_piece_idx#10 score_bcd lines_bcd#29 level#21 current_movedown_slow#65 level_bcd#62 play_increase_level::b#2 play_increase_level::$5 ] ) always clobbers reg byte a -Statement [335] *((const dword*) score_add_bcd + (byte~) play_increase_level::$5) ← *((const dword*) score_add_bcd + (byte~) play_increase_level::$5) + *((const dword*) SCORE_BASE_BCD + (byte~) play_increase_level::$5) [ level#21 current_movedown_slow#65 level_bcd#62 play_increase_level::b#2 ] ( main:13::play_movement:53::play_move_down:167::play_update_score:278::play_increase_level:320 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 game_over#10 next_piece_idx#10 score_bcd lines_bcd#29 level#21 current_movedown_slow#65 level_bcd#62 play_increase_level::b#2 ] ) always clobbers reg byte a -Statement [353] (byte) play_remove_lines::w#2 ← (byte) play_remove_lines::w#1 + (const byte) PLAYFIELD_COLS [ play_remove_lines::y#8 play_remove_lines::removed#11 play_remove_lines::r#1 play_remove_lines::w#2 ] ( main:13::play_movement:53::play_move_down:167::play_remove_lines:274 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 score_bcd current_movedown_slow#14 game_over#10 next_piece_idx#10 lines_bcd#19 level#10 level_bcd#11 play_remove_lines::y#8 play_remove_lines::removed#11 play_remove_lines::r#1 play_remove_lines::w#2 ] ) always clobbers reg byte a -Statement [361] *((const byte*) playfield + (byte) play_remove_lines::w#6) ← (byte) 0 [ play_remove_lines::removed#8 play_remove_lines::w#6 ] ( main:13::play_movement:53::play_move_down:167::play_remove_lines:274 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 score_bcd current_movedown_slow#14 game_over#10 next_piece_idx#10 lines_bcd#19 level#10 level_bcd#11 play_remove_lines::removed#8 play_remove_lines::w#6 ] ) always clobbers reg byte a -Statement [365] (byte~) play_lock_current::$4 ← (byte) play_lock_current::yp#2 << (byte) 1 [ current_piece_char#10 current_piece_gfx#13 current_xpos#14 play_lock_current::yp#2 play_lock_current::i#3 play_lock_current::l#6 play_lock_current::$4 ] ( main:13::play_movement:53::play_move_down:167::play_lock_current:272 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 score_bcd current_movedown_slow#14 game_over#10 next_piece_idx#10 lines_bcd#19 level#10 level_bcd#11 current_piece_char#10 current_piece_gfx#13 current_xpos#14 play_lock_current::yp#2 play_lock_current::i#3 play_lock_current::l#6 play_lock_current::$4 ] ) always clobbers reg byte a -Statement [366] (byte*) play_lock_current::playfield_line#0 ← *((const byte**) playfield_lines + (byte~) play_lock_current::$4) [ current_piece_char#10 current_piece_gfx#13 current_xpos#14 play_lock_current::yp#2 play_lock_current::i#3 play_lock_current::l#6 play_lock_current::playfield_line#0 ] ( main:13::play_movement:53::play_move_down:167::play_lock_current:272 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 score_bcd current_movedown_slow#14 game_over#10 next_piece_idx#10 lines_bcd#19 level#10 level_bcd#11 current_piece_char#10 current_piece_gfx#13 current_xpos#14 play_lock_current::yp#2 play_lock_current::i#3 play_lock_current::l#6 play_lock_current::playfield_line#0 ] ) always clobbers reg byte a -Statement [370] if(*((byte*) current_piece_gfx#13 + (byte) play_lock_current::i#2)==(byte) 0) goto play_lock_current::@3 [ current_piece_char#10 current_piece_gfx#13 current_xpos#14 play_lock_current::yp#2 play_lock_current::l#6 play_lock_current::playfield_line#0 play_lock_current::xp#2 play_lock_current::c#2 play_lock_current::i#1 ] ( main:13::play_movement:53::play_move_down:167::play_lock_current:272 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 score_bcd current_movedown_slow#14 game_over#10 next_piece_idx#10 lines_bcd#19 level#10 level_bcd#11 current_piece_char#10 current_piece_gfx#13 current_xpos#14 play_lock_current::yp#2 play_lock_current::l#6 play_lock_current::playfield_line#0 play_lock_current::xp#2 play_lock_current::c#2 play_lock_current::i#1 ] ) always clobbers reg byte a -Statement [371] *((byte*) play_lock_current::playfield_line#0 + (byte) play_lock_current::xp#2) ← (byte) current_piece_char#10 [ current_piece_char#10 current_piece_gfx#13 current_xpos#14 play_lock_current::yp#2 play_lock_current::l#6 play_lock_current::playfield_line#0 play_lock_current::xp#2 play_lock_current::c#2 play_lock_current::i#1 ] ( main:13::play_movement:53::play_move_down:167::play_lock_current:272 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 score_bcd current_movedown_slow#14 game_over#10 next_piece_idx#10 lines_bcd#19 level#10 level_bcd#11 current_piece_char#10 current_piece_gfx#13 current_xpos#14 play_lock_current::yp#2 play_lock_current::l#6 play_lock_current::playfield_line#0 play_lock_current::xp#2 play_lock_current::c#2 play_lock_current::i#1 ] ) always clobbers reg byte a -Statement [382] (byte~) keyboard_event_pressed::$0 ← (byte) keyboard_event_pressed::keycode#5 >> (byte) 3 [ keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] ( main:13::play_movement:53::play_move_down:167::keyboard_event_pressed:252 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 score_bcd current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 lines_bcd#19 level#10 level_bcd#11 current_movedown_counter#12 play_move_down::movedown#10 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] main:13::keyboard_event_scan:45::keyboard_event_pressed:404 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 level#10 level_bcd#11 keyboard_events_size#13 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] main:13::keyboard_event_scan:45::keyboard_event_pressed:410 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 level#10 level_bcd#11 keyboard_events_size#13 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] main:13::keyboard_event_scan:45::keyboard_event_pressed:416 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 level#10 level_bcd#11 keyboard_events_size#13 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] main:13::keyboard_event_scan:45::keyboard_event_pressed:422 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 level#10 level_bcd#11 keyboard_events_size#13 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] ) always clobbers reg byte a -Statement [384] (byte~) keyboard_event_pressed::$1 ← (byte) keyboard_event_pressed::keycode#5 & (byte) 7 [ keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] ( main:13::play_movement:53::play_move_down:167::keyboard_event_pressed:252 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 score_bcd current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 lines_bcd#19 level#10 level_bcd#11 current_movedown_counter#12 play_move_down::movedown#10 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:13::keyboard_event_scan:45::keyboard_event_pressed:404 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 level#10 level_bcd#11 keyboard_events_size#13 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:13::keyboard_event_scan:45::keyboard_event_pressed:410 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 level#10 level_bcd#11 keyboard_events_size#13 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:13::keyboard_event_scan:45::keyboard_event_pressed:416 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 level#10 level_bcd#11 keyboard_events_size#13 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:13::keyboard_event_scan:45::keyboard_event_pressed:422 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 level#10 level_bcd#11 keyboard_events_size#13 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] ) always clobbers reg byte a -Statement [385] (byte) keyboard_event_pressed::return#11 ← (byte) keyboard_event_pressed::row_bits#0 & *((const byte*) keyboard_matrix_col_bitmask + (byte~) keyboard_event_pressed::$1) [ keyboard_event_pressed::return#11 ] ( main:13::play_movement:53::play_move_down:167::keyboard_event_pressed:252 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 score_bcd current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 lines_bcd#19 level#10 level_bcd#11 current_movedown_counter#12 play_move_down::movedown#10 keyboard_event_pressed::return#11 ] main:13::keyboard_event_scan:45::keyboard_event_pressed:404 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 level#10 level_bcd#11 keyboard_events_size#13 keyboard_event_pressed::return#11 ] main:13::keyboard_event_scan:45::keyboard_event_pressed:410 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 level#10 level_bcd#11 keyboard_events_size#13 keyboard_event_pressed::return#11 ] main:13::keyboard_event_scan:45::keyboard_event_pressed:416 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 level#10 level_bcd#11 keyboard_events_size#13 keyboard_event_pressed::return#11 ] main:13::keyboard_event_scan:45::keyboard_event_pressed:422 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 level#10 level_bcd#11 keyboard_events_size#13 keyboard_event_pressed::return#11 ] ) always clobbers reg byte a -Statement [387] if((byte) keyboard_events_size#13==(byte) 0) goto keyboard_event_get::@return [ keyboard_events_size#13 ] ( main:13::keyboard_event_get:47 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 level#10 level_bcd#11 keyboard_events_size#13 ] ) always clobbers reg byte a -Statement [389] (byte) keyboard_event_get::return#1 ← *((const byte*) keyboard_events + (byte) keyboard_events_size#4) [ keyboard_events_size#4 keyboard_event_get::return#1 ] ( main:13::keyboard_event_get:47 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 level#10 level_bcd#11 keyboard_events_size#4 keyboard_event_get::return#1 ] ) always clobbers reg byte y -Statement [398] if((byte) keyboard_event_scan::row_scan#0!=*((const byte*) keyboard_scan_values + (byte) keyboard_event_scan::row#2)) goto keyboard_event_scan::@9 [ keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#30 keyboard_event_scan::row_scan#0 ] ( main:13::keyboard_event_scan:45 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 level#10 level_bcd#11 keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#30 keyboard_event_scan::row_scan#0 ] ) always clobbers reg byte a -Statement [399] (byte) keyboard_event_scan::keycode#1 ← (byte) keyboard_event_scan::keycode#11 + (byte) 8 [ keyboard_event_scan::row#2 keyboard_events_size#30 keyboard_event_scan::keycode#1 ] ( main:13::keyboard_event_scan:45 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 level#10 level_bcd#11 keyboard_event_scan::row#2 keyboard_events_size#30 keyboard_event_scan::keycode#1 ] ) always clobbers reg byte a reg byte x +Statement [326] (byte~) play_increase_level::$1 ← (byte) level_bcd#21 & (byte) $f [ level#21 current_movedown_slow#65 level_bcd#21 play_increase_level::$1 ] ( main:11::play_movement:51::play_move_down:165::play_update_score:276::play_increase_level:318 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 game_over#10 next_piece_idx#10 score_bcd lines_bcd#29 level#21 current_movedown_slow#65 level_bcd#21 play_increase_level::$1 ] ) always clobbers reg byte a +Statement [328] (byte) level_bcd#8 ← (byte) level_bcd#21 + (byte) 6 [ level#21 current_movedown_slow#65 level_bcd#8 ] ( main:11::play_movement:51::play_move_down:165::play_update_score:276::play_increase_level:318 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 game_over#10 next_piece_idx#10 score_bcd lines_bcd#29 level#21 current_movedown_slow#65 level_bcd#8 ] ) always clobbers reg byte a reg byte x +Statement [332] (byte~) play_increase_level::$5 ← (byte) play_increase_level::b#2 << (byte) 2 [ level#21 current_movedown_slow#65 level_bcd#62 play_increase_level::b#2 play_increase_level::$5 ] ( main:11::play_movement:51::play_move_down:165::play_update_score:276::play_increase_level:318 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 game_over#10 next_piece_idx#10 score_bcd lines_bcd#29 level#21 current_movedown_slow#65 level_bcd#62 play_increase_level::b#2 play_increase_level::$5 ] ) always clobbers reg byte a +Statement [333] *((const dword*) score_add_bcd + (byte~) play_increase_level::$5) ← *((const dword*) score_add_bcd + (byte~) play_increase_level::$5) + *((const dword*) SCORE_BASE_BCD + (byte~) play_increase_level::$5) [ level#21 current_movedown_slow#65 level_bcd#62 play_increase_level::b#2 ] ( main:11::play_movement:51::play_move_down:165::play_update_score:276::play_increase_level:318 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 game_over#10 next_piece_idx#10 score_bcd lines_bcd#29 level#21 current_movedown_slow#65 level_bcd#62 play_increase_level::b#2 ] ) always clobbers reg byte a +Statement [351] (byte) play_remove_lines::w#2 ← (byte) play_remove_lines::w#1 + (const byte) PLAYFIELD_COLS [ play_remove_lines::y#8 play_remove_lines::removed#11 play_remove_lines::r#1 play_remove_lines::w#2 ] ( main:11::play_movement:51::play_move_down:165::play_remove_lines:272 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 score_bcd current_movedown_slow#14 game_over#10 next_piece_idx#10 lines_bcd#19 level#10 level_bcd#11 play_remove_lines::y#8 play_remove_lines::removed#11 play_remove_lines::r#1 play_remove_lines::w#2 ] ) always clobbers reg byte a +Statement [359] *((const byte*) playfield + (byte) play_remove_lines::w#6) ← (byte) 0 [ play_remove_lines::removed#8 play_remove_lines::w#6 ] ( main:11::play_movement:51::play_move_down:165::play_remove_lines:272 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 score_bcd current_movedown_slow#14 game_over#10 next_piece_idx#10 lines_bcd#19 level#10 level_bcd#11 play_remove_lines::removed#8 play_remove_lines::w#6 ] ) always clobbers reg byte a +Statement [363] (byte~) play_lock_current::$4 ← (byte) play_lock_current::yp#2 << (byte) 1 [ current_piece_char#10 current_piece_gfx#13 current_xpos#14 play_lock_current::yp#2 play_lock_current::i#3 play_lock_current::l#6 play_lock_current::$4 ] ( main:11::play_movement:51::play_move_down:165::play_lock_current:270 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 score_bcd current_movedown_slow#14 game_over#10 next_piece_idx#10 lines_bcd#19 level#10 level_bcd#11 current_piece_char#10 current_piece_gfx#13 current_xpos#14 play_lock_current::yp#2 play_lock_current::i#3 play_lock_current::l#6 play_lock_current::$4 ] ) always clobbers reg byte a +Statement [364] (byte*) play_lock_current::playfield_line#0 ← *((const byte**) playfield_lines + (byte~) play_lock_current::$4) [ current_piece_char#10 current_piece_gfx#13 current_xpos#14 play_lock_current::yp#2 play_lock_current::i#3 play_lock_current::l#6 play_lock_current::playfield_line#0 ] ( main:11::play_movement:51::play_move_down:165::play_lock_current:270 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 score_bcd current_movedown_slow#14 game_over#10 next_piece_idx#10 lines_bcd#19 level#10 level_bcd#11 current_piece_char#10 current_piece_gfx#13 current_xpos#14 play_lock_current::yp#2 play_lock_current::i#3 play_lock_current::l#6 play_lock_current::playfield_line#0 ] ) always clobbers reg byte a +Statement [368] if(*((byte*) current_piece_gfx#13 + (byte) play_lock_current::i#2)==(byte) 0) goto play_lock_current::@3 [ current_piece_char#10 current_piece_gfx#13 current_xpos#14 play_lock_current::yp#2 play_lock_current::l#6 play_lock_current::playfield_line#0 play_lock_current::xp#2 play_lock_current::c#2 play_lock_current::i#1 ] ( main:11::play_movement:51::play_move_down:165::play_lock_current:270 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 score_bcd current_movedown_slow#14 game_over#10 next_piece_idx#10 lines_bcd#19 level#10 level_bcd#11 current_piece_char#10 current_piece_gfx#13 current_xpos#14 play_lock_current::yp#2 play_lock_current::l#6 play_lock_current::playfield_line#0 play_lock_current::xp#2 play_lock_current::c#2 play_lock_current::i#1 ] ) always clobbers reg byte a +Statement [369] *((byte*) play_lock_current::playfield_line#0 + (byte) play_lock_current::xp#2) ← (byte) current_piece_char#10 [ current_piece_char#10 current_piece_gfx#13 current_xpos#14 play_lock_current::yp#2 play_lock_current::l#6 play_lock_current::playfield_line#0 play_lock_current::xp#2 play_lock_current::c#2 play_lock_current::i#1 ] ( main:11::play_movement:51::play_move_down:165::play_lock_current:270 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 score_bcd current_movedown_slow#14 game_over#10 next_piece_idx#10 lines_bcd#19 level#10 level_bcd#11 current_piece_char#10 current_piece_gfx#13 current_xpos#14 play_lock_current::yp#2 play_lock_current::l#6 play_lock_current::playfield_line#0 play_lock_current::xp#2 play_lock_current::c#2 play_lock_current::i#1 ] ) always clobbers reg byte a +Statement [380] (byte~) keyboard_event_pressed::$0 ← (byte) keyboard_event_pressed::keycode#5 >> (byte) 3 [ keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] ( main:11::play_movement:51::play_move_down:165::keyboard_event_pressed:250 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 score_bcd current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 lines_bcd#19 level#10 level_bcd#11 current_movedown_counter#12 play_move_down::movedown#10 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] main:11::keyboard_event_scan:43::keyboard_event_pressed:402 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 level#10 level_bcd#11 keyboard_events_size#13 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] main:11::keyboard_event_scan:43::keyboard_event_pressed:408 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 level#10 level_bcd#11 keyboard_events_size#13 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] main:11::keyboard_event_scan:43::keyboard_event_pressed:414 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 level#10 level_bcd#11 keyboard_events_size#13 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] main:11::keyboard_event_scan:43::keyboard_event_pressed:420 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 level#10 level_bcd#11 keyboard_events_size#13 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] ) always clobbers reg byte a +Statement [382] (byte~) keyboard_event_pressed::$1 ← (byte) keyboard_event_pressed::keycode#5 & (byte) 7 [ keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] ( main:11::play_movement:51::play_move_down:165::keyboard_event_pressed:250 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 score_bcd current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 lines_bcd#19 level#10 level_bcd#11 current_movedown_counter#12 play_move_down::movedown#10 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:11::keyboard_event_scan:43::keyboard_event_pressed:402 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 level#10 level_bcd#11 keyboard_events_size#13 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:11::keyboard_event_scan:43::keyboard_event_pressed:408 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 level#10 level_bcd#11 keyboard_events_size#13 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:11::keyboard_event_scan:43::keyboard_event_pressed:414 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 level#10 level_bcd#11 keyboard_events_size#13 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:11::keyboard_event_scan:43::keyboard_event_pressed:420 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 level#10 level_bcd#11 keyboard_events_size#13 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] ) always clobbers reg byte a +Statement [383] (byte) keyboard_event_pressed::return#11 ← (byte) keyboard_event_pressed::row_bits#0 & *((const byte*) keyboard_matrix_col_bitmask + (byte~) keyboard_event_pressed::$1) [ keyboard_event_pressed::return#11 ] ( main:11::play_movement:51::play_move_down:165::keyboard_event_pressed:250 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 score_bcd current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 lines_bcd#19 level#10 level_bcd#11 current_movedown_counter#12 play_move_down::movedown#10 keyboard_event_pressed::return#11 ] main:11::keyboard_event_scan:43::keyboard_event_pressed:402 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 level#10 level_bcd#11 keyboard_events_size#13 keyboard_event_pressed::return#11 ] main:11::keyboard_event_scan:43::keyboard_event_pressed:408 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 level#10 level_bcd#11 keyboard_events_size#13 keyboard_event_pressed::return#11 ] main:11::keyboard_event_scan:43::keyboard_event_pressed:414 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 level#10 level_bcd#11 keyboard_events_size#13 keyboard_event_pressed::return#11 ] main:11::keyboard_event_scan:43::keyboard_event_pressed:420 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 level#10 level_bcd#11 keyboard_events_size#13 keyboard_event_pressed::return#11 ] ) always clobbers reg byte a +Statement [385] if((byte) keyboard_events_size#13==(byte) 0) goto keyboard_event_get::@return [ keyboard_events_size#13 ] ( main:11::keyboard_event_get:45 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 level#10 level_bcd#11 keyboard_events_size#13 ] ) always clobbers reg byte a +Statement [387] (byte) keyboard_event_get::return#1 ← *((const byte*) keyboard_events + (byte) keyboard_events_size#4) [ keyboard_events_size#4 keyboard_event_get::return#1 ] ( main:11::keyboard_event_get:45 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 level#10 level_bcd#11 keyboard_events_size#4 keyboard_event_get::return#1 ] ) always clobbers reg byte y +Statement [396] if((byte) keyboard_event_scan::row_scan#0!=*((const byte*) keyboard_scan_values + (byte) keyboard_event_scan::row#2)) goto keyboard_event_scan::@9 [ keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#30 keyboard_event_scan::row_scan#0 ] ( main:11::keyboard_event_scan:43 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 level#10 level_bcd#11 keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#30 keyboard_event_scan::row_scan#0 ] ) always clobbers reg byte a +Statement [397] (byte) keyboard_event_scan::keycode#1 ← (byte) keyboard_event_scan::keycode#11 + (byte) 8 [ keyboard_event_scan::row#2 keyboard_events_size#30 keyboard_event_scan::keycode#1 ] ( main:11::keyboard_event_scan:43 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 level#10 level_bcd#11 keyboard_event_scan::row#2 keyboard_events_size#30 keyboard_event_scan::keycode#1 ] ) always clobbers reg byte a reg byte x Removing always clobbered register reg byte x as potential for zp[1]:63 [ current_piece_char#29 current_piece_char#10 current_piece_char#16 current_piece_char#5 ] Removing always clobbered register reg byte x as potential for zp[1]:64 [ current_orientation#37 current_orientation#13 current_orientation#17 current_orientation#20 current_orientation#25 current_orientation#7 ] Removing always clobbered register reg byte x as potential for zp[1]:67 [ current_xpos#43 current_xpos#14 current_xpos#19 current_xpos#100 current_xpos#22 current_xpos#26 current_xpos#6 current_xpos#8 ] @@ -15977,260 +15956,260 @@ Removing always clobbered register reg byte x as potential for zp[1]:55 [ curren Removing always clobbered register reg byte x as potential for zp[1]:4 [ current_movedown_counter#16 current_movedown_counter#14 current_movedown_counter#12 ] Removing always clobbered register reg byte x as potential for zp[1]:60 [ level_bcd#31 level_bcd#11 level_bcd#17 level_bcd#19 level_bcd#62 level_bcd#21 level_bcd#8 ] Removing always clobbered register reg byte x as potential for zp[1]:85 [ keyboard_event_scan::row#2 keyboard_event_scan::row#1 ] -Statement [402] if((byte) keyboard_event_scan::row#1!=(byte) 8) goto keyboard_event_scan::@7 [ keyboard_events_size#13 keyboard_event_scan::row#1 keyboard_event_scan::keycode#13 ] ( main:13::keyboard_event_scan:45 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 level#10 level_bcd#11 keyboard_events_size#13 keyboard_event_scan::row#1 keyboard_event_scan::keycode#13 ] ) always clobbers reg byte a -Statement [429] (byte~) keyboard_event_scan::$15 ← (byte) keyboard_event_scan::row_scan#0 ^ *((const byte*) keyboard_scan_values + (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::$15 ] ( main:13::keyboard_event_scan:45 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 level#10 level_bcd#11 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::$15 ] ) always clobbers reg byte a -Statement [430] (byte~) keyboard_event_scan::$16 ← (byte~) keyboard_event_scan::$15 & *((const byte*) keyboard_matrix_col_bitmask + (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::$16 ] ( main:13::keyboard_event_scan:45 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 level#10 level_bcd#11 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::$16 ] ) always clobbers reg byte a -Statement [432] if((byte) keyboard_events_size#10==(byte) 8) goto keyboard_event_scan::@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:13::keyboard_event_scan:45 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 level#10 level_bcd#11 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 [433] (byte) keyboard_event_scan::event_type#0 ← (byte) keyboard_event_scan::row_scan#0 & *((const byte*) keyboard_matrix_col_bitmask + (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:13::keyboard_event_scan:45 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 level#10 level_bcd#11 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 [435] *((const byte*) keyboard_events + (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:13::keyboard_event_scan:45 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 level#10 level_bcd#11 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 reg byte y -Statement [441] *((const byte*) keyboard_scan_values + (byte) keyboard_event_scan::row#2) ← (byte) keyboard_event_scan::row_scan#0 [ keyboard_event_scan::row#2 keyboard_event_scan::keycode#14 keyboard_events_size#29 ] ( main:13::keyboard_event_scan:45 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 level#10 level_bcd#11 keyboard_event_scan::row#2 keyboard_event_scan::keycode#14 keyboard_events_size#29 ] ) always clobbers reg byte a reg byte y -Statement [442] (byte~) keyboard_event_scan::$23 ← (byte) keyboard_event_scan::keycode#10 | (byte) $40 [ 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::$23 ] ( main:13::keyboard_event_scan:45 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 level#10 level_bcd#11 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::$23 ] ) always clobbers reg byte a -Statement [443] *((const byte*) keyboard_events + (byte) keyboard_events_size#10) ← (byte~) keyboard_event_scan::$23 [ 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:13::keyboard_event_scan:45 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 level#10 level_bcd#11 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 y -Statement [445] *((const byte*) CIA1_PORT_A) ← *((const byte*) keyboard_matrix_row_bitmask + (byte) keyboard_matrix_read::rowid#0) [ ] ( main:13::keyboard_event_scan:45::keyboard_matrix_read:395 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 level#10 level_bcd#11 keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#30 ] ) always clobbers reg byte a -Statement [446] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B) [ keyboard_matrix_read::return#0 ] ( main:13::keyboard_event_scan:45::keyboard_matrix_read:395 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 level#10 level_bcd#11 keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#30 keyboard_matrix_read::return#0 ] ) always clobbers reg byte a -Statement [448] if((byte) render_screen_show#16==(byte) 0) goto render_show::toD0181 [ render_screen_show#16 level#10 ] ( main:13::render_show:43 [ score_bcd render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 keyboard_events_size#19 current_movedown_counter#16 lines_bcd#19 level_bcd#11 render_screen_show#16 level#10 ] ) always clobbers reg byte a -Statement [452] *((const byte*) BGCOL2) ← *((const byte*) PIECES_COLORS_1 + (byte) level#10) [ render_screen_show#16 level#10 ] ( main:13::render_show:43 [ score_bcd render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 keyboard_events_size#19 current_movedown_counter#16 lines_bcd#19 level_bcd#11 render_screen_show#16 level#10 ] ) always clobbers reg byte a reg byte y -Statement [453] *((const byte*) BGCOL3) ← *((const byte*) PIECES_COLORS_2 + (byte) level#10) [ render_screen_show#16 level#10 ] ( main:13::render_show:43 [ score_bcd render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 keyboard_events_size#19 current_movedown_counter#16 lines_bcd#19 level_bcd#11 render_screen_show#16 level#10 ] ) always clobbers reg byte a reg byte y -Statement [454] (byte) render_screen_showing ← (byte) render_screen_show#16 [ render_screen_show#16 level#10 ] ( main:13::render_show:43 [ score_bcd render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 keyboard_events_size#19 current_movedown_counter#16 lines_bcd#19 level_bcd#11 render_screen_show#16 level#10 ] ) always clobbers reg byte a -Statement [459] (byte~) play_init::$2 ← (byte) play_init::j#2 << (byte) 1 [ play_init::j#2 play_init::pli#2 play_init::idx#2 play_init::$2 ] ( main:13::play_init:24 [ score_bcd play_init::j#2 play_init::pli#2 play_init::idx#2 play_init::$2 ] ) always clobbers reg byte a -Statement [460] *((const byte**) playfield_lines + (byte~) play_init::$2) ← (byte*) play_init::pli#2 [ play_init::j#2 play_init::pli#2 play_init::idx#2 ] ( main:13::play_init:24 [ score_bcd play_init::j#2 play_init::pli#2 play_init::idx#2 ] ) always clobbers reg byte a -Statement [461] *((const byte*) playfield_lines_idx + (byte) play_init::j#2) ← (byte) play_init::idx#2 [ play_init::j#2 play_init::pli#2 play_init::idx#2 ] ( main:13::play_init:24 [ score_bcd play_init::j#2 play_init::pli#2 play_init::idx#2 ] ) always clobbers reg byte a -Statement [462] (byte*) play_init::pli#1 ← (byte*) play_init::pli#2 + (const byte) PLAYFIELD_COLS [ play_init::j#2 play_init::idx#2 play_init::pli#1 ] ( main:13::play_init:24 [ score_bcd play_init::j#2 play_init::idx#2 play_init::pli#1 ] ) always clobbers reg byte a -Statement [463] (byte) play_init::idx#1 ← (byte) play_init::idx#2 + (const byte) PLAYFIELD_COLS [ play_init::j#2 play_init::pli#1 play_init::idx#1 ] ( main:13::play_init:24 [ score_bcd play_init::j#2 play_init::pli#1 play_init::idx#1 ] ) always clobbers reg byte a -Statement [466] *((const byte*) playfield_lines_idx+(const byte) PLAYFIELD_LINES) ← (const byte) PLAYFIELD_COLS*(const byte) PLAYFIELD_LINES [ ] ( main:13::play_init:24 [ score_bcd ] ) always clobbers reg byte a -Statement [467] (byte) current_movedown_slow#1 ← *((const byte*) MOVEDOWN_SLOW_SPEEDS) [ current_movedown_slow#1 ] ( main:13::play_init:24 [ score_bcd current_movedown_slow#1 ] ) always clobbers reg byte a -Statement [469] (byte~) play_init::$3 ← (byte) play_init::b#2 << (byte) 2 [ current_movedown_slow#1 play_init::b#2 play_init::$3 ] ( main:13::play_init:24 [ score_bcd current_movedown_slow#1 play_init::b#2 play_init::$3 ] ) always clobbers reg byte a -Statement [470] *((const dword*) score_add_bcd + (byte~) play_init::$3) ← *((const dword*) SCORE_BASE_BCD + (byte~) play_init::$3) [ current_movedown_slow#1 play_init::b#2 ] ( main:13::play_init:24 [ score_bcd current_movedown_slow#1 play_init::b#2 ] ) always clobbers reg byte a -Statement [475] *((const byte*) IRQ_STATUS) ← (const byte) IRQ_RASTER [ ] ( main:13::sprites_irq_init:22 [ score_bcd ] ) always clobbers reg byte a +Statement [400] if((byte) keyboard_event_scan::row#1!=(byte) 8) goto keyboard_event_scan::@7 [ keyboard_events_size#13 keyboard_event_scan::row#1 keyboard_event_scan::keycode#13 ] ( main:11::keyboard_event_scan:43 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 level#10 level_bcd#11 keyboard_events_size#13 keyboard_event_scan::row#1 keyboard_event_scan::keycode#13 ] ) always clobbers reg byte a +Statement [427] (byte~) keyboard_event_scan::$15 ← (byte) keyboard_event_scan::row_scan#0 ^ *((const byte*) keyboard_scan_values + (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::$15 ] ( main:11::keyboard_event_scan:43 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 level#10 level_bcd#11 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::$15 ] ) always clobbers reg byte a +Statement [428] (byte~) keyboard_event_scan::$16 ← (byte~) keyboard_event_scan::$15 & *((const byte*) keyboard_matrix_col_bitmask + (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::$16 ] ( main:11::keyboard_event_scan:43 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 level#10 level_bcd#11 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::$16 ] ) always clobbers reg byte a +Statement [430] if((byte) keyboard_events_size#10==(byte) 8) goto keyboard_event_scan::@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:11::keyboard_event_scan:43 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 level#10 level_bcd#11 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 [431] (byte) keyboard_event_scan::event_type#0 ← (byte) keyboard_event_scan::row_scan#0 & *((const byte*) keyboard_matrix_col_bitmask + (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:11::keyboard_event_scan:43 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 level#10 level_bcd#11 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 [433] *((const byte*) keyboard_events + (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:11::keyboard_event_scan:43 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 level#10 level_bcd#11 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 reg byte y +Statement [439] *((const byte*) keyboard_scan_values + (byte) keyboard_event_scan::row#2) ← (byte) keyboard_event_scan::row_scan#0 [ keyboard_event_scan::row#2 keyboard_event_scan::keycode#14 keyboard_events_size#29 ] ( main:11::keyboard_event_scan:43 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 level#10 level_bcd#11 keyboard_event_scan::row#2 keyboard_event_scan::keycode#14 keyboard_events_size#29 ] ) always clobbers reg byte a reg byte y +Statement [440] (byte~) keyboard_event_scan::$23 ← (byte) keyboard_event_scan::keycode#10 | (byte) $40 [ 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::$23 ] ( main:11::keyboard_event_scan:43 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 level#10 level_bcd#11 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::$23 ] ) always clobbers reg byte a +Statement [441] *((const byte*) keyboard_events + (byte) keyboard_events_size#10) ← (byte~) keyboard_event_scan::$23 [ 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:11::keyboard_event_scan:43 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 level#10 level_bcd#11 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 y +Statement [443] *((const byte*) CIA1_PORT_A) ← *((const byte*) keyboard_matrix_row_bitmask + (byte) keyboard_matrix_read::rowid#0) [ ] ( main:11::keyboard_event_scan:43::keyboard_matrix_read:393 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 level#10 level_bcd#11 keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#30 ] ) always clobbers reg byte a +Statement [444] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B) [ keyboard_matrix_read::return#0 ] ( main:11::keyboard_event_scan:43::keyboard_matrix_read:393 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 level#10 level_bcd#11 keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#30 keyboard_matrix_read::return#0 ] ) always clobbers reg byte a +Statement [446] if((byte) render_screen_show#16==(byte) 0) goto render_show::toD0181 [ render_screen_show#16 level#10 ] ( main:11::render_show:41 [ score_bcd render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 keyboard_events_size#19 current_movedown_counter#16 lines_bcd#19 level_bcd#11 render_screen_show#16 level#10 ] ) always clobbers reg byte a +Statement [450] *((const byte*) BGCOL2) ← *((const byte*) PIECES_COLORS_1 + (byte) level#10) [ render_screen_show#16 level#10 ] ( main:11::render_show:41 [ score_bcd render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 keyboard_events_size#19 current_movedown_counter#16 lines_bcd#19 level_bcd#11 render_screen_show#16 level#10 ] ) always clobbers reg byte a reg byte y +Statement [451] *((const byte*) BGCOL3) ← *((const byte*) PIECES_COLORS_2 + (byte) level#10) [ render_screen_show#16 level#10 ] ( main:11::render_show:41 [ score_bcd render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 keyboard_events_size#19 current_movedown_counter#16 lines_bcd#19 level_bcd#11 render_screen_show#16 level#10 ] ) always clobbers reg byte a reg byte y +Statement [452] (byte) render_screen_showing ← (byte) render_screen_show#16 [ render_screen_show#16 level#10 ] ( main:11::render_show:41 [ score_bcd render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 keyboard_events_size#19 current_movedown_counter#16 lines_bcd#19 level_bcd#11 render_screen_show#16 level#10 ] ) always clobbers reg byte a +Statement [457] (byte~) play_init::$2 ← (byte) play_init::j#2 << (byte) 1 [ play_init::j#2 play_init::pli#2 play_init::idx#2 play_init::$2 ] ( main:11::play_init:22 [ score_bcd play_init::j#2 play_init::pli#2 play_init::idx#2 play_init::$2 ] ) always clobbers reg byte a +Statement [458] *((const byte**) playfield_lines + (byte~) play_init::$2) ← (byte*) play_init::pli#2 [ play_init::j#2 play_init::pli#2 play_init::idx#2 ] ( main:11::play_init:22 [ score_bcd play_init::j#2 play_init::pli#2 play_init::idx#2 ] ) always clobbers reg byte a +Statement [459] *((const byte*) playfield_lines_idx + (byte) play_init::j#2) ← (byte) play_init::idx#2 [ play_init::j#2 play_init::pli#2 play_init::idx#2 ] ( main:11::play_init:22 [ score_bcd play_init::j#2 play_init::pli#2 play_init::idx#2 ] ) always clobbers reg byte a +Statement [460] (byte*) play_init::pli#1 ← (byte*) play_init::pli#2 + (const byte) PLAYFIELD_COLS [ play_init::j#2 play_init::idx#2 play_init::pli#1 ] ( main:11::play_init:22 [ score_bcd play_init::j#2 play_init::idx#2 play_init::pli#1 ] ) always clobbers reg byte a +Statement [461] (byte) play_init::idx#1 ← (byte) play_init::idx#2 + (const byte) PLAYFIELD_COLS [ play_init::j#2 play_init::pli#1 play_init::idx#1 ] ( main:11::play_init:22 [ score_bcd play_init::j#2 play_init::pli#1 play_init::idx#1 ] ) always clobbers reg byte a +Statement [464] *((const byte*) playfield_lines_idx+(const byte) PLAYFIELD_LINES) ← (const byte) PLAYFIELD_COLS*(const byte) PLAYFIELD_LINES [ ] ( main:11::play_init:22 [ score_bcd ] ) always clobbers reg byte a +Statement [465] (byte) current_movedown_slow#1 ← *((const byte*) MOVEDOWN_SLOW_SPEEDS) [ current_movedown_slow#1 ] ( main:11::play_init:22 [ score_bcd current_movedown_slow#1 ] ) always clobbers reg byte a +Statement [467] (byte~) play_init::$3 ← (byte) play_init::b#2 << (byte) 2 [ current_movedown_slow#1 play_init::b#2 play_init::$3 ] ( main:11::play_init:22 [ score_bcd current_movedown_slow#1 play_init::b#2 play_init::$3 ] ) always clobbers reg byte a +Statement [468] *((const dword*) score_add_bcd + (byte~) play_init::$3) ← *((const dword*) SCORE_BASE_BCD + (byte~) play_init::$3) [ current_movedown_slow#1 play_init::b#2 ] ( main:11::play_init:22 [ score_bcd current_movedown_slow#1 play_init::b#2 ] ) always clobbers reg byte a +Statement [473] *((const byte*) IRQ_STATUS) ← (const byte) IRQ_RASTER [ ] ( main:11::sprites_irq_init:20 [ score_bcd ] ) always clobbers reg byte a Statement asm { ldaCIA1_INTERRUPT } always clobbers reg byte a -Statement [477] *((const byte*) PROCPORT_DDR) ← (const byte) PROCPORT_DDR_MEMORY_MASK [ ] ( main:13::sprites_irq_init:22 [ score_bcd ] ) always clobbers reg byte a -Statement [478] *((const byte*) PROCPORT) ← (const byte) PROCPORT_RAM_IO [ ] ( main:13::sprites_irq_init:22 [ score_bcd ] ) always clobbers reg byte a -Statement [479] *((const byte*) CIA1_INTERRUPT) ← (const byte) CIA_INTERRUPT_CLEAR [ ] ( main:13::sprites_irq_init:22 [ score_bcd ] ) always clobbers reg byte a -Statement [480] *((const byte*) VIC_CONTROL) ← *((const byte*) VIC_CONTROL) & (byte) $7f [ ] ( main:13::sprites_irq_init:22 [ score_bcd ] ) always clobbers reg byte a -Statement [481] *((const byte*) RASTER) ← (const byte) IRQ_RASTER_FIRST [ ] ( main:13::sprites_irq_init:22 [ score_bcd ] ) always clobbers reg byte a -Statement [482] *((const byte*) IRQ_ENABLE) ← (const byte) IRQ_RASTER [ ] ( main:13::sprites_irq_init:22 [ score_bcd ] ) always clobbers reg byte a -Statement [483] *((const void()**) HARDWARE_IRQ) ← &interrupt(HARDWARE_CLOBBER)(void()) sprites_irq() [ ] ( main:13::sprites_irq_init:22 [ score_bcd ] ) always clobbers reg byte a -Statement [486] *((const byte*) SPRITES_ENABLE) ← (byte) $f [ ] ( main:13::sprites_init:20 [ score_bcd ] ) always clobbers reg byte a -Statement [487] *((const byte*) SPRITES_MC) ← (byte) 0 [ ] ( main:13::sprites_init:20 [ score_bcd ] ) always clobbers reg byte a -Statement [488] *((const byte*) SPRITES_EXPAND_Y) ← *((const byte*) SPRITES_MC) [ ] ( main:13::sprites_init:20 [ score_bcd ] ) always clobbers reg byte a -Statement [489] *((const byte*) SPRITES_EXPAND_X) ← *((const byte*) SPRITES_EXPAND_Y) [ ] ( main:13::sprites_init:20 [ score_bcd ] ) always clobbers reg byte a -Statement [491] (byte) sprites_init::s2#0 ← (byte) sprites_init::s#2 << (byte) 1 [ sprites_init::s#2 sprites_init::xpos#2 sprites_init::s2#0 ] ( main:13::sprites_init:20 [ score_bcd sprites_init::s#2 sprites_init::xpos#2 sprites_init::s2#0 ] ) always clobbers reg byte a -Statement [492] *((const byte*) SPRITES_XPOS + (byte) sprites_init::s2#0) ← (byte) sprites_init::xpos#2 [ sprites_init::s#2 sprites_init::xpos#2 ] ( main:13::sprites_init:20 [ score_bcd sprites_init::s#2 sprites_init::xpos#2 ] ) always clobbers reg byte a -Statement [493] *((const byte*) SPRITES_COLS + (byte) sprites_init::s#2) ← (const byte) BLACK [ sprites_init::s#2 sprites_init::xpos#2 ] ( main:13::sprites_init:20 [ score_bcd sprites_init::s#2 sprites_init::xpos#2 ] ) always clobbers reg byte a -Statement [494] (byte) sprites_init::xpos#1 ← (byte) sprites_init::xpos#2 + (byte) $18 [ sprites_init::s#2 sprites_init::xpos#1 ] ( main:13::sprites_init:20 [ score_bcd sprites_init::s#2 sprites_init::xpos#1 ] ) always clobbers reg byte a -Statement [499] *((const byte*) CIA2_PORT_A_DDR) ← (byte) 3 [ ] ( main:13::render_init:18 [ score_bcd ] ) always clobbers reg byte a -Statement [501] *((const byte*) CIA2_PORT_A) ← (const byte) render_init::vicSelectGfxBank1_toDd001_return#0 [ ] ( main:13::render_init:18 [ score_bcd ] ) always clobbers reg byte a -Statement [502] *((const byte*) D011) ← (const byte) VIC_ECM|(const byte) VIC_DEN|(const byte) VIC_RSEL|(byte) 3 [ ] ( main:13::render_init:18 [ score_bcd ] ) always clobbers reg byte a -Statement [503] *((const byte*) BORDERCOL) ← (const byte) BLACK [ ] ( main:13::render_init:18 [ score_bcd ] ) always clobbers reg byte a -Statement [504] *((const byte*) BGCOL1) ← (const byte) BLACK [ ] ( main:13::render_init:18 [ score_bcd ] ) always clobbers reg byte a -Statement [505] *((const byte*) BGCOL2) ← *((const byte*) PIECES_COLORS_1) [ ] ( main:13::render_init:18 [ score_bcd ] ) always clobbers reg byte a -Statement [506] *((const byte*) BGCOL3) ← *((const byte*) PIECES_COLORS_2) [ ] ( main:13::render_init:18 [ score_bcd ] ) always clobbers reg byte a -Statement [507] *((const byte*) BGCOL4) ← (const byte) GREY [ ] ( main:13::render_init:18 [ score_bcd ] ) always clobbers reg byte a -Statement [512] (byte~) render_init::$5 ← (byte) render_init::i#2 << (byte) 1 [ render_init::i#2 render_init::li_1#2 render_init::li_2#2 render_init::$5 ] ( main:13::render_init:18 [ score_bcd render_init::i#2 render_init::li_1#2 render_init::li_2#2 render_init::$5 ] ) always clobbers reg byte a -Statement [513] *((const byte**) screen_lines_1 + (byte~) render_init::$5) ← (byte*) render_init::li_1#2 [ render_init::i#2 render_init::li_1#2 render_init::li_2#2 render_init::$5 ] ( main:13::render_init:18 [ score_bcd render_init::i#2 render_init::li_1#2 render_init::li_2#2 render_init::$5 ] ) always clobbers reg byte a -Statement [514] *((const byte**) screen_lines_2 + (byte~) render_init::$5) ← (byte*) render_init::li_2#2 [ render_init::i#2 render_init::li_1#2 render_init::li_2#2 ] ( main:13::render_init:18 [ score_bcd render_init::i#2 render_init::li_1#2 render_init::li_2#2 ] ) always clobbers reg byte a -Statement [515] (byte*) render_init::li_1#1 ← (byte*) render_init::li_1#2 + (byte) $28 [ render_init::i#2 render_init::li_2#2 render_init::li_1#1 ] ( main:13::render_init:18 [ score_bcd render_init::i#2 render_init::li_2#2 render_init::li_1#1 ] ) always clobbers reg byte a -Statement [516] (byte*) render_init::li_2#1 ← (byte*) render_init::li_2#2 + (byte) $28 [ render_init::i#2 render_init::li_1#1 render_init::li_2#1 ] ( main:13::render_init:18 [ score_bcd render_init::i#2 render_init::li_1#1 render_init::li_2#1 ] ) always clobbers reg byte a -Statement [523] *((byte*) render_screen_original::screen#5) ← (const byte) render_screen_original::SPACE [ render_screen_original::oscr#4 render_screen_original::ocols#4 render_screen_original::y#6 render_screen_original::screen#5 render_screen_original::cols#4 render_screen_original::x#4 ] ( main:13::render_init:18::render_screen_original:508 [ score_bcd render_screen_original::oscr#4 render_screen_original::ocols#4 render_screen_original::y#6 render_screen_original::screen#5 render_screen_original::cols#4 render_screen_original::x#4 ] main:13::render_init:18::render_screen_original:510 [ score_bcd render_screen_original::oscr#4 render_screen_original::ocols#4 render_screen_original::y#6 render_screen_original::screen#5 render_screen_original::cols#4 render_screen_original::x#4 ] ) always clobbers reg byte a reg byte y -Statement [525] *((byte*) render_screen_original::cols#4) ← (const byte) BLACK [ render_screen_original::oscr#4 render_screen_original::ocols#4 render_screen_original::y#6 render_screen_original::cols#4 render_screen_original::x#4 render_screen_original::screen#2 ] ( main:13::render_init:18::render_screen_original:508 [ score_bcd render_screen_original::oscr#4 render_screen_original::ocols#4 render_screen_original::y#6 render_screen_original::cols#4 render_screen_original::x#4 render_screen_original::screen#2 ] main:13::render_init:18::render_screen_original:510 [ score_bcd render_screen_original::oscr#4 render_screen_original::ocols#4 render_screen_original::y#6 render_screen_original::cols#4 render_screen_original::x#4 render_screen_original::screen#2 ] ) always clobbers reg byte a reg byte y -Statement [530] *((byte*) render_screen_original::screen#6) ← *((byte*) render_screen_original::oscr#2) [ render_screen_original::y#6 render_screen_original::oscr#2 render_screen_original::screen#6 render_screen_original::ocols#2 render_screen_original::cols#5 render_screen_original::x#5 ] ( main:13::render_init:18::render_screen_original:508 [ score_bcd render_screen_original::y#6 render_screen_original::oscr#2 render_screen_original::screen#6 render_screen_original::ocols#2 render_screen_original::cols#5 render_screen_original::x#5 ] main:13::render_init:18::render_screen_original:510 [ score_bcd render_screen_original::y#6 render_screen_original::oscr#2 render_screen_original::screen#6 render_screen_original::ocols#2 render_screen_original::cols#5 render_screen_original::x#5 ] ) always clobbers reg byte a reg byte y -Statement [533] *((byte*) render_screen_original::cols#5) ← *((byte*) render_screen_original::ocols#2) [ render_screen_original::y#6 render_screen_original::oscr#1 render_screen_original::ocols#2 render_screen_original::cols#5 render_screen_original::x#5 render_screen_original::screen#3 ] ( main:13::render_init:18::render_screen_original:508 [ score_bcd render_screen_original::y#6 render_screen_original::oscr#1 render_screen_original::ocols#2 render_screen_original::cols#5 render_screen_original::x#5 render_screen_original::screen#3 ] main:13::render_init:18::render_screen_original:510 [ score_bcd render_screen_original::y#6 render_screen_original::oscr#1 render_screen_original::ocols#2 render_screen_original::cols#5 render_screen_original::x#5 render_screen_original::screen#3 ] ) always clobbers reg byte a reg byte y -Statement [539] *((byte*) render_screen_original::screen#7) ← (const byte) render_screen_original::SPACE [ render_screen_original::y#6 render_screen_original::oscr#1 render_screen_original::ocols#1 render_screen_original::screen#7 render_screen_original::cols#6 render_screen_original::x#6 ] ( main:13::render_init:18::render_screen_original:508 [ score_bcd render_screen_original::y#6 render_screen_original::oscr#1 render_screen_original::ocols#1 render_screen_original::screen#7 render_screen_original::cols#6 render_screen_original::x#6 ] main:13::render_init:18::render_screen_original:510 [ score_bcd render_screen_original::y#6 render_screen_original::oscr#1 render_screen_original::ocols#1 render_screen_original::screen#7 render_screen_original::cols#6 render_screen_original::x#6 ] ) always clobbers reg byte a reg byte y -Statement [541] *((byte*) render_screen_original::cols#6) ← (const byte) BLACK [ render_screen_original::y#6 render_screen_original::screen#10 render_screen_original::oscr#1 render_screen_original::ocols#1 render_screen_original::cols#6 render_screen_original::x#6 ] ( main:13::render_init:18::render_screen_original:508 [ score_bcd render_screen_original::y#6 render_screen_original::screen#10 render_screen_original::oscr#1 render_screen_original::ocols#1 render_screen_original::cols#6 render_screen_original::x#6 ] main:13::render_init:18::render_screen_original:510 [ score_bcd render_screen_original::y#6 render_screen_original::screen#10 render_screen_original::oscr#1 render_screen_original::ocols#1 render_screen_original::cols#6 render_screen_original::x#6 ] ) always clobbers reg byte a reg byte y -Statement [548] *((const word*) SID_VOICE3_FREQ) ← (word) $ffff [ ] ( main:13::sid_rnd_init:16 [ score_bcd ] ) always clobbers reg byte a -Statement [549] *((const byte*) SID_VOICE3_CONTROL) ← (const byte) SID_CONTROL_NOISE [ ] ( main:13::sid_rnd_init:16 [ score_bcd ] ) always clobbers reg byte a -Statement [559] if(*((const byte*) RASTER)<(byte) sprites_irq::raster_sprite_gfx_modify) goto sprites_irq::@8 [ render_screen_showing irq_raster_next irq_sprite_ypos irq_sprite_ptr irq_cnt sprites_irq::raster_sprite_gfx_modify ] ( [ render_screen_showing irq_raster_next irq_sprite_ypos irq_sprite_ptr irq_cnt sprites_irq::raster_sprite_gfx_modify ] ) always clobbers reg byte a -Statement [561] if((byte) render_screen_showing==(byte) 0) goto sprites_irq::@1 [ irq_raster_next irq_sprite_ypos irq_sprite_ptr irq_cnt sprites_irq::ptr#0 ] ( [ irq_raster_next irq_sprite_ypos irq_sprite_ptr irq_cnt sprites_irq::ptr#0 ] ) always clobbers reg byte a -Statement [569] if((byte) irq_cnt==(byte) 9) goto sprites_irq::@3 [ irq_raster_next irq_sprite_ypos irq_sprite_ptr irq_cnt ] ( [ irq_raster_next irq_sprite_ypos irq_sprite_ptr irq_cnt ] ) always clobbers reg byte a -Statement [570] if((byte) irq_cnt==(byte) $a) goto sprites_irq::@4 [ irq_raster_next irq_sprite_ypos irq_sprite_ptr ] ( [ irq_raster_next irq_sprite_ypos irq_sprite_ptr ] ) always clobbers reg byte a -Statement [571] (byte) irq_raster_next ← (byte) irq_raster_next + (byte) $14 [ irq_raster_next irq_sprite_ypos irq_sprite_ptr ] ( [ irq_raster_next irq_sprite_ypos irq_sprite_ptr ] ) always clobbers reg byte a reg byte x -Statement [572] (byte) irq_sprite_ypos ← (byte) irq_sprite_ypos + (byte) $15 [ irq_raster_next irq_sprite_ptr ] ( [ irq_raster_next irq_sprite_ptr ] ) always clobbers reg byte a reg byte x -Statement [573] (byte) irq_sprite_ptr ← (byte) irq_sprite_ptr + (byte) 3 [ irq_raster_next ] ( [ irq_raster_next ] ) always clobbers reg byte a reg byte x -Statement [574] *((const byte*) RASTER) ← (byte) irq_raster_next [ ] ( [ ] ) always clobbers reg byte a -Statement [575] *((const byte*) IRQ_STATUS) ← (const byte) IRQ_RASTER [ ] ( [ ] ) always clobbers reg byte a -Statement [576] return [ ] ( [ ] ) always clobbers reg byte a reg byte x reg byte y -Statement [577] (byte) irq_cnt ← (byte) 0 [ irq_sprite_ypos irq_sprite_ptr ] ( [ irq_sprite_ypos irq_sprite_ptr ] ) always clobbers reg byte a -Statement [578] (byte) irq_raster_next ← (const byte) IRQ_RASTER_FIRST [ irq_raster_next irq_sprite_ypos irq_sprite_ptr ] ( [ irq_raster_next irq_sprite_ypos irq_sprite_ptr ] ) always clobbers reg byte a -Statement [579] (byte) irq_sprite_ypos ← (byte) irq_sprite_ypos + (byte) $15 [ irq_raster_next irq_sprite_ptr ] ( [ irq_raster_next irq_sprite_ptr ] ) always clobbers reg byte a reg byte x -Statement [580] (byte) irq_sprite_ptr ← (byte) irq_sprite_ptr + (byte) 3 [ irq_raster_next ] ( [ irq_raster_next ] ) always clobbers reg byte a reg byte x -Statement [581] (byte) irq_raster_next ← (byte) irq_raster_next + (byte) $15 [ irq_raster_next ] ( [ irq_raster_next ] ) always clobbers reg byte a reg byte x -Statement [582] (byte) irq_sprite_ypos ← (const byte) SPRITES_FIRST_YPOS [ irq_raster_next ] ( [ irq_raster_next ] ) always clobbers reg byte a -Statement [584] (byte) irq_sprite_ptr ← (const byte) sprites_irq::toSpritePtr2_return#0 [ irq_raster_next ] ( [ irq_raster_next ] ) always clobbers reg byte a +Statement [475] *((const byte*) PROCPORT_DDR) ← (const byte) PROCPORT_DDR_MEMORY_MASK [ ] ( main:11::sprites_irq_init:20 [ score_bcd ] ) always clobbers reg byte a +Statement [476] *((const byte*) PROCPORT) ← (const byte) PROCPORT_RAM_IO [ ] ( main:11::sprites_irq_init:20 [ score_bcd ] ) always clobbers reg byte a +Statement [477] *((const byte*) CIA1_INTERRUPT) ← (const byte) CIA_INTERRUPT_CLEAR [ ] ( main:11::sprites_irq_init:20 [ score_bcd ] ) always clobbers reg byte a +Statement [478] *((const byte*) VIC_CONTROL) ← *((const byte*) VIC_CONTROL) & (byte) $7f [ ] ( main:11::sprites_irq_init:20 [ score_bcd ] ) always clobbers reg byte a +Statement [479] *((const byte*) RASTER) ← (const byte) IRQ_RASTER_FIRST [ ] ( main:11::sprites_irq_init:20 [ score_bcd ] ) always clobbers reg byte a +Statement [480] *((const byte*) IRQ_ENABLE) ← (const byte) IRQ_RASTER [ ] ( main:11::sprites_irq_init:20 [ score_bcd ] ) always clobbers reg byte a +Statement [481] *((const void()**) HARDWARE_IRQ) ← &interrupt(HARDWARE_CLOBBER)(void()) sprites_irq() [ ] ( main:11::sprites_irq_init:20 [ score_bcd ] ) always clobbers reg byte a +Statement [484] *((const byte*) SPRITES_ENABLE) ← (byte) $f [ ] ( main:11::sprites_init:18 [ score_bcd ] ) always clobbers reg byte a +Statement [485] *((const byte*) SPRITES_MC) ← (byte) 0 [ ] ( main:11::sprites_init:18 [ score_bcd ] ) always clobbers reg byte a +Statement [486] *((const byte*) SPRITES_EXPAND_Y) ← *((const byte*) SPRITES_MC) [ ] ( main:11::sprites_init:18 [ score_bcd ] ) always clobbers reg byte a +Statement [487] *((const byte*) SPRITES_EXPAND_X) ← *((const byte*) SPRITES_EXPAND_Y) [ ] ( main:11::sprites_init:18 [ score_bcd ] ) always clobbers reg byte a +Statement [489] (byte) sprites_init::s2#0 ← (byte) sprites_init::s#2 << (byte) 1 [ sprites_init::s#2 sprites_init::xpos#2 sprites_init::s2#0 ] ( main:11::sprites_init:18 [ score_bcd sprites_init::s#2 sprites_init::xpos#2 sprites_init::s2#0 ] ) always clobbers reg byte a +Statement [490] *((const byte*) SPRITES_XPOS + (byte) sprites_init::s2#0) ← (byte) sprites_init::xpos#2 [ sprites_init::s#2 sprites_init::xpos#2 ] ( main:11::sprites_init:18 [ score_bcd sprites_init::s#2 sprites_init::xpos#2 ] ) always clobbers reg byte a +Statement [491] *((const byte*) SPRITES_COLS + (byte) sprites_init::s#2) ← (const byte) BLACK [ sprites_init::s#2 sprites_init::xpos#2 ] ( main:11::sprites_init:18 [ score_bcd sprites_init::s#2 sprites_init::xpos#2 ] ) always clobbers reg byte a +Statement [492] (byte) sprites_init::xpos#1 ← (byte) sprites_init::xpos#2 + (byte) $18 [ sprites_init::s#2 sprites_init::xpos#1 ] ( main:11::sprites_init:18 [ score_bcd sprites_init::s#2 sprites_init::xpos#1 ] ) always clobbers reg byte a +Statement [497] *((const byte*) CIA2_PORT_A_DDR) ← (byte) 3 [ ] ( main:11::render_init:16 [ score_bcd ] ) always clobbers reg byte a +Statement [499] *((const byte*) CIA2_PORT_A) ← (const byte) render_init::vicSelectGfxBank1_toDd001_return#0 [ ] ( main:11::render_init:16 [ score_bcd ] ) always clobbers reg byte a +Statement [500] *((const byte*) D011) ← (const byte) VIC_ECM|(const byte) VIC_DEN|(const byte) VIC_RSEL|(byte) 3 [ ] ( main:11::render_init:16 [ score_bcd ] ) always clobbers reg byte a +Statement [501] *((const byte*) BORDERCOL) ← (const byte) BLACK [ ] ( main:11::render_init:16 [ score_bcd ] ) always clobbers reg byte a +Statement [502] *((const byte*) BGCOL1) ← (const byte) BLACK [ ] ( main:11::render_init:16 [ score_bcd ] ) always clobbers reg byte a +Statement [503] *((const byte*) BGCOL2) ← *((const byte*) PIECES_COLORS_1) [ ] ( main:11::render_init:16 [ score_bcd ] ) always clobbers reg byte a +Statement [504] *((const byte*) BGCOL3) ← *((const byte*) PIECES_COLORS_2) [ ] ( main:11::render_init:16 [ score_bcd ] ) always clobbers reg byte a +Statement [505] *((const byte*) BGCOL4) ← (const byte) GREY [ ] ( main:11::render_init:16 [ score_bcd ] ) always clobbers reg byte a +Statement [510] (byte~) render_init::$5 ← (byte) render_init::i#2 << (byte) 1 [ render_init::i#2 render_init::li_1#2 render_init::li_2#2 render_init::$5 ] ( main:11::render_init:16 [ score_bcd render_init::i#2 render_init::li_1#2 render_init::li_2#2 render_init::$5 ] ) always clobbers reg byte a +Statement [511] *((const byte**) screen_lines_1 + (byte~) render_init::$5) ← (byte*) render_init::li_1#2 [ render_init::i#2 render_init::li_1#2 render_init::li_2#2 render_init::$5 ] ( main:11::render_init:16 [ score_bcd render_init::i#2 render_init::li_1#2 render_init::li_2#2 render_init::$5 ] ) always clobbers reg byte a +Statement [512] *((const byte**) screen_lines_2 + (byte~) render_init::$5) ← (byte*) render_init::li_2#2 [ render_init::i#2 render_init::li_1#2 render_init::li_2#2 ] ( main:11::render_init:16 [ score_bcd render_init::i#2 render_init::li_1#2 render_init::li_2#2 ] ) always clobbers reg byte a +Statement [513] (byte*) render_init::li_1#1 ← (byte*) render_init::li_1#2 + (byte) $28 [ render_init::i#2 render_init::li_2#2 render_init::li_1#1 ] ( main:11::render_init:16 [ score_bcd render_init::i#2 render_init::li_2#2 render_init::li_1#1 ] ) always clobbers reg byte a +Statement [514] (byte*) render_init::li_2#1 ← (byte*) render_init::li_2#2 + (byte) $28 [ render_init::i#2 render_init::li_1#1 render_init::li_2#1 ] ( main:11::render_init:16 [ score_bcd render_init::i#2 render_init::li_1#1 render_init::li_2#1 ] ) always clobbers reg byte a +Statement [521] *((byte*) render_screen_original::screen#5) ← (const byte) render_screen_original::SPACE [ render_screen_original::oscr#4 render_screen_original::ocols#4 render_screen_original::y#6 render_screen_original::screen#5 render_screen_original::cols#4 render_screen_original::x#4 ] ( main:11::render_init:16::render_screen_original:506 [ score_bcd render_screen_original::oscr#4 render_screen_original::ocols#4 render_screen_original::y#6 render_screen_original::screen#5 render_screen_original::cols#4 render_screen_original::x#4 ] main:11::render_init:16::render_screen_original:508 [ score_bcd render_screen_original::oscr#4 render_screen_original::ocols#4 render_screen_original::y#6 render_screen_original::screen#5 render_screen_original::cols#4 render_screen_original::x#4 ] ) always clobbers reg byte a reg byte y +Statement [523] *((byte*) render_screen_original::cols#4) ← (const byte) BLACK [ render_screen_original::oscr#4 render_screen_original::ocols#4 render_screen_original::y#6 render_screen_original::cols#4 render_screen_original::x#4 render_screen_original::screen#2 ] ( main:11::render_init:16::render_screen_original:506 [ score_bcd render_screen_original::oscr#4 render_screen_original::ocols#4 render_screen_original::y#6 render_screen_original::cols#4 render_screen_original::x#4 render_screen_original::screen#2 ] main:11::render_init:16::render_screen_original:508 [ score_bcd render_screen_original::oscr#4 render_screen_original::ocols#4 render_screen_original::y#6 render_screen_original::cols#4 render_screen_original::x#4 render_screen_original::screen#2 ] ) always clobbers reg byte a reg byte y +Statement [528] *((byte*) render_screen_original::screen#6) ← *((byte*) render_screen_original::oscr#2) [ render_screen_original::y#6 render_screen_original::oscr#2 render_screen_original::screen#6 render_screen_original::ocols#2 render_screen_original::cols#5 render_screen_original::x#5 ] ( main:11::render_init:16::render_screen_original:506 [ score_bcd render_screen_original::y#6 render_screen_original::oscr#2 render_screen_original::screen#6 render_screen_original::ocols#2 render_screen_original::cols#5 render_screen_original::x#5 ] main:11::render_init:16::render_screen_original:508 [ score_bcd render_screen_original::y#6 render_screen_original::oscr#2 render_screen_original::screen#6 render_screen_original::ocols#2 render_screen_original::cols#5 render_screen_original::x#5 ] ) always clobbers reg byte a reg byte y +Statement [531] *((byte*) render_screen_original::cols#5) ← *((byte*) render_screen_original::ocols#2) [ render_screen_original::y#6 render_screen_original::oscr#1 render_screen_original::ocols#2 render_screen_original::cols#5 render_screen_original::x#5 render_screen_original::screen#3 ] ( main:11::render_init:16::render_screen_original:506 [ score_bcd render_screen_original::y#6 render_screen_original::oscr#1 render_screen_original::ocols#2 render_screen_original::cols#5 render_screen_original::x#5 render_screen_original::screen#3 ] main:11::render_init:16::render_screen_original:508 [ score_bcd render_screen_original::y#6 render_screen_original::oscr#1 render_screen_original::ocols#2 render_screen_original::cols#5 render_screen_original::x#5 render_screen_original::screen#3 ] ) always clobbers reg byte a reg byte y +Statement [537] *((byte*) render_screen_original::screen#7) ← (const byte) render_screen_original::SPACE [ render_screen_original::y#6 render_screen_original::oscr#1 render_screen_original::ocols#1 render_screen_original::screen#7 render_screen_original::cols#6 render_screen_original::x#6 ] ( main:11::render_init:16::render_screen_original:506 [ score_bcd render_screen_original::y#6 render_screen_original::oscr#1 render_screen_original::ocols#1 render_screen_original::screen#7 render_screen_original::cols#6 render_screen_original::x#6 ] main:11::render_init:16::render_screen_original:508 [ score_bcd render_screen_original::y#6 render_screen_original::oscr#1 render_screen_original::ocols#1 render_screen_original::screen#7 render_screen_original::cols#6 render_screen_original::x#6 ] ) always clobbers reg byte a reg byte y +Statement [539] *((byte*) render_screen_original::cols#6) ← (const byte) BLACK [ render_screen_original::y#6 render_screen_original::screen#10 render_screen_original::oscr#1 render_screen_original::ocols#1 render_screen_original::cols#6 render_screen_original::x#6 ] ( main:11::render_init:16::render_screen_original:506 [ score_bcd render_screen_original::y#6 render_screen_original::screen#10 render_screen_original::oscr#1 render_screen_original::ocols#1 render_screen_original::cols#6 render_screen_original::x#6 ] main:11::render_init:16::render_screen_original:508 [ score_bcd render_screen_original::y#6 render_screen_original::screen#10 render_screen_original::oscr#1 render_screen_original::ocols#1 render_screen_original::cols#6 render_screen_original::x#6 ] ) always clobbers reg byte a reg byte y +Statement [546] *((const word*) SID_VOICE3_FREQ) ← (word) $ffff [ ] ( main:11::sid_rnd_init:14 [ score_bcd ] ) always clobbers reg byte a +Statement [547] *((const byte*) SID_VOICE3_CONTROL) ← (const byte) SID_CONTROL_NOISE [ ] ( main:11::sid_rnd_init:14 [ score_bcd ] ) always clobbers reg byte a +Statement [557] if(*((const byte*) RASTER)<(byte) sprites_irq::raster_sprite_gfx_modify) goto sprites_irq::@8 [ render_screen_showing irq_raster_next irq_sprite_ypos irq_sprite_ptr irq_cnt sprites_irq::raster_sprite_gfx_modify ] ( [ render_screen_showing irq_raster_next irq_sprite_ypos irq_sprite_ptr irq_cnt sprites_irq::raster_sprite_gfx_modify ] ) always clobbers reg byte a +Statement [559] if((byte) render_screen_showing==(byte) 0) goto sprites_irq::@1 [ irq_raster_next irq_sprite_ypos irq_sprite_ptr irq_cnt sprites_irq::ptr#0 ] ( [ irq_raster_next irq_sprite_ypos irq_sprite_ptr irq_cnt sprites_irq::ptr#0 ] ) always clobbers reg byte a +Statement [567] if((byte) irq_cnt==(byte) 9) goto sprites_irq::@3 [ irq_raster_next irq_sprite_ypos irq_sprite_ptr irq_cnt ] ( [ irq_raster_next irq_sprite_ypos irq_sprite_ptr irq_cnt ] ) always clobbers reg byte a +Statement [568] if((byte) irq_cnt==(byte) $a) goto sprites_irq::@4 [ irq_raster_next irq_sprite_ypos irq_sprite_ptr ] ( [ irq_raster_next irq_sprite_ypos irq_sprite_ptr ] ) always clobbers reg byte a +Statement [569] (byte) irq_raster_next ← (byte) irq_raster_next + (byte) $14 [ irq_raster_next irq_sprite_ypos irq_sprite_ptr ] ( [ irq_raster_next irq_sprite_ypos irq_sprite_ptr ] ) always clobbers reg byte a reg byte x +Statement [570] (byte) irq_sprite_ypos ← (byte) irq_sprite_ypos + (byte) $15 [ irq_raster_next irq_sprite_ptr ] ( [ irq_raster_next irq_sprite_ptr ] ) always clobbers reg byte a reg byte x +Statement [571] (byte) irq_sprite_ptr ← (byte) irq_sprite_ptr + (byte) 3 [ irq_raster_next ] ( [ irq_raster_next ] ) always clobbers reg byte a reg byte x +Statement [572] *((const byte*) RASTER) ← (byte) irq_raster_next [ ] ( [ ] ) always clobbers reg byte a +Statement [573] *((const byte*) IRQ_STATUS) ← (const byte) IRQ_RASTER [ ] ( [ ] ) always clobbers reg byte a +Statement [574] return [ ] ( [ ] ) always clobbers reg byte a reg byte x reg byte y +Statement [575] (byte) irq_cnt ← (byte) 0 [ irq_sprite_ypos irq_sprite_ptr ] ( [ irq_sprite_ypos irq_sprite_ptr ] ) always clobbers reg byte a +Statement [576] (byte) irq_raster_next ← (const byte) IRQ_RASTER_FIRST [ irq_raster_next irq_sprite_ypos irq_sprite_ptr ] ( [ irq_raster_next irq_sprite_ypos irq_sprite_ptr ] ) always clobbers reg byte a +Statement [577] (byte) irq_sprite_ypos ← (byte) irq_sprite_ypos + (byte) $15 [ irq_raster_next irq_sprite_ptr ] ( [ irq_raster_next irq_sprite_ptr ] ) always clobbers reg byte a reg byte x +Statement [578] (byte) irq_sprite_ptr ← (byte) irq_sprite_ptr + (byte) 3 [ irq_raster_next ] ( [ irq_raster_next ] ) always clobbers reg byte a reg byte x +Statement [579] (byte) irq_raster_next ← (byte) irq_raster_next + (byte) $15 [ irq_raster_next ] ( [ irq_raster_next ] ) always clobbers reg byte a reg byte x +Statement [580] (byte) irq_sprite_ypos ← (const byte) SPRITES_FIRST_YPOS [ irq_raster_next ] ( [ irq_raster_next ] ) always clobbers reg byte a +Statement [582] (byte) irq_sprite_ptr ← (const byte) sprites_irq::toSpritePtr2_return#0 [ irq_raster_next ] ( [ irq_raster_next ] ) always clobbers reg byte a Statement [1] (byte) render_screen_showing ← (byte) 0 [ ] ( [ ] ) always clobbers reg byte a Statement [2] (dword) score_bcd ← (dword) 0 [ score_bcd ] ( [ score_bcd ] ) always clobbers reg byte a -Statement [7] (byte) irq_raster_next ← (const byte) IRQ_RASTER_FIRST [ score_bcd ] ( [ score_bcd ] ) always clobbers reg byte a -Statement [8] (byte) irq_sprite_ypos ← (const byte) SPRITES_FIRST_YPOS+(byte) $15 [ score_bcd ] ( [ score_bcd ] ) always clobbers reg byte a -Statement [10] (byte) irq_sprite_ptr ← (const byte) toSpritePtr1_return#0+(byte) 3 [ score_bcd ] ( [ score_bcd ] ) always clobbers reg byte a -Statement [11] (byte) irq_cnt ← (byte) 0 [ score_bcd ] ( [ score_bcd ] ) always clobbers reg byte a -Statement [33] (byte*) current_piece_gfx#111 ← (byte*)*((const word*) PIECES + (byte~) play_spawn_current::$7) [ score_bcd current_ypos#97 current_ypos#6 current_xpos#118 current_xpos#100 current_piece_gfx#111 play_spawn_current::$7 current_piece_char#5 play_spawn_current::piece_idx#2 current_movedown_slow#1 game_over#52 ] ( main:13 [ score_bcd current_ypos#97 current_ypos#6 current_xpos#118 current_xpos#100 current_piece_gfx#111 play_spawn_current::$7 current_piece_char#5 play_spawn_current::piece_idx#2 current_movedown_slow#1 game_over#52 ] ) always clobbers reg byte a -Statement [38] (byte*) current_piece#101 ← (byte*)*((const word*) PIECES + (byte~) play_spawn_current::$7) [ score_bcd current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 play_spawn_current::piece_idx#2 current_piece#101 current_movedown_slow#1 game_over#52 ] ( main:13 [ score_bcd current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 play_spawn_current::piece_idx#2 current_piece#101 current_movedown_slow#1 game_over#52 ] ) always clobbers reg byte a -Statement [39] (byte*) current_piece_gfx#123 ← (byte*)*((const word*) PIECES + (byte~) play_spawn_current::$7) [ score_bcd current_ypos#6 current_xpos#100 current_piece_char#5 play_spawn_current::piece_idx#2 current_piece#101 current_piece_gfx#123 current_movedown_slow#1 game_over#52 ] ( main:13 [ score_bcd current_ypos#6 current_xpos#100 current_piece_char#5 play_spawn_current::piece_idx#2 current_piece#101 current_piece_gfx#123 current_movedown_slow#1 game_over#52 ] ) always clobbers reg byte a -Statement [41] if(*((const byte*) RASTER)!=(byte) $ff) goto main::@2 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 keyboard_events_size#19 current_movedown_counter#16 lines_bcd#19 level#10 level_bcd#11 ] ( main:13 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 keyboard_events_size#19 current_movedown_counter#16 lines_bcd#19 level#10 level_bcd#11 ] ) always clobbers reg byte a -Statement [50] if((byte) game_over#10==(byte) 0) goto main::@4 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 level#10 level_bcd#11 keyboard_events_size#16 main::key_event#0 ] ( main:13 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 level#10 level_bcd#11 keyboard_events_size#16 main::key_event#0 ] ) always clobbers reg byte a -Statement [62] (byte*) current_piece_gfx#112 ← (byte*) current_piece_gfx#18 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 current_ypos#98 render_screen_render#64 current_xpos#119 current_piece_gfx#112 ] ( main:13 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 current_ypos#98 render_screen_render#64 current_xpos#119 current_piece_gfx#112 ] ) always clobbers reg byte a -Statement [72] (byte) render_screen_render#11 ← (byte) render_screen_render#18 ^ (byte) $20 [ render_screen_show#16 render_screen_render#11 ] ( main:13::render_screen_swap:71 [ score_bcd current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 render_screen_show#16 render_screen_render#11 ] ) always clobbers reg byte a -Statement [73] (byte) render_screen_show#13 ← (byte) render_screen_show#16 ^ (byte) $20 [ render_screen_show#13 render_screen_render#11 ] ( main:13::render_screen_swap:71 [ score_bcd current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 render_screen_show#13 render_screen_render#11 ] ) always clobbers reg byte a -Statement [75] if((byte) render_screen_render#18==(byte) 0) goto render_score::@1 [ render_screen_render#18 lines_bcd#15 level_bcd#17 ] ( main:13::render_score:69 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 ] ) always clobbers reg byte a -Statement [78] (byte*) render_bcd::screen#0 ← (byte*) render_score::screen#3 [ render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::screen#0 ] ( main:13::render_score:69 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::screen#0 ] ) always clobbers reg byte a -Statement [81] (byte*) render_bcd::screen#1 ← (byte*) render_score::screen#3 [ render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::screen#1 ] ( main:13::render_score:69 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::screen#1 ] ) always clobbers reg byte a -Statement [84] (byte*) render_bcd::screen#2 ← (byte*) render_score::screen#3 [ render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::screen#2 ] ( main:13::render_score:69 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::screen#2 ] ) always clobbers reg byte a -Statement [87] (byte) render_bcd::bcd#3 ← > (word) lines_bcd#15 [ render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::bcd#3 ] ( main:13::render_score:69 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::bcd#3 ] ) always clobbers reg byte a -Statement [88] (byte*) render_bcd::screen#3 ← (byte*) render_score::screen#3 [ render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::bcd#3 render_bcd::screen#3 ] ( main:13::render_score:69 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::bcd#3 render_bcd::screen#3 ] ) always clobbers reg byte a -Statement [90] (byte) render_bcd::bcd#4 ← < (word) lines_bcd#15 [ render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::bcd#4 ] ( main:13::render_score:69 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::bcd#4 ] ) always clobbers reg byte a -Statement [91] (byte*) render_bcd::screen#4 ← (byte*) render_score::screen#3 [ render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::bcd#4 render_bcd::screen#4 ] ( main:13::render_score:69 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::bcd#4 render_bcd::screen#4 ] ) always clobbers reg byte a -Statement [93] (byte*) render_bcd::screen#5 ← (byte*) render_score::screen#3 [ render_screen_render#18 lines_bcd#15 level_bcd#17 render_bcd::screen#5 ] ( main:13::render_score:69 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_bcd::screen#5 ] ) always clobbers reg byte a -Statement [98] (byte*) render_bcd::screen_pos#0 ← (byte*) render_bcd::screen#6 + (word) render_bcd::offset#6 [ render_bcd::only_low#6 render_bcd::bcd#6 render_bcd::screen_pos#0 ] ( main:13::render_score:69::render_bcd:80 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::only_low#6 render_bcd::bcd#6 render_bcd::screen_pos#0 ] main:13::render_score:69::render_bcd:83 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::only_low#6 render_bcd::bcd#6 render_bcd::screen_pos#0 ] main:13::render_score:69::render_bcd:86 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::only_low#6 render_bcd::bcd#6 render_bcd::screen_pos#0 ] main:13::render_score:69::render_bcd:89 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::only_low#6 render_bcd::bcd#6 render_bcd::screen_pos#0 ] main:13::render_score:69::render_bcd:92 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::only_low#6 render_bcd::bcd#6 render_bcd::screen_pos#0 ] main:13::render_score:69::render_bcd:95 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_bcd::only_low#6 render_bcd::bcd#6 render_bcd::screen_pos#0 ] ) always clobbers reg byte a -Statement [100] (byte~) render_bcd::$5 ← (byte) render_bcd::bcd#6 >> (byte) 4 [ render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$5 ] ( main:13::render_score:69::render_bcd:80 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$5 ] main:13::render_score:69::render_bcd:83 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$5 ] main:13::render_score:69::render_bcd:86 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$5 ] main:13::render_score:69::render_bcd:89 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$5 ] main:13::render_score:69::render_bcd:92 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$5 ] main:13::render_score:69::render_bcd:95 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$5 ] ) always clobbers reg byte a -Statement [102] *((byte*) render_bcd::screen_pos#0) ← (byte~) render_bcd::$6 [ render_bcd::bcd#6 render_bcd::screen_pos#0 ] ( main:13::render_score:69::render_bcd:80 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::bcd#6 render_bcd::screen_pos#0 ] main:13::render_score:69::render_bcd:83 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::bcd#6 render_bcd::screen_pos#0 ] main:13::render_score:69::render_bcd:86 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::bcd#6 render_bcd::screen_pos#0 ] main:13::render_score:69::render_bcd:89 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::bcd#6 render_bcd::screen_pos#0 ] main:13::render_score:69::render_bcd:92 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::bcd#6 render_bcd::screen_pos#0 ] main:13::render_score:69::render_bcd:95 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_bcd::bcd#6 render_bcd::screen_pos#0 ] ) always clobbers reg byte y -Statement [105] (byte~) render_bcd::$3 ← (byte) render_bcd::bcd#6 & (byte) $f [ render_bcd::screen_pos#3 render_bcd::$3 ] ( main:13::render_score:69::render_bcd:80 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::screen_pos#3 render_bcd::$3 ] main:13::render_score:69::render_bcd:83 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::screen_pos#3 render_bcd::$3 ] main:13::render_score:69::render_bcd:86 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::screen_pos#3 render_bcd::$3 ] main:13::render_score:69::render_bcd:89 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::screen_pos#3 render_bcd::$3 ] main:13::render_score:69::render_bcd:92 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::screen_pos#3 render_bcd::$3 ] main:13::render_score:69::render_bcd:95 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_bcd::screen_pos#3 render_bcd::$3 ] ) always clobbers reg byte a -Statement [107] *((byte*) render_bcd::screen_pos#3) ← (byte~) render_bcd::$4 [ ] ( main:13::render_score:69::render_bcd:80 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 ] main:13::render_score:69::render_bcd:83 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 ] main:13::render_score:69::render_bcd:86 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 ] main:13::render_score:69::render_bcd:89 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 ] main:13::render_score:69::render_bcd:92 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 ] main:13::render_score:69::render_bcd:95 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 ] ) always clobbers reg byte y -Statement [113] (byte~) render_next::$6 ← (byte) next_piece_idx#12 << (byte) 1 [ next_piece_idx#12 render_next::screen_next_area#11 render_next::$6 ] ( main:13::render_next:37 [ score_bcd current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 play_spawn_current::piece_idx#2 current_movedown_slow#1 game_over#52 next_piece_idx#12 render_next::screen_next_area#11 render_next::$6 ] main:13::render_next:67 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 next_piece_idx#12 render_next::screen_next_area#11 render_next::$6 ] ) always clobbers reg byte a -Statement [115] (byte*) render_next::next_piece_gfx#9 ← (byte*)*((const word*) PIECES + (byte~) render_next::$6) [ render_next::screen_next_area#11 render_next::next_piece_char#0 render_next::next_piece_gfx#9 ] ( main:13::render_next:37 [ score_bcd current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 play_spawn_current::piece_idx#2 current_movedown_slow#1 game_over#52 render_next::screen_next_area#11 render_next::next_piece_char#0 render_next::next_piece_gfx#9 ] main:13::render_next:67 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 render_next::screen_next_area#11 render_next::next_piece_char#0 render_next::next_piece_gfx#9 ] ) always clobbers reg byte a -Statement [118] (byte) render_next::cell#0 ← *((byte*) render_next::next_piece_gfx#2) [ render_next::next_piece_char#0 render_next::l#7 render_next::next_piece_gfx#2 render_next::screen_next_area#5 render_next::c#2 render_next::cell#0 ] ( main:13::render_next:37 [ score_bcd current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 play_spawn_current::piece_idx#2 current_movedown_slow#1 game_over#52 render_next::next_piece_char#0 render_next::l#7 render_next::next_piece_gfx#2 render_next::screen_next_area#5 render_next::c#2 render_next::cell#0 ] main:13::render_next:67 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 render_next::next_piece_char#0 render_next::l#7 render_next::next_piece_gfx#2 render_next::screen_next_area#5 render_next::c#2 render_next::cell#0 ] ) always clobbers reg byte a reg byte y -Statement [121] *((byte*) render_next::screen_next_area#5) ← (byte) 0 [ render_next::next_piece_char#0 render_next::l#7 render_next::next_piece_gfx#1 render_next::screen_next_area#5 render_next::c#2 ] ( main:13::render_next:37 [ score_bcd current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 play_spawn_current::piece_idx#2 current_movedown_slow#1 game_over#52 render_next::next_piece_char#0 render_next::l#7 render_next::next_piece_gfx#1 render_next::screen_next_area#5 render_next::c#2 ] main:13::render_next:67 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 render_next::next_piece_char#0 render_next::l#7 render_next::next_piece_gfx#1 render_next::screen_next_area#5 render_next::c#2 ] ) always clobbers reg byte a reg byte y -Statement [125] (byte*) render_next::screen_next_area#4 ← (byte*) render_next::screen_next_area#3 + (byte) $24 [ render_next::next_piece_char#0 render_next::l#7 render_next::next_piece_gfx#1 render_next::screen_next_area#4 ] ( main:13::render_next:37 [ score_bcd current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 play_spawn_current::piece_idx#2 current_movedown_slow#1 game_over#52 render_next::next_piece_char#0 render_next::l#7 render_next::next_piece_gfx#1 render_next::screen_next_area#4 ] main:13::render_next:67 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 render_next::next_piece_char#0 render_next::l#7 render_next::next_piece_gfx#1 render_next::screen_next_area#4 ] ) always clobbers reg byte a -Statement [129] *((byte*) render_next::screen_next_area#5) ← (byte) render_next::next_piece_char#0 [ render_next::next_piece_char#0 render_next::l#7 render_next::next_piece_gfx#1 render_next::screen_next_area#5 render_next::c#2 ] ( main:13::render_next:37 [ score_bcd current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 play_spawn_current::piece_idx#2 current_movedown_slow#1 game_over#52 render_next::next_piece_char#0 render_next::l#7 render_next::next_piece_gfx#1 render_next::screen_next_area#5 render_next::c#2 ] main:13::render_next:67 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 render_next::next_piece_char#0 render_next::l#7 render_next::next_piece_gfx#1 render_next::screen_next_area#5 render_next::c#2 ] ) always clobbers reg byte a reg byte y -Statement [134] (byte) render_moving::i#1 ← (byte) render_moving::i#3 + (byte) 4 [ render_screen_render#33 current_xpos#59 current_piece_gfx#64 current_piece_char#68 render_moving::ypos#2 render_moving::l#4 render_moving::i#1 ] ( main:13::render_moving:35 [ score_bcd current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 play_spawn_current::piece_idx#2 current_movedown_slow#1 game_over#52 render_screen_render#33 current_xpos#59 current_piece_gfx#64 current_piece_char#68 render_moving::ypos#2 render_moving::l#4 render_moving::i#1 ] main:13::render_moving:64 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 render_screen_render#33 current_xpos#59 current_piece_gfx#64 current_piece_char#68 render_moving::ypos#2 render_moving::l#4 render_moving::i#1 ] ) always clobbers reg byte a -Statement [140] (byte~) render_moving::$1 ← (byte) render_screen_render#33 + (byte) render_moving::ypos#2 [ render_screen_render#33 current_xpos#59 current_piece_gfx#64 current_piece_char#68 render_moving::ypos#2 render_moving::i#3 render_moving::l#4 render_moving::$1 ] ( main:13::render_moving:35 [ score_bcd current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 play_spawn_current::piece_idx#2 current_movedown_slow#1 game_over#52 render_screen_render#33 current_xpos#59 current_piece_gfx#64 current_piece_char#68 render_moving::ypos#2 render_moving::i#3 render_moving::l#4 render_moving::$1 ] main:13::render_moving:64 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 render_screen_render#33 current_xpos#59 current_piece_gfx#64 current_piece_char#68 render_moving::ypos#2 render_moving::i#3 render_moving::l#4 render_moving::$1 ] ) always clobbers reg byte a -Statement [141] (byte~) render_moving::$6 ← (byte~) render_moving::$1 << (byte) 1 [ render_screen_render#33 current_xpos#59 current_piece_gfx#64 current_piece_char#68 render_moving::ypos#2 render_moving::i#3 render_moving::l#4 render_moving::$6 ] ( main:13::render_moving:35 [ score_bcd current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 play_spawn_current::piece_idx#2 current_movedown_slow#1 game_over#52 render_screen_render#33 current_xpos#59 current_piece_gfx#64 current_piece_char#68 render_moving::ypos#2 render_moving::i#3 render_moving::l#4 render_moving::$6 ] main:13::render_moving:64 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 render_screen_render#33 current_xpos#59 current_piece_gfx#64 current_piece_char#68 render_moving::ypos#2 render_moving::i#3 render_moving::l#4 render_moving::$6 ] ) always clobbers reg byte a -Statement [142] (byte*) render_moving::screen_line#0 ← *((const byte**) screen_lines_1 + (byte~) render_moving::$6) [ render_screen_render#33 current_xpos#59 current_piece_gfx#64 current_piece_char#68 render_moving::ypos#2 render_moving::i#3 render_moving::l#4 render_moving::screen_line#0 ] ( main:13::render_moving:35 [ score_bcd current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 play_spawn_current::piece_idx#2 current_movedown_slow#1 game_over#52 render_screen_render#33 current_xpos#59 current_piece_gfx#64 current_piece_char#68 render_moving::ypos#2 render_moving::i#3 render_moving::l#4 render_moving::screen_line#0 ] main:13::render_moving:64 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 render_screen_render#33 current_xpos#59 current_piece_gfx#64 current_piece_char#68 render_moving::ypos#2 render_moving::i#3 render_moving::l#4 render_moving::screen_line#0 ] ) always clobbers reg byte a -Statement [145] (byte) render_moving::current_cell#0 ← *((byte*) current_piece_gfx#64 + (byte) render_moving::i#4) [ render_screen_render#33 current_xpos#59 current_piece_gfx#64 current_piece_char#68 render_moving::ypos#2 render_moving::l#4 render_moving::screen_line#0 render_moving::i#4 render_moving::xpos#2 render_moving::c#2 render_moving::current_cell#0 ] ( main:13::render_moving:35 [ score_bcd current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 play_spawn_current::piece_idx#2 current_movedown_slow#1 game_over#52 render_screen_render#33 current_xpos#59 current_piece_gfx#64 current_piece_char#68 render_moving::ypos#2 render_moving::l#4 render_moving::screen_line#0 render_moving::i#4 render_moving::xpos#2 render_moving::c#2 render_moving::current_cell#0 ] main:13::render_moving:64 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 render_screen_render#33 current_xpos#59 current_piece_gfx#64 current_piece_char#68 render_moving::ypos#2 render_moving::l#4 render_moving::screen_line#0 render_moving::i#4 render_moving::xpos#2 render_moving::c#2 render_moving::current_cell#0 ] ) always clobbers reg byte a -Statement [148] *((byte*) render_moving::screen_line#0 + (byte) render_moving::xpos#2) ← (byte) current_piece_char#68 [ render_screen_render#33 current_xpos#59 current_piece_gfx#64 current_piece_char#68 render_moving::ypos#2 render_moving::l#4 render_moving::i#2 render_moving::screen_line#0 render_moving::xpos#2 render_moving::c#2 ] ( main:13::render_moving:35 [ score_bcd current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 play_spawn_current::piece_idx#2 current_movedown_slow#1 game_over#52 render_screen_render#33 current_xpos#59 current_piece_gfx#64 current_piece_char#68 render_moving::ypos#2 render_moving::l#4 render_moving::i#2 render_moving::screen_line#0 render_moving::xpos#2 render_moving::c#2 ] main:13::render_moving:64 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 render_screen_render#33 current_xpos#59 current_piece_gfx#64 current_piece_char#68 render_moving::ypos#2 render_moving::l#4 render_moving::i#2 render_moving::screen_line#0 render_moving::xpos#2 render_moving::c#2 ] ) always clobbers reg byte a -Statement [154] (byte~) render_playfield::$0 ← (byte) render_screen_render#22 + (byte) render_playfield::l#2 [ render_screen_render#22 render_playfield::l#2 render_playfield::i#3 render_playfield::$0 ] ( main:13::render_playfield:30 [ score_bcd current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 play_spawn_current::piece_idx#2 current_movedown_slow#1 game_over#52 render_screen_render#22 render_playfield::l#2 render_playfield::i#3 render_playfield::$0 ] main:13::render_playfield:58 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 render_screen_render#22 render_playfield::l#2 render_playfield::i#3 render_playfield::$0 ] ) always clobbers reg byte a -Statement [155] (byte~) render_playfield::$3 ← (byte~) render_playfield::$0 << (byte) 1 [ render_screen_render#22 render_playfield::l#2 render_playfield::i#3 render_playfield::$3 ] ( main:13::render_playfield:30 [ score_bcd current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 play_spawn_current::piece_idx#2 current_movedown_slow#1 game_over#52 render_screen_render#22 render_playfield::l#2 render_playfield::i#3 render_playfield::$3 ] main:13::render_playfield:58 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 render_screen_render#22 render_playfield::l#2 render_playfield::i#3 render_playfield::$3 ] ) always clobbers reg byte a -Statement [156] (byte*) render_playfield::screen_line#0 ← *((const byte**) screen_lines_1 + (byte~) render_playfield::$3) [ render_screen_render#22 render_playfield::l#2 render_playfield::i#3 render_playfield::screen_line#0 ] ( main:13::render_playfield:30 [ score_bcd current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 play_spawn_current::piece_idx#2 current_movedown_slow#1 game_over#52 render_screen_render#22 render_playfield::l#2 render_playfield::i#3 render_playfield::screen_line#0 ] main:13::render_playfield:58 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 render_screen_render#22 render_playfield::l#2 render_playfield::i#3 render_playfield::screen_line#0 ] ) always clobbers reg byte a -Statement [158] *((byte*) render_playfield::screen_line#2) ← *((const byte*) playfield + (byte) render_playfield::i#2) [ render_screen_render#22 render_playfield::l#2 render_playfield::i#2 render_playfield::screen_line#2 render_playfield::c#2 ] ( main:13::render_playfield:30 [ score_bcd current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 play_spawn_current::piece_idx#2 current_movedown_slow#1 game_over#52 render_screen_render#22 render_playfield::l#2 render_playfield::i#2 render_playfield::screen_line#2 render_playfield::c#2 ] main:13::render_playfield:58 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 render_screen_render#22 render_playfield::l#2 render_playfield::i#2 render_playfield::screen_line#2 render_playfield::c#2 ] ) always clobbers reg byte a reg byte y -Statement [170] if((byte) game_over#15==(byte) 0) goto play_movement::@1 [ score_bcd current_movedown_slow#21 current_piece#15 current_piece_char#16 current_ypos#19 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_orientation#20 current_piece_gfx#20 current_xpos#22 ] ( main:13::play_movement:53 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 score_bcd current_movedown_slow#21 current_piece#15 current_piece_char#16 current_ypos#19 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_orientation#20 current_piece_gfx#20 current_xpos#22 ] ) always clobbers reg byte a -Statement [177] (byte) play_movement::render#2 ← (byte) play_movement::render#1 + (byte~) play_movement::$3 [ score_bcd current_movedown_slow#21 current_piece#15 current_piece_char#16 current_ypos#19 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 play_movement::key_event#0 current_orientation#20 current_piece_gfx#20 current_xpos#26 play_movement::render#2 ] ( main:13::play_movement:53 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 score_bcd current_movedown_slow#21 current_piece#15 current_piece_char#16 current_ypos#19 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 play_movement::key_event#0 current_orientation#20 current_piece_gfx#20 current_xpos#26 play_movement::render#2 ] ) always clobbers reg byte a -Statement [182] (byte) play_movement::return#0 ← (byte) play_movement::render#2 + (byte~) play_movement::$4 [ score_bcd current_movedown_slow#21 current_piece#15 current_piece_char#16 current_ypos#19 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 play_movement::return#0 current_orientation#25 current_piece_gfx#21 current_xpos#26 ] ( main:13::play_movement:53 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 score_bcd current_movedown_slow#21 current_piece#15 current_piece_char#16 current_ypos#19 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 play_movement::return#0 current_orientation#25 current_piece_gfx#21 current_xpos#26 ] ) always clobbers reg byte a -Statement [187] (byte~) play_move_rotate::$5 ← (byte) current_orientation#20 + (byte) $10 [ current_piece#15 current_ypos#19 current_orientation#20 current_piece_gfx#20 current_xpos#26 play_move_rotate::$5 ] ( main:13::play_movement:53::play_move_rotate:179 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 score_bcd current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 play_movement::render#2 current_piece#15 current_ypos#19 current_orientation#20 current_piece_gfx#20 current_xpos#26 play_move_rotate::$5 ] ) always clobbers reg byte a -Statement [193] (byte*) current_piece#98 ← (byte*) current_piece#15 [ current_piece#15 current_ypos#19 current_orientation#20 current_piece_gfx#20 current_xpos#26 play_move_rotate::orientation#3 play_collision::xpos#3 play_collision::ypos#3 play_collision::orientation#3 current_piece#98 ] ( main:13::play_movement:53::play_move_rotate:179 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 score_bcd current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 play_movement::render#2 current_piece#15 current_ypos#19 current_orientation#20 current_piece_gfx#20 current_xpos#26 play_move_rotate::orientation#3 play_collision::xpos#3 play_collision::ypos#3 play_collision::orientation#3 current_piece#98 ] ) always clobbers reg byte a -Statement [199] (byte*) current_piece_gfx#7 ← (byte*) current_piece#15 + (byte) current_orientation#7 [ current_piece#15 current_ypos#19 current_xpos#26 current_orientation#7 current_piece_gfx#7 ] ( main:13::play_movement:53::play_move_rotate:179 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 score_bcd current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 play_movement::render#2 current_piece#15 current_ypos#19 current_xpos#26 current_orientation#7 current_piece_gfx#7 ] ) always clobbers reg byte a -Statement [200] (byte~) play_move_rotate::$7 ← (byte) current_orientation#20 - (byte) $10 [ current_piece#15 current_ypos#19 current_orientation#20 current_piece_gfx#20 current_xpos#26 play_move_rotate::$7 ] ( main:13::play_movement:53::play_move_rotate:179 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 score_bcd current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 play_movement::render#2 current_piece#15 current_ypos#19 current_orientation#20 current_piece_gfx#20 current_xpos#26 play_move_rotate::$7 ] ) always clobbers reg byte a -Statement [203] (byte*) play_collision::piece_gfx#0 ← (byte*) current_piece#17 + (byte) play_collision::orientation#5 [ play_collision::yp#0 play_collision::xpos#6 play_collision::piece_gfx#0 ] ( main:13::play_movement:53::play_move_rotate:179::play_collision:194 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 score_bcd current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 play_movement::render#2 current_piece#15 current_ypos#19 current_orientation#20 current_piece_gfx#20 current_xpos#26 play_move_rotate::orientation#3 play_collision::yp#0 play_collision::xpos#6 play_collision::piece_gfx#0 ] main:13::play_movement:53::play_move_leftright:174::play_collision:232 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 score_bcd current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#20 current_piece#15 current_ypos#19 current_orientation#20 current_xpos#22 play_collision::yp#0 play_collision::xpos#6 play_collision::piece_gfx#0 ] main:13::play_movement:53::play_move_leftright:174::play_collision:243 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 score_bcd current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#20 current_piece#15 current_ypos#19 current_orientation#20 current_xpos#22 play_collision::yp#0 play_collision::xpos#6 play_collision::piece_gfx#0 ] main:13::play_movement:53::play_move_down:167::play_collision:267 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 score_bcd current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 lines_bcd#19 level#10 level_bcd#11 play_collision::yp#0 play_collision::xpos#6 play_collision::piece_gfx#0 ] main:13::play_spawn_current:26::play_collision:296 [ score_bcd current_movedown_slow#1 current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 game_over#65 play_collision::yp#0 play_collision::xpos#6 play_collision::piece_gfx#0 ] main:13::play_spawn_current:28::play_collision:296 [ score_bcd current_movedown_slow#1 current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 game_over#65 play_collision::yp#0 play_collision::xpos#6 play_collision::piece_gfx#0 ] main:13::play_movement:53::play_move_down:167::play_spawn_current:280::play_collision:296 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 score_bcd lines_bcd#17 level#19 current_movedown_slow#23 level_bcd#19 current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 game_over#65 play_collision::yp#0 play_collision::xpos#6 play_collision::piece_gfx#0 ] ) always clobbers reg byte a -Statement [205] (byte~) play_collision::$14 ← (byte) play_collision::yp#2 << (byte) 1 [ play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::i#3 play_collision::l#6 play_collision::$14 ] ( main:13::play_movement:53::play_move_rotate:179::play_collision:194 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 score_bcd current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 play_movement::render#2 current_piece#15 current_ypos#19 current_orientation#20 current_piece_gfx#20 current_xpos#26 play_move_rotate::orientation#3 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::i#3 play_collision::l#6 play_collision::$14 ] main:13::play_movement:53::play_move_leftright:174::play_collision:232 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 score_bcd current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#20 current_piece#15 current_ypos#19 current_orientation#20 current_xpos#22 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::i#3 play_collision::l#6 play_collision::$14 ] main:13::play_movement:53::play_move_leftright:174::play_collision:243 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 score_bcd current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#20 current_piece#15 current_ypos#19 current_orientation#20 current_xpos#22 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::i#3 play_collision::l#6 play_collision::$14 ] main:13::play_movement:53::play_move_down:167::play_collision:267 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 score_bcd current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 lines_bcd#19 level#10 level_bcd#11 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::i#3 play_collision::l#6 play_collision::$14 ] main:13::play_spawn_current:26::play_collision:296 [ score_bcd current_movedown_slow#1 current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::i#3 play_collision::l#6 play_collision::$14 ] main:13::play_spawn_current:28::play_collision:296 [ score_bcd current_movedown_slow#1 current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::i#3 play_collision::l#6 play_collision::$14 ] main:13::play_movement:53::play_move_down:167::play_spawn_current:280::play_collision:296 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 score_bcd lines_bcd#17 level#19 current_movedown_slow#23 level_bcd#19 current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::i#3 play_collision::l#6 play_collision::$14 ] ) always clobbers reg byte a -Statement [206] (byte*) play_collision::playfield_line#0 ← *((const byte**) playfield_lines + (byte~) play_collision::$14) [ play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] ( main:13::play_movement:53::play_move_rotate:179::play_collision:194 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 score_bcd current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 play_movement::render#2 current_piece#15 current_ypos#19 current_orientation#20 current_piece_gfx#20 current_xpos#26 play_move_rotate::orientation#3 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] main:13::play_movement:53::play_move_leftright:174::play_collision:232 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 score_bcd current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#20 current_piece#15 current_ypos#19 current_orientation#20 current_xpos#22 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] main:13::play_movement:53::play_move_leftright:174::play_collision:243 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 score_bcd current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#20 current_piece#15 current_ypos#19 current_orientation#20 current_xpos#22 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] main:13::play_movement:53::play_move_down:167::play_collision:267 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 score_bcd current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 lines_bcd#19 level#10 level_bcd#11 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] main:13::play_spawn_current:26::play_collision:296 [ score_bcd current_movedown_slow#1 current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] main:13::play_spawn_current:28::play_collision:296 [ score_bcd current_movedown_slow#1 current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] main:13::play_movement:53::play_move_down:167::play_spawn_current:280::play_collision:296 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 score_bcd lines_bcd#17 level#19 current_movedown_slow#23 level_bcd#19 current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] ) always clobbers reg byte a -Statement [210] if(*((byte*) play_collision::piece_gfx#0 + (byte) play_collision::i#2)==(byte) 0) goto play_collision::@3 [ play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::xp#2 play_collision::c#2 play_collision::i#1 ] ( main:13::play_movement:53::play_move_rotate:179::play_collision:194 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 score_bcd current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 play_movement::render#2 current_piece#15 current_ypos#19 current_orientation#20 current_piece_gfx#20 current_xpos#26 play_move_rotate::orientation#3 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::xp#2 play_collision::c#2 play_collision::i#1 ] main:13::play_movement:53::play_move_leftright:174::play_collision:232 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 score_bcd current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#20 current_piece#15 current_ypos#19 current_orientation#20 current_xpos#22 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::xp#2 play_collision::c#2 play_collision::i#1 ] main:13::play_movement:53::play_move_leftright:174::play_collision:243 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 score_bcd current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#20 current_piece#15 current_ypos#19 current_orientation#20 current_xpos#22 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::xp#2 play_collision::c#2 play_collision::i#1 ] main:13::play_movement:53::play_move_down:167::play_collision:267 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 score_bcd current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 lines_bcd#19 level#10 level_bcd#11 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::xp#2 play_collision::c#2 play_collision::i#1 ] main:13::play_spawn_current:26::play_collision:296 [ score_bcd current_movedown_slow#1 current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::xp#2 play_collision::c#2 play_collision::i#1 ] main:13::play_spawn_current:28::play_collision:296 [ score_bcd current_movedown_slow#1 current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::xp#2 play_collision::c#2 play_collision::i#1 ] main:13::play_movement:53::play_move_down:167::play_spawn_current:280::play_collision:296 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 score_bcd lines_bcd#17 level#19 current_movedown_slow#23 level_bcd#19 current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::xp#2 play_collision::c#2 play_collision::i#1 ] ) always clobbers reg byte a -Statement [212] (byte~) play_collision::$5 ← (byte) play_collision::xp#2 & (byte) $80 [ play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::xp#2 play_collision::c#2 play_collision::i#1 play_collision::$5 ] ( main:13::play_movement:53::play_move_rotate:179::play_collision:194 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 score_bcd current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 play_movement::render#2 current_piece#15 current_ypos#19 current_orientation#20 current_piece_gfx#20 current_xpos#26 play_move_rotate::orientation#3 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::xp#2 play_collision::c#2 play_collision::i#1 play_collision::$5 ] main:13::play_movement:53::play_move_leftright:174::play_collision:232 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 score_bcd current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#20 current_piece#15 current_ypos#19 current_orientation#20 current_xpos#22 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::xp#2 play_collision::c#2 play_collision::i#1 play_collision::$5 ] main:13::play_movement:53::play_move_leftright:174::play_collision:243 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 score_bcd current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#20 current_piece#15 current_ypos#19 current_orientation#20 current_xpos#22 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::xp#2 play_collision::c#2 play_collision::i#1 play_collision::$5 ] main:13::play_movement:53::play_move_down:167::play_collision:267 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 score_bcd current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 lines_bcd#19 level#10 level_bcd#11 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::xp#2 play_collision::c#2 play_collision::i#1 play_collision::$5 ] main:13::play_spawn_current:26::play_collision:296 [ score_bcd current_movedown_slow#1 current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::xp#2 play_collision::c#2 play_collision::i#1 play_collision::$5 ] main:13::play_spawn_current:28::play_collision:296 [ score_bcd current_movedown_slow#1 current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::xp#2 play_collision::c#2 play_collision::i#1 play_collision::$5 ] main:13::play_movement:53::play_move_down:167::play_spawn_current:280::play_collision:296 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 score_bcd lines_bcd#17 level#19 current_movedown_slow#23 level_bcd#19 current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::xp#2 play_collision::c#2 play_collision::i#1 play_collision::$5 ] ) always clobbers reg byte a -Statement [215] if(*((byte*) play_collision::playfield_line#0 + (byte) play_collision::xp#2)==(byte) 0) goto play_collision::@3 [ play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::xp#2 play_collision::c#2 play_collision::i#1 ] ( main:13::play_movement:53::play_move_rotate:179::play_collision:194 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 score_bcd current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 play_movement::render#2 current_piece#15 current_ypos#19 current_orientation#20 current_piece_gfx#20 current_xpos#26 play_move_rotate::orientation#3 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::xp#2 play_collision::c#2 play_collision::i#1 ] main:13::play_movement:53::play_move_leftright:174::play_collision:232 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 score_bcd current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#20 current_piece#15 current_ypos#19 current_orientation#20 current_xpos#22 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::xp#2 play_collision::c#2 play_collision::i#1 ] main:13::play_movement:53::play_move_leftright:174::play_collision:243 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 score_bcd current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#20 current_piece#15 current_ypos#19 current_orientation#20 current_xpos#22 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::xp#2 play_collision::c#2 play_collision::i#1 ] main:13::play_movement:53::play_move_down:167::play_collision:267 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 score_bcd current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 lines_bcd#19 level#10 level_bcd#11 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::xp#2 play_collision::c#2 play_collision::i#1 ] main:13::play_spawn_current:26::play_collision:296 [ score_bcd current_movedown_slow#1 current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::xp#2 play_collision::c#2 play_collision::i#1 ] main:13::play_spawn_current:28::play_collision:296 [ score_bcd current_movedown_slow#1 current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::xp#2 play_collision::c#2 play_collision::i#1 ] main:13::play_movement:53::play_move_down:167::play_spawn_current:280::play_collision:296 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 score_bcd lines_bcd#17 level#19 current_movedown_slow#23 level_bcd#19 current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::xp#2 play_collision::c#2 play_collision::i#1 ] ) always clobbers reg byte a -Statement [231] (byte*) current_piece#97 ← (byte*) current_piece#15 [ current_piece#15 current_ypos#19 current_orientation#20 current_xpos#22 current_piece#97 play_collision::orientation#2 play_collision::ypos#2 play_collision::xpos#2 ] ( main:13::play_movement:53::play_move_leftright:174 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 score_bcd current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#20 current_piece#15 current_ypos#19 current_orientation#20 current_xpos#22 current_piece#97 play_collision::orientation#2 play_collision::ypos#2 play_collision::xpos#2 ] ) always clobbers reg byte a -Statement [242] (byte*) current_piece#96 ← (byte*) current_piece#15 [ current_piece#15 current_ypos#19 current_orientation#20 current_xpos#22 current_piece#96 play_collision::orientation#1 play_collision::ypos#1 play_collision::xpos#1 ] ( main:13::play_movement:53::play_move_leftright:174 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 score_bcd current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#20 current_piece#15 current_ypos#19 current_orientation#20 current_xpos#22 current_piece#96 play_collision::orientation#1 play_collision::ypos#1 play_collision::xpos#1 ] ) always clobbers reg byte a -Statement [256] if((byte) current_movedown_counter#12<(const byte) current_movedown_fast) goto play_move_down::@2 [ score_bcd current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 lines_bcd#19 level#10 level_bcd#11 current_movedown_counter#12 play_move_down::movedown#10 ] ( main:13::play_movement:53::play_move_down:167 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 score_bcd current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 lines_bcd#19 level#10 level_bcd#11 current_movedown_counter#12 play_move_down::movedown#10 ] ) always clobbers reg byte a -Statement [259] if((byte) current_movedown_counter#12<(byte) current_movedown_slow#14) goto play_move_down::@3 [ score_bcd current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 lines_bcd#19 level#10 level_bcd#11 current_movedown_counter#12 play_move_down::movedown#7 ] ( main:13::play_movement:53::play_move_down:167 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 score_bcd current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 lines_bcd#19 level#10 level_bcd#11 current_movedown_counter#12 play_move_down::movedown#7 ] ) always clobbers reg byte a -Statement [266] (byte*) current_piece#95 ← (byte*) current_piece#10 [ score_bcd current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 lines_bcd#19 level#10 level_bcd#11 current_piece#95 play_collision::orientation#0 play_collision::ypos#0 play_collision::xpos#0 ] ( main:13::play_movement:53::play_move_down:167 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 score_bcd current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 lines_bcd#19 level#10 level_bcd#11 current_piece#95 play_collision::orientation#0 play_collision::ypos#0 play_collision::xpos#0 ] ) always clobbers reg byte a -Statement [281] (byte*) current_piece#92 ← (byte*)*((const word*) PIECES + (byte~) play_spawn_current::$7) [ score_bcd current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 play_spawn_current::piece_idx#2 game_over#52 current_piece#92 lines_bcd#17 level#19 current_movedown_slow#23 level_bcd#19 ] ( main:13::play_movement:53::play_move_down:167 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 score_bcd current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 play_spawn_current::piece_idx#2 game_over#52 current_piece#92 lines_bcd#17 level#19 current_movedown_slow#23 level_bcd#19 ] ) always clobbers reg byte a -Statement [282] (byte*) current_piece_gfx#116 ← (byte*)*((const word*) PIECES + (byte~) play_spawn_current::$7) [ score_bcd current_ypos#6 current_xpos#100 current_piece_char#5 play_spawn_current::piece_idx#2 game_over#52 current_piece#92 current_piece_gfx#116 lines_bcd#17 level#19 current_movedown_slow#23 level_bcd#19 ] ( main:13::play_movement:53::play_move_down:167 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 score_bcd current_ypos#6 current_xpos#100 current_piece_char#5 play_spawn_current::piece_idx#2 game_over#52 current_piece#92 current_piece_gfx#116 lines_bcd#17 level#19 current_movedown_slow#23 level_bcd#19 ] ) always clobbers reg byte a -Statement [289] (byte~) play_spawn_current::$7 ← (byte) play_spawn_current::current_piece_idx#0 << (byte) 1 [ play_spawn_current::$7 game_over#65 play_spawn_current::current_piece_idx#0 ] ( main:13::play_spawn_current:26 [ score_bcd current_movedown_slow#1 play_spawn_current::$7 game_over#65 play_spawn_current::current_piece_idx#0 ] main:13::play_spawn_current:28 [ score_bcd current_movedown_slow#1 play_spawn_current::$7 game_over#65 play_spawn_current::current_piece_idx#0 ] main:13::play_movement:53::play_move_down:167::play_spawn_current:280 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 score_bcd lines_bcd#17 level#19 current_movedown_slow#23 level_bcd#19 play_spawn_current::$7 game_over#65 play_spawn_current::current_piece_idx#0 ] ) always clobbers reg byte a -Statement [290] (byte) current_piece_char#5 ← *((const byte*) PIECES_CHARS + (byte) play_spawn_current::current_piece_idx#0) [ play_spawn_current::$7 current_piece_char#5 game_over#65 play_spawn_current::current_piece_idx#0 ] ( main:13::play_spawn_current:26 [ score_bcd current_movedown_slow#1 play_spawn_current::$7 current_piece_char#5 game_over#65 play_spawn_current::current_piece_idx#0 ] main:13::play_spawn_current:28 [ score_bcd current_movedown_slow#1 play_spawn_current::$7 current_piece_char#5 game_over#65 play_spawn_current::current_piece_idx#0 ] main:13::play_movement:53::play_move_down:167::play_spawn_current:280 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 score_bcd lines_bcd#17 level#19 current_movedown_slow#23 level_bcd#19 play_spawn_current::$7 current_piece_char#5 game_over#65 play_spawn_current::current_piece_idx#0 ] ) always clobbers reg byte a -Statement [291] (byte) current_xpos#100 ← *((const byte*) PIECES_START_X + (byte) play_spawn_current::current_piece_idx#0) [ current_xpos#100 play_spawn_current::$7 current_piece_char#5 game_over#65 play_spawn_current::current_piece_idx#0 ] ( main:13::play_spawn_current:26 [ score_bcd current_movedown_slow#1 current_xpos#100 play_spawn_current::$7 current_piece_char#5 game_over#65 play_spawn_current::current_piece_idx#0 ] main:13::play_spawn_current:28 [ score_bcd current_movedown_slow#1 current_xpos#100 play_spawn_current::$7 current_piece_char#5 game_over#65 play_spawn_current::current_piece_idx#0 ] main:13::play_movement:53::play_move_down:167::play_spawn_current:280 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 score_bcd lines_bcd#17 level#19 current_movedown_slow#23 level_bcd#19 current_xpos#100 play_spawn_current::$7 current_piece_char#5 game_over#65 play_spawn_current::current_piece_idx#0 ] ) always clobbers reg byte a -Statement [292] (byte) current_ypos#6 ← *((const byte*) PIECES_START_Y + (byte) play_spawn_current::current_piece_idx#0) [ current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 game_over#65 ] ( main:13::play_spawn_current:26 [ score_bcd current_movedown_slow#1 current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 game_over#65 ] main:13::play_spawn_current:28 [ score_bcd current_movedown_slow#1 current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 game_over#65 ] main:13::play_movement:53::play_move_down:167::play_spawn_current:280 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 score_bcd lines_bcd#17 level#19 current_movedown_slow#23 level_bcd#19 current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 game_over#65 ] ) always clobbers reg byte a -Statement [295] (byte*) current_piece#99 ← (byte*)*((const word*) PIECES + (byte~) play_spawn_current::$7) [ current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 current_piece#99 play_collision::ypos#4 play_collision::xpos#4 game_over#65 ] ( main:13::play_spawn_current:26 [ score_bcd current_movedown_slow#1 current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 current_piece#99 play_collision::ypos#4 play_collision::xpos#4 game_over#65 ] main:13::play_spawn_current:28 [ score_bcd current_movedown_slow#1 current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 current_piece#99 play_collision::ypos#4 play_collision::xpos#4 game_over#65 ] main:13::play_movement:53::play_move_down:167::play_spawn_current:280 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 score_bcd lines_bcd#17 level#19 current_movedown_slow#23 level_bcd#19 current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 current_piece#99 play_collision::ypos#4 play_collision::xpos#4 game_over#65 ] ) always clobbers reg byte a -Statement [303] if((byte) play_spawn_current::piece_idx#2==(byte) 7) goto play_spawn_current::sid_rnd1 [ current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 play_spawn_current::piece_idx#2 game_over#52 ] ( main:13::play_spawn_current:26 [ score_bcd current_movedown_slow#1 current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 play_spawn_current::piece_idx#2 game_over#52 ] main:13::play_spawn_current:28 [ score_bcd current_movedown_slow#1 current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 play_spawn_current::piece_idx#2 game_over#52 ] main:13::play_movement:53::play_move_down:167::play_spawn_current:280 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 score_bcd lines_bcd#17 level#19 current_movedown_slow#23 level_bcd#19 current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 play_spawn_current::piece_idx#2 game_over#52 ] ) always clobbers reg byte a -Statement [306] (byte) play_spawn_current::piece_idx#1 ← (byte) play_spawn_current::sid_rnd1_return#0 & (byte) 7 [ current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 game_over#52 play_spawn_current::piece_idx#1 ] ( main:13::play_spawn_current:26 [ score_bcd current_movedown_slow#1 current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 game_over#52 play_spawn_current::piece_idx#1 ] main:13::play_spawn_current:28 [ score_bcd current_movedown_slow#1 current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 game_over#52 play_spawn_current::piece_idx#1 ] main:13::play_movement:53::play_move_down:167::play_spawn_current:280 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 score_bcd lines_bcd#17 level#19 current_movedown_slow#23 level_bcd#19 current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 game_over#52 play_spawn_current::piece_idx#1 ] ) always clobbers reg byte a -Statement [308] (byte~) play_update_score::$2 ← < (word) lines_bcd#19 [ score_bcd current_movedown_slow#14 lines_bcd#19 level#10 level_bcd#11 play_update_score::removed#0 play_update_score::$2 ] ( main:13::play_movement:53::play_move_down:167::play_update_score:278 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 game_over#10 next_piece_idx#10 score_bcd current_movedown_slow#14 lines_bcd#19 level#10 level_bcd#11 play_update_score::removed#0 play_update_score::$2 ] ) always clobbers reg byte a -Statement [310] (byte~) play_update_score::$9 ← (byte) play_update_score::removed#0 << (byte) 2 [ score_bcd current_movedown_slow#14 lines_bcd#19 level#10 level_bcd#11 play_update_score::removed#0 play_update_score::lines_before#0 play_update_score::$9 ] ( main:13::play_movement:53::play_move_down:167::play_update_score:278 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 game_over#10 next_piece_idx#10 score_bcd current_movedown_slow#14 lines_bcd#19 level#10 level_bcd#11 play_update_score::removed#0 play_update_score::lines_before#0 play_update_score::$9 ] ) always clobbers reg byte a -Statement [311] (dword) play_update_score::add_bcd#0 ← *((const dword*) score_add_bcd + (byte~) play_update_score::$9) [ score_bcd current_movedown_slow#14 lines_bcd#19 level#10 level_bcd#11 play_update_score::removed#0 play_update_score::lines_before#0 play_update_score::add_bcd#0 ] ( main:13::play_movement:53::play_move_down:167::play_update_score:278 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 game_over#10 next_piece_idx#10 score_bcd current_movedown_slow#14 lines_bcd#19 level#10 level_bcd#11 play_update_score::removed#0 play_update_score::lines_before#0 play_update_score::add_bcd#0 ] ) always clobbers reg byte a -Statement [313] (word) lines_bcd#29 ← (word) lines_bcd#19 + (byte) play_update_score::removed#0 [ score_bcd current_movedown_slow#14 level#10 level_bcd#11 play_update_score::lines_before#0 play_update_score::add_bcd#0 lines_bcd#29 ] ( main:13::play_movement:53::play_move_down:167::play_update_score:278 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 game_over#10 next_piece_idx#10 score_bcd current_movedown_slow#14 level#10 level_bcd#11 play_update_score::lines_before#0 play_update_score::add_bcd#0 lines_bcd#29 ] ) always clobbers reg byte a -Statement [314] (dword) score_bcd ← (dword) score_bcd + (dword) play_update_score::add_bcd#0 [ score_bcd current_movedown_slow#14 level#10 level_bcd#11 play_update_score::lines_before#0 lines_bcd#29 ] ( main:13::play_movement:53::play_move_down:167::play_update_score:278 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 game_over#10 next_piece_idx#10 score_bcd current_movedown_slow#14 level#10 level_bcd#11 play_update_score::lines_before#0 lines_bcd#29 ] ) always clobbers reg byte a -Statement [316] (byte~) play_update_score::$4 ← < (word) lines_bcd#29 [ score_bcd current_movedown_slow#14 level#10 level_bcd#11 play_update_score::lines_before#0 lines_bcd#29 play_update_score::$4 ] ( main:13::play_movement:53::play_move_down:167::play_update_score:278 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 game_over#10 next_piece_idx#10 score_bcd current_movedown_slow#14 level#10 level_bcd#11 play_update_score::lines_before#0 lines_bcd#29 play_update_score::$4 ] ) always clobbers reg byte a -Statement [324] if((byte) level#21>=(byte) $1d+(byte) 1) goto play_increase_level::@1 [ level_bcd#11 level#21 ] ( main:13::play_movement:53::play_move_down:167::play_update_score:278::play_increase_level:320 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 game_over#10 next_piece_idx#10 score_bcd lines_bcd#29 level_bcd#11 level#21 ] ) always clobbers reg byte a -Statement [325] (byte) current_movedown_slow#10 ← *((const byte*) MOVEDOWN_SLOW_SPEEDS + (byte) level#21) [ level_bcd#11 level#21 current_movedown_slow#10 ] ( main:13::play_movement:53::play_move_down:167::play_update_score:278::play_increase_level:320 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 game_over#10 next_piece_idx#10 score_bcd lines_bcd#29 level_bcd#11 level#21 current_movedown_slow#10 ] ) always clobbers reg byte a reg byte y -Statement [328] (byte~) play_increase_level::$1 ← (byte) level_bcd#21 & (byte) $f [ level#21 current_movedown_slow#65 level_bcd#21 play_increase_level::$1 ] ( main:13::play_movement:53::play_move_down:167::play_update_score:278::play_increase_level:320 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 game_over#10 next_piece_idx#10 score_bcd lines_bcd#29 level#21 current_movedown_slow#65 level_bcd#21 play_increase_level::$1 ] ) always clobbers reg byte a -Statement [330] (byte) level_bcd#8 ← (byte) level_bcd#21 + (byte) 6 [ level#21 current_movedown_slow#65 level_bcd#8 ] ( main:13::play_movement:53::play_move_down:167::play_update_score:278::play_increase_level:320 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 game_over#10 next_piece_idx#10 score_bcd lines_bcd#29 level#21 current_movedown_slow#65 level_bcd#8 ] ) always clobbers reg byte a reg byte x -Statement [334] (byte~) play_increase_level::$5 ← (byte) play_increase_level::b#2 << (byte) 2 [ level#21 current_movedown_slow#65 level_bcd#62 play_increase_level::b#2 play_increase_level::$5 ] ( main:13::play_movement:53::play_move_down:167::play_update_score:278::play_increase_level:320 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 game_over#10 next_piece_idx#10 score_bcd lines_bcd#29 level#21 current_movedown_slow#65 level_bcd#62 play_increase_level::b#2 play_increase_level::$5 ] ) always clobbers reg byte a -Statement [335] *((const dword*) score_add_bcd + (byte~) play_increase_level::$5) ← *((const dword*) score_add_bcd + (byte~) play_increase_level::$5) + *((const dword*) SCORE_BASE_BCD + (byte~) play_increase_level::$5) [ level#21 current_movedown_slow#65 level_bcd#62 play_increase_level::b#2 ] ( main:13::play_movement:53::play_move_down:167::play_update_score:278::play_increase_level:320 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 game_over#10 next_piece_idx#10 score_bcd lines_bcd#29 level#21 current_movedown_slow#65 level_bcd#62 play_increase_level::b#2 ] ) always clobbers reg byte a -Statement [353] (byte) play_remove_lines::w#2 ← (byte) play_remove_lines::w#1 + (const byte) PLAYFIELD_COLS [ play_remove_lines::y#8 play_remove_lines::removed#11 play_remove_lines::r#1 play_remove_lines::w#2 ] ( main:13::play_movement:53::play_move_down:167::play_remove_lines:274 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 score_bcd current_movedown_slow#14 game_over#10 next_piece_idx#10 lines_bcd#19 level#10 level_bcd#11 play_remove_lines::y#8 play_remove_lines::removed#11 play_remove_lines::r#1 play_remove_lines::w#2 ] ) always clobbers reg byte a -Statement [361] *((const byte*) playfield + (byte) play_remove_lines::w#6) ← (byte) 0 [ play_remove_lines::removed#8 play_remove_lines::w#6 ] ( main:13::play_movement:53::play_move_down:167::play_remove_lines:274 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 score_bcd current_movedown_slow#14 game_over#10 next_piece_idx#10 lines_bcd#19 level#10 level_bcd#11 play_remove_lines::removed#8 play_remove_lines::w#6 ] ) always clobbers reg byte a -Statement [365] (byte~) play_lock_current::$4 ← (byte) play_lock_current::yp#2 << (byte) 1 [ current_piece_char#10 current_piece_gfx#13 current_xpos#14 play_lock_current::yp#2 play_lock_current::i#3 play_lock_current::l#6 play_lock_current::$4 ] ( main:13::play_movement:53::play_move_down:167::play_lock_current:272 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 score_bcd current_movedown_slow#14 game_over#10 next_piece_idx#10 lines_bcd#19 level#10 level_bcd#11 current_piece_char#10 current_piece_gfx#13 current_xpos#14 play_lock_current::yp#2 play_lock_current::i#3 play_lock_current::l#6 play_lock_current::$4 ] ) always clobbers reg byte a -Statement [366] (byte*) play_lock_current::playfield_line#0 ← *((const byte**) playfield_lines + (byte~) play_lock_current::$4) [ current_piece_char#10 current_piece_gfx#13 current_xpos#14 play_lock_current::yp#2 play_lock_current::i#3 play_lock_current::l#6 play_lock_current::playfield_line#0 ] ( main:13::play_movement:53::play_move_down:167::play_lock_current:272 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 score_bcd current_movedown_slow#14 game_over#10 next_piece_idx#10 lines_bcd#19 level#10 level_bcd#11 current_piece_char#10 current_piece_gfx#13 current_xpos#14 play_lock_current::yp#2 play_lock_current::i#3 play_lock_current::l#6 play_lock_current::playfield_line#0 ] ) always clobbers reg byte a -Statement [370] if(*((byte*) current_piece_gfx#13 + (byte) play_lock_current::i#2)==(byte) 0) goto play_lock_current::@3 [ current_piece_char#10 current_piece_gfx#13 current_xpos#14 play_lock_current::yp#2 play_lock_current::l#6 play_lock_current::playfield_line#0 play_lock_current::xp#2 play_lock_current::c#2 play_lock_current::i#1 ] ( main:13::play_movement:53::play_move_down:167::play_lock_current:272 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 score_bcd current_movedown_slow#14 game_over#10 next_piece_idx#10 lines_bcd#19 level#10 level_bcd#11 current_piece_char#10 current_piece_gfx#13 current_xpos#14 play_lock_current::yp#2 play_lock_current::l#6 play_lock_current::playfield_line#0 play_lock_current::xp#2 play_lock_current::c#2 play_lock_current::i#1 ] ) always clobbers reg byte a -Statement [371] *((byte*) play_lock_current::playfield_line#0 + (byte) play_lock_current::xp#2) ← (byte) current_piece_char#10 [ current_piece_char#10 current_piece_gfx#13 current_xpos#14 play_lock_current::yp#2 play_lock_current::l#6 play_lock_current::playfield_line#0 play_lock_current::xp#2 play_lock_current::c#2 play_lock_current::i#1 ] ( main:13::play_movement:53::play_move_down:167::play_lock_current:272 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 score_bcd current_movedown_slow#14 game_over#10 next_piece_idx#10 lines_bcd#19 level#10 level_bcd#11 current_piece_char#10 current_piece_gfx#13 current_xpos#14 play_lock_current::yp#2 play_lock_current::l#6 play_lock_current::playfield_line#0 play_lock_current::xp#2 play_lock_current::c#2 play_lock_current::i#1 ] ) always clobbers reg byte a -Statement [382] (byte~) keyboard_event_pressed::$0 ← (byte) keyboard_event_pressed::keycode#5 >> (byte) 3 [ keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] ( main:13::play_movement:53::play_move_down:167::keyboard_event_pressed:252 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 score_bcd current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 lines_bcd#19 level#10 level_bcd#11 current_movedown_counter#12 play_move_down::movedown#10 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] main:13::keyboard_event_scan:45::keyboard_event_pressed:404 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 level#10 level_bcd#11 keyboard_events_size#13 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] main:13::keyboard_event_scan:45::keyboard_event_pressed:410 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 level#10 level_bcd#11 keyboard_events_size#13 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] main:13::keyboard_event_scan:45::keyboard_event_pressed:416 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 level#10 level_bcd#11 keyboard_events_size#13 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] main:13::keyboard_event_scan:45::keyboard_event_pressed:422 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 level#10 level_bcd#11 keyboard_events_size#13 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] ) always clobbers reg byte a -Statement [384] (byte~) keyboard_event_pressed::$1 ← (byte) keyboard_event_pressed::keycode#5 & (byte) 7 [ keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] ( main:13::play_movement:53::play_move_down:167::keyboard_event_pressed:252 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 score_bcd current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 lines_bcd#19 level#10 level_bcd#11 current_movedown_counter#12 play_move_down::movedown#10 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:13::keyboard_event_scan:45::keyboard_event_pressed:404 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 level#10 level_bcd#11 keyboard_events_size#13 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:13::keyboard_event_scan:45::keyboard_event_pressed:410 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 level#10 level_bcd#11 keyboard_events_size#13 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:13::keyboard_event_scan:45::keyboard_event_pressed:416 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 level#10 level_bcd#11 keyboard_events_size#13 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:13::keyboard_event_scan:45::keyboard_event_pressed:422 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 level#10 level_bcd#11 keyboard_events_size#13 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] ) always clobbers reg byte a -Statement [385] (byte) keyboard_event_pressed::return#11 ← (byte) keyboard_event_pressed::row_bits#0 & *((const byte*) keyboard_matrix_col_bitmask + (byte~) keyboard_event_pressed::$1) [ keyboard_event_pressed::return#11 ] ( main:13::play_movement:53::play_move_down:167::keyboard_event_pressed:252 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 score_bcd current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 lines_bcd#19 level#10 level_bcd#11 current_movedown_counter#12 play_move_down::movedown#10 keyboard_event_pressed::return#11 ] main:13::keyboard_event_scan:45::keyboard_event_pressed:404 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 level#10 level_bcd#11 keyboard_events_size#13 keyboard_event_pressed::return#11 ] main:13::keyboard_event_scan:45::keyboard_event_pressed:410 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 level#10 level_bcd#11 keyboard_events_size#13 keyboard_event_pressed::return#11 ] main:13::keyboard_event_scan:45::keyboard_event_pressed:416 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 level#10 level_bcd#11 keyboard_events_size#13 keyboard_event_pressed::return#11 ] main:13::keyboard_event_scan:45::keyboard_event_pressed:422 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 level#10 level_bcd#11 keyboard_events_size#13 keyboard_event_pressed::return#11 ] ) always clobbers reg byte a -Statement [387] if((byte) keyboard_events_size#13==(byte) 0) goto keyboard_event_get::@return [ keyboard_events_size#13 ] ( main:13::keyboard_event_get:47 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 level#10 level_bcd#11 keyboard_events_size#13 ] ) always clobbers reg byte a -Statement [389] (byte) keyboard_event_get::return#1 ← *((const byte*) keyboard_events + (byte) keyboard_events_size#4) [ keyboard_events_size#4 keyboard_event_get::return#1 ] ( main:13::keyboard_event_get:47 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 level#10 level_bcd#11 keyboard_events_size#4 keyboard_event_get::return#1 ] ) always clobbers reg byte y -Statement [398] if((byte) keyboard_event_scan::row_scan#0!=*((const byte*) keyboard_scan_values + (byte) keyboard_event_scan::row#2)) goto keyboard_event_scan::@9 [ keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#30 keyboard_event_scan::row_scan#0 ] ( main:13::keyboard_event_scan:45 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 level#10 level_bcd#11 keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#30 keyboard_event_scan::row_scan#0 ] ) always clobbers reg byte a reg byte y -Statement [399] (byte) keyboard_event_scan::keycode#1 ← (byte) keyboard_event_scan::keycode#11 + (byte) 8 [ keyboard_event_scan::row#2 keyboard_events_size#30 keyboard_event_scan::keycode#1 ] ( main:13::keyboard_event_scan:45 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 level#10 level_bcd#11 keyboard_event_scan::row#2 keyboard_events_size#30 keyboard_event_scan::keycode#1 ] ) always clobbers reg byte a reg byte x -Statement [402] if((byte) keyboard_event_scan::row#1!=(byte) 8) goto keyboard_event_scan::@7 [ keyboard_events_size#13 keyboard_event_scan::row#1 keyboard_event_scan::keycode#13 ] ( main:13::keyboard_event_scan:45 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 level#10 level_bcd#11 keyboard_events_size#13 keyboard_event_scan::row#1 keyboard_event_scan::keycode#13 ] ) always clobbers reg byte a -Statement [429] (byte~) keyboard_event_scan::$15 ← (byte) keyboard_event_scan::row_scan#0 ^ *((const byte*) keyboard_scan_values + (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::$15 ] ( main:13::keyboard_event_scan:45 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 level#10 level_bcd#11 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::$15 ] ) always clobbers reg byte a -Statement [430] (byte~) keyboard_event_scan::$16 ← (byte~) keyboard_event_scan::$15 & *((const byte*) keyboard_matrix_col_bitmask + (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::$16 ] ( main:13::keyboard_event_scan:45 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 level#10 level_bcd#11 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::$16 ] ) always clobbers reg byte a -Statement [432] if((byte) keyboard_events_size#10==(byte) 8) goto keyboard_event_scan::@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:13::keyboard_event_scan:45 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 level#10 level_bcd#11 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 [433] (byte) keyboard_event_scan::event_type#0 ← (byte) keyboard_event_scan::row_scan#0 & *((const byte*) keyboard_matrix_col_bitmask + (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:13::keyboard_event_scan:45 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 level#10 level_bcd#11 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 [435] *((const byte*) keyboard_events + (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:13::keyboard_event_scan:45 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 level#10 level_bcd#11 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 reg byte y -Statement [441] *((const byte*) keyboard_scan_values + (byte) keyboard_event_scan::row#2) ← (byte) keyboard_event_scan::row_scan#0 [ keyboard_event_scan::row#2 keyboard_event_scan::keycode#14 keyboard_events_size#29 ] ( main:13::keyboard_event_scan:45 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 level#10 level_bcd#11 keyboard_event_scan::row#2 keyboard_event_scan::keycode#14 keyboard_events_size#29 ] ) always clobbers reg byte a reg byte y -Statement [442] (byte~) keyboard_event_scan::$23 ← (byte) keyboard_event_scan::keycode#10 | (byte) $40 [ 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::$23 ] ( main:13::keyboard_event_scan:45 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 level#10 level_bcd#11 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::$23 ] ) always clobbers reg byte a -Statement [443] *((const byte*) keyboard_events + (byte) keyboard_events_size#10) ← (byte~) keyboard_event_scan::$23 [ 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:13::keyboard_event_scan:45 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 level#10 level_bcd#11 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 y -Statement [445] *((const byte*) CIA1_PORT_A) ← *((const byte*) keyboard_matrix_row_bitmask + (byte) keyboard_matrix_read::rowid#0) [ ] ( main:13::keyboard_event_scan:45::keyboard_matrix_read:395 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 level#10 level_bcd#11 keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#30 ] ) always clobbers reg byte a -Statement [446] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B) [ keyboard_matrix_read::return#0 ] ( main:13::keyboard_event_scan:45::keyboard_matrix_read:395 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 level#10 level_bcd#11 keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#30 keyboard_matrix_read::return#0 ] ) always clobbers reg byte a -Statement [448] if((byte) render_screen_show#16==(byte) 0) goto render_show::toD0181 [ render_screen_show#16 level#10 ] ( main:13::render_show:43 [ score_bcd render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 keyboard_events_size#19 current_movedown_counter#16 lines_bcd#19 level_bcd#11 render_screen_show#16 level#10 ] ) always clobbers reg byte a -Statement [452] *((const byte*) BGCOL2) ← *((const byte*) PIECES_COLORS_1 + (byte) level#10) [ render_screen_show#16 level#10 ] ( main:13::render_show:43 [ score_bcd render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 keyboard_events_size#19 current_movedown_counter#16 lines_bcd#19 level_bcd#11 render_screen_show#16 level#10 ] ) always clobbers reg byte a reg byte y -Statement [453] *((const byte*) BGCOL3) ← *((const byte*) PIECES_COLORS_2 + (byte) level#10) [ render_screen_show#16 level#10 ] ( main:13::render_show:43 [ score_bcd render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 keyboard_events_size#19 current_movedown_counter#16 lines_bcd#19 level_bcd#11 render_screen_show#16 level#10 ] ) always clobbers reg byte a reg byte y -Statement [454] (byte) render_screen_showing ← (byte) render_screen_show#16 [ render_screen_show#16 level#10 ] ( main:13::render_show:43 [ score_bcd render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 keyboard_events_size#19 current_movedown_counter#16 lines_bcd#19 level_bcd#11 render_screen_show#16 level#10 ] ) always clobbers reg byte a -Statement [459] (byte~) play_init::$2 ← (byte) play_init::j#2 << (byte) 1 [ play_init::j#2 play_init::pli#2 play_init::idx#2 play_init::$2 ] ( main:13::play_init:24 [ score_bcd play_init::j#2 play_init::pli#2 play_init::idx#2 play_init::$2 ] ) always clobbers reg byte a -Statement [460] *((const byte**) playfield_lines + (byte~) play_init::$2) ← (byte*) play_init::pli#2 [ play_init::j#2 play_init::pli#2 play_init::idx#2 ] ( main:13::play_init:24 [ score_bcd play_init::j#2 play_init::pli#2 play_init::idx#2 ] ) always clobbers reg byte a -Statement [461] *((const byte*) playfield_lines_idx + (byte) play_init::j#2) ← (byte) play_init::idx#2 [ play_init::j#2 play_init::pli#2 play_init::idx#2 ] ( main:13::play_init:24 [ score_bcd play_init::j#2 play_init::pli#2 play_init::idx#2 ] ) always clobbers reg byte a -Statement [462] (byte*) play_init::pli#1 ← (byte*) play_init::pli#2 + (const byte) PLAYFIELD_COLS [ play_init::j#2 play_init::idx#2 play_init::pli#1 ] ( main:13::play_init:24 [ score_bcd play_init::j#2 play_init::idx#2 play_init::pli#1 ] ) always clobbers reg byte a -Statement [463] (byte) play_init::idx#1 ← (byte) play_init::idx#2 + (const byte) PLAYFIELD_COLS [ play_init::j#2 play_init::pli#1 play_init::idx#1 ] ( main:13::play_init:24 [ score_bcd play_init::j#2 play_init::pli#1 play_init::idx#1 ] ) always clobbers reg byte a -Statement [466] *((const byte*) playfield_lines_idx+(const byte) PLAYFIELD_LINES) ← (const byte) PLAYFIELD_COLS*(const byte) PLAYFIELD_LINES [ ] ( main:13::play_init:24 [ score_bcd ] ) always clobbers reg byte a -Statement [467] (byte) current_movedown_slow#1 ← *((const byte*) MOVEDOWN_SLOW_SPEEDS) [ current_movedown_slow#1 ] ( main:13::play_init:24 [ score_bcd current_movedown_slow#1 ] ) always clobbers reg byte a -Statement [469] (byte~) play_init::$3 ← (byte) play_init::b#2 << (byte) 2 [ current_movedown_slow#1 play_init::b#2 play_init::$3 ] ( main:13::play_init:24 [ score_bcd current_movedown_slow#1 play_init::b#2 play_init::$3 ] ) always clobbers reg byte a -Statement [470] *((const dword*) score_add_bcd + (byte~) play_init::$3) ← *((const dword*) SCORE_BASE_BCD + (byte~) play_init::$3) [ current_movedown_slow#1 play_init::b#2 ] ( main:13::play_init:24 [ score_bcd current_movedown_slow#1 play_init::b#2 ] ) always clobbers reg byte a -Statement [475] *((const byte*) IRQ_STATUS) ← (const byte) IRQ_RASTER [ ] ( main:13::sprites_irq_init:22 [ score_bcd ] ) always clobbers reg byte a +Statement [5] (byte) irq_raster_next ← (const byte) IRQ_RASTER_FIRST [ score_bcd ] ( [ score_bcd ] ) always clobbers reg byte a +Statement [6] (byte) irq_sprite_ypos ← (const byte) SPRITES_FIRST_YPOS+(byte) $15 [ score_bcd ] ( [ score_bcd ] ) always clobbers reg byte a +Statement [8] (byte) irq_sprite_ptr ← (const byte) toSpritePtr1_return#0+(byte) 3 [ score_bcd ] ( [ score_bcd ] ) always clobbers reg byte a +Statement [9] (byte) irq_cnt ← (byte) 0 [ score_bcd ] ( [ score_bcd ] ) always clobbers reg byte a +Statement [31] (byte*) current_piece_gfx#111 ← (byte*)*((const word*) PIECES + (byte~) play_spawn_current::$7) [ score_bcd current_ypos#97 current_ypos#6 current_xpos#118 current_xpos#100 current_piece_gfx#111 play_spawn_current::$7 current_piece_char#5 play_spawn_current::piece_idx#2 current_movedown_slow#1 game_over#52 ] ( main:11 [ score_bcd current_ypos#97 current_ypos#6 current_xpos#118 current_xpos#100 current_piece_gfx#111 play_spawn_current::$7 current_piece_char#5 play_spawn_current::piece_idx#2 current_movedown_slow#1 game_over#52 ] ) always clobbers reg byte a +Statement [36] (byte*) current_piece#101 ← (byte*)*((const word*) PIECES + (byte~) play_spawn_current::$7) [ score_bcd current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 play_spawn_current::piece_idx#2 current_piece#101 current_movedown_slow#1 game_over#52 ] ( main:11 [ score_bcd current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 play_spawn_current::piece_idx#2 current_piece#101 current_movedown_slow#1 game_over#52 ] ) always clobbers reg byte a +Statement [37] (byte*) current_piece_gfx#123 ← (byte*)*((const word*) PIECES + (byte~) play_spawn_current::$7) [ score_bcd current_ypos#6 current_xpos#100 current_piece_char#5 play_spawn_current::piece_idx#2 current_piece#101 current_piece_gfx#123 current_movedown_slow#1 game_over#52 ] ( main:11 [ score_bcd current_ypos#6 current_xpos#100 current_piece_char#5 play_spawn_current::piece_idx#2 current_piece#101 current_piece_gfx#123 current_movedown_slow#1 game_over#52 ] ) always clobbers reg byte a +Statement [39] if(*((const byte*) RASTER)!=(byte) $ff) goto main::@2 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 keyboard_events_size#19 current_movedown_counter#16 lines_bcd#19 level#10 level_bcd#11 ] ( main:11 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 keyboard_events_size#19 current_movedown_counter#16 lines_bcd#19 level#10 level_bcd#11 ] ) always clobbers reg byte a +Statement [48] if((byte) game_over#10==(byte) 0) goto main::@4 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 level#10 level_bcd#11 keyboard_events_size#16 main::key_event#0 ] ( main:11 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 level#10 level_bcd#11 keyboard_events_size#16 main::key_event#0 ] ) always clobbers reg byte a +Statement [60] (byte*) current_piece_gfx#112 ← (byte*) current_piece_gfx#18 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 current_ypos#98 render_screen_render#64 current_xpos#119 current_piece_gfx#112 ] ( main:11 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 current_ypos#98 render_screen_render#64 current_xpos#119 current_piece_gfx#112 ] ) always clobbers reg byte a +Statement [70] (byte) render_screen_render#11 ← (byte) render_screen_render#18 ^ (byte) $20 [ render_screen_show#16 render_screen_render#11 ] ( main:11::render_screen_swap:69 [ score_bcd current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 render_screen_show#16 render_screen_render#11 ] ) always clobbers reg byte a +Statement [71] (byte) render_screen_show#13 ← (byte) render_screen_show#16 ^ (byte) $20 [ render_screen_show#13 render_screen_render#11 ] ( main:11::render_screen_swap:69 [ score_bcd current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 render_screen_show#13 render_screen_render#11 ] ) always clobbers reg byte a +Statement [73] if((byte) render_screen_render#18==(byte) 0) goto render_score::@1 [ render_screen_render#18 lines_bcd#15 level_bcd#17 ] ( main:11::render_score:67 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 ] ) always clobbers reg byte a +Statement [76] (byte*) render_bcd::screen#0 ← (byte*) render_score::screen#3 [ render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::screen#0 ] ( main:11::render_score:67 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::screen#0 ] ) always clobbers reg byte a +Statement [79] (byte*) render_bcd::screen#1 ← (byte*) render_score::screen#3 [ render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::screen#1 ] ( main:11::render_score:67 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::screen#1 ] ) always clobbers reg byte a +Statement [82] (byte*) render_bcd::screen#2 ← (byte*) render_score::screen#3 [ render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::screen#2 ] ( main:11::render_score:67 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::screen#2 ] ) always clobbers reg byte a +Statement [85] (byte) render_bcd::bcd#3 ← > (word) lines_bcd#15 [ render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::bcd#3 ] ( main:11::render_score:67 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::bcd#3 ] ) always clobbers reg byte a +Statement [86] (byte*) render_bcd::screen#3 ← (byte*) render_score::screen#3 [ render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::bcd#3 render_bcd::screen#3 ] ( main:11::render_score:67 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::bcd#3 render_bcd::screen#3 ] ) always clobbers reg byte a +Statement [88] (byte) render_bcd::bcd#4 ← < (word) lines_bcd#15 [ render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::bcd#4 ] ( main:11::render_score:67 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::bcd#4 ] ) always clobbers reg byte a +Statement [89] (byte*) render_bcd::screen#4 ← (byte*) render_score::screen#3 [ render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::bcd#4 render_bcd::screen#4 ] ( main:11::render_score:67 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::bcd#4 render_bcd::screen#4 ] ) always clobbers reg byte a +Statement [91] (byte*) render_bcd::screen#5 ← (byte*) render_score::screen#3 [ render_screen_render#18 lines_bcd#15 level_bcd#17 render_bcd::screen#5 ] ( main:11::render_score:67 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_bcd::screen#5 ] ) always clobbers reg byte a +Statement [96] (byte*) render_bcd::screen_pos#0 ← (byte*) render_bcd::screen#6 + (word) render_bcd::offset#6 [ render_bcd::only_low#6 render_bcd::bcd#6 render_bcd::screen_pos#0 ] ( main:11::render_score:67::render_bcd:78 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::only_low#6 render_bcd::bcd#6 render_bcd::screen_pos#0 ] main:11::render_score:67::render_bcd:81 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::only_low#6 render_bcd::bcd#6 render_bcd::screen_pos#0 ] main:11::render_score:67::render_bcd:84 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::only_low#6 render_bcd::bcd#6 render_bcd::screen_pos#0 ] main:11::render_score:67::render_bcd:87 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::only_low#6 render_bcd::bcd#6 render_bcd::screen_pos#0 ] main:11::render_score:67::render_bcd:90 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::only_low#6 render_bcd::bcd#6 render_bcd::screen_pos#0 ] main:11::render_score:67::render_bcd:93 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_bcd::only_low#6 render_bcd::bcd#6 render_bcd::screen_pos#0 ] ) always clobbers reg byte a +Statement [98] (byte~) render_bcd::$5 ← (byte) render_bcd::bcd#6 >> (byte) 4 [ render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$5 ] ( main:11::render_score:67::render_bcd:78 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$5 ] main:11::render_score:67::render_bcd:81 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$5 ] main:11::render_score:67::render_bcd:84 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$5 ] main:11::render_score:67::render_bcd:87 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$5 ] main:11::render_score:67::render_bcd:90 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$5 ] main:11::render_score:67::render_bcd:93 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$5 ] ) always clobbers reg byte a +Statement [100] *((byte*) render_bcd::screen_pos#0) ← (byte~) render_bcd::$6 [ render_bcd::bcd#6 render_bcd::screen_pos#0 ] ( main:11::render_score:67::render_bcd:78 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::bcd#6 render_bcd::screen_pos#0 ] main:11::render_score:67::render_bcd:81 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::bcd#6 render_bcd::screen_pos#0 ] main:11::render_score:67::render_bcd:84 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::bcd#6 render_bcd::screen_pos#0 ] main:11::render_score:67::render_bcd:87 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::bcd#6 render_bcd::screen_pos#0 ] main:11::render_score:67::render_bcd:90 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::bcd#6 render_bcd::screen_pos#0 ] main:11::render_score:67::render_bcd:93 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_bcd::bcd#6 render_bcd::screen_pos#0 ] ) always clobbers reg byte y +Statement [103] (byte~) render_bcd::$3 ← (byte) render_bcd::bcd#6 & (byte) $f [ render_bcd::screen_pos#3 render_bcd::$3 ] ( main:11::render_score:67::render_bcd:78 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::screen_pos#3 render_bcd::$3 ] main:11::render_score:67::render_bcd:81 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::screen_pos#3 render_bcd::$3 ] main:11::render_score:67::render_bcd:84 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::screen_pos#3 render_bcd::$3 ] main:11::render_score:67::render_bcd:87 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::screen_pos#3 render_bcd::$3 ] main:11::render_score:67::render_bcd:90 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 render_bcd::screen_pos#3 render_bcd::$3 ] main:11::render_score:67::render_bcd:93 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_bcd::screen_pos#3 render_bcd::$3 ] ) always clobbers reg byte a +Statement [105] *((byte*) render_bcd::screen_pos#3) ← (byte~) render_bcd::$4 [ ] ( main:11::render_score:67::render_bcd:78 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 ] main:11::render_score:67::render_bcd:81 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 ] main:11::render_score:67::render_bcd:84 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 ] main:11::render_score:67::render_bcd:87 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 ] main:11::render_score:67::render_bcd:90 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#3 ] main:11::render_score:67::render_bcd:93 [ score_bcd render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 level#17 render_screen_render#18 lines_bcd#15 level_bcd#17 ] ) always clobbers reg byte y +Statement [111] (byte~) render_next::$6 ← (byte) next_piece_idx#12 << (byte) 1 [ next_piece_idx#12 render_next::screen_next_area#11 render_next::$6 ] ( main:11::render_next:35 [ score_bcd current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 play_spawn_current::piece_idx#2 current_movedown_slow#1 game_over#52 next_piece_idx#12 render_next::screen_next_area#11 render_next::$6 ] main:11::render_next:65 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 next_piece_idx#12 render_next::screen_next_area#11 render_next::$6 ] ) always clobbers reg byte a +Statement [113] (byte*) render_next::next_piece_gfx#9 ← (byte*)*((const word*) PIECES + (byte~) render_next::$6) [ render_next::screen_next_area#11 render_next::next_piece_char#0 render_next::next_piece_gfx#9 ] ( main:11::render_next:35 [ score_bcd current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 play_spawn_current::piece_idx#2 current_movedown_slow#1 game_over#52 render_next::screen_next_area#11 render_next::next_piece_char#0 render_next::next_piece_gfx#9 ] main:11::render_next:65 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 render_next::screen_next_area#11 render_next::next_piece_char#0 render_next::next_piece_gfx#9 ] ) always clobbers reg byte a +Statement [116] (byte) render_next::cell#0 ← *((byte*) render_next::next_piece_gfx#2) [ render_next::next_piece_char#0 render_next::l#7 render_next::next_piece_gfx#2 render_next::screen_next_area#5 render_next::c#2 render_next::cell#0 ] ( main:11::render_next:35 [ score_bcd current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 play_spawn_current::piece_idx#2 current_movedown_slow#1 game_over#52 render_next::next_piece_char#0 render_next::l#7 render_next::next_piece_gfx#2 render_next::screen_next_area#5 render_next::c#2 render_next::cell#0 ] main:11::render_next:65 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 render_next::next_piece_char#0 render_next::l#7 render_next::next_piece_gfx#2 render_next::screen_next_area#5 render_next::c#2 render_next::cell#0 ] ) always clobbers reg byte a reg byte y +Statement [119] *((byte*) render_next::screen_next_area#5) ← (byte) 0 [ render_next::next_piece_char#0 render_next::l#7 render_next::next_piece_gfx#1 render_next::screen_next_area#5 render_next::c#2 ] ( main:11::render_next:35 [ score_bcd current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 play_spawn_current::piece_idx#2 current_movedown_slow#1 game_over#52 render_next::next_piece_char#0 render_next::l#7 render_next::next_piece_gfx#1 render_next::screen_next_area#5 render_next::c#2 ] main:11::render_next:65 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 render_next::next_piece_char#0 render_next::l#7 render_next::next_piece_gfx#1 render_next::screen_next_area#5 render_next::c#2 ] ) always clobbers reg byte a reg byte y +Statement [123] (byte*) render_next::screen_next_area#4 ← (byte*) render_next::screen_next_area#3 + (byte) $24 [ render_next::next_piece_char#0 render_next::l#7 render_next::next_piece_gfx#1 render_next::screen_next_area#4 ] ( main:11::render_next:35 [ score_bcd current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 play_spawn_current::piece_idx#2 current_movedown_slow#1 game_over#52 render_next::next_piece_char#0 render_next::l#7 render_next::next_piece_gfx#1 render_next::screen_next_area#4 ] main:11::render_next:65 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 render_next::next_piece_char#0 render_next::l#7 render_next::next_piece_gfx#1 render_next::screen_next_area#4 ] ) always clobbers reg byte a +Statement [127] *((byte*) render_next::screen_next_area#5) ← (byte) render_next::next_piece_char#0 [ render_next::next_piece_char#0 render_next::l#7 render_next::next_piece_gfx#1 render_next::screen_next_area#5 render_next::c#2 ] ( main:11::render_next:35 [ score_bcd current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 play_spawn_current::piece_idx#2 current_movedown_slow#1 game_over#52 render_next::next_piece_char#0 render_next::l#7 render_next::next_piece_gfx#1 render_next::screen_next_area#5 render_next::c#2 ] main:11::render_next:65 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 render_next::next_piece_char#0 render_next::l#7 render_next::next_piece_gfx#1 render_next::screen_next_area#5 render_next::c#2 ] ) always clobbers reg byte a reg byte y +Statement [132] (byte) render_moving::i#1 ← (byte) render_moving::i#3 + (byte) 4 [ render_screen_render#33 current_xpos#59 current_piece_gfx#64 current_piece_char#68 render_moving::ypos#2 render_moving::l#4 render_moving::i#1 ] ( main:11::render_moving:33 [ score_bcd current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 play_spawn_current::piece_idx#2 current_movedown_slow#1 game_over#52 render_screen_render#33 current_xpos#59 current_piece_gfx#64 current_piece_char#68 render_moving::ypos#2 render_moving::l#4 render_moving::i#1 ] main:11::render_moving:62 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 render_screen_render#33 current_xpos#59 current_piece_gfx#64 current_piece_char#68 render_moving::ypos#2 render_moving::l#4 render_moving::i#1 ] ) always clobbers reg byte a +Statement [138] (byte~) render_moving::$1 ← (byte) render_screen_render#33 + (byte) render_moving::ypos#2 [ render_screen_render#33 current_xpos#59 current_piece_gfx#64 current_piece_char#68 render_moving::ypos#2 render_moving::i#3 render_moving::l#4 render_moving::$1 ] ( main:11::render_moving:33 [ score_bcd current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 play_spawn_current::piece_idx#2 current_movedown_slow#1 game_over#52 render_screen_render#33 current_xpos#59 current_piece_gfx#64 current_piece_char#68 render_moving::ypos#2 render_moving::i#3 render_moving::l#4 render_moving::$1 ] main:11::render_moving:62 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 render_screen_render#33 current_xpos#59 current_piece_gfx#64 current_piece_char#68 render_moving::ypos#2 render_moving::i#3 render_moving::l#4 render_moving::$1 ] ) always clobbers reg byte a +Statement [139] (byte~) render_moving::$6 ← (byte~) render_moving::$1 << (byte) 1 [ render_screen_render#33 current_xpos#59 current_piece_gfx#64 current_piece_char#68 render_moving::ypos#2 render_moving::i#3 render_moving::l#4 render_moving::$6 ] ( main:11::render_moving:33 [ score_bcd current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 play_spawn_current::piece_idx#2 current_movedown_slow#1 game_over#52 render_screen_render#33 current_xpos#59 current_piece_gfx#64 current_piece_char#68 render_moving::ypos#2 render_moving::i#3 render_moving::l#4 render_moving::$6 ] main:11::render_moving:62 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 render_screen_render#33 current_xpos#59 current_piece_gfx#64 current_piece_char#68 render_moving::ypos#2 render_moving::i#3 render_moving::l#4 render_moving::$6 ] ) always clobbers reg byte a +Statement [140] (byte*) render_moving::screen_line#0 ← *((const byte**) screen_lines_1 + (byte~) render_moving::$6) [ render_screen_render#33 current_xpos#59 current_piece_gfx#64 current_piece_char#68 render_moving::ypos#2 render_moving::i#3 render_moving::l#4 render_moving::screen_line#0 ] ( main:11::render_moving:33 [ score_bcd current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 play_spawn_current::piece_idx#2 current_movedown_slow#1 game_over#52 render_screen_render#33 current_xpos#59 current_piece_gfx#64 current_piece_char#68 render_moving::ypos#2 render_moving::i#3 render_moving::l#4 render_moving::screen_line#0 ] main:11::render_moving:62 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 render_screen_render#33 current_xpos#59 current_piece_gfx#64 current_piece_char#68 render_moving::ypos#2 render_moving::i#3 render_moving::l#4 render_moving::screen_line#0 ] ) always clobbers reg byte a +Statement [143] (byte) render_moving::current_cell#0 ← *((byte*) current_piece_gfx#64 + (byte) render_moving::i#4) [ render_screen_render#33 current_xpos#59 current_piece_gfx#64 current_piece_char#68 render_moving::ypos#2 render_moving::l#4 render_moving::screen_line#0 render_moving::i#4 render_moving::xpos#2 render_moving::c#2 render_moving::current_cell#0 ] ( main:11::render_moving:33 [ score_bcd current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 play_spawn_current::piece_idx#2 current_movedown_slow#1 game_over#52 render_screen_render#33 current_xpos#59 current_piece_gfx#64 current_piece_char#68 render_moving::ypos#2 render_moving::l#4 render_moving::screen_line#0 render_moving::i#4 render_moving::xpos#2 render_moving::c#2 render_moving::current_cell#0 ] main:11::render_moving:62 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 render_screen_render#33 current_xpos#59 current_piece_gfx#64 current_piece_char#68 render_moving::ypos#2 render_moving::l#4 render_moving::screen_line#0 render_moving::i#4 render_moving::xpos#2 render_moving::c#2 render_moving::current_cell#0 ] ) always clobbers reg byte a +Statement [146] *((byte*) render_moving::screen_line#0 + (byte) render_moving::xpos#2) ← (byte) current_piece_char#68 [ render_screen_render#33 current_xpos#59 current_piece_gfx#64 current_piece_char#68 render_moving::ypos#2 render_moving::l#4 render_moving::i#2 render_moving::screen_line#0 render_moving::xpos#2 render_moving::c#2 ] ( main:11::render_moving:33 [ score_bcd current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 play_spawn_current::piece_idx#2 current_movedown_slow#1 game_over#52 render_screen_render#33 current_xpos#59 current_piece_gfx#64 current_piece_char#68 render_moving::ypos#2 render_moving::l#4 render_moving::i#2 render_moving::screen_line#0 render_moving::xpos#2 render_moving::c#2 ] main:11::render_moving:62 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 render_screen_render#33 current_xpos#59 current_piece_gfx#64 current_piece_char#68 render_moving::ypos#2 render_moving::l#4 render_moving::i#2 render_moving::screen_line#0 render_moving::xpos#2 render_moving::c#2 ] ) always clobbers reg byte a +Statement [152] (byte~) render_playfield::$0 ← (byte) render_screen_render#22 + (byte) render_playfield::l#2 [ render_screen_render#22 render_playfield::l#2 render_playfield::i#3 render_playfield::$0 ] ( main:11::render_playfield:28 [ score_bcd current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 play_spawn_current::piece_idx#2 current_movedown_slow#1 game_over#52 render_screen_render#22 render_playfield::l#2 render_playfield::i#3 render_playfield::$0 ] main:11::render_playfield:56 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 render_screen_render#22 render_playfield::l#2 render_playfield::i#3 render_playfield::$0 ] ) always clobbers reg byte a +Statement [153] (byte~) render_playfield::$3 ← (byte~) render_playfield::$0 << (byte) 1 [ render_screen_render#22 render_playfield::l#2 render_playfield::i#3 render_playfield::$3 ] ( main:11::render_playfield:28 [ score_bcd current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 play_spawn_current::piece_idx#2 current_movedown_slow#1 game_over#52 render_screen_render#22 render_playfield::l#2 render_playfield::i#3 render_playfield::$3 ] main:11::render_playfield:56 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 render_screen_render#22 render_playfield::l#2 render_playfield::i#3 render_playfield::$3 ] ) always clobbers reg byte a +Statement [154] (byte*) render_playfield::screen_line#0 ← *((const byte**) screen_lines_1 + (byte~) render_playfield::$3) [ render_screen_render#22 render_playfield::l#2 render_playfield::i#3 render_playfield::screen_line#0 ] ( main:11::render_playfield:28 [ score_bcd current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 play_spawn_current::piece_idx#2 current_movedown_slow#1 game_over#52 render_screen_render#22 render_playfield::l#2 render_playfield::i#3 render_playfield::screen_line#0 ] main:11::render_playfield:56 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 render_screen_render#22 render_playfield::l#2 render_playfield::i#3 render_playfield::screen_line#0 ] ) always clobbers reg byte a +Statement [156] *((byte*) render_playfield::screen_line#2) ← *((const byte*) playfield + (byte) render_playfield::i#2) [ render_screen_render#22 render_playfield::l#2 render_playfield::i#2 render_playfield::screen_line#2 render_playfield::c#2 ] ( main:11::render_playfield:28 [ score_bcd current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 play_spawn_current::piece_idx#2 current_movedown_slow#1 game_over#52 render_screen_render#22 render_playfield::l#2 render_playfield::i#2 render_playfield::screen_line#2 render_playfield::c#2 ] main:11::render_playfield:56 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#16 current_orientation#17 current_piece_gfx#18 current_xpos#19 current_ypos#19 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 render_screen_render#22 render_playfield::l#2 render_playfield::i#2 render_playfield::screen_line#2 render_playfield::c#2 ] ) always clobbers reg byte a reg byte y +Statement [168] if((byte) game_over#15==(byte) 0) goto play_movement::@1 [ score_bcd current_movedown_slow#21 current_piece#15 current_piece_char#16 current_ypos#19 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_orientation#20 current_piece_gfx#20 current_xpos#22 ] ( main:11::play_movement:51 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 score_bcd current_movedown_slow#21 current_piece#15 current_piece_char#16 current_ypos#19 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_orientation#20 current_piece_gfx#20 current_xpos#22 ] ) always clobbers reg byte a +Statement [175] (byte) play_movement::render#2 ← (byte) play_movement::render#1 + (byte~) play_movement::$3 [ score_bcd current_movedown_slow#21 current_piece#15 current_piece_char#16 current_ypos#19 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 play_movement::key_event#0 current_orientation#20 current_piece_gfx#20 current_xpos#26 play_movement::render#2 ] ( main:11::play_movement:51 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 score_bcd current_movedown_slow#21 current_piece#15 current_piece_char#16 current_ypos#19 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 play_movement::key_event#0 current_orientation#20 current_piece_gfx#20 current_xpos#26 play_movement::render#2 ] ) always clobbers reg byte a +Statement [180] (byte) play_movement::return#0 ← (byte) play_movement::render#2 + (byte~) play_movement::$4 [ score_bcd current_movedown_slow#21 current_piece#15 current_piece_char#16 current_ypos#19 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 play_movement::return#0 current_orientation#25 current_piece_gfx#21 current_xpos#26 ] ( main:11::play_movement:51 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 score_bcd current_movedown_slow#21 current_piece#15 current_piece_char#16 current_ypos#19 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 play_movement::return#0 current_orientation#25 current_piece_gfx#21 current_xpos#26 ] ) always clobbers reg byte a +Statement [185] (byte~) play_move_rotate::$5 ← (byte) current_orientation#20 + (byte) $10 [ current_piece#15 current_ypos#19 current_orientation#20 current_piece_gfx#20 current_xpos#26 play_move_rotate::$5 ] ( main:11::play_movement:51::play_move_rotate:177 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 score_bcd current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 play_movement::render#2 current_piece#15 current_ypos#19 current_orientation#20 current_piece_gfx#20 current_xpos#26 play_move_rotate::$5 ] ) always clobbers reg byte a +Statement [191] (byte*) current_piece#98 ← (byte*) current_piece#15 [ current_piece#15 current_ypos#19 current_orientation#20 current_piece_gfx#20 current_xpos#26 play_move_rotate::orientation#3 play_collision::xpos#3 play_collision::ypos#3 play_collision::orientation#3 current_piece#98 ] ( main:11::play_movement:51::play_move_rotate:177 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 score_bcd current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 play_movement::render#2 current_piece#15 current_ypos#19 current_orientation#20 current_piece_gfx#20 current_xpos#26 play_move_rotate::orientation#3 play_collision::xpos#3 play_collision::ypos#3 play_collision::orientation#3 current_piece#98 ] ) always clobbers reg byte a +Statement [197] (byte*) current_piece_gfx#7 ← (byte*) current_piece#15 + (byte) current_orientation#7 [ current_piece#15 current_ypos#19 current_xpos#26 current_orientation#7 current_piece_gfx#7 ] ( main:11::play_movement:51::play_move_rotate:177 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 score_bcd current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 play_movement::render#2 current_piece#15 current_ypos#19 current_xpos#26 current_orientation#7 current_piece_gfx#7 ] ) always clobbers reg byte a +Statement [198] (byte~) play_move_rotate::$7 ← (byte) current_orientation#20 - (byte) $10 [ current_piece#15 current_ypos#19 current_orientation#20 current_piece_gfx#20 current_xpos#26 play_move_rotate::$7 ] ( main:11::play_movement:51::play_move_rotate:177 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 score_bcd current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 play_movement::render#2 current_piece#15 current_ypos#19 current_orientation#20 current_piece_gfx#20 current_xpos#26 play_move_rotate::$7 ] ) always clobbers reg byte a +Statement [201] (byte*) play_collision::piece_gfx#0 ← (byte*) current_piece#17 + (byte) play_collision::orientation#5 [ play_collision::yp#0 play_collision::xpos#6 play_collision::piece_gfx#0 ] ( main:11::play_movement:51::play_move_rotate:177::play_collision:192 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 score_bcd current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 play_movement::render#2 current_piece#15 current_ypos#19 current_orientation#20 current_piece_gfx#20 current_xpos#26 play_move_rotate::orientation#3 play_collision::yp#0 play_collision::xpos#6 play_collision::piece_gfx#0 ] main:11::play_movement:51::play_move_leftright:172::play_collision:230 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 score_bcd current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#20 current_piece#15 current_ypos#19 current_orientation#20 current_xpos#22 play_collision::yp#0 play_collision::xpos#6 play_collision::piece_gfx#0 ] main:11::play_movement:51::play_move_leftright:172::play_collision:241 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 score_bcd current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#20 current_piece#15 current_ypos#19 current_orientation#20 current_xpos#22 play_collision::yp#0 play_collision::xpos#6 play_collision::piece_gfx#0 ] main:11::play_movement:51::play_move_down:165::play_collision:265 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 score_bcd current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 lines_bcd#19 level#10 level_bcd#11 play_collision::yp#0 play_collision::xpos#6 play_collision::piece_gfx#0 ] main:11::play_spawn_current:24::play_collision:294 [ score_bcd current_movedown_slow#1 current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 game_over#65 play_collision::yp#0 play_collision::xpos#6 play_collision::piece_gfx#0 ] main:11::play_spawn_current:26::play_collision:294 [ score_bcd current_movedown_slow#1 current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 game_over#65 play_collision::yp#0 play_collision::xpos#6 play_collision::piece_gfx#0 ] main:11::play_movement:51::play_move_down:165::play_spawn_current:278::play_collision:294 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 score_bcd lines_bcd#17 level#19 current_movedown_slow#23 level_bcd#19 current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 game_over#65 play_collision::yp#0 play_collision::xpos#6 play_collision::piece_gfx#0 ] ) always clobbers reg byte a +Statement [203] (byte~) play_collision::$14 ← (byte) play_collision::yp#2 << (byte) 1 [ play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::i#3 play_collision::l#6 play_collision::$14 ] ( main:11::play_movement:51::play_move_rotate:177::play_collision:192 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 score_bcd current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 play_movement::render#2 current_piece#15 current_ypos#19 current_orientation#20 current_piece_gfx#20 current_xpos#26 play_move_rotate::orientation#3 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::i#3 play_collision::l#6 play_collision::$14 ] main:11::play_movement:51::play_move_leftright:172::play_collision:230 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 score_bcd current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#20 current_piece#15 current_ypos#19 current_orientation#20 current_xpos#22 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::i#3 play_collision::l#6 play_collision::$14 ] main:11::play_movement:51::play_move_leftright:172::play_collision:241 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 score_bcd current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#20 current_piece#15 current_ypos#19 current_orientation#20 current_xpos#22 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::i#3 play_collision::l#6 play_collision::$14 ] main:11::play_movement:51::play_move_down:165::play_collision:265 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 score_bcd current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 lines_bcd#19 level#10 level_bcd#11 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::i#3 play_collision::l#6 play_collision::$14 ] main:11::play_spawn_current:24::play_collision:294 [ score_bcd current_movedown_slow#1 current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::i#3 play_collision::l#6 play_collision::$14 ] main:11::play_spawn_current:26::play_collision:294 [ score_bcd current_movedown_slow#1 current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::i#3 play_collision::l#6 play_collision::$14 ] main:11::play_movement:51::play_move_down:165::play_spawn_current:278::play_collision:294 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 score_bcd lines_bcd#17 level#19 current_movedown_slow#23 level_bcd#19 current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::i#3 play_collision::l#6 play_collision::$14 ] ) always clobbers reg byte a +Statement [204] (byte*) play_collision::playfield_line#0 ← *((const byte**) playfield_lines + (byte~) play_collision::$14) [ play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] ( main:11::play_movement:51::play_move_rotate:177::play_collision:192 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 score_bcd current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 play_movement::render#2 current_piece#15 current_ypos#19 current_orientation#20 current_piece_gfx#20 current_xpos#26 play_move_rotate::orientation#3 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] main:11::play_movement:51::play_move_leftright:172::play_collision:230 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 score_bcd current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#20 current_piece#15 current_ypos#19 current_orientation#20 current_xpos#22 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] main:11::play_movement:51::play_move_leftright:172::play_collision:241 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 score_bcd current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#20 current_piece#15 current_ypos#19 current_orientation#20 current_xpos#22 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] main:11::play_movement:51::play_move_down:165::play_collision:265 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 score_bcd current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 lines_bcd#19 level#10 level_bcd#11 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] main:11::play_spawn_current:24::play_collision:294 [ score_bcd current_movedown_slow#1 current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] main:11::play_spawn_current:26::play_collision:294 [ score_bcd current_movedown_slow#1 current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] main:11::play_movement:51::play_move_down:165::play_spawn_current:278::play_collision:294 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 score_bcd lines_bcd#17 level#19 current_movedown_slow#23 level_bcd#19 current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] ) always clobbers reg byte a +Statement [208] if(*((byte*) play_collision::piece_gfx#0 + (byte) play_collision::i#2)==(byte) 0) goto play_collision::@3 [ play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::xp#2 play_collision::c#2 play_collision::i#1 ] ( main:11::play_movement:51::play_move_rotate:177::play_collision:192 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 score_bcd current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 play_movement::render#2 current_piece#15 current_ypos#19 current_orientation#20 current_piece_gfx#20 current_xpos#26 play_move_rotate::orientation#3 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::xp#2 play_collision::c#2 play_collision::i#1 ] main:11::play_movement:51::play_move_leftright:172::play_collision:230 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 score_bcd current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#20 current_piece#15 current_ypos#19 current_orientation#20 current_xpos#22 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::xp#2 play_collision::c#2 play_collision::i#1 ] main:11::play_movement:51::play_move_leftright:172::play_collision:241 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 score_bcd current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#20 current_piece#15 current_ypos#19 current_orientation#20 current_xpos#22 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::xp#2 play_collision::c#2 play_collision::i#1 ] main:11::play_movement:51::play_move_down:165::play_collision:265 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 score_bcd current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 lines_bcd#19 level#10 level_bcd#11 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::xp#2 play_collision::c#2 play_collision::i#1 ] main:11::play_spawn_current:24::play_collision:294 [ score_bcd current_movedown_slow#1 current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::xp#2 play_collision::c#2 play_collision::i#1 ] main:11::play_spawn_current:26::play_collision:294 [ score_bcd current_movedown_slow#1 current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::xp#2 play_collision::c#2 play_collision::i#1 ] main:11::play_movement:51::play_move_down:165::play_spawn_current:278::play_collision:294 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 score_bcd lines_bcd#17 level#19 current_movedown_slow#23 level_bcd#19 current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::xp#2 play_collision::c#2 play_collision::i#1 ] ) always clobbers reg byte a +Statement [210] (byte~) play_collision::$5 ← (byte) play_collision::xp#2 & (byte) $80 [ play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::xp#2 play_collision::c#2 play_collision::i#1 play_collision::$5 ] ( main:11::play_movement:51::play_move_rotate:177::play_collision:192 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 score_bcd current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 play_movement::render#2 current_piece#15 current_ypos#19 current_orientation#20 current_piece_gfx#20 current_xpos#26 play_move_rotate::orientation#3 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::xp#2 play_collision::c#2 play_collision::i#1 play_collision::$5 ] main:11::play_movement:51::play_move_leftright:172::play_collision:230 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 score_bcd current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#20 current_piece#15 current_ypos#19 current_orientation#20 current_xpos#22 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::xp#2 play_collision::c#2 play_collision::i#1 play_collision::$5 ] main:11::play_movement:51::play_move_leftright:172::play_collision:241 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 score_bcd current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#20 current_piece#15 current_ypos#19 current_orientation#20 current_xpos#22 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::xp#2 play_collision::c#2 play_collision::i#1 play_collision::$5 ] main:11::play_movement:51::play_move_down:165::play_collision:265 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 score_bcd current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 lines_bcd#19 level#10 level_bcd#11 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::xp#2 play_collision::c#2 play_collision::i#1 play_collision::$5 ] main:11::play_spawn_current:24::play_collision:294 [ score_bcd current_movedown_slow#1 current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::xp#2 play_collision::c#2 play_collision::i#1 play_collision::$5 ] main:11::play_spawn_current:26::play_collision:294 [ score_bcd current_movedown_slow#1 current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::xp#2 play_collision::c#2 play_collision::i#1 play_collision::$5 ] main:11::play_movement:51::play_move_down:165::play_spawn_current:278::play_collision:294 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 score_bcd lines_bcd#17 level#19 current_movedown_slow#23 level_bcd#19 current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::xp#2 play_collision::c#2 play_collision::i#1 play_collision::$5 ] ) always clobbers reg byte a +Statement [213] if(*((byte*) play_collision::playfield_line#0 + (byte) play_collision::xp#2)==(byte) 0) goto play_collision::@3 [ play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::xp#2 play_collision::c#2 play_collision::i#1 ] ( main:11::play_movement:51::play_move_rotate:177::play_collision:192 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 score_bcd current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 play_movement::render#2 current_piece#15 current_ypos#19 current_orientation#20 current_piece_gfx#20 current_xpos#26 play_move_rotate::orientation#3 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::xp#2 play_collision::c#2 play_collision::i#1 ] main:11::play_movement:51::play_move_leftright:172::play_collision:230 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 score_bcd current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#20 current_piece#15 current_ypos#19 current_orientation#20 current_xpos#22 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::xp#2 play_collision::c#2 play_collision::i#1 ] main:11::play_movement:51::play_move_leftright:172::play_collision:241 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 score_bcd current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#20 current_piece#15 current_ypos#19 current_orientation#20 current_xpos#22 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::xp#2 play_collision::c#2 play_collision::i#1 ] main:11::play_movement:51::play_move_down:165::play_collision:265 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 score_bcd current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 lines_bcd#19 level#10 level_bcd#11 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::xp#2 play_collision::c#2 play_collision::i#1 ] main:11::play_spawn_current:24::play_collision:294 [ score_bcd current_movedown_slow#1 current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::xp#2 play_collision::c#2 play_collision::i#1 ] main:11::play_spawn_current:26::play_collision:294 [ score_bcd current_movedown_slow#1 current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::xp#2 play_collision::c#2 play_collision::i#1 ] main:11::play_movement:51::play_move_down:165::play_spawn_current:278::play_collision:294 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 score_bcd lines_bcd#17 level#19 current_movedown_slow#23 level_bcd#19 current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::yp#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::xp#2 play_collision::c#2 play_collision::i#1 ] ) always clobbers reg byte a +Statement [229] (byte*) current_piece#97 ← (byte*) current_piece#15 [ current_piece#15 current_ypos#19 current_orientation#20 current_xpos#22 current_piece#97 play_collision::orientation#2 play_collision::ypos#2 play_collision::xpos#2 ] ( main:11::play_movement:51::play_move_leftright:172 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 score_bcd current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#20 current_piece#15 current_ypos#19 current_orientation#20 current_xpos#22 current_piece#97 play_collision::orientation#2 play_collision::ypos#2 play_collision::xpos#2 ] ) always clobbers reg byte a +Statement [240] (byte*) current_piece#96 ← (byte*) current_piece#15 [ current_piece#15 current_ypos#19 current_orientation#20 current_xpos#22 current_piece#96 play_collision::orientation#1 play_collision::ypos#1 play_collision::xpos#1 ] ( main:11::play_movement:51::play_move_leftright:172 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 score_bcd current_movedown_slow#21 current_piece_char#16 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 level#17 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#20 current_piece#15 current_ypos#19 current_orientation#20 current_xpos#22 current_piece#96 play_collision::orientation#1 play_collision::ypos#1 play_collision::xpos#1 ] ) always clobbers reg byte a +Statement [254] if((byte) current_movedown_counter#12<(const byte) current_movedown_fast) goto play_move_down::@2 [ score_bcd current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 lines_bcd#19 level#10 level_bcd#11 current_movedown_counter#12 play_move_down::movedown#10 ] ( main:11::play_movement:51::play_move_down:165 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 score_bcd current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 lines_bcd#19 level#10 level_bcd#11 current_movedown_counter#12 play_move_down::movedown#10 ] ) always clobbers reg byte a +Statement [257] if((byte) current_movedown_counter#12<(byte) current_movedown_slow#14) goto play_move_down::@3 [ score_bcd current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 lines_bcd#19 level#10 level_bcd#11 current_movedown_counter#12 play_move_down::movedown#7 ] ( main:11::play_movement:51::play_move_down:165 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 score_bcd current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 lines_bcd#19 level#10 level_bcd#11 current_movedown_counter#12 play_move_down::movedown#7 ] ) always clobbers reg byte a +Statement [264] (byte*) current_piece#95 ← (byte*) current_piece#10 [ score_bcd current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 lines_bcd#19 level#10 level_bcd#11 current_piece#95 play_collision::orientation#0 play_collision::ypos#0 play_collision::xpos#0 ] ( main:11::play_movement:51::play_move_down:165 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 score_bcd current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 lines_bcd#19 level#10 level_bcd#11 current_piece#95 play_collision::orientation#0 play_collision::ypos#0 play_collision::xpos#0 ] ) always clobbers reg byte a +Statement [279] (byte*) current_piece#92 ← (byte*)*((const word*) PIECES + (byte~) play_spawn_current::$7) [ score_bcd current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 play_spawn_current::piece_idx#2 game_over#52 current_piece#92 lines_bcd#17 level#19 current_movedown_slow#23 level_bcd#19 ] ( main:11::play_movement:51::play_move_down:165 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 score_bcd current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 play_spawn_current::piece_idx#2 game_over#52 current_piece#92 lines_bcd#17 level#19 current_movedown_slow#23 level_bcd#19 ] ) always clobbers reg byte a +Statement [280] (byte*) current_piece_gfx#116 ← (byte*)*((const word*) PIECES + (byte~) play_spawn_current::$7) [ score_bcd current_ypos#6 current_xpos#100 current_piece_char#5 play_spawn_current::piece_idx#2 game_over#52 current_piece#92 current_piece_gfx#116 lines_bcd#17 level#19 current_movedown_slow#23 level_bcd#19 ] ( main:11::play_movement:51::play_move_down:165 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 score_bcd current_ypos#6 current_xpos#100 current_piece_char#5 play_spawn_current::piece_idx#2 game_over#52 current_piece#92 current_piece_gfx#116 lines_bcd#17 level#19 current_movedown_slow#23 level_bcd#19 ] ) always clobbers reg byte a +Statement [287] (byte~) play_spawn_current::$7 ← (byte) play_spawn_current::current_piece_idx#0 << (byte) 1 [ play_spawn_current::$7 game_over#65 play_spawn_current::current_piece_idx#0 ] ( main:11::play_spawn_current:24 [ score_bcd current_movedown_slow#1 play_spawn_current::$7 game_over#65 play_spawn_current::current_piece_idx#0 ] main:11::play_spawn_current:26 [ score_bcd current_movedown_slow#1 play_spawn_current::$7 game_over#65 play_spawn_current::current_piece_idx#0 ] main:11::play_movement:51::play_move_down:165::play_spawn_current:278 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 score_bcd lines_bcd#17 level#19 current_movedown_slow#23 level_bcd#19 play_spawn_current::$7 game_over#65 play_spawn_current::current_piece_idx#0 ] ) always clobbers reg byte a +Statement [288] (byte) current_piece_char#5 ← *((const byte*) PIECES_CHARS + (byte) play_spawn_current::current_piece_idx#0) [ play_spawn_current::$7 current_piece_char#5 game_over#65 play_spawn_current::current_piece_idx#0 ] ( main:11::play_spawn_current:24 [ score_bcd current_movedown_slow#1 play_spawn_current::$7 current_piece_char#5 game_over#65 play_spawn_current::current_piece_idx#0 ] main:11::play_spawn_current:26 [ score_bcd current_movedown_slow#1 play_spawn_current::$7 current_piece_char#5 game_over#65 play_spawn_current::current_piece_idx#0 ] main:11::play_movement:51::play_move_down:165::play_spawn_current:278 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 score_bcd lines_bcd#17 level#19 current_movedown_slow#23 level_bcd#19 play_spawn_current::$7 current_piece_char#5 game_over#65 play_spawn_current::current_piece_idx#0 ] ) always clobbers reg byte a +Statement [289] (byte) current_xpos#100 ← *((const byte*) PIECES_START_X + (byte) play_spawn_current::current_piece_idx#0) [ current_xpos#100 play_spawn_current::$7 current_piece_char#5 game_over#65 play_spawn_current::current_piece_idx#0 ] ( main:11::play_spawn_current:24 [ score_bcd current_movedown_slow#1 current_xpos#100 play_spawn_current::$7 current_piece_char#5 game_over#65 play_spawn_current::current_piece_idx#0 ] main:11::play_spawn_current:26 [ score_bcd current_movedown_slow#1 current_xpos#100 play_spawn_current::$7 current_piece_char#5 game_over#65 play_spawn_current::current_piece_idx#0 ] main:11::play_movement:51::play_move_down:165::play_spawn_current:278 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 score_bcd lines_bcd#17 level#19 current_movedown_slow#23 level_bcd#19 current_xpos#100 play_spawn_current::$7 current_piece_char#5 game_over#65 play_spawn_current::current_piece_idx#0 ] ) always clobbers reg byte a +Statement [290] (byte) current_ypos#6 ← *((const byte*) PIECES_START_Y + (byte) play_spawn_current::current_piece_idx#0) [ current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 game_over#65 ] ( main:11::play_spawn_current:24 [ score_bcd current_movedown_slow#1 current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 game_over#65 ] main:11::play_spawn_current:26 [ score_bcd current_movedown_slow#1 current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 game_over#65 ] main:11::play_movement:51::play_move_down:165::play_spawn_current:278 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 score_bcd lines_bcd#17 level#19 current_movedown_slow#23 level_bcd#19 current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 game_over#65 ] ) always clobbers reg byte a +Statement [293] (byte*) current_piece#99 ← (byte*)*((const word*) PIECES + (byte~) play_spawn_current::$7) [ current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 current_piece#99 play_collision::ypos#4 play_collision::xpos#4 game_over#65 ] ( main:11::play_spawn_current:24 [ score_bcd current_movedown_slow#1 current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 current_piece#99 play_collision::ypos#4 play_collision::xpos#4 game_over#65 ] main:11::play_spawn_current:26 [ score_bcd current_movedown_slow#1 current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 current_piece#99 play_collision::ypos#4 play_collision::xpos#4 game_over#65 ] main:11::play_movement:51::play_move_down:165::play_spawn_current:278 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 score_bcd lines_bcd#17 level#19 current_movedown_slow#23 level_bcd#19 current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 current_piece#99 play_collision::ypos#4 play_collision::xpos#4 game_over#65 ] ) always clobbers reg byte a +Statement [301] if((byte) play_spawn_current::piece_idx#2==(byte) 7) goto play_spawn_current::sid_rnd1 [ current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 play_spawn_current::piece_idx#2 game_over#52 ] ( main:11::play_spawn_current:24 [ score_bcd current_movedown_slow#1 current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 play_spawn_current::piece_idx#2 game_over#52 ] main:11::play_spawn_current:26 [ score_bcd current_movedown_slow#1 current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 play_spawn_current::piece_idx#2 game_over#52 ] main:11::play_movement:51::play_move_down:165::play_spawn_current:278 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 score_bcd lines_bcd#17 level#19 current_movedown_slow#23 level_bcd#19 current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 play_spawn_current::piece_idx#2 game_over#52 ] ) always clobbers reg byte a +Statement [304] (byte) play_spawn_current::piece_idx#1 ← (byte) play_spawn_current::sid_rnd1_return#0 & (byte) 7 [ current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 game_over#52 play_spawn_current::piece_idx#1 ] ( main:11::play_spawn_current:24 [ score_bcd current_movedown_slow#1 current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 game_over#52 play_spawn_current::piece_idx#1 ] main:11::play_spawn_current:26 [ score_bcd current_movedown_slow#1 current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 game_over#52 play_spawn_current::piece_idx#1 ] main:11::play_movement:51::play_move_down:165::play_spawn_current:278 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 score_bcd lines_bcd#17 level#19 current_movedown_slow#23 level_bcd#19 current_ypos#6 current_xpos#100 play_spawn_current::$7 current_piece_char#5 game_over#52 play_spawn_current::piece_idx#1 ] ) always clobbers reg byte a +Statement [306] (byte~) play_update_score::$2 ← < (word) lines_bcd#19 [ score_bcd current_movedown_slow#14 lines_bcd#19 level#10 level_bcd#11 play_update_score::removed#0 play_update_score::$2 ] ( main:11::play_movement:51::play_move_down:165::play_update_score:276 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 game_over#10 next_piece_idx#10 score_bcd current_movedown_slow#14 lines_bcd#19 level#10 level_bcd#11 play_update_score::removed#0 play_update_score::$2 ] ) always clobbers reg byte a +Statement [308] (byte~) play_update_score::$9 ← (byte) play_update_score::removed#0 << (byte) 2 [ score_bcd current_movedown_slow#14 lines_bcd#19 level#10 level_bcd#11 play_update_score::removed#0 play_update_score::lines_before#0 play_update_score::$9 ] ( main:11::play_movement:51::play_move_down:165::play_update_score:276 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 game_over#10 next_piece_idx#10 score_bcd current_movedown_slow#14 lines_bcd#19 level#10 level_bcd#11 play_update_score::removed#0 play_update_score::lines_before#0 play_update_score::$9 ] ) always clobbers reg byte a +Statement [309] (dword) play_update_score::add_bcd#0 ← *((const dword*) score_add_bcd + (byte~) play_update_score::$9) [ score_bcd current_movedown_slow#14 lines_bcd#19 level#10 level_bcd#11 play_update_score::removed#0 play_update_score::lines_before#0 play_update_score::add_bcd#0 ] ( main:11::play_movement:51::play_move_down:165::play_update_score:276 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 game_over#10 next_piece_idx#10 score_bcd current_movedown_slow#14 lines_bcd#19 level#10 level_bcd#11 play_update_score::removed#0 play_update_score::lines_before#0 play_update_score::add_bcd#0 ] ) always clobbers reg byte a +Statement [311] (word) lines_bcd#29 ← (word) lines_bcd#19 + (byte) play_update_score::removed#0 [ score_bcd current_movedown_slow#14 level#10 level_bcd#11 play_update_score::lines_before#0 play_update_score::add_bcd#0 lines_bcd#29 ] ( main:11::play_movement:51::play_move_down:165::play_update_score:276 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 game_over#10 next_piece_idx#10 score_bcd current_movedown_slow#14 level#10 level_bcd#11 play_update_score::lines_before#0 play_update_score::add_bcd#0 lines_bcd#29 ] ) always clobbers reg byte a +Statement [312] (dword) score_bcd ← (dword) score_bcd + (dword) play_update_score::add_bcd#0 [ score_bcd current_movedown_slow#14 level#10 level_bcd#11 play_update_score::lines_before#0 lines_bcd#29 ] ( main:11::play_movement:51::play_move_down:165::play_update_score:276 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 game_over#10 next_piece_idx#10 score_bcd current_movedown_slow#14 level#10 level_bcd#11 play_update_score::lines_before#0 lines_bcd#29 ] ) always clobbers reg byte a +Statement [314] (byte~) play_update_score::$4 ← < (word) lines_bcd#29 [ score_bcd current_movedown_slow#14 level#10 level_bcd#11 play_update_score::lines_before#0 lines_bcd#29 play_update_score::$4 ] ( main:11::play_movement:51::play_move_down:165::play_update_score:276 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 game_over#10 next_piece_idx#10 score_bcd current_movedown_slow#14 level#10 level_bcd#11 play_update_score::lines_before#0 lines_bcd#29 play_update_score::$4 ] ) always clobbers reg byte a +Statement [322] if((byte) level#21>=(byte) $1d+(byte) 1) goto play_increase_level::@1 [ level_bcd#11 level#21 ] ( main:11::play_movement:51::play_move_down:165::play_update_score:276::play_increase_level:318 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 game_over#10 next_piece_idx#10 score_bcd lines_bcd#29 level_bcd#11 level#21 ] ) always clobbers reg byte a +Statement [323] (byte) current_movedown_slow#10 ← *((const byte*) MOVEDOWN_SLOW_SPEEDS + (byte) level#21) [ level_bcd#11 level#21 current_movedown_slow#10 ] ( main:11::play_movement:51::play_move_down:165::play_update_score:276::play_increase_level:318 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 game_over#10 next_piece_idx#10 score_bcd lines_bcd#29 level_bcd#11 level#21 current_movedown_slow#10 ] ) always clobbers reg byte a reg byte y +Statement [326] (byte~) play_increase_level::$1 ← (byte) level_bcd#21 & (byte) $f [ level#21 current_movedown_slow#65 level_bcd#21 play_increase_level::$1 ] ( main:11::play_movement:51::play_move_down:165::play_update_score:276::play_increase_level:318 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 game_over#10 next_piece_idx#10 score_bcd lines_bcd#29 level#21 current_movedown_slow#65 level_bcd#21 play_increase_level::$1 ] ) always clobbers reg byte a +Statement [328] (byte) level_bcd#8 ← (byte) level_bcd#21 + (byte) 6 [ level#21 current_movedown_slow#65 level_bcd#8 ] ( main:11::play_movement:51::play_move_down:165::play_update_score:276::play_increase_level:318 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 game_over#10 next_piece_idx#10 score_bcd lines_bcd#29 level#21 current_movedown_slow#65 level_bcd#8 ] ) always clobbers reg byte a reg byte x +Statement [332] (byte~) play_increase_level::$5 ← (byte) play_increase_level::b#2 << (byte) 2 [ level#21 current_movedown_slow#65 level_bcd#62 play_increase_level::b#2 play_increase_level::$5 ] ( main:11::play_movement:51::play_move_down:165::play_update_score:276::play_increase_level:318 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 game_over#10 next_piece_idx#10 score_bcd lines_bcd#29 level#21 current_movedown_slow#65 level_bcd#62 play_increase_level::b#2 play_increase_level::$5 ] ) always clobbers reg byte a +Statement [333] *((const dword*) score_add_bcd + (byte~) play_increase_level::$5) ← *((const dword*) score_add_bcd + (byte~) play_increase_level::$5) + *((const dword*) SCORE_BASE_BCD + (byte~) play_increase_level::$5) [ level#21 current_movedown_slow#65 level_bcd#62 play_increase_level::b#2 ] ( main:11::play_movement:51::play_move_down:165::play_update_score:276::play_increase_level:318 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 game_over#10 next_piece_idx#10 score_bcd lines_bcd#29 level#21 current_movedown_slow#65 level_bcd#62 play_increase_level::b#2 ] ) always clobbers reg byte a +Statement [351] (byte) play_remove_lines::w#2 ← (byte) play_remove_lines::w#1 + (const byte) PLAYFIELD_COLS [ play_remove_lines::y#8 play_remove_lines::removed#11 play_remove_lines::r#1 play_remove_lines::w#2 ] ( main:11::play_movement:51::play_move_down:165::play_remove_lines:272 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 score_bcd current_movedown_slow#14 game_over#10 next_piece_idx#10 lines_bcd#19 level#10 level_bcd#11 play_remove_lines::y#8 play_remove_lines::removed#11 play_remove_lines::r#1 play_remove_lines::w#2 ] ) always clobbers reg byte a +Statement [359] *((const byte*) playfield + (byte) play_remove_lines::w#6) ← (byte) 0 [ play_remove_lines::removed#8 play_remove_lines::w#6 ] ( main:11::play_movement:51::play_move_down:165::play_remove_lines:272 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 score_bcd current_movedown_slow#14 game_over#10 next_piece_idx#10 lines_bcd#19 level#10 level_bcd#11 play_remove_lines::removed#8 play_remove_lines::w#6 ] ) always clobbers reg byte a +Statement [363] (byte~) play_lock_current::$4 ← (byte) play_lock_current::yp#2 << (byte) 1 [ current_piece_char#10 current_piece_gfx#13 current_xpos#14 play_lock_current::yp#2 play_lock_current::i#3 play_lock_current::l#6 play_lock_current::$4 ] ( main:11::play_movement:51::play_move_down:165::play_lock_current:270 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 score_bcd current_movedown_slow#14 game_over#10 next_piece_idx#10 lines_bcd#19 level#10 level_bcd#11 current_piece_char#10 current_piece_gfx#13 current_xpos#14 play_lock_current::yp#2 play_lock_current::i#3 play_lock_current::l#6 play_lock_current::$4 ] ) always clobbers reg byte a +Statement [364] (byte*) play_lock_current::playfield_line#0 ← *((const byte**) playfield_lines + (byte~) play_lock_current::$4) [ current_piece_char#10 current_piece_gfx#13 current_xpos#14 play_lock_current::yp#2 play_lock_current::i#3 play_lock_current::l#6 play_lock_current::playfield_line#0 ] ( main:11::play_movement:51::play_move_down:165::play_lock_current:270 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 score_bcd current_movedown_slow#14 game_over#10 next_piece_idx#10 lines_bcd#19 level#10 level_bcd#11 current_piece_char#10 current_piece_gfx#13 current_xpos#14 play_lock_current::yp#2 play_lock_current::i#3 play_lock_current::l#6 play_lock_current::playfield_line#0 ] ) always clobbers reg byte a +Statement [368] if(*((byte*) current_piece_gfx#13 + (byte) play_lock_current::i#2)==(byte) 0) goto play_lock_current::@3 [ current_piece_char#10 current_piece_gfx#13 current_xpos#14 play_lock_current::yp#2 play_lock_current::l#6 play_lock_current::playfield_line#0 play_lock_current::xp#2 play_lock_current::c#2 play_lock_current::i#1 ] ( main:11::play_movement:51::play_move_down:165::play_lock_current:270 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 score_bcd current_movedown_slow#14 game_over#10 next_piece_idx#10 lines_bcd#19 level#10 level_bcd#11 current_piece_char#10 current_piece_gfx#13 current_xpos#14 play_lock_current::yp#2 play_lock_current::l#6 play_lock_current::playfield_line#0 play_lock_current::xp#2 play_lock_current::c#2 play_lock_current::i#1 ] ) always clobbers reg byte a +Statement [369] *((byte*) play_lock_current::playfield_line#0 + (byte) play_lock_current::xp#2) ← (byte) current_piece_char#10 [ current_piece_char#10 current_piece_gfx#13 current_xpos#14 play_lock_current::yp#2 play_lock_current::l#6 play_lock_current::playfield_line#0 play_lock_current::xp#2 play_lock_current::c#2 play_lock_current::i#1 ] ( main:11::play_movement:51::play_move_down:165::play_lock_current:270 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 score_bcd current_movedown_slow#14 game_over#10 next_piece_idx#10 lines_bcd#19 level#10 level_bcd#11 current_piece_char#10 current_piece_gfx#13 current_xpos#14 play_lock_current::yp#2 play_lock_current::l#6 play_lock_current::playfield_line#0 play_lock_current::xp#2 play_lock_current::c#2 play_lock_current::i#1 ] ) always clobbers reg byte a +Statement [380] (byte~) keyboard_event_pressed::$0 ← (byte) keyboard_event_pressed::keycode#5 >> (byte) 3 [ keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] ( main:11::play_movement:51::play_move_down:165::keyboard_event_pressed:250 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 score_bcd current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 lines_bcd#19 level#10 level_bcd#11 current_movedown_counter#12 play_move_down::movedown#10 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] main:11::keyboard_event_scan:43::keyboard_event_pressed:402 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 level#10 level_bcd#11 keyboard_events_size#13 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] main:11::keyboard_event_scan:43::keyboard_event_pressed:408 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 level#10 level_bcd#11 keyboard_events_size#13 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] main:11::keyboard_event_scan:43::keyboard_event_pressed:414 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 level#10 level_bcd#11 keyboard_events_size#13 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] main:11::keyboard_event_scan:43::keyboard_event_pressed:420 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 level#10 level_bcd#11 keyboard_events_size#13 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] ) always clobbers reg byte a +Statement [382] (byte~) keyboard_event_pressed::$1 ← (byte) keyboard_event_pressed::keycode#5 & (byte) 7 [ keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] ( main:11::play_movement:51::play_move_down:165::keyboard_event_pressed:250 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 score_bcd current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 lines_bcd#19 level#10 level_bcd#11 current_movedown_counter#12 play_move_down::movedown#10 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:11::keyboard_event_scan:43::keyboard_event_pressed:402 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 level#10 level_bcd#11 keyboard_events_size#13 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:11::keyboard_event_scan:43::keyboard_event_pressed:408 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 level#10 level_bcd#11 keyboard_events_size#13 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:11::keyboard_event_scan:43::keyboard_event_pressed:414 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 level#10 level_bcd#11 keyboard_events_size#13 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:11::keyboard_event_scan:43::keyboard_event_pressed:420 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 level#10 level_bcd#11 keyboard_events_size#13 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] ) always clobbers reg byte a +Statement [383] (byte) keyboard_event_pressed::return#11 ← (byte) keyboard_event_pressed::row_bits#0 & *((const byte*) keyboard_matrix_col_bitmask + (byte~) keyboard_event_pressed::$1) [ keyboard_event_pressed::return#11 ] ( main:11::play_movement:51::play_move_down:165::keyboard_event_pressed:250 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 score_bcd current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 lines_bcd#19 level#10 level_bcd#11 current_movedown_counter#12 play_move_down::movedown#10 keyboard_event_pressed::return#11 ] main:11::keyboard_event_scan:43::keyboard_event_pressed:402 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 level#10 level_bcd#11 keyboard_events_size#13 keyboard_event_pressed::return#11 ] main:11::keyboard_event_scan:43::keyboard_event_pressed:408 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 level#10 level_bcd#11 keyboard_events_size#13 keyboard_event_pressed::return#11 ] main:11::keyboard_event_scan:43::keyboard_event_pressed:414 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 level#10 level_bcd#11 keyboard_events_size#13 keyboard_event_pressed::return#11 ] main:11::keyboard_event_scan:43::keyboard_event_pressed:420 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 level#10 level_bcd#11 keyboard_events_size#13 keyboard_event_pressed::return#11 ] ) always clobbers reg byte a +Statement [385] if((byte) keyboard_events_size#13==(byte) 0) goto keyboard_event_get::@return [ keyboard_events_size#13 ] ( main:11::keyboard_event_get:45 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 level#10 level_bcd#11 keyboard_events_size#13 ] ) always clobbers reg byte a +Statement [387] (byte) keyboard_event_get::return#1 ← *((const byte*) keyboard_events + (byte) keyboard_events_size#4) [ keyboard_events_size#4 keyboard_event_get::return#1 ] ( main:11::keyboard_event_get:45 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 level#10 level_bcd#11 keyboard_events_size#4 keyboard_event_get::return#1 ] ) always clobbers reg byte y +Statement [396] if((byte) keyboard_event_scan::row_scan#0!=*((const byte*) keyboard_scan_values + (byte) keyboard_event_scan::row#2)) goto keyboard_event_scan::@9 [ keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#30 keyboard_event_scan::row_scan#0 ] ( main:11::keyboard_event_scan:43 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 level#10 level_bcd#11 keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#30 keyboard_event_scan::row_scan#0 ] ) always clobbers reg byte a reg byte y +Statement [397] (byte) keyboard_event_scan::keycode#1 ← (byte) keyboard_event_scan::keycode#11 + (byte) 8 [ keyboard_event_scan::row#2 keyboard_events_size#30 keyboard_event_scan::keycode#1 ] ( main:11::keyboard_event_scan:43 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 level#10 level_bcd#11 keyboard_event_scan::row#2 keyboard_events_size#30 keyboard_event_scan::keycode#1 ] ) always clobbers reg byte a reg byte x +Statement [400] if((byte) keyboard_event_scan::row#1!=(byte) 8) goto keyboard_event_scan::@7 [ keyboard_events_size#13 keyboard_event_scan::row#1 keyboard_event_scan::keycode#13 ] ( main:11::keyboard_event_scan:43 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 level#10 level_bcd#11 keyboard_events_size#13 keyboard_event_scan::row#1 keyboard_event_scan::keycode#13 ] ) always clobbers reg byte a +Statement [427] (byte~) keyboard_event_scan::$15 ← (byte) keyboard_event_scan::row_scan#0 ^ *((const byte*) keyboard_scan_values + (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::$15 ] ( main:11::keyboard_event_scan:43 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 level#10 level_bcd#11 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::$15 ] ) always clobbers reg byte a +Statement [428] (byte~) keyboard_event_scan::$16 ← (byte~) keyboard_event_scan::$15 & *((const byte*) keyboard_matrix_col_bitmask + (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::$16 ] ( main:11::keyboard_event_scan:43 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 level#10 level_bcd#11 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::$16 ] ) always clobbers reg byte a +Statement [430] if((byte) keyboard_events_size#10==(byte) 8) goto keyboard_event_scan::@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:11::keyboard_event_scan:43 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 level#10 level_bcd#11 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 [431] (byte) keyboard_event_scan::event_type#0 ← (byte) keyboard_event_scan::row_scan#0 & *((const byte*) keyboard_matrix_col_bitmask + (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:11::keyboard_event_scan:43 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 level#10 level_bcd#11 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 [433] *((const byte*) keyboard_events + (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:11::keyboard_event_scan:43 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 level#10 level_bcd#11 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 reg byte y +Statement [439] *((const byte*) keyboard_scan_values + (byte) keyboard_event_scan::row#2) ← (byte) keyboard_event_scan::row_scan#0 [ keyboard_event_scan::row#2 keyboard_event_scan::keycode#14 keyboard_events_size#29 ] ( main:11::keyboard_event_scan:43 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 level#10 level_bcd#11 keyboard_event_scan::row#2 keyboard_event_scan::keycode#14 keyboard_events_size#29 ] ) always clobbers reg byte a reg byte y +Statement [440] (byte~) keyboard_event_scan::$23 ← (byte) keyboard_event_scan::keycode#10 | (byte) $40 [ 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::$23 ] ( main:11::keyboard_event_scan:43 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 level#10 level_bcd#11 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::$23 ] ) always clobbers reg byte a +Statement [441] *((const byte*) keyboard_events + (byte) keyboard_events_size#10) ← (byte~) keyboard_event_scan::$23 [ 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:11::keyboard_event_scan:43 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 level#10 level_bcd#11 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 y +Statement [443] *((const byte*) CIA1_PORT_A) ← *((const byte*) keyboard_matrix_row_bitmask + (byte) keyboard_matrix_read::rowid#0) [ ] ( main:11::keyboard_event_scan:43::keyboard_matrix_read:393 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 level#10 level_bcd#11 keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#30 ] ) always clobbers reg byte a +Statement [444] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B) [ keyboard_matrix_read::return#0 ] ( main:11::keyboard_event_scan:43::keyboard_matrix_read:393 [ score_bcd render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 level#10 level_bcd#11 keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#30 keyboard_matrix_read::return#0 ] ) always clobbers reg byte a +Statement [446] if((byte) render_screen_show#16==(byte) 0) goto render_show::toD0181 [ render_screen_show#16 level#10 ] ( main:11::render_show:41 [ score_bcd render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 keyboard_events_size#19 current_movedown_counter#16 lines_bcd#19 level_bcd#11 render_screen_show#16 level#10 ] ) always clobbers reg byte a +Statement [450] *((const byte*) BGCOL2) ← *((const byte*) PIECES_COLORS_1 + (byte) level#10) [ render_screen_show#16 level#10 ] ( main:11::render_show:41 [ score_bcd render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 keyboard_events_size#19 current_movedown_counter#16 lines_bcd#19 level_bcd#11 render_screen_show#16 level#10 ] ) always clobbers reg byte a reg byte y +Statement [451] *((const byte*) BGCOL3) ← *((const byte*) PIECES_COLORS_2 + (byte) level#10) [ render_screen_show#16 level#10 ] ( main:11::render_show:41 [ score_bcd render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 keyboard_events_size#19 current_movedown_counter#16 lines_bcd#19 level_bcd#11 render_screen_show#16 level#10 ] ) always clobbers reg byte a reg byte y +Statement [452] (byte) render_screen_showing ← (byte) render_screen_show#16 [ render_screen_show#16 level#10 ] ( main:11::render_show:41 [ score_bcd render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#10 current_orientation#13 current_piece_gfx#13 current_xpos#14 current_ypos#11 game_over#10 next_piece_idx#10 keyboard_events_size#19 current_movedown_counter#16 lines_bcd#19 level_bcd#11 render_screen_show#16 level#10 ] ) always clobbers reg byte a +Statement [457] (byte~) play_init::$2 ← (byte) play_init::j#2 << (byte) 1 [ play_init::j#2 play_init::pli#2 play_init::idx#2 play_init::$2 ] ( main:11::play_init:22 [ score_bcd play_init::j#2 play_init::pli#2 play_init::idx#2 play_init::$2 ] ) always clobbers reg byte a +Statement [458] *((const byte**) playfield_lines + (byte~) play_init::$2) ← (byte*) play_init::pli#2 [ play_init::j#2 play_init::pli#2 play_init::idx#2 ] ( main:11::play_init:22 [ score_bcd play_init::j#2 play_init::pli#2 play_init::idx#2 ] ) always clobbers reg byte a +Statement [459] *((const byte*) playfield_lines_idx + (byte) play_init::j#2) ← (byte) play_init::idx#2 [ play_init::j#2 play_init::pli#2 play_init::idx#2 ] ( main:11::play_init:22 [ score_bcd play_init::j#2 play_init::pli#2 play_init::idx#2 ] ) always clobbers reg byte a +Statement [460] (byte*) play_init::pli#1 ← (byte*) play_init::pli#2 + (const byte) PLAYFIELD_COLS [ play_init::j#2 play_init::idx#2 play_init::pli#1 ] ( main:11::play_init:22 [ score_bcd play_init::j#2 play_init::idx#2 play_init::pli#1 ] ) always clobbers reg byte a +Statement [461] (byte) play_init::idx#1 ← (byte) play_init::idx#2 + (const byte) PLAYFIELD_COLS [ play_init::j#2 play_init::pli#1 play_init::idx#1 ] ( main:11::play_init:22 [ score_bcd play_init::j#2 play_init::pli#1 play_init::idx#1 ] ) always clobbers reg byte a +Statement [464] *((const byte*) playfield_lines_idx+(const byte) PLAYFIELD_LINES) ← (const byte) PLAYFIELD_COLS*(const byte) PLAYFIELD_LINES [ ] ( main:11::play_init:22 [ score_bcd ] ) always clobbers reg byte a +Statement [465] (byte) current_movedown_slow#1 ← *((const byte*) MOVEDOWN_SLOW_SPEEDS) [ current_movedown_slow#1 ] ( main:11::play_init:22 [ score_bcd current_movedown_slow#1 ] ) always clobbers reg byte a +Statement [467] (byte~) play_init::$3 ← (byte) play_init::b#2 << (byte) 2 [ current_movedown_slow#1 play_init::b#2 play_init::$3 ] ( main:11::play_init:22 [ score_bcd current_movedown_slow#1 play_init::b#2 play_init::$3 ] ) always clobbers reg byte a +Statement [468] *((const dword*) score_add_bcd + (byte~) play_init::$3) ← *((const dword*) SCORE_BASE_BCD + (byte~) play_init::$3) [ current_movedown_slow#1 play_init::b#2 ] ( main:11::play_init:22 [ score_bcd current_movedown_slow#1 play_init::b#2 ] ) always clobbers reg byte a +Statement [473] *((const byte*) IRQ_STATUS) ← (const byte) IRQ_RASTER [ ] ( main:11::sprites_irq_init:20 [ score_bcd ] ) always clobbers reg byte a Statement asm { ldaCIA1_INTERRUPT } always clobbers reg byte a -Statement [477] *((const byte*) PROCPORT_DDR) ← (const byte) PROCPORT_DDR_MEMORY_MASK [ ] ( main:13::sprites_irq_init:22 [ score_bcd ] ) always clobbers reg byte a -Statement [478] *((const byte*) PROCPORT) ← (const byte) PROCPORT_RAM_IO [ ] ( main:13::sprites_irq_init:22 [ score_bcd ] ) always clobbers reg byte a -Statement [479] *((const byte*) CIA1_INTERRUPT) ← (const byte) CIA_INTERRUPT_CLEAR [ ] ( main:13::sprites_irq_init:22 [ score_bcd ] ) always clobbers reg byte a -Statement [480] *((const byte*) VIC_CONTROL) ← *((const byte*) VIC_CONTROL) & (byte) $7f [ ] ( main:13::sprites_irq_init:22 [ score_bcd ] ) always clobbers reg byte a -Statement [481] *((const byte*) RASTER) ← (const byte) IRQ_RASTER_FIRST [ ] ( main:13::sprites_irq_init:22 [ score_bcd ] ) always clobbers reg byte a -Statement [482] *((const byte*) IRQ_ENABLE) ← (const byte) IRQ_RASTER [ ] ( main:13::sprites_irq_init:22 [ score_bcd ] ) always clobbers reg byte a -Statement [483] *((const void()**) HARDWARE_IRQ) ← &interrupt(HARDWARE_CLOBBER)(void()) sprites_irq() [ ] ( main:13::sprites_irq_init:22 [ score_bcd ] ) always clobbers reg byte a -Statement [486] *((const byte*) SPRITES_ENABLE) ← (byte) $f [ ] ( main:13::sprites_init:20 [ score_bcd ] ) always clobbers reg byte a -Statement [487] *((const byte*) SPRITES_MC) ← (byte) 0 [ ] ( main:13::sprites_init:20 [ score_bcd ] ) always clobbers reg byte a -Statement [488] *((const byte*) SPRITES_EXPAND_Y) ← *((const byte*) SPRITES_MC) [ ] ( main:13::sprites_init:20 [ score_bcd ] ) always clobbers reg byte a -Statement [489] *((const byte*) SPRITES_EXPAND_X) ← *((const byte*) SPRITES_EXPAND_Y) [ ] ( main:13::sprites_init:20 [ score_bcd ] ) always clobbers reg byte a -Statement [491] (byte) sprites_init::s2#0 ← (byte) sprites_init::s#2 << (byte) 1 [ sprites_init::s#2 sprites_init::xpos#2 sprites_init::s2#0 ] ( main:13::sprites_init:20 [ score_bcd sprites_init::s#2 sprites_init::xpos#2 sprites_init::s2#0 ] ) always clobbers reg byte a -Statement [492] *((const byte*) SPRITES_XPOS + (byte) sprites_init::s2#0) ← (byte) sprites_init::xpos#2 [ sprites_init::s#2 sprites_init::xpos#2 ] ( main:13::sprites_init:20 [ score_bcd sprites_init::s#2 sprites_init::xpos#2 ] ) always clobbers reg byte a -Statement [493] *((const byte*) SPRITES_COLS + (byte) sprites_init::s#2) ← (const byte) BLACK [ sprites_init::s#2 sprites_init::xpos#2 ] ( main:13::sprites_init:20 [ score_bcd sprites_init::s#2 sprites_init::xpos#2 ] ) always clobbers reg byte a -Statement [494] (byte) sprites_init::xpos#1 ← (byte) sprites_init::xpos#2 + (byte) $18 [ sprites_init::s#2 sprites_init::xpos#1 ] ( main:13::sprites_init:20 [ score_bcd sprites_init::s#2 sprites_init::xpos#1 ] ) always clobbers reg byte a -Statement [499] *((const byte*) CIA2_PORT_A_DDR) ← (byte) 3 [ ] ( main:13::render_init:18 [ score_bcd ] ) always clobbers reg byte a -Statement [501] *((const byte*) CIA2_PORT_A) ← (const byte) render_init::vicSelectGfxBank1_toDd001_return#0 [ ] ( main:13::render_init:18 [ score_bcd ] ) always clobbers reg byte a -Statement [502] *((const byte*) D011) ← (const byte) VIC_ECM|(const byte) VIC_DEN|(const byte) VIC_RSEL|(byte) 3 [ ] ( main:13::render_init:18 [ score_bcd ] ) always clobbers reg byte a -Statement [503] *((const byte*) BORDERCOL) ← (const byte) BLACK [ ] ( main:13::render_init:18 [ score_bcd ] ) always clobbers reg byte a -Statement [504] *((const byte*) BGCOL1) ← (const byte) BLACK [ ] ( main:13::render_init:18 [ score_bcd ] ) always clobbers reg byte a -Statement [505] *((const byte*) BGCOL2) ← *((const byte*) PIECES_COLORS_1) [ ] ( main:13::render_init:18 [ score_bcd ] ) always clobbers reg byte a -Statement [506] *((const byte*) BGCOL3) ← *((const byte*) PIECES_COLORS_2) [ ] ( main:13::render_init:18 [ score_bcd ] ) always clobbers reg byte a -Statement [507] *((const byte*) BGCOL4) ← (const byte) GREY [ ] ( main:13::render_init:18 [ score_bcd ] ) always clobbers reg byte a -Statement [512] (byte~) render_init::$5 ← (byte) render_init::i#2 << (byte) 1 [ render_init::i#2 render_init::li_1#2 render_init::li_2#2 render_init::$5 ] ( main:13::render_init:18 [ score_bcd render_init::i#2 render_init::li_1#2 render_init::li_2#2 render_init::$5 ] ) always clobbers reg byte a -Statement [513] *((const byte**) screen_lines_1 + (byte~) render_init::$5) ← (byte*) render_init::li_1#2 [ render_init::i#2 render_init::li_1#2 render_init::li_2#2 render_init::$5 ] ( main:13::render_init:18 [ score_bcd render_init::i#2 render_init::li_1#2 render_init::li_2#2 render_init::$5 ] ) always clobbers reg byte a -Statement [514] *((const byte**) screen_lines_2 + (byte~) render_init::$5) ← (byte*) render_init::li_2#2 [ render_init::i#2 render_init::li_1#2 render_init::li_2#2 ] ( main:13::render_init:18 [ score_bcd render_init::i#2 render_init::li_1#2 render_init::li_2#2 ] ) always clobbers reg byte a -Statement [515] (byte*) render_init::li_1#1 ← (byte*) render_init::li_1#2 + (byte) $28 [ render_init::i#2 render_init::li_2#2 render_init::li_1#1 ] ( main:13::render_init:18 [ score_bcd render_init::i#2 render_init::li_2#2 render_init::li_1#1 ] ) always clobbers reg byte a -Statement [516] (byte*) render_init::li_2#1 ← (byte*) render_init::li_2#2 + (byte) $28 [ render_init::i#2 render_init::li_1#1 render_init::li_2#1 ] ( main:13::render_init:18 [ score_bcd render_init::i#2 render_init::li_1#1 render_init::li_2#1 ] ) always clobbers reg byte a -Statement [523] *((byte*) render_screen_original::screen#5) ← (const byte) render_screen_original::SPACE [ render_screen_original::oscr#4 render_screen_original::ocols#4 render_screen_original::y#6 render_screen_original::screen#5 render_screen_original::cols#4 render_screen_original::x#4 ] ( main:13::render_init:18::render_screen_original:508 [ score_bcd render_screen_original::oscr#4 render_screen_original::ocols#4 render_screen_original::y#6 render_screen_original::screen#5 render_screen_original::cols#4 render_screen_original::x#4 ] main:13::render_init:18::render_screen_original:510 [ score_bcd render_screen_original::oscr#4 render_screen_original::ocols#4 render_screen_original::y#6 render_screen_original::screen#5 render_screen_original::cols#4 render_screen_original::x#4 ] ) always clobbers reg byte a reg byte y -Statement [525] *((byte*) render_screen_original::cols#4) ← (const byte) BLACK [ render_screen_original::oscr#4 render_screen_original::ocols#4 render_screen_original::y#6 render_screen_original::cols#4 render_screen_original::x#4 render_screen_original::screen#2 ] ( main:13::render_init:18::render_screen_original:508 [ score_bcd render_screen_original::oscr#4 render_screen_original::ocols#4 render_screen_original::y#6 render_screen_original::cols#4 render_screen_original::x#4 render_screen_original::screen#2 ] main:13::render_init:18::render_screen_original:510 [ score_bcd render_screen_original::oscr#4 render_screen_original::ocols#4 render_screen_original::y#6 render_screen_original::cols#4 render_screen_original::x#4 render_screen_original::screen#2 ] ) always clobbers reg byte a reg byte y -Statement [530] *((byte*) render_screen_original::screen#6) ← *((byte*) render_screen_original::oscr#2) [ render_screen_original::y#6 render_screen_original::oscr#2 render_screen_original::screen#6 render_screen_original::ocols#2 render_screen_original::cols#5 render_screen_original::x#5 ] ( main:13::render_init:18::render_screen_original:508 [ score_bcd render_screen_original::y#6 render_screen_original::oscr#2 render_screen_original::screen#6 render_screen_original::ocols#2 render_screen_original::cols#5 render_screen_original::x#5 ] main:13::render_init:18::render_screen_original:510 [ score_bcd render_screen_original::y#6 render_screen_original::oscr#2 render_screen_original::screen#6 render_screen_original::ocols#2 render_screen_original::cols#5 render_screen_original::x#5 ] ) always clobbers reg byte a reg byte y -Statement [533] *((byte*) render_screen_original::cols#5) ← *((byte*) render_screen_original::ocols#2) [ render_screen_original::y#6 render_screen_original::oscr#1 render_screen_original::ocols#2 render_screen_original::cols#5 render_screen_original::x#5 render_screen_original::screen#3 ] ( main:13::render_init:18::render_screen_original:508 [ score_bcd render_screen_original::y#6 render_screen_original::oscr#1 render_screen_original::ocols#2 render_screen_original::cols#5 render_screen_original::x#5 render_screen_original::screen#3 ] main:13::render_init:18::render_screen_original:510 [ score_bcd render_screen_original::y#6 render_screen_original::oscr#1 render_screen_original::ocols#2 render_screen_original::cols#5 render_screen_original::x#5 render_screen_original::screen#3 ] ) always clobbers reg byte a reg byte y -Statement [539] *((byte*) render_screen_original::screen#7) ← (const byte) render_screen_original::SPACE [ render_screen_original::y#6 render_screen_original::oscr#1 render_screen_original::ocols#1 render_screen_original::screen#7 render_screen_original::cols#6 render_screen_original::x#6 ] ( main:13::render_init:18::render_screen_original:508 [ score_bcd render_screen_original::y#6 render_screen_original::oscr#1 render_screen_original::ocols#1 render_screen_original::screen#7 render_screen_original::cols#6 render_screen_original::x#6 ] main:13::render_init:18::render_screen_original:510 [ score_bcd render_screen_original::y#6 render_screen_original::oscr#1 render_screen_original::ocols#1 render_screen_original::screen#7 render_screen_original::cols#6 render_screen_original::x#6 ] ) always clobbers reg byte a reg byte y -Statement [541] *((byte*) render_screen_original::cols#6) ← (const byte) BLACK [ render_screen_original::y#6 render_screen_original::screen#10 render_screen_original::oscr#1 render_screen_original::ocols#1 render_screen_original::cols#6 render_screen_original::x#6 ] ( main:13::render_init:18::render_screen_original:508 [ score_bcd render_screen_original::y#6 render_screen_original::screen#10 render_screen_original::oscr#1 render_screen_original::ocols#1 render_screen_original::cols#6 render_screen_original::x#6 ] main:13::render_init:18::render_screen_original:510 [ score_bcd render_screen_original::y#6 render_screen_original::screen#10 render_screen_original::oscr#1 render_screen_original::ocols#1 render_screen_original::cols#6 render_screen_original::x#6 ] ) always clobbers reg byte a reg byte y -Statement [548] *((const word*) SID_VOICE3_FREQ) ← (word) $ffff [ ] ( main:13::sid_rnd_init:16 [ score_bcd ] ) always clobbers reg byte a -Statement [549] *((const byte*) SID_VOICE3_CONTROL) ← (const byte) SID_CONTROL_NOISE [ ] ( main:13::sid_rnd_init:16 [ score_bcd ] ) always clobbers reg byte a -Statement [559] if(*((const byte*) RASTER)<(byte) sprites_irq::raster_sprite_gfx_modify) goto sprites_irq::@8 [ render_screen_showing irq_raster_next irq_sprite_ypos irq_sprite_ptr irq_cnt sprites_irq::raster_sprite_gfx_modify ] ( [ render_screen_showing irq_raster_next irq_sprite_ypos irq_sprite_ptr irq_cnt sprites_irq::raster_sprite_gfx_modify ] ) always clobbers reg byte a -Statement [561] if((byte) render_screen_showing==(byte) 0) goto sprites_irq::@1 [ irq_raster_next irq_sprite_ypos irq_sprite_ptr irq_cnt sprites_irq::ptr#0 ] ( [ irq_raster_next irq_sprite_ypos irq_sprite_ptr irq_cnt sprites_irq::ptr#0 ] ) always clobbers reg byte a -Statement [569] if((byte) irq_cnt==(byte) 9) goto sprites_irq::@3 [ irq_raster_next irq_sprite_ypos irq_sprite_ptr irq_cnt ] ( [ irq_raster_next irq_sprite_ypos irq_sprite_ptr irq_cnt ] ) always clobbers reg byte a -Statement [570] if((byte) irq_cnt==(byte) $a) goto sprites_irq::@4 [ irq_raster_next irq_sprite_ypos irq_sprite_ptr ] ( [ irq_raster_next irq_sprite_ypos irq_sprite_ptr ] ) always clobbers reg byte a -Statement [571] (byte) irq_raster_next ← (byte) irq_raster_next + (byte) $14 [ irq_raster_next irq_sprite_ypos irq_sprite_ptr ] ( [ irq_raster_next irq_sprite_ypos irq_sprite_ptr ] ) always clobbers reg byte a reg byte x -Statement [572] (byte) irq_sprite_ypos ← (byte) irq_sprite_ypos + (byte) $15 [ irq_raster_next irq_sprite_ptr ] ( [ irq_raster_next irq_sprite_ptr ] ) always clobbers reg byte a reg byte x -Statement [573] (byte) irq_sprite_ptr ← (byte) irq_sprite_ptr + (byte) 3 [ irq_raster_next ] ( [ irq_raster_next ] ) always clobbers reg byte a reg byte x -Statement [574] *((const byte*) RASTER) ← (byte) irq_raster_next [ ] ( [ ] ) always clobbers reg byte a -Statement [575] *((const byte*) IRQ_STATUS) ← (const byte) IRQ_RASTER [ ] ( [ ] ) always clobbers reg byte a -Statement [576] return [ ] ( [ ] ) always clobbers reg byte a reg byte x reg byte y -Statement [577] (byte) irq_cnt ← (byte) 0 [ irq_sprite_ypos irq_sprite_ptr ] ( [ irq_sprite_ypos irq_sprite_ptr ] ) always clobbers reg byte a -Statement [578] (byte) irq_raster_next ← (const byte) IRQ_RASTER_FIRST [ irq_raster_next irq_sprite_ypos irq_sprite_ptr ] ( [ irq_raster_next irq_sprite_ypos irq_sprite_ptr ] ) always clobbers reg byte a -Statement [579] (byte) irq_sprite_ypos ← (byte) irq_sprite_ypos + (byte) $15 [ irq_raster_next irq_sprite_ptr ] ( [ irq_raster_next irq_sprite_ptr ] ) always clobbers reg byte a reg byte x -Statement [580] (byte) irq_sprite_ptr ← (byte) irq_sprite_ptr + (byte) 3 [ irq_raster_next ] ( [ irq_raster_next ] ) always clobbers reg byte a reg byte x -Statement [581] (byte) irq_raster_next ← (byte) irq_raster_next + (byte) $15 [ irq_raster_next ] ( [ irq_raster_next ] ) always clobbers reg byte a reg byte x -Statement [582] (byte) irq_sprite_ypos ← (const byte) SPRITES_FIRST_YPOS [ irq_raster_next ] ( [ irq_raster_next ] ) always clobbers reg byte a -Statement [584] (byte) irq_sprite_ptr ← (const byte) sprites_irq::toSpritePtr2_return#0 [ irq_raster_next ] ( [ irq_raster_next ] ) always clobbers reg byte a +Statement [475] *((const byte*) PROCPORT_DDR) ← (const byte) PROCPORT_DDR_MEMORY_MASK [ ] ( main:11::sprites_irq_init:20 [ score_bcd ] ) always clobbers reg byte a +Statement [476] *((const byte*) PROCPORT) ← (const byte) PROCPORT_RAM_IO [ ] ( main:11::sprites_irq_init:20 [ score_bcd ] ) always clobbers reg byte a +Statement [477] *((const byte*) CIA1_INTERRUPT) ← (const byte) CIA_INTERRUPT_CLEAR [ ] ( main:11::sprites_irq_init:20 [ score_bcd ] ) always clobbers reg byte a +Statement [478] *((const byte*) VIC_CONTROL) ← *((const byte*) VIC_CONTROL) & (byte) $7f [ ] ( main:11::sprites_irq_init:20 [ score_bcd ] ) always clobbers reg byte a +Statement [479] *((const byte*) RASTER) ← (const byte) IRQ_RASTER_FIRST [ ] ( main:11::sprites_irq_init:20 [ score_bcd ] ) always clobbers reg byte a +Statement [480] *((const byte*) IRQ_ENABLE) ← (const byte) IRQ_RASTER [ ] ( main:11::sprites_irq_init:20 [ score_bcd ] ) always clobbers reg byte a +Statement [481] *((const void()**) HARDWARE_IRQ) ← &interrupt(HARDWARE_CLOBBER)(void()) sprites_irq() [ ] ( main:11::sprites_irq_init:20 [ score_bcd ] ) always clobbers reg byte a +Statement [484] *((const byte*) SPRITES_ENABLE) ← (byte) $f [ ] ( main:11::sprites_init:18 [ score_bcd ] ) always clobbers reg byte a +Statement [485] *((const byte*) SPRITES_MC) ← (byte) 0 [ ] ( main:11::sprites_init:18 [ score_bcd ] ) always clobbers reg byte a +Statement [486] *((const byte*) SPRITES_EXPAND_Y) ← *((const byte*) SPRITES_MC) [ ] ( main:11::sprites_init:18 [ score_bcd ] ) always clobbers reg byte a +Statement [487] *((const byte*) SPRITES_EXPAND_X) ← *((const byte*) SPRITES_EXPAND_Y) [ ] ( main:11::sprites_init:18 [ score_bcd ] ) always clobbers reg byte a +Statement [489] (byte) sprites_init::s2#0 ← (byte) sprites_init::s#2 << (byte) 1 [ sprites_init::s#2 sprites_init::xpos#2 sprites_init::s2#0 ] ( main:11::sprites_init:18 [ score_bcd sprites_init::s#2 sprites_init::xpos#2 sprites_init::s2#0 ] ) always clobbers reg byte a +Statement [490] *((const byte*) SPRITES_XPOS + (byte) sprites_init::s2#0) ← (byte) sprites_init::xpos#2 [ sprites_init::s#2 sprites_init::xpos#2 ] ( main:11::sprites_init:18 [ score_bcd sprites_init::s#2 sprites_init::xpos#2 ] ) always clobbers reg byte a +Statement [491] *((const byte*) SPRITES_COLS + (byte) sprites_init::s#2) ← (const byte) BLACK [ sprites_init::s#2 sprites_init::xpos#2 ] ( main:11::sprites_init:18 [ score_bcd sprites_init::s#2 sprites_init::xpos#2 ] ) always clobbers reg byte a +Statement [492] (byte) sprites_init::xpos#1 ← (byte) sprites_init::xpos#2 + (byte) $18 [ sprites_init::s#2 sprites_init::xpos#1 ] ( main:11::sprites_init:18 [ score_bcd sprites_init::s#2 sprites_init::xpos#1 ] ) always clobbers reg byte a +Statement [497] *((const byte*) CIA2_PORT_A_DDR) ← (byte) 3 [ ] ( main:11::render_init:16 [ score_bcd ] ) always clobbers reg byte a +Statement [499] *((const byte*) CIA2_PORT_A) ← (const byte) render_init::vicSelectGfxBank1_toDd001_return#0 [ ] ( main:11::render_init:16 [ score_bcd ] ) always clobbers reg byte a +Statement [500] *((const byte*) D011) ← (const byte) VIC_ECM|(const byte) VIC_DEN|(const byte) VIC_RSEL|(byte) 3 [ ] ( main:11::render_init:16 [ score_bcd ] ) always clobbers reg byte a +Statement [501] *((const byte*) BORDERCOL) ← (const byte) BLACK [ ] ( main:11::render_init:16 [ score_bcd ] ) always clobbers reg byte a +Statement [502] *((const byte*) BGCOL1) ← (const byte) BLACK [ ] ( main:11::render_init:16 [ score_bcd ] ) always clobbers reg byte a +Statement [503] *((const byte*) BGCOL2) ← *((const byte*) PIECES_COLORS_1) [ ] ( main:11::render_init:16 [ score_bcd ] ) always clobbers reg byte a +Statement [504] *((const byte*) BGCOL3) ← *((const byte*) PIECES_COLORS_2) [ ] ( main:11::render_init:16 [ score_bcd ] ) always clobbers reg byte a +Statement [505] *((const byte*) BGCOL4) ← (const byte) GREY [ ] ( main:11::render_init:16 [ score_bcd ] ) always clobbers reg byte a +Statement [510] (byte~) render_init::$5 ← (byte) render_init::i#2 << (byte) 1 [ render_init::i#2 render_init::li_1#2 render_init::li_2#2 render_init::$5 ] ( main:11::render_init:16 [ score_bcd render_init::i#2 render_init::li_1#2 render_init::li_2#2 render_init::$5 ] ) always clobbers reg byte a +Statement [511] *((const byte**) screen_lines_1 + (byte~) render_init::$5) ← (byte*) render_init::li_1#2 [ render_init::i#2 render_init::li_1#2 render_init::li_2#2 render_init::$5 ] ( main:11::render_init:16 [ score_bcd render_init::i#2 render_init::li_1#2 render_init::li_2#2 render_init::$5 ] ) always clobbers reg byte a +Statement [512] *((const byte**) screen_lines_2 + (byte~) render_init::$5) ← (byte*) render_init::li_2#2 [ render_init::i#2 render_init::li_1#2 render_init::li_2#2 ] ( main:11::render_init:16 [ score_bcd render_init::i#2 render_init::li_1#2 render_init::li_2#2 ] ) always clobbers reg byte a +Statement [513] (byte*) render_init::li_1#1 ← (byte*) render_init::li_1#2 + (byte) $28 [ render_init::i#2 render_init::li_2#2 render_init::li_1#1 ] ( main:11::render_init:16 [ score_bcd render_init::i#2 render_init::li_2#2 render_init::li_1#1 ] ) always clobbers reg byte a +Statement [514] (byte*) render_init::li_2#1 ← (byte*) render_init::li_2#2 + (byte) $28 [ render_init::i#2 render_init::li_1#1 render_init::li_2#1 ] ( main:11::render_init:16 [ score_bcd render_init::i#2 render_init::li_1#1 render_init::li_2#1 ] ) always clobbers reg byte a +Statement [521] *((byte*) render_screen_original::screen#5) ← (const byte) render_screen_original::SPACE [ render_screen_original::oscr#4 render_screen_original::ocols#4 render_screen_original::y#6 render_screen_original::screen#5 render_screen_original::cols#4 render_screen_original::x#4 ] ( main:11::render_init:16::render_screen_original:506 [ score_bcd render_screen_original::oscr#4 render_screen_original::ocols#4 render_screen_original::y#6 render_screen_original::screen#5 render_screen_original::cols#4 render_screen_original::x#4 ] main:11::render_init:16::render_screen_original:508 [ score_bcd render_screen_original::oscr#4 render_screen_original::ocols#4 render_screen_original::y#6 render_screen_original::screen#5 render_screen_original::cols#4 render_screen_original::x#4 ] ) always clobbers reg byte a reg byte y +Statement [523] *((byte*) render_screen_original::cols#4) ← (const byte) BLACK [ render_screen_original::oscr#4 render_screen_original::ocols#4 render_screen_original::y#6 render_screen_original::cols#4 render_screen_original::x#4 render_screen_original::screen#2 ] ( main:11::render_init:16::render_screen_original:506 [ score_bcd render_screen_original::oscr#4 render_screen_original::ocols#4 render_screen_original::y#6 render_screen_original::cols#4 render_screen_original::x#4 render_screen_original::screen#2 ] main:11::render_init:16::render_screen_original:508 [ score_bcd render_screen_original::oscr#4 render_screen_original::ocols#4 render_screen_original::y#6 render_screen_original::cols#4 render_screen_original::x#4 render_screen_original::screen#2 ] ) always clobbers reg byte a reg byte y +Statement [528] *((byte*) render_screen_original::screen#6) ← *((byte*) render_screen_original::oscr#2) [ render_screen_original::y#6 render_screen_original::oscr#2 render_screen_original::screen#6 render_screen_original::ocols#2 render_screen_original::cols#5 render_screen_original::x#5 ] ( main:11::render_init:16::render_screen_original:506 [ score_bcd render_screen_original::y#6 render_screen_original::oscr#2 render_screen_original::screen#6 render_screen_original::ocols#2 render_screen_original::cols#5 render_screen_original::x#5 ] main:11::render_init:16::render_screen_original:508 [ score_bcd render_screen_original::y#6 render_screen_original::oscr#2 render_screen_original::screen#6 render_screen_original::ocols#2 render_screen_original::cols#5 render_screen_original::x#5 ] ) always clobbers reg byte a reg byte y +Statement [531] *((byte*) render_screen_original::cols#5) ← *((byte*) render_screen_original::ocols#2) [ render_screen_original::y#6 render_screen_original::oscr#1 render_screen_original::ocols#2 render_screen_original::cols#5 render_screen_original::x#5 render_screen_original::screen#3 ] ( main:11::render_init:16::render_screen_original:506 [ score_bcd render_screen_original::y#6 render_screen_original::oscr#1 render_screen_original::ocols#2 render_screen_original::cols#5 render_screen_original::x#5 render_screen_original::screen#3 ] main:11::render_init:16::render_screen_original:508 [ score_bcd render_screen_original::y#6 render_screen_original::oscr#1 render_screen_original::ocols#2 render_screen_original::cols#5 render_screen_original::x#5 render_screen_original::screen#3 ] ) always clobbers reg byte a reg byte y +Statement [537] *((byte*) render_screen_original::screen#7) ← (const byte) render_screen_original::SPACE [ render_screen_original::y#6 render_screen_original::oscr#1 render_screen_original::ocols#1 render_screen_original::screen#7 render_screen_original::cols#6 render_screen_original::x#6 ] ( main:11::render_init:16::render_screen_original:506 [ score_bcd render_screen_original::y#6 render_screen_original::oscr#1 render_screen_original::ocols#1 render_screen_original::screen#7 render_screen_original::cols#6 render_screen_original::x#6 ] main:11::render_init:16::render_screen_original:508 [ score_bcd render_screen_original::y#6 render_screen_original::oscr#1 render_screen_original::ocols#1 render_screen_original::screen#7 render_screen_original::cols#6 render_screen_original::x#6 ] ) always clobbers reg byte a reg byte y +Statement [539] *((byte*) render_screen_original::cols#6) ← (const byte) BLACK [ render_screen_original::y#6 render_screen_original::screen#10 render_screen_original::oscr#1 render_screen_original::ocols#1 render_screen_original::cols#6 render_screen_original::x#6 ] ( main:11::render_init:16::render_screen_original:506 [ score_bcd render_screen_original::y#6 render_screen_original::screen#10 render_screen_original::oscr#1 render_screen_original::ocols#1 render_screen_original::cols#6 render_screen_original::x#6 ] main:11::render_init:16::render_screen_original:508 [ score_bcd render_screen_original::y#6 render_screen_original::screen#10 render_screen_original::oscr#1 render_screen_original::ocols#1 render_screen_original::cols#6 render_screen_original::x#6 ] ) always clobbers reg byte a reg byte y +Statement [546] *((const word*) SID_VOICE3_FREQ) ← (word) $ffff [ ] ( main:11::sid_rnd_init:14 [ score_bcd ] ) always clobbers reg byte a +Statement [547] *((const byte*) SID_VOICE3_CONTROL) ← (const byte) SID_CONTROL_NOISE [ ] ( main:11::sid_rnd_init:14 [ score_bcd ] ) always clobbers reg byte a +Statement [557] if(*((const byte*) RASTER)<(byte) sprites_irq::raster_sprite_gfx_modify) goto sprites_irq::@8 [ render_screen_showing irq_raster_next irq_sprite_ypos irq_sprite_ptr irq_cnt sprites_irq::raster_sprite_gfx_modify ] ( [ render_screen_showing irq_raster_next irq_sprite_ypos irq_sprite_ptr irq_cnt sprites_irq::raster_sprite_gfx_modify ] ) always clobbers reg byte a +Statement [559] if((byte) render_screen_showing==(byte) 0) goto sprites_irq::@1 [ irq_raster_next irq_sprite_ypos irq_sprite_ptr irq_cnt sprites_irq::ptr#0 ] ( [ irq_raster_next irq_sprite_ypos irq_sprite_ptr irq_cnt sprites_irq::ptr#0 ] ) always clobbers reg byte a +Statement [567] if((byte) irq_cnt==(byte) 9) goto sprites_irq::@3 [ irq_raster_next irq_sprite_ypos irq_sprite_ptr irq_cnt ] ( [ irq_raster_next irq_sprite_ypos irq_sprite_ptr irq_cnt ] ) always clobbers reg byte a +Statement [568] if((byte) irq_cnt==(byte) $a) goto sprites_irq::@4 [ irq_raster_next irq_sprite_ypos irq_sprite_ptr ] ( [ irq_raster_next irq_sprite_ypos irq_sprite_ptr ] ) always clobbers reg byte a +Statement [569] (byte) irq_raster_next ← (byte) irq_raster_next + (byte) $14 [ irq_raster_next irq_sprite_ypos irq_sprite_ptr ] ( [ irq_raster_next irq_sprite_ypos irq_sprite_ptr ] ) always clobbers reg byte a reg byte x +Statement [570] (byte) irq_sprite_ypos ← (byte) irq_sprite_ypos + (byte) $15 [ irq_raster_next irq_sprite_ptr ] ( [ irq_raster_next irq_sprite_ptr ] ) always clobbers reg byte a reg byte x +Statement [571] (byte) irq_sprite_ptr ← (byte) irq_sprite_ptr + (byte) 3 [ irq_raster_next ] ( [ irq_raster_next ] ) always clobbers reg byte a reg byte x +Statement [572] *((const byte*) RASTER) ← (byte) irq_raster_next [ ] ( [ ] ) always clobbers reg byte a +Statement [573] *((const byte*) IRQ_STATUS) ← (const byte) IRQ_RASTER [ ] ( [ ] ) always clobbers reg byte a +Statement [574] return [ ] ( [ ] ) always clobbers reg byte a reg byte x reg byte y +Statement [575] (byte) irq_cnt ← (byte) 0 [ irq_sprite_ypos irq_sprite_ptr ] ( [ irq_sprite_ypos irq_sprite_ptr ] ) always clobbers reg byte a +Statement [576] (byte) irq_raster_next ← (const byte) IRQ_RASTER_FIRST [ irq_raster_next irq_sprite_ypos irq_sprite_ptr ] ( [ irq_raster_next irq_sprite_ypos irq_sprite_ptr ] ) always clobbers reg byte a +Statement [577] (byte) irq_sprite_ypos ← (byte) irq_sprite_ypos + (byte) $15 [ irq_raster_next irq_sprite_ptr ] ( [ irq_raster_next irq_sprite_ptr ] ) always clobbers reg byte a reg byte x +Statement [578] (byte) irq_sprite_ptr ← (byte) irq_sprite_ptr + (byte) 3 [ irq_raster_next ] ( [ irq_raster_next ] ) always clobbers reg byte a reg byte x +Statement [579] (byte) irq_raster_next ← (byte) irq_raster_next + (byte) $15 [ irq_raster_next ] ( [ irq_raster_next ] ) always clobbers reg byte a reg byte x +Statement [580] (byte) irq_sprite_ypos ← (const byte) SPRITES_FIRST_YPOS [ irq_raster_next ] ( [ irq_raster_next ] ) always clobbers reg byte a +Statement [582] (byte) irq_sprite_ptr ← (const byte) sprites_irq::toSpritePtr2_return#0 [ irq_raster_next ] ( [ irq_raster_next ] ) always clobbers reg byte a Potential registers zp[1]:2 [ render_screen_show#16 render_screen_show#13 ] : zp[1]:2 , Potential registers zp[1]:3 [ render_screen_render#18 render_screen_render#11 ] : zp[1]:3 , Potential registers zp[1]:4 [ current_movedown_counter#16 current_movedown_counter#14 current_movedown_counter#12 ] : zp[1]:4 , @@ -16457,243 +16436,243 @@ Uplift Scope [sid_rnd_init] Uplift Scope [render_screen_swap] Uplift Scope [sprites_irq_init] -Uplifting [keyboard_event_scan] best 4708857 combination reg byte a [ keyboard_event_scan::$15 ] reg byte a [ keyboard_event_scan::$16 ] reg byte a [ keyboard_event_scan::event_type#0 ] reg byte a [ keyboard_event_scan::$23 ] zp[1]:86 [ keyboard_event_scan::col#2 keyboard_event_scan::col#1 ] zp[1]:87 [ keyboard_event_scan::keycode#10 keyboard_event_scan::keycode#11 keyboard_event_scan::keycode#13 keyboard_event_scan::keycode#14 keyboard_event_scan::keycode#1 ] zp[1]:85 [ keyboard_event_scan::row#2 keyboard_event_scan::row#1 ] zp[1]:198 [ keyboard_event_scan::row_scan#0 ] zp[1]:200 [ keyboard_event_scan::$0 ] zp[1]:202 [ keyboard_event_scan::$3 ] zp[1]:204 [ keyboard_event_scan::$6 ] zp[1]:206 [ keyboard_event_scan::$9 ] +Uplifting [keyboard_event_scan] best 4703737 combination reg byte a [ keyboard_event_scan::$15 ] reg byte a [ keyboard_event_scan::$16 ] reg byte a [ keyboard_event_scan::event_type#0 ] reg byte a [ keyboard_event_scan::$23 ] zp[1]:86 [ keyboard_event_scan::col#2 keyboard_event_scan::col#1 ] zp[1]:87 [ keyboard_event_scan::keycode#10 keyboard_event_scan::keycode#11 keyboard_event_scan::keycode#13 keyboard_event_scan::keycode#14 keyboard_event_scan::keycode#1 ] zp[1]:85 [ keyboard_event_scan::row#2 keyboard_event_scan::row#1 ] zp[1]:198 [ keyboard_event_scan::row_scan#0 ] zp[1]:200 [ keyboard_event_scan::$0 ] zp[1]:202 [ keyboard_event_scan::$3 ] zp[1]:204 [ keyboard_event_scan::$6 ] zp[1]:206 [ keyboard_event_scan::$9 ] Limited combination testing to 100 combinations of 524288 possible. -Uplifting [play_collision] best 4558857 combination zp[1]:49 [ play_collision::i#2 play_collision::i#3 play_collision::i#10 play_collision::i#12 ] reg byte a [ play_collision::$5 ] zp[1]:50 [ play_collision::xp#2 play_collision::xp#8 play_collision::xp#1 ] reg byte x [ play_collision::c#2 play_collision::c#1 ] zp[1]:155 [ play_collision::$14 ] zp[1]:158 [ play_collision::i#1 ] zp[1]:47 [ play_collision::yp#2 play_collision::yp#0 play_collision::ypos#0 play_collision::ypos#1 play_collision::ypos#2 play_collision::ypos#3 play_collision::ypos#4 play_collision::yp#1 ] zp[1]:48 [ play_collision::l#6 play_collision::l#1 ] zp[2]:156 [ play_collision::playfield_line#0 ] zp[2]:153 [ play_collision::piece_gfx#0 ] zp[1]:46 [ play_collision::xpos#6 play_collision::xpos#0 play_collision::xpos#1 play_collision::xpos#2 play_collision::xpos#3 play_collision::xpos#4 ] zp[1]:45 [ play_collision::orientation#5 play_collision::orientation#0 play_collision::orientation#1 play_collision::orientation#2 play_collision::orientation#3 ] zp[1]:150 [ play_collision::return#14 ] zp[1]:160 [ play_collision::return#13 ] zp[1]:162 [ play_collision::return#1 ] zp[1]:166 [ play_collision::return#0 ] zp[1]:173 [ play_collision::return#10 ] zp[1]:52 [ play_collision::return#15 ] +Uplifting [play_collision] best 4553737 combination zp[1]:49 [ play_collision::i#2 play_collision::i#3 play_collision::i#10 play_collision::i#12 ] reg byte a [ play_collision::$5 ] zp[1]:50 [ play_collision::xp#2 play_collision::xp#8 play_collision::xp#1 ] reg byte x [ play_collision::c#2 play_collision::c#1 ] zp[1]:155 [ play_collision::$14 ] zp[1]:158 [ play_collision::i#1 ] zp[1]:47 [ play_collision::yp#2 play_collision::yp#0 play_collision::ypos#0 play_collision::ypos#1 play_collision::ypos#2 play_collision::ypos#3 play_collision::ypos#4 play_collision::yp#1 ] zp[1]:48 [ play_collision::l#6 play_collision::l#1 ] zp[2]:156 [ play_collision::playfield_line#0 ] zp[2]:153 [ play_collision::piece_gfx#0 ] zp[1]:46 [ play_collision::xpos#6 play_collision::xpos#0 play_collision::xpos#1 play_collision::xpos#2 play_collision::xpos#3 play_collision::xpos#4 ] zp[1]:45 [ play_collision::orientation#5 play_collision::orientation#0 play_collision::orientation#1 play_collision::orientation#2 play_collision::orientation#3 ] zp[1]:150 [ play_collision::return#14 ] zp[1]:160 [ play_collision::return#13 ] zp[1]:162 [ play_collision::return#1 ] zp[1]:166 [ play_collision::return#0 ] zp[1]:173 [ play_collision::return#10 ] zp[1]:52 [ play_collision::return#15 ] Limited combination testing to 100 combinations of 429981696 possible. -Uplifting [play_lock_current] best 4464857 combination zp[1]:80 [ play_lock_current::i#2 play_lock_current::i#3 play_lock_current::i#7 play_lock_current::i#9 ] zp[1]:81 [ play_lock_current::xp#2 play_lock_current::xp#0 play_lock_current::xp#1 ] reg byte x [ play_lock_current::c#2 play_lock_current::c#1 ] zp[1]:191 [ play_lock_current::i#1 ] reg byte a [ play_lock_current::$4 ] zp[1]:79 [ play_lock_current::l#6 play_lock_current::l#1 ] zp[2]:189 [ play_lock_current::playfield_line#0 ] zp[1]:78 [ play_lock_current::yp#2 play_lock_current::yp#0 play_lock_current::yp#1 ] +Uplifting [play_lock_current] best 4459737 combination zp[1]:80 [ play_lock_current::i#2 play_lock_current::i#3 play_lock_current::i#7 play_lock_current::i#9 ] zp[1]:81 [ play_lock_current::xp#2 play_lock_current::xp#0 play_lock_current::xp#1 ] reg byte x [ play_lock_current::c#2 play_lock_current::c#1 ] zp[1]:191 [ play_lock_current::i#1 ] reg byte a [ play_lock_current::$4 ] zp[1]:79 [ play_lock_current::l#6 play_lock_current::l#1 ] zp[2]:189 [ play_lock_current::playfield_line#0 ] zp[1]:78 [ play_lock_current::yp#2 play_lock_current::yp#0 play_lock_current::yp#1 ] Limited combination testing to 100 combinations of 2916 possible. -Uplifting [play_remove_lines] best 4325857 combination reg byte y [ play_remove_lines::r#2 play_remove_lines::r#3 play_remove_lines::r#1 ] reg byte x [ play_remove_lines::w#6 play_remove_lines::w#3 play_remove_lines::w#4 play_remove_lines::w#12 play_remove_lines::w#11 play_remove_lines::w#1 play_remove_lines::w#2 ] zp[1]:75 [ play_remove_lines::x#2 play_remove_lines::x#1 ] zp[1]:76 [ play_remove_lines::full#4 play_remove_lines::full#2 ] zp[1]:187 [ play_remove_lines::c#0 ] zp[1]:73 [ play_remove_lines::removed#11 play_remove_lines::removed#8 play_remove_lines::removed#1 ] zp[1]:72 [ play_remove_lines::y#8 play_remove_lines::y#1 ] zp[1]:168 [ play_remove_lines::return#0 ] +Uplifting [play_remove_lines] best 4320737 combination reg byte y [ play_remove_lines::r#2 play_remove_lines::r#3 play_remove_lines::r#1 ] reg byte x [ play_remove_lines::w#6 play_remove_lines::w#3 play_remove_lines::w#4 play_remove_lines::w#12 play_remove_lines::w#11 play_remove_lines::w#1 play_remove_lines::w#2 ] zp[1]:75 [ play_remove_lines::x#2 play_remove_lines::x#1 ] zp[1]:76 [ play_remove_lines::full#4 play_remove_lines::full#2 ] zp[1]:187 [ play_remove_lines::c#0 ] zp[1]:73 [ play_remove_lines::removed#11 play_remove_lines::removed#8 play_remove_lines::removed#1 ] zp[1]:72 [ play_remove_lines::y#8 play_remove_lines::y#1 ] zp[1]:168 [ play_remove_lines::return#0 ] Limited combination testing to 100 combinations of 20736 possible. -Uplifting [] best 4325615 combination zp[1]:88 [ keyboard_events_size#10 keyboard_events_size#30 keyboard_events_size#19 keyboard_events_size#16 keyboard_events_size#13 keyboard_events_size#4 keyboard_events_size#29 keyboard_events_size#1 keyboard_events_size#2 ] zp[1]:69 [ next_piece_idx#17 next_piece_idx#30 next_piece_idx#10 next_piece_idx#16 play_spawn_current::piece_idx#2 play_spawn_current::piece_idx#1 ] zp[2]:65 [ current_piece_gfx#35 current_piece_gfx#13 current_piece_gfx#18 current_piece_gfx#123 current_piece_gfx#20 current_piece_gfx#21 current_piece_gfx#7 current_piece_gfx#116 ] zp[1]:63 [ current_piece_char#29 current_piece_char#10 current_piece_char#16 current_piece_char#5 ] zp[1]:28 [ current_piece_char#68 current_piece_char#99 current_piece_char#100 ] zp[2]:26 [ current_piece_gfx#64 current_piece_gfx#111 current_piece_gfx#112 ] zp[1]:67 [ current_xpos#43 current_xpos#14 current_xpos#19 current_xpos#100 current_xpos#22 current_xpos#26 current_xpos#6 current_xpos#8 ] zp[2]:43 [ current_piece#17 current_piece#95 current_piece#96 current_piece#97 current_piece#98 current_piece#99 ] reg byte x [ render_screen_render#22 render_screen_render#63 ] reg byte x [ next_piece_idx#12 next_piece_idx#76 next_piece_idx#77 ] reg byte a [ render_screen_render#15 render_screen_render#65 ] reg byte x [ current_ypos#13 current_ypos#97 current_ypos#98 ] zp[1]:60 [ level_bcd#31 level_bcd#11 level_bcd#17 level_bcd#19 level_bcd#62 level_bcd#21 level_bcd#8 ] zp[1]:64 [ current_orientation#37 current_orientation#13 current_orientation#17 current_orientation#20 current_orientation#25 current_orientation#7 ] zp[1]:59 [ current_movedown_slow#37 current_movedown_slow#14 current_movedown_slow#21 current_movedown_slow#1 current_movedown_slow#23 current_movedown_slow#65 current_movedown_slow#10 ] zp[1]:55 [ current_ypos#38 current_ypos#3 current_ypos#11 current_ypos#19 current_ypos#6 ] zp[2]:61 [ current_piece#28 current_piece#10 current_piece#15 current_piece#101 current_piece#92 ] zp[1]:70 [ game_over#65 game_over#27 game_over#10 game_over#15 game_over#52 ] zp[1]:25 [ current_xpos#59 current_xpos#118 current_xpos#119 ] zp[1]:58 [ level#33 level#10 level#17 level#19 level#21 ] zp[2]:56 [ lines_bcd#26 lines_bcd#19 lines_bcd#15 lines_bcd#17 lines_bcd#29 ] zp[1]:4 [ current_movedown_counter#16 current_movedown_counter#14 current_movedown_counter#12 ] zp[1]:24 [ render_screen_render#33 render_screen_render#64 ] zp[1]:2 [ render_screen_show#16 render_screen_show#13 ] zp[1]:3 [ render_screen_render#18 render_screen_render#11 ] zp[1]:112 [ render_screen_showing ] zp[1]:118 [ irq_sprite_ypos ] zp[1]:120 [ irq_cnt ] zp[1]:119 [ irq_sprite_ptr ] zp[1]:117 [ irq_raster_next ] zp[4]:113 [ score_bcd ] +Uplifting [] best 4320495 combination zp[1]:88 [ keyboard_events_size#10 keyboard_events_size#30 keyboard_events_size#19 keyboard_events_size#16 keyboard_events_size#13 keyboard_events_size#4 keyboard_events_size#29 keyboard_events_size#1 keyboard_events_size#2 ] zp[1]:69 [ next_piece_idx#17 next_piece_idx#30 next_piece_idx#10 next_piece_idx#16 play_spawn_current::piece_idx#2 play_spawn_current::piece_idx#1 ] zp[2]:65 [ current_piece_gfx#35 current_piece_gfx#13 current_piece_gfx#18 current_piece_gfx#123 current_piece_gfx#20 current_piece_gfx#21 current_piece_gfx#7 current_piece_gfx#116 ] zp[1]:63 [ current_piece_char#29 current_piece_char#10 current_piece_char#16 current_piece_char#5 ] zp[1]:28 [ current_piece_char#68 current_piece_char#99 current_piece_char#100 ] zp[2]:26 [ current_piece_gfx#64 current_piece_gfx#111 current_piece_gfx#112 ] zp[1]:67 [ current_xpos#43 current_xpos#14 current_xpos#19 current_xpos#100 current_xpos#22 current_xpos#26 current_xpos#6 current_xpos#8 ] zp[2]:43 [ current_piece#17 current_piece#95 current_piece#96 current_piece#97 current_piece#98 current_piece#99 ] reg byte x [ render_screen_render#22 render_screen_render#63 ] reg byte x [ next_piece_idx#12 next_piece_idx#76 next_piece_idx#77 ] reg byte a [ render_screen_render#15 render_screen_render#65 ] reg byte x [ current_ypos#13 current_ypos#97 current_ypos#98 ] zp[1]:60 [ level_bcd#31 level_bcd#11 level_bcd#17 level_bcd#19 level_bcd#62 level_bcd#21 level_bcd#8 ] zp[1]:64 [ current_orientation#37 current_orientation#13 current_orientation#17 current_orientation#20 current_orientation#25 current_orientation#7 ] zp[1]:59 [ current_movedown_slow#37 current_movedown_slow#14 current_movedown_slow#21 current_movedown_slow#1 current_movedown_slow#23 current_movedown_slow#65 current_movedown_slow#10 ] zp[1]:55 [ current_ypos#38 current_ypos#3 current_ypos#11 current_ypos#19 current_ypos#6 ] zp[2]:61 [ current_piece#28 current_piece#10 current_piece#15 current_piece#101 current_piece#92 ] zp[1]:70 [ game_over#65 game_over#27 game_over#10 game_over#15 game_over#52 ] zp[1]:25 [ current_xpos#59 current_xpos#118 current_xpos#119 ] zp[1]:58 [ level#33 level#10 level#17 level#19 level#21 ] zp[2]:56 [ lines_bcd#26 lines_bcd#19 lines_bcd#15 lines_bcd#17 lines_bcd#29 ] zp[1]:4 [ current_movedown_counter#16 current_movedown_counter#14 current_movedown_counter#12 ] zp[1]:24 [ render_screen_render#33 render_screen_render#64 ] zp[1]:2 [ render_screen_show#16 render_screen_show#13 ] zp[1]:3 [ render_screen_render#18 render_screen_render#11 ] zp[1]:112 [ render_screen_showing ] zp[1]:118 [ irq_sprite_ypos ] zp[1]:120 [ irq_cnt ] zp[1]:119 [ irq_sprite_ptr ] zp[1]:117 [ irq_raster_next ] zp[4]:113 [ score_bcd ] Limited combination testing to 100 combinations of 1944 possible. -Uplifting [render_moving] best 4310615 combination zp[1]:31 [ render_moving::i#4 render_moving::i#3 render_moving::i#8 render_moving::i#2 render_moving::i#1 ] reg byte x [ render_moving::c#2 render_moving::c#1 ] zp[1]:32 [ render_moving::xpos#2 render_moving::xpos#0 render_moving::xpos#1 ] reg byte a [ render_moving::current_cell#0 ] zp[1]:133 [ render_moving::$1 ] zp[1]:134 [ render_moving::$6 ] zp[1]:30 [ render_moving::l#4 render_moving::l#1 ] zp[2]:135 [ render_moving::screen_line#0 ] zp[1]:29 [ render_moving::ypos#2 render_moving::ypos#0 render_moving::ypos#1 ] +Uplifting [render_moving] best 4305495 combination zp[1]:31 [ render_moving::i#4 render_moving::i#3 render_moving::i#8 render_moving::i#2 render_moving::i#1 ] reg byte x [ render_moving::c#2 render_moving::c#1 ] zp[1]:32 [ render_moving::xpos#2 render_moving::xpos#0 render_moving::xpos#1 ] reg byte a [ render_moving::current_cell#0 ] zp[1]:133 [ render_moving::$1 ] zp[1]:134 [ render_moving::$6 ] zp[1]:30 [ render_moving::l#4 render_moving::l#1 ] zp[2]:135 [ render_moving::screen_line#0 ] zp[1]:29 [ render_moving::ypos#2 render_moving::ypos#0 render_moving::ypos#1 ] Limited combination testing to 100 combinations of 15552 possible. -Uplifting [render_next] best 4295611 combination zp[2]:18 [ render_next::next_piece_gfx#2 render_next::next_piece_gfx#3 render_next::next_piece_gfx#1 render_next::next_piece_gfx#9 ] reg byte x [ render_next::c#2 render_next::c#1 ] zp[2]:20 [ render_next::screen_next_area#5 render_next::screen_next_area#10 render_next::screen_next_area#4 render_next::screen_next_area#11 render_next::screen_next_area#3 ] reg byte a [ render_next::cell#0 ] zp[1]:17 [ render_next::l#7 render_next::l#1 ] zp[1]:131 [ render_next::next_piece_char#0 ] reg byte y [ render_next::$6 ] +Uplifting [render_next] best 4290491 combination zp[2]:18 [ render_next::next_piece_gfx#2 render_next::next_piece_gfx#3 render_next::next_piece_gfx#1 render_next::next_piece_gfx#9 ] reg byte x [ render_next::c#2 render_next::c#1 ] zp[2]:20 [ render_next::screen_next_area#5 render_next::screen_next_area#10 render_next::screen_next_area#4 render_next::screen_next_area#11 render_next::screen_next_area#3 ] reg byte a [ render_next::cell#0 ] zp[1]:17 [ render_next::l#7 render_next::l#1 ] zp[1]:131 [ render_next::next_piece_char#0 ] reg byte y [ render_next::$6 ] Limited combination testing to 100 combinations of 128 possible. -Uplifting [play_increase_level] best 4281605 combination reg byte a [ play_increase_level::$5 ] reg byte x [ play_increase_level::b#2 play_increase_level::b#1 ] reg byte a [ play_increase_level::$1 ] -Uplifting [render_playfield] best 4280605 combination zp[2]:37 [ render_playfield::screen_line#2 render_playfield::screen_line#0 render_playfield::screen_line#1 ] zp[1]:39 [ render_playfield::c#2 render_playfield::c#1 ] zp[1]:36 [ render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 ] reg byte a [ render_playfield::$0 ] reg byte a [ render_playfield::$3 ] zp[1]:35 [ render_playfield::l#2 render_playfield::l#1 ] +Uplifting [play_increase_level] best 4276485 combination reg byte a [ play_increase_level::$5 ] reg byte x [ play_increase_level::b#2 play_increase_level::b#1 ] reg byte a [ play_increase_level::$1 ] +Uplifting [render_playfield] best 4275485 combination zp[2]:37 [ render_playfield::screen_line#2 render_playfield::screen_line#0 render_playfield::screen_line#1 ] zp[1]:39 [ render_playfield::c#2 render_playfield::c#1 ] zp[1]:36 [ render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 ] reg byte a [ render_playfield::$0 ] reg byte a [ render_playfield::$3 ] zp[1]:35 [ render_playfield::l#2 render_playfield::l#1 ] Limited combination testing to 100 combinations of 128 possible. -Uplifting [keyboard_matrix_read] best 4268599 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 [render_screen_original] best 4266499 combination zp[2]:107 [ render_screen_original::screen#7 render_screen_original::screen#6 render_screen_original::screen#5 render_screen_original::screen#8 render_screen_original::screen#9 render_screen_original::screen#10 render_screen_original::screen#2 render_screen_original::screen#3 ] reg byte x [ render_screen_original::x#6 render_screen_original::x#5 render_screen_original::x#4 render_screen_original::x#1 render_screen_original::x#2 render_screen_original::x#3 ] zp[2]:109 [ render_screen_original::cols#6 render_screen_original::cols#5 render_screen_original::cols#4 render_screen_original::cols#7 render_screen_original::cols#3 render_screen_original::cols#1 render_screen_original::cols#2 ] zp[2]:103 [ render_screen_original::oscr#2 render_screen_original::oscr#4 render_screen_original::oscr#1 ] zp[2]:105 [ render_screen_original::ocols#2 render_screen_original::ocols#4 render_screen_original::ocols#1 ] zp[1]:102 [ render_screen_original::y#6 render_screen_original::y#1 ] -Uplifting [play_spawn_current] best 4260480 combination reg byte a [ play_spawn_current::sid_rnd1_return#0 ] reg byte a [ play_spawn_current::$1 ] reg byte x [ play_spawn_current::current_piece_idx#0 ] zp[1]:172 [ play_spawn_current::$7 ] -Uplifting [main] best 4259280 combination reg byte a [ main::render#1 ] reg byte x [ main::key_event#0 ] -Uplifting [play_movement] best 4258668 combination reg byte a [ play_movement::return#3 ] zp[1]:40 [ play_movement::return#2 play_movement::render#1 play_movement::return#0 ] zp[1]:123 [ play_movement::key_event#0 ] reg byte a [ play_movement::$3 ] reg byte a [ play_movement::$4 ] zp[1]:145 [ play_movement::render#2 ] +Uplifting [keyboard_matrix_read] best 4263479 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 [render_screen_original] best 4261379 combination zp[2]:107 [ render_screen_original::screen#7 render_screen_original::screen#6 render_screen_original::screen#5 render_screen_original::screen#8 render_screen_original::screen#9 render_screen_original::screen#10 render_screen_original::screen#2 render_screen_original::screen#3 ] reg byte x [ render_screen_original::x#6 render_screen_original::x#5 render_screen_original::x#4 render_screen_original::x#1 render_screen_original::x#2 render_screen_original::x#3 ] zp[2]:109 [ render_screen_original::cols#6 render_screen_original::cols#5 render_screen_original::cols#4 render_screen_original::cols#7 render_screen_original::cols#3 render_screen_original::cols#1 render_screen_original::cols#2 ] zp[2]:103 [ render_screen_original::oscr#2 render_screen_original::oscr#4 render_screen_original::oscr#1 ] zp[2]:105 [ render_screen_original::ocols#2 render_screen_original::ocols#4 render_screen_original::ocols#1 ] zp[1]:102 [ render_screen_original::y#6 render_screen_original::y#1 ] +Uplifting [play_spawn_current] best 4255360 combination reg byte a [ play_spawn_current::sid_rnd1_return#0 ] reg byte a [ play_spawn_current::$1 ] reg byte x [ play_spawn_current::current_piece_idx#0 ] zp[1]:172 [ play_spawn_current::$7 ] +Uplifting [main] best 4254160 combination reg byte a [ main::render#1 ] reg byte x [ main::key_event#0 ] +Uplifting [play_movement] best 4253548 combination reg byte a [ play_movement::return#3 ] zp[1]:40 [ play_movement::return#2 play_movement::render#1 play_movement::return#0 ] zp[1]:123 [ play_movement::key_event#0 ] reg byte a [ play_movement::$3 ] reg byte a [ play_movement::$4 ] zp[1]:145 [ play_movement::render#2 ] Limited combination testing to 100 combinations of 576 possible. -Uplifting [keyboard_event_get] best 4257762 combination reg byte x [ keyboard_event_get::return#3 ] reg byte x [ keyboard_event_get::return#2 keyboard_event_get::return#1 ] -Uplifting [play_init] best 4257552 combination reg byte a [ play_init::$3 ] zp[1]:94 [ play_init::b#2 play_init::b#1 ] reg byte y [ play_init::j#2 play_init::j#1 ] reg byte x [ play_init::$2 ] zp[1]:93 [ play_init::idx#2 play_init::idx#1 ] zp[2]:91 [ play_init::pli#2 play_init::pli#1 ] +Uplifting [keyboard_event_get] best 4252642 combination reg byte x [ keyboard_event_get::return#3 ] reg byte x [ keyboard_event_get::return#2 keyboard_event_get::return#1 ] +Uplifting [play_init] best 4252432 combination reg byte a [ play_init::$3 ] zp[1]:94 [ play_init::b#2 play_init::b#1 ] reg byte y [ play_init::j#2 play_init::j#1 ] reg byte x [ play_init::$2 ] zp[1]:93 [ play_init::idx#2 play_init::idx#1 ] zp[2]:91 [ play_init::pli#2 play_init::pli#1 ] Limited combination testing to 100 combinations of 432 possible. -Uplifting [render_bcd] best 4257522 combination zp[2]:7 [ render_bcd::screen#6 render_bcd::screen#0 render_bcd::screen#1 render_bcd::screen#2 render_bcd::screen#3 render_bcd::screen#4 render_bcd::screen#5 ] reg byte x [ render_bcd::bcd#6 render_bcd::bcd#0 render_bcd::bcd#1 render_bcd::bcd#2 render_bcd::bcd#3 render_bcd::bcd#4 render_bcd::bcd#5 ] zp[2]:13 [ render_bcd::screen_pos#3 render_bcd::screen_pos#0 render_bcd::screen_pos#2 ] reg byte a [ render_bcd::$5 ] reg byte a [ render_bcd::$6 ] reg byte a [ render_bcd::$3 ] zp[1]:129 [ render_bcd::$4 ] zp[2]:9 [ render_bcd::offset#6 ] zp[1]:11 [ render_bcd::only_low#6 ] +Uplifting [render_bcd] best 4252402 combination zp[2]:7 [ render_bcd::screen#6 render_bcd::screen#0 render_bcd::screen#1 render_bcd::screen#2 render_bcd::screen#3 render_bcd::screen#4 render_bcd::screen#5 ] reg byte x [ render_bcd::bcd#6 render_bcd::bcd#0 render_bcd::bcd#1 render_bcd::bcd#2 render_bcd::bcd#3 render_bcd::bcd#4 render_bcd::bcd#5 ] zp[2]:13 [ render_bcd::screen_pos#3 render_bcd::screen_pos#0 render_bcd::screen_pos#2 ] reg byte a [ render_bcd::$5 ] reg byte a [ render_bcd::$6 ] reg byte a [ render_bcd::$3 ] zp[1]:129 [ render_bcd::$4 ] zp[2]:9 [ render_bcd::offset#6 ] zp[1]:11 [ render_bcd::only_low#6 ] Limited combination testing to 100 combinations of 1536 possible. -Uplifting [render_init] best 4257352 combination reg byte y [ render_init::i#2 render_init::i#1 ] reg byte x [ render_init::$5 ] zp[2]:100 [ render_init::li_2#2 render_init::li_2#1 ] zp[2]:98 [ render_init::li_1#2 render_init::li_1#1 ] -Uplifting [sprites_init] best 4257182 combination reg byte y [ sprites_init::s#2 sprites_init::s#1 ] reg byte x [ sprites_init::s2#0 ] zp[1]:96 [ sprites_init::xpos#2 sprites_init::xpos#1 ] -Uplifting [play_move_down] best 4257149 combination reg byte x [ play_move_down::movedown#6 play_move_down::movedown#7 play_move_down::movedown#10 play_move_down::movedown#2 play_move_down::movedown#3 ] reg byte a [ play_move_down::return#0 ] reg byte a [ play_move_down::$2 ] reg byte a [ play_move_down::$12 ] zp[1]:169 [ play_move_down::removed#0 ] zp[1]:140 [ play_move_down::key_event#0 ] zp[1]:68 [ play_move_down::return#3 ] +Uplifting [render_init] best 4252232 combination reg byte y [ render_init::i#2 render_init::i#1 ] reg byte x [ render_init::$5 ] zp[2]:100 [ render_init::li_2#2 render_init::li_2#1 ] zp[2]:98 [ render_init::li_1#2 render_init::li_1#1 ] +Uplifting [sprites_init] best 4252062 combination reg byte y [ sprites_init::s#2 sprites_init::s#1 ] reg byte x [ sprites_init::s2#0 ] zp[1]:96 [ sprites_init::xpos#2 sprites_init::xpos#1 ] +Uplifting [play_move_down] best 4252029 combination reg byte x [ play_move_down::movedown#6 play_move_down::movedown#7 play_move_down::movedown#10 play_move_down::movedown#2 play_move_down::movedown#3 ] reg byte a [ play_move_down::return#0 ] reg byte a [ play_move_down::$2 ] reg byte a [ play_move_down::$12 ] zp[1]:169 [ play_move_down::removed#0 ] zp[1]:140 [ play_move_down::key_event#0 ] zp[1]:68 [ play_move_down::return#3 ] Limited combination testing to 100 combinations of 12288 possible. -Uplifting [keyboard_event_pressed] best 4257129 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[1]:201 [ keyboard_event_pressed::return#1 ] zp[1]:203 [ keyboard_event_pressed::return#2 ] zp[1]:205 [ keyboard_event_pressed::return#10 ] zp[1]:193 [ keyboard_event_pressed::row_bits#0 ] zp[1]:195 [ keyboard_event_pressed::return#11 ] zp[1]:83 [ keyboard_event_pressed::keycode#5 ] +Uplifting [keyboard_event_pressed] best 4252009 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[1]:201 [ keyboard_event_pressed::return#1 ] zp[1]:203 [ keyboard_event_pressed::return#2 ] zp[1]:205 [ keyboard_event_pressed::return#10 ] zp[1]:193 [ keyboard_event_pressed::row_bits#0 ] zp[1]:195 [ keyboard_event_pressed::return#11 ] zp[1]:83 [ keyboard_event_pressed::keycode#5 ] Limited combination testing to 100 combinations of 589824 possible. -Uplifting [sprites_irq] best 4257105 combination zp[1]:218 [ sprites_irq::raster_sprite_gfx_modify ] reg byte x [ sprites_irq::$0 ] reg byte a [ sprites_irq::ptr#4 ] reg byte a [ sprites_irq::ptr#2 ] reg byte a [ sprites_irq::ptr#3 ] zp[1]:222 [ sprites_irq::ptr#1 ] zp[1]:216 [ sprites_irq::ypos#0 ] zp[1]:219 [ sprites_irq::ptr#0 ] +Uplifting [sprites_irq] best 4251985 combination zp[1]:218 [ sprites_irq::raster_sprite_gfx_modify ] reg byte x [ sprites_irq::$0 ] reg byte a [ sprites_irq::ptr#4 ] reg byte a [ sprites_irq::ptr#2 ] reg byte a [ sprites_irq::ptr#3 ] zp[1]:222 [ sprites_irq::ptr#1 ] zp[1]:216 [ sprites_irq::ypos#0 ] zp[1]:219 [ sprites_irq::ptr#0 ] Limited combination testing to 100 combinations of 12288 possible. -Uplifting [play_move_rotate] best 4257087 combination zp[1]:42 [ play_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#2 ] reg byte a [ play_move_rotate::return#0 ] reg byte x [ play_move_rotate::$5 ] reg byte a [ play_move_rotate::$2 ] zp[1]:152 [ play_move_rotate::$7 ] zp[1]:146 [ play_move_rotate::key_event#0 ] zp[1]:41 [ play_move_rotate::return#2 ] +Uplifting [play_move_rotate] best 4251967 combination zp[1]:42 [ play_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#2 ] reg byte a [ play_move_rotate::return#0 ] reg byte x [ play_move_rotate::$5 ] reg byte a [ play_move_rotate::$2 ] zp[1]:152 [ play_move_rotate::$7 ] zp[1]:146 [ play_move_rotate::key_event#0 ] zp[1]:41 [ play_move_rotate::return#2 ] Limited combination testing to 100 combinations of 12288 possible. -Uplifting [play_update_score] best 4257065 combination reg byte a [ play_update_score::$2 ] reg byte a [ play_update_score::$9 ] reg byte a [ play_update_score::$4 ] reg byte a [ play_update_score::lines_after#0 ] zp[4]:179 [ play_update_score::add_bcd#0 ] zp[1]:170 [ play_update_score::removed#0 ] zp[1]:177 [ play_update_score::lines_before#0 ] +Uplifting [play_update_score] best 4251945 combination reg byte a [ play_update_score::$2 ] reg byte a [ play_update_score::$9 ] reg byte a [ play_update_score::$4 ] reg byte a [ play_update_score::lines_after#0 ] zp[4]:179 [ play_update_score::add_bcd#0 ] zp[1]:170 [ play_update_score::removed#0 ] zp[1]:177 [ play_update_score::lines_before#0 ] Limited combination testing to 100 combinations of 2304 possible. -Uplifting [play_move_leftright] best 4257038 combination reg byte a [ play_move_leftright::return#0 ] reg byte a [ play_move_leftright::$4 ] reg byte a [ play_move_leftright::$8 ] reg byte a [ play_move_leftright::key_event#0 ] zp[1]:53 [ play_move_leftright::return#2 ] +Uplifting [play_move_leftright] best 4251918 combination reg byte a [ play_move_leftright::return#0 ] reg byte a [ play_move_leftright::$4 ] reg byte a [ play_move_leftright::$8 ] reg byte a [ play_move_leftright::key_event#0 ] zp[1]:53 [ play_move_leftright::return#2 ] Limited combination testing to 100 combinations of 1024 possible. -Uplifting [render_show] best 4257029 combination reg byte a [ render_show::d018val#3 ] -Uplifting [render_score] best 4257029 combination zp[2]:5 [ render_score::screen#3 ] -Uplifting [sid_rnd_init] best 4257029 combination -Uplifting [render_screen_swap] best 4257029 combination -Uplifting [sprites_irq_init] best 4257029 combination +Uplifting [render_show] best 4251909 combination reg byte a [ render_show::d018val#3 ] +Uplifting [render_score] best 4251909 combination zp[2]:5 [ render_score::screen#3 ] +Uplifting [sid_rnd_init] best 4251909 combination +Uplifting [render_screen_swap] best 4251909 combination +Uplifting [sprites_irq_init] best 4251909 combination Attempting to uplift remaining variables inzp[1]:88 [ keyboard_events_size#10 keyboard_events_size#30 keyboard_events_size#19 keyboard_events_size#16 keyboard_events_size#13 keyboard_events_size#4 keyboard_events_size#29 keyboard_events_size#1 keyboard_events_size#2 ] -Uplifting [] best 4257029 combination zp[1]:88 [ keyboard_events_size#10 keyboard_events_size#30 keyboard_events_size#19 keyboard_events_size#16 keyboard_events_size#13 keyboard_events_size#4 keyboard_events_size#29 keyboard_events_size#1 keyboard_events_size#2 ] +Uplifting [] best 4251909 combination zp[1]:88 [ keyboard_events_size#10 keyboard_events_size#30 keyboard_events_size#19 keyboard_events_size#16 keyboard_events_size#13 keyboard_events_size#4 keyboard_events_size#29 keyboard_events_size#1 keyboard_events_size#2 ] Attempting to uplift remaining variables inzp[1]:49 [ play_collision::i#2 play_collision::i#3 play_collision::i#10 play_collision::i#12 ] -Uplifting [play_collision] best 4257029 combination zp[1]:49 [ play_collision::i#2 play_collision::i#3 play_collision::i#10 play_collision::i#12 ] +Uplifting [play_collision] best 4251909 combination zp[1]:49 [ play_collision::i#2 play_collision::i#3 play_collision::i#10 play_collision::i#12 ] Attempting to uplift remaining variables inzp[1]:80 [ play_lock_current::i#2 play_lock_current::i#3 play_lock_current::i#7 play_lock_current::i#9 ] -Uplifting [play_lock_current] best 4257029 combination zp[1]:80 [ play_lock_current::i#2 play_lock_current::i#3 play_lock_current::i#7 play_lock_current::i#9 ] +Uplifting [play_lock_current] best 4251909 combination zp[1]:80 [ play_lock_current::i#2 play_lock_current::i#3 play_lock_current::i#7 play_lock_current::i#9 ] Attempting to uplift remaining variables inzp[1]:86 [ keyboard_event_scan::col#2 keyboard_event_scan::col#1 ] -Uplifting [keyboard_event_scan] best 4107029 combination reg byte x [ keyboard_event_scan::col#2 keyboard_event_scan::col#1 ] +Uplifting [keyboard_event_scan] best 4101909 combination reg byte x [ keyboard_event_scan::col#2 keyboard_event_scan::col#1 ] Attempting to uplift remaining variables inzp[1]:75 [ play_remove_lines::x#2 play_remove_lines::x#1 ] -Uplifting [play_remove_lines] best 4107029 combination zp[1]:75 [ play_remove_lines::x#2 play_remove_lines::x#1 ] +Uplifting [play_remove_lines] best 4101909 combination zp[1]:75 [ play_remove_lines::x#2 play_remove_lines::x#1 ] Attempting to uplift remaining variables inzp[1]:81 [ play_lock_current::xp#2 play_lock_current::xp#0 play_lock_current::xp#1 ] -Uplifting [play_lock_current] best 4107029 combination zp[1]:81 [ play_lock_current::xp#2 play_lock_current::xp#0 play_lock_current::xp#1 ] +Uplifting [play_lock_current] best 4101909 combination zp[1]:81 [ play_lock_current::xp#2 play_lock_current::xp#0 play_lock_current::xp#1 ] Attempting to uplift remaining variables inzp[1]:50 [ play_collision::xp#2 play_collision::xp#8 play_collision::xp#1 ] -Uplifting [play_collision] best 4107029 combination zp[1]:50 [ play_collision::xp#2 play_collision::xp#8 play_collision::xp#1 ] +Uplifting [play_collision] best 4101909 combination zp[1]:50 [ play_collision::xp#2 play_collision::xp#8 play_collision::xp#1 ] Attempting to uplift remaining variables inzp[1]:87 [ keyboard_event_scan::keycode#10 keyboard_event_scan::keycode#11 keyboard_event_scan::keycode#13 keyboard_event_scan::keycode#14 keyboard_event_scan::keycode#1 ] -Uplifting [keyboard_event_scan] best 4107029 combination zp[1]:87 [ keyboard_event_scan::keycode#10 keyboard_event_scan::keycode#11 keyboard_event_scan::keycode#13 keyboard_event_scan::keycode#14 keyboard_event_scan::keycode#1 ] +Uplifting [keyboard_event_scan] best 4101909 combination zp[1]:87 [ keyboard_event_scan::keycode#10 keyboard_event_scan::keycode#11 keyboard_event_scan::keycode#13 keyboard_event_scan::keycode#14 keyboard_event_scan::keycode#1 ] Attempting to uplift remaining variables inzp[1]:76 [ play_remove_lines::full#4 play_remove_lines::full#2 ] -Uplifting [play_remove_lines] best 4107029 combination zp[1]:76 [ play_remove_lines::full#4 play_remove_lines::full#2 ] +Uplifting [play_remove_lines] best 4101909 combination zp[1]:76 [ play_remove_lines::full#4 play_remove_lines::full#2 ] Attempting to uplift remaining variables inzp[1]:187 [ play_remove_lines::c#0 ] -Uplifting [play_remove_lines] best 4107029 combination zp[1]:187 [ play_remove_lines::c#0 ] +Uplifting [play_remove_lines] best 4101909 combination zp[1]:187 [ play_remove_lines::c#0 ] Attempting to uplift remaining variables inzp[1]:31 [ render_moving::i#4 render_moving::i#3 render_moving::i#8 render_moving::i#2 render_moving::i#1 ] -Uplifting [render_moving] best 4107029 combination zp[1]:31 [ render_moving::i#4 render_moving::i#3 render_moving::i#8 render_moving::i#2 render_moving::i#1 ] +Uplifting [render_moving] best 4101909 combination zp[1]:31 [ render_moving::i#4 render_moving::i#3 render_moving::i#8 render_moving::i#2 render_moving::i#1 ] Attempting to uplift remaining variables inzp[1]:73 [ play_remove_lines::removed#11 play_remove_lines::removed#8 play_remove_lines::removed#1 ] -Uplifting [play_remove_lines] best 4107029 combination zp[1]:73 [ play_remove_lines::removed#11 play_remove_lines::removed#8 play_remove_lines::removed#1 ] +Uplifting [play_remove_lines] best 4101909 combination zp[1]:73 [ play_remove_lines::removed#11 play_remove_lines::removed#8 play_remove_lines::removed#1 ] Attempting to uplift remaining variables inzp[1]:191 [ play_lock_current::i#1 ] -Uplifting [play_lock_current] best 4107029 combination zp[1]:191 [ play_lock_current::i#1 ] +Uplifting [play_lock_current] best 4101909 combination zp[1]:191 [ play_lock_current::i#1 ] Attempting to uplift remaining variables inzp[1]:69 [ next_piece_idx#17 next_piece_idx#30 next_piece_idx#10 next_piece_idx#16 play_spawn_current::piece_idx#2 play_spawn_current::piece_idx#1 ] -Uplifting [] best 4107029 combination zp[1]:69 [ next_piece_idx#17 next_piece_idx#30 next_piece_idx#10 next_piece_idx#16 play_spawn_current::piece_idx#2 play_spawn_current::piece_idx#1 ] +Uplifting [] best 4101909 combination zp[1]:69 [ next_piece_idx#17 next_piece_idx#30 next_piece_idx#10 next_piece_idx#16 play_spawn_current::piece_idx#2 play_spawn_current::piece_idx#1 ] Attempting to uplift remaining variables inzp[1]:85 [ keyboard_event_scan::row#2 keyboard_event_scan::row#1 ] -Uplifting [keyboard_event_scan] best 4107029 combination zp[1]:85 [ keyboard_event_scan::row#2 keyboard_event_scan::row#1 ] +Uplifting [keyboard_event_scan] best 4101909 combination zp[1]:85 [ keyboard_event_scan::row#2 keyboard_event_scan::row#1 ] Attempting to uplift remaining variables inzp[1]:39 [ render_playfield::c#2 render_playfield::c#1 ] -Uplifting [render_playfield] best 4107029 combination zp[1]:39 [ render_playfield::c#2 render_playfield::c#1 ] +Uplifting [render_playfield] best 4101909 combination zp[1]:39 [ render_playfield::c#2 render_playfield::c#1 ] Attempting to uplift remaining variables inzp[1]:155 [ play_collision::$14 ] -Uplifting [play_collision] best 4103029 combination reg byte a [ play_collision::$14 ] +Uplifting [play_collision] best 4097909 combination reg byte a [ play_collision::$14 ] Attempting to uplift remaining variables inzp[1]:72 [ play_remove_lines::y#8 play_remove_lines::y#1 ] -Uplifting [play_remove_lines] best 4103029 combination zp[1]:72 [ play_remove_lines::y#8 play_remove_lines::y#1 ] +Uplifting [play_remove_lines] best 4097909 combination zp[1]:72 [ play_remove_lines::y#8 play_remove_lines::y#1 ] Attempting to uplift remaining variables inzp[1]:158 [ play_collision::i#1 ] -Uplifting [play_collision] best 4103029 combination zp[1]:158 [ play_collision::i#1 ] +Uplifting [play_collision] best 4097909 combination zp[1]:158 [ play_collision::i#1 ] Attempting to uplift remaining variables inzp[1]:36 [ render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 ] -Uplifting [render_playfield] best 4103029 combination zp[1]:36 [ render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 ] +Uplifting [render_playfield] best 4097909 combination zp[1]:36 [ render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 ] Attempting to uplift remaining variables inzp[1]:32 [ render_moving::xpos#2 render_moving::xpos#0 render_moving::xpos#1 ] -Uplifting [render_moving] best 4103029 combination zp[1]:32 [ render_moving::xpos#2 render_moving::xpos#0 render_moving::xpos#1 ] +Uplifting [render_moving] best 4097909 combination zp[1]:32 [ render_moving::xpos#2 render_moving::xpos#0 render_moving::xpos#1 ] Attempting to uplift remaining variables inzp[1]:47 [ play_collision::yp#2 play_collision::yp#0 play_collision::ypos#0 play_collision::ypos#1 play_collision::ypos#2 play_collision::ypos#3 play_collision::ypos#4 play_collision::yp#1 ] -Uplifting [play_collision] best 4103029 combination zp[1]:47 [ play_collision::yp#2 play_collision::yp#0 play_collision::ypos#0 play_collision::ypos#1 play_collision::ypos#2 play_collision::ypos#3 play_collision::ypos#4 play_collision::yp#1 ] +Uplifting [play_collision] best 4097909 combination zp[1]:47 [ play_collision::yp#2 play_collision::yp#0 play_collision::ypos#0 play_collision::ypos#1 play_collision::ypos#2 play_collision::ypos#3 play_collision::ypos#4 play_collision::yp#1 ] Attempting to uplift remaining variables inzp[1]:198 [ keyboard_event_scan::row_scan#0 ] -Uplifting [keyboard_event_scan] best 4103029 combination zp[1]:198 [ keyboard_event_scan::row_scan#0 ] +Uplifting [keyboard_event_scan] best 4097909 combination zp[1]:198 [ keyboard_event_scan::row_scan#0 ] Attempting to uplift remaining variables inzp[1]:79 [ play_lock_current::l#6 play_lock_current::l#1 ] -Uplifting [play_lock_current] best 4103029 combination zp[1]:79 [ play_lock_current::l#6 play_lock_current::l#1 ] +Uplifting [play_lock_current] best 4097909 combination zp[1]:79 [ play_lock_current::l#6 play_lock_current::l#1 ] Attempting to uplift remaining variables inzp[1]:48 [ play_collision::l#6 play_collision::l#1 ] -Uplifting [play_collision] best 4103029 combination zp[1]:48 [ play_collision::l#6 play_collision::l#1 ] +Uplifting [play_collision] best 4097909 combination zp[1]:48 [ play_collision::l#6 play_collision::l#1 ] Attempting to uplift remaining variables inzp[1]:78 [ play_lock_current::yp#2 play_lock_current::yp#0 play_lock_current::yp#1 ] -Uplifting [play_lock_current] best 4103029 combination zp[1]:78 [ play_lock_current::yp#2 play_lock_current::yp#0 play_lock_current::yp#1 ] +Uplifting [play_lock_current] best 4097909 combination zp[1]:78 [ play_lock_current::yp#2 play_lock_current::yp#0 play_lock_current::yp#1 ] Attempting to uplift remaining variables inzp[1]:133 [ render_moving::$1 ] -Uplifting [render_moving] best 4102429 combination reg byte a [ render_moving::$1 ] +Uplifting [render_moving] best 4097309 combination reg byte a [ render_moving::$1 ] Attempting to uplift remaining variables inzp[1]:134 [ render_moving::$6 ] -Uplifting [render_moving] best 4102029 combination reg byte a [ render_moving::$6 ] +Uplifting [render_moving] best 4096909 combination reg byte a [ render_moving::$6 ] Attempting to uplift remaining variables inzp[1]:63 [ current_piece_char#29 current_piece_char#10 current_piece_char#16 current_piece_char#5 ] -Uplifting [] best 4102029 combination zp[1]:63 [ current_piece_char#29 current_piece_char#10 current_piece_char#16 current_piece_char#5 ] +Uplifting [] best 4096909 combination zp[1]:63 [ current_piece_char#29 current_piece_char#10 current_piece_char#16 current_piece_char#5 ] Attempting to uplift remaining variables inzp[1]:35 [ render_playfield::l#2 render_playfield::l#1 ] -Uplifting [render_playfield] best 4102029 combination zp[1]:35 [ render_playfield::l#2 render_playfield::l#1 ] +Uplifting [render_playfield] best 4096909 combination zp[1]:35 [ render_playfield::l#2 render_playfield::l#1 ] Attempting to uplift remaining variables inzp[1]:17 [ render_next::l#7 render_next::l#1 ] -Uplifting [render_next] best 4102029 combination zp[1]:17 [ render_next::l#7 render_next::l#1 ] +Uplifting [render_next] best 4096909 combination zp[1]:17 [ render_next::l#7 render_next::l#1 ] Attempting to uplift remaining variables inzp[1]:30 [ render_moving::l#4 render_moving::l#1 ] -Uplifting [render_moving] best 4102029 combination zp[1]:30 [ render_moving::l#4 render_moving::l#1 ] +Uplifting [render_moving] best 4096909 combination zp[1]:30 [ render_moving::l#4 render_moving::l#1 ] Attempting to uplift remaining variables inzp[1]:29 [ render_moving::ypos#2 render_moving::ypos#0 render_moving::ypos#1 ] -Uplifting [render_moving] best 4102029 combination zp[1]:29 [ render_moving::ypos#2 render_moving::ypos#0 render_moving::ypos#1 ] +Uplifting [render_moving] best 4096909 combination zp[1]:29 [ render_moving::ypos#2 render_moving::ypos#0 render_moving::ypos#1 ] Attempting to uplift remaining variables inzp[1]:28 [ current_piece_char#68 current_piece_char#99 current_piece_char#100 ] -Uplifting [] best 4102029 combination zp[1]:28 [ current_piece_char#68 current_piece_char#99 current_piece_char#100 ] +Uplifting [] best 4096909 combination zp[1]:28 [ current_piece_char#68 current_piece_char#99 current_piece_char#100 ] Attempting to uplift remaining variables inzp[1]:131 [ render_next::next_piece_char#0 ] -Uplifting [render_next] best 4102029 combination zp[1]:131 [ render_next::next_piece_char#0 ] +Uplifting [render_next] best 4096909 combination zp[1]:131 [ render_next::next_piece_char#0 ] Attempting to uplift remaining variables inzp[1]:46 [ play_collision::xpos#6 play_collision::xpos#0 play_collision::xpos#1 play_collision::xpos#2 play_collision::xpos#3 play_collision::xpos#4 ] -Uplifting [play_collision] best 4102029 combination zp[1]:46 [ play_collision::xpos#6 play_collision::xpos#0 play_collision::xpos#1 play_collision::xpos#2 play_collision::xpos#3 play_collision::xpos#4 ] +Uplifting [play_collision] best 4096909 combination zp[1]:46 [ play_collision::xpos#6 play_collision::xpos#0 play_collision::xpos#1 play_collision::xpos#2 play_collision::xpos#3 play_collision::xpos#4 ] Attempting to uplift remaining variables inzp[1]:67 [ current_xpos#43 current_xpos#14 current_xpos#19 current_xpos#100 current_xpos#22 current_xpos#26 current_xpos#6 current_xpos#8 ] -Uplifting [] best 4102029 combination zp[1]:67 [ current_xpos#43 current_xpos#14 current_xpos#19 current_xpos#100 current_xpos#22 current_xpos#26 current_xpos#6 current_xpos#8 ] +Uplifting [] best 4096909 combination zp[1]:67 [ current_xpos#43 current_xpos#14 current_xpos#19 current_xpos#100 current_xpos#22 current_xpos#26 current_xpos#6 current_xpos#8 ] Attempting to uplift remaining variables inzp[1]:40 [ play_movement::return#2 play_movement::render#1 play_movement::return#0 ] -Uplifting [play_movement] best 4102029 combination zp[1]:40 [ play_movement::return#2 play_movement::render#1 play_movement::return#0 ] +Uplifting [play_movement] best 4096909 combination zp[1]:40 [ play_movement::return#2 play_movement::render#1 play_movement::return#0 ] Attempting to uplift remaining variables inzp[1]:94 [ play_init::b#2 play_init::b#1 ] -Uplifting [play_init] best 4101929 combination reg byte x [ play_init::b#2 play_init::b#1 ] +Uplifting [play_init] best 4096809 combination reg byte x [ play_init::b#2 play_init::b#1 ] Attempting to uplift remaining variables inzp[1]:60 [ level_bcd#31 level_bcd#11 level_bcd#17 level_bcd#19 level_bcd#62 level_bcd#21 level_bcd#8 ] -Uplifting [] best 4101929 combination zp[1]:60 [ level_bcd#31 level_bcd#11 level_bcd#17 level_bcd#19 level_bcd#62 level_bcd#21 level_bcd#8 ] +Uplifting [] best 4096809 combination zp[1]:60 [ level_bcd#31 level_bcd#11 level_bcd#17 level_bcd#19 level_bcd#62 level_bcd#21 level_bcd#8 ] Attempting to uplift remaining variables inzp[1]:45 [ play_collision::orientation#5 play_collision::orientation#0 play_collision::orientation#1 play_collision::orientation#2 play_collision::orientation#3 ] -Uplifting [play_collision] best 4101913 combination reg byte x [ play_collision::orientation#5 play_collision::orientation#0 play_collision::orientation#1 play_collision::orientation#2 play_collision::orientation#3 ] +Uplifting [play_collision] best 4096793 combination reg byte x [ play_collision::orientation#5 play_collision::orientation#0 play_collision::orientation#1 play_collision::orientation#2 play_collision::orientation#3 ] Attempting to uplift remaining variables inzp[1]:102 [ render_screen_original::y#6 render_screen_original::y#1 ] -Uplifting [render_screen_original] best 4101913 combination zp[1]:102 [ render_screen_original::y#6 render_screen_original::y#1 ] +Uplifting [render_screen_original] best 4096793 combination zp[1]:102 [ render_screen_original::y#6 render_screen_original::y#1 ] Attempting to uplift remaining variables inzp[1]:64 [ current_orientation#37 current_orientation#13 current_orientation#17 current_orientation#20 current_orientation#25 current_orientation#7 ] -Uplifting [] best 4101913 combination zp[1]:64 [ current_orientation#37 current_orientation#13 current_orientation#17 current_orientation#20 current_orientation#25 current_orientation#7 ] +Uplifting [] best 4096793 combination zp[1]:64 [ current_orientation#37 current_orientation#13 current_orientation#17 current_orientation#20 current_orientation#25 current_orientation#7 ] Attempting to uplift remaining variables inzp[1]:59 [ current_movedown_slow#37 current_movedown_slow#14 current_movedown_slow#21 current_movedown_slow#1 current_movedown_slow#23 current_movedown_slow#65 current_movedown_slow#10 ] -Uplifting [] best 4101913 combination zp[1]:59 [ current_movedown_slow#37 current_movedown_slow#14 current_movedown_slow#21 current_movedown_slow#1 current_movedown_slow#23 current_movedown_slow#65 current_movedown_slow#10 ] +Uplifting [] best 4096793 combination zp[1]:59 [ current_movedown_slow#37 current_movedown_slow#14 current_movedown_slow#21 current_movedown_slow#1 current_movedown_slow#23 current_movedown_slow#65 current_movedown_slow#10 ] Attempting to uplift remaining variables inzp[1]:96 [ sprites_init::xpos#2 sprites_init::xpos#1 ] -Uplifting [sprites_init] best 4101913 combination zp[1]:96 [ sprites_init::xpos#2 sprites_init::xpos#1 ] +Uplifting [sprites_init] best 4096793 combination zp[1]:96 [ sprites_init::xpos#2 sprites_init::xpos#1 ] Attempting to uplift remaining variables inzp[1]:55 [ current_ypos#38 current_ypos#3 current_ypos#11 current_ypos#19 current_ypos#6 ] -Uplifting [] best 4101913 combination zp[1]:55 [ current_ypos#38 current_ypos#3 current_ypos#11 current_ypos#19 current_ypos#6 ] +Uplifting [] best 4096793 combination zp[1]:55 [ current_ypos#38 current_ypos#3 current_ypos#11 current_ypos#19 current_ypos#6 ] Attempting to uplift remaining variables inzp[1]:70 [ game_over#65 game_over#27 game_over#10 game_over#15 game_over#52 ] -Uplifting [] best 4101913 combination zp[1]:70 [ game_over#65 game_over#27 game_over#10 game_over#15 game_over#52 ] +Uplifting [] best 4096793 combination zp[1]:70 [ game_over#65 game_over#27 game_over#10 game_over#15 game_over#52 ] Attempting to uplift remaining variables inzp[1]:25 [ current_xpos#59 current_xpos#118 current_xpos#119 ] -Uplifting [] best 4101913 combination zp[1]:25 [ current_xpos#59 current_xpos#118 current_xpos#119 ] +Uplifting [] best 4096793 combination zp[1]:25 [ current_xpos#59 current_xpos#118 current_xpos#119 ] Attempting to uplift remaining variables inzp[1]:93 [ play_init::idx#2 play_init::idx#1 ] -Uplifting [play_init] best 4101913 combination zp[1]:93 [ play_init::idx#2 play_init::idx#1 ] +Uplifting [play_init] best 4096793 combination zp[1]:93 [ play_init::idx#2 play_init::idx#1 ] Attempting to uplift remaining variables inzp[1]:58 [ level#33 level#10 level#17 level#19 level#21 ] -Uplifting [] best 4101913 combination zp[1]:58 [ level#33 level#10 level#17 level#19 level#21 ] +Uplifting [] best 4096793 combination zp[1]:58 [ level#33 level#10 level#17 level#19 level#21 ] Attempting to uplift remaining variables inzp[1]:4 [ current_movedown_counter#16 current_movedown_counter#14 current_movedown_counter#12 ] -Uplifting [] best 4101913 combination zp[1]:4 [ current_movedown_counter#16 current_movedown_counter#14 current_movedown_counter#12 ] +Uplifting [] best 4096793 combination zp[1]:4 [ current_movedown_counter#16 current_movedown_counter#14 current_movedown_counter#12 ] Attempting to uplift remaining variables inzp[1]:24 [ render_screen_render#33 render_screen_render#64 ] -Uplifting [] best 4101913 combination zp[1]:24 [ render_screen_render#33 render_screen_render#64 ] +Uplifting [] best 4096793 combination zp[1]:24 [ render_screen_render#33 render_screen_render#64 ] Attempting to uplift remaining variables inzp[1]:2 [ render_screen_show#16 render_screen_show#13 ] -Uplifting [] best 4101913 combination zp[1]:2 [ render_screen_show#16 render_screen_show#13 ] +Uplifting [] best 4096793 combination zp[1]:2 [ render_screen_show#16 render_screen_show#13 ] Attempting to uplift remaining variables inzp[1]:123 [ play_movement::key_event#0 ] -Uplifting [play_movement] best 4101913 combination zp[1]:123 [ play_movement::key_event#0 ] +Uplifting [play_movement] best 4096793 combination zp[1]:123 [ play_movement::key_event#0 ] Attempting to uplift remaining variables inzp[1]:42 [ play_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#2 ] -Uplifting [play_move_rotate] best 4101913 combination zp[1]:42 [ play_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#2 ] +Uplifting [play_move_rotate] best 4096793 combination zp[1]:42 [ play_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#2 ] Attempting to uplift remaining variables inzp[1]:3 [ render_screen_render#18 render_screen_render#11 ] -Uplifting [] best 4101913 combination zp[1]:3 [ render_screen_render#18 render_screen_render#11 ] +Uplifting [] best 4096793 combination zp[1]:3 [ render_screen_render#18 render_screen_render#11 ] Attempting to uplift remaining variables inzp[1]:218 [ sprites_irq::raster_sprite_gfx_modify ] -Uplifting [sprites_irq] best 4101913 combination zp[1]:218 [ sprites_irq::raster_sprite_gfx_modify ] +Uplifting [sprites_irq] best 4096793 combination zp[1]:218 [ sprites_irq::raster_sprite_gfx_modify ] Attempting to uplift remaining variables inzp[1]:129 [ render_bcd::$4 ] -Uplifting [render_bcd] best 4101907 combination reg byte a [ render_bcd::$4 ] +Uplifting [render_bcd] best 4096787 combination reg byte a [ render_bcd::$4 ] Attempting to uplift remaining variables inzp[1]:150 [ play_collision::return#14 ] -Uplifting [play_collision] best 4101901 combination reg byte a [ play_collision::return#14 ] +Uplifting [play_collision] best 4096781 combination reg byte a [ play_collision::return#14 ] Attempting to uplift remaining variables inzp[1]:152 [ play_move_rotate::$7 ] -Uplifting [play_move_rotate] best 4101895 combination reg byte x [ play_move_rotate::$7 ] +Uplifting [play_move_rotate] best 4096775 combination reg byte x [ play_move_rotate::$7 ] Attempting to uplift remaining variables inzp[1]:160 [ play_collision::return#13 ] -Uplifting [play_collision] best 4101889 combination reg byte a [ play_collision::return#13 ] +Uplifting [play_collision] best 4096769 combination reg byte a [ play_collision::return#13 ] Attempting to uplift remaining variables inzp[1]:162 [ play_collision::return#1 ] -Uplifting [play_collision] best 4101883 combination reg byte a [ play_collision::return#1 ] +Uplifting [play_collision] best 4096763 combination reg byte a [ play_collision::return#1 ] Attempting to uplift remaining variables inzp[1]:166 [ play_collision::return#0 ] -Uplifting [play_collision] best 4101877 combination reg byte a [ play_collision::return#0 ] +Uplifting [play_collision] best 4096757 combination reg byte a [ play_collision::return#0 ] Attempting to uplift remaining variables inzp[1]:168 [ play_remove_lines::return#0 ] -Uplifting [play_remove_lines] best 4101871 combination reg byte a [ play_remove_lines::return#0 ] +Uplifting [play_remove_lines] best 4096751 combination reg byte a [ play_remove_lines::return#0 ] Attempting to uplift remaining variables inzp[1]:169 [ play_move_down::removed#0 ] -Uplifting [play_move_down] best 4101865 combination reg byte a [ play_move_down::removed#0 ] +Uplifting [play_move_down] best 4096745 combination reg byte a [ play_move_down::removed#0 ] Attempting to uplift remaining variables inzp[1]:173 [ play_collision::return#10 ] -Uplifting [play_collision] best 4101859 combination reg byte a [ play_collision::return#10 ] +Uplifting [play_collision] best 4096739 combination reg byte a [ play_collision::return#10 ] Attempting to uplift remaining variables inzp[1]:200 [ keyboard_event_scan::$0 ] -Uplifting [keyboard_event_scan] best 4101853 combination reg byte a [ keyboard_event_scan::$0 ] +Uplifting [keyboard_event_scan] best 4096733 combination reg byte a [ keyboard_event_scan::$0 ] Attempting to uplift remaining variables inzp[1]:201 [ keyboard_event_pressed::return#1 ] -Uplifting [keyboard_event_pressed] best 4101847 combination reg byte a [ keyboard_event_pressed::return#1 ] +Uplifting [keyboard_event_pressed] best 4096727 combination reg byte a [ keyboard_event_pressed::return#1 ] Attempting to uplift remaining variables inzp[1]:202 [ keyboard_event_scan::$3 ] -Uplifting [keyboard_event_scan] best 4101841 combination reg byte a [ keyboard_event_scan::$3 ] +Uplifting [keyboard_event_scan] best 4096721 combination reg byte a [ keyboard_event_scan::$3 ] Attempting to uplift remaining variables inzp[1]:203 [ keyboard_event_pressed::return#2 ] -Uplifting [keyboard_event_pressed] best 4101835 combination reg byte a [ keyboard_event_pressed::return#2 ] +Uplifting [keyboard_event_pressed] best 4096715 combination reg byte a [ keyboard_event_pressed::return#2 ] Attempting to uplift remaining variables inzp[1]:204 [ keyboard_event_scan::$6 ] -Uplifting [keyboard_event_scan] best 4101829 combination reg byte a [ keyboard_event_scan::$6 ] +Uplifting [keyboard_event_scan] best 4096709 combination reg byte a [ keyboard_event_scan::$6 ] Attempting to uplift remaining variables inzp[1]:205 [ keyboard_event_pressed::return#10 ] -Uplifting [keyboard_event_pressed] best 4101823 combination reg byte a [ keyboard_event_pressed::return#10 ] +Uplifting [keyboard_event_pressed] best 4096703 combination reg byte a [ keyboard_event_pressed::return#10 ] Attempting to uplift remaining variables inzp[1]:206 [ keyboard_event_scan::$9 ] -Uplifting [keyboard_event_scan] best 4101817 combination reg byte a [ keyboard_event_scan::$9 ] +Uplifting [keyboard_event_scan] best 4096697 combination reg byte a [ keyboard_event_scan::$9 ] Attempting to uplift remaining variables inzp[1]:146 [ play_move_rotate::key_event#0 ] -Uplifting [play_move_rotate] best 4101808 combination reg byte a [ play_move_rotate::key_event#0 ] +Uplifting [play_move_rotate] best 4096688 combination reg byte a [ play_move_rotate::key_event#0 ] Attempting to uplift remaining variables inzp[1]:222 [ sprites_irq::ptr#1 ] -Uplifting [sprites_irq] best 4101796 combination reg byte x [ sprites_irq::ptr#1 ] +Uplifting [sprites_irq] best 4096676 combination reg byte x [ sprites_irq::ptr#1 ] Attempting to uplift remaining variables inzp[1]:216 [ sprites_irq::ypos#0 ] -Uplifting [sprites_irq] best 4101781 combination reg byte a [ sprites_irq::ypos#0 ] +Uplifting [sprites_irq] best 4096661 combination reg byte a [ sprites_irq::ypos#0 ] Attempting to uplift remaining variables inzp[1]:219 [ sprites_irq::ptr#0 ] -Uplifting [sprites_irq] best 4101766 combination reg byte x [ sprites_irq::ptr#0 ] +Uplifting [sprites_irq] best 4096646 combination reg byte x [ sprites_irq::ptr#0 ] Attempting to uplift remaining variables inzp[1]:140 [ play_move_down::key_event#0 ] -Uplifting [play_move_down] best 4101760 combination reg byte a [ play_move_down::key_event#0 ] +Uplifting [play_move_down] best 4096640 combination reg byte a [ play_move_down::key_event#0 ] Attempting to uplift remaining variables inzp[1]:193 [ keyboard_event_pressed::row_bits#0 ] -Uplifting [keyboard_event_pressed] best 4101760 combination zp[1]:193 [ keyboard_event_pressed::row_bits#0 ] +Uplifting [keyboard_event_pressed] best 4096640 combination zp[1]:193 [ keyboard_event_pressed::row_bits#0 ] Attempting to uplift remaining variables inzp[1]:195 [ keyboard_event_pressed::return#11 ] -Uplifting [keyboard_event_pressed] best 4101742 combination reg byte a [ keyboard_event_pressed::return#11 ] +Uplifting [keyboard_event_pressed] best 4096622 combination reg byte a [ keyboard_event_pressed::return#11 ] Attempting to uplift remaining variables inzp[1]:52 [ play_collision::return#15 ] -Uplifting [play_collision] best 4101712 combination reg byte a [ play_collision::return#15 ] +Uplifting [play_collision] best 4096592 combination reg byte a [ play_collision::return#15 ] Attempting to uplift remaining variables inzp[1]:83 [ keyboard_event_pressed::keycode#5 ] -Uplifting [keyboard_event_pressed] best 4101712 combination zp[1]:83 [ keyboard_event_pressed::keycode#5 ] +Uplifting [keyboard_event_pressed] best 4096592 combination zp[1]:83 [ keyboard_event_pressed::keycode#5 ] Attempting to uplift remaining variables inzp[1]:170 [ play_update_score::removed#0 ] -Uplifting [play_update_score] best 4101706 combination reg byte x [ play_update_score::removed#0 ] +Uplifting [play_update_score] best 4096586 combination reg byte x [ play_update_score::removed#0 ] Attempting to uplift remaining variables inzp[1]:11 [ render_bcd::only_low#6 ] -Uplifting [render_bcd] best 4101685 combination reg byte y [ render_bcd::only_low#6 ] +Uplifting [render_bcd] best 4096565 combination reg byte y [ render_bcd::only_low#6 ] Attempting to uplift remaining variables inzp[1]:145 [ play_movement::render#2 ] -Uplifting [play_movement] best 4101685 combination zp[1]:145 [ play_movement::render#2 ] +Uplifting [play_movement] best 4096565 combination zp[1]:145 [ play_movement::render#2 ] Attempting to uplift remaining variables inzp[1]:41 [ play_move_rotate::return#2 ] -Uplifting [play_move_rotate] best 4101676 combination reg byte a [ play_move_rotate::return#2 ] +Uplifting [play_move_rotate] best 4096556 combination reg byte a [ play_move_rotate::return#2 ] Attempting to uplift remaining variables inzp[1]:53 [ play_move_leftright::return#2 ] -Uplifting [play_move_leftright] best 4101667 combination reg byte a [ play_move_leftright::return#2 ] +Uplifting [play_move_leftright] best 4096547 combination reg byte a [ play_move_leftright::return#2 ] Attempting to uplift remaining variables inzp[1]:68 [ play_move_down::return#3 ] -Uplifting [play_move_down] best 4101660 combination reg byte x [ play_move_down::return#3 ] +Uplifting [play_move_down] best 4096540 combination reg byte x [ play_move_down::return#3 ] Attempting to uplift remaining variables inzp[1]:112 [ render_screen_showing ] -Uplifting [] best 4101660 combination zp[1]:112 [ render_screen_showing ] +Uplifting [] best 4096540 combination zp[1]:112 [ render_screen_showing ] Attempting to uplift remaining variables inzp[1]:118 [ irq_sprite_ypos ] -Uplifting [] best 4101660 combination zp[1]:118 [ irq_sprite_ypos ] +Uplifting [] best 4096540 combination zp[1]:118 [ irq_sprite_ypos ] Attempting to uplift remaining variables inzp[1]:120 [ irq_cnt ] -Uplifting [] best 4101660 combination zp[1]:120 [ irq_cnt ] +Uplifting [] best 4096540 combination zp[1]:120 [ irq_cnt ] Attempting to uplift remaining variables inzp[1]:119 [ irq_sprite_ptr ] -Uplifting [] best 4101660 combination zp[1]:119 [ irq_sprite_ptr ] +Uplifting [] best 4096540 combination zp[1]:119 [ irq_sprite_ptr ] Attempting to uplift remaining variables inzp[1]:117 [ irq_raster_next ] -Uplifting [] best 4101660 combination zp[1]:117 [ irq_raster_next ] +Uplifting [] best 4096540 combination zp[1]:117 [ irq_raster_next ] Attempting to uplift remaining variables inzp[1]:177 [ play_update_score::lines_before#0 ] -Uplifting [play_update_score] best 4101660 combination zp[1]:177 [ play_update_score::lines_before#0 ] +Uplifting [play_update_score] best 4096540 combination zp[1]:177 [ play_update_score::lines_before#0 ] Attempting to uplift remaining variables inzp[1]:172 [ play_spawn_current::$7 ] -Uplifting [play_spawn_current] best 4101660 combination zp[1]:172 [ play_spawn_current::$7 ] +Uplifting [play_spawn_current] best 4096540 combination zp[1]:172 [ play_spawn_current::$7 ] Coalescing zero page register [ zp[2]:5 [ render_score::screen#3 ] ] with [ zp[2]:7 [ render_bcd::screen#6 render_bcd::screen#0 render_bcd::screen#1 render_bcd::screen#2 render_bcd::screen#3 render_bcd::screen#4 render_bcd::screen#5 ] ] - score: 6 Coalescing zero page register [ zp[1]:40 [ play_movement::return#2 play_movement::render#1 play_movement::return#0 ] ] with [ zp[1]:145 [ play_movement::render#2 ] ] - score: 2 Coalescing zero page register [ zp[2]:9 [ render_bcd::offset#6 ] ] with [ zp[2]:13 [ render_bcd::screen_pos#3 render_bcd::screen_pos#0 render_bcd::screen_pos#2 ] ] - score: 1 @@ -16781,9 +16760,9 @@ Allocated (was zp[1]:193) zp[1]:45 [ keyboard_event_pressed::row_bits#0 play_spa Allocated (was zp[1]:198) zp[1]:46 [ keyboard_event_scan::row_scan#0 play_lock_current::i#1 play_collision::i#1 ] Allocated (was zp[1]:218) zp[1]:47 [ sprites_irq::raster_sprite_gfx_modify ] Interrupt procedure sprites_irq clobbers AXCNZV -Removing interrupt register storage sty regy+1 in 1185 entry interrupt(HARDWARE_CLOBBER) -Removing interrupt register storage regy: in 1219 [576] return - exit interrupt(HARDWARE_CLOBBER) -Removing interrupt register storage ldy #00 in 1219 [576] return - exit interrupt(HARDWARE_CLOBBER) +Removing interrupt register storage sty regy+1 in 1183 entry interrupt(HARDWARE_CLOBBER) +Removing interrupt register storage regy: in 1217 [574] return - exit interrupt(HARDWARE_CLOBBER) +Removing interrupt register storage ldy #00 in 1217 [574] return - exit interrupt(HARDWARE_CLOBBER) ASSEMBLER BEFORE OPTIMIZATION // File Comments @@ -16881,10 +16860,6 @@ ASSEMBLER BEFORE OPTIMIZATION .label PLAYFIELD_SPRITE_PTRS_1 = PLAYFIELD_SCREEN_1+SPRITE_PTRS // Screen Sprite pointers on screen 2 .label PLAYFIELD_SPRITE_PTRS_2 = PLAYFIELD_SCREEN_2+SPRITE_PTRS - // Address of the original playscreen chars - .label PLAYFIELD_SCREEN_ORIGINAL = $3000 - // Address of the original playscreen colors - .label PLAYFIELD_COLORS_ORIGINAL = $1c00 // Address of the sprites covering the playfield .label PLAYFIELD_SPRITES = $2000 // Address of the charset @@ -16978,9 +16953,6 @@ __b1: lda #>0>>$10 sta.z score_bcd+3 // kickasm(location (const byte*) PLAYFIELD_CHARSET) {{ .fill 8,$00 // Place a filled char at the start of the charset .import binary "playfield-screen.imap" }} - // kickasm(location (const byte*) PLAYFIELD_SCREEN_ORIGINAL) {{ // Load chars for the screen .var screen = LoadBinary("playfield-screen.iscr") // Load extended colors for the screen .var extended = LoadBinary("playfield-extended.col") // screen.get(i)+1 because the charset is loaded into PLAYFIELD_CHARSET+8 // extended.get(i)-1 because the extended colors are 1-based (1/2/3/4) // <<6 to move extended colors to the upper 2 bits .fill screen.getSize(), ( (screen.get(i)+1) | (extended.get(i)-1)<<6 ) }} - // kickasm(location (const byte*) PLAYFIELD_COLORS_ORIGINAL) {{ .import binary "playfield-screen.col" }} - // Original Color Data jmp __b2 // @2 __b2: @@ -16988,15 +16960,15 @@ __b2: jmp __b3 // @3 __b3: - // [7] (byte) irq_raster_next ← (const byte) IRQ_RASTER_FIRST -- vbuz1=vbuc1 + // [5] (byte) irq_raster_next ← (const byte) IRQ_RASTER_FIRST -- vbuz1=vbuc1 // The raster line of the next IRQ lda #IRQ_RASTER_FIRST sta.z irq_raster_next - // [8] (byte) irq_sprite_ypos ← (const byte) SPRITES_FIRST_YPOS+(byte) $15 -- vbuz1=vbuc1 + // [6] (byte) irq_sprite_ypos ← (const byte) SPRITES_FIRST_YPOS+(byte) $15 -- vbuz1=vbuc1 // Y-pos of the sprites on the next IRQ lda #SPRITES_FIRST_YPOS+$15 sta.z irq_sprite_ypos - // [9] phi from @3 to toSpritePtr1 [phi:@3->toSpritePtr1] + // [7] phi from @3 to toSpritePtr1 [phi:@3->toSpritePtr1] toSpritePtr1_from___b3: jmp toSpritePtr1 // toSpritePtr1 @@ -17004,212 +16976,212 @@ toSpritePtr1: jmp __b5 // @5 __b5: - // [10] (byte) irq_sprite_ptr ← (const byte) toSpritePtr1_return#0+(byte) 3 -- vbuz1=vbuc1 + // [8] (byte) irq_sprite_ptr ← (const byte) toSpritePtr1_return#0+(byte) 3 -- vbuz1=vbuc1 // Index of the sprites to show on the next IRQ lda #toSpritePtr1_return+3 sta.z irq_sprite_ptr - // [11] (byte) irq_cnt ← (byte) 0 -- vbuz1=vbuc1 + // [9] (byte) irq_cnt ← (byte) 0 -- vbuz1=vbuc1 // Counting the 10 IRQs lda #0 sta.z irq_cnt - // [12] phi from @5 to @4 [phi:@5->@4] + // [10] phi from @5 to @4 [phi:@5->@4] __b4_from___b5: jmp __b4 // @4 __b4: - // [13] call main - // [15] phi from @4 to main [phi:@4->main] + // [11] call main + // [13] phi from @4 to main [phi:@4->main] main_from___b4: jsr main - // [14] phi from @4 to @end [phi:@4->@end] + // [12] phi from @4 to @end [phi:@4->@end] __bend_from___b4: jmp __bend // @end __bend: // main main: { - // [16] call sid_rnd_init + // [14] call sid_rnd_init jsr sid_rnd_init jmp __b8 // main::@8 __b8: // asm { sei } sei - // [18] call render_init - // [498] phi from main::@8 to render_init [phi:main::@8->render_init] + // [16] call render_init + // [496] phi from main::@8 to render_init [phi:main::@8->render_init] render_init_from___b8: jsr render_init - // [19] phi from main::@8 to main::@9 [phi:main::@8->main::@9] + // [17] phi from main::@8 to main::@9 [phi:main::@8->main::@9] __b9_from___b8: jmp __b9 // main::@9 __b9: - // [20] call sprites_init + // [18] call sprites_init jsr sprites_init - // [21] phi from main::@9 to main::@10 [phi:main::@9->main::@10] + // [19] phi from main::@9 to main::@10 [phi:main::@9->main::@10] __b10_from___b9: jmp __b10 // main::@10 __b10: - // [22] call sprites_irq_init + // [20] call sprites_irq_init jsr sprites_irq_init - // [23] phi from main::@10 to main::@11 [phi:main::@10->main::@11] + // [21] phi from main::@10 to main::@11 [phi:main::@10->main::@11] __b11_from___b10: jmp __b11 // main::@11 __b11: - // [24] call play_init - // [457] phi from main::@11 to play_init [phi:main::@11->play_init] + // [22] call play_init + // [455] phi from main::@11 to play_init [phi:main::@11->play_init] play_init_from___b11: jsr play_init - // [25] phi from main::@11 to main::@12 [phi:main::@11->main::@12] + // [23] phi from main::@11 to main::@12 [phi:main::@11->main::@12] __b12_from___b11: jmp __b12 // main::@12 __b12: - // [26] call play_spawn_current - // [287] phi from main::@12 to play_spawn_current [phi:main::@12->play_spawn_current] + // [24] call play_spawn_current + // [285] phi from main::@12 to play_spawn_current [phi:main::@12->play_spawn_current] play_spawn_current_from___b12: - // [287] phi (byte) game_over#65 = (byte) 0 [phi:main::@12->play_spawn_current#0] -- vbuz1=vbuc1 + // [285] phi (byte) game_over#65 = (byte) 0 [phi:main::@12->play_spawn_current#0] -- vbuz1=vbuc1 lda #0 sta.z game_over - // [287] phi (byte) next_piece_idx#17 = (byte) 0 [phi:main::@12->play_spawn_current#1] -- vbuz1=vbuc1 + // [285] phi (byte) next_piece_idx#17 = (byte) 0 [phi:main::@12->play_spawn_current#1] -- vbuz1=vbuc1 lda #0 sta.z next_piece_idx jsr play_spawn_current - // [27] phi from main::@12 to main::@13 [phi:main::@12->main::@13] + // [25] phi from main::@12 to main::@13 [phi:main::@12->main::@13] __b13_from___b12: jmp __b13 // main::@13 __b13: - // [28] call play_spawn_current - // [287] phi from main::@13 to play_spawn_current [phi:main::@13->play_spawn_current] + // [26] call play_spawn_current + // [285] phi from main::@13 to play_spawn_current [phi:main::@13->play_spawn_current] play_spawn_current_from___b13: - // [287] phi (byte) game_over#65 = (byte) game_over#52 [phi:main::@13->play_spawn_current#0] -- register_copy - // [287] phi (byte) next_piece_idx#17 = (byte) play_spawn_current::piece_idx#2 [phi:main::@13->play_spawn_current#1] -- register_copy + // [285] phi (byte) game_over#65 = (byte) game_over#52 [phi:main::@13->play_spawn_current#0] -- register_copy + // [285] phi (byte) next_piece_idx#17 = (byte) play_spawn_current::piece_idx#2 [phi:main::@13->play_spawn_current#1] -- register_copy jsr play_spawn_current - // [29] phi from main::@13 to main::@14 [phi:main::@13->main::@14] + // [27] phi from main::@13 to main::@14 [phi:main::@13->main::@14] __b14_from___b13: jmp __b14 // main::@14 __b14: - // [30] call render_playfield - // [152] phi from main::@14 to render_playfield [phi:main::@14->render_playfield] + // [28] call render_playfield + // [150] phi from main::@14 to render_playfield [phi:main::@14->render_playfield] render_playfield_from___b14: - // [152] phi (byte) render_screen_render#22 = (byte) $20 [phi:main::@14->render_playfield#0] -- vbuxx=vbuc1 + // [150] phi (byte) render_screen_render#22 = (byte) $20 [phi:main::@14->render_playfield#0] -- vbuxx=vbuc1 ldx #$20 jsr render_playfield jmp __b15 // main::@15 __b15: - // [31] (byte) current_ypos#97 ← (byte) current_ypos#6 -- vbuxx=vbuz1 + // [29] (byte) current_ypos#97 ← (byte) current_ypos#6 -- vbuxx=vbuz1 ldx.z current_ypos - // [32] (byte) current_xpos#118 ← (byte) current_xpos#100 -- vbuz1=vbuz2 + // [30] (byte) current_xpos#118 ← (byte) current_xpos#100 -- vbuz1=vbuz2 lda.z current_xpos sta.z current_xpos_1 - // [33] (byte*) current_piece_gfx#111 ← (byte*)*((const word*) PIECES + (byte~) play_spawn_current::$7) -- pbuz1=pptc1_derefidx_vbuz2 + // [31] (byte*) current_piece_gfx#111 ← (byte*)*((const word*) PIECES + (byte~) play_spawn_current::$7) -- pbuz1=pptc1_derefidx_vbuz2 ldy.z play_spawn_current.__7 lda PIECES,y sta.z current_piece_gfx_1 lda PIECES+1,y sta.z current_piece_gfx_1+1 - // [34] (byte) current_piece_char#99 ← (byte) current_piece_char#5 -- vbuz1=vbuz2 + // [32] (byte) current_piece_char#99 ← (byte) current_piece_char#5 -- vbuz1=vbuz2 lda.z current_piece_char sta.z current_piece_char_1 - // [35] call render_moving - // [130] phi from main::@15 to render_moving [phi:main::@15->render_moving] + // [33] call render_moving + // [128] phi from main::@15 to render_moving [phi:main::@15->render_moving] render_moving_from___b15: - // [130] phi (byte) current_piece_char#68 = (byte) current_piece_char#99 [phi:main::@15->render_moving#0] -- register_copy - // [130] phi (byte*) current_piece_gfx#64 = (byte*) current_piece_gfx#111 [phi:main::@15->render_moving#1] -- register_copy - // [130] phi (byte) current_xpos#59 = (byte) current_xpos#118 [phi:main::@15->render_moving#2] -- register_copy - // [130] phi (byte) render_screen_render#33 = (byte) $20 [phi:main::@15->render_moving#3] -- vbuz1=vbuc1 + // [128] phi (byte) current_piece_char#68 = (byte) current_piece_char#99 [phi:main::@15->render_moving#0] -- register_copy + // [128] phi (byte*) current_piece_gfx#64 = (byte*) current_piece_gfx#111 [phi:main::@15->render_moving#1] -- register_copy + // [128] phi (byte) current_xpos#59 = (byte) current_xpos#118 [phi:main::@15->render_moving#2] -- register_copy + // [128] phi (byte) render_screen_render#33 = (byte) $20 [phi:main::@15->render_moving#3] -- vbuz1=vbuc1 lda #$20 sta.z render_screen_render_1 - // [130] phi (byte) current_ypos#13 = (byte) current_ypos#97 [phi:main::@15->render_moving#4] -- register_copy + // [128] phi (byte) current_ypos#13 = (byte) current_ypos#97 [phi:main::@15->render_moving#4] -- register_copy jsr render_moving jmp __b16 // main::@16 __b16: - // [36] (byte) next_piece_idx#76 ← (byte) play_spawn_current::piece_idx#2 -- vbuxx=vbuz1 + // [34] (byte) next_piece_idx#76 ← (byte) play_spawn_current::piece_idx#2 -- vbuxx=vbuz1 ldx.z play_spawn_current.piece_idx - // [37] call render_next - // [109] phi from main::@16 to render_next [phi:main::@16->render_next] + // [35] call render_next + // [107] phi from main::@16 to render_next [phi:main::@16->render_next] render_next_from___b16: - // [109] phi (byte) next_piece_idx#12 = (byte) next_piece_idx#76 [phi:main::@16->render_next#0] -- register_copy - // [109] phi (byte) render_screen_render#15 = (byte) $20 [phi:main::@16->render_next#1] -- vbuaa=vbuc1 + // [107] phi (byte) next_piece_idx#12 = (byte) next_piece_idx#76 [phi:main::@16->render_next#0] -- register_copy + // [107] phi (byte) render_screen_render#15 = (byte) $20 [phi:main::@16->render_next#1] -- vbuaa=vbuc1 lda #$20 jsr render_next jmp __b17 // main::@17 __b17: - // [38] (byte*) current_piece#101 ← (byte*)*((const word*) PIECES + (byte~) play_spawn_current::$7) -- pbuz1=pptc1_derefidx_vbuz2 + // [36] (byte*) current_piece#101 ← (byte*)*((const word*) PIECES + (byte~) play_spawn_current::$7) -- pbuz1=pptc1_derefidx_vbuz2 ldy.z play_spawn_current.__7 lda PIECES,y sta.z current_piece lda PIECES+1,y sta.z current_piece+1 - // [39] (byte*) current_piece_gfx#123 ← (byte*)*((const word*) PIECES + (byte~) play_spawn_current::$7) -- pbuz1=pptc1_derefidx_vbuz2 + // [37] (byte*) current_piece_gfx#123 ← (byte*)*((const word*) PIECES + (byte~) play_spawn_current::$7) -- pbuz1=pptc1_derefidx_vbuz2 ldy.z play_spawn_current.__7 lda PIECES,y sta.z current_piece_gfx lda PIECES+1,y sta.z current_piece_gfx+1 - // [40] phi from main::@17 to main::@1 [phi:main::@17->main::@1] + // [38] phi from main::@17 to main::@1 [phi:main::@17->main::@1] __b1_from___b17: - // [40] phi (byte) level_bcd#11 = (byte) 0 [phi:main::@17->main::@1#0] -- vbuz1=vbuc1 + // [38] phi (byte) level_bcd#11 = (byte) 0 [phi:main::@17->main::@1#0] -- vbuz1=vbuc1 lda #0 sta.z level_bcd - // [40] phi (byte) level#10 = (byte) 0 [phi:main::@17->main::@1#1] -- vbuz1=vbuc1 + // [38] phi (byte) level#10 = (byte) 0 [phi:main::@17->main::@1#1] -- vbuz1=vbuc1 lda #0 sta.z level - // [40] phi (word) lines_bcd#19 = (word) 0 [phi:main::@17->main::@1#2] -- vwuz1=vwuc1 + // [38] phi (word) lines_bcd#19 = (word) 0 [phi:main::@17->main::@1#2] -- vwuz1=vwuc1 lda #<0 sta.z lines_bcd lda #>0 sta.z lines_bcd+1 - // [40] phi (byte) current_movedown_counter#16 = (byte) 0 [phi:main::@17->main::@1#3] -- vbuz1=vbuc1 + // [38] phi (byte) current_movedown_counter#16 = (byte) 0 [phi:main::@17->main::@1#3] -- vbuz1=vbuc1 lda #0 sta.z current_movedown_counter - // [40] phi (byte) keyboard_events_size#19 = (byte) 0 [phi:main::@17->main::@1#4] -- vbuz1=vbuc1 + // [38] phi (byte) keyboard_events_size#19 = (byte) 0 [phi:main::@17->main::@1#4] -- vbuz1=vbuc1 lda #0 sta.z keyboard_events_size - // [40] phi (byte) next_piece_idx#10 = (byte) play_spawn_current::piece_idx#2 [phi:main::@17->main::@1#5] -- register_copy - // [40] phi (byte) game_over#10 = (byte) game_over#52 [phi:main::@17->main::@1#6] -- register_copy - // [40] phi (byte) current_ypos#11 = (byte) current_ypos#6 [phi:main::@17->main::@1#7] -- register_copy - // [40] phi (byte) current_xpos#14 = (byte) current_xpos#100 [phi:main::@17->main::@1#8] -- register_copy - // [40] phi (byte*) current_piece_gfx#13 = (byte*) current_piece_gfx#123 [phi:main::@17->main::@1#9] -- register_copy - // [40] phi (byte) current_orientation#13 = (byte) 0 [phi:main::@17->main::@1#10] -- vbuz1=vbuc1 + // [38] phi (byte) next_piece_idx#10 = (byte) play_spawn_current::piece_idx#2 [phi:main::@17->main::@1#5] -- register_copy + // [38] phi (byte) game_over#10 = (byte) game_over#52 [phi:main::@17->main::@1#6] -- register_copy + // [38] phi (byte) current_ypos#11 = (byte) current_ypos#6 [phi:main::@17->main::@1#7] -- register_copy + // [38] phi (byte) current_xpos#14 = (byte) current_xpos#100 [phi:main::@17->main::@1#8] -- register_copy + // [38] phi (byte*) current_piece_gfx#13 = (byte*) current_piece_gfx#123 [phi:main::@17->main::@1#9] -- register_copy + // [38] phi (byte) current_orientation#13 = (byte) 0 [phi:main::@17->main::@1#10] -- vbuz1=vbuc1 lda #0 sta.z current_orientation - // [40] phi (byte) current_piece_char#10 = (byte) current_piece_char#5 [phi:main::@17->main::@1#11] -- register_copy - // [40] phi (byte*) current_piece#10 = (byte*) current_piece#101 [phi:main::@17->main::@1#12] -- register_copy - // [40] phi (byte) current_movedown_slow#14 = (byte) current_movedown_slow#1 [phi:main::@17->main::@1#13] -- register_copy - // [40] phi (byte) render_screen_render#18 = (byte) $20 [phi:main::@17->main::@1#14] -- vbuz1=vbuc1 + // [38] phi (byte) current_piece_char#10 = (byte) current_piece_char#5 [phi:main::@17->main::@1#11] -- register_copy + // [38] phi (byte*) current_piece#10 = (byte*) current_piece#101 [phi:main::@17->main::@1#12] -- register_copy + // [38] phi (byte) current_movedown_slow#14 = (byte) current_movedown_slow#1 [phi:main::@17->main::@1#13] -- register_copy + // [38] phi (byte) render_screen_render#18 = (byte) $20 [phi:main::@17->main::@1#14] -- vbuz1=vbuc1 lda #$20 sta.z render_screen_render - // [40] phi (byte) render_screen_show#16 = (byte) 0 [phi:main::@17->main::@1#15] -- vbuz1=vbuc1 + // [38] phi (byte) render_screen_show#16 = (byte) 0 [phi:main::@17->main::@1#15] -- vbuz1=vbuc1 lda #0 sta.z render_screen_show jmp __b1 - // [40] phi from main::@25 main::@6 to main::@1 [phi:main::@25/main::@6->main::@1] + // [38] phi from main::@25 main::@6 to main::@1 [phi:main::@25/main::@6->main::@1] __b1_from___b25: __b1_from___b6: - // [40] phi (byte) level_bcd#11 = (byte) level_bcd#17 [phi:main::@25/main::@6->main::@1#0] -- register_copy - // [40] phi (byte) level#10 = (byte) level#17 [phi:main::@25/main::@6->main::@1#1] -- register_copy - // [40] phi (word) lines_bcd#19 = (word) lines_bcd#15 [phi:main::@25/main::@6->main::@1#2] -- register_copy - // [40] phi (byte) current_movedown_counter#16 = (byte) current_movedown_counter#14 [phi:main::@25/main::@6->main::@1#3] -- register_copy - // [40] phi (byte) keyboard_events_size#19 = (byte) keyboard_events_size#16 [phi:main::@25/main::@6->main::@1#4] -- register_copy - // [40] phi (byte) next_piece_idx#10 = (byte) next_piece_idx#16 [phi:main::@25/main::@6->main::@1#5] -- register_copy - // [40] phi (byte) game_over#10 = (byte) game_over#15 [phi:main::@25/main::@6->main::@1#6] -- register_copy - // [40] phi (byte) current_ypos#11 = (byte) current_ypos#19 [phi:main::@25/main::@6->main::@1#7] -- register_copy - // [40] phi (byte) current_xpos#14 = (byte) current_xpos#19 [phi:main::@25/main::@6->main::@1#8] -- register_copy - // [40] phi (byte*) current_piece_gfx#13 = (byte*) current_piece_gfx#18 [phi:main::@25/main::@6->main::@1#9] -- register_copy - // [40] phi (byte) current_orientation#13 = (byte) current_orientation#17 [phi:main::@25/main::@6->main::@1#10] -- register_copy - // [40] phi (byte) current_piece_char#10 = (byte) current_piece_char#16 [phi:main::@25/main::@6->main::@1#11] -- register_copy - // [40] phi (byte*) current_piece#10 = (byte*) current_piece#15 [phi:main::@25/main::@6->main::@1#12] -- register_copy - // [40] phi (byte) current_movedown_slow#14 = (byte) current_movedown_slow#21 [phi:main::@25/main::@6->main::@1#13] -- register_copy - // [40] phi (byte) render_screen_render#18 = (byte) render_screen_render#11 [phi:main::@25/main::@6->main::@1#14] -- register_copy - // [40] phi (byte) render_screen_show#16 = (byte) render_screen_show#13 [phi:main::@25/main::@6->main::@1#15] -- register_copy + // [38] phi (byte) level_bcd#11 = (byte) level_bcd#17 [phi:main::@25/main::@6->main::@1#0] -- register_copy + // [38] phi (byte) level#10 = (byte) level#17 [phi:main::@25/main::@6->main::@1#1] -- register_copy + // [38] phi (word) lines_bcd#19 = (word) lines_bcd#15 [phi:main::@25/main::@6->main::@1#2] -- register_copy + // [38] phi (byte) current_movedown_counter#16 = (byte) current_movedown_counter#14 [phi:main::@25/main::@6->main::@1#3] -- register_copy + // [38] phi (byte) keyboard_events_size#19 = (byte) keyboard_events_size#16 [phi:main::@25/main::@6->main::@1#4] -- register_copy + // [38] phi (byte) next_piece_idx#10 = (byte) next_piece_idx#16 [phi:main::@25/main::@6->main::@1#5] -- register_copy + // [38] phi (byte) game_over#10 = (byte) game_over#15 [phi:main::@25/main::@6->main::@1#6] -- register_copy + // [38] phi (byte) current_ypos#11 = (byte) current_ypos#19 [phi:main::@25/main::@6->main::@1#7] -- register_copy + // [38] phi (byte) current_xpos#14 = (byte) current_xpos#19 [phi:main::@25/main::@6->main::@1#8] -- register_copy + // [38] phi (byte*) current_piece_gfx#13 = (byte*) current_piece_gfx#18 [phi:main::@25/main::@6->main::@1#9] -- register_copy + // [38] phi (byte) current_orientation#13 = (byte) current_orientation#17 [phi:main::@25/main::@6->main::@1#10] -- register_copy + // [38] phi (byte) current_piece_char#10 = (byte) current_piece_char#16 [phi:main::@25/main::@6->main::@1#11] -- register_copy + // [38] phi (byte*) current_piece#10 = (byte*) current_piece#15 [phi:main::@25/main::@6->main::@1#12] -- register_copy + // [38] phi (byte) current_movedown_slow#14 = (byte) current_movedown_slow#21 [phi:main::@25/main::@6->main::@1#13] -- register_copy + // [38] phi (byte) render_screen_render#18 = (byte) render_screen_render#11 [phi:main::@25/main::@6->main::@1#14] -- register_copy + // [38] phi (byte) render_screen_show#16 = (byte) render_screen_show#13 [phi:main::@25/main::@6->main::@1#15] -- register_copy jmp __b1 // main::@1 __b1: @@ -17217,148 +17189,148 @@ main: { // Wait for a frame to pass // main::@2 __b2: - // [41] if(*((const byte*) RASTER)!=(byte) $ff) goto main::@2 -- _deref_pbuc1_neq_vbuc2_then_la1 + // [39] if(*((const byte*) RASTER)!=(byte) $ff) goto main::@2 -- _deref_pbuc1_neq_vbuc2_then_la1 lda #$ff cmp RASTER bne __b2 - // [42] phi from main::@2 to main::@3 [phi:main::@2->main::@3] + // [40] phi from main::@2 to main::@3 [phi:main::@2->main::@3] __b3_from___b2: jmp __b3 // main::@3 __b3: - // [43] call render_show + // [41] call render_show jsr render_show - // [44] phi from main::@3 to main::@18 [phi:main::@3->main::@18] + // [42] phi from main::@3 to main::@18 [phi:main::@3->main::@18] __b18_from___b3: jmp __b18 // main::@18 __b18: - // [45] call keyboard_event_scan - // [392] phi from main::@18 to keyboard_event_scan [phi:main::@18->keyboard_event_scan] + // [43] call keyboard_event_scan + // [390] phi from main::@18 to keyboard_event_scan [phi:main::@18->keyboard_event_scan] keyboard_event_scan_from___b18: jsr keyboard_event_scan - // [46] phi from main::@18 to main::@19 [phi:main::@18->main::@19] + // [44] phi from main::@18 to main::@19 [phi:main::@18->main::@19] __b19_from___b18: jmp __b19 // main::@19 __b19: - // [47] call keyboard_event_get + // [45] call keyboard_event_get jsr keyboard_event_get - // [48] (byte) keyboard_event_get::return#3 ← (byte) keyboard_event_get::return#2 + // [46] (byte) keyboard_event_get::return#3 ← (byte) keyboard_event_get::return#2 jmp __b20 // main::@20 __b20: - // [49] (byte) main::key_event#0 ← (byte) keyboard_event_get::return#3 - // [50] if((byte) game_over#10==(byte) 0) goto main::@4 -- vbuz1_eq_0_then_la1 + // [47] (byte) main::key_event#0 ← (byte) keyboard_event_get::return#3 + // [48] if((byte) game_over#10==(byte) 0) goto main::@4 -- vbuz1_eq_0_then_la1 lda.z game_over cmp #0 beq __b4 jmp __b5 // main::@5 __b5: - // [51] *((const byte*) BORDERCOL) ← ++ *((const byte*) BORDERCOL) -- _deref_pbuc1=_inc__deref_pbuc1 + // [49] *((const byte*) BORDERCOL) ← ++ *((const byte*) BORDERCOL) -- _deref_pbuc1=_inc__deref_pbuc1 inc BORDERCOL jmp __b5 // main::@4 __b4: - // [52] (byte) play_movement::key_event#0 ← (byte) main::key_event#0 -- vbuz1=vbuxx + // [50] (byte) play_movement::key_event#0 ← (byte) main::key_event#0 -- vbuz1=vbuxx stx.z play_movement.key_event - // [53] call play_movement + // [51] call play_movement jsr play_movement - // [54] (byte) play_movement::return#3 ← (byte) play_movement::return#2 -- vbuaa=vbuz1 + // [52] (byte) play_movement::return#3 ← (byte) play_movement::return#2 -- vbuaa=vbuz1 lda.z play_movement.return jmp __b21 // main::@21 __b21: - // [55] (byte) main::render#1 ← (byte) play_movement::return#3 + // [53] (byte) main::render#1 ← (byte) play_movement::return#3 jmp __b6 // main::@6 __b6: - // [56] if((byte) main::render#1==(byte) 0) goto main::@1 -- vbuaa_eq_0_then_la1 + // [54] if((byte) main::render#1==(byte) 0) goto main::@1 -- vbuaa_eq_0_then_la1 cmp #0 beq __b1_from___b6 jmp __b7 // main::@7 __b7: - // [57] (byte) render_screen_render#63 ← (byte) render_screen_render#18 -- vbuxx=vbuz1 + // [55] (byte) render_screen_render#63 ← (byte) render_screen_render#18 -- vbuxx=vbuz1 ldx.z render_screen_render - // [58] call render_playfield - // [152] phi from main::@7 to render_playfield [phi:main::@7->render_playfield] + // [56] call render_playfield + // [150] phi from main::@7 to render_playfield [phi:main::@7->render_playfield] render_playfield_from___b7: - // [152] phi (byte) render_screen_render#22 = (byte) render_screen_render#63 [phi:main::@7->render_playfield#0] -- register_copy + // [150] phi (byte) render_screen_render#22 = (byte) render_screen_render#63 [phi:main::@7->render_playfield#0] -- register_copy jsr render_playfield jmp __b22 // main::@22 __b22: - // [59] (byte) current_ypos#98 ← (byte) current_ypos#19 -- vbuxx=vbuz1 + // [57] (byte) current_ypos#98 ← (byte) current_ypos#19 -- vbuxx=vbuz1 ldx.z current_ypos - // [60] (byte) render_screen_render#64 ← (byte) render_screen_render#18 -- vbuz1=vbuz2 + // [58] (byte) render_screen_render#64 ← (byte) render_screen_render#18 -- vbuz1=vbuz2 lda.z render_screen_render sta.z render_screen_render_1 - // [61] (byte) current_xpos#119 ← (byte) current_xpos#19 -- vbuz1=vbuz2 + // [59] (byte) current_xpos#119 ← (byte) current_xpos#19 -- vbuz1=vbuz2 lda.z current_xpos sta.z current_xpos_1 - // [62] (byte*) current_piece_gfx#112 ← (byte*) current_piece_gfx#18 -- pbuz1=pbuz2 + // [60] (byte*) current_piece_gfx#112 ← (byte*) current_piece_gfx#18 -- pbuz1=pbuz2 lda.z current_piece_gfx sta.z current_piece_gfx_1 lda.z current_piece_gfx+1 sta.z current_piece_gfx_1+1 - // [63] (byte) current_piece_char#100 ← (byte) current_piece_char#16 -- vbuz1=vbuz2 + // [61] (byte) current_piece_char#100 ← (byte) current_piece_char#16 -- vbuz1=vbuz2 lda.z current_piece_char sta.z current_piece_char_1 - // [64] call render_moving - // [130] phi from main::@22 to render_moving [phi:main::@22->render_moving] + // [62] call render_moving + // [128] phi from main::@22 to render_moving [phi:main::@22->render_moving] render_moving_from___b22: - // [130] phi (byte) current_piece_char#68 = (byte) current_piece_char#100 [phi:main::@22->render_moving#0] -- register_copy - // [130] phi (byte*) current_piece_gfx#64 = (byte*) current_piece_gfx#112 [phi:main::@22->render_moving#1] -- register_copy - // [130] phi (byte) current_xpos#59 = (byte) current_xpos#119 [phi:main::@22->render_moving#2] -- register_copy - // [130] phi (byte) render_screen_render#33 = (byte) render_screen_render#64 [phi:main::@22->render_moving#3] -- register_copy - // [130] phi (byte) current_ypos#13 = (byte) current_ypos#98 [phi:main::@22->render_moving#4] -- register_copy + // [128] phi (byte) current_piece_char#68 = (byte) current_piece_char#100 [phi:main::@22->render_moving#0] -- register_copy + // [128] phi (byte*) current_piece_gfx#64 = (byte*) current_piece_gfx#112 [phi:main::@22->render_moving#1] -- register_copy + // [128] phi (byte) current_xpos#59 = (byte) current_xpos#119 [phi:main::@22->render_moving#2] -- register_copy + // [128] phi (byte) render_screen_render#33 = (byte) render_screen_render#64 [phi:main::@22->render_moving#3] -- register_copy + // [128] phi (byte) current_ypos#13 = (byte) current_ypos#98 [phi:main::@22->render_moving#4] -- register_copy jsr render_moving jmp __b23 // main::@23 __b23: - // [65] (byte) render_screen_render#65 ← (byte) render_screen_render#18 -- vbuaa=vbuz1 + // [63] (byte) render_screen_render#65 ← (byte) render_screen_render#18 -- vbuaa=vbuz1 lda.z render_screen_render - // [66] (byte) next_piece_idx#77 ← (byte) next_piece_idx#16 -- vbuxx=vbuz1 + // [64] (byte) next_piece_idx#77 ← (byte) next_piece_idx#16 -- vbuxx=vbuz1 ldx.z next_piece_idx - // [67] call render_next - // [109] phi from main::@23 to render_next [phi:main::@23->render_next] + // [65] call render_next + // [107] phi from main::@23 to render_next [phi:main::@23->render_next] render_next_from___b23: - // [109] phi (byte) next_piece_idx#12 = (byte) next_piece_idx#77 [phi:main::@23->render_next#0] -- register_copy - // [109] phi (byte) render_screen_render#15 = (byte) render_screen_render#65 [phi:main::@23->render_next#1] -- register_copy + // [107] phi (byte) next_piece_idx#12 = (byte) next_piece_idx#77 [phi:main::@23->render_next#0] -- register_copy + // [107] phi (byte) render_screen_render#15 = (byte) render_screen_render#65 [phi:main::@23->render_next#1] -- register_copy jsr render_next - // [68] phi from main::@23 to main::@24 [phi:main::@23->main::@24] + // [66] phi from main::@23 to main::@24 [phi:main::@23->main::@24] __b24_from___b23: jmp __b24 // main::@24 __b24: - // [69] call render_score + // [67] call render_score jsr render_score - // [70] phi from main::@24 to main::@25 [phi:main::@24->main::@25] + // [68] phi from main::@24 to main::@25 [phi:main::@24->main::@25] __b25_from___b24: jmp __b25 // main::@25 __b25: - // [71] call render_screen_swap + // [69] call render_screen_swap jsr render_screen_swap jmp __b1_from___b25 } // render_screen_swap // Swap rendering to the other screen (used for double buffering) render_screen_swap: { - // [72] (byte) render_screen_render#11 ← (byte) render_screen_render#18 ^ (byte) $20 -- vbuz1=vbuz1_bxor_vbuc1 + // [70] (byte) render_screen_render#11 ← (byte) render_screen_render#18 ^ (byte) $20 -- vbuz1=vbuz1_bxor_vbuc1 lda #$20 eor.z render_screen_render sta.z render_screen_render - // [73] (byte) render_screen_show#13 ← (byte) render_screen_show#16 ^ (byte) $20 -- vbuz1=vbuz1_bxor_vbuc1 + // [71] (byte) render_screen_show#13 ← (byte) render_screen_show#16 ^ (byte) $20 -- vbuz1=vbuz1_bxor_vbuc1 lda #$20 eor.z render_screen_show sta.z render_screen_show jmp __breturn // render_screen_swap::@return __breturn: - // [74] return + // [72] return rts } // render_score @@ -17369,26 +17341,26 @@ render_score: { .const lines_offset = $28*1+$16 .const level_offset = $28*$13+$1f .label screen = $23 - // [75] if((byte) render_screen_render#18==(byte) 0) goto render_score::@1 -- vbuz1_eq_0_then_la1 + // [73] if((byte) render_screen_render#18==(byte) 0) goto render_score::@1 -- vbuz1_eq_0_then_la1 lda.z render_screen_render cmp #0 beq __b1_from_render_score - // [77] phi from render_score to render_score::@2 [phi:render_score->render_score::@2] + // [75] phi from render_score to render_score::@2 [phi:render_score->render_score::@2] __b2_from_render_score: - // [77] phi (byte*) render_score::screen#3 = (const byte*) PLAYFIELD_SCREEN_2 [phi:render_score->render_score::@2#0] -- pbuz1=pbuc1 + // [75] phi (byte*) render_score::screen#3 = (const byte*) PLAYFIELD_SCREEN_2 [phi:render_score->render_score::@2#0] -- pbuz1=pbuc1 lda #PLAYFIELD_SCREEN_2 sta.z screen+1 jmp __b2 - // [76] phi from render_score to render_score::@1 [phi:render_score->render_score::@1] + // [74] phi from render_score to render_score::@1 [phi:render_score->render_score::@1] __b1_from_render_score: jmp __b1 // render_score::@1 __b1: - // [77] phi from render_score::@1 to render_score::@2 [phi:render_score::@1->render_score::@2] + // [75] phi from render_score::@1 to render_score::@2 [phi:render_score::@1->render_score::@2] __b2_from___b1: - // [77] phi (byte*) render_score::screen#3 = (const byte*) PLAYFIELD_SCREEN_1 [phi:render_score::@1->render_score::@2#0] -- pbuz1=pbuc1 + // [75] phi (byte*) render_score::screen#3 = (const byte*) PLAYFIELD_SCREEN_1 [phi:render_score::@1->render_score::@2#0] -- pbuz1=pbuc1 lda #PLAYFIELD_SCREEN_1 @@ -17396,123 +17368,123 @@ render_score: { jmp __b2 // render_score::@2 __b2: - // [78] (byte*) render_bcd::screen#0 ← (byte*) render_score::screen#3 - // [79] (byte) render_bcd::bcd#0 ← *((const byte*) render_score::score_bytes+(byte) 2) -- vbuxx=_deref_pbuc1 + // [76] (byte*) render_bcd::screen#0 ← (byte*) render_score::screen#3 + // [77] (byte) render_bcd::bcd#0 ← *((const byte*) render_score::score_bytes+(byte) 2) -- vbuxx=_deref_pbuc1 ldx score_bytes+2 - // [80] call render_bcd - // [97] phi from render_score::@2 to render_bcd [phi:render_score::@2->render_bcd] + // [78] call render_bcd + // [95] phi from render_score::@2 to render_bcd [phi:render_score::@2->render_bcd] render_bcd_from___b2: - // [97] phi (byte) render_bcd::bcd#6 = (byte) render_bcd::bcd#0 [phi:render_score::@2->render_bcd#0] -- register_copy - // [97] phi (byte) render_bcd::only_low#6 = (byte) 0 [phi:render_score::@2->render_bcd#1] -- vbuyy=vbuc1 + // [95] phi (byte) render_bcd::bcd#6 = (byte) render_bcd::bcd#0 [phi:render_score::@2->render_bcd#0] -- register_copy + // [95] phi (byte) render_bcd::only_low#6 = (byte) 0 [phi:render_score::@2->render_bcd#1] -- vbuyy=vbuc1 ldy #0 - // [97] phi (word) render_bcd::offset#6 = (const word) render_score::score_offset [phi:render_score::@2->render_bcd#2] -- vwuz1=vwuc1 + // [95] phi (word) render_bcd::offset#6 = (const word) render_score::score_offset [phi:render_score::@2->render_bcd#2] -- vwuz1=vwuc1 lda #score_offset sta.z render_bcd.offset+1 - // [97] phi (byte*) render_bcd::screen#6 = (byte*) render_bcd::screen#0 [phi:render_score::@2->render_bcd#3] -- register_copy + // [95] phi (byte*) render_bcd::screen#6 = (byte*) render_bcd::screen#0 [phi:render_score::@2->render_bcd#3] -- register_copy jsr render_bcd jmp __b3 // render_score::@3 __b3: - // [81] (byte*) render_bcd::screen#1 ← (byte*) render_score::screen#3 - // [82] (byte) render_bcd::bcd#1 ← *((const byte*) render_score::score_bytes+(byte) 1) -- vbuxx=_deref_pbuc1 + // [79] (byte*) render_bcd::screen#1 ← (byte*) render_score::screen#3 + // [80] (byte) render_bcd::bcd#1 ← *((const byte*) render_score::score_bytes+(byte) 1) -- vbuxx=_deref_pbuc1 ldx score_bytes+1 - // [83] call render_bcd - // [97] phi from render_score::@3 to render_bcd [phi:render_score::@3->render_bcd] + // [81] call render_bcd + // [95] phi from render_score::@3 to render_bcd [phi:render_score::@3->render_bcd] render_bcd_from___b3: - // [97] phi (byte) render_bcd::bcd#6 = (byte) render_bcd::bcd#1 [phi:render_score::@3->render_bcd#0] -- register_copy - // [97] phi (byte) render_bcd::only_low#6 = (byte) 0 [phi:render_score::@3->render_bcd#1] -- vbuyy=vbuc1 + // [95] phi (byte) render_bcd::bcd#6 = (byte) render_bcd::bcd#1 [phi:render_score::@3->render_bcd#0] -- register_copy + // [95] phi (byte) render_bcd::only_low#6 = (byte) 0 [phi:render_score::@3->render_bcd#1] -- vbuyy=vbuc1 ldy #0 - // [97] phi (word) render_bcd::offset#6 = (const word) render_score::score_offset+(byte) 2 [phi:render_score::@3->render_bcd#2] -- vwuz1=vwuc1 + // [95] phi (word) render_bcd::offset#6 = (const word) render_score::score_offset+(byte) 2 [phi:render_score::@3->render_bcd#2] -- vwuz1=vwuc1 lda #score_offset+2 sta.z render_bcd.offset+1 - // [97] phi (byte*) render_bcd::screen#6 = (byte*) render_bcd::screen#1 [phi:render_score::@3->render_bcd#3] -- register_copy + // [95] phi (byte*) render_bcd::screen#6 = (byte*) render_bcd::screen#1 [phi:render_score::@3->render_bcd#3] -- register_copy jsr render_bcd jmp __b4 // render_score::@4 __b4: - // [84] (byte*) render_bcd::screen#2 ← (byte*) render_score::screen#3 - // [85] (byte) render_bcd::bcd#2 ← *((const byte*) render_score::score_bytes) -- vbuxx=_deref_pbuc1 + // [82] (byte*) render_bcd::screen#2 ← (byte*) render_score::screen#3 + // [83] (byte) render_bcd::bcd#2 ← *((const byte*) render_score::score_bytes) -- vbuxx=_deref_pbuc1 ldx.z score_bytes - // [86] call render_bcd - // [97] phi from render_score::@4 to render_bcd [phi:render_score::@4->render_bcd] + // [84] call render_bcd + // [95] phi from render_score::@4 to render_bcd [phi:render_score::@4->render_bcd] render_bcd_from___b4: - // [97] phi (byte) render_bcd::bcd#6 = (byte) render_bcd::bcd#2 [phi:render_score::@4->render_bcd#0] -- register_copy - // [97] phi (byte) render_bcd::only_low#6 = (byte) 0 [phi:render_score::@4->render_bcd#1] -- vbuyy=vbuc1 + // [95] phi (byte) render_bcd::bcd#6 = (byte) render_bcd::bcd#2 [phi:render_score::@4->render_bcd#0] -- register_copy + // [95] phi (byte) render_bcd::only_low#6 = (byte) 0 [phi:render_score::@4->render_bcd#1] -- vbuyy=vbuc1 ldy #0 - // [97] phi (word) render_bcd::offset#6 = (const word) render_score::score_offset+(byte) 4 [phi:render_score::@4->render_bcd#2] -- vwuz1=vwuc1 + // [95] phi (word) render_bcd::offset#6 = (const word) render_score::score_offset+(byte) 4 [phi:render_score::@4->render_bcd#2] -- vwuz1=vwuc1 lda #score_offset+4 sta.z render_bcd.offset+1 - // [97] phi (byte*) render_bcd::screen#6 = (byte*) render_bcd::screen#2 [phi:render_score::@4->render_bcd#3] -- register_copy + // [95] phi (byte*) render_bcd::screen#6 = (byte*) render_bcd::screen#2 [phi:render_score::@4->render_bcd#3] -- register_copy jsr render_bcd jmp __b5 // render_score::@5 __b5: - // [87] (byte) render_bcd::bcd#3 ← > (word) lines_bcd#15 -- vbuxx=_hi_vwuz1 + // [85] (byte) render_bcd::bcd#3 ← > (word) lines_bcd#15 -- vbuxx=_hi_vwuz1 lda.z lines_bcd+1 tax - // [88] (byte*) render_bcd::screen#3 ← (byte*) render_score::screen#3 - // [89] call render_bcd - // [97] phi from render_score::@5 to render_bcd [phi:render_score::@5->render_bcd] + // [86] (byte*) render_bcd::screen#3 ← (byte*) render_score::screen#3 + // [87] call render_bcd + // [95] phi from render_score::@5 to render_bcd [phi:render_score::@5->render_bcd] render_bcd_from___b5: - // [97] phi (byte) render_bcd::bcd#6 = (byte) render_bcd::bcd#3 [phi:render_score::@5->render_bcd#0] -- register_copy - // [97] phi (byte) render_bcd::only_low#6 = (byte) 1 [phi:render_score::@5->render_bcd#1] -- vbuyy=vbuc1 + // [95] phi (byte) render_bcd::bcd#6 = (byte) render_bcd::bcd#3 [phi:render_score::@5->render_bcd#0] -- register_copy + // [95] phi (byte) render_bcd::only_low#6 = (byte) 1 [phi:render_score::@5->render_bcd#1] -- vbuyy=vbuc1 ldy #1 - // [97] phi (word) render_bcd::offset#6 = (const word) render_score::lines_offset [phi:render_score::@5->render_bcd#2] -- vwuz1=vwuc1 + // [95] phi (word) render_bcd::offset#6 = (const word) render_score::lines_offset [phi:render_score::@5->render_bcd#2] -- vwuz1=vwuc1 lda #lines_offset sta.z render_bcd.offset+1 - // [97] phi (byte*) render_bcd::screen#6 = (byte*) render_bcd::screen#3 [phi:render_score::@5->render_bcd#3] -- register_copy + // [95] phi (byte*) render_bcd::screen#6 = (byte*) render_bcd::screen#3 [phi:render_score::@5->render_bcd#3] -- register_copy jsr render_bcd jmp __b6 // render_score::@6 __b6: - // [90] (byte) render_bcd::bcd#4 ← < (word) lines_bcd#15 -- vbuxx=_lo_vwuz1 + // [88] (byte) render_bcd::bcd#4 ← < (word) lines_bcd#15 -- vbuxx=_lo_vwuz1 lda.z lines_bcd tax - // [91] (byte*) render_bcd::screen#4 ← (byte*) render_score::screen#3 - // [92] call render_bcd - // [97] phi from render_score::@6 to render_bcd [phi:render_score::@6->render_bcd] + // [89] (byte*) render_bcd::screen#4 ← (byte*) render_score::screen#3 + // [90] call render_bcd + // [95] phi from render_score::@6 to render_bcd [phi:render_score::@6->render_bcd] render_bcd_from___b6: - // [97] phi (byte) render_bcd::bcd#6 = (byte) render_bcd::bcd#4 [phi:render_score::@6->render_bcd#0] -- register_copy - // [97] phi (byte) render_bcd::only_low#6 = (byte) 0 [phi:render_score::@6->render_bcd#1] -- vbuyy=vbuc1 + // [95] phi (byte) render_bcd::bcd#6 = (byte) render_bcd::bcd#4 [phi:render_score::@6->render_bcd#0] -- register_copy + // [95] phi (byte) render_bcd::only_low#6 = (byte) 0 [phi:render_score::@6->render_bcd#1] -- vbuyy=vbuc1 ldy #0 - // [97] phi (word) render_bcd::offset#6 = (const word) render_score::lines_offset+(byte) 1 [phi:render_score::@6->render_bcd#2] -- vwuz1=vwuc1 + // [95] phi (word) render_bcd::offset#6 = (const word) render_score::lines_offset+(byte) 1 [phi:render_score::@6->render_bcd#2] -- vwuz1=vwuc1 lda #lines_offset+1 sta.z render_bcd.offset+1 - // [97] phi (byte*) render_bcd::screen#6 = (byte*) render_bcd::screen#4 [phi:render_score::@6->render_bcd#3] -- register_copy + // [95] phi (byte*) render_bcd::screen#6 = (byte*) render_bcd::screen#4 [phi:render_score::@6->render_bcd#3] -- register_copy jsr render_bcd jmp __b7 // render_score::@7 __b7: - // [93] (byte*) render_bcd::screen#5 ← (byte*) render_score::screen#3 - // [94] (byte) render_bcd::bcd#5 ← (byte) level_bcd#17 -- vbuxx=vbuz1 + // [91] (byte*) render_bcd::screen#5 ← (byte*) render_score::screen#3 + // [92] (byte) render_bcd::bcd#5 ← (byte) level_bcd#17 -- vbuxx=vbuz1 ldx.z level_bcd - // [95] call render_bcd - // [97] phi from render_score::@7 to render_bcd [phi:render_score::@7->render_bcd] + // [93] call render_bcd + // [95] phi from render_score::@7 to render_bcd [phi:render_score::@7->render_bcd] render_bcd_from___b7: - // [97] phi (byte) render_bcd::bcd#6 = (byte) render_bcd::bcd#5 [phi:render_score::@7->render_bcd#0] -- register_copy - // [97] phi (byte) render_bcd::only_low#6 = (byte) 0 [phi:render_score::@7->render_bcd#1] -- vbuyy=vbuc1 + // [95] phi (byte) render_bcd::bcd#6 = (byte) render_bcd::bcd#5 [phi:render_score::@7->render_bcd#0] -- register_copy + // [95] phi (byte) render_bcd::only_low#6 = (byte) 0 [phi:render_score::@7->render_bcd#1] -- vbuyy=vbuc1 ldy #0 - // [97] phi (word) render_bcd::offset#6 = (const word) render_score::level_offset [phi:render_score::@7->render_bcd#2] -- vwuz1=vwuc1 + // [95] phi (word) render_bcd::offset#6 = (const word) render_score::level_offset [phi:render_score::@7->render_bcd#2] -- vwuz1=vwuc1 lda #level_offset sta.z render_bcd.offset+1 - // [97] phi (byte*) render_bcd::screen#6 = (byte*) render_bcd::screen#5 [phi:render_score::@7->render_bcd#3] -- register_copy + // [95] phi (byte*) render_bcd::screen#6 = (byte*) render_bcd::screen#5 [phi:render_score::@7->render_bcd#3] -- register_copy jsr render_bcd jmp __breturn // render_score::@return __breturn: - // [96] return + // [94] return rts } // render_bcd @@ -17527,7 +17499,7 @@ render_bcd: { .label screen = $23 .label screen_pos = $21 .label offset = $21 - // [98] (byte*) render_bcd::screen_pos#0 ← (byte*) render_bcd::screen#6 + (word) render_bcd::offset#6 -- pbuz1=pbuz2_plus_vwuz1 + // [96] (byte*) render_bcd::screen_pos#0 ← (byte*) render_bcd::screen#6 + (word) render_bcd::offset#6 -- pbuz1=pbuz2_plus_vwuz1 lda.z screen_pos clc adc.z screen @@ -17535,49 +17507,49 @@ render_bcd: { lda.z screen_pos+1 adc.z screen+1 sta.z screen_pos+1 - // [99] if((byte) render_bcd::only_low#6!=(byte) 0) goto render_bcd::@1 -- vbuyy_neq_0_then_la1 + // [97] if((byte) render_bcd::only_low#6!=(byte) 0) goto render_bcd::@1 -- vbuyy_neq_0_then_la1 cpy #0 bne __b1_from_render_bcd jmp __b2 // render_bcd::@2 __b2: - // [100] (byte~) render_bcd::$5 ← (byte) render_bcd::bcd#6 >> (byte) 4 -- vbuaa=vbuxx_ror_4 + // [98] (byte~) render_bcd::$5 ← (byte) render_bcd::bcd#6 >> (byte) 4 -- vbuaa=vbuxx_ror_4 txa lsr lsr lsr lsr - // [101] (byte~) render_bcd::$6 ← (const byte) render_bcd::ZERO_CHAR + (byte~) render_bcd::$5 -- vbuaa=vbuc1_plus_vbuaa + // [99] (byte~) render_bcd::$6 ← (const byte) render_bcd::ZERO_CHAR + (byte~) render_bcd::$5 -- vbuaa=vbuc1_plus_vbuaa clc adc #ZERO_CHAR - // [102] *((byte*) render_bcd::screen_pos#0) ← (byte~) render_bcd::$6 -- _deref_pbuz1=vbuaa + // [100] *((byte*) render_bcd::screen_pos#0) ← (byte~) render_bcd::$6 -- _deref_pbuz1=vbuaa ldy #0 sta (screen_pos),y - // [103] (byte*) render_bcd::screen_pos#2 ← ++ (byte*) render_bcd::screen_pos#0 -- pbuz1=_inc_pbuz1 + // [101] (byte*) render_bcd::screen_pos#2 ← ++ (byte*) render_bcd::screen_pos#0 -- pbuz1=_inc_pbuz1 inc.z screen_pos bne !+ inc.z screen_pos+1 !: - // [104] phi from render_bcd render_bcd::@2 to render_bcd::@1 [phi:render_bcd/render_bcd::@2->render_bcd::@1] + // [102] phi from render_bcd render_bcd::@2 to render_bcd::@1 [phi:render_bcd/render_bcd::@2->render_bcd::@1] __b1_from_render_bcd: __b1_from___b2: - // [104] phi (byte*) render_bcd::screen_pos#3 = (byte*) render_bcd::screen_pos#0 [phi:render_bcd/render_bcd::@2->render_bcd::@1#0] -- register_copy + // [102] phi (byte*) render_bcd::screen_pos#3 = (byte*) render_bcd::screen_pos#0 [phi:render_bcd/render_bcd::@2->render_bcd::@1#0] -- register_copy jmp __b1 // render_bcd::@1 __b1: - // [105] (byte~) render_bcd::$3 ← (byte) render_bcd::bcd#6 & (byte) $f -- vbuaa=vbuxx_band_vbuc1 + // [103] (byte~) render_bcd::$3 ← (byte) render_bcd::bcd#6 & (byte) $f -- vbuaa=vbuxx_band_vbuc1 txa and #$f - // [106] (byte~) render_bcd::$4 ← (const byte) render_bcd::ZERO_CHAR + (byte~) render_bcd::$3 -- vbuaa=vbuc1_plus_vbuaa + // [104] (byte~) render_bcd::$4 ← (const byte) render_bcd::ZERO_CHAR + (byte~) render_bcd::$3 -- vbuaa=vbuc1_plus_vbuaa clc adc #ZERO_CHAR - // [107] *((byte*) render_bcd::screen_pos#3) ← (byte~) render_bcd::$4 -- _deref_pbuz1=vbuaa + // [105] *((byte*) render_bcd::screen_pos#3) ← (byte~) render_bcd::$4 -- _deref_pbuz1=vbuaa ldy #0 sta (screen_pos),y jmp __breturn // render_bcd::@return __breturn: - // [108] return + // [106] return rts } // render_next @@ -17589,25 +17561,25 @@ render_next: { .label next_piece_gfx = $23 .label screen_next_area = $21 .label l = 8 - // [110] if((byte) render_screen_render#15==(byte) 0) goto render_next::@1 -- vbuaa_eq_0_then_la1 + // [108] if((byte) render_screen_render#15==(byte) 0) goto render_next::@1 -- vbuaa_eq_0_then_la1 cmp #0 beq __b1_from_render_next - // [112] phi from render_next to render_next::@2 [phi:render_next->render_next::@2] + // [110] phi from render_next to render_next::@2 [phi:render_next->render_next::@2] __b2_from_render_next: - // [112] phi (byte*) render_next::screen_next_area#11 = (const byte*) PLAYFIELD_SCREEN_2+(const word) render_next::next_area_offset [phi:render_next->render_next::@2#0] -- pbuz1=pbuc1 + // [110] phi (byte*) render_next::screen_next_area#11 = (const byte*) PLAYFIELD_SCREEN_2+(const word) render_next::next_area_offset [phi:render_next->render_next::@2#0] -- pbuz1=pbuc1 lda #PLAYFIELD_SCREEN_2+next_area_offset sta.z screen_next_area+1 jmp __b2 - // [111] phi from render_next to render_next::@1 [phi:render_next->render_next::@1] + // [109] phi from render_next to render_next::@1 [phi:render_next->render_next::@1] __b1_from_render_next: jmp __b1 // render_next::@1 __b1: - // [112] phi from render_next::@1 to render_next::@2 [phi:render_next::@1->render_next::@2] + // [110] phi from render_next::@1 to render_next::@2 [phi:render_next::@1->render_next::@2] __b2_from___b1: - // [112] phi (byte*) render_next::screen_next_area#11 = (const byte*) PLAYFIELD_SCREEN_1+(const word) render_next::next_area_offset [phi:render_next::@1->render_next::@2#0] -- pbuz1=pbuc1 + // [110] phi (byte*) render_next::screen_next_area#11 = (const byte*) PLAYFIELD_SCREEN_1+(const word) render_next::next_area_offset [phi:render_next::@1->render_next::@2#0] -- pbuz1=pbuc1 lda #PLAYFIELD_SCREEN_1+next_area_offset @@ -17615,84 +17587,84 @@ render_next: { jmp __b2 // render_next::@2 __b2: - // [113] (byte~) render_next::$6 ← (byte) next_piece_idx#12 << (byte) 1 -- vbuyy=vbuxx_rol_1 + // [111] (byte~) render_next::$6 ← (byte) next_piece_idx#12 << (byte) 1 -- vbuyy=vbuxx_rol_1 txa asl tay - // [114] (byte) render_next::next_piece_char#0 ← *((const byte*) PIECES_NEXT_CHARS + (byte) next_piece_idx#12) -- vbuz1=pbuc1_derefidx_vbuxx + // [112] (byte) render_next::next_piece_char#0 ← *((const byte*) PIECES_NEXT_CHARS + (byte) next_piece_idx#12) -- vbuz1=pbuc1_derefidx_vbuxx lda PIECES_NEXT_CHARS,x sta.z next_piece_char - // [115] (byte*) render_next::next_piece_gfx#9 ← (byte*)*((const word*) PIECES + (byte~) render_next::$6) -- pbuz1=pptc1_derefidx_vbuyy + // [113] (byte*) render_next::next_piece_gfx#9 ← (byte*)*((const word*) PIECES + (byte~) render_next::$6) -- pbuz1=pptc1_derefidx_vbuyy lda PIECES,y sta.z next_piece_gfx lda PIECES+1,y sta.z next_piece_gfx+1 - // [116] phi from render_next::@2 to render_next::@3 [phi:render_next::@2->render_next::@3] + // [114] phi from render_next::@2 to render_next::@3 [phi:render_next::@2->render_next::@3] __b3_from___b2: - // [116] phi (byte) render_next::l#7 = (byte) 0 [phi:render_next::@2->render_next::@3#0] -- vbuz1=vbuc1 + // [114] phi (byte) render_next::l#7 = (byte) 0 [phi:render_next::@2->render_next::@3#0] -- vbuz1=vbuc1 lda #0 sta.z l - // [116] phi (byte*) render_next::screen_next_area#10 = (byte*) render_next::screen_next_area#11 [phi:render_next::@2->render_next::@3#1] -- register_copy - // [116] phi (byte*) render_next::next_piece_gfx#3 = (byte*) render_next::next_piece_gfx#9 [phi:render_next::@2->render_next::@3#2] -- register_copy + // [114] phi (byte*) render_next::screen_next_area#10 = (byte*) render_next::screen_next_area#11 [phi:render_next::@2->render_next::@3#1] -- register_copy + // [114] phi (byte*) render_next::next_piece_gfx#3 = (byte*) render_next::next_piece_gfx#9 [phi:render_next::@2->render_next::@3#2] -- register_copy jmp __b3 - // [116] phi from render_next::@8 to render_next::@3 [phi:render_next::@8->render_next::@3] + // [114] phi from render_next::@8 to render_next::@3 [phi:render_next::@8->render_next::@3] __b3_from___b8: - // [116] phi (byte) render_next::l#7 = (byte) render_next::l#1 [phi:render_next::@8->render_next::@3#0] -- register_copy - // [116] phi (byte*) render_next::screen_next_area#10 = (byte*) render_next::screen_next_area#4 [phi:render_next::@8->render_next::@3#1] -- register_copy - // [116] phi (byte*) render_next::next_piece_gfx#3 = (byte*) render_next::next_piece_gfx#1 [phi:render_next::@8->render_next::@3#2] -- register_copy + // [114] phi (byte) render_next::l#7 = (byte) render_next::l#1 [phi:render_next::@8->render_next::@3#0] -- register_copy + // [114] phi (byte*) render_next::screen_next_area#10 = (byte*) render_next::screen_next_area#4 [phi:render_next::@8->render_next::@3#1] -- register_copy + // [114] phi (byte*) render_next::next_piece_gfx#3 = (byte*) render_next::next_piece_gfx#1 [phi:render_next::@8->render_next::@3#2] -- register_copy jmp __b3 // render_next::@3 __b3: - // [117] phi from render_next::@3 to render_next::@4 [phi:render_next::@3->render_next::@4] + // [115] phi from render_next::@3 to render_next::@4 [phi:render_next::@3->render_next::@4] __b4_from___b3: - // [117] phi (byte) render_next::c#2 = (byte) 0 [phi:render_next::@3->render_next::@4#0] -- vbuxx=vbuc1 + // [115] phi (byte) render_next::c#2 = (byte) 0 [phi:render_next::@3->render_next::@4#0] -- vbuxx=vbuc1 ldx #0 - // [117] phi (byte*) render_next::screen_next_area#5 = (byte*) render_next::screen_next_area#10 [phi:render_next::@3->render_next::@4#1] -- register_copy - // [117] phi (byte*) render_next::next_piece_gfx#2 = (byte*) render_next::next_piece_gfx#3 [phi:render_next::@3->render_next::@4#2] -- register_copy + // [115] phi (byte*) render_next::screen_next_area#5 = (byte*) render_next::screen_next_area#10 [phi:render_next::@3->render_next::@4#1] -- register_copy + // [115] phi (byte*) render_next::next_piece_gfx#2 = (byte*) render_next::next_piece_gfx#3 [phi:render_next::@3->render_next::@4#2] -- register_copy jmp __b4 - // [117] phi from render_next::@6 to render_next::@4 [phi:render_next::@6->render_next::@4] + // [115] phi from render_next::@6 to render_next::@4 [phi:render_next::@6->render_next::@4] __b4_from___b6: - // [117] phi (byte) render_next::c#2 = (byte) render_next::c#1 [phi:render_next::@6->render_next::@4#0] -- register_copy - // [117] phi (byte*) render_next::screen_next_area#5 = (byte*) render_next::screen_next_area#3 [phi:render_next::@6->render_next::@4#1] -- register_copy - // [117] phi (byte*) render_next::next_piece_gfx#2 = (byte*) render_next::next_piece_gfx#1 [phi:render_next::@6->render_next::@4#2] -- register_copy + // [115] phi (byte) render_next::c#2 = (byte) render_next::c#1 [phi:render_next::@6->render_next::@4#0] -- register_copy + // [115] phi (byte*) render_next::screen_next_area#5 = (byte*) render_next::screen_next_area#3 [phi:render_next::@6->render_next::@4#1] -- register_copy + // [115] phi (byte*) render_next::next_piece_gfx#2 = (byte*) render_next::next_piece_gfx#1 [phi:render_next::@6->render_next::@4#2] -- register_copy jmp __b4 // render_next::@4 __b4: - // [118] (byte) render_next::cell#0 ← *((byte*) render_next::next_piece_gfx#2) -- vbuaa=_deref_pbuz1 + // [116] (byte) render_next::cell#0 ← *((byte*) render_next::next_piece_gfx#2) -- vbuaa=_deref_pbuz1 ldy #0 lda (next_piece_gfx),y - // [119] (byte*) render_next::next_piece_gfx#1 ← ++ (byte*) render_next::next_piece_gfx#2 -- pbuz1=_inc_pbuz1 + // [117] (byte*) render_next::next_piece_gfx#1 ← ++ (byte*) render_next::next_piece_gfx#2 -- pbuz1=_inc_pbuz1 inc.z next_piece_gfx bne !+ inc.z next_piece_gfx+1 !: - // [120] if((byte) render_next::cell#0!=(byte) 0) goto render_next::@5 -- vbuaa_neq_0_then_la1 + // [118] if((byte) render_next::cell#0!=(byte) 0) goto render_next::@5 -- vbuaa_neq_0_then_la1 cmp #0 bne __b5 jmp __b7 // render_next::@7 __b7: - // [121] *((byte*) render_next::screen_next_area#5) ← (byte) 0 -- _deref_pbuz1=vbuc1 + // [119] *((byte*) render_next::screen_next_area#5) ← (byte) 0 -- _deref_pbuz1=vbuc1 lda #0 ldy #0 sta (screen_next_area),y jmp __b6 // render_next::@6 __b6: - // [122] (byte*) render_next::screen_next_area#3 ← ++ (byte*) render_next::screen_next_area#5 -- pbuz1=_inc_pbuz1 + // [120] (byte*) render_next::screen_next_area#3 ← ++ (byte*) render_next::screen_next_area#5 -- pbuz1=_inc_pbuz1 inc.z screen_next_area bne !+ inc.z screen_next_area+1 !: - // [123] (byte) render_next::c#1 ← ++ (byte) render_next::c#2 -- vbuxx=_inc_vbuxx + // [121] (byte) render_next::c#1 ← ++ (byte) render_next::c#2 -- vbuxx=_inc_vbuxx inx - // [124] if((byte) render_next::c#1!=(byte) 4) goto render_next::@4 -- vbuxx_neq_vbuc1_then_la1 + // [122] if((byte) render_next::c#1!=(byte) 4) goto render_next::@4 -- vbuxx_neq_vbuc1_then_la1 cpx #4 bne __b4_from___b6 jmp __b8 // render_next::@8 __b8: - // [125] (byte*) render_next::screen_next_area#4 ← (byte*) render_next::screen_next_area#3 + (byte) $24 -- pbuz1=pbuz1_plus_vbuc1 + // [123] (byte*) render_next::screen_next_area#4 ← (byte*) render_next::screen_next_area#3 + (byte) $24 -- pbuz1=pbuz1_plus_vbuc1 lda #$24 clc adc.z screen_next_area @@ -17700,20 +17672,20 @@ render_next: { bcc !+ inc.z screen_next_area+1 !: - // [126] (byte) render_next::l#1 ← ++ (byte) render_next::l#7 -- vbuz1=_inc_vbuz1 + // [124] (byte) render_next::l#1 ← ++ (byte) render_next::l#7 -- vbuz1=_inc_vbuz1 inc.z l - // [127] if((byte) render_next::l#1!=(byte) 4) goto render_next::@3 -- vbuz1_neq_vbuc1_then_la1 + // [125] if((byte) render_next::l#1!=(byte) 4) goto render_next::@3 -- vbuz1_neq_vbuc1_then_la1 lda #4 cmp.z l bne __b3_from___b8 jmp __breturn // render_next::@return __breturn: - // [128] return + // [126] return rts // render_next::@5 __b5: - // [129] *((byte*) render_next::screen_next_area#5) ← (byte) render_next::next_piece_char#0 -- _deref_pbuz1=vbuz2 + // [127] *((byte*) render_next::screen_next_area#5) ← (byte) render_next::next_piece_char#0 -- _deref_pbuz1=vbuz2 lda.z next_piece_char ldy #0 sta (screen_next_area),y @@ -17728,112 +17700,112 @@ render_moving: { .label xpos = $20 .label i = $1f .label l = $d - // [131] (byte) render_moving::ypos#0 ← (byte) current_ypos#13 -- vbuz1=vbuxx + // [129] (byte) render_moving::ypos#0 ← (byte) current_ypos#13 -- vbuz1=vbuxx stx.z ypos - // [132] phi from render_moving to render_moving::@1 [phi:render_moving->render_moving::@1] + // [130] phi from render_moving to render_moving::@1 [phi:render_moving->render_moving::@1] __b1_from_render_moving: - // [132] phi (byte) render_moving::l#4 = (byte) 0 [phi:render_moving->render_moving::@1#0] -- vbuz1=vbuc1 + // [130] phi (byte) render_moving::l#4 = (byte) 0 [phi:render_moving->render_moving::@1#0] -- vbuz1=vbuc1 lda #0 sta.z l - // [132] phi (byte) render_moving::i#3 = (byte) 0 [phi:render_moving->render_moving::@1#1] -- vbuz1=vbuc1 + // [130] phi (byte) render_moving::i#3 = (byte) 0 [phi:render_moving->render_moving::@1#1] -- vbuz1=vbuc1 lda #0 sta.z i - // [132] phi (byte) render_moving::ypos#2 = (byte) render_moving::ypos#0 [phi:render_moving->render_moving::@1#2] -- register_copy + // [130] phi (byte) render_moving::ypos#2 = (byte) render_moving::ypos#0 [phi:render_moving->render_moving::@1#2] -- register_copy jmp __b1 - // [132] phi from render_moving::@3 to render_moving::@1 [phi:render_moving::@3->render_moving::@1] + // [130] phi from render_moving::@3 to render_moving::@1 [phi:render_moving::@3->render_moving::@1] __b1_from___b3: - // [132] phi (byte) render_moving::l#4 = (byte) render_moving::l#1 [phi:render_moving::@3->render_moving::@1#0] -- register_copy - // [132] phi (byte) render_moving::i#3 = (byte) render_moving::i#8 [phi:render_moving::@3->render_moving::@1#1] -- register_copy - // [132] phi (byte) render_moving::ypos#2 = (byte) render_moving::ypos#1 [phi:render_moving::@3->render_moving::@1#2] -- register_copy + // [130] phi (byte) render_moving::l#4 = (byte) render_moving::l#1 [phi:render_moving::@3->render_moving::@1#0] -- register_copy + // [130] phi (byte) render_moving::i#3 = (byte) render_moving::i#8 [phi:render_moving::@3->render_moving::@1#1] -- register_copy + // [130] phi (byte) render_moving::ypos#2 = (byte) render_moving::ypos#1 [phi:render_moving::@3->render_moving::@1#2] -- register_copy jmp __b1 // render_moving::@1 __b1: - // [133] if((byte) render_moving::ypos#2>=(byte) 1+(byte) 1) goto render_moving::@2 -- vbuz1_ge_vbuc1_then_la1 + // [131] if((byte) render_moving::ypos#2>=(byte) 1+(byte) 1) goto render_moving::@2 -- vbuz1_ge_vbuc1_then_la1 lda.z ypos cmp #1+1 bcs __b2 jmp __b7 // render_moving::@7 __b7: - // [134] (byte) render_moving::i#1 ← (byte) render_moving::i#3 + (byte) 4 -- vbuz1=vbuz1_plus_vbuc1 + // [132] (byte) render_moving::i#1 ← (byte) render_moving::i#3 + (byte) 4 -- vbuz1=vbuz1_plus_vbuc1 lax.z i axs #-[4] stx.z i - // [135] phi from render_moving::@5 render_moving::@7 to render_moving::@3 [phi:render_moving::@5/render_moving::@7->render_moving::@3] + // [133] phi from render_moving::@5 render_moving::@7 to render_moving::@3 [phi:render_moving::@5/render_moving::@7->render_moving::@3] __b3_from___b5: __b3_from___b7: - // [135] phi (byte) render_moving::i#8 = (byte) render_moving::i#2 [phi:render_moving::@5/render_moving::@7->render_moving::@3#0] -- register_copy + // [133] phi (byte) render_moving::i#8 = (byte) render_moving::i#2 [phi:render_moving::@5/render_moving::@7->render_moving::@3#0] -- register_copy jmp __b3 // render_moving::@3 __b3: - // [136] (byte) render_moving::ypos#1 ← ++ (byte) render_moving::ypos#2 -- vbuz1=_inc_vbuz1 + // [134] (byte) render_moving::ypos#1 ← ++ (byte) render_moving::ypos#2 -- vbuz1=_inc_vbuz1 inc.z ypos - // [137] (byte) render_moving::l#1 ← ++ (byte) render_moving::l#4 -- vbuz1=_inc_vbuz1 + // [135] (byte) render_moving::l#1 ← ++ (byte) render_moving::l#4 -- vbuz1=_inc_vbuz1 inc.z l - // [138] if((byte) render_moving::l#1!=(byte) 4) goto render_moving::@1 -- vbuz1_neq_vbuc1_then_la1 + // [136] if((byte) render_moving::l#1!=(byte) 4) goto render_moving::@1 -- vbuz1_neq_vbuc1_then_la1 lda #4 cmp.z l bne __b1_from___b3 jmp __breturn // render_moving::@return __breturn: - // [139] return + // [137] return rts // render_moving::@2 __b2: - // [140] (byte~) render_moving::$1 ← (byte) render_screen_render#33 + (byte) render_moving::ypos#2 -- vbuaa=vbuz1_plus_vbuz2 + // [138] (byte~) render_moving::$1 ← (byte) render_screen_render#33 + (byte) render_moving::ypos#2 -- vbuaa=vbuz1_plus_vbuz2 lda.z render_screen_render_1 clc adc.z ypos - // [141] (byte~) render_moving::$6 ← (byte~) render_moving::$1 << (byte) 1 -- vbuaa=vbuaa_rol_1 + // [139] (byte~) render_moving::$6 ← (byte~) render_moving::$1 << (byte) 1 -- vbuaa=vbuaa_rol_1 asl - // [142] (byte*) render_moving::screen_line#0 ← *((const byte**) screen_lines_1 + (byte~) render_moving::$6) -- pbuz1=pptc1_derefidx_vbuaa + // [140] (byte*) render_moving::screen_line#0 ← *((const byte**) screen_lines_1 + (byte~) render_moving::$6) -- pbuz1=pptc1_derefidx_vbuaa tay lda screen_lines_1,y sta.z screen_line lda screen_lines_1+1,y sta.z screen_line+1 - // [143] (byte) render_moving::xpos#0 ← (byte) current_xpos#59 -- vbuz1=vbuz2 + // [141] (byte) render_moving::xpos#0 ← (byte) current_xpos#59 -- vbuz1=vbuz2 lda.z current_xpos_1 sta.z xpos - // [144] phi from render_moving::@2 to render_moving::@4 [phi:render_moving::@2->render_moving::@4] + // [142] phi from render_moving::@2 to render_moving::@4 [phi:render_moving::@2->render_moving::@4] __b4_from___b2: - // [144] phi (byte) render_moving::c#2 = (byte) 0 [phi:render_moving::@2->render_moving::@4#0] -- vbuxx=vbuc1 + // [142] phi (byte) render_moving::c#2 = (byte) 0 [phi:render_moving::@2->render_moving::@4#0] -- vbuxx=vbuc1 ldx #0 - // [144] phi (byte) render_moving::xpos#2 = (byte) render_moving::xpos#0 [phi:render_moving::@2->render_moving::@4#1] -- register_copy - // [144] phi (byte) render_moving::i#4 = (byte) render_moving::i#3 [phi:render_moving::@2->render_moving::@4#2] -- register_copy + // [142] phi (byte) render_moving::xpos#2 = (byte) render_moving::xpos#0 [phi:render_moving::@2->render_moving::@4#1] -- register_copy + // [142] phi (byte) render_moving::i#4 = (byte) render_moving::i#3 [phi:render_moving::@2->render_moving::@4#2] -- register_copy jmp __b4 - // [144] phi from render_moving::@5 to render_moving::@4 [phi:render_moving::@5->render_moving::@4] + // [142] phi from render_moving::@5 to render_moving::@4 [phi:render_moving::@5->render_moving::@4] __b4_from___b5: - // [144] phi (byte) render_moving::c#2 = (byte) render_moving::c#1 [phi:render_moving::@5->render_moving::@4#0] -- register_copy - // [144] phi (byte) render_moving::xpos#2 = (byte) render_moving::xpos#1 [phi:render_moving::@5->render_moving::@4#1] -- register_copy - // [144] phi (byte) render_moving::i#4 = (byte) render_moving::i#2 [phi:render_moving::@5->render_moving::@4#2] -- register_copy + // [142] phi (byte) render_moving::c#2 = (byte) render_moving::c#1 [phi:render_moving::@5->render_moving::@4#0] -- register_copy + // [142] phi (byte) render_moving::xpos#2 = (byte) render_moving::xpos#1 [phi:render_moving::@5->render_moving::@4#1] -- register_copy + // [142] phi (byte) render_moving::i#4 = (byte) render_moving::i#2 [phi:render_moving::@5->render_moving::@4#2] -- register_copy jmp __b4 // render_moving::@4 __b4: - // [145] (byte) render_moving::current_cell#0 ← *((byte*) current_piece_gfx#64 + (byte) render_moving::i#4) -- vbuaa=pbuz1_derefidx_vbuz2 + // [143] (byte) render_moving::current_cell#0 ← *((byte*) current_piece_gfx#64 + (byte) render_moving::i#4) -- vbuaa=pbuz1_derefidx_vbuz2 ldy.z i lda (current_piece_gfx_1),y - // [146] (byte) render_moving::i#2 ← ++ (byte) render_moving::i#4 -- vbuz1=_inc_vbuz1 + // [144] (byte) render_moving::i#2 ← ++ (byte) render_moving::i#4 -- vbuz1=_inc_vbuz1 inc.z i - // [147] if((byte) render_moving::current_cell#0==(byte) 0) goto render_moving::@5 -- vbuaa_eq_0_then_la1 + // [145] if((byte) render_moving::current_cell#0==(byte) 0) goto render_moving::@5 -- vbuaa_eq_0_then_la1 cmp #0 beq __b5 jmp __b6 // render_moving::@6 __b6: - // [148] *((byte*) render_moving::screen_line#0 + (byte) render_moving::xpos#2) ← (byte) current_piece_char#68 -- pbuz1_derefidx_vbuz2=vbuz3 + // [146] *((byte*) render_moving::screen_line#0 + (byte) render_moving::xpos#2) ← (byte) current_piece_char#68 -- pbuz1_derefidx_vbuz2=vbuz3 lda.z current_piece_char_1 ldy.z xpos sta (screen_line),y jmp __b5 // render_moving::@5 __b5: - // [149] (byte) render_moving::xpos#1 ← ++ (byte) render_moving::xpos#2 -- vbuz1=_inc_vbuz1 + // [147] (byte) render_moving::xpos#1 ← ++ (byte) render_moving::xpos#2 -- vbuz1=_inc_vbuz1 inc.z xpos - // [150] (byte) render_moving::c#1 ← ++ (byte) render_moving::c#2 -- vbuxx=_inc_vbuxx + // [148] (byte) render_moving::c#1 ← ++ (byte) render_moving::c#2 -- vbuxx=_inc_vbuxx inx - // [151] if((byte) render_moving::c#1!=(byte) 4) goto render_moving::@4 -- vbuxx_neq_vbuc1_then_la1 + // [149] if((byte) render_moving::c#1!=(byte) 4) goto render_moving::@4 -- vbuxx_neq_vbuc1_then_la1 cpx #4 bne __b4_from___b5 jmp __b3_from___b5 @@ -17846,81 +17818,81 @@ render_playfield: { .label i = $a .label c = $b .label l = 9 - // [153] phi from render_playfield to render_playfield::@1 [phi:render_playfield->render_playfield::@1] + // [151] phi from render_playfield to render_playfield::@1 [phi:render_playfield->render_playfield::@1] __b1_from_render_playfield: - // [153] phi (byte) render_playfield::i#3 = (const byte) PLAYFIELD_COLS*(byte) 2 [phi:render_playfield->render_playfield::@1#0] -- vbuz1=vbuc1 + // [151] phi (byte) render_playfield::i#3 = (const byte) PLAYFIELD_COLS*(byte) 2 [phi:render_playfield->render_playfield::@1#0] -- vbuz1=vbuc1 lda #PLAYFIELD_COLS*2 sta.z i - // [153] phi (byte) render_playfield::l#2 = (byte) 2 [phi:render_playfield->render_playfield::@1#1] -- vbuz1=vbuc1 + // [151] phi (byte) render_playfield::l#2 = (byte) 2 [phi:render_playfield->render_playfield::@1#1] -- vbuz1=vbuc1 lda #2 sta.z l jmp __b1 - // [153] phi from render_playfield::@3 to render_playfield::@1 [phi:render_playfield::@3->render_playfield::@1] + // [151] phi from render_playfield::@3 to render_playfield::@1 [phi:render_playfield::@3->render_playfield::@1] __b1_from___b3: - // [153] phi (byte) render_playfield::i#3 = (byte) render_playfield::i#1 [phi:render_playfield::@3->render_playfield::@1#0] -- register_copy - // [153] phi (byte) render_playfield::l#2 = (byte) render_playfield::l#1 [phi:render_playfield::@3->render_playfield::@1#1] -- register_copy + // [151] phi (byte) render_playfield::i#3 = (byte) render_playfield::i#1 [phi:render_playfield::@3->render_playfield::@1#0] -- register_copy + // [151] phi (byte) render_playfield::l#2 = (byte) render_playfield::l#1 [phi:render_playfield::@3->render_playfield::@1#1] -- register_copy jmp __b1 // render_playfield::@1 __b1: - // [154] (byte~) render_playfield::$0 ← (byte) render_screen_render#22 + (byte) render_playfield::l#2 -- vbuaa=vbuxx_plus_vbuz1 + // [152] (byte~) render_playfield::$0 ← (byte) render_screen_render#22 + (byte) render_playfield::l#2 -- vbuaa=vbuxx_plus_vbuz1 txa clc adc.z l - // [155] (byte~) render_playfield::$3 ← (byte~) render_playfield::$0 << (byte) 1 -- vbuaa=vbuaa_rol_1 + // [153] (byte~) render_playfield::$3 ← (byte~) render_playfield::$0 << (byte) 1 -- vbuaa=vbuaa_rol_1 asl - // [156] (byte*) render_playfield::screen_line#0 ← *((const byte**) screen_lines_1 + (byte~) render_playfield::$3) -- pbuz1=pptc1_derefidx_vbuaa + // [154] (byte*) render_playfield::screen_line#0 ← *((const byte**) screen_lines_1 + (byte~) render_playfield::$3) -- pbuz1=pptc1_derefidx_vbuaa tay lda screen_lines_1,y sta.z screen_line lda screen_lines_1+1,y sta.z screen_line+1 - // [157] phi from render_playfield::@1 to render_playfield::@2 [phi:render_playfield::@1->render_playfield::@2] + // [155] phi from render_playfield::@1 to render_playfield::@2 [phi:render_playfield::@1->render_playfield::@2] __b2_from___b1: - // [157] phi (byte) render_playfield::c#2 = (byte) 0 [phi:render_playfield::@1->render_playfield::@2#0] -- vbuz1=vbuc1 + // [155] phi (byte) render_playfield::c#2 = (byte) 0 [phi:render_playfield::@1->render_playfield::@2#0] -- vbuz1=vbuc1 lda #0 sta.z c - // [157] phi (byte*) render_playfield::screen_line#2 = (byte*) render_playfield::screen_line#0 [phi:render_playfield::@1->render_playfield::@2#1] -- register_copy - // [157] phi (byte) render_playfield::i#2 = (byte) render_playfield::i#3 [phi:render_playfield::@1->render_playfield::@2#2] -- register_copy + // [155] phi (byte*) render_playfield::screen_line#2 = (byte*) render_playfield::screen_line#0 [phi:render_playfield::@1->render_playfield::@2#1] -- register_copy + // [155] phi (byte) render_playfield::i#2 = (byte) render_playfield::i#3 [phi:render_playfield::@1->render_playfield::@2#2] -- register_copy jmp __b2 - // [157] phi from render_playfield::@2 to render_playfield::@2 [phi:render_playfield::@2->render_playfield::@2] + // [155] phi from render_playfield::@2 to render_playfield::@2 [phi:render_playfield::@2->render_playfield::@2] __b2_from___b2: - // [157] phi (byte) render_playfield::c#2 = (byte) render_playfield::c#1 [phi:render_playfield::@2->render_playfield::@2#0] -- register_copy - // [157] phi (byte*) render_playfield::screen_line#2 = (byte*) render_playfield::screen_line#1 [phi:render_playfield::@2->render_playfield::@2#1] -- register_copy - // [157] phi (byte) render_playfield::i#2 = (byte) render_playfield::i#1 [phi:render_playfield::@2->render_playfield::@2#2] -- register_copy + // [155] phi (byte) render_playfield::c#2 = (byte) render_playfield::c#1 [phi:render_playfield::@2->render_playfield::@2#0] -- register_copy + // [155] phi (byte*) render_playfield::screen_line#2 = (byte*) render_playfield::screen_line#1 [phi:render_playfield::@2->render_playfield::@2#1] -- register_copy + // [155] phi (byte) render_playfield::i#2 = (byte) render_playfield::i#1 [phi:render_playfield::@2->render_playfield::@2#2] -- register_copy jmp __b2 // render_playfield::@2 __b2: - // [158] *((byte*) render_playfield::screen_line#2) ← *((const byte*) playfield + (byte) render_playfield::i#2) -- _deref_pbuz1=pbuc1_derefidx_vbuz2 + // [156] *((byte*) render_playfield::screen_line#2) ← *((const byte*) playfield + (byte) render_playfield::i#2) -- _deref_pbuz1=pbuc1_derefidx_vbuz2 ldy.z i lda playfield,y ldy #0 sta (screen_line),y - // [159] (byte*) render_playfield::screen_line#1 ← ++ (byte*) render_playfield::screen_line#2 -- pbuz1=_inc_pbuz1 + // [157] (byte*) render_playfield::screen_line#1 ← ++ (byte*) render_playfield::screen_line#2 -- pbuz1=_inc_pbuz1 inc.z screen_line bne !+ inc.z screen_line+1 !: - // [160] (byte) render_playfield::i#1 ← ++ (byte) render_playfield::i#2 -- vbuz1=_inc_vbuz1 + // [158] (byte) render_playfield::i#1 ← ++ (byte) render_playfield::i#2 -- vbuz1=_inc_vbuz1 inc.z i - // [161] (byte) render_playfield::c#1 ← ++ (byte) render_playfield::c#2 -- vbuz1=_inc_vbuz1 + // [159] (byte) render_playfield::c#1 ← ++ (byte) render_playfield::c#2 -- vbuz1=_inc_vbuz1 inc.z c - // [162] if((byte) render_playfield::c#1!=(const byte) PLAYFIELD_COLS-(byte) 1+(byte) 1) goto render_playfield::@2 -- vbuz1_neq_vbuc1_then_la1 + // [160] if((byte) render_playfield::c#1!=(const byte) PLAYFIELD_COLS-(byte) 1+(byte) 1) goto render_playfield::@2 -- vbuz1_neq_vbuc1_then_la1 lda #PLAYFIELD_COLS-1+1 cmp.z c bne __b2_from___b2 jmp __b3 // render_playfield::@3 __b3: - // [163] (byte) render_playfield::l#1 ← ++ (byte) render_playfield::l#2 -- vbuz1=_inc_vbuz1 + // [161] (byte) render_playfield::l#1 ← ++ (byte) render_playfield::l#2 -- vbuz1=_inc_vbuz1 inc.z l - // [164] if((byte) render_playfield::l#1!=(const byte) PLAYFIELD_LINES-(byte) 1+(byte) 1) goto render_playfield::@1 -- vbuz1_neq_vbuc1_then_la1 + // [162] if((byte) render_playfield::l#1!=(const byte) PLAYFIELD_LINES-(byte) 1+(byte) 1) goto render_playfield::@1 -- vbuz1_neq_vbuc1_then_la1 lda #PLAYFIELD_LINES-1+1 cmp.z l bne __b1_from___b3 jmp __breturn // render_playfield::@return __breturn: - // [165] return + // [163] return rts } // play_movement @@ -17932,58 +17904,58 @@ play_movement: { .label render = $d .label return = $d .label key_event = $1f - // [166] (byte) play_move_down::key_event#0 ← (byte) play_movement::key_event#0 -- vbuaa=vbuz1 + // [164] (byte) play_move_down::key_event#0 ← (byte) play_movement::key_event#0 -- vbuaa=vbuz1 lda.z key_event - // [167] call play_move_down + // [165] call play_move_down jsr play_move_down - // [168] (byte) play_move_down::return#0 ← (byte) play_move_down::return#3 -- vbuaa=vbuxx + // [166] (byte) play_move_down::return#0 ← (byte) play_move_down::return#3 -- vbuaa=vbuxx txa jmp __b2 // play_movement::@2 __b2: - // [169] (byte) play_movement::render#1 ← (byte) play_move_down::return#0 -- vbuz1=vbuaa + // [167] (byte) play_movement::render#1 ← (byte) play_move_down::return#0 -- vbuz1=vbuaa sta.z render - // [170] if((byte) game_over#15==(byte) 0) goto play_movement::@1 -- vbuz1_eq_0_then_la1 + // [168] if((byte) game_over#15==(byte) 0) goto play_movement::@1 -- vbuz1_eq_0_then_la1 lda.z game_over cmp #0 beq __b1 - // [171] phi from play_movement::@2 play_movement::@4 to play_movement::@return [phi:play_movement::@2/play_movement::@4->play_movement::@return] + // [169] phi from play_movement::@2 play_movement::@4 to play_movement::@return [phi:play_movement::@2/play_movement::@4->play_movement::@return] __breturn_from___b2: __breturn_from___b4: - // [171] phi (byte) current_xpos#19 = (byte) current_xpos#22 [phi:play_movement::@2/play_movement::@4->play_movement::@return#0] -- register_copy - // [171] phi (byte*) current_piece_gfx#18 = (byte*) current_piece_gfx#20 [phi:play_movement::@2/play_movement::@4->play_movement::@return#1] -- register_copy - // [171] phi (byte) current_orientation#17 = (byte) current_orientation#20 [phi:play_movement::@2/play_movement::@4->play_movement::@return#2] -- register_copy - // [171] phi (byte) play_movement::return#2 = (byte) play_movement::render#1 [phi:play_movement::@2/play_movement::@4->play_movement::@return#3] -- register_copy + // [169] phi (byte) current_xpos#19 = (byte) current_xpos#22 [phi:play_movement::@2/play_movement::@4->play_movement::@return#0] -- register_copy + // [169] phi (byte*) current_piece_gfx#18 = (byte*) current_piece_gfx#20 [phi:play_movement::@2/play_movement::@4->play_movement::@return#1] -- register_copy + // [169] phi (byte) current_orientation#17 = (byte) current_orientation#20 [phi:play_movement::@2/play_movement::@4->play_movement::@return#2] -- register_copy + // [169] phi (byte) play_movement::return#2 = (byte) play_movement::render#1 [phi:play_movement::@2/play_movement::@4->play_movement::@return#3] -- register_copy jmp __breturn // play_movement::@return __breturn: - // [172] return + // [170] return rts // play_movement::@1 __b1: - // [173] (byte) play_move_leftright::key_event#0 ← (byte) play_movement::key_event#0 -- vbuaa=vbuz1 + // [171] (byte) play_move_leftright::key_event#0 ← (byte) play_movement::key_event#0 -- vbuaa=vbuz1 lda.z key_event - // [174] call play_move_leftright + // [172] call play_move_leftright jsr play_move_leftright - // [175] (byte) play_move_leftright::return#0 ← (byte) play_move_leftright::return#2 + // [173] (byte) play_move_leftright::return#0 ← (byte) play_move_leftright::return#2 jmp __b3 // play_movement::@3 __b3: - // [176] (byte~) play_movement::$3 ← (byte) play_move_leftright::return#0 - // [177] (byte) play_movement::render#2 ← (byte) play_movement::render#1 + (byte~) play_movement::$3 -- vbuz1=vbuz1_plus_vbuaa + // [174] (byte~) play_movement::$3 ← (byte) play_move_leftright::return#0 + // [175] (byte) play_movement::render#2 ← (byte) play_movement::render#1 + (byte~) play_movement::$3 -- vbuz1=vbuz1_plus_vbuaa clc adc.z render sta.z render - // [178] (byte) play_move_rotate::key_event#0 ← (byte) play_movement::key_event#0 -- vbuaa=vbuz1 + // [176] (byte) play_move_rotate::key_event#0 ← (byte) play_movement::key_event#0 -- vbuaa=vbuz1 lda.z key_event - // [179] call play_move_rotate + // [177] call play_move_rotate jsr play_move_rotate - // [180] (byte) play_move_rotate::return#0 ← (byte) play_move_rotate::return#2 + // [178] (byte) play_move_rotate::return#0 ← (byte) play_move_rotate::return#2 jmp __b4 // play_movement::@4 __b4: - // [181] (byte~) play_movement::$4 ← (byte) play_move_rotate::return#0 - // [182] (byte) play_movement::return#0 ← (byte) play_movement::render#2 + (byte~) play_movement::$4 -- vbuz1=vbuz1_plus_vbuaa + // [179] (byte~) play_movement::$4 ← (byte) play_move_rotate::return#0 + // [180] (byte) play_movement::return#0 ← (byte) play_movement::render#2 + (byte~) play_movement::$4 -- vbuz1=vbuz1_plus_vbuaa clc adc.z return sta.z return @@ -17996,78 +17968,78 @@ play_movement: { play_move_rotate: { // Handle keyboard events .label orientation = $1f - // [183] if((byte) play_move_rotate::key_event#0==(const byte) KEY_Z) goto play_move_rotate::@1 -- vbuaa_eq_vbuc1_then_la1 + // [181] if((byte) play_move_rotate::key_event#0==(const byte) KEY_Z) goto play_move_rotate::@1 -- vbuaa_eq_vbuc1_then_la1 cmp #KEY_Z beq __b1 jmp __b4 // play_move_rotate::@4 __b4: - // [184] if((byte) play_move_rotate::key_event#0==(const byte) KEY_X) goto play_move_rotate::@2 -- vbuaa_eq_vbuc1_then_la1 + // [182] if((byte) play_move_rotate::key_event#0==(const byte) KEY_X) goto play_move_rotate::@2 -- vbuaa_eq_vbuc1_then_la1 cmp #KEY_X beq __b2 - // [185] phi from play_move_rotate::@4 play_move_rotate::@6 to play_move_rotate::@return [phi:play_move_rotate::@4/play_move_rotate::@6->play_move_rotate::@return] + // [183] phi from play_move_rotate::@4 play_move_rotate::@6 to play_move_rotate::@return [phi:play_move_rotate::@4/play_move_rotate::@6->play_move_rotate::@return] __breturn_from___b4: __breturn_from___b6: - // [185] phi (byte*) current_piece_gfx#21 = (byte*) current_piece_gfx#20 [phi:play_move_rotate::@4/play_move_rotate::@6->play_move_rotate::@return#0] -- register_copy - // [185] phi (byte) current_orientation#25 = (byte) current_orientation#20 [phi:play_move_rotate::@4/play_move_rotate::@6->play_move_rotate::@return#1] -- register_copy - // [185] phi (byte) play_move_rotate::return#2 = (byte) 0 [phi:play_move_rotate::@4/play_move_rotate::@6->play_move_rotate::@return#2] -- vbuaa=vbuc1 + // [183] phi (byte*) current_piece_gfx#21 = (byte*) current_piece_gfx#20 [phi:play_move_rotate::@4/play_move_rotate::@6->play_move_rotate::@return#0] -- register_copy + // [183] phi (byte) current_orientation#25 = (byte) current_orientation#20 [phi:play_move_rotate::@4/play_move_rotate::@6->play_move_rotate::@return#1] -- register_copy + // [183] phi (byte) play_move_rotate::return#2 = (byte) 0 [phi:play_move_rotate::@4/play_move_rotate::@6->play_move_rotate::@return#2] -- vbuaa=vbuc1 lda #0 jmp __breturn // play_move_rotate::@return __breturn: - // [186] return + // [184] return rts // play_move_rotate::@2 __b2: - // [187] (byte~) play_move_rotate::$5 ← (byte) current_orientation#20 + (byte) $10 -- vbuxx=vbuz1_plus_vbuc1 + // [185] (byte~) play_move_rotate::$5 ← (byte) current_orientation#20 + (byte) $10 -- vbuxx=vbuz1_plus_vbuc1 lax.z current_orientation axs #-[$10] - // [188] (byte) play_move_rotate::orientation#2 ← (byte~) play_move_rotate::$5 & (byte) $3f -- vbuz1=vbuxx_band_vbuc1 + // [186] (byte) play_move_rotate::orientation#2 ← (byte~) play_move_rotate::$5 & (byte) $3f -- vbuz1=vbuxx_band_vbuc1 lda #$3f sax.z orientation - // [189] phi from play_move_rotate::@1 play_move_rotate::@2 to play_move_rotate::@3 [phi:play_move_rotate::@1/play_move_rotate::@2->play_move_rotate::@3] + // [187] phi from play_move_rotate::@1 play_move_rotate::@2 to play_move_rotate::@3 [phi:play_move_rotate::@1/play_move_rotate::@2->play_move_rotate::@3] __b3_from___b1: __b3_from___b2: - // [189] 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::@3#0] -- register_copy + // [187] 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::@3#0] -- register_copy jmp __b3 // play_move_rotate::@3 __b3: - // [190] (byte) play_collision::xpos#3 ← (byte) current_xpos#26 -- vbuz1=vbuz2 + // [188] (byte) play_collision::xpos#3 ← (byte) current_xpos#26 -- vbuz1=vbuz2 lda.z current_xpos sta.z play_collision.xpos - // [191] (byte) play_collision::ypos#3 ← (byte) current_ypos#19 -- vbuz1=vbuz2 + // [189] (byte) play_collision::ypos#3 ← (byte) current_ypos#19 -- vbuz1=vbuz2 lda.z current_ypos sta.z play_collision.ypos - // [192] (byte) play_collision::orientation#3 ← (byte) play_move_rotate::orientation#3 -- vbuxx=vbuz1 + // [190] (byte) play_collision::orientation#3 ← (byte) play_move_rotate::orientation#3 -- vbuxx=vbuz1 ldx.z orientation - // [193] (byte*) current_piece#98 ← (byte*) current_piece#15 -- pbuz1=pbuz2 + // [191] (byte*) current_piece#98 ← (byte*) current_piece#15 -- pbuz1=pbuz2 lda.z current_piece sta.z current_piece_1 lda.z current_piece+1 sta.z current_piece_1+1 - // [194] call play_collision - // [202] phi from play_move_rotate::@3 to play_collision [phi:play_move_rotate::@3->play_collision] + // [192] call play_collision + // [200] phi from play_move_rotate::@3 to play_collision [phi:play_move_rotate::@3->play_collision] play_collision_from___b3: - // [202] phi (byte) play_collision::xpos#6 = (byte) play_collision::xpos#3 [phi:play_move_rotate::@3->play_collision#0] -- register_copy - // [202] phi (byte) play_collision::yp#0 = (byte) play_collision::ypos#3 [phi:play_move_rotate::@3->play_collision#1] -- register_copy - // [202] phi (byte) play_collision::orientation#5 = (byte) play_collision::orientation#3 [phi:play_move_rotate::@3->play_collision#2] -- register_copy - // [202] phi (byte*) current_piece#17 = (byte*) current_piece#98 [phi:play_move_rotate::@3->play_collision#3] -- register_copy + // [200] phi (byte) play_collision::xpos#6 = (byte) play_collision::xpos#3 [phi:play_move_rotate::@3->play_collision#0] -- register_copy + // [200] phi (byte) play_collision::yp#0 = (byte) play_collision::ypos#3 [phi:play_move_rotate::@3->play_collision#1] -- register_copy + // [200] phi (byte) play_collision::orientation#5 = (byte) play_collision::orientation#3 [phi:play_move_rotate::@3->play_collision#2] -- register_copy + // [200] phi (byte*) current_piece#17 = (byte*) current_piece#98 [phi:play_move_rotate::@3->play_collision#3] -- register_copy jsr play_collision - // [195] (byte) play_collision::return#14 ← (byte) play_collision::return#15 + // [193] (byte) play_collision::return#14 ← (byte) play_collision::return#15 jmp __b6 // play_move_rotate::@6 __b6: - // [196] (byte~) play_move_rotate::$2 ← (byte) play_collision::return#14 - // [197] if((byte~) play_move_rotate::$2!=(const byte) COLLISION_NONE) goto play_move_rotate::@return -- vbuaa_neq_vbuc1_then_la1 + // [194] (byte~) play_move_rotate::$2 ← (byte) play_collision::return#14 + // [195] if((byte~) play_move_rotate::$2!=(const byte) COLLISION_NONE) goto play_move_rotate::@return -- vbuaa_neq_vbuc1_then_la1 cmp #COLLISION_NONE bne __breturn_from___b6 jmp __b5 // play_move_rotate::@5 __b5: - // [198] (byte) current_orientation#7 ← (byte) play_move_rotate::orientation#3 -- vbuz1=vbuz2 + // [196] (byte) current_orientation#7 ← (byte) play_move_rotate::orientation#3 -- vbuz1=vbuz2 lda.z orientation sta.z current_orientation - // [199] (byte*) current_piece_gfx#7 ← (byte*) current_piece#15 + (byte) current_orientation#7 -- pbuz1=pbuz2_plus_vbuz3 + // [197] (byte*) current_piece_gfx#7 ← (byte*) current_piece#15 + (byte) current_orientation#7 -- pbuz1=pbuz2_plus_vbuz3 lda.z current_orientation clc adc.z current_piece @@ -18075,19 +18047,19 @@ play_move_rotate: { lda #0 adc.z current_piece+1 sta.z current_piece_gfx+1 - // [185] phi from play_move_rotate::@5 to play_move_rotate::@return [phi:play_move_rotate::@5->play_move_rotate::@return] + // [183] phi from play_move_rotate::@5 to play_move_rotate::@return [phi:play_move_rotate::@5->play_move_rotate::@return] __breturn_from___b5: - // [185] phi (byte*) current_piece_gfx#21 = (byte*) current_piece_gfx#7 [phi:play_move_rotate::@5->play_move_rotate::@return#0] -- register_copy - // [185] phi (byte) current_orientation#25 = (byte) current_orientation#7 [phi:play_move_rotate::@5->play_move_rotate::@return#1] -- register_copy - // [185] phi (byte) play_move_rotate::return#2 = (byte) 1 [phi:play_move_rotate::@5->play_move_rotate::@return#2] -- vbuaa=vbuc1 + // [183] phi (byte*) current_piece_gfx#21 = (byte*) current_piece_gfx#7 [phi:play_move_rotate::@5->play_move_rotate::@return#0] -- register_copy + // [183] phi (byte) current_orientation#25 = (byte) current_orientation#7 [phi:play_move_rotate::@5->play_move_rotate::@return#1] -- register_copy + // [183] phi (byte) play_move_rotate::return#2 = (byte) 1 [phi:play_move_rotate::@5->play_move_rotate::@return#2] -- vbuaa=vbuc1 lda #1 jmp __breturn // play_move_rotate::@1 __b1: - // [200] (byte~) play_move_rotate::$7 ← (byte) current_orientation#20 - (byte) $10 -- vbuxx=vbuz1_minus_vbuc1 + // [198] (byte~) play_move_rotate::$7 ← (byte) current_orientation#20 - (byte) $10 -- vbuxx=vbuz1_minus_vbuc1 lax.z current_orientation axs #$10 - // [201] (byte) play_move_rotate::orientation#1 ← (byte~) play_move_rotate::$7 & (byte) $3f -- vbuz1=vbuxx_band_vbuc1 + // [199] (byte) play_move_rotate::orientation#1 ← (byte~) play_move_rotate::$7 & (byte) $3f -- vbuz1=vbuxx_band_vbuc1 lda #$3f sax.z orientation jmp __b3_from___b1 @@ -18106,7 +18078,7 @@ play_collision: { .label xp = $b .label l = 9 .label i_1 = $a - // [203] (byte*) play_collision::piece_gfx#0 ← (byte*) current_piece#17 + (byte) play_collision::orientation#5 -- pbuz1=pbuz1_plus_vbuxx + // [201] (byte*) play_collision::piece_gfx#0 ← (byte*) current_piece#17 + (byte) play_collision::orientation#5 -- pbuz1=pbuz1_plus_vbuxx txa clc adc.z piece_gfx @@ -18114,44 +18086,44 @@ play_collision: { bcc !+ inc.z piece_gfx+1 !: - // [204] phi from play_collision to play_collision::@1 [phi:play_collision->play_collision::@1] + // [202] phi from play_collision to play_collision::@1 [phi:play_collision->play_collision::@1] __b1_from_play_collision: - // [204] phi (byte) play_collision::l#6 = (byte) 0 [phi:play_collision->play_collision::@1#0] -- vbuz1=vbuc1 + // [202] phi (byte) play_collision::l#6 = (byte) 0 [phi:play_collision->play_collision::@1#0] -- vbuz1=vbuc1 lda #0 sta.z l - // [204] phi (byte) play_collision::i#3 = (byte) 0 [phi:play_collision->play_collision::@1#1] -- vbuz1=vbuc1 + // [202] phi (byte) play_collision::i#3 = (byte) 0 [phi:play_collision->play_collision::@1#1] -- vbuz1=vbuc1 lda #0 sta.z i_1 - // [204] phi (byte) play_collision::yp#2 = (byte) play_collision::yp#0 [phi:play_collision->play_collision::@1#2] -- register_copy + // [202] phi (byte) play_collision::yp#2 = (byte) play_collision::yp#0 [phi:play_collision->play_collision::@1#2] -- register_copy jmp __b1 // play_collision::@1 __b1: - // [205] (byte~) play_collision::$14 ← (byte) play_collision::yp#2 << (byte) 1 -- vbuaa=vbuz1_rol_1 + // [203] (byte~) play_collision::$14 ← (byte) play_collision::yp#2 << (byte) 1 -- vbuaa=vbuz1_rol_1 lda.z yp asl - // [206] (byte*) play_collision::playfield_line#0 ← *((const byte**) playfield_lines + (byte~) play_collision::$14) -- pbuz1=pptc1_derefidx_vbuaa + // [204] (byte*) play_collision::playfield_line#0 ← *((const byte**) playfield_lines + (byte~) play_collision::$14) -- pbuz1=pptc1_derefidx_vbuaa tay lda playfield_lines,y sta.z playfield_line lda playfield_lines+1,y sta.z playfield_line+1 - // [207] (byte) play_collision::xp#8 ← (byte) play_collision::xpos#6 -- vbuz1=vbuz2 + // [205] (byte) play_collision::xp#8 ← (byte) play_collision::xpos#6 -- vbuz1=vbuz2 lda.z xpos sta.z xp - // [208] phi from play_collision::@1 to play_collision::@2 [phi:play_collision::@1->play_collision::@2] + // [206] phi from play_collision::@1 to play_collision::@2 [phi:play_collision::@1->play_collision::@2] __b2_from___b1: - // [208] phi (byte) play_collision::c#2 = (byte) 0 [phi:play_collision::@1->play_collision::@2#0] -- vbuxx=vbuc1 + // [206] phi (byte) play_collision::c#2 = (byte) 0 [phi:play_collision::@1->play_collision::@2#0] -- vbuxx=vbuc1 ldx #0 - // [208] phi (byte) play_collision::xp#2 = (byte) play_collision::xp#8 [phi:play_collision::@1->play_collision::@2#1] -- register_copy - // [208] phi (byte) play_collision::i#2 = (byte) play_collision::i#3 [phi:play_collision::@1->play_collision::@2#2] -- register_copy + // [206] phi (byte) play_collision::xp#2 = (byte) play_collision::xp#8 [phi:play_collision::@1->play_collision::@2#1] -- register_copy + // [206] phi (byte) play_collision::i#2 = (byte) play_collision::i#3 [phi:play_collision::@1->play_collision::@2#2] -- register_copy jmp __b2 // play_collision::@2 __b2: - // [209] (byte) play_collision::i#1 ← ++ (byte) play_collision::i#2 -- vbuz1=_inc_vbuz2 + // [207] (byte) play_collision::i#1 ← ++ (byte) play_collision::i#2 -- vbuz1=_inc_vbuz2 ldy.z i_1 iny sty.z i - // [210] if(*((byte*) play_collision::piece_gfx#0 + (byte) play_collision::i#2)==(byte) 0) goto play_collision::@3 -- pbuz1_derefidx_vbuz2_eq_0_then_la1 + // [208] if(*((byte*) play_collision::piece_gfx#0 + (byte) play_collision::i#2)==(byte) 0) goto play_collision::@3 -- pbuz1_derefidx_vbuz2_eq_0_then_la1 ldy.z i_1 lda (piece_gfx),y cmp #0 @@ -18159,101 +18131,101 @@ play_collision: { jmp __b7 // play_collision::@7 __b7: - // [211] if((byte) play_collision::yp#2<(const byte) PLAYFIELD_LINES) goto play_collision::@4 -- vbuz1_lt_vbuc1_then_la1 + // [209] if((byte) play_collision::yp#2<(const byte) PLAYFIELD_LINES) goto play_collision::@4 -- vbuz1_lt_vbuc1_then_la1 lda.z yp cmp #PLAYFIELD_LINES bcc __b4 - // [216] phi from play_collision::@7 to play_collision::@return [phi:play_collision::@7->play_collision::@return] + // [214] phi from play_collision::@7 to play_collision::@return [phi:play_collision::@7->play_collision::@return] __breturn_from___b7: - // [216] phi (byte) play_collision::return#15 = (const byte) COLLISION_BOTTOM [phi:play_collision::@7->play_collision::@return#0] -- vbuaa=vbuc1 + // [214] phi (byte) play_collision::return#15 = (const byte) COLLISION_BOTTOM [phi:play_collision::@7->play_collision::@return#0] -- vbuaa=vbuc1 lda #COLLISION_BOTTOM jmp __breturn // play_collision::@4 __b4: - // [212] (byte~) play_collision::$5 ← (byte) play_collision::xp#2 & (byte) $80 -- vbuaa=vbuz1_band_vbuc1 + // [210] (byte~) play_collision::$5 ← (byte) play_collision::xp#2 & (byte) $80 -- vbuaa=vbuz1_band_vbuc1 lda #$80 and.z xp - // [213] if((byte~) play_collision::$5==(byte) 0) goto play_collision::@5 -- vbuaa_eq_0_then_la1 + // [211] if((byte~) play_collision::$5==(byte) 0) goto play_collision::@5 -- vbuaa_eq_0_then_la1 cmp #0 beq __b5 - // [216] phi from play_collision::@4 to play_collision::@return [phi:play_collision::@4->play_collision::@return] + // [214] phi from play_collision::@4 to play_collision::@return [phi:play_collision::@4->play_collision::@return] __breturn_from___b4: - // [216] phi (byte) play_collision::return#15 = (const byte) COLLISION_LEFT [phi:play_collision::@4->play_collision::@return#0] -- vbuaa=vbuc1 + // [214] phi (byte) play_collision::return#15 = (const byte) COLLISION_LEFT [phi:play_collision::@4->play_collision::@return#0] -- vbuaa=vbuc1 lda #COLLISION_LEFT jmp __breturn // play_collision::@5 __b5: - // [214] if((byte) play_collision::xp#2<(const byte) PLAYFIELD_COLS) goto play_collision::@6 -- vbuz1_lt_vbuc1_then_la1 + // [212] if((byte) play_collision::xp#2<(const byte) PLAYFIELD_COLS) goto play_collision::@6 -- vbuz1_lt_vbuc1_then_la1 lda.z xp cmp #PLAYFIELD_COLS bcc __b6 - // [216] phi from play_collision::@5 to play_collision::@return [phi:play_collision::@5->play_collision::@return] + // [214] phi from play_collision::@5 to play_collision::@return [phi:play_collision::@5->play_collision::@return] __breturn_from___b5: - // [216] phi (byte) play_collision::return#15 = (const byte) COLLISION_RIGHT [phi:play_collision::@5->play_collision::@return#0] -- vbuaa=vbuc1 + // [214] phi (byte) play_collision::return#15 = (const byte) COLLISION_RIGHT [phi:play_collision::@5->play_collision::@return#0] -- vbuaa=vbuc1 lda #COLLISION_RIGHT jmp __breturn // play_collision::@6 __b6: - // [215] if(*((byte*) play_collision::playfield_line#0 + (byte) play_collision::xp#2)==(byte) 0) goto play_collision::@3 -- pbuz1_derefidx_vbuz2_eq_0_then_la1 + // [213] if(*((byte*) play_collision::playfield_line#0 + (byte) play_collision::xp#2)==(byte) 0) goto play_collision::@3 -- pbuz1_derefidx_vbuz2_eq_0_then_la1 ldy.z xp lda (playfield_line),y cmp #0 beq __b3 - // [216] phi from play_collision::@6 to play_collision::@return [phi:play_collision::@6->play_collision::@return] + // [214] phi from play_collision::@6 to play_collision::@return [phi:play_collision::@6->play_collision::@return] __breturn_from___b6: - // [216] phi (byte) play_collision::return#15 = (const byte) COLLISION_PLAYFIELD [phi:play_collision::@6->play_collision::@return#0] -- vbuaa=vbuc1 + // [214] phi (byte) play_collision::return#15 = (const byte) COLLISION_PLAYFIELD [phi:play_collision::@6->play_collision::@return#0] -- vbuaa=vbuc1 lda #COLLISION_PLAYFIELD jmp __breturn // play_collision::@return __breturn: - // [217] return + // [215] return rts // play_collision::@3 __b3: - // [218] (byte) play_collision::xp#1 ← ++ (byte) play_collision::xp#2 -- vbuz1=_inc_vbuz1 + // [216] (byte) play_collision::xp#1 ← ++ (byte) play_collision::xp#2 -- vbuz1=_inc_vbuz1 inc.z xp - // [219] (byte) play_collision::c#1 ← ++ (byte) play_collision::c#2 -- vbuxx=_inc_vbuxx + // [217] (byte) play_collision::c#1 ← ++ (byte) play_collision::c#2 -- vbuxx=_inc_vbuxx inx - // [220] if((byte) play_collision::c#1!=(byte) 4) goto play_collision::@10 -- vbuxx_neq_vbuc1_then_la1 + // [218] if((byte) play_collision::c#1!=(byte) 4) goto play_collision::@10 -- vbuxx_neq_vbuc1_then_la1 cpx #4 bne __b10 jmp __b8 // play_collision::@8 __b8: - // [221] (byte) play_collision::yp#1 ← ++ (byte) play_collision::yp#2 -- vbuz1=_inc_vbuz1 + // [219] (byte) play_collision::yp#1 ← ++ (byte) play_collision::yp#2 -- vbuz1=_inc_vbuz1 inc.z yp - // [222] (byte) play_collision::l#1 ← ++ (byte) play_collision::l#6 -- vbuz1=_inc_vbuz1 + // [220] (byte) play_collision::l#1 ← ++ (byte) play_collision::l#6 -- vbuz1=_inc_vbuz1 inc.z l - // [223] if((byte) play_collision::l#1!=(byte) 4) goto play_collision::@9 -- vbuz1_neq_vbuc1_then_la1 + // [221] if((byte) play_collision::l#1!=(byte) 4) goto play_collision::@9 -- vbuz1_neq_vbuc1_then_la1 lda #4 cmp.z l bne __b9 - // [216] phi from play_collision::@8 to play_collision::@return [phi:play_collision::@8->play_collision::@return] + // [214] phi from play_collision::@8 to play_collision::@return [phi:play_collision::@8->play_collision::@return] __breturn_from___b8: - // [216] phi (byte) play_collision::return#15 = (const byte) COLLISION_NONE [phi:play_collision::@8->play_collision::@return#0] -- vbuaa=vbuc1 + // [214] phi (byte) play_collision::return#15 = (const byte) COLLISION_NONE [phi:play_collision::@8->play_collision::@return#0] -- vbuaa=vbuc1 lda #COLLISION_NONE jmp __breturn // play_collision::@9 __b9: - // [224] (byte) play_collision::i#10 ← (byte) play_collision::i#1 -- vbuz1=vbuz2 + // [222] (byte) play_collision::i#10 ← (byte) play_collision::i#1 -- vbuz1=vbuz2 lda.z i sta.z i_1 - // [204] phi from play_collision::@9 to play_collision::@1 [phi:play_collision::@9->play_collision::@1] + // [202] phi from play_collision::@9 to play_collision::@1 [phi:play_collision::@9->play_collision::@1] __b1_from___b9: - // [204] phi (byte) play_collision::l#6 = (byte) play_collision::l#1 [phi:play_collision::@9->play_collision::@1#0] -- register_copy - // [204] phi (byte) play_collision::i#3 = (byte) play_collision::i#10 [phi:play_collision::@9->play_collision::@1#1] -- register_copy - // [204] phi (byte) play_collision::yp#2 = (byte) play_collision::yp#1 [phi:play_collision::@9->play_collision::@1#2] -- register_copy + // [202] phi (byte) play_collision::l#6 = (byte) play_collision::l#1 [phi:play_collision::@9->play_collision::@1#0] -- register_copy + // [202] phi (byte) play_collision::i#3 = (byte) play_collision::i#10 [phi:play_collision::@9->play_collision::@1#1] -- register_copy + // [202] phi (byte) play_collision::yp#2 = (byte) play_collision::yp#1 [phi:play_collision::@9->play_collision::@1#2] -- register_copy jmp __b1 // play_collision::@10 __b10: - // [225] (byte) play_collision::i#12 ← (byte) play_collision::i#1 -- vbuz1=vbuz2 + // [223] (byte) play_collision::i#12 ← (byte) play_collision::i#1 -- vbuz1=vbuz2 lda.z i sta.z i_1 - // [208] phi from play_collision::@10 to play_collision::@2 [phi:play_collision::@10->play_collision::@2] + // [206] phi from play_collision::@10 to play_collision::@2 [phi:play_collision::@10->play_collision::@2] __b2_from___b10: - // [208] phi (byte) play_collision::c#2 = (byte) play_collision::c#1 [phi:play_collision::@10->play_collision::@2#0] -- register_copy - // [208] phi (byte) play_collision::xp#2 = (byte) play_collision::xp#1 [phi:play_collision::@10->play_collision::@2#1] -- register_copy - // [208] phi (byte) play_collision::i#2 = (byte) play_collision::i#12 [phi:play_collision::@10->play_collision::@2#2] -- register_copy + // [206] phi (byte) play_collision::c#2 = (byte) play_collision::c#1 [phi:play_collision::@10->play_collision::@2#0] -- register_copy + // [206] phi (byte) play_collision::xp#2 = (byte) play_collision::xp#1 [phi:play_collision::@10->play_collision::@2#1] -- register_copy + // [206] phi (byte) play_collision::i#2 = (byte) play_collision::i#12 [phi:play_collision::@10->play_collision::@2#2] -- register_copy jmp __b2 } // play_move_leftright @@ -18261,109 +18233,109 @@ play_collision: { // Return non-zero if a render is needed // play_move_leftright(byte register(A) key_event) play_move_leftright: { - // [226] if((byte) play_move_leftright::key_event#0==(const byte) KEY_COMMA) goto play_move_leftright::@1 -- vbuaa_eq_vbuc1_then_la1 + // [224] if((byte) play_move_leftright::key_event#0==(const byte) KEY_COMMA) goto play_move_leftright::@1 -- vbuaa_eq_vbuc1_then_la1 // Handle keyboard events cmp #KEY_COMMA beq __b1 jmp __b2 // play_move_leftright::@2 __b2: - // [227] if((byte) play_move_leftright::key_event#0!=(const byte) KEY_DOT) goto play_move_leftright::@return -- vbuaa_neq_vbuc1_then_la1 + // [225] if((byte) play_move_leftright::key_event#0!=(const byte) KEY_DOT) goto play_move_leftright::@return -- vbuaa_neq_vbuc1_then_la1 cmp #KEY_DOT bne __breturn_from___b2 jmp __b3 // play_move_leftright::@3 __b3: - // [228] (byte) play_collision::xpos#2 ← (byte) current_xpos#22 + (byte) 1 -- vbuz1=vbuz2_plus_1 + // [226] (byte) play_collision::xpos#2 ← (byte) current_xpos#22 + (byte) 1 -- vbuz1=vbuz2_plus_1 ldy.z current_xpos iny sty.z play_collision.xpos - // [229] (byte) play_collision::ypos#2 ← (byte) current_ypos#19 -- vbuz1=vbuz2 + // [227] (byte) play_collision::ypos#2 ← (byte) current_ypos#19 -- vbuz1=vbuz2 lda.z current_ypos sta.z play_collision.ypos - // [230] (byte) play_collision::orientation#2 ← (byte) current_orientation#20 -- vbuxx=vbuz1 + // [228] (byte) play_collision::orientation#2 ← (byte) current_orientation#20 -- vbuxx=vbuz1 ldx.z current_orientation - // [231] (byte*) current_piece#97 ← (byte*) current_piece#15 -- pbuz1=pbuz2 + // [229] (byte*) current_piece#97 ← (byte*) current_piece#15 -- pbuz1=pbuz2 lda.z current_piece sta.z current_piece_1 lda.z current_piece+1 sta.z current_piece_1+1 - // [232] call play_collision - // [202] phi from play_move_leftright::@3 to play_collision [phi:play_move_leftright::@3->play_collision] + // [230] call play_collision + // [200] phi from play_move_leftright::@3 to play_collision [phi:play_move_leftright::@3->play_collision] play_collision_from___b3: - // [202] phi (byte) play_collision::xpos#6 = (byte) play_collision::xpos#2 [phi:play_move_leftright::@3->play_collision#0] -- register_copy - // [202] phi (byte) play_collision::yp#0 = (byte) play_collision::ypos#2 [phi:play_move_leftright::@3->play_collision#1] -- register_copy - // [202] phi (byte) play_collision::orientation#5 = (byte) play_collision::orientation#2 [phi:play_move_leftright::@3->play_collision#2] -- register_copy - // [202] phi (byte*) current_piece#17 = (byte*) current_piece#97 [phi:play_move_leftright::@3->play_collision#3] -- register_copy + // [200] phi (byte) play_collision::xpos#6 = (byte) play_collision::xpos#2 [phi:play_move_leftright::@3->play_collision#0] -- register_copy + // [200] phi (byte) play_collision::yp#0 = (byte) play_collision::ypos#2 [phi:play_move_leftright::@3->play_collision#1] -- register_copy + // [200] phi (byte) play_collision::orientation#5 = (byte) play_collision::orientation#2 [phi:play_move_leftright::@3->play_collision#2] -- register_copy + // [200] phi (byte*) current_piece#17 = (byte*) current_piece#97 [phi:play_move_leftright::@3->play_collision#3] -- register_copy jsr play_collision - // [233] (byte) play_collision::return#13 ← (byte) play_collision::return#15 + // [231] (byte) play_collision::return#13 ← (byte) play_collision::return#15 jmp __b7 // play_move_leftright::@7 __b7: - // [234] (byte~) play_move_leftright::$4 ← (byte) play_collision::return#13 - // [235] if((byte~) play_move_leftright::$4!=(const byte) COLLISION_NONE) goto play_move_leftright::@return -- vbuaa_neq_vbuc1_then_la1 + // [232] (byte~) play_move_leftright::$4 ← (byte) play_collision::return#13 + // [233] if((byte~) play_move_leftright::$4!=(const byte) COLLISION_NONE) goto play_move_leftright::@return -- vbuaa_neq_vbuc1_then_la1 cmp #COLLISION_NONE bne __breturn_from___b7 jmp __b4 // play_move_leftright::@4 __b4: - // [236] (byte) current_xpos#6 ← ++ (byte) current_xpos#22 -- vbuz1=_inc_vbuz1 + // [234] (byte) current_xpos#6 ← ++ (byte) current_xpos#22 -- vbuz1=_inc_vbuz1 inc.z current_xpos - // [237] phi from play_move_leftright::@4 play_move_leftright::@5 to play_move_leftright::@return [phi:play_move_leftright::@4/play_move_leftright::@5->play_move_leftright::@return] + // [235] phi from play_move_leftright::@4 play_move_leftright::@5 to play_move_leftright::@return [phi:play_move_leftright::@4/play_move_leftright::@5->play_move_leftright::@return] __breturn_from___b4: __breturn_from___b5: - // [237] phi (byte) current_xpos#26 = (byte) current_xpos#6 [phi:play_move_leftright::@4/play_move_leftright::@5->play_move_leftright::@return#0] -- register_copy - // [237] phi (byte) play_move_leftright::return#2 = (byte) 1 [phi:play_move_leftright::@4/play_move_leftright::@5->play_move_leftright::@return#1] -- vbuaa=vbuc1 + // [235] phi (byte) current_xpos#26 = (byte) current_xpos#6 [phi:play_move_leftright::@4/play_move_leftright::@5->play_move_leftright::@return#0] -- register_copy + // [235] phi (byte) play_move_leftright::return#2 = (byte) 1 [phi:play_move_leftright::@4/play_move_leftright::@5->play_move_leftright::@return#1] -- vbuaa=vbuc1 lda #1 jmp __breturn - // [237] phi from play_move_leftright::@2 play_move_leftright::@6 play_move_leftright::@7 to play_move_leftright::@return [phi:play_move_leftright::@2/play_move_leftright::@6/play_move_leftright::@7->play_move_leftright::@return] + // [235] phi from play_move_leftright::@2 play_move_leftright::@6 play_move_leftright::@7 to play_move_leftright::@return [phi:play_move_leftright::@2/play_move_leftright::@6/play_move_leftright::@7->play_move_leftright::@return] __breturn_from___b2: __breturn_from___b6: __breturn_from___b7: - // [237] phi (byte) current_xpos#26 = (byte) current_xpos#22 [phi:play_move_leftright::@2/play_move_leftright::@6/play_move_leftright::@7->play_move_leftright::@return#0] -- register_copy - // [237] phi (byte) play_move_leftright::return#2 = (byte) 0 [phi:play_move_leftright::@2/play_move_leftright::@6/play_move_leftright::@7->play_move_leftright::@return#1] -- vbuaa=vbuc1 + // [235] phi (byte) current_xpos#26 = (byte) current_xpos#22 [phi:play_move_leftright::@2/play_move_leftright::@6/play_move_leftright::@7->play_move_leftright::@return#0] -- register_copy + // [235] phi (byte) play_move_leftright::return#2 = (byte) 0 [phi:play_move_leftright::@2/play_move_leftright::@6/play_move_leftright::@7->play_move_leftright::@return#1] -- vbuaa=vbuc1 lda #0 jmp __breturn // play_move_leftright::@return __breturn: - // [238] return + // [236] return rts // play_move_leftright::@1 __b1: - // [239] (byte) play_collision::xpos#1 ← (byte) current_xpos#22 - (byte) 1 -- vbuz1=vbuz2_minus_1 + // [237] (byte) play_collision::xpos#1 ← (byte) current_xpos#22 - (byte) 1 -- vbuz1=vbuz2_minus_1 ldx.z current_xpos dex stx.z play_collision.xpos - // [240] (byte) play_collision::ypos#1 ← (byte) current_ypos#19 -- vbuz1=vbuz2 + // [238] (byte) play_collision::ypos#1 ← (byte) current_ypos#19 -- vbuz1=vbuz2 lda.z current_ypos sta.z play_collision.ypos - // [241] (byte) play_collision::orientation#1 ← (byte) current_orientation#20 -- vbuxx=vbuz1 + // [239] (byte) play_collision::orientation#1 ← (byte) current_orientation#20 -- vbuxx=vbuz1 ldx.z current_orientation - // [242] (byte*) current_piece#96 ← (byte*) current_piece#15 -- pbuz1=pbuz2 + // [240] (byte*) current_piece#96 ← (byte*) current_piece#15 -- pbuz1=pbuz2 lda.z current_piece sta.z current_piece_1 lda.z current_piece+1 sta.z current_piece_1+1 - // [243] call play_collision - // [202] phi from play_move_leftright::@1 to play_collision [phi:play_move_leftright::@1->play_collision] + // [241] call play_collision + // [200] phi from play_move_leftright::@1 to play_collision [phi:play_move_leftright::@1->play_collision] play_collision_from___b1: - // [202] phi (byte) play_collision::xpos#6 = (byte) play_collision::xpos#1 [phi:play_move_leftright::@1->play_collision#0] -- register_copy - // [202] phi (byte) play_collision::yp#0 = (byte) play_collision::ypos#1 [phi:play_move_leftright::@1->play_collision#1] -- register_copy - // [202] phi (byte) play_collision::orientation#5 = (byte) play_collision::orientation#1 [phi:play_move_leftright::@1->play_collision#2] -- register_copy - // [202] phi (byte*) current_piece#17 = (byte*) current_piece#96 [phi:play_move_leftright::@1->play_collision#3] -- register_copy + // [200] phi (byte) play_collision::xpos#6 = (byte) play_collision::xpos#1 [phi:play_move_leftright::@1->play_collision#0] -- register_copy + // [200] phi (byte) play_collision::yp#0 = (byte) play_collision::ypos#1 [phi:play_move_leftright::@1->play_collision#1] -- register_copy + // [200] phi (byte) play_collision::orientation#5 = (byte) play_collision::orientation#1 [phi:play_move_leftright::@1->play_collision#2] -- register_copy + // [200] phi (byte*) current_piece#17 = (byte*) current_piece#96 [phi:play_move_leftright::@1->play_collision#3] -- register_copy jsr play_collision - // [244] (byte) play_collision::return#1 ← (byte) play_collision::return#15 + // [242] (byte) play_collision::return#1 ← (byte) play_collision::return#15 jmp __b6 // play_move_leftright::@6 __b6: - // [245] (byte~) play_move_leftright::$8 ← (byte) play_collision::return#1 - // [246] if((byte~) play_move_leftright::$8!=(const byte) COLLISION_NONE) goto play_move_leftright::@return -- vbuaa_neq_vbuc1_then_la1 + // [243] (byte~) play_move_leftright::$8 ← (byte) play_collision::return#1 + // [244] if((byte~) play_move_leftright::$8!=(const byte) COLLISION_NONE) goto play_move_leftright::@return -- vbuaa_neq_vbuc1_then_la1 cmp #COLLISION_NONE bne __breturn_from___b6 jmp __b5 // play_move_leftright::@5 __b5: - // [247] (byte) current_xpos#8 ← -- (byte) current_xpos#22 -- vbuz1=_dec_vbuz1 + // [245] (byte) current_xpos#8 ← -- (byte) current_xpos#22 -- vbuz1=_dec_vbuz1 dec.z current_xpos jmp __breturn_from___b5 } @@ -18372,246 +18344,246 @@ play_move_leftright: { // Return non-zero if a render is needed // play_move_down(byte register(A) key_event) play_move_down: { - // [248] (byte) current_movedown_counter#12 ← ++ (byte) current_movedown_counter#16 -- vbuz1=_inc_vbuz1 + // [246] (byte) current_movedown_counter#12 ← ++ (byte) current_movedown_counter#16 -- vbuz1=_inc_vbuz1 inc.z current_movedown_counter - // [249] if((byte) play_move_down::key_event#0!=(const byte) KEY_SPACE) goto play_move_down::@1 -- vbuaa_neq_vbuc1_then_la1 + // [247] if((byte) play_move_down::key_event#0!=(const byte) KEY_SPACE) goto play_move_down::@1 -- vbuaa_neq_vbuc1_then_la1 cmp #KEY_SPACE bne __b1_from_play_move_down - // [250] phi from play_move_down to play_move_down::@4 [phi:play_move_down->play_move_down::@4] + // [248] phi from play_move_down to play_move_down::@4 [phi:play_move_down->play_move_down::@4] __b4_from_play_move_down: jmp __b4 // play_move_down::@4 __b4: - // [251] phi from play_move_down::@4 to play_move_down::@1 [phi:play_move_down::@4->play_move_down::@1] + // [249] phi from play_move_down::@4 to play_move_down::@1 [phi:play_move_down::@4->play_move_down::@1] __b1_from___b4: - // [251] phi (byte) play_move_down::movedown#10 = (byte) 1 [phi:play_move_down::@4->play_move_down::@1#0] -- vbuxx=vbuc1 + // [249] phi (byte) play_move_down::movedown#10 = (byte) 1 [phi:play_move_down::@4->play_move_down::@1#0] -- vbuxx=vbuc1 ldx #1 jmp __b1 - // [251] phi from play_move_down to play_move_down::@1 [phi:play_move_down->play_move_down::@1] + // [249] phi from play_move_down to play_move_down::@1 [phi:play_move_down->play_move_down::@1] __b1_from_play_move_down: - // [251] phi (byte) play_move_down::movedown#10 = (byte) 0 [phi:play_move_down->play_move_down::@1#0] -- vbuxx=vbuc1 + // [249] phi (byte) play_move_down::movedown#10 = (byte) 0 [phi:play_move_down->play_move_down::@1#0] -- vbuxx=vbuc1 ldx #0 jmp __b1 // play_move_down::@1 __b1: - // [252] call keyboard_event_pressed - // [381] phi from play_move_down::@1 to keyboard_event_pressed [phi:play_move_down::@1->keyboard_event_pressed] + // [250] call keyboard_event_pressed + // [379] phi from play_move_down::@1 to keyboard_event_pressed [phi:play_move_down::@1->keyboard_event_pressed] keyboard_event_pressed_from___b1: - // [381] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_SPACE [phi:play_move_down::@1->keyboard_event_pressed#0] -- vbuz1=vbuc1 + // [379] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_SPACE [phi:play_move_down::@1->keyboard_event_pressed#0] -- vbuz1=vbuc1 lda #KEY_SPACE sta.z keyboard_event_pressed.keycode jsr keyboard_event_pressed - // [253] (byte) keyboard_event_pressed::return#12 ← (byte) keyboard_event_pressed::return#11 + // [251] (byte) keyboard_event_pressed::return#12 ← (byte) keyboard_event_pressed::return#11 jmp __b12 // play_move_down::@12 __b12: - // [254] (byte~) play_move_down::$2 ← (byte) keyboard_event_pressed::return#12 - // [255] if((byte~) play_move_down::$2==(byte) 0) goto play_move_down::@2 -- vbuaa_eq_0_then_la1 + // [252] (byte~) play_move_down::$2 ← (byte) keyboard_event_pressed::return#12 + // [253] if((byte~) play_move_down::$2==(byte) 0) goto play_move_down::@2 -- vbuaa_eq_0_then_la1 cmp #0 beq __b2_from___b12 jmp __b5 // play_move_down::@5 __b5: - // [256] if((byte) current_movedown_counter#12<(const byte) current_movedown_fast) goto play_move_down::@2 -- vbuz1_lt_vbuc1_then_la1 + // [254] if((byte) current_movedown_counter#12<(const byte) current_movedown_fast) goto play_move_down::@2 -- vbuz1_lt_vbuc1_then_la1 lda.z current_movedown_counter cmp #current_movedown_fast bcc __b2_from___b5 jmp __b6 // play_move_down::@6 __b6: - // [257] (byte) play_move_down::movedown#2 ← ++ (byte) play_move_down::movedown#10 -- vbuxx=_inc_vbuxx + // [255] (byte) play_move_down::movedown#2 ← ++ (byte) play_move_down::movedown#10 -- vbuxx=_inc_vbuxx inx - // [258] phi from play_move_down::@12 play_move_down::@5 play_move_down::@6 to play_move_down::@2 [phi:play_move_down::@12/play_move_down::@5/play_move_down::@6->play_move_down::@2] + // [256] phi from play_move_down::@12 play_move_down::@5 play_move_down::@6 to play_move_down::@2 [phi:play_move_down::@12/play_move_down::@5/play_move_down::@6->play_move_down::@2] __b2_from___b12: __b2_from___b5: __b2_from___b6: - // [258] phi (byte) play_move_down::movedown#7 = (byte) play_move_down::movedown#10 [phi:play_move_down::@12/play_move_down::@5/play_move_down::@6->play_move_down::@2#0] -- register_copy + // [256] phi (byte) play_move_down::movedown#7 = (byte) play_move_down::movedown#10 [phi:play_move_down::@12/play_move_down::@5/play_move_down::@6->play_move_down::@2#0] -- register_copy jmp __b2 // play_move_down::@2 __b2: - // [259] if((byte) current_movedown_counter#12<(byte) current_movedown_slow#14) goto play_move_down::@3 -- vbuz1_lt_vbuz2_then_la1 + // [257] if((byte) current_movedown_counter#12<(byte) current_movedown_slow#14) goto play_move_down::@3 -- vbuz1_lt_vbuz2_then_la1 lda.z current_movedown_counter cmp.z current_movedown_slow bcc __b3_from___b2 jmp __b7 // play_move_down::@7 __b7: - // [260] (byte) play_move_down::movedown#3 ← ++ (byte) play_move_down::movedown#7 -- vbuxx=_inc_vbuxx + // [258] (byte) play_move_down::movedown#3 ← ++ (byte) play_move_down::movedown#7 -- vbuxx=_inc_vbuxx inx - // [261] phi from play_move_down::@2 play_move_down::@7 to play_move_down::@3 [phi:play_move_down::@2/play_move_down::@7->play_move_down::@3] + // [259] phi from play_move_down::@2 play_move_down::@7 to play_move_down::@3 [phi:play_move_down::@2/play_move_down::@7->play_move_down::@3] __b3_from___b2: __b3_from___b7: - // [261] phi (byte) play_move_down::movedown#6 = (byte) play_move_down::movedown#7 [phi:play_move_down::@2/play_move_down::@7->play_move_down::@3#0] -- register_copy + // [259] phi (byte) play_move_down::movedown#6 = (byte) play_move_down::movedown#7 [phi:play_move_down::@2/play_move_down::@7->play_move_down::@3#0] -- register_copy jmp __b3 // play_move_down::@3 __b3: - // [262] if((byte) play_move_down::movedown#6==(byte) 0) goto play_move_down::@return -- vbuxx_eq_0_then_la1 + // [260] if((byte) play_move_down::movedown#6==(byte) 0) goto play_move_down::@return -- vbuxx_eq_0_then_la1 cpx #0 beq __breturn_from___b3 jmp __b8 // play_move_down::@8 __b8: - // [263] (byte) play_collision::ypos#0 ← (byte) current_ypos#11 + (byte) 1 -- vbuz1=vbuz2_plus_1 + // [261] (byte) play_collision::ypos#0 ← (byte) current_ypos#11 + (byte) 1 -- vbuz1=vbuz2_plus_1 ldy.z current_ypos iny sty.z play_collision.ypos - // [264] (byte) play_collision::xpos#0 ← (byte) current_xpos#14 -- vbuz1=vbuz2 + // [262] (byte) play_collision::xpos#0 ← (byte) current_xpos#14 -- vbuz1=vbuz2 lda.z current_xpos sta.z play_collision.xpos - // [265] (byte) play_collision::orientation#0 ← (byte) current_orientation#13 -- vbuxx=vbuz1 + // [263] (byte) play_collision::orientation#0 ← (byte) current_orientation#13 -- vbuxx=vbuz1 ldx.z current_orientation - // [266] (byte*) current_piece#95 ← (byte*) current_piece#10 -- pbuz1=pbuz2 + // [264] (byte*) current_piece#95 ← (byte*) current_piece#10 -- pbuz1=pbuz2 lda.z current_piece sta.z current_piece_1 lda.z current_piece+1 sta.z current_piece_1+1 - // [267] call play_collision - // [202] phi from play_move_down::@8 to play_collision [phi:play_move_down::@8->play_collision] + // [265] call play_collision + // [200] phi from play_move_down::@8 to play_collision [phi:play_move_down::@8->play_collision] play_collision_from___b8: - // [202] phi (byte) play_collision::xpos#6 = (byte) play_collision::xpos#0 [phi:play_move_down::@8->play_collision#0] -- register_copy - // [202] phi (byte) play_collision::yp#0 = (byte) play_collision::ypos#0 [phi:play_move_down::@8->play_collision#1] -- register_copy - // [202] phi (byte) play_collision::orientation#5 = (byte) play_collision::orientation#0 [phi:play_move_down::@8->play_collision#2] -- register_copy - // [202] phi (byte*) current_piece#17 = (byte*) current_piece#95 [phi:play_move_down::@8->play_collision#3] -- register_copy + // [200] phi (byte) play_collision::xpos#6 = (byte) play_collision::xpos#0 [phi:play_move_down::@8->play_collision#0] -- register_copy + // [200] phi (byte) play_collision::yp#0 = (byte) play_collision::ypos#0 [phi:play_move_down::@8->play_collision#1] -- register_copy + // [200] phi (byte) play_collision::orientation#5 = (byte) play_collision::orientation#0 [phi:play_move_down::@8->play_collision#2] -- register_copy + // [200] phi (byte*) current_piece#17 = (byte*) current_piece#95 [phi:play_move_down::@8->play_collision#3] -- register_copy jsr play_collision - // [268] (byte) play_collision::return#0 ← (byte) play_collision::return#15 + // [266] (byte) play_collision::return#0 ← (byte) play_collision::return#15 jmp __b13 // play_move_down::@13 __b13: - // [269] (byte~) play_move_down::$12 ← (byte) play_collision::return#0 - // [270] if((byte~) play_move_down::$12==(const byte) COLLISION_NONE) goto play_move_down::@10 -- vbuaa_eq_vbuc1_then_la1 + // [267] (byte~) play_move_down::$12 ← (byte) play_collision::return#0 + // [268] if((byte~) play_move_down::$12==(const byte) COLLISION_NONE) goto play_move_down::@10 -- vbuaa_eq_vbuc1_then_la1 cmp #COLLISION_NONE beq __b10 - // [271] phi from play_move_down::@13 to play_move_down::@9 [phi:play_move_down::@13->play_move_down::@9] + // [269] phi from play_move_down::@13 to play_move_down::@9 [phi:play_move_down::@13->play_move_down::@9] __b9_from___b13: jmp __b9 // play_move_down::@9 __b9: - // [272] call play_lock_current + // [270] call play_lock_current jsr play_lock_current - // [273] phi from play_move_down::@9 to play_move_down::@14 [phi:play_move_down::@9->play_move_down::@14] + // [271] phi from play_move_down::@9 to play_move_down::@14 [phi:play_move_down::@9->play_move_down::@14] __b14_from___b9: jmp __b14 // play_move_down::@14 __b14: - // [274] call play_remove_lines - // [340] phi from play_move_down::@14 to play_remove_lines [phi:play_move_down::@14->play_remove_lines] + // [272] call play_remove_lines + // [338] phi from play_move_down::@14 to play_remove_lines [phi:play_move_down::@14->play_remove_lines] play_remove_lines_from___b14: jsr play_remove_lines - // [275] (byte) play_remove_lines::return#0 ← (byte) play_remove_lines::removed#8 -- vbuaa=vbuz1 + // [273] (byte) play_remove_lines::return#0 ← (byte) play_remove_lines::removed#8 -- vbuaa=vbuz1 lda.z play_remove_lines.removed jmp __b15 // play_move_down::@15 __b15: - // [276] (byte) play_move_down::removed#0 ← (byte) play_remove_lines::return#0 - // [277] (byte) play_update_score::removed#0 ← (byte) play_move_down::removed#0 -- vbuxx=vbuaa + // [274] (byte) play_move_down::removed#0 ← (byte) play_remove_lines::return#0 + // [275] (byte) play_update_score::removed#0 ← (byte) play_move_down::removed#0 -- vbuxx=vbuaa tax - // [278] call play_update_score + // [276] call play_update_score jsr play_update_score - // [279] phi from play_move_down::@15 to play_move_down::@16 [phi:play_move_down::@15->play_move_down::@16] + // [277] phi from play_move_down::@15 to play_move_down::@16 [phi:play_move_down::@15->play_move_down::@16] __b16_from___b15: jmp __b16 // play_move_down::@16 __b16: - // [280] call play_spawn_current - // [287] phi from play_move_down::@16 to play_spawn_current [phi:play_move_down::@16->play_spawn_current] + // [278] call play_spawn_current + // [285] phi from play_move_down::@16 to play_spawn_current [phi:play_move_down::@16->play_spawn_current] play_spawn_current_from___b16: - // [287] phi (byte) game_over#65 = (byte) game_over#10 [phi:play_move_down::@16->play_spawn_current#0] -- register_copy - // [287] phi (byte) next_piece_idx#17 = (byte) next_piece_idx#10 [phi:play_move_down::@16->play_spawn_current#1] -- register_copy + // [285] phi (byte) game_over#65 = (byte) game_over#10 [phi:play_move_down::@16->play_spawn_current#0] -- register_copy + // [285] phi (byte) next_piece_idx#17 = (byte) next_piece_idx#10 [phi:play_move_down::@16->play_spawn_current#1] -- register_copy jsr play_spawn_current jmp __b17 // play_move_down::@17 __b17: - // [281] (byte*) current_piece#92 ← (byte*)*((const word*) PIECES + (byte~) play_spawn_current::$7) -- pbuz1=pptc1_derefidx_vbuz2 + // [279] (byte*) current_piece#92 ← (byte*)*((const word*) PIECES + (byte~) play_spawn_current::$7) -- pbuz1=pptc1_derefidx_vbuz2 ldy.z play_spawn_current.__7 lda PIECES,y sta.z current_piece lda PIECES+1,y sta.z current_piece+1 - // [282] (byte*) current_piece_gfx#116 ← (byte*)*((const word*) PIECES + (byte~) play_spawn_current::$7) -- pbuz1=pptc1_derefidx_vbuz2 + // [280] (byte*) current_piece_gfx#116 ← (byte*)*((const word*) PIECES + (byte~) play_spawn_current::$7) -- pbuz1=pptc1_derefidx_vbuz2 ldy.z play_spawn_current.__7 lda PIECES,y sta.z current_piece_gfx lda PIECES+1,y sta.z current_piece_gfx+1 - // [283] phi from play_move_down::@17 to play_move_down::@11 [phi:play_move_down::@17->play_move_down::@11] + // [281] phi from play_move_down::@17 to play_move_down::@11 [phi:play_move_down::@17->play_move_down::@11] __b11_from___b17: - // [283] phi (byte) next_piece_idx#30 = (byte) play_spawn_current::piece_idx#2 [phi:play_move_down::@17->play_move_down::@11#0] -- register_copy - // [283] phi (byte) game_over#27 = (byte) game_over#52 [phi:play_move_down::@17->play_move_down::@11#1] -- register_copy - // [283] phi (byte) current_xpos#43 = (byte) current_xpos#100 [phi:play_move_down::@17->play_move_down::@11#2] -- register_copy - // [283] phi (byte*) current_piece_gfx#35 = (byte*) current_piece_gfx#116 [phi:play_move_down::@17->play_move_down::@11#3] -- register_copy - // [283] phi (byte) current_orientation#37 = (byte) 0 [phi:play_move_down::@17->play_move_down::@11#4] -- vbuz1=vbuc1 + // [281] phi (byte) next_piece_idx#30 = (byte) play_spawn_current::piece_idx#2 [phi:play_move_down::@17->play_move_down::@11#0] -- register_copy + // [281] phi (byte) game_over#27 = (byte) game_over#52 [phi:play_move_down::@17->play_move_down::@11#1] -- register_copy + // [281] phi (byte) current_xpos#43 = (byte) current_xpos#100 [phi:play_move_down::@17->play_move_down::@11#2] -- register_copy + // [281] phi (byte*) current_piece_gfx#35 = (byte*) current_piece_gfx#116 [phi:play_move_down::@17->play_move_down::@11#3] -- register_copy + // [281] phi (byte) current_orientation#37 = (byte) 0 [phi:play_move_down::@17->play_move_down::@11#4] -- vbuz1=vbuc1 lda #0 sta.z current_orientation - // [283] phi (byte) current_piece_char#29 = (byte) current_piece_char#5 [phi:play_move_down::@17->play_move_down::@11#5] -- register_copy - // [283] phi (byte*) current_piece#28 = (byte*) current_piece#92 [phi:play_move_down::@17->play_move_down::@11#6] -- register_copy - // [283] phi (byte) level_bcd#31 = (byte) level_bcd#19 [phi:play_move_down::@17->play_move_down::@11#7] -- register_copy - // [283] phi (byte) current_movedown_slow#37 = (byte) current_movedown_slow#23 [phi:play_move_down::@17->play_move_down::@11#8] -- register_copy - // [283] phi (byte) level#33 = (byte) level#19 [phi:play_move_down::@17->play_move_down::@11#9] -- register_copy - // [283] phi (word) lines_bcd#26 = (word) lines_bcd#17 [phi:play_move_down::@17->play_move_down::@11#10] -- register_copy - // [283] phi (byte) current_ypos#38 = (byte) current_ypos#6 [phi:play_move_down::@17->play_move_down::@11#11] -- register_copy + // [281] phi (byte) current_piece_char#29 = (byte) current_piece_char#5 [phi:play_move_down::@17->play_move_down::@11#5] -- register_copy + // [281] phi (byte*) current_piece#28 = (byte*) current_piece#92 [phi:play_move_down::@17->play_move_down::@11#6] -- register_copy + // [281] phi (byte) level_bcd#31 = (byte) level_bcd#19 [phi:play_move_down::@17->play_move_down::@11#7] -- register_copy + // [281] phi (byte) current_movedown_slow#37 = (byte) current_movedown_slow#23 [phi:play_move_down::@17->play_move_down::@11#8] -- register_copy + // [281] phi (byte) level#33 = (byte) level#19 [phi:play_move_down::@17->play_move_down::@11#9] -- register_copy + // [281] phi (word) lines_bcd#26 = (word) lines_bcd#17 [phi:play_move_down::@17->play_move_down::@11#10] -- register_copy + // [281] phi (byte) current_ypos#38 = (byte) current_ypos#6 [phi:play_move_down::@17->play_move_down::@11#11] -- register_copy jmp __b11 // play_move_down::@11 __b11: - // [284] phi from play_move_down::@11 to play_move_down::@return [phi:play_move_down::@11->play_move_down::@return] + // [282] phi from play_move_down::@11 to play_move_down::@return [phi:play_move_down::@11->play_move_down::@return] __breturn_from___b11: - // [284] phi (byte) next_piece_idx#16 = (byte) next_piece_idx#30 [phi:play_move_down::@11->play_move_down::@return#0] -- register_copy - // [284] phi (byte) game_over#15 = (byte) game_over#27 [phi:play_move_down::@11->play_move_down::@return#1] -- register_copy - // [284] phi (byte) current_xpos#22 = (byte) current_xpos#43 [phi:play_move_down::@11->play_move_down::@return#2] -- register_copy - // [284] phi (byte*) current_piece_gfx#20 = (byte*) current_piece_gfx#35 [phi:play_move_down::@11->play_move_down::@return#3] -- register_copy - // [284] phi (byte) current_orientation#20 = (byte) current_orientation#37 [phi:play_move_down::@11->play_move_down::@return#4] -- register_copy - // [284] phi (byte) current_piece_char#16 = (byte) current_piece_char#29 [phi:play_move_down::@11->play_move_down::@return#5] -- register_copy - // [284] phi (byte*) current_piece#15 = (byte*) current_piece#28 [phi:play_move_down::@11->play_move_down::@return#6] -- register_copy - // [284] phi (byte) level_bcd#17 = (byte) level_bcd#31 [phi:play_move_down::@11->play_move_down::@return#7] -- register_copy - // [284] phi (byte) current_movedown_slow#21 = (byte) current_movedown_slow#37 [phi:play_move_down::@11->play_move_down::@return#8] -- register_copy - // [284] phi (byte) level#17 = (byte) level#33 [phi:play_move_down::@11->play_move_down::@return#9] -- register_copy - // [284] phi (word) lines_bcd#15 = (word) lines_bcd#26 [phi:play_move_down::@11->play_move_down::@return#10] -- register_copy - // [284] phi (byte) current_ypos#19 = (byte) current_ypos#38 [phi:play_move_down::@11->play_move_down::@return#11] -- register_copy - // [284] phi (byte) current_movedown_counter#14 = (byte) 0 [phi:play_move_down::@11->play_move_down::@return#12] -- vbuz1=vbuc1 + // [282] phi (byte) next_piece_idx#16 = (byte) next_piece_idx#30 [phi:play_move_down::@11->play_move_down::@return#0] -- register_copy + // [282] phi (byte) game_over#15 = (byte) game_over#27 [phi:play_move_down::@11->play_move_down::@return#1] -- register_copy + // [282] phi (byte) current_xpos#22 = (byte) current_xpos#43 [phi:play_move_down::@11->play_move_down::@return#2] -- register_copy + // [282] phi (byte*) current_piece_gfx#20 = (byte*) current_piece_gfx#35 [phi:play_move_down::@11->play_move_down::@return#3] -- register_copy + // [282] phi (byte) current_orientation#20 = (byte) current_orientation#37 [phi:play_move_down::@11->play_move_down::@return#4] -- register_copy + // [282] phi (byte) current_piece_char#16 = (byte) current_piece_char#29 [phi:play_move_down::@11->play_move_down::@return#5] -- register_copy + // [282] phi (byte*) current_piece#15 = (byte*) current_piece#28 [phi:play_move_down::@11->play_move_down::@return#6] -- register_copy + // [282] phi (byte) level_bcd#17 = (byte) level_bcd#31 [phi:play_move_down::@11->play_move_down::@return#7] -- register_copy + // [282] phi (byte) current_movedown_slow#21 = (byte) current_movedown_slow#37 [phi:play_move_down::@11->play_move_down::@return#8] -- register_copy + // [282] phi (byte) level#17 = (byte) level#33 [phi:play_move_down::@11->play_move_down::@return#9] -- register_copy + // [282] phi (word) lines_bcd#15 = (word) lines_bcd#26 [phi:play_move_down::@11->play_move_down::@return#10] -- register_copy + // [282] phi (byte) current_ypos#19 = (byte) current_ypos#38 [phi:play_move_down::@11->play_move_down::@return#11] -- register_copy + // [282] phi (byte) current_movedown_counter#14 = (byte) 0 [phi:play_move_down::@11->play_move_down::@return#12] -- vbuz1=vbuc1 lda #0 sta.z current_movedown_counter - // [284] phi (byte) play_move_down::return#3 = (byte) 1 [phi:play_move_down::@11->play_move_down::@return#13] -- vbuxx=vbuc1 + // [282] phi (byte) play_move_down::return#3 = (byte) 1 [phi:play_move_down::@11->play_move_down::@return#13] -- vbuxx=vbuc1 ldx #1 jmp __breturn - // [284] phi from play_move_down::@3 to play_move_down::@return [phi:play_move_down::@3->play_move_down::@return] + // [282] phi from play_move_down::@3 to play_move_down::@return [phi:play_move_down::@3->play_move_down::@return] __breturn_from___b3: - // [284] phi (byte) next_piece_idx#16 = (byte) next_piece_idx#10 [phi:play_move_down::@3->play_move_down::@return#0] -- register_copy - // [284] phi (byte) game_over#15 = (byte) game_over#10 [phi:play_move_down::@3->play_move_down::@return#1] -- register_copy - // [284] phi (byte) current_xpos#22 = (byte) current_xpos#14 [phi:play_move_down::@3->play_move_down::@return#2] -- register_copy - // [284] phi (byte*) current_piece_gfx#20 = (byte*) current_piece_gfx#13 [phi:play_move_down::@3->play_move_down::@return#3] -- register_copy - // [284] phi (byte) current_orientation#20 = (byte) current_orientation#13 [phi:play_move_down::@3->play_move_down::@return#4] -- register_copy - // [284] phi (byte) current_piece_char#16 = (byte) current_piece_char#10 [phi:play_move_down::@3->play_move_down::@return#5] -- register_copy - // [284] phi (byte*) current_piece#15 = (byte*) current_piece#10 [phi:play_move_down::@3->play_move_down::@return#6] -- register_copy - // [284] phi (byte) level_bcd#17 = (byte) level_bcd#11 [phi:play_move_down::@3->play_move_down::@return#7] -- register_copy - // [284] phi (byte) current_movedown_slow#21 = (byte) current_movedown_slow#14 [phi:play_move_down::@3->play_move_down::@return#8] -- register_copy - // [284] phi (byte) level#17 = (byte) level#10 [phi:play_move_down::@3->play_move_down::@return#9] -- register_copy - // [284] phi (word) lines_bcd#15 = (word) lines_bcd#19 [phi:play_move_down::@3->play_move_down::@return#10] -- register_copy - // [284] phi (byte) current_ypos#19 = (byte) current_ypos#11 [phi:play_move_down::@3->play_move_down::@return#11] -- register_copy - // [284] phi (byte) current_movedown_counter#14 = (byte) current_movedown_counter#12 [phi:play_move_down::@3->play_move_down::@return#12] -- register_copy - // [284] phi (byte) play_move_down::return#3 = (byte) 0 [phi:play_move_down::@3->play_move_down::@return#13] -- vbuxx=vbuc1 + // [282] phi (byte) next_piece_idx#16 = (byte) next_piece_idx#10 [phi:play_move_down::@3->play_move_down::@return#0] -- register_copy + // [282] phi (byte) game_over#15 = (byte) game_over#10 [phi:play_move_down::@3->play_move_down::@return#1] -- register_copy + // [282] phi (byte) current_xpos#22 = (byte) current_xpos#14 [phi:play_move_down::@3->play_move_down::@return#2] -- register_copy + // [282] phi (byte*) current_piece_gfx#20 = (byte*) current_piece_gfx#13 [phi:play_move_down::@3->play_move_down::@return#3] -- register_copy + // [282] phi (byte) current_orientation#20 = (byte) current_orientation#13 [phi:play_move_down::@3->play_move_down::@return#4] -- register_copy + // [282] phi (byte) current_piece_char#16 = (byte) current_piece_char#10 [phi:play_move_down::@3->play_move_down::@return#5] -- register_copy + // [282] phi (byte*) current_piece#15 = (byte*) current_piece#10 [phi:play_move_down::@3->play_move_down::@return#6] -- register_copy + // [282] phi (byte) level_bcd#17 = (byte) level_bcd#11 [phi:play_move_down::@3->play_move_down::@return#7] -- register_copy + // [282] phi (byte) current_movedown_slow#21 = (byte) current_movedown_slow#14 [phi:play_move_down::@3->play_move_down::@return#8] -- register_copy + // [282] phi (byte) level#17 = (byte) level#10 [phi:play_move_down::@3->play_move_down::@return#9] -- register_copy + // [282] phi (word) lines_bcd#15 = (word) lines_bcd#19 [phi:play_move_down::@3->play_move_down::@return#10] -- register_copy + // [282] phi (byte) current_ypos#19 = (byte) current_ypos#11 [phi:play_move_down::@3->play_move_down::@return#11] -- register_copy + // [282] phi (byte) current_movedown_counter#14 = (byte) current_movedown_counter#12 [phi:play_move_down::@3->play_move_down::@return#12] -- register_copy + // [282] phi (byte) play_move_down::return#3 = (byte) 0 [phi:play_move_down::@3->play_move_down::@return#13] -- vbuxx=vbuc1 ldx #0 jmp __breturn // play_move_down::@return __breturn: - // [285] return + // [283] return rts // play_move_down::@10 __b10: - // [286] (byte) current_ypos#3 ← ++ (byte) current_ypos#11 -- vbuz1=_inc_vbuz1 + // [284] (byte) current_ypos#3 ← ++ (byte) current_ypos#11 -- vbuz1=_inc_vbuz1 inc.z current_ypos - // [283] phi from play_move_down::@10 to play_move_down::@11 [phi:play_move_down::@10->play_move_down::@11] + // [281] phi from play_move_down::@10 to play_move_down::@11 [phi:play_move_down::@10->play_move_down::@11] __b11_from___b10: - // [283] phi (byte) next_piece_idx#30 = (byte) next_piece_idx#10 [phi:play_move_down::@10->play_move_down::@11#0] -- register_copy - // [283] phi (byte) game_over#27 = (byte) game_over#10 [phi:play_move_down::@10->play_move_down::@11#1] -- register_copy - // [283] phi (byte) current_xpos#43 = (byte) current_xpos#14 [phi:play_move_down::@10->play_move_down::@11#2] -- register_copy - // [283] phi (byte*) current_piece_gfx#35 = (byte*) current_piece_gfx#13 [phi:play_move_down::@10->play_move_down::@11#3] -- register_copy - // [283] phi (byte) current_orientation#37 = (byte) current_orientation#13 [phi:play_move_down::@10->play_move_down::@11#4] -- register_copy - // [283] phi (byte) current_piece_char#29 = (byte) current_piece_char#10 [phi:play_move_down::@10->play_move_down::@11#5] -- register_copy - // [283] phi (byte*) current_piece#28 = (byte*) current_piece#10 [phi:play_move_down::@10->play_move_down::@11#6] -- register_copy - // [283] phi (byte) level_bcd#31 = (byte) level_bcd#11 [phi:play_move_down::@10->play_move_down::@11#7] -- register_copy - // [283] phi (byte) current_movedown_slow#37 = (byte) current_movedown_slow#14 [phi:play_move_down::@10->play_move_down::@11#8] -- register_copy - // [283] phi (byte) level#33 = (byte) level#10 [phi:play_move_down::@10->play_move_down::@11#9] -- register_copy - // [283] phi (word) lines_bcd#26 = (word) lines_bcd#19 [phi:play_move_down::@10->play_move_down::@11#10] -- register_copy - // [283] phi (byte) current_ypos#38 = (byte) current_ypos#3 [phi:play_move_down::@10->play_move_down::@11#11] -- register_copy + // [281] phi (byte) next_piece_idx#30 = (byte) next_piece_idx#10 [phi:play_move_down::@10->play_move_down::@11#0] -- register_copy + // [281] phi (byte) game_over#27 = (byte) game_over#10 [phi:play_move_down::@10->play_move_down::@11#1] -- register_copy + // [281] phi (byte) current_xpos#43 = (byte) current_xpos#14 [phi:play_move_down::@10->play_move_down::@11#2] -- register_copy + // [281] phi (byte*) current_piece_gfx#35 = (byte*) current_piece_gfx#13 [phi:play_move_down::@10->play_move_down::@11#3] -- register_copy + // [281] phi (byte) current_orientation#37 = (byte) current_orientation#13 [phi:play_move_down::@10->play_move_down::@11#4] -- register_copy + // [281] phi (byte) current_piece_char#29 = (byte) current_piece_char#10 [phi:play_move_down::@10->play_move_down::@11#5] -- register_copy + // [281] phi (byte*) current_piece#28 = (byte*) current_piece#10 [phi:play_move_down::@10->play_move_down::@11#6] -- register_copy + // [281] phi (byte) level_bcd#31 = (byte) level_bcd#11 [phi:play_move_down::@10->play_move_down::@11#7] -- register_copy + // [281] phi (byte) current_movedown_slow#37 = (byte) current_movedown_slow#14 [phi:play_move_down::@10->play_move_down::@11#8] -- register_copy + // [281] phi (byte) level#33 = (byte) level#10 [phi:play_move_down::@10->play_move_down::@11#9] -- register_copy + // [281] phi (word) lines_bcd#26 = (word) lines_bcd#19 [phi:play_move_down::@10->play_move_down::@11#10] -- register_copy + // [281] phi (byte) current_ypos#38 = (byte) current_ypos#3 [phi:play_move_down::@10->play_move_down::@11#11] -- register_copy jmp __b11 } // play_spawn_current @@ -18622,98 +18594,98 @@ play_spawn_current: { // Spawn a new next piece // Pick a random piece (0-6) .label piece_idx = 5 - // [288] (byte) play_spawn_current::current_piece_idx#0 ← (byte) next_piece_idx#17 -- vbuxx=vbuz1 + // [286] (byte) play_spawn_current::current_piece_idx#0 ← (byte) next_piece_idx#17 -- vbuxx=vbuz1 // Move next piece into current ldx.z next_piece_idx - // [289] (byte~) play_spawn_current::$7 ← (byte) play_spawn_current::current_piece_idx#0 << (byte) 1 -- vbuz1=vbuxx_rol_1 + // [287] (byte~) play_spawn_current::$7 ← (byte) play_spawn_current::current_piece_idx#0 << (byte) 1 -- vbuz1=vbuxx_rol_1 txa asl sta.z __7 - // [290] (byte) current_piece_char#5 ← *((const byte*) PIECES_CHARS + (byte) play_spawn_current::current_piece_idx#0) -- vbuz1=pbuc1_derefidx_vbuxx + // [288] (byte) current_piece_char#5 ← *((const byte*) PIECES_CHARS + (byte) play_spawn_current::current_piece_idx#0) -- vbuz1=pbuc1_derefidx_vbuxx lda PIECES_CHARS,x sta.z current_piece_char - // [291] (byte) current_xpos#100 ← *((const byte*) PIECES_START_X + (byte) play_spawn_current::current_piece_idx#0) -- vbuz1=pbuc1_derefidx_vbuxx + // [289] (byte) current_xpos#100 ← *((const byte*) PIECES_START_X + (byte) play_spawn_current::current_piece_idx#0) -- vbuz1=pbuc1_derefidx_vbuxx lda PIECES_START_X,x sta.z current_xpos - // [292] (byte) current_ypos#6 ← *((const byte*) PIECES_START_Y + (byte) play_spawn_current::current_piece_idx#0) -- vbuz1=pbuc1_derefidx_vbuxx + // [290] (byte) current_ypos#6 ← *((const byte*) PIECES_START_Y + (byte) play_spawn_current::current_piece_idx#0) -- vbuz1=pbuc1_derefidx_vbuxx lda PIECES_START_Y,x sta.z current_ypos - // [293] (byte) play_collision::xpos#4 ← (byte) current_xpos#100 -- vbuz1=vbuz2 + // [291] (byte) play_collision::xpos#4 ← (byte) current_xpos#100 -- vbuz1=vbuz2 lda.z current_xpos sta.z play_collision.xpos - // [294] (byte) play_collision::ypos#4 ← (byte) current_ypos#6 -- vbuz1=vbuz2 + // [292] (byte) play_collision::ypos#4 ← (byte) current_ypos#6 -- vbuz1=vbuz2 lda.z current_ypos sta.z play_collision.ypos - // [295] (byte*) current_piece#99 ← (byte*)*((const word*) PIECES + (byte~) play_spawn_current::$7) -- pbuz1=pptc1_derefidx_vbuz2 + // [293] (byte*) current_piece#99 ← (byte*)*((const word*) PIECES + (byte~) play_spawn_current::$7) -- pbuz1=pptc1_derefidx_vbuz2 ldy.z __7 lda PIECES,y sta.z current_piece_1 lda PIECES+1,y sta.z current_piece_1+1 - // [296] call play_collision - // [202] phi from play_spawn_current to play_collision [phi:play_spawn_current->play_collision] + // [294] call play_collision + // [200] phi from play_spawn_current to play_collision [phi:play_spawn_current->play_collision] play_collision_from_play_spawn_current: - // [202] phi (byte) play_collision::xpos#6 = (byte) play_collision::xpos#4 [phi:play_spawn_current->play_collision#0] -- register_copy - // [202] phi (byte) play_collision::yp#0 = (byte) play_collision::ypos#4 [phi:play_spawn_current->play_collision#1] -- register_copy - // [202] phi (byte) play_collision::orientation#5 = (byte) 0 [phi:play_spawn_current->play_collision#2] -- vbuxx=vbuc1 + // [200] phi (byte) play_collision::xpos#6 = (byte) play_collision::xpos#4 [phi:play_spawn_current->play_collision#0] -- register_copy + // [200] phi (byte) play_collision::yp#0 = (byte) play_collision::ypos#4 [phi:play_spawn_current->play_collision#1] -- register_copy + // [200] phi (byte) play_collision::orientation#5 = (byte) 0 [phi:play_spawn_current->play_collision#2] -- vbuxx=vbuc1 ldx #0 - // [202] phi (byte*) current_piece#17 = (byte*) current_piece#99 [phi:play_spawn_current->play_collision#3] -- register_copy + // [200] phi (byte*) current_piece#17 = (byte*) current_piece#99 [phi:play_spawn_current->play_collision#3] -- register_copy jsr play_collision - // [297] (byte) play_collision::return#10 ← (byte) play_collision::return#15 + // [295] (byte) play_collision::return#10 ← (byte) play_collision::return#15 jmp __b4 // play_spawn_current::@4 __b4: - // [298] (byte~) play_spawn_current::$1 ← (byte) play_collision::return#10 - // [299] if((byte~) play_spawn_current::$1!=(const byte) COLLISION_PLAYFIELD) goto play_spawn_current::@5 -- vbuaa_neq_vbuc1_then_la1 + // [296] (byte~) play_spawn_current::$1 ← (byte) play_collision::return#10 + // [297] if((byte~) play_spawn_current::$1!=(const byte) COLLISION_PLAYFIELD) goto play_spawn_current::@5 -- vbuaa_neq_vbuc1_then_la1 cmp #COLLISION_PLAYFIELD bne __b5_from___b4 - // [301] phi from play_spawn_current::@4 to play_spawn_current::@1 [phi:play_spawn_current::@4->play_spawn_current::@1] + // [299] phi from play_spawn_current::@4 to play_spawn_current::@1 [phi:play_spawn_current::@4->play_spawn_current::@1] __b1_from___b4: - // [301] phi (byte) game_over#52 = (byte) 1 [phi:play_spawn_current::@4->play_spawn_current::@1#0] -- vbuz1=vbuc1 + // [299] phi (byte) game_over#52 = (byte) 1 [phi:play_spawn_current::@4->play_spawn_current::@1#0] -- vbuz1=vbuc1 lda #1 sta.z game_over jmp __b1 - // [300] phi from play_spawn_current::@4 to play_spawn_current::@5 [phi:play_spawn_current::@4->play_spawn_current::@5] + // [298] phi from play_spawn_current::@4 to play_spawn_current::@5 [phi:play_spawn_current::@4->play_spawn_current::@5] __b5_from___b4: jmp __b5 // play_spawn_current::@5 __b5: - // [301] phi from play_spawn_current::@5 to play_spawn_current::@1 [phi:play_spawn_current::@5->play_spawn_current::@1] + // [299] phi from play_spawn_current::@5 to play_spawn_current::@1 [phi:play_spawn_current::@5->play_spawn_current::@1] __b1_from___b5: - // [301] phi (byte) game_over#52 = (byte) game_over#65 [phi:play_spawn_current::@5->play_spawn_current::@1#0] -- register_copy + // [299] phi (byte) game_over#52 = (byte) game_over#65 [phi:play_spawn_current::@5->play_spawn_current::@1#0] -- register_copy jmp __b1 // play_spawn_current::@1 __b1: - // [302] phi from play_spawn_current::@1 to play_spawn_current::@2 [phi:play_spawn_current::@1->play_spawn_current::@2] + // [300] phi from play_spawn_current::@1 to play_spawn_current::@2 [phi:play_spawn_current::@1->play_spawn_current::@2] __b2_from___b1: - // [302] phi (byte) play_spawn_current::piece_idx#2 = (byte) 7 [phi:play_spawn_current::@1->play_spawn_current::@2#0] -- vbuz1=vbuc1 + // [300] phi (byte) play_spawn_current::piece_idx#2 = (byte) 7 [phi:play_spawn_current::@1->play_spawn_current::@2#0] -- vbuz1=vbuc1 lda #7 sta.z piece_idx jmp __b2 // play_spawn_current::@2 __b2: - // [303] if((byte) play_spawn_current::piece_idx#2==(byte) 7) goto play_spawn_current::sid_rnd1 -- vbuz1_eq_vbuc1_then_la1 + // [301] if((byte) play_spawn_current::piece_idx#2==(byte) 7) goto play_spawn_current::sid_rnd1 -- vbuz1_eq_vbuc1_then_la1 lda #7 cmp.z piece_idx beq sid_rnd1 jmp __breturn // play_spawn_current::@return __breturn: - // [304] return + // [302] return rts // play_spawn_current::sid_rnd1 sid_rnd1: - // [305] (byte) play_spawn_current::sid_rnd1_return#0 ← *((const byte*) SID_VOICE3_OSC) -- vbuaa=_deref_pbuc1 + // [303] (byte) play_spawn_current::sid_rnd1_return#0 ← *((const byte*) SID_VOICE3_OSC) -- vbuaa=_deref_pbuc1 lda SID_VOICE3_OSC jmp __b3 // play_spawn_current::@3 __b3: - // [306] (byte) play_spawn_current::piece_idx#1 ← (byte) play_spawn_current::sid_rnd1_return#0 & (byte) 7 -- vbuz1=vbuaa_band_vbuc1 + // [304] (byte) play_spawn_current::piece_idx#1 ← (byte) play_spawn_current::sid_rnd1_return#0 & (byte) 7 -- vbuz1=vbuaa_band_vbuc1 and #7 sta.z piece_idx - // [302] phi from play_spawn_current::@3 to play_spawn_current::@2 [phi:play_spawn_current::@3->play_spawn_current::@2] + // [300] phi from play_spawn_current::@3 to play_spawn_current::@2 [phi:play_spawn_current::@3->play_spawn_current::@2] __b2_from___b3: - // [302] phi (byte) play_spawn_current::piece_idx#2 = (byte) play_spawn_current::piece_idx#1 [phi:play_spawn_current::@3->play_spawn_current::@2#0] -- register_copy + // [300] phi (byte) play_spawn_current::piece_idx#2 = (byte) play_spawn_current::piece_idx#1 [phi:play_spawn_current::@3->play_spawn_current::@2#0] -- register_copy jmp __b2 } // play_update_score @@ -18722,22 +18694,22 @@ play_spawn_current: { play_update_score: { .label lines_before = $25 .label add_bcd = $26 - // [307] if((byte) play_update_score::removed#0==(byte) 0) goto play_update_score::@return -- vbuxx_eq_0_then_la1 + // [305] if((byte) play_update_score::removed#0==(byte) 0) goto play_update_score::@return -- vbuxx_eq_0_then_la1 cpx #0 beq __breturn_from_play_update_score jmp __b1 // play_update_score::@1 __b1: - // [308] (byte~) play_update_score::$2 ← < (word) lines_bcd#19 -- vbuaa=_lo_vwuz1 + // [306] (byte~) play_update_score::$2 ← < (word) lines_bcd#19 -- vbuaa=_lo_vwuz1 lda.z lines_bcd - // [309] (byte) play_update_score::lines_before#0 ← (byte~) play_update_score::$2 & (byte) $f0 -- vbuz1=vbuaa_band_vbuc1 + // [307] (byte) play_update_score::lines_before#0 ← (byte~) play_update_score::$2 & (byte) $f0 -- vbuz1=vbuaa_band_vbuc1 and #$f0 sta.z lines_before - // [310] (byte~) play_update_score::$9 ← (byte) play_update_score::removed#0 << (byte) 2 -- vbuaa=vbuxx_rol_2 + // [308] (byte~) play_update_score::$9 ← (byte) play_update_score::removed#0 << (byte) 2 -- vbuaa=vbuxx_rol_2 txa asl asl - // [311] (dword) play_update_score::add_bcd#0 ← *((const dword*) score_add_bcd + (byte~) play_update_score::$9) -- vduz1=pduc1_derefidx_vbuaa + // [309] (dword) play_update_score::add_bcd#0 ← *((const dword*) score_add_bcd + (byte~) play_update_score::$9) -- vduz1=pduc1_derefidx_vbuaa tay lda score_add_bcd,y sta.z add_bcd @@ -18749,7 +18721,7 @@ play_update_score: { sta.z add_bcd+3 // asm { sed } sed - // [313] (word) lines_bcd#29 ← (word) lines_bcd#19 + (byte) play_update_score::removed#0 -- vwuz1=vwuz1_plus_vbuxx + // [311] (word) lines_bcd#29 ← (word) lines_bcd#19 + (byte) play_update_score::removed#0 -- vwuz1=vwuz1_plus_vbuxx txa clc adc.z lines_bcd @@ -18757,7 +18729,7 @@ play_update_score: { bcc !+ inc.z lines_bcd+1 !: - // [314] (dword) score_bcd ← (dword) score_bcd + (dword) play_update_score::add_bcd#0 -- vduz1=vduz1_plus_vduz2 + // [312] (dword) score_bcd ← (dword) score_bcd + (dword) play_update_score::add_bcd#0 -- vduz1=vduz1_plus_vduz2 lda.z score_bcd clc adc.z add_bcd @@ -18773,40 +18745,40 @@ play_update_score: { sta.z score_bcd+3 // asm { cld } cld - // [316] (byte~) play_update_score::$4 ← < (word) lines_bcd#29 -- vbuaa=_lo_vwuz1 + // [314] (byte~) play_update_score::$4 ← < (word) lines_bcd#29 -- vbuaa=_lo_vwuz1 lda.z lines_bcd - // [317] (byte) play_update_score::lines_after#0 ← (byte~) play_update_score::$4 & (byte) $f0 -- vbuaa=vbuaa_band_vbuc1 + // [315] (byte) play_update_score::lines_after#0 ← (byte~) play_update_score::$4 & (byte) $f0 -- vbuaa=vbuaa_band_vbuc1 and #$f0 - // [318] if((byte) play_update_score::lines_before#0==(byte) play_update_score::lines_after#0) goto play_update_score::@return -- vbuz1_eq_vbuaa_then_la1 + // [316] if((byte) play_update_score::lines_before#0==(byte) play_update_score::lines_after#0) goto play_update_score::@return -- vbuz1_eq_vbuaa_then_la1 cmp.z lines_before beq __breturn_from___b1 - // [319] phi from play_update_score::@1 to play_update_score::@2 [phi:play_update_score::@1->play_update_score::@2] + // [317] phi from play_update_score::@1 to play_update_score::@2 [phi:play_update_score::@1->play_update_score::@2] __b2_from___b1: jmp __b2 // play_update_score::@2 __b2: - // [320] call play_increase_level + // [318] call play_increase_level jsr play_increase_level - // [321] phi from play_update_score play_update_score::@1 play_update_score::@2 to play_update_score::@return [phi:play_update_score/play_update_score::@1/play_update_score::@2->play_update_score::@return] + // [319] phi from play_update_score play_update_score::@1 play_update_score::@2 to play_update_score::@return [phi:play_update_score/play_update_score::@1/play_update_score::@2->play_update_score::@return] __breturn_from_play_update_score: __breturn_from___b1: __breturn_from___b2: - // [321] phi (byte) level_bcd#19 = (byte) level_bcd#11 [phi:play_update_score/play_update_score::@1/play_update_score::@2->play_update_score::@return#0] -- register_copy - // [321] phi (byte) current_movedown_slow#23 = (byte) current_movedown_slow#14 [phi:play_update_score/play_update_score::@1/play_update_score::@2->play_update_score::@return#1] -- register_copy - // [321] phi (byte) level#19 = (byte) level#10 [phi:play_update_score/play_update_score::@1/play_update_score::@2->play_update_score::@return#2] -- register_copy - // [321] phi (word) lines_bcd#17 = (word) lines_bcd#19 [phi:play_update_score/play_update_score::@1/play_update_score::@2->play_update_score::@return#3] -- register_copy + // [319] phi (byte) level_bcd#19 = (byte) level_bcd#11 [phi:play_update_score/play_update_score::@1/play_update_score::@2->play_update_score::@return#0] -- register_copy + // [319] phi (byte) current_movedown_slow#23 = (byte) current_movedown_slow#14 [phi:play_update_score/play_update_score::@1/play_update_score::@2->play_update_score::@return#1] -- register_copy + // [319] phi (byte) level#19 = (byte) level#10 [phi:play_update_score/play_update_score::@1/play_update_score::@2->play_update_score::@return#2] -- register_copy + // [319] phi (word) lines_bcd#17 = (word) lines_bcd#19 [phi:play_update_score/play_update_score::@1/play_update_score::@2->play_update_score::@return#3] -- register_copy jmp __breturn // play_update_score::@return __breturn: - // [322] return + // [320] return rts } // play_increase_level // Increase the level play_increase_level: { - // [323] (byte) level#21 ← ++ (byte) level#10 -- vbuz1=_inc_vbuz1 + // [321] (byte) level#21 ← ++ (byte) level#10 -- vbuz1=_inc_vbuz1 inc.z level - // [324] if((byte) level#21>=(byte) $1d+(byte) 1) goto play_increase_level::@1 -- vbuz1_ge_vbuc1_then_la1 + // [322] if((byte) level#21>=(byte) $1d+(byte) 1) goto play_increase_level::@1 -- vbuz1_ge_vbuc1_then_la1 // Update speed of moving tetrominos down lda.z level cmp #$1d+1 @@ -18814,64 +18786,64 @@ play_increase_level: { jmp __b3 // play_increase_level::@3 __b3: - // [325] (byte) current_movedown_slow#10 ← *((const byte*) MOVEDOWN_SLOW_SPEEDS + (byte) level#21) -- vbuz1=pbuc1_derefidx_vbuz2 + // [323] (byte) current_movedown_slow#10 ← *((const byte*) MOVEDOWN_SLOW_SPEEDS + (byte) level#21) -- vbuz1=pbuc1_derefidx_vbuz2 ldy.z level lda MOVEDOWN_SLOW_SPEEDS,y sta.z current_movedown_slow - // [326] phi from play_increase_level::@3 to play_increase_level::@1 [phi:play_increase_level::@3->play_increase_level::@1] + // [324] phi from play_increase_level::@3 to play_increase_level::@1 [phi:play_increase_level::@3->play_increase_level::@1] __b1_from___b3: - // [326] phi (byte) current_movedown_slow#65 = (byte) current_movedown_slow#10 [phi:play_increase_level::@3->play_increase_level::@1#0] -- register_copy + // [324] phi (byte) current_movedown_slow#65 = (byte) current_movedown_slow#10 [phi:play_increase_level::@3->play_increase_level::@1#0] -- register_copy jmp __b1 - // [326] phi from play_increase_level to play_increase_level::@1 [phi:play_increase_level->play_increase_level::@1] + // [324] phi from play_increase_level to play_increase_level::@1 [phi:play_increase_level->play_increase_level::@1] __b1_from_play_increase_level: - // [326] phi (byte) current_movedown_slow#65 = (byte) 1 [phi:play_increase_level->play_increase_level::@1#0] -- vbuz1=vbuc1 + // [324] phi (byte) current_movedown_slow#65 = (byte) 1 [phi:play_increase_level->play_increase_level::@1#0] -- vbuz1=vbuc1 lda #1 sta.z current_movedown_slow jmp __b1 // play_increase_level::@1 __b1: - // [327] (byte) level_bcd#21 ← ++ (byte) level_bcd#11 -- vbuz1=_inc_vbuz1 + // [325] (byte) level_bcd#21 ← ++ (byte) level_bcd#11 -- vbuz1=_inc_vbuz1 inc.z level_bcd - // [328] (byte~) play_increase_level::$1 ← (byte) level_bcd#21 & (byte) $f -- vbuaa=vbuz1_band_vbuc1 + // [326] (byte~) play_increase_level::$1 ← (byte) level_bcd#21 & (byte) $f -- vbuaa=vbuz1_band_vbuc1 lda #$f and.z level_bcd - // [329] if((byte~) play_increase_level::$1!=(byte) $a) goto play_increase_level::@2 -- vbuaa_neq_vbuc1_then_la1 + // [327] if((byte~) play_increase_level::$1!=(byte) $a) goto play_increase_level::@2 -- vbuaa_neq_vbuc1_then_la1 cmp #$a bne __b2_from___b1 jmp __b4 // play_increase_level::@4 __b4: - // [330] (byte) level_bcd#8 ← (byte) level_bcd#21 + (byte) 6 -- vbuz1=vbuz1_plus_vbuc1 + // [328] (byte) level_bcd#8 ← (byte) level_bcd#21 + (byte) 6 -- vbuz1=vbuz1_plus_vbuc1 // If level low nybble hits 0xa change to 0x10 lax.z level_bcd axs #-[6] stx.z level_bcd - // [331] phi from play_increase_level::@1 play_increase_level::@4 to play_increase_level::@2 [phi:play_increase_level::@1/play_increase_level::@4->play_increase_level::@2] + // [329] phi from play_increase_level::@1 play_increase_level::@4 to play_increase_level::@2 [phi:play_increase_level::@1/play_increase_level::@4->play_increase_level::@2] __b2_from___b1: __b2_from___b4: - // [331] phi (byte) level_bcd#62 = (byte) level_bcd#21 [phi:play_increase_level::@1/play_increase_level::@4->play_increase_level::@2#0] -- register_copy + // [329] phi (byte) level_bcd#62 = (byte) level_bcd#21 [phi:play_increase_level::@1/play_increase_level::@4->play_increase_level::@2#0] -- register_copy jmp __b2 // play_increase_level::@2 __b2: // asm { sed } // Increase the score values gained sed - // [333] phi from play_increase_level::@2 to play_increase_level::@5 [phi:play_increase_level::@2->play_increase_level::@5] + // [331] phi from play_increase_level::@2 to play_increase_level::@5 [phi:play_increase_level::@2->play_increase_level::@5] __b5_from___b2: - // [333] phi (byte) play_increase_level::b#2 = (byte) 0 [phi:play_increase_level::@2->play_increase_level::@5#0] -- vbuxx=vbuc1 + // [331] phi (byte) play_increase_level::b#2 = (byte) 0 [phi:play_increase_level::@2->play_increase_level::@5#0] -- vbuxx=vbuc1 ldx #0 jmp __b5 - // [333] phi from play_increase_level::@5 to play_increase_level::@5 [phi:play_increase_level::@5->play_increase_level::@5] + // [331] phi from play_increase_level::@5 to play_increase_level::@5 [phi:play_increase_level::@5->play_increase_level::@5] __b5_from___b5: - // [333] phi (byte) play_increase_level::b#2 = (byte) play_increase_level::b#1 [phi:play_increase_level::@5->play_increase_level::@5#0] -- register_copy + // [331] phi (byte) play_increase_level::b#2 = (byte) play_increase_level::b#1 [phi:play_increase_level::@5->play_increase_level::@5#0] -- register_copy jmp __b5 // play_increase_level::@5 __b5: - // [334] (byte~) play_increase_level::$5 ← (byte) play_increase_level::b#2 << (byte) 2 -- vbuaa=vbuxx_rol_2 + // [332] (byte~) play_increase_level::$5 ← (byte) play_increase_level::b#2 << (byte) 2 -- vbuaa=vbuxx_rol_2 txa asl asl - // [335] *((const dword*) score_add_bcd + (byte~) play_increase_level::$5) ← *((const dword*) score_add_bcd + (byte~) play_increase_level::$5) + *((const dword*) SCORE_BASE_BCD + (byte~) play_increase_level::$5) -- pduc1_derefidx_vbuaa=pduc1_derefidx_vbuaa_plus_pduc2_derefidx_vbuaa + // [333] *((const dword*) score_add_bcd + (byte~) play_increase_level::$5) ← *((const dword*) score_add_bcd + (byte~) play_increase_level::$5) + *((const dword*) SCORE_BASE_BCD + (byte~) play_increase_level::$5) -- pduc1_derefidx_vbuaa=pduc1_derefidx_vbuaa_plus_pduc2_derefidx_vbuaa tay clc lda score_add_bcd,y @@ -18886,9 +18858,9 @@ play_increase_level: { lda score_add_bcd+3,y adc SCORE_BASE_BCD+3,y sta score_add_bcd+3,y - // [336] (byte) play_increase_level::b#1 ← ++ (byte) play_increase_level::b#2 -- vbuxx=_inc_vbuxx + // [334] (byte) play_increase_level::b#1 ← ++ (byte) play_increase_level::b#2 -- vbuxx=_inc_vbuxx inx - // [337] if((byte) play_increase_level::b#1!=(byte) 5) goto play_increase_level::@5 -- vbuxx_neq_vbuc1_then_la1 + // [335] if((byte) play_increase_level::b#1!=(byte) 5) goto play_increase_level::@5 -- vbuxx_neq_vbuc1_then_la1 cpx #5 bne __b5_from___b5 jmp __b6 @@ -18899,7 +18871,7 @@ play_increase_level: { jmp __breturn // play_increase_level::@return __breturn: - // [339] return + // [337] return rts } // play_remove_lines @@ -18913,137 +18885,137 @@ play_remove_lines: { .label y = 7 .label removed = 8 .label full = $a - // [341] phi from play_remove_lines to play_remove_lines::@1 [phi:play_remove_lines->play_remove_lines::@1] + // [339] phi from play_remove_lines to play_remove_lines::@1 [phi:play_remove_lines->play_remove_lines::@1] __b1_from_play_remove_lines: - // [341] phi (byte) play_remove_lines::removed#11 = (byte) 0 [phi:play_remove_lines->play_remove_lines::@1#0] -- vbuz1=vbuc1 + // [339] phi (byte) play_remove_lines::removed#11 = (byte) 0 [phi:play_remove_lines->play_remove_lines::@1#0] -- vbuz1=vbuc1 lda #0 sta.z removed - // [341] phi (byte) play_remove_lines::y#8 = (byte) 0 [phi:play_remove_lines->play_remove_lines::@1#1] -- vbuz1=vbuc1 + // [339] phi (byte) play_remove_lines::y#8 = (byte) 0 [phi:play_remove_lines->play_remove_lines::@1#1] -- vbuz1=vbuc1 lda #0 sta.z y - // [341] phi (byte) play_remove_lines::w#12 = (const byte) PLAYFIELD_LINES*(const byte) PLAYFIELD_COLS-(byte) 1 [phi:play_remove_lines->play_remove_lines::@1#2] -- vbuxx=vbuc1 + // [339] phi (byte) play_remove_lines::w#12 = (const byte) PLAYFIELD_LINES*(const byte) PLAYFIELD_COLS-(byte) 1 [phi:play_remove_lines->play_remove_lines::@1#2] -- vbuxx=vbuc1 ldx #PLAYFIELD_LINES*PLAYFIELD_COLS-1 - // [341] phi (byte) play_remove_lines::r#3 = (const byte) PLAYFIELD_LINES*(const byte) PLAYFIELD_COLS-(byte) 1 [phi:play_remove_lines->play_remove_lines::@1#3] -- vbuyy=vbuc1 + // [339] phi (byte) play_remove_lines::r#3 = (const byte) PLAYFIELD_LINES*(const byte) PLAYFIELD_COLS-(byte) 1 [phi:play_remove_lines->play_remove_lines::@1#3] -- vbuyy=vbuc1 ldy #PLAYFIELD_LINES*PLAYFIELD_COLS-1 jmp __b1 // Read all lines and rewrite them - // [341] phi from play_remove_lines::@6 to play_remove_lines::@1 [phi:play_remove_lines::@6->play_remove_lines::@1] + // [339] phi from play_remove_lines::@6 to play_remove_lines::@1 [phi:play_remove_lines::@6->play_remove_lines::@1] __b1_from___b6: - // [341] phi (byte) play_remove_lines::removed#11 = (byte) play_remove_lines::removed#8 [phi:play_remove_lines::@6->play_remove_lines::@1#0] -- register_copy - // [341] phi (byte) play_remove_lines::y#8 = (byte) play_remove_lines::y#1 [phi:play_remove_lines::@6->play_remove_lines::@1#1] -- register_copy - // [341] phi (byte) play_remove_lines::w#12 = (byte) play_remove_lines::w#11 [phi:play_remove_lines::@6->play_remove_lines::@1#2] -- register_copy - // [341] phi (byte) play_remove_lines::r#3 = (byte) play_remove_lines::r#1 [phi:play_remove_lines::@6->play_remove_lines::@1#3] -- register_copy + // [339] phi (byte) play_remove_lines::removed#11 = (byte) play_remove_lines::removed#8 [phi:play_remove_lines::@6->play_remove_lines::@1#0] -- register_copy + // [339] phi (byte) play_remove_lines::y#8 = (byte) play_remove_lines::y#1 [phi:play_remove_lines::@6->play_remove_lines::@1#1] -- register_copy + // [339] phi (byte) play_remove_lines::w#12 = (byte) play_remove_lines::w#11 [phi:play_remove_lines::@6->play_remove_lines::@1#2] -- register_copy + // [339] phi (byte) play_remove_lines::r#3 = (byte) play_remove_lines::r#1 [phi:play_remove_lines::@6->play_remove_lines::@1#3] -- register_copy jmp __b1 // play_remove_lines::@1 __b1: - // [342] phi from play_remove_lines::@1 to play_remove_lines::@2 [phi:play_remove_lines::@1->play_remove_lines::@2] + // [340] phi from play_remove_lines::@1 to play_remove_lines::@2 [phi:play_remove_lines::@1->play_remove_lines::@2] __b2_from___b1: - // [342] phi (byte) play_remove_lines::full#4 = (byte) 1 [phi:play_remove_lines::@1->play_remove_lines::@2#0] -- vbuz1=vbuc1 + // [340] phi (byte) play_remove_lines::full#4 = (byte) 1 [phi:play_remove_lines::@1->play_remove_lines::@2#0] -- vbuz1=vbuc1 lda #1 sta.z full - // [342] phi (byte) play_remove_lines::x#2 = (byte) 0 [phi:play_remove_lines::@1->play_remove_lines::@2#1] -- vbuz1=vbuc1 + // [340] phi (byte) play_remove_lines::x#2 = (byte) 0 [phi:play_remove_lines::@1->play_remove_lines::@2#1] -- vbuz1=vbuc1 lda #0 sta.z x - // [342] phi (byte) play_remove_lines::w#4 = (byte) play_remove_lines::w#12 [phi:play_remove_lines::@1->play_remove_lines::@2#2] -- register_copy - // [342] phi (byte) play_remove_lines::r#2 = (byte) play_remove_lines::r#3 [phi:play_remove_lines::@1->play_remove_lines::@2#3] -- register_copy + // [340] phi (byte) play_remove_lines::w#4 = (byte) play_remove_lines::w#12 [phi:play_remove_lines::@1->play_remove_lines::@2#2] -- register_copy + // [340] phi (byte) play_remove_lines::r#2 = (byte) play_remove_lines::r#3 [phi:play_remove_lines::@1->play_remove_lines::@2#3] -- register_copy jmp __b2 - // [342] phi from play_remove_lines::@3 to play_remove_lines::@2 [phi:play_remove_lines::@3->play_remove_lines::@2] + // [340] phi from play_remove_lines::@3 to play_remove_lines::@2 [phi:play_remove_lines::@3->play_remove_lines::@2] __b2_from___b3: - // [342] phi (byte) play_remove_lines::full#4 = (byte) play_remove_lines::full#2 [phi:play_remove_lines::@3->play_remove_lines::@2#0] -- register_copy - // [342] phi (byte) play_remove_lines::x#2 = (byte) play_remove_lines::x#1 [phi:play_remove_lines::@3->play_remove_lines::@2#1] -- register_copy - // [342] phi (byte) play_remove_lines::w#4 = (byte) play_remove_lines::w#1 [phi:play_remove_lines::@3->play_remove_lines::@2#2] -- register_copy - // [342] phi (byte) play_remove_lines::r#2 = (byte) play_remove_lines::r#1 [phi:play_remove_lines::@3->play_remove_lines::@2#3] -- register_copy + // [340] phi (byte) play_remove_lines::full#4 = (byte) play_remove_lines::full#2 [phi:play_remove_lines::@3->play_remove_lines::@2#0] -- register_copy + // [340] phi (byte) play_remove_lines::x#2 = (byte) play_remove_lines::x#1 [phi:play_remove_lines::@3->play_remove_lines::@2#1] -- register_copy + // [340] phi (byte) play_remove_lines::w#4 = (byte) play_remove_lines::w#1 [phi:play_remove_lines::@3->play_remove_lines::@2#2] -- register_copy + // [340] phi (byte) play_remove_lines::r#2 = (byte) play_remove_lines::r#1 [phi:play_remove_lines::@3->play_remove_lines::@2#3] -- register_copy jmp __b2 // play_remove_lines::@2 __b2: - // [343] (byte) play_remove_lines::c#0 ← *((const byte*) playfield + (byte) play_remove_lines::r#2) -- vbuz1=pbuc1_derefidx_vbuyy + // [341] (byte) play_remove_lines::c#0 ← *((const byte*) playfield + (byte) play_remove_lines::r#2) -- vbuz1=pbuc1_derefidx_vbuyy lda playfield,y sta.z c - // [344] (byte) play_remove_lines::r#1 ← -- (byte) play_remove_lines::r#2 -- vbuyy=_dec_vbuyy + // [342] (byte) play_remove_lines::r#1 ← -- (byte) play_remove_lines::r#2 -- vbuyy=_dec_vbuyy dey - // [345] if((byte) play_remove_lines::c#0!=(byte) 0) goto play_remove_lines::@9 -- vbuz1_neq_0_then_la1 + // [343] if((byte) play_remove_lines::c#0!=(byte) 0) goto play_remove_lines::@9 -- vbuz1_neq_0_then_la1 lda.z c cmp #0 bne __b9_from___b2 - // [347] phi from play_remove_lines::@2 to play_remove_lines::@3 [phi:play_remove_lines::@2->play_remove_lines::@3] + // [345] phi from play_remove_lines::@2 to play_remove_lines::@3 [phi:play_remove_lines::@2->play_remove_lines::@3] __b3_from___b2: - // [347] phi (byte) play_remove_lines::full#2 = (byte) 0 [phi:play_remove_lines::@2->play_remove_lines::@3#0] -- vbuz1=vbuc1 + // [345] phi (byte) play_remove_lines::full#2 = (byte) 0 [phi:play_remove_lines::@2->play_remove_lines::@3#0] -- vbuz1=vbuc1 lda #0 sta.z full jmp __b3 - // [346] phi from play_remove_lines::@2 to play_remove_lines::@9 [phi:play_remove_lines::@2->play_remove_lines::@9] + // [344] phi from play_remove_lines::@2 to play_remove_lines::@9 [phi:play_remove_lines::@2->play_remove_lines::@9] __b9_from___b2: jmp __b9 // play_remove_lines::@9 __b9: - // [347] phi from play_remove_lines::@9 to play_remove_lines::@3 [phi:play_remove_lines::@9->play_remove_lines::@3] + // [345] phi from play_remove_lines::@9 to play_remove_lines::@3 [phi:play_remove_lines::@9->play_remove_lines::@3] __b3_from___b9: - // [347] phi (byte) play_remove_lines::full#2 = (byte) play_remove_lines::full#4 [phi:play_remove_lines::@9->play_remove_lines::@3#0] -- register_copy + // [345] phi (byte) play_remove_lines::full#2 = (byte) play_remove_lines::full#4 [phi:play_remove_lines::@9->play_remove_lines::@3#0] -- register_copy jmp __b3 // play_remove_lines::@3 __b3: - // [348] *((const byte*) playfield + (byte) play_remove_lines::w#4) ← (byte) play_remove_lines::c#0 -- pbuc1_derefidx_vbuxx=vbuz1 + // [346] *((const byte*) playfield + (byte) play_remove_lines::w#4) ← (byte) play_remove_lines::c#0 -- pbuc1_derefidx_vbuxx=vbuz1 lda.z c sta playfield,x - // [349] (byte) play_remove_lines::w#1 ← -- (byte) play_remove_lines::w#4 -- vbuxx=_dec_vbuxx + // [347] (byte) play_remove_lines::w#1 ← -- (byte) play_remove_lines::w#4 -- vbuxx=_dec_vbuxx dex - // [350] (byte) play_remove_lines::x#1 ← ++ (byte) play_remove_lines::x#2 -- vbuz1=_inc_vbuz1 + // [348] (byte) play_remove_lines::x#1 ← ++ (byte) play_remove_lines::x#2 -- vbuz1=_inc_vbuz1 inc.z x - // [351] if((byte) play_remove_lines::x#1!=(const byte) PLAYFIELD_COLS-(byte) 1+(byte) 1) goto play_remove_lines::@2 -- vbuz1_neq_vbuc1_then_la1 + // [349] if((byte) play_remove_lines::x#1!=(const byte) PLAYFIELD_COLS-(byte) 1+(byte) 1) goto play_remove_lines::@2 -- vbuz1_neq_vbuc1_then_la1 lda #PLAYFIELD_COLS-1+1 cmp.z x bne __b2_from___b3 jmp __b4 // play_remove_lines::@4 __b4: - // [352] if((byte) play_remove_lines::full#2!=(byte) 1) goto play_remove_lines::@6 -- vbuz1_neq_vbuc1_then_la1 + // [350] if((byte) play_remove_lines::full#2!=(byte) 1) goto play_remove_lines::@6 -- vbuz1_neq_vbuc1_then_la1 lda #1 cmp.z full bne __b6_from___b4 jmp __b5 // play_remove_lines::@5 __b5: - // [353] (byte) play_remove_lines::w#2 ← (byte) play_remove_lines::w#1 + (const byte) PLAYFIELD_COLS -- vbuxx=vbuxx_plus_vbuc1 + // [351] (byte) play_remove_lines::w#2 ← (byte) play_remove_lines::w#1 + (const byte) PLAYFIELD_COLS -- vbuxx=vbuxx_plus_vbuc1 txa axs #-[PLAYFIELD_COLS] - // [354] (byte) play_remove_lines::removed#1 ← ++ (byte) play_remove_lines::removed#11 -- vbuz1=_inc_vbuz1 + // [352] (byte) play_remove_lines::removed#1 ← ++ (byte) play_remove_lines::removed#11 -- vbuz1=_inc_vbuz1 inc.z removed - // [355] phi from play_remove_lines::@4 play_remove_lines::@5 to play_remove_lines::@6 [phi:play_remove_lines::@4/play_remove_lines::@5->play_remove_lines::@6] + // [353] phi from play_remove_lines::@4 play_remove_lines::@5 to play_remove_lines::@6 [phi:play_remove_lines::@4/play_remove_lines::@5->play_remove_lines::@6] __b6_from___b4: __b6_from___b5: - // [355] phi (byte) play_remove_lines::removed#8 = (byte) play_remove_lines::removed#11 [phi:play_remove_lines::@4/play_remove_lines::@5->play_remove_lines::@6#0] -- register_copy - // [355] phi (byte) play_remove_lines::w#11 = (byte) play_remove_lines::w#1 [phi:play_remove_lines::@4/play_remove_lines::@5->play_remove_lines::@6#1] -- register_copy + // [353] phi (byte) play_remove_lines::removed#8 = (byte) play_remove_lines::removed#11 [phi:play_remove_lines::@4/play_remove_lines::@5->play_remove_lines::@6#0] -- register_copy + // [353] phi (byte) play_remove_lines::w#11 = (byte) play_remove_lines::w#1 [phi:play_remove_lines::@4/play_remove_lines::@5->play_remove_lines::@6#1] -- register_copy jmp __b6 // play_remove_lines::@6 __b6: - // [356] (byte) play_remove_lines::y#1 ← ++ (byte) play_remove_lines::y#8 -- vbuz1=_inc_vbuz1 + // [354] (byte) play_remove_lines::y#1 ← ++ (byte) play_remove_lines::y#8 -- vbuz1=_inc_vbuz1 inc.z y - // [357] if((byte) play_remove_lines::y#1!=(const byte) PLAYFIELD_LINES-(byte) 1+(byte) 1) goto play_remove_lines::@1 -- vbuz1_neq_vbuc1_then_la1 + // [355] if((byte) play_remove_lines::y#1!=(const byte) PLAYFIELD_LINES-(byte) 1+(byte) 1) goto play_remove_lines::@1 -- vbuz1_neq_vbuc1_then_la1 lda #PLAYFIELD_LINES-1+1 cmp.z y bne __b1_from___b6 - // [358] phi from play_remove_lines::@6 play_remove_lines::@8 to play_remove_lines::@7 [phi:play_remove_lines::@6/play_remove_lines::@8->play_remove_lines::@7] + // [356] phi from play_remove_lines::@6 play_remove_lines::@8 to play_remove_lines::@7 [phi:play_remove_lines::@6/play_remove_lines::@8->play_remove_lines::@7] __b7_from___b6: __b7_from___b8: - // [358] phi (byte) play_remove_lines::w#6 = (byte) play_remove_lines::w#11 [phi:play_remove_lines::@6/play_remove_lines::@8->play_remove_lines::@7#0] -- register_copy + // [356] phi (byte) play_remove_lines::w#6 = (byte) play_remove_lines::w#11 [phi:play_remove_lines::@6/play_remove_lines::@8->play_remove_lines::@7#0] -- register_copy jmp __b7 // Write zeros in the rest of the lines // play_remove_lines::@7 __b7: - // [359] if((byte) play_remove_lines::w#6!=(byte) $ff) goto play_remove_lines::@8 -- vbuxx_neq_vbuc1_then_la1 + // [357] if((byte) play_remove_lines::w#6!=(byte) $ff) goto play_remove_lines::@8 -- vbuxx_neq_vbuc1_then_la1 cpx #$ff bne __b8 jmp __breturn // play_remove_lines::@return __breturn: - // [360] return + // [358] return rts // play_remove_lines::@8 __b8: - // [361] *((const byte*) playfield + (byte) play_remove_lines::w#6) ← (byte) 0 -- pbuc1_derefidx_vbuxx=vbuc2 + // [359] *((const byte*) playfield + (byte) play_remove_lines::w#6) ← (byte) 0 -- pbuc1_derefidx_vbuxx=vbuc2 lda #0 sta playfield,x - // [362] (byte) play_remove_lines::w#3 ← -- (byte) play_remove_lines::w#6 -- vbuxx=_dec_vbuxx + // [360] (byte) play_remove_lines::w#3 ← -- (byte) play_remove_lines::w#6 -- vbuxx=_dec_vbuxx dex jmp __b7_from___b8 } @@ -19056,45 +19028,45 @@ play_lock_current: { .label i = $2e .label l = $b .label i_1 = $c - // [363] (byte) play_lock_current::yp#0 ← (byte) current_ypos#11 - // [364] phi from play_lock_current to play_lock_current::@1 [phi:play_lock_current->play_lock_current::@1] + // [361] (byte) play_lock_current::yp#0 ← (byte) current_ypos#11 + // [362] phi from play_lock_current to play_lock_current::@1 [phi:play_lock_current->play_lock_current::@1] __b1_from_play_lock_current: - // [364] phi (byte) play_lock_current::l#6 = (byte) 0 [phi:play_lock_current->play_lock_current::@1#0] -- vbuz1=vbuc1 + // [362] phi (byte) play_lock_current::l#6 = (byte) 0 [phi:play_lock_current->play_lock_current::@1#0] -- vbuz1=vbuc1 lda #0 sta.z l - // [364] phi (byte) play_lock_current::i#3 = (byte) 0 [phi:play_lock_current->play_lock_current::@1#1] -- vbuz1=vbuc1 + // [362] phi (byte) play_lock_current::i#3 = (byte) 0 [phi:play_lock_current->play_lock_current::@1#1] -- vbuz1=vbuc1 lda #0 sta.z i_1 - // [364] phi (byte) play_lock_current::yp#2 = (byte) play_lock_current::yp#0 [phi:play_lock_current->play_lock_current::@1#2] -- register_copy + // [362] phi (byte) play_lock_current::yp#2 = (byte) play_lock_current::yp#0 [phi:play_lock_current->play_lock_current::@1#2] -- register_copy jmp __b1 // play_lock_current::@1 __b1: - // [365] (byte~) play_lock_current::$4 ← (byte) play_lock_current::yp#2 << (byte) 1 -- vbuaa=vbuz1_rol_1 + // [363] (byte~) play_lock_current::$4 ← (byte) play_lock_current::yp#2 << (byte) 1 -- vbuaa=vbuz1_rol_1 lda.z yp asl - // [366] (byte*) play_lock_current::playfield_line#0 ← *((const byte**) playfield_lines + (byte~) play_lock_current::$4) -- pbuz1=pptc1_derefidx_vbuaa + // [364] (byte*) play_lock_current::playfield_line#0 ← *((const byte**) playfield_lines + (byte~) play_lock_current::$4) -- pbuz1=pptc1_derefidx_vbuaa tay lda playfield_lines,y sta.z playfield_line lda playfield_lines+1,y sta.z playfield_line+1 - // [367] (byte) play_lock_current::xp#0 ← (byte) current_xpos#14 -- vbuz1=vbuz2 + // [365] (byte) play_lock_current::xp#0 ← (byte) current_xpos#14 -- vbuz1=vbuz2 lda.z current_xpos sta.z xp - // [368] phi from play_lock_current::@1 to play_lock_current::@2 [phi:play_lock_current::@1->play_lock_current::@2] + // [366] phi from play_lock_current::@1 to play_lock_current::@2 [phi:play_lock_current::@1->play_lock_current::@2] __b2_from___b1: - // [368] phi (byte) play_lock_current::c#2 = (byte) 0 [phi:play_lock_current::@1->play_lock_current::@2#0] -- vbuxx=vbuc1 + // [366] phi (byte) play_lock_current::c#2 = (byte) 0 [phi:play_lock_current::@1->play_lock_current::@2#0] -- vbuxx=vbuc1 ldx #0 - // [368] phi (byte) play_lock_current::xp#2 = (byte) play_lock_current::xp#0 [phi:play_lock_current::@1->play_lock_current::@2#1] -- register_copy - // [368] phi (byte) play_lock_current::i#2 = (byte) play_lock_current::i#3 [phi:play_lock_current::@1->play_lock_current::@2#2] -- register_copy + // [366] phi (byte) play_lock_current::xp#2 = (byte) play_lock_current::xp#0 [phi:play_lock_current::@1->play_lock_current::@2#1] -- register_copy + // [366] phi (byte) play_lock_current::i#2 = (byte) play_lock_current::i#3 [phi:play_lock_current::@1->play_lock_current::@2#2] -- register_copy jmp __b2 // play_lock_current::@2 __b2: - // [369] (byte) play_lock_current::i#1 ← ++ (byte) play_lock_current::i#2 -- vbuz1=_inc_vbuz2 + // [367] (byte) play_lock_current::i#1 ← ++ (byte) play_lock_current::i#2 -- vbuz1=_inc_vbuz2 ldy.z i_1 iny sty.z i - // [370] if(*((byte*) current_piece_gfx#13 + (byte) play_lock_current::i#2)==(byte) 0) goto play_lock_current::@3 -- pbuz1_derefidx_vbuz2_eq_0_then_la1 + // [368] if(*((byte*) current_piece_gfx#13 + (byte) play_lock_current::i#2)==(byte) 0) goto play_lock_current::@3 -- pbuz1_derefidx_vbuz2_eq_0_then_la1 ldy.z i_1 lda (current_piece_gfx),y cmp #0 @@ -19102,57 +19074,57 @@ play_lock_current: { jmp __b4 // play_lock_current::@4 __b4: - // [371] *((byte*) play_lock_current::playfield_line#0 + (byte) play_lock_current::xp#2) ← (byte) current_piece_char#10 -- pbuz1_derefidx_vbuz2=vbuz3 + // [369] *((byte*) play_lock_current::playfield_line#0 + (byte) play_lock_current::xp#2) ← (byte) current_piece_char#10 -- pbuz1_derefidx_vbuz2=vbuz3 lda.z current_piece_char ldy.z xp sta (playfield_line),y jmp __b3 // play_lock_current::@3 __b3: - // [372] (byte) play_lock_current::xp#1 ← ++ (byte) play_lock_current::xp#2 -- vbuz1=_inc_vbuz1 + // [370] (byte) play_lock_current::xp#1 ← ++ (byte) play_lock_current::xp#2 -- vbuz1=_inc_vbuz1 inc.z xp - // [373] (byte) play_lock_current::c#1 ← ++ (byte) play_lock_current::c#2 -- vbuxx=_inc_vbuxx + // [371] (byte) play_lock_current::c#1 ← ++ (byte) play_lock_current::c#2 -- vbuxx=_inc_vbuxx inx - // [374] if((byte) play_lock_current::c#1!=(byte) 4) goto play_lock_current::@7 -- vbuxx_neq_vbuc1_then_la1 + // [372] if((byte) play_lock_current::c#1!=(byte) 4) goto play_lock_current::@7 -- vbuxx_neq_vbuc1_then_la1 cpx #4 bne __b7 jmp __b5 // play_lock_current::@5 __b5: - // [375] (byte) play_lock_current::yp#1 ← ++ (byte) play_lock_current::yp#2 -- vbuz1=_inc_vbuz1 + // [373] (byte) play_lock_current::yp#1 ← ++ (byte) play_lock_current::yp#2 -- vbuz1=_inc_vbuz1 inc.z yp - // [376] (byte) play_lock_current::l#1 ← ++ (byte) play_lock_current::l#6 -- vbuz1=_inc_vbuz1 + // [374] (byte) play_lock_current::l#1 ← ++ (byte) play_lock_current::l#6 -- vbuz1=_inc_vbuz1 inc.z l - // [377] if((byte) play_lock_current::l#1!=(byte) 4) goto play_lock_current::@6 -- vbuz1_neq_vbuc1_then_la1 + // [375] if((byte) play_lock_current::l#1!=(byte) 4) goto play_lock_current::@6 -- vbuz1_neq_vbuc1_then_la1 lda #4 cmp.z l bne __b6 jmp __breturn // play_lock_current::@return __breturn: - // [378] return + // [376] return rts // play_lock_current::@6 __b6: - // [379] (byte) play_lock_current::i#7 ← (byte) play_lock_current::i#1 -- vbuz1=vbuz2 + // [377] (byte) play_lock_current::i#7 ← (byte) play_lock_current::i#1 -- vbuz1=vbuz2 lda.z i sta.z i_1 - // [364] phi from play_lock_current::@6 to play_lock_current::@1 [phi:play_lock_current::@6->play_lock_current::@1] + // [362] phi from play_lock_current::@6 to play_lock_current::@1 [phi:play_lock_current::@6->play_lock_current::@1] __b1_from___b6: - // [364] phi (byte) play_lock_current::l#6 = (byte) play_lock_current::l#1 [phi:play_lock_current::@6->play_lock_current::@1#0] -- register_copy - // [364] phi (byte) play_lock_current::i#3 = (byte) play_lock_current::i#7 [phi:play_lock_current::@6->play_lock_current::@1#1] -- register_copy - // [364] phi (byte) play_lock_current::yp#2 = (byte) play_lock_current::yp#1 [phi:play_lock_current::@6->play_lock_current::@1#2] -- register_copy + // [362] phi (byte) play_lock_current::l#6 = (byte) play_lock_current::l#1 [phi:play_lock_current::@6->play_lock_current::@1#0] -- register_copy + // [362] phi (byte) play_lock_current::i#3 = (byte) play_lock_current::i#7 [phi:play_lock_current::@6->play_lock_current::@1#1] -- register_copy + // [362] phi (byte) play_lock_current::yp#2 = (byte) play_lock_current::yp#1 [phi:play_lock_current::@6->play_lock_current::@1#2] -- register_copy jmp __b1 // play_lock_current::@7 __b7: - // [380] (byte) play_lock_current::i#9 ← (byte) play_lock_current::i#1 -- vbuz1=vbuz2 + // [378] (byte) play_lock_current::i#9 ← (byte) play_lock_current::i#1 -- vbuz1=vbuz2 lda.z i sta.z i_1 - // [368] phi from play_lock_current::@7 to play_lock_current::@2 [phi:play_lock_current::@7->play_lock_current::@2] + // [366] phi from play_lock_current::@7 to play_lock_current::@2 [phi:play_lock_current::@7->play_lock_current::@2] __b2_from___b7: - // [368] phi (byte) play_lock_current::c#2 = (byte) play_lock_current::c#1 [phi:play_lock_current::@7->play_lock_current::@2#0] -- register_copy - // [368] phi (byte) play_lock_current::xp#2 = (byte) play_lock_current::xp#1 [phi:play_lock_current::@7->play_lock_current::@2#1] -- register_copy - // [368] phi (byte) play_lock_current::i#2 = (byte) play_lock_current::i#9 [phi:play_lock_current::@7->play_lock_current::@2#2] -- register_copy + // [366] phi (byte) play_lock_current::c#2 = (byte) play_lock_current::c#1 [phi:play_lock_current::@7->play_lock_current::@2#0] -- register_copy + // [366] phi (byte) play_lock_current::xp#2 = (byte) play_lock_current::xp#1 [phi:play_lock_current::@7->play_lock_current::@2#1] -- register_copy + // [366] phi (byte) play_lock_current::i#2 = (byte) play_lock_current::i#9 [phi:play_lock_current::@7->play_lock_current::@2#2] -- register_copy jmp __b2 } // keyboard_event_pressed @@ -19162,26 +19134,26 @@ play_lock_current: { keyboard_event_pressed: { .label row_bits = $2d .label keycode = $d - // [382] (byte~) keyboard_event_pressed::$0 ← (byte) keyboard_event_pressed::keycode#5 >> (byte) 3 -- vbuaa=vbuz1_ror_3 + // [380] (byte~) keyboard_event_pressed::$0 ← (byte) keyboard_event_pressed::keycode#5 >> (byte) 3 -- vbuaa=vbuz1_ror_3 lda.z keycode lsr lsr lsr - // [383] (byte) keyboard_event_pressed::row_bits#0 ← *((const byte*) keyboard_scan_values + (byte~) keyboard_event_pressed::$0) -- vbuz1=pbuc1_derefidx_vbuaa + // [381] (byte) keyboard_event_pressed::row_bits#0 ← *((const byte*) keyboard_scan_values + (byte~) keyboard_event_pressed::$0) -- vbuz1=pbuc1_derefidx_vbuaa tay lda keyboard_scan_values,y sta.z row_bits - // [384] (byte~) keyboard_event_pressed::$1 ← (byte) keyboard_event_pressed::keycode#5 & (byte) 7 -- vbuaa=vbuz1_band_vbuc1 + // [382] (byte~) keyboard_event_pressed::$1 ← (byte) keyboard_event_pressed::keycode#5 & (byte) 7 -- vbuaa=vbuz1_band_vbuc1 lda #7 and.z keycode - // [385] (byte) keyboard_event_pressed::return#11 ← (byte) keyboard_event_pressed::row_bits#0 & *((const byte*) keyboard_matrix_col_bitmask + (byte~) keyboard_event_pressed::$1) -- vbuaa=vbuz1_band_pbuc1_derefidx_vbuaa + // [383] (byte) keyboard_event_pressed::return#11 ← (byte) keyboard_event_pressed::row_bits#0 & *((const byte*) keyboard_matrix_col_bitmask + (byte~) keyboard_event_pressed::$1) -- vbuaa=vbuz1_band_pbuc1_derefidx_vbuaa tay lda keyboard_matrix_col_bitmask,y and.z row_bits jmp __breturn // keyboard_event_pressed::@return __breturn: - // [386] return + // [384] return rts } // keyboard_event_get @@ -19189,32 +19161,32 @@ keyboard_event_pressed: { // Returns $ff if there is no event waiting. As all events are <$7f it is enough to examine bit 7 when determining if there is any event to process. // The buffer is filled by keyboard_event_scan() keyboard_event_get: { - // [387] if((byte) keyboard_events_size#13==(byte) 0) goto keyboard_event_get::@return -- vbuz1_eq_0_then_la1 + // [385] if((byte) keyboard_events_size#13==(byte) 0) goto keyboard_event_get::@return -- vbuz1_eq_0_then_la1 lda.z keyboard_events_size cmp #0 beq __breturn_from_keyboard_event_get jmp __b1 // keyboard_event_get::@1 __b1: - // [388] (byte) keyboard_events_size#4 ← -- (byte) keyboard_events_size#13 -- vbuz1=_dec_vbuz1 + // [386] (byte) keyboard_events_size#4 ← -- (byte) keyboard_events_size#13 -- vbuz1=_dec_vbuz1 dec.z keyboard_events_size - // [389] (byte) keyboard_event_get::return#1 ← *((const byte*) keyboard_events + (byte) keyboard_events_size#4) -- vbuxx=pbuc1_derefidx_vbuz1 + // [387] (byte) keyboard_event_get::return#1 ← *((const byte*) keyboard_events + (byte) keyboard_events_size#4) -- vbuxx=pbuc1_derefidx_vbuz1 ldy.z keyboard_events_size ldx keyboard_events,y - // [390] phi from keyboard_event_get::@1 to keyboard_event_get::@return [phi:keyboard_event_get::@1->keyboard_event_get::@return] + // [388] phi from keyboard_event_get::@1 to keyboard_event_get::@return [phi:keyboard_event_get::@1->keyboard_event_get::@return] __breturn_from___b1: - // [390] phi (byte) keyboard_events_size#16 = (byte) keyboard_events_size#4 [phi:keyboard_event_get::@1->keyboard_event_get::@return#0] -- register_copy - // [390] phi (byte) keyboard_event_get::return#2 = (byte) keyboard_event_get::return#1 [phi:keyboard_event_get::@1->keyboard_event_get::@return#1] -- register_copy + // [388] phi (byte) keyboard_events_size#16 = (byte) keyboard_events_size#4 [phi:keyboard_event_get::@1->keyboard_event_get::@return#0] -- register_copy + // [388] phi (byte) keyboard_event_get::return#2 = (byte) keyboard_event_get::return#1 [phi:keyboard_event_get::@1->keyboard_event_get::@return#1] -- register_copy jmp __breturn - // [390] phi from keyboard_event_get to keyboard_event_get::@return [phi:keyboard_event_get->keyboard_event_get::@return] + // [388] phi from keyboard_event_get to keyboard_event_get::@return [phi:keyboard_event_get->keyboard_event_get::@return] __breturn_from_keyboard_event_get: - // [390] phi (byte) keyboard_events_size#16 = (byte) keyboard_events_size#13 [phi:keyboard_event_get->keyboard_event_get::@return#0] -- register_copy - // [390] phi (byte) keyboard_event_get::return#2 = (byte) $ff [phi:keyboard_event_get->keyboard_event_get::@return#1] -- vbuxx=vbuc1 + // [388] phi (byte) keyboard_events_size#16 = (byte) keyboard_events_size#13 [phi:keyboard_event_get->keyboard_event_get::@return#0] -- register_copy + // [388] phi (byte) keyboard_event_get::return#2 = (byte) $ff [phi:keyboard_event_get->keyboard_event_get::@return#1] -- vbuxx=vbuc1 ldx #$ff jmp __breturn // keyboard_event_get::@return __breturn: - // [391] return + // [389] return rts } // keyboard_event_scan @@ -19226,35 +19198,35 @@ keyboard_event_scan: { .label row_scan = $2e .label keycode = $20 .label row = $1f - // [393] phi from keyboard_event_scan to keyboard_event_scan::@7 [phi:keyboard_event_scan->keyboard_event_scan::@7] + // [391] phi from keyboard_event_scan to keyboard_event_scan::@7 [phi:keyboard_event_scan->keyboard_event_scan::@7] __b7_from_keyboard_event_scan: - // [393] phi (byte) keyboard_events_size#30 = (byte) keyboard_events_size#19 [phi:keyboard_event_scan->keyboard_event_scan::@7#0] -- register_copy - // [393] phi (byte) keyboard_event_scan::keycode#11 = (byte) 0 [phi:keyboard_event_scan->keyboard_event_scan::@7#1] -- vbuz1=vbuc1 + // [391] phi (byte) keyboard_events_size#30 = (byte) keyboard_events_size#19 [phi:keyboard_event_scan->keyboard_event_scan::@7#0] -- register_copy + // [391] phi (byte) keyboard_event_scan::keycode#11 = (byte) 0 [phi:keyboard_event_scan->keyboard_event_scan::@7#1] -- vbuz1=vbuc1 lda #0 sta.z keycode - // [393] phi (byte) keyboard_event_scan::row#2 = (byte) 0 [phi:keyboard_event_scan->keyboard_event_scan::@7#2] -- vbuz1=vbuc1 + // [391] phi (byte) keyboard_event_scan::row#2 = (byte) 0 [phi:keyboard_event_scan->keyboard_event_scan::@7#2] -- vbuz1=vbuc1 lda #0 sta.z row jmp __b7 - // [393] phi from keyboard_event_scan::@8 to keyboard_event_scan::@7 [phi:keyboard_event_scan::@8->keyboard_event_scan::@7] + // [391] phi from keyboard_event_scan::@8 to keyboard_event_scan::@7 [phi:keyboard_event_scan::@8->keyboard_event_scan::@7] __b7_from___b8: - // [393] phi (byte) keyboard_events_size#30 = (byte) keyboard_events_size#13 [phi:keyboard_event_scan::@8->keyboard_event_scan::@7#0] -- register_copy - // [393] phi (byte) keyboard_event_scan::keycode#11 = (byte) keyboard_event_scan::keycode#13 [phi:keyboard_event_scan::@8->keyboard_event_scan::@7#1] -- register_copy - // [393] phi (byte) keyboard_event_scan::row#2 = (byte) keyboard_event_scan::row#1 [phi:keyboard_event_scan::@8->keyboard_event_scan::@7#2] -- register_copy + // [391] phi (byte) keyboard_events_size#30 = (byte) keyboard_events_size#13 [phi:keyboard_event_scan::@8->keyboard_event_scan::@7#0] -- register_copy + // [391] phi (byte) keyboard_event_scan::keycode#11 = (byte) keyboard_event_scan::keycode#13 [phi:keyboard_event_scan::@8->keyboard_event_scan::@7#1] -- register_copy + // [391] phi (byte) keyboard_event_scan::row#2 = (byte) keyboard_event_scan::row#1 [phi:keyboard_event_scan::@8->keyboard_event_scan::@7#2] -- register_copy jmp __b7 // keyboard_event_scan::@7 __b7: - // [394] (byte) keyboard_matrix_read::rowid#0 ← (byte) keyboard_event_scan::row#2 -- vbuxx=vbuz1 + // [392] (byte) keyboard_matrix_read::rowid#0 ← (byte) keyboard_event_scan::row#2 -- vbuxx=vbuz1 ldx.z row - // [395] call keyboard_matrix_read + // [393] call keyboard_matrix_read jsr keyboard_matrix_read - // [396] (byte) keyboard_matrix_read::return#2 ← (byte) keyboard_matrix_read::return#0 + // [394] (byte) keyboard_matrix_read::return#2 ← (byte) keyboard_matrix_read::return#0 jmp __b19 // keyboard_event_scan::@19 __b19: - // [397] (byte) keyboard_event_scan::row_scan#0 ← (byte) keyboard_matrix_read::return#2 -- vbuz1=vbuaa + // [395] (byte) keyboard_event_scan::row_scan#0 ← (byte) keyboard_matrix_read::return#2 -- vbuz1=vbuaa sta.z row_scan - // [398] if((byte) keyboard_event_scan::row_scan#0!=*((const byte*) keyboard_scan_values + (byte) keyboard_event_scan::row#2)) goto keyboard_event_scan::@9 -- vbuz1_neq_pbuc1_derefidx_vbuz2_then_la1 + // [396] if((byte) keyboard_event_scan::row_scan#0!=*((const byte*) keyboard_scan_values + (byte) keyboard_event_scan::row#2)) goto keyboard_event_scan::@9 -- vbuz1_neq_pbuc1_derefidx_vbuz2_then_la1 lda.z row_scan ldy.z row cmp keyboard_scan_values,y @@ -19262,123 +19234,123 @@ keyboard_event_scan: { jmp __b16 // keyboard_event_scan::@16 __b16: - // [399] (byte) keyboard_event_scan::keycode#1 ← (byte) keyboard_event_scan::keycode#11 + (byte) 8 -- vbuz1=vbuz1_plus_vbuc1 + // [397] (byte) keyboard_event_scan::keycode#1 ← (byte) keyboard_event_scan::keycode#11 + (byte) 8 -- vbuz1=vbuz1_plus_vbuc1 lax.z keycode axs #-[8] stx.z keycode - // [400] phi from keyboard_event_scan::@15 keyboard_event_scan::@16 to keyboard_event_scan::@8 [phi:keyboard_event_scan::@15/keyboard_event_scan::@16->keyboard_event_scan::@8] + // [398] phi from keyboard_event_scan::@15 keyboard_event_scan::@16 to keyboard_event_scan::@8 [phi:keyboard_event_scan::@15/keyboard_event_scan::@16->keyboard_event_scan::@8] __b8_from___b15: __b8_from___b16: - // [400] phi (byte) keyboard_events_size#13 = (byte) keyboard_events_size#29 [phi:keyboard_event_scan::@15/keyboard_event_scan::@16->keyboard_event_scan::@8#0] -- register_copy - // [400] phi (byte) keyboard_event_scan::keycode#13 = (byte) keyboard_event_scan::keycode#14 [phi:keyboard_event_scan::@15/keyboard_event_scan::@16->keyboard_event_scan::@8#1] -- register_copy + // [398] phi (byte) keyboard_events_size#13 = (byte) keyboard_events_size#29 [phi:keyboard_event_scan::@15/keyboard_event_scan::@16->keyboard_event_scan::@8#0] -- register_copy + // [398] phi (byte) keyboard_event_scan::keycode#13 = (byte) keyboard_event_scan::keycode#14 [phi:keyboard_event_scan::@15/keyboard_event_scan::@16->keyboard_event_scan::@8#1] -- register_copy jmp __b8 // keyboard_event_scan::@8 __b8: - // [401] (byte) keyboard_event_scan::row#1 ← ++ (byte) keyboard_event_scan::row#2 -- vbuz1=_inc_vbuz1 + // [399] (byte) keyboard_event_scan::row#1 ← ++ (byte) keyboard_event_scan::row#2 -- vbuz1=_inc_vbuz1 inc.z row - // [402] if((byte) keyboard_event_scan::row#1!=(byte) 8) goto keyboard_event_scan::@7 -- vbuz1_neq_vbuc1_then_la1 + // [400] if((byte) keyboard_event_scan::row#1!=(byte) 8) goto keyboard_event_scan::@7 -- vbuz1_neq_vbuc1_then_la1 lda #8 cmp.z row bne __b7_from___b8 - // [403] phi from keyboard_event_scan::@8 to keyboard_event_scan::@17 [phi:keyboard_event_scan::@8->keyboard_event_scan::@17] + // [401] phi from keyboard_event_scan::@8 to keyboard_event_scan::@17 [phi:keyboard_event_scan::@8->keyboard_event_scan::@17] __b17_from___b8: jmp __b17 // keyboard_event_scan::@17 __b17: - // [404] call keyboard_event_pressed - // [381] phi from keyboard_event_scan::@17 to keyboard_event_pressed [phi:keyboard_event_scan::@17->keyboard_event_pressed] + // [402] call keyboard_event_pressed + // [379] phi from keyboard_event_scan::@17 to keyboard_event_pressed [phi:keyboard_event_scan::@17->keyboard_event_pressed] keyboard_event_pressed_from___b17: - // [381] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_LSHIFT [phi:keyboard_event_scan::@17->keyboard_event_pressed#0] -- vbuz1=vbuc1 + // [379] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_LSHIFT [phi:keyboard_event_scan::@17->keyboard_event_pressed#0] -- vbuz1=vbuc1 lda #KEY_LSHIFT sta.z keyboard_event_pressed.keycode jsr keyboard_event_pressed - // [405] (byte) keyboard_event_pressed::return#0 ← (byte) keyboard_event_pressed::return#11 + // [403] (byte) keyboard_event_pressed::return#0 ← (byte) keyboard_event_pressed::return#11 jmp __b20 // keyboard_event_scan::@20 __b20: - // [406] (byte~) keyboard_event_scan::$0 ← (byte) keyboard_event_pressed::return#0 - // [407] if((byte~) keyboard_event_scan::$0==(byte) 0) goto keyboard_event_scan::@1 -- vbuaa_eq_0_then_la1 + // [404] (byte~) keyboard_event_scan::$0 ← (byte) keyboard_event_pressed::return#0 + // [405] if((byte~) keyboard_event_scan::$0==(byte) 0) goto keyboard_event_scan::@1 -- vbuaa_eq_0_then_la1 cmp #0 beq __b1_from___b20 - // [408] phi from keyboard_event_scan::@20 to keyboard_event_scan::@18 [phi:keyboard_event_scan::@20->keyboard_event_scan::@18] + // [406] phi from keyboard_event_scan::@20 to keyboard_event_scan::@18 [phi:keyboard_event_scan::@20->keyboard_event_scan::@18] __b18_from___b20: jmp __b18 // keyboard_event_scan::@18 __b18: - // [409] phi from keyboard_event_scan::@18 keyboard_event_scan::@20 to keyboard_event_scan::@1 [phi:keyboard_event_scan::@18/keyboard_event_scan::@20->keyboard_event_scan::@1] + // [407] phi from keyboard_event_scan::@18 keyboard_event_scan::@20 to keyboard_event_scan::@1 [phi:keyboard_event_scan::@18/keyboard_event_scan::@20->keyboard_event_scan::@1] __b1_from___b18: __b1_from___b20: jmp __b1 // keyboard_event_scan::@1 __b1: - // [410] call keyboard_event_pressed - // [381] phi from keyboard_event_scan::@1 to keyboard_event_pressed [phi:keyboard_event_scan::@1->keyboard_event_pressed] + // [408] call keyboard_event_pressed + // [379] phi from keyboard_event_scan::@1 to keyboard_event_pressed [phi:keyboard_event_scan::@1->keyboard_event_pressed] keyboard_event_pressed_from___b1: - // [381] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_RSHIFT [phi:keyboard_event_scan::@1->keyboard_event_pressed#0] -- vbuz1=vbuc1 + // [379] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_RSHIFT [phi:keyboard_event_scan::@1->keyboard_event_pressed#0] -- vbuz1=vbuc1 lda #KEY_RSHIFT sta.z keyboard_event_pressed.keycode jsr keyboard_event_pressed - // [411] (byte) keyboard_event_pressed::return#1 ← (byte) keyboard_event_pressed::return#11 + // [409] (byte) keyboard_event_pressed::return#1 ← (byte) keyboard_event_pressed::return#11 jmp __b21 // keyboard_event_scan::@21 __b21: - // [412] (byte~) keyboard_event_scan::$3 ← (byte) keyboard_event_pressed::return#1 - // [413] if((byte~) keyboard_event_scan::$3==(byte) 0) goto keyboard_event_scan::@2 -- vbuaa_eq_0_then_la1 + // [410] (byte~) keyboard_event_scan::$3 ← (byte) keyboard_event_pressed::return#1 + // [411] if((byte~) keyboard_event_scan::$3==(byte) 0) goto keyboard_event_scan::@2 -- vbuaa_eq_0_then_la1 cmp #0 beq __b2_from___b21 - // [414] phi from keyboard_event_scan::@21 to keyboard_event_scan::@4 [phi:keyboard_event_scan::@21->keyboard_event_scan::@4] + // [412] phi from keyboard_event_scan::@21 to keyboard_event_scan::@4 [phi:keyboard_event_scan::@21->keyboard_event_scan::@4] __b4_from___b21: jmp __b4 // keyboard_event_scan::@4 __b4: - // [415] phi from keyboard_event_scan::@21 keyboard_event_scan::@4 to keyboard_event_scan::@2 [phi:keyboard_event_scan::@21/keyboard_event_scan::@4->keyboard_event_scan::@2] + // [413] phi from keyboard_event_scan::@21 keyboard_event_scan::@4 to keyboard_event_scan::@2 [phi:keyboard_event_scan::@21/keyboard_event_scan::@4->keyboard_event_scan::@2] __b2_from___b21: __b2_from___b4: jmp __b2 // keyboard_event_scan::@2 __b2: - // [416] call keyboard_event_pressed - // [381] phi from keyboard_event_scan::@2 to keyboard_event_pressed [phi:keyboard_event_scan::@2->keyboard_event_pressed] + // [414] call keyboard_event_pressed + // [379] phi from keyboard_event_scan::@2 to keyboard_event_pressed [phi:keyboard_event_scan::@2->keyboard_event_pressed] keyboard_event_pressed_from___b2: - // [381] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_CTRL [phi:keyboard_event_scan::@2->keyboard_event_pressed#0] -- vbuz1=vbuc1 + // [379] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_CTRL [phi:keyboard_event_scan::@2->keyboard_event_pressed#0] -- vbuz1=vbuc1 lda #KEY_CTRL sta.z keyboard_event_pressed.keycode jsr keyboard_event_pressed - // [417] (byte) keyboard_event_pressed::return#2 ← (byte) keyboard_event_pressed::return#11 + // [415] (byte) keyboard_event_pressed::return#2 ← (byte) keyboard_event_pressed::return#11 jmp __b22 // keyboard_event_scan::@22 __b22: - // [418] (byte~) keyboard_event_scan::$6 ← (byte) keyboard_event_pressed::return#2 - // [419] if((byte~) keyboard_event_scan::$6==(byte) 0) goto keyboard_event_scan::@3 -- vbuaa_eq_0_then_la1 + // [416] (byte~) keyboard_event_scan::$6 ← (byte) keyboard_event_pressed::return#2 + // [417] if((byte~) keyboard_event_scan::$6==(byte) 0) goto keyboard_event_scan::@3 -- vbuaa_eq_0_then_la1 cmp #0 beq __b3_from___b22 - // [420] phi from keyboard_event_scan::@22 to keyboard_event_scan::@5 [phi:keyboard_event_scan::@22->keyboard_event_scan::@5] + // [418] phi from keyboard_event_scan::@22 to keyboard_event_scan::@5 [phi:keyboard_event_scan::@22->keyboard_event_scan::@5] __b5_from___b22: jmp __b5 // keyboard_event_scan::@5 __b5: - // [421] phi from keyboard_event_scan::@22 keyboard_event_scan::@5 to keyboard_event_scan::@3 [phi:keyboard_event_scan::@22/keyboard_event_scan::@5->keyboard_event_scan::@3] + // [419] phi from keyboard_event_scan::@22 keyboard_event_scan::@5 to keyboard_event_scan::@3 [phi:keyboard_event_scan::@22/keyboard_event_scan::@5->keyboard_event_scan::@3] __b3_from___b22: __b3_from___b5: jmp __b3 // keyboard_event_scan::@3 __b3: - // [422] call keyboard_event_pressed - // [381] phi from keyboard_event_scan::@3 to keyboard_event_pressed [phi:keyboard_event_scan::@3->keyboard_event_pressed] + // [420] call keyboard_event_pressed + // [379] phi from keyboard_event_scan::@3 to keyboard_event_pressed [phi:keyboard_event_scan::@3->keyboard_event_pressed] keyboard_event_pressed_from___b3: - // [381] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_COMMODORE [phi:keyboard_event_scan::@3->keyboard_event_pressed#0] -- vbuz1=vbuc1 + // [379] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_COMMODORE [phi:keyboard_event_scan::@3->keyboard_event_pressed#0] -- vbuz1=vbuc1 lda #KEY_COMMODORE sta.z keyboard_event_pressed.keycode jsr keyboard_event_pressed - // [423] (byte) keyboard_event_pressed::return#10 ← (byte) keyboard_event_pressed::return#11 + // [421] (byte) keyboard_event_pressed::return#10 ← (byte) keyboard_event_pressed::return#11 jmp __b23 // keyboard_event_scan::@23 __b23: - // [424] (byte~) keyboard_event_scan::$9 ← (byte) keyboard_event_pressed::return#10 - // [425] if((byte~) keyboard_event_scan::$9==(byte) 0) goto keyboard_event_scan::@return -- vbuaa_eq_0_then_la1 + // [422] (byte~) keyboard_event_scan::$9 ← (byte) keyboard_event_pressed::return#10 + // [423] if((byte~) keyboard_event_scan::$9==(byte) 0) goto keyboard_event_scan::@return -- vbuaa_eq_0_then_la1 cmp #0 beq __breturn - // [426] phi from keyboard_event_scan::@23 to keyboard_event_scan::@6 [phi:keyboard_event_scan::@23->keyboard_event_scan::@6] + // [424] phi from keyboard_event_scan::@23 to keyboard_event_scan::@6 [phi:keyboard_event_scan::@23->keyboard_event_scan::@6] __b6_from___b23: jmp __b6 // keyboard_event_scan::@6 @@ -19386,79 +19358,79 @@ keyboard_event_scan: { jmp __breturn // keyboard_event_scan::@return __breturn: - // [427] return + // [425] return rts // Something has changed on the keyboard row - check each column - // [428] phi from keyboard_event_scan::@10 to keyboard_event_scan::@9 [phi:keyboard_event_scan::@10->keyboard_event_scan::@9] + // [426] phi from keyboard_event_scan::@10 to keyboard_event_scan::@9 [phi:keyboard_event_scan::@10->keyboard_event_scan::@9] __b9_from___b10: - // [428] phi (byte) keyboard_events_size#10 = (byte) keyboard_events_size#29 [phi:keyboard_event_scan::@10->keyboard_event_scan::@9#0] -- register_copy - // [428] phi (byte) keyboard_event_scan::keycode#10 = (byte) keyboard_event_scan::keycode#14 [phi:keyboard_event_scan::@10->keyboard_event_scan::@9#1] -- register_copy - // [428] phi (byte) keyboard_event_scan::col#2 = (byte) keyboard_event_scan::col#1 [phi:keyboard_event_scan::@10->keyboard_event_scan::@9#2] -- register_copy + // [426] phi (byte) keyboard_events_size#10 = (byte) keyboard_events_size#29 [phi:keyboard_event_scan::@10->keyboard_event_scan::@9#0] -- register_copy + // [426] phi (byte) keyboard_event_scan::keycode#10 = (byte) keyboard_event_scan::keycode#14 [phi:keyboard_event_scan::@10->keyboard_event_scan::@9#1] -- register_copy + // [426] phi (byte) keyboard_event_scan::col#2 = (byte) keyboard_event_scan::col#1 [phi:keyboard_event_scan::@10->keyboard_event_scan::@9#2] -- register_copy jmp __b9 - // [428] phi from keyboard_event_scan::@19 to keyboard_event_scan::@9 [phi:keyboard_event_scan::@19->keyboard_event_scan::@9] + // [426] phi from keyboard_event_scan::@19 to keyboard_event_scan::@9 [phi:keyboard_event_scan::@19->keyboard_event_scan::@9] __b9_from___b19: - // [428] phi (byte) keyboard_events_size#10 = (byte) keyboard_events_size#30 [phi:keyboard_event_scan::@19->keyboard_event_scan::@9#0] -- register_copy - // [428] phi (byte) keyboard_event_scan::keycode#10 = (byte) keyboard_event_scan::keycode#11 [phi:keyboard_event_scan::@19->keyboard_event_scan::@9#1] -- register_copy - // [428] phi (byte) keyboard_event_scan::col#2 = (byte) 0 [phi:keyboard_event_scan::@19->keyboard_event_scan::@9#2] -- vbuxx=vbuc1 + // [426] phi (byte) keyboard_events_size#10 = (byte) keyboard_events_size#30 [phi:keyboard_event_scan::@19->keyboard_event_scan::@9#0] -- register_copy + // [426] phi (byte) keyboard_event_scan::keycode#10 = (byte) keyboard_event_scan::keycode#11 [phi:keyboard_event_scan::@19->keyboard_event_scan::@9#1] -- register_copy + // [426] phi (byte) keyboard_event_scan::col#2 = (byte) 0 [phi:keyboard_event_scan::@19->keyboard_event_scan::@9#2] -- vbuxx=vbuc1 ldx #0 jmp __b9 // keyboard_event_scan::@9 __b9: - // [429] (byte~) keyboard_event_scan::$15 ← (byte) keyboard_event_scan::row_scan#0 ^ *((const byte*) keyboard_scan_values + (byte) keyboard_event_scan::row#2) -- vbuaa=vbuz1_bxor_pbuc1_derefidx_vbuz2 + // [427] (byte~) keyboard_event_scan::$15 ← (byte) keyboard_event_scan::row_scan#0 ^ *((const byte*) keyboard_scan_values + (byte) keyboard_event_scan::row#2) -- vbuaa=vbuz1_bxor_pbuc1_derefidx_vbuz2 lda.z row_scan ldy.z row eor keyboard_scan_values,y - // [430] (byte~) keyboard_event_scan::$16 ← (byte~) keyboard_event_scan::$15 & *((const byte*) keyboard_matrix_col_bitmask + (byte) keyboard_event_scan::col#2) -- vbuaa=vbuaa_band_pbuc1_derefidx_vbuxx + // [428] (byte~) keyboard_event_scan::$16 ← (byte~) keyboard_event_scan::$15 & *((const byte*) keyboard_matrix_col_bitmask + (byte) keyboard_event_scan::col#2) -- vbuaa=vbuaa_band_pbuc1_derefidx_vbuxx and keyboard_matrix_col_bitmask,x - // [431] if((byte~) keyboard_event_scan::$16==(byte) 0) goto keyboard_event_scan::@10 -- vbuaa_eq_0_then_la1 + // [429] if((byte~) keyboard_event_scan::$16==(byte) 0) goto keyboard_event_scan::@10 -- vbuaa_eq_0_then_la1 cmp #0 beq __b10_from___b9 jmp __b12 // keyboard_event_scan::@12 __b12: - // [432] if((byte) keyboard_events_size#10==(byte) 8) goto keyboard_event_scan::@10 -- vbuz1_eq_vbuc1_then_la1 + // [430] if((byte) keyboard_events_size#10==(byte) 8) goto keyboard_event_scan::@10 -- vbuz1_eq_vbuc1_then_la1 lda #8 cmp.z keyboard_events_size beq __b10_from___b12 jmp __b13 // keyboard_event_scan::@13 __b13: - // [433] (byte) keyboard_event_scan::event_type#0 ← (byte) keyboard_event_scan::row_scan#0 & *((const byte*) keyboard_matrix_col_bitmask + (byte) keyboard_event_scan::col#2) -- vbuaa=vbuz1_band_pbuc1_derefidx_vbuxx + // [431] (byte) keyboard_event_scan::event_type#0 ← (byte) keyboard_event_scan::row_scan#0 & *((const byte*) keyboard_matrix_col_bitmask + (byte) keyboard_event_scan::col#2) -- vbuaa=vbuz1_band_pbuc1_derefidx_vbuxx lda keyboard_matrix_col_bitmask,x and.z row_scan - // [434] if((byte) keyboard_event_scan::event_type#0==(byte) 0) goto keyboard_event_scan::@11 -- vbuaa_eq_0_then_la1 + // [432] if((byte) keyboard_event_scan::event_type#0==(byte) 0) goto keyboard_event_scan::@11 -- vbuaa_eq_0_then_la1 cmp #0 beq __b11 jmp __b14 // keyboard_event_scan::@14 __b14: - // [435] *((const byte*) keyboard_events + (byte) keyboard_events_size#10) ← (byte) keyboard_event_scan::keycode#10 -- pbuc1_derefidx_vbuz1=vbuz2 + // [433] *((const byte*) keyboard_events + (byte) keyboard_events_size#10) ← (byte) keyboard_event_scan::keycode#10 -- pbuc1_derefidx_vbuz1=vbuz2 // Key pressed lda.z keycode ldy.z keyboard_events_size sta keyboard_events,y - // [436] (byte) keyboard_events_size#2 ← ++ (byte) keyboard_events_size#10 -- vbuz1=_inc_vbuz1 + // [434] (byte) keyboard_events_size#2 ← ++ (byte) keyboard_events_size#10 -- vbuz1=_inc_vbuz1 inc.z keyboard_events_size - // [437] phi from keyboard_event_scan::@11 keyboard_event_scan::@12 keyboard_event_scan::@14 keyboard_event_scan::@9 to keyboard_event_scan::@10 [phi:keyboard_event_scan::@11/keyboard_event_scan::@12/keyboard_event_scan::@14/keyboard_event_scan::@9->keyboard_event_scan::@10] + // [435] phi from keyboard_event_scan::@11 keyboard_event_scan::@12 keyboard_event_scan::@14 keyboard_event_scan::@9 to keyboard_event_scan::@10 [phi:keyboard_event_scan::@11/keyboard_event_scan::@12/keyboard_event_scan::@14/keyboard_event_scan::@9->keyboard_event_scan::@10] __b10_from___b11: __b10_from___b12: __b10_from___b14: __b10_from___b9: - // [437] phi (byte) keyboard_events_size#29 = (byte) keyboard_events_size#1 [phi:keyboard_event_scan::@11/keyboard_event_scan::@12/keyboard_event_scan::@14/keyboard_event_scan::@9->keyboard_event_scan::@10#0] -- register_copy + // [435] phi (byte) keyboard_events_size#29 = (byte) keyboard_events_size#1 [phi:keyboard_event_scan::@11/keyboard_event_scan::@12/keyboard_event_scan::@14/keyboard_event_scan::@9->keyboard_event_scan::@10#0] -- register_copy jmp __b10 // keyboard_event_scan::@10 __b10: - // [438] (byte) keyboard_event_scan::keycode#14 ← ++ (byte) keyboard_event_scan::keycode#10 -- vbuz1=_inc_vbuz1 + // [436] (byte) keyboard_event_scan::keycode#14 ← ++ (byte) keyboard_event_scan::keycode#10 -- vbuz1=_inc_vbuz1 inc.z keycode - // [439] (byte) keyboard_event_scan::col#1 ← ++ (byte) keyboard_event_scan::col#2 -- vbuxx=_inc_vbuxx + // [437] (byte) keyboard_event_scan::col#1 ← ++ (byte) keyboard_event_scan::col#2 -- vbuxx=_inc_vbuxx inx - // [440] if((byte) keyboard_event_scan::col#1!=(byte) 8) goto keyboard_event_scan::@9 -- vbuxx_neq_vbuc1_then_la1 + // [438] if((byte) keyboard_event_scan::col#1!=(byte) 8) goto keyboard_event_scan::@9 -- vbuxx_neq_vbuc1_then_la1 cpx #8 bne __b9_from___b10 jmp __b15 // keyboard_event_scan::@15 __b15: - // [441] *((const byte*) keyboard_scan_values + (byte) keyboard_event_scan::row#2) ← (byte) keyboard_event_scan::row_scan#0 -- pbuc1_derefidx_vbuz1=vbuz2 + // [439] *((const byte*) keyboard_scan_values + (byte) keyboard_event_scan::row#2) ← (byte) keyboard_event_scan::row_scan#0 -- pbuc1_derefidx_vbuz1=vbuz2 // Store the current keyboard status for the row to debounce lda.z row_scan ldy.z row @@ -19466,14 +19438,14 @@ keyboard_event_scan: { jmp __b8_from___b15 // keyboard_event_scan::@11 __b11: - // [442] (byte~) keyboard_event_scan::$23 ← (byte) keyboard_event_scan::keycode#10 | (byte) $40 -- vbuaa=vbuz1_bor_vbuc1 + // [440] (byte~) keyboard_event_scan::$23 ← (byte) keyboard_event_scan::keycode#10 | (byte) $40 -- vbuaa=vbuz1_bor_vbuc1 lda #$40 ora.z keycode - // [443] *((const byte*) keyboard_events + (byte) keyboard_events_size#10) ← (byte~) keyboard_event_scan::$23 -- pbuc1_derefidx_vbuz1=vbuaa + // [441] *((const byte*) keyboard_events + (byte) keyboard_events_size#10) ← (byte~) keyboard_event_scan::$23 -- pbuc1_derefidx_vbuz1=vbuaa // Key released ldy.z keyboard_events_size sta keyboard_events,y - // [444] (byte) keyboard_events_size#1 ← ++ (byte) keyboard_events_size#10 -- vbuz1=_inc_vbuz1 + // [442] (byte) keyboard_events_size#1 ← ++ (byte) keyboard_events_size#10 -- vbuz1=_inc_vbuz1 inc.z keyboard_events_size jmp __b10_from___b11 } @@ -19485,16 +19457,16 @@ keyboard_event_scan: { // leading to erroneous readings. You must disable kill the normal interrupt or sei/cli around calls to the keyboard matrix reader. // keyboard_matrix_read(byte register(X) rowid) keyboard_matrix_read: { - // [445] *((const byte*) CIA1_PORT_A) ← *((const byte*) keyboard_matrix_row_bitmask + (byte) keyboard_matrix_read::rowid#0) -- _deref_pbuc1=pbuc2_derefidx_vbuxx + // [443] *((const byte*) CIA1_PORT_A) ← *((const byte*) keyboard_matrix_row_bitmask + (byte) keyboard_matrix_read::rowid#0) -- _deref_pbuc1=pbuc2_derefidx_vbuxx lda keyboard_matrix_row_bitmask,x sta CIA1_PORT_A - // [446] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B) -- vbuaa=_bnot__deref_pbuc1 + // [444] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B) -- vbuaa=_bnot__deref_pbuc1 lda CIA1_PORT_B eor #$ff jmp __breturn // keyboard_matrix_read::@return __breturn: - // [447] return + // [445] return rts } // render_show @@ -19502,48 +19474,48 @@ keyboard_matrix_read: { render_show: { .const toD0181_return = (>(PLAYFIELD_SCREEN_1&$3fff)*4)|(>PLAYFIELD_CHARSET)/4&$f .const toD0182_return = (>(PLAYFIELD_SCREEN_2&$3fff)*4)|(>PLAYFIELD_CHARSET)/4&$f - // [448] if((byte) render_screen_show#16==(byte) 0) goto render_show::toD0181 -- vbuz1_eq_0_then_la1 + // [446] if((byte) render_screen_show#16==(byte) 0) goto render_show::toD0181 -- vbuz1_eq_0_then_la1 lda.z render_screen_show cmp #0 beq toD0181_from_render_show - // [449] phi from render_show to render_show::toD0182 [phi:render_show->render_show::toD0182] + // [447] phi from render_show to render_show::toD0182 [phi:render_show->render_show::toD0182] toD0182_from_render_show: jmp toD0182 // render_show::toD0182 toD0182: - // [450] phi from render_show::toD0182 to render_show::@1 [phi:render_show::toD0182->render_show::@1] + // [448] phi from render_show::toD0182 to render_show::@1 [phi:render_show::toD0182->render_show::@1] __b1_from_toD0182: - // [450] phi (byte) render_show::d018val#3 = (const byte) render_show::toD0182_return#0 [phi:render_show::toD0182->render_show::@1#0] -- vbuaa=vbuc1 + // [448] phi (byte) render_show::d018val#3 = (const byte) render_show::toD0182_return#0 [phi:render_show::toD0182->render_show::@1#0] -- vbuaa=vbuc1 lda #toD0182_return jmp __b1 // render_show::@1 __b1: - // [451] *((const byte*) D018) ← (byte) render_show::d018val#3 -- _deref_pbuc1=vbuaa + // [449] *((const byte*) D018) ← (byte) render_show::d018val#3 -- _deref_pbuc1=vbuaa sta D018 - // [452] *((const byte*) BGCOL2) ← *((const byte*) PIECES_COLORS_1 + (byte) level#10) -- _deref_pbuc1=pbuc2_derefidx_vbuz1 + // [450] *((const byte*) BGCOL2) ← *((const byte*) PIECES_COLORS_1 + (byte) level#10) -- _deref_pbuc1=pbuc2_derefidx_vbuz1 ldy.z level lda PIECES_COLORS_1,y sta BGCOL2 - // [453] *((const byte*) BGCOL3) ← *((const byte*) PIECES_COLORS_2 + (byte) level#10) -- _deref_pbuc1=pbuc2_derefidx_vbuz1 + // [451] *((const byte*) BGCOL3) ← *((const byte*) PIECES_COLORS_2 + (byte) level#10) -- _deref_pbuc1=pbuc2_derefidx_vbuz1 ldy.z level lda PIECES_COLORS_2,y sta BGCOL3 - // [454] (byte) render_screen_showing ← (byte) render_screen_show#16 -- vbuz1=vbuz2 + // [452] (byte) render_screen_showing ← (byte) render_screen_show#16 -- vbuz1=vbuz2 lda.z render_screen_show sta.z render_screen_showing jmp __breturn // render_show::@return __breturn: - // [455] return + // [453] return rts - // [456] phi from render_show to render_show::toD0181 [phi:render_show->render_show::toD0181] + // [454] phi from render_show to render_show::toD0181 [phi:render_show->render_show::toD0181] toD0181_from_render_show: jmp toD0181 // render_show::toD0181 toD0181: - // [450] phi from render_show::toD0181 to render_show::@1 [phi:render_show::toD0181->render_show::@1] + // [448] phi from render_show::toD0181 to render_show::@1 [phi:render_show::toD0181->render_show::@1] __b1_from_toD0181: - // [450] phi (byte) render_show::d018val#3 = (const byte) render_show::toD0181_return#0 [phi:render_show::toD0181->render_show::@1#0] -- vbuaa=vbuc1 + // [448] phi (byte) render_show::d018val#3 = (const byte) render_show::toD0181_return#0 [phi:render_show::toD0181->render_show::@1#0] -- vbuaa=vbuc1 lda #toD0181_return jmp __b1 } @@ -19553,40 +19525,40 @@ play_init: { .label pli = $21 // Initialize the playfield line pointers; .label idx = $f - // [458] phi from play_init to play_init::@1 [phi:play_init->play_init::@1] + // [456] phi from play_init to play_init::@1 [phi:play_init->play_init::@1] __b1_from_play_init: - // [458] phi (byte) play_init::idx#2 = (byte) 0 [phi:play_init->play_init::@1#0] -- vbuz1=vbuc1 + // [456] phi (byte) play_init::idx#2 = (byte) 0 [phi:play_init->play_init::@1#0] -- vbuz1=vbuc1 lda #0 sta.z idx - // [458] phi (byte*) play_init::pli#2 = (const byte*) playfield [phi:play_init->play_init::@1#1] -- pbuz1=pbuc1 + // [456] phi (byte*) play_init::pli#2 = (const byte*) playfield [phi:play_init->play_init::@1#1] -- pbuz1=pbuc1 lda #playfield sta.z pli+1 - // [458] phi (byte) play_init::j#2 = (byte) 0 [phi:play_init->play_init::@1#2] -- vbuyy=vbuc1 + // [456] phi (byte) play_init::j#2 = (byte) 0 [phi:play_init->play_init::@1#2] -- vbuyy=vbuc1 ldy #0 jmp __b1 - // [458] phi from play_init::@1 to play_init::@1 [phi:play_init::@1->play_init::@1] + // [456] phi from play_init::@1 to play_init::@1 [phi:play_init::@1->play_init::@1] __b1_from___b1: - // [458] phi (byte) play_init::idx#2 = (byte) play_init::idx#1 [phi:play_init::@1->play_init::@1#0] -- register_copy - // [458] phi (byte*) play_init::pli#2 = (byte*) play_init::pli#1 [phi:play_init::@1->play_init::@1#1] -- register_copy - // [458] phi (byte) play_init::j#2 = (byte) play_init::j#1 [phi:play_init::@1->play_init::@1#2] -- register_copy + // [456] phi (byte) play_init::idx#2 = (byte) play_init::idx#1 [phi:play_init::@1->play_init::@1#0] -- register_copy + // [456] phi (byte*) play_init::pli#2 = (byte*) play_init::pli#1 [phi:play_init::@1->play_init::@1#1] -- register_copy + // [456] phi (byte) play_init::j#2 = (byte) play_init::j#1 [phi:play_init::@1->play_init::@1#2] -- register_copy jmp __b1 // play_init::@1 __b1: - // [459] (byte~) play_init::$2 ← (byte) play_init::j#2 << (byte) 1 -- vbuxx=vbuyy_rol_1 + // [457] (byte~) play_init::$2 ← (byte) play_init::j#2 << (byte) 1 -- vbuxx=vbuyy_rol_1 tya asl tax - // [460] *((const byte**) playfield_lines + (byte~) play_init::$2) ← (byte*) play_init::pli#2 -- pptc1_derefidx_vbuxx=pbuz1 + // [458] *((const byte**) playfield_lines + (byte~) play_init::$2) ← (byte*) play_init::pli#2 -- pptc1_derefidx_vbuxx=pbuz1 lda.z pli sta playfield_lines,x lda.z pli+1 sta playfield_lines+1,x - // [461] *((const byte*) playfield_lines_idx + (byte) play_init::j#2) ← (byte) play_init::idx#2 -- pbuc1_derefidx_vbuyy=vbuz1 + // [459] *((const byte*) playfield_lines_idx + (byte) play_init::j#2) ← (byte) play_init::idx#2 -- pbuc1_derefidx_vbuyy=vbuz1 lda.z idx sta playfield_lines_idx,y - // [462] (byte*) play_init::pli#1 ← (byte*) play_init::pli#2 + (const byte) PLAYFIELD_COLS -- pbuz1=pbuz1_plus_vbuc1 + // [460] (byte*) play_init::pli#1 ← (byte*) play_init::pli#2 + (const byte) PLAYFIELD_COLS -- pbuz1=pbuz1_plus_vbuc1 lda #PLAYFIELD_COLS clc adc.z pli @@ -19594,42 +19566,42 @@ play_init: { bcc !+ inc.z pli+1 !: - // [463] (byte) play_init::idx#1 ← (byte) play_init::idx#2 + (const byte) PLAYFIELD_COLS -- vbuz1=vbuz1_plus_vbuc1 + // [461] (byte) play_init::idx#1 ← (byte) play_init::idx#2 + (const byte) PLAYFIELD_COLS -- vbuz1=vbuz1_plus_vbuc1 lax.z idx axs #-[PLAYFIELD_COLS] stx.z idx - // [464] (byte) play_init::j#1 ← ++ (byte) play_init::j#2 -- vbuyy=_inc_vbuyy + // [462] (byte) play_init::j#1 ← ++ (byte) play_init::j#2 -- vbuyy=_inc_vbuyy iny - // [465] if((byte) play_init::j#1!=(const byte) PLAYFIELD_LINES-(byte) 1+(byte) 1) goto play_init::@1 -- vbuyy_neq_vbuc1_then_la1 + // [463] if((byte) play_init::j#1!=(const byte) PLAYFIELD_LINES-(byte) 1+(byte) 1) goto play_init::@1 -- vbuyy_neq_vbuc1_then_la1 cpy #PLAYFIELD_LINES-1+1 bne __b1_from___b1 jmp __b2 // play_init::@2 __b2: - // [466] *((const byte*) playfield_lines_idx+(const byte) PLAYFIELD_LINES) ← (const byte) PLAYFIELD_COLS*(const byte) PLAYFIELD_LINES -- _deref_pbuc1=vbuc2 + // [464] *((const byte*) playfield_lines_idx+(const byte) PLAYFIELD_LINES) ← (const byte) PLAYFIELD_COLS*(const byte) PLAYFIELD_LINES -- _deref_pbuc1=vbuc2 lda #PLAYFIELD_COLS*PLAYFIELD_LINES sta playfield_lines_idx+PLAYFIELD_LINES - // [467] (byte) current_movedown_slow#1 ← *((const byte*) MOVEDOWN_SLOW_SPEEDS) -- vbuz1=_deref_pbuc1 + // [465] (byte) current_movedown_slow#1 ← *((const byte*) MOVEDOWN_SLOW_SPEEDS) -- vbuz1=_deref_pbuc1 // Set initial speed of moving down a tetromino lda MOVEDOWN_SLOW_SPEEDS sta.z current_movedown_slow - // [468] phi from play_init::@2 to play_init::@3 [phi:play_init::@2->play_init::@3] + // [466] phi from play_init::@2 to play_init::@3 [phi:play_init::@2->play_init::@3] __b3_from___b2: - // [468] phi (byte) play_init::b#2 = (byte) 0 [phi:play_init::@2->play_init::@3#0] -- vbuxx=vbuc1 + // [466] phi (byte) play_init::b#2 = (byte) 0 [phi:play_init::@2->play_init::@3#0] -- vbuxx=vbuc1 ldx #0 jmp __b3 // Set the initial score add values - // [468] phi from play_init::@3 to play_init::@3 [phi:play_init::@3->play_init::@3] + // [466] phi from play_init::@3 to play_init::@3 [phi:play_init::@3->play_init::@3] __b3_from___b3: - // [468] phi (byte) play_init::b#2 = (byte) play_init::b#1 [phi:play_init::@3->play_init::@3#0] -- register_copy + // [466] phi (byte) play_init::b#2 = (byte) play_init::b#1 [phi:play_init::@3->play_init::@3#0] -- register_copy jmp __b3 // play_init::@3 __b3: - // [469] (byte~) play_init::$3 ← (byte) play_init::b#2 << (byte) 2 -- vbuaa=vbuxx_rol_2 + // [467] (byte~) play_init::$3 ← (byte) play_init::b#2 << (byte) 2 -- vbuaa=vbuxx_rol_2 txa asl asl - // [470] *((const dword*) score_add_bcd + (byte~) play_init::$3) ← *((const dword*) SCORE_BASE_BCD + (byte~) play_init::$3) -- pduc1_derefidx_vbuaa=pduc2_derefidx_vbuaa + // [468] *((const dword*) score_add_bcd + (byte~) play_init::$3) ← *((const dword*) SCORE_BASE_BCD + (byte~) play_init::$3) -- pduc1_derefidx_vbuaa=pduc2_derefidx_vbuaa tay lda SCORE_BASE_BCD,y sta score_add_bcd,y @@ -19639,15 +19611,15 @@ play_init: { sta score_add_bcd+2,y lda SCORE_BASE_BCD+3,y sta score_add_bcd+3,y - // [471] (byte) play_init::b#1 ← ++ (byte) play_init::b#2 -- vbuxx=_inc_vbuxx + // [469] (byte) play_init::b#1 ← ++ (byte) play_init::b#2 -- vbuxx=_inc_vbuxx inx - // [472] if((byte) play_init::b#1!=(byte) 5) goto play_init::@3 -- vbuxx_neq_vbuc1_then_la1 + // [470] if((byte) play_init::b#1!=(byte) 5) goto play_init::@3 -- vbuxx_neq_vbuc1_then_la1 cpx #5 bne __b3_from___b3 jmp __breturn // play_init::@return __breturn: - // [473] return + // [471] return rts } // sprites_irq_init @@ -19655,36 +19627,36 @@ play_init: { sprites_irq_init: { // asm { sei } sei - // [475] *((const byte*) IRQ_STATUS) ← (const byte) IRQ_RASTER -- _deref_pbuc1=vbuc2 + // [473] *((const byte*) IRQ_STATUS) ← (const byte) IRQ_RASTER -- _deref_pbuc1=vbuc2 // Acknowledge any IRQ and setup the next one lda #IRQ_RASTER sta IRQ_STATUS // asm { ldaCIA1_INTERRUPT } lda CIA1_INTERRUPT - // [477] *((const byte*) PROCPORT_DDR) ← (const byte) PROCPORT_DDR_MEMORY_MASK -- _deref_pbuc1=vbuc2 + // [475] *((const byte*) PROCPORT_DDR) ← (const byte) PROCPORT_DDR_MEMORY_MASK -- _deref_pbuc1=vbuc2 // Disable kernal & basic lda #PROCPORT_DDR_MEMORY_MASK sta PROCPORT_DDR - // [478] *((const byte*) PROCPORT) ← (const byte) PROCPORT_RAM_IO -- _deref_pbuc1=vbuc2 + // [476] *((const byte*) PROCPORT) ← (const byte) PROCPORT_RAM_IO -- _deref_pbuc1=vbuc2 lda #PROCPORT_RAM_IO sta PROCPORT - // [479] *((const byte*) CIA1_INTERRUPT) ← (const byte) CIA_INTERRUPT_CLEAR -- _deref_pbuc1=vbuc2 + // [477] *((const byte*) CIA1_INTERRUPT) ← (const byte) CIA_INTERRUPT_CLEAR -- _deref_pbuc1=vbuc2 // Disable CIA 1 Timer IRQ lda #CIA_INTERRUPT_CLEAR sta CIA1_INTERRUPT - // [480] *((const byte*) VIC_CONTROL) ← *((const byte*) VIC_CONTROL) & (byte) $7f -- _deref_pbuc1=_deref_pbuc1_band_vbuc2 + // [478] *((const byte*) VIC_CONTROL) ← *((const byte*) VIC_CONTROL) & (byte) $7f -- _deref_pbuc1=_deref_pbuc1_band_vbuc2 // Set raster line lda #$7f and VIC_CONTROL sta VIC_CONTROL - // [481] *((const byte*) RASTER) ← (const byte) IRQ_RASTER_FIRST -- _deref_pbuc1=vbuc2 + // [479] *((const byte*) RASTER) ← (const byte) IRQ_RASTER_FIRST -- _deref_pbuc1=vbuc2 lda #IRQ_RASTER_FIRST sta RASTER - // [482] *((const byte*) IRQ_ENABLE) ← (const byte) IRQ_RASTER -- _deref_pbuc1=vbuc2 + // [480] *((const byte*) IRQ_ENABLE) ← (const byte) IRQ_RASTER -- _deref_pbuc1=vbuc2 // Enable Raster Interrupt lda #IRQ_RASTER sta IRQ_ENABLE - // [483] *((const void()**) HARDWARE_IRQ) ← &interrupt(HARDWARE_CLOBBER)(void()) sprites_irq() -- _deref_pptc1=pprc2 + // [481] *((const void()**) HARDWARE_IRQ) ← &interrupt(HARDWARE_CLOBBER)(void()) sprites_irq() -- _deref_pptc1=pprc2 // Set the IRQ routine lda #sprites_init::@1] + // [488] phi from sprites_init to sprites_init::@1 [phi:sprites_init->sprites_init::@1] __b1_from_sprites_init: - // [490] phi (byte) sprites_init::xpos#2 = (byte)(number) $18+(number) $f*(number) 8 [phi:sprites_init->sprites_init::@1#0] -- vbuz1=vbuc1 + // [488] phi (byte) sprites_init::xpos#2 = (byte)(number) $18+(number) $f*(number) 8 [phi:sprites_init->sprites_init::@1#0] -- vbuz1=vbuc1 lda #$18+$f*8 sta.z xpos - // [490] phi (byte) sprites_init::s#2 = (byte) 0 [phi:sprites_init->sprites_init::@1#1] -- vbuyy=vbuc1 + // [488] phi (byte) sprites_init::s#2 = (byte) 0 [phi:sprites_init->sprites_init::@1#1] -- vbuyy=vbuc1 ldy #0 jmp __b1 - // [490] phi from sprites_init::@1 to sprites_init::@1 [phi:sprites_init::@1->sprites_init::@1] + // [488] phi from sprites_init::@1 to sprites_init::@1 [phi:sprites_init::@1->sprites_init::@1] __b1_from___b1: - // [490] phi (byte) sprites_init::xpos#2 = (byte) sprites_init::xpos#1 [phi:sprites_init::@1->sprites_init::@1#0] -- register_copy - // [490] phi (byte) sprites_init::s#2 = (byte) sprites_init::s#1 [phi:sprites_init::@1->sprites_init::@1#1] -- register_copy + // [488] phi (byte) sprites_init::xpos#2 = (byte) sprites_init::xpos#1 [phi:sprites_init::@1->sprites_init::@1#0] -- register_copy + // [488] phi (byte) sprites_init::s#2 = (byte) sprites_init::s#1 [phi:sprites_init::@1->sprites_init::@1#1] -- register_copy jmp __b1 // sprites_init::@1 __b1: - // [491] (byte) sprites_init::s2#0 ← (byte) sprites_init::s#2 << (byte) 1 -- vbuxx=vbuyy_rol_1 + // [489] (byte) sprites_init::s2#0 ← (byte) sprites_init::s#2 << (byte) 1 -- vbuxx=vbuyy_rol_1 tya asl tax - // [492] *((const byte*) SPRITES_XPOS + (byte) sprites_init::s2#0) ← (byte) sprites_init::xpos#2 -- pbuc1_derefidx_vbuxx=vbuz1 + // [490] *((const byte*) SPRITES_XPOS + (byte) sprites_init::s2#0) ← (byte) sprites_init::xpos#2 -- pbuc1_derefidx_vbuxx=vbuz1 lda.z xpos sta SPRITES_XPOS,x - // [493] *((const byte*) SPRITES_COLS + (byte) sprites_init::s#2) ← (const byte) BLACK -- pbuc1_derefidx_vbuyy=vbuc2 + // [491] *((const byte*) SPRITES_COLS + (byte) sprites_init::s#2) ← (const byte) BLACK -- pbuc1_derefidx_vbuyy=vbuc2 lda #BLACK sta SPRITES_COLS,y - // [494] (byte) sprites_init::xpos#1 ← (byte) sprites_init::xpos#2 + (byte) $18 -- vbuz1=vbuz1_plus_vbuc1 + // [492] (byte) sprites_init::xpos#1 ← (byte) sprites_init::xpos#2 + (byte) $18 -- vbuz1=vbuz1_plus_vbuc1 lax.z xpos axs #-[$18] stx.z xpos - // [495] (byte) sprites_init::s#1 ← ++ (byte) sprites_init::s#2 -- vbuyy=_inc_vbuyy + // [493] (byte) sprites_init::s#1 ← ++ (byte) sprites_init::s#2 -- vbuyy=_inc_vbuyy iny - // [496] if((byte) sprites_init::s#1!=(byte) 4) goto sprites_init::@1 -- vbuyy_neq_vbuc1_then_la1 + // [494] if((byte) sprites_init::s#1!=(byte) 4) goto sprites_init::@1 -- vbuyy_neq_vbuc1_then_la1 cpy #4 bne __b1_from___b1 jmp __breturn // sprites_init::@return __breturn: - // [497] return + // [495] return rts } // render_init @@ -19764,10 +19736,10 @@ render_init: { jmp vicSelectGfxBank1 // render_init::vicSelectGfxBank1 vicSelectGfxBank1: - // [499] *((const byte*) CIA2_PORT_A_DDR) ← (byte) 3 -- _deref_pbuc1=vbuc2 + // [497] *((const byte*) CIA2_PORT_A_DDR) ← (byte) 3 -- _deref_pbuc1=vbuc2 lda #3 sta CIA2_PORT_A_DDR - // [500] phi from render_init::vicSelectGfxBank1 to render_init::vicSelectGfxBank1_toDd001 [phi:render_init::vicSelectGfxBank1->render_init::vicSelectGfxBank1_toDd001] + // [498] phi from render_init::vicSelectGfxBank1 to render_init::vicSelectGfxBank1_toDd001 [phi:render_init::vicSelectGfxBank1->render_init::vicSelectGfxBank1_toDd001] vicSelectGfxBank1_toDd001_from_vicSelectGfxBank1: jmp vicSelectGfxBank1_toDd001 // render_init::vicSelectGfxBank1_toDd001 @@ -19775,92 +19747,92 @@ render_init: { jmp vicSelectGfxBank1___b1 // render_init::vicSelectGfxBank1_@1 vicSelectGfxBank1___b1: - // [501] *((const byte*) CIA2_PORT_A) ← (const byte) render_init::vicSelectGfxBank1_toDd001_return#0 -- _deref_pbuc1=vbuc2 + // [499] *((const byte*) CIA2_PORT_A) ← (const byte) render_init::vicSelectGfxBank1_toDd001_return#0 -- _deref_pbuc1=vbuc2 lda #vicSelectGfxBank1_toDd001_return sta CIA2_PORT_A jmp __b2 // render_init::@2 __b2: - // [502] *((const byte*) D011) ← (const byte) VIC_ECM|(const byte) VIC_DEN|(const byte) VIC_RSEL|(byte) 3 -- _deref_pbuc1=vbuc2 + // [500] *((const byte*) D011) ← (const byte) VIC_ECM|(const byte) VIC_DEN|(const byte) VIC_RSEL|(byte) 3 -- _deref_pbuc1=vbuc2 // Enable Extended Background Color Mode lda #VIC_ECM|VIC_DEN|VIC_RSEL|3 sta D011 - // [503] *((const byte*) BORDERCOL) ← (const byte) BLACK -- _deref_pbuc1=vbuc2 + // [501] *((const byte*) BORDERCOL) ← (const byte) BLACK -- _deref_pbuc1=vbuc2 lda #BLACK sta BORDERCOL - // [504] *((const byte*) BGCOL1) ← (const byte) BLACK -- _deref_pbuc1=vbuc2 + // [502] *((const byte*) BGCOL1) ← (const byte) BLACK -- _deref_pbuc1=vbuc2 lda #BLACK sta BGCOL1 - // [505] *((const byte*) BGCOL2) ← *((const byte*) PIECES_COLORS_1) -- _deref_pbuc1=_deref_pbuc2 + // [503] *((const byte*) BGCOL2) ← *((const byte*) PIECES_COLORS_1) -- _deref_pbuc1=_deref_pbuc2 lda PIECES_COLORS_1 sta BGCOL2 - // [506] *((const byte*) BGCOL3) ← *((const byte*) PIECES_COLORS_2) -- _deref_pbuc1=_deref_pbuc2 + // [504] *((const byte*) BGCOL3) ← *((const byte*) PIECES_COLORS_2) -- _deref_pbuc1=_deref_pbuc2 lda PIECES_COLORS_2 sta BGCOL3 - // [507] *((const byte*) BGCOL4) ← (const byte) GREY -- _deref_pbuc1=vbuc2 + // [505] *((const byte*) BGCOL4) ← (const byte) GREY -- _deref_pbuc1=vbuc2 lda #GREY sta BGCOL4 - // [508] call render_screen_original - // [520] phi from render_init::@2 to render_screen_original [phi:render_init::@2->render_screen_original] + // [506] call render_screen_original + // [518] phi from render_init::@2 to render_screen_original [phi:render_init::@2->render_screen_original] render_screen_original_from___b2: - // [520] phi (byte*) render_screen_original::screen#9 = (const byte*) PLAYFIELD_SCREEN_1 [phi:render_init::@2->render_screen_original#0] -- pbuz1=pbuc1 + // [518] phi (byte*) render_screen_original::screen#9 = (const byte*) PLAYFIELD_SCREEN_1 [phi:render_init::@2->render_screen_original#0] -- pbuz1=pbuc1 lda #PLAYFIELD_SCREEN_1 sta.z render_screen_original.screen+1 jsr render_screen_original - // [509] phi from render_init::@2 to render_init::@3 [phi:render_init::@2->render_init::@3] + // [507] phi from render_init::@2 to render_init::@3 [phi:render_init::@2->render_init::@3] __b3_from___b2: jmp __b3 // render_init::@3 __b3: - // [510] call render_screen_original - // [520] phi from render_init::@3 to render_screen_original [phi:render_init::@3->render_screen_original] + // [508] call render_screen_original + // [518] phi from render_init::@3 to render_screen_original [phi:render_init::@3->render_screen_original] render_screen_original_from___b3: - // [520] phi (byte*) render_screen_original::screen#9 = (const byte*) PLAYFIELD_SCREEN_2 [phi:render_init::@3->render_screen_original#0] -- pbuz1=pbuc1 + // [518] phi (byte*) render_screen_original::screen#9 = (const byte*) PLAYFIELD_SCREEN_2 [phi:render_init::@3->render_screen_original#0] -- pbuz1=pbuc1 lda #PLAYFIELD_SCREEN_2 sta.z render_screen_original.screen+1 jsr render_screen_original - // [511] phi from render_init::@3 to render_init::@1 [phi:render_init::@3->render_init::@1] + // [509] phi from render_init::@3 to render_init::@1 [phi:render_init::@3->render_init::@1] __b1_from___b3: - // [511] phi (byte*) render_init::li_2#2 = (const byte*) PLAYFIELD_SCREEN_2+(byte)(number) 2*(number) $28+(byte) $10 [phi:render_init::@3->render_init::@1#0] -- pbuz1=pbuc1 + // [509] phi (byte*) render_init::li_2#2 = (const byte*) PLAYFIELD_SCREEN_2+(byte)(number) 2*(number) $28+(byte) $10 [phi:render_init::@3->render_init::@1#0] -- pbuz1=pbuc1 lda #PLAYFIELD_SCREEN_2+2*$28+$10 sta.z li_2+1 - // [511] phi (byte*) render_init::li_1#2 = (const byte*) PLAYFIELD_SCREEN_1+(byte)(number) 2*(number) $28+(byte) $10 [phi:render_init::@3->render_init::@1#1] -- pbuz1=pbuc1 + // [509] phi (byte*) render_init::li_1#2 = (const byte*) PLAYFIELD_SCREEN_1+(byte)(number) 2*(number) $28+(byte) $10 [phi:render_init::@3->render_init::@1#1] -- pbuz1=pbuc1 lda #PLAYFIELD_SCREEN_1+2*$28+$10 sta.z li_1+1 - // [511] phi (byte) render_init::i#2 = (byte) 0 [phi:render_init::@3->render_init::@1#2] -- vbuyy=vbuc1 + // [509] phi (byte) render_init::i#2 = (byte) 0 [phi:render_init::@3->render_init::@1#2] -- vbuyy=vbuc1 ldy #0 jmp __b1 - // [511] phi from render_init::@1 to render_init::@1 [phi:render_init::@1->render_init::@1] + // [509] phi from render_init::@1 to render_init::@1 [phi:render_init::@1->render_init::@1] __b1_from___b1: - // [511] phi (byte*) render_init::li_2#2 = (byte*) render_init::li_2#1 [phi:render_init::@1->render_init::@1#0] -- register_copy - // [511] phi (byte*) render_init::li_1#2 = (byte*) render_init::li_1#1 [phi:render_init::@1->render_init::@1#1] -- register_copy - // [511] phi (byte) render_init::i#2 = (byte) render_init::i#1 [phi:render_init::@1->render_init::@1#2] -- register_copy + // [509] phi (byte*) render_init::li_2#2 = (byte*) render_init::li_2#1 [phi:render_init::@1->render_init::@1#0] -- register_copy + // [509] phi (byte*) render_init::li_1#2 = (byte*) render_init::li_1#1 [phi:render_init::@1->render_init::@1#1] -- register_copy + // [509] phi (byte) render_init::i#2 = (byte) render_init::i#1 [phi:render_init::@1->render_init::@1#2] -- register_copy jmp __b1 // render_init::@1 __b1: - // [512] (byte~) render_init::$5 ← (byte) render_init::i#2 << (byte) 1 -- vbuxx=vbuyy_rol_1 + // [510] (byte~) render_init::$5 ← (byte) render_init::i#2 << (byte) 1 -- vbuxx=vbuyy_rol_1 tya asl tax - // [513] *((const byte**) screen_lines_1 + (byte~) render_init::$5) ← (byte*) render_init::li_1#2 -- pptc1_derefidx_vbuxx=pbuz1 + // [511] *((const byte**) screen_lines_1 + (byte~) render_init::$5) ← (byte*) render_init::li_1#2 -- pptc1_derefidx_vbuxx=pbuz1 lda.z li_1 sta screen_lines_1,x lda.z li_1+1 sta screen_lines_1+1,x - // [514] *((const byte**) screen_lines_2 + (byte~) render_init::$5) ← (byte*) render_init::li_2#2 -- pptc1_derefidx_vbuxx=pbuz1 + // [512] *((const byte**) screen_lines_2 + (byte~) render_init::$5) ← (byte*) render_init::li_2#2 -- pptc1_derefidx_vbuxx=pbuz1 lda.z li_2 sta screen_lines_2,x lda.z li_2+1 sta screen_lines_2+1,x - // [515] (byte*) render_init::li_1#1 ← (byte*) render_init::li_1#2 + (byte) $28 -- pbuz1=pbuz1_plus_vbuc1 + // [513] (byte*) render_init::li_1#1 ← (byte*) render_init::li_1#2 + (byte) $28 -- pbuz1=pbuz1_plus_vbuc1 lda #$28 clc adc.z li_1 @@ -19868,7 +19840,7 @@ render_init: { bcc !+ inc.z li_1+1 !: - // [516] (byte*) render_init::li_2#1 ← (byte*) render_init::li_2#2 + (byte) $28 -- pbuz1=pbuz1_plus_vbuc1 + // [514] (byte*) render_init::li_2#1 ← (byte*) render_init::li_2#2 + (byte) $28 -- pbuz1=pbuz1_plus_vbuc1 lda #$28 clc adc.z li_2 @@ -19876,15 +19848,15 @@ render_init: { bcc !+ inc.z li_2+1 !: - // [517] (byte) render_init::i#1 ← ++ (byte) render_init::i#2 -- vbuyy=_inc_vbuyy + // [515] (byte) render_init::i#1 ← ++ (byte) render_init::i#2 -- vbuyy=_inc_vbuyy iny - // [518] if((byte) render_init::i#1!=(const byte) PLAYFIELD_LINES-(byte) 1+(byte) 1) goto render_init::@1 -- vbuyy_neq_vbuc1_then_la1 + // [516] if((byte) render_init::i#1!=(const byte) PLAYFIELD_LINES-(byte) 1+(byte) 1) goto render_init::@1 -- vbuyy_neq_vbuc1_then_la1 cpy #PLAYFIELD_LINES-1+1 bne __b1_from___b1 jmp __breturn // render_init::@return __breturn: - // [519] return + // [517] return rts } // render_screen_original @@ -19898,184 +19870,184 @@ render_screen_original: { .label oscr = $14 .label ocols = $21 .label y = $13 - // [521] phi from render_screen_original to render_screen_original::@1 [phi:render_screen_original->render_screen_original::@1] + // [519] phi from render_screen_original to render_screen_original::@1 [phi:render_screen_original->render_screen_original::@1] __b1_from_render_screen_original: - // [521] phi (byte) render_screen_original::y#6 = (byte) 0 [phi:render_screen_original->render_screen_original::@1#0] -- vbuz1=vbuc1 + // [519] phi (byte) render_screen_original::y#6 = (byte) 0 [phi:render_screen_original->render_screen_original::@1#0] -- vbuz1=vbuc1 lda #0 sta.z y - // [521] phi (byte*) render_screen_original::ocols#4 = (const byte*) PLAYFIELD_COLORS_ORIGINAL+(byte)(number) $20*(number) 2 [phi:render_screen_original->render_screen_original::@1#1] -- pbuz1=pbuc1 + // [519] phi (byte*) render_screen_original::ocols#4 = (const byte*) PLAYFIELD_COLORS_ORIGINAL+(byte)(number) $20*(number) 2 [phi:render_screen_original->render_screen_original::@1#1] -- pbuz1=pbuc1 lda #PLAYFIELD_COLORS_ORIGINAL+$20*2 sta.z ocols+1 - // [521] phi (byte*) render_screen_original::oscr#4 = (const byte*) PLAYFIELD_SCREEN_ORIGINAL+(byte)(number) $20*(number) 2 [phi:render_screen_original->render_screen_original::@1#2] -- pbuz1=pbuc1 + // [519] phi (byte*) render_screen_original::oscr#4 = (const byte*) PLAYFIELD_SCREEN_ORIGINAL+(byte)(number) $20*(number) 2 [phi:render_screen_original->render_screen_original::@1#2] -- pbuz1=pbuc1 lda #PLAYFIELD_SCREEN_ORIGINAL+$20*2 sta.z oscr+1 - // [521] phi (byte*) render_screen_original::cols#7 = (const byte*) COLS [phi:render_screen_original->render_screen_original::@1#3] -- pbuz1=pbuc1 + // [519] phi (byte*) render_screen_original::cols#7 = (const byte*) COLS [phi:render_screen_original->render_screen_original::@1#3] -- pbuz1=pbuc1 lda #COLS sta.z cols+1 - // [521] phi (byte*) render_screen_original::screen#8 = (byte*) render_screen_original::screen#9 [phi:render_screen_original->render_screen_original::@1#4] -- register_copy + // [519] phi (byte*) render_screen_original::screen#8 = (byte*) render_screen_original::screen#9 [phi:render_screen_original->render_screen_original::@1#4] -- register_copy jmp __b1 - // [521] phi from render_screen_original::@5 to render_screen_original::@1 [phi:render_screen_original::@5->render_screen_original::@1] + // [519] phi from render_screen_original::@5 to render_screen_original::@1 [phi:render_screen_original::@5->render_screen_original::@1] __b1_from___b5: - // [521] phi (byte) render_screen_original::y#6 = (byte) render_screen_original::y#1 [phi:render_screen_original::@5->render_screen_original::@1#0] -- register_copy - // [521] phi (byte*) render_screen_original::ocols#4 = (byte*) render_screen_original::ocols#1 [phi:render_screen_original::@5->render_screen_original::@1#1] -- register_copy - // [521] phi (byte*) render_screen_original::oscr#4 = (byte*) render_screen_original::oscr#1 [phi:render_screen_original::@5->render_screen_original::@1#2] -- register_copy - // [521] phi (byte*) render_screen_original::cols#7 = (byte*) render_screen_original::cols#3 [phi:render_screen_original::@5->render_screen_original::@1#3] -- register_copy - // [521] phi (byte*) render_screen_original::screen#8 = (byte*) render_screen_original::screen#10 [phi:render_screen_original::@5->render_screen_original::@1#4] -- register_copy + // [519] phi (byte) render_screen_original::y#6 = (byte) render_screen_original::y#1 [phi:render_screen_original::@5->render_screen_original::@1#0] -- register_copy + // [519] phi (byte*) render_screen_original::ocols#4 = (byte*) render_screen_original::ocols#1 [phi:render_screen_original::@5->render_screen_original::@1#1] -- register_copy + // [519] phi (byte*) render_screen_original::oscr#4 = (byte*) render_screen_original::oscr#1 [phi:render_screen_original::@5->render_screen_original::@1#2] -- register_copy + // [519] phi (byte*) render_screen_original::cols#7 = (byte*) render_screen_original::cols#3 [phi:render_screen_original::@5->render_screen_original::@1#3] -- register_copy + // [519] phi (byte*) render_screen_original::screen#8 = (byte*) render_screen_original::screen#10 [phi:render_screen_original::@5->render_screen_original::@1#4] -- register_copy jmp __b1 // render_screen_original::@1 __b1: - // [522] phi from render_screen_original::@1 to render_screen_original::@2 [phi:render_screen_original::@1->render_screen_original::@2] + // [520] phi from render_screen_original::@1 to render_screen_original::@2 [phi:render_screen_original::@1->render_screen_original::@2] __b2_from___b1: - // [522] phi (byte) render_screen_original::x#4 = (byte) 0 [phi:render_screen_original::@1->render_screen_original::@2#0] -- vbuxx=vbuc1 + // [520] phi (byte) render_screen_original::x#4 = (byte) 0 [phi:render_screen_original::@1->render_screen_original::@2#0] -- vbuxx=vbuc1 ldx #0 - // [522] phi (byte*) render_screen_original::cols#4 = (byte*) render_screen_original::cols#7 [phi:render_screen_original::@1->render_screen_original::@2#1] -- register_copy - // [522] phi (byte*) render_screen_original::screen#5 = (byte*) render_screen_original::screen#8 [phi:render_screen_original::@1->render_screen_original::@2#2] -- register_copy + // [520] phi (byte*) render_screen_original::cols#4 = (byte*) render_screen_original::cols#7 [phi:render_screen_original::@1->render_screen_original::@2#1] -- register_copy + // [520] phi (byte*) render_screen_original::screen#5 = (byte*) render_screen_original::screen#8 [phi:render_screen_original::@1->render_screen_original::@2#2] -- register_copy jmp __b2 - // [522] phi from render_screen_original::@2 to render_screen_original::@2 [phi:render_screen_original::@2->render_screen_original::@2] + // [520] phi from render_screen_original::@2 to render_screen_original::@2 [phi:render_screen_original::@2->render_screen_original::@2] __b2_from___b2: - // [522] phi (byte) render_screen_original::x#4 = (byte) render_screen_original::x#1 [phi:render_screen_original::@2->render_screen_original::@2#0] -- register_copy - // [522] phi (byte*) render_screen_original::cols#4 = (byte*) render_screen_original::cols#1 [phi:render_screen_original::@2->render_screen_original::@2#1] -- register_copy - // [522] phi (byte*) render_screen_original::screen#5 = (byte*) render_screen_original::screen#2 [phi:render_screen_original::@2->render_screen_original::@2#2] -- register_copy + // [520] phi (byte) render_screen_original::x#4 = (byte) render_screen_original::x#1 [phi:render_screen_original::@2->render_screen_original::@2#0] -- register_copy + // [520] phi (byte*) render_screen_original::cols#4 = (byte*) render_screen_original::cols#1 [phi:render_screen_original::@2->render_screen_original::@2#1] -- register_copy + // [520] phi (byte*) render_screen_original::screen#5 = (byte*) render_screen_original::screen#2 [phi:render_screen_original::@2->render_screen_original::@2#2] -- register_copy jmp __b2 // render_screen_original::@2 __b2: - // [523] *((byte*) render_screen_original::screen#5) ← (const byte) render_screen_original::SPACE -- _deref_pbuz1=vbuc1 + // [521] *((byte*) render_screen_original::screen#5) ← (const byte) render_screen_original::SPACE -- _deref_pbuz1=vbuc1 lda #SPACE ldy #0 sta (screen),y - // [524] (byte*) render_screen_original::screen#2 ← ++ (byte*) render_screen_original::screen#5 -- pbuz1=_inc_pbuz1 + // [522] (byte*) render_screen_original::screen#2 ← ++ (byte*) render_screen_original::screen#5 -- pbuz1=_inc_pbuz1 inc.z screen bne !+ inc.z screen+1 !: - // [525] *((byte*) render_screen_original::cols#4) ← (const byte) BLACK -- _deref_pbuz1=vbuc1 + // [523] *((byte*) render_screen_original::cols#4) ← (const byte) BLACK -- _deref_pbuz1=vbuc1 lda #BLACK ldy #0 sta (cols),y - // [526] (byte*) render_screen_original::cols#1 ← ++ (byte*) render_screen_original::cols#4 -- pbuz1=_inc_pbuz1 + // [524] (byte*) render_screen_original::cols#1 ← ++ (byte*) render_screen_original::cols#4 -- pbuz1=_inc_pbuz1 inc.z cols bne !+ inc.z cols+1 !: - // [527] (byte) render_screen_original::x#1 ← ++ (byte) render_screen_original::x#4 -- vbuxx=_inc_vbuxx + // [525] (byte) render_screen_original::x#1 ← ++ (byte) render_screen_original::x#4 -- vbuxx=_inc_vbuxx inx - // [528] if((byte) render_screen_original::x#1!=(byte) 4) goto render_screen_original::@2 -- vbuxx_neq_vbuc1_then_la1 + // [526] if((byte) render_screen_original::x#1!=(byte) 4) goto render_screen_original::@2 -- vbuxx_neq_vbuc1_then_la1 cpx #4 bne __b2_from___b2 - // [529] phi from render_screen_original::@2 render_screen_original::@3 to render_screen_original::@3 [phi:render_screen_original::@2/render_screen_original::@3->render_screen_original::@3] + // [527] phi from render_screen_original::@2 render_screen_original::@3 to render_screen_original::@3 [phi:render_screen_original::@2/render_screen_original::@3->render_screen_original::@3] __b3_from___b2: __b3_from___b3: - // [529] phi (byte) render_screen_original::x#5 = (byte) render_screen_original::x#1 [phi:render_screen_original::@2/render_screen_original::@3->render_screen_original::@3#0] -- register_copy - // [529] phi (byte*) render_screen_original::cols#5 = (byte*) render_screen_original::cols#1 [phi:render_screen_original::@2/render_screen_original::@3->render_screen_original::@3#1] -- register_copy - // [529] phi (byte*) render_screen_original::ocols#2 = (byte*) render_screen_original::ocols#4 [phi:render_screen_original::@2/render_screen_original::@3->render_screen_original::@3#2] -- register_copy - // [529] phi (byte*) render_screen_original::screen#6 = (byte*) render_screen_original::screen#2 [phi:render_screen_original::@2/render_screen_original::@3->render_screen_original::@3#3] -- register_copy - // [529] phi (byte*) render_screen_original::oscr#2 = (byte*) render_screen_original::oscr#4 [phi:render_screen_original::@2/render_screen_original::@3->render_screen_original::@3#4] -- register_copy + // [527] phi (byte) render_screen_original::x#5 = (byte) render_screen_original::x#1 [phi:render_screen_original::@2/render_screen_original::@3->render_screen_original::@3#0] -- register_copy + // [527] phi (byte*) render_screen_original::cols#5 = (byte*) render_screen_original::cols#1 [phi:render_screen_original::@2/render_screen_original::@3->render_screen_original::@3#1] -- register_copy + // [527] phi (byte*) render_screen_original::ocols#2 = (byte*) render_screen_original::ocols#4 [phi:render_screen_original::@2/render_screen_original::@3->render_screen_original::@3#2] -- register_copy + // [527] phi (byte*) render_screen_original::screen#6 = (byte*) render_screen_original::screen#2 [phi:render_screen_original::@2/render_screen_original::@3->render_screen_original::@3#3] -- register_copy + // [527] phi (byte*) render_screen_original::oscr#2 = (byte*) render_screen_original::oscr#4 [phi:render_screen_original::@2/render_screen_original::@3->render_screen_original::@3#4] -- register_copy jmp __b3 // render_screen_original::@3 __b3: - // [530] *((byte*) render_screen_original::screen#6) ← *((byte*) render_screen_original::oscr#2) -- _deref_pbuz1=_deref_pbuz2 + // [528] *((byte*) render_screen_original::screen#6) ← *((byte*) render_screen_original::oscr#2) -- _deref_pbuz1=_deref_pbuz2 ldy #0 lda (oscr),y ldy #0 sta (screen),y - // [531] (byte*) render_screen_original::screen#3 ← ++ (byte*) render_screen_original::screen#6 -- pbuz1=_inc_pbuz1 + // [529] (byte*) render_screen_original::screen#3 ← ++ (byte*) render_screen_original::screen#6 -- pbuz1=_inc_pbuz1 inc.z screen bne !+ inc.z screen+1 !: - // [532] (byte*) render_screen_original::oscr#1 ← ++ (byte*) render_screen_original::oscr#2 -- pbuz1=_inc_pbuz1 + // [530] (byte*) render_screen_original::oscr#1 ← ++ (byte*) render_screen_original::oscr#2 -- pbuz1=_inc_pbuz1 inc.z oscr bne !+ inc.z oscr+1 !: - // [533] *((byte*) render_screen_original::cols#5) ← *((byte*) render_screen_original::ocols#2) -- _deref_pbuz1=_deref_pbuz2 + // [531] *((byte*) render_screen_original::cols#5) ← *((byte*) render_screen_original::ocols#2) -- _deref_pbuz1=_deref_pbuz2 ldy #0 lda (ocols),y ldy #0 sta (cols),y - // [534] (byte*) render_screen_original::cols#2 ← ++ (byte*) render_screen_original::cols#5 -- pbuz1=_inc_pbuz1 + // [532] (byte*) render_screen_original::cols#2 ← ++ (byte*) render_screen_original::cols#5 -- pbuz1=_inc_pbuz1 inc.z cols bne !+ inc.z cols+1 !: - // [535] (byte*) render_screen_original::ocols#1 ← ++ (byte*) render_screen_original::ocols#2 -- pbuz1=_inc_pbuz1 + // [533] (byte*) render_screen_original::ocols#1 ← ++ (byte*) render_screen_original::ocols#2 -- pbuz1=_inc_pbuz1 inc.z ocols bne !+ inc.z ocols+1 !: - // [536] (byte) render_screen_original::x#2 ← ++ (byte) render_screen_original::x#5 -- vbuxx=_inc_vbuxx + // [534] (byte) render_screen_original::x#2 ← ++ (byte) render_screen_original::x#5 -- vbuxx=_inc_vbuxx inx - // [537] if((byte) render_screen_original::x#2!=(byte) $24) goto render_screen_original::@3 -- vbuxx_neq_vbuc1_then_la1 + // [535] if((byte) render_screen_original::x#2!=(byte) $24) goto render_screen_original::@3 -- vbuxx_neq_vbuc1_then_la1 cpx #$24 bne __b3_from___b3 - // [538] phi from render_screen_original::@3 render_screen_original::@4 to render_screen_original::@4 [phi:render_screen_original::@3/render_screen_original::@4->render_screen_original::@4] + // [536] phi from render_screen_original::@3 render_screen_original::@4 to render_screen_original::@4 [phi:render_screen_original::@3/render_screen_original::@4->render_screen_original::@4] __b4_from___b3: __b4_from___b4: - // [538] phi (byte) render_screen_original::x#6 = (byte) render_screen_original::x#2 [phi:render_screen_original::@3/render_screen_original::@4->render_screen_original::@4#0] -- register_copy - // [538] phi (byte*) render_screen_original::cols#6 = (byte*) render_screen_original::cols#2 [phi:render_screen_original::@3/render_screen_original::@4->render_screen_original::@4#1] -- register_copy - // [538] phi (byte*) render_screen_original::screen#7 = (byte*) render_screen_original::screen#3 [phi:render_screen_original::@3/render_screen_original::@4->render_screen_original::@4#2] -- register_copy + // [536] phi (byte) render_screen_original::x#6 = (byte) render_screen_original::x#2 [phi:render_screen_original::@3/render_screen_original::@4->render_screen_original::@4#0] -- register_copy + // [536] phi (byte*) render_screen_original::cols#6 = (byte*) render_screen_original::cols#2 [phi:render_screen_original::@3/render_screen_original::@4->render_screen_original::@4#1] -- register_copy + // [536] phi (byte*) render_screen_original::screen#7 = (byte*) render_screen_original::screen#3 [phi:render_screen_original::@3/render_screen_original::@4->render_screen_original::@4#2] -- register_copy jmp __b4 // render_screen_original::@4 __b4: - // [539] *((byte*) render_screen_original::screen#7) ← (const byte) render_screen_original::SPACE -- _deref_pbuz1=vbuc1 + // [537] *((byte*) render_screen_original::screen#7) ← (const byte) render_screen_original::SPACE -- _deref_pbuz1=vbuc1 lda #SPACE ldy #0 sta (screen),y - // [540] (byte*) render_screen_original::screen#10 ← ++ (byte*) render_screen_original::screen#7 -- pbuz1=_inc_pbuz1 + // [538] (byte*) render_screen_original::screen#10 ← ++ (byte*) render_screen_original::screen#7 -- pbuz1=_inc_pbuz1 inc.z screen bne !+ inc.z screen+1 !: - // [541] *((byte*) render_screen_original::cols#6) ← (const byte) BLACK -- _deref_pbuz1=vbuc1 + // [539] *((byte*) render_screen_original::cols#6) ← (const byte) BLACK -- _deref_pbuz1=vbuc1 lda #BLACK ldy #0 sta (cols),y - // [542] (byte*) render_screen_original::cols#3 ← ++ (byte*) render_screen_original::cols#6 -- pbuz1=_inc_pbuz1 + // [540] (byte*) render_screen_original::cols#3 ← ++ (byte*) render_screen_original::cols#6 -- pbuz1=_inc_pbuz1 inc.z cols bne !+ inc.z cols+1 !: - // [543] (byte) render_screen_original::x#3 ← ++ (byte) render_screen_original::x#6 -- vbuxx=_inc_vbuxx + // [541] (byte) render_screen_original::x#3 ← ++ (byte) render_screen_original::x#6 -- vbuxx=_inc_vbuxx inx - // [544] if((byte) render_screen_original::x#3!=(byte) $28) goto render_screen_original::@4 -- vbuxx_neq_vbuc1_then_la1 + // [542] if((byte) render_screen_original::x#3!=(byte) $28) goto render_screen_original::@4 -- vbuxx_neq_vbuc1_then_la1 cpx #$28 bne __b4_from___b4 jmp __b5 // render_screen_original::@5 __b5: - // [545] (byte) render_screen_original::y#1 ← ++ (byte) render_screen_original::y#6 -- vbuz1=_inc_vbuz1 + // [543] (byte) render_screen_original::y#1 ← ++ (byte) render_screen_original::y#6 -- vbuz1=_inc_vbuz1 inc.z y - // [546] if((byte) render_screen_original::y#1!=(byte) $19) goto render_screen_original::@1 -- vbuz1_neq_vbuc1_then_la1 + // [544] if((byte) render_screen_original::y#1!=(byte) $19) goto render_screen_original::@1 -- vbuz1_neq_vbuc1_then_la1 lda #$19 cmp.z y bne __b1_from___b5 jmp __breturn // render_screen_original::@return __breturn: - // [547] return + // [545] return rts } // sid_rnd_init // Initialize SID voice 3 for random number generation sid_rnd_init: { - // [548] *((const word*) SID_VOICE3_FREQ) ← (word) $ffff -- _deref_pwuc1=vwuc2 + // [546] *((const word*) SID_VOICE3_FREQ) ← (word) $ffff -- _deref_pwuc1=vwuc2 lda #<$ffff sta SID_VOICE3_FREQ lda #>$ffff sta SID_VOICE3_FREQ+1 - // [549] *((const byte*) SID_VOICE3_CONTROL) ← (const byte) SID_CONTROL_NOISE -- _deref_pbuc1=vbuc2 + // [547] *((const byte*) SID_VOICE3_CONTROL) ← (const byte) SID_CONTROL_NOISE -- _deref_pbuc1=vbuc2 lda #SID_CONTROL_NOISE sta SID_VOICE3_CONTROL jmp __breturn // sid_rnd_init::@return __breturn: - // [550] return + // [548] return rts } // sprites_irq @@ -20092,102 +20064,102 @@ sprites_irq: { //(*BGCOL)++; // Clear decimal flag (because it is used by the score algorithm) cld - // [552] (byte) sprites_irq::ypos#0 ← (byte) irq_sprite_ypos -- vbuaa=vbuz1 + // [550] (byte) sprites_irq::ypos#0 ← (byte) irq_sprite_ypos -- vbuaa=vbuz1 // Place the sprites lda.z irq_sprite_ypos - // [553] *((const byte*) SPRITES_YPOS) ← (byte) sprites_irq::ypos#0 -- _deref_pbuc1=vbuaa + // [551] *((const byte*) SPRITES_YPOS) ← (byte) sprites_irq::ypos#0 -- _deref_pbuc1=vbuaa sta SPRITES_YPOS - // [554] *((const byte*) SPRITES_YPOS+(byte) 2) ← (byte) sprites_irq::ypos#0 -- _deref_pbuc1=vbuaa + // [552] *((const byte*) SPRITES_YPOS+(byte) 2) ← (byte) sprites_irq::ypos#0 -- _deref_pbuc1=vbuaa sta SPRITES_YPOS+2 - // [555] *((const byte*) SPRITES_YPOS+(byte) 4) ← (byte) sprites_irq::ypos#0 -- _deref_pbuc1=vbuaa + // [553] *((const byte*) SPRITES_YPOS+(byte) 4) ← (byte) sprites_irq::ypos#0 -- _deref_pbuc1=vbuaa sta SPRITES_YPOS+4 - // [556] *((const byte*) SPRITES_YPOS+(byte) 6) ← (byte) sprites_irq::ypos#0 -- _deref_pbuc1=vbuaa + // [554] *((const byte*) SPRITES_YPOS+(byte) 6) ← (byte) sprites_irq::ypos#0 -- _deref_pbuc1=vbuaa sta SPRITES_YPOS+6 - // [557] (byte~) sprites_irq::$0 ← (byte) irq_raster_next + (byte) 1 -- vbuxx=vbuz1_plus_1 + // [555] (byte~) sprites_irq::$0 ← (byte) irq_raster_next + (byte) 1 -- vbuxx=vbuz1_plus_1 ldx.z irq_raster_next inx - // [558] (byte) sprites_irq::raster_sprite_gfx_modify ← (byte~) sprites_irq::$0 -- vbuz1=vbuxx + // [556] (byte) sprites_irq::raster_sprite_gfx_modify ← (byte~) sprites_irq::$0 -- vbuz1=vbuxx // Wait for the y-position before changing sprite pointers stx.z raster_sprite_gfx_modify jmp __b8 // sprites_irq::@8 __b8: - // [559] if(*((const byte*) RASTER)<(byte) sprites_irq::raster_sprite_gfx_modify) goto sprites_irq::@8 -- _deref_pbuc1_lt_vbuz1_then_la1 + // [557] if(*((const byte*) RASTER)<(byte) sprites_irq::raster_sprite_gfx_modify) goto sprites_irq::@8 -- _deref_pbuc1_lt_vbuz1_then_la1 lda RASTER cmp.z raster_sprite_gfx_modify bcc __b8 jmp __b9 // sprites_irq::@9 __b9: - // [560] (byte) sprites_irq::ptr#0 ← (byte) irq_sprite_ptr -- vbuxx=vbuz1 + // [558] (byte) sprites_irq::ptr#0 ← (byte) irq_sprite_ptr -- vbuxx=vbuz1 ldx.z irq_sprite_ptr - // [561] if((byte) render_screen_showing==(byte) 0) goto sprites_irq::@1 -- vbuz1_eq_0_then_la1 + // [559] if((byte) render_screen_showing==(byte) 0) goto sprites_irq::@1 -- vbuz1_eq_0_then_la1 lda.z render_screen_showing cmp #0 beq __b1 jmp __b10 // sprites_irq::@10 __b10: - // [562] *((const byte*) PLAYFIELD_SPRITE_PTRS_2) ← (byte) sprites_irq::ptr#0 -- _deref_pbuc1=vbuxx + // [560] *((const byte*) PLAYFIELD_SPRITE_PTRS_2) ← (byte) sprites_irq::ptr#0 -- _deref_pbuc1=vbuxx stx PLAYFIELD_SPRITE_PTRS_2 - // [563] (byte) sprites_irq::ptr#3 ← ++ (byte) sprites_irq::ptr#0 -- vbuaa=_inc_vbuxx + // [561] (byte) sprites_irq::ptr#3 ← ++ (byte) sprites_irq::ptr#0 -- vbuaa=_inc_vbuxx inx txa - // [564] *((const byte*) PLAYFIELD_SPRITE_PTRS_2+(byte) 1) ← (byte) sprites_irq::ptr#3 -- _deref_pbuc1=vbuaa + // [562] *((const byte*) PLAYFIELD_SPRITE_PTRS_2+(byte) 1) ← (byte) sprites_irq::ptr#3 -- _deref_pbuc1=vbuaa sta PLAYFIELD_SPRITE_PTRS_2+1 - // [565] *((const byte*) PLAYFIELD_SPRITE_PTRS_2+(byte) 2) ← (byte) sprites_irq::ptr#3 -- _deref_pbuc1=vbuaa + // [563] *((const byte*) PLAYFIELD_SPRITE_PTRS_2+(byte) 2) ← (byte) sprites_irq::ptr#3 -- _deref_pbuc1=vbuaa sta PLAYFIELD_SPRITE_PTRS_2+2 - // [566] (byte) sprites_irq::ptr#4 ← ++ (byte) sprites_irq::ptr#3 -- vbuaa=_inc_vbuaa + // [564] (byte) sprites_irq::ptr#4 ← ++ (byte) sprites_irq::ptr#3 -- vbuaa=_inc_vbuaa clc adc #1 - // [567] *((const byte*) PLAYFIELD_SPRITE_PTRS_2+(byte) 3) ← (byte) sprites_irq::ptr#4 -- _deref_pbuc1=vbuaa + // [565] *((const byte*) PLAYFIELD_SPRITE_PTRS_2+(byte) 3) ← (byte) sprites_irq::ptr#4 -- _deref_pbuc1=vbuaa sta PLAYFIELD_SPRITE_PTRS_2+3 jmp __b2 // sprites_irq::@2 __b2: - // [568] (byte) irq_cnt ← ++ (byte) irq_cnt -- vbuz1=_inc_vbuz1 + // [566] (byte) irq_cnt ← ++ (byte) irq_cnt -- vbuz1=_inc_vbuz1 inc.z irq_cnt - // [569] if((byte) irq_cnt==(byte) 9) goto sprites_irq::@3 -- vbuz1_eq_vbuc1_then_la1 + // [567] if((byte) irq_cnt==(byte) 9) goto sprites_irq::@3 -- vbuz1_eq_vbuc1_then_la1 lda #9 cmp.z irq_cnt beq __b3 jmp __b6 // sprites_irq::@6 __b6: - // [570] if((byte) irq_cnt==(byte) $a) goto sprites_irq::@4 -- vbuz1_eq_vbuc1_then_la1 + // [568] if((byte) irq_cnt==(byte) $a) goto sprites_irq::@4 -- vbuz1_eq_vbuc1_then_la1 lda #$a cmp.z irq_cnt beq __b4 jmp __b7 // sprites_irq::@7 __b7: - // [571] (byte) irq_raster_next ← (byte) irq_raster_next + (byte) $14 -- vbuz1=vbuz1_plus_vbuc1 + // [569] (byte) irq_raster_next ← (byte) irq_raster_next + (byte) $14 -- vbuz1=vbuz1_plus_vbuc1 lax.z irq_raster_next axs #-[$14] stx.z irq_raster_next - // [572] (byte) irq_sprite_ypos ← (byte) irq_sprite_ypos + (byte) $15 -- vbuz1=vbuz1_plus_vbuc1 + // [570] (byte) irq_sprite_ypos ← (byte) irq_sprite_ypos + (byte) $15 -- vbuz1=vbuz1_plus_vbuc1 lax.z irq_sprite_ypos axs #-[$15] stx.z irq_sprite_ypos - // [573] (byte) irq_sprite_ptr ← (byte) irq_sprite_ptr + (byte) 3 -- vbuz1=vbuz1_plus_vbuc1 + // [571] (byte) irq_sprite_ptr ← (byte) irq_sprite_ptr + (byte) 3 -- vbuz1=vbuz1_plus_vbuc1 lax.z irq_sprite_ptr axs #-[3] stx.z irq_sprite_ptr jmp __b5 // sprites_irq::@5 __b5: - // [574] *((const byte*) RASTER) ← (byte) irq_raster_next -- _deref_pbuc1=vbuz1 + // [572] *((const byte*) RASTER) ← (byte) irq_raster_next -- _deref_pbuc1=vbuz1 // Setup next interrupt lda.z irq_raster_next sta RASTER - // [575] *((const byte*) IRQ_STATUS) ← (const byte) IRQ_RASTER -- _deref_pbuc1=vbuc2 + // [573] *((const byte*) IRQ_STATUS) ← (const byte) IRQ_RASTER -- _deref_pbuc1=vbuc2 // Acknowledge the IRQ and setup the next one lda #IRQ_RASTER sta IRQ_STATUS jmp __breturn // sprites_irq::@return __breturn: - // [576] return - exit interrupt(HARDWARE_CLOBBER) + // [574] return - exit interrupt(HARDWARE_CLOBBER) rega: lda #00 regx: @@ -20195,31 +20167,31 @@ sprites_irq: { rti // sprites_irq::@4 __b4: - // [577] (byte) irq_cnt ← (byte) 0 -- vbuz1=vbuc1 + // [575] (byte) irq_cnt ← (byte) 0 -- vbuz1=vbuc1 lda #0 sta.z irq_cnt - // [578] (byte) irq_raster_next ← (const byte) IRQ_RASTER_FIRST -- vbuz1=vbuc1 + // [576] (byte) irq_raster_next ← (const byte) IRQ_RASTER_FIRST -- vbuz1=vbuc1 lda #IRQ_RASTER_FIRST sta.z irq_raster_next - // [579] (byte) irq_sprite_ypos ← (byte) irq_sprite_ypos + (byte) $15 -- vbuz1=vbuz1_plus_vbuc1 + // [577] (byte) irq_sprite_ypos ← (byte) irq_sprite_ypos + (byte) $15 -- vbuz1=vbuz1_plus_vbuc1 lax.z irq_sprite_ypos axs #-[$15] stx.z irq_sprite_ypos - // [580] (byte) irq_sprite_ptr ← (byte) irq_sprite_ptr + (byte) 3 -- vbuz1=vbuz1_plus_vbuc1 + // [578] (byte) irq_sprite_ptr ← (byte) irq_sprite_ptr + (byte) 3 -- vbuz1=vbuz1_plus_vbuc1 lax.z irq_sprite_ptr axs #-[3] stx.z irq_sprite_ptr jmp __b5 // sprites_irq::@3 __b3: - // [581] (byte) irq_raster_next ← (byte) irq_raster_next + (byte) $15 -- vbuz1=vbuz1_plus_vbuc1 + // [579] (byte) irq_raster_next ← (byte) irq_raster_next + (byte) $15 -- vbuz1=vbuz1_plus_vbuc1 lax.z irq_raster_next axs #-[$15] stx.z irq_raster_next - // [582] (byte) irq_sprite_ypos ← (const byte) SPRITES_FIRST_YPOS -- vbuz1=vbuc1 + // [580] (byte) irq_sprite_ypos ← (const byte) SPRITES_FIRST_YPOS -- vbuz1=vbuc1 lda #SPRITES_FIRST_YPOS sta.z irq_sprite_ypos - // [583] phi from sprites_irq::@3 to sprites_irq::toSpritePtr2 [phi:sprites_irq::@3->sprites_irq::toSpritePtr2] + // [581] phi from sprites_irq::@3 to sprites_irq::toSpritePtr2 [phi:sprites_irq::@3->sprites_irq::toSpritePtr2] toSpritePtr2_from___b3: jmp toSpritePtr2 // sprites_irq::toSpritePtr2 @@ -20227,24 +20199,24 @@ sprites_irq: { jmp __b11 // sprites_irq::@11 __b11: - // [584] (byte) irq_sprite_ptr ← (const byte) sprites_irq::toSpritePtr2_return#0 -- vbuz1=vbuc1 + // [582] (byte) irq_sprite_ptr ← (const byte) sprites_irq::toSpritePtr2_return#0 -- vbuz1=vbuc1 lda #toSpritePtr2_return sta.z irq_sprite_ptr jmp __b5 // sprites_irq::@1 __b1: - // [585] *((const byte*) PLAYFIELD_SPRITE_PTRS_1) ← (byte) sprites_irq::ptr#0 -- _deref_pbuc1=vbuxx + // [583] *((const byte*) PLAYFIELD_SPRITE_PTRS_1) ← (byte) sprites_irq::ptr#0 -- _deref_pbuc1=vbuxx stx PLAYFIELD_SPRITE_PTRS_1 - // [586] (byte) sprites_irq::ptr#1 ← ++ (byte) sprites_irq::ptr#0 -- vbuxx=_inc_vbuxx + // [584] (byte) sprites_irq::ptr#1 ← ++ (byte) sprites_irq::ptr#0 -- vbuxx=_inc_vbuxx inx - // [587] *((const byte*) PLAYFIELD_SPRITE_PTRS_1+(byte) 1) ← (byte) sprites_irq::ptr#1 -- _deref_pbuc1=vbuxx + // [585] *((const byte*) PLAYFIELD_SPRITE_PTRS_1+(byte) 1) ← (byte) sprites_irq::ptr#1 -- _deref_pbuc1=vbuxx stx PLAYFIELD_SPRITE_PTRS_1+1 - // [588] *((const byte*) PLAYFIELD_SPRITE_PTRS_1+(byte) 2) ← (byte) sprites_irq::ptr#1 -- _deref_pbuc1=vbuxx + // [586] *((const byte*) PLAYFIELD_SPRITE_PTRS_1+(byte) 2) ← (byte) sprites_irq::ptr#1 -- _deref_pbuc1=vbuxx stx PLAYFIELD_SPRITE_PTRS_1+2 - // [589] (byte) sprites_irq::ptr#2 ← ++ (byte) sprites_irq::ptr#1 -- vbuaa=_inc_vbuxx + // [587] (byte) sprites_irq::ptr#2 ← ++ (byte) sprites_irq::ptr#1 -- vbuaa=_inc_vbuxx inx txa - // [590] *((const byte*) PLAYFIELD_SPRITE_PTRS_1+(byte) 3) ← (byte) sprites_irq::ptr#2 -- _deref_pbuc1=vbuaa + // [588] *((const byte*) PLAYFIELD_SPRITE_PTRS_1+(byte) 3) ← (byte) sprites_irq::ptr#2 -- _deref_pbuc1=vbuaa sta PLAYFIELD_SPRITE_PTRS_1+3 jmp __b2 } @@ -20290,6 +20262,20 @@ sprites_irq: { // The initial X/Y for each piece PIECES_START_X: .byte 4, 4, 4, 4, 4, 4, 4 PIECES_START_Y: .byte 1, 1, 1, 1, 1, 0, 1 +PLAYFIELD_SCREEN_ORIGINAL: +// Load chars for the screen + .var screen = LoadBinary("playfield-screen.iscr") + // Load extended colors for the screen + .var extended = LoadBinary("playfield-extended.col") + // screen.get(i)+1 because the charset is loaded into PLAYFIELD_CHARSET+8 + // extended.get(i)-1 because the extended colors are 1-based (1/2/3/4) + // <<6 to move extended colors to the upper 2 bits + .fill screen.getSize(), ( (screen.get(i)+1) | (extended.get(i)-1)<<6 ) + + // Original Color Data +PLAYFIELD_COLORS_ORIGINAL: +.import binary "playfield-screen.col" + // The color #1 to use for the pieces for each level PIECES_COLORS_1: .byte BLUE, GREEN, PURPLE, BLUE, RED, LIGHT_GREEN, RED, BLUE, LIGHT_BLUE, RED, BLUE, GREEN, PURPLE, BLUE, RED, LIGHT_GREEN, RED, BLUE, LIGHT_BLUE, RED, BLUE, GREEN, PURPLE, BLUE, RED, LIGHT_GREEN, RED, BLUE, LIGHT_BLUE, RED // The color #2 to use for the pieces for each level @@ -20317,19 +20303,6 @@ sprites_irq: { .fill 8,$00 // Place a filled char at the start of the charset .import binary "playfield-screen.imap" -.pc = PLAYFIELD_SCREEN_ORIGINAL "PLAYFIELD_SCREEN_ORIGINAL" - // Load chars for the screen - .var screen = LoadBinary("playfield-screen.iscr") - // Load extended colors for the screen - .var extended = LoadBinary("playfield-extended.col") - // screen.get(i)+1 because the charset is loaded into PLAYFIELD_CHARSET+8 - // extended.get(i)-1 because the extended colors are 1-based (1/2/3/4) - // <<6 to move extended colors to the upper 2 bits - .fill screen.getSize(), ( (screen.get(i)+1) | (extended.get(i)-1)<<6 ) - -.pc = PLAYFIELD_COLORS_ORIGINAL "PLAYFIELD_COLORS_ORIGINAL" - .import binary "playfield-screen.col" - .pc = PLAYFIELD_SPRITES "PLAYFIELD_SPRITES" .var sprites = LoadPicture("playfield-sprites.png", List().add($010101, $000000)) // Put the sprites into memory @@ -21051,12 +21024,21 @@ FINAL SYMBOL TABLE (const byte*) PIECE_Z[(number) $40] = { (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 1, (byte) 1, (byte) 0, (byte) 0, (byte) 0, (byte) 1, (byte) 1, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 1, (byte) 0, (byte) 0, (byte) 1, (byte) 1, (byte) 0, (byte) 0, (byte) 1, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 1, (byte) 1, (byte) 0, (byte) 0, (byte) 0, (byte) 1, (byte) 1, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 1, (byte) 0, (byte) 0, (byte) 1, (byte) 1, (byte) 0, (byte) 0, (byte) 1, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0 } (const byte) PINK = (byte) $a (const byte*) PLAYFIELD_CHARSET = (byte*) 10240 -(const byte*) PLAYFIELD_COLORS_ORIGINAL = (byte*) 7168 +(const byte*) PLAYFIELD_COLORS_ORIGINAL[] = kickasm {{ .import binary "playfield-screen.col" + }} (const byte) PLAYFIELD_COLS = (byte) $a (const byte) PLAYFIELD_LINES = (byte) $16 (const byte*) PLAYFIELD_SCREEN_1 = (byte*) 1024 (const byte*) PLAYFIELD_SCREEN_2 = (byte*) 11264 -(const byte*) PLAYFIELD_SCREEN_ORIGINAL = (byte*) 12288 +(const byte*) PLAYFIELD_SCREEN_ORIGINAL[] = kickasm {{ // Load chars for the screen + .var screen = LoadBinary("playfield-screen.iscr") + // Load extended colors for the screen + .var extended = LoadBinary("playfield-extended.col") + // screen.get(i)+1 because the charset is loaded into PLAYFIELD_CHARSET+8 + // extended.get(i)-1 because the extended colors are 1-based (1/2/3/4) + // <<6 to move extended colors to the upper 2 bits + .fill screen.getSize(), ( (screen.get(i)+1) | (extended.get(i)-1)<<6 ) + }} (const byte*) PLAYFIELD_SPRITES = (byte*) 8192 (const byte*) PLAYFIELD_SPRITE_PTRS_1 = (const byte*) PLAYFIELD_SCREEN_1+(const word) SPRITE_PTRS (const byte*) PLAYFIELD_SPRITE_PTRS_2 = (const byte*) PLAYFIELD_SCREEN_2+(const word) SPRITE_PTRS @@ -21842,7 +21824,7 @@ FINAL SYMBOL TABLE (const byte) render_show::toD0182_return#0 toD0182_return = >(word)(const byte*) PLAYFIELD_SCREEN_2&(word) $3fff*(byte) 4|>(word)(const byte*) PLAYFIELD_CHARSET/(byte) 4&(byte) $f (byte*) render_show::toD0182_screen (const dword*) score_add_bcd[(number) 5] = { fill( 5, 0) } -(dword) score_bcd loadstore zp[4]:23 0.04316546762589928 +(dword) score_bcd loadstore zp[4]:23 0.043795620437956206 (const byte**) screen_lines_1[(const byte) PLAYFIELD_LINES] = { fill( PLAYFIELD_LINES, 0) } (const byte**) screen_lines_2[(const byte) PLAYFIELD_LINES] = { fill( PLAYFIELD_LINES, 0) } (void()) sid_rnd_init() @@ -22037,7 +22019,7 @@ reg byte a [ sprites_irq::ptr#2 ] FINAL ASSEMBLER -Score: 3353855 +Score: 3348735 // File Comments // Tetris Game for the Commodore 64 @@ -22134,10 +22116,6 @@ Score: 3353855 .label PLAYFIELD_SPRITE_PTRS_1 = PLAYFIELD_SCREEN_1+SPRITE_PTRS // Screen Sprite pointers on screen 2 .label PLAYFIELD_SPRITE_PTRS_2 = PLAYFIELD_SCREEN_2+SPRITE_PTRS - // Address of the original playscreen chars - .label PLAYFIELD_SCREEN_ORIGINAL = $3000 - // Address of the original playscreen colors - .label PLAYFIELD_COLORS_ORIGINAL = $1c00 // Address of the sprites covering the playfield .label PLAYFIELD_SPRITES = $2000 // Address of the charset @@ -22230,305 +22208,302 @@ __b1: sta.z score_bcd+3 // kickasm // kickasm(location (const byte*) PLAYFIELD_CHARSET) {{ .fill 8,$00 // Place a filled char at the start of the charset .import binary "playfield-screen.imap" }} - // kickasm(location (const byte*) PLAYFIELD_SCREEN_ORIGINAL) {{ // Load chars for the screen .var screen = LoadBinary("playfield-screen.iscr") // Load extended colors for the screen .var extended = LoadBinary("playfield-extended.col") // screen.get(i)+1 because the charset is loaded into PLAYFIELD_CHARSET+8 // extended.get(i)-1 because the extended colors are 1-based (1/2/3/4) // <<6 to move extended colors to the upper 2 bits .fill screen.getSize(), ( (screen.get(i)+1) | (extended.get(i)-1)<<6 ) }} - // kickasm(location (const byte*) PLAYFIELD_COLORS_ORIGINAL) {{ .import binary "playfield-screen.col" }} -// Original Color Data // @2 // kickasm(location (const byte*) PLAYFIELD_SPRITES) {{ .var sprites = LoadPicture("playfield-sprites.png", List().add($010101, $000000)) // Put the sprites into memory .for(var sy=0;sy<10;sy++) { .var sprite_gfx_y = sy*20 .for(var sx=0;sx<3;sx++) { .for (var y=0;y<21; y++) { .var gfx_y = sprite_gfx_y + mod(2100+y-sprite_gfx_y,21) .for (var c=0; c<3; c++) { .byte sprites.getSinglecolorByte(sx*3+c,gfx_y) } } .byte 0 } } }} // @3 // irq_raster_next = IRQ_RASTER_FIRST - // [7] (byte) irq_raster_next ← (const byte) IRQ_RASTER_FIRST -- vbuz1=vbuc1 + // [5] (byte) irq_raster_next ← (const byte) IRQ_RASTER_FIRST -- vbuz1=vbuc1 // The raster line of the next IRQ lda #IRQ_RASTER_FIRST sta.z irq_raster_next // irq_sprite_ypos = SPRITES_FIRST_YPOS + 21 - // [8] (byte) irq_sprite_ypos ← (const byte) SPRITES_FIRST_YPOS+(byte) $15 -- vbuz1=vbuc1 + // [6] (byte) irq_sprite_ypos ← (const byte) SPRITES_FIRST_YPOS+(byte) $15 -- vbuz1=vbuc1 // Y-pos of the sprites on the next IRQ lda #SPRITES_FIRST_YPOS+$15 sta.z irq_sprite_ypos - // [9] phi from @3 to toSpritePtr1 [phi:@3->toSpritePtr1] + // [7] phi from @3 to toSpritePtr1 [phi:@3->toSpritePtr1] // toSpritePtr1 // @5 // irq_sprite_ptr = toSpritePtr(PLAYFIELD_SPRITES) + 3 - // [10] (byte) irq_sprite_ptr ← (const byte) toSpritePtr1_return#0+(byte) 3 -- vbuz1=vbuc1 + // [8] (byte) irq_sprite_ptr ← (const byte) toSpritePtr1_return#0+(byte) 3 -- vbuz1=vbuc1 // Index of the sprites to show on the next IRQ lda #toSpritePtr1_return+3 sta.z irq_sprite_ptr // irq_cnt = 0 - // [11] (byte) irq_cnt ← (byte) 0 -- vbuz1=vbuc1 + // [9] (byte) irq_cnt ← (byte) 0 -- vbuz1=vbuc1 // Counting the 10 IRQs lda #0 sta.z irq_cnt - // [12] phi from @5 to @4 [phi:@5->@4] + // [10] phi from @5 to @4 [phi:@5->@4] // @4 - // [13] call main - // [15] phi from @4 to main [phi:@4->main] + // [11] call main + // [13] phi from @4 to main [phi:@4->main] jsr main rts - // [14] phi from @4 to @end [phi:@4->@end] + // [12] phi from @4 to @end [phi:@4->@end] // @end // main main: { // sid_rnd_init() - // [16] call sid_rnd_init + // [14] call sid_rnd_init jsr sid_rnd_init // main::@8 // asm // asm { sei } sei // render_init() - // [18] call render_init - // [498] phi from main::@8 to render_init [phi:main::@8->render_init] + // [16] call render_init + // [496] phi from main::@8 to render_init [phi:main::@8->render_init] jsr render_init - // [19] phi from main::@8 to main::@9 [phi:main::@8->main::@9] + // [17] phi from main::@8 to main::@9 [phi:main::@8->main::@9] // main::@9 // sprites_init() - // [20] call sprites_init + // [18] call sprites_init jsr sprites_init - // [21] phi from main::@9 to main::@10 [phi:main::@9->main::@10] + // [19] phi from main::@9 to main::@10 [phi:main::@9->main::@10] // main::@10 // sprites_irq_init() - // [22] call sprites_irq_init + // [20] call sprites_irq_init jsr sprites_irq_init - // [23] phi from main::@10 to main::@11 [phi:main::@10->main::@11] + // [21] phi from main::@10 to main::@11 [phi:main::@10->main::@11] // main::@11 // play_init() - // [24] call play_init - // [457] phi from main::@11 to play_init [phi:main::@11->play_init] + // [22] call play_init + // [455] phi from main::@11 to play_init [phi:main::@11->play_init] jsr play_init - // [25] phi from main::@11 to main::@12 [phi:main::@11->main::@12] + // [23] phi from main::@11 to main::@12 [phi:main::@11->main::@12] // main::@12 // play_spawn_current() - // [26] call play_spawn_current - // [287] phi from main::@12 to play_spawn_current [phi:main::@12->play_spawn_current] - // [287] phi (byte) game_over#65 = (byte) 0 [phi:main::@12->play_spawn_current#0] -- vbuz1=vbuc1 + // [24] call play_spawn_current + // [285] phi from main::@12 to play_spawn_current [phi:main::@12->play_spawn_current] + // [285] phi (byte) game_over#65 = (byte) 0 [phi:main::@12->play_spawn_current#0] -- vbuz1=vbuc1 lda #0 sta.z game_over - // [287] phi (byte) next_piece_idx#17 = (byte) 0 [phi:main::@12->play_spawn_current#1] -- vbuz1=vbuc1 + // [285] phi (byte) next_piece_idx#17 = (byte) 0 [phi:main::@12->play_spawn_current#1] -- vbuz1=vbuc1 sta.z next_piece_idx jsr play_spawn_current - // [27] phi from main::@12 to main::@13 [phi:main::@12->main::@13] + // [25] phi from main::@12 to main::@13 [phi:main::@12->main::@13] // main::@13 // play_spawn_current() - // [28] call play_spawn_current - // [287] phi from main::@13 to play_spawn_current [phi:main::@13->play_spawn_current] - // [287] phi (byte) game_over#65 = (byte) game_over#52 [phi:main::@13->play_spawn_current#0] -- register_copy - // [287] phi (byte) next_piece_idx#17 = (byte) play_spawn_current::piece_idx#2 [phi:main::@13->play_spawn_current#1] -- register_copy + // [26] call play_spawn_current + // [285] phi from main::@13 to play_spawn_current [phi:main::@13->play_spawn_current] + // [285] phi (byte) game_over#65 = (byte) game_over#52 [phi:main::@13->play_spawn_current#0] -- register_copy + // [285] phi (byte) next_piece_idx#17 = (byte) play_spawn_current::piece_idx#2 [phi:main::@13->play_spawn_current#1] -- register_copy jsr play_spawn_current - // [29] phi from main::@13 to main::@14 [phi:main::@13->main::@14] + // [27] phi from main::@13 to main::@14 [phi:main::@13->main::@14] // main::@14 // render_playfield() - // [30] call render_playfield - // [152] phi from main::@14 to render_playfield [phi:main::@14->render_playfield] - // [152] phi (byte) render_screen_render#22 = (byte) $20 [phi:main::@14->render_playfield#0] -- vbuxx=vbuc1 + // [28] call render_playfield + // [150] phi from main::@14 to render_playfield [phi:main::@14->render_playfield] + // [150] phi (byte) render_screen_render#22 = (byte) $20 [phi:main::@14->render_playfield#0] -- vbuxx=vbuc1 ldx #$20 jsr render_playfield // main::@15 - // [31] (byte) current_ypos#97 ← (byte) current_ypos#6 -- vbuxx=vbuz1 + // [29] (byte) current_ypos#97 ← (byte) current_ypos#6 -- vbuxx=vbuz1 ldx.z current_ypos - // [32] (byte) current_xpos#118 ← (byte) current_xpos#100 -- vbuz1=vbuz2 + // [30] (byte) current_xpos#118 ← (byte) current_xpos#100 -- vbuz1=vbuz2 lda.z current_xpos sta.z current_xpos_1 - // [33] (byte*) current_piece_gfx#111 ← (byte*)*((const word*) PIECES + (byte~) play_spawn_current::$7) -- pbuz1=pptc1_derefidx_vbuz2 + // [31] (byte*) current_piece_gfx#111 ← (byte*)*((const word*) PIECES + (byte~) play_spawn_current::$7) -- pbuz1=pptc1_derefidx_vbuz2 ldy.z play_spawn_current.__7 lda PIECES,y sta.z current_piece_gfx_1 lda PIECES+1,y sta.z current_piece_gfx_1+1 - // [34] (byte) current_piece_char#99 ← (byte) current_piece_char#5 -- vbuz1=vbuz2 + // [32] (byte) current_piece_char#99 ← (byte) current_piece_char#5 -- vbuz1=vbuz2 lda.z current_piece_char sta.z current_piece_char_1 // render_moving() - // [35] call render_moving - // [130] phi from main::@15 to render_moving [phi:main::@15->render_moving] - // [130] phi (byte) current_piece_char#68 = (byte) current_piece_char#99 [phi:main::@15->render_moving#0] -- register_copy - // [130] phi (byte*) current_piece_gfx#64 = (byte*) current_piece_gfx#111 [phi:main::@15->render_moving#1] -- register_copy - // [130] phi (byte) current_xpos#59 = (byte) current_xpos#118 [phi:main::@15->render_moving#2] -- register_copy - // [130] phi (byte) render_screen_render#33 = (byte) $20 [phi:main::@15->render_moving#3] -- vbuz1=vbuc1 + // [33] call render_moving + // [128] phi from main::@15 to render_moving [phi:main::@15->render_moving] + // [128] phi (byte) current_piece_char#68 = (byte) current_piece_char#99 [phi:main::@15->render_moving#0] -- register_copy + // [128] phi (byte*) current_piece_gfx#64 = (byte*) current_piece_gfx#111 [phi:main::@15->render_moving#1] -- register_copy + // [128] phi (byte) current_xpos#59 = (byte) current_xpos#118 [phi:main::@15->render_moving#2] -- register_copy + // [128] phi (byte) render_screen_render#33 = (byte) $20 [phi:main::@15->render_moving#3] -- vbuz1=vbuc1 lda #$20 sta.z render_screen_render_1 - // [130] phi (byte) current_ypos#13 = (byte) current_ypos#97 [phi:main::@15->render_moving#4] -- register_copy + // [128] phi (byte) current_ypos#13 = (byte) current_ypos#97 [phi:main::@15->render_moving#4] -- register_copy jsr render_moving // main::@16 - // [36] (byte) next_piece_idx#76 ← (byte) play_spawn_current::piece_idx#2 -- vbuxx=vbuz1 + // [34] (byte) next_piece_idx#76 ← (byte) play_spawn_current::piece_idx#2 -- vbuxx=vbuz1 ldx.z play_spawn_current.piece_idx // render_next() - // [37] call render_next - // [109] phi from main::@16 to render_next [phi:main::@16->render_next] - // [109] phi (byte) next_piece_idx#12 = (byte) next_piece_idx#76 [phi:main::@16->render_next#0] -- register_copy - // [109] phi (byte) render_screen_render#15 = (byte) $20 [phi:main::@16->render_next#1] -- vbuaa=vbuc1 + // [35] call render_next + // [107] phi from main::@16 to render_next [phi:main::@16->render_next] + // [107] phi (byte) next_piece_idx#12 = (byte) next_piece_idx#76 [phi:main::@16->render_next#0] -- register_copy + // [107] phi (byte) render_screen_render#15 = (byte) $20 [phi:main::@16->render_next#1] -- vbuaa=vbuc1 lda #$20 jsr render_next // main::@17 - // [38] (byte*) current_piece#101 ← (byte*)*((const word*) PIECES + (byte~) play_spawn_current::$7) -- pbuz1=pptc1_derefidx_vbuz2 + // [36] (byte*) current_piece#101 ← (byte*)*((const word*) PIECES + (byte~) play_spawn_current::$7) -- pbuz1=pptc1_derefidx_vbuz2 ldy.z play_spawn_current.__7 lda PIECES,y sta.z current_piece lda PIECES+1,y sta.z current_piece+1 - // [39] (byte*) current_piece_gfx#123 ← (byte*)*((const word*) PIECES + (byte~) play_spawn_current::$7) -- pbuz1=pptc1_derefidx_vbuz2 + // [37] (byte*) current_piece_gfx#123 ← (byte*)*((const word*) PIECES + (byte~) play_spawn_current::$7) -- pbuz1=pptc1_derefidx_vbuz2 lda PIECES,y sta.z current_piece_gfx lda PIECES+1,y sta.z current_piece_gfx+1 - // [40] phi from main::@17 to main::@1 [phi:main::@17->main::@1] - // [40] phi (byte) level_bcd#11 = (byte) 0 [phi:main::@17->main::@1#0] -- vbuz1=vbuc1 + // [38] phi from main::@17 to main::@1 [phi:main::@17->main::@1] + // [38] phi (byte) level_bcd#11 = (byte) 0 [phi:main::@17->main::@1#0] -- vbuz1=vbuc1 lda #0 sta.z level_bcd - // [40] phi (byte) level#10 = (byte) 0 [phi:main::@17->main::@1#1] -- vbuz1=vbuc1 + // [38] phi (byte) level#10 = (byte) 0 [phi:main::@17->main::@1#1] -- vbuz1=vbuc1 sta.z level - // [40] phi (word) lines_bcd#19 = (word) 0 [phi:main::@17->main::@1#2] -- vwuz1=vwuc1 + // [38] phi (word) lines_bcd#19 = (word) 0 [phi:main::@17->main::@1#2] -- vwuz1=vwuc1 sta.z lines_bcd sta.z lines_bcd+1 - // [40] phi (byte) current_movedown_counter#16 = (byte) 0 [phi:main::@17->main::@1#3] -- vbuz1=vbuc1 + // [38] phi (byte) current_movedown_counter#16 = (byte) 0 [phi:main::@17->main::@1#3] -- vbuz1=vbuc1 sta.z current_movedown_counter - // [40] phi (byte) keyboard_events_size#19 = (byte) 0 [phi:main::@17->main::@1#4] -- vbuz1=vbuc1 + // [38] phi (byte) keyboard_events_size#19 = (byte) 0 [phi:main::@17->main::@1#4] -- vbuz1=vbuc1 sta.z keyboard_events_size - // [40] phi (byte) next_piece_idx#10 = (byte) play_spawn_current::piece_idx#2 [phi:main::@17->main::@1#5] -- register_copy - // [40] phi (byte) game_over#10 = (byte) game_over#52 [phi:main::@17->main::@1#6] -- register_copy - // [40] phi (byte) current_ypos#11 = (byte) current_ypos#6 [phi:main::@17->main::@1#7] -- register_copy - // [40] phi (byte) current_xpos#14 = (byte) current_xpos#100 [phi:main::@17->main::@1#8] -- register_copy - // [40] phi (byte*) current_piece_gfx#13 = (byte*) current_piece_gfx#123 [phi:main::@17->main::@1#9] -- register_copy - // [40] phi (byte) current_orientation#13 = (byte) 0 [phi:main::@17->main::@1#10] -- vbuz1=vbuc1 + // [38] phi (byte) next_piece_idx#10 = (byte) play_spawn_current::piece_idx#2 [phi:main::@17->main::@1#5] -- register_copy + // [38] phi (byte) game_over#10 = (byte) game_over#52 [phi:main::@17->main::@1#6] -- register_copy + // [38] phi (byte) current_ypos#11 = (byte) current_ypos#6 [phi:main::@17->main::@1#7] -- register_copy + // [38] phi (byte) current_xpos#14 = (byte) current_xpos#100 [phi:main::@17->main::@1#8] -- register_copy + // [38] phi (byte*) current_piece_gfx#13 = (byte*) current_piece_gfx#123 [phi:main::@17->main::@1#9] -- register_copy + // [38] phi (byte) current_orientation#13 = (byte) 0 [phi:main::@17->main::@1#10] -- vbuz1=vbuc1 sta.z current_orientation - // [40] phi (byte) current_piece_char#10 = (byte) current_piece_char#5 [phi:main::@17->main::@1#11] -- register_copy - // [40] phi (byte*) current_piece#10 = (byte*) current_piece#101 [phi:main::@17->main::@1#12] -- register_copy - // [40] phi (byte) current_movedown_slow#14 = (byte) current_movedown_slow#1 [phi:main::@17->main::@1#13] -- register_copy - // [40] phi (byte) render_screen_render#18 = (byte) $20 [phi:main::@17->main::@1#14] -- vbuz1=vbuc1 + // [38] phi (byte) current_piece_char#10 = (byte) current_piece_char#5 [phi:main::@17->main::@1#11] -- register_copy + // [38] phi (byte*) current_piece#10 = (byte*) current_piece#101 [phi:main::@17->main::@1#12] -- register_copy + // [38] phi (byte) current_movedown_slow#14 = (byte) current_movedown_slow#1 [phi:main::@17->main::@1#13] -- register_copy + // [38] phi (byte) render_screen_render#18 = (byte) $20 [phi:main::@17->main::@1#14] -- vbuz1=vbuc1 lda #$20 sta.z render_screen_render - // [40] phi (byte) render_screen_show#16 = (byte) 0 [phi:main::@17->main::@1#15] -- vbuz1=vbuc1 + // [38] phi (byte) render_screen_show#16 = (byte) 0 [phi:main::@17->main::@1#15] -- vbuz1=vbuc1 lda #0 sta.z render_screen_show - // [40] phi from main::@25 main::@6 to main::@1 [phi:main::@25/main::@6->main::@1] - // [40] phi (byte) level_bcd#11 = (byte) level_bcd#17 [phi:main::@25/main::@6->main::@1#0] -- register_copy - // [40] phi (byte) level#10 = (byte) level#17 [phi:main::@25/main::@6->main::@1#1] -- register_copy - // [40] phi (word) lines_bcd#19 = (word) lines_bcd#15 [phi:main::@25/main::@6->main::@1#2] -- register_copy - // [40] phi (byte) current_movedown_counter#16 = (byte) current_movedown_counter#14 [phi:main::@25/main::@6->main::@1#3] -- register_copy - // [40] phi (byte) keyboard_events_size#19 = (byte) keyboard_events_size#16 [phi:main::@25/main::@6->main::@1#4] -- register_copy - // [40] phi (byte) next_piece_idx#10 = (byte) next_piece_idx#16 [phi:main::@25/main::@6->main::@1#5] -- register_copy - // [40] phi (byte) game_over#10 = (byte) game_over#15 [phi:main::@25/main::@6->main::@1#6] -- register_copy - // [40] phi (byte) current_ypos#11 = (byte) current_ypos#19 [phi:main::@25/main::@6->main::@1#7] -- register_copy - // [40] phi (byte) current_xpos#14 = (byte) current_xpos#19 [phi:main::@25/main::@6->main::@1#8] -- register_copy - // [40] phi (byte*) current_piece_gfx#13 = (byte*) current_piece_gfx#18 [phi:main::@25/main::@6->main::@1#9] -- register_copy - // [40] phi (byte) current_orientation#13 = (byte) current_orientation#17 [phi:main::@25/main::@6->main::@1#10] -- register_copy - // [40] phi (byte) current_piece_char#10 = (byte) current_piece_char#16 [phi:main::@25/main::@6->main::@1#11] -- register_copy - // [40] phi (byte*) current_piece#10 = (byte*) current_piece#15 [phi:main::@25/main::@6->main::@1#12] -- register_copy - // [40] phi (byte) current_movedown_slow#14 = (byte) current_movedown_slow#21 [phi:main::@25/main::@6->main::@1#13] -- register_copy - // [40] phi (byte) render_screen_render#18 = (byte) render_screen_render#11 [phi:main::@25/main::@6->main::@1#14] -- register_copy - // [40] phi (byte) render_screen_show#16 = (byte) render_screen_show#13 [phi:main::@25/main::@6->main::@1#15] -- register_copy + // [38] phi from main::@25 main::@6 to main::@1 [phi:main::@25/main::@6->main::@1] + // [38] phi (byte) level_bcd#11 = (byte) level_bcd#17 [phi:main::@25/main::@6->main::@1#0] -- register_copy + // [38] phi (byte) level#10 = (byte) level#17 [phi:main::@25/main::@6->main::@1#1] -- register_copy + // [38] phi (word) lines_bcd#19 = (word) lines_bcd#15 [phi:main::@25/main::@6->main::@1#2] -- register_copy + // [38] phi (byte) current_movedown_counter#16 = (byte) current_movedown_counter#14 [phi:main::@25/main::@6->main::@1#3] -- register_copy + // [38] phi (byte) keyboard_events_size#19 = (byte) keyboard_events_size#16 [phi:main::@25/main::@6->main::@1#4] -- register_copy + // [38] phi (byte) next_piece_idx#10 = (byte) next_piece_idx#16 [phi:main::@25/main::@6->main::@1#5] -- register_copy + // [38] phi (byte) game_over#10 = (byte) game_over#15 [phi:main::@25/main::@6->main::@1#6] -- register_copy + // [38] phi (byte) current_ypos#11 = (byte) current_ypos#19 [phi:main::@25/main::@6->main::@1#7] -- register_copy + // [38] phi (byte) current_xpos#14 = (byte) current_xpos#19 [phi:main::@25/main::@6->main::@1#8] -- register_copy + // [38] phi (byte*) current_piece_gfx#13 = (byte*) current_piece_gfx#18 [phi:main::@25/main::@6->main::@1#9] -- register_copy + // [38] phi (byte) current_orientation#13 = (byte) current_orientation#17 [phi:main::@25/main::@6->main::@1#10] -- register_copy + // [38] phi (byte) current_piece_char#10 = (byte) current_piece_char#16 [phi:main::@25/main::@6->main::@1#11] -- register_copy + // [38] phi (byte*) current_piece#10 = (byte*) current_piece#15 [phi:main::@25/main::@6->main::@1#12] -- register_copy + // [38] phi (byte) current_movedown_slow#14 = (byte) current_movedown_slow#21 [phi:main::@25/main::@6->main::@1#13] -- register_copy + // [38] phi (byte) render_screen_render#18 = (byte) render_screen_render#11 [phi:main::@25/main::@6->main::@1#14] -- register_copy + // [38] phi (byte) render_screen_show#16 = (byte) render_screen_show#13 [phi:main::@25/main::@6->main::@1#15] -- register_copy // main::@1 __b1: // Wait for a frame to pass // main::@2 __b2: // while(*RASTER!=0xff) - // [41] if(*((const byte*) RASTER)!=(byte) $ff) goto main::@2 -- _deref_pbuc1_neq_vbuc2_then_la1 + // [39] if(*((const byte*) RASTER)!=(byte) $ff) goto main::@2 -- _deref_pbuc1_neq_vbuc2_then_la1 lda #$ff cmp RASTER bne __b2 - // [42] phi from main::@2 to main::@3 [phi:main::@2->main::@3] + // [40] phi from main::@2 to main::@3 [phi:main::@2->main::@3] // main::@3 // render_show() - // [43] call render_show + // [41] call render_show jsr render_show - // [44] phi from main::@3 to main::@18 [phi:main::@3->main::@18] + // [42] phi from main::@3 to main::@18 [phi:main::@3->main::@18] // main::@18 // keyboard_event_scan() - // [45] call keyboard_event_scan - // [392] phi from main::@18 to keyboard_event_scan [phi:main::@18->keyboard_event_scan] + // [43] call keyboard_event_scan + // [390] phi from main::@18 to keyboard_event_scan [phi:main::@18->keyboard_event_scan] jsr keyboard_event_scan - // [46] phi from main::@18 to main::@19 [phi:main::@18->main::@19] + // [44] phi from main::@18 to main::@19 [phi:main::@18->main::@19] // main::@19 // keyboard_event_get() - // [47] call keyboard_event_get + // [45] call keyboard_event_get jsr keyboard_event_get - // [48] (byte) keyboard_event_get::return#3 ← (byte) keyboard_event_get::return#2 + // [46] (byte) keyboard_event_get::return#3 ← (byte) keyboard_event_get::return#2 // main::@20 // key_event = keyboard_event_get() - // [49] (byte) main::key_event#0 ← (byte) keyboard_event_get::return#3 + // [47] (byte) main::key_event#0 ← (byte) keyboard_event_get::return#3 // if(game_over==0) - // [50] if((byte) game_over#10==(byte) 0) goto main::@4 -- vbuz1_eq_0_then_la1 + // [48] if((byte) game_over#10==(byte) 0) goto main::@4 -- vbuz1_eq_0_then_la1 lda.z game_over cmp #0 beq __b4 // main::@5 __b5: // (*BORDERCOL)++; - // [51] *((const byte*) BORDERCOL) ← ++ *((const byte*) BORDERCOL) -- _deref_pbuc1=_inc__deref_pbuc1 + // [49] *((const byte*) BORDERCOL) ← ++ *((const byte*) BORDERCOL) -- _deref_pbuc1=_inc__deref_pbuc1 inc BORDERCOL jmp __b5 // main::@4 __b4: // play_movement(key_event) - // [52] (byte) play_movement::key_event#0 ← (byte) main::key_event#0 -- vbuz1=vbuxx + // [50] (byte) play_movement::key_event#0 ← (byte) main::key_event#0 -- vbuz1=vbuxx stx.z play_movement.key_event - // [53] call play_movement + // [51] call play_movement jsr play_movement - // [54] (byte) play_movement::return#3 ← (byte) play_movement::return#2 -- vbuaa=vbuz1 + // [52] (byte) play_movement::return#3 ← (byte) play_movement::return#2 -- vbuaa=vbuz1 lda.z play_movement.return // main::@21 // render = play_movement(key_event) - // [55] (byte) main::render#1 ← (byte) play_movement::return#3 + // [53] (byte) main::render#1 ← (byte) play_movement::return#3 // main::@6 // if(render!=0) - // [56] if((byte) main::render#1==(byte) 0) goto main::@1 -- vbuaa_eq_0_then_la1 + // [54] if((byte) main::render#1==(byte) 0) goto main::@1 -- vbuaa_eq_0_then_la1 cmp #0 beq __b1 // main::@7 - // [57] (byte) render_screen_render#63 ← (byte) render_screen_render#18 -- vbuxx=vbuz1 + // [55] (byte) render_screen_render#63 ← (byte) render_screen_render#18 -- vbuxx=vbuz1 ldx.z render_screen_render // render_playfield() - // [58] call render_playfield - // [152] phi from main::@7 to render_playfield [phi:main::@7->render_playfield] - // [152] phi (byte) render_screen_render#22 = (byte) render_screen_render#63 [phi:main::@7->render_playfield#0] -- register_copy + // [56] call render_playfield + // [150] phi from main::@7 to render_playfield [phi:main::@7->render_playfield] + // [150] phi (byte) render_screen_render#22 = (byte) render_screen_render#63 [phi:main::@7->render_playfield#0] -- register_copy jsr render_playfield // main::@22 - // [59] (byte) current_ypos#98 ← (byte) current_ypos#19 -- vbuxx=vbuz1 + // [57] (byte) current_ypos#98 ← (byte) current_ypos#19 -- vbuxx=vbuz1 ldx.z current_ypos - // [60] (byte) render_screen_render#64 ← (byte) render_screen_render#18 -- vbuz1=vbuz2 + // [58] (byte) render_screen_render#64 ← (byte) render_screen_render#18 -- vbuz1=vbuz2 lda.z render_screen_render sta.z render_screen_render_1 - // [61] (byte) current_xpos#119 ← (byte) current_xpos#19 -- vbuz1=vbuz2 + // [59] (byte) current_xpos#119 ← (byte) current_xpos#19 -- vbuz1=vbuz2 lda.z current_xpos sta.z current_xpos_1 - // [62] (byte*) current_piece_gfx#112 ← (byte*) current_piece_gfx#18 -- pbuz1=pbuz2 + // [60] (byte*) current_piece_gfx#112 ← (byte*) current_piece_gfx#18 -- pbuz1=pbuz2 lda.z current_piece_gfx sta.z current_piece_gfx_1 lda.z current_piece_gfx+1 sta.z current_piece_gfx_1+1 - // [63] (byte) current_piece_char#100 ← (byte) current_piece_char#16 -- vbuz1=vbuz2 + // [61] (byte) current_piece_char#100 ← (byte) current_piece_char#16 -- vbuz1=vbuz2 lda.z current_piece_char sta.z current_piece_char_1 // render_moving() - // [64] call render_moving - // [130] phi from main::@22 to render_moving [phi:main::@22->render_moving] - // [130] phi (byte) current_piece_char#68 = (byte) current_piece_char#100 [phi:main::@22->render_moving#0] -- register_copy - // [130] phi (byte*) current_piece_gfx#64 = (byte*) current_piece_gfx#112 [phi:main::@22->render_moving#1] -- register_copy - // [130] phi (byte) current_xpos#59 = (byte) current_xpos#119 [phi:main::@22->render_moving#2] -- register_copy - // [130] phi (byte) render_screen_render#33 = (byte) render_screen_render#64 [phi:main::@22->render_moving#3] -- register_copy - // [130] phi (byte) current_ypos#13 = (byte) current_ypos#98 [phi:main::@22->render_moving#4] -- register_copy + // [62] call render_moving + // [128] phi from main::@22 to render_moving [phi:main::@22->render_moving] + // [128] phi (byte) current_piece_char#68 = (byte) current_piece_char#100 [phi:main::@22->render_moving#0] -- register_copy + // [128] phi (byte*) current_piece_gfx#64 = (byte*) current_piece_gfx#112 [phi:main::@22->render_moving#1] -- register_copy + // [128] phi (byte) current_xpos#59 = (byte) current_xpos#119 [phi:main::@22->render_moving#2] -- register_copy + // [128] phi (byte) render_screen_render#33 = (byte) render_screen_render#64 [phi:main::@22->render_moving#3] -- register_copy + // [128] phi (byte) current_ypos#13 = (byte) current_ypos#98 [phi:main::@22->render_moving#4] -- register_copy jsr render_moving // main::@23 - // [65] (byte) render_screen_render#65 ← (byte) render_screen_render#18 -- vbuaa=vbuz1 + // [63] (byte) render_screen_render#65 ← (byte) render_screen_render#18 -- vbuaa=vbuz1 lda.z render_screen_render - // [66] (byte) next_piece_idx#77 ← (byte) next_piece_idx#16 -- vbuxx=vbuz1 + // [64] (byte) next_piece_idx#77 ← (byte) next_piece_idx#16 -- vbuxx=vbuz1 ldx.z next_piece_idx // render_next() - // [67] call render_next - // [109] phi from main::@23 to render_next [phi:main::@23->render_next] - // [109] phi (byte) next_piece_idx#12 = (byte) next_piece_idx#77 [phi:main::@23->render_next#0] -- register_copy - // [109] phi (byte) render_screen_render#15 = (byte) render_screen_render#65 [phi:main::@23->render_next#1] -- register_copy + // [65] call render_next + // [107] phi from main::@23 to render_next [phi:main::@23->render_next] + // [107] phi (byte) next_piece_idx#12 = (byte) next_piece_idx#77 [phi:main::@23->render_next#0] -- register_copy + // [107] phi (byte) render_screen_render#15 = (byte) render_screen_render#65 [phi:main::@23->render_next#1] -- register_copy jsr render_next - // [68] phi from main::@23 to main::@24 [phi:main::@23->main::@24] + // [66] phi from main::@23 to main::@24 [phi:main::@23->main::@24] // main::@24 // render_score() - // [69] call render_score + // [67] call render_score jsr render_score - // [70] phi from main::@24 to main::@25 [phi:main::@24->main::@25] + // [68] phi from main::@24 to main::@25 [phi:main::@24->main::@25] // main::@25 // render_screen_swap() - // [71] call render_screen_swap + // [69] call render_screen_swap jsr render_screen_swap jmp __b1 } @@ -22536,18 +22511,18 @@ main: { // Swap rendering to the other screen (used for double buffering) render_screen_swap: { // render_screen_render ^= 0x20 - // [72] (byte) render_screen_render#11 ← (byte) render_screen_render#18 ^ (byte) $20 -- vbuz1=vbuz1_bxor_vbuc1 + // [70] (byte) render_screen_render#11 ← (byte) render_screen_render#18 ^ (byte) $20 -- vbuz1=vbuz1_bxor_vbuc1 lda #$20 eor.z render_screen_render sta.z render_screen_render // render_screen_show ^= 0x20 - // [73] (byte) render_screen_show#13 ← (byte) render_screen_show#16 ^ (byte) $20 -- vbuz1=vbuz1_bxor_vbuc1 + // [71] (byte) render_screen_show#13 ← (byte) render_screen_show#16 ^ (byte) $20 -- vbuz1=vbuz1_bxor_vbuc1 lda #$20 eor.z render_screen_show sta.z render_screen_show // render_screen_swap::@return // } - // [74] return + // [72] return rts } // render_score @@ -22559,22 +22534,22 @@ render_score: { .const level_offset = $28*$13+$1f .label screen = $23 // if(render_screen_render==0) - // [75] if((byte) render_screen_render#18==(byte) 0) goto render_score::@1 -- vbuz1_eq_0_then_la1 + // [73] if((byte) render_screen_render#18==(byte) 0) goto render_score::@1 -- vbuz1_eq_0_then_la1 lda.z render_screen_render cmp #0 beq __b1 - // [77] phi from render_score to render_score::@2 [phi:render_score->render_score::@2] - // [77] phi (byte*) render_score::screen#3 = (const byte*) PLAYFIELD_SCREEN_2 [phi:render_score->render_score::@2#0] -- pbuz1=pbuc1 + // [75] phi from render_score to render_score::@2 [phi:render_score->render_score::@2] + // [75] phi (byte*) render_score::screen#3 = (const byte*) PLAYFIELD_SCREEN_2 [phi:render_score->render_score::@2#0] -- pbuz1=pbuc1 lda #PLAYFIELD_SCREEN_2 sta.z screen+1 jmp __b2 - // [76] phi from render_score to render_score::@1 [phi:render_score->render_score::@1] + // [74] phi from render_score to render_score::@1 [phi:render_score->render_score::@1] // render_score::@1 __b1: - // [77] phi from render_score::@1 to render_score::@2 [phi:render_score::@1->render_score::@2] - // [77] phi (byte*) render_score::screen#3 = (const byte*) PLAYFIELD_SCREEN_1 [phi:render_score::@1->render_score::@2#0] -- pbuz1=pbuc1 + // [75] phi from render_score::@1 to render_score::@2 [phi:render_score::@1->render_score::@2] + // [75] phi (byte*) render_score::screen#3 = (const byte*) PLAYFIELD_SCREEN_1 [phi:render_score::@1->render_score::@2#0] -- pbuz1=pbuc1 lda #PLAYFIELD_SCREEN_1 @@ -22582,111 +22557,111 @@ render_score: { // render_score::@2 __b2: // render_bcd( screen, score_offset, score_bytes[2], 0) - // [78] (byte*) render_bcd::screen#0 ← (byte*) render_score::screen#3 - // [79] (byte) render_bcd::bcd#0 ← *((const byte*) render_score::score_bytes+(byte) 2) -- vbuxx=_deref_pbuc1 + // [76] (byte*) render_bcd::screen#0 ← (byte*) render_score::screen#3 + // [77] (byte) render_bcd::bcd#0 ← *((const byte*) render_score::score_bytes+(byte) 2) -- vbuxx=_deref_pbuc1 ldx score_bytes+2 - // [80] call render_bcd - // [97] phi from render_score::@2 to render_bcd [phi:render_score::@2->render_bcd] - // [97] phi (byte) render_bcd::bcd#6 = (byte) render_bcd::bcd#0 [phi:render_score::@2->render_bcd#0] -- register_copy - // [97] phi (byte) render_bcd::only_low#6 = (byte) 0 [phi:render_score::@2->render_bcd#1] -- vbuyy=vbuc1 + // [78] call render_bcd + // [95] phi from render_score::@2 to render_bcd [phi:render_score::@2->render_bcd] + // [95] phi (byte) render_bcd::bcd#6 = (byte) render_bcd::bcd#0 [phi:render_score::@2->render_bcd#0] -- register_copy + // [95] phi (byte) render_bcd::only_low#6 = (byte) 0 [phi:render_score::@2->render_bcd#1] -- vbuyy=vbuc1 ldy #0 - // [97] phi (word) render_bcd::offset#6 = (const word) render_score::score_offset [phi:render_score::@2->render_bcd#2] -- vwuz1=vwuc1 + // [95] phi (word) render_bcd::offset#6 = (const word) render_score::score_offset [phi:render_score::@2->render_bcd#2] -- vwuz1=vwuc1 lda #score_offset sta.z render_bcd.offset+1 - // [97] phi (byte*) render_bcd::screen#6 = (byte*) render_bcd::screen#0 [phi:render_score::@2->render_bcd#3] -- register_copy + // [95] phi (byte*) render_bcd::screen#6 = (byte*) render_bcd::screen#0 [phi:render_score::@2->render_bcd#3] -- register_copy jsr render_bcd // render_score::@3 // render_bcd( screen, score_offset+2, score_bytes[1], 0) - // [81] (byte*) render_bcd::screen#1 ← (byte*) render_score::screen#3 - // [82] (byte) render_bcd::bcd#1 ← *((const byte*) render_score::score_bytes+(byte) 1) -- vbuxx=_deref_pbuc1 + // [79] (byte*) render_bcd::screen#1 ← (byte*) render_score::screen#3 + // [80] (byte) render_bcd::bcd#1 ← *((const byte*) render_score::score_bytes+(byte) 1) -- vbuxx=_deref_pbuc1 ldx score_bytes+1 - // [83] call render_bcd - // [97] phi from render_score::@3 to render_bcd [phi:render_score::@3->render_bcd] - // [97] phi (byte) render_bcd::bcd#6 = (byte) render_bcd::bcd#1 [phi:render_score::@3->render_bcd#0] -- register_copy - // [97] phi (byte) render_bcd::only_low#6 = (byte) 0 [phi:render_score::@3->render_bcd#1] -- vbuyy=vbuc1 + // [81] call render_bcd + // [95] phi from render_score::@3 to render_bcd [phi:render_score::@3->render_bcd] + // [95] phi (byte) render_bcd::bcd#6 = (byte) render_bcd::bcd#1 [phi:render_score::@3->render_bcd#0] -- register_copy + // [95] phi (byte) render_bcd::only_low#6 = (byte) 0 [phi:render_score::@3->render_bcd#1] -- vbuyy=vbuc1 ldy #0 - // [97] phi (word) render_bcd::offset#6 = (const word) render_score::score_offset+(byte) 2 [phi:render_score::@3->render_bcd#2] -- vwuz1=vwuc1 + // [95] phi (word) render_bcd::offset#6 = (const word) render_score::score_offset+(byte) 2 [phi:render_score::@3->render_bcd#2] -- vwuz1=vwuc1 lda #score_offset+2 sta.z render_bcd.offset+1 - // [97] phi (byte*) render_bcd::screen#6 = (byte*) render_bcd::screen#1 [phi:render_score::@3->render_bcd#3] -- register_copy + // [95] phi (byte*) render_bcd::screen#6 = (byte*) render_bcd::screen#1 [phi:render_score::@3->render_bcd#3] -- register_copy jsr render_bcd // render_score::@4 // render_bcd( screen, score_offset+4, score_bytes[0], 0) - // [84] (byte*) render_bcd::screen#2 ← (byte*) render_score::screen#3 - // [85] (byte) render_bcd::bcd#2 ← *((const byte*) render_score::score_bytes) -- vbuxx=_deref_pbuc1 + // [82] (byte*) render_bcd::screen#2 ← (byte*) render_score::screen#3 + // [83] (byte) render_bcd::bcd#2 ← *((const byte*) render_score::score_bytes) -- vbuxx=_deref_pbuc1 ldx.z score_bytes - // [86] call render_bcd - // [97] phi from render_score::@4 to render_bcd [phi:render_score::@4->render_bcd] - // [97] phi (byte) render_bcd::bcd#6 = (byte) render_bcd::bcd#2 [phi:render_score::@4->render_bcd#0] -- register_copy - // [97] phi (byte) render_bcd::only_low#6 = (byte) 0 [phi:render_score::@4->render_bcd#1] -- vbuyy=vbuc1 + // [84] call render_bcd + // [95] phi from render_score::@4 to render_bcd [phi:render_score::@4->render_bcd] + // [95] phi (byte) render_bcd::bcd#6 = (byte) render_bcd::bcd#2 [phi:render_score::@4->render_bcd#0] -- register_copy + // [95] phi (byte) render_bcd::only_low#6 = (byte) 0 [phi:render_score::@4->render_bcd#1] -- vbuyy=vbuc1 ldy #0 - // [97] phi (word) render_bcd::offset#6 = (const word) render_score::score_offset+(byte) 4 [phi:render_score::@4->render_bcd#2] -- vwuz1=vwuc1 + // [95] phi (word) render_bcd::offset#6 = (const word) render_score::score_offset+(byte) 4 [phi:render_score::@4->render_bcd#2] -- vwuz1=vwuc1 lda #score_offset+4 sta.z render_bcd.offset+1 - // [97] phi (byte*) render_bcd::screen#6 = (byte*) render_bcd::screen#2 [phi:render_score::@4->render_bcd#3] -- register_copy + // [95] phi (byte*) render_bcd::screen#6 = (byte*) render_bcd::screen#2 [phi:render_score::@4->render_bcd#3] -- register_copy jsr render_bcd // render_score::@5 // render_bcd( screen, lines_offset, >lines_bcd, 1) - // [87] (byte) render_bcd::bcd#3 ← > (word) lines_bcd#15 -- vbuxx=_hi_vwuz1 + // [85] (byte) render_bcd::bcd#3 ← > (word) lines_bcd#15 -- vbuxx=_hi_vwuz1 lda.z lines_bcd+1 tax - // [88] (byte*) render_bcd::screen#3 ← (byte*) render_score::screen#3 - // [89] call render_bcd - // [97] phi from render_score::@5 to render_bcd [phi:render_score::@5->render_bcd] - // [97] phi (byte) render_bcd::bcd#6 = (byte) render_bcd::bcd#3 [phi:render_score::@5->render_bcd#0] -- register_copy - // [97] phi (byte) render_bcd::only_low#6 = (byte) 1 [phi:render_score::@5->render_bcd#1] -- vbuyy=vbuc1 + // [86] (byte*) render_bcd::screen#3 ← (byte*) render_score::screen#3 + // [87] call render_bcd + // [95] phi from render_score::@5 to render_bcd [phi:render_score::@5->render_bcd] + // [95] phi (byte) render_bcd::bcd#6 = (byte) render_bcd::bcd#3 [phi:render_score::@5->render_bcd#0] -- register_copy + // [95] phi (byte) render_bcd::only_low#6 = (byte) 1 [phi:render_score::@5->render_bcd#1] -- vbuyy=vbuc1 ldy #1 - // [97] phi (word) render_bcd::offset#6 = (const word) render_score::lines_offset [phi:render_score::@5->render_bcd#2] -- vwuz1=vwuc1 + // [95] phi (word) render_bcd::offset#6 = (const word) render_score::lines_offset [phi:render_score::@5->render_bcd#2] -- vwuz1=vwuc1 lda #lines_offset sta.z render_bcd.offset+1 - // [97] phi (byte*) render_bcd::screen#6 = (byte*) render_bcd::screen#3 [phi:render_score::@5->render_bcd#3] -- register_copy + // [95] phi (byte*) render_bcd::screen#6 = (byte*) render_bcd::screen#3 [phi:render_score::@5->render_bcd#3] -- register_copy jsr render_bcd // render_score::@6 // render_bcd( screen, lines_offset+1, render_bcd] - // [97] phi (byte) render_bcd::bcd#6 = (byte) render_bcd::bcd#4 [phi:render_score::@6->render_bcd#0] -- register_copy - // [97] phi (byte) render_bcd::only_low#6 = (byte) 0 [phi:render_score::@6->render_bcd#1] -- vbuyy=vbuc1 + // [89] (byte*) render_bcd::screen#4 ← (byte*) render_score::screen#3 + // [90] call render_bcd + // [95] phi from render_score::@6 to render_bcd [phi:render_score::@6->render_bcd] + // [95] phi (byte) render_bcd::bcd#6 = (byte) render_bcd::bcd#4 [phi:render_score::@6->render_bcd#0] -- register_copy + // [95] phi (byte) render_bcd::only_low#6 = (byte) 0 [phi:render_score::@6->render_bcd#1] -- vbuyy=vbuc1 ldy #0 - // [97] phi (word) render_bcd::offset#6 = (const word) render_score::lines_offset+(byte) 1 [phi:render_score::@6->render_bcd#2] -- vwuz1=vwuc1 + // [95] phi (word) render_bcd::offset#6 = (const word) render_score::lines_offset+(byte) 1 [phi:render_score::@6->render_bcd#2] -- vwuz1=vwuc1 lda #lines_offset+1 sta.z render_bcd.offset+1 - // [97] phi (byte*) render_bcd::screen#6 = (byte*) render_bcd::screen#4 [phi:render_score::@6->render_bcd#3] -- register_copy + // [95] phi (byte*) render_bcd::screen#6 = (byte*) render_bcd::screen#4 [phi:render_score::@6->render_bcd#3] -- register_copy jsr render_bcd // render_score::@7 // render_bcd( screen, level_offset, level_bcd, 0) - // [93] (byte*) render_bcd::screen#5 ← (byte*) render_score::screen#3 - // [94] (byte) render_bcd::bcd#5 ← (byte) level_bcd#17 -- vbuxx=vbuz1 + // [91] (byte*) render_bcd::screen#5 ← (byte*) render_score::screen#3 + // [92] (byte) render_bcd::bcd#5 ← (byte) level_bcd#17 -- vbuxx=vbuz1 ldx.z level_bcd - // [95] call render_bcd - // [97] phi from render_score::@7 to render_bcd [phi:render_score::@7->render_bcd] - // [97] phi (byte) render_bcd::bcd#6 = (byte) render_bcd::bcd#5 [phi:render_score::@7->render_bcd#0] -- register_copy - // [97] phi (byte) render_bcd::only_low#6 = (byte) 0 [phi:render_score::@7->render_bcd#1] -- vbuyy=vbuc1 + // [93] call render_bcd + // [95] phi from render_score::@7 to render_bcd [phi:render_score::@7->render_bcd] + // [95] phi (byte) render_bcd::bcd#6 = (byte) render_bcd::bcd#5 [phi:render_score::@7->render_bcd#0] -- register_copy + // [95] phi (byte) render_bcd::only_low#6 = (byte) 0 [phi:render_score::@7->render_bcd#1] -- vbuyy=vbuc1 ldy #0 - // [97] phi (word) render_bcd::offset#6 = (const word) render_score::level_offset [phi:render_score::@7->render_bcd#2] -- vwuz1=vwuc1 + // [95] phi (word) render_bcd::offset#6 = (const word) render_score::level_offset [phi:render_score::@7->render_bcd#2] -- vwuz1=vwuc1 lda #level_offset sta.z render_bcd.offset+1 - // [97] phi (byte*) render_bcd::screen#6 = (byte*) render_bcd::screen#5 [phi:render_score::@7->render_bcd#3] -- register_copy + // [95] phi (byte*) render_bcd::screen#6 = (byte*) render_bcd::screen#5 [phi:render_score::@7->render_bcd#3] -- register_copy jsr render_bcd // render_score::@return // } - // [96] return + // [94] return rts } // render_bcd @@ -22702,7 +22677,7 @@ render_bcd: { .label screen_pos = $21 .label offset = $21 // screen_pos = screen+offset - // [98] (byte*) render_bcd::screen_pos#0 ← (byte*) render_bcd::screen#6 + (word) render_bcd::offset#6 -- pbuz1=pbuz2_plus_vwuz1 + // [96] (byte*) render_bcd::screen_pos#0 ← (byte*) render_bcd::screen#6 + (word) render_bcd::offset#6 -- pbuz1=pbuz2_plus_vwuz1 lda.z screen_pos clc adc.z screen @@ -22711,50 +22686,50 @@ render_bcd: { adc.z screen+1 sta.z screen_pos+1 // if(only_low==0) - // [99] if((byte) render_bcd::only_low#6!=(byte) 0) goto render_bcd::@1 -- vbuyy_neq_0_then_la1 + // [97] if((byte) render_bcd::only_low#6!=(byte) 0) goto render_bcd::@1 -- vbuyy_neq_0_then_la1 cpy #0 bne __b1 // render_bcd::@2 // bcd >> 4 - // [100] (byte~) render_bcd::$5 ← (byte) render_bcd::bcd#6 >> (byte) 4 -- vbuaa=vbuxx_ror_4 + // [98] (byte~) render_bcd::$5 ← (byte) render_bcd::bcd#6 >> (byte) 4 -- vbuaa=vbuxx_ror_4 txa lsr lsr lsr lsr // ZERO_CHAR + (bcd >> 4) - // [101] (byte~) render_bcd::$6 ← (const byte) render_bcd::ZERO_CHAR + (byte~) render_bcd::$5 -- vbuaa=vbuc1_plus_vbuaa + // [99] (byte~) render_bcd::$6 ← (const byte) render_bcd::ZERO_CHAR + (byte~) render_bcd::$5 -- vbuaa=vbuc1_plus_vbuaa clc adc #ZERO_CHAR // *screen_pos++ = ZERO_CHAR + (bcd >> 4) - // [102] *((byte*) render_bcd::screen_pos#0) ← (byte~) render_bcd::$6 -- _deref_pbuz1=vbuaa + // [100] *((byte*) render_bcd::screen_pos#0) ← (byte~) render_bcd::$6 -- _deref_pbuz1=vbuaa ldy #0 sta (screen_pos),y // *screen_pos++ = ZERO_CHAR + (bcd >> 4); - // [103] (byte*) render_bcd::screen_pos#2 ← ++ (byte*) render_bcd::screen_pos#0 -- pbuz1=_inc_pbuz1 + // [101] (byte*) render_bcd::screen_pos#2 ← ++ (byte*) render_bcd::screen_pos#0 -- pbuz1=_inc_pbuz1 inc.z screen_pos bne !+ inc.z screen_pos+1 !: - // [104] phi from render_bcd render_bcd::@2 to render_bcd::@1 [phi:render_bcd/render_bcd::@2->render_bcd::@1] - // [104] phi (byte*) render_bcd::screen_pos#3 = (byte*) render_bcd::screen_pos#0 [phi:render_bcd/render_bcd::@2->render_bcd::@1#0] -- register_copy + // [102] phi from render_bcd render_bcd::@2 to render_bcd::@1 [phi:render_bcd/render_bcd::@2->render_bcd::@1] + // [102] phi (byte*) render_bcd::screen_pos#3 = (byte*) render_bcd::screen_pos#0 [phi:render_bcd/render_bcd::@2->render_bcd::@1#0] -- register_copy // render_bcd::@1 __b1: // bcd & 0x0f - // [105] (byte~) render_bcd::$3 ← (byte) render_bcd::bcd#6 & (byte) $f -- vbuaa=vbuxx_band_vbuc1 + // [103] (byte~) render_bcd::$3 ← (byte) render_bcd::bcd#6 & (byte) $f -- vbuaa=vbuxx_band_vbuc1 txa and #$f // ZERO_CHAR + (bcd & 0x0f) - // [106] (byte~) render_bcd::$4 ← (const byte) render_bcd::ZERO_CHAR + (byte~) render_bcd::$3 -- vbuaa=vbuc1_plus_vbuaa + // [104] (byte~) render_bcd::$4 ← (const byte) render_bcd::ZERO_CHAR + (byte~) render_bcd::$3 -- vbuaa=vbuc1_plus_vbuaa clc adc #ZERO_CHAR // *screen_pos++ = ZERO_CHAR + (bcd & 0x0f) - // [107] *((byte*) render_bcd::screen_pos#3) ← (byte~) render_bcd::$4 -- _deref_pbuz1=vbuaa + // [105] *((byte*) render_bcd::screen_pos#3) ← (byte~) render_bcd::$4 -- _deref_pbuz1=vbuaa ldy #0 sta (screen_pos),y // render_bcd::@return // } - // [108] return + // [106] return rts } // render_next @@ -22767,21 +22742,21 @@ render_next: { .label screen_next_area = $21 .label l = 8 // if(render_screen_render==0) - // [110] if((byte) render_screen_render#15==(byte) 0) goto render_next::@1 -- vbuaa_eq_0_then_la1 + // [108] if((byte) render_screen_render#15==(byte) 0) goto render_next::@1 -- vbuaa_eq_0_then_la1 cmp #0 beq __b1 - // [112] phi from render_next to render_next::@2 [phi:render_next->render_next::@2] - // [112] phi (byte*) render_next::screen_next_area#11 = (const byte*) PLAYFIELD_SCREEN_2+(const word) render_next::next_area_offset [phi:render_next->render_next::@2#0] -- pbuz1=pbuc1 + // [110] phi from render_next to render_next::@2 [phi:render_next->render_next::@2] + // [110] phi (byte*) render_next::screen_next_area#11 = (const byte*) PLAYFIELD_SCREEN_2+(const word) render_next::next_area_offset [phi:render_next->render_next::@2#0] -- pbuz1=pbuc1 lda #PLAYFIELD_SCREEN_2+next_area_offset sta.z screen_next_area+1 jmp __b2 - // [111] phi from render_next to render_next::@1 [phi:render_next->render_next::@1] + // [109] phi from render_next to render_next::@1 [phi:render_next->render_next::@1] // render_next::@1 __b1: - // [112] phi from render_next::@1 to render_next::@2 [phi:render_next::@1->render_next::@2] - // [112] phi (byte*) render_next::screen_next_area#11 = (const byte*) PLAYFIELD_SCREEN_1+(const word) render_next::next_area_offset [phi:render_next::@1->render_next::@2#0] -- pbuz1=pbuc1 + // [110] phi from render_next::@1 to render_next::@2 [phi:render_next::@1->render_next::@2] + // [110] phi (byte*) render_next::screen_next_area#11 = (const byte*) PLAYFIELD_SCREEN_1+(const word) render_next::next_area_offset [phi:render_next::@1->render_next::@2#0] -- pbuz1=pbuc1 lda #PLAYFIELD_SCREEN_1+next_area_offset @@ -22789,78 +22764,78 @@ render_next: { // render_next::@2 __b2: // next_piece_gfx = PIECES[next_piece_idx] - // [113] (byte~) render_next::$6 ← (byte) next_piece_idx#12 << (byte) 1 -- vbuyy=vbuxx_rol_1 + // [111] (byte~) render_next::$6 ← (byte) next_piece_idx#12 << (byte) 1 -- vbuyy=vbuxx_rol_1 txa asl tay // next_piece_char = PIECES_NEXT_CHARS[next_piece_idx] - // [114] (byte) render_next::next_piece_char#0 ← *((const byte*) PIECES_NEXT_CHARS + (byte) next_piece_idx#12) -- vbuz1=pbuc1_derefidx_vbuxx + // [112] (byte) render_next::next_piece_char#0 ← *((const byte*) PIECES_NEXT_CHARS + (byte) next_piece_idx#12) -- vbuz1=pbuc1_derefidx_vbuxx lda PIECES_NEXT_CHARS,x sta.z next_piece_char - // [115] (byte*) render_next::next_piece_gfx#9 ← (byte*)*((const word*) PIECES + (byte~) render_next::$6) -- pbuz1=pptc1_derefidx_vbuyy + // [113] (byte*) render_next::next_piece_gfx#9 ← (byte*)*((const word*) PIECES + (byte~) render_next::$6) -- pbuz1=pptc1_derefidx_vbuyy lda PIECES,y sta.z next_piece_gfx lda PIECES+1,y sta.z next_piece_gfx+1 - // [116] phi from render_next::@2 to render_next::@3 [phi:render_next::@2->render_next::@3] - // [116] phi (byte) render_next::l#7 = (byte) 0 [phi:render_next::@2->render_next::@3#0] -- vbuz1=vbuc1 + // [114] phi from render_next::@2 to render_next::@3 [phi:render_next::@2->render_next::@3] + // [114] phi (byte) render_next::l#7 = (byte) 0 [phi:render_next::@2->render_next::@3#0] -- vbuz1=vbuc1 lda #0 sta.z l - // [116] phi (byte*) render_next::screen_next_area#10 = (byte*) render_next::screen_next_area#11 [phi:render_next::@2->render_next::@3#1] -- register_copy - // [116] phi (byte*) render_next::next_piece_gfx#3 = (byte*) render_next::next_piece_gfx#9 [phi:render_next::@2->render_next::@3#2] -- register_copy - // [116] phi from render_next::@8 to render_next::@3 [phi:render_next::@8->render_next::@3] - // [116] phi (byte) render_next::l#7 = (byte) render_next::l#1 [phi:render_next::@8->render_next::@3#0] -- register_copy - // [116] phi (byte*) render_next::screen_next_area#10 = (byte*) render_next::screen_next_area#4 [phi:render_next::@8->render_next::@3#1] -- register_copy - // [116] phi (byte*) render_next::next_piece_gfx#3 = (byte*) render_next::next_piece_gfx#1 [phi:render_next::@8->render_next::@3#2] -- register_copy + // [114] phi (byte*) render_next::screen_next_area#10 = (byte*) render_next::screen_next_area#11 [phi:render_next::@2->render_next::@3#1] -- register_copy + // [114] phi (byte*) render_next::next_piece_gfx#3 = (byte*) render_next::next_piece_gfx#9 [phi:render_next::@2->render_next::@3#2] -- register_copy + // [114] phi from render_next::@8 to render_next::@3 [phi:render_next::@8->render_next::@3] + // [114] phi (byte) render_next::l#7 = (byte) render_next::l#1 [phi:render_next::@8->render_next::@3#0] -- register_copy + // [114] phi (byte*) render_next::screen_next_area#10 = (byte*) render_next::screen_next_area#4 [phi:render_next::@8->render_next::@3#1] -- register_copy + // [114] phi (byte*) render_next::next_piece_gfx#3 = (byte*) render_next::next_piece_gfx#1 [phi:render_next::@8->render_next::@3#2] -- register_copy // render_next::@3 __b3: - // [117] phi from render_next::@3 to render_next::@4 [phi:render_next::@3->render_next::@4] - // [117] phi (byte) render_next::c#2 = (byte) 0 [phi:render_next::@3->render_next::@4#0] -- vbuxx=vbuc1 + // [115] phi from render_next::@3 to render_next::@4 [phi:render_next::@3->render_next::@4] + // [115] phi (byte) render_next::c#2 = (byte) 0 [phi:render_next::@3->render_next::@4#0] -- vbuxx=vbuc1 ldx #0 - // [117] phi (byte*) render_next::screen_next_area#5 = (byte*) render_next::screen_next_area#10 [phi:render_next::@3->render_next::@4#1] -- register_copy - // [117] phi (byte*) render_next::next_piece_gfx#2 = (byte*) render_next::next_piece_gfx#3 [phi:render_next::@3->render_next::@4#2] -- register_copy - // [117] phi from render_next::@6 to render_next::@4 [phi:render_next::@6->render_next::@4] - // [117] phi (byte) render_next::c#2 = (byte) render_next::c#1 [phi:render_next::@6->render_next::@4#0] -- register_copy - // [117] phi (byte*) render_next::screen_next_area#5 = (byte*) render_next::screen_next_area#3 [phi:render_next::@6->render_next::@4#1] -- register_copy - // [117] phi (byte*) render_next::next_piece_gfx#2 = (byte*) render_next::next_piece_gfx#1 [phi:render_next::@6->render_next::@4#2] -- register_copy + // [115] phi (byte*) render_next::screen_next_area#5 = (byte*) render_next::screen_next_area#10 [phi:render_next::@3->render_next::@4#1] -- register_copy + // [115] phi (byte*) render_next::next_piece_gfx#2 = (byte*) render_next::next_piece_gfx#3 [phi:render_next::@3->render_next::@4#2] -- register_copy + // [115] phi from render_next::@6 to render_next::@4 [phi:render_next::@6->render_next::@4] + // [115] phi (byte) render_next::c#2 = (byte) render_next::c#1 [phi:render_next::@6->render_next::@4#0] -- register_copy + // [115] phi (byte*) render_next::screen_next_area#5 = (byte*) render_next::screen_next_area#3 [phi:render_next::@6->render_next::@4#1] -- register_copy + // [115] phi (byte*) render_next::next_piece_gfx#2 = (byte*) render_next::next_piece_gfx#1 [phi:render_next::@6->render_next::@4#2] -- register_copy // render_next::@4 __b4: // cell = *next_piece_gfx++ - // [118] (byte) render_next::cell#0 ← *((byte*) render_next::next_piece_gfx#2) -- vbuaa=_deref_pbuz1 + // [116] (byte) render_next::cell#0 ← *((byte*) render_next::next_piece_gfx#2) -- vbuaa=_deref_pbuz1 ldy #0 lda (next_piece_gfx),y - // [119] (byte*) render_next::next_piece_gfx#1 ← ++ (byte*) render_next::next_piece_gfx#2 -- pbuz1=_inc_pbuz1 + // [117] (byte*) render_next::next_piece_gfx#1 ← ++ (byte*) render_next::next_piece_gfx#2 -- pbuz1=_inc_pbuz1 inc.z next_piece_gfx bne !+ inc.z next_piece_gfx+1 !: // if(cell!=0) - // [120] if((byte) render_next::cell#0!=(byte) 0) goto render_next::@5 -- vbuaa_neq_0_then_la1 + // [118] if((byte) render_next::cell#0!=(byte) 0) goto render_next::@5 -- vbuaa_neq_0_then_la1 cmp #0 bne __b5 // render_next::@7 // *screen_next_area = 0 - // [121] *((byte*) render_next::screen_next_area#5) ← (byte) 0 -- _deref_pbuz1=vbuc1 + // [119] *((byte*) render_next::screen_next_area#5) ← (byte) 0 -- _deref_pbuz1=vbuc1 lda #0 tay sta (screen_next_area),y // render_next::@6 __b6: // screen_next_area++; - // [122] (byte*) render_next::screen_next_area#3 ← ++ (byte*) render_next::screen_next_area#5 -- pbuz1=_inc_pbuz1 + // [120] (byte*) render_next::screen_next_area#3 ← ++ (byte*) render_next::screen_next_area#5 -- pbuz1=_inc_pbuz1 inc.z screen_next_area bne !+ inc.z screen_next_area+1 !: // for(char c:0..3) - // [123] (byte) render_next::c#1 ← ++ (byte) render_next::c#2 -- vbuxx=_inc_vbuxx + // [121] (byte) render_next::c#1 ← ++ (byte) render_next::c#2 -- vbuxx=_inc_vbuxx inx - // [124] if((byte) render_next::c#1!=(byte) 4) goto render_next::@4 -- vbuxx_neq_vbuc1_then_la1 + // [122] if((byte) render_next::c#1!=(byte) 4) goto render_next::@4 -- vbuxx_neq_vbuc1_then_la1 cpx #4 bne __b4 // render_next::@8 // screen_next_area += 36 - // [125] (byte*) render_next::screen_next_area#4 ← (byte*) render_next::screen_next_area#3 + (byte) $24 -- pbuz1=pbuz1_plus_vbuc1 + // [123] (byte*) render_next::screen_next_area#4 ← (byte*) render_next::screen_next_area#3 + (byte) $24 -- pbuz1=pbuz1_plus_vbuc1 lda #$24 clc adc.z screen_next_area @@ -22869,20 +22844,20 @@ render_next: { inc.z screen_next_area+1 !: // for(char l:0..3) - // [126] (byte) render_next::l#1 ← ++ (byte) render_next::l#7 -- vbuz1=_inc_vbuz1 + // [124] (byte) render_next::l#1 ← ++ (byte) render_next::l#7 -- vbuz1=_inc_vbuz1 inc.z l - // [127] if((byte) render_next::l#1!=(byte) 4) goto render_next::@3 -- vbuz1_neq_vbuc1_then_la1 + // [125] if((byte) render_next::l#1!=(byte) 4) goto render_next::@3 -- vbuz1_neq_vbuc1_then_la1 lda #4 cmp.z l bne __b3 // render_next::@return // } - // [128] return + // [126] return rts // render_next::@5 __b5: // *screen_next_area = next_piece_char - // [129] *((byte*) render_next::screen_next_area#5) ← (byte) render_next::next_piece_char#0 -- _deref_pbuz1=vbuz2 + // [127] *((byte*) render_next::screen_next_area#5) ← (byte) render_next::next_piece_char#0 -- _deref_pbuz1=vbuz2 lda.z next_piece_char ldy #0 sta (screen_next_area),y @@ -22898,106 +22873,106 @@ render_moving: { .label i = $1f .label l = $d // ypos = current_ypos - // [131] (byte) render_moving::ypos#0 ← (byte) current_ypos#13 -- vbuz1=vbuxx + // [129] (byte) render_moving::ypos#0 ← (byte) current_ypos#13 -- vbuz1=vbuxx stx.z ypos - // [132] phi from render_moving to render_moving::@1 [phi:render_moving->render_moving::@1] - // [132] phi (byte) render_moving::l#4 = (byte) 0 [phi:render_moving->render_moving::@1#0] -- vbuz1=vbuc1 + // [130] phi from render_moving to render_moving::@1 [phi:render_moving->render_moving::@1] + // [130] phi (byte) render_moving::l#4 = (byte) 0 [phi:render_moving->render_moving::@1#0] -- vbuz1=vbuc1 lda #0 sta.z l - // [132] phi (byte) render_moving::i#3 = (byte) 0 [phi:render_moving->render_moving::@1#1] -- vbuz1=vbuc1 + // [130] phi (byte) render_moving::i#3 = (byte) 0 [phi:render_moving->render_moving::@1#1] -- vbuz1=vbuc1 sta.z i - // [132] phi (byte) render_moving::ypos#2 = (byte) render_moving::ypos#0 [phi:render_moving->render_moving::@1#2] -- register_copy - // [132] phi from render_moving::@3 to render_moving::@1 [phi:render_moving::@3->render_moving::@1] - // [132] phi (byte) render_moving::l#4 = (byte) render_moving::l#1 [phi:render_moving::@3->render_moving::@1#0] -- register_copy - // [132] phi (byte) render_moving::i#3 = (byte) render_moving::i#8 [phi:render_moving::@3->render_moving::@1#1] -- register_copy - // [132] phi (byte) render_moving::ypos#2 = (byte) render_moving::ypos#1 [phi:render_moving::@3->render_moving::@1#2] -- register_copy + // [130] phi (byte) render_moving::ypos#2 = (byte) render_moving::ypos#0 [phi:render_moving->render_moving::@1#2] -- register_copy + // [130] phi from render_moving::@3 to render_moving::@1 [phi:render_moving::@3->render_moving::@1] + // [130] phi (byte) render_moving::l#4 = (byte) render_moving::l#1 [phi:render_moving::@3->render_moving::@1#0] -- register_copy + // [130] phi (byte) render_moving::i#3 = (byte) render_moving::i#8 [phi:render_moving::@3->render_moving::@1#1] -- register_copy + // [130] phi (byte) render_moving::ypos#2 = (byte) render_moving::ypos#1 [phi:render_moving::@3->render_moving::@1#2] -- register_copy // render_moving::@1 __b1: // if(ypos>1) - // [133] if((byte) render_moving::ypos#2>=(byte) 1+(byte) 1) goto render_moving::@2 -- vbuz1_ge_vbuc1_then_la1 + // [131] if((byte) render_moving::ypos#2>=(byte) 1+(byte) 1) goto render_moving::@2 -- vbuz1_ge_vbuc1_then_la1 lda.z ypos cmp #1+1 bcs __b2 // render_moving::@7 // i += 4 - // [134] (byte) render_moving::i#1 ← (byte) render_moving::i#3 + (byte) 4 -- vbuz1=vbuz1_plus_vbuc1 + // [132] (byte) render_moving::i#1 ← (byte) render_moving::i#3 + (byte) 4 -- vbuz1=vbuz1_plus_vbuc1 lax.z i axs #-[4] stx.z i - // [135] phi from render_moving::@5 render_moving::@7 to render_moving::@3 [phi:render_moving::@5/render_moving::@7->render_moving::@3] - // [135] phi (byte) render_moving::i#8 = (byte) render_moving::i#2 [phi:render_moving::@5/render_moving::@7->render_moving::@3#0] -- register_copy + // [133] phi from render_moving::@5 render_moving::@7 to render_moving::@3 [phi:render_moving::@5/render_moving::@7->render_moving::@3] + // [133] phi (byte) render_moving::i#8 = (byte) render_moving::i#2 [phi:render_moving::@5/render_moving::@7->render_moving::@3#0] -- register_copy // render_moving::@3 __b3: // ypos++; - // [136] (byte) render_moving::ypos#1 ← ++ (byte) render_moving::ypos#2 -- vbuz1=_inc_vbuz1 + // [134] (byte) render_moving::ypos#1 ← ++ (byte) render_moving::ypos#2 -- vbuz1=_inc_vbuz1 inc.z ypos // for(char l:0..3) - // [137] (byte) render_moving::l#1 ← ++ (byte) render_moving::l#4 -- vbuz1=_inc_vbuz1 + // [135] (byte) render_moving::l#1 ← ++ (byte) render_moving::l#4 -- vbuz1=_inc_vbuz1 inc.z l - // [138] if((byte) render_moving::l#1!=(byte) 4) goto render_moving::@1 -- vbuz1_neq_vbuc1_then_la1 + // [136] if((byte) render_moving::l#1!=(byte) 4) goto render_moving::@1 -- vbuz1_neq_vbuc1_then_la1 lda #4 cmp.z l bne __b1 // render_moving::@return // } - // [139] return + // [137] return rts // render_moving::@2 __b2: // render_screen_render+ypos - // [140] (byte~) render_moving::$1 ← (byte) render_screen_render#33 + (byte) render_moving::ypos#2 -- vbuaa=vbuz1_plus_vbuz2 + // [138] (byte~) render_moving::$1 ← (byte) render_screen_render#33 + (byte) render_moving::ypos#2 -- vbuaa=vbuz1_plus_vbuz2 lda.z render_screen_render_1 clc adc.z ypos // screen_line = screen_lines_1[render_screen_render+ypos] - // [141] (byte~) render_moving::$6 ← (byte~) render_moving::$1 << (byte) 1 -- vbuaa=vbuaa_rol_1 + // [139] (byte~) render_moving::$6 ← (byte~) render_moving::$1 << (byte) 1 -- vbuaa=vbuaa_rol_1 asl - // [142] (byte*) render_moving::screen_line#0 ← *((const byte**) screen_lines_1 + (byte~) render_moving::$6) -- pbuz1=pptc1_derefidx_vbuaa + // [140] (byte*) render_moving::screen_line#0 ← *((const byte**) screen_lines_1 + (byte~) render_moving::$6) -- pbuz1=pptc1_derefidx_vbuaa tay lda screen_lines_1,y sta.z screen_line lda screen_lines_1+1,y sta.z screen_line+1 // xpos = current_xpos - // [143] (byte) render_moving::xpos#0 ← (byte) current_xpos#59 -- vbuz1=vbuz2 + // [141] (byte) render_moving::xpos#0 ← (byte) current_xpos#59 -- vbuz1=vbuz2 lda.z current_xpos_1 sta.z xpos - // [144] phi from render_moving::@2 to render_moving::@4 [phi:render_moving::@2->render_moving::@4] - // [144] phi (byte) render_moving::c#2 = (byte) 0 [phi:render_moving::@2->render_moving::@4#0] -- vbuxx=vbuc1 + // [142] phi from render_moving::@2 to render_moving::@4 [phi:render_moving::@2->render_moving::@4] + // [142] phi (byte) render_moving::c#2 = (byte) 0 [phi:render_moving::@2->render_moving::@4#0] -- vbuxx=vbuc1 ldx #0 - // [144] phi (byte) render_moving::xpos#2 = (byte) render_moving::xpos#0 [phi:render_moving::@2->render_moving::@4#1] -- register_copy - // [144] phi (byte) render_moving::i#4 = (byte) render_moving::i#3 [phi:render_moving::@2->render_moving::@4#2] -- register_copy - // [144] phi from render_moving::@5 to render_moving::@4 [phi:render_moving::@5->render_moving::@4] - // [144] phi (byte) render_moving::c#2 = (byte) render_moving::c#1 [phi:render_moving::@5->render_moving::@4#0] -- register_copy - // [144] phi (byte) render_moving::xpos#2 = (byte) render_moving::xpos#1 [phi:render_moving::@5->render_moving::@4#1] -- register_copy - // [144] phi (byte) render_moving::i#4 = (byte) render_moving::i#2 [phi:render_moving::@5->render_moving::@4#2] -- register_copy + // [142] phi (byte) render_moving::xpos#2 = (byte) render_moving::xpos#0 [phi:render_moving::@2->render_moving::@4#1] -- register_copy + // [142] phi (byte) render_moving::i#4 = (byte) render_moving::i#3 [phi:render_moving::@2->render_moving::@4#2] -- register_copy + // [142] phi from render_moving::@5 to render_moving::@4 [phi:render_moving::@5->render_moving::@4] + // [142] phi (byte) render_moving::c#2 = (byte) render_moving::c#1 [phi:render_moving::@5->render_moving::@4#0] -- register_copy + // [142] phi (byte) render_moving::xpos#2 = (byte) render_moving::xpos#1 [phi:render_moving::@5->render_moving::@4#1] -- register_copy + // [142] phi (byte) render_moving::i#4 = (byte) render_moving::i#2 [phi:render_moving::@5->render_moving::@4#2] -- register_copy // render_moving::@4 __b4: // current_cell = current_piece_gfx[i++] - // [145] (byte) render_moving::current_cell#0 ← *((byte*) current_piece_gfx#64 + (byte) render_moving::i#4) -- vbuaa=pbuz1_derefidx_vbuz2 + // [143] (byte) render_moving::current_cell#0 ← *((byte*) current_piece_gfx#64 + (byte) render_moving::i#4) -- vbuaa=pbuz1_derefidx_vbuz2 ldy.z i lda (current_piece_gfx_1),y - // [146] (byte) render_moving::i#2 ← ++ (byte) render_moving::i#4 -- vbuz1=_inc_vbuz1 + // [144] (byte) render_moving::i#2 ← ++ (byte) render_moving::i#4 -- vbuz1=_inc_vbuz1 inc.z i // if(current_cell!=0) - // [147] if((byte) render_moving::current_cell#0==(byte) 0) goto render_moving::@5 -- vbuaa_eq_0_then_la1 + // [145] if((byte) render_moving::current_cell#0==(byte) 0) goto render_moving::@5 -- vbuaa_eq_0_then_la1 cmp #0 beq __b5 // render_moving::@6 // screen_line[xpos] = current_piece_char - // [148] *((byte*) render_moving::screen_line#0 + (byte) render_moving::xpos#2) ← (byte) current_piece_char#68 -- pbuz1_derefidx_vbuz2=vbuz3 + // [146] *((byte*) render_moving::screen_line#0 + (byte) render_moving::xpos#2) ← (byte) current_piece_char#68 -- pbuz1_derefidx_vbuz2=vbuz3 lda.z current_piece_char_1 ldy.z xpos sta (screen_line),y // render_moving::@5 __b5: // xpos++; - // [149] (byte) render_moving::xpos#1 ← ++ (byte) render_moving::xpos#2 -- vbuz1=_inc_vbuz1 + // [147] (byte) render_moving::xpos#1 ← ++ (byte) render_moving::xpos#2 -- vbuz1=_inc_vbuz1 inc.z xpos // for(char c:0..3) - // [150] (byte) render_moving::c#1 ← ++ (byte) render_moving::c#2 -- vbuxx=_inc_vbuxx + // [148] (byte) render_moving::c#1 ← ++ (byte) render_moving::c#2 -- vbuxx=_inc_vbuxx inx - // [151] if((byte) render_moving::c#1!=(byte) 4) goto render_moving::@4 -- vbuxx_neq_vbuc1_then_la1 + // [149] if((byte) render_moving::c#1!=(byte) 4) goto render_moving::@4 -- vbuxx_neq_vbuc1_then_la1 cpx #4 bne __b4 jmp __b3 @@ -23010,76 +22985,76 @@ render_playfield: { .label i = $a .label c = $b .label l = 9 - // [153] phi from render_playfield to render_playfield::@1 [phi:render_playfield->render_playfield::@1] - // [153] phi (byte) render_playfield::i#3 = (const byte) PLAYFIELD_COLS*(byte) 2 [phi:render_playfield->render_playfield::@1#0] -- vbuz1=vbuc1 + // [151] phi from render_playfield to render_playfield::@1 [phi:render_playfield->render_playfield::@1] + // [151] phi (byte) render_playfield::i#3 = (const byte) PLAYFIELD_COLS*(byte) 2 [phi:render_playfield->render_playfield::@1#0] -- vbuz1=vbuc1 lda #PLAYFIELD_COLS*2 sta.z i - // [153] phi (byte) render_playfield::l#2 = (byte) 2 [phi:render_playfield->render_playfield::@1#1] -- vbuz1=vbuc1 + // [151] phi (byte) render_playfield::l#2 = (byte) 2 [phi:render_playfield->render_playfield::@1#1] -- vbuz1=vbuc1 lda #2 sta.z l - // [153] phi from render_playfield::@3 to render_playfield::@1 [phi:render_playfield::@3->render_playfield::@1] - // [153] phi (byte) render_playfield::i#3 = (byte) render_playfield::i#1 [phi:render_playfield::@3->render_playfield::@1#0] -- register_copy - // [153] phi (byte) render_playfield::l#2 = (byte) render_playfield::l#1 [phi:render_playfield::@3->render_playfield::@1#1] -- register_copy + // [151] phi from render_playfield::@3 to render_playfield::@1 [phi:render_playfield::@3->render_playfield::@1] + // [151] phi (byte) render_playfield::i#3 = (byte) render_playfield::i#1 [phi:render_playfield::@3->render_playfield::@1#0] -- register_copy + // [151] phi (byte) render_playfield::l#2 = (byte) render_playfield::l#1 [phi:render_playfield::@3->render_playfield::@1#1] -- register_copy // render_playfield::@1 __b1: // render_screen_render+l - // [154] (byte~) render_playfield::$0 ← (byte) render_screen_render#22 + (byte) render_playfield::l#2 -- vbuaa=vbuxx_plus_vbuz1 + // [152] (byte~) render_playfield::$0 ← (byte) render_screen_render#22 + (byte) render_playfield::l#2 -- vbuaa=vbuxx_plus_vbuz1 txa clc adc.z l // screen_line = screen_lines_1[render_screen_render+l] - // [155] (byte~) render_playfield::$3 ← (byte~) render_playfield::$0 << (byte) 1 -- vbuaa=vbuaa_rol_1 + // [153] (byte~) render_playfield::$3 ← (byte~) render_playfield::$0 << (byte) 1 -- vbuaa=vbuaa_rol_1 asl - // [156] (byte*) render_playfield::screen_line#0 ← *((const byte**) screen_lines_1 + (byte~) render_playfield::$3) -- pbuz1=pptc1_derefidx_vbuaa + // [154] (byte*) render_playfield::screen_line#0 ← *((const byte**) screen_lines_1 + (byte~) render_playfield::$3) -- pbuz1=pptc1_derefidx_vbuaa tay lda screen_lines_1,y sta.z screen_line lda screen_lines_1+1,y sta.z screen_line+1 - // [157] phi from render_playfield::@1 to render_playfield::@2 [phi:render_playfield::@1->render_playfield::@2] - // [157] phi (byte) render_playfield::c#2 = (byte) 0 [phi:render_playfield::@1->render_playfield::@2#0] -- vbuz1=vbuc1 + // [155] phi from render_playfield::@1 to render_playfield::@2 [phi:render_playfield::@1->render_playfield::@2] + // [155] phi (byte) render_playfield::c#2 = (byte) 0 [phi:render_playfield::@1->render_playfield::@2#0] -- vbuz1=vbuc1 lda #0 sta.z c - // [157] phi (byte*) render_playfield::screen_line#2 = (byte*) render_playfield::screen_line#0 [phi:render_playfield::@1->render_playfield::@2#1] -- register_copy - // [157] phi (byte) render_playfield::i#2 = (byte) render_playfield::i#3 [phi:render_playfield::@1->render_playfield::@2#2] -- register_copy - // [157] phi from render_playfield::@2 to render_playfield::@2 [phi:render_playfield::@2->render_playfield::@2] - // [157] phi (byte) render_playfield::c#2 = (byte) render_playfield::c#1 [phi:render_playfield::@2->render_playfield::@2#0] -- register_copy - // [157] phi (byte*) render_playfield::screen_line#2 = (byte*) render_playfield::screen_line#1 [phi:render_playfield::@2->render_playfield::@2#1] -- register_copy - // [157] phi (byte) render_playfield::i#2 = (byte) render_playfield::i#1 [phi:render_playfield::@2->render_playfield::@2#2] -- register_copy + // [155] phi (byte*) render_playfield::screen_line#2 = (byte*) render_playfield::screen_line#0 [phi:render_playfield::@1->render_playfield::@2#1] -- register_copy + // [155] phi (byte) render_playfield::i#2 = (byte) render_playfield::i#3 [phi:render_playfield::@1->render_playfield::@2#2] -- register_copy + // [155] phi from render_playfield::@2 to render_playfield::@2 [phi:render_playfield::@2->render_playfield::@2] + // [155] phi (byte) render_playfield::c#2 = (byte) render_playfield::c#1 [phi:render_playfield::@2->render_playfield::@2#0] -- register_copy + // [155] phi (byte*) render_playfield::screen_line#2 = (byte*) render_playfield::screen_line#1 [phi:render_playfield::@2->render_playfield::@2#1] -- register_copy + // [155] phi (byte) render_playfield::i#2 = (byte) render_playfield::i#1 [phi:render_playfield::@2->render_playfield::@2#2] -- register_copy // render_playfield::@2 __b2: // *(screen_line++) = playfield[i++] - // [158] *((byte*) render_playfield::screen_line#2) ← *((const byte*) playfield + (byte) render_playfield::i#2) -- _deref_pbuz1=pbuc1_derefidx_vbuz2 + // [156] *((byte*) render_playfield::screen_line#2) ← *((const byte*) playfield + (byte) render_playfield::i#2) -- _deref_pbuz1=pbuc1_derefidx_vbuz2 ldy.z i lda playfield,y ldy #0 sta (screen_line),y // *(screen_line++) = playfield[i++]; - // [159] (byte*) render_playfield::screen_line#1 ← ++ (byte*) render_playfield::screen_line#2 -- pbuz1=_inc_pbuz1 + // [157] (byte*) render_playfield::screen_line#1 ← ++ (byte*) render_playfield::screen_line#2 -- pbuz1=_inc_pbuz1 inc.z screen_line bne !+ inc.z screen_line+1 !: - // [160] (byte) render_playfield::i#1 ← ++ (byte) render_playfield::i#2 -- vbuz1=_inc_vbuz1 + // [158] (byte) render_playfield::i#1 ← ++ (byte) render_playfield::i#2 -- vbuz1=_inc_vbuz1 inc.z i // for(char c:0..PLAYFIELD_COLS-1) - // [161] (byte) render_playfield::c#1 ← ++ (byte) render_playfield::c#2 -- vbuz1=_inc_vbuz1 + // [159] (byte) render_playfield::c#1 ← ++ (byte) render_playfield::c#2 -- vbuz1=_inc_vbuz1 inc.z c - // [162] if((byte) render_playfield::c#1!=(const byte) PLAYFIELD_COLS-(byte) 1+(byte) 1) goto render_playfield::@2 -- vbuz1_neq_vbuc1_then_la1 + // [160] if((byte) render_playfield::c#1!=(const byte) PLAYFIELD_COLS-(byte) 1+(byte) 1) goto render_playfield::@2 -- vbuz1_neq_vbuc1_then_la1 lda #PLAYFIELD_COLS-1+1 cmp.z c bne __b2 // render_playfield::@3 // for(char l:2..PLAYFIELD_LINES-1) - // [163] (byte) render_playfield::l#1 ← ++ (byte) render_playfield::l#2 -- vbuz1=_inc_vbuz1 + // [161] (byte) render_playfield::l#1 ← ++ (byte) render_playfield::l#2 -- vbuz1=_inc_vbuz1 inc.z l - // [164] if((byte) render_playfield::l#1!=(const byte) PLAYFIELD_LINES-(byte) 1+(byte) 1) goto render_playfield::@1 -- vbuz1_neq_vbuc1_then_la1 + // [162] if((byte) render_playfield::l#1!=(const byte) PLAYFIELD_LINES-(byte) 1+(byte) 1) goto render_playfield::@1 -- vbuz1_neq_vbuc1_then_la1 lda #PLAYFIELD_LINES-1+1 cmp.z l bne __b1 // render_playfield::@return // } - // [165] return + // [163] return rts } // play_movement @@ -23092,55 +23067,55 @@ play_movement: { .label return = $d .label key_event = $1f // play_move_down(key_event) - // [166] (byte) play_move_down::key_event#0 ← (byte) play_movement::key_event#0 -- vbuaa=vbuz1 + // [164] (byte) play_move_down::key_event#0 ← (byte) play_movement::key_event#0 -- vbuaa=vbuz1 lda.z key_event - // [167] call play_move_down + // [165] call play_move_down jsr play_move_down - // [168] (byte) play_move_down::return#0 ← (byte) play_move_down::return#3 -- vbuaa=vbuxx + // [166] (byte) play_move_down::return#0 ← (byte) play_move_down::return#3 -- vbuaa=vbuxx txa // play_movement::@2 // render += play_move_down(key_event) - // [169] (byte) play_movement::render#1 ← (byte) play_move_down::return#0 -- vbuz1=vbuaa + // [167] (byte) play_movement::render#1 ← (byte) play_move_down::return#0 -- vbuz1=vbuaa sta.z render // if(game_over!=0) - // [170] if((byte) game_over#15==(byte) 0) goto play_movement::@1 -- vbuz1_eq_0_then_la1 + // [168] if((byte) game_over#15==(byte) 0) goto play_movement::@1 -- vbuz1_eq_0_then_la1 lda.z game_over cmp #0 beq __b1 - // [171] phi from play_movement::@2 play_movement::@4 to play_movement::@return [phi:play_movement::@2/play_movement::@4->play_movement::@return] - // [171] phi (byte) current_xpos#19 = (byte) current_xpos#22 [phi:play_movement::@2/play_movement::@4->play_movement::@return#0] -- register_copy - // [171] phi (byte*) current_piece_gfx#18 = (byte*) current_piece_gfx#20 [phi:play_movement::@2/play_movement::@4->play_movement::@return#1] -- register_copy - // [171] phi (byte) current_orientation#17 = (byte) current_orientation#20 [phi:play_movement::@2/play_movement::@4->play_movement::@return#2] -- register_copy - // [171] phi (byte) play_movement::return#2 = (byte) play_movement::render#1 [phi:play_movement::@2/play_movement::@4->play_movement::@return#3] -- register_copy + // [169] phi from play_movement::@2 play_movement::@4 to play_movement::@return [phi:play_movement::@2/play_movement::@4->play_movement::@return] + // [169] phi (byte) current_xpos#19 = (byte) current_xpos#22 [phi:play_movement::@2/play_movement::@4->play_movement::@return#0] -- register_copy + // [169] phi (byte*) current_piece_gfx#18 = (byte*) current_piece_gfx#20 [phi:play_movement::@2/play_movement::@4->play_movement::@return#1] -- register_copy + // [169] phi (byte) current_orientation#17 = (byte) current_orientation#20 [phi:play_movement::@2/play_movement::@4->play_movement::@return#2] -- register_copy + // [169] phi (byte) play_movement::return#2 = (byte) play_movement::render#1 [phi:play_movement::@2/play_movement::@4->play_movement::@return#3] -- register_copy // play_movement::@return // } - // [172] return + // [170] return rts // play_movement::@1 __b1: // play_move_leftright(key_event) - // [173] (byte) play_move_leftright::key_event#0 ← (byte) play_movement::key_event#0 -- vbuaa=vbuz1 + // [171] (byte) play_move_leftright::key_event#0 ← (byte) play_movement::key_event#0 -- vbuaa=vbuz1 lda.z key_event - // [174] call play_move_leftright + // [172] call play_move_leftright jsr play_move_leftright - // [175] (byte) play_move_leftright::return#0 ← (byte) play_move_leftright::return#2 + // [173] (byte) play_move_leftright::return#0 ← (byte) play_move_leftright::return#2 // play_movement::@3 - // [176] (byte~) play_movement::$3 ← (byte) play_move_leftright::return#0 + // [174] (byte~) play_movement::$3 ← (byte) play_move_leftright::return#0 // render += play_move_leftright(key_event) - // [177] (byte) play_movement::render#2 ← (byte) play_movement::render#1 + (byte~) play_movement::$3 -- vbuz1=vbuz1_plus_vbuaa + // [175] (byte) play_movement::render#2 ← (byte) play_movement::render#1 + (byte~) play_movement::$3 -- vbuz1=vbuz1_plus_vbuaa clc adc.z render sta.z render // play_move_rotate(key_event) - // [178] (byte) play_move_rotate::key_event#0 ← (byte) play_movement::key_event#0 -- vbuaa=vbuz1 + // [176] (byte) play_move_rotate::key_event#0 ← (byte) play_movement::key_event#0 -- vbuaa=vbuz1 lda.z key_event - // [179] call play_move_rotate + // [177] call play_move_rotate jsr play_move_rotate - // [180] (byte) play_move_rotate::return#0 ← (byte) play_move_rotate::return#2 + // [178] (byte) play_move_rotate::return#0 ← (byte) play_move_rotate::return#2 // play_movement::@4 - // [181] (byte~) play_movement::$4 ← (byte) play_move_rotate::return#0 + // [179] (byte~) play_movement::$4 ← (byte) play_move_rotate::return#0 // render += play_move_rotate(key_event) - // [182] (byte) play_movement::return#0 ← (byte) play_movement::render#2 + (byte~) play_movement::$4 -- vbuz1=vbuz1_plus_vbuaa + // [180] (byte) play_movement::return#0 ← (byte) play_movement::render#2 + (byte~) play_movement::$4 -- vbuz1=vbuz1_plus_vbuaa clc adc.z return sta.z return @@ -23154,95 +23129,95 @@ play_move_rotate: { // Handle keyboard events .label orientation = $1f // if(key_event==KEY_Z) - // [183] if((byte) play_move_rotate::key_event#0==(const byte) KEY_Z) goto play_move_rotate::@1 -- vbuaa_eq_vbuc1_then_la1 + // [181] if((byte) play_move_rotate::key_event#0==(const byte) KEY_Z) goto play_move_rotate::@1 -- vbuaa_eq_vbuc1_then_la1 cmp #KEY_Z beq __b1 // play_move_rotate::@4 // if(key_event==KEY_X) - // [184] if((byte) play_move_rotate::key_event#0==(const byte) KEY_X) goto play_move_rotate::@2 -- vbuaa_eq_vbuc1_then_la1 + // [182] if((byte) play_move_rotate::key_event#0==(const byte) KEY_X) goto play_move_rotate::@2 -- vbuaa_eq_vbuc1_then_la1 cmp #KEY_X beq __b2 - // [185] phi from play_move_rotate::@4 play_move_rotate::@6 to play_move_rotate::@return [phi:play_move_rotate::@4/play_move_rotate::@6->play_move_rotate::@return] + // [183] phi from play_move_rotate::@4 play_move_rotate::@6 to play_move_rotate::@return [phi:play_move_rotate::@4/play_move_rotate::@6->play_move_rotate::@return] b1: - // [185] phi (byte*) current_piece_gfx#21 = (byte*) current_piece_gfx#20 [phi:play_move_rotate::@4/play_move_rotate::@6->play_move_rotate::@return#0] -- register_copy - // [185] phi (byte) current_orientation#25 = (byte) current_orientation#20 [phi:play_move_rotate::@4/play_move_rotate::@6->play_move_rotate::@return#1] -- register_copy - // [185] phi (byte) play_move_rotate::return#2 = (byte) 0 [phi:play_move_rotate::@4/play_move_rotate::@6->play_move_rotate::@return#2] -- vbuaa=vbuc1 + // [183] phi (byte*) current_piece_gfx#21 = (byte*) current_piece_gfx#20 [phi:play_move_rotate::@4/play_move_rotate::@6->play_move_rotate::@return#0] -- register_copy + // [183] phi (byte) current_orientation#25 = (byte) current_orientation#20 [phi:play_move_rotate::@4/play_move_rotate::@6->play_move_rotate::@return#1] -- register_copy + // [183] phi (byte) play_move_rotate::return#2 = (byte) 0 [phi:play_move_rotate::@4/play_move_rotate::@6->play_move_rotate::@return#2] -- vbuaa=vbuc1 lda #0 // play_move_rotate::@return // } - // [186] return + // [184] return rts // play_move_rotate::@2 __b2: // current_orientation+0x10 - // [187] (byte~) play_move_rotate::$5 ← (byte) current_orientation#20 + (byte) $10 -- vbuxx=vbuz1_plus_vbuc1 + // [185] (byte~) play_move_rotate::$5 ← (byte) current_orientation#20 + (byte) $10 -- vbuxx=vbuz1_plus_vbuc1 lax.z current_orientation axs #-[$10] // orientation = (current_orientation+0x10)&0x3f - // [188] (byte) play_move_rotate::orientation#2 ← (byte~) play_move_rotate::$5 & (byte) $3f -- vbuz1=vbuxx_band_vbuc1 + // [186] (byte) play_move_rotate::orientation#2 ← (byte~) play_move_rotate::$5 & (byte) $3f -- vbuz1=vbuxx_band_vbuc1 lda #$3f sax.z orientation - // [189] phi from play_move_rotate::@1 play_move_rotate::@2 to play_move_rotate::@3 [phi:play_move_rotate::@1/play_move_rotate::@2->play_move_rotate::@3] - // [189] 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::@3#0] -- register_copy + // [187] phi from play_move_rotate::@1 play_move_rotate::@2 to play_move_rotate::@3 [phi:play_move_rotate::@1/play_move_rotate::@2->play_move_rotate::@3] + // [187] 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::@3#0] -- register_copy // play_move_rotate::@3 __b3: // play_collision(current_xpos, current_ypos, orientation) - // [190] (byte) play_collision::xpos#3 ← (byte) current_xpos#26 -- vbuz1=vbuz2 + // [188] (byte) play_collision::xpos#3 ← (byte) current_xpos#26 -- vbuz1=vbuz2 lda.z current_xpos sta.z play_collision.xpos - // [191] (byte) play_collision::ypos#3 ← (byte) current_ypos#19 -- vbuz1=vbuz2 + // [189] (byte) play_collision::ypos#3 ← (byte) current_ypos#19 -- vbuz1=vbuz2 lda.z current_ypos sta.z play_collision.ypos - // [192] (byte) play_collision::orientation#3 ← (byte) play_move_rotate::orientation#3 -- vbuxx=vbuz1 + // [190] (byte) play_collision::orientation#3 ← (byte) play_move_rotate::orientation#3 -- vbuxx=vbuz1 ldx.z orientation - // [193] (byte*) current_piece#98 ← (byte*) current_piece#15 -- pbuz1=pbuz2 + // [191] (byte*) current_piece#98 ← (byte*) current_piece#15 -- pbuz1=pbuz2 lda.z current_piece sta.z current_piece_1 lda.z current_piece+1 sta.z current_piece_1+1 // play_collision(current_xpos, current_ypos, orientation) - // [194] call play_collision - // [202] phi from play_move_rotate::@3 to play_collision [phi:play_move_rotate::@3->play_collision] - // [202] phi (byte) play_collision::xpos#6 = (byte) play_collision::xpos#3 [phi:play_move_rotate::@3->play_collision#0] -- register_copy - // [202] phi (byte) play_collision::yp#0 = (byte) play_collision::ypos#3 [phi:play_move_rotate::@3->play_collision#1] -- register_copy - // [202] phi (byte) play_collision::orientation#5 = (byte) play_collision::orientation#3 [phi:play_move_rotate::@3->play_collision#2] -- register_copy - // [202] phi (byte*) current_piece#17 = (byte*) current_piece#98 [phi:play_move_rotate::@3->play_collision#3] -- register_copy + // [192] call play_collision + // [200] phi from play_move_rotate::@3 to play_collision [phi:play_move_rotate::@3->play_collision] + // [200] phi (byte) play_collision::xpos#6 = (byte) play_collision::xpos#3 [phi:play_move_rotate::@3->play_collision#0] -- register_copy + // [200] phi (byte) play_collision::yp#0 = (byte) play_collision::ypos#3 [phi:play_move_rotate::@3->play_collision#1] -- register_copy + // [200] phi (byte) play_collision::orientation#5 = (byte) play_collision::orientation#3 [phi:play_move_rotate::@3->play_collision#2] -- register_copy + // [200] phi (byte*) current_piece#17 = (byte*) current_piece#98 [phi:play_move_rotate::@3->play_collision#3] -- register_copy jsr play_collision // play_collision(current_xpos, current_ypos, orientation) - // [195] (byte) play_collision::return#14 ← (byte) play_collision::return#15 + // [193] (byte) play_collision::return#14 ← (byte) play_collision::return#15 // play_move_rotate::@6 - // [196] (byte~) play_move_rotate::$2 ← (byte) play_collision::return#14 + // [194] (byte~) play_move_rotate::$2 ← (byte) play_collision::return#14 // if(play_collision(current_xpos, current_ypos, orientation) == COLLISION_NONE) - // [197] if((byte~) play_move_rotate::$2!=(const byte) COLLISION_NONE) goto play_move_rotate::@return -- vbuaa_neq_vbuc1_then_la1 + // [195] if((byte~) play_move_rotate::$2!=(const byte) COLLISION_NONE) goto play_move_rotate::@return -- vbuaa_neq_vbuc1_then_la1 cmp #COLLISION_NONE bne b1 // play_move_rotate::@5 // current_orientation = orientation - // [198] (byte) current_orientation#7 ← (byte) play_move_rotate::orientation#3 -- vbuz1=vbuz2 + // [196] (byte) current_orientation#7 ← (byte) play_move_rotate::orientation#3 -- vbuz1=vbuz2 lda.z orientation sta.z current_orientation // current_piece_gfx = current_piece + current_orientation - // [199] (byte*) current_piece_gfx#7 ← (byte*) current_piece#15 + (byte) current_orientation#7 -- pbuz1=pbuz2_plus_vbuz3 + // [197] (byte*) current_piece_gfx#7 ← (byte*) current_piece#15 + (byte) current_orientation#7 -- pbuz1=pbuz2_plus_vbuz3 clc adc.z current_piece sta.z current_piece_gfx lda #0 adc.z current_piece+1 sta.z current_piece_gfx+1 - // [185] phi from play_move_rotate::@5 to play_move_rotate::@return [phi:play_move_rotate::@5->play_move_rotate::@return] - // [185] phi (byte*) current_piece_gfx#21 = (byte*) current_piece_gfx#7 [phi:play_move_rotate::@5->play_move_rotate::@return#0] -- register_copy - // [185] phi (byte) current_orientation#25 = (byte) current_orientation#7 [phi:play_move_rotate::@5->play_move_rotate::@return#1] -- register_copy - // [185] phi (byte) play_move_rotate::return#2 = (byte) 1 [phi:play_move_rotate::@5->play_move_rotate::@return#2] -- vbuaa=vbuc1 + // [183] phi from play_move_rotate::@5 to play_move_rotate::@return [phi:play_move_rotate::@5->play_move_rotate::@return] + // [183] phi (byte*) current_piece_gfx#21 = (byte*) current_piece_gfx#7 [phi:play_move_rotate::@5->play_move_rotate::@return#0] -- register_copy + // [183] phi (byte) current_orientation#25 = (byte) current_orientation#7 [phi:play_move_rotate::@5->play_move_rotate::@return#1] -- register_copy + // [183] phi (byte) play_move_rotate::return#2 = (byte) 1 [phi:play_move_rotate::@5->play_move_rotate::@return#2] -- vbuaa=vbuc1 lda #1 rts // play_move_rotate::@1 __b1: // current_orientation-0x10 - // [200] (byte~) play_move_rotate::$7 ← (byte) current_orientation#20 - (byte) $10 -- vbuxx=vbuz1_minus_vbuc1 + // [198] (byte~) play_move_rotate::$7 ← (byte) current_orientation#20 - (byte) $10 -- vbuxx=vbuz1_minus_vbuc1 lax.z current_orientation axs #$10 // orientation = (current_orientation-0x10)&0x3f - // [201] (byte) play_move_rotate::orientation#1 ← (byte~) play_move_rotate::$7 & (byte) $3f -- vbuz1=vbuxx_band_vbuc1 + // [199] (byte) play_move_rotate::orientation#1 ← (byte~) play_move_rotate::$7 & (byte) $3f -- vbuz1=vbuxx_band_vbuc1 lda #$3f sax.z orientation jmp __b3 @@ -23262,7 +23237,7 @@ play_collision: { .label l = 9 .label i_1 = $a // piece_gfx = current_piece + orientation - // [203] (byte*) play_collision::piece_gfx#0 ← (byte*) current_piece#17 + (byte) play_collision::orientation#5 -- pbuz1=pbuz1_plus_vbuxx + // [201] (byte*) play_collision::piece_gfx#0 ← (byte*) current_piece#17 + (byte) play_collision::orientation#5 -- pbuz1=pbuz1_plus_vbuxx txa clc adc.z piece_gfx @@ -23270,140 +23245,140 @@ play_collision: { bcc !+ inc.z piece_gfx+1 !: - // [204] phi from play_collision to play_collision::@1 [phi:play_collision->play_collision::@1] - // [204] phi (byte) play_collision::l#6 = (byte) 0 [phi:play_collision->play_collision::@1#0] -- vbuz1=vbuc1 + // [202] phi from play_collision to play_collision::@1 [phi:play_collision->play_collision::@1] + // [202] phi (byte) play_collision::l#6 = (byte) 0 [phi:play_collision->play_collision::@1#0] -- vbuz1=vbuc1 lda #0 sta.z l - // [204] phi (byte) play_collision::i#3 = (byte) 0 [phi:play_collision->play_collision::@1#1] -- vbuz1=vbuc1 + // [202] phi (byte) play_collision::i#3 = (byte) 0 [phi:play_collision->play_collision::@1#1] -- vbuz1=vbuc1 sta.z i_1 - // [204] phi (byte) play_collision::yp#2 = (byte) play_collision::yp#0 [phi:play_collision->play_collision::@1#2] -- register_copy + // [202] phi (byte) play_collision::yp#2 = (byte) play_collision::yp#0 [phi:play_collision->play_collision::@1#2] -- register_copy // play_collision::@1 __b1: // playfield_line = playfield_lines[yp] - // [205] (byte~) play_collision::$14 ← (byte) play_collision::yp#2 << (byte) 1 -- vbuaa=vbuz1_rol_1 + // [203] (byte~) play_collision::$14 ← (byte) play_collision::yp#2 << (byte) 1 -- vbuaa=vbuz1_rol_1 lda.z yp asl - // [206] (byte*) play_collision::playfield_line#0 ← *((const byte**) playfield_lines + (byte~) play_collision::$14) -- pbuz1=pptc1_derefidx_vbuaa + // [204] (byte*) play_collision::playfield_line#0 ← *((const byte**) playfield_lines + (byte~) play_collision::$14) -- pbuz1=pptc1_derefidx_vbuaa tay lda playfield_lines,y sta.z playfield_line lda playfield_lines+1,y sta.z playfield_line+1 - // [207] (byte) play_collision::xp#8 ← (byte) play_collision::xpos#6 -- vbuz1=vbuz2 + // [205] (byte) play_collision::xp#8 ← (byte) play_collision::xpos#6 -- vbuz1=vbuz2 lda.z xpos sta.z xp - // [208] phi from play_collision::@1 to play_collision::@2 [phi:play_collision::@1->play_collision::@2] - // [208] phi (byte) play_collision::c#2 = (byte) 0 [phi:play_collision::@1->play_collision::@2#0] -- vbuxx=vbuc1 + // [206] phi from play_collision::@1 to play_collision::@2 [phi:play_collision::@1->play_collision::@2] + // [206] phi (byte) play_collision::c#2 = (byte) 0 [phi:play_collision::@1->play_collision::@2#0] -- vbuxx=vbuc1 ldx #0 - // [208] phi (byte) play_collision::xp#2 = (byte) play_collision::xp#8 [phi:play_collision::@1->play_collision::@2#1] -- register_copy - // [208] phi (byte) play_collision::i#2 = (byte) play_collision::i#3 [phi:play_collision::@1->play_collision::@2#2] -- register_copy + // [206] phi (byte) play_collision::xp#2 = (byte) play_collision::xp#8 [phi:play_collision::@1->play_collision::@2#1] -- register_copy + // [206] phi (byte) play_collision::i#2 = (byte) play_collision::i#3 [phi:play_collision::@1->play_collision::@2#2] -- register_copy // play_collision::@2 __b2: // if(piece_gfx[i++]!=0) - // [209] (byte) play_collision::i#1 ← ++ (byte) play_collision::i#2 -- vbuz1=_inc_vbuz2 + // [207] (byte) play_collision::i#1 ← ++ (byte) play_collision::i#2 -- vbuz1=_inc_vbuz2 ldy.z i_1 iny sty.z i - // [210] if(*((byte*) play_collision::piece_gfx#0 + (byte) play_collision::i#2)==(byte) 0) goto play_collision::@3 -- pbuz1_derefidx_vbuz2_eq_0_then_la1 + // [208] if(*((byte*) play_collision::piece_gfx#0 + (byte) play_collision::i#2)==(byte) 0) goto play_collision::@3 -- pbuz1_derefidx_vbuz2_eq_0_then_la1 ldy.z i_1 lda (piece_gfx),y cmp #0 beq __b3 // play_collision::@7 // if(yp>=PLAYFIELD_LINES) - // [211] if((byte) play_collision::yp#2<(const byte) PLAYFIELD_LINES) goto play_collision::@4 -- vbuz1_lt_vbuc1_then_la1 + // [209] if((byte) play_collision::yp#2<(const byte) PLAYFIELD_LINES) goto play_collision::@4 -- vbuz1_lt_vbuc1_then_la1 lda.z yp cmp #PLAYFIELD_LINES bcc __b4 - // [216] phi from play_collision::@7 to play_collision::@return [phi:play_collision::@7->play_collision::@return] - // [216] phi (byte) play_collision::return#15 = (const byte) COLLISION_BOTTOM [phi:play_collision::@7->play_collision::@return#0] -- vbuaa=vbuc1 + // [214] phi from play_collision::@7 to play_collision::@return [phi:play_collision::@7->play_collision::@return] + // [214] phi (byte) play_collision::return#15 = (const byte) COLLISION_BOTTOM [phi:play_collision::@7->play_collision::@return#0] -- vbuaa=vbuc1 lda #COLLISION_BOTTOM rts // play_collision::@4 __b4: // xp&0x80 - // [212] (byte~) play_collision::$5 ← (byte) play_collision::xp#2 & (byte) $80 -- vbuaa=vbuz1_band_vbuc1 + // [210] (byte~) play_collision::$5 ← (byte) play_collision::xp#2 & (byte) $80 -- vbuaa=vbuz1_band_vbuc1 lda #$80 and.z xp // if((xp&0x80)!=0) - // [213] if((byte~) play_collision::$5==(byte) 0) goto play_collision::@5 -- vbuaa_eq_0_then_la1 + // [211] if((byte~) play_collision::$5==(byte) 0) goto play_collision::@5 -- vbuaa_eq_0_then_la1 cmp #0 beq __b5 - // [216] phi from play_collision::@4 to play_collision::@return [phi:play_collision::@4->play_collision::@return] - // [216] phi (byte) play_collision::return#15 = (const byte) COLLISION_LEFT [phi:play_collision::@4->play_collision::@return#0] -- vbuaa=vbuc1 + // [214] phi from play_collision::@4 to play_collision::@return [phi:play_collision::@4->play_collision::@return] + // [214] phi (byte) play_collision::return#15 = (const byte) COLLISION_LEFT [phi:play_collision::@4->play_collision::@return#0] -- vbuaa=vbuc1 lda #COLLISION_LEFT rts // play_collision::@5 __b5: // if(xp>=PLAYFIELD_COLS) - // [214] if((byte) play_collision::xp#2<(const byte) PLAYFIELD_COLS) goto play_collision::@6 -- vbuz1_lt_vbuc1_then_la1 + // [212] if((byte) play_collision::xp#2<(const byte) PLAYFIELD_COLS) goto play_collision::@6 -- vbuz1_lt_vbuc1_then_la1 lda.z xp cmp #PLAYFIELD_COLS bcc __b6 - // [216] phi from play_collision::@5 to play_collision::@return [phi:play_collision::@5->play_collision::@return] - // [216] phi (byte) play_collision::return#15 = (const byte) COLLISION_RIGHT [phi:play_collision::@5->play_collision::@return#0] -- vbuaa=vbuc1 + // [214] phi from play_collision::@5 to play_collision::@return [phi:play_collision::@5->play_collision::@return] + // [214] phi (byte) play_collision::return#15 = (const byte) COLLISION_RIGHT [phi:play_collision::@5->play_collision::@return#0] -- vbuaa=vbuc1 lda #COLLISION_RIGHT rts // play_collision::@6 __b6: // if(playfield_line[xp]!=0) - // [215] if(*((byte*) play_collision::playfield_line#0 + (byte) play_collision::xp#2)==(byte) 0) goto play_collision::@3 -- pbuz1_derefidx_vbuz2_eq_0_then_la1 + // [213] if(*((byte*) play_collision::playfield_line#0 + (byte) play_collision::xp#2)==(byte) 0) goto play_collision::@3 -- pbuz1_derefidx_vbuz2_eq_0_then_la1 ldy.z xp lda (playfield_line),y cmp #0 beq __b3 - // [216] phi from play_collision::@6 to play_collision::@return [phi:play_collision::@6->play_collision::@return] - // [216] phi (byte) play_collision::return#15 = (const byte) COLLISION_PLAYFIELD [phi:play_collision::@6->play_collision::@return#0] -- vbuaa=vbuc1 + // [214] phi from play_collision::@6 to play_collision::@return [phi:play_collision::@6->play_collision::@return] + // [214] phi (byte) play_collision::return#15 = (const byte) COLLISION_PLAYFIELD [phi:play_collision::@6->play_collision::@return#0] -- vbuaa=vbuc1 lda #COLLISION_PLAYFIELD // play_collision::@return // } - // [217] return + // [215] return rts // play_collision::@3 __b3: // xp++; - // [218] (byte) play_collision::xp#1 ← ++ (byte) play_collision::xp#2 -- vbuz1=_inc_vbuz1 + // [216] (byte) play_collision::xp#1 ← ++ (byte) play_collision::xp#2 -- vbuz1=_inc_vbuz1 inc.z xp // for(char c:0..3) - // [219] (byte) play_collision::c#1 ← ++ (byte) play_collision::c#2 -- vbuxx=_inc_vbuxx + // [217] (byte) play_collision::c#1 ← ++ (byte) play_collision::c#2 -- vbuxx=_inc_vbuxx inx - // [220] if((byte) play_collision::c#1!=(byte) 4) goto play_collision::@10 -- vbuxx_neq_vbuc1_then_la1 + // [218] if((byte) play_collision::c#1!=(byte) 4) goto play_collision::@10 -- vbuxx_neq_vbuc1_then_la1 cpx #4 bne __b10 // play_collision::@8 // yp++; - // [221] (byte) play_collision::yp#1 ← ++ (byte) play_collision::yp#2 -- vbuz1=_inc_vbuz1 + // [219] (byte) play_collision::yp#1 ← ++ (byte) play_collision::yp#2 -- vbuz1=_inc_vbuz1 inc.z yp // for(char l:0..3) - // [222] (byte) play_collision::l#1 ← ++ (byte) play_collision::l#6 -- vbuz1=_inc_vbuz1 + // [220] (byte) play_collision::l#1 ← ++ (byte) play_collision::l#6 -- vbuz1=_inc_vbuz1 inc.z l - // [223] if((byte) play_collision::l#1!=(byte) 4) goto play_collision::@9 -- vbuz1_neq_vbuc1_then_la1 + // [221] if((byte) play_collision::l#1!=(byte) 4) goto play_collision::@9 -- vbuz1_neq_vbuc1_then_la1 lda #4 cmp.z l bne __b9 - // [216] phi from play_collision::@8 to play_collision::@return [phi:play_collision::@8->play_collision::@return] - // [216] phi (byte) play_collision::return#15 = (const byte) COLLISION_NONE [phi:play_collision::@8->play_collision::@return#0] -- vbuaa=vbuc1 + // [214] phi from play_collision::@8 to play_collision::@return [phi:play_collision::@8->play_collision::@return] + // [214] phi (byte) play_collision::return#15 = (const byte) COLLISION_NONE [phi:play_collision::@8->play_collision::@return#0] -- vbuaa=vbuc1 lda #COLLISION_NONE rts // play_collision::@9 __b9: - // [224] (byte) play_collision::i#10 ← (byte) play_collision::i#1 -- vbuz1=vbuz2 + // [222] (byte) play_collision::i#10 ← (byte) play_collision::i#1 -- vbuz1=vbuz2 lda.z i sta.z i_1 - // [204] phi from play_collision::@9 to play_collision::@1 [phi:play_collision::@9->play_collision::@1] - // [204] phi (byte) play_collision::l#6 = (byte) play_collision::l#1 [phi:play_collision::@9->play_collision::@1#0] -- register_copy - // [204] phi (byte) play_collision::i#3 = (byte) play_collision::i#10 [phi:play_collision::@9->play_collision::@1#1] -- register_copy - // [204] phi (byte) play_collision::yp#2 = (byte) play_collision::yp#1 [phi:play_collision::@9->play_collision::@1#2] -- register_copy + // [202] phi from play_collision::@9 to play_collision::@1 [phi:play_collision::@9->play_collision::@1] + // [202] phi (byte) play_collision::l#6 = (byte) play_collision::l#1 [phi:play_collision::@9->play_collision::@1#0] -- register_copy + // [202] phi (byte) play_collision::i#3 = (byte) play_collision::i#10 [phi:play_collision::@9->play_collision::@1#1] -- register_copy + // [202] phi (byte) play_collision::yp#2 = (byte) play_collision::yp#1 [phi:play_collision::@9->play_collision::@1#2] -- register_copy jmp __b1 // play_collision::@10 __b10: - // [225] (byte) play_collision::i#12 ← (byte) play_collision::i#1 -- vbuz1=vbuz2 + // [223] (byte) play_collision::i#12 ← (byte) play_collision::i#1 -- vbuz1=vbuz2 lda.z i sta.z i_1 - // [208] phi from play_collision::@10 to play_collision::@2 [phi:play_collision::@10->play_collision::@2] - // [208] phi (byte) play_collision::c#2 = (byte) play_collision::c#1 [phi:play_collision::@10->play_collision::@2#0] -- register_copy - // [208] phi (byte) play_collision::xp#2 = (byte) play_collision::xp#1 [phi:play_collision::@10->play_collision::@2#1] -- register_copy - // [208] phi (byte) play_collision::i#2 = (byte) play_collision::i#12 [phi:play_collision::@10->play_collision::@2#2] -- register_copy + // [206] phi from play_collision::@10 to play_collision::@2 [phi:play_collision::@10->play_collision::@2] + // [206] phi (byte) play_collision::c#2 = (byte) play_collision::c#1 [phi:play_collision::@10->play_collision::@2#0] -- register_copy + // [206] phi (byte) play_collision::xp#2 = (byte) play_collision::xp#1 [phi:play_collision::@10->play_collision::@2#1] -- register_copy + // [206] phi (byte) play_collision::i#2 = (byte) play_collision::i#12 [phi:play_collision::@10->play_collision::@2#2] -- register_copy jmp __b2 } // play_move_leftright @@ -23412,102 +23387,102 @@ play_collision: { // play_move_leftright(byte register(A) key_event) play_move_leftright: { // if(key_event==KEY_COMMA) - // [226] if((byte) play_move_leftright::key_event#0==(const byte) KEY_COMMA) goto play_move_leftright::@1 -- vbuaa_eq_vbuc1_then_la1 + // [224] if((byte) play_move_leftright::key_event#0==(const byte) KEY_COMMA) goto play_move_leftright::@1 -- vbuaa_eq_vbuc1_then_la1 // Handle keyboard events cmp #KEY_COMMA beq __b1 // play_move_leftright::@2 // if(key_event==KEY_DOT) - // [227] if((byte) play_move_leftright::key_event#0!=(const byte) KEY_DOT) goto play_move_leftright::@return -- vbuaa_neq_vbuc1_then_la1 + // [225] if((byte) play_move_leftright::key_event#0!=(const byte) KEY_DOT) goto play_move_leftright::@return -- vbuaa_neq_vbuc1_then_la1 cmp #KEY_DOT bne b2 // play_move_leftright::@3 // play_collision(current_xpos+1,current_ypos,current_orientation) - // [228] (byte) play_collision::xpos#2 ← (byte) current_xpos#22 + (byte) 1 -- vbuz1=vbuz2_plus_1 + // [226] (byte) play_collision::xpos#2 ← (byte) current_xpos#22 + (byte) 1 -- vbuz1=vbuz2_plus_1 ldy.z current_xpos iny sty.z play_collision.xpos - // [229] (byte) play_collision::ypos#2 ← (byte) current_ypos#19 -- vbuz1=vbuz2 + // [227] (byte) play_collision::ypos#2 ← (byte) current_ypos#19 -- vbuz1=vbuz2 lda.z current_ypos sta.z play_collision.ypos - // [230] (byte) play_collision::orientation#2 ← (byte) current_orientation#20 -- vbuxx=vbuz1 + // [228] (byte) play_collision::orientation#2 ← (byte) current_orientation#20 -- vbuxx=vbuz1 ldx.z current_orientation - // [231] (byte*) current_piece#97 ← (byte*) current_piece#15 -- pbuz1=pbuz2 + // [229] (byte*) current_piece#97 ← (byte*) current_piece#15 -- pbuz1=pbuz2 lda.z current_piece sta.z current_piece_1 lda.z current_piece+1 sta.z current_piece_1+1 // play_collision(current_xpos+1,current_ypos,current_orientation) - // [232] call play_collision - // [202] phi from play_move_leftright::@3 to play_collision [phi:play_move_leftright::@3->play_collision] - // [202] phi (byte) play_collision::xpos#6 = (byte) play_collision::xpos#2 [phi:play_move_leftright::@3->play_collision#0] -- register_copy - // [202] phi (byte) play_collision::yp#0 = (byte) play_collision::ypos#2 [phi:play_move_leftright::@3->play_collision#1] -- register_copy - // [202] phi (byte) play_collision::orientation#5 = (byte) play_collision::orientation#2 [phi:play_move_leftright::@3->play_collision#2] -- register_copy - // [202] phi (byte*) current_piece#17 = (byte*) current_piece#97 [phi:play_move_leftright::@3->play_collision#3] -- register_copy + // [230] call play_collision + // [200] phi from play_move_leftright::@3 to play_collision [phi:play_move_leftright::@3->play_collision] + // [200] phi (byte) play_collision::xpos#6 = (byte) play_collision::xpos#2 [phi:play_move_leftright::@3->play_collision#0] -- register_copy + // [200] phi (byte) play_collision::yp#0 = (byte) play_collision::ypos#2 [phi:play_move_leftright::@3->play_collision#1] -- register_copy + // [200] phi (byte) play_collision::orientation#5 = (byte) play_collision::orientation#2 [phi:play_move_leftright::@3->play_collision#2] -- register_copy + // [200] phi (byte*) current_piece#17 = (byte*) current_piece#97 [phi:play_move_leftright::@3->play_collision#3] -- register_copy jsr play_collision // play_collision(current_xpos+1,current_ypos,current_orientation) - // [233] (byte) play_collision::return#13 ← (byte) play_collision::return#15 + // [231] (byte) play_collision::return#13 ← (byte) play_collision::return#15 // play_move_leftright::@7 - // [234] (byte~) play_move_leftright::$4 ← (byte) play_collision::return#13 + // [232] (byte~) play_move_leftright::$4 ← (byte) play_collision::return#13 // if(play_collision(current_xpos+1,current_ypos,current_orientation)==COLLISION_NONE) - // [235] if((byte~) play_move_leftright::$4!=(const byte) COLLISION_NONE) goto play_move_leftright::@return -- vbuaa_neq_vbuc1_then_la1 + // [233] if((byte~) play_move_leftright::$4!=(const byte) COLLISION_NONE) goto play_move_leftright::@return -- vbuaa_neq_vbuc1_then_la1 cmp #COLLISION_NONE bne b2 // play_move_leftright::@4 // current_xpos++; - // [236] (byte) current_xpos#6 ← ++ (byte) current_xpos#22 -- vbuz1=_inc_vbuz1 + // [234] (byte) current_xpos#6 ← ++ (byte) current_xpos#22 -- vbuz1=_inc_vbuz1 inc.z current_xpos - // [237] phi from play_move_leftright::@4 play_move_leftright::@5 to play_move_leftright::@return [phi:play_move_leftright::@4/play_move_leftright::@5->play_move_leftright::@return] + // [235] phi from play_move_leftright::@4 play_move_leftright::@5 to play_move_leftright::@return [phi:play_move_leftright::@4/play_move_leftright::@5->play_move_leftright::@return] b1: - // [237] phi (byte) current_xpos#26 = (byte) current_xpos#6 [phi:play_move_leftright::@4/play_move_leftright::@5->play_move_leftright::@return#0] -- register_copy - // [237] phi (byte) play_move_leftright::return#2 = (byte) 1 [phi:play_move_leftright::@4/play_move_leftright::@5->play_move_leftright::@return#1] -- vbuaa=vbuc1 + // [235] phi (byte) current_xpos#26 = (byte) current_xpos#6 [phi:play_move_leftright::@4/play_move_leftright::@5->play_move_leftright::@return#0] -- register_copy + // [235] phi (byte) play_move_leftright::return#2 = (byte) 1 [phi:play_move_leftright::@4/play_move_leftright::@5->play_move_leftright::@return#1] -- vbuaa=vbuc1 lda #1 rts - // [237] phi from play_move_leftright::@2 play_move_leftright::@6 play_move_leftright::@7 to play_move_leftright::@return [phi:play_move_leftright::@2/play_move_leftright::@6/play_move_leftright::@7->play_move_leftright::@return] + // [235] phi from play_move_leftright::@2 play_move_leftright::@6 play_move_leftright::@7 to play_move_leftright::@return [phi:play_move_leftright::@2/play_move_leftright::@6/play_move_leftright::@7->play_move_leftright::@return] b2: - // [237] phi (byte) current_xpos#26 = (byte) current_xpos#22 [phi:play_move_leftright::@2/play_move_leftright::@6/play_move_leftright::@7->play_move_leftright::@return#0] -- register_copy - // [237] phi (byte) play_move_leftright::return#2 = (byte) 0 [phi:play_move_leftright::@2/play_move_leftright::@6/play_move_leftright::@7->play_move_leftright::@return#1] -- vbuaa=vbuc1 + // [235] phi (byte) current_xpos#26 = (byte) current_xpos#22 [phi:play_move_leftright::@2/play_move_leftright::@6/play_move_leftright::@7->play_move_leftright::@return#0] -- register_copy + // [235] phi (byte) play_move_leftright::return#2 = (byte) 0 [phi:play_move_leftright::@2/play_move_leftright::@6/play_move_leftright::@7->play_move_leftright::@return#1] -- vbuaa=vbuc1 lda #0 // play_move_leftright::@return // } - // [238] return + // [236] return rts // play_move_leftright::@1 __b1: // play_collision(current_xpos-1,current_ypos,current_orientation) - // [239] (byte) play_collision::xpos#1 ← (byte) current_xpos#22 - (byte) 1 -- vbuz1=vbuz2_minus_1 + // [237] (byte) play_collision::xpos#1 ← (byte) current_xpos#22 - (byte) 1 -- vbuz1=vbuz2_minus_1 ldx.z current_xpos dex stx.z play_collision.xpos - // [240] (byte) play_collision::ypos#1 ← (byte) current_ypos#19 -- vbuz1=vbuz2 + // [238] (byte) play_collision::ypos#1 ← (byte) current_ypos#19 -- vbuz1=vbuz2 lda.z current_ypos sta.z play_collision.ypos - // [241] (byte) play_collision::orientation#1 ← (byte) current_orientation#20 -- vbuxx=vbuz1 + // [239] (byte) play_collision::orientation#1 ← (byte) current_orientation#20 -- vbuxx=vbuz1 ldx.z current_orientation - // [242] (byte*) current_piece#96 ← (byte*) current_piece#15 -- pbuz1=pbuz2 + // [240] (byte*) current_piece#96 ← (byte*) current_piece#15 -- pbuz1=pbuz2 lda.z current_piece sta.z current_piece_1 lda.z current_piece+1 sta.z current_piece_1+1 // play_collision(current_xpos-1,current_ypos,current_orientation) - // [243] call play_collision - // [202] phi from play_move_leftright::@1 to play_collision [phi:play_move_leftright::@1->play_collision] - // [202] phi (byte) play_collision::xpos#6 = (byte) play_collision::xpos#1 [phi:play_move_leftright::@1->play_collision#0] -- register_copy - // [202] phi (byte) play_collision::yp#0 = (byte) play_collision::ypos#1 [phi:play_move_leftright::@1->play_collision#1] -- register_copy - // [202] phi (byte) play_collision::orientation#5 = (byte) play_collision::orientation#1 [phi:play_move_leftright::@1->play_collision#2] -- register_copy - // [202] phi (byte*) current_piece#17 = (byte*) current_piece#96 [phi:play_move_leftright::@1->play_collision#3] -- register_copy + // [241] call play_collision + // [200] phi from play_move_leftright::@1 to play_collision [phi:play_move_leftright::@1->play_collision] + // [200] phi (byte) play_collision::xpos#6 = (byte) play_collision::xpos#1 [phi:play_move_leftright::@1->play_collision#0] -- register_copy + // [200] phi (byte) play_collision::yp#0 = (byte) play_collision::ypos#1 [phi:play_move_leftright::@1->play_collision#1] -- register_copy + // [200] phi (byte) play_collision::orientation#5 = (byte) play_collision::orientation#1 [phi:play_move_leftright::@1->play_collision#2] -- register_copy + // [200] phi (byte*) current_piece#17 = (byte*) current_piece#96 [phi:play_move_leftright::@1->play_collision#3] -- register_copy jsr play_collision // play_collision(current_xpos-1,current_ypos,current_orientation) - // [244] (byte) play_collision::return#1 ← (byte) play_collision::return#15 + // [242] (byte) play_collision::return#1 ← (byte) play_collision::return#15 // play_move_leftright::@6 - // [245] (byte~) play_move_leftright::$8 ← (byte) play_collision::return#1 + // [243] (byte~) play_move_leftright::$8 ← (byte) play_collision::return#1 // if(play_collision(current_xpos-1,current_ypos,current_orientation)==COLLISION_NONE) - // [246] if((byte~) play_move_leftright::$8!=(const byte) COLLISION_NONE) goto play_move_leftright::@return -- vbuaa_neq_vbuc1_then_la1 + // [244] if((byte~) play_move_leftright::$8!=(const byte) COLLISION_NONE) goto play_move_leftright::@return -- vbuaa_neq_vbuc1_then_la1 cmp #COLLISION_NONE bne b2 // play_move_leftright::@5 // current_xpos--; - // [247] (byte) current_xpos#8 ← -- (byte) current_xpos#22 -- vbuz1=_dec_vbuz1 + // [245] (byte) current_xpos#8 ← -- (byte) current_xpos#22 -- vbuz1=_dec_vbuz1 dec.z current_xpos jmp b1 } @@ -23517,219 +23492,219 @@ play_move_leftright: { // play_move_down(byte register(A) key_event) play_move_down: { // ++current_movedown_counter; - // [248] (byte) current_movedown_counter#12 ← ++ (byte) current_movedown_counter#16 -- vbuz1=_inc_vbuz1 + // [246] (byte) current_movedown_counter#12 ← ++ (byte) current_movedown_counter#16 -- vbuz1=_inc_vbuz1 inc.z current_movedown_counter // if(key_event==KEY_SPACE) - // [249] if((byte) play_move_down::key_event#0!=(const byte) KEY_SPACE) goto play_move_down::@1 -- vbuaa_neq_vbuc1_then_la1 + // [247] if((byte) play_move_down::key_event#0!=(const byte) KEY_SPACE) goto play_move_down::@1 -- vbuaa_neq_vbuc1_then_la1 cmp #KEY_SPACE bne b1 - // [250] phi from play_move_down to play_move_down::@4 [phi:play_move_down->play_move_down::@4] + // [248] phi from play_move_down to play_move_down::@4 [phi:play_move_down->play_move_down::@4] // play_move_down::@4 - // [251] phi from play_move_down::@4 to play_move_down::@1 [phi:play_move_down::@4->play_move_down::@1] - // [251] phi (byte) play_move_down::movedown#10 = (byte) 1 [phi:play_move_down::@4->play_move_down::@1#0] -- vbuxx=vbuc1 + // [249] phi from play_move_down::@4 to play_move_down::@1 [phi:play_move_down::@4->play_move_down::@1] + // [249] phi (byte) play_move_down::movedown#10 = (byte) 1 [phi:play_move_down::@4->play_move_down::@1#0] -- vbuxx=vbuc1 ldx #1 jmp __b1 - // [251] phi from play_move_down to play_move_down::@1 [phi:play_move_down->play_move_down::@1] + // [249] phi from play_move_down to play_move_down::@1 [phi:play_move_down->play_move_down::@1] b1: - // [251] phi (byte) play_move_down::movedown#10 = (byte) 0 [phi:play_move_down->play_move_down::@1#0] -- vbuxx=vbuc1 + // [249] phi (byte) play_move_down::movedown#10 = (byte) 0 [phi:play_move_down->play_move_down::@1#0] -- vbuxx=vbuc1 ldx #0 // play_move_down::@1 __b1: // keyboard_event_pressed(KEY_SPACE) - // [252] call keyboard_event_pressed - // [381] phi from play_move_down::@1 to keyboard_event_pressed [phi:play_move_down::@1->keyboard_event_pressed] - // [381] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_SPACE [phi:play_move_down::@1->keyboard_event_pressed#0] -- vbuz1=vbuc1 + // [250] call keyboard_event_pressed + // [379] phi from play_move_down::@1 to keyboard_event_pressed [phi:play_move_down::@1->keyboard_event_pressed] + // [379] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_SPACE [phi:play_move_down::@1->keyboard_event_pressed#0] -- vbuz1=vbuc1 lda #KEY_SPACE sta.z keyboard_event_pressed.keycode jsr keyboard_event_pressed // keyboard_event_pressed(KEY_SPACE) - // [253] (byte) keyboard_event_pressed::return#12 ← (byte) keyboard_event_pressed::return#11 + // [251] (byte) keyboard_event_pressed::return#12 ← (byte) keyboard_event_pressed::return#11 // play_move_down::@12 - // [254] (byte~) play_move_down::$2 ← (byte) keyboard_event_pressed::return#12 + // [252] (byte~) play_move_down::$2 ← (byte) keyboard_event_pressed::return#12 // if(keyboard_event_pressed(KEY_SPACE)!=0) - // [255] if((byte~) play_move_down::$2==(byte) 0) goto play_move_down::@2 -- vbuaa_eq_0_then_la1 + // [253] if((byte~) play_move_down::$2==(byte) 0) goto play_move_down::@2 -- vbuaa_eq_0_then_la1 cmp #0 beq __b2 // play_move_down::@5 // if(current_movedown_counter>=current_movedown_fast) - // [256] if((byte) current_movedown_counter#12<(const byte) current_movedown_fast) goto play_move_down::@2 -- vbuz1_lt_vbuc1_then_la1 + // [254] if((byte) current_movedown_counter#12<(const byte) current_movedown_fast) goto play_move_down::@2 -- vbuz1_lt_vbuc1_then_la1 lda.z current_movedown_counter cmp #current_movedown_fast bcc __b2 // play_move_down::@6 // movedown++; - // [257] (byte) play_move_down::movedown#2 ← ++ (byte) play_move_down::movedown#10 -- vbuxx=_inc_vbuxx + // [255] (byte) play_move_down::movedown#2 ← ++ (byte) play_move_down::movedown#10 -- vbuxx=_inc_vbuxx inx - // [258] phi from play_move_down::@12 play_move_down::@5 play_move_down::@6 to play_move_down::@2 [phi:play_move_down::@12/play_move_down::@5/play_move_down::@6->play_move_down::@2] - // [258] phi (byte) play_move_down::movedown#7 = (byte) play_move_down::movedown#10 [phi:play_move_down::@12/play_move_down::@5/play_move_down::@6->play_move_down::@2#0] -- register_copy + // [256] phi from play_move_down::@12 play_move_down::@5 play_move_down::@6 to play_move_down::@2 [phi:play_move_down::@12/play_move_down::@5/play_move_down::@6->play_move_down::@2] + // [256] phi (byte) play_move_down::movedown#7 = (byte) play_move_down::movedown#10 [phi:play_move_down::@12/play_move_down::@5/play_move_down::@6->play_move_down::@2#0] -- register_copy // play_move_down::@2 __b2: // if(current_movedown_counter>=current_movedown_slow) - // [259] if((byte) current_movedown_counter#12<(byte) current_movedown_slow#14) goto play_move_down::@3 -- vbuz1_lt_vbuz2_then_la1 + // [257] if((byte) current_movedown_counter#12<(byte) current_movedown_slow#14) goto play_move_down::@3 -- vbuz1_lt_vbuz2_then_la1 lda.z current_movedown_counter cmp.z current_movedown_slow bcc __b3 // play_move_down::@7 // movedown++; - // [260] (byte) play_move_down::movedown#3 ← ++ (byte) play_move_down::movedown#7 -- vbuxx=_inc_vbuxx + // [258] (byte) play_move_down::movedown#3 ← ++ (byte) play_move_down::movedown#7 -- vbuxx=_inc_vbuxx inx - // [261] phi from play_move_down::@2 play_move_down::@7 to play_move_down::@3 [phi:play_move_down::@2/play_move_down::@7->play_move_down::@3] - // [261] phi (byte) play_move_down::movedown#6 = (byte) play_move_down::movedown#7 [phi:play_move_down::@2/play_move_down::@7->play_move_down::@3#0] -- register_copy + // [259] phi from play_move_down::@2 play_move_down::@7 to play_move_down::@3 [phi:play_move_down::@2/play_move_down::@7->play_move_down::@3] + // [259] phi (byte) play_move_down::movedown#6 = (byte) play_move_down::movedown#7 [phi:play_move_down::@2/play_move_down::@7->play_move_down::@3#0] -- register_copy // play_move_down::@3 __b3: // if(movedown!=0) - // [262] if((byte) play_move_down::movedown#6==(byte) 0) goto play_move_down::@return -- vbuxx_eq_0_then_la1 + // [260] if((byte) play_move_down::movedown#6==(byte) 0) goto play_move_down::@return -- vbuxx_eq_0_then_la1 cpx #0 beq b2 // play_move_down::@8 // play_collision(current_xpos,current_ypos+1,current_orientation) - // [263] (byte) play_collision::ypos#0 ← (byte) current_ypos#11 + (byte) 1 -- vbuz1=vbuz2_plus_1 + // [261] (byte) play_collision::ypos#0 ← (byte) current_ypos#11 + (byte) 1 -- vbuz1=vbuz2_plus_1 ldy.z current_ypos iny sty.z play_collision.ypos - // [264] (byte) play_collision::xpos#0 ← (byte) current_xpos#14 -- vbuz1=vbuz2 + // [262] (byte) play_collision::xpos#0 ← (byte) current_xpos#14 -- vbuz1=vbuz2 lda.z current_xpos sta.z play_collision.xpos - // [265] (byte) play_collision::orientation#0 ← (byte) current_orientation#13 -- vbuxx=vbuz1 + // [263] (byte) play_collision::orientation#0 ← (byte) current_orientation#13 -- vbuxx=vbuz1 ldx.z current_orientation - // [266] (byte*) current_piece#95 ← (byte*) current_piece#10 -- pbuz1=pbuz2 + // [264] (byte*) current_piece#95 ← (byte*) current_piece#10 -- pbuz1=pbuz2 lda.z current_piece sta.z current_piece_1 lda.z current_piece+1 sta.z current_piece_1+1 // play_collision(current_xpos,current_ypos+1,current_orientation) - // [267] call play_collision - // [202] phi from play_move_down::@8 to play_collision [phi:play_move_down::@8->play_collision] - // [202] phi (byte) play_collision::xpos#6 = (byte) play_collision::xpos#0 [phi:play_move_down::@8->play_collision#0] -- register_copy - // [202] phi (byte) play_collision::yp#0 = (byte) play_collision::ypos#0 [phi:play_move_down::@8->play_collision#1] -- register_copy - // [202] phi (byte) play_collision::orientation#5 = (byte) play_collision::orientation#0 [phi:play_move_down::@8->play_collision#2] -- register_copy - // [202] phi (byte*) current_piece#17 = (byte*) current_piece#95 [phi:play_move_down::@8->play_collision#3] -- register_copy + // [265] call play_collision + // [200] phi from play_move_down::@8 to play_collision [phi:play_move_down::@8->play_collision] + // [200] phi (byte) play_collision::xpos#6 = (byte) play_collision::xpos#0 [phi:play_move_down::@8->play_collision#0] -- register_copy + // [200] phi (byte) play_collision::yp#0 = (byte) play_collision::ypos#0 [phi:play_move_down::@8->play_collision#1] -- register_copy + // [200] phi (byte) play_collision::orientation#5 = (byte) play_collision::orientation#0 [phi:play_move_down::@8->play_collision#2] -- register_copy + // [200] phi (byte*) current_piece#17 = (byte*) current_piece#95 [phi:play_move_down::@8->play_collision#3] -- register_copy jsr play_collision // play_collision(current_xpos,current_ypos+1,current_orientation) - // [268] (byte) play_collision::return#0 ← (byte) play_collision::return#15 + // [266] (byte) play_collision::return#0 ← (byte) play_collision::return#15 // play_move_down::@13 - // [269] (byte~) play_move_down::$12 ← (byte) play_collision::return#0 + // [267] (byte~) play_move_down::$12 ← (byte) play_collision::return#0 // if(play_collision(current_xpos,current_ypos+1,current_orientation)==COLLISION_NONE) - // [270] if((byte~) play_move_down::$12==(const byte) COLLISION_NONE) goto play_move_down::@10 -- vbuaa_eq_vbuc1_then_la1 + // [268] if((byte~) play_move_down::$12==(const byte) COLLISION_NONE) goto play_move_down::@10 -- vbuaa_eq_vbuc1_then_la1 cmp #COLLISION_NONE beq __b10 - // [271] phi from play_move_down::@13 to play_move_down::@9 [phi:play_move_down::@13->play_move_down::@9] + // [269] phi from play_move_down::@13 to play_move_down::@9 [phi:play_move_down::@13->play_move_down::@9] // play_move_down::@9 // play_lock_current() - // [272] call play_lock_current + // [270] call play_lock_current jsr play_lock_current - // [273] phi from play_move_down::@9 to play_move_down::@14 [phi:play_move_down::@9->play_move_down::@14] + // [271] phi from play_move_down::@9 to play_move_down::@14 [phi:play_move_down::@9->play_move_down::@14] // play_move_down::@14 // play_remove_lines() - // [274] call play_remove_lines - // [340] phi from play_move_down::@14 to play_remove_lines [phi:play_move_down::@14->play_remove_lines] + // [272] call play_remove_lines + // [338] phi from play_move_down::@14 to play_remove_lines [phi:play_move_down::@14->play_remove_lines] jsr play_remove_lines // play_remove_lines() - // [275] (byte) play_remove_lines::return#0 ← (byte) play_remove_lines::removed#8 -- vbuaa=vbuz1 + // [273] (byte) play_remove_lines::return#0 ← (byte) play_remove_lines::removed#8 -- vbuaa=vbuz1 lda.z play_remove_lines.removed // play_move_down::@15 // removed = play_remove_lines() - // [276] (byte) play_move_down::removed#0 ← (byte) play_remove_lines::return#0 + // [274] (byte) play_move_down::removed#0 ← (byte) play_remove_lines::return#0 // play_update_score(removed) - // [277] (byte) play_update_score::removed#0 ← (byte) play_move_down::removed#0 -- vbuxx=vbuaa + // [275] (byte) play_update_score::removed#0 ← (byte) play_move_down::removed#0 -- vbuxx=vbuaa tax - // [278] call play_update_score + // [276] call play_update_score jsr play_update_score - // [279] phi from play_move_down::@15 to play_move_down::@16 [phi:play_move_down::@15->play_move_down::@16] + // [277] phi from play_move_down::@15 to play_move_down::@16 [phi:play_move_down::@15->play_move_down::@16] // play_move_down::@16 // play_spawn_current() - // [280] call play_spawn_current - // [287] phi from play_move_down::@16 to play_spawn_current [phi:play_move_down::@16->play_spawn_current] - // [287] phi (byte) game_over#65 = (byte) game_over#10 [phi:play_move_down::@16->play_spawn_current#0] -- register_copy - // [287] phi (byte) next_piece_idx#17 = (byte) next_piece_idx#10 [phi:play_move_down::@16->play_spawn_current#1] -- register_copy + // [278] call play_spawn_current + // [285] phi from play_move_down::@16 to play_spawn_current [phi:play_move_down::@16->play_spawn_current] + // [285] phi (byte) game_over#65 = (byte) game_over#10 [phi:play_move_down::@16->play_spawn_current#0] -- register_copy + // [285] phi (byte) next_piece_idx#17 = (byte) next_piece_idx#10 [phi:play_move_down::@16->play_spawn_current#1] -- register_copy jsr play_spawn_current // play_move_down::@17 - // [281] (byte*) current_piece#92 ← (byte*)*((const word*) PIECES + (byte~) play_spawn_current::$7) -- pbuz1=pptc1_derefidx_vbuz2 + // [279] (byte*) current_piece#92 ← (byte*)*((const word*) PIECES + (byte~) play_spawn_current::$7) -- pbuz1=pptc1_derefidx_vbuz2 ldy.z play_spawn_current.__7 lda PIECES,y sta.z current_piece lda PIECES+1,y sta.z current_piece+1 - // [282] (byte*) current_piece_gfx#116 ← (byte*)*((const word*) PIECES + (byte~) play_spawn_current::$7) -- pbuz1=pptc1_derefidx_vbuz2 + // [280] (byte*) current_piece_gfx#116 ← (byte*)*((const word*) PIECES + (byte~) play_spawn_current::$7) -- pbuz1=pptc1_derefidx_vbuz2 lda PIECES,y sta.z current_piece_gfx lda PIECES+1,y sta.z current_piece_gfx+1 - // [283] phi from play_move_down::@17 to play_move_down::@11 [phi:play_move_down::@17->play_move_down::@11] - // [283] phi (byte) next_piece_idx#30 = (byte) play_spawn_current::piece_idx#2 [phi:play_move_down::@17->play_move_down::@11#0] -- register_copy - // [283] phi (byte) game_over#27 = (byte) game_over#52 [phi:play_move_down::@17->play_move_down::@11#1] -- register_copy - // [283] phi (byte) current_xpos#43 = (byte) current_xpos#100 [phi:play_move_down::@17->play_move_down::@11#2] -- register_copy - // [283] phi (byte*) current_piece_gfx#35 = (byte*) current_piece_gfx#116 [phi:play_move_down::@17->play_move_down::@11#3] -- register_copy - // [283] phi (byte) current_orientation#37 = (byte) 0 [phi:play_move_down::@17->play_move_down::@11#4] -- vbuz1=vbuc1 + // [281] phi from play_move_down::@17 to play_move_down::@11 [phi:play_move_down::@17->play_move_down::@11] + // [281] phi (byte) next_piece_idx#30 = (byte) play_spawn_current::piece_idx#2 [phi:play_move_down::@17->play_move_down::@11#0] -- register_copy + // [281] phi (byte) game_over#27 = (byte) game_over#52 [phi:play_move_down::@17->play_move_down::@11#1] -- register_copy + // [281] phi (byte) current_xpos#43 = (byte) current_xpos#100 [phi:play_move_down::@17->play_move_down::@11#2] -- register_copy + // [281] phi (byte*) current_piece_gfx#35 = (byte*) current_piece_gfx#116 [phi:play_move_down::@17->play_move_down::@11#3] -- register_copy + // [281] phi (byte) current_orientation#37 = (byte) 0 [phi:play_move_down::@17->play_move_down::@11#4] -- vbuz1=vbuc1 lda #0 sta.z current_orientation - // [283] phi (byte) current_piece_char#29 = (byte) current_piece_char#5 [phi:play_move_down::@17->play_move_down::@11#5] -- register_copy - // [283] phi (byte*) current_piece#28 = (byte*) current_piece#92 [phi:play_move_down::@17->play_move_down::@11#6] -- register_copy - // [283] phi (byte) level_bcd#31 = (byte) level_bcd#19 [phi:play_move_down::@17->play_move_down::@11#7] -- register_copy - // [283] phi (byte) current_movedown_slow#37 = (byte) current_movedown_slow#23 [phi:play_move_down::@17->play_move_down::@11#8] -- register_copy - // [283] phi (byte) level#33 = (byte) level#19 [phi:play_move_down::@17->play_move_down::@11#9] -- register_copy - // [283] phi (word) lines_bcd#26 = (word) lines_bcd#17 [phi:play_move_down::@17->play_move_down::@11#10] -- register_copy - // [283] phi (byte) current_ypos#38 = (byte) current_ypos#6 [phi:play_move_down::@17->play_move_down::@11#11] -- register_copy + // [281] phi (byte) current_piece_char#29 = (byte) current_piece_char#5 [phi:play_move_down::@17->play_move_down::@11#5] -- register_copy + // [281] phi (byte*) current_piece#28 = (byte*) current_piece#92 [phi:play_move_down::@17->play_move_down::@11#6] -- register_copy + // [281] phi (byte) level_bcd#31 = (byte) level_bcd#19 [phi:play_move_down::@17->play_move_down::@11#7] -- register_copy + // [281] phi (byte) current_movedown_slow#37 = (byte) current_movedown_slow#23 [phi:play_move_down::@17->play_move_down::@11#8] -- register_copy + // [281] phi (byte) level#33 = (byte) level#19 [phi:play_move_down::@17->play_move_down::@11#9] -- register_copy + // [281] phi (word) lines_bcd#26 = (word) lines_bcd#17 [phi:play_move_down::@17->play_move_down::@11#10] -- register_copy + // [281] phi (byte) current_ypos#38 = (byte) current_ypos#6 [phi:play_move_down::@17->play_move_down::@11#11] -- register_copy // play_move_down::@11 __b11: - // [284] phi from play_move_down::@11 to play_move_down::@return [phi:play_move_down::@11->play_move_down::@return] - // [284] phi (byte) next_piece_idx#16 = (byte) next_piece_idx#30 [phi:play_move_down::@11->play_move_down::@return#0] -- register_copy - // [284] phi (byte) game_over#15 = (byte) game_over#27 [phi:play_move_down::@11->play_move_down::@return#1] -- register_copy - // [284] phi (byte) current_xpos#22 = (byte) current_xpos#43 [phi:play_move_down::@11->play_move_down::@return#2] -- register_copy - // [284] phi (byte*) current_piece_gfx#20 = (byte*) current_piece_gfx#35 [phi:play_move_down::@11->play_move_down::@return#3] -- register_copy - // [284] phi (byte) current_orientation#20 = (byte) current_orientation#37 [phi:play_move_down::@11->play_move_down::@return#4] -- register_copy - // [284] phi (byte) current_piece_char#16 = (byte) current_piece_char#29 [phi:play_move_down::@11->play_move_down::@return#5] -- register_copy - // [284] phi (byte*) current_piece#15 = (byte*) current_piece#28 [phi:play_move_down::@11->play_move_down::@return#6] -- register_copy - // [284] phi (byte) level_bcd#17 = (byte) level_bcd#31 [phi:play_move_down::@11->play_move_down::@return#7] -- register_copy - // [284] phi (byte) current_movedown_slow#21 = (byte) current_movedown_slow#37 [phi:play_move_down::@11->play_move_down::@return#8] -- register_copy - // [284] phi (byte) level#17 = (byte) level#33 [phi:play_move_down::@11->play_move_down::@return#9] -- register_copy - // [284] phi (word) lines_bcd#15 = (word) lines_bcd#26 [phi:play_move_down::@11->play_move_down::@return#10] -- register_copy - // [284] phi (byte) current_ypos#19 = (byte) current_ypos#38 [phi:play_move_down::@11->play_move_down::@return#11] -- register_copy - // [284] phi (byte) current_movedown_counter#14 = (byte) 0 [phi:play_move_down::@11->play_move_down::@return#12] -- vbuz1=vbuc1 + // [282] phi from play_move_down::@11 to play_move_down::@return [phi:play_move_down::@11->play_move_down::@return] + // [282] phi (byte) next_piece_idx#16 = (byte) next_piece_idx#30 [phi:play_move_down::@11->play_move_down::@return#0] -- register_copy + // [282] phi (byte) game_over#15 = (byte) game_over#27 [phi:play_move_down::@11->play_move_down::@return#1] -- register_copy + // [282] phi (byte) current_xpos#22 = (byte) current_xpos#43 [phi:play_move_down::@11->play_move_down::@return#2] -- register_copy + // [282] phi (byte*) current_piece_gfx#20 = (byte*) current_piece_gfx#35 [phi:play_move_down::@11->play_move_down::@return#3] -- register_copy + // [282] phi (byte) current_orientation#20 = (byte) current_orientation#37 [phi:play_move_down::@11->play_move_down::@return#4] -- register_copy + // [282] phi (byte) current_piece_char#16 = (byte) current_piece_char#29 [phi:play_move_down::@11->play_move_down::@return#5] -- register_copy + // [282] phi (byte*) current_piece#15 = (byte*) current_piece#28 [phi:play_move_down::@11->play_move_down::@return#6] -- register_copy + // [282] phi (byte) level_bcd#17 = (byte) level_bcd#31 [phi:play_move_down::@11->play_move_down::@return#7] -- register_copy + // [282] phi (byte) current_movedown_slow#21 = (byte) current_movedown_slow#37 [phi:play_move_down::@11->play_move_down::@return#8] -- register_copy + // [282] phi (byte) level#17 = (byte) level#33 [phi:play_move_down::@11->play_move_down::@return#9] -- register_copy + // [282] phi (word) lines_bcd#15 = (word) lines_bcd#26 [phi:play_move_down::@11->play_move_down::@return#10] -- register_copy + // [282] phi (byte) current_ypos#19 = (byte) current_ypos#38 [phi:play_move_down::@11->play_move_down::@return#11] -- register_copy + // [282] phi (byte) current_movedown_counter#14 = (byte) 0 [phi:play_move_down::@11->play_move_down::@return#12] -- vbuz1=vbuc1 lda #0 sta.z current_movedown_counter - // [284] phi (byte) play_move_down::return#3 = (byte) 1 [phi:play_move_down::@11->play_move_down::@return#13] -- vbuxx=vbuc1 + // [282] phi (byte) play_move_down::return#3 = (byte) 1 [phi:play_move_down::@11->play_move_down::@return#13] -- vbuxx=vbuc1 ldx #1 rts - // [284] phi from play_move_down::@3 to play_move_down::@return [phi:play_move_down::@3->play_move_down::@return] + // [282] phi from play_move_down::@3 to play_move_down::@return [phi:play_move_down::@3->play_move_down::@return] b2: - // [284] phi (byte) next_piece_idx#16 = (byte) next_piece_idx#10 [phi:play_move_down::@3->play_move_down::@return#0] -- register_copy - // [284] phi (byte) game_over#15 = (byte) game_over#10 [phi:play_move_down::@3->play_move_down::@return#1] -- register_copy - // [284] phi (byte) current_xpos#22 = (byte) current_xpos#14 [phi:play_move_down::@3->play_move_down::@return#2] -- register_copy - // [284] phi (byte*) current_piece_gfx#20 = (byte*) current_piece_gfx#13 [phi:play_move_down::@3->play_move_down::@return#3] -- register_copy - // [284] phi (byte) current_orientation#20 = (byte) current_orientation#13 [phi:play_move_down::@3->play_move_down::@return#4] -- register_copy - // [284] phi (byte) current_piece_char#16 = (byte) current_piece_char#10 [phi:play_move_down::@3->play_move_down::@return#5] -- register_copy - // [284] phi (byte*) current_piece#15 = (byte*) current_piece#10 [phi:play_move_down::@3->play_move_down::@return#6] -- register_copy - // [284] phi (byte) level_bcd#17 = (byte) level_bcd#11 [phi:play_move_down::@3->play_move_down::@return#7] -- register_copy - // [284] phi (byte) current_movedown_slow#21 = (byte) current_movedown_slow#14 [phi:play_move_down::@3->play_move_down::@return#8] -- register_copy - // [284] phi (byte) level#17 = (byte) level#10 [phi:play_move_down::@3->play_move_down::@return#9] -- register_copy - // [284] phi (word) lines_bcd#15 = (word) lines_bcd#19 [phi:play_move_down::@3->play_move_down::@return#10] -- register_copy - // [284] phi (byte) current_ypos#19 = (byte) current_ypos#11 [phi:play_move_down::@3->play_move_down::@return#11] -- register_copy - // [284] phi (byte) current_movedown_counter#14 = (byte) current_movedown_counter#12 [phi:play_move_down::@3->play_move_down::@return#12] -- register_copy - // [284] phi (byte) play_move_down::return#3 = (byte) 0 [phi:play_move_down::@3->play_move_down::@return#13] -- vbuxx=vbuc1 + // [282] phi (byte) next_piece_idx#16 = (byte) next_piece_idx#10 [phi:play_move_down::@3->play_move_down::@return#0] -- register_copy + // [282] phi (byte) game_over#15 = (byte) game_over#10 [phi:play_move_down::@3->play_move_down::@return#1] -- register_copy + // [282] phi (byte) current_xpos#22 = (byte) current_xpos#14 [phi:play_move_down::@3->play_move_down::@return#2] -- register_copy + // [282] phi (byte*) current_piece_gfx#20 = (byte*) current_piece_gfx#13 [phi:play_move_down::@3->play_move_down::@return#3] -- register_copy + // [282] phi (byte) current_orientation#20 = (byte) current_orientation#13 [phi:play_move_down::@3->play_move_down::@return#4] -- register_copy + // [282] phi (byte) current_piece_char#16 = (byte) current_piece_char#10 [phi:play_move_down::@3->play_move_down::@return#5] -- register_copy + // [282] phi (byte*) current_piece#15 = (byte*) current_piece#10 [phi:play_move_down::@3->play_move_down::@return#6] -- register_copy + // [282] phi (byte) level_bcd#17 = (byte) level_bcd#11 [phi:play_move_down::@3->play_move_down::@return#7] -- register_copy + // [282] phi (byte) current_movedown_slow#21 = (byte) current_movedown_slow#14 [phi:play_move_down::@3->play_move_down::@return#8] -- register_copy + // [282] phi (byte) level#17 = (byte) level#10 [phi:play_move_down::@3->play_move_down::@return#9] -- register_copy + // [282] phi (word) lines_bcd#15 = (word) lines_bcd#19 [phi:play_move_down::@3->play_move_down::@return#10] -- register_copy + // [282] phi (byte) current_ypos#19 = (byte) current_ypos#11 [phi:play_move_down::@3->play_move_down::@return#11] -- register_copy + // [282] phi (byte) current_movedown_counter#14 = (byte) current_movedown_counter#12 [phi:play_move_down::@3->play_move_down::@return#12] -- register_copy + // [282] phi (byte) play_move_down::return#3 = (byte) 0 [phi:play_move_down::@3->play_move_down::@return#13] -- vbuxx=vbuc1 ldx #0 // play_move_down::@return // } - // [285] return + // [283] return rts // play_move_down::@10 __b10: // current_ypos++; - // [286] (byte) current_ypos#3 ← ++ (byte) current_ypos#11 -- vbuz1=_inc_vbuz1 + // [284] (byte) current_ypos#3 ← ++ (byte) current_ypos#11 -- vbuz1=_inc_vbuz1 inc.z current_ypos - // [283] phi from play_move_down::@10 to play_move_down::@11 [phi:play_move_down::@10->play_move_down::@11] - // [283] phi (byte) next_piece_idx#30 = (byte) next_piece_idx#10 [phi:play_move_down::@10->play_move_down::@11#0] -- register_copy - // [283] phi (byte) game_over#27 = (byte) game_over#10 [phi:play_move_down::@10->play_move_down::@11#1] -- register_copy - // [283] phi (byte) current_xpos#43 = (byte) current_xpos#14 [phi:play_move_down::@10->play_move_down::@11#2] -- register_copy - // [283] phi (byte*) current_piece_gfx#35 = (byte*) current_piece_gfx#13 [phi:play_move_down::@10->play_move_down::@11#3] -- register_copy - // [283] phi (byte) current_orientation#37 = (byte) current_orientation#13 [phi:play_move_down::@10->play_move_down::@11#4] -- register_copy - // [283] phi (byte) current_piece_char#29 = (byte) current_piece_char#10 [phi:play_move_down::@10->play_move_down::@11#5] -- register_copy - // [283] phi (byte*) current_piece#28 = (byte*) current_piece#10 [phi:play_move_down::@10->play_move_down::@11#6] -- register_copy - // [283] phi (byte) level_bcd#31 = (byte) level_bcd#11 [phi:play_move_down::@10->play_move_down::@11#7] -- register_copy - // [283] phi (byte) current_movedown_slow#37 = (byte) current_movedown_slow#14 [phi:play_move_down::@10->play_move_down::@11#8] -- register_copy - // [283] phi (byte) level#33 = (byte) level#10 [phi:play_move_down::@10->play_move_down::@11#9] -- register_copy - // [283] phi (word) lines_bcd#26 = (word) lines_bcd#19 [phi:play_move_down::@10->play_move_down::@11#10] -- register_copy - // [283] phi (byte) current_ypos#38 = (byte) current_ypos#3 [phi:play_move_down::@10->play_move_down::@11#11] -- register_copy + // [281] phi from play_move_down::@10 to play_move_down::@11 [phi:play_move_down::@10->play_move_down::@11] + // [281] phi (byte) next_piece_idx#30 = (byte) next_piece_idx#10 [phi:play_move_down::@10->play_move_down::@11#0] -- register_copy + // [281] phi (byte) game_over#27 = (byte) game_over#10 [phi:play_move_down::@10->play_move_down::@11#1] -- register_copy + // [281] phi (byte) current_xpos#43 = (byte) current_xpos#14 [phi:play_move_down::@10->play_move_down::@11#2] -- register_copy + // [281] phi (byte*) current_piece_gfx#35 = (byte*) current_piece_gfx#13 [phi:play_move_down::@10->play_move_down::@11#3] -- register_copy + // [281] phi (byte) current_orientation#37 = (byte) current_orientation#13 [phi:play_move_down::@10->play_move_down::@11#4] -- register_copy + // [281] phi (byte) current_piece_char#29 = (byte) current_piece_char#10 [phi:play_move_down::@10->play_move_down::@11#5] -- register_copy + // [281] phi (byte*) current_piece#28 = (byte*) current_piece#10 [phi:play_move_down::@10->play_move_down::@11#6] -- register_copy + // [281] phi (byte) level_bcd#31 = (byte) level_bcd#11 [phi:play_move_down::@10->play_move_down::@11#7] -- register_copy + // [281] phi (byte) current_movedown_slow#37 = (byte) current_movedown_slow#14 [phi:play_move_down::@10->play_move_down::@11#8] -- register_copy + // [281] phi (byte) level#33 = (byte) level#10 [phi:play_move_down::@10->play_move_down::@11#9] -- register_copy + // [281] phi (word) lines_bcd#26 = (word) lines_bcd#19 [phi:play_move_down::@10->play_move_down::@11#10] -- register_copy + // [281] phi (byte) current_ypos#38 = (byte) current_ypos#3 [phi:play_move_down::@10->play_move_down::@11#11] -- register_copy jmp __b11 } // play_spawn_current @@ -23741,93 +23716,93 @@ play_spawn_current: { // Pick a random piece (0-6) .label piece_idx = 5 // current_piece_idx = next_piece_idx - // [288] (byte) play_spawn_current::current_piece_idx#0 ← (byte) next_piece_idx#17 -- vbuxx=vbuz1 + // [286] (byte) play_spawn_current::current_piece_idx#0 ← (byte) next_piece_idx#17 -- vbuxx=vbuz1 // Move next piece into current ldx.z next_piece_idx // current_piece = PIECES[current_piece_idx] - // [289] (byte~) play_spawn_current::$7 ← (byte) play_spawn_current::current_piece_idx#0 << (byte) 1 -- vbuz1=vbuxx_rol_1 + // [287] (byte~) play_spawn_current::$7 ← (byte) play_spawn_current::current_piece_idx#0 << (byte) 1 -- vbuz1=vbuxx_rol_1 txa asl sta.z __7 // current_piece_char = PIECES_CHARS[current_piece_idx] - // [290] (byte) current_piece_char#5 ← *((const byte*) PIECES_CHARS + (byte) play_spawn_current::current_piece_idx#0) -- vbuz1=pbuc1_derefidx_vbuxx + // [288] (byte) current_piece_char#5 ← *((const byte*) PIECES_CHARS + (byte) play_spawn_current::current_piece_idx#0) -- vbuz1=pbuc1_derefidx_vbuxx lda PIECES_CHARS,x sta.z current_piece_char // current_xpos = PIECES_START_X[current_piece_idx] - // [291] (byte) current_xpos#100 ← *((const byte*) PIECES_START_X + (byte) play_spawn_current::current_piece_idx#0) -- vbuz1=pbuc1_derefidx_vbuxx + // [289] (byte) current_xpos#100 ← *((const byte*) PIECES_START_X + (byte) play_spawn_current::current_piece_idx#0) -- vbuz1=pbuc1_derefidx_vbuxx lda PIECES_START_X,x sta.z current_xpos // current_ypos = PIECES_START_Y[current_piece_idx] - // [292] (byte) current_ypos#6 ← *((const byte*) PIECES_START_Y + (byte) play_spawn_current::current_piece_idx#0) -- vbuz1=pbuc1_derefidx_vbuxx + // [290] (byte) current_ypos#6 ← *((const byte*) PIECES_START_Y + (byte) play_spawn_current::current_piece_idx#0) -- vbuz1=pbuc1_derefidx_vbuxx lda PIECES_START_Y,x sta.z current_ypos // play_collision(current_xpos,current_ypos,current_orientation) - // [293] (byte) play_collision::xpos#4 ← (byte) current_xpos#100 -- vbuz1=vbuz2 + // [291] (byte) play_collision::xpos#4 ← (byte) current_xpos#100 -- vbuz1=vbuz2 lda.z current_xpos sta.z play_collision.xpos - // [294] (byte) play_collision::ypos#4 ← (byte) current_ypos#6 -- vbuz1=vbuz2 + // [292] (byte) play_collision::ypos#4 ← (byte) current_ypos#6 -- vbuz1=vbuz2 lda.z current_ypos sta.z play_collision.ypos - // [295] (byte*) current_piece#99 ← (byte*)*((const word*) PIECES + (byte~) play_spawn_current::$7) -- pbuz1=pptc1_derefidx_vbuz2 + // [293] (byte*) current_piece#99 ← (byte*)*((const word*) PIECES + (byte~) play_spawn_current::$7) -- pbuz1=pptc1_derefidx_vbuz2 ldy.z __7 lda PIECES,y sta.z current_piece_1 lda PIECES+1,y sta.z current_piece_1+1 // play_collision(current_xpos,current_ypos,current_orientation) - // [296] call play_collision - // [202] phi from play_spawn_current to play_collision [phi:play_spawn_current->play_collision] - // [202] phi (byte) play_collision::xpos#6 = (byte) play_collision::xpos#4 [phi:play_spawn_current->play_collision#0] -- register_copy - // [202] phi (byte) play_collision::yp#0 = (byte) play_collision::ypos#4 [phi:play_spawn_current->play_collision#1] -- register_copy - // [202] phi (byte) play_collision::orientation#5 = (byte) 0 [phi:play_spawn_current->play_collision#2] -- vbuxx=vbuc1 + // [294] call play_collision + // [200] phi from play_spawn_current to play_collision [phi:play_spawn_current->play_collision] + // [200] phi (byte) play_collision::xpos#6 = (byte) play_collision::xpos#4 [phi:play_spawn_current->play_collision#0] -- register_copy + // [200] phi (byte) play_collision::yp#0 = (byte) play_collision::ypos#4 [phi:play_spawn_current->play_collision#1] -- register_copy + // [200] phi (byte) play_collision::orientation#5 = (byte) 0 [phi:play_spawn_current->play_collision#2] -- vbuxx=vbuc1 ldx #0 - // [202] phi (byte*) current_piece#17 = (byte*) current_piece#99 [phi:play_spawn_current->play_collision#3] -- register_copy + // [200] phi (byte*) current_piece#17 = (byte*) current_piece#99 [phi:play_spawn_current->play_collision#3] -- register_copy jsr play_collision // play_collision(current_xpos,current_ypos,current_orientation) - // [297] (byte) play_collision::return#10 ← (byte) play_collision::return#15 + // [295] (byte) play_collision::return#10 ← (byte) play_collision::return#15 // play_spawn_current::@4 - // [298] (byte~) play_spawn_current::$1 ← (byte) play_collision::return#10 + // [296] (byte~) play_spawn_current::$1 ← (byte) play_collision::return#10 // if(play_collision(current_xpos,current_ypos,current_orientation)==COLLISION_PLAYFIELD) - // [299] if((byte~) play_spawn_current::$1!=(const byte) COLLISION_PLAYFIELD) goto play_spawn_current::@5 -- vbuaa_neq_vbuc1_then_la1 + // [297] if((byte~) play_spawn_current::$1!=(const byte) COLLISION_PLAYFIELD) goto play_spawn_current::@5 -- vbuaa_neq_vbuc1_then_la1 cmp #COLLISION_PLAYFIELD bne __b1 - // [301] phi from play_spawn_current::@4 to play_spawn_current::@1 [phi:play_spawn_current::@4->play_spawn_current::@1] - // [301] phi (byte) game_over#52 = (byte) 1 [phi:play_spawn_current::@4->play_spawn_current::@1#0] -- vbuz1=vbuc1 + // [299] phi from play_spawn_current::@4 to play_spawn_current::@1 [phi:play_spawn_current::@4->play_spawn_current::@1] + // [299] phi (byte) game_over#52 = (byte) 1 [phi:play_spawn_current::@4->play_spawn_current::@1#0] -- vbuz1=vbuc1 lda #1 sta.z game_over - // [300] phi from play_spawn_current::@4 to play_spawn_current::@5 [phi:play_spawn_current::@4->play_spawn_current::@5] + // [298] phi from play_spawn_current::@4 to play_spawn_current::@5 [phi:play_spawn_current::@4->play_spawn_current::@5] // play_spawn_current::@5 - // [301] phi from play_spawn_current::@5 to play_spawn_current::@1 [phi:play_spawn_current::@5->play_spawn_current::@1] - // [301] phi (byte) game_over#52 = (byte) game_over#65 [phi:play_spawn_current::@5->play_spawn_current::@1#0] -- register_copy + // [299] phi from play_spawn_current::@5 to play_spawn_current::@1 [phi:play_spawn_current::@5->play_spawn_current::@1] + // [299] phi (byte) game_over#52 = (byte) game_over#65 [phi:play_spawn_current::@5->play_spawn_current::@1#0] -- register_copy // play_spawn_current::@1 __b1: - // [302] phi from play_spawn_current::@1 to play_spawn_current::@2 [phi:play_spawn_current::@1->play_spawn_current::@2] - // [302] phi (byte) play_spawn_current::piece_idx#2 = (byte) 7 [phi:play_spawn_current::@1->play_spawn_current::@2#0] -- vbuz1=vbuc1 + // [300] phi from play_spawn_current::@1 to play_spawn_current::@2 [phi:play_spawn_current::@1->play_spawn_current::@2] + // [300] phi (byte) play_spawn_current::piece_idx#2 = (byte) 7 [phi:play_spawn_current::@1->play_spawn_current::@2#0] -- vbuz1=vbuc1 lda #7 sta.z piece_idx // play_spawn_current::@2 __b2: // while(piece_idx==7) - // [303] if((byte) play_spawn_current::piece_idx#2==(byte) 7) goto play_spawn_current::sid_rnd1 -- vbuz1_eq_vbuc1_then_la1 + // [301] if((byte) play_spawn_current::piece_idx#2==(byte) 7) goto play_spawn_current::sid_rnd1 -- vbuz1_eq_vbuc1_then_la1 lda #7 cmp.z piece_idx beq sid_rnd1 // play_spawn_current::@return // } - // [304] return + // [302] return rts // play_spawn_current::sid_rnd1 sid_rnd1: // return *SID_VOICE3_OSC; - // [305] (byte) play_spawn_current::sid_rnd1_return#0 ← *((const byte*) SID_VOICE3_OSC) -- vbuaa=_deref_pbuc1 + // [303] (byte) play_spawn_current::sid_rnd1_return#0 ← *((const byte*) SID_VOICE3_OSC) -- vbuaa=_deref_pbuc1 lda SID_VOICE3_OSC // play_spawn_current::@3 // piece_idx = sid_rnd()&7 - // [306] (byte) play_spawn_current::piece_idx#1 ← (byte) play_spawn_current::sid_rnd1_return#0 & (byte) 7 -- vbuz1=vbuaa_band_vbuc1 + // [304] (byte) play_spawn_current::piece_idx#1 ← (byte) play_spawn_current::sid_rnd1_return#0 & (byte) 7 -- vbuz1=vbuaa_band_vbuc1 and #7 sta.z piece_idx - // [302] phi from play_spawn_current::@3 to play_spawn_current::@2 [phi:play_spawn_current::@3->play_spawn_current::@2] - // [302] phi (byte) play_spawn_current::piece_idx#2 = (byte) play_spawn_current::piece_idx#1 [phi:play_spawn_current::@3->play_spawn_current::@2#0] -- register_copy + // [300] phi from play_spawn_current::@3 to play_spawn_current::@2 [phi:play_spawn_current::@3->play_spawn_current::@2] + // [300] phi (byte) play_spawn_current::piece_idx#2 = (byte) play_spawn_current::piece_idx#1 [phi:play_spawn_current::@3->play_spawn_current::@2#0] -- register_copy jmp __b2 } // play_update_score @@ -23837,23 +23812,23 @@ play_update_score: { .label lines_before = $25 .label add_bcd = $26 // if(removed!=0) - // [307] if((byte) play_update_score::removed#0==(byte) 0) goto play_update_score::@return -- vbuxx_eq_0_then_la1 + // [305] if((byte) play_update_score::removed#0==(byte) 0) goto play_update_score::@return -- vbuxx_eq_0_then_la1 cpx #0 beq __breturn // play_update_score::@1 // play_update_score::@2] + // [317] phi from play_update_score::@1 to play_update_score::@2 [phi:play_update_score::@1->play_update_score::@2] // play_update_score::@2 // play_increase_level() - // [320] call play_increase_level + // [318] call play_increase_level jsr play_increase_level - // [321] phi from play_update_score play_update_score::@1 play_update_score::@2 to play_update_score::@return [phi:play_update_score/play_update_score::@1/play_update_score::@2->play_update_score::@return] - // [321] phi (byte) level_bcd#19 = (byte) level_bcd#11 [phi:play_update_score/play_update_score::@1/play_update_score::@2->play_update_score::@return#0] -- register_copy - // [321] phi (byte) current_movedown_slow#23 = (byte) current_movedown_slow#14 [phi:play_update_score/play_update_score::@1/play_update_score::@2->play_update_score::@return#1] -- register_copy - // [321] phi (byte) level#19 = (byte) level#10 [phi:play_update_score/play_update_score::@1/play_update_score::@2->play_update_score::@return#2] -- register_copy - // [321] phi (word) lines_bcd#17 = (word) lines_bcd#19 [phi:play_update_score/play_update_score::@1/play_update_score::@2->play_update_score::@return#3] -- register_copy + // [319] phi from play_update_score play_update_score::@1 play_update_score::@2 to play_update_score::@return [phi:play_update_score/play_update_score::@1/play_update_score::@2->play_update_score::@return] + // [319] phi (byte) level_bcd#19 = (byte) level_bcd#11 [phi:play_update_score/play_update_score::@1/play_update_score::@2->play_update_score::@return#0] -- register_copy + // [319] phi (byte) current_movedown_slow#23 = (byte) current_movedown_slow#14 [phi:play_update_score/play_update_score::@1/play_update_score::@2->play_update_score::@return#1] -- register_copy + // [319] phi (byte) level#19 = (byte) level#10 [phi:play_update_score/play_update_score::@1/play_update_score::@2->play_update_score::@return#2] -- register_copy + // [319] phi (word) lines_bcd#17 = (word) lines_bcd#19 [phi:play_update_score/play_update_score::@1/play_update_score::@2->play_update_score::@return#3] -- register_copy // play_update_score::@return __breturn: // } - // [322] return + // [320] return rts } // play_increase_level // Increase the level play_increase_level: { // level++; - // [323] (byte) level#21 ← ++ (byte) level#10 -- vbuz1=_inc_vbuz1 + // [321] (byte) level#21 ← ++ (byte) level#10 -- vbuz1=_inc_vbuz1 inc.z level // if(level>29) - // [324] if((byte) level#21>=(byte) $1d+(byte) 1) goto play_increase_level::@1 -- vbuz1_ge_vbuc1_then_la1 + // [322] if((byte) level#21>=(byte) $1d+(byte) 1) goto play_increase_level::@1 -- vbuz1_ge_vbuc1_then_la1 // Update speed of moving tetrominos down lda.z level cmp #$1d+1 bcs b1 // play_increase_level::@3 // current_movedown_slow = MOVEDOWN_SLOW_SPEEDS[level] - // [325] (byte) current_movedown_slow#10 ← *((const byte*) MOVEDOWN_SLOW_SPEEDS + (byte) level#21) -- vbuz1=pbuc1_derefidx_vbuz2 + // [323] (byte) current_movedown_slow#10 ← *((const byte*) MOVEDOWN_SLOW_SPEEDS + (byte) level#21) -- vbuz1=pbuc1_derefidx_vbuz2 tay lda MOVEDOWN_SLOW_SPEEDS,y sta.z current_movedown_slow - // [326] phi from play_increase_level::@3 to play_increase_level::@1 [phi:play_increase_level::@3->play_increase_level::@1] - // [326] phi (byte) current_movedown_slow#65 = (byte) current_movedown_slow#10 [phi:play_increase_level::@3->play_increase_level::@1#0] -- register_copy + // [324] phi from play_increase_level::@3 to play_increase_level::@1 [phi:play_increase_level::@3->play_increase_level::@1] + // [324] phi (byte) current_movedown_slow#65 = (byte) current_movedown_slow#10 [phi:play_increase_level::@3->play_increase_level::@1#0] -- register_copy jmp __b1 - // [326] phi from play_increase_level to play_increase_level::@1 [phi:play_increase_level->play_increase_level::@1] + // [324] phi from play_increase_level to play_increase_level::@1 [phi:play_increase_level->play_increase_level::@1] b1: - // [326] phi (byte) current_movedown_slow#65 = (byte) 1 [phi:play_increase_level->play_increase_level::@1#0] -- vbuz1=vbuc1 + // [324] phi (byte) current_movedown_slow#65 = (byte) 1 [phi:play_increase_level->play_increase_level::@1#0] -- vbuz1=vbuc1 lda #1 sta.z current_movedown_slow // play_increase_level::@1 __b1: // level_bcd++; - // [327] (byte) level_bcd#21 ← ++ (byte) level_bcd#11 -- vbuz1=_inc_vbuz1 + // [325] (byte) level_bcd#21 ← ++ (byte) level_bcd#11 -- vbuz1=_inc_vbuz1 inc.z level_bcd // level_bcd&0xf - // [328] (byte~) play_increase_level::$1 ← (byte) level_bcd#21 & (byte) $f -- vbuaa=vbuz1_band_vbuc1 + // [326] (byte~) play_increase_level::$1 ← (byte) level_bcd#21 & (byte) $f -- vbuaa=vbuz1_band_vbuc1 lda #$f and.z level_bcd // if((level_bcd&0xf)==0xa) - // [329] if((byte~) play_increase_level::$1!=(byte) $a) goto play_increase_level::@2 -- vbuaa_neq_vbuc1_then_la1 + // [327] if((byte~) play_increase_level::$1!=(byte) $a) goto play_increase_level::@2 -- vbuaa_neq_vbuc1_then_la1 cmp #$a bne __b2 // play_increase_level::@4 // level_bcd += 6 - // [330] (byte) level_bcd#8 ← (byte) level_bcd#21 + (byte) 6 -- vbuz1=vbuz1_plus_vbuc1 + // [328] (byte) level_bcd#8 ← (byte) level_bcd#21 + (byte) 6 -- vbuz1=vbuz1_plus_vbuc1 // If level low nybble hits 0xa change to 0x10 lax.z level_bcd axs #-[6] stx.z level_bcd - // [331] phi from play_increase_level::@1 play_increase_level::@4 to play_increase_level::@2 [phi:play_increase_level::@1/play_increase_level::@4->play_increase_level::@2] - // [331] phi (byte) level_bcd#62 = (byte) level_bcd#21 [phi:play_increase_level::@1/play_increase_level::@4->play_increase_level::@2#0] -- register_copy + // [329] phi from play_increase_level::@1 play_increase_level::@4 to play_increase_level::@2 [phi:play_increase_level::@1/play_increase_level::@4->play_increase_level::@2] + // [329] phi (byte) level_bcd#62 = (byte) level_bcd#21 [phi:play_increase_level::@1/play_increase_level::@4->play_increase_level::@2#0] -- register_copy // play_increase_level::@2 __b2: // asm // asm { sed } // Increase the score values gained sed - // [333] phi from play_increase_level::@2 to play_increase_level::@5 [phi:play_increase_level::@2->play_increase_level::@5] - // [333] phi (byte) play_increase_level::b#2 = (byte) 0 [phi:play_increase_level::@2->play_increase_level::@5#0] -- vbuxx=vbuc1 + // [331] phi from play_increase_level::@2 to play_increase_level::@5 [phi:play_increase_level::@2->play_increase_level::@5] + // [331] phi (byte) play_increase_level::b#2 = (byte) 0 [phi:play_increase_level::@2->play_increase_level::@5#0] -- vbuxx=vbuc1 ldx #0 - // [333] phi from play_increase_level::@5 to play_increase_level::@5 [phi:play_increase_level::@5->play_increase_level::@5] - // [333] phi (byte) play_increase_level::b#2 = (byte) play_increase_level::b#1 [phi:play_increase_level::@5->play_increase_level::@5#0] -- register_copy + // [331] phi from play_increase_level::@5 to play_increase_level::@5 [phi:play_increase_level::@5->play_increase_level::@5] + // [331] phi (byte) play_increase_level::b#2 = (byte) play_increase_level::b#1 [phi:play_increase_level::@5->play_increase_level::@5#0] -- register_copy // play_increase_level::@5 __b5: // score_add_bcd[b] += SCORE_BASE_BCD[b] - // [334] (byte~) play_increase_level::$5 ← (byte) play_increase_level::b#2 << (byte) 2 -- vbuaa=vbuxx_rol_2 + // [332] (byte~) play_increase_level::$5 ← (byte) play_increase_level::b#2 << (byte) 2 -- vbuaa=vbuxx_rol_2 txa asl asl - // [335] *((const dword*) score_add_bcd + (byte~) play_increase_level::$5) ← *((const dword*) score_add_bcd + (byte~) play_increase_level::$5) + *((const dword*) SCORE_BASE_BCD + (byte~) play_increase_level::$5) -- pduc1_derefidx_vbuaa=pduc1_derefidx_vbuaa_plus_pduc2_derefidx_vbuaa + // [333] *((const dword*) score_add_bcd + (byte~) play_increase_level::$5) ← *((const dword*) score_add_bcd + (byte~) play_increase_level::$5) + *((const dword*) SCORE_BASE_BCD + (byte~) play_increase_level::$5) -- pduc1_derefidx_vbuaa=pduc1_derefidx_vbuaa_plus_pduc2_derefidx_vbuaa tay clc lda score_add_bcd,y @@ -24001,9 +23976,9 @@ play_increase_level: { adc SCORE_BASE_BCD+3,y sta score_add_bcd+3,y // for(char b: 0..4) - // [336] (byte) play_increase_level::b#1 ← ++ (byte) play_increase_level::b#2 -- vbuxx=_inc_vbuxx + // [334] (byte) play_increase_level::b#1 ← ++ (byte) play_increase_level::b#2 -- vbuxx=_inc_vbuxx inx - // [337] if((byte) play_increase_level::b#1!=(byte) 5) goto play_increase_level::@5 -- vbuxx_neq_vbuc1_then_la1 + // [335] if((byte) play_increase_level::b#1!=(byte) 5) goto play_increase_level::@5 -- vbuxx_neq_vbuc1_then_la1 cpx #5 bne __b5 // play_increase_level::@6 @@ -24012,7 +23987,7 @@ play_increase_level: { cld // play_increase_level::@return // } - // [339] return + // [337] return rts } // play_remove_lines @@ -24026,121 +24001,121 @@ play_remove_lines: { .label y = 7 .label removed = 8 .label full = $a - // [341] phi from play_remove_lines to play_remove_lines::@1 [phi:play_remove_lines->play_remove_lines::@1] - // [341] phi (byte) play_remove_lines::removed#11 = (byte) 0 [phi:play_remove_lines->play_remove_lines::@1#0] -- vbuz1=vbuc1 + // [339] phi from play_remove_lines to play_remove_lines::@1 [phi:play_remove_lines->play_remove_lines::@1] + // [339] phi (byte) play_remove_lines::removed#11 = (byte) 0 [phi:play_remove_lines->play_remove_lines::@1#0] -- vbuz1=vbuc1 lda #0 sta.z removed - // [341] phi (byte) play_remove_lines::y#8 = (byte) 0 [phi:play_remove_lines->play_remove_lines::@1#1] -- vbuz1=vbuc1 + // [339] phi (byte) play_remove_lines::y#8 = (byte) 0 [phi:play_remove_lines->play_remove_lines::@1#1] -- vbuz1=vbuc1 sta.z y - // [341] phi (byte) play_remove_lines::w#12 = (const byte) PLAYFIELD_LINES*(const byte) PLAYFIELD_COLS-(byte) 1 [phi:play_remove_lines->play_remove_lines::@1#2] -- vbuxx=vbuc1 + // [339] phi (byte) play_remove_lines::w#12 = (const byte) PLAYFIELD_LINES*(const byte) PLAYFIELD_COLS-(byte) 1 [phi:play_remove_lines->play_remove_lines::@1#2] -- vbuxx=vbuc1 ldx #PLAYFIELD_LINES*PLAYFIELD_COLS-1 - // [341] phi (byte) play_remove_lines::r#3 = (const byte) PLAYFIELD_LINES*(const byte) PLAYFIELD_COLS-(byte) 1 [phi:play_remove_lines->play_remove_lines::@1#3] -- vbuyy=vbuc1 + // [339] phi (byte) play_remove_lines::r#3 = (const byte) PLAYFIELD_LINES*(const byte) PLAYFIELD_COLS-(byte) 1 [phi:play_remove_lines->play_remove_lines::@1#3] -- vbuyy=vbuc1 ldy #PLAYFIELD_LINES*PLAYFIELD_COLS-1 // Read all lines and rewrite them - // [341] phi from play_remove_lines::@6 to play_remove_lines::@1 [phi:play_remove_lines::@6->play_remove_lines::@1] - // [341] phi (byte) play_remove_lines::removed#11 = (byte) play_remove_lines::removed#8 [phi:play_remove_lines::@6->play_remove_lines::@1#0] -- register_copy - // [341] phi (byte) play_remove_lines::y#8 = (byte) play_remove_lines::y#1 [phi:play_remove_lines::@6->play_remove_lines::@1#1] -- register_copy - // [341] phi (byte) play_remove_lines::w#12 = (byte) play_remove_lines::w#11 [phi:play_remove_lines::@6->play_remove_lines::@1#2] -- register_copy - // [341] phi (byte) play_remove_lines::r#3 = (byte) play_remove_lines::r#1 [phi:play_remove_lines::@6->play_remove_lines::@1#3] -- register_copy + // [339] phi from play_remove_lines::@6 to play_remove_lines::@1 [phi:play_remove_lines::@6->play_remove_lines::@1] + // [339] phi (byte) play_remove_lines::removed#11 = (byte) play_remove_lines::removed#8 [phi:play_remove_lines::@6->play_remove_lines::@1#0] -- register_copy + // [339] phi (byte) play_remove_lines::y#8 = (byte) play_remove_lines::y#1 [phi:play_remove_lines::@6->play_remove_lines::@1#1] -- register_copy + // [339] phi (byte) play_remove_lines::w#12 = (byte) play_remove_lines::w#11 [phi:play_remove_lines::@6->play_remove_lines::@1#2] -- register_copy + // [339] phi (byte) play_remove_lines::r#3 = (byte) play_remove_lines::r#1 [phi:play_remove_lines::@6->play_remove_lines::@1#3] -- register_copy // play_remove_lines::@1 __b1: - // [342] phi from play_remove_lines::@1 to play_remove_lines::@2 [phi:play_remove_lines::@1->play_remove_lines::@2] - // [342] phi (byte) play_remove_lines::full#4 = (byte) 1 [phi:play_remove_lines::@1->play_remove_lines::@2#0] -- vbuz1=vbuc1 + // [340] phi from play_remove_lines::@1 to play_remove_lines::@2 [phi:play_remove_lines::@1->play_remove_lines::@2] + // [340] phi (byte) play_remove_lines::full#4 = (byte) 1 [phi:play_remove_lines::@1->play_remove_lines::@2#0] -- vbuz1=vbuc1 lda #1 sta.z full - // [342] phi (byte) play_remove_lines::x#2 = (byte) 0 [phi:play_remove_lines::@1->play_remove_lines::@2#1] -- vbuz1=vbuc1 + // [340] phi (byte) play_remove_lines::x#2 = (byte) 0 [phi:play_remove_lines::@1->play_remove_lines::@2#1] -- vbuz1=vbuc1 lda #0 sta.z x - // [342] phi (byte) play_remove_lines::w#4 = (byte) play_remove_lines::w#12 [phi:play_remove_lines::@1->play_remove_lines::@2#2] -- register_copy - // [342] phi (byte) play_remove_lines::r#2 = (byte) play_remove_lines::r#3 [phi:play_remove_lines::@1->play_remove_lines::@2#3] -- register_copy - // [342] phi from play_remove_lines::@3 to play_remove_lines::@2 [phi:play_remove_lines::@3->play_remove_lines::@2] - // [342] phi (byte) play_remove_lines::full#4 = (byte) play_remove_lines::full#2 [phi:play_remove_lines::@3->play_remove_lines::@2#0] -- register_copy - // [342] phi (byte) play_remove_lines::x#2 = (byte) play_remove_lines::x#1 [phi:play_remove_lines::@3->play_remove_lines::@2#1] -- register_copy - // [342] phi (byte) play_remove_lines::w#4 = (byte) play_remove_lines::w#1 [phi:play_remove_lines::@3->play_remove_lines::@2#2] -- register_copy - // [342] phi (byte) play_remove_lines::r#2 = (byte) play_remove_lines::r#1 [phi:play_remove_lines::@3->play_remove_lines::@2#3] -- register_copy + // [340] phi (byte) play_remove_lines::w#4 = (byte) play_remove_lines::w#12 [phi:play_remove_lines::@1->play_remove_lines::@2#2] -- register_copy + // [340] phi (byte) play_remove_lines::r#2 = (byte) play_remove_lines::r#3 [phi:play_remove_lines::@1->play_remove_lines::@2#3] -- register_copy + // [340] phi from play_remove_lines::@3 to play_remove_lines::@2 [phi:play_remove_lines::@3->play_remove_lines::@2] + // [340] phi (byte) play_remove_lines::full#4 = (byte) play_remove_lines::full#2 [phi:play_remove_lines::@3->play_remove_lines::@2#0] -- register_copy + // [340] phi (byte) play_remove_lines::x#2 = (byte) play_remove_lines::x#1 [phi:play_remove_lines::@3->play_remove_lines::@2#1] -- register_copy + // [340] phi (byte) play_remove_lines::w#4 = (byte) play_remove_lines::w#1 [phi:play_remove_lines::@3->play_remove_lines::@2#2] -- register_copy + // [340] phi (byte) play_remove_lines::r#2 = (byte) play_remove_lines::r#1 [phi:play_remove_lines::@3->play_remove_lines::@2#3] -- register_copy // play_remove_lines::@2 __b2: // c = playfield[r--] - // [343] (byte) play_remove_lines::c#0 ← *((const byte*) playfield + (byte) play_remove_lines::r#2) -- vbuz1=pbuc1_derefidx_vbuyy + // [341] (byte) play_remove_lines::c#0 ← *((const byte*) playfield + (byte) play_remove_lines::r#2) -- vbuz1=pbuc1_derefidx_vbuyy lda playfield,y sta.z c - // [344] (byte) play_remove_lines::r#1 ← -- (byte) play_remove_lines::r#2 -- vbuyy=_dec_vbuyy + // [342] (byte) play_remove_lines::r#1 ← -- (byte) play_remove_lines::r#2 -- vbuyy=_dec_vbuyy dey // if(c==0) - // [345] if((byte) play_remove_lines::c#0!=(byte) 0) goto play_remove_lines::@9 -- vbuz1_neq_0_then_la1 + // [343] if((byte) play_remove_lines::c#0!=(byte) 0) goto play_remove_lines::@9 -- vbuz1_neq_0_then_la1 cmp #0 bne __b3 - // [347] phi from play_remove_lines::@2 to play_remove_lines::@3 [phi:play_remove_lines::@2->play_remove_lines::@3] - // [347] phi (byte) play_remove_lines::full#2 = (byte) 0 [phi:play_remove_lines::@2->play_remove_lines::@3#0] -- vbuz1=vbuc1 + // [345] phi from play_remove_lines::@2 to play_remove_lines::@3 [phi:play_remove_lines::@2->play_remove_lines::@3] + // [345] phi (byte) play_remove_lines::full#2 = (byte) 0 [phi:play_remove_lines::@2->play_remove_lines::@3#0] -- vbuz1=vbuc1 lda #0 sta.z full - // [346] phi from play_remove_lines::@2 to play_remove_lines::@9 [phi:play_remove_lines::@2->play_remove_lines::@9] + // [344] phi from play_remove_lines::@2 to play_remove_lines::@9 [phi:play_remove_lines::@2->play_remove_lines::@9] // play_remove_lines::@9 - // [347] phi from play_remove_lines::@9 to play_remove_lines::@3 [phi:play_remove_lines::@9->play_remove_lines::@3] - // [347] phi (byte) play_remove_lines::full#2 = (byte) play_remove_lines::full#4 [phi:play_remove_lines::@9->play_remove_lines::@3#0] -- register_copy + // [345] phi from play_remove_lines::@9 to play_remove_lines::@3 [phi:play_remove_lines::@9->play_remove_lines::@3] + // [345] phi (byte) play_remove_lines::full#2 = (byte) play_remove_lines::full#4 [phi:play_remove_lines::@9->play_remove_lines::@3#0] -- register_copy // play_remove_lines::@3 __b3: // playfield[w--] = c - // [348] *((const byte*) playfield + (byte) play_remove_lines::w#4) ← (byte) play_remove_lines::c#0 -- pbuc1_derefidx_vbuxx=vbuz1 + // [346] *((const byte*) playfield + (byte) play_remove_lines::w#4) ← (byte) play_remove_lines::c#0 -- pbuc1_derefidx_vbuxx=vbuz1 lda.z c sta playfield,x // playfield[w--] = c; - // [349] (byte) play_remove_lines::w#1 ← -- (byte) play_remove_lines::w#4 -- vbuxx=_dec_vbuxx + // [347] (byte) play_remove_lines::w#1 ← -- (byte) play_remove_lines::w#4 -- vbuxx=_dec_vbuxx dex // for(char x:0..PLAYFIELD_COLS-1) - // [350] (byte) play_remove_lines::x#1 ← ++ (byte) play_remove_lines::x#2 -- vbuz1=_inc_vbuz1 + // [348] (byte) play_remove_lines::x#1 ← ++ (byte) play_remove_lines::x#2 -- vbuz1=_inc_vbuz1 inc.z x - // [351] if((byte) play_remove_lines::x#1!=(const byte) PLAYFIELD_COLS-(byte) 1+(byte) 1) goto play_remove_lines::@2 -- vbuz1_neq_vbuc1_then_la1 + // [349] if((byte) play_remove_lines::x#1!=(const byte) PLAYFIELD_COLS-(byte) 1+(byte) 1) goto play_remove_lines::@2 -- vbuz1_neq_vbuc1_then_la1 lda #PLAYFIELD_COLS-1+1 cmp.z x bne __b2 // play_remove_lines::@4 // if(full==1) - // [352] if((byte) play_remove_lines::full#2!=(byte) 1) goto play_remove_lines::@6 -- vbuz1_neq_vbuc1_then_la1 + // [350] if((byte) play_remove_lines::full#2!=(byte) 1) goto play_remove_lines::@6 -- vbuz1_neq_vbuc1_then_la1 lda #1 cmp.z full bne __b6 // play_remove_lines::@5 // w = w + PLAYFIELD_COLS - // [353] (byte) play_remove_lines::w#2 ← (byte) play_remove_lines::w#1 + (const byte) PLAYFIELD_COLS -- vbuxx=vbuxx_plus_vbuc1 + // [351] (byte) play_remove_lines::w#2 ← (byte) play_remove_lines::w#1 + (const byte) PLAYFIELD_COLS -- vbuxx=vbuxx_plus_vbuc1 txa axs #-[PLAYFIELD_COLS] // removed++; - // [354] (byte) play_remove_lines::removed#1 ← ++ (byte) play_remove_lines::removed#11 -- vbuz1=_inc_vbuz1 + // [352] (byte) play_remove_lines::removed#1 ← ++ (byte) play_remove_lines::removed#11 -- vbuz1=_inc_vbuz1 inc.z removed - // [355] phi from play_remove_lines::@4 play_remove_lines::@5 to play_remove_lines::@6 [phi:play_remove_lines::@4/play_remove_lines::@5->play_remove_lines::@6] - // [355] phi (byte) play_remove_lines::removed#8 = (byte) play_remove_lines::removed#11 [phi:play_remove_lines::@4/play_remove_lines::@5->play_remove_lines::@6#0] -- register_copy - // [355] phi (byte) play_remove_lines::w#11 = (byte) play_remove_lines::w#1 [phi:play_remove_lines::@4/play_remove_lines::@5->play_remove_lines::@6#1] -- register_copy + // [353] phi from play_remove_lines::@4 play_remove_lines::@5 to play_remove_lines::@6 [phi:play_remove_lines::@4/play_remove_lines::@5->play_remove_lines::@6] + // [353] phi (byte) play_remove_lines::removed#8 = (byte) play_remove_lines::removed#11 [phi:play_remove_lines::@4/play_remove_lines::@5->play_remove_lines::@6#0] -- register_copy + // [353] phi (byte) play_remove_lines::w#11 = (byte) play_remove_lines::w#1 [phi:play_remove_lines::@4/play_remove_lines::@5->play_remove_lines::@6#1] -- register_copy // play_remove_lines::@6 __b6: // for(char y:0..PLAYFIELD_LINES-1) - // [356] (byte) play_remove_lines::y#1 ← ++ (byte) play_remove_lines::y#8 -- vbuz1=_inc_vbuz1 + // [354] (byte) play_remove_lines::y#1 ← ++ (byte) play_remove_lines::y#8 -- vbuz1=_inc_vbuz1 inc.z y - // [357] if((byte) play_remove_lines::y#1!=(const byte) PLAYFIELD_LINES-(byte) 1+(byte) 1) goto play_remove_lines::@1 -- vbuz1_neq_vbuc1_then_la1 + // [355] if((byte) play_remove_lines::y#1!=(const byte) PLAYFIELD_LINES-(byte) 1+(byte) 1) goto play_remove_lines::@1 -- vbuz1_neq_vbuc1_then_la1 lda #PLAYFIELD_LINES-1+1 cmp.z y bne __b1 - // [358] phi from play_remove_lines::@6 play_remove_lines::@8 to play_remove_lines::@7 [phi:play_remove_lines::@6/play_remove_lines::@8->play_remove_lines::@7] + // [356] phi from play_remove_lines::@6 play_remove_lines::@8 to play_remove_lines::@7 [phi:play_remove_lines::@6/play_remove_lines::@8->play_remove_lines::@7] b1: - // [358] phi (byte) play_remove_lines::w#6 = (byte) play_remove_lines::w#11 [phi:play_remove_lines::@6/play_remove_lines::@8->play_remove_lines::@7#0] -- register_copy + // [356] phi (byte) play_remove_lines::w#6 = (byte) play_remove_lines::w#11 [phi:play_remove_lines::@6/play_remove_lines::@8->play_remove_lines::@7#0] -- register_copy // Write zeros in the rest of the lines // play_remove_lines::@7 // while(w!=0xff) - // [359] if((byte) play_remove_lines::w#6!=(byte) $ff) goto play_remove_lines::@8 -- vbuxx_neq_vbuc1_then_la1 + // [357] if((byte) play_remove_lines::w#6!=(byte) $ff) goto play_remove_lines::@8 -- vbuxx_neq_vbuc1_then_la1 cpx #$ff bne __b8 // play_remove_lines::@return // } - // [360] return + // [358] return rts // play_remove_lines::@8 __b8: // playfield[w--] = 0 - // [361] *((const byte*) playfield + (byte) play_remove_lines::w#6) ← (byte) 0 -- pbuc1_derefidx_vbuxx=vbuc2 + // [359] *((const byte*) playfield + (byte) play_remove_lines::w#6) ← (byte) 0 -- pbuc1_derefidx_vbuxx=vbuc2 lda #0 sta playfield,x // playfield[w--] = 0; - // [362] (byte) play_remove_lines::w#3 ← -- (byte) play_remove_lines::w#6 -- vbuxx=_dec_vbuxx + // [360] (byte) play_remove_lines::w#3 ← -- (byte) play_remove_lines::w#6 -- vbuxx=_dec_vbuxx dex jmp b1 } @@ -24154,98 +24129,98 @@ play_lock_current: { .label l = $b .label i_1 = $c // yp = current_ypos - // [363] (byte) play_lock_current::yp#0 ← (byte) current_ypos#11 - // [364] phi from play_lock_current to play_lock_current::@1 [phi:play_lock_current->play_lock_current::@1] - // [364] phi (byte) play_lock_current::l#6 = (byte) 0 [phi:play_lock_current->play_lock_current::@1#0] -- vbuz1=vbuc1 + // [361] (byte) play_lock_current::yp#0 ← (byte) current_ypos#11 + // [362] phi from play_lock_current to play_lock_current::@1 [phi:play_lock_current->play_lock_current::@1] + // [362] phi (byte) play_lock_current::l#6 = (byte) 0 [phi:play_lock_current->play_lock_current::@1#0] -- vbuz1=vbuc1 lda #0 sta.z l - // [364] phi (byte) play_lock_current::i#3 = (byte) 0 [phi:play_lock_current->play_lock_current::@1#1] -- vbuz1=vbuc1 + // [362] phi (byte) play_lock_current::i#3 = (byte) 0 [phi:play_lock_current->play_lock_current::@1#1] -- vbuz1=vbuc1 sta.z i_1 - // [364] phi (byte) play_lock_current::yp#2 = (byte) play_lock_current::yp#0 [phi:play_lock_current->play_lock_current::@1#2] -- register_copy + // [362] phi (byte) play_lock_current::yp#2 = (byte) play_lock_current::yp#0 [phi:play_lock_current->play_lock_current::@1#2] -- register_copy // play_lock_current::@1 __b1: // playfield_line = playfield_lines[yp] - // [365] (byte~) play_lock_current::$4 ← (byte) play_lock_current::yp#2 << (byte) 1 -- vbuaa=vbuz1_rol_1 + // [363] (byte~) play_lock_current::$4 ← (byte) play_lock_current::yp#2 << (byte) 1 -- vbuaa=vbuz1_rol_1 lda.z yp asl - // [366] (byte*) play_lock_current::playfield_line#0 ← *((const byte**) playfield_lines + (byte~) play_lock_current::$4) -- pbuz1=pptc1_derefidx_vbuaa + // [364] (byte*) play_lock_current::playfield_line#0 ← *((const byte**) playfield_lines + (byte~) play_lock_current::$4) -- pbuz1=pptc1_derefidx_vbuaa tay lda playfield_lines,y sta.z playfield_line lda playfield_lines+1,y sta.z playfield_line+1 // xp = current_xpos - // [367] (byte) play_lock_current::xp#0 ← (byte) current_xpos#14 -- vbuz1=vbuz2 + // [365] (byte) play_lock_current::xp#0 ← (byte) current_xpos#14 -- vbuz1=vbuz2 lda.z current_xpos sta.z xp - // [368] phi from play_lock_current::@1 to play_lock_current::@2 [phi:play_lock_current::@1->play_lock_current::@2] - // [368] phi (byte) play_lock_current::c#2 = (byte) 0 [phi:play_lock_current::@1->play_lock_current::@2#0] -- vbuxx=vbuc1 + // [366] phi from play_lock_current::@1 to play_lock_current::@2 [phi:play_lock_current::@1->play_lock_current::@2] + // [366] phi (byte) play_lock_current::c#2 = (byte) 0 [phi:play_lock_current::@1->play_lock_current::@2#0] -- vbuxx=vbuc1 ldx #0 - // [368] phi (byte) play_lock_current::xp#2 = (byte) play_lock_current::xp#0 [phi:play_lock_current::@1->play_lock_current::@2#1] -- register_copy - // [368] phi (byte) play_lock_current::i#2 = (byte) play_lock_current::i#3 [phi:play_lock_current::@1->play_lock_current::@2#2] -- register_copy + // [366] phi (byte) play_lock_current::xp#2 = (byte) play_lock_current::xp#0 [phi:play_lock_current::@1->play_lock_current::@2#1] -- register_copy + // [366] phi (byte) play_lock_current::i#2 = (byte) play_lock_current::i#3 [phi:play_lock_current::@1->play_lock_current::@2#2] -- register_copy // play_lock_current::@2 __b2: // if(current_piece_gfx[i++]!=0) - // [369] (byte) play_lock_current::i#1 ← ++ (byte) play_lock_current::i#2 -- vbuz1=_inc_vbuz2 + // [367] (byte) play_lock_current::i#1 ← ++ (byte) play_lock_current::i#2 -- vbuz1=_inc_vbuz2 ldy.z i_1 iny sty.z i - // [370] if(*((byte*) current_piece_gfx#13 + (byte) play_lock_current::i#2)==(byte) 0) goto play_lock_current::@3 -- pbuz1_derefidx_vbuz2_eq_0_then_la1 + // [368] if(*((byte*) current_piece_gfx#13 + (byte) play_lock_current::i#2)==(byte) 0) goto play_lock_current::@3 -- pbuz1_derefidx_vbuz2_eq_0_then_la1 ldy.z i_1 lda (current_piece_gfx),y cmp #0 beq __b3 // play_lock_current::@4 // playfield_line[xp] = current_piece_char - // [371] *((byte*) play_lock_current::playfield_line#0 + (byte) play_lock_current::xp#2) ← (byte) current_piece_char#10 -- pbuz1_derefidx_vbuz2=vbuz3 + // [369] *((byte*) play_lock_current::playfield_line#0 + (byte) play_lock_current::xp#2) ← (byte) current_piece_char#10 -- pbuz1_derefidx_vbuz2=vbuz3 lda.z current_piece_char ldy.z xp sta (playfield_line),y // play_lock_current::@3 __b3: // xp++; - // [372] (byte) play_lock_current::xp#1 ← ++ (byte) play_lock_current::xp#2 -- vbuz1=_inc_vbuz1 + // [370] (byte) play_lock_current::xp#1 ← ++ (byte) play_lock_current::xp#2 -- vbuz1=_inc_vbuz1 inc.z xp // for(char c:0..3) - // [373] (byte) play_lock_current::c#1 ← ++ (byte) play_lock_current::c#2 -- vbuxx=_inc_vbuxx + // [371] (byte) play_lock_current::c#1 ← ++ (byte) play_lock_current::c#2 -- vbuxx=_inc_vbuxx inx - // [374] if((byte) play_lock_current::c#1!=(byte) 4) goto play_lock_current::@7 -- vbuxx_neq_vbuc1_then_la1 + // [372] if((byte) play_lock_current::c#1!=(byte) 4) goto play_lock_current::@7 -- vbuxx_neq_vbuc1_then_la1 cpx #4 bne __b7 // play_lock_current::@5 // yp++; - // [375] (byte) play_lock_current::yp#1 ← ++ (byte) play_lock_current::yp#2 -- vbuz1=_inc_vbuz1 + // [373] (byte) play_lock_current::yp#1 ← ++ (byte) play_lock_current::yp#2 -- vbuz1=_inc_vbuz1 inc.z yp // for(char l:0..3) - // [376] (byte) play_lock_current::l#1 ← ++ (byte) play_lock_current::l#6 -- vbuz1=_inc_vbuz1 + // [374] (byte) play_lock_current::l#1 ← ++ (byte) play_lock_current::l#6 -- vbuz1=_inc_vbuz1 inc.z l - // [377] if((byte) play_lock_current::l#1!=(byte) 4) goto play_lock_current::@6 -- vbuz1_neq_vbuc1_then_la1 + // [375] if((byte) play_lock_current::l#1!=(byte) 4) goto play_lock_current::@6 -- vbuz1_neq_vbuc1_then_la1 lda #4 cmp.z l bne __b6 // play_lock_current::@return // } - // [378] return + // [376] return rts // play_lock_current::@6 __b6: - // [379] (byte) play_lock_current::i#7 ← (byte) play_lock_current::i#1 -- vbuz1=vbuz2 + // [377] (byte) play_lock_current::i#7 ← (byte) play_lock_current::i#1 -- vbuz1=vbuz2 lda.z i sta.z i_1 - // [364] phi from play_lock_current::@6 to play_lock_current::@1 [phi:play_lock_current::@6->play_lock_current::@1] - // [364] phi (byte) play_lock_current::l#6 = (byte) play_lock_current::l#1 [phi:play_lock_current::@6->play_lock_current::@1#0] -- register_copy - // [364] phi (byte) play_lock_current::i#3 = (byte) play_lock_current::i#7 [phi:play_lock_current::@6->play_lock_current::@1#1] -- register_copy - // [364] phi (byte) play_lock_current::yp#2 = (byte) play_lock_current::yp#1 [phi:play_lock_current::@6->play_lock_current::@1#2] -- register_copy + // [362] phi from play_lock_current::@6 to play_lock_current::@1 [phi:play_lock_current::@6->play_lock_current::@1] + // [362] phi (byte) play_lock_current::l#6 = (byte) play_lock_current::l#1 [phi:play_lock_current::@6->play_lock_current::@1#0] -- register_copy + // [362] phi (byte) play_lock_current::i#3 = (byte) play_lock_current::i#7 [phi:play_lock_current::@6->play_lock_current::@1#1] -- register_copy + // [362] phi (byte) play_lock_current::yp#2 = (byte) play_lock_current::yp#1 [phi:play_lock_current::@6->play_lock_current::@1#2] -- register_copy jmp __b1 // play_lock_current::@7 __b7: - // [380] (byte) play_lock_current::i#9 ← (byte) play_lock_current::i#1 -- vbuz1=vbuz2 + // [378] (byte) play_lock_current::i#9 ← (byte) play_lock_current::i#1 -- vbuz1=vbuz2 lda.z i sta.z i_1 - // [368] phi from play_lock_current::@7 to play_lock_current::@2 [phi:play_lock_current::@7->play_lock_current::@2] - // [368] phi (byte) play_lock_current::c#2 = (byte) play_lock_current::c#1 [phi:play_lock_current::@7->play_lock_current::@2#0] -- register_copy - // [368] phi (byte) play_lock_current::xp#2 = (byte) play_lock_current::xp#1 [phi:play_lock_current::@7->play_lock_current::@2#1] -- register_copy - // [368] phi (byte) play_lock_current::i#2 = (byte) play_lock_current::i#9 [phi:play_lock_current::@7->play_lock_current::@2#2] -- register_copy + // [366] phi from play_lock_current::@7 to play_lock_current::@2 [phi:play_lock_current::@7->play_lock_current::@2] + // [366] phi (byte) play_lock_current::c#2 = (byte) play_lock_current::c#1 [phi:play_lock_current::@7->play_lock_current::@2#0] -- register_copy + // [366] phi (byte) play_lock_current::xp#2 = (byte) play_lock_current::xp#1 [phi:play_lock_current::@7->play_lock_current::@2#1] -- register_copy + // [366] phi (byte) play_lock_current::i#2 = (byte) play_lock_current::i#9 [phi:play_lock_current::@7->play_lock_current::@2#2] -- register_copy jmp __b2 } // keyboard_event_pressed @@ -24256,28 +24231,28 @@ keyboard_event_pressed: { .label row_bits = $2d .label keycode = $d // keycode>>3 - // [382] (byte~) keyboard_event_pressed::$0 ← (byte) keyboard_event_pressed::keycode#5 >> (byte) 3 -- vbuaa=vbuz1_ror_3 + // [380] (byte~) keyboard_event_pressed::$0 ← (byte) keyboard_event_pressed::keycode#5 >> (byte) 3 -- vbuaa=vbuz1_ror_3 lda.z keycode lsr lsr lsr // row_bits = keyboard_scan_values[keycode>>3] - // [383] (byte) keyboard_event_pressed::row_bits#0 ← *((const byte*) keyboard_scan_values + (byte~) keyboard_event_pressed::$0) -- vbuz1=pbuc1_derefidx_vbuaa + // [381] (byte) keyboard_event_pressed::row_bits#0 ← *((const byte*) keyboard_scan_values + (byte~) keyboard_event_pressed::$0) -- vbuz1=pbuc1_derefidx_vbuaa tay lda keyboard_scan_values,y sta.z row_bits // keycode&7 - // [384] (byte~) keyboard_event_pressed::$1 ← (byte) keyboard_event_pressed::keycode#5 & (byte) 7 -- vbuaa=vbuz1_band_vbuc1 + // [382] (byte~) keyboard_event_pressed::$1 ← (byte) keyboard_event_pressed::keycode#5 & (byte) 7 -- vbuaa=vbuz1_band_vbuc1 lda #7 and.z keycode // row_bits & keyboard_matrix_col_bitmask[keycode&7] - // [385] (byte) keyboard_event_pressed::return#11 ← (byte) keyboard_event_pressed::row_bits#0 & *((const byte*) keyboard_matrix_col_bitmask + (byte~) keyboard_event_pressed::$1) -- vbuaa=vbuz1_band_pbuc1_derefidx_vbuaa + // [383] (byte) keyboard_event_pressed::return#11 ← (byte) keyboard_event_pressed::row_bits#0 & *((const byte*) keyboard_matrix_col_bitmask + (byte~) keyboard_event_pressed::$1) -- vbuaa=vbuz1_band_pbuc1_derefidx_vbuaa tay lda keyboard_matrix_col_bitmask,y and.z row_bits // keyboard_event_pressed::@return // } - // [386] return + // [384] return rts } // keyboard_event_get @@ -24286,29 +24261,29 @@ keyboard_event_pressed: { // The buffer is filled by keyboard_event_scan() keyboard_event_get: { // if(keyboard_events_size==0) - // [387] if((byte) keyboard_events_size#13==(byte) 0) goto keyboard_event_get::@return -- vbuz1_eq_0_then_la1 + // [385] if((byte) keyboard_events_size#13==(byte) 0) goto keyboard_event_get::@return -- vbuz1_eq_0_then_la1 lda.z keyboard_events_size cmp #0 beq b1 // keyboard_event_get::@1 // return keyboard_events[--keyboard_events_size]; - // [388] (byte) keyboard_events_size#4 ← -- (byte) keyboard_events_size#13 -- vbuz1=_dec_vbuz1 + // [386] (byte) keyboard_events_size#4 ← -- (byte) keyboard_events_size#13 -- vbuz1=_dec_vbuz1 dec.z keyboard_events_size - // [389] (byte) keyboard_event_get::return#1 ← *((const byte*) keyboard_events + (byte) keyboard_events_size#4) -- vbuxx=pbuc1_derefidx_vbuz1 + // [387] (byte) keyboard_event_get::return#1 ← *((const byte*) keyboard_events + (byte) keyboard_events_size#4) -- vbuxx=pbuc1_derefidx_vbuz1 ldy.z keyboard_events_size ldx keyboard_events,y - // [390] phi from keyboard_event_get::@1 to keyboard_event_get::@return [phi:keyboard_event_get::@1->keyboard_event_get::@return] - // [390] phi (byte) keyboard_events_size#16 = (byte) keyboard_events_size#4 [phi:keyboard_event_get::@1->keyboard_event_get::@return#0] -- register_copy - // [390] phi (byte) keyboard_event_get::return#2 = (byte) keyboard_event_get::return#1 [phi:keyboard_event_get::@1->keyboard_event_get::@return#1] -- register_copy + // [388] phi from keyboard_event_get::@1 to keyboard_event_get::@return [phi:keyboard_event_get::@1->keyboard_event_get::@return] + // [388] phi (byte) keyboard_events_size#16 = (byte) keyboard_events_size#4 [phi:keyboard_event_get::@1->keyboard_event_get::@return#0] -- register_copy + // [388] phi (byte) keyboard_event_get::return#2 = (byte) keyboard_event_get::return#1 [phi:keyboard_event_get::@1->keyboard_event_get::@return#1] -- register_copy rts - // [390] phi from keyboard_event_get to keyboard_event_get::@return [phi:keyboard_event_get->keyboard_event_get::@return] + // [388] phi from keyboard_event_get to keyboard_event_get::@return [phi:keyboard_event_get->keyboard_event_get::@return] b1: - // [390] phi (byte) keyboard_events_size#16 = (byte) keyboard_events_size#13 [phi:keyboard_event_get->keyboard_event_get::@return#0] -- register_copy - // [390] phi (byte) keyboard_event_get::return#2 = (byte) $ff [phi:keyboard_event_get->keyboard_event_get::@return#1] -- vbuxx=vbuc1 + // [388] phi (byte) keyboard_events_size#16 = (byte) keyboard_events_size#13 [phi:keyboard_event_get->keyboard_event_get::@return#0] -- register_copy + // [388] phi (byte) keyboard_event_get::return#2 = (byte) $ff [phi:keyboard_event_get->keyboard_event_get::@return#1] -- vbuxx=vbuc1 ldx #$ff // keyboard_event_get::@return // } - // [391] return + // [389] return rts } // keyboard_event_scan @@ -24320,194 +24295,194 @@ keyboard_event_scan: { .label row_scan = $2e .label keycode = $20 .label row = $1f - // [393] phi from keyboard_event_scan to keyboard_event_scan::@7 [phi:keyboard_event_scan->keyboard_event_scan::@7] - // [393] phi (byte) keyboard_events_size#30 = (byte) keyboard_events_size#19 [phi:keyboard_event_scan->keyboard_event_scan::@7#0] -- register_copy - // [393] phi (byte) keyboard_event_scan::keycode#11 = (byte) 0 [phi:keyboard_event_scan->keyboard_event_scan::@7#1] -- vbuz1=vbuc1 + // [391] phi from keyboard_event_scan to keyboard_event_scan::@7 [phi:keyboard_event_scan->keyboard_event_scan::@7] + // [391] phi (byte) keyboard_events_size#30 = (byte) keyboard_events_size#19 [phi:keyboard_event_scan->keyboard_event_scan::@7#0] -- register_copy + // [391] phi (byte) keyboard_event_scan::keycode#11 = (byte) 0 [phi:keyboard_event_scan->keyboard_event_scan::@7#1] -- vbuz1=vbuc1 lda #0 sta.z keycode - // [393] phi (byte) keyboard_event_scan::row#2 = (byte) 0 [phi:keyboard_event_scan->keyboard_event_scan::@7#2] -- vbuz1=vbuc1 + // [391] phi (byte) keyboard_event_scan::row#2 = (byte) 0 [phi:keyboard_event_scan->keyboard_event_scan::@7#2] -- vbuz1=vbuc1 sta.z row - // [393] phi from keyboard_event_scan::@8 to keyboard_event_scan::@7 [phi:keyboard_event_scan::@8->keyboard_event_scan::@7] - // [393] phi (byte) keyboard_events_size#30 = (byte) keyboard_events_size#13 [phi:keyboard_event_scan::@8->keyboard_event_scan::@7#0] -- register_copy - // [393] phi (byte) keyboard_event_scan::keycode#11 = (byte) keyboard_event_scan::keycode#13 [phi:keyboard_event_scan::@8->keyboard_event_scan::@7#1] -- register_copy - // [393] phi (byte) keyboard_event_scan::row#2 = (byte) keyboard_event_scan::row#1 [phi:keyboard_event_scan::@8->keyboard_event_scan::@7#2] -- register_copy + // [391] phi from keyboard_event_scan::@8 to keyboard_event_scan::@7 [phi:keyboard_event_scan::@8->keyboard_event_scan::@7] + // [391] phi (byte) keyboard_events_size#30 = (byte) keyboard_events_size#13 [phi:keyboard_event_scan::@8->keyboard_event_scan::@7#0] -- register_copy + // [391] phi (byte) keyboard_event_scan::keycode#11 = (byte) keyboard_event_scan::keycode#13 [phi:keyboard_event_scan::@8->keyboard_event_scan::@7#1] -- register_copy + // [391] phi (byte) keyboard_event_scan::row#2 = (byte) keyboard_event_scan::row#1 [phi:keyboard_event_scan::@8->keyboard_event_scan::@7#2] -- register_copy // keyboard_event_scan::@7 __b7: // keyboard_matrix_read(row) - // [394] (byte) keyboard_matrix_read::rowid#0 ← (byte) keyboard_event_scan::row#2 -- vbuxx=vbuz1 + // [392] (byte) keyboard_matrix_read::rowid#0 ← (byte) keyboard_event_scan::row#2 -- vbuxx=vbuz1 ldx.z row - // [395] call keyboard_matrix_read + // [393] call keyboard_matrix_read jsr keyboard_matrix_read - // [396] (byte) keyboard_matrix_read::return#2 ← (byte) keyboard_matrix_read::return#0 + // [394] (byte) keyboard_matrix_read::return#2 ← (byte) keyboard_matrix_read::return#0 // keyboard_event_scan::@19 // row_scan = keyboard_matrix_read(row) - // [397] (byte) keyboard_event_scan::row_scan#0 ← (byte) keyboard_matrix_read::return#2 -- vbuz1=vbuaa + // [395] (byte) keyboard_event_scan::row_scan#0 ← (byte) keyboard_matrix_read::return#2 -- vbuz1=vbuaa sta.z row_scan // if(row_scan!=keyboard_scan_values[row]) - // [398] if((byte) keyboard_event_scan::row_scan#0!=*((const byte*) keyboard_scan_values + (byte) keyboard_event_scan::row#2)) goto keyboard_event_scan::@9 -- vbuz1_neq_pbuc1_derefidx_vbuz2_then_la1 + // [396] if((byte) keyboard_event_scan::row_scan#0!=*((const byte*) keyboard_scan_values + (byte) keyboard_event_scan::row#2)) goto keyboard_event_scan::@9 -- vbuz1_neq_pbuc1_derefidx_vbuz2_then_la1 ldy.z row cmp keyboard_scan_values,y bne b2 // keyboard_event_scan::@16 // keycode = keycode + 8 - // [399] (byte) keyboard_event_scan::keycode#1 ← (byte) keyboard_event_scan::keycode#11 + (byte) 8 -- vbuz1=vbuz1_plus_vbuc1 + // [397] (byte) keyboard_event_scan::keycode#1 ← (byte) keyboard_event_scan::keycode#11 + (byte) 8 -- vbuz1=vbuz1_plus_vbuc1 lax.z keycode axs #-[8] stx.z keycode - // [400] phi from keyboard_event_scan::@15 keyboard_event_scan::@16 to keyboard_event_scan::@8 [phi:keyboard_event_scan::@15/keyboard_event_scan::@16->keyboard_event_scan::@8] - // [400] phi (byte) keyboard_events_size#13 = (byte) keyboard_events_size#29 [phi:keyboard_event_scan::@15/keyboard_event_scan::@16->keyboard_event_scan::@8#0] -- register_copy - // [400] phi (byte) keyboard_event_scan::keycode#13 = (byte) keyboard_event_scan::keycode#14 [phi:keyboard_event_scan::@15/keyboard_event_scan::@16->keyboard_event_scan::@8#1] -- register_copy + // [398] phi from keyboard_event_scan::@15 keyboard_event_scan::@16 to keyboard_event_scan::@8 [phi:keyboard_event_scan::@15/keyboard_event_scan::@16->keyboard_event_scan::@8] + // [398] phi (byte) keyboard_events_size#13 = (byte) keyboard_events_size#29 [phi:keyboard_event_scan::@15/keyboard_event_scan::@16->keyboard_event_scan::@8#0] -- register_copy + // [398] phi (byte) keyboard_event_scan::keycode#13 = (byte) keyboard_event_scan::keycode#14 [phi:keyboard_event_scan::@15/keyboard_event_scan::@16->keyboard_event_scan::@8#1] -- register_copy // keyboard_event_scan::@8 __b8: // for(byte row : 0..7) - // [401] (byte) keyboard_event_scan::row#1 ← ++ (byte) keyboard_event_scan::row#2 -- vbuz1=_inc_vbuz1 + // [399] (byte) keyboard_event_scan::row#1 ← ++ (byte) keyboard_event_scan::row#2 -- vbuz1=_inc_vbuz1 inc.z row - // [402] if((byte) keyboard_event_scan::row#1!=(byte) 8) goto keyboard_event_scan::@7 -- vbuz1_neq_vbuc1_then_la1 + // [400] if((byte) keyboard_event_scan::row#1!=(byte) 8) goto keyboard_event_scan::@7 -- vbuz1_neq_vbuc1_then_la1 lda #8 cmp.z row bne __b7 - // [403] phi from keyboard_event_scan::@8 to keyboard_event_scan::@17 [phi:keyboard_event_scan::@8->keyboard_event_scan::@17] + // [401] phi from keyboard_event_scan::@8 to keyboard_event_scan::@17 [phi:keyboard_event_scan::@8->keyboard_event_scan::@17] // keyboard_event_scan::@17 // keyboard_event_pressed(KEY_LSHIFT) - // [404] call keyboard_event_pressed - // [381] phi from keyboard_event_scan::@17 to keyboard_event_pressed [phi:keyboard_event_scan::@17->keyboard_event_pressed] - // [381] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_LSHIFT [phi:keyboard_event_scan::@17->keyboard_event_pressed#0] -- vbuz1=vbuc1 + // [402] call keyboard_event_pressed + // [379] phi from keyboard_event_scan::@17 to keyboard_event_pressed [phi:keyboard_event_scan::@17->keyboard_event_pressed] + // [379] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_LSHIFT [phi:keyboard_event_scan::@17->keyboard_event_pressed#0] -- vbuz1=vbuc1 lda #KEY_LSHIFT sta.z keyboard_event_pressed.keycode jsr keyboard_event_pressed // keyboard_event_pressed(KEY_LSHIFT) - // [405] (byte) keyboard_event_pressed::return#0 ← (byte) keyboard_event_pressed::return#11 + // [403] (byte) keyboard_event_pressed::return#0 ← (byte) keyboard_event_pressed::return#11 // keyboard_event_scan::@20 - // [406] (byte~) keyboard_event_scan::$0 ← (byte) keyboard_event_pressed::return#0 + // [404] (byte~) keyboard_event_scan::$0 ← (byte) keyboard_event_pressed::return#0 // if(keyboard_event_pressed(KEY_LSHIFT)!= 0) - // [407] if((byte~) keyboard_event_scan::$0==(byte) 0) goto keyboard_event_scan::@1 -- vbuaa_eq_0_then_la1 + // [405] if((byte~) keyboard_event_scan::$0==(byte) 0) goto keyboard_event_scan::@1 -- vbuaa_eq_0_then_la1 cmp #0 - // [408] phi from keyboard_event_scan::@20 to keyboard_event_scan::@18 [phi:keyboard_event_scan::@20->keyboard_event_scan::@18] + // [406] phi from keyboard_event_scan::@20 to keyboard_event_scan::@18 [phi:keyboard_event_scan::@20->keyboard_event_scan::@18] // keyboard_event_scan::@18 - // [409] phi from keyboard_event_scan::@18 keyboard_event_scan::@20 to keyboard_event_scan::@1 [phi:keyboard_event_scan::@18/keyboard_event_scan::@20->keyboard_event_scan::@1] + // [407] phi from keyboard_event_scan::@18 keyboard_event_scan::@20 to keyboard_event_scan::@1 [phi:keyboard_event_scan::@18/keyboard_event_scan::@20->keyboard_event_scan::@1] // keyboard_event_scan::@1 // keyboard_event_pressed(KEY_RSHIFT) - // [410] call keyboard_event_pressed - // [381] phi from keyboard_event_scan::@1 to keyboard_event_pressed [phi:keyboard_event_scan::@1->keyboard_event_pressed] - // [381] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_RSHIFT [phi:keyboard_event_scan::@1->keyboard_event_pressed#0] -- vbuz1=vbuc1 + // [408] call keyboard_event_pressed + // [379] phi from keyboard_event_scan::@1 to keyboard_event_pressed [phi:keyboard_event_scan::@1->keyboard_event_pressed] + // [379] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_RSHIFT [phi:keyboard_event_scan::@1->keyboard_event_pressed#0] -- vbuz1=vbuc1 lda #KEY_RSHIFT sta.z keyboard_event_pressed.keycode jsr keyboard_event_pressed // keyboard_event_pressed(KEY_RSHIFT) - // [411] (byte) keyboard_event_pressed::return#1 ← (byte) keyboard_event_pressed::return#11 + // [409] (byte) keyboard_event_pressed::return#1 ← (byte) keyboard_event_pressed::return#11 // keyboard_event_scan::@21 - // [412] (byte~) keyboard_event_scan::$3 ← (byte) keyboard_event_pressed::return#1 + // [410] (byte~) keyboard_event_scan::$3 ← (byte) keyboard_event_pressed::return#1 // if(keyboard_event_pressed(KEY_RSHIFT)!= 0) - // [413] if((byte~) keyboard_event_scan::$3==(byte) 0) goto keyboard_event_scan::@2 -- vbuaa_eq_0_then_la1 + // [411] if((byte~) keyboard_event_scan::$3==(byte) 0) goto keyboard_event_scan::@2 -- vbuaa_eq_0_then_la1 cmp #0 - // [414] phi from keyboard_event_scan::@21 to keyboard_event_scan::@4 [phi:keyboard_event_scan::@21->keyboard_event_scan::@4] + // [412] phi from keyboard_event_scan::@21 to keyboard_event_scan::@4 [phi:keyboard_event_scan::@21->keyboard_event_scan::@4] // keyboard_event_scan::@4 - // [415] phi from keyboard_event_scan::@21 keyboard_event_scan::@4 to keyboard_event_scan::@2 [phi:keyboard_event_scan::@21/keyboard_event_scan::@4->keyboard_event_scan::@2] + // [413] phi from keyboard_event_scan::@21 keyboard_event_scan::@4 to keyboard_event_scan::@2 [phi:keyboard_event_scan::@21/keyboard_event_scan::@4->keyboard_event_scan::@2] // keyboard_event_scan::@2 // keyboard_event_pressed(KEY_CTRL) - // [416] call keyboard_event_pressed - // [381] phi from keyboard_event_scan::@2 to keyboard_event_pressed [phi:keyboard_event_scan::@2->keyboard_event_pressed] - // [381] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_CTRL [phi:keyboard_event_scan::@2->keyboard_event_pressed#0] -- vbuz1=vbuc1 + // [414] call keyboard_event_pressed + // [379] phi from keyboard_event_scan::@2 to keyboard_event_pressed [phi:keyboard_event_scan::@2->keyboard_event_pressed] + // [379] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_CTRL [phi:keyboard_event_scan::@2->keyboard_event_pressed#0] -- vbuz1=vbuc1 lda #KEY_CTRL sta.z keyboard_event_pressed.keycode jsr keyboard_event_pressed // keyboard_event_pressed(KEY_CTRL) - // [417] (byte) keyboard_event_pressed::return#2 ← (byte) keyboard_event_pressed::return#11 + // [415] (byte) keyboard_event_pressed::return#2 ← (byte) keyboard_event_pressed::return#11 // keyboard_event_scan::@22 - // [418] (byte~) keyboard_event_scan::$6 ← (byte) keyboard_event_pressed::return#2 + // [416] (byte~) keyboard_event_scan::$6 ← (byte) keyboard_event_pressed::return#2 // if(keyboard_event_pressed(KEY_CTRL)!= 0) - // [419] if((byte~) keyboard_event_scan::$6==(byte) 0) goto keyboard_event_scan::@3 -- vbuaa_eq_0_then_la1 + // [417] if((byte~) keyboard_event_scan::$6==(byte) 0) goto keyboard_event_scan::@3 -- vbuaa_eq_0_then_la1 cmp #0 - // [420] phi from keyboard_event_scan::@22 to keyboard_event_scan::@5 [phi:keyboard_event_scan::@22->keyboard_event_scan::@5] + // [418] phi from keyboard_event_scan::@22 to keyboard_event_scan::@5 [phi:keyboard_event_scan::@22->keyboard_event_scan::@5] // keyboard_event_scan::@5 - // [421] phi from keyboard_event_scan::@22 keyboard_event_scan::@5 to keyboard_event_scan::@3 [phi:keyboard_event_scan::@22/keyboard_event_scan::@5->keyboard_event_scan::@3] + // [419] phi from keyboard_event_scan::@22 keyboard_event_scan::@5 to keyboard_event_scan::@3 [phi:keyboard_event_scan::@22/keyboard_event_scan::@5->keyboard_event_scan::@3] // keyboard_event_scan::@3 // keyboard_event_pressed(KEY_COMMODORE) - // [422] call keyboard_event_pressed - // [381] phi from keyboard_event_scan::@3 to keyboard_event_pressed [phi:keyboard_event_scan::@3->keyboard_event_pressed] - // [381] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_COMMODORE [phi:keyboard_event_scan::@3->keyboard_event_pressed#0] -- vbuz1=vbuc1 + // [420] call keyboard_event_pressed + // [379] phi from keyboard_event_scan::@3 to keyboard_event_pressed [phi:keyboard_event_scan::@3->keyboard_event_pressed] + // [379] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_COMMODORE [phi:keyboard_event_scan::@3->keyboard_event_pressed#0] -- vbuz1=vbuc1 lda #KEY_COMMODORE sta.z keyboard_event_pressed.keycode jsr keyboard_event_pressed // keyboard_event_pressed(KEY_COMMODORE) - // [423] (byte) keyboard_event_pressed::return#10 ← (byte) keyboard_event_pressed::return#11 + // [421] (byte) keyboard_event_pressed::return#10 ← (byte) keyboard_event_pressed::return#11 // keyboard_event_scan::@23 - // [424] (byte~) keyboard_event_scan::$9 ← (byte) keyboard_event_pressed::return#10 + // [422] (byte~) keyboard_event_scan::$9 ← (byte) keyboard_event_pressed::return#10 // if(keyboard_event_pressed(KEY_COMMODORE)!= 0) - // [425] if((byte~) keyboard_event_scan::$9==(byte) 0) goto keyboard_event_scan::@return -- vbuaa_eq_0_then_la1 + // [423] if((byte~) keyboard_event_scan::$9==(byte) 0) goto keyboard_event_scan::@return -- vbuaa_eq_0_then_la1 cmp #0 - // [426] phi from keyboard_event_scan::@23 to keyboard_event_scan::@6 [phi:keyboard_event_scan::@23->keyboard_event_scan::@6] + // [424] phi from keyboard_event_scan::@23 to keyboard_event_scan::@6 [phi:keyboard_event_scan::@23->keyboard_event_scan::@6] // keyboard_event_scan::@6 // keyboard_event_scan::@return // } - // [427] return + // [425] return rts // Something has changed on the keyboard row - check each column - // [428] phi from keyboard_event_scan::@10 to keyboard_event_scan::@9 [phi:keyboard_event_scan::@10->keyboard_event_scan::@9] - // [428] phi (byte) keyboard_events_size#10 = (byte) keyboard_events_size#29 [phi:keyboard_event_scan::@10->keyboard_event_scan::@9#0] -- register_copy - // [428] phi (byte) keyboard_event_scan::keycode#10 = (byte) keyboard_event_scan::keycode#14 [phi:keyboard_event_scan::@10->keyboard_event_scan::@9#1] -- register_copy - // [428] phi (byte) keyboard_event_scan::col#2 = (byte) keyboard_event_scan::col#1 [phi:keyboard_event_scan::@10->keyboard_event_scan::@9#2] -- register_copy - // [428] phi from keyboard_event_scan::@19 to keyboard_event_scan::@9 [phi:keyboard_event_scan::@19->keyboard_event_scan::@9] + // [426] phi from keyboard_event_scan::@10 to keyboard_event_scan::@9 [phi:keyboard_event_scan::@10->keyboard_event_scan::@9] + // [426] phi (byte) keyboard_events_size#10 = (byte) keyboard_events_size#29 [phi:keyboard_event_scan::@10->keyboard_event_scan::@9#0] -- register_copy + // [426] phi (byte) keyboard_event_scan::keycode#10 = (byte) keyboard_event_scan::keycode#14 [phi:keyboard_event_scan::@10->keyboard_event_scan::@9#1] -- register_copy + // [426] phi (byte) keyboard_event_scan::col#2 = (byte) keyboard_event_scan::col#1 [phi:keyboard_event_scan::@10->keyboard_event_scan::@9#2] -- register_copy + // [426] phi from keyboard_event_scan::@19 to keyboard_event_scan::@9 [phi:keyboard_event_scan::@19->keyboard_event_scan::@9] b2: - // [428] phi (byte) keyboard_events_size#10 = (byte) keyboard_events_size#30 [phi:keyboard_event_scan::@19->keyboard_event_scan::@9#0] -- register_copy - // [428] phi (byte) keyboard_event_scan::keycode#10 = (byte) keyboard_event_scan::keycode#11 [phi:keyboard_event_scan::@19->keyboard_event_scan::@9#1] -- register_copy - // [428] phi (byte) keyboard_event_scan::col#2 = (byte) 0 [phi:keyboard_event_scan::@19->keyboard_event_scan::@9#2] -- vbuxx=vbuc1 + // [426] phi (byte) keyboard_events_size#10 = (byte) keyboard_events_size#30 [phi:keyboard_event_scan::@19->keyboard_event_scan::@9#0] -- register_copy + // [426] phi (byte) keyboard_event_scan::keycode#10 = (byte) keyboard_event_scan::keycode#11 [phi:keyboard_event_scan::@19->keyboard_event_scan::@9#1] -- register_copy + // [426] phi (byte) keyboard_event_scan::col#2 = (byte) 0 [phi:keyboard_event_scan::@19->keyboard_event_scan::@9#2] -- vbuxx=vbuc1 ldx #0 // keyboard_event_scan::@9 __b9: // row_scan^keyboard_scan_values[row] - // [429] (byte~) keyboard_event_scan::$15 ← (byte) keyboard_event_scan::row_scan#0 ^ *((const byte*) keyboard_scan_values + (byte) keyboard_event_scan::row#2) -- vbuaa=vbuz1_bxor_pbuc1_derefidx_vbuz2 + // [427] (byte~) keyboard_event_scan::$15 ← (byte) keyboard_event_scan::row_scan#0 ^ *((const byte*) keyboard_scan_values + (byte) keyboard_event_scan::row#2) -- vbuaa=vbuz1_bxor_pbuc1_derefidx_vbuz2 lda.z row_scan ldy.z row eor keyboard_scan_values,y // (row_scan^keyboard_scan_values[row])&keyboard_matrix_col_bitmask[col] - // [430] (byte~) keyboard_event_scan::$16 ← (byte~) keyboard_event_scan::$15 & *((const byte*) keyboard_matrix_col_bitmask + (byte) keyboard_event_scan::col#2) -- vbuaa=vbuaa_band_pbuc1_derefidx_vbuxx + // [428] (byte~) keyboard_event_scan::$16 ← (byte~) keyboard_event_scan::$15 & *((const byte*) keyboard_matrix_col_bitmask + (byte) keyboard_event_scan::col#2) -- vbuaa=vbuaa_band_pbuc1_derefidx_vbuxx and keyboard_matrix_col_bitmask,x // if(((row_scan^keyboard_scan_values[row])&keyboard_matrix_col_bitmask[col])!=0) - // [431] if((byte~) keyboard_event_scan::$16==(byte) 0) goto keyboard_event_scan::@10 -- vbuaa_eq_0_then_la1 + // [429] if((byte~) keyboard_event_scan::$16==(byte) 0) goto keyboard_event_scan::@10 -- vbuaa_eq_0_then_la1 cmp #0 beq __b10 // keyboard_event_scan::@12 // if(keyboard_events_size!=8) - // [432] if((byte) keyboard_events_size#10==(byte) 8) goto keyboard_event_scan::@10 -- vbuz1_eq_vbuc1_then_la1 + // [430] if((byte) keyboard_events_size#10==(byte) 8) goto keyboard_event_scan::@10 -- vbuz1_eq_vbuc1_then_la1 lda #8 cmp.z keyboard_events_size beq __b10 // keyboard_event_scan::@13 // event_type = row_scan&keyboard_matrix_col_bitmask[col] - // [433] (byte) keyboard_event_scan::event_type#0 ← (byte) keyboard_event_scan::row_scan#0 & *((const byte*) keyboard_matrix_col_bitmask + (byte) keyboard_event_scan::col#2) -- vbuaa=vbuz1_band_pbuc1_derefidx_vbuxx + // [431] (byte) keyboard_event_scan::event_type#0 ← (byte) keyboard_event_scan::row_scan#0 & *((const byte*) keyboard_matrix_col_bitmask + (byte) keyboard_event_scan::col#2) -- vbuaa=vbuz1_band_pbuc1_derefidx_vbuxx lda keyboard_matrix_col_bitmask,x and.z row_scan // if(event_type==0) - // [434] if((byte) keyboard_event_scan::event_type#0==(byte) 0) goto keyboard_event_scan::@11 -- vbuaa_eq_0_then_la1 + // [432] if((byte) keyboard_event_scan::event_type#0==(byte) 0) goto keyboard_event_scan::@11 -- vbuaa_eq_0_then_la1 cmp #0 beq __b11 // keyboard_event_scan::@14 // keyboard_events[keyboard_events_size++] = keycode - // [435] *((const byte*) keyboard_events + (byte) keyboard_events_size#10) ← (byte) keyboard_event_scan::keycode#10 -- pbuc1_derefidx_vbuz1=vbuz2 + // [433] *((const byte*) keyboard_events + (byte) keyboard_events_size#10) ← (byte) keyboard_event_scan::keycode#10 -- pbuc1_derefidx_vbuz1=vbuz2 // Key pressed lda.z keycode ldy.z keyboard_events_size sta keyboard_events,y // keyboard_events[keyboard_events_size++] = keycode; - // [436] (byte) keyboard_events_size#2 ← ++ (byte) keyboard_events_size#10 -- vbuz1=_inc_vbuz1 + // [434] (byte) keyboard_events_size#2 ← ++ (byte) keyboard_events_size#10 -- vbuz1=_inc_vbuz1 inc.z keyboard_events_size - // [437] phi from keyboard_event_scan::@11 keyboard_event_scan::@12 keyboard_event_scan::@14 keyboard_event_scan::@9 to keyboard_event_scan::@10 [phi:keyboard_event_scan::@11/keyboard_event_scan::@12/keyboard_event_scan::@14/keyboard_event_scan::@9->keyboard_event_scan::@10] - // [437] phi (byte) keyboard_events_size#29 = (byte) keyboard_events_size#1 [phi:keyboard_event_scan::@11/keyboard_event_scan::@12/keyboard_event_scan::@14/keyboard_event_scan::@9->keyboard_event_scan::@10#0] -- register_copy + // [435] phi from keyboard_event_scan::@11 keyboard_event_scan::@12 keyboard_event_scan::@14 keyboard_event_scan::@9 to keyboard_event_scan::@10 [phi:keyboard_event_scan::@11/keyboard_event_scan::@12/keyboard_event_scan::@14/keyboard_event_scan::@9->keyboard_event_scan::@10] + // [435] phi (byte) keyboard_events_size#29 = (byte) keyboard_events_size#1 [phi:keyboard_event_scan::@11/keyboard_event_scan::@12/keyboard_event_scan::@14/keyboard_event_scan::@9->keyboard_event_scan::@10#0] -- register_copy // keyboard_event_scan::@10 __b10: // keycode++; - // [438] (byte) keyboard_event_scan::keycode#14 ← ++ (byte) keyboard_event_scan::keycode#10 -- vbuz1=_inc_vbuz1 + // [436] (byte) keyboard_event_scan::keycode#14 ← ++ (byte) keyboard_event_scan::keycode#10 -- vbuz1=_inc_vbuz1 inc.z keycode // for(byte col : 0..7) - // [439] (byte) keyboard_event_scan::col#1 ← ++ (byte) keyboard_event_scan::col#2 -- vbuxx=_inc_vbuxx + // [437] (byte) keyboard_event_scan::col#1 ← ++ (byte) keyboard_event_scan::col#2 -- vbuxx=_inc_vbuxx inx - // [440] if((byte) keyboard_event_scan::col#1!=(byte) 8) goto keyboard_event_scan::@9 -- vbuxx_neq_vbuc1_then_la1 + // [438] if((byte) keyboard_event_scan::col#1!=(byte) 8) goto keyboard_event_scan::@9 -- vbuxx_neq_vbuc1_then_la1 cpx #8 bne __b9 // keyboard_event_scan::@15 // keyboard_scan_values[row] = row_scan - // [441] *((const byte*) keyboard_scan_values + (byte) keyboard_event_scan::row#2) ← (byte) keyboard_event_scan::row_scan#0 -- pbuc1_derefidx_vbuz1=vbuz2 + // [439] *((const byte*) keyboard_scan_values + (byte) keyboard_event_scan::row#2) ← (byte) keyboard_event_scan::row_scan#0 -- pbuc1_derefidx_vbuz1=vbuz2 // Store the current keyboard status for the row to debounce lda.z row_scan ldy.z row @@ -24516,16 +24491,16 @@ keyboard_event_scan: { // keyboard_event_scan::@11 __b11: // keycode|$40 - // [442] (byte~) keyboard_event_scan::$23 ← (byte) keyboard_event_scan::keycode#10 | (byte) $40 -- vbuaa=vbuz1_bor_vbuc1 + // [440] (byte~) keyboard_event_scan::$23 ← (byte) keyboard_event_scan::keycode#10 | (byte) $40 -- vbuaa=vbuz1_bor_vbuc1 lda #$40 ora.z keycode // keyboard_events[keyboard_events_size++] = keycode|$40 - // [443] *((const byte*) keyboard_events + (byte) keyboard_events_size#10) ← (byte~) keyboard_event_scan::$23 -- pbuc1_derefidx_vbuz1=vbuaa + // [441] *((const byte*) keyboard_events + (byte) keyboard_events_size#10) ← (byte~) keyboard_event_scan::$23 -- pbuc1_derefidx_vbuz1=vbuaa // Key released ldy.z keyboard_events_size sta keyboard_events,y // keyboard_events[keyboard_events_size++] = keycode|$40; - // [444] (byte) keyboard_events_size#1 ← ++ (byte) keyboard_events_size#10 -- vbuz1=_inc_vbuz1 + // [442] (byte) keyboard_events_size#1 ← ++ (byte) keyboard_events_size#10 -- vbuz1=_inc_vbuz1 inc.z keyboard_events_size jmp __b10 } @@ -24538,16 +24513,16 @@ keyboard_event_scan: { // keyboard_matrix_read(byte register(X) rowid) keyboard_matrix_read: { // *CIA1_PORT_A = keyboard_matrix_row_bitmask[rowid] - // [445] *((const byte*) CIA1_PORT_A) ← *((const byte*) keyboard_matrix_row_bitmask + (byte) keyboard_matrix_read::rowid#0) -- _deref_pbuc1=pbuc2_derefidx_vbuxx + // [443] *((const byte*) CIA1_PORT_A) ← *((const byte*) keyboard_matrix_row_bitmask + (byte) keyboard_matrix_read::rowid#0) -- _deref_pbuc1=pbuc2_derefidx_vbuxx lda keyboard_matrix_row_bitmask,x sta CIA1_PORT_A // ~*CIA1_PORT_B - // [446] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B) -- vbuaa=_bnot__deref_pbuc1 + // [444] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B) -- vbuaa=_bnot__deref_pbuc1 lda CIA1_PORT_B eor #$ff // keyboard_matrix_read::@return // } - // [447] return + // [445] return rts } // render_show @@ -24556,42 +24531,42 @@ render_show: { .const toD0181_return = (>(PLAYFIELD_SCREEN_1&$3fff)*4)|(>PLAYFIELD_CHARSET)/4&$f .const toD0182_return = (>(PLAYFIELD_SCREEN_2&$3fff)*4)|(>PLAYFIELD_CHARSET)/4&$f // if(render_screen_show==0) - // [448] if((byte) render_screen_show#16==(byte) 0) goto render_show::toD0181 -- vbuz1_eq_0_then_la1 + // [446] if((byte) render_screen_show#16==(byte) 0) goto render_show::toD0181 -- vbuz1_eq_0_then_la1 lda.z render_screen_show cmp #0 beq toD0181 - // [449] phi from render_show to render_show::toD0182 [phi:render_show->render_show::toD0182] + // [447] phi from render_show to render_show::toD0182 [phi:render_show->render_show::toD0182] // render_show::toD0182 - // [450] phi from render_show::toD0182 to render_show::@1 [phi:render_show::toD0182->render_show::@1] - // [450] phi (byte) render_show::d018val#3 = (const byte) render_show::toD0182_return#0 [phi:render_show::toD0182->render_show::@1#0] -- vbuaa=vbuc1 + // [448] phi from render_show::toD0182 to render_show::@1 [phi:render_show::toD0182->render_show::@1] + // [448] phi (byte) render_show::d018val#3 = (const byte) render_show::toD0182_return#0 [phi:render_show::toD0182->render_show::@1#0] -- vbuaa=vbuc1 lda #toD0182_return // render_show::@1 __b1: // *D018 = d018val - // [451] *((const byte*) D018) ← (byte) render_show::d018val#3 -- _deref_pbuc1=vbuaa + // [449] *((const byte*) D018) ← (byte) render_show::d018val#3 -- _deref_pbuc1=vbuaa sta D018 // *BGCOL2 = PIECES_COLORS_1[level] - // [452] *((const byte*) BGCOL2) ← *((const byte*) PIECES_COLORS_1 + (byte) level#10) -- _deref_pbuc1=pbuc2_derefidx_vbuz1 + // [450] *((const byte*) BGCOL2) ← *((const byte*) PIECES_COLORS_1 + (byte) level#10) -- _deref_pbuc1=pbuc2_derefidx_vbuz1 ldy.z level lda PIECES_COLORS_1,y sta BGCOL2 // *BGCOL3 = PIECES_COLORS_2[level] - // [453] *((const byte*) BGCOL3) ← *((const byte*) PIECES_COLORS_2 + (byte) level#10) -- _deref_pbuc1=pbuc2_derefidx_vbuz1 + // [451] *((const byte*) BGCOL3) ← *((const byte*) PIECES_COLORS_2 + (byte) level#10) -- _deref_pbuc1=pbuc2_derefidx_vbuz1 lda PIECES_COLORS_2,y sta BGCOL3 // render_screen_showing = render_screen_show - // [454] (byte) render_screen_showing ← (byte) render_screen_show#16 -- vbuz1=vbuz2 + // [452] (byte) render_screen_showing ← (byte) render_screen_show#16 -- vbuz1=vbuz2 lda.z render_screen_show sta.z render_screen_showing // render_show::@return // } - // [455] return + // [453] return rts - // [456] phi from render_show to render_show::toD0181 [phi:render_show->render_show::toD0181] + // [454] phi from render_show to render_show::toD0181 [phi:render_show->render_show::toD0181] // render_show::toD0181 toD0181: - // [450] phi from render_show::toD0181 to render_show::@1 [phi:render_show::toD0181->render_show::@1] - // [450] phi (byte) render_show::d018val#3 = (const byte) render_show::toD0181_return#0 [phi:render_show::toD0181->render_show::@1#0] -- vbuaa=vbuc1 + // [448] phi from render_show::toD0181 to render_show::@1 [phi:render_show::toD0181->render_show::@1] + // [448] phi (byte) render_show::d018val#3 = (const byte) render_show::toD0181_return#0 [phi:render_show::toD0181->render_show::@1#0] -- vbuaa=vbuc1 lda #toD0181_return jmp __b1 } @@ -24601,39 +24576,39 @@ play_init: { .label pli = $21 // Initialize the playfield line pointers; .label idx = $f - // [458] phi from play_init to play_init::@1 [phi:play_init->play_init::@1] - // [458] phi (byte) play_init::idx#2 = (byte) 0 [phi:play_init->play_init::@1#0] -- vbuz1=vbuc1 + // [456] phi from play_init to play_init::@1 [phi:play_init->play_init::@1] + // [456] phi (byte) play_init::idx#2 = (byte) 0 [phi:play_init->play_init::@1#0] -- vbuz1=vbuc1 lda #0 sta.z idx - // [458] phi (byte*) play_init::pli#2 = (const byte*) playfield [phi:play_init->play_init::@1#1] -- pbuz1=pbuc1 + // [456] phi (byte*) play_init::pli#2 = (const byte*) playfield [phi:play_init->play_init::@1#1] -- pbuz1=pbuc1 lda #playfield sta.z pli+1 - // [458] phi (byte) play_init::j#2 = (byte) 0 [phi:play_init->play_init::@1#2] -- vbuyy=vbuc1 + // [456] phi (byte) play_init::j#2 = (byte) 0 [phi:play_init->play_init::@1#2] -- vbuyy=vbuc1 ldy #0 - // [458] phi from play_init::@1 to play_init::@1 [phi:play_init::@1->play_init::@1] - // [458] phi (byte) play_init::idx#2 = (byte) play_init::idx#1 [phi:play_init::@1->play_init::@1#0] -- register_copy - // [458] phi (byte*) play_init::pli#2 = (byte*) play_init::pli#1 [phi:play_init::@1->play_init::@1#1] -- register_copy - // [458] phi (byte) play_init::j#2 = (byte) play_init::j#1 [phi:play_init::@1->play_init::@1#2] -- register_copy + // [456] phi from play_init::@1 to play_init::@1 [phi:play_init::@1->play_init::@1] + // [456] phi (byte) play_init::idx#2 = (byte) play_init::idx#1 [phi:play_init::@1->play_init::@1#0] -- register_copy + // [456] phi (byte*) play_init::pli#2 = (byte*) play_init::pli#1 [phi:play_init::@1->play_init::@1#1] -- register_copy + // [456] phi (byte) play_init::j#2 = (byte) play_init::j#1 [phi:play_init::@1->play_init::@1#2] -- register_copy // play_init::@1 __b1: // playfield_lines[j] = pli - // [459] (byte~) play_init::$2 ← (byte) play_init::j#2 << (byte) 1 -- vbuxx=vbuyy_rol_1 + // [457] (byte~) play_init::$2 ← (byte) play_init::j#2 << (byte) 1 -- vbuxx=vbuyy_rol_1 tya asl tax - // [460] *((const byte**) playfield_lines + (byte~) play_init::$2) ← (byte*) play_init::pli#2 -- pptc1_derefidx_vbuxx=pbuz1 + // [458] *((const byte**) playfield_lines + (byte~) play_init::$2) ← (byte*) play_init::pli#2 -- pptc1_derefidx_vbuxx=pbuz1 lda.z pli sta playfield_lines,x lda.z pli+1 sta playfield_lines+1,x // playfield_lines_idx[j] = idx - // [461] *((const byte*) playfield_lines_idx + (byte) play_init::j#2) ← (byte) play_init::idx#2 -- pbuc1_derefidx_vbuyy=vbuz1 + // [459] *((const byte*) playfield_lines_idx + (byte) play_init::j#2) ← (byte) play_init::idx#2 -- pbuc1_derefidx_vbuyy=vbuz1 lda.z idx sta playfield_lines_idx,y // pli += PLAYFIELD_COLS - // [462] (byte*) play_init::pli#1 ← (byte*) play_init::pli#2 + (const byte) PLAYFIELD_COLS -- pbuz1=pbuz1_plus_vbuc1 + // [460] (byte*) play_init::pli#1 ← (byte*) play_init::pli#2 + (const byte) PLAYFIELD_COLS -- pbuz1=pbuz1_plus_vbuc1 lda #PLAYFIELD_COLS clc adc.z pli @@ -24642,40 +24617,40 @@ play_init: { inc.z pli+1 !: // idx += PLAYFIELD_COLS - // [463] (byte) play_init::idx#1 ← (byte) play_init::idx#2 + (const byte) PLAYFIELD_COLS -- vbuz1=vbuz1_plus_vbuc1 + // [461] (byte) play_init::idx#1 ← (byte) play_init::idx#2 + (const byte) PLAYFIELD_COLS -- vbuz1=vbuz1_plus_vbuc1 lax.z idx axs #-[PLAYFIELD_COLS] stx.z idx // for(char j:0..PLAYFIELD_LINES-1) - // [464] (byte) play_init::j#1 ← ++ (byte) play_init::j#2 -- vbuyy=_inc_vbuyy + // [462] (byte) play_init::j#1 ← ++ (byte) play_init::j#2 -- vbuyy=_inc_vbuyy iny - // [465] if((byte) play_init::j#1!=(const byte) PLAYFIELD_LINES-(byte) 1+(byte) 1) goto play_init::@1 -- vbuyy_neq_vbuc1_then_la1 + // [463] if((byte) play_init::j#1!=(const byte) PLAYFIELD_LINES-(byte) 1+(byte) 1) goto play_init::@1 -- vbuyy_neq_vbuc1_then_la1 cpy #PLAYFIELD_LINES-1+1 bne __b1 // play_init::@2 // playfield_lines_idx[PLAYFIELD_LINES] = PLAYFIELD_COLS*PLAYFIELD_LINES - // [466] *((const byte*) playfield_lines_idx+(const byte) PLAYFIELD_LINES) ← (const byte) PLAYFIELD_COLS*(const byte) PLAYFIELD_LINES -- _deref_pbuc1=vbuc2 + // [464] *((const byte*) playfield_lines_idx+(const byte) PLAYFIELD_LINES) ← (const byte) PLAYFIELD_COLS*(const byte) PLAYFIELD_LINES -- _deref_pbuc1=vbuc2 lda #PLAYFIELD_COLS*PLAYFIELD_LINES sta playfield_lines_idx+PLAYFIELD_LINES // current_movedown_slow = MOVEDOWN_SLOW_SPEEDS[level] - // [467] (byte) current_movedown_slow#1 ← *((const byte*) MOVEDOWN_SLOW_SPEEDS) -- vbuz1=_deref_pbuc1 + // [465] (byte) current_movedown_slow#1 ← *((const byte*) MOVEDOWN_SLOW_SPEEDS) -- vbuz1=_deref_pbuc1 // Set initial speed of moving down a tetromino lda MOVEDOWN_SLOW_SPEEDS sta.z current_movedown_slow - // [468] phi from play_init::@2 to play_init::@3 [phi:play_init::@2->play_init::@3] - // [468] phi (byte) play_init::b#2 = (byte) 0 [phi:play_init::@2->play_init::@3#0] -- vbuxx=vbuc1 + // [466] phi from play_init::@2 to play_init::@3 [phi:play_init::@2->play_init::@3] + // [466] phi (byte) play_init::b#2 = (byte) 0 [phi:play_init::@2->play_init::@3#0] -- vbuxx=vbuc1 ldx #0 // Set the initial score add values - // [468] phi from play_init::@3 to play_init::@3 [phi:play_init::@3->play_init::@3] - // [468] phi (byte) play_init::b#2 = (byte) play_init::b#1 [phi:play_init::@3->play_init::@3#0] -- register_copy + // [466] phi from play_init::@3 to play_init::@3 [phi:play_init::@3->play_init::@3] + // [466] phi (byte) play_init::b#2 = (byte) play_init::b#1 [phi:play_init::@3->play_init::@3#0] -- register_copy // play_init::@3 __b3: // score_add_bcd[b] = SCORE_BASE_BCD[b] - // [469] (byte~) play_init::$3 ← (byte) play_init::b#2 << (byte) 2 -- vbuaa=vbuxx_rol_2 + // [467] (byte~) play_init::$3 ← (byte) play_init::b#2 << (byte) 2 -- vbuaa=vbuxx_rol_2 txa asl asl - // [470] *((const dword*) score_add_bcd + (byte~) play_init::$3) ← *((const dword*) SCORE_BASE_BCD + (byte~) play_init::$3) -- pduc1_derefidx_vbuaa=pduc2_derefidx_vbuaa + // [468] *((const dword*) score_add_bcd + (byte~) play_init::$3) ← *((const dword*) SCORE_BASE_BCD + (byte~) play_init::$3) -- pduc1_derefidx_vbuaa=pduc2_derefidx_vbuaa tay lda SCORE_BASE_BCD,y sta score_add_bcd,y @@ -24686,14 +24661,14 @@ play_init: { lda SCORE_BASE_BCD+3,y sta score_add_bcd+3,y // for(char b: 0..4) - // [471] (byte) play_init::b#1 ← ++ (byte) play_init::b#2 -- vbuxx=_inc_vbuxx + // [469] (byte) play_init::b#1 ← ++ (byte) play_init::b#2 -- vbuxx=_inc_vbuxx inx - // [472] if((byte) play_init::b#1!=(byte) 5) goto play_init::@3 -- vbuxx_neq_vbuc1_then_la1 + // [470] if((byte) play_init::b#1!=(byte) 5) goto play_init::@3 -- vbuxx_neq_vbuc1_then_la1 cpx #5 bne __b3 // play_init::@return // } - // [473] return + // [471] return rts } // sprites_irq_init @@ -24703,7 +24678,7 @@ sprites_irq_init: { // asm { sei } sei // *IRQ_STATUS = IRQ_RASTER - // [475] *((const byte*) IRQ_STATUS) ← (const byte) IRQ_RASTER -- _deref_pbuc1=vbuc2 + // [473] *((const byte*) IRQ_STATUS) ← (const byte) IRQ_RASTER -- _deref_pbuc1=vbuc2 // Acknowledge any IRQ and setup the next one lda #IRQ_RASTER sta IRQ_STATUS @@ -24711,36 +24686,36 @@ sprites_irq_init: { // asm { ldaCIA1_INTERRUPT } lda CIA1_INTERRUPT // *PROCPORT_DDR = PROCPORT_DDR_MEMORY_MASK - // [477] *((const byte*) PROCPORT_DDR) ← (const byte) PROCPORT_DDR_MEMORY_MASK -- _deref_pbuc1=vbuc2 + // [475] *((const byte*) PROCPORT_DDR) ← (const byte) PROCPORT_DDR_MEMORY_MASK -- _deref_pbuc1=vbuc2 // Disable kernal & basic lda #PROCPORT_DDR_MEMORY_MASK sta PROCPORT_DDR // *PROCPORT = PROCPORT_RAM_IO - // [478] *((const byte*) PROCPORT) ← (const byte) PROCPORT_RAM_IO -- _deref_pbuc1=vbuc2 + // [476] *((const byte*) PROCPORT) ← (const byte) PROCPORT_RAM_IO -- _deref_pbuc1=vbuc2 lda #PROCPORT_RAM_IO sta PROCPORT // *CIA1_INTERRUPT = CIA_INTERRUPT_CLEAR - // [479] *((const byte*) CIA1_INTERRUPT) ← (const byte) CIA_INTERRUPT_CLEAR -- _deref_pbuc1=vbuc2 + // [477] *((const byte*) CIA1_INTERRUPT) ← (const byte) CIA_INTERRUPT_CLEAR -- _deref_pbuc1=vbuc2 // Disable CIA 1 Timer IRQ lda #CIA_INTERRUPT_CLEAR sta CIA1_INTERRUPT // *VIC_CONTROL &=0x7f - // [480] *((const byte*) VIC_CONTROL) ← *((const byte*) VIC_CONTROL) & (byte) $7f -- _deref_pbuc1=_deref_pbuc1_band_vbuc2 + // [478] *((const byte*) VIC_CONTROL) ← *((const byte*) VIC_CONTROL) & (byte) $7f -- _deref_pbuc1=_deref_pbuc1_band_vbuc2 // Set raster line lda #$7f and VIC_CONTROL sta VIC_CONTROL // *RASTER = IRQ_RASTER_FIRST - // [481] *((const byte*) RASTER) ← (const byte) IRQ_RASTER_FIRST -- _deref_pbuc1=vbuc2 + // [479] *((const byte*) RASTER) ← (const byte) IRQ_RASTER_FIRST -- _deref_pbuc1=vbuc2 lda #IRQ_RASTER_FIRST sta RASTER // *IRQ_ENABLE = IRQ_RASTER - // [482] *((const byte*) IRQ_ENABLE) ← (const byte) IRQ_RASTER -- _deref_pbuc1=vbuc2 + // [480] *((const byte*) IRQ_ENABLE) ← (const byte) IRQ_RASTER -- _deref_pbuc1=vbuc2 // Enable Raster Interrupt lda #IRQ_RASTER sta IRQ_ENABLE // *HARDWARE_IRQ = &sprites_irq - // [483] *((const void()**) HARDWARE_IRQ) ← &interrupt(HARDWARE_CLOBBER)(void()) sprites_irq() -- _deref_pptc1=pprc2 + // [481] *((const void()**) HARDWARE_IRQ) ← &interrupt(HARDWARE_CLOBBER)(void()) sprites_irq() -- _deref_pptc1=pprc2 // Set the IRQ routine lda #sprites_init::@1] - // [490] phi (byte) sprites_init::xpos#2 = (byte)(number) $18+(number) $f*(number) 8 [phi:sprites_init->sprites_init::@1#0] -- vbuz1=vbuc1 + // [488] phi from sprites_init to sprites_init::@1 [phi:sprites_init->sprites_init::@1] + // [488] phi (byte) sprites_init::xpos#2 = (byte)(number) $18+(number) $f*(number) 8 [phi:sprites_init->sprites_init::@1#0] -- vbuz1=vbuc1 lda #$18+$f*8 sta.z xpos - // [490] phi (byte) sprites_init::s#2 = (byte) 0 [phi:sprites_init->sprites_init::@1#1] -- vbuyy=vbuc1 + // [488] phi (byte) sprites_init::s#2 = (byte) 0 [phi:sprites_init->sprites_init::@1#1] -- vbuyy=vbuc1 ldy #0 - // [490] phi from sprites_init::@1 to sprites_init::@1 [phi:sprites_init::@1->sprites_init::@1] - // [490] phi (byte) sprites_init::xpos#2 = (byte) sprites_init::xpos#1 [phi:sprites_init::@1->sprites_init::@1#0] -- register_copy - // [490] phi (byte) sprites_init::s#2 = (byte) sprites_init::s#1 [phi:sprites_init::@1->sprites_init::@1#1] -- register_copy + // [488] phi from sprites_init::@1 to sprites_init::@1 [phi:sprites_init::@1->sprites_init::@1] + // [488] phi (byte) sprites_init::xpos#2 = (byte) sprites_init::xpos#1 [phi:sprites_init::@1->sprites_init::@1#0] -- register_copy + // [488] phi (byte) sprites_init::s#2 = (byte) sprites_init::s#1 [phi:sprites_init::@1->sprites_init::@1#1] -- register_copy // sprites_init::@1 __b1: // s2 = s*2 - // [491] (byte) sprites_init::s2#0 ← (byte) sprites_init::s#2 << (byte) 1 -- vbuxx=vbuyy_rol_1 + // [489] (byte) sprites_init::s2#0 ← (byte) sprites_init::s#2 << (byte) 1 -- vbuxx=vbuyy_rol_1 tya asl tax // SPRITES_XPOS[s2] = xpos - // [492] *((const byte*) SPRITES_XPOS + (byte) sprites_init::s2#0) ← (byte) sprites_init::xpos#2 -- pbuc1_derefidx_vbuxx=vbuz1 + // [490] *((const byte*) SPRITES_XPOS + (byte) sprites_init::s2#0) ← (byte) sprites_init::xpos#2 -- pbuc1_derefidx_vbuxx=vbuz1 lda.z xpos sta SPRITES_XPOS,x // SPRITES_COLS[s] = BLACK - // [493] *((const byte*) SPRITES_COLS + (byte) sprites_init::s#2) ← (const byte) BLACK -- pbuc1_derefidx_vbuyy=vbuc2 + // [491] *((const byte*) SPRITES_COLS + (byte) sprites_init::s#2) ← (const byte) BLACK -- pbuc1_derefidx_vbuyy=vbuc2 lda #BLACK sta SPRITES_COLS,y // xpos = xpos+24 - // [494] (byte) sprites_init::xpos#1 ← (byte) sprites_init::xpos#2 + (byte) $18 -- vbuz1=vbuz1_plus_vbuc1 + // [492] (byte) sprites_init::xpos#1 ← (byte) sprites_init::xpos#2 + (byte) $18 -- vbuz1=vbuz1_plus_vbuc1 lax.z xpos axs #-[$18] stx.z xpos // for(char s:0..3) - // [495] (byte) sprites_init::s#1 ← ++ (byte) sprites_init::s#2 -- vbuyy=_inc_vbuyy + // [493] (byte) sprites_init::s#1 ← ++ (byte) sprites_init::s#2 -- vbuyy=_inc_vbuyy iny - // [496] if((byte) sprites_init::s#1!=(byte) 4) goto sprites_init::@1 -- vbuyy_neq_vbuc1_then_la1 + // [494] if((byte) sprites_init::s#1!=(byte) 4) goto sprites_init::@1 -- vbuyy_neq_vbuc1_then_la1 cpy #4 bne __b1 // sprites_init::@return // } - // [497] return + // [495] return rts } // render_init @@ -24821,98 +24796,98 @@ render_init: { .label li_2 = $2b // render_init::vicSelectGfxBank1 // *CIA2_PORT_A_DDR = %00000011 - // [499] *((const byte*) CIA2_PORT_A_DDR) ← (byte) 3 -- _deref_pbuc1=vbuc2 + // [497] *((const byte*) CIA2_PORT_A_DDR) ← (byte) 3 -- _deref_pbuc1=vbuc2 lda #3 sta CIA2_PORT_A_DDR - // [500] phi from render_init::vicSelectGfxBank1 to render_init::vicSelectGfxBank1_toDd001 [phi:render_init::vicSelectGfxBank1->render_init::vicSelectGfxBank1_toDd001] + // [498] phi from render_init::vicSelectGfxBank1 to render_init::vicSelectGfxBank1_toDd001 [phi:render_init::vicSelectGfxBank1->render_init::vicSelectGfxBank1_toDd001] // render_init::vicSelectGfxBank1_toDd001 // render_init::vicSelectGfxBank1_@1 // *CIA2_PORT_A = toDd00(gfx) - // [501] *((const byte*) CIA2_PORT_A) ← (const byte) render_init::vicSelectGfxBank1_toDd001_return#0 -- _deref_pbuc1=vbuc2 + // [499] *((const byte*) CIA2_PORT_A) ← (const byte) render_init::vicSelectGfxBank1_toDd001_return#0 -- _deref_pbuc1=vbuc2 lda #vicSelectGfxBank1_toDd001_return sta CIA2_PORT_A // render_init::@2 // *D011 = VIC_ECM | VIC_DEN | VIC_RSEL | 3 - // [502] *((const byte*) D011) ← (const byte) VIC_ECM|(const byte) VIC_DEN|(const byte) VIC_RSEL|(byte) 3 -- _deref_pbuc1=vbuc2 + // [500] *((const byte*) D011) ← (const byte) VIC_ECM|(const byte) VIC_DEN|(const byte) VIC_RSEL|(byte) 3 -- _deref_pbuc1=vbuc2 // Enable Extended Background Color Mode lda #VIC_ECM|VIC_DEN|VIC_RSEL|3 sta D011 // *BORDERCOL = BLACK - // [503] *((const byte*) BORDERCOL) ← (const byte) BLACK -- _deref_pbuc1=vbuc2 + // [501] *((const byte*) BORDERCOL) ← (const byte) BLACK -- _deref_pbuc1=vbuc2 lda #BLACK sta BORDERCOL // *BGCOL1 = BLACK - // [504] *((const byte*) BGCOL1) ← (const byte) BLACK -- _deref_pbuc1=vbuc2 + // [502] *((const byte*) BGCOL1) ← (const byte) BLACK -- _deref_pbuc1=vbuc2 sta BGCOL1 // *BGCOL2 = PIECES_COLORS_1[0] - // [505] *((const byte*) BGCOL2) ← *((const byte*) PIECES_COLORS_1) -- _deref_pbuc1=_deref_pbuc2 + // [503] *((const byte*) BGCOL2) ← *((const byte*) PIECES_COLORS_1) -- _deref_pbuc1=_deref_pbuc2 lda PIECES_COLORS_1 sta BGCOL2 // *BGCOL3 = PIECES_COLORS_2[0] - // [506] *((const byte*) BGCOL3) ← *((const byte*) PIECES_COLORS_2) -- _deref_pbuc1=_deref_pbuc2 + // [504] *((const byte*) BGCOL3) ← *((const byte*) PIECES_COLORS_2) -- _deref_pbuc1=_deref_pbuc2 lda PIECES_COLORS_2 sta BGCOL3 // *BGCOL4 = GREY - // [507] *((const byte*) BGCOL4) ← (const byte) GREY -- _deref_pbuc1=vbuc2 + // [505] *((const byte*) BGCOL4) ← (const byte) GREY -- _deref_pbuc1=vbuc2 lda #GREY sta BGCOL4 // render_screen_original(PLAYFIELD_SCREEN_1) - // [508] call render_screen_original - // [520] phi from render_init::@2 to render_screen_original [phi:render_init::@2->render_screen_original] - // [520] phi (byte*) render_screen_original::screen#9 = (const byte*) PLAYFIELD_SCREEN_1 [phi:render_init::@2->render_screen_original#0] -- pbuz1=pbuc1 + // [506] call render_screen_original + // [518] phi from render_init::@2 to render_screen_original [phi:render_init::@2->render_screen_original] + // [518] phi (byte*) render_screen_original::screen#9 = (const byte*) PLAYFIELD_SCREEN_1 [phi:render_init::@2->render_screen_original#0] -- pbuz1=pbuc1 lda #PLAYFIELD_SCREEN_1 sta.z render_screen_original.screen+1 jsr render_screen_original - // [509] phi from render_init::@2 to render_init::@3 [phi:render_init::@2->render_init::@3] + // [507] phi from render_init::@2 to render_init::@3 [phi:render_init::@2->render_init::@3] // render_init::@3 // render_screen_original(PLAYFIELD_SCREEN_2) - // [510] call render_screen_original - // [520] phi from render_init::@3 to render_screen_original [phi:render_init::@3->render_screen_original] - // [520] phi (byte*) render_screen_original::screen#9 = (const byte*) PLAYFIELD_SCREEN_2 [phi:render_init::@3->render_screen_original#0] -- pbuz1=pbuc1 + // [508] call render_screen_original + // [518] phi from render_init::@3 to render_screen_original [phi:render_init::@3->render_screen_original] + // [518] phi (byte*) render_screen_original::screen#9 = (const byte*) PLAYFIELD_SCREEN_2 [phi:render_init::@3->render_screen_original#0] -- pbuz1=pbuc1 lda #PLAYFIELD_SCREEN_2 sta.z render_screen_original.screen+1 jsr render_screen_original - // [511] phi from render_init::@3 to render_init::@1 [phi:render_init::@3->render_init::@1] - // [511] phi (byte*) render_init::li_2#2 = (const byte*) PLAYFIELD_SCREEN_2+(byte)(number) 2*(number) $28+(byte) $10 [phi:render_init::@3->render_init::@1#0] -- pbuz1=pbuc1 + // [509] phi from render_init::@3 to render_init::@1 [phi:render_init::@3->render_init::@1] + // [509] phi (byte*) render_init::li_2#2 = (const byte*) PLAYFIELD_SCREEN_2+(byte)(number) 2*(number) $28+(byte) $10 [phi:render_init::@3->render_init::@1#0] -- pbuz1=pbuc1 lda #PLAYFIELD_SCREEN_2+2*$28+$10 sta.z li_2+1 - // [511] phi (byte*) render_init::li_1#2 = (const byte*) PLAYFIELD_SCREEN_1+(byte)(number) 2*(number) $28+(byte) $10 [phi:render_init::@3->render_init::@1#1] -- pbuz1=pbuc1 + // [509] phi (byte*) render_init::li_1#2 = (const byte*) PLAYFIELD_SCREEN_1+(byte)(number) 2*(number) $28+(byte) $10 [phi:render_init::@3->render_init::@1#1] -- pbuz1=pbuc1 lda #PLAYFIELD_SCREEN_1+2*$28+$10 sta.z li_1+1 - // [511] phi (byte) render_init::i#2 = (byte) 0 [phi:render_init::@3->render_init::@1#2] -- vbuyy=vbuc1 + // [509] phi (byte) render_init::i#2 = (byte) 0 [phi:render_init::@3->render_init::@1#2] -- vbuyy=vbuc1 ldy #0 - // [511] phi from render_init::@1 to render_init::@1 [phi:render_init::@1->render_init::@1] - // [511] phi (byte*) render_init::li_2#2 = (byte*) render_init::li_2#1 [phi:render_init::@1->render_init::@1#0] -- register_copy - // [511] phi (byte*) render_init::li_1#2 = (byte*) render_init::li_1#1 [phi:render_init::@1->render_init::@1#1] -- register_copy - // [511] phi (byte) render_init::i#2 = (byte) render_init::i#1 [phi:render_init::@1->render_init::@1#2] -- register_copy + // [509] phi from render_init::@1 to render_init::@1 [phi:render_init::@1->render_init::@1] + // [509] phi (byte*) render_init::li_2#2 = (byte*) render_init::li_2#1 [phi:render_init::@1->render_init::@1#0] -- register_copy + // [509] phi (byte*) render_init::li_1#2 = (byte*) render_init::li_1#1 [phi:render_init::@1->render_init::@1#1] -- register_copy + // [509] phi (byte) render_init::i#2 = (byte) render_init::i#1 [phi:render_init::@1->render_init::@1#2] -- register_copy // render_init::@1 __b1: // screen_lines_1[i] = li_1 - // [512] (byte~) render_init::$5 ← (byte) render_init::i#2 << (byte) 1 -- vbuxx=vbuyy_rol_1 + // [510] (byte~) render_init::$5 ← (byte) render_init::i#2 << (byte) 1 -- vbuxx=vbuyy_rol_1 tya asl tax - // [513] *((const byte**) screen_lines_1 + (byte~) render_init::$5) ← (byte*) render_init::li_1#2 -- pptc1_derefidx_vbuxx=pbuz1 + // [511] *((const byte**) screen_lines_1 + (byte~) render_init::$5) ← (byte*) render_init::li_1#2 -- pptc1_derefidx_vbuxx=pbuz1 lda.z li_1 sta screen_lines_1,x lda.z li_1+1 sta screen_lines_1+1,x // screen_lines_2[i] = li_2 - // [514] *((const byte**) screen_lines_2 + (byte~) render_init::$5) ← (byte*) render_init::li_2#2 -- pptc1_derefidx_vbuxx=pbuz1 + // [512] *((const byte**) screen_lines_2 + (byte~) render_init::$5) ← (byte*) render_init::li_2#2 -- pptc1_derefidx_vbuxx=pbuz1 lda.z li_2 sta screen_lines_2,x lda.z li_2+1 sta screen_lines_2+1,x // li_1 += 40 - // [515] (byte*) render_init::li_1#1 ← (byte*) render_init::li_1#2 + (byte) $28 -- pbuz1=pbuz1_plus_vbuc1 + // [513] (byte*) render_init::li_1#1 ← (byte*) render_init::li_1#2 + (byte) $28 -- pbuz1=pbuz1_plus_vbuc1 lda #$28 clc adc.z li_1 @@ -24921,7 +24896,7 @@ render_init: { inc.z li_1+1 !: // li_2 += 40 - // [516] (byte*) render_init::li_2#1 ← (byte*) render_init::li_2#2 + (byte) $28 -- pbuz1=pbuz1_plus_vbuc1 + // [514] (byte*) render_init::li_2#1 ← (byte*) render_init::li_2#2 + (byte) $28 -- pbuz1=pbuz1_plus_vbuc1 lda #$28 clc adc.z li_2 @@ -24930,14 +24905,14 @@ render_init: { inc.z li_2+1 !: // for(char i:0..PLAYFIELD_LINES-1) - // [517] (byte) render_init::i#1 ← ++ (byte) render_init::i#2 -- vbuyy=_inc_vbuyy + // [515] (byte) render_init::i#1 ← ++ (byte) render_init::i#2 -- vbuyy=_inc_vbuyy iny - // [518] if((byte) render_init::i#1!=(const byte) PLAYFIELD_LINES-(byte) 1+(byte) 1) goto render_init::@1 -- vbuyy_neq_vbuc1_then_la1 + // [516] if((byte) render_init::i#1!=(const byte) PLAYFIELD_LINES-(byte) 1+(byte) 1) goto render_init::@1 -- vbuyy_neq_vbuc1_then_la1 cpy #PLAYFIELD_LINES-1+1 bne __b1 // render_init::@return // } - // [519] return + // [517] return rts } // render_screen_original @@ -24951,182 +24926,182 @@ render_screen_original: { .label oscr = $14 .label ocols = $21 .label y = $13 - // [521] phi from render_screen_original to render_screen_original::@1 [phi:render_screen_original->render_screen_original::@1] - // [521] phi (byte) render_screen_original::y#6 = (byte) 0 [phi:render_screen_original->render_screen_original::@1#0] -- vbuz1=vbuc1 + // [519] phi from render_screen_original to render_screen_original::@1 [phi:render_screen_original->render_screen_original::@1] + // [519] phi (byte) render_screen_original::y#6 = (byte) 0 [phi:render_screen_original->render_screen_original::@1#0] -- vbuz1=vbuc1 lda #0 sta.z y - // [521] phi (byte*) render_screen_original::ocols#4 = (const byte*) PLAYFIELD_COLORS_ORIGINAL+(byte)(number) $20*(number) 2 [phi:render_screen_original->render_screen_original::@1#1] -- pbuz1=pbuc1 + // [519] phi (byte*) render_screen_original::ocols#4 = (const byte*) PLAYFIELD_COLORS_ORIGINAL+(byte)(number) $20*(number) 2 [phi:render_screen_original->render_screen_original::@1#1] -- pbuz1=pbuc1 lda #PLAYFIELD_COLORS_ORIGINAL+$20*2 sta.z ocols+1 - // [521] phi (byte*) render_screen_original::oscr#4 = (const byte*) PLAYFIELD_SCREEN_ORIGINAL+(byte)(number) $20*(number) 2 [phi:render_screen_original->render_screen_original::@1#2] -- pbuz1=pbuc1 + // [519] phi (byte*) render_screen_original::oscr#4 = (const byte*) PLAYFIELD_SCREEN_ORIGINAL+(byte)(number) $20*(number) 2 [phi:render_screen_original->render_screen_original::@1#2] -- pbuz1=pbuc1 lda #PLAYFIELD_SCREEN_ORIGINAL+$20*2 sta.z oscr+1 - // [521] phi (byte*) render_screen_original::cols#7 = (const byte*) COLS [phi:render_screen_original->render_screen_original::@1#3] -- pbuz1=pbuc1 + // [519] phi (byte*) render_screen_original::cols#7 = (const byte*) COLS [phi:render_screen_original->render_screen_original::@1#3] -- pbuz1=pbuc1 lda #COLS sta.z cols+1 - // [521] phi (byte*) render_screen_original::screen#8 = (byte*) render_screen_original::screen#9 [phi:render_screen_original->render_screen_original::@1#4] -- register_copy - // [521] phi from render_screen_original::@5 to render_screen_original::@1 [phi:render_screen_original::@5->render_screen_original::@1] - // [521] phi (byte) render_screen_original::y#6 = (byte) render_screen_original::y#1 [phi:render_screen_original::@5->render_screen_original::@1#0] -- register_copy - // [521] phi (byte*) render_screen_original::ocols#4 = (byte*) render_screen_original::ocols#1 [phi:render_screen_original::@5->render_screen_original::@1#1] -- register_copy - // [521] phi (byte*) render_screen_original::oscr#4 = (byte*) render_screen_original::oscr#1 [phi:render_screen_original::@5->render_screen_original::@1#2] -- register_copy - // [521] phi (byte*) render_screen_original::cols#7 = (byte*) render_screen_original::cols#3 [phi:render_screen_original::@5->render_screen_original::@1#3] -- register_copy - // [521] phi (byte*) render_screen_original::screen#8 = (byte*) render_screen_original::screen#10 [phi:render_screen_original::@5->render_screen_original::@1#4] -- register_copy + // [519] phi (byte*) render_screen_original::screen#8 = (byte*) render_screen_original::screen#9 [phi:render_screen_original->render_screen_original::@1#4] -- register_copy + // [519] phi from render_screen_original::@5 to render_screen_original::@1 [phi:render_screen_original::@5->render_screen_original::@1] + // [519] phi (byte) render_screen_original::y#6 = (byte) render_screen_original::y#1 [phi:render_screen_original::@5->render_screen_original::@1#0] -- register_copy + // [519] phi (byte*) render_screen_original::ocols#4 = (byte*) render_screen_original::ocols#1 [phi:render_screen_original::@5->render_screen_original::@1#1] -- register_copy + // [519] phi (byte*) render_screen_original::oscr#4 = (byte*) render_screen_original::oscr#1 [phi:render_screen_original::@5->render_screen_original::@1#2] -- register_copy + // [519] phi (byte*) render_screen_original::cols#7 = (byte*) render_screen_original::cols#3 [phi:render_screen_original::@5->render_screen_original::@1#3] -- register_copy + // [519] phi (byte*) render_screen_original::screen#8 = (byte*) render_screen_original::screen#10 [phi:render_screen_original::@5->render_screen_original::@1#4] -- register_copy // render_screen_original::@1 __b1: - // [522] phi from render_screen_original::@1 to render_screen_original::@2 [phi:render_screen_original::@1->render_screen_original::@2] - // [522] phi (byte) render_screen_original::x#4 = (byte) 0 [phi:render_screen_original::@1->render_screen_original::@2#0] -- vbuxx=vbuc1 + // [520] phi from render_screen_original::@1 to render_screen_original::@2 [phi:render_screen_original::@1->render_screen_original::@2] + // [520] phi (byte) render_screen_original::x#4 = (byte) 0 [phi:render_screen_original::@1->render_screen_original::@2#0] -- vbuxx=vbuc1 ldx #0 - // [522] phi (byte*) render_screen_original::cols#4 = (byte*) render_screen_original::cols#7 [phi:render_screen_original::@1->render_screen_original::@2#1] -- register_copy - // [522] phi (byte*) render_screen_original::screen#5 = (byte*) render_screen_original::screen#8 [phi:render_screen_original::@1->render_screen_original::@2#2] -- register_copy - // [522] phi from render_screen_original::@2 to render_screen_original::@2 [phi:render_screen_original::@2->render_screen_original::@2] - // [522] phi (byte) render_screen_original::x#4 = (byte) render_screen_original::x#1 [phi:render_screen_original::@2->render_screen_original::@2#0] -- register_copy - // [522] phi (byte*) render_screen_original::cols#4 = (byte*) render_screen_original::cols#1 [phi:render_screen_original::@2->render_screen_original::@2#1] -- register_copy - // [522] phi (byte*) render_screen_original::screen#5 = (byte*) render_screen_original::screen#2 [phi:render_screen_original::@2->render_screen_original::@2#2] -- register_copy + // [520] phi (byte*) render_screen_original::cols#4 = (byte*) render_screen_original::cols#7 [phi:render_screen_original::@1->render_screen_original::@2#1] -- register_copy + // [520] phi (byte*) render_screen_original::screen#5 = (byte*) render_screen_original::screen#8 [phi:render_screen_original::@1->render_screen_original::@2#2] -- register_copy + // [520] phi from render_screen_original::@2 to render_screen_original::@2 [phi:render_screen_original::@2->render_screen_original::@2] + // [520] phi (byte) render_screen_original::x#4 = (byte) render_screen_original::x#1 [phi:render_screen_original::@2->render_screen_original::@2#0] -- register_copy + // [520] phi (byte*) render_screen_original::cols#4 = (byte*) render_screen_original::cols#1 [phi:render_screen_original::@2->render_screen_original::@2#1] -- register_copy + // [520] phi (byte*) render_screen_original::screen#5 = (byte*) render_screen_original::screen#2 [phi:render_screen_original::@2->render_screen_original::@2#2] -- register_copy // render_screen_original::@2 __b2: // *screen++ = SPACE - // [523] *((byte*) render_screen_original::screen#5) ← (const byte) render_screen_original::SPACE -- _deref_pbuz1=vbuc1 + // [521] *((byte*) render_screen_original::screen#5) ← (const byte) render_screen_original::SPACE -- _deref_pbuz1=vbuc1 lda #SPACE ldy #0 sta (screen),y // *screen++ = SPACE; - // [524] (byte*) render_screen_original::screen#2 ← ++ (byte*) render_screen_original::screen#5 -- pbuz1=_inc_pbuz1 + // [522] (byte*) render_screen_original::screen#2 ← ++ (byte*) render_screen_original::screen#5 -- pbuz1=_inc_pbuz1 inc.z screen bne !+ inc.z screen+1 !: // *cols++ = BLACK - // [525] *((byte*) render_screen_original::cols#4) ← (const byte) BLACK -- _deref_pbuz1=vbuc1 + // [523] *((byte*) render_screen_original::cols#4) ← (const byte) BLACK -- _deref_pbuz1=vbuc1 lda #BLACK ldy #0 sta (cols),y // *cols++ = BLACK; - // [526] (byte*) render_screen_original::cols#1 ← ++ (byte*) render_screen_original::cols#4 -- pbuz1=_inc_pbuz1 + // [524] (byte*) render_screen_original::cols#1 ← ++ (byte*) render_screen_original::cols#4 -- pbuz1=_inc_pbuz1 inc.z cols bne !+ inc.z cols+1 !: // while(++x!=4) - // [527] (byte) render_screen_original::x#1 ← ++ (byte) render_screen_original::x#4 -- vbuxx=_inc_vbuxx + // [525] (byte) render_screen_original::x#1 ← ++ (byte) render_screen_original::x#4 -- vbuxx=_inc_vbuxx inx - // [528] if((byte) render_screen_original::x#1!=(byte) 4) goto render_screen_original::@2 -- vbuxx_neq_vbuc1_then_la1 + // [526] if((byte) render_screen_original::x#1!=(byte) 4) goto render_screen_original::@2 -- vbuxx_neq_vbuc1_then_la1 cpx #4 bne __b2 - // [529] phi from render_screen_original::@2 render_screen_original::@3 to render_screen_original::@3 [phi:render_screen_original::@2/render_screen_original::@3->render_screen_original::@3] - // [529] phi (byte) render_screen_original::x#5 = (byte) render_screen_original::x#1 [phi:render_screen_original::@2/render_screen_original::@3->render_screen_original::@3#0] -- register_copy - // [529] phi (byte*) render_screen_original::cols#5 = (byte*) render_screen_original::cols#1 [phi:render_screen_original::@2/render_screen_original::@3->render_screen_original::@3#1] -- register_copy - // [529] phi (byte*) render_screen_original::ocols#2 = (byte*) render_screen_original::ocols#4 [phi:render_screen_original::@2/render_screen_original::@3->render_screen_original::@3#2] -- register_copy - // [529] phi (byte*) render_screen_original::screen#6 = (byte*) render_screen_original::screen#2 [phi:render_screen_original::@2/render_screen_original::@3->render_screen_original::@3#3] -- register_copy - // [529] phi (byte*) render_screen_original::oscr#2 = (byte*) render_screen_original::oscr#4 [phi:render_screen_original::@2/render_screen_original::@3->render_screen_original::@3#4] -- register_copy + // [527] phi from render_screen_original::@2 render_screen_original::@3 to render_screen_original::@3 [phi:render_screen_original::@2/render_screen_original::@3->render_screen_original::@3] + // [527] phi (byte) render_screen_original::x#5 = (byte) render_screen_original::x#1 [phi:render_screen_original::@2/render_screen_original::@3->render_screen_original::@3#0] -- register_copy + // [527] phi (byte*) render_screen_original::cols#5 = (byte*) render_screen_original::cols#1 [phi:render_screen_original::@2/render_screen_original::@3->render_screen_original::@3#1] -- register_copy + // [527] phi (byte*) render_screen_original::ocols#2 = (byte*) render_screen_original::ocols#4 [phi:render_screen_original::@2/render_screen_original::@3->render_screen_original::@3#2] -- register_copy + // [527] phi (byte*) render_screen_original::screen#6 = (byte*) render_screen_original::screen#2 [phi:render_screen_original::@2/render_screen_original::@3->render_screen_original::@3#3] -- register_copy + // [527] phi (byte*) render_screen_original::oscr#2 = (byte*) render_screen_original::oscr#4 [phi:render_screen_original::@2/render_screen_original::@3->render_screen_original::@3#4] -- register_copy // render_screen_original::@3 __b3: // *screen++ = *oscr++ - // [530] *((byte*) render_screen_original::screen#6) ← *((byte*) render_screen_original::oscr#2) -- _deref_pbuz1=_deref_pbuz2 + // [528] *((byte*) render_screen_original::screen#6) ← *((byte*) render_screen_original::oscr#2) -- _deref_pbuz1=_deref_pbuz2 ldy #0 lda (oscr),y sta (screen),y // *screen++ = *oscr++; - // [531] (byte*) render_screen_original::screen#3 ← ++ (byte*) render_screen_original::screen#6 -- pbuz1=_inc_pbuz1 + // [529] (byte*) render_screen_original::screen#3 ← ++ (byte*) render_screen_original::screen#6 -- pbuz1=_inc_pbuz1 inc.z screen bne !+ inc.z screen+1 !: - // [532] (byte*) render_screen_original::oscr#1 ← ++ (byte*) render_screen_original::oscr#2 -- pbuz1=_inc_pbuz1 + // [530] (byte*) render_screen_original::oscr#1 ← ++ (byte*) render_screen_original::oscr#2 -- pbuz1=_inc_pbuz1 inc.z oscr bne !+ inc.z oscr+1 !: // *cols++ = *ocols++ - // [533] *((byte*) render_screen_original::cols#5) ← *((byte*) render_screen_original::ocols#2) -- _deref_pbuz1=_deref_pbuz2 + // [531] *((byte*) render_screen_original::cols#5) ← *((byte*) render_screen_original::ocols#2) -- _deref_pbuz1=_deref_pbuz2 ldy #0 lda (ocols),y sta (cols),y // *cols++ = *ocols++; - // [534] (byte*) render_screen_original::cols#2 ← ++ (byte*) render_screen_original::cols#5 -- pbuz1=_inc_pbuz1 + // [532] (byte*) render_screen_original::cols#2 ← ++ (byte*) render_screen_original::cols#5 -- pbuz1=_inc_pbuz1 inc.z cols bne !+ inc.z cols+1 !: - // [535] (byte*) render_screen_original::ocols#1 ← ++ (byte*) render_screen_original::ocols#2 -- pbuz1=_inc_pbuz1 + // [533] (byte*) render_screen_original::ocols#1 ← ++ (byte*) render_screen_original::ocols#2 -- pbuz1=_inc_pbuz1 inc.z ocols bne !+ inc.z ocols+1 !: // while(++x!=36) - // [536] (byte) render_screen_original::x#2 ← ++ (byte) render_screen_original::x#5 -- vbuxx=_inc_vbuxx + // [534] (byte) render_screen_original::x#2 ← ++ (byte) render_screen_original::x#5 -- vbuxx=_inc_vbuxx inx - // [537] if((byte) render_screen_original::x#2!=(byte) $24) goto render_screen_original::@3 -- vbuxx_neq_vbuc1_then_la1 + // [535] if((byte) render_screen_original::x#2!=(byte) $24) goto render_screen_original::@3 -- vbuxx_neq_vbuc1_then_la1 cpx #$24 bne __b3 - // [538] phi from render_screen_original::@3 render_screen_original::@4 to render_screen_original::@4 [phi:render_screen_original::@3/render_screen_original::@4->render_screen_original::@4] - // [538] phi (byte) render_screen_original::x#6 = (byte) render_screen_original::x#2 [phi:render_screen_original::@3/render_screen_original::@4->render_screen_original::@4#0] -- register_copy - // [538] phi (byte*) render_screen_original::cols#6 = (byte*) render_screen_original::cols#2 [phi:render_screen_original::@3/render_screen_original::@4->render_screen_original::@4#1] -- register_copy - // [538] phi (byte*) render_screen_original::screen#7 = (byte*) render_screen_original::screen#3 [phi:render_screen_original::@3/render_screen_original::@4->render_screen_original::@4#2] -- register_copy + // [536] phi from render_screen_original::@3 render_screen_original::@4 to render_screen_original::@4 [phi:render_screen_original::@3/render_screen_original::@4->render_screen_original::@4] + // [536] phi (byte) render_screen_original::x#6 = (byte) render_screen_original::x#2 [phi:render_screen_original::@3/render_screen_original::@4->render_screen_original::@4#0] -- register_copy + // [536] phi (byte*) render_screen_original::cols#6 = (byte*) render_screen_original::cols#2 [phi:render_screen_original::@3/render_screen_original::@4->render_screen_original::@4#1] -- register_copy + // [536] phi (byte*) render_screen_original::screen#7 = (byte*) render_screen_original::screen#3 [phi:render_screen_original::@3/render_screen_original::@4->render_screen_original::@4#2] -- register_copy // render_screen_original::@4 __b4: // *screen++ = SPACE - // [539] *((byte*) render_screen_original::screen#7) ← (const byte) render_screen_original::SPACE -- _deref_pbuz1=vbuc1 + // [537] *((byte*) render_screen_original::screen#7) ← (const byte) render_screen_original::SPACE -- _deref_pbuz1=vbuc1 lda #SPACE ldy #0 sta (screen),y // *screen++ = SPACE; - // [540] (byte*) render_screen_original::screen#10 ← ++ (byte*) render_screen_original::screen#7 -- pbuz1=_inc_pbuz1 + // [538] (byte*) render_screen_original::screen#10 ← ++ (byte*) render_screen_original::screen#7 -- pbuz1=_inc_pbuz1 inc.z screen bne !+ inc.z screen+1 !: // *cols++ = BLACK - // [541] *((byte*) render_screen_original::cols#6) ← (const byte) BLACK -- _deref_pbuz1=vbuc1 + // [539] *((byte*) render_screen_original::cols#6) ← (const byte) BLACK -- _deref_pbuz1=vbuc1 lda #BLACK ldy #0 sta (cols),y // *cols++ = BLACK; - // [542] (byte*) render_screen_original::cols#3 ← ++ (byte*) render_screen_original::cols#6 -- pbuz1=_inc_pbuz1 + // [540] (byte*) render_screen_original::cols#3 ← ++ (byte*) render_screen_original::cols#6 -- pbuz1=_inc_pbuz1 inc.z cols bne !+ inc.z cols+1 !: // while(++x!=40) - // [543] (byte) render_screen_original::x#3 ← ++ (byte) render_screen_original::x#6 -- vbuxx=_inc_vbuxx + // [541] (byte) render_screen_original::x#3 ← ++ (byte) render_screen_original::x#6 -- vbuxx=_inc_vbuxx inx - // [544] if((byte) render_screen_original::x#3!=(byte) $28) goto render_screen_original::@4 -- vbuxx_neq_vbuc1_then_la1 + // [542] if((byte) render_screen_original::x#3!=(byte) $28) goto render_screen_original::@4 -- vbuxx_neq_vbuc1_then_la1 cpx #$28 bne __b4 // render_screen_original::@5 // for(char y:0..24) - // [545] (byte) render_screen_original::y#1 ← ++ (byte) render_screen_original::y#6 -- vbuz1=_inc_vbuz1 + // [543] (byte) render_screen_original::y#1 ← ++ (byte) render_screen_original::y#6 -- vbuz1=_inc_vbuz1 inc.z y - // [546] if((byte) render_screen_original::y#1!=(byte) $19) goto render_screen_original::@1 -- vbuz1_neq_vbuc1_then_la1 + // [544] if((byte) render_screen_original::y#1!=(byte) $19) goto render_screen_original::@1 -- vbuz1_neq_vbuc1_then_la1 lda #$19 cmp.z y bne __b1 // render_screen_original::@return // } - // [547] return + // [545] return rts } // sid_rnd_init // Initialize SID voice 3 for random number generation sid_rnd_init: { // *SID_VOICE3_FREQ = 0xffff - // [548] *((const word*) SID_VOICE3_FREQ) ← (word) $ffff -- _deref_pwuc1=vwuc2 + // [546] *((const word*) SID_VOICE3_FREQ) ← (word) $ffff -- _deref_pwuc1=vwuc2 lda #<$ffff sta SID_VOICE3_FREQ lda #>$ffff sta SID_VOICE3_FREQ+1 // *SID_VOICE3_CONTROL = SID_CONTROL_NOISE - // [549] *((const byte*) SID_VOICE3_CONTROL) ← (const byte) SID_CONTROL_NOISE -- _deref_pbuc1=vbuc2 + // [547] *((const byte*) SID_VOICE3_CONTROL) ← (const byte) SID_CONTROL_NOISE -- _deref_pbuc1=vbuc2 lda #SID_CONTROL_NOISE sta SID_VOICE3_CONTROL // sid_rnd_init::@return // } - // [550] return + // [548] return rts } // sprites_irq @@ -25145,113 +25120,113 @@ sprites_irq: { // Clear decimal flag (because it is used by the score algorithm) cld // ypos = irq_sprite_ypos - // [552] (byte) sprites_irq::ypos#0 ← (byte) irq_sprite_ypos -- vbuaa=vbuz1 + // [550] (byte) sprites_irq::ypos#0 ← (byte) irq_sprite_ypos -- vbuaa=vbuz1 // Place the sprites lda.z irq_sprite_ypos // SPRITES_YPOS[0] = ypos - // [553] *((const byte*) SPRITES_YPOS) ← (byte) sprites_irq::ypos#0 -- _deref_pbuc1=vbuaa + // [551] *((const byte*) SPRITES_YPOS) ← (byte) sprites_irq::ypos#0 -- _deref_pbuc1=vbuaa sta SPRITES_YPOS // SPRITES_YPOS[2] = ypos - // [554] *((const byte*) SPRITES_YPOS+(byte) 2) ← (byte) sprites_irq::ypos#0 -- _deref_pbuc1=vbuaa + // [552] *((const byte*) SPRITES_YPOS+(byte) 2) ← (byte) sprites_irq::ypos#0 -- _deref_pbuc1=vbuaa sta SPRITES_YPOS+2 // SPRITES_YPOS[4] = ypos - // [555] *((const byte*) SPRITES_YPOS+(byte) 4) ← (byte) sprites_irq::ypos#0 -- _deref_pbuc1=vbuaa + // [553] *((const byte*) SPRITES_YPOS+(byte) 4) ← (byte) sprites_irq::ypos#0 -- _deref_pbuc1=vbuaa sta SPRITES_YPOS+4 // SPRITES_YPOS[6] = ypos - // [556] *((const byte*) SPRITES_YPOS+(byte) 6) ← (byte) sprites_irq::ypos#0 -- _deref_pbuc1=vbuaa + // [554] *((const byte*) SPRITES_YPOS+(byte) 6) ← (byte) sprites_irq::ypos#0 -- _deref_pbuc1=vbuaa sta SPRITES_YPOS+6 // irq_raster_next+1 - // [557] (byte~) sprites_irq::$0 ← (byte) irq_raster_next + (byte) 1 -- vbuxx=vbuz1_plus_1 + // [555] (byte~) sprites_irq::$0 ← (byte) irq_raster_next + (byte) 1 -- vbuxx=vbuz1_plus_1 ldx.z irq_raster_next inx // raster_sprite_gfx_modify = irq_raster_next+1 - // [558] (byte) sprites_irq::raster_sprite_gfx_modify ← (byte~) sprites_irq::$0 -- vbuz1=vbuxx + // [556] (byte) sprites_irq::raster_sprite_gfx_modify ← (byte~) sprites_irq::$0 -- vbuz1=vbuxx // Wait for the y-position before changing sprite pointers stx.z raster_sprite_gfx_modify // sprites_irq::@8 __b8: // while(*RASTERsprites_irq::toSpritePtr2] + // [581] phi from sprites_irq::@3 to sprites_irq::toSpritePtr2 [phi:sprites_irq::@3->sprites_irq::toSpritePtr2] // sprites_irq::toSpritePtr2 // sprites_irq::@11 // irq_sprite_ptr = toSpritePtr(PLAYFIELD_SPRITES) - // [584] (byte) irq_sprite_ptr ← (const byte) sprites_irq::toSpritePtr2_return#0 -- vbuz1=vbuc1 + // [582] (byte) irq_sprite_ptr ← (const byte) sprites_irq::toSpritePtr2_return#0 -- vbuz1=vbuc1 lda #toSpritePtr2_return sta.z irq_sprite_ptr jmp __b5 // sprites_irq::@1 __b1: // PLAYFIELD_SPRITE_PTRS_1[0] = ptr++ - // [585] *((const byte*) PLAYFIELD_SPRITE_PTRS_1) ← (byte) sprites_irq::ptr#0 -- _deref_pbuc1=vbuxx + // [583] *((const byte*) PLAYFIELD_SPRITE_PTRS_1) ← (byte) sprites_irq::ptr#0 -- _deref_pbuc1=vbuxx stx PLAYFIELD_SPRITE_PTRS_1 // PLAYFIELD_SPRITE_PTRS_1[0] = ptr++; - // [586] (byte) sprites_irq::ptr#1 ← ++ (byte) sprites_irq::ptr#0 -- vbuxx=_inc_vbuxx + // [584] (byte) sprites_irq::ptr#1 ← ++ (byte) sprites_irq::ptr#0 -- vbuxx=_inc_vbuxx inx // PLAYFIELD_SPRITE_PTRS_1[1] = ptr - // [587] *((const byte*) PLAYFIELD_SPRITE_PTRS_1+(byte) 1) ← (byte) sprites_irq::ptr#1 -- _deref_pbuc1=vbuxx + // [585] *((const byte*) PLAYFIELD_SPRITE_PTRS_1+(byte) 1) ← (byte) sprites_irq::ptr#1 -- _deref_pbuc1=vbuxx stx PLAYFIELD_SPRITE_PTRS_1+1 // PLAYFIELD_SPRITE_PTRS_1[2] = ptr++ - // [588] *((const byte*) PLAYFIELD_SPRITE_PTRS_1+(byte) 2) ← (byte) sprites_irq::ptr#1 -- _deref_pbuc1=vbuxx + // [586] *((const byte*) PLAYFIELD_SPRITE_PTRS_1+(byte) 2) ← (byte) sprites_irq::ptr#1 -- _deref_pbuc1=vbuxx stx PLAYFIELD_SPRITE_PTRS_1+2 // PLAYFIELD_SPRITE_PTRS_1[2] = ptr++; - // [589] (byte) sprites_irq::ptr#2 ← ++ (byte) sprites_irq::ptr#1 -- vbuaa=_inc_vbuxx + // [587] (byte) sprites_irq::ptr#2 ← ++ (byte) sprites_irq::ptr#1 -- vbuaa=_inc_vbuxx inx txa // PLAYFIELD_SPRITE_PTRS_1[3] = ptr - // [590] *((const byte*) PLAYFIELD_SPRITE_PTRS_1+(byte) 3) ← (byte) sprites_irq::ptr#2 -- _deref_pbuc1=vbuaa + // [588] *((const byte*) PLAYFIELD_SPRITE_PTRS_1+(byte) 3) ← (byte) sprites_irq::ptr#2 -- _deref_pbuc1=vbuaa sta PLAYFIELD_SPRITE_PTRS_1+3 jmp __b2 } @@ -25362,6 +25337,20 @@ sprites_irq: { // The initial X/Y for each piece PIECES_START_X: .byte 4, 4, 4, 4, 4, 4, 4 PIECES_START_Y: .byte 1, 1, 1, 1, 1, 0, 1 +PLAYFIELD_SCREEN_ORIGINAL: +// Load chars for the screen + .var screen = LoadBinary("playfield-screen.iscr") + // Load extended colors for the screen + .var extended = LoadBinary("playfield-extended.col") + // screen.get(i)+1 because the charset is loaded into PLAYFIELD_CHARSET+8 + // extended.get(i)-1 because the extended colors are 1-based (1/2/3/4) + // <<6 to move extended colors to the upper 2 bits + .fill screen.getSize(), ( (screen.get(i)+1) | (extended.get(i)-1)<<6 ) + + // Original Color Data +PLAYFIELD_COLORS_ORIGINAL: +.import binary "playfield-screen.col" + // The color #1 to use for the pieces for each level PIECES_COLORS_1: .byte BLUE, GREEN, PURPLE, BLUE, RED, LIGHT_GREEN, RED, BLUE, LIGHT_BLUE, RED, BLUE, GREEN, PURPLE, BLUE, RED, LIGHT_GREEN, RED, BLUE, LIGHT_BLUE, RED, BLUE, GREEN, PURPLE, BLUE, RED, LIGHT_GREEN, RED, BLUE, LIGHT_BLUE, RED // The color #2 to use for the pieces for each level @@ -25389,19 +25378,6 @@ sprites_irq: { .fill 8,$00 // Place a filled char at the start of the charset .import binary "playfield-screen.imap" -.pc = PLAYFIELD_SCREEN_ORIGINAL "PLAYFIELD_SCREEN_ORIGINAL" - // Load chars for the screen - .var screen = LoadBinary("playfield-screen.iscr") - // Load extended colors for the screen - .var extended = LoadBinary("playfield-extended.col") - // screen.get(i)+1 because the charset is loaded into PLAYFIELD_CHARSET+8 - // extended.get(i)-1 because the extended colors are 1-based (1/2/3/4) - // <<6 to move extended colors to the upper 2 bits - .fill screen.getSize(), ( (screen.get(i)+1) | (extended.get(i)-1)<<6 ) - -.pc = PLAYFIELD_COLORS_ORIGINAL "PLAYFIELD_COLORS_ORIGINAL" - .import binary "playfield-screen.col" - .pc = PLAYFIELD_SPRITES "PLAYFIELD_SPRITES" .var sprites = LoadPicture("playfield-sprites.png", List().add($010101, $000000)) // Put the sprites into memory diff --git a/src/test/ref/complex/tetris/tetris.sym b/src/test/ref/complex/tetris/tetris.sym index 88448d437..b5deeb9c5 100644 --- a/src/test/ref/complex/tetris/tetris.sym +++ b/src/test/ref/complex/tetris/tetris.sym @@ -64,12 +64,21 @@ (const byte*) PIECE_Z[(number) $40] = { (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 1, (byte) 1, (byte) 0, (byte) 0, (byte) 0, (byte) 1, (byte) 1, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 1, (byte) 0, (byte) 0, (byte) 1, (byte) 1, (byte) 0, (byte) 0, (byte) 1, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 1, (byte) 1, (byte) 0, (byte) 0, (byte) 0, (byte) 1, (byte) 1, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 1, (byte) 0, (byte) 0, (byte) 1, (byte) 1, (byte) 0, (byte) 0, (byte) 1, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0 } (const byte) PINK = (byte) $a (const byte*) PLAYFIELD_CHARSET = (byte*) 10240 -(const byte*) PLAYFIELD_COLORS_ORIGINAL = (byte*) 7168 +(const byte*) PLAYFIELD_COLORS_ORIGINAL[] = kickasm {{ .import binary "playfield-screen.col" + }} (const byte) PLAYFIELD_COLS = (byte) $a (const byte) PLAYFIELD_LINES = (byte) $16 (const byte*) PLAYFIELD_SCREEN_1 = (byte*) 1024 (const byte*) PLAYFIELD_SCREEN_2 = (byte*) 11264 -(const byte*) PLAYFIELD_SCREEN_ORIGINAL = (byte*) 12288 +(const byte*) PLAYFIELD_SCREEN_ORIGINAL[] = kickasm {{ // Load chars for the screen + .var screen = LoadBinary("playfield-screen.iscr") + // Load extended colors for the screen + .var extended = LoadBinary("playfield-extended.col") + // screen.get(i)+1 because the charset is loaded into PLAYFIELD_CHARSET+8 + // extended.get(i)-1 because the extended colors are 1-based (1/2/3/4) + // <<6 to move extended colors to the upper 2 bits + .fill screen.getSize(), ( (screen.get(i)+1) | (extended.get(i)-1)<<6 ) + }} (const byte*) PLAYFIELD_SPRITES = (byte*) 8192 (const byte*) PLAYFIELD_SPRITE_PTRS_1 = (const byte*) PLAYFIELD_SCREEN_1+(const word) SPRITE_PTRS (const byte*) PLAYFIELD_SPRITE_PTRS_2 = (const byte*) PLAYFIELD_SCREEN_2+(const word) SPRITE_PTRS @@ -855,7 +864,7 @@ (const byte) render_show::toD0182_return#0 toD0182_return = >(word)(const byte*) PLAYFIELD_SCREEN_2&(word) $3fff*(byte) 4|>(word)(const byte*) PLAYFIELD_CHARSET/(byte) 4&(byte) $f (byte*) render_show::toD0182_screen (const dword*) score_add_bcd[(number) 5] = { fill( 5, 0) } -(dword) score_bcd loadstore zp[4]:23 0.04316546762589928 +(dword) score_bcd loadstore zp[4]:23 0.043795620437956206 (const byte**) screen_lines_1[(const byte) PLAYFIELD_LINES] = { fill( PLAYFIELD_LINES, 0) } (const byte**) screen_lines_2[(const byte) PLAYFIELD_LINES] = { fill( PLAYFIELD_LINES, 0) } (void()) sid_rnd_init()