From 30ad94dda366cf532d181e324846c9dfd288b14a Mon Sep 17 00:00:00 2001 From: jespergravgaard Date: Sat, 29 Dec 2018 22:53:02 +0100 Subject: [PATCH] Saved memory and code by combining screen chars and extended colors in kasm-script. --- src/test/kc/examples/tetris/tetris-data.kc | 2 - src/test/kc/examples/tetris/tetris-render.kc | 20 +- src/test/ref/examples/tetris/test-sprites.log | 6 - src/test/ref/examples/tetris/test-sprites.sym | 1 - src/test/ref/examples/tetris/tetris.asm | 70 +- src/test/ref/examples/tetris/tetris.cfg | 1076 +- src/test/ref/examples/tetris/tetris.log | 9212 ++++++++--------- src/test/ref/examples/tetris/tetris.sym | 118 +- 8 files changed, 5121 insertions(+), 5384 deletions(-) diff --git a/src/test/kc/examples/tetris/tetris-data.kc b/src/test/kc/examples/tetris/tetris-data.kc index 392a20a37..b054245ea 100644 --- a/src/test/kc/examples/tetris/tetris-data.kc +++ b/src/test/kc/examples/tetris/tetris-data.kc @@ -12,8 +12,6 @@ const byte* PLAYFIELD_SPRITE_PTRS_2 = (PLAYFIELD_SCREEN_2+SPRITE_PTRS); const byte* PLAYFIELD_SCREEN_ORIGINAL = $1800; // Address of the original playscreen colors const byte* PLAYFIELD_COLORS_ORIGINAL = $1c00; -// Address of the original playscreen extended colors -const byte* PLAYFIELD_EXTENDED_ORIGINAL = $1400; // Address of the sprites covering the playfield const byte* PLAYFIELD_SPRITES = $2000; // Address of the charset diff --git a/src/test/kc/examples/tetris/tetris-render.kc b/src/test/kc/examples/tetris/tetris-render.kc index e6c8cb763..1f51c440d 100644 --- a/src/test/kc/examples/tetris/tetris-render.kc +++ b/src/test/kc/examples/tetris/tetris-render.kc @@ -6,18 +6,21 @@ kickasm(pc PLAYFIELD_CHARSET, resource "playfield-screen.imap") {{ }} const byte PLAYFIELD_SCREEN_ORIGINAL_WIDTH=32; -kickasm(pc PLAYFIELD_SCREEN_ORIGINAL, resource "playfield-screen.iscr") {{ - .import binary "playfield-screen.iscr" +kickasm(pc PLAYFIELD_SCREEN_ORIGINAL, 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 + .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 kickasm(pc PLAYFIELD_COLORS_ORIGINAL, resource "playfield-screen.col") {{ .import binary "playfield-screen.col" }} -// Original Extended Color Data -kickasm(pc PLAYFIELD_EXTENDED_ORIGINAL, resource "playfield-extended.col") {{ - .import binary "playfield-extended.col" -}} // Pointers to the screen address for rendering each playfield line // The lines for screen 1 is aligned with $80 and screen 2 with $40 - so XOR'ing with $40 gives screen 2 lines. @@ -77,7 +80,6 @@ void render_screen_swap() { void render_screen_original(byte* screen) { byte SPACE = 0; byte* oscr = PLAYFIELD_SCREEN_ORIGINAL+32*2; - byte* oext = PLAYFIELD_EXTENDED_ORIGINAL+32*2; byte* ocols = PLAYFIELD_COLORS_ORIGINAL+32*2; byte* cols = COLS; for(byte y:0..24) { @@ -87,9 +89,7 @@ void render_screen_original(byte* screen) { *cols++ = BLACK; } while(++x!=4); do { - byte c = (*oscr++)+1; // +1 because the charset is loaded to PLAYFIELD_CHARSET+8 - byte ext = ((*oext++)-1)<<6; // -1 because the extended colors are saved off-by-one - *screen++ = c|ext; + *screen++ = *oscr++; *cols++ = *ocols++; } while(++x!=36); do { diff --git a/src/test/ref/examples/tetris/test-sprites.log b/src/test/ref/examples/tetris/test-sprites.log index 90a7c6ea7..69c8c58b3 100644 --- a/src/test/ref/examples/tetris/test-sprites.log +++ b/src/test/ref/examples/tetris/test-sprites.log @@ -96,7 +96,6 @@ CONTROL FLOW GRAPH SSA (byte*) PLAYFIELD_SPRITE_PTRS_2#0 ← (byte*~) $1 (byte*) PLAYFIELD_SCREEN_ORIGINAL#0 ← ((byte*)) (word/signed word/dword/signed dword) 6144 (byte*) PLAYFIELD_COLORS_ORIGINAL#0 ← ((byte*)) (word/signed word/dword/signed dword) 7168 - (byte*) PLAYFIELD_EXTENDED_ORIGINAL#0 ← ((byte*)) (word/signed word/dword/signed dword) 5120 (byte*) PLAYFIELD_SPRITES#0 ← ((byte*)) (word/signed word/dword/signed dword) 8192 (byte*) PLAYFIELD_CHARSET#0 ← ((byte*)) (word/signed word/dword/signed dword) 10240 (byte) PLAYFIELD_LINES#0 ← (byte/signed byte/word/signed word/dword/signed dword) 22 @@ -527,8 +526,6 @@ SYMBOL TABLE SSA (byte*) PLAYFIELD_COLORS_ORIGINAL#0 (byte) PLAYFIELD_COLS (byte) PLAYFIELD_COLS#0 -(byte*) PLAYFIELD_EXTENDED_ORIGINAL -(byte*) PLAYFIELD_EXTENDED_ORIGINAL#0 (byte) PLAYFIELD_LINES (byte) PLAYFIELD_LINES#0 (byte*) PLAYFIELD_SCREEN_1 @@ -1046,7 +1043,6 @@ Constant (const byte*) PLAYFIELD_SCREEN_1#0 = ((byte*))1024 Constant (const byte*) PLAYFIELD_SCREEN_2#0 = ((byte*))11264 Constant (const byte*) PLAYFIELD_SCREEN_ORIGINAL#0 = ((byte*))6144 Constant (const byte*) PLAYFIELD_COLORS_ORIGINAL#0 = ((byte*))7168 -Constant (const byte*) PLAYFIELD_EXTENDED_ORIGINAL#0 = ((byte*))5120 Constant (const byte*) PLAYFIELD_SPRITES#0 = ((byte*))8192 Constant (const byte*) PLAYFIELD_CHARSET#0 = ((byte*))10240 Constant (const byte) PLAYFIELD_LINES#0 = 22 @@ -1414,7 +1410,6 @@ VARIABLE REGISTER WEIGHTS (byte*) PLAYFIELD_CHARSET (byte*) PLAYFIELD_COLORS_ORIGINAL (byte) PLAYFIELD_COLS -(byte*) PLAYFIELD_EXTENDED_ORIGINAL (byte) PLAYFIELD_LINES (byte*) PLAYFIELD_SCREEN_1 (byte*) PLAYFIELD_SCREEN_2 @@ -2791,7 +2786,6 @@ FINAL SYMBOL TABLE (byte*) PLAYFIELD_COLORS_ORIGINAL (byte) PLAYFIELD_COLS (const byte) PLAYFIELD_COLS#0 PLAYFIELD_COLS = (byte/signed byte/word/signed word/dword/signed dword) 10 -(byte*) PLAYFIELD_EXTENDED_ORIGINAL (byte) PLAYFIELD_LINES (const byte) PLAYFIELD_LINES#0 PLAYFIELD_LINES = (byte/signed byte/word/signed word/dword/signed dword) 22 (byte*) PLAYFIELD_SCREEN_1 diff --git a/src/test/ref/examples/tetris/test-sprites.sym b/src/test/ref/examples/tetris/test-sprites.sym index 854cbd50b..9ecfe8e9c 100644 --- a/src/test/ref/examples/tetris/test-sprites.sym +++ b/src/test/ref/examples/tetris/test-sprites.sym @@ -65,7 +65,6 @@ (byte*) PLAYFIELD_COLORS_ORIGINAL (byte) PLAYFIELD_COLS (const byte) PLAYFIELD_COLS#0 PLAYFIELD_COLS = (byte/signed byte/word/signed word/dword/signed dword) 10 -(byte*) PLAYFIELD_EXTENDED_ORIGINAL (byte) PLAYFIELD_LINES (const byte) PLAYFIELD_LINES#0 PLAYFIELD_LINES = (byte/signed byte/word/signed word/dword/signed dword) 22 (byte*) PLAYFIELD_SCREEN_1 diff --git a/src/test/ref/examples/tetris/tetris.asm b/src/test/ref/examples/tetris/tetris.asm index 7740eb515..a339ab7bc 100644 --- a/src/test/ref/examples/tetris/tetris.asm +++ b/src/test/ref/examples/tetris/tetris.asm @@ -61,7 +61,6 @@ .label PLAYFIELD_SCREEN_2 = $2c00 .label PLAYFIELD_SCREEN_ORIGINAL = $1800 .label PLAYFIELD_COLORS_ORIGINAL = $1c00 - .label PLAYFIELD_EXTENDED_ORIGINAL = $1400 .label PLAYFIELD_SPRITES = $2000 .label PLAYFIELD_CHARSET = $2800 .const PLAYFIELD_LINES = $16 @@ -78,11 +77,11 @@ .label PLAYFIELD_SPRITE_PTRS_2 = PLAYFIELD_SCREEN_2+SPRITE_PTRS .const toSpritePtr1_return = PLAYFIELD_SPRITES>>6 .label keyboard_events_size = $16 - .label render_screen_showing = $1c - .label irq_raster_next = $1b - .label irq_sprite_ypos = $1d - .label irq_sprite_ptr = $1e - .label irq_cnt = $1f + .label render_screen_showing = $1a + .label irq_raster_next = $19 + .label irq_sprite_ypos = $1b + .label irq_sprite_ptr = $1c + .label irq_cnt = $1d .label current_movedown_counter = 4 .label current_ypos = $e .label current_piece_gfx = $12 @@ -119,7 +118,7 @@ bbegin: jsr main main: { .label key_event = $d - .label render = $20 + .label render = $1e jsr sid_rnd_init sei jsr render_init @@ -367,7 +366,7 @@ play_collision: { .label piece_gfx = 7 .label ypos2 = 9 .label playfield_line = $17 - .label i = $21 + .label i = $1f .label col = $c .label l = $a .label i_2 = $b @@ -1011,12 +1010,10 @@ render_init: { } render_screen_original: { .const SPACE = 0 - .label screen = $17 - .label cols = $19 - .label c = 3 + .label screen = $12 + .label cols = $17 .label oscr = 7 - .label oext = $f - .label ocols = $12 + .label ocols = $f .label y = 2 lda #0 sta y @@ -1024,10 +1021,6 @@ render_screen_original: { sta ocols lda #>PLAYFIELD_COLORS_ORIGINAL+$20*2 sta ocols+1 - lda #PLAYFIELD_EXTENDED_ORIGINAL+$20*2 - sta oext+1 lda #PLAYFIELD_SCREEN_ORIGINAL+$20*2 @@ -1059,33 +1052,14 @@ render_screen_original: { b3: ldy #0 lda (oscr),y - clc - adc #1 - sta c - inc oscr - bne !+ - inc oscr+1 - !: - ldy #0 - lda (oext),y - sec - sbc #1 - asl - asl - asl - asl - asl - asl - inc oext - bne !+ - inc oext+1 - !: - ora c - ldy #0 sta (screen),y inc screen bne !+ inc screen+1 + !: + inc oscr + bne !+ + inc oscr+1 !: ldy #0 lda (ocols),y @@ -1122,9 +1096,7 @@ render_screen_original: { inc y lda y cmp #$19 - beq !b1+ - jmp b1 - !b1: + bne b1 rts } sid_rnd_init: { @@ -1248,14 +1220,18 @@ sprites_irq: { .import binary "playfield-screen.imap" .pc = PLAYFIELD_SCREEN_ORIGINAL "PLAYFIELD_SCREEN_ORIGINAL" - .import binary "playfield-screen.iscr" + // 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_EXTENDED_ORIGINAL "PLAYFIELD_EXTENDED_ORIGINAL" - .import binary "playfield-extended.col" - .pc = PLAYFIELD_SPRITES "PLAYFIELD_SPRITES" .var sprites = LoadPicture("playfield-sprites.png", List().add($010101, $000000)) .for(var sy=0;sy<10;sy++) { diff --git a/src/test/ref/examples/tetris/tetris.cfg b/src/test/ref/examples/tetris/tetris.cfg index 0426b2652..795224b59 100644 --- a/src/test/ref/examples/tetris/tetris.cfg +++ b/src/test/ref/examples/tetris/tetris.cfg @@ -6,11 +6,16 @@ kickasm(location (const byte*) PLAYFIELD_CHARSET#0) {{ .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#0) {{ .import binary "playfield-screen.iscr" + kickasm(location (const byte*) PLAYFIELD_SCREEN_ORIGINAL#0) {{ // 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#0) {{ .import binary "playfield-screen.col" - }} - kickasm(location (const byte*) PLAYFIELD_EXTENDED_ORIGINAL#0) {{ .import binary "playfield-extended.col" }} to:@20 @20: scope:[] from @14 @@ -28,930 +33,923 @@ }} to:@21 @21: scope:[] from @20 - [7] (byte) irq_raster_next#0 ← (const byte) IRQ_RASTER_FIRST#0 - [8] (byte) irq_sprite_ypos#0 ← (byte/signed byte/word/signed word/dword/signed dword) 50 + [6] (byte) irq_raster_next#0 ← (const byte) IRQ_RASTER_FIRST#0 + [7] (byte) irq_sprite_ypos#0 ← (byte/signed byte/word/signed word/dword/signed dword) 50 to:toSpritePtr1 toSpritePtr1: scope:[] from @21 - [9] phi() + [8] phi() to:@33 @33: scope:[] from toSpritePtr1 - [10] (byte) irq_sprite_ptr#0 ← (const byte) toSpritePtr1_return#0 - [11] (byte) irq_cnt#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 + [9] (byte) irq_sprite_ptr#0 ← (const byte) toSpritePtr1_return#0 + [10] (byte) irq_cnt#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:@32 @32: scope:[] from @33 - [12] phi() - [13] call main + [11] phi() + [12] call main to:@end @end: scope:[] from @32 - [14] phi() + [13] phi() main: scope:[main] from @32 - [15] phi() - [16] call sid_rnd_init + [14] phi() + [15] call sid_rnd_init to:main::@15 main::@15: scope:[main] from main asm { sei } - [18] call render_init + [17] call render_init to:main::@16 main::@16: scope:[main] from main::@15 - [19] phi() - [20] call sprites_init + [18] phi() + [19] call sprites_init to:main::@17 main::@17: scope:[main] from main::@16 - [21] phi() - [22] call sprites_irq_init + [20] phi() + [21] call sprites_irq_init to:main::@18 main::@18: scope:[main] from main::@17 - [23] phi() - [24] call play_init + [22] phi() + [23] call play_init to:main::@19 main::@19: scope:[main] from main::@18 - [25] phi() - [26] call play_spawn_current + [24] phi() + [25] call play_spawn_current to:main::@20 main::@20: scope:[main] from main::@19 - [27] phi() - [28] call render_playfield + [26] phi() + [27] call render_playfield to:main::@21 main::@21: scope:[main] from main::@20 - [29] (byte~) current_ypos#84 ← (byte) current_ypos#18 - [30] (byte~) current_xpos#110 ← (byte) current_xpos#23 - [31] (byte*~) current_piece_gfx#100 ← (byte*) current_piece_gfx#16 - [32] (byte~) current_piece_char#88 ← (byte) current_piece_char#12 - [33] call render_current - [34] (byte*~) current_piece#71 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) + [28] (byte~) current_ypos#84 ← (byte) current_ypos#18 + [29] (byte~) current_xpos#110 ← (byte) current_xpos#23 + [30] (byte*~) current_piece_gfx#100 ← (byte*) current_piece_gfx#16 + [31] (byte~) current_piece_char#88 ← (byte) current_piece_char#12 + [32] call render_current + [33] (byte*~) current_piece#71 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) to:main::@1 main::@1: scope:[main] from main::@21 main::@28 main::@30 - [35] (byte) current_movedown_counter#12 ← phi( main::@21/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@30/(byte) current_movedown_counter#10 main::@28/(byte) current_movedown_counter#10 ) - [35] (byte) keyboard_events_size#19 ← phi( main::@21/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@30/(byte) keyboard_events_size#16 main::@28/(byte) keyboard_events_size#16 ) - [35] (byte) current_piece_char#15 ← phi( main::@21/(byte) current_piece_char#12 main::@30/(byte) current_piece_char#1 main::@28/(byte) current_piece_char#1 ) - [35] (byte) current_ypos#21 ← phi( main::@21/(byte) current_ypos#18 main::@30/(byte) current_ypos#13 main::@28/(byte) current_ypos#13 ) - [35] (byte) current_xpos#10 ← phi( main::@21/(byte) current_xpos#23 main::@30/(byte) current_xpos#19 main::@28/(byte) current_xpos#19 ) - [35] (byte*) current_piece_gfx#20 ← phi( main::@21/(byte*) current_piece_gfx#16 main::@30/(byte*) current_piece_gfx#14 main::@28/(byte*) current_piece_gfx#14 ) - [35] (byte) current_orientation#10 ← phi( main::@21/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@30/(byte) current_orientation#19 main::@28/(byte) current_orientation#19 ) - [35] (byte*) current_piece#16 ← phi( main::@21/(byte*~) current_piece#71 main::@30/(byte*) current_piece#10 main::@28/(byte*) current_piece#10 ) - [35] (byte) render_screen_render#16 ← phi( main::@21/(byte/signed byte/word/signed word/dword/signed dword) 64 main::@30/(byte) render_screen_render#11 ) - [35] (byte) render_screen_show#16 ← phi( main::@21/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@30/(byte) render_screen_show#13 ) + [34] (byte) current_movedown_counter#12 ← phi( main::@21/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@30/(byte) current_movedown_counter#10 main::@28/(byte) current_movedown_counter#10 ) + [34] (byte) keyboard_events_size#19 ← phi( main::@21/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@30/(byte) keyboard_events_size#16 main::@28/(byte) keyboard_events_size#16 ) + [34] (byte) current_piece_char#15 ← phi( main::@21/(byte) current_piece_char#12 main::@30/(byte) current_piece_char#1 main::@28/(byte) current_piece_char#1 ) + [34] (byte) current_ypos#21 ← phi( main::@21/(byte) current_ypos#18 main::@30/(byte) current_ypos#13 main::@28/(byte) current_ypos#13 ) + [34] (byte) current_xpos#10 ← phi( main::@21/(byte) current_xpos#23 main::@30/(byte) current_xpos#19 main::@28/(byte) current_xpos#19 ) + [34] (byte*) current_piece_gfx#20 ← phi( main::@21/(byte*) current_piece_gfx#16 main::@30/(byte*) current_piece_gfx#14 main::@28/(byte*) current_piece_gfx#14 ) + [34] (byte) current_orientation#10 ← phi( main::@21/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@30/(byte) current_orientation#19 main::@28/(byte) current_orientation#19 ) + [34] (byte*) current_piece#16 ← phi( main::@21/(byte*~) current_piece#71 main::@30/(byte*) current_piece#10 main::@28/(byte*) current_piece#10 ) + [34] (byte) render_screen_render#16 ← phi( main::@21/(byte/signed byte/word/signed word/dword/signed dword) 64 main::@30/(byte) render_screen_render#11 ) + [34] (byte) render_screen_show#16 ← phi( main::@21/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@30/(byte) render_screen_show#13 ) to:main::@4 main::@4: scope:[main] from main::@1 main::@4 - [36] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@4 + [35] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@4 to:main::@6 main::@6: scope:[main] from main::@4 - [37] phi() - [38] call render_show + [36] phi() + [37] call render_show to:main::@23 main::@23: scope:[main] from main::@6 - [39] phi() - [40] call keyboard_event_scan + [38] phi() + [39] call keyboard_event_scan to:main::@24 main::@24: scope:[main] from main::@23 - [41] phi() - [42] call keyboard_event_get - [43] (byte) keyboard_event_get::return#3 ← (byte) keyboard_event_get::return#2 + [40] phi() + [41] call keyboard_event_get + [42] (byte) keyboard_event_get::return#3 ← (byte) keyboard_event_get::return#2 to:main::@25 main::@25: scope:[main] from main::@24 - [44] (byte) main::key_event#0 ← (byte) keyboard_event_get::return#3 - [45] (byte) play_move_down::key_event#0 ← (byte) main::key_event#0 - [46] call play_move_down - [47] (byte) play_move_down::return#3 ← (byte) play_move_down::return#2 + [43] (byte) main::key_event#0 ← (byte) keyboard_event_get::return#3 + [44] (byte) play_move_down::key_event#0 ← (byte) main::key_event#0 + [45] call play_move_down + [46] (byte) play_move_down::return#3 ← (byte) play_move_down::return#2 to:main::@26 main::@26: scope:[main] from main::@25 - [48] (byte~) main::$12 ← (byte) play_move_down::return#3 - [49] (byte) main::render#1 ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte~) main::$12 - [50] (byte) play_move_leftright::key_event#0 ← (byte) main::key_event#0 - [51] call play_move_leftright - [52] (byte) play_move_leftright::return#4 ← (byte) play_move_leftright::return#1 + [47] (byte~) main::$12 ← (byte) play_move_down::return#3 + [48] (byte) main::render#1 ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte~) main::$12 + [49] (byte) play_move_leftright::key_event#0 ← (byte) main::key_event#0 + [50] call play_move_leftright + [51] (byte) play_move_leftright::return#4 ← (byte) play_move_leftright::return#1 to:main::@27 main::@27: scope:[main] from main::@26 - [53] (byte~) main::$13 ← (byte) play_move_leftright::return#4 - [54] (byte) main::render#2 ← (byte) main::render#1 + (byte~) main::$13 - [55] (byte) play_move_rotate::key_event#0 ← (byte) main::key_event#0 - [56] call play_move_rotate - [57] (byte) play_move_rotate::return#4 ← (byte) play_move_rotate::return#1 + [52] (byte~) main::$13 ← (byte) play_move_leftright::return#4 + [53] (byte) main::render#2 ← (byte) main::render#1 + (byte~) main::$13 + [54] (byte) play_move_rotate::key_event#0 ← (byte) main::key_event#0 + [55] call play_move_rotate + [56] (byte) play_move_rotate::return#4 ← (byte) play_move_rotate::return#1 to:main::@28 main::@28: scope:[main] from main::@27 - [58] (byte~) main::$14 ← (byte) play_move_rotate::return#4 - [59] (byte) main::render#3 ← (byte) main::render#2 + (byte~) main::$14 - [60] if((byte) main::render#3==(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@1 + [57] (byte~) main::$14 ← (byte) play_move_rotate::return#4 + [58] (byte) main::render#3 ← (byte) main::render#2 + (byte~) main::$14 + [59] if((byte) main::render#3==(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@1 to:main::@13 main::@13: scope:[main] from main::@28 - [61] (byte~) render_screen_render#63 ← (byte) render_screen_render#16 - [62] call render_playfield + [60] (byte~) render_screen_render#63 ← (byte) render_screen_render#16 + [61] call render_playfield to:main::@29 main::@29: scope:[main] from main::@13 - [63] (byte~) current_ypos#85 ← (byte) current_ypos#13 - [64] (byte~) render_screen_render#62 ← (byte) render_screen_render#16 - [65] (byte~) current_xpos#111 ← (byte) current_xpos#19 - [66] (byte*~) current_piece_gfx#101 ← (byte*) current_piece_gfx#14 - [67] (byte~) current_piece_char#89 ← (byte) current_piece_char#1 - [68] call render_current + [62] (byte~) current_ypos#85 ← (byte) current_ypos#13 + [63] (byte~) render_screen_render#62 ← (byte) render_screen_render#16 + [64] (byte~) current_xpos#111 ← (byte) current_xpos#19 + [65] (byte*~) current_piece_gfx#101 ← (byte*) current_piece_gfx#14 + [66] (byte~) current_piece_char#89 ← (byte) current_piece_char#1 + [67] call render_current to:main::@30 main::@30: scope:[main] from main::@29 - [69] phi() - [70] call render_screen_swap + [68] phi() + [69] call render_screen_swap to:main::@1 render_screen_swap: scope:[render_screen_swap] from main::@30 - [71] (byte) render_screen_render#11 ← (byte) render_screen_render#16 ^ (byte/signed byte/word/signed word/dword/signed dword) 64 - [72] (byte) render_screen_show#13 ← (byte) render_screen_show#16 ^ (byte/signed byte/word/signed word/dword/signed dword) 64 + [70] (byte) render_screen_render#11 ← (byte) render_screen_render#16 ^ (byte/signed byte/word/signed word/dword/signed dword) 64 + [71] (byte) render_screen_show#13 ← (byte) render_screen_show#16 ^ (byte/signed byte/word/signed word/dword/signed dword) 64 to:render_screen_swap::@return render_screen_swap::@return: scope:[render_screen_swap] from render_screen_swap - [73] return + [72] return to:@return render_current: scope:[render_current] from main::@21 main::@29 - [74] (byte) current_piece_char#63 ← phi( main::@21/(byte~) current_piece_char#88 main::@29/(byte~) current_piece_char#89 ) - [74] (byte*) current_piece_gfx#53 ← phi( main::@21/(byte*~) current_piece_gfx#100 main::@29/(byte*~) current_piece_gfx#101 ) - [74] (byte) current_xpos#47 ← phi( main::@21/(byte~) current_xpos#110 main::@29/(byte~) current_xpos#111 ) - [74] (byte) render_screen_render#28 ← phi( main::@21/(byte/signed byte/word/signed word/dword/signed dword) 64 main::@29/(byte~) render_screen_render#62 ) - [74] (byte) current_ypos#9 ← phi( main::@21/(byte~) current_ypos#84 main::@29/(byte~) current_ypos#85 ) - [75] (byte) render_current::ypos2#0 ← (byte) current_ypos#9 << (byte/signed byte/word/signed word/dword/signed dword) 1 + [73] (byte) current_piece_char#63 ← phi( main::@21/(byte~) current_piece_char#88 main::@29/(byte~) current_piece_char#89 ) + [73] (byte*) current_piece_gfx#53 ← phi( main::@21/(byte*~) current_piece_gfx#100 main::@29/(byte*~) current_piece_gfx#101 ) + [73] (byte) current_xpos#47 ← phi( main::@21/(byte~) current_xpos#110 main::@29/(byte~) current_xpos#111 ) + [73] (byte) render_screen_render#28 ← phi( main::@21/(byte/signed byte/word/signed word/dword/signed dword) 64 main::@29/(byte~) render_screen_render#62 ) + [73] (byte) current_ypos#9 ← phi( main::@21/(byte~) current_ypos#84 main::@29/(byte~) current_ypos#85 ) + [74] (byte) render_current::ypos2#0 ← (byte) current_ypos#9 << (byte/signed byte/word/signed word/dword/signed dword) 1 to:render_current::@1 render_current::@1: scope:[render_current] from render_current render_current::@3 - [76] (byte) render_current::l#4 ← phi( render_current/(byte/signed byte/word/signed word/dword/signed dword) 0 render_current::@3/(byte) render_current::l#1 ) - [76] (byte) render_current::i#3 ← phi( render_current/(byte/signed byte/word/signed word/dword/signed dword) 0 render_current::@3/(byte) render_current::i#8 ) - [76] (byte) render_current::ypos2#2 ← phi( render_current/(byte) render_current::ypos2#0 render_current::@3/(byte) render_current::ypos2#1 ) - [77] if((byte) render_current::ypos2#2>(byte/signed byte/word/signed word/dword/signed dword) 2) goto render_current::@13 + [75] (byte) render_current::l#4 ← phi( render_current/(byte/signed byte/word/signed word/dword/signed dword) 0 render_current::@3/(byte) render_current::l#1 ) + [75] (byte) render_current::i#3 ← phi( render_current/(byte/signed byte/word/signed word/dword/signed dword) 0 render_current::@3/(byte) render_current::i#8 ) + [75] (byte) render_current::ypos2#2 ← phi( render_current/(byte) render_current::ypos2#0 render_current::@3/(byte) render_current::ypos2#1 ) + [76] if((byte) render_current::ypos2#2>(byte/signed byte/word/signed word/dword/signed dword) 2) goto render_current::@13 to:render_current::@7 render_current::@7: scope:[render_current] from render_current::@1 render_current::@13 - [78] (byte) render_current::i#1 ← (byte) render_current::i#3 + (byte/signed byte/word/signed word/dword/signed dword) 4 + [77] (byte) render_current::i#1 ← (byte) render_current::i#3 + (byte/signed byte/word/signed word/dword/signed dword) 4 to:render_current::@3 render_current::@3: scope:[render_current] from render_current::@5 render_current::@7 - [79] (byte) render_current::i#8 ← phi( render_current::@5/(byte) render_current::i#10 render_current::@7/(byte) render_current::i#1 ) - [80] (byte) render_current::ypos2#1 ← (byte) render_current::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 - [81] (byte) render_current::l#1 ← ++ (byte) render_current::l#4 - [82] if((byte) render_current::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_current::@1 + [78] (byte) render_current::i#8 ← phi( render_current::@5/(byte) render_current::i#10 render_current::@7/(byte) render_current::i#1 ) + [79] (byte) render_current::ypos2#1 ← (byte) render_current::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 + [80] (byte) render_current::l#1 ← ++ (byte) render_current::l#4 + [81] if((byte) render_current::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_current::@1 to:render_current::@return render_current::@return: scope:[render_current] from render_current::@3 - [83] return + [82] return to:@return render_current::@13: scope:[render_current] from render_current::@1 - [84] if((byte) render_current::ypos2#2<(byte/signed byte/word/signed word/dword/signed dword) 2*(const byte) PLAYFIELD_LINES#0) goto render_current::@2 + [83] if((byte) render_current::ypos2#2<(byte/signed byte/word/signed word/dword/signed dword) 2*(const byte) PLAYFIELD_LINES#0) goto render_current::@2 to:render_current::@7 render_current::@2: scope:[render_current] from render_current::@13 - [85] (byte~) render_current::$5 ← (byte) render_screen_render#28 + (byte) render_current::ypos2#2 - [86] (byte*) render_current::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) screen_lines_1#0 + (byte~) render_current::$5) - [87] (byte) render_current::xpos#0 ← (byte) current_xpos#47 + [84] (byte~) render_current::$5 ← (byte) render_screen_render#28 + (byte) render_current::ypos2#2 + [85] (byte*) render_current::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) screen_lines_1#0 + (byte~) render_current::$5) + [86] (byte) render_current::xpos#0 ← (byte) current_xpos#47 to:render_current::@4 render_current::@4: scope:[render_current] from render_current::@2 render_current::@5 - [88] (byte) render_current::c#2 ← phi( render_current::@2/(byte/signed byte/word/signed word/dword/signed dword) 0 render_current::@5/(byte) render_current::c#1 ) - [88] (byte) render_current::xpos#2 ← phi( render_current::@2/(byte) render_current::xpos#0 render_current::@5/(byte) render_current::xpos#1 ) - [88] (byte) render_current::i#4 ← phi( render_current::@2/(byte) render_current::i#3 render_current::@5/(byte) render_current::i#10 ) - [89] (byte) render_current::current_cell#0 ← *((byte*) current_piece_gfx#53 + (byte) render_current::i#4) - [90] (byte) render_current::i#10 ← ++ (byte) render_current::i#4 - [91] if((byte) render_current::current_cell#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto render_current::@5 + [87] (byte) render_current::c#2 ← phi( render_current::@2/(byte/signed byte/word/signed word/dword/signed dword) 0 render_current::@5/(byte) render_current::c#1 ) + [87] (byte) render_current::xpos#2 ← phi( render_current::@2/(byte) render_current::xpos#0 render_current::@5/(byte) render_current::xpos#1 ) + [87] (byte) render_current::i#4 ← phi( render_current::@2/(byte) render_current::i#3 render_current::@5/(byte) render_current::i#10 ) + [88] (byte) render_current::current_cell#0 ← *((byte*) current_piece_gfx#53 + (byte) render_current::i#4) + [89] (byte) render_current::i#10 ← ++ (byte) render_current::i#4 + [90] if((byte) render_current::current_cell#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto render_current::@5 to:render_current::@9 render_current::@9: scope:[render_current] from render_current::@4 - [92] if((byte) render_current::xpos#2>=(const byte) PLAYFIELD_COLS#0) goto render_current::@5 + [91] if((byte) render_current::xpos#2>=(const byte) PLAYFIELD_COLS#0) goto render_current::@5 to:render_current::@10 render_current::@10: scope:[render_current] from render_current::@9 - [93] *((byte*) render_current::screen_line#0 + (byte) render_current::xpos#2) ← (byte) current_piece_char#63 + [92] *((byte*) render_current::screen_line#0 + (byte) render_current::xpos#2) ← (byte) current_piece_char#63 to:render_current::@5 render_current::@5: scope:[render_current] from render_current::@10 render_current::@4 render_current::@9 - [94] (byte) render_current::xpos#1 ← ++ (byte) render_current::xpos#2 - [95] (byte) render_current::c#1 ← ++ (byte) render_current::c#2 - [96] if((byte) render_current::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_current::@4 + [93] (byte) render_current::xpos#1 ← ++ (byte) render_current::xpos#2 + [94] (byte) render_current::c#1 ← ++ (byte) render_current::c#2 + [95] if((byte) render_current::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_current::@4 to:render_current::@3 render_playfield: scope:[render_playfield] from main::@13 main::@20 - [97] (byte) render_screen_render#19 ← phi( main::@13/(byte~) render_screen_render#63 main::@20/(byte/signed byte/word/signed word/dword/signed dword) 64 ) + [96] (byte) render_screen_render#19 ← phi( main::@13/(byte~) render_screen_render#63 main::@20/(byte/signed byte/word/signed word/dword/signed dword) 64 ) to:render_playfield::@1 render_playfield::@1: scope:[render_playfield] from render_playfield render_playfield::@3 - [98] (byte) render_playfield::i#3 ← phi( render_playfield/(const byte) PLAYFIELD_COLS#0*(byte/signed byte/word/signed word/dword/signed dword) 2 render_playfield::@3/(byte) render_playfield::i#1 ) - [98] (byte) render_playfield::l#2 ← phi( render_playfield/(byte/signed byte/word/signed word/dword/signed dword) 2 render_playfield::@3/(byte) render_playfield::l#1 ) - [99] (byte~) render_playfield::$2 ← (byte) render_playfield::l#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 - [100] (byte~) render_playfield::$3 ← (byte) render_screen_render#19 + (byte~) render_playfield::$2 - [101] (byte*) render_playfield::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) screen_lines_1#0 + (byte~) render_playfield::$3) + [97] (byte) render_playfield::i#3 ← phi( render_playfield/(const byte) PLAYFIELD_COLS#0*(byte/signed byte/word/signed word/dword/signed dword) 2 render_playfield::@3/(byte) render_playfield::i#1 ) + [97] (byte) render_playfield::l#2 ← phi( render_playfield/(byte/signed byte/word/signed word/dword/signed dword) 2 render_playfield::@3/(byte) render_playfield::l#1 ) + [98] (byte~) render_playfield::$2 ← (byte) render_playfield::l#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 + [99] (byte~) render_playfield::$3 ← (byte) render_screen_render#19 + (byte~) render_playfield::$2 + [100] (byte*) render_playfield::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) screen_lines_1#0 + (byte~) render_playfield::$3) to:render_playfield::@2 render_playfield::@2: scope:[render_playfield] from render_playfield::@1 render_playfield::@2 - [102] (byte) render_playfield::c#2 ← phi( render_playfield::@1/(byte/signed byte/word/signed word/dword/signed dword) 0 render_playfield::@2/(byte) render_playfield::c#1 ) - [102] (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 ) - [102] (byte) render_playfield::i#2 ← phi( render_playfield::@1/(byte) render_playfield::i#3 render_playfield::@2/(byte) render_playfield::i#1 ) - [103] *((byte*) render_playfield::screen_line#2) ← *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) render_playfield::i#2) - [104] (byte*) render_playfield::screen_line#1 ← ++ (byte*) render_playfield::screen_line#2 - [105] (byte) render_playfield::i#1 ← ++ (byte) render_playfield::i#2 - [106] (byte) render_playfield::c#1 ← ++ (byte) render_playfield::c#2 - [107] if((byte) render_playfield::c#1!=(const byte) PLAYFIELD_COLS#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_playfield::@2 + [101] (byte) render_playfield::c#2 ← phi( render_playfield::@1/(byte/signed byte/word/signed word/dword/signed dword) 0 render_playfield::@2/(byte) render_playfield::c#1 ) + [101] (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 ) + [101] (byte) render_playfield::i#2 ← phi( render_playfield::@1/(byte) render_playfield::i#3 render_playfield::@2/(byte) render_playfield::i#1 ) + [102] *((byte*) render_playfield::screen_line#2) ← *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) render_playfield::i#2) + [103] (byte*) render_playfield::screen_line#1 ← ++ (byte*) render_playfield::screen_line#2 + [104] (byte) render_playfield::i#1 ← ++ (byte) render_playfield::i#2 + [105] (byte) render_playfield::c#1 ← ++ (byte) render_playfield::c#2 + [106] if((byte) render_playfield::c#1!=(const byte) PLAYFIELD_COLS#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_playfield::@2 to:render_playfield::@3 render_playfield::@3: scope:[render_playfield] from render_playfield::@2 - [108] (byte) render_playfield::l#1 ← ++ (byte) render_playfield::l#2 - [109] if((byte) render_playfield::l#1!=(const byte) PLAYFIELD_LINES#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_playfield::@1 + [107] (byte) render_playfield::l#1 ← ++ (byte) render_playfield::l#2 + [108] if((byte) render_playfield::l#1!=(const byte) PLAYFIELD_LINES#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_playfield::@1 to:render_playfield::@return render_playfield::@return: scope:[render_playfield] from render_playfield::@3 - [110] return + [109] return to:@return play_move_rotate: scope:[play_move_rotate] from main::@27 - [111] if((byte) play_move_rotate::key_event#0==(const byte) KEY_Z#0) goto play_move_rotate::@1 + [110] if((byte) play_move_rotate::key_event#0==(const byte) KEY_Z#0) goto play_move_rotate::@1 to:play_move_rotate::@6 play_move_rotate::@6: scope:[play_move_rotate] from play_move_rotate - [112] if((byte) play_move_rotate::key_event#0==(const byte) KEY_X#0) goto play_move_rotate::@2 + [111] if((byte) play_move_rotate::key_event#0==(const byte) KEY_X#0) goto play_move_rotate::@2 to:play_move_rotate::@return play_move_rotate::@return: scope:[play_move_rotate] from play_move_rotate::@11 play_move_rotate::@14 play_move_rotate::@6 - [113] (byte*) current_piece_gfx#14 ← phi( play_move_rotate::@11/(byte*) current_piece_gfx#3 play_move_rotate::@14/(byte*) current_piece_gfx#1 play_move_rotate::@6/(byte*) current_piece_gfx#1 ) - [113] (byte) current_orientation#19 ← phi( play_move_rotate::@11/(byte) current_orientation#4 play_move_rotate::@14/(byte) current_orientation#14 play_move_rotate::@6/(byte) current_orientation#14 ) - [113] (byte) play_move_rotate::return#1 ← phi( play_move_rotate::@11/(byte/signed byte/word/signed word/dword/signed dword) 1 play_move_rotate::@14/(byte/signed byte/word/signed word/dword/signed dword) 0 play_move_rotate::@6/(byte/signed byte/word/signed word/dword/signed dword) 0 ) - [114] return + [112] (byte*) current_piece_gfx#14 ← phi( play_move_rotate::@11/(byte*) current_piece_gfx#3 play_move_rotate::@14/(byte*) current_piece_gfx#1 play_move_rotate::@6/(byte*) current_piece_gfx#1 ) + [112] (byte) current_orientation#19 ← phi( play_move_rotate::@11/(byte) current_orientation#4 play_move_rotate::@14/(byte) current_orientation#14 play_move_rotate::@6/(byte) current_orientation#14 ) + [112] (byte) play_move_rotate::return#1 ← phi( play_move_rotate::@11/(byte/signed byte/word/signed word/dword/signed dword) 1 play_move_rotate::@14/(byte/signed byte/word/signed word/dword/signed dword) 0 play_move_rotate::@6/(byte/signed byte/word/signed word/dword/signed dword) 0 ) + [113] return to:@return play_move_rotate::@2: scope:[play_move_rotate] from play_move_rotate::@6 - [115] (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 ← (byte) current_orientation#14 + (byte/signed byte/word/signed word/dword/signed dword) 16 - [116] (byte) play_move_rotate::orientation#2 ← (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 & (byte/signed byte/word/signed word/dword/signed dword) 63 + [114] (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 ← (byte) current_orientation#14 + (byte/signed byte/word/signed word/dword/signed dword) 16 + [115] (byte) play_move_rotate::orientation#2 ← (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 & (byte/signed byte/word/signed word/dword/signed dword) 63 to:play_move_rotate::@4 play_move_rotate::@4: scope:[play_move_rotate] from play_move_rotate::@1 play_move_rotate::@2 - [117] (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 ) - [118] (byte) play_collision::xpos#3 ← (byte) current_xpos#19 - [119] (byte) play_collision::ypos#3 ← (byte) current_ypos#13 - [120] (byte) play_collision::orientation#3 ← (byte) play_move_rotate::orientation#3 - [121] (byte*~) current_piece#77 ← (byte*) current_piece#10 - [122] call play_collision - [123] (byte) play_collision::return#13 ← (byte) play_collision::return#14 + [116] (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 ) + [117] (byte) play_collision::xpos#3 ← (byte) current_xpos#19 + [118] (byte) play_collision::ypos#3 ← (byte) current_ypos#13 + [119] (byte) play_collision::orientation#3 ← (byte) play_move_rotate::orientation#3 + [120] (byte*~) current_piece#77 ← (byte*) current_piece#10 + [121] call play_collision + [122] (byte) play_collision::return#13 ← (byte) play_collision::return#14 to:play_move_rotate::@14 play_move_rotate::@14: scope:[play_move_rotate] from play_move_rotate::@4 - [124] (byte~) play_move_rotate::$6 ← (byte) play_collision::return#13 - [125] if((byte~) play_move_rotate::$6!=(const byte) COLLISION_NONE#0) goto play_move_rotate::@return + [123] (byte~) play_move_rotate::$6 ← (byte) play_collision::return#13 + [124] if((byte~) play_move_rotate::$6!=(const byte) COLLISION_NONE#0) goto play_move_rotate::@return to:play_move_rotate::@11 play_move_rotate::@11: scope:[play_move_rotate] from play_move_rotate::@14 - [126] (byte) current_orientation#4 ← (byte) play_move_rotate::orientation#3 - [127] (byte*) current_piece_gfx#3 ← (byte*) current_piece#10 + (byte) current_orientation#4 + [125] (byte) current_orientation#4 ← (byte) play_move_rotate::orientation#3 + [126] (byte*) current_piece_gfx#3 ← (byte*) current_piece#10 + (byte) current_orientation#4 to:play_move_rotate::@return play_move_rotate::@1: scope:[play_move_rotate] from play_move_rotate - [128] (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 ← (byte) current_orientation#14 - (byte/signed byte/word/signed word/dword/signed dword) 16 - [129] (byte) play_move_rotate::orientation#1 ← (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 & (byte/signed byte/word/signed word/dword/signed dword) 63 + [127] (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 ← (byte) current_orientation#14 - (byte/signed byte/word/signed word/dword/signed dword) 16 + [128] (byte) play_move_rotate::orientation#1 ← (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 & (byte/signed byte/word/signed word/dword/signed dword) 63 to:play_move_rotate::@4 play_collision: scope:[play_collision] from play_move_down::@12 play_move_leftright::@1 play_move_leftright::@7 play_move_rotate::@4 - [130] (byte) play_collision::xpos#5 ← phi( play_move_down::@12/(byte) play_collision::xpos#0 play_move_leftright::@1/(byte) play_collision::xpos#1 play_move_leftright::@7/(byte) play_collision::xpos#2 play_move_rotate::@4/(byte) play_collision::xpos#3 ) - [130] (byte) play_collision::ypos#4 ← phi( play_move_down::@12/(byte) play_collision::ypos#0 play_move_leftright::@1/(byte) play_collision::ypos#1 play_move_leftright::@7/(byte) play_collision::ypos#2 play_move_rotate::@4/(byte) play_collision::ypos#3 ) - [130] (byte) play_collision::orientation#4 ← phi( play_move_down::@12/(byte) play_collision::orientation#0 play_move_leftright::@1/(byte) play_collision::orientation#1 play_move_leftright::@7/(byte) play_collision::orientation#2 play_move_rotate::@4/(byte) play_collision::orientation#3 ) - [130] (byte*) current_piece#12 ← phi( play_move_down::@12/(byte*~) current_piece#74 play_move_leftright::@1/(byte*~) current_piece#75 play_move_leftright::@7/(byte*~) current_piece#76 play_move_rotate::@4/(byte*~) current_piece#77 ) - [131] (byte*) play_collision::piece_gfx#0 ← (byte*) current_piece#12 + (byte) play_collision::orientation#4 - [132] (byte) play_collision::ypos2#0 ← (byte) play_collision::ypos#4 << (byte/signed byte/word/signed word/dword/signed dword) 1 + [129] (byte) play_collision::xpos#5 ← phi( play_move_down::@12/(byte) play_collision::xpos#0 play_move_leftright::@1/(byte) play_collision::xpos#1 play_move_leftright::@7/(byte) play_collision::xpos#2 play_move_rotate::@4/(byte) play_collision::xpos#3 ) + [129] (byte) play_collision::ypos#4 ← phi( play_move_down::@12/(byte) play_collision::ypos#0 play_move_leftright::@1/(byte) play_collision::ypos#1 play_move_leftright::@7/(byte) play_collision::ypos#2 play_move_rotate::@4/(byte) play_collision::ypos#3 ) + [129] (byte) play_collision::orientation#4 ← phi( play_move_down::@12/(byte) play_collision::orientation#0 play_move_leftright::@1/(byte) play_collision::orientation#1 play_move_leftright::@7/(byte) play_collision::orientation#2 play_move_rotate::@4/(byte) play_collision::orientation#3 ) + [129] (byte*) current_piece#12 ← phi( play_move_down::@12/(byte*~) current_piece#74 play_move_leftright::@1/(byte*~) current_piece#75 play_move_leftright::@7/(byte*~) current_piece#76 play_move_rotate::@4/(byte*~) current_piece#77 ) + [130] (byte*) play_collision::piece_gfx#0 ← (byte*) current_piece#12 + (byte) play_collision::orientation#4 + [131] (byte) play_collision::ypos2#0 ← (byte) play_collision::ypos#4 << (byte/signed byte/word/signed word/dword/signed dword) 1 to:play_collision::@1 play_collision::@1: scope:[play_collision] from play_collision play_collision::@20 - [133] (byte) play_collision::l#6 ← phi( play_collision/(byte/signed byte/word/signed word/dword/signed dword) 0 play_collision::@20/(byte) play_collision::l#1 ) - [133] (byte) play_collision::i#3 ← phi( play_collision/(byte/signed byte/word/signed word/dword/signed dword) 0 play_collision::@20/(byte~) play_collision::i#11 ) - [133] (byte) play_collision::ypos2#2 ← phi( play_collision/(byte) play_collision::ypos2#0 play_collision::@20/(byte) play_collision::ypos2#1 ) - [134] (byte*) play_collision::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) play_collision::ypos2#2) - [135] (byte~) play_collision::col#9 ← (byte) play_collision::xpos#5 + [132] (byte) play_collision::l#6 ← phi( play_collision/(byte/signed byte/word/signed word/dword/signed dword) 0 play_collision::@20/(byte) play_collision::l#1 ) + [132] (byte) play_collision::i#3 ← phi( play_collision/(byte/signed byte/word/signed word/dword/signed dword) 0 play_collision::@20/(byte~) play_collision::i#11 ) + [132] (byte) play_collision::ypos2#2 ← phi( play_collision/(byte) play_collision::ypos2#0 play_collision::@20/(byte) play_collision::ypos2#1 ) + [133] (byte*) play_collision::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) play_collision::ypos2#2) + [134] (byte~) play_collision::col#9 ← (byte) play_collision::xpos#5 to:play_collision::@2 play_collision::@2: scope:[play_collision] from play_collision::@1 play_collision::@21 - [136] (byte) play_collision::c#2 ← phi( play_collision::@1/(byte/signed byte/word/signed word/dword/signed dword) 0 play_collision::@21/(byte) play_collision::c#1 ) - [136] (byte) play_collision::col#2 ← phi( play_collision::@1/(byte~) play_collision::col#9 play_collision::@21/(byte) play_collision::col#1 ) - [136] (byte) play_collision::i#2 ← phi( play_collision::@1/(byte) play_collision::i#3 play_collision::@21/(byte~) play_collision::i#13 ) - [137] (byte) play_collision::i#1 ← ++ (byte) play_collision::i#2 - [138] if(*((byte*) play_collision::piece_gfx#0 + (byte) play_collision::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_collision::@3 + [135] (byte) play_collision::c#2 ← phi( play_collision::@1/(byte/signed byte/word/signed word/dword/signed dword) 0 play_collision::@21/(byte) play_collision::c#1 ) + [135] (byte) play_collision::col#2 ← phi( play_collision::@1/(byte~) play_collision::col#9 play_collision::@21/(byte) play_collision::col#1 ) + [135] (byte) play_collision::i#2 ← phi( play_collision::@1/(byte) play_collision::i#3 play_collision::@21/(byte~) play_collision::i#13 ) + [136] (byte) play_collision::i#1 ← ++ (byte) play_collision::i#2 + [137] if(*((byte*) play_collision::piece_gfx#0 + (byte) play_collision::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_collision::@3 to:play_collision::@8 play_collision::@8: scope:[play_collision] from play_collision::@2 - [139] if((byte) play_collision::ypos2#2<(byte/signed byte/word/signed word/dword/signed dword) 2*(const byte) PLAYFIELD_LINES#0) goto play_collision::@4 + [138] if((byte) play_collision::ypos2#2<(byte/signed byte/word/signed word/dword/signed dword) 2*(const byte) PLAYFIELD_LINES#0) goto play_collision::@4 to:play_collision::@return play_collision::@return: scope:[play_collision] from play_collision::@17 play_collision::@4 play_collision::@5 play_collision::@6 play_collision::@8 - [140] (byte) play_collision::return#14 ← phi( play_collision::@4/(const byte) COLLISION_LEFT#0 play_collision::@5/(const byte) COLLISION_RIGHT#0 play_collision::@6/(const byte) COLLISION_PLAYFIELD#0 play_collision::@17/(const byte) COLLISION_NONE#0 play_collision::@8/(const byte) COLLISION_BOTTOM#0 ) - [141] return + [139] (byte) play_collision::return#14 ← phi( play_collision::@4/(const byte) COLLISION_LEFT#0 play_collision::@5/(const byte) COLLISION_RIGHT#0 play_collision::@6/(const byte) COLLISION_PLAYFIELD#0 play_collision::@17/(const byte) COLLISION_NONE#0 play_collision::@8/(const byte) COLLISION_BOTTOM#0 ) + [140] return to:@return play_collision::@4: scope:[play_collision] from play_collision::@8 - [142] (byte~) play_collision::$7 ← (byte) play_collision::col#2 & (byte/word/signed word/dword/signed dword) 128 - [143] if((byte~) play_collision::$7==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_collision::@5 + [141] (byte~) play_collision::$7 ← (byte) play_collision::col#2 & (byte/word/signed word/dword/signed dword) 128 + [142] if((byte~) play_collision::$7==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_collision::@5 to:play_collision::@return play_collision::@5: scope:[play_collision] from play_collision::@4 - [144] if((byte) play_collision::col#2<(const byte) PLAYFIELD_COLS#0) goto play_collision::@6 + [143] if((byte) play_collision::col#2<(const byte) PLAYFIELD_COLS#0) goto play_collision::@6 to:play_collision::@return play_collision::@6: scope:[play_collision] from play_collision::@5 - [145] if(*((byte*) play_collision::playfield_line#0 + (byte) play_collision::col#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_collision::@3 + [144] if(*((byte*) play_collision::playfield_line#0 + (byte) play_collision::col#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_collision::@3 to:play_collision::@return play_collision::@3: scope:[play_collision] from play_collision::@2 play_collision::@6 - [146] (byte) play_collision::col#1 ← ++ (byte) play_collision::col#2 - [147] (byte) play_collision::c#1 ← ++ (byte) play_collision::c#2 - [148] if((byte) play_collision::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto play_collision::@21 + [145] (byte) play_collision::col#1 ← ++ (byte) play_collision::col#2 + [146] (byte) play_collision::c#1 ← ++ (byte) play_collision::c#2 + [147] if((byte) play_collision::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto play_collision::@21 to:play_collision::@17 play_collision::@17: scope:[play_collision] from play_collision::@3 - [149] (byte) play_collision::ypos2#1 ← (byte) play_collision::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 - [150] (byte) play_collision::l#1 ← ++ (byte) play_collision::l#6 - [151] if((byte) play_collision::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto play_collision::@20 + [148] (byte) play_collision::ypos2#1 ← (byte) play_collision::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 + [149] (byte) play_collision::l#1 ← ++ (byte) play_collision::l#6 + [150] if((byte) play_collision::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto play_collision::@20 to:play_collision::@return play_collision::@20: scope:[play_collision] from play_collision::@17 - [152] (byte~) play_collision::i#11 ← (byte) play_collision::i#1 + [151] (byte~) play_collision::i#11 ← (byte) play_collision::i#1 to:play_collision::@1 play_collision::@21: scope:[play_collision] from play_collision::@3 - [153] (byte~) play_collision::i#13 ← (byte) play_collision::i#1 + [152] (byte~) play_collision::i#13 ← (byte) play_collision::i#1 to:play_collision::@2 play_move_leftright: scope:[play_move_leftright] from main::@26 - [154] if((byte) play_move_leftright::key_event#0==(const byte) KEY_COMMA#0) goto play_move_leftright::@1 + [153] if((byte) play_move_leftright::key_event#0==(const byte) KEY_COMMA#0) goto play_move_leftright::@1 to:play_move_leftright::@6 play_move_leftright::@6: scope:[play_move_leftright] from play_move_leftright - [155] if((byte) play_move_leftright::key_event#0!=(const byte) KEY_DOT#0) goto play_move_leftright::@return + [154] if((byte) play_move_leftright::key_event#0!=(const byte) KEY_DOT#0) goto play_move_leftright::@return to:play_move_leftright::@7 play_move_leftright::@7: scope:[play_move_leftright] from play_move_leftright::@6 - [156] (byte) play_collision::xpos#2 ← (byte) current_xpos#1 + (byte/signed byte/word/signed word/dword/signed dword) 1 - [157] (byte) play_collision::ypos#2 ← (byte) current_ypos#13 - [158] (byte) play_collision::orientation#2 ← (byte) current_orientation#14 - [159] (byte*~) current_piece#76 ← (byte*) current_piece#10 - [160] call play_collision - [161] (byte) play_collision::return#12 ← (byte) play_collision::return#14 + [155] (byte) play_collision::xpos#2 ← (byte) current_xpos#1 + (byte/signed byte/word/signed word/dword/signed dword) 1 + [156] (byte) play_collision::ypos#2 ← (byte) current_ypos#13 + [157] (byte) play_collision::orientation#2 ← (byte) current_orientation#14 + [158] (byte*~) current_piece#76 ← (byte*) current_piece#10 + [159] call play_collision + [160] (byte) play_collision::return#12 ← (byte) play_collision::return#14 to:play_move_leftright::@15 play_move_leftright::@15: scope:[play_move_leftright] from play_move_leftright::@7 - [162] (byte~) play_move_leftright::$4 ← (byte) play_collision::return#12 - [163] if((byte~) play_move_leftright::$4!=(const byte) COLLISION_NONE#0) goto play_move_leftright::@return + [161] (byte~) play_move_leftright::$4 ← (byte) play_collision::return#12 + [162] if((byte~) play_move_leftright::$4!=(const byte) COLLISION_NONE#0) goto play_move_leftright::@return to:play_move_leftright::@8 play_move_leftright::@8: scope:[play_move_leftright] from play_move_leftright::@15 - [164] (byte) current_xpos#2 ← ++ (byte) current_xpos#1 + [163] (byte) current_xpos#2 ← ++ (byte) current_xpos#1 to:play_move_leftright::@return play_move_leftright::@return: scope:[play_move_leftright] from play_move_leftright::@11 play_move_leftright::@14 play_move_leftright::@15 play_move_leftright::@6 play_move_leftright::@8 - [165] (byte) current_xpos#19 ← phi( play_move_leftright::@11/(byte) current_xpos#4 play_move_leftright::@15/(byte) current_xpos#1 play_move_leftright::@8/(byte) current_xpos#2 play_move_leftright::@14/(byte) current_xpos#1 play_move_leftright::@6/(byte) current_xpos#1 ) - [165] (byte) play_move_leftright::return#1 ← phi( play_move_leftright::@11/(byte/signed byte/word/signed word/dword/signed dword) 1 play_move_leftright::@15/(byte/signed byte/word/signed word/dword/signed dword) 0 play_move_leftright::@8/(byte/signed byte/word/signed word/dword/signed dword) 1 play_move_leftright::@14/(byte/signed byte/word/signed word/dword/signed dword) 0 play_move_leftright::@6/(byte/signed byte/word/signed word/dword/signed dword) 0 ) - [166] return + [164] (byte) current_xpos#19 ← phi( play_move_leftright::@11/(byte) current_xpos#4 play_move_leftright::@15/(byte) current_xpos#1 play_move_leftright::@8/(byte) current_xpos#2 play_move_leftright::@14/(byte) current_xpos#1 play_move_leftright::@6/(byte) current_xpos#1 ) + [164] (byte) play_move_leftright::return#1 ← phi( play_move_leftright::@11/(byte/signed byte/word/signed word/dword/signed dword) 1 play_move_leftright::@15/(byte/signed byte/word/signed word/dword/signed dword) 0 play_move_leftright::@8/(byte/signed byte/word/signed word/dword/signed dword) 1 play_move_leftright::@14/(byte/signed byte/word/signed word/dword/signed dword) 0 play_move_leftright::@6/(byte/signed byte/word/signed word/dword/signed dword) 0 ) + [165] return to:@return play_move_leftright::@1: scope:[play_move_leftright] from play_move_leftright - [167] (byte) play_collision::xpos#1 ← (byte) current_xpos#1 - (byte/signed byte/word/signed word/dword/signed dword) 1 - [168] (byte) play_collision::ypos#1 ← (byte) current_ypos#13 - [169] (byte) play_collision::orientation#1 ← (byte) current_orientation#14 - [170] (byte*~) current_piece#75 ← (byte*) current_piece#10 - [171] call play_collision - [172] (byte) play_collision::return#1 ← (byte) play_collision::return#14 + [166] (byte) play_collision::xpos#1 ← (byte) current_xpos#1 - (byte/signed byte/word/signed word/dword/signed dword) 1 + [167] (byte) play_collision::ypos#1 ← (byte) current_ypos#13 + [168] (byte) play_collision::orientation#1 ← (byte) current_orientation#14 + [169] (byte*~) current_piece#75 ← (byte*) current_piece#10 + [170] call play_collision + [171] (byte) play_collision::return#1 ← (byte) play_collision::return#14 to:play_move_leftright::@14 play_move_leftright::@14: scope:[play_move_leftright] from play_move_leftright::@1 - [173] (byte~) play_move_leftright::$8 ← (byte) play_collision::return#1 - [174] if((byte~) play_move_leftright::$8!=(const byte) COLLISION_NONE#0) goto play_move_leftright::@return + [172] (byte~) play_move_leftright::$8 ← (byte) play_collision::return#1 + [173] if((byte~) play_move_leftright::$8!=(const byte) COLLISION_NONE#0) goto play_move_leftright::@return to:play_move_leftright::@11 play_move_leftright::@11: scope:[play_move_leftright] from play_move_leftright::@14 - [175] (byte) current_xpos#4 ← -- (byte) current_xpos#1 + [174] (byte) current_xpos#4 ← -- (byte) current_xpos#1 to:play_move_leftright::@return play_move_down: scope:[play_move_down] from main::@25 - [176] (byte) current_movedown_counter#1 ← ++ (byte) current_movedown_counter#12 - [177] if((byte) play_move_down::key_event#0!=(const byte) KEY_SPACE#0) goto play_move_down::@1 + [175] (byte) current_movedown_counter#1 ← ++ (byte) current_movedown_counter#12 + [176] if((byte) play_move_down::key_event#0!=(const byte) KEY_SPACE#0) goto play_move_down::@1 to:play_move_down::@8 play_move_down::@8: scope:[play_move_down] from play_move_down - [178] phi() + [177] phi() to:play_move_down::@1 play_move_down::@1: scope:[play_move_down] from play_move_down play_move_down::@8 - [179] (byte) play_move_down::movedown#10 ← phi( play_move_down/(byte/signed byte/word/signed word/dword/signed dword) 0 play_move_down::@8/(byte/signed byte/word/signed word/dword/signed dword) 1 ) - [180] call keyboard_event_pressed - [181] (byte) keyboard_event_pressed::return#12 ← (byte) keyboard_event_pressed::return#11 + [178] (byte) play_move_down::movedown#10 ← phi( play_move_down/(byte/signed byte/word/signed word/dword/signed dword) 0 play_move_down::@8/(byte/signed byte/word/signed word/dword/signed dword) 1 ) + [179] call keyboard_event_pressed + [180] (byte) keyboard_event_pressed::return#12 ← (byte) keyboard_event_pressed::return#11 to:play_move_down::@17 play_move_down::@17: scope:[play_move_down] from play_move_down::@1 - [182] (byte~) play_move_down::$2 ← (byte) keyboard_event_pressed::return#12 - [183] if((byte~) play_move_down::$2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_move_down::@2 + [181] (byte~) play_move_down::$2 ← (byte) keyboard_event_pressed::return#12 + [182] if((byte~) play_move_down::$2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_move_down::@2 to:play_move_down::@9 play_move_down::@9: scope:[play_move_down] from play_move_down::@17 - [184] if((byte) current_movedown_counter#1<(const byte) current_movedown_fast#0) goto play_move_down::@2 + [183] if((byte) current_movedown_counter#1<(const byte) current_movedown_fast#0) goto play_move_down::@2 to:play_move_down::@10 play_move_down::@10: scope:[play_move_down] from play_move_down::@9 - [185] (byte) play_move_down::movedown#2 ← ++ (byte) play_move_down::movedown#10 + [184] (byte) play_move_down::movedown#2 ← ++ (byte) play_move_down::movedown#10 to:play_move_down::@2 play_move_down::@2: scope:[play_move_down] from play_move_down::@10 play_move_down::@17 play_move_down::@9 - [186] (byte) play_move_down::movedown#7 ← phi( play_move_down::@10/(byte) play_move_down::movedown#2 play_move_down::@17/(byte) play_move_down::movedown#10 play_move_down::@9/(byte) play_move_down::movedown#10 ) - [187] if((byte) current_movedown_counter#1<(const byte) current_movedown_slow#0) goto play_move_down::@4 + [185] (byte) play_move_down::movedown#7 ← phi( play_move_down::@10/(byte) play_move_down::movedown#2 play_move_down::@17/(byte) play_move_down::movedown#10 play_move_down::@9/(byte) play_move_down::movedown#10 ) + [186] if((byte) current_movedown_counter#1<(const byte) current_movedown_slow#0) goto play_move_down::@4 to:play_move_down::@11 play_move_down::@11: scope:[play_move_down] from play_move_down::@2 - [188] (byte) play_move_down::movedown#3 ← ++ (byte) play_move_down::movedown#7 + [187] (byte) play_move_down::movedown#3 ← ++ (byte) play_move_down::movedown#7 to:play_move_down::@4 play_move_down::@4: scope:[play_move_down] from play_move_down::@11 play_move_down::@2 - [189] (byte) play_move_down::movedown#6 ← phi( play_move_down::@11/(byte) play_move_down::movedown#3 play_move_down::@2/(byte) play_move_down::movedown#7 ) - [190] if((byte) play_move_down::movedown#6==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_move_down::@return + [188] (byte) play_move_down::movedown#6 ← phi( play_move_down::@11/(byte) play_move_down::movedown#3 play_move_down::@2/(byte) play_move_down::movedown#7 ) + [189] if((byte) play_move_down::movedown#6==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_move_down::@return to:play_move_down::@12 play_move_down::@12: scope:[play_move_down] from play_move_down::@4 - [191] (byte) play_collision::ypos#0 ← (byte) current_ypos#21 + (byte/signed byte/word/signed word/dword/signed dword) 1 - [192] (byte) play_collision::xpos#0 ← (byte) current_xpos#10 - [193] (byte) play_collision::orientation#0 ← (byte) current_orientation#10 - [194] (byte*~) current_piece#74 ← (byte*) current_piece#16 - [195] call play_collision - [196] (byte) play_collision::return#0 ← (byte) play_collision::return#14 + [190] (byte) play_collision::ypos#0 ← (byte) current_ypos#21 + (byte/signed byte/word/signed word/dword/signed dword) 1 + [191] (byte) play_collision::xpos#0 ← (byte) current_xpos#10 + [192] (byte) play_collision::orientation#0 ← (byte) current_orientation#10 + [193] (byte*~) current_piece#74 ← (byte*) current_piece#16 + [194] call play_collision + [195] (byte) play_collision::return#0 ← (byte) play_collision::return#14 to:play_move_down::@18 play_move_down::@18: scope:[play_move_down] from play_move_down::@12 - [197] (byte~) play_move_down::$12 ← (byte) play_collision::return#0 - [198] if((byte~) play_move_down::$12==(const byte) COLLISION_NONE#0) goto play_move_down::@6 + [196] (byte~) play_move_down::$12 ← (byte) play_collision::return#0 + [197] if((byte~) play_move_down::$12==(const byte) COLLISION_NONE#0) goto play_move_down::@6 to:play_move_down::@13 play_move_down::@13: scope:[play_move_down] from play_move_down::@18 - [199] phi() - [200] call play_lock_current + [198] phi() + [199] call play_lock_current to:play_move_down::@19 play_move_down::@19: scope:[play_move_down] from play_move_down::@13 - [201] phi() - [202] call play_remove_lines + [200] phi() + [201] call play_remove_lines to:play_move_down::@20 play_move_down::@20: scope:[play_move_down] from play_move_down::@19 - [203] phi() - [204] call play_spawn_current - [205] (byte*~) current_piece#78 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) + [202] phi() + [203] call play_spawn_current + [204] (byte*~) current_piece#78 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) to:play_move_down::@7 play_move_down::@7: scope:[play_move_down] from play_move_down::@20 play_move_down::@6 - [206] (byte) current_piece_char#20 ← phi( play_move_down::@20/(byte) current_piece_char#12 play_move_down::@6/(byte) current_piece_char#15 ) - [206] (byte) current_xpos#33 ← phi( play_move_down::@20/(byte) current_xpos#23 play_move_down::@6/(byte) current_xpos#10 ) - [206] (byte*) current_piece_gfx#26 ← phi( play_move_down::@20/(byte*) current_piece_gfx#16 play_move_down::@6/(byte*) current_piece_gfx#20 ) - [206] (byte) current_orientation#29 ← phi( play_move_down::@20/(byte/signed byte/word/signed word/dword/signed dword) 0 play_move_down::@6/(byte) current_orientation#10 ) - [206] (byte*) current_piece#20 ← phi( play_move_down::@20/(byte*~) current_piece#78 play_move_down::@6/(byte*) current_piece#16 ) - [206] (byte) current_ypos#29 ← phi( play_move_down::@20/(byte) current_ypos#18 play_move_down::@6/(byte) current_ypos#0 ) + [205] (byte) current_piece_char#20 ← phi( play_move_down::@20/(byte) current_piece_char#12 play_move_down::@6/(byte) current_piece_char#15 ) + [205] (byte) current_xpos#33 ← phi( play_move_down::@20/(byte) current_xpos#23 play_move_down::@6/(byte) current_xpos#10 ) + [205] (byte*) current_piece_gfx#26 ← phi( play_move_down::@20/(byte*) current_piece_gfx#16 play_move_down::@6/(byte*) current_piece_gfx#20 ) + [205] (byte) current_orientation#29 ← phi( play_move_down::@20/(byte/signed byte/word/signed word/dword/signed dword) 0 play_move_down::@6/(byte) current_orientation#10 ) + [205] (byte*) current_piece#20 ← phi( play_move_down::@20/(byte*~) current_piece#78 play_move_down::@6/(byte*) current_piece#16 ) + [205] (byte) current_ypos#29 ← phi( play_move_down::@20/(byte) current_ypos#18 play_move_down::@6/(byte) current_ypos#0 ) to:play_move_down::@return play_move_down::@return: scope:[play_move_down] from play_move_down::@4 play_move_down::@7 - [207] (byte) current_piece_char#1 ← phi( play_move_down::@4/(byte) current_piece_char#15 play_move_down::@7/(byte) current_piece_char#20 ) - [207] (byte) current_xpos#1 ← phi( play_move_down::@4/(byte) current_xpos#10 play_move_down::@7/(byte) current_xpos#33 ) - [207] (byte*) current_piece_gfx#1 ← phi( play_move_down::@4/(byte*) current_piece_gfx#20 play_move_down::@7/(byte*) current_piece_gfx#26 ) - [207] (byte) current_orientation#14 ← phi( play_move_down::@4/(byte) current_orientation#10 play_move_down::@7/(byte) current_orientation#29 ) - [207] (byte*) current_piece#10 ← phi( play_move_down::@4/(byte*) current_piece#16 play_move_down::@7/(byte*) current_piece#20 ) - [207] (byte) current_ypos#13 ← phi( play_move_down::@4/(byte) current_ypos#21 play_move_down::@7/(byte) current_ypos#29 ) - [207] (byte) current_movedown_counter#10 ← phi( play_move_down::@4/(byte) current_movedown_counter#1 play_move_down::@7/(byte/signed byte/word/signed word/dword/signed dword) 0 ) - [207] (byte) play_move_down::return#2 ← phi( play_move_down::@4/(byte/signed byte/word/signed word/dword/signed dword) 0 play_move_down::@7/(byte/signed byte/word/signed word/dword/signed dword) 1 ) - [208] return + [206] (byte) current_piece_char#1 ← phi( play_move_down::@4/(byte) current_piece_char#15 play_move_down::@7/(byte) current_piece_char#20 ) + [206] (byte) current_xpos#1 ← phi( play_move_down::@4/(byte) current_xpos#10 play_move_down::@7/(byte) current_xpos#33 ) + [206] (byte*) current_piece_gfx#1 ← phi( play_move_down::@4/(byte*) current_piece_gfx#20 play_move_down::@7/(byte*) current_piece_gfx#26 ) + [206] (byte) current_orientation#14 ← phi( play_move_down::@4/(byte) current_orientation#10 play_move_down::@7/(byte) current_orientation#29 ) + [206] (byte*) current_piece#10 ← phi( play_move_down::@4/(byte*) current_piece#16 play_move_down::@7/(byte*) current_piece#20 ) + [206] (byte) current_ypos#13 ← phi( play_move_down::@4/(byte) current_ypos#21 play_move_down::@7/(byte) current_ypos#29 ) + [206] (byte) current_movedown_counter#10 ← phi( play_move_down::@4/(byte) current_movedown_counter#1 play_move_down::@7/(byte/signed byte/word/signed word/dword/signed dword) 0 ) + [206] (byte) play_move_down::return#2 ← phi( play_move_down::@4/(byte/signed byte/word/signed word/dword/signed dword) 0 play_move_down::@7/(byte/signed byte/word/signed word/dword/signed dword) 1 ) + [207] return to:@return play_move_down::@6: scope:[play_move_down] from play_move_down::@18 - [209] (byte) current_ypos#0 ← ++ (byte) current_ypos#21 + [208] (byte) current_ypos#0 ← ++ (byte) current_ypos#21 to:play_move_down::@7 play_spawn_current: scope:[play_spawn_current] from main::@19 play_move_down::@20 - [210] phi() + [209] phi() to:play_spawn_current::@1 play_spawn_current::@1: scope:[play_spawn_current] from play_spawn_current play_spawn_current::@7 - [211] (byte) play_spawn_current::piece_idx#2 ← phi( play_spawn_current/(byte/signed byte/word/signed word/dword/signed dword) 7 play_spawn_current::@7/(byte) play_spawn_current::piece_idx#1 ) - [212] if((byte) play_spawn_current::piece_idx#2==(byte/signed byte/word/signed word/dword/signed dword) 7) goto play_spawn_current::@2 + [210] (byte) play_spawn_current::piece_idx#2 ← phi( play_spawn_current/(byte/signed byte/word/signed word/dword/signed dword) 7 play_spawn_current::@7/(byte) play_spawn_current::piece_idx#1 ) + [211] if((byte) play_spawn_current::piece_idx#2==(byte/signed byte/word/signed word/dword/signed dword) 7) goto play_spawn_current::@2 to:play_spawn_current::@3 play_spawn_current::@3: scope:[play_spawn_current] from play_spawn_current::@1 - [213] (byte~) play_spawn_current::$3 ← (byte) play_spawn_current::piece_idx#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 - [214] (byte*) current_piece_gfx#16 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) + (byte/signed byte/word/signed word/dword/signed dword) 0 - [215] (byte) current_xpos#23 ← *((const byte[]) PIECES_START_X#0 + (byte) play_spawn_current::piece_idx#2) - [216] (byte) current_ypos#18 ← *((const byte[]) PIECES_START_Y#0 + (byte) play_spawn_current::piece_idx#2) - [217] (byte) current_piece_char#12 ← *((const byte[]) PIECES_CHARS#0 + (byte) play_spawn_current::piece_idx#2) + [212] (byte~) play_spawn_current::$3 ← (byte) play_spawn_current::piece_idx#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 + [213] (byte*) current_piece_gfx#16 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) + (byte/signed byte/word/signed word/dword/signed dword) 0 + [214] (byte) current_xpos#23 ← *((const byte[]) PIECES_START_X#0 + (byte) play_spawn_current::piece_idx#2) + [215] (byte) current_ypos#18 ← *((const byte[]) PIECES_START_Y#0 + (byte) play_spawn_current::piece_idx#2) + [216] (byte) current_piece_char#12 ← *((const byte[]) PIECES_CHARS#0 + (byte) play_spawn_current::piece_idx#2) to:play_spawn_current::@return play_spawn_current::@return: scope:[play_spawn_current] from play_spawn_current::@3 - [218] return + [217] return to:@return play_spawn_current::@2: scope:[play_spawn_current] from play_spawn_current::@1 - [219] phi() - [220] call sid_rnd - [221] (byte) sid_rnd::return#2 ← (byte) sid_rnd::return#0 + [218] phi() + [219] call sid_rnd + [220] (byte) sid_rnd::return#2 ← (byte) sid_rnd::return#0 to:play_spawn_current::@7 play_spawn_current::@7: scope:[play_spawn_current] from play_spawn_current::@2 - [222] (byte~) play_spawn_current::$1 ← (byte) sid_rnd::return#2 - [223] (byte) play_spawn_current::piece_idx#1 ← (byte~) play_spawn_current::$1 & (byte/signed byte/word/signed word/dword/signed dword) 7 + [221] (byte~) play_spawn_current::$1 ← (byte) sid_rnd::return#2 + [222] (byte) play_spawn_current::piece_idx#1 ← (byte~) play_spawn_current::$1 & (byte/signed byte/word/signed word/dword/signed dword) 7 to:play_spawn_current::@1 sid_rnd: scope:[sid_rnd] from play_spawn_current::@2 - [224] (byte) sid_rnd::return#0 ← *((const byte*) SID_VOICE3_OSC#0) + [223] (byte) sid_rnd::return#0 ← *((const byte*) SID_VOICE3_OSC#0) to:sid_rnd::@return sid_rnd::@return: scope:[sid_rnd] from sid_rnd - [225] return + [224] return to:@return play_remove_lines: scope:[play_remove_lines] from play_move_down::@19 - [226] phi() + [225] phi() to:play_remove_lines::@1 play_remove_lines::@1: scope:[play_remove_lines] from play_remove_lines play_remove_lines::@4 - [227] (byte) play_remove_lines::y#8 ← phi( play_remove_lines/(byte/signed byte/word/signed word/dword/signed dword) 0 play_remove_lines::@4/(byte) play_remove_lines::y#1 ) - [227] (byte) play_remove_lines::w#12 ← phi( play_remove_lines/(const byte) PLAYFIELD_LINES#0*(const byte) PLAYFIELD_COLS#0-(byte/signed byte/word/signed word/dword/signed dword) 1 play_remove_lines::@4/(byte) play_remove_lines::w#11 ) - [227] (byte) play_remove_lines::r#3 ← phi( play_remove_lines/(const byte) PLAYFIELD_LINES#0*(const byte) PLAYFIELD_COLS#0-(byte/signed byte/word/signed word/dword/signed dword) 1 play_remove_lines::@4/(byte) play_remove_lines::r#1 ) + [226] (byte) play_remove_lines::y#8 ← phi( play_remove_lines/(byte/signed byte/word/signed word/dword/signed dword) 0 play_remove_lines::@4/(byte) play_remove_lines::y#1 ) + [226] (byte) play_remove_lines::w#12 ← phi( play_remove_lines/(const byte) PLAYFIELD_LINES#0*(const byte) PLAYFIELD_COLS#0-(byte/signed byte/word/signed word/dword/signed dword) 1 play_remove_lines::@4/(byte) play_remove_lines::w#11 ) + [226] (byte) play_remove_lines::r#3 ← phi( play_remove_lines/(const byte) PLAYFIELD_LINES#0*(const byte) PLAYFIELD_COLS#0-(byte/signed byte/word/signed word/dword/signed dword) 1 play_remove_lines::@4/(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 - [228] (byte) play_remove_lines::full#4 ← phi( play_remove_lines::@1/(byte/signed byte/word/signed word/dword/signed dword) 1 play_remove_lines::@3/(byte) play_remove_lines::full#2 ) - [228] (byte) play_remove_lines::x#2 ← phi( play_remove_lines::@1/(byte/signed byte/word/signed word/dword/signed dword) 0 play_remove_lines::@3/(byte) play_remove_lines::x#1 ) - [228] (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 ) - [228] (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 ) - [229] (byte) play_remove_lines::c#0 ← *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) play_remove_lines::r#2) - [230] (byte) play_remove_lines::r#1 ← -- (byte) play_remove_lines::r#2 - [231] if((byte) play_remove_lines::c#0!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_remove_lines::@17 + [227] (byte) play_remove_lines::full#4 ← phi( play_remove_lines::@1/(byte/signed byte/word/signed word/dword/signed dword) 1 play_remove_lines::@3/(byte) play_remove_lines::full#2 ) + [227] (byte) play_remove_lines::x#2 ← phi( play_remove_lines::@1/(byte/signed byte/word/signed word/dword/signed dword) 0 play_remove_lines::@3/(byte) play_remove_lines::x#1 ) + [227] (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 ) + [227] (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 ) + [228] (byte) play_remove_lines::c#0 ← *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) play_remove_lines::r#2) + [229] (byte) play_remove_lines::r#1 ← -- (byte) play_remove_lines::r#2 + [230] if((byte) play_remove_lines::c#0!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_remove_lines::@17 to:play_remove_lines::@3 play_remove_lines::@3: scope:[play_remove_lines] from play_remove_lines::@17 play_remove_lines::@2 - [232] (byte) play_remove_lines::full#2 ← phi( play_remove_lines::@17/(byte) play_remove_lines::full#4 play_remove_lines::@2/(byte/signed byte/word/signed word/dword/signed dword) 0 ) - [233] *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) play_remove_lines::w#4) ← (byte) play_remove_lines::c#0 - [234] (byte) play_remove_lines::w#1 ← -- (byte) play_remove_lines::w#4 - [235] (byte) play_remove_lines::x#1 ← ++ (byte) play_remove_lines::x#2 - [236] if((byte) play_remove_lines::x#1!=(const byte) PLAYFIELD_COLS#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto play_remove_lines::@2 + [231] (byte) play_remove_lines::full#2 ← phi( play_remove_lines::@17/(byte) play_remove_lines::full#4 play_remove_lines::@2/(byte/signed byte/word/signed word/dword/signed dword) 0 ) + [232] *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) play_remove_lines::w#4) ← (byte) play_remove_lines::c#0 + [233] (byte) play_remove_lines::w#1 ← -- (byte) play_remove_lines::w#4 + [234] (byte) play_remove_lines::x#1 ← ++ (byte) play_remove_lines::x#2 + [235] if((byte) play_remove_lines::x#1!=(const byte) PLAYFIELD_COLS#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto play_remove_lines::@2 to:play_remove_lines::@9 play_remove_lines::@9: scope:[play_remove_lines] from play_remove_lines::@3 - [237] if((byte) play_remove_lines::full#2!=(byte/signed byte/word/signed word/dword/signed dword) 1) goto play_remove_lines::@4 + [236] if((byte) play_remove_lines::full#2!=(byte/signed byte/word/signed word/dword/signed dword) 1) goto play_remove_lines::@4 to:play_remove_lines::@10 play_remove_lines::@10: scope:[play_remove_lines] from play_remove_lines::@9 - [238] (byte) play_remove_lines::w#2 ← (byte) play_remove_lines::w#1 + (const byte) PLAYFIELD_COLS#0 + [237] (byte) play_remove_lines::w#2 ← (byte) play_remove_lines::w#1 + (const byte) PLAYFIELD_COLS#0 to:play_remove_lines::@4 play_remove_lines::@4: scope:[play_remove_lines] from play_remove_lines::@10 play_remove_lines::@9 - [239] (byte) play_remove_lines::w#11 ← phi( play_remove_lines::@10/(byte) play_remove_lines::w#2 play_remove_lines::@9/(byte) play_remove_lines::w#1 ) - [240] (byte) play_remove_lines::y#1 ← ++ (byte) play_remove_lines::y#8 - [241] if((byte) play_remove_lines::y#1!=(const byte) PLAYFIELD_LINES#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto play_remove_lines::@1 + [238] (byte) play_remove_lines::w#11 ← phi( play_remove_lines::@10/(byte) play_remove_lines::w#2 play_remove_lines::@9/(byte) play_remove_lines::w#1 ) + [239] (byte) play_remove_lines::y#1 ← ++ (byte) play_remove_lines::y#8 + [240] if((byte) play_remove_lines::y#1!=(const byte) PLAYFIELD_LINES#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto play_remove_lines::@1 to:play_remove_lines::@5 play_remove_lines::@5: scope:[play_remove_lines] from play_remove_lines::@4 play_remove_lines::@6 - [242] (byte) play_remove_lines::w#6 ← phi( play_remove_lines::@4/(byte) play_remove_lines::w#11 play_remove_lines::@6/(byte) play_remove_lines::w#3 ) - [243] if((byte) play_remove_lines::w#6!=(byte/word/signed word/dword/signed dword) 255) goto play_remove_lines::@6 + [241] (byte) play_remove_lines::w#6 ← phi( play_remove_lines::@4/(byte) play_remove_lines::w#11 play_remove_lines::@6/(byte) play_remove_lines::w#3 ) + [242] if((byte) play_remove_lines::w#6!=(byte/word/signed word/dword/signed dword) 255) goto play_remove_lines::@6 to:play_remove_lines::@return play_remove_lines::@return: scope:[play_remove_lines] from play_remove_lines::@5 - [244] return + [243] return to:@return play_remove_lines::@6: scope:[play_remove_lines] from play_remove_lines::@5 - [245] *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) play_remove_lines::w#6) ← (byte/signed byte/word/signed word/dword/signed dword) 0 - [246] (byte) play_remove_lines::w#3 ← -- (byte) play_remove_lines::w#6 + [244] *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) play_remove_lines::w#6) ← (byte/signed byte/word/signed word/dword/signed dword) 0 + [245] (byte) play_remove_lines::w#3 ← -- (byte) play_remove_lines::w#6 to:play_remove_lines::@5 play_remove_lines::@17: scope:[play_remove_lines] from play_remove_lines::@2 - [247] phi() + [246] phi() to:play_remove_lines::@3 play_lock_current: scope:[play_lock_current] from play_move_down::@13 - [248] (byte) play_lock_current::ypos2#0 ← (byte) current_ypos#21 << (byte/signed byte/word/signed word/dword/signed dword) 1 + [247] (byte) play_lock_current::ypos2#0 ← (byte) current_ypos#21 << (byte/signed byte/word/signed word/dword/signed dword) 1 to:play_lock_current::@1 play_lock_current::@1: scope:[play_lock_current] from play_lock_current play_lock_current::@7 - [249] (byte) play_lock_current::l#6 ← phi( play_lock_current/(byte/signed byte/word/signed word/dword/signed dword) 0 play_lock_current::@7/(byte) play_lock_current::l#1 ) - [249] (byte) play_lock_current::i#3 ← phi( play_lock_current/(byte/signed byte/word/signed word/dword/signed dword) 0 play_lock_current::@7/(byte~) play_lock_current::i#7 ) - [249] (byte) play_lock_current::ypos2#2 ← phi( play_lock_current/(byte) play_lock_current::ypos2#0 play_lock_current::@7/(byte) play_lock_current::ypos2#1 ) - [250] (byte*) play_lock_current::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) play_lock_current::ypos2#2) - [251] (byte) play_lock_current::col#0 ← (byte) current_xpos#10 + [248] (byte) play_lock_current::l#6 ← phi( play_lock_current/(byte/signed byte/word/signed word/dword/signed dword) 0 play_lock_current::@7/(byte) play_lock_current::l#1 ) + [248] (byte) play_lock_current::i#3 ← phi( play_lock_current/(byte/signed byte/word/signed word/dword/signed dword) 0 play_lock_current::@7/(byte~) play_lock_current::i#7 ) + [248] (byte) play_lock_current::ypos2#2 ← phi( play_lock_current/(byte) play_lock_current::ypos2#0 play_lock_current::@7/(byte) play_lock_current::ypos2#1 ) + [249] (byte*) play_lock_current::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) play_lock_current::ypos2#2) + [250] (byte) play_lock_current::col#0 ← (byte) current_xpos#10 to:play_lock_current::@2 play_lock_current::@2: scope:[play_lock_current] from play_lock_current::@1 play_lock_current::@8 - [252] (byte) play_lock_current::c#2 ← phi( play_lock_current::@1/(byte/signed byte/word/signed word/dword/signed dword) 0 play_lock_current::@8/(byte) play_lock_current::c#1 ) - [252] (byte) play_lock_current::col#2 ← phi( play_lock_current::@1/(byte) play_lock_current::col#0 play_lock_current::@8/(byte) play_lock_current::col#1 ) - [252] (byte) play_lock_current::i#2 ← phi( play_lock_current::@1/(byte) play_lock_current::i#3 play_lock_current::@8/(byte~) play_lock_current::i#9 ) - [253] (byte) play_lock_current::i#1 ← ++ (byte) play_lock_current::i#2 - [254] if(*((byte*) current_piece_gfx#20 + (byte) play_lock_current::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_lock_current::@3 + [251] (byte) play_lock_current::c#2 ← phi( play_lock_current::@1/(byte/signed byte/word/signed word/dword/signed dword) 0 play_lock_current::@8/(byte) play_lock_current::c#1 ) + [251] (byte) play_lock_current::col#2 ← phi( play_lock_current::@1/(byte) play_lock_current::col#0 play_lock_current::@8/(byte) play_lock_current::col#1 ) + [251] (byte) play_lock_current::i#2 ← phi( play_lock_current::@1/(byte) play_lock_current::i#3 play_lock_current::@8/(byte~) play_lock_current::i#9 ) + [252] (byte) play_lock_current::i#1 ← ++ (byte) play_lock_current::i#2 + [253] if(*((byte*) current_piece_gfx#20 + (byte) play_lock_current::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_lock_current::@3 to:play_lock_current::@4 play_lock_current::@4: scope:[play_lock_current] from play_lock_current::@2 - [255] *((byte*) play_lock_current::playfield_line#0 + (byte) play_lock_current::col#2) ← (byte) current_piece_char#15 + [254] *((byte*) play_lock_current::playfield_line#0 + (byte) play_lock_current::col#2) ← (byte) current_piece_char#15 to:play_lock_current::@3 play_lock_current::@3: scope:[play_lock_current] from play_lock_current::@2 play_lock_current::@4 - [256] (byte) play_lock_current::col#1 ← ++ (byte) play_lock_current::col#2 - [257] (byte) play_lock_current::c#1 ← ++ (byte) play_lock_current::c#2 - [258] if((byte) play_lock_current::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto play_lock_current::@8 + [255] (byte) play_lock_current::col#1 ← ++ (byte) play_lock_current::col#2 + [256] (byte) play_lock_current::c#1 ← ++ (byte) play_lock_current::c#2 + [257] if((byte) play_lock_current::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto play_lock_current::@8 to:play_lock_current::@5 play_lock_current::@5: scope:[play_lock_current] from play_lock_current::@3 - [259] (byte) play_lock_current::ypos2#1 ← (byte) play_lock_current::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 - [260] (byte) play_lock_current::l#1 ← ++ (byte) play_lock_current::l#6 - [261] if((byte) play_lock_current::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto play_lock_current::@7 + [258] (byte) play_lock_current::ypos2#1 ← (byte) play_lock_current::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 + [259] (byte) play_lock_current::l#1 ← ++ (byte) play_lock_current::l#6 + [260] if((byte) play_lock_current::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto play_lock_current::@7 to:play_lock_current::@return play_lock_current::@return: scope:[play_lock_current] from play_lock_current::@5 - [262] return + [261] return to:@return play_lock_current::@7: scope:[play_lock_current] from play_lock_current::@5 - [263] (byte~) play_lock_current::i#7 ← (byte) play_lock_current::i#1 + [262] (byte~) play_lock_current::i#7 ← (byte) play_lock_current::i#1 to:play_lock_current::@1 play_lock_current::@8: scope:[play_lock_current] from play_lock_current::@3 - [264] (byte~) play_lock_current::i#9 ← (byte) play_lock_current::i#1 + [263] (byte~) play_lock_current::i#9 ← (byte) play_lock_current::i#1 to:play_lock_current::@2 keyboard_event_pressed: scope:[keyboard_event_pressed] from keyboard_event_scan::@10 keyboard_event_scan::@11 keyboard_event_scan::@20 keyboard_event_scan::@9 play_move_down::@1 - [265] (byte) keyboard_event_pressed::keycode#5 ← phi( keyboard_event_scan::@10/(const byte) KEY_CTRL#0 keyboard_event_scan::@11/(const byte) KEY_COMMODORE#0 keyboard_event_scan::@20/(const byte) KEY_LSHIFT#0 keyboard_event_scan::@9/(const byte) KEY_RSHIFT#0 play_move_down::@1/(const byte) KEY_SPACE#0 ) - [266] (byte~) keyboard_event_pressed::$0 ← (byte) keyboard_event_pressed::keycode#5 >> (byte/signed byte/word/signed word/dword/signed dword) 3 - [267] (byte) keyboard_event_pressed::row_bits#0 ← *((const byte[8]) keyboard_scan_values#0 + (byte~) keyboard_event_pressed::$0) - [268] (byte~) keyboard_event_pressed::$1 ← (byte) keyboard_event_pressed::keycode#5 & (byte/signed byte/word/signed word/dword/signed dword) 7 - [269] (byte) keyboard_event_pressed::return#11 ← (byte) keyboard_event_pressed::row_bits#0 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte~) keyboard_event_pressed::$1) + [264] (byte) keyboard_event_pressed::keycode#5 ← phi( keyboard_event_scan::@10/(const byte) KEY_CTRL#0 keyboard_event_scan::@11/(const byte) KEY_COMMODORE#0 keyboard_event_scan::@20/(const byte) KEY_LSHIFT#0 keyboard_event_scan::@9/(const byte) KEY_RSHIFT#0 play_move_down::@1/(const byte) KEY_SPACE#0 ) + [265] (byte~) keyboard_event_pressed::$0 ← (byte) keyboard_event_pressed::keycode#5 >> (byte/signed byte/word/signed word/dword/signed dword) 3 + [266] (byte) keyboard_event_pressed::row_bits#0 ← *((const byte[8]) keyboard_scan_values#0 + (byte~) keyboard_event_pressed::$0) + [267] (byte~) keyboard_event_pressed::$1 ← (byte) keyboard_event_pressed::keycode#5 & (byte/signed byte/word/signed word/dword/signed dword) 7 + [268] (byte) keyboard_event_pressed::return#11 ← (byte) keyboard_event_pressed::row_bits#0 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte~) keyboard_event_pressed::$1) to:keyboard_event_pressed::@return keyboard_event_pressed::@return: scope:[keyboard_event_pressed] from keyboard_event_pressed - [270] return + [269] return to:@return keyboard_event_get: scope:[keyboard_event_get] from main::@24 - [271] if((byte) keyboard_events_size#13==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_get::@return + [270] if((byte) keyboard_events_size#13==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_get::@return to:keyboard_event_get::@3 keyboard_event_get::@3: scope:[keyboard_event_get] from keyboard_event_get - [272] (byte) keyboard_events_size#4 ← -- (byte) keyboard_events_size#13 - [273] (byte) keyboard_event_get::return#1 ← *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#4) + [271] (byte) keyboard_events_size#4 ← -- (byte) keyboard_events_size#13 + [272] (byte) keyboard_event_get::return#1 ← *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#4) to:keyboard_event_get::@return keyboard_event_get::@return: scope:[keyboard_event_get] from keyboard_event_get keyboard_event_get::@3 - [274] (byte) keyboard_events_size#16 ← phi( keyboard_event_get/(byte) keyboard_events_size#13 keyboard_event_get::@3/(byte) keyboard_events_size#4 ) - [274] (byte) keyboard_event_get::return#2 ← phi( keyboard_event_get/(byte/word/signed word/dword/signed dword) 255 keyboard_event_get::@3/(byte) keyboard_event_get::return#1 ) - [275] return + [273] (byte) keyboard_events_size#16 ← phi( keyboard_event_get/(byte) keyboard_events_size#13 keyboard_event_get::@3/(byte) keyboard_events_size#4 ) + [273] (byte) keyboard_event_get::return#2 ← phi( keyboard_event_get/(byte/word/signed word/dword/signed dword) 255 keyboard_event_get::@3/(byte) keyboard_event_get::return#1 ) + [274] return to:@return keyboard_event_scan: scope:[keyboard_event_scan] from main::@23 - [276] phi() + [275] phi() to:keyboard_event_scan::@1 keyboard_event_scan::@1: scope:[keyboard_event_scan] from keyboard_event_scan keyboard_event_scan::@3 - [277] (byte) keyboard_events_size#29 ← phi( keyboard_event_scan/(byte) keyboard_events_size#19 keyboard_event_scan::@3/(byte) keyboard_events_size#13 ) - [277] (byte) keyboard_event_scan::keycode#11 ← phi( keyboard_event_scan/(byte/signed byte/word/signed word/dword/signed dword) 0 keyboard_event_scan::@3/(byte) keyboard_event_scan::keycode#14 ) - [277] (byte) keyboard_event_scan::row#2 ← phi( keyboard_event_scan/(byte/signed byte/word/signed word/dword/signed dword) 0 keyboard_event_scan::@3/(byte) keyboard_event_scan::row#1 ) - [278] (byte) keyboard_matrix_read::rowid#0 ← (byte) keyboard_event_scan::row#2 - [279] call keyboard_matrix_read - [280] (byte) keyboard_matrix_read::return#2 ← (byte) keyboard_matrix_read::return#0 + [276] (byte) keyboard_events_size#29 ← phi( keyboard_event_scan/(byte) keyboard_events_size#19 keyboard_event_scan::@3/(byte) keyboard_events_size#13 ) + [276] (byte) keyboard_event_scan::keycode#11 ← phi( keyboard_event_scan/(byte/signed byte/word/signed word/dword/signed dword) 0 keyboard_event_scan::@3/(byte) keyboard_event_scan::keycode#14 ) + [276] (byte) keyboard_event_scan::row#2 ← phi( keyboard_event_scan/(byte/signed byte/word/signed word/dword/signed dword) 0 keyboard_event_scan::@3/(byte) keyboard_event_scan::row#1 ) + [277] (byte) keyboard_matrix_read::rowid#0 ← (byte) keyboard_event_scan::row#2 + [278] call keyboard_matrix_read + [279] (byte) keyboard_matrix_read::return#2 ← (byte) keyboard_matrix_read::return#0 to:keyboard_event_scan::@25 keyboard_event_scan::@25: scope:[keyboard_event_scan] from keyboard_event_scan::@1 - [281] (byte) keyboard_event_scan::row_scan#0 ← (byte) keyboard_matrix_read::return#2 - [282] if((byte) keyboard_event_scan::row_scan#0!=*((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2)) goto keyboard_event_scan::@4 + [280] (byte) keyboard_event_scan::row_scan#0 ← (byte) keyboard_matrix_read::return#2 + [281] if((byte) keyboard_event_scan::row_scan#0!=*((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2)) goto keyboard_event_scan::@4 to:keyboard_event_scan::@13 keyboard_event_scan::@13: scope:[keyboard_event_scan] from keyboard_event_scan::@25 - [283] (byte) keyboard_event_scan::keycode#1 ← (byte) keyboard_event_scan::keycode#11 + (byte/signed byte/word/signed word/dword/signed dword) 8 + [282] (byte) keyboard_event_scan::keycode#1 ← (byte) keyboard_event_scan::keycode#11 + (byte/signed byte/word/signed word/dword/signed dword) 8 to:keyboard_event_scan::@3 keyboard_event_scan::@3: scope:[keyboard_event_scan] from keyboard_event_scan::@13 keyboard_event_scan::@19 - [284] (byte) keyboard_events_size#13 ← phi( keyboard_event_scan::@13/(byte) keyboard_events_size#29 keyboard_event_scan::@19/(byte) keyboard_events_size#30 ) - [284] (byte) keyboard_event_scan::keycode#14 ← phi( keyboard_event_scan::@13/(byte) keyboard_event_scan::keycode#1 keyboard_event_scan::@19/(byte) keyboard_event_scan::keycode#15 ) - [285] (byte) keyboard_event_scan::row#1 ← ++ (byte) keyboard_event_scan::row#2 - [286] if((byte) keyboard_event_scan::row#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto keyboard_event_scan::@1 + [283] (byte) keyboard_events_size#13 ← phi( keyboard_event_scan::@13/(byte) keyboard_events_size#29 keyboard_event_scan::@19/(byte) keyboard_events_size#30 ) + [283] (byte) keyboard_event_scan::keycode#14 ← phi( keyboard_event_scan::@13/(byte) keyboard_event_scan::keycode#1 keyboard_event_scan::@19/(byte) keyboard_event_scan::keycode#15 ) + [284] (byte) keyboard_event_scan::row#1 ← ++ (byte) keyboard_event_scan::row#2 + [285] if((byte) keyboard_event_scan::row#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto keyboard_event_scan::@1 to:keyboard_event_scan::@20 keyboard_event_scan::@20: scope:[keyboard_event_scan] from keyboard_event_scan::@3 - [287] phi() - [288] call keyboard_event_pressed - [289] (byte) keyboard_event_pressed::return#0 ← (byte) keyboard_event_pressed::return#11 + [286] phi() + [287] call keyboard_event_pressed + [288] (byte) keyboard_event_pressed::return#0 ← (byte) keyboard_event_pressed::return#11 to:keyboard_event_scan::@26 keyboard_event_scan::@26: scope:[keyboard_event_scan] from keyboard_event_scan::@20 - [290] (byte~) keyboard_event_scan::$14 ← (byte) keyboard_event_pressed::return#0 - [291] if((byte~) keyboard_event_scan::$14==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@9 + [289] (byte~) keyboard_event_scan::$14 ← (byte) keyboard_event_pressed::return#0 + [290] if((byte~) keyboard_event_scan::$14==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@9 to:keyboard_event_scan::@21 keyboard_event_scan::@21: scope:[keyboard_event_scan] from keyboard_event_scan::@26 - [292] phi() + [291] phi() to:keyboard_event_scan::@9 keyboard_event_scan::@9: scope:[keyboard_event_scan] from keyboard_event_scan::@21 keyboard_event_scan::@26 - [293] (byte) keyboard_modifiers#11 ← phi( keyboard_event_scan::@21/(byte/signed byte/word/signed word/dword/signed dword) 0|(const byte) KEY_MODIFIER_LSHIFT#0 keyboard_event_scan::@26/(byte/signed byte/word/signed word/dword/signed dword) 0 ) - [294] call keyboard_event_pressed - [295] (byte) keyboard_event_pressed::return#1 ← (byte) keyboard_event_pressed::return#11 + [292] (byte) keyboard_modifiers#11 ← phi( keyboard_event_scan::@21/(byte/signed byte/word/signed word/dword/signed dword) 0|(const byte) KEY_MODIFIER_LSHIFT#0 keyboard_event_scan::@26/(byte/signed byte/word/signed word/dword/signed dword) 0 ) + [293] call keyboard_event_pressed + [294] (byte) keyboard_event_pressed::return#1 ← (byte) keyboard_event_pressed::return#11 to:keyboard_event_scan::@27 keyboard_event_scan::@27: scope:[keyboard_event_scan] from keyboard_event_scan::@9 - [296] (byte~) keyboard_event_scan::$18 ← (byte) keyboard_event_pressed::return#1 - [297] if((byte~) keyboard_event_scan::$18==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@10 + [295] (byte~) keyboard_event_scan::$18 ← (byte) keyboard_event_pressed::return#1 + [296] if((byte~) keyboard_event_scan::$18==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@10 to:keyboard_event_scan::@22 keyboard_event_scan::@22: scope:[keyboard_event_scan] from keyboard_event_scan::@27 - [298] (byte) keyboard_modifiers#3 ← (byte) keyboard_modifiers#11 | (const byte) KEY_MODIFIER_RSHIFT#0 + [297] (byte) keyboard_modifiers#3 ← (byte) keyboard_modifiers#11 | (const byte) KEY_MODIFIER_RSHIFT#0 to:keyboard_event_scan::@10 keyboard_event_scan::@10: scope:[keyboard_event_scan] from keyboard_event_scan::@22 keyboard_event_scan::@27 - [299] (byte) keyboard_modifiers#12 ← phi( keyboard_event_scan::@22/(byte) keyboard_modifiers#3 keyboard_event_scan::@27/(byte) keyboard_modifiers#11 ) - [300] call keyboard_event_pressed - [301] (byte) keyboard_event_pressed::return#2 ← (byte) keyboard_event_pressed::return#11 + [298] (byte) keyboard_modifiers#12 ← phi( keyboard_event_scan::@22/(byte) keyboard_modifiers#3 keyboard_event_scan::@27/(byte) keyboard_modifiers#11 ) + [299] call keyboard_event_pressed + [300] (byte) keyboard_event_pressed::return#2 ← (byte) keyboard_event_pressed::return#11 to:keyboard_event_scan::@28 keyboard_event_scan::@28: scope:[keyboard_event_scan] from keyboard_event_scan::@10 - [302] (byte~) keyboard_event_scan::$22 ← (byte) keyboard_event_pressed::return#2 - [303] if((byte~) keyboard_event_scan::$22==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@11 + [301] (byte~) keyboard_event_scan::$22 ← (byte) keyboard_event_pressed::return#2 + [302] if((byte~) keyboard_event_scan::$22==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@11 to:keyboard_event_scan::@23 keyboard_event_scan::@23: scope:[keyboard_event_scan] from keyboard_event_scan::@28 - [304] (byte) keyboard_modifiers#4 ← (byte) keyboard_modifiers#12 | (const byte) KEY_MODIFIER_CTRL#0 + [303] (byte) keyboard_modifiers#4 ← (byte) keyboard_modifiers#12 | (const byte) KEY_MODIFIER_CTRL#0 to:keyboard_event_scan::@11 keyboard_event_scan::@11: scope:[keyboard_event_scan] from keyboard_event_scan::@23 keyboard_event_scan::@28 - [305] (byte) keyboard_modifiers#13 ← phi( keyboard_event_scan::@23/(byte) keyboard_modifiers#4 keyboard_event_scan::@28/(byte) keyboard_modifiers#12 ) - [306] call keyboard_event_pressed - [307] (byte) keyboard_event_pressed::return#10 ← (byte) keyboard_event_pressed::return#11 + [304] (byte) keyboard_modifiers#13 ← phi( keyboard_event_scan::@23/(byte) keyboard_modifiers#4 keyboard_event_scan::@28/(byte) keyboard_modifiers#12 ) + [305] call keyboard_event_pressed + [306] (byte) keyboard_event_pressed::return#10 ← (byte) keyboard_event_pressed::return#11 to:keyboard_event_scan::@29 keyboard_event_scan::@29: scope:[keyboard_event_scan] from keyboard_event_scan::@11 - [308] (byte~) keyboard_event_scan::$26 ← (byte) keyboard_event_pressed::return#10 - [309] if((byte~) keyboard_event_scan::$26==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@return + [307] (byte~) keyboard_event_scan::$26 ← (byte) keyboard_event_pressed::return#10 + [308] if((byte~) keyboard_event_scan::$26==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@return to:keyboard_event_scan::@24 keyboard_event_scan::@24: scope:[keyboard_event_scan] from keyboard_event_scan::@29 - [310] (byte) keyboard_modifiers#5 ← (byte) keyboard_modifiers#13 | (const byte) KEY_MODIFIER_COMMODORE#0 + [309] (byte) keyboard_modifiers#5 ← (byte) keyboard_modifiers#13 | (const byte) KEY_MODIFIER_COMMODORE#0 to:keyboard_event_scan::@return keyboard_event_scan::@return: scope:[keyboard_event_scan] from keyboard_event_scan::@24 keyboard_event_scan::@29 - [311] return + [310] return to:@return keyboard_event_scan::@4: scope:[keyboard_event_scan] from keyboard_event_scan::@25 keyboard_event_scan::@5 - [312] (byte) keyboard_events_size#10 ← phi( keyboard_event_scan::@25/(byte) keyboard_events_size#29 keyboard_event_scan::@5/(byte) keyboard_events_size#30 ) - [312] (byte) keyboard_event_scan::keycode#10 ← phi( keyboard_event_scan::@25/(byte) keyboard_event_scan::keycode#11 keyboard_event_scan::@5/(byte) keyboard_event_scan::keycode#15 ) - [312] (byte) keyboard_event_scan::col#2 ← phi( keyboard_event_scan::@25/(byte/signed byte/word/signed word/dword/signed dword) 0 keyboard_event_scan::@5/(byte) keyboard_event_scan::col#1 ) - [313] (byte~) keyboard_event_scan::$3 ← (byte) keyboard_event_scan::row_scan#0 ^ *((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2) - [314] (byte~) keyboard_event_scan::$4 ← (byte~) keyboard_event_scan::$3 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_event_scan::col#2) - [315] if((byte~) keyboard_event_scan::$4==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@5 + [311] (byte) keyboard_events_size#10 ← phi( keyboard_event_scan::@25/(byte) keyboard_events_size#29 keyboard_event_scan::@5/(byte) keyboard_events_size#30 ) + [311] (byte) keyboard_event_scan::keycode#10 ← phi( keyboard_event_scan::@25/(byte) keyboard_event_scan::keycode#11 keyboard_event_scan::@5/(byte) keyboard_event_scan::keycode#15 ) + [311] (byte) keyboard_event_scan::col#2 ← phi( keyboard_event_scan::@25/(byte/signed byte/word/signed word/dword/signed dword) 0 keyboard_event_scan::@5/(byte) keyboard_event_scan::col#1 ) + [312] (byte~) keyboard_event_scan::$3 ← (byte) keyboard_event_scan::row_scan#0 ^ *((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2) + [313] (byte~) keyboard_event_scan::$4 ← (byte~) keyboard_event_scan::$3 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_event_scan::col#2) + [314] if((byte~) keyboard_event_scan::$4==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@5 to:keyboard_event_scan::@15 keyboard_event_scan::@15: scope:[keyboard_event_scan] from keyboard_event_scan::@4 - [316] if((byte) keyboard_events_size#10==(byte/signed byte/word/signed word/dword/signed dword) 8) goto keyboard_event_scan::@5 + [315] if((byte) keyboard_events_size#10==(byte/signed byte/word/signed word/dword/signed dword) 8) goto keyboard_event_scan::@5 to:keyboard_event_scan::@16 keyboard_event_scan::@16: scope:[keyboard_event_scan] from keyboard_event_scan::@15 - [317] (byte) keyboard_event_scan::event_type#0 ← (byte) keyboard_event_scan::row_scan#0 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_event_scan::col#2) - [318] if((byte) keyboard_event_scan::event_type#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@7 + [316] (byte) keyboard_event_scan::event_type#0 ← (byte) keyboard_event_scan::row_scan#0 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_event_scan::col#2) + [317] if((byte) keyboard_event_scan::event_type#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@7 to:keyboard_event_scan::@17 keyboard_event_scan::@17: scope:[keyboard_event_scan] from keyboard_event_scan::@16 - [319] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte) keyboard_event_scan::keycode#10 - [320] (byte) keyboard_events_size#2 ← ++ (byte) keyboard_events_size#10 + [318] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte) keyboard_event_scan::keycode#10 + [319] (byte) keyboard_events_size#2 ← ++ (byte) keyboard_events_size#10 to:keyboard_event_scan::@5 keyboard_event_scan::@5: scope:[keyboard_event_scan] from keyboard_event_scan::@15 keyboard_event_scan::@17 keyboard_event_scan::@4 keyboard_event_scan::@7 - [321] (byte) keyboard_events_size#30 ← phi( keyboard_event_scan::@17/(byte) keyboard_events_size#2 keyboard_event_scan::@4/(byte) keyboard_events_size#10 keyboard_event_scan::@15/(byte) keyboard_events_size#10 keyboard_event_scan::@7/(byte) keyboard_events_size#1 ) - [322] (byte) keyboard_event_scan::keycode#15 ← ++ (byte) keyboard_event_scan::keycode#10 - [323] (byte) keyboard_event_scan::col#1 ← ++ (byte) keyboard_event_scan::col#2 - [324] if((byte) keyboard_event_scan::col#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto keyboard_event_scan::@4 + [320] (byte) keyboard_events_size#30 ← phi( keyboard_event_scan::@17/(byte) keyboard_events_size#2 keyboard_event_scan::@4/(byte) keyboard_events_size#10 keyboard_event_scan::@15/(byte) keyboard_events_size#10 keyboard_event_scan::@7/(byte) keyboard_events_size#1 ) + [321] (byte) keyboard_event_scan::keycode#15 ← ++ (byte) keyboard_event_scan::keycode#10 + [322] (byte) keyboard_event_scan::col#1 ← ++ (byte) keyboard_event_scan::col#2 + [323] if((byte) keyboard_event_scan::col#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto keyboard_event_scan::@4 to:keyboard_event_scan::@19 keyboard_event_scan::@19: scope:[keyboard_event_scan] from keyboard_event_scan::@5 - [325] *((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2) ← (byte) keyboard_event_scan::row_scan#0 + [324] *((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2) ← (byte) keyboard_event_scan::row_scan#0 to:keyboard_event_scan::@3 keyboard_event_scan::@7: scope:[keyboard_event_scan] from keyboard_event_scan::@16 - [326] (byte/word/dword~) keyboard_event_scan::$11 ← (byte) keyboard_event_scan::keycode#10 | (byte/signed byte/word/signed word/dword/signed dword) 64 - [327] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte/word/dword~) keyboard_event_scan::$11 - [328] (byte) keyboard_events_size#1 ← ++ (byte) keyboard_events_size#10 + [325] (byte/word/dword~) keyboard_event_scan::$11 ← (byte) keyboard_event_scan::keycode#10 | (byte/signed byte/word/signed word/dword/signed dword) 64 + [326] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte/word/dword~) keyboard_event_scan::$11 + [327] (byte) keyboard_events_size#1 ← ++ (byte) keyboard_events_size#10 to:keyboard_event_scan::@5 keyboard_matrix_read: scope:[keyboard_matrix_read] from keyboard_event_scan::@1 - [329] *((const byte*) CIA1_PORT_A#0) ← *((const byte[8]) keyboard_matrix_row_bitmask#0 + (byte) keyboard_matrix_read::rowid#0) - [330] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) + [328] *((const byte*) CIA1_PORT_A#0) ← *((const byte[8]) keyboard_matrix_row_bitmask#0 + (byte) keyboard_matrix_read::rowid#0) + [329] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) to:keyboard_matrix_read::@return keyboard_matrix_read::@return: scope:[keyboard_matrix_read] from keyboard_matrix_read - [331] return + [330] return to:@return render_show: scope:[render_show] from main::@6 - [332] if((byte) render_screen_show#16==(byte/signed byte/word/signed word/dword/signed dword) 0) goto render_show::toD0181 + [331] if((byte) render_screen_show#16==(byte/signed byte/word/signed word/dword/signed dword) 0) goto render_show::toD0181 to:render_show::toD0182 render_show::toD0182: scope:[render_show] from render_show - [333] phi() + [332] phi() to:render_show::@2 render_show::@2: scope:[render_show] from render_show::toD0181 render_show::toD0182 - [334] (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 ) - [335] *((const byte*) D018#0) ← (byte) render_show::d018val#3 - [336] (byte) render_screen_showing#1 ← (byte) render_screen_show#16 + [333] (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 ) + [334] *((const byte*) D018#0) ← (byte) render_show::d018val#3 + [335] (byte) render_screen_showing#1 ← (byte) render_screen_show#16 to:render_show::@return render_show::@return: scope:[render_show] from render_show::@2 - [337] return + [336] return to:@return render_show::toD0181: scope:[render_show] from render_show - [338] phi() + [337] phi() to:render_show::@2 play_init: scope:[play_init] from main::@18 - [339] phi() + [338] phi() to:play_init::@1 play_init::@1: scope:[play_init] from play_init play_init::@1 - [340] (byte) play_init::idx#2 ← phi( play_init/(byte/signed byte/word/signed word/dword/signed dword) 0 play_init::@1/(byte) play_init::idx#1 ) - [340] (byte*) play_init::pli#2 ← phi( play_init/(const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 play_init::@1/(byte*) play_init::pli#1 ) - [340] (byte) play_init::j#2 ← phi( play_init/(byte/signed byte/word/signed word/dword/signed dword) 0 play_init::@1/(byte) play_init::j#1 ) - [341] (byte~) play_init::$1 ← (byte) play_init::j#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 - [342] *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte~) play_init::$1) ← (byte*) play_init::pli#2 - [343] *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0 + (byte) play_init::j#2) ← (byte) play_init::idx#2 - [344] (byte*) play_init::pli#1 ← (byte*) play_init::pli#2 + (const byte) PLAYFIELD_COLS#0 - [345] (byte) play_init::idx#1 ← (byte) play_init::idx#2 + (const byte) PLAYFIELD_COLS#0 - [346] (byte) play_init::j#1 ← ++ (byte) play_init::j#2 - [347] if((byte) play_init::j#1!=(const byte) PLAYFIELD_LINES#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto play_init::@1 + [339] (byte) play_init::idx#2 ← phi( play_init/(byte/signed byte/word/signed word/dword/signed dword) 0 play_init::@1/(byte) play_init::idx#1 ) + [339] (byte*) play_init::pli#2 ← phi( play_init/(const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 play_init::@1/(byte*) play_init::pli#1 ) + [339] (byte) play_init::j#2 ← phi( play_init/(byte/signed byte/word/signed word/dword/signed dword) 0 play_init::@1/(byte) play_init::j#1 ) + [340] (byte~) play_init::$1 ← (byte) play_init::j#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 + [341] *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte~) play_init::$1) ← (byte*) play_init::pli#2 + [342] *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0 + (byte) play_init::j#2) ← (byte) play_init::idx#2 + [343] (byte*) play_init::pli#1 ← (byte*) play_init::pli#2 + (const byte) PLAYFIELD_COLS#0 + [344] (byte) play_init::idx#1 ← (byte) play_init::idx#2 + (const byte) PLAYFIELD_COLS#0 + [345] (byte) play_init::j#1 ← ++ (byte) play_init::j#2 + [346] if((byte) play_init::j#1!=(const byte) PLAYFIELD_LINES#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto play_init::@1 to:play_init::@2 play_init::@2: scope:[play_init] from play_init::@1 - [348] *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0+(const byte) PLAYFIELD_LINES#0) ← (const byte) PLAYFIELD_COLS#0*(const byte) PLAYFIELD_LINES#0 + [347] *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0+(const byte) PLAYFIELD_LINES#0) ← (const byte) PLAYFIELD_COLS#0*(const byte) PLAYFIELD_LINES#0 to:play_init::@return play_init::@return: scope:[play_init] from play_init::@2 - [349] return + [348] return to:@return sprites_irq_init: scope:[sprites_irq_init] from main::@17 asm { sei } - [351] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0 + [350] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0 asm { ldaCIA1_INTERRUPT } - [353] *((const byte*) PROCPORT_DDR#0) ← (const byte) PROCPORT_DDR_MEMORY_MASK#0 - [354] *((const byte*) PROCPORT#0) ← (const byte) PROCPORT_RAM_IO#0 - [355] *((const byte*) CIA1_INTERRUPT#0) ← (const byte) CIA_INTERRUPT_CLEAR#0 - [356] *((const byte*) VIC_CONTROL#0) ← *((const byte*) VIC_CONTROL#0) & (byte/signed byte/word/signed word/dword/signed dword) 127 - [357] *((const byte*) RASTER#0) ← (const byte) IRQ_RASTER_FIRST#0 - [358] *((const byte*) IRQ_ENABLE#0) ← (const byte) IRQ_RASTER#0 - [359] *((const void()**) HARDWARE_IRQ#0) ← &interrupt(HARDWARE_CLOBBER)(void()) sprites_irq() + [352] *((const byte*) PROCPORT_DDR#0) ← (const byte) PROCPORT_DDR_MEMORY_MASK#0 + [353] *((const byte*) PROCPORT#0) ← (const byte) PROCPORT_RAM_IO#0 + [354] *((const byte*) CIA1_INTERRUPT#0) ← (const byte) CIA_INTERRUPT_CLEAR#0 + [355] *((const byte*) VIC_CONTROL#0) ← *((const byte*) VIC_CONTROL#0) & (byte/signed byte/word/signed word/dword/signed dword) 127 + [356] *((const byte*) RASTER#0) ← (const byte) IRQ_RASTER_FIRST#0 + [357] *((const byte*) IRQ_ENABLE#0) ← (const byte) IRQ_RASTER#0 + [358] *((const void()**) HARDWARE_IRQ#0) ← &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 - [361] return + [360] return to:@return sprites_init: scope:[sprites_init] from main::@16 - [362] *((const byte*) SPRITES_ENABLE#0) ← (byte/signed byte/word/signed word/dword/signed dword) 15 - [363] *((const byte*) SPRITES_MC#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 - [364] *((const byte*) SPRITES_EXPAND_Y#0) ← *((const byte*) SPRITES_MC#0) - [365] *((const byte*) SPRITES_EXPAND_X#0) ← *((const byte*) SPRITES_EXPAND_Y#0) + [361] *((const byte*) SPRITES_ENABLE#0) ← (byte/signed byte/word/signed word/dword/signed dword) 15 + [362] *((const byte*) SPRITES_MC#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 + [363] *((const byte*) SPRITES_EXPAND_Y#0) ← *((const byte*) SPRITES_MC#0) + [364] *((const byte*) SPRITES_EXPAND_X#0) ← *((const byte*) SPRITES_EXPAND_Y#0) to:sprites_init::@1 sprites_init::@1: scope:[sprites_init] from sprites_init sprites_init::@1 - [366] (byte) sprites_init::xpos#2 ← phi( sprites_init/(byte/signed byte/word/signed word/dword/signed dword) 24+(byte/signed byte/word/signed word/dword/signed dword) 15*(byte/signed byte/word/signed word/dword/signed dword) 8 sprites_init::@1/(byte) sprites_init::xpos#1 ) - [366] (byte) sprites_init::s#2 ← phi( sprites_init/(byte/signed byte/word/signed word/dword/signed dword) 0 sprites_init::@1/(byte) sprites_init::s#1 ) - [367] (byte) sprites_init::s2#0 ← (byte) sprites_init::s#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 - [368] *((const byte*) SPRITES_XPOS#0 + (byte) sprites_init::s2#0) ← (byte) sprites_init::xpos#2 - [369] *((const byte*) SPRITES_COLS#0 + (byte) sprites_init::s#2) ← (const byte) BLACK#0 - [370] (byte) sprites_init::xpos#1 ← (byte) sprites_init::xpos#2 + (byte/signed byte/word/signed word/dword/signed dword) 24 - [371] (byte) sprites_init::s#1 ← ++ (byte) sprites_init::s#2 - [372] if((byte) sprites_init::s#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto sprites_init::@1 + [365] (byte) sprites_init::xpos#2 ← phi( sprites_init/(byte/signed byte/word/signed word/dword/signed dword) 24+(byte/signed byte/word/signed word/dword/signed dword) 15*(byte/signed byte/word/signed word/dword/signed dword) 8 sprites_init::@1/(byte) sprites_init::xpos#1 ) + [365] (byte) sprites_init::s#2 ← phi( sprites_init/(byte/signed byte/word/signed word/dword/signed dword) 0 sprites_init::@1/(byte) sprites_init::s#1 ) + [366] (byte) sprites_init::s2#0 ← (byte) sprites_init::s#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 + [367] *((const byte*) SPRITES_XPOS#0 + (byte) sprites_init::s2#0) ← (byte) sprites_init::xpos#2 + [368] *((const byte*) SPRITES_COLS#0 + (byte) sprites_init::s#2) ← (const byte) BLACK#0 + [369] (byte) sprites_init::xpos#1 ← (byte) sprites_init::xpos#2 + (byte/signed byte/word/signed word/dword/signed dword) 24 + [370] (byte) sprites_init::s#1 ← ++ (byte) sprites_init::s#2 + [371] if((byte) sprites_init::s#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto sprites_init::@1 to:sprites_init::@return sprites_init::@return: scope:[sprites_init] from sprites_init::@1 - [373] return + [372] return to:@return render_init: scope:[render_init] from main::@15 - [374] phi() + [373] phi() to:render_init::vicSelectGfxBank1 render_init::vicSelectGfxBank1: scope:[render_init] from render_init - [375] *((const byte*) CIA2_PORT_A_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3 + [374] *((const byte*) CIA2_PORT_A_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3 to:render_init::vicSelectGfxBank1_toDd001 render_init::vicSelectGfxBank1_toDd001: scope:[render_init] from render_init::vicSelectGfxBank1 - [376] phi() + [375] phi() to:render_init::vicSelectGfxBank1_@1 render_init::vicSelectGfxBank1_@1: scope:[render_init] from render_init::vicSelectGfxBank1_toDd001 - [377] *((const byte*) CIA2_PORT_A#0) ← (const byte) render_init::vicSelectGfxBank1_toDd001_return#0 + [376] *((const byte*) CIA2_PORT_A#0) ← (const byte) render_init::vicSelectGfxBank1_toDd001_return#0 to:render_init::@3 render_init::@3: scope:[render_init] from render_init::vicSelectGfxBank1_@1 - [378] *((const byte*) D011#0) ← (const byte) VIC_ECM#0|(const byte) VIC_DEN#0|(const byte) VIC_RSEL#0|(byte/signed byte/word/signed word/dword/signed dword) 3 - [379] *((const byte*) BORDERCOL#0) ← (const byte) BLACK#0 - [380] *((const byte*) BGCOL1#0) ← (const byte) BLACK#0 - [381] *((const byte*) BGCOL2#0) ← (const byte) BLUE#0 - [382] *((const byte*) BGCOL3#0) ← (const byte) CYAN#0 - [383] *((const byte*) BGCOL4#0) ← (const byte) GREY#0 - [384] call render_screen_original + [377] *((const byte*) D011#0) ← (const byte) VIC_ECM#0|(const byte) VIC_DEN#0|(const byte) VIC_RSEL#0|(byte/signed byte/word/signed word/dword/signed dword) 3 + [378] *((const byte*) BORDERCOL#0) ← (const byte) BLACK#0 + [379] *((const byte*) BGCOL1#0) ← (const byte) BLACK#0 + [380] *((const byte*) BGCOL2#0) ← (const byte) BLUE#0 + [381] *((const byte*) BGCOL3#0) ← (const byte) CYAN#0 + [382] *((const byte*) BGCOL4#0) ← (const byte) GREY#0 + [383] call render_screen_original to:render_init::@4 render_init::@4: scope:[render_init] from render_init::@3 - [385] phi() - [386] call render_screen_original + [384] phi() + [385] call render_screen_original to:render_init::@1 render_init::@1: scope:[render_init] from render_init::@1 render_init::@4 - [387] (byte*) render_init::li_2#2 ← phi( render_init::@1/(byte*) render_init::li_2#1 render_init::@4/(const byte*) PLAYFIELD_SCREEN_2#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 16 ) - [387] (byte*) render_init::li_1#2 ← phi( render_init::@1/(byte*) render_init::li_1#1 render_init::@4/(const byte*) PLAYFIELD_SCREEN_1#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 16 ) - [387] (byte) render_init::i#2 ← phi( render_init::@1/(byte) render_init::i#1 render_init::@4/(byte/signed byte/word/signed word/dword/signed dword) 0 ) - [388] (byte~) render_init::$13 ← (byte) render_init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 - [389] *((const byte*[PLAYFIELD_LINES#0]) screen_lines_1#0 + (byte~) render_init::$13) ← (byte*) render_init::li_1#2 - [390] (byte~) render_init::$14 ← (byte) render_init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 - [391] *((const byte*[PLAYFIELD_LINES#0]) screen_lines_2#0 + (byte~) render_init::$14) ← (byte*) render_init::li_2#2 - [392] (byte*) render_init::li_1#1 ← (byte*) render_init::li_1#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 - [393] (byte*) render_init::li_2#1 ← (byte*) render_init::li_2#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 - [394] (byte) render_init::i#1 ← ++ (byte) render_init::i#2 - [395] if((byte) render_init::i#1!=(const byte) PLAYFIELD_LINES#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_init::@1 + [386] (byte*) render_init::li_2#2 ← phi( render_init::@1/(byte*) render_init::li_2#1 render_init::@4/(const byte*) PLAYFIELD_SCREEN_2#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 16 ) + [386] (byte*) render_init::li_1#2 ← phi( render_init::@1/(byte*) render_init::li_1#1 render_init::@4/(const byte*) PLAYFIELD_SCREEN_1#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 16 ) + [386] (byte) render_init::i#2 ← phi( render_init::@1/(byte) render_init::i#1 render_init::@4/(byte/signed byte/word/signed word/dword/signed dword) 0 ) + [387] (byte~) render_init::$13 ← (byte) render_init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 + [388] *((const byte*[PLAYFIELD_LINES#0]) screen_lines_1#0 + (byte~) render_init::$13) ← (byte*) render_init::li_1#2 + [389] (byte~) render_init::$14 ← (byte) render_init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 + [390] *((const byte*[PLAYFIELD_LINES#0]) screen_lines_2#0 + (byte~) render_init::$14) ← (byte*) render_init::li_2#2 + [391] (byte*) render_init::li_1#1 ← (byte*) render_init::li_1#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 + [392] (byte*) render_init::li_2#1 ← (byte*) render_init::li_2#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 + [393] (byte) render_init::i#1 ← ++ (byte) render_init::i#2 + [394] if((byte) render_init::i#1!=(const byte) PLAYFIELD_LINES#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_init::@1 to:render_init::@return render_init::@return: scope:[render_init] from render_init::@1 - [396] return + [395] return to:@return render_screen_original: scope:[render_screen_original] from render_init::@3 render_init::@4 - [397] (byte*) render_screen_original::screen#9 ← phi( render_init::@3/(const byte*) PLAYFIELD_SCREEN_1#0 render_init::@4/(const byte*) PLAYFIELD_SCREEN_2#0 ) + [396] (byte*) render_screen_original::screen#9 ← phi( render_init::@3/(const byte*) PLAYFIELD_SCREEN_1#0 render_init::@4/(const byte*) PLAYFIELD_SCREEN_2#0 ) to:render_screen_original::@1 render_screen_original::@1: scope:[render_screen_original] from render_screen_original render_screen_original::@7 - [398] (byte) render_screen_original::y#6 ← phi( render_screen_original/(byte/signed byte/word/signed word/dword/signed dword) 0 render_screen_original::@7/(byte) render_screen_original::y#1 ) - [398] (byte*) render_screen_original::ocols#4 ← phi( render_screen_original/(const byte*) PLAYFIELD_COLORS_ORIGINAL#0+(byte/signed byte/word/signed word/dword/signed dword) 32*(byte/signed byte/word/signed word/dword/signed dword) 2 render_screen_original::@7/(byte*) render_screen_original::ocols#1 ) - [398] (byte*) render_screen_original::oext#4 ← phi( render_screen_original/(const byte*) PLAYFIELD_EXTENDED_ORIGINAL#0+(byte/signed byte/word/signed word/dword/signed dword) 32*(byte/signed byte/word/signed word/dword/signed dword) 2 render_screen_original::@7/(byte*) render_screen_original::oext#1 ) - [398] (byte*) render_screen_original::oscr#4 ← phi( render_screen_original/(const byte*) PLAYFIELD_SCREEN_ORIGINAL#0+(byte/signed byte/word/signed word/dword/signed dword) 32*(byte/signed byte/word/signed word/dword/signed dword) 2 render_screen_original::@7/(byte*) render_screen_original::oscr#1 ) - [398] (byte*) render_screen_original::cols#7 ← phi( render_screen_original/(const byte*) COLS#0 render_screen_original::@7/(byte*) render_screen_original::cols#3 ) - [398] (byte*) render_screen_original::screen#8 ← phi( render_screen_original/(byte*) render_screen_original::screen#9 render_screen_original::@7/(byte*) render_screen_original::screen#10 ) + [397] (byte) render_screen_original::y#6 ← phi( render_screen_original/(byte/signed byte/word/signed word/dword/signed dword) 0 render_screen_original::@7/(byte) render_screen_original::y#1 ) + [397] (byte*) render_screen_original::ocols#4 ← phi( render_screen_original/(const byte*) PLAYFIELD_COLORS_ORIGINAL#0+(byte/signed byte/word/signed word/dword/signed dword) 32*(byte/signed byte/word/signed word/dword/signed dword) 2 render_screen_original::@7/(byte*) render_screen_original::ocols#1 ) + [397] (byte*) render_screen_original::oscr#4 ← phi( render_screen_original/(const byte*) PLAYFIELD_SCREEN_ORIGINAL#0+(byte/signed byte/word/signed word/dword/signed dword) 32*(byte/signed byte/word/signed word/dword/signed dword) 2 render_screen_original::@7/(byte*) render_screen_original::oscr#1 ) + [397] (byte*) render_screen_original::cols#7 ← phi( render_screen_original/(const byte*) COLS#0 render_screen_original::@7/(byte*) render_screen_original::cols#3 ) + [397] (byte*) render_screen_original::screen#8 ← phi( render_screen_original/(byte*) render_screen_original::screen#9 render_screen_original::@7/(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 - [399] (byte) render_screen_original::x#4 ← phi( render_screen_original::@1/(byte/signed byte/word/signed word/dword/signed dword) 0 render_screen_original::@2/(byte) render_screen_original::x#1 ) - [399] (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 ) - [399] (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 ) - [400] *((byte*) render_screen_original::screen#5) ← (const byte) render_screen_original::SPACE#0 - [401] (byte*) render_screen_original::screen#2 ← ++ (byte*) render_screen_original::screen#5 - [402] *((byte*) render_screen_original::cols#4) ← (const byte) BLACK#0 - [403] (byte*) render_screen_original::cols#1 ← ++ (byte*) render_screen_original::cols#4 - [404] (byte) render_screen_original::x#1 ← ++ (byte) render_screen_original::x#4 - [405] if((byte) render_screen_original::x#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_screen_original::@2 + [398] (byte) render_screen_original::x#4 ← phi( render_screen_original::@1/(byte/signed byte/word/signed word/dword/signed dword) 0 render_screen_original::@2/(byte) render_screen_original::x#1 ) + [398] (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 ) + [398] (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 ) + [399] *((byte*) render_screen_original::screen#5) ← (const byte) render_screen_original::SPACE#0 + [400] (byte*) render_screen_original::screen#2 ← ++ (byte*) render_screen_original::screen#5 + [401] *((byte*) render_screen_original::cols#4) ← (const byte) BLACK#0 + [402] (byte*) render_screen_original::cols#1 ← ++ (byte*) render_screen_original::cols#4 + [403] (byte) render_screen_original::x#1 ← ++ (byte) render_screen_original::x#4 + [404] if((byte) render_screen_original::x#1!=(byte/signed byte/word/signed word/dword/signed dword) 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 - [406] (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 ) - [406] (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 ) - [406] (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 ) - [406] (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 ) - [406] (byte*) render_screen_original::oext#2 ← phi( render_screen_original::@2/(byte*) render_screen_original::oext#4 render_screen_original::@3/(byte*) render_screen_original::oext#1 ) - [406] (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 ) - [407] (byte) render_screen_original::c#0 ← *((byte*) render_screen_original::oscr#2) + (byte/signed byte/word/signed word/dword/signed dword) 1 + [405] (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 ) + [405] (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 ) + [405] (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 ) + [405] (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 ) + [405] (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 ) + [406] *((byte*) render_screen_original::screen#6) ← *((byte*) render_screen_original::oscr#2) + [407] (byte*) render_screen_original::screen#3 ← ++ (byte*) render_screen_original::screen#6 [408] (byte*) render_screen_original::oscr#1 ← ++ (byte*) render_screen_original::oscr#2 - [409] (byte/signed word/word/dword/signed dword~) render_screen_original::$8 ← *((byte*) render_screen_original::oext#2) - (byte/signed byte/word/signed word/dword/signed dword) 1 - [410] (byte) render_screen_original::ext#0 ← (byte/signed word/word/dword/signed dword~) render_screen_original::$8 << (byte/signed byte/word/signed word/dword/signed dword) 6 - [411] (byte*) render_screen_original::oext#1 ← ++ (byte*) render_screen_original::oext#2 - [412] (byte~) render_screen_original::$10 ← (byte) render_screen_original::c#0 | (byte) render_screen_original::ext#0 - [413] *((byte*) render_screen_original::screen#6) ← (byte~) render_screen_original::$10 - [414] (byte*) render_screen_original::screen#3 ← ++ (byte*) render_screen_original::screen#6 - [415] *((byte*) render_screen_original::cols#5) ← *((byte*) render_screen_original::ocols#2) - [416] (byte*) render_screen_original::cols#2 ← ++ (byte*) render_screen_original::cols#5 - [417] (byte*) render_screen_original::ocols#1 ← ++ (byte*) render_screen_original::ocols#2 - [418] (byte) render_screen_original::x#2 ← ++ (byte) render_screen_original::x#5 - [419] if((byte) render_screen_original::x#2!=(byte/signed byte/word/signed word/dword/signed dword) 36) goto render_screen_original::@3 + [409] *((byte*) render_screen_original::cols#5) ← *((byte*) render_screen_original::ocols#2) + [410] (byte*) render_screen_original::cols#2 ← ++ (byte*) render_screen_original::cols#5 + [411] (byte*) render_screen_original::ocols#1 ← ++ (byte*) render_screen_original::ocols#2 + [412] (byte) render_screen_original::x#2 ← ++ (byte) render_screen_original::x#5 + [413] if((byte) render_screen_original::x#2!=(byte/signed byte/word/signed word/dword/signed dword) 36) 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 - [420] (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 ) - [420] (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 ) - [420] (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 ) - [421] *((byte*) render_screen_original::screen#7) ← (const byte) render_screen_original::SPACE#0 - [422] (byte*) render_screen_original::screen#10 ← ++ (byte*) render_screen_original::screen#7 - [423] *((byte*) render_screen_original::cols#6) ← (const byte) BLACK#0 - [424] (byte*) render_screen_original::cols#3 ← ++ (byte*) render_screen_original::cols#6 - [425] (byte) render_screen_original::x#3 ← ++ (byte) render_screen_original::x#6 - [426] if((byte) render_screen_original::x#3!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto render_screen_original::@4 + [414] (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 ) + [414] (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 ) + [414] (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 ) + [415] *((byte*) render_screen_original::screen#7) ← (const byte) render_screen_original::SPACE#0 + [416] (byte*) render_screen_original::screen#10 ← ++ (byte*) render_screen_original::screen#7 + [417] *((byte*) render_screen_original::cols#6) ← (const byte) BLACK#0 + [418] (byte*) render_screen_original::cols#3 ← ++ (byte*) render_screen_original::cols#6 + [419] (byte) render_screen_original::x#3 ← ++ (byte) render_screen_original::x#6 + [420] if((byte) render_screen_original::x#3!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto render_screen_original::@4 to:render_screen_original::@7 render_screen_original::@7: scope:[render_screen_original] from render_screen_original::@4 - [427] (byte) render_screen_original::y#1 ← ++ (byte) render_screen_original::y#6 - [428] if((byte) render_screen_original::y#1!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto render_screen_original::@1 + [421] (byte) render_screen_original::y#1 ← ++ (byte) render_screen_original::y#6 + [422] if((byte) render_screen_original::y#1!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto render_screen_original::@1 to:render_screen_original::@return render_screen_original::@return: scope:[render_screen_original] from render_screen_original::@7 - [429] return + [423] return to:@return sid_rnd_init: scope:[sid_rnd_init] from main - [430] *((const word*) SID_VOICE3_FREQ#0) ← (word/dword/signed dword) 65535 - [431] *((const byte*) SID_VOICE3_CONTROL#0) ← (const byte) SID_CONTROL_NOISE#0 + [424] *((const word*) SID_VOICE3_FREQ#0) ← (word/dword/signed dword) 65535 + [425] *((const byte*) SID_VOICE3_CONTROL#0) ← (const byte) SID_CONTROL_NOISE#0 to:sid_rnd_init::@return sid_rnd_init::@return: scope:[sid_rnd_init] from sid_rnd_init - [432] return + [426] return to:@return sprites_irq: scope:[sprites_irq] from - [433] (byte) sprites_irq::ypos#0 ← (byte) irq_sprite_ypos#0 - [434] *((const byte*) SPRITES_YPOS#0) ← (byte) sprites_irq::ypos#0 - [435] *((const byte*) SPRITES_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte) sprites_irq::ypos#0 - [436] *((const byte*) SPRITES_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte) sprites_irq::ypos#0 - [437] *((const byte*) SPRITES_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte) sprites_irq::ypos#0 + [427] (byte) sprites_irq::ypos#0 ← (byte) irq_sprite_ypos#0 + [428] *((const byte*) SPRITES_YPOS#0) ← (byte) sprites_irq::ypos#0 + [429] *((const byte*) SPRITES_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte) sprites_irq::ypos#0 + [430] *((const byte*) SPRITES_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte) sprites_irq::ypos#0 + [431] *((const byte*) SPRITES_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte) sprites_irq::ypos#0 to:sprites_irq::@1 sprites_irq::@1: scope:[sprites_irq] from sprites_irq sprites_irq::@1 - [438] if(*((const byte*) RASTER#0)<(byte) irq_sprite_ypos#0) goto sprites_irq::@1 + [432] if(*((const byte*) RASTER#0)<(byte) irq_sprite_ypos#0) goto sprites_irq::@1 to:sprites_irq::@7 sprites_irq::@7: scope:[sprites_irq] from sprites_irq::@1 - [439] (byte) sprites_irq::ptr#0 ← (byte) irq_sprite_ptr#0 - [440] if((byte) render_screen_showing#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto sprites_irq::@2 + [433] (byte) sprites_irq::ptr#0 ← (byte) irq_sprite_ptr#0 + [434] if((byte) render_screen_showing#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto sprites_irq::@2 to:sprites_irq::@8 sprites_irq::@8: scope:[sprites_irq] from sprites_irq::@7 - [441] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0) ← (byte) sprites_irq::ptr#0 - [442] (byte) sprites_irq::ptr#3 ← ++ (byte) sprites_irq::ptr#0 - [443] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte) sprites_irq::ptr#3 - [444] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte) sprites_irq::ptr#3 - [445] (byte) sprites_irq::ptr#4 ← ++ (byte) sprites_irq::ptr#3 - [446] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte) sprites_irq::ptr#4 + [435] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0) ← (byte) sprites_irq::ptr#0 + [436] (byte) sprites_irq::ptr#3 ← ++ (byte) sprites_irq::ptr#0 + [437] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte) sprites_irq::ptr#3 + [438] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte) sprites_irq::ptr#3 + [439] (byte) sprites_irq::ptr#4 ← ++ (byte) sprites_irq::ptr#3 + [440] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte) sprites_irq::ptr#4 to:sprites_irq::@3 sprites_irq::@3: scope:[sprites_irq] from sprites_irq::@2 sprites_irq::@8 - [447] (byte) irq_cnt#1 ← ++ (byte) irq_cnt#0 - [448] if((byte) irq_cnt#1==(byte/signed byte/word/signed word/dword/signed dword) 10) goto sprites_irq::@4 + [441] (byte) irq_cnt#1 ← ++ (byte) irq_cnt#0 + [442] if((byte) irq_cnt#1==(byte/signed byte/word/signed word/dword/signed dword) 10) goto sprites_irq::@4 to:sprites_irq::@10 sprites_irq::@10: scope:[sprites_irq] from sprites_irq::@3 - [449] (byte) irq_raster_next#2 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 - [450] (byte) irq_sprite_ypos#2 ← (byte) irq_sprite_ypos#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 - [451] (byte) irq_sprite_ptr#2 ← (byte) irq_sprite_ptr#0 + (byte/signed byte/word/signed word/dword/signed dword) 3 + [443] (byte) irq_raster_next#2 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 + [444] (byte) irq_sprite_ypos#2 ← (byte) irq_sprite_ypos#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 + [445] (byte) irq_sprite_ptr#2 ← (byte) irq_sprite_ptr#0 + (byte/signed byte/word/signed word/dword/signed dword) 3 to:sprites_irq::@5 sprites_irq::@5: scope:[sprites_irq] from sprites_irq::@10 sprites_irq::@13 - [452] (byte) irq_raster_next#13 ← phi( sprites_irq::@10/(byte) irq_raster_next#2 sprites_irq::@13/(byte) irq_raster_next#1 ) - [453] (byte) sprites_irq::raster_next#0 ← (byte) irq_raster_next#13 - [454] (byte~) sprites_irq::$4 ← (byte) sprites_irq::raster_next#0 & (byte/signed byte/word/signed word/dword/signed dword) 7 - [455] if((byte~) sprites_irq::$4!=(byte/signed byte/word/signed word/dword/signed dword) 3) goto sprites_irq::@6 + [446] (byte) irq_raster_next#13 ← phi( sprites_irq::@10/(byte) irq_raster_next#2 sprites_irq::@13/(byte) irq_raster_next#1 ) + [447] (byte) sprites_irq::raster_next#0 ← (byte) irq_raster_next#13 + [448] (byte~) sprites_irq::$4 ← (byte) sprites_irq::raster_next#0 & (byte/signed byte/word/signed word/dword/signed dword) 7 + [449] if((byte~) sprites_irq::$4!=(byte/signed byte/word/signed word/dword/signed dword) 3) goto sprites_irq::@6 to:sprites_irq::@12 sprites_irq::@12: scope:[sprites_irq] from sprites_irq::@5 - [456] (byte) sprites_irq::raster_next#1 ← (byte) sprites_irq::raster_next#0 - (byte/signed byte/word/signed word/dword/signed dword) 1 + [450] (byte) sprites_irq::raster_next#1 ← (byte) sprites_irq::raster_next#0 - (byte/signed byte/word/signed word/dword/signed dword) 1 to:sprites_irq::@6 sprites_irq::@6: scope:[sprites_irq] from sprites_irq::@12 sprites_irq::@5 - [457] (byte) sprites_irq::raster_next#2 ← phi( sprites_irq::@12/(byte) sprites_irq::raster_next#1 sprites_irq::@5/(byte) sprites_irq::raster_next#0 ) - [458] *((const byte*) RASTER#0) ← (byte) sprites_irq::raster_next#2 - [459] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0 + [451] (byte) sprites_irq::raster_next#2 ← phi( sprites_irq::@12/(byte) sprites_irq::raster_next#1 sprites_irq::@5/(byte) sprites_irq::raster_next#0 ) + [452] *((const byte*) RASTER#0) ← (byte) sprites_irq::raster_next#2 + [453] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0 to:sprites_irq::@return sprites_irq::@return: scope:[sprites_irq] from sprites_irq::@6 - [460] return + [454] return to:@return sprites_irq::@4: scope:[sprites_irq] from sprites_irq::@3 - [461] (byte) irq_cnt#14 ← (byte/signed byte/word/signed word/dword/signed dword) 0 - [462] (byte) irq_raster_next#1 ← (const byte) IRQ_RASTER_FIRST#0 - [463] (byte) irq_sprite_ypos#1 ← (byte/signed byte/word/signed word/dword/signed dword) 50 + [455] (byte) irq_cnt#14 ← (byte/signed byte/word/signed word/dword/signed dword) 0 + [456] (byte) irq_raster_next#1 ← (const byte) IRQ_RASTER_FIRST#0 + [457] (byte) irq_sprite_ypos#1 ← (byte/signed byte/word/signed word/dword/signed dword) 50 to:sprites_irq::toSpritePtr2 sprites_irq::toSpritePtr2: scope:[sprites_irq] from sprites_irq::@4 - [464] phi() + [458] phi() to:sprites_irq::@13 sprites_irq::@13: scope:[sprites_irq] from sprites_irq::toSpritePtr2 - [465] (byte) irq_sprite_ptr#1 ← (const byte) sprites_irq::toSpritePtr2_return#0 + [459] (byte) irq_sprite_ptr#1 ← (const byte) sprites_irq::toSpritePtr2_return#0 to:sprites_irq::@5 sprites_irq::@2: scope:[sprites_irq] from sprites_irq::@7 - [466] *((const byte*) PLAYFIELD_SPRITE_PTRS_1#0) ← (byte) sprites_irq::ptr#0 - [467] (byte) sprites_irq::ptr#1 ← ++ (byte) sprites_irq::ptr#0 - [468] *((const byte*) PLAYFIELD_SPRITE_PTRS_1#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte) sprites_irq::ptr#1 - [469] *((const byte*) PLAYFIELD_SPRITE_PTRS_1#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte) sprites_irq::ptr#1 - [470] (byte) sprites_irq::ptr#2 ← ++ (byte) sprites_irq::ptr#1 - [471] *((const byte*) PLAYFIELD_SPRITE_PTRS_1#0+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte) sprites_irq::ptr#2 + [460] *((const byte*) PLAYFIELD_SPRITE_PTRS_1#0) ← (byte) sprites_irq::ptr#0 + [461] (byte) sprites_irq::ptr#1 ← ++ (byte) sprites_irq::ptr#0 + [462] *((const byte*) PLAYFIELD_SPRITE_PTRS_1#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte) sprites_irq::ptr#1 + [463] *((const byte*) PLAYFIELD_SPRITE_PTRS_1#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte) sprites_irq::ptr#1 + [464] (byte) sprites_irq::ptr#2 ← ++ (byte) sprites_irq::ptr#1 + [465] *((const byte*) PLAYFIELD_SPRITE_PTRS_1#0+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte) sprites_irq::ptr#2 to:sprites_irq::@3 diff --git a/src/test/ref/examples/tetris/tetris.log b/src/test/ref/examples/tetris/tetris.log index 2fa1128f0..76689c378 100644 --- a/src/test/ref/examples/tetris/tetris.log +++ b/src/test/ref/examples/tetris/tetris.log @@ -503,7 +503,6 @@ sid_rnd::@return: scope:[sid_rnd] from sid_rnd (byte*) PLAYFIELD_SPRITE_PTRS_2#0 ← (byte*~) $2 (byte*) PLAYFIELD_SCREEN_ORIGINAL#0 ← ((byte*)) (word/signed word/dword/signed dword) 6144 (byte*) PLAYFIELD_COLORS_ORIGINAL#0 ← ((byte*)) (word/signed word/dword/signed dword) 7168 - (byte*) PLAYFIELD_EXTENDED_ORIGINAL#0 ← ((byte*)) (word/signed word/dword/signed dword) 5120 (byte*) PLAYFIELD_SPRITES#0 ← ((byte*)) (word/signed word/dword/signed dword) 8192 (byte*) PLAYFIELD_CHARSET#0 ← ((byte*)) (word/signed word/dword/signed dword) 10240 (byte) PLAYFIELD_LINES#0 ← (byte/signed byte/word/signed word/dword/signed dword) 22 @@ -517,11 +516,16 @@ sid_rnd::@return: scope:[sid_rnd] from sid_rnd .import binary "playfield-screen.imap" }} (byte) PLAYFIELD_SCREEN_ORIGINAL_WIDTH#0 ← (byte/signed byte/word/signed word/dword/signed dword) 32 - kickasm(location (byte*) PLAYFIELD_SCREEN_ORIGINAL#0) {{ .import binary "playfield-screen.iscr" + kickasm(location (byte*) PLAYFIELD_SCREEN_ORIGINAL#0) {{ // 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 (byte*) PLAYFIELD_COLORS_ORIGINAL#0) {{ .import binary "playfield-screen.col" - }} - kickasm(location (byte*) PLAYFIELD_EXTENDED_ORIGINAL#0) {{ .import binary "playfield-extended.col" }} (byte*[PLAYFIELD_LINES#0]) screen_lines_1#0 ← { fill( PLAYFIELD_LINES#0, 0) } (byte*[PLAYFIELD_LINES#0]) screen_lines_2#0 ← { fill( PLAYFIELD_LINES#0, 0) } @@ -704,18 +708,14 @@ render_screen_original: scope:[render_screen_original] from render_init::@3 ren (byte*~) render_screen_original::$1 ← (byte*) PLAYFIELD_SCREEN_ORIGINAL#0 + (byte/signed byte/word/signed word/dword/signed dword~) render_screen_original::$0 (byte*) render_screen_original::oscr#0 ← (byte*~) render_screen_original::$1 (byte/signed byte/word/signed word/dword/signed dword~) render_screen_original::$2 ← (byte/signed byte/word/signed word/dword/signed dword) 32 * (byte/signed byte/word/signed word/dword/signed dword) 2 - (byte*~) render_screen_original::$3 ← (byte*) PLAYFIELD_EXTENDED_ORIGINAL#0 + (byte/signed byte/word/signed word/dword/signed dword~) render_screen_original::$2 - (byte*) render_screen_original::oext#0 ← (byte*~) render_screen_original::$3 - (byte/signed byte/word/signed word/dword/signed dword~) render_screen_original::$4 ← (byte/signed byte/word/signed word/dword/signed dword) 32 * (byte/signed byte/word/signed word/dword/signed dword) 2 - (byte*~) render_screen_original::$5 ← (byte*) PLAYFIELD_COLORS_ORIGINAL#0 + (byte/signed byte/word/signed word/dword/signed dword~) render_screen_original::$4 - (byte*) render_screen_original::ocols#0 ← (byte*~) render_screen_original::$5 + (byte*~) render_screen_original::$3 ← (byte*) PLAYFIELD_COLORS_ORIGINAL#0 + (byte/signed byte/word/signed word/dword/signed dword~) render_screen_original::$2 + (byte*) render_screen_original::ocols#0 ← (byte*~) render_screen_original::$3 (byte*) render_screen_original::cols#0 ← (byte*) COLS#0 (byte) render_screen_original::y#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:render_screen_original::@1 render_screen_original::@1: scope:[render_screen_original] from render_screen_original render_screen_original::@7 (byte) render_screen_original::y#6 ← phi( render_screen_original/(byte) render_screen_original::y#0 render_screen_original::@7/(byte) render_screen_original::y#1 ) (byte*) render_screen_original::ocols#4 ← phi( render_screen_original/(byte*) render_screen_original::ocols#0 render_screen_original::@7/(byte*) render_screen_original::ocols#5 ) - (byte*) render_screen_original::oext#4 ← phi( render_screen_original/(byte*) render_screen_original::oext#0 render_screen_original::@7/(byte*) render_screen_original::oext#5 ) (byte*) render_screen_original::oscr#4 ← phi( render_screen_original/(byte*) render_screen_original::oscr#0 render_screen_original::@7/(byte*) render_screen_original::oscr#5 ) (byte*) render_screen_original::cols#7 ← phi( render_screen_original/(byte*) render_screen_original::cols#0 render_screen_original::@7/(byte*) render_screen_original::cols#8 ) (byte*) render_screen_original::screen#8 ← phi( render_screen_original/(byte*) render_screen_original::screen#9 render_screen_original::@7/(byte*) render_screen_original::screen#10 ) @@ -725,7 +725,6 @@ render_screen_original::@1: scope:[render_screen_original] from render_screen_o render_screen_original::@2: scope:[render_screen_original] from render_screen_original::@1 render_screen_original::@2 (byte) render_screen_original::y#5 ← phi( render_screen_original::@1/(byte) render_screen_original::y#6 render_screen_original::@2/(byte) render_screen_original::y#5 ) (byte*) render_screen_original::ocols#3 ← phi( render_screen_original::@1/(byte*) render_screen_original::ocols#4 render_screen_original::@2/(byte*) render_screen_original::ocols#3 ) - (byte*) render_screen_original::oext#3 ← phi( render_screen_original::@1/(byte*) render_screen_original::oext#4 render_screen_original::@2/(byte*) render_screen_original::oext#3 ) (byte*) render_screen_original::oscr#3 ← phi( render_screen_original::@1/(byte*) render_screen_original::oscr#4 render_screen_original::@2/(byte*) render_screen_original::oscr#3 ) (byte) render_screen_original::x#4 ← phi( render_screen_original::@1/(byte) render_screen_original::x#0 render_screen_original::@2/(byte) render_screen_original::x#1 ) (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 ) @@ -736,8 +735,8 @@ render_screen_original::@2: scope:[render_screen_original] from render_screen_o *((byte*) render_screen_original::cols#4) ← (byte) BLACK#0 (byte*) render_screen_original::cols#1 ← ++ (byte*) render_screen_original::cols#4 (byte) render_screen_original::x#1 ← ++ (byte) render_screen_original::x#4 - (bool~) render_screen_original::$6 ← (byte) render_screen_original::x#1 != (byte/signed byte/word/signed word/dword/signed dword) 4 - if((bool~) render_screen_original::$6) goto render_screen_original::@2 + (bool~) render_screen_original::$4 ← (byte) render_screen_original::x#1 != (byte/signed byte/word/signed word/dword/signed dword) 4 + if((bool~) render_screen_original::$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 (byte) render_screen_original::y#4 ← phi( render_screen_original::@2/(byte) render_screen_original::y#5 render_screen_original::@3/(byte) render_screen_original::y#4 ) @@ -746,28 +745,19 @@ render_screen_original::@3: scope:[render_screen_original] from render_screen_o (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 ) (byte*) render_screen_original::ocols#2 ← phi( render_screen_original::@2/(byte*) render_screen_original::ocols#3 render_screen_original::@3/(byte*) render_screen_original::ocols#1 ) (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 ) - (byte*) render_screen_original::oext#2 ← phi( render_screen_original::@2/(byte*) render_screen_original::oext#3 render_screen_original::@3/(byte*) render_screen_original::oext#1 ) (byte*) render_screen_original::oscr#2 ← phi( render_screen_original::@2/(byte*) render_screen_original::oscr#3 render_screen_original::@3/(byte*) render_screen_original::oscr#1 ) - (byte/signed word/word/dword/signed dword~) render_screen_original::$7 ← *((byte*) render_screen_original::oscr#2) + (byte/signed byte/word/signed word/dword/signed dword) 1 - (byte) render_screen_original::c#0 ← (byte/signed word/word/dword/signed dword~) render_screen_original::$7 - (byte*) render_screen_original::oscr#1 ← ++ (byte*) render_screen_original::oscr#2 - (byte/signed word/word/dword/signed dword~) render_screen_original::$8 ← *((byte*) render_screen_original::oext#2) - (byte/signed byte/word/signed word/dword/signed dword) 1 - (byte/signed word/word/dword/signed dword~) render_screen_original::$9 ← (byte/signed word/word/dword/signed dword~) render_screen_original::$8 << (byte/signed byte/word/signed word/dword/signed dword) 6 - (byte) render_screen_original::ext#0 ← (byte/signed word/word/dword/signed dword~) render_screen_original::$9 - (byte*) render_screen_original::oext#1 ← ++ (byte*) render_screen_original::oext#2 - (byte~) render_screen_original::$10 ← (byte) render_screen_original::c#0 | (byte) render_screen_original::ext#0 - *((byte*) render_screen_original::screen#6) ← (byte~) render_screen_original::$10 + *((byte*) render_screen_original::screen#6) ← *((byte*) render_screen_original::oscr#2) (byte*) render_screen_original::screen#3 ← ++ (byte*) render_screen_original::screen#6 + (byte*) render_screen_original::oscr#1 ← ++ (byte*) render_screen_original::oscr#2 *((byte*) render_screen_original::cols#5) ← *((byte*) render_screen_original::ocols#2) (byte*) render_screen_original::cols#2 ← ++ (byte*) render_screen_original::cols#5 (byte*) render_screen_original::ocols#1 ← ++ (byte*) render_screen_original::ocols#2 (byte) render_screen_original::x#2 ← ++ (byte) render_screen_original::x#5 - (bool~) render_screen_original::$11 ← (byte) render_screen_original::x#2 != (byte/signed byte/word/signed word/dword/signed dword) 36 - if((bool~) render_screen_original::$11) goto render_screen_original::@3 + (bool~) render_screen_original::$5 ← (byte) render_screen_original::x#2 != (byte/signed byte/word/signed word/dword/signed dword) 36 + if((bool~) render_screen_original::$5) 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 (byte*) render_screen_original::ocols#6 ← phi( render_screen_original::@3/(byte*) render_screen_original::ocols#1 render_screen_original::@4/(byte*) render_screen_original::ocols#6 ) - (byte*) render_screen_original::oext#6 ← phi( render_screen_original::@3/(byte*) render_screen_original::oext#1 render_screen_original::@4/(byte*) render_screen_original::oext#6 ) (byte*) render_screen_original::oscr#6 ← phi( render_screen_original::@3/(byte*) render_screen_original::oscr#1 render_screen_original::@4/(byte*) render_screen_original::oscr#6 ) (byte) render_screen_original::y#3 ← phi( render_screen_original::@3/(byte) render_screen_original::y#4 render_screen_original::@4/(byte) render_screen_original::y#3 ) (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 ) @@ -779,20 +769,19 @@ render_screen_original::@4: scope:[render_screen_original] from render_screen_o *((byte*) render_screen_original::cols#6) ← (byte) BLACK#0 (byte*) render_screen_original::cols#3 ← ++ (byte*) render_screen_original::cols#6 (byte) render_screen_original::x#3 ← ++ (byte) render_screen_original::x#6 - (bool~) render_screen_original::$12 ← (byte) render_screen_original::x#3 != (byte/signed byte/word/signed word/dword/signed dword) 40 - if((bool~) render_screen_original::$12) goto render_screen_original::@4 + (bool~) render_screen_original::$6 ← (byte) render_screen_original::x#3 != (byte/signed byte/word/signed word/dword/signed dword) 40 + if((bool~) render_screen_original::$6) goto render_screen_original::@4 to:render_screen_original::@7 render_screen_original::@7: scope:[render_screen_original] from render_screen_original::@4 (byte*) render_screen_original::ocols#5 ← phi( render_screen_original::@4/(byte*) render_screen_original::ocols#6 ) - (byte*) render_screen_original::oext#5 ← phi( render_screen_original::@4/(byte*) render_screen_original::oext#6 ) (byte*) render_screen_original::oscr#5 ← phi( render_screen_original::@4/(byte*) render_screen_original::oscr#6 ) (byte*) render_screen_original::cols#8 ← phi( render_screen_original::@4/(byte*) render_screen_original::cols#3 ) (byte*) render_screen_original::screen#10 ← phi( render_screen_original::@4/(byte*) render_screen_original::screen#4 ) (byte) render_screen_original::SPACE#5 ← phi( render_screen_original::@4/(byte) render_screen_original::SPACE#2 ) (byte) render_screen_original::y#2 ← phi( render_screen_original::@4/(byte) render_screen_original::y#3 ) (byte) render_screen_original::y#1 ← (byte) render_screen_original::y#2 + rangenext(0,24) - (bool~) render_screen_original::$13 ← (byte) render_screen_original::y#1 != rangelast(0,24) - if((bool~) render_screen_original::$13) goto render_screen_original::@1 + (bool~) render_screen_original::$7 ← (byte) render_screen_original::y#1 != rangelast(0,24) + if((bool~) render_screen_original::$7) goto render_screen_original::@1 to:render_screen_original::@return render_screen_original::@return: scope:[render_screen_original] from render_screen_original::@7 return @@ -2935,8 +2924,6 @@ SYMBOL TABLE SSA (byte*) PLAYFIELD_COLORS_ORIGINAL#0 (byte) PLAYFIELD_COLS (byte) PLAYFIELD_COLS#0 -(byte*) PLAYFIELD_EXTENDED_ORIGINAL -(byte*) PLAYFIELD_EXTENDED_ORIGINAL#0 (byte) PLAYFIELD_LINES (byte) PLAYFIELD_LINES#0 (byte*) PLAYFIELD_SCREEN_1 @@ -4710,18 +4697,12 @@ SYMBOL TABLE SSA (void()) render_screen_original((byte*) render_screen_original::screen) (byte/signed byte/word/signed word/dword/signed dword~) render_screen_original::$0 (byte*~) render_screen_original::$1 -(byte~) render_screen_original::$10 -(bool~) render_screen_original::$11 -(bool~) render_screen_original::$12 -(bool~) render_screen_original::$13 (byte/signed byte/word/signed word/dword/signed dword~) render_screen_original::$2 (byte*~) render_screen_original::$3 -(byte/signed byte/word/signed word/dword/signed dword~) render_screen_original::$4 -(byte*~) render_screen_original::$5 +(bool~) render_screen_original::$4 +(bool~) render_screen_original::$5 (bool~) render_screen_original::$6 -(byte/signed word/word/dword/signed dword~) render_screen_original::$7 -(byte/signed word/word/dword/signed dword~) render_screen_original::$8 -(byte/signed word/word/dword/signed dword~) render_screen_original::$9 +(bool~) render_screen_original::$7 (label) render_screen_original::@1 (label) render_screen_original::@2 (label) render_screen_original::@3 @@ -4735,8 +4716,6 @@ SYMBOL TABLE SSA (byte) render_screen_original::SPACE#3 (byte) render_screen_original::SPACE#4 (byte) render_screen_original::SPACE#5 -(byte) render_screen_original::c -(byte) render_screen_original::c#0 (byte*) render_screen_original::cols (byte*) render_screen_original::cols#0 (byte*) render_screen_original::cols#1 @@ -4747,8 +4726,6 @@ SYMBOL TABLE SSA (byte*) render_screen_original::cols#6 (byte*) render_screen_original::cols#7 (byte*) render_screen_original::cols#8 -(byte) render_screen_original::ext -(byte) render_screen_original::ext#0 (byte*) render_screen_original::ocols (byte*) render_screen_original::ocols#0 (byte*) render_screen_original::ocols#1 @@ -4757,14 +4734,6 @@ SYMBOL TABLE SSA (byte*) render_screen_original::ocols#4 (byte*) render_screen_original::ocols#5 (byte*) render_screen_original::ocols#6 -(byte*) render_screen_original::oext -(byte*) render_screen_original::oext#0 -(byte*) render_screen_original::oext#1 -(byte*) render_screen_original::oext#2 -(byte*) render_screen_original::oext#3 -(byte*) render_screen_original::oext#4 -(byte*) render_screen_original::oext#5 -(byte*) render_screen_original::oext#6 (byte*) render_screen_original::oscr (byte*) render_screen_original::oscr#0 (byte*) render_screen_original::oscr#1 @@ -5246,16 +5215,12 @@ Alias (byte) render_show::toD0182_return#0 = (byte) render_show::toD0182_$8#0 (b Alias (byte) render_screen_render#11 = (byte) render_screen_render#3 (byte) render_screen_render#4 Alias (byte) render_screen_show#13 = (byte) render_screen_show#3 (byte) render_screen_show#4 Alias (byte*) render_screen_original::oscr#0 = (byte*~) render_screen_original::$1 -Alias (byte*) render_screen_original::oext#0 = (byte*~) render_screen_original::$3 -Alias (byte*) render_screen_original::ocols#0 = (byte*~) render_screen_original::$5 -Alias (byte) render_screen_original::c#0 = (byte/signed word/word/dword/signed dword~) render_screen_original::$7 -Alias (byte) render_screen_original::ext#0 = (byte/signed word/word/dword/signed dword~) render_screen_original::$9 +Alias (byte*) render_screen_original::ocols#0 = (byte*~) render_screen_original::$3 Alias (byte) render_screen_original::y#2 = (byte) render_screen_original::y#3 Alias (byte) render_screen_original::SPACE#2 = (byte) render_screen_original::SPACE#5 Alias (byte*) render_screen_original::screen#10 = (byte*) render_screen_original::screen#4 Alias (byte*) render_screen_original::cols#3 = (byte*) render_screen_original::cols#8 Alias (byte*) render_screen_original::oscr#5 = (byte*) render_screen_original::oscr#6 -Alias (byte*) render_screen_original::oext#5 = (byte*) render_screen_original::oext#6 Alias (byte*) render_screen_original::ocols#5 = (byte*) render_screen_original::ocols#6 Alias (byte) render_playfield::i#0 = (byte/signed word/word/dword/signed dword~) render_playfield::$0 Alias (byte) render_playfield::l#3 = (byte) render_playfield::l#4 @@ -5597,7 +5562,6 @@ Self Phi Eliminated (byte) keyboard_event_scan::row_scan#1 Self Phi Eliminated (byte) keyboard_event_scan::row#10 Self Phi Eliminated (byte) render_screen_original::SPACE#1 Self Phi Eliminated (byte*) render_screen_original::oscr#3 -Self Phi Eliminated (byte*) render_screen_original::oext#3 Self Phi Eliminated (byte*) render_screen_original::ocols#3 Self Phi Eliminated (byte) render_screen_original::y#5 Self Phi Eliminated (byte) render_screen_original::SPACE#4 @@ -5605,7 +5569,6 @@ Self Phi Eliminated (byte) render_screen_original::y#4 Self Phi Eliminated (byte) render_screen_original::SPACE#2 Self Phi Eliminated (byte) render_screen_original::y#2 Self Phi Eliminated (byte*) render_screen_original::oscr#5 -Self Phi Eliminated (byte*) render_screen_original::oext#5 Self Phi Eliminated (byte*) render_screen_original::ocols#5 Self Phi Eliminated (byte) render_playfield::l#3 Self Phi Eliminated (byte) render_screen_render#20 @@ -5662,7 +5625,6 @@ Redundant Phi (byte) render_screen_render#10 (byte) render_screen_render#18 Redundant Phi (byte) render_screen_show#12 (byte) render_screen_show#18 Redundant Phi (byte) render_screen_original::SPACE#1 (byte) render_screen_original::SPACE#3 Redundant Phi (byte*) render_screen_original::oscr#3 (byte*) render_screen_original::oscr#4 -Redundant Phi (byte*) render_screen_original::oext#3 (byte*) render_screen_original::oext#4 Redundant Phi (byte*) render_screen_original::ocols#3 (byte*) render_screen_original::ocols#4 Redundant Phi (byte) render_screen_original::y#5 (byte) render_screen_original::y#6 Redundant Phi (byte) render_screen_original::SPACE#4 (byte) render_screen_original::SPACE#1 @@ -5670,7 +5632,6 @@ Redundant Phi (byte) render_screen_original::y#4 (byte) render_screen_original:: Redundant Phi (byte) render_screen_original::SPACE#2 (byte) render_screen_original::SPACE#4 Redundant Phi (byte) render_screen_original::y#2 (byte) render_screen_original::y#4 Redundant Phi (byte*) render_screen_original::oscr#5 (byte*) render_screen_original::oscr#1 -Redundant Phi (byte*) render_screen_original::oext#5 (byte*) render_screen_original::oext#1 Redundant Phi (byte*) render_screen_original::ocols#5 (byte*) render_screen_original::ocols#1 Redundant Phi (byte) render_playfield::l#3 (byte) render_playfield::l#2 Redundant Phi (byte) render_screen_render#20 (byte) render_screen_render#12 @@ -5827,10 +5788,10 @@ Simple Condition (bool~) keyboard_event_scan::$28 if((byte~) keyboard_event_scan Simple Condition (bool~) keyboard_event_get::$0 if((byte) keyboard_events_size#13==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_get::@1 Simple Condition (bool~) render_init::$15 if((byte) render_init::i#1!=rangelast(0,render_init::$12)) goto render_init::@1 Simple Condition (bool~) render_show::$0 if((byte) render_screen_show#16==(byte/signed byte/word/signed word/dword/signed dword) 0) goto render_show::@1 -Simple Condition (bool~) render_screen_original::$6 if((byte) render_screen_original::x#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_screen_original::@2 -Simple Condition (bool~) render_screen_original::$11 if((byte) render_screen_original::x#2!=(byte/signed byte/word/signed word/dword/signed dword) 36) goto render_screen_original::@3 -Simple Condition (bool~) render_screen_original::$12 if((byte) render_screen_original::x#3!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto render_screen_original::@4 -Simple Condition (bool~) render_screen_original::$13 if((byte) render_screen_original::y#1!=rangelast(0,24)) goto render_screen_original::@1 +Simple Condition (bool~) render_screen_original::$4 if((byte) render_screen_original::x#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_screen_original::@2 +Simple Condition (bool~) render_screen_original::$5 if((byte) render_screen_original::x#2!=(byte/signed byte/word/signed word/dword/signed dword) 36) goto render_screen_original::@3 +Simple Condition (bool~) render_screen_original::$6 if((byte) render_screen_original::x#3!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto render_screen_original::@4 +Simple Condition (bool~) render_screen_original::$7 if((byte) render_screen_original::y#1!=rangelast(0,24)) goto render_screen_original::@1 Simple Condition (bool~) render_playfield::$5 if((byte) render_playfield::c#1!=rangelast(0,render_playfield::$4)) goto render_playfield::@2 Simple Condition (bool~) render_playfield::$6 if((byte) render_playfield::l#1!=rangelast(2,render_playfield::$1)) goto render_playfield::@1 Simple Condition (bool~) render_current::$11 if((byte) render_current::l#1!=rangelast(0,3)) goto render_current::@1 @@ -6052,7 +6013,6 @@ Constant (const byte*) PLAYFIELD_SCREEN_1#0 = ((byte*))1024 Constant (const byte*) PLAYFIELD_SCREEN_2#0 = ((byte*))11264 Constant (const byte*) PLAYFIELD_SCREEN_ORIGINAL#0 = ((byte*))6144 Constant (const byte*) PLAYFIELD_COLORS_ORIGINAL#0 = ((byte*))7168 -Constant (const byte*) PLAYFIELD_EXTENDED_ORIGINAL#0 = ((byte*))5120 Constant (const byte*) PLAYFIELD_SPRITES#0 = ((byte*))8192 Constant (const byte*) PLAYFIELD_CHARSET#0 = ((byte*))10240 Constant (const byte) PLAYFIELD_LINES#0 = 22 @@ -6069,7 +6029,6 @@ Constant (const byte) render_show::d018val#0 = 0 Constant (const byte) render_screen_original::SPACE#0 = 0 Constant (const byte/signed byte/word/signed word/dword/signed dword) render_screen_original::$0 = 32*2 Constant (const byte/signed byte/word/signed word/dword/signed dword) render_screen_original::$2 = 32*2 -Constant (const byte/signed byte/word/signed word/dword/signed dword) render_screen_original::$4 = 32*2 Constant (const byte) render_screen_original::y#0 = 0 Constant (const byte) render_screen_original::x#0 = 0 Constant (const byte) render_playfield::l#0 = 2 @@ -6159,8 +6118,7 @@ Constant (const byte*) render_show::toD0181_gfx#0 = PLAYFIELD_CHARSET#0 Constant (const byte*) render_show::toD0182_screen#0 = PLAYFIELD_SCREEN_2#0 Constant (const byte*) render_show::toD0182_gfx#0 = PLAYFIELD_CHARSET#0 Constant (const byte*) render_screen_original::oscr#0 = PLAYFIELD_SCREEN_ORIGINAL#0+render_screen_original::$0 -Constant (const byte*) render_screen_original::oext#0 = PLAYFIELD_EXTENDED_ORIGINAL#0+render_screen_original::$2 -Constant (const byte*) render_screen_original::ocols#0 = PLAYFIELD_COLORS_ORIGINAL#0+render_screen_original::$4 +Constant (const byte*) render_screen_original::ocols#0 = PLAYFIELD_COLORS_ORIGINAL#0+render_screen_original::$2 Constant (const byte*) render_screen_original::cols#0 = COLS#0 Constant (const byte) render_playfield::i#0 = PLAYFIELD_COLS#0*2 Constant (const byte/signed word/word/dword/signed dword) render_playfield::$1 = PLAYFIELD_LINES#0-1 @@ -6394,7 +6352,6 @@ Inlining constant with var siblings (const byte) render_screen_original::x#0 Inlining constant with var siblings (const byte*) render_screen_original::screen#0 Inlining constant with var siblings (const byte*) render_screen_original::screen#1 Inlining constant with var siblings (const byte*) render_screen_original::oscr#0 -Inlining constant with var siblings (const byte*) render_screen_original::oext#0 Inlining constant with var siblings (const byte*) render_screen_original::ocols#0 Inlining constant with var siblings (const byte*) render_screen_original::cols#0 Inlining constant with var siblings (const byte) render_playfield::l#0 @@ -6476,7 +6433,6 @@ Constant inlined toSpritePtr1_$1#0 = ((word))(const byte*) PLAYFIELD_SPRITES#0>> Constant inlined render_show::toD0182_gfx#0 = (const byte*) PLAYFIELD_CHARSET#0 Constant inlined render_show::toD0181_$3#0 = >((word))(const byte*) PLAYFIELD_SCREEN_1#0&(word/signed word/dword/signed dword) 16383<<(byte/signed byte/word/signed word/dword/signed dword) 2 Constant inlined render_screen_original::$2 = (byte/signed byte/word/signed word/dword/signed dword) 32*(byte/signed byte/word/signed word/dword/signed dword) 2 -Constant inlined render_screen_original::$4 = (byte/signed byte/word/signed word/dword/signed dword) 32*(byte/signed byte/word/signed word/dword/signed dword) 2 Constant inlined render_init::$9 = (byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) 40 Constant inlined play_lock_current::i#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined play_remove_lines::y#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 @@ -6517,7 +6473,6 @@ Constant inlined $26 = (const byte) PLAYFIELD_LINES#0+(byte/signed byte/word/sig Constant inlined keyboard_event_pressed::keycode#3 = (const byte) KEY_COMMODORE#0 Constant inlined keyboard_event_pressed::keycode#2 = (const byte) KEY_CTRL#0 Constant inlined render_init::i#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined render_screen_original::oext#0 = (const byte*) PLAYFIELD_EXTENDED_ORIGINAL#0+(byte/signed byte/word/signed word/dword/signed dword) 32*(byte/signed byte/word/signed word/dword/signed dword) 2 Constant inlined keyboard_event_pressed::keycode#1 = (const byte) KEY_RSHIFT#0 Constant inlined keyboard_event_pressed::keycode#0 = (const byte) KEY_LSHIFT#0 Constant inlined sprites_irq::toSpritePtr2_$1#0 = ((word))(const byte*) PLAYFIELD_SPRITES#0>>(byte/signed byte/word/signed word/dword/signed dword) 6 @@ -6684,223 +6639,220 @@ Adding NOP phi() at start of render_init::vicSelectGfxBank1_toDd001 Adding NOP phi() at start of render_init::@4 Adding NOP phi() at start of sprites_irq::toSpritePtr2 CALL GRAPH -Calls in [] to main:13 -Calls in [main] to sid_rnd_init:16 render_init:18 sprites_init:20 sprites_irq_init:22 play_init:24 play_spawn_current:26 render_playfield:28 render_current:33 render_show:42 keyboard_event_scan:44 keyboard_event_get:46 play_move_down:50 play_move_leftright:55 play_move_rotate:60 render_playfield:66 render_current:72 render_screen_swap:74 -Calls in [play_move_rotate] to play_collision:168 -Calls in [play_move_leftright] to play_collision:220 play_collision:237 -Calls in [play_move_down] to keyboard_event_pressed:248 play_collision:268 play_lock_current:273 play_remove_lines:275 play_spawn_current:277 -Calls in [play_spawn_current] to sid_rnd:319 -Calls in [keyboard_event_scan] to keyboard_matrix_read:403 keyboard_event_pressed:414 keyboard_event_pressed:420 keyboard_event_pressed:427 keyboard_event_pressed:434 -Calls in [render_init] to render_screen_original:533 render_screen_original:535 +Calls in [] to main:12 +Calls in [main] to sid_rnd_init:15 render_init:17 sprites_init:19 sprites_irq_init:21 play_init:23 play_spawn_current:25 render_playfield:27 render_current:32 render_show:41 keyboard_event_scan:43 keyboard_event_get:45 play_move_down:49 play_move_leftright:54 play_move_rotate:59 render_playfield:65 render_current:71 render_screen_swap:73 +Calls in [play_move_rotate] to play_collision:167 +Calls in [play_move_leftright] to play_collision:219 play_collision:236 +Calls in [play_move_down] to keyboard_event_pressed:247 play_collision:267 play_lock_current:272 play_remove_lines:274 play_spawn_current:276 +Calls in [play_spawn_current] to sid_rnd:318 +Calls in [keyboard_event_scan] to keyboard_matrix_read:402 keyboard_event_pressed:413 keyboard_event_pressed:419 keyboard_event_pressed:426 keyboard_event_pressed:433 +Calls in [render_init] to render_screen_original:532 render_screen_original:534 -Created 124 initial phi equivalence classes -Not coalescing [29] current_ypos#84 ← current_ypos#18 -Not coalescing [30] current_xpos#110 ← current_xpos#23 -Not coalescing [31] current_piece_gfx#100 ← current_piece_gfx#16 -Not coalescing [32] current_piece_char#88 ← current_piece_char#12 -Coalesced [35] current_piece_gfx#97 ← current_piece_gfx#16 -Coalesced [36] current_xpos#107 ← current_xpos#23 -Coalesced [37] current_ypos#81 ← current_ypos#18 -Coalesced [38] current_piece_char#85 ← current_piece_char#12 -Not coalescing [65] render_screen_render#63 ← render_screen_render#16 -Not coalescing [67] current_ypos#85 ← current_ypos#13 -Not coalescing [68] render_screen_render#62 ← render_screen_render#16 -Not coalescing [69] current_xpos#111 ← current_xpos#19 -Not coalescing [70] current_piece_gfx#101 ← current_piece_gfx#14 -Not coalescing [71] current_piece_char#89 ← current_piece_char#1 -Coalesced [75] render_screen_show#57 ← render_screen_show#13 -Coalesced [76] render_screen_render#61 ← render_screen_render#11 -Coalesced [77] current_piece#72 ← current_piece#10 -Coalesced [78] current_orientation#75 ← current_orientation#19 -Coalesced [79] current_piece_gfx#98 ← current_piece_gfx#14 -Coalesced [80] current_xpos#108 ← current_xpos#19 -Coalesced [81] current_ypos#82 ← current_ypos#13 -Coalesced [82] current_piece_char#86 ← current_piece_char#1 -Coalesced [83] keyboard_events_size#79 ← keyboard_events_size#16 -Coalesced [84] current_movedown_counter#48 ← current_movedown_counter#10 -Coalesced (already) [85] current_piece#73 ← current_piece#10 -Coalesced (already) [86] current_orientation#76 ← current_orientation#19 -Coalesced (already) [87] current_piece_gfx#99 ← current_piece_gfx#14 -Coalesced (already) [88] current_xpos#109 ← current_xpos#19 -Coalesced (already) [89] current_ypos#83 ← current_ypos#13 -Coalesced (already) [90] current_piece_char#87 ← current_piece_char#1 -Coalesced (already) [91] keyboard_events_size#80 ← keyboard_events_size#16 -Coalesced (already) [92] current_movedown_counter#49 ← current_movedown_counter#10 -Coalesced [98] render_current::ypos2#11 ← render_current::ypos2#0 -Coalesced [102] render_current::i#14 ← render_current::i#1 -Coalesced [108] render_current::ypos2#12 ← render_current::ypos2#1 -Coalesced [109] render_current::i#12 ← render_current::i#8 -Coalesced [110] render_current::l#11 ← render_current::l#1 -Coalesced [115] render_current::i#15 ← render_current::i#3 -Coalesced [116] render_current::xpos#7 ← render_current::xpos#0 -Coalesced [126] render_current::i#13 ← render_current::i#10 -Coalesced (already) [127] render_current::i#16 ← render_current::i#10 -Coalesced [128] render_current::xpos#8 ← render_current::xpos#1 -Coalesced [129] render_current::c#7 ← render_current::c#1 -Coalesced [135] render_playfield::i#6 ← render_playfield::i#3 -Coalesced [136] render_playfield::screen_line#3 ← render_playfield::screen_line#0 -Coalesced [146] render_playfield::l#5 ← render_playfield::l#1 -Coalesced [147] render_playfield::i#5 ← render_playfield::i#1 -Coalesced (already) [148] render_playfield::i#7 ← render_playfield::i#1 -Coalesced [149] render_playfield::screen_line#4 ← render_playfield::screen_line#1 -Coalesced [150] render_playfield::c#3 ← render_playfield::c#1 -Coalesced [153] current_orientation#79 ← current_orientation#14 -Coalesced [154] current_piece_gfx#104 ← current_piece_gfx#1 -Coalesced [159] play_move_rotate::orientation#7 ← play_move_rotate::orientation#2 -Not coalescing [164] current_piece#77 ← current_piece#10 -Coalesced [165] play_collision::orientation#8 ← play_collision::orientation#3 -Coalesced [166] play_collision::ypos#8 ← play_collision::ypos#3 -Coalesced [167] play_collision::xpos#17 ← play_collision::xpos#3 -Coalesced [174] current_orientation#77 ← current_orientation#4 -Coalesced [175] current_piece_gfx#102 ← current_piece_gfx#3 -Coalesced (already) [176] current_orientation#78 ← current_orientation#14 -Coalesced (already) [177] current_piece_gfx#103 ← current_piece_gfx#1 -Coalesced [180] play_move_rotate::orientation#6 ← play_move_rotate::orientation#1 -Coalesced [184] play_collision::ypos2#11 ← play_collision::ypos2#0 -Coalesced [187] play_collision::i#12 ← play_collision::i#3 -Not coalescing [188] play_collision::col#9 ← play_collision::xpos#5 -Coalesced [205] play_collision::ypos2#12 ← play_collision::ypos2#1 -Not coalescing [206] play_collision::i#11 ← play_collision::i#1 -Coalesced [207] play_collision::l#11 ← play_collision::l#1 -Not coalescing [208] play_collision::i#13 ← play_collision::i#1 -Coalesced [209] play_collision::col#10 ← play_collision::col#1 -Coalesced [210] play_collision::c#9 ← play_collision::c#1 -Not coalescing [216] current_piece#76 ← current_piece#10 -Coalesced [217] play_collision::orientation#7 ← play_collision::orientation#2 -Coalesced [218] play_collision::ypos#7 ← play_collision::ypos#2 -Coalesced [219] play_collision::xpos#16 ← play_collision::xpos#2 -Coalesced [225] current_xpos#114 ← current_xpos#2 -Coalesced [228] current_xpos#113 ← current_xpos#1 -Coalesced (already) [229] current_xpos#116 ← current_xpos#1 -Not coalescing [233] current_piece#75 ← current_piece#10 -Coalesced [234] play_collision::orientation#6 ← play_collision::orientation#1 -Coalesced [235] play_collision::ypos#6 ← play_collision::ypos#1 -Coalesced [236] play_collision::xpos#15 ← play_collision::xpos#1 -Coalesced [242] current_xpos#112 ← current_xpos#4 -Coalesced (already) [243] current_xpos#115 ← current_xpos#1 -Coalesced [254] play_move_down::movedown#13 ← play_move_down::movedown#2 -Coalesced [258] play_move_down::movedown#16 ← play_move_down::movedown#3 -Not coalescing [264] current_piece#74 ← current_piece#16 -Coalesced [265] play_collision::orientation#5 ← play_collision::orientation#0 -Coalesced [266] play_collision::ypos#5 ← play_collision::ypos#0 -Coalesced [267] play_collision::xpos#14 ← play_collision::xpos#0 -Coalesced [278] current_ypos#86 ← current_ypos#18 -Coalesced [280] current_piece_gfx#105 ← current_piece_gfx#16 -Coalesced [281] current_xpos#117 ← current_xpos#23 -Coalesced [282] current_piece_char#90 ← current_piece_char#12 -Coalesced (already) [284] current_ypos#89 ← current_ypos#29 -Coalesced [285] current_piece#81 ← current_piece#20 -Coalesced [286] current_orientation#82 ← current_orientation#29 -Coalesced (already) [287] current_piece_gfx#108 ← current_piece_gfx#26 -Coalesced (already) [288] current_xpos#120 ← current_xpos#33 -Coalesced (already) [289] current_piece_char#93 ← current_piece_char#20 -Coalesced [293] current_ypos#87 ← current_ypos#0 -Coalesced (already) [294] current_piece#79 ← current_piece#16 -Coalesced (already) [295] current_orientation#80 ← current_orientation#10 -Coalesced (already) [296] current_piece_gfx#106 ← current_piece_gfx#20 -Coalesced (already) [297] current_xpos#118 ← current_xpos#10 -Coalesced (already) [298] current_piece_char#91 ← current_piece_char#15 -Coalesced [299] current_movedown_counter#50 ← current_movedown_counter#1 -Coalesced (already) [300] current_ypos#88 ← current_ypos#21 -Coalesced (already) [301] current_piece#80 ← current_piece#16 -Coalesced (already) [302] current_orientation#81 ← current_orientation#10 -Coalesced (already) [303] current_piece_gfx#107 ← current_piece_gfx#20 -Coalesced (already) [304] current_xpos#119 ← current_xpos#10 -Coalesced (already) [305] current_piece_char#92 ← current_piece_char#15 -Coalesced [306] play_move_down::movedown#17 ← play_move_down::movedown#7 -Coalesced [307] play_move_down::movedown#15 ← play_move_down::movedown#10 -Coalesced (already) [308] play_move_down::movedown#14 ← play_move_down::movedown#10 -Coalesced [323] play_spawn_current::piece_idx#4 ← play_spawn_current::piece_idx#1 -Coalesced [328] play_remove_lines::r#10 ← play_remove_lines::r#3 -Coalesced [329] play_remove_lines::w#14 ← play_remove_lines::w#12 -Coalesced [342] play_remove_lines::w#16 ← play_remove_lines::w#2 -Coalesced [346] play_remove_lines::w#18 ← play_remove_lines::w#11 -Coalesced [352] play_remove_lines::w#19 ← play_remove_lines::w#3 -Coalesced [353] play_remove_lines::r#9 ← play_remove_lines::r#1 -Coalesced [354] play_remove_lines::w#13 ← play_remove_lines::w#11 -Coalesced [355] play_remove_lines::y#9 ← play_remove_lines::y#1 -Coalesced [356] play_remove_lines::w#17 ← play_remove_lines::w#1 -Coalesced (already) [357] play_remove_lines::r#11 ← play_remove_lines::r#1 -Coalesced (already) [358] play_remove_lines::w#15 ← play_remove_lines::w#1 -Coalesced [359] play_remove_lines::x#5 ← play_remove_lines::x#1 -Coalesced [360] play_remove_lines::full#5 ← play_remove_lines::full#2 -Coalesced (already) [361] play_remove_lines::full#6 ← play_remove_lines::full#4 -Coalesced [363] play_lock_current::ypos2#7 ← play_lock_current::ypos2#0 -Coalesced [367] play_lock_current::i#8 ← play_lock_current::i#3 -Coalesced [368] play_lock_current::col#5 ← play_lock_current::col#0 -Coalesced [380] play_lock_current::ypos2#8 ← play_lock_current::ypos2#1 -Not coalescing [381] play_lock_current::i#7 ← play_lock_current::i#1 -Coalesced [382] play_lock_current::l#7 ← play_lock_current::l#1 -Not coalescing [383] play_lock_current::i#9 ← play_lock_current::i#1 -Coalesced [384] play_lock_current::col#6 ← play_lock_current::col#1 -Coalesced [385] play_lock_current::c#5 ← play_lock_current::c#1 -Coalesced [395] keyboard_event_get::return#6 ← keyboard_event_get::return#1 -Coalesced [396] keyboard_events_size#82 ← keyboard_events_size#4 -Coalesced [399] keyboard_events_size#81 ← keyboard_events_size#13 -Coalesced [400] keyboard_events_size#83 ← keyboard_events_size#19 -Coalesced [408] keyboard_event_scan::keycode#17 ← keyboard_event_scan::keycode#1 -Coalesced (already) [409] keyboard_events_size#85 ← keyboard_events_size#29 -Coalesced [425] keyboard_modifiers#60 ← keyboard_modifiers#3 -Coalesced [432] keyboard_modifiers#62 ← keyboard_modifiers#4 -Coalesced [440] keyboard_modifiers#63 ← keyboard_modifiers#12 -Coalesced [441] keyboard_modifiers#61 ← keyboard_modifiers#11 -Coalesced [442] keyboard_event_scan::row#15 ← keyboard_event_scan::row#1 -Coalesced [443] keyboard_event_scan::keycode#16 ← keyboard_event_scan::keycode#14 -Coalesced (already) [444] keyboard_events_size#84 ← keyboard_events_size#13 -Coalesced [445] keyboard_event_scan::keycode#19 ← keyboard_event_scan::keycode#11 -Coalesced [446] keyboard_events_size#87 ← keyboard_events_size#29 -Coalesced [456] keyboard_events_size#89 ← keyboard_events_size#2 -Coalesced [462] keyboard_event_scan::keycode#18 ← keyboard_event_scan::keycode#15 -Coalesced [463] keyboard_events_size#86 ← keyboard_events_size#30 -Coalesced [464] keyboard_event_scan::col#9 ← keyboard_event_scan::col#1 -Coalesced (already) [465] keyboard_event_scan::keycode#20 ← keyboard_event_scan::keycode#15 -Coalesced (already) [466] keyboard_events_size#88 ← keyboard_events_size#30 -Coalesced [470] keyboard_events_size#92 ← keyboard_events_size#1 -Coalesced (already) [471] keyboard_events_size#91 ← keyboard_events_size#10 -Coalesced (already) [472] keyboard_events_size#90 ← keyboard_events_size#10 -Coalesced [494] play_init::j#3 ← play_init::j#1 -Coalesced [495] play_init::pli#3 ← play_init::pli#1 -Coalesced [496] play_init::idx#3 ← play_init::idx#1 -Coalesced [521] sprites_init::s#3 ← sprites_init::s#1 -Coalesced [522] sprites_init::xpos#3 ← sprites_init::xpos#1 -Coalesced [546] render_init::i#3 ← render_init::i#1 -Coalesced [547] render_init::li_1#3 ← render_init::li_1#1 -Coalesced [548] render_init::li_2#3 ← render_init::li_2#1 -Coalesced [550] render_screen_original::screen#11 ← render_screen_original::screen#9 -Coalesced [552] render_screen_original::screen#13 ← render_screen_original::screen#8 -Coalesced [553] render_screen_original::cols#10 ← render_screen_original::cols#7 -Coalesced [561] render_screen_original::oscr#8 ← render_screen_original::oscr#4 -Coalesced [562] render_screen_original::oext#8 ← render_screen_original::oext#4 -Coalesced [563] render_screen_original::screen#15 ← render_screen_original::screen#2 -Coalesced [564] render_screen_original::ocols#8 ← render_screen_original::ocols#4 -Coalesced [565] render_screen_original::cols#12 ← render_screen_original::cols#1 -Coalesced [566] render_screen_original::x#8 ← render_screen_original::x#1 -Coalesced [581] render_screen_original::screen#17 ← render_screen_original::screen#3 -Coalesced [582] render_screen_original::cols#14 ← render_screen_original::cols#2 -Coalesced [583] render_screen_original::x#10 ← render_screen_original::x#2 -Coalesced [594] render_screen_original::screen#12 ← render_screen_original::screen#10 -Coalesced [595] render_screen_original::cols#9 ← render_screen_original::cols#3 -Coalesced [596] render_screen_original::oscr#7 ← render_screen_original::oscr#1 -Coalesced [597] render_screen_original::oext#7 ← render_screen_original::oext#1 -Coalesced [598] render_screen_original::ocols#7 ← render_screen_original::ocols#1 -Coalesced [599] render_screen_original::y#7 ← render_screen_original::y#1 -Coalesced [600] render_screen_original::screen#18 ← render_screen_original::screen#10 -Coalesced [601] render_screen_original::cols#15 ← render_screen_original::cols#3 -Coalesced [602] render_screen_original::x#11 ← render_screen_original::x#3 -Coalesced (already) [603] render_screen_original::oscr#9 ← render_screen_original::oscr#1 -Coalesced (already) [604] render_screen_original::oext#9 ← render_screen_original::oext#1 -Coalesced [605] render_screen_original::screen#16 ← render_screen_original::screen#3 -Coalesced (already) [606] render_screen_original::ocols#9 ← render_screen_original::ocols#1 -Coalesced [607] render_screen_original::cols#13 ← render_screen_original::cols#2 -Coalesced [608] render_screen_original::x#9 ← render_screen_original::x#2 -Coalesced (already) [609] render_screen_original::screen#14 ← render_screen_original::screen#2 -Coalesced (already) [610] render_screen_original::cols#11 ← render_screen_original::cols#1 -Coalesced [611] render_screen_original::x#7 ← render_screen_original::x#1 -Coalesced [634] irq_raster_next#24 ← irq_raster_next#2 -Coalesced [640] sprites_irq::raster_next#4 ← sprites_irq::raster_next#1 -Coalesced [645] sprites_irq::raster_next#5 ← sprites_irq::raster_next#0 -Coalesced [651] irq_raster_next#25 ← irq_raster_next#1 -Coalesced down to 77 phi equivalence classes +Created 122 initial phi equivalence classes +Not coalescing [28] current_ypos#84 ← current_ypos#18 +Not coalescing [29] current_xpos#110 ← current_xpos#23 +Not coalescing [30] current_piece_gfx#100 ← current_piece_gfx#16 +Not coalescing [31] current_piece_char#88 ← current_piece_char#12 +Coalesced [34] current_piece_gfx#97 ← current_piece_gfx#16 +Coalesced [35] current_xpos#107 ← current_xpos#23 +Coalesced [36] current_ypos#81 ← current_ypos#18 +Coalesced [37] current_piece_char#85 ← current_piece_char#12 +Not coalescing [64] render_screen_render#63 ← render_screen_render#16 +Not coalescing [66] current_ypos#85 ← current_ypos#13 +Not coalescing [67] render_screen_render#62 ← render_screen_render#16 +Not coalescing [68] current_xpos#111 ← current_xpos#19 +Not coalescing [69] current_piece_gfx#101 ← current_piece_gfx#14 +Not coalescing [70] current_piece_char#89 ← current_piece_char#1 +Coalesced [74] render_screen_show#57 ← render_screen_show#13 +Coalesced [75] render_screen_render#61 ← render_screen_render#11 +Coalesced [76] current_piece#72 ← current_piece#10 +Coalesced [77] current_orientation#75 ← current_orientation#19 +Coalesced [78] current_piece_gfx#98 ← current_piece_gfx#14 +Coalesced [79] current_xpos#108 ← current_xpos#19 +Coalesced [80] current_ypos#82 ← current_ypos#13 +Coalesced [81] current_piece_char#86 ← current_piece_char#1 +Coalesced [82] keyboard_events_size#79 ← keyboard_events_size#16 +Coalesced [83] current_movedown_counter#48 ← current_movedown_counter#10 +Coalesced (already) [84] current_piece#73 ← current_piece#10 +Coalesced (already) [85] current_orientation#76 ← current_orientation#19 +Coalesced (already) [86] current_piece_gfx#99 ← current_piece_gfx#14 +Coalesced (already) [87] current_xpos#109 ← current_xpos#19 +Coalesced (already) [88] current_ypos#83 ← current_ypos#13 +Coalesced (already) [89] current_piece_char#87 ← current_piece_char#1 +Coalesced (already) [90] keyboard_events_size#80 ← keyboard_events_size#16 +Coalesced (already) [91] current_movedown_counter#49 ← current_movedown_counter#10 +Coalesced [97] render_current::ypos2#11 ← render_current::ypos2#0 +Coalesced [101] render_current::i#14 ← render_current::i#1 +Coalesced [107] render_current::ypos2#12 ← render_current::ypos2#1 +Coalesced [108] render_current::i#12 ← render_current::i#8 +Coalesced [109] render_current::l#11 ← render_current::l#1 +Coalesced [114] render_current::i#15 ← render_current::i#3 +Coalesced [115] render_current::xpos#7 ← render_current::xpos#0 +Coalesced [125] render_current::i#13 ← render_current::i#10 +Coalesced (already) [126] render_current::i#16 ← render_current::i#10 +Coalesced [127] render_current::xpos#8 ← render_current::xpos#1 +Coalesced [128] render_current::c#7 ← render_current::c#1 +Coalesced [134] render_playfield::i#6 ← render_playfield::i#3 +Coalesced [135] render_playfield::screen_line#3 ← render_playfield::screen_line#0 +Coalesced [145] render_playfield::l#5 ← render_playfield::l#1 +Coalesced [146] render_playfield::i#5 ← render_playfield::i#1 +Coalesced (already) [147] render_playfield::i#7 ← render_playfield::i#1 +Coalesced [148] render_playfield::screen_line#4 ← render_playfield::screen_line#1 +Coalesced [149] render_playfield::c#3 ← render_playfield::c#1 +Coalesced [152] current_orientation#79 ← current_orientation#14 +Coalesced [153] current_piece_gfx#104 ← current_piece_gfx#1 +Coalesced [158] play_move_rotate::orientation#7 ← play_move_rotate::orientation#2 +Not coalescing [163] current_piece#77 ← current_piece#10 +Coalesced [164] play_collision::orientation#8 ← play_collision::orientation#3 +Coalesced [165] play_collision::ypos#8 ← play_collision::ypos#3 +Coalesced [166] play_collision::xpos#17 ← play_collision::xpos#3 +Coalesced [173] current_orientation#77 ← current_orientation#4 +Coalesced [174] current_piece_gfx#102 ← current_piece_gfx#3 +Coalesced (already) [175] current_orientation#78 ← current_orientation#14 +Coalesced (already) [176] current_piece_gfx#103 ← current_piece_gfx#1 +Coalesced [179] play_move_rotate::orientation#6 ← play_move_rotate::orientation#1 +Coalesced [183] play_collision::ypos2#11 ← play_collision::ypos2#0 +Coalesced [186] play_collision::i#12 ← play_collision::i#3 +Not coalescing [187] play_collision::col#9 ← play_collision::xpos#5 +Coalesced [204] play_collision::ypos2#12 ← play_collision::ypos2#1 +Not coalescing [205] play_collision::i#11 ← play_collision::i#1 +Coalesced [206] play_collision::l#11 ← play_collision::l#1 +Not coalescing [207] play_collision::i#13 ← play_collision::i#1 +Coalesced [208] play_collision::col#10 ← play_collision::col#1 +Coalesced [209] play_collision::c#9 ← play_collision::c#1 +Not coalescing [215] current_piece#76 ← current_piece#10 +Coalesced [216] play_collision::orientation#7 ← play_collision::orientation#2 +Coalesced [217] play_collision::ypos#7 ← play_collision::ypos#2 +Coalesced [218] play_collision::xpos#16 ← play_collision::xpos#2 +Coalesced [224] current_xpos#114 ← current_xpos#2 +Coalesced [227] current_xpos#113 ← current_xpos#1 +Coalesced (already) [228] current_xpos#116 ← current_xpos#1 +Not coalescing [232] current_piece#75 ← current_piece#10 +Coalesced [233] play_collision::orientation#6 ← play_collision::orientation#1 +Coalesced [234] play_collision::ypos#6 ← play_collision::ypos#1 +Coalesced [235] play_collision::xpos#15 ← play_collision::xpos#1 +Coalesced [241] current_xpos#112 ← current_xpos#4 +Coalesced (already) [242] current_xpos#115 ← current_xpos#1 +Coalesced [253] play_move_down::movedown#13 ← play_move_down::movedown#2 +Coalesced [257] play_move_down::movedown#16 ← play_move_down::movedown#3 +Not coalescing [263] current_piece#74 ← current_piece#16 +Coalesced [264] play_collision::orientation#5 ← play_collision::orientation#0 +Coalesced [265] play_collision::ypos#5 ← play_collision::ypos#0 +Coalesced [266] play_collision::xpos#14 ← play_collision::xpos#0 +Coalesced [277] current_ypos#86 ← current_ypos#18 +Coalesced [279] current_piece_gfx#105 ← current_piece_gfx#16 +Coalesced [280] current_xpos#117 ← current_xpos#23 +Coalesced [281] current_piece_char#90 ← current_piece_char#12 +Coalesced (already) [283] current_ypos#89 ← current_ypos#29 +Coalesced [284] current_piece#81 ← current_piece#20 +Coalesced [285] current_orientation#82 ← current_orientation#29 +Coalesced (already) [286] current_piece_gfx#108 ← current_piece_gfx#26 +Coalesced (already) [287] current_xpos#120 ← current_xpos#33 +Coalesced (already) [288] current_piece_char#93 ← current_piece_char#20 +Coalesced [292] current_ypos#87 ← current_ypos#0 +Coalesced (already) [293] current_piece#79 ← current_piece#16 +Coalesced (already) [294] current_orientation#80 ← current_orientation#10 +Coalesced (already) [295] current_piece_gfx#106 ← current_piece_gfx#20 +Coalesced (already) [296] current_xpos#118 ← current_xpos#10 +Coalesced (already) [297] current_piece_char#91 ← current_piece_char#15 +Coalesced [298] current_movedown_counter#50 ← current_movedown_counter#1 +Coalesced (already) [299] current_ypos#88 ← current_ypos#21 +Coalesced (already) [300] current_piece#80 ← current_piece#16 +Coalesced (already) [301] current_orientation#81 ← current_orientation#10 +Coalesced (already) [302] current_piece_gfx#107 ← current_piece_gfx#20 +Coalesced (already) [303] current_xpos#119 ← current_xpos#10 +Coalesced (already) [304] current_piece_char#92 ← current_piece_char#15 +Coalesced [305] play_move_down::movedown#17 ← play_move_down::movedown#7 +Coalesced [306] play_move_down::movedown#15 ← play_move_down::movedown#10 +Coalesced (already) [307] play_move_down::movedown#14 ← play_move_down::movedown#10 +Coalesced [322] play_spawn_current::piece_idx#4 ← play_spawn_current::piece_idx#1 +Coalesced [327] play_remove_lines::r#10 ← play_remove_lines::r#3 +Coalesced [328] play_remove_lines::w#14 ← play_remove_lines::w#12 +Coalesced [341] play_remove_lines::w#16 ← play_remove_lines::w#2 +Coalesced [345] play_remove_lines::w#18 ← play_remove_lines::w#11 +Coalesced [351] play_remove_lines::w#19 ← play_remove_lines::w#3 +Coalesced [352] play_remove_lines::r#9 ← play_remove_lines::r#1 +Coalesced [353] play_remove_lines::w#13 ← play_remove_lines::w#11 +Coalesced [354] play_remove_lines::y#9 ← play_remove_lines::y#1 +Coalesced [355] play_remove_lines::w#17 ← play_remove_lines::w#1 +Coalesced (already) [356] play_remove_lines::r#11 ← play_remove_lines::r#1 +Coalesced (already) [357] play_remove_lines::w#15 ← play_remove_lines::w#1 +Coalesced [358] play_remove_lines::x#5 ← play_remove_lines::x#1 +Coalesced [359] play_remove_lines::full#5 ← play_remove_lines::full#2 +Coalesced (already) [360] play_remove_lines::full#6 ← play_remove_lines::full#4 +Coalesced [362] play_lock_current::ypos2#7 ← play_lock_current::ypos2#0 +Coalesced [366] play_lock_current::i#8 ← play_lock_current::i#3 +Coalesced [367] play_lock_current::col#5 ← play_lock_current::col#0 +Coalesced [379] play_lock_current::ypos2#8 ← play_lock_current::ypos2#1 +Not coalescing [380] play_lock_current::i#7 ← play_lock_current::i#1 +Coalesced [381] play_lock_current::l#7 ← play_lock_current::l#1 +Not coalescing [382] play_lock_current::i#9 ← play_lock_current::i#1 +Coalesced [383] play_lock_current::col#6 ← play_lock_current::col#1 +Coalesced [384] play_lock_current::c#5 ← play_lock_current::c#1 +Coalesced [394] keyboard_event_get::return#6 ← keyboard_event_get::return#1 +Coalesced [395] keyboard_events_size#82 ← keyboard_events_size#4 +Coalesced [398] keyboard_events_size#81 ← keyboard_events_size#13 +Coalesced [399] keyboard_events_size#83 ← keyboard_events_size#19 +Coalesced [407] keyboard_event_scan::keycode#17 ← keyboard_event_scan::keycode#1 +Coalesced (already) [408] keyboard_events_size#85 ← keyboard_events_size#29 +Coalesced [424] keyboard_modifiers#60 ← keyboard_modifiers#3 +Coalesced [431] keyboard_modifiers#62 ← keyboard_modifiers#4 +Coalesced [439] keyboard_modifiers#63 ← keyboard_modifiers#12 +Coalesced [440] keyboard_modifiers#61 ← keyboard_modifiers#11 +Coalesced [441] keyboard_event_scan::row#15 ← keyboard_event_scan::row#1 +Coalesced [442] keyboard_event_scan::keycode#16 ← keyboard_event_scan::keycode#14 +Coalesced (already) [443] keyboard_events_size#84 ← keyboard_events_size#13 +Coalesced [444] keyboard_event_scan::keycode#19 ← keyboard_event_scan::keycode#11 +Coalesced [445] keyboard_events_size#87 ← keyboard_events_size#29 +Coalesced [455] keyboard_events_size#89 ← keyboard_events_size#2 +Coalesced [461] keyboard_event_scan::keycode#18 ← keyboard_event_scan::keycode#15 +Coalesced [462] keyboard_events_size#86 ← keyboard_events_size#30 +Coalesced [463] keyboard_event_scan::col#9 ← keyboard_event_scan::col#1 +Coalesced (already) [464] keyboard_event_scan::keycode#20 ← keyboard_event_scan::keycode#15 +Coalesced (already) [465] keyboard_events_size#88 ← keyboard_events_size#30 +Coalesced [469] keyboard_events_size#92 ← keyboard_events_size#1 +Coalesced (already) [470] keyboard_events_size#91 ← keyboard_events_size#10 +Coalesced (already) [471] keyboard_events_size#90 ← keyboard_events_size#10 +Coalesced [493] play_init::j#3 ← play_init::j#1 +Coalesced [494] play_init::pli#3 ← play_init::pli#1 +Coalesced [495] play_init::idx#3 ← play_init::idx#1 +Coalesced [520] sprites_init::s#3 ← sprites_init::s#1 +Coalesced [521] sprites_init::xpos#3 ← sprites_init::xpos#1 +Coalesced [545] render_init::i#3 ← render_init::i#1 +Coalesced [546] render_init::li_1#3 ← render_init::li_1#1 +Coalesced [547] render_init::li_2#3 ← render_init::li_2#1 +Coalesced [549] render_screen_original::screen#11 ← render_screen_original::screen#9 +Coalesced [551] render_screen_original::screen#13 ← render_screen_original::screen#8 +Coalesced [552] render_screen_original::cols#10 ← render_screen_original::cols#7 +Coalesced [560] render_screen_original::oscr#8 ← render_screen_original::oscr#4 +Coalesced [561] render_screen_original::screen#15 ← render_screen_original::screen#2 +Coalesced [562] render_screen_original::ocols#8 ← render_screen_original::ocols#4 +Coalesced [563] render_screen_original::cols#12 ← render_screen_original::cols#1 +Coalesced [564] render_screen_original::x#8 ← render_screen_original::x#1 +Coalesced [574] render_screen_original::screen#17 ← render_screen_original::screen#3 +Coalesced [575] render_screen_original::cols#14 ← render_screen_original::cols#2 +Coalesced [576] render_screen_original::x#10 ← render_screen_original::x#2 +Coalesced [587] render_screen_original::screen#12 ← render_screen_original::screen#10 +Coalesced [588] render_screen_original::cols#9 ← render_screen_original::cols#3 +Coalesced [589] render_screen_original::oscr#7 ← render_screen_original::oscr#1 +Coalesced [590] render_screen_original::ocols#7 ← render_screen_original::ocols#1 +Coalesced [591] render_screen_original::y#7 ← render_screen_original::y#1 +Coalesced [592] render_screen_original::screen#18 ← render_screen_original::screen#10 +Coalesced [593] render_screen_original::cols#15 ← render_screen_original::cols#3 +Coalesced [594] render_screen_original::x#11 ← render_screen_original::x#3 +Coalesced (already) [595] render_screen_original::oscr#9 ← render_screen_original::oscr#1 +Coalesced [596] render_screen_original::screen#16 ← render_screen_original::screen#3 +Coalesced (already) [597] render_screen_original::ocols#9 ← render_screen_original::ocols#1 +Coalesced [598] render_screen_original::cols#13 ← render_screen_original::cols#2 +Coalesced [599] render_screen_original::x#9 ← render_screen_original::x#2 +Coalesced (already) [600] render_screen_original::screen#14 ← render_screen_original::screen#2 +Coalesced (already) [601] render_screen_original::cols#11 ← render_screen_original::cols#1 +Coalesced [602] render_screen_original::x#7 ← render_screen_original::x#1 +Coalesced [625] irq_raster_next#24 ← irq_raster_next#2 +Coalesced [631] sprites_irq::raster_next#4 ← sprites_irq::raster_next#1 +Coalesced [636] sprites_irq::raster_next#5 ← sprites_irq::raster_next#0 +Coalesced [642] irq_raster_next#25 ← irq_raster_next#1 +Coalesced down to 76 phi equivalence classes Culled Empty Block (label) main::@32 Culled Empty Block (label) render_current::@14 Culled Empty Block (label) render_current::@15 @@ -6981,11 +6933,16 @@ FINAL CONTROL FLOW GRAPH kickasm(location (const byte*) PLAYFIELD_CHARSET#0) {{ .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#0) {{ .import binary "playfield-screen.iscr" + kickasm(location (const byte*) PLAYFIELD_SCREEN_ORIGINAL#0) {{ // 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#0) {{ .import binary "playfield-screen.col" - }} - kickasm(location (const byte*) PLAYFIELD_EXTENDED_ORIGINAL#0) {{ .import binary "playfield-extended.col" }} to:@20 @20: scope:[] from @14 @@ -7003,932 +6960,925 @@ FINAL CONTROL FLOW GRAPH }} to:@21 @21: scope:[] from @20 - [7] (byte) irq_raster_next#0 ← (const byte) IRQ_RASTER_FIRST#0 - [8] (byte) irq_sprite_ypos#0 ← (byte/signed byte/word/signed word/dword/signed dword) 50 + [6] (byte) irq_raster_next#0 ← (const byte) IRQ_RASTER_FIRST#0 + [7] (byte) irq_sprite_ypos#0 ← (byte/signed byte/word/signed word/dword/signed dword) 50 to:toSpritePtr1 toSpritePtr1: scope:[] from @21 - [9] phi() + [8] phi() to:@33 @33: scope:[] from toSpritePtr1 - [10] (byte) irq_sprite_ptr#0 ← (const byte) toSpritePtr1_return#0 - [11] (byte) irq_cnt#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 + [9] (byte) irq_sprite_ptr#0 ← (const byte) toSpritePtr1_return#0 + [10] (byte) irq_cnt#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:@32 @32: scope:[] from @33 - [12] phi() - [13] call main + [11] phi() + [12] call main to:@end @end: scope:[] from @32 - [14] phi() + [13] phi() main: scope:[main] from @32 - [15] phi() - [16] call sid_rnd_init + [14] phi() + [15] call sid_rnd_init to:main::@15 main::@15: scope:[main] from main asm { sei } - [18] call render_init + [17] call render_init to:main::@16 main::@16: scope:[main] from main::@15 - [19] phi() - [20] call sprites_init + [18] phi() + [19] call sprites_init to:main::@17 main::@17: scope:[main] from main::@16 - [21] phi() - [22] call sprites_irq_init + [20] phi() + [21] call sprites_irq_init to:main::@18 main::@18: scope:[main] from main::@17 - [23] phi() - [24] call play_init + [22] phi() + [23] call play_init to:main::@19 main::@19: scope:[main] from main::@18 - [25] phi() - [26] call play_spawn_current + [24] phi() + [25] call play_spawn_current to:main::@20 main::@20: scope:[main] from main::@19 - [27] phi() - [28] call render_playfield + [26] phi() + [27] call render_playfield to:main::@21 main::@21: scope:[main] from main::@20 - [29] (byte~) current_ypos#84 ← (byte) current_ypos#18 - [30] (byte~) current_xpos#110 ← (byte) current_xpos#23 - [31] (byte*~) current_piece_gfx#100 ← (byte*) current_piece_gfx#16 - [32] (byte~) current_piece_char#88 ← (byte) current_piece_char#12 - [33] call render_current - [34] (byte*~) current_piece#71 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) + [28] (byte~) current_ypos#84 ← (byte) current_ypos#18 + [29] (byte~) current_xpos#110 ← (byte) current_xpos#23 + [30] (byte*~) current_piece_gfx#100 ← (byte*) current_piece_gfx#16 + [31] (byte~) current_piece_char#88 ← (byte) current_piece_char#12 + [32] call render_current + [33] (byte*~) current_piece#71 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) to:main::@1 main::@1: scope:[main] from main::@21 main::@28 main::@30 - [35] (byte) current_movedown_counter#12 ← phi( main::@21/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@30/(byte) current_movedown_counter#10 main::@28/(byte) current_movedown_counter#10 ) - [35] (byte) keyboard_events_size#19 ← phi( main::@21/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@30/(byte) keyboard_events_size#16 main::@28/(byte) keyboard_events_size#16 ) - [35] (byte) current_piece_char#15 ← phi( main::@21/(byte) current_piece_char#12 main::@30/(byte) current_piece_char#1 main::@28/(byte) current_piece_char#1 ) - [35] (byte) current_ypos#21 ← phi( main::@21/(byte) current_ypos#18 main::@30/(byte) current_ypos#13 main::@28/(byte) current_ypos#13 ) - [35] (byte) current_xpos#10 ← phi( main::@21/(byte) current_xpos#23 main::@30/(byte) current_xpos#19 main::@28/(byte) current_xpos#19 ) - [35] (byte*) current_piece_gfx#20 ← phi( main::@21/(byte*) current_piece_gfx#16 main::@30/(byte*) current_piece_gfx#14 main::@28/(byte*) current_piece_gfx#14 ) - [35] (byte) current_orientation#10 ← phi( main::@21/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@30/(byte) current_orientation#19 main::@28/(byte) current_orientation#19 ) - [35] (byte*) current_piece#16 ← phi( main::@21/(byte*~) current_piece#71 main::@30/(byte*) current_piece#10 main::@28/(byte*) current_piece#10 ) - [35] (byte) render_screen_render#16 ← phi( main::@21/(byte/signed byte/word/signed word/dword/signed dword) 64 main::@30/(byte) render_screen_render#11 ) - [35] (byte) render_screen_show#16 ← phi( main::@21/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@30/(byte) render_screen_show#13 ) + [34] (byte) current_movedown_counter#12 ← phi( main::@21/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@30/(byte) current_movedown_counter#10 main::@28/(byte) current_movedown_counter#10 ) + [34] (byte) keyboard_events_size#19 ← phi( main::@21/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@30/(byte) keyboard_events_size#16 main::@28/(byte) keyboard_events_size#16 ) + [34] (byte) current_piece_char#15 ← phi( main::@21/(byte) current_piece_char#12 main::@30/(byte) current_piece_char#1 main::@28/(byte) current_piece_char#1 ) + [34] (byte) current_ypos#21 ← phi( main::@21/(byte) current_ypos#18 main::@30/(byte) current_ypos#13 main::@28/(byte) current_ypos#13 ) + [34] (byte) current_xpos#10 ← phi( main::@21/(byte) current_xpos#23 main::@30/(byte) current_xpos#19 main::@28/(byte) current_xpos#19 ) + [34] (byte*) current_piece_gfx#20 ← phi( main::@21/(byte*) current_piece_gfx#16 main::@30/(byte*) current_piece_gfx#14 main::@28/(byte*) current_piece_gfx#14 ) + [34] (byte) current_orientation#10 ← phi( main::@21/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@30/(byte) current_orientation#19 main::@28/(byte) current_orientation#19 ) + [34] (byte*) current_piece#16 ← phi( main::@21/(byte*~) current_piece#71 main::@30/(byte*) current_piece#10 main::@28/(byte*) current_piece#10 ) + [34] (byte) render_screen_render#16 ← phi( main::@21/(byte/signed byte/word/signed word/dword/signed dword) 64 main::@30/(byte) render_screen_render#11 ) + [34] (byte) render_screen_show#16 ← phi( main::@21/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@30/(byte) render_screen_show#13 ) to:main::@4 main::@4: scope:[main] from main::@1 main::@4 - [36] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@4 + [35] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@4 to:main::@6 main::@6: scope:[main] from main::@4 - [37] phi() - [38] call render_show + [36] phi() + [37] call render_show to:main::@23 main::@23: scope:[main] from main::@6 - [39] phi() - [40] call keyboard_event_scan + [38] phi() + [39] call keyboard_event_scan to:main::@24 main::@24: scope:[main] from main::@23 - [41] phi() - [42] call keyboard_event_get - [43] (byte) keyboard_event_get::return#3 ← (byte) keyboard_event_get::return#2 + [40] phi() + [41] call keyboard_event_get + [42] (byte) keyboard_event_get::return#3 ← (byte) keyboard_event_get::return#2 to:main::@25 main::@25: scope:[main] from main::@24 - [44] (byte) main::key_event#0 ← (byte) keyboard_event_get::return#3 - [45] (byte) play_move_down::key_event#0 ← (byte) main::key_event#0 - [46] call play_move_down - [47] (byte) play_move_down::return#3 ← (byte) play_move_down::return#2 + [43] (byte) main::key_event#0 ← (byte) keyboard_event_get::return#3 + [44] (byte) play_move_down::key_event#0 ← (byte) main::key_event#0 + [45] call play_move_down + [46] (byte) play_move_down::return#3 ← (byte) play_move_down::return#2 to:main::@26 main::@26: scope:[main] from main::@25 - [48] (byte~) main::$12 ← (byte) play_move_down::return#3 - [49] (byte) main::render#1 ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte~) main::$12 - [50] (byte) play_move_leftright::key_event#0 ← (byte) main::key_event#0 - [51] call play_move_leftright - [52] (byte) play_move_leftright::return#4 ← (byte) play_move_leftright::return#1 + [47] (byte~) main::$12 ← (byte) play_move_down::return#3 + [48] (byte) main::render#1 ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte~) main::$12 + [49] (byte) play_move_leftright::key_event#0 ← (byte) main::key_event#0 + [50] call play_move_leftright + [51] (byte) play_move_leftright::return#4 ← (byte) play_move_leftright::return#1 to:main::@27 main::@27: scope:[main] from main::@26 - [53] (byte~) main::$13 ← (byte) play_move_leftright::return#4 - [54] (byte) main::render#2 ← (byte) main::render#1 + (byte~) main::$13 - [55] (byte) play_move_rotate::key_event#0 ← (byte) main::key_event#0 - [56] call play_move_rotate - [57] (byte) play_move_rotate::return#4 ← (byte) play_move_rotate::return#1 + [52] (byte~) main::$13 ← (byte) play_move_leftright::return#4 + [53] (byte) main::render#2 ← (byte) main::render#1 + (byte~) main::$13 + [54] (byte) play_move_rotate::key_event#0 ← (byte) main::key_event#0 + [55] call play_move_rotate + [56] (byte) play_move_rotate::return#4 ← (byte) play_move_rotate::return#1 to:main::@28 main::@28: scope:[main] from main::@27 - [58] (byte~) main::$14 ← (byte) play_move_rotate::return#4 - [59] (byte) main::render#3 ← (byte) main::render#2 + (byte~) main::$14 - [60] if((byte) main::render#3==(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@1 + [57] (byte~) main::$14 ← (byte) play_move_rotate::return#4 + [58] (byte) main::render#3 ← (byte) main::render#2 + (byte~) main::$14 + [59] if((byte) main::render#3==(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@1 to:main::@13 main::@13: scope:[main] from main::@28 - [61] (byte~) render_screen_render#63 ← (byte) render_screen_render#16 - [62] call render_playfield + [60] (byte~) render_screen_render#63 ← (byte) render_screen_render#16 + [61] call render_playfield to:main::@29 main::@29: scope:[main] from main::@13 - [63] (byte~) current_ypos#85 ← (byte) current_ypos#13 - [64] (byte~) render_screen_render#62 ← (byte) render_screen_render#16 - [65] (byte~) current_xpos#111 ← (byte) current_xpos#19 - [66] (byte*~) current_piece_gfx#101 ← (byte*) current_piece_gfx#14 - [67] (byte~) current_piece_char#89 ← (byte) current_piece_char#1 - [68] call render_current + [62] (byte~) current_ypos#85 ← (byte) current_ypos#13 + [63] (byte~) render_screen_render#62 ← (byte) render_screen_render#16 + [64] (byte~) current_xpos#111 ← (byte) current_xpos#19 + [65] (byte*~) current_piece_gfx#101 ← (byte*) current_piece_gfx#14 + [66] (byte~) current_piece_char#89 ← (byte) current_piece_char#1 + [67] call render_current to:main::@30 main::@30: scope:[main] from main::@29 - [69] phi() - [70] call render_screen_swap + [68] phi() + [69] call render_screen_swap to:main::@1 render_screen_swap: scope:[render_screen_swap] from main::@30 - [71] (byte) render_screen_render#11 ← (byte) render_screen_render#16 ^ (byte/signed byte/word/signed word/dword/signed dword) 64 - [72] (byte) render_screen_show#13 ← (byte) render_screen_show#16 ^ (byte/signed byte/word/signed word/dword/signed dword) 64 + [70] (byte) render_screen_render#11 ← (byte) render_screen_render#16 ^ (byte/signed byte/word/signed word/dword/signed dword) 64 + [71] (byte) render_screen_show#13 ← (byte) render_screen_show#16 ^ (byte/signed byte/word/signed word/dword/signed dword) 64 to:render_screen_swap::@return render_screen_swap::@return: scope:[render_screen_swap] from render_screen_swap - [73] return + [72] return to:@return render_current: scope:[render_current] from main::@21 main::@29 - [74] (byte) current_piece_char#63 ← phi( main::@21/(byte~) current_piece_char#88 main::@29/(byte~) current_piece_char#89 ) - [74] (byte*) current_piece_gfx#53 ← phi( main::@21/(byte*~) current_piece_gfx#100 main::@29/(byte*~) current_piece_gfx#101 ) - [74] (byte) current_xpos#47 ← phi( main::@21/(byte~) current_xpos#110 main::@29/(byte~) current_xpos#111 ) - [74] (byte) render_screen_render#28 ← phi( main::@21/(byte/signed byte/word/signed word/dword/signed dword) 64 main::@29/(byte~) render_screen_render#62 ) - [74] (byte) current_ypos#9 ← phi( main::@21/(byte~) current_ypos#84 main::@29/(byte~) current_ypos#85 ) - [75] (byte) render_current::ypos2#0 ← (byte) current_ypos#9 << (byte/signed byte/word/signed word/dword/signed dword) 1 + [73] (byte) current_piece_char#63 ← phi( main::@21/(byte~) current_piece_char#88 main::@29/(byte~) current_piece_char#89 ) + [73] (byte*) current_piece_gfx#53 ← phi( main::@21/(byte*~) current_piece_gfx#100 main::@29/(byte*~) current_piece_gfx#101 ) + [73] (byte) current_xpos#47 ← phi( main::@21/(byte~) current_xpos#110 main::@29/(byte~) current_xpos#111 ) + [73] (byte) render_screen_render#28 ← phi( main::@21/(byte/signed byte/word/signed word/dword/signed dword) 64 main::@29/(byte~) render_screen_render#62 ) + [73] (byte) current_ypos#9 ← phi( main::@21/(byte~) current_ypos#84 main::@29/(byte~) current_ypos#85 ) + [74] (byte) render_current::ypos2#0 ← (byte) current_ypos#9 << (byte/signed byte/word/signed word/dword/signed dword) 1 to:render_current::@1 render_current::@1: scope:[render_current] from render_current render_current::@3 - [76] (byte) render_current::l#4 ← phi( render_current/(byte/signed byte/word/signed word/dword/signed dword) 0 render_current::@3/(byte) render_current::l#1 ) - [76] (byte) render_current::i#3 ← phi( render_current/(byte/signed byte/word/signed word/dword/signed dword) 0 render_current::@3/(byte) render_current::i#8 ) - [76] (byte) render_current::ypos2#2 ← phi( render_current/(byte) render_current::ypos2#0 render_current::@3/(byte) render_current::ypos2#1 ) - [77] if((byte) render_current::ypos2#2>(byte/signed byte/word/signed word/dword/signed dword) 2) goto render_current::@13 + [75] (byte) render_current::l#4 ← phi( render_current/(byte/signed byte/word/signed word/dword/signed dword) 0 render_current::@3/(byte) render_current::l#1 ) + [75] (byte) render_current::i#3 ← phi( render_current/(byte/signed byte/word/signed word/dword/signed dword) 0 render_current::@3/(byte) render_current::i#8 ) + [75] (byte) render_current::ypos2#2 ← phi( render_current/(byte) render_current::ypos2#0 render_current::@3/(byte) render_current::ypos2#1 ) + [76] if((byte) render_current::ypos2#2>(byte/signed byte/word/signed word/dword/signed dword) 2) goto render_current::@13 to:render_current::@7 render_current::@7: scope:[render_current] from render_current::@1 render_current::@13 - [78] (byte) render_current::i#1 ← (byte) render_current::i#3 + (byte/signed byte/word/signed word/dword/signed dword) 4 + [77] (byte) render_current::i#1 ← (byte) render_current::i#3 + (byte/signed byte/word/signed word/dword/signed dword) 4 to:render_current::@3 render_current::@3: scope:[render_current] from render_current::@5 render_current::@7 - [79] (byte) render_current::i#8 ← phi( render_current::@5/(byte) render_current::i#10 render_current::@7/(byte) render_current::i#1 ) - [80] (byte) render_current::ypos2#1 ← (byte) render_current::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 - [81] (byte) render_current::l#1 ← ++ (byte) render_current::l#4 - [82] if((byte) render_current::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_current::@1 + [78] (byte) render_current::i#8 ← phi( render_current::@5/(byte) render_current::i#10 render_current::@7/(byte) render_current::i#1 ) + [79] (byte) render_current::ypos2#1 ← (byte) render_current::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 + [80] (byte) render_current::l#1 ← ++ (byte) render_current::l#4 + [81] if((byte) render_current::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_current::@1 to:render_current::@return render_current::@return: scope:[render_current] from render_current::@3 - [83] return + [82] return to:@return render_current::@13: scope:[render_current] from render_current::@1 - [84] if((byte) render_current::ypos2#2<(byte/signed byte/word/signed word/dword/signed dword) 2*(const byte) PLAYFIELD_LINES#0) goto render_current::@2 + [83] if((byte) render_current::ypos2#2<(byte/signed byte/word/signed word/dword/signed dword) 2*(const byte) PLAYFIELD_LINES#0) goto render_current::@2 to:render_current::@7 render_current::@2: scope:[render_current] from render_current::@13 - [85] (byte~) render_current::$5 ← (byte) render_screen_render#28 + (byte) render_current::ypos2#2 - [86] (byte*) render_current::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) screen_lines_1#0 + (byte~) render_current::$5) - [87] (byte) render_current::xpos#0 ← (byte) current_xpos#47 + [84] (byte~) render_current::$5 ← (byte) render_screen_render#28 + (byte) render_current::ypos2#2 + [85] (byte*) render_current::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) screen_lines_1#0 + (byte~) render_current::$5) + [86] (byte) render_current::xpos#0 ← (byte) current_xpos#47 to:render_current::@4 render_current::@4: scope:[render_current] from render_current::@2 render_current::@5 - [88] (byte) render_current::c#2 ← phi( render_current::@2/(byte/signed byte/word/signed word/dword/signed dword) 0 render_current::@5/(byte) render_current::c#1 ) - [88] (byte) render_current::xpos#2 ← phi( render_current::@2/(byte) render_current::xpos#0 render_current::@5/(byte) render_current::xpos#1 ) - [88] (byte) render_current::i#4 ← phi( render_current::@2/(byte) render_current::i#3 render_current::@5/(byte) render_current::i#10 ) - [89] (byte) render_current::current_cell#0 ← *((byte*) current_piece_gfx#53 + (byte) render_current::i#4) - [90] (byte) render_current::i#10 ← ++ (byte) render_current::i#4 - [91] if((byte) render_current::current_cell#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto render_current::@5 + [87] (byte) render_current::c#2 ← phi( render_current::@2/(byte/signed byte/word/signed word/dword/signed dword) 0 render_current::@5/(byte) render_current::c#1 ) + [87] (byte) render_current::xpos#2 ← phi( render_current::@2/(byte) render_current::xpos#0 render_current::@5/(byte) render_current::xpos#1 ) + [87] (byte) render_current::i#4 ← phi( render_current::@2/(byte) render_current::i#3 render_current::@5/(byte) render_current::i#10 ) + [88] (byte) render_current::current_cell#0 ← *((byte*) current_piece_gfx#53 + (byte) render_current::i#4) + [89] (byte) render_current::i#10 ← ++ (byte) render_current::i#4 + [90] if((byte) render_current::current_cell#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto render_current::@5 to:render_current::@9 render_current::@9: scope:[render_current] from render_current::@4 - [92] if((byte) render_current::xpos#2>=(const byte) PLAYFIELD_COLS#0) goto render_current::@5 + [91] if((byte) render_current::xpos#2>=(const byte) PLAYFIELD_COLS#0) goto render_current::@5 to:render_current::@10 render_current::@10: scope:[render_current] from render_current::@9 - [93] *((byte*) render_current::screen_line#0 + (byte) render_current::xpos#2) ← (byte) current_piece_char#63 + [92] *((byte*) render_current::screen_line#0 + (byte) render_current::xpos#2) ← (byte) current_piece_char#63 to:render_current::@5 render_current::@5: scope:[render_current] from render_current::@10 render_current::@4 render_current::@9 - [94] (byte) render_current::xpos#1 ← ++ (byte) render_current::xpos#2 - [95] (byte) render_current::c#1 ← ++ (byte) render_current::c#2 - [96] if((byte) render_current::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_current::@4 + [93] (byte) render_current::xpos#1 ← ++ (byte) render_current::xpos#2 + [94] (byte) render_current::c#1 ← ++ (byte) render_current::c#2 + [95] if((byte) render_current::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_current::@4 to:render_current::@3 render_playfield: scope:[render_playfield] from main::@13 main::@20 - [97] (byte) render_screen_render#19 ← phi( main::@13/(byte~) render_screen_render#63 main::@20/(byte/signed byte/word/signed word/dword/signed dword) 64 ) + [96] (byte) render_screen_render#19 ← phi( main::@13/(byte~) render_screen_render#63 main::@20/(byte/signed byte/word/signed word/dword/signed dword) 64 ) to:render_playfield::@1 render_playfield::@1: scope:[render_playfield] from render_playfield render_playfield::@3 - [98] (byte) render_playfield::i#3 ← phi( render_playfield/(const byte) PLAYFIELD_COLS#0*(byte/signed byte/word/signed word/dword/signed dword) 2 render_playfield::@3/(byte) render_playfield::i#1 ) - [98] (byte) render_playfield::l#2 ← phi( render_playfield/(byte/signed byte/word/signed word/dword/signed dword) 2 render_playfield::@3/(byte) render_playfield::l#1 ) - [99] (byte~) render_playfield::$2 ← (byte) render_playfield::l#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 - [100] (byte~) render_playfield::$3 ← (byte) render_screen_render#19 + (byte~) render_playfield::$2 - [101] (byte*) render_playfield::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) screen_lines_1#0 + (byte~) render_playfield::$3) + [97] (byte) render_playfield::i#3 ← phi( render_playfield/(const byte) PLAYFIELD_COLS#0*(byte/signed byte/word/signed word/dword/signed dword) 2 render_playfield::@3/(byte) render_playfield::i#1 ) + [97] (byte) render_playfield::l#2 ← phi( render_playfield/(byte/signed byte/word/signed word/dword/signed dword) 2 render_playfield::@3/(byte) render_playfield::l#1 ) + [98] (byte~) render_playfield::$2 ← (byte) render_playfield::l#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 + [99] (byte~) render_playfield::$3 ← (byte) render_screen_render#19 + (byte~) render_playfield::$2 + [100] (byte*) render_playfield::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) screen_lines_1#0 + (byte~) render_playfield::$3) to:render_playfield::@2 render_playfield::@2: scope:[render_playfield] from render_playfield::@1 render_playfield::@2 - [102] (byte) render_playfield::c#2 ← phi( render_playfield::@1/(byte/signed byte/word/signed word/dword/signed dword) 0 render_playfield::@2/(byte) render_playfield::c#1 ) - [102] (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 ) - [102] (byte) render_playfield::i#2 ← phi( render_playfield::@1/(byte) render_playfield::i#3 render_playfield::@2/(byte) render_playfield::i#1 ) - [103] *((byte*) render_playfield::screen_line#2) ← *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) render_playfield::i#2) - [104] (byte*) render_playfield::screen_line#1 ← ++ (byte*) render_playfield::screen_line#2 - [105] (byte) render_playfield::i#1 ← ++ (byte) render_playfield::i#2 - [106] (byte) render_playfield::c#1 ← ++ (byte) render_playfield::c#2 - [107] if((byte) render_playfield::c#1!=(const byte) PLAYFIELD_COLS#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_playfield::@2 + [101] (byte) render_playfield::c#2 ← phi( render_playfield::@1/(byte/signed byte/word/signed word/dword/signed dword) 0 render_playfield::@2/(byte) render_playfield::c#1 ) + [101] (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 ) + [101] (byte) render_playfield::i#2 ← phi( render_playfield::@1/(byte) render_playfield::i#3 render_playfield::@2/(byte) render_playfield::i#1 ) + [102] *((byte*) render_playfield::screen_line#2) ← *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) render_playfield::i#2) + [103] (byte*) render_playfield::screen_line#1 ← ++ (byte*) render_playfield::screen_line#2 + [104] (byte) render_playfield::i#1 ← ++ (byte) render_playfield::i#2 + [105] (byte) render_playfield::c#1 ← ++ (byte) render_playfield::c#2 + [106] if((byte) render_playfield::c#1!=(const byte) PLAYFIELD_COLS#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_playfield::@2 to:render_playfield::@3 render_playfield::@3: scope:[render_playfield] from render_playfield::@2 - [108] (byte) render_playfield::l#1 ← ++ (byte) render_playfield::l#2 - [109] if((byte) render_playfield::l#1!=(const byte) PLAYFIELD_LINES#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_playfield::@1 + [107] (byte) render_playfield::l#1 ← ++ (byte) render_playfield::l#2 + [108] if((byte) render_playfield::l#1!=(const byte) PLAYFIELD_LINES#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_playfield::@1 to:render_playfield::@return render_playfield::@return: scope:[render_playfield] from render_playfield::@3 - [110] return + [109] return to:@return play_move_rotate: scope:[play_move_rotate] from main::@27 - [111] if((byte) play_move_rotate::key_event#0==(const byte) KEY_Z#0) goto play_move_rotate::@1 + [110] if((byte) play_move_rotate::key_event#0==(const byte) KEY_Z#0) goto play_move_rotate::@1 to:play_move_rotate::@6 play_move_rotate::@6: scope:[play_move_rotate] from play_move_rotate - [112] if((byte) play_move_rotate::key_event#0==(const byte) KEY_X#0) goto play_move_rotate::@2 + [111] if((byte) play_move_rotate::key_event#0==(const byte) KEY_X#0) goto play_move_rotate::@2 to:play_move_rotate::@return play_move_rotate::@return: scope:[play_move_rotate] from play_move_rotate::@11 play_move_rotate::@14 play_move_rotate::@6 - [113] (byte*) current_piece_gfx#14 ← phi( play_move_rotate::@11/(byte*) current_piece_gfx#3 play_move_rotate::@14/(byte*) current_piece_gfx#1 play_move_rotate::@6/(byte*) current_piece_gfx#1 ) - [113] (byte) current_orientation#19 ← phi( play_move_rotate::@11/(byte) current_orientation#4 play_move_rotate::@14/(byte) current_orientation#14 play_move_rotate::@6/(byte) current_orientation#14 ) - [113] (byte) play_move_rotate::return#1 ← phi( play_move_rotate::@11/(byte/signed byte/word/signed word/dword/signed dword) 1 play_move_rotate::@14/(byte/signed byte/word/signed word/dword/signed dword) 0 play_move_rotate::@6/(byte/signed byte/word/signed word/dword/signed dword) 0 ) - [114] return + [112] (byte*) current_piece_gfx#14 ← phi( play_move_rotate::@11/(byte*) current_piece_gfx#3 play_move_rotate::@14/(byte*) current_piece_gfx#1 play_move_rotate::@6/(byte*) current_piece_gfx#1 ) + [112] (byte) current_orientation#19 ← phi( play_move_rotate::@11/(byte) current_orientation#4 play_move_rotate::@14/(byte) current_orientation#14 play_move_rotate::@6/(byte) current_orientation#14 ) + [112] (byte) play_move_rotate::return#1 ← phi( play_move_rotate::@11/(byte/signed byte/word/signed word/dword/signed dword) 1 play_move_rotate::@14/(byte/signed byte/word/signed word/dword/signed dword) 0 play_move_rotate::@6/(byte/signed byte/word/signed word/dword/signed dword) 0 ) + [113] return to:@return play_move_rotate::@2: scope:[play_move_rotate] from play_move_rotate::@6 - [115] (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 ← (byte) current_orientation#14 + (byte/signed byte/word/signed word/dword/signed dword) 16 - [116] (byte) play_move_rotate::orientation#2 ← (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 & (byte/signed byte/word/signed word/dword/signed dword) 63 + [114] (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 ← (byte) current_orientation#14 + (byte/signed byte/word/signed word/dword/signed dword) 16 + [115] (byte) play_move_rotate::orientation#2 ← (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 & (byte/signed byte/word/signed word/dword/signed dword) 63 to:play_move_rotate::@4 play_move_rotate::@4: scope:[play_move_rotate] from play_move_rotate::@1 play_move_rotate::@2 - [117] (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 ) - [118] (byte) play_collision::xpos#3 ← (byte) current_xpos#19 - [119] (byte) play_collision::ypos#3 ← (byte) current_ypos#13 - [120] (byte) play_collision::orientation#3 ← (byte) play_move_rotate::orientation#3 - [121] (byte*~) current_piece#77 ← (byte*) current_piece#10 - [122] call play_collision - [123] (byte) play_collision::return#13 ← (byte) play_collision::return#14 + [116] (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 ) + [117] (byte) play_collision::xpos#3 ← (byte) current_xpos#19 + [118] (byte) play_collision::ypos#3 ← (byte) current_ypos#13 + [119] (byte) play_collision::orientation#3 ← (byte) play_move_rotate::orientation#3 + [120] (byte*~) current_piece#77 ← (byte*) current_piece#10 + [121] call play_collision + [122] (byte) play_collision::return#13 ← (byte) play_collision::return#14 to:play_move_rotate::@14 play_move_rotate::@14: scope:[play_move_rotate] from play_move_rotate::@4 - [124] (byte~) play_move_rotate::$6 ← (byte) play_collision::return#13 - [125] if((byte~) play_move_rotate::$6!=(const byte) COLLISION_NONE#0) goto play_move_rotate::@return + [123] (byte~) play_move_rotate::$6 ← (byte) play_collision::return#13 + [124] if((byte~) play_move_rotate::$6!=(const byte) COLLISION_NONE#0) goto play_move_rotate::@return to:play_move_rotate::@11 play_move_rotate::@11: scope:[play_move_rotate] from play_move_rotate::@14 - [126] (byte) current_orientation#4 ← (byte) play_move_rotate::orientation#3 - [127] (byte*) current_piece_gfx#3 ← (byte*) current_piece#10 + (byte) current_orientation#4 + [125] (byte) current_orientation#4 ← (byte) play_move_rotate::orientation#3 + [126] (byte*) current_piece_gfx#3 ← (byte*) current_piece#10 + (byte) current_orientation#4 to:play_move_rotate::@return play_move_rotate::@1: scope:[play_move_rotate] from play_move_rotate - [128] (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 ← (byte) current_orientation#14 - (byte/signed byte/word/signed word/dword/signed dword) 16 - [129] (byte) play_move_rotate::orientation#1 ← (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 & (byte/signed byte/word/signed word/dword/signed dword) 63 + [127] (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 ← (byte) current_orientation#14 - (byte/signed byte/word/signed word/dword/signed dword) 16 + [128] (byte) play_move_rotate::orientation#1 ← (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 & (byte/signed byte/word/signed word/dword/signed dword) 63 to:play_move_rotate::@4 play_collision: scope:[play_collision] from play_move_down::@12 play_move_leftright::@1 play_move_leftright::@7 play_move_rotate::@4 - [130] (byte) play_collision::xpos#5 ← phi( play_move_down::@12/(byte) play_collision::xpos#0 play_move_leftright::@1/(byte) play_collision::xpos#1 play_move_leftright::@7/(byte) play_collision::xpos#2 play_move_rotate::@4/(byte) play_collision::xpos#3 ) - [130] (byte) play_collision::ypos#4 ← phi( play_move_down::@12/(byte) play_collision::ypos#0 play_move_leftright::@1/(byte) play_collision::ypos#1 play_move_leftright::@7/(byte) play_collision::ypos#2 play_move_rotate::@4/(byte) play_collision::ypos#3 ) - [130] (byte) play_collision::orientation#4 ← phi( play_move_down::@12/(byte) play_collision::orientation#0 play_move_leftright::@1/(byte) play_collision::orientation#1 play_move_leftright::@7/(byte) play_collision::orientation#2 play_move_rotate::@4/(byte) play_collision::orientation#3 ) - [130] (byte*) current_piece#12 ← phi( play_move_down::@12/(byte*~) current_piece#74 play_move_leftright::@1/(byte*~) current_piece#75 play_move_leftright::@7/(byte*~) current_piece#76 play_move_rotate::@4/(byte*~) current_piece#77 ) - [131] (byte*) play_collision::piece_gfx#0 ← (byte*) current_piece#12 + (byte) play_collision::orientation#4 - [132] (byte) play_collision::ypos2#0 ← (byte) play_collision::ypos#4 << (byte/signed byte/word/signed word/dword/signed dword) 1 + [129] (byte) play_collision::xpos#5 ← phi( play_move_down::@12/(byte) play_collision::xpos#0 play_move_leftright::@1/(byte) play_collision::xpos#1 play_move_leftright::@7/(byte) play_collision::xpos#2 play_move_rotate::@4/(byte) play_collision::xpos#3 ) + [129] (byte) play_collision::ypos#4 ← phi( play_move_down::@12/(byte) play_collision::ypos#0 play_move_leftright::@1/(byte) play_collision::ypos#1 play_move_leftright::@7/(byte) play_collision::ypos#2 play_move_rotate::@4/(byte) play_collision::ypos#3 ) + [129] (byte) play_collision::orientation#4 ← phi( play_move_down::@12/(byte) play_collision::orientation#0 play_move_leftright::@1/(byte) play_collision::orientation#1 play_move_leftright::@7/(byte) play_collision::orientation#2 play_move_rotate::@4/(byte) play_collision::orientation#3 ) + [129] (byte*) current_piece#12 ← phi( play_move_down::@12/(byte*~) current_piece#74 play_move_leftright::@1/(byte*~) current_piece#75 play_move_leftright::@7/(byte*~) current_piece#76 play_move_rotate::@4/(byte*~) current_piece#77 ) + [130] (byte*) play_collision::piece_gfx#0 ← (byte*) current_piece#12 + (byte) play_collision::orientation#4 + [131] (byte) play_collision::ypos2#0 ← (byte) play_collision::ypos#4 << (byte/signed byte/word/signed word/dword/signed dword) 1 to:play_collision::@1 play_collision::@1: scope:[play_collision] from play_collision play_collision::@20 - [133] (byte) play_collision::l#6 ← phi( play_collision/(byte/signed byte/word/signed word/dword/signed dword) 0 play_collision::@20/(byte) play_collision::l#1 ) - [133] (byte) play_collision::i#3 ← phi( play_collision/(byte/signed byte/word/signed word/dword/signed dword) 0 play_collision::@20/(byte~) play_collision::i#11 ) - [133] (byte) play_collision::ypos2#2 ← phi( play_collision/(byte) play_collision::ypos2#0 play_collision::@20/(byte) play_collision::ypos2#1 ) - [134] (byte*) play_collision::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) play_collision::ypos2#2) - [135] (byte~) play_collision::col#9 ← (byte) play_collision::xpos#5 + [132] (byte) play_collision::l#6 ← phi( play_collision/(byte/signed byte/word/signed word/dword/signed dword) 0 play_collision::@20/(byte) play_collision::l#1 ) + [132] (byte) play_collision::i#3 ← phi( play_collision/(byte/signed byte/word/signed word/dword/signed dword) 0 play_collision::@20/(byte~) play_collision::i#11 ) + [132] (byte) play_collision::ypos2#2 ← phi( play_collision/(byte) play_collision::ypos2#0 play_collision::@20/(byte) play_collision::ypos2#1 ) + [133] (byte*) play_collision::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) play_collision::ypos2#2) + [134] (byte~) play_collision::col#9 ← (byte) play_collision::xpos#5 to:play_collision::@2 play_collision::@2: scope:[play_collision] from play_collision::@1 play_collision::@21 - [136] (byte) play_collision::c#2 ← phi( play_collision::@1/(byte/signed byte/word/signed word/dword/signed dword) 0 play_collision::@21/(byte) play_collision::c#1 ) - [136] (byte) play_collision::col#2 ← phi( play_collision::@1/(byte~) play_collision::col#9 play_collision::@21/(byte) play_collision::col#1 ) - [136] (byte) play_collision::i#2 ← phi( play_collision::@1/(byte) play_collision::i#3 play_collision::@21/(byte~) play_collision::i#13 ) - [137] (byte) play_collision::i#1 ← ++ (byte) play_collision::i#2 - [138] if(*((byte*) play_collision::piece_gfx#0 + (byte) play_collision::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_collision::@3 + [135] (byte) play_collision::c#2 ← phi( play_collision::@1/(byte/signed byte/word/signed word/dword/signed dword) 0 play_collision::@21/(byte) play_collision::c#1 ) + [135] (byte) play_collision::col#2 ← phi( play_collision::@1/(byte~) play_collision::col#9 play_collision::@21/(byte) play_collision::col#1 ) + [135] (byte) play_collision::i#2 ← phi( play_collision::@1/(byte) play_collision::i#3 play_collision::@21/(byte~) play_collision::i#13 ) + [136] (byte) play_collision::i#1 ← ++ (byte) play_collision::i#2 + [137] if(*((byte*) play_collision::piece_gfx#0 + (byte) play_collision::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_collision::@3 to:play_collision::@8 play_collision::@8: scope:[play_collision] from play_collision::@2 - [139] if((byte) play_collision::ypos2#2<(byte/signed byte/word/signed word/dword/signed dword) 2*(const byte) PLAYFIELD_LINES#0) goto play_collision::@4 + [138] if((byte) play_collision::ypos2#2<(byte/signed byte/word/signed word/dword/signed dword) 2*(const byte) PLAYFIELD_LINES#0) goto play_collision::@4 to:play_collision::@return play_collision::@return: scope:[play_collision] from play_collision::@17 play_collision::@4 play_collision::@5 play_collision::@6 play_collision::@8 - [140] (byte) play_collision::return#14 ← phi( play_collision::@4/(const byte) COLLISION_LEFT#0 play_collision::@5/(const byte) COLLISION_RIGHT#0 play_collision::@6/(const byte) COLLISION_PLAYFIELD#0 play_collision::@17/(const byte) COLLISION_NONE#0 play_collision::@8/(const byte) COLLISION_BOTTOM#0 ) - [141] return + [139] (byte) play_collision::return#14 ← phi( play_collision::@4/(const byte) COLLISION_LEFT#0 play_collision::@5/(const byte) COLLISION_RIGHT#0 play_collision::@6/(const byte) COLLISION_PLAYFIELD#0 play_collision::@17/(const byte) COLLISION_NONE#0 play_collision::@8/(const byte) COLLISION_BOTTOM#0 ) + [140] return to:@return play_collision::@4: scope:[play_collision] from play_collision::@8 - [142] (byte~) play_collision::$7 ← (byte) play_collision::col#2 & (byte/word/signed word/dword/signed dword) 128 - [143] if((byte~) play_collision::$7==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_collision::@5 + [141] (byte~) play_collision::$7 ← (byte) play_collision::col#2 & (byte/word/signed word/dword/signed dword) 128 + [142] if((byte~) play_collision::$7==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_collision::@5 to:play_collision::@return play_collision::@5: scope:[play_collision] from play_collision::@4 - [144] if((byte) play_collision::col#2<(const byte) PLAYFIELD_COLS#0) goto play_collision::@6 + [143] if((byte) play_collision::col#2<(const byte) PLAYFIELD_COLS#0) goto play_collision::@6 to:play_collision::@return play_collision::@6: scope:[play_collision] from play_collision::@5 - [145] if(*((byte*) play_collision::playfield_line#0 + (byte) play_collision::col#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_collision::@3 + [144] if(*((byte*) play_collision::playfield_line#0 + (byte) play_collision::col#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_collision::@3 to:play_collision::@return play_collision::@3: scope:[play_collision] from play_collision::@2 play_collision::@6 - [146] (byte) play_collision::col#1 ← ++ (byte) play_collision::col#2 - [147] (byte) play_collision::c#1 ← ++ (byte) play_collision::c#2 - [148] if((byte) play_collision::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto play_collision::@21 + [145] (byte) play_collision::col#1 ← ++ (byte) play_collision::col#2 + [146] (byte) play_collision::c#1 ← ++ (byte) play_collision::c#2 + [147] if((byte) play_collision::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto play_collision::@21 to:play_collision::@17 play_collision::@17: scope:[play_collision] from play_collision::@3 - [149] (byte) play_collision::ypos2#1 ← (byte) play_collision::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 - [150] (byte) play_collision::l#1 ← ++ (byte) play_collision::l#6 - [151] if((byte) play_collision::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto play_collision::@20 + [148] (byte) play_collision::ypos2#1 ← (byte) play_collision::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 + [149] (byte) play_collision::l#1 ← ++ (byte) play_collision::l#6 + [150] if((byte) play_collision::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto play_collision::@20 to:play_collision::@return play_collision::@20: scope:[play_collision] from play_collision::@17 - [152] (byte~) play_collision::i#11 ← (byte) play_collision::i#1 + [151] (byte~) play_collision::i#11 ← (byte) play_collision::i#1 to:play_collision::@1 play_collision::@21: scope:[play_collision] from play_collision::@3 - [153] (byte~) play_collision::i#13 ← (byte) play_collision::i#1 + [152] (byte~) play_collision::i#13 ← (byte) play_collision::i#1 to:play_collision::@2 play_move_leftright: scope:[play_move_leftright] from main::@26 - [154] if((byte) play_move_leftright::key_event#0==(const byte) KEY_COMMA#0) goto play_move_leftright::@1 + [153] if((byte) play_move_leftright::key_event#0==(const byte) KEY_COMMA#0) goto play_move_leftright::@1 to:play_move_leftright::@6 play_move_leftright::@6: scope:[play_move_leftright] from play_move_leftright - [155] if((byte) play_move_leftright::key_event#0!=(const byte) KEY_DOT#0) goto play_move_leftright::@return + [154] if((byte) play_move_leftright::key_event#0!=(const byte) KEY_DOT#0) goto play_move_leftright::@return to:play_move_leftright::@7 play_move_leftright::@7: scope:[play_move_leftright] from play_move_leftright::@6 - [156] (byte) play_collision::xpos#2 ← (byte) current_xpos#1 + (byte/signed byte/word/signed word/dword/signed dword) 1 - [157] (byte) play_collision::ypos#2 ← (byte) current_ypos#13 - [158] (byte) play_collision::orientation#2 ← (byte) current_orientation#14 - [159] (byte*~) current_piece#76 ← (byte*) current_piece#10 - [160] call play_collision - [161] (byte) play_collision::return#12 ← (byte) play_collision::return#14 + [155] (byte) play_collision::xpos#2 ← (byte) current_xpos#1 + (byte/signed byte/word/signed word/dword/signed dword) 1 + [156] (byte) play_collision::ypos#2 ← (byte) current_ypos#13 + [157] (byte) play_collision::orientation#2 ← (byte) current_orientation#14 + [158] (byte*~) current_piece#76 ← (byte*) current_piece#10 + [159] call play_collision + [160] (byte) play_collision::return#12 ← (byte) play_collision::return#14 to:play_move_leftright::@15 play_move_leftright::@15: scope:[play_move_leftright] from play_move_leftright::@7 - [162] (byte~) play_move_leftright::$4 ← (byte) play_collision::return#12 - [163] if((byte~) play_move_leftright::$4!=(const byte) COLLISION_NONE#0) goto play_move_leftright::@return + [161] (byte~) play_move_leftright::$4 ← (byte) play_collision::return#12 + [162] if((byte~) play_move_leftright::$4!=(const byte) COLLISION_NONE#0) goto play_move_leftright::@return to:play_move_leftright::@8 play_move_leftright::@8: scope:[play_move_leftright] from play_move_leftright::@15 - [164] (byte) current_xpos#2 ← ++ (byte) current_xpos#1 + [163] (byte) current_xpos#2 ← ++ (byte) current_xpos#1 to:play_move_leftright::@return play_move_leftright::@return: scope:[play_move_leftright] from play_move_leftright::@11 play_move_leftright::@14 play_move_leftright::@15 play_move_leftright::@6 play_move_leftright::@8 - [165] (byte) current_xpos#19 ← phi( play_move_leftright::@11/(byte) current_xpos#4 play_move_leftright::@15/(byte) current_xpos#1 play_move_leftright::@8/(byte) current_xpos#2 play_move_leftright::@14/(byte) current_xpos#1 play_move_leftright::@6/(byte) current_xpos#1 ) - [165] (byte) play_move_leftright::return#1 ← phi( play_move_leftright::@11/(byte/signed byte/word/signed word/dword/signed dword) 1 play_move_leftright::@15/(byte/signed byte/word/signed word/dword/signed dword) 0 play_move_leftright::@8/(byte/signed byte/word/signed word/dword/signed dword) 1 play_move_leftright::@14/(byte/signed byte/word/signed word/dword/signed dword) 0 play_move_leftright::@6/(byte/signed byte/word/signed word/dword/signed dword) 0 ) - [166] return + [164] (byte) current_xpos#19 ← phi( play_move_leftright::@11/(byte) current_xpos#4 play_move_leftright::@15/(byte) current_xpos#1 play_move_leftright::@8/(byte) current_xpos#2 play_move_leftright::@14/(byte) current_xpos#1 play_move_leftright::@6/(byte) current_xpos#1 ) + [164] (byte) play_move_leftright::return#1 ← phi( play_move_leftright::@11/(byte/signed byte/word/signed word/dword/signed dword) 1 play_move_leftright::@15/(byte/signed byte/word/signed word/dword/signed dword) 0 play_move_leftright::@8/(byte/signed byte/word/signed word/dword/signed dword) 1 play_move_leftright::@14/(byte/signed byte/word/signed word/dword/signed dword) 0 play_move_leftright::@6/(byte/signed byte/word/signed word/dword/signed dword) 0 ) + [165] return to:@return play_move_leftright::@1: scope:[play_move_leftright] from play_move_leftright - [167] (byte) play_collision::xpos#1 ← (byte) current_xpos#1 - (byte/signed byte/word/signed word/dword/signed dword) 1 - [168] (byte) play_collision::ypos#1 ← (byte) current_ypos#13 - [169] (byte) play_collision::orientation#1 ← (byte) current_orientation#14 - [170] (byte*~) current_piece#75 ← (byte*) current_piece#10 - [171] call play_collision - [172] (byte) play_collision::return#1 ← (byte) play_collision::return#14 + [166] (byte) play_collision::xpos#1 ← (byte) current_xpos#1 - (byte/signed byte/word/signed word/dword/signed dword) 1 + [167] (byte) play_collision::ypos#1 ← (byte) current_ypos#13 + [168] (byte) play_collision::orientation#1 ← (byte) current_orientation#14 + [169] (byte*~) current_piece#75 ← (byte*) current_piece#10 + [170] call play_collision + [171] (byte) play_collision::return#1 ← (byte) play_collision::return#14 to:play_move_leftright::@14 play_move_leftright::@14: scope:[play_move_leftright] from play_move_leftright::@1 - [173] (byte~) play_move_leftright::$8 ← (byte) play_collision::return#1 - [174] if((byte~) play_move_leftright::$8!=(const byte) COLLISION_NONE#0) goto play_move_leftright::@return + [172] (byte~) play_move_leftright::$8 ← (byte) play_collision::return#1 + [173] if((byte~) play_move_leftright::$8!=(const byte) COLLISION_NONE#0) goto play_move_leftright::@return to:play_move_leftright::@11 play_move_leftright::@11: scope:[play_move_leftright] from play_move_leftright::@14 - [175] (byte) current_xpos#4 ← -- (byte) current_xpos#1 + [174] (byte) current_xpos#4 ← -- (byte) current_xpos#1 to:play_move_leftright::@return play_move_down: scope:[play_move_down] from main::@25 - [176] (byte) current_movedown_counter#1 ← ++ (byte) current_movedown_counter#12 - [177] if((byte) play_move_down::key_event#0!=(const byte) KEY_SPACE#0) goto play_move_down::@1 + [175] (byte) current_movedown_counter#1 ← ++ (byte) current_movedown_counter#12 + [176] if((byte) play_move_down::key_event#0!=(const byte) KEY_SPACE#0) goto play_move_down::@1 to:play_move_down::@8 play_move_down::@8: scope:[play_move_down] from play_move_down - [178] phi() + [177] phi() to:play_move_down::@1 play_move_down::@1: scope:[play_move_down] from play_move_down play_move_down::@8 - [179] (byte) play_move_down::movedown#10 ← phi( play_move_down/(byte/signed byte/word/signed word/dword/signed dword) 0 play_move_down::@8/(byte/signed byte/word/signed word/dword/signed dword) 1 ) - [180] call keyboard_event_pressed - [181] (byte) keyboard_event_pressed::return#12 ← (byte) keyboard_event_pressed::return#11 + [178] (byte) play_move_down::movedown#10 ← phi( play_move_down/(byte/signed byte/word/signed word/dword/signed dword) 0 play_move_down::@8/(byte/signed byte/word/signed word/dword/signed dword) 1 ) + [179] call keyboard_event_pressed + [180] (byte) keyboard_event_pressed::return#12 ← (byte) keyboard_event_pressed::return#11 to:play_move_down::@17 play_move_down::@17: scope:[play_move_down] from play_move_down::@1 - [182] (byte~) play_move_down::$2 ← (byte) keyboard_event_pressed::return#12 - [183] if((byte~) play_move_down::$2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_move_down::@2 + [181] (byte~) play_move_down::$2 ← (byte) keyboard_event_pressed::return#12 + [182] if((byte~) play_move_down::$2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_move_down::@2 to:play_move_down::@9 play_move_down::@9: scope:[play_move_down] from play_move_down::@17 - [184] if((byte) current_movedown_counter#1<(const byte) current_movedown_fast#0) goto play_move_down::@2 + [183] if((byte) current_movedown_counter#1<(const byte) current_movedown_fast#0) goto play_move_down::@2 to:play_move_down::@10 play_move_down::@10: scope:[play_move_down] from play_move_down::@9 - [185] (byte) play_move_down::movedown#2 ← ++ (byte) play_move_down::movedown#10 + [184] (byte) play_move_down::movedown#2 ← ++ (byte) play_move_down::movedown#10 to:play_move_down::@2 play_move_down::@2: scope:[play_move_down] from play_move_down::@10 play_move_down::@17 play_move_down::@9 - [186] (byte) play_move_down::movedown#7 ← phi( play_move_down::@10/(byte) play_move_down::movedown#2 play_move_down::@17/(byte) play_move_down::movedown#10 play_move_down::@9/(byte) play_move_down::movedown#10 ) - [187] if((byte) current_movedown_counter#1<(const byte) current_movedown_slow#0) goto play_move_down::@4 + [185] (byte) play_move_down::movedown#7 ← phi( play_move_down::@10/(byte) play_move_down::movedown#2 play_move_down::@17/(byte) play_move_down::movedown#10 play_move_down::@9/(byte) play_move_down::movedown#10 ) + [186] if((byte) current_movedown_counter#1<(const byte) current_movedown_slow#0) goto play_move_down::@4 to:play_move_down::@11 play_move_down::@11: scope:[play_move_down] from play_move_down::@2 - [188] (byte) play_move_down::movedown#3 ← ++ (byte) play_move_down::movedown#7 + [187] (byte) play_move_down::movedown#3 ← ++ (byte) play_move_down::movedown#7 to:play_move_down::@4 play_move_down::@4: scope:[play_move_down] from play_move_down::@11 play_move_down::@2 - [189] (byte) play_move_down::movedown#6 ← phi( play_move_down::@11/(byte) play_move_down::movedown#3 play_move_down::@2/(byte) play_move_down::movedown#7 ) - [190] if((byte) play_move_down::movedown#6==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_move_down::@return + [188] (byte) play_move_down::movedown#6 ← phi( play_move_down::@11/(byte) play_move_down::movedown#3 play_move_down::@2/(byte) play_move_down::movedown#7 ) + [189] if((byte) play_move_down::movedown#6==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_move_down::@return to:play_move_down::@12 play_move_down::@12: scope:[play_move_down] from play_move_down::@4 - [191] (byte) play_collision::ypos#0 ← (byte) current_ypos#21 + (byte/signed byte/word/signed word/dword/signed dword) 1 - [192] (byte) play_collision::xpos#0 ← (byte) current_xpos#10 - [193] (byte) play_collision::orientation#0 ← (byte) current_orientation#10 - [194] (byte*~) current_piece#74 ← (byte*) current_piece#16 - [195] call play_collision - [196] (byte) play_collision::return#0 ← (byte) play_collision::return#14 + [190] (byte) play_collision::ypos#0 ← (byte) current_ypos#21 + (byte/signed byte/word/signed word/dword/signed dword) 1 + [191] (byte) play_collision::xpos#0 ← (byte) current_xpos#10 + [192] (byte) play_collision::orientation#0 ← (byte) current_orientation#10 + [193] (byte*~) current_piece#74 ← (byte*) current_piece#16 + [194] call play_collision + [195] (byte) play_collision::return#0 ← (byte) play_collision::return#14 to:play_move_down::@18 play_move_down::@18: scope:[play_move_down] from play_move_down::@12 - [197] (byte~) play_move_down::$12 ← (byte) play_collision::return#0 - [198] if((byte~) play_move_down::$12==(const byte) COLLISION_NONE#0) goto play_move_down::@6 + [196] (byte~) play_move_down::$12 ← (byte) play_collision::return#0 + [197] if((byte~) play_move_down::$12==(const byte) COLLISION_NONE#0) goto play_move_down::@6 to:play_move_down::@13 play_move_down::@13: scope:[play_move_down] from play_move_down::@18 - [199] phi() - [200] call play_lock_current + [198] phi() + [199] call play_lock_current to:play_move_down::@19 play_move_down::@19: scope:[play_move_down] from play_move_down::@13 - [201] phi() - [202] call play_remove_lines + [200] phi() + [201] call play_remove_lines to:play_move_down::@20 play_move_down::@20: scope:[play_move_down] from play_move_down::@19 - [203] phi() - [204] call play_spawn_current - [205] (byte*~) current_piece#78 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) + [202] phi() + [203] call play_spawn_current + [204] (byte*~) current_piece#78 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) to:play_move_down::@7 play_move_down::@7: scope:[play_move_down] from play_move_down::@20 play_move_down::@6 - [206] (byte) current_piece_char#20 ← phi( play_move_down::@20/(byte) current_piece_char#12 play_move_down::@6/(byte) current_piece_char#15 ) - [206] (byte) current_xpos#33 ← phi( play_move_down::@20/(byte) current_xpos#23 play_move_down::@6/(byte) current_xpos#10 ) - [206] (byte*) current_piece_gfx#26 ← phi( play_move_down::@20/(byte*) current_piece_gfx#16 play_move_down::@6/(byte*) current_piece_gfx#20 ) - [206] (byte) current_orientation#29 ← phi( play_move_down::@20/(byte/signed byte/word/signed word/dword/signed dword) 0 play_move_down::@6/(byte) current_orientation#10 ) - [206] (byte*) current_piece#20 ← phi( play_move_down::@20/(byte*~) current_piece#78 play_move_down::@6/(byte*) current_piece#16 ) - [206] (byte) current_ypos#29 ← phi( play_move_down::@20/(byte) current_ypos#18 play_move_down::@6/(byte) current_ypos#0 ) + [205] (byte) current_piece_char#20 ← phi( play_move_down::@20/(byte) current_piece_char#12 play_move_down::@6/(byte) current_piece_char#15 ) + [205] (byte) current_xpos#33 ← phi( play_move_down::@20/(byte) current_xpos#23 play_move_down::@6/(byte) current_xpos#10 ) + [205] (byte*) current_piece_gfx#26 ← phi( play_move_down::@20/(byte*) current_piece_gfx#16 play_move_down::@6/(byte*) current_piece_gfx#20 ) + [205] (byte) current_orientation#29 ← phi( play_move_down::@20/(byte/signed byte/word/signed word/dword/signed dword) 0 play_move_down::@6/(byte) current_orientation#10 ) + [205] (byte*) current_piece#20 ← phi( play_move_down::@20/(byte*~) current_piece#78 play_move_down::@6/(byte*) current_piece#16 ) + [205] (byte) current_ypos#29 ← phi( play_move_down::@20/(byte) current_ypos#18 play_move_down::@6/(byte) current_ypos#0 ) to:play_move_down::@return play_move_down::@return: scope:[play_move_down] from play_move_down::@4 play_move_down::@7 - [207] (byte) current_piece_char#1 ← phi( play_move_down::@4/(byte) current_piece_char#15 play_move_down::@7/(byte) current_piece_char#20 ) - [207] (byte) current_xpos#1 ← phi( play_move_down::@4/(byte) current_xpos#10 play_move_down::@7/(byte) current_xpos#33 ) - [207] (byte*) current_piece_gfx#1 ← phi( play_move_down::@4/(byte*) current_piece_gfx#20 play_move_down::@7/(byte*) current_piece_gfx#26 ) - [207] (byte) current_orientation#14 ← phi( play_move_down::@4/(byte) current_orientation#10 play_move_down::@7/(byte) current_orientation#29 ) - [207] (byte*) current_piece#10 ← phi( play_move_down::@4/(byte*) current_piece#16 play_move_down::@7/(byte*) current_piece#20 ) - [207] (byte) current_ypos#13 ← phi( play_move_down::@4/(byte) current_ypos#21 play_move_down::@7/(byte) current_ypos#29 ) - [207] (byte) current_movedown_counter#10 ← phi( play_move_down::@4/(byte) current_movedown_counter#1 play_move_down::@7/(byte/signed byte/word/signed word/dword/signed dword) 0 ) - [207] (byte) play_move_down::return#2 ← phi( play_move_down::@4/(byte/signed byte/word/signed word/dword/signed dword) 0 play_move_down::@7/(byte/signed byte/word/signed word/dword/signed dword) 1 ) - [208] return + [206] (byte) current_piece_char#1 ← phi( play_move_down::@4/(byte) current_piece_char#15 play_move_down::@7/(byte) current_piece_char#20 ) + [206] (byte) current_xpos#1 ← phi( play_move_down::@4/(byte) current_xpos#10 play_move_down::@7/(byte) current_xpos#33 ) + [206] (byte*) current_piece_gfx#1 ← phi( play_move_down::@4/(byte*) current_piece_gfx#20 play_move_down::@7/(byte*) current_piece_gfx#26 ) + [206] (byte) current_orientation#14 ← phi( play_move_down::@4/(byte) current_orientation#10 play_move_down::@7/(byte) current_orientation#29 ) + [206] (byte*) current_piece#10 ← phi( play_move_down::@4/(byte*) current_piece#16 play_move_down::@7/(byte*) current_piece#20 ) + [206] (byte) current_ypos#13 ← phi( play_move_down::@4/(byte) current_ypos#21 play_move_down::@7/(byte) current_ypos#29 ) + [206] (byte) current_movedown_counter#10 ← phi( play_move_down::@4/(byte) current_movedown_counter#1 play_move_down::@7/(byte/signed byte/word/signed word/dword/signed dword) 0 ) + [206] (byte) play_move_down::return#2 ← phi( play_move_down::@4/(byte/signed byte/word/signed word/dword/signed dword) 0 play_move_down::@7/(byte/signed byte/word/signed word/dword/signed dword) 1 ) + [207] return to:@return play_move_down::@6: scope:[play_move_down] from play_move_down::@18 - [209] (byte) current_ypos#0 ← ++ (byte) current_ypos#21 + [208] (byte) current_ypos#0 ← ++ (byte) current_ypos#21 to:play_move_down::@7 play_spawn_current: scope:[play_spawn_current] from main::@19 play_move_down::@20 - [210] phi() + [209] phi() to:play_spawn_current::@1 play_spawn_current::@1: scope:[play_spawn_current] from play_spawn_current play_spawn_current::@7 - [211] (byte) play_spawn_current::piece_idx#2 ← phi( play_spawn_current/(byte/signed byte/word/signed word/dword/signed dword) 7 play_spawn_current::@7/(byte) play_spawn_current::piece_idx#1 ) - [212] if((byte) play_spawn_current::piece_idx#2==(byte/signed byte/word/signed word/dword/signed dword) 7) goto play_spawn_current::@2 + [210] (byte) play_spawn_current::piece_idx#2 ← phi( play_spawn_current/(byte/signed byte/word/signed word/dword/signed dword) 7 play_spawn_current::@7/(byte) play_spawn_current::piece_idx#1 ) + [211] if((byte) play_spawn_current::piece_idx#2==(byte/signed byte/word/signed word/dword/signed dword) 7) goto play_spawn_current::@2 to:play_spawn_current::@3 play_spawn_current::@3: scope:[play_spawn_current] from play_spawn_current::@1 - [213] (byte~) play_spawn_current::$3 ← (byte) play_spawn_current::piece_idx#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 - [214] (byte*) current_piece_gfx#16 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) + (byte/signed byte/word/signed word/dword/signed dword) 0 - [215] (byte) current_xpos#23 ← *((const byte[]) PIECES_START_X#0 + (byte) play_spawn_current::piece_idx#2) - [216] (byte) current_ypos#18 ← *((const byte[]) PIECES_START_Y#0 + (byte) play_spawn_current::piece_idx#2) - [217] (byte) current_piece_char#12 ← *((const byte[]) PIECES_CHARS#0 + (byte) play_spawn_current::piece_idx#2) + [212] (byte~) play_spawn_current::$3 ← (byte) play_spawn_current::piece_idx#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 + [213] (byte*) current_piece_gfx#16 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) + (byte/signed byte/word/signed word/dword/signed dword) 0 + [214] (byte) current_xpos#23 ← *((const byte[]) PIECES_START_X#0 + (byte) play_spawn_current::piece_idx#2) + [215] (byte) current_ypos#18 ← *((const byte[]) PIECES_START_Y#0 + (byte) play_spawn_current::piece_idx#2) + [216] (byte) current_piece_char#12 ← *((const byte[]) PIECES_CHARS#0 + (byte) play_spawn_current::piece_idx#2) to:play_spawn_current::@return play_spawn_current::@return: scope:[play_spawn_current] from play_spawn_current::@3 - [218] return + [217] return to:@return play_spawn_current::@2: scope:[play_spawn_current] from play_spawn_current::@1 - [219] phi() - [220] call sid_rnd - [221] (byte) sid_rnd::return#2 ← (byte) sid_rnd::return#0 + [218] phi() + [219] call sid_rnd + [220] (byte) sid_rnd::return#2 ← (byte) sid_rnd::return#0 to:play_spawn_current::@7 play_spawn_current::@7: scope:[play_spawn_current] from play_spawn_current::@2 - [222] (byte~) play_spawn_current::$1 ← (byte) sid_rnd::return#2 - [223] (byte) play_spawn_current::piece_idx#1 ← (byte~) play_spawn_current::$1 & (byte/signed byte/word/signed word/dword/signed dword) 7 + [221] (byte~) play_spawn_current::$1 ← (byte) sid_rnd::return#2 + [222] (byte) play_spawn_current::piece_idx#1 ← (byte~) play_spawn_current::$1 & (byte/signed byte/word/signed word/dword/signed dword) 7 to:play_spawn_current::@1 sid_rnd: scope:[sid_rnd] from play_spawn_current::@2 - [224] (byte) sid_rnd::return#0 ← *((const byte*) SID_VOICE3_OSC#0) + [223] (byte) sid_rnd::return#0 ← *((const byte*) SID_VOICE3_OSC#0) to:sid_rnd::@return sid_rnd::@return: scope:[sid_rnd] from sid_rnd - [225] return + [224] return to:@return play_remove_lines: scope:[play_remove_lines] from play_move_down::@19 - [226] phi() + [225] phi() to:play_remove_lines::@1 play_remove_lines::@1: scope:[play_remove_lines] from play_remove_lines play_remove_lines::@4 - [227] (byte) play_remove_lines::y#8 ← phi( play_remove_lines/(byte/signed byte/word/signed word/dword/signed dword) 0 play_remove_lines::@4/(byte) play_remove_lines::y#1 ) - [227] (byte) play_remove_lines::w#12 ← phi( play_remove_lines/(const byte) PLAYFIELD_LINES#0*(const byte) PLAYFIELD_COLS#0-(byte/signed byte/word/signed word/dword/signed dword) 1 play_remove_lines::@4/(byte) play_remove_lines::w#11 ) - [227] (byte) play_remove_lines::r#3 ← phi( play_remove_lines/(const byte) PLAYFIELD_LINES#0*(const byte) PLAYFIELD_COLS#0-(byte/signed byte/word/signed word/dword/signed dword) 1 play_remove_lines::@4/(byte) play_remove_lines::r#1 ) + [226] (byte) play_remove_lines::y#8 ← phi( play_remove_lines/(byte/signed byte/word/signed word/dword/signed dword) 0 play_remove_lines::@4/(byte) play_remove_lines::y#1 ) + [226] (byte) play_remove_lines::w#12 ← phi( play_remove_lines/(const byte) PLAYFIELD_LINES#0*(const byte) PLAYFIELD_COLS#0-(byte/signed byte/word/signed word/dword/signed dword) 1 play_remove_lines::@4/(byte) play_remove_lines::w#11 ) + [226] (byte) play_remove_lines::r#3 ← phi( play_remove_lines/(const byte) PLAYFIELD_LINES#0*(const byte) PLAYFIELD_COLS#0-(byte/signed byte/word/signed word/dword/signed dword) 1 play_remove_lines::@4/(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 - [228] (byte) play_remove_lines::full#4 ← phi( play_remove_lines::@1/(byte/signed byte/word/signed word/dword/signed dword) 1 play_remove_lines::@3/(byte) play_remove_lines::full#2 ) - [228] (byte) play_remove_lines::x#2 ← phi( play_remove_lines::@1/(byte/signed byte/word/signed word/dword/signed dword) 0 play_remove_lines::@3/(byte) play_remove_lines::x#1 ) - [228] (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 ) - [228] (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 ) - [229] (byte) play_remove_lines::c#0 ← *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) play_remove_lines::r#2) - [230] (byte) play_remove_lines::r#1 ← -- (byte) play_remove_lines::r#2 - [231] if((byte) play_remove_lines::c#0!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_remove_lines::@17 + [227] (byte) play_remove_lines::full#4 ← phi( play_remove_lines::@1/(byte/signed byte/word/signed word/dword/signed dword) 1 play_remove_lines::@3/(byte) play_remove_lines::full#2 ) + [227] (byte) play_remove_lines::x#2 ← phi( play_remove_lines::@1/(byte/signed byte/word/signed word/dword/signed dword) 0 play_remove_lines::@3/(byte) play_remove_lines::x#1 ) + [227] (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 ) + [227] (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 ) + [228] (byte) play_remove_lines::c#0 ← *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) play_remove_lines::r#2) + [229] (byte) play_remove_lines::r#1 ← -- (byte) play_remove_lines::r#2 + [230] if((byte) play_remove_lines::c#0!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_remove_lines::@17 to:play_remove_lines::@3 play_remove_lines::@3: scope:[play_remove_lines] from play_remove_lines::@17 play_remove_lines::@2 - [232] (byte) play_remove_lines::full#2 ← phi( play_remove_lines::@17/(byte) play_remove_lines::full#4 play_remove_lines::@2/(byte/signed byte/word/signed word/dword/signed dword) 0 ) - [233] *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) play_remove_lines::w#4) ← (byte) play_remove_lines::c#0 - [234] (byte) play_remove_lines::w#1 ← -- (byte) play_remove_lines::w#4 - [235] (byte) play_remove_lines::x#1 ← ++ (byte) play_remove_lines::x#2 - [236] if((byte) play_remove_lines::x#1!=(const byte) PLAYFIELD_COLS#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto play_remove_lines::@2 + [231] (byte) play_remove_lines::full#2 ← phi( play_remove_lines::@17/(byte) play_remove_lines::full#4 play_remove_lines::@2/(byte/signed byte/word/signed word/dword/signed dword) 0 ) + [232] *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) play_remove_lines::w#4) ← (byte) play_remove_lines::c#0 + [233] (byte) play_remove_lines::w#1 ← -- (byte) play_remove_lines::w#4 + [234] (byte) play_remove_lines::x#1 ← ++ (byte) play_remove_lines::x#2 + [235] if((byte) play_remove_lines::x#1!=(const byte) PLAYFIELD_COLS#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto play_remove_lines::@2 to:play_remove_lines::@9 play_remove_lines::@9: scope:[play_remove_lines] from play_remove_lines::@3 - [237] if((byte) play_remove_lines::full#2!=(byte/signed byte/word/signed word/dword/signed dword) 1) goto play_remove_lines::@4 + [236] if((byte) play_remove_lines::full#2!=(byte/signed byte/word/signed word/dword/signed dword) 1) goto play_remove_lines::@4 to:play_remove_lines::@10 play_remove_lines::@10: scope:[play_remove_lines] from play_remove_lines::@9 - [238] (byte) play_remove_lines::w#2 ← (byte) play_remove_lines::w#1 + (const byte) PLAYFIELD_COLS#0 + [237] (byte) play_remove_lines::w#2 ← (byte) play_remove_lines::w#1 + (const byte) PLAYFIELD_COLS#0 to:play_remove_lines::@4 play_remove_lines::@4: scope:[play_remove_lines] from play_remove_lines::@10 play_remove_lines::@9 - [239] (byte) play_remove_lines::w#11 ← phi( play_remove_lines::@10/(byte) play_remove_lines::w#2 play_remove_lines::@9/(byte) play_remove_lines::w#1 ) - [240] (byte) play_remove_lines::y#1 ← ++ (byte) play_remove_lines::y#8 - [241] if((byte) play_remove_lines::y#1!=(const byte) PLAYFIELD_LINES#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto play_remove_lines::@1 + [238] (byte) play_remove_lines::w#11 ← phi( play_remove_lines::@10/(byte) play_remove_lines::w#2 play_remove_lines::@9/(byte) play_remove_lines::w#1 ) + [239] (byte) play_remove_lines::y#1 ← ++ (byte) play_remove_lines::y#8 + [240] if((byte) play_remove_lines::y#1!=(const byte) PLAYFIELD_LINES#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto play_remove_lines::@1 to:play_remove_lines::@5 play_remove_lines::@5: scope:[play_remove_lines] from play_remove_lines::@4 play_remove_lines::@6 - [242] (byte) play_remove_lines::w#6 ← phi( play_remove_lines::@4/(byte) play_remove_lines::w#11 play_remove_lines::@6/(byte) play_remove_lines::w#3 ) - [243] if((byte) play_remove_lines::w#6!=(byte/word/signed word/dword/signed dword) 255) goto play_remove_lines::@6 + [241] (byte) play_remove_lines::w#6 ← phi( play_remove_lines::@4/(byte) play_remove_lines::w#11 play_remove_lines::@6/(byte) play_remove_lines::w#3 ) + [242] if((byte) play_remove_lines::w#6!=(byte/word/signed word/dword/signed dword) 255) goto play_remove_lines::@6 to:play_remove_lines::@return play_remove_lines::@return: scope:[play_remove_lines] from play_remove_lines::@5 - [244] return + [243] return to:@return play_remove_lines::@6: scope:[play_remove_lines] from play_remove_lines::@5 - [245] *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) play_remove_lines::w#6) ← (byte/signed byte/word/signed word/dword/signed dword) 0 - [246] (byte) play_remove_lines::w#3 ← -- (byte) play_remove_lines::w#6 + [244] *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) play_remove_lines::w#6) ← (byte/signed byte/word/signed word/dword/signed dword) 0 + [245] (byte) play_remove_lines::w#3 ← -- (byte) play_remove_lines::w#6 to:play_remove_lines::@5 play_remove_lines::@17: scope:[play_remove_lines] from play_remove_lines::@2 - [247] phi() + [246] phi() to:play_remove_lines::@3 play_lock_current: scope:[play_lock_current] from play_move_down::@13 - [248] (byte) play_lock_current::ypos2#0 ← (byte) current_ypos#21 << (byte/signed byte/word/signed word/dword/signed dword) 1 + [247] (byte) play_lock_current::ypos2#0 ← (byte) current_ypos#21 << (byte/signed byte/word/signed word/dword/signed dword) 1 to:play_lock_current::@1 play_lock_current::@1: scope:[play_lock_current] from play_lock_current play_lock_current::@7 - [249] (byte) play_lock_current::l#6 ← phi( play_lock_current/(byte/signed byte/word/signed word/dword/signed dword) 0 play_lock_current::@7/(byte) play_lock_current::l#1 ) - [249] (byte) play_lock_current::i#3 ← phi( play_lock_current/(byte/signed byte/word/signed word/dword/signed dword) 0 play_lock_current::@7/(byte~) play_lock_current::i#7 ) - [249] (byte) play_lock_current::ypos2#2 ← phi( play_lock_current/(byte) play_lock_current::ypos2#0 play_lock_current::@7/(byte) play_lock_current::ypos2#1 ) - [250] (byte*) play_lock_current::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) play_lock_current::ypos2#2) - [251] (byte) play_lock_current::col#0 ← (byte) current_xpos#10 + [248] (byte) play_lock_current::l#6 ← phi( play_lock_current/(byte/signed byte/word/signed word/dword/signed dword) 0 play_lock_current::@7/(byte) play_lock_current::l#1 ) + [248] (byte) play_lock_current::i#3 ← phi( play_lock_current/(byte/signed byte/word/signed word/dword/signed dword) 0 play_lock_current::@7/(byte~) play_lock_current::i#7 ) + [248] (byte) play_lock_current::ypos2#2 ← phi( play_lock_current/(byte) play_lock_current::ypos2#0 play_lock_current::@7/(byte) play_lock_current::ypos2#1 ) + [249] (byte*) play_lock_current::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) play_lock_current::ypos2#2) + [250] (byte) play_lock_current::col#0 ← (byte) current_xpos#10 to:play_lock_current::@2 play_lock_current::@2: scope:[play_lock_current] from play_lock_current::@1 play_lock_current::@8 - [252] (byte) play_lock_current::c#2 ← phi( play_lock_current::@1/(byte/signed byte/word/signed word/dword/signed dword) 0 play_lock_current::@8/(byte) play_lock_current::c#1 ) - [252] (byte) play_lock_current::col#2 ← phi( play_lock_current::@1/(byte) play_lock_current::col#0 play_lock_current::@8/(byte) play_lock_current::col#1 ) - [252] (byte) play_lock_current::i#2 ← phi( play_lock_current::@1/(byte) play_lock_current::i#3 play_lock_current::@8/(byte~) play_lock_current::i#9 ) - [253] (byte) play_lock_current::i#1 ← ++ (byte) play_lock_current::i#2 - [254] if(*((byte*) current_piece_gfx#20 + (byte) play_lock_current::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_lock_current::@3 + [251] (byte) play_lock_current::c#2 ← phi( play_lock_current::@1/(byte/signed byte/word/signed word/dword/signed dword) 0 play_lock_current::@8/(byte) play_lock_current::c#1 ) + [251] (byte) play_lock_current::col#2 ← phi( play_lock_current::@1/(byte) play_lock_current::col#0 play_lock_current::@8/(byte) play_lock_current::col#1 ) + [251] (byte) play_lock_current::i#2 ← phi( play_lock_current::@1/(byte) play_lock_current::i#3 play_lock_current::@8/(byte~) play_lock_current::i#9 ) + [252] (byte) play_lock_current::i#1 ← ++ (byte) play_lock_current::i#2 + [253] if(*((byte*) current_piece_gfx#20 + (byte) play_lock_current::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_lock_current::@3 to:play_lock_current::@4 play_lock_current::@4: scope:[play_lock_current] from play_lock_current::@2 - [255] *((byte*) play_lock_current::playfield_line#0 + (byte) play_lock_current::col#2) ← (byte) current_piece_char#15 + [254] *((byte*) play_lock_current::playfield_line#0 + (byte) play_lock_current::col#2) ← (byte) current_piece_char#15 to:play_lock_current::@3 play_lock_current::@3: scope:[play_lock_current] from play_lock_current::@2 play_lock_current::@4 - [256] (byte) play_lock_current::col#1 ← ++ (byte) play_lock_current::col#2 - [257] (byte) play_lock_current::c#1 ← ++ (byte) play_lock_current::c#2 - [258] if((byte) play_lock_current::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto play_lock_current::@8 + [255] (byte) play_lock_current::col#1 ← ++ (byte) play_lock_current::col#2 + [256] (byte) play_lock_current::c#1 ← ++ (byte) play_lock_current::c#2 + [257] if((byte) play_lock_current::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto play_lock_current::@8 to:play_lock_current::@5 play_lock_current::@5: scope:[play_lock_current] from play_lock_current::@3 - [259] (byte) play_lock_current::ypos2#1 ← (byte) play_lock_current::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 - [260] (byte) play_lock_current::l#1 ← ++ (byte) play_lock_current::l#6 - [261] if((byte) play_lock_current::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto play_lock_current::@7 + [258] (byte) play_lock_current::ypos2#1 ← (byte) play_lock_current::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 + [259] (byte) play_lock_current::l#1 ← ++ (byte) play_lock_current::l#6 + [260] if((byte) play_lock_current::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto play_lock_current::@7 to:play_lock_current::@return play_lock_current::@return: scope:[play_lock_current] from play_lock_current::@5 - [262] return + [261] return to:@return play_lock_current::@7: scope:[play_lock_current] from play_lock_current::@5 - [263] (byte~) play_lock_current::i#7 ← (byte) play_lock_current::i#1 + [262] (byte~) play_lock_current::i#7 ← (byte) play_lock_current::i#1 to:play_lock_current::@1 play_lock_current::@8: scope:[play_lock_current] from play_lock_current::@3 - [264] (byte~) play_lock_current::i#9 ← (byte) play_lock_current::i#1 + [263] (byte~) play_lock_current::i#9 ← (byte) play_lock_current::i#1 to:play_lock_current::@2 keyboard_event_pressed: scope:[keyboard_event_pressed] from keyboard_event_scan::@10 keyboard_event_scan::@11 keyboard_event_scan::@20 keyboard_event_scan::@9 play_move_down::@1 - [265] (byte) keyboard_event_pressed::keycode#5 ← phi( keyboard_event_scan::@10/(const byte) KEY_CTRL#0 keyboard_event_scan::@11/(const byte) KEY_COMMODORE#0 keyboard_event_scan::@20/(const byte) KEY_LSHIFT#0 keyboard_event_scan::@9/(const byte) KEY_RSHIFT#0 play_move_down::@1/(const byte) KEY_SPACE#0 ) - [266] (byte~) keyboard_event_pressed::$0 ← (byte) keyboard_event_pressed::keycode#5 >> (byte/signed byte/word/signed word/dword/signed dword) 3 - [267] (byte) keyboard_event_pressed::row_bits#0 ← *((const byte[8]) keyboard_scan_values#0 + (byte~) keyboard_event_pressed::$0) - [268] (byte~) keyboard_event_pressed::$1 ← (byte) keyboard_event_pressed::keycode#5 & (byte/signed byte/word/signed word/dword/signed dword) 7 - [269] (byte) keyboard_event_pressed::return#11 ← (byte) keyboard_event_pressed::row_bits#0 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte~) keyboard_event_pressed::$1) + [264] (byte) keyboard_event_pressed::keycode#5 ← phi( keyboard_event_scan::@10/(const byte) KEY_CTRL#0 keyboard_event_scan::@11/(const byte) KEY_COMMODORE#0 keyboard_event_scan::@20/(const byte) KEY_LSHIFT#0 keyboard_event_scan::@9/(const byte) KEY_RSHIFT#0 play_move_down::@1/(const byte) KEY_SPACE#0 ) + [265] (byte~) keyboard_event_pressed::$0 ← (byte) keyboard_event_pressed::keycode#5 >> (byte/signed byte/word/signed word/dword/signed dword) 3 + [266] (byte) keyboard_event_pressed::row_bits#0 ← *((const byte[8]) keyboard_scan_values#0 + (byte~) keyboard_event_pressed::$0) + [267] (byte~) keyboard_event_pressed::$1 ← (byte) keyboard_event_pressed::keycode#5 & (byte/signed byte/word/signed word/dword/signed dword) 7 + [268] (byte) keyboard_event_pressed::return#11 ← (byte) keyboard_event_pressed::row_bits#0 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte~) keyboard_event_pressed::$1) to:keyboard_event_pressed::@return keyboard_event_pressed::@return: scope:[keyboard_event_pressed] from keyboard_event_pressed - [270] return + [269] return to:@return keyboard_event_get: scope:[keyboard_event_get] from main::@24 - [271] if((byte) keyboard_events_size#13==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_get::@return + [270] if((byte) keyboard_events_size#13==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_get::@return to:keyboard_event_get::@3 keyboard_event_get::@3: scope:[keyboard_event_get] from keyboard_event_get - [272] (byte) keyboard_events_size#4 ← -- (byte) keyboard_events_size#13 - [273] (byte) keyboard_event_get::return#1 ← *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#4) + [271] (byte) keyboard_events_size#4 ← -- (byte) keyboard_events_size#13 + [272] (byte) keyboard_event_get::return#1 ← *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#4) to:keyboard_event_get::@return keyboard_event_get::@return: scope:[keyboard_event_get] from keyboard_event_get keyboard_event_get::@3 - [274] (byte) keyboard_events_size#16 ← phi( keyboard_event_get/(byte) keyboard_events_size#13 keyboard_event_get::@3/(byte) keyboard_events_size#4 ) - [274] (byte) keyboard_event_get::return#2 ← phi( keyboard_event_get/(byte/word/signed word/dword/signed dword) 255 keyboard_event_get::@3/(byte) keyboard_event_get::return#1 ) - [275] return + [273] (byte) keyboard_events_size#16 ← phi( keyboard_event_get/(byte) keyboard_events_size#13 keyboard_event_get::@3/(byte) keyboard_events_size#4 ) + [273] (byte) keyboard_event_get::return#2 ← phi( keyboard_event_get/(byte/word/signed word/dword/signed dword) 255 keyboard_event_get::@3/(byte) keyboard_event_get::return#1 ) + [274] return to:@return keyboard_event_scan: scope:[keyboard_event_scan] from main::@23 - [276] phi() + [275] phi() to:keyboard_event_scan::@1 keyboard_event_scan::@1: scope:[keyboard_event_scan] from keyboard_event_scan keyboard_event_scan::@3 - [277] (byte) keyboard_events_size#29 ← phi( keyboard_event_scan/(byte) keyboard_events_size#19 keyboard_event_scan::@3/(byte) keyboard_events_size#13 ) - [277] (byte) keyboard_event_scan::keycode#11 ← phi( keyboard_event_scan/(byte/signed byte/word/signed word/dword/signed dword) 0 keyboard_event_scan::@3/(byte) keyboard_event_scan::keycode#14 ) - [277] (byte) keyboard_event_scan::row#2 ← phi( keyboard_event_scan/(byte/signed byte/word/signed word/dword/signed dword) 0 keyboard_event_scan::@3/(byte) keyboard_event_scan::row#1 ) - [278] (byte) keyboard_matrix_read::rowid#0 ← (byte) keyboard_event_scan::row#2 - [279] call keyboard_matrix_read - [280] (byte) keyboard_matrix_read::return#2 ← (byte) keyboard_matrix_read::return#0 + [276] (byte) keyboard_events_size#29 ← phi( keyboard_event_scan/(byte) keyboard_events_size#19 keyboard_event_scan::@3/(byte) keyboard_events_size#13 ) + [276] (byte) keyboard_event_scan::keycode#11 ← phi( keyboard_event_scan/(byte/signed byte/word/signed word/dword/signed dword) 0 keyboard_event_scan::@3/(byte) keyboard_event_scan::keycode#14 ) + [276] (byte) keyboard_event_scan::row#2 ← phi( keyboard_event_scan/(byte/signed byte/word/signed word/dword/signed dword) 0 keyboard_event_scan::@3/(byte) keyboard_event_scan::row#1 ) + [277] (byte) keyboard_matrix_read::rowid#0 ← (byte) keyboard_event_scan::row#2 + [278] call keyboard_matrix_read + [279] (byte) keyboard_matrix_read::return#2 ← (byte) keyboard_matrix_read::return#0 to:keyboard_event_scan::@25 keyboard_event_scan::@25: scope:[keyboard_event_scan] from keyboard_event_scan::@1 - [281] (byte) keyboard_event_scan::row_scan#0 ← (byte) keyboard_matrix_read::return#2 - [282] if((byte) keyboard_event_scan::row_scan#0!=*((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2)) goto keyboard_event_scan::@4 + [280] (byte) keyboard_event_scan::row_scan#0 ← (byte) keyboard_matrix_read::return#2 + [281] if((byte) keyboard_event_scan::row_scan#0!=*((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2)) goto keyboard_event_scan::@4 to:keyboard_event_scan::@13 keyboard_event_scan::@13: scope:[keyboard_event_scan] from keyboard_event_scan::@25 - [283] (byte) keyboard_event_scan::keycode#1 ← (byte) keyboard_event_scan::keycode#11 + (byte/signed byte/word/signed word/dword/signed dword) 8 + [282] (byte) keyboard_event_scan::keycode#1 ← (byte) keyboard_event_scan::keycode#11 + (byte/signed byte/word/signed word/dword/signed dword) 8 to:keyboard_event_scan::@3 keyboard_event_scan::@3: scope:[keyboard_event_scan] from keyboard_event_scan::@13 keyboard_event_scan::@19 - [284] (byte) keyboard_events_size#13 ← phi( keyboard_event_scan::@13/(byte) keyboard_events_size#29 keyboard_event_scan::@19/(byte) keyboard_events_size#30 ) - [284] (byte) keyboard_event_scan::keycode#14 ← phi( keyboard_event_scan::@13/(byte) keyboard_event_scan::keycode#1 keyboard_event_scan::@19/(byte) keyboard_event_scan::keycode#15 ) - [285] (byte) keyboard_event_scan::row#1 ← ++ (byte) keyboard_event_scan::row#2 - [286] if((byte) keyboard_event_scan::row#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto keyboard_event_scan::@1 + [283] (byte) keyboard_events_size#13 ← phi( keyboard_event_scan::@13/(byte) keyboard_events_size#29 keyboard_event_scan::@19/(byte) keyboard_events_size#30 ) + [283] (byte) keyboard_event_scan::keycode#14 ← phi( keyboard_event_scan::@13/(byte) keyboard_event_scan::keycode#1 keyboard_event_scan::@19/(byte) keyboard_event_scan::keycode#15 ) + [284] (byte) keyboard_event_scan::row#1 ← ++ (byte) keyboard_event_scan::row#2 + [285] if((byte) keyboard_event_scan::row#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto keyboard_event_scan::@1 to:keyboard_event_scan::@20 keyboard_event_scan::@20: scope:[keyboard_event_scan] from keyboard_event_scan::@3 - [287] phi() - [288] call keyboard_event_pressed - [289] (byte) keyboard_event_pressed::return#0 ← (byte) keyboard_event_pressed::return#11 + [286] phi() + [287] call keyboard_event_pressed + [288] (byte) keyboard_event_pressed::return#0 ← (byte) keyboard_event_pressed::return#11 to:keyboard_event_scan::@26 keyboard_event_scan::@26: scope:[keyboard_event_scan] from keyboard_event_scan::@20 - [290] (byte~) keyboard_event_scan::$14 ← (byte) keyboard_event_pressed::return#0 - [291] if((byte~) keyboard_event_scan::$14==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@9 + [289] (byte~) keyboard_event_scan::$14 ← (byte) keyboard_event_pressed::return#0 + [290] if((byte~) keyboard_event_scan::$14==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@9 to:keyboard_event_scan::@21 keyboard_event_scan::@21: scope:[keyboard_event_scan] from keyboard_event_scan::@26 - [292] phi() + [291] phi() to:keyboard_event_scan::@9 keyboard_event_scan::@9: scope:[keyboard_event_scan] from keyboard_event_scan::@21 keyboard_event_scan::@26 - [293] (byte) keyboard_modifiers#11 ← phi( keyboard_event_scan::@21/(byte/signed byte/word/signed word/dword/signed dword) 0|(const byte) KEY_MODIFIER_LSHIFT#0 keyboard_event_scan::@26/(byte/signed byte/word/signed word/dword/signed dword) 0 ) - [294] call keyboard_event_pressed - [295] (byte) keyboard_event_pressed::return#1 ← (byte) keyboard_event_pressed::return#11 + [292] (byte) keyboard_modifiers#11 ← phi( keyboard_event_scan::@21/(byte/signed byte/word/signed word/dword/signed dword) 0|(const byte) KEY_MODIFIER_LSHIFT#0 keyboard_event_scan::@26/(byte/signed byte/word/signed word/dword/signed dword) 0 ) + [293] call keyboard_event_pressed + [294] (byte) keyboard_event_pressed::return#1 ← (byte) keyboard_event_pressed::return#11 to:keyboard_event_scan::@27 keyboard_event_scan::@27: scope:[keyboard_event_scan] from keyboard_event_scan::@9 - [296] (byte~) keyboard_event_scan::$18 ← (byte) keyboard_event_pressed::return#1 - [297] if((byte~) keyboard_event_scan::$18==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@10 + [295] (byte~) keyboard_event_scan::$18 ← (byte) keyboard_event_pressed::return#1 + [296] if((byte~) keyboard_event_scan::$18==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@10 to:keyboard_event_scan::@22 keyboard_event_scan::@22: scope:[keyboard_event_scan] from keyboard_event_scan::@27 - [298] (byte) keyboard_modifiers#3 ← (byte) keyboard_modifiers#11 | (const byte) KEY_MODIFIER_RSHIFT#0 + [297] (byte) keyboard_modifiers#3 ← (byte) keyboard_modifiers#11 | (const byte) KEY_MODIFIER_RSHIFT#0 to:keyboard_event_scan::@10 keyboard_event_scan::@10: scope:[keyboard_event_scan] from keyboard_event_scan::@22 keyboard_event_scan::@27 - [299] (byte) keyboard_modifiers#12 ← phi( keyboard_event_scan::@22/(byte) keyboard_modifiers#3 keyboard_event_scan::@27/(byte) keyboard_modifiers#11 ) - [300] call keyboard_event_pressed - [301] (byte) keyboard_event_pressed::return#2 ← (byte) keyboard_event_pressed::return#11 + [298] (byte) keyboard_modifiers#12 ← phi( keyboard_event_scan::@22/(byte) keyboard_modifiers#3 keyboard_event_scan::@27/(byte) keyboard_modifiers#11 ) + [299] call keyboard_event_pressed + [300] (byte) keyboard_event_pressed::return#2 ← (byte) keyboard_event_pressed::return#11 to:keyboard_event_scan::@28 keyboard_event_scan::@28: scope:[keyboard_event_scan] from keyboard_event_scan::@10 - [302] (byte~) keyboard_event_scan::$22 ← (byte) keyboard_event_pressed::return#2 - [303] if((byte~) keyboard_event_scan::$22==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@11 + [301] (byte~) keyboard_event_scan::$22 ← (byte) keyboard_event_pressed::return#2 + [302] if((byte~) keyboard_event_scan::$22==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@11 to:keyboard_event_scan::@23 keyboard_event_scan::@23: scope:[keyboard_event_scan] from keyboard_event_scan::@28 - [304] (byte) keyboard_modifiers#4 ← (byte) keyboard_modifiers#12 | (const byte) KEY_MODIFIER_CTRL#0 + [303] (byte) keyboard_modifiers#4 ← (byte) keyboard_modifiers#12 | (const byte) KEY_MODIFIER_CTRL#0 to:keyboard_event_scan::@11 keyboard_event_scan::@11: scope:[keyboard_event_scan] from keyboard_event_scan::@23 keyboard_event_scan::@28 - [305] (byte) keyboard_modifiers#13 ← phi( keyboard_event_scan::@23/(byte) keyboard_modifiers#4 keyboard_event_scan::@28/(byte) keyboard_modifiers#12 ) - [306] call keyboard_event_pressed - [307] (byte) keyboard_event_pressed::return#10 ← (byte) keyboard_event_pressed::return#11 + [304] (byte) keyboard_modifiers#13 ← phi( keyboard_event_scan::@23/(byte) keyboard_modifiers#4 keyboard_event_scan::@28/(byte) keyboard_modifiers#12 ) + [305] call keyboard_event_pressed + [306] (byte) keyboard_event_pressed::return#10 ← (byte) keyboard_event_pressed::return#11 to:keyboard_event_scan::@29 keyboard_event_scan::@29: scope:[keyboard_event_scan] from keyboard_event_scan::@11 - [308] (byte~) keyboard_event_scan::$26 ← (byte) keyboard_event_pressed::return#10 - [309] if((byte~) keyboard_event_scan::$26==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@return + [307] (byte~) keyboard_event_scan::$26 ← (byte) keyboard_event_pressed::return#10 + [308] if((byte~) keyboard_event_scan::$26==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@return to:keyboard_event_scan::@24 keyboard_event_scan::@24: scope:[keyboard_event_scan] from keyboard_event_scan::@29 - [310] (byte) keyboard_modifiers#5 ← (byte) keyboard_modifiers#13 | (const byte) KEY_MODIFIER_COMMODORE#0 + [309] (byte) keyboard_modifiers#5 ← (byte) keyboard_modifiers#13 | (const byte) KEY_MODIFIER_COMMODORE#0 to:keyboard_event_scan::@return keyboard_event_scan::@return: scope:[keyboard_event_scan] from keyboard_event_scan::@24 keyboard_event_scan::@29 - [311] return + [310] return to:@return keyboard_event_scan::@4: scope:[keyboard_event_scan] from keyboard_event_scan::@25 keyboard_event_scan::@5 - [312] (byte) keyboard_events_size#10 ← phi( keyboard_event_scan::@25/(byte) keyboard_events_size#29 keyboard_event_scan::@5/(byte) keyboard_events_size#30 ) - [312] (byte) keyboard_event_scan::keycode#10 ← phi( keyboard_event_scan::@25/(byte) keyboard_event_scan::keycode#11 keyboard_event_scan::@5/(byte) keyboard_event_scan::keycode#15 ) - [312] (byte) keyboard_event_scan::col#2 ← phi( keyboard_event_scan::@25/(byte/signed byte/word/signed word/dword/signed dword) 0 keyboard_event_scan::@5/(byte) keyboard_event_scan::col#1 ) - [313] (byte~) keyboard_event_scan::$3 ← (byte) keyboard_event_scan::row_scan#0 ^ *((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2) - [314] (byte~) keyboard_event_scan::$4 ← (byte~) keyboard_event_scan::$3 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_event_scan::col#2) - [315] if((byte~) keyboard_event_scan::$4==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@5 + [311] (byte) keyboard_events_size#10 ← phi( keyboard_event_scan::@25/(byte) keyboard_events_size#29 keyboard_event_scan::@5/(byte) keyboard_events_size#30 ) + [311] (byte) keyboard_event_scan::keycode#10 ← phi( keyboard_event_scan::@25/(byte) keyboard_event_scan::keycode#11 keyboard_event_scan::@5/(byte) keyboard_event_scan::keycode#15 ) + [311] (byte) keyboard_event_scan::col#2 ← phi( keyboard_event_scan::@25/(byte/signed byte/word/signed word/dword/signed dword) 0 keyboard_event_scan::@5/(byte) keyboard_event_scan::col#1 ) + [312] (byte~) keyboard_event_scan::$3 ← (byte) keyboard_event_scan::row_scan#0 ^ *((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2) + [313] (byte~) keyboard_event_scan::$4 ← (byte~) keyboard_event_scan::$3 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_event_scan::col#2) + [314] if((byte~) keyboard_event_scan::$4==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@5 to:keyboard_event_scan::@15 keyboard_event_scan::@15: scope:[keyboard_event_scan] from keyboard_event_scan::@4 - [316] if((byte) keyboard_events_size#10==(byte/signed byte/word/signed word/dword/signed dword) 8) goto keyboard_event_scan::@5 + [315] if((byte) keyboard_events_size#10==(byte/signed byte/word/signed word/dword/signed dword) 8) goto keyboard_event_scan::@5 to:keyboard_event_scan::@16 keyboard_event_scan::@16: scope:[keyboard_event_scan] from keyboard_event_scan::@15 - [317] (byte) keyboard_event_scan::event_type#0 ← (byte) keyboard_event_scan::row_scan#0 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_event_scan::col#2) - [318] if((byte) keyboard_event_scan::event_type#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@7 + [316] (byte) keyboard_event_scan::event_type#0 ← (byte) keyboard_event_scan::row_scan#0 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_event_scan::col#2) + [317] if((byte) keyboard_event_scan::event_type#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@7 to:keyboard_event_scan::@17 keyboard_event_scan::@17: scope:[keyboard_event_scan] from keyboard_event_scan::@16 - [319] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte) keyboard_event_scan::keycode#10 - [320] (byte) keyboard_events_size#2 ← ++ (byte) keyboard_events_size#10 + [318] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte) keyboard_event_scan::keycode#10 + [319] (byte) keyboard_events_size#2 ← ++ (byte) keyboard_events_size#10 to:keyboard_event_scan::@5 keyboard_event_scan::@5: scope:[keyboard_event_scan] from keyboard_event_scan::@15 keyboard_event_scan::@17 keyboard_event_scan::@4 keyboard_event_scan::@7 - [321] (byte) keyboard_events_size#30 ← phi( keyboard_event_scan::@17/(byte) keyboard_events_size#2 keyboard_event_scan::@4/(byte) keyboard_events_size#10 keyboard_event_scan::@15/(byte) keyboard_events_size#10 keyboard_event_scan::@7/(byte) keyboard_events_size#1 ) - [322] (byte) keyboard_event_scan::keycode#15 ← ++ (byte) keyboard_event_scan::keycode#10 - [323] (byte) keyboard_event_scan::col#1 ← ++ (byte) keyboard_event_scan::col#2 - [324] if((byte) keyboard_event_scan::col#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto keyboard_event_scan::@4 + [320] (byte) keyboard_events_size#30 ← phi( keyboard_event_scan::@17/(byte) keyboard_events_size#2 keyboard_event_scan::@4/(byte) keyboard_events_size#10 keyboard_event_scan::@15/(byte) keyboard_events_size#10 keyboard_event_scan::@7/(byte) keyboard_events_size#1 ) + [321] (byte) keyboard_event_scan::keycode#15 ← ++ (byte) keyboard_event_scan::keycode#10 + [322] (byte) keyboard_event_scan::col#1 ← ++ (byte) keyboard_event_scan::col#2 + [323] if((byte) keyboard_event_scan::col#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto keyboard_event_scan::@4 to:keyboard_event_scan::@19 keyboard_event_scan::@19: scope:[keyboard_event_scan] from keyboard_event_scan::@5 - [325] *((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2) ← (byte) keyboard_event_scan::row_scan#0 + [324] *((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2) ← (byte) keyboard_event_scan::row_scan#0 to:keyboard_event_scan::@3 keyboard_event_scan::@7: scope:[keyboard_event_scan] from keyboard_event_scan::@16 - [326] (byte/word/dword~) keyboard_event_scan::$11 ← (byte) keyboard_event_scan::keycode#10 | (byte/signed byte/word/signed word/dword/signed dword) 64 - [327] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte/word/dword~) keyboard_event_scan::$11 - [328] (byte) keyboard_events_size#1 ← ++ (byte) keyboard_events_size#10 + [325] (byte/word/dword~) keyboard_event_scan::$11 ← (byte) keyboard_event_scan::keycode#10 | (byte/signed byte/word/signed word/dword/signed dword) 64 + [326] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte/word/dword~) keyboard_event_scan::$11 + [327] (byte) keyboard_events_size#1 ← ++ (byte) keyboard_events_size#10 to:keyboard_event_scan::@5 keyboard_matrix_read: scope:[keyboard_matrix_read] from keyboard_event_scan::@1 - [329] *((const byte*) CIA1_PORT_A#0) ← *((const byte[8]) keyboard_matrix_row_bitmask#0 + (byte) keyboard_matrix_read::rowid#0) - [330] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) + [328] *((const byte*) CIA1_PORT_A#0) ← *((const byte[8]) keyboard_matrix_row_bitmask#0 + (byte) keyboard_matrix_read::rowid#0) + [329] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) to:keyboard_matrix_read::@return keyboard_matrix_read::@return: scope:[keyboard_matrix_read] from keyboard_matrix_read - [331] return + [330] return to:@return render_show: scope:[render_show] from main::@6 - [332] if((byte) render_screen_show#16==(byte/signed byte/word/signed word/dword/signed dword) 0) goto render_show::toD0181 + [331] if((byte) render_screen_show#16==(byte/signed byte/word/signed word/dword/signed dword) 0) goto render_show::toD0181 to:render_show::toD0182 render_show::toD0182: scope:[render_show] from render_show - [333] phi() + [332] phi() to:render_show::@2 render_show::@2: scope:[render_show] from render_show::toD0181 render_show::toD0182 - [334] (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 ) - [335] *((const byte*) D018#0) ← (byte) render_show::d018val#3 - [336] (byte) render_screen_showing#1 ← (byte) render_screen_show#16 + [333] (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 ) + [334] *((const byte*) D018#0) ← (byte) render_show::d018val#3 + [335] (byte) render_screen_showing#1 ← (byte) render_screen_show#16 to:render_show::@return render_show::@return: scope:[render_show] from render_show::@2 - [337] return + [336] return to:@return render_show::toD0181: scope:[render_show] from render_show - [338] phi() + [337] phi() to:render_show::@2 play_init: scope:[play_init] from main::@18 - [339] phi() + [338] phi() to:play_init::@1 play_init::@1: scope:[play_init] from play_init play_init::@1 - [340] (byte) play_init::idx#2 ← phi( play_init/(byte/signed byte/word/signed word/dword/signed dword) 0 play_init::@1/(byte) play_init::idx#1 ) - [340] (byte*) play_init::pli#2 ← phi( play_init/(const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 play_init::@1/(byte*) play_init::pli#1 ) - [340] (byte) play_init::j#2 ← phi( play_init/(byte/signed byte/word/signed word/dword/signed dword) 0 play_init::@1/(byte) play_init::j#1 ) - [341] (byte~) play_init::$1 ← (byte) play_init::j#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 - [342] *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte~) play_init::$1) ← (byte*) play_init::pli#2 - [343] *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0 + (byte) play_init::j#2) ← (byte) play_init::idx#2 - [344] (byte*) play_init::pli#1 ← (byte*) play_init::pli#2 + (const byte) PLAYFIELD_COLS#0 - [345] (byte) play_init::idx#1 ← (byte) play_init::idx#2 + (const byte) PLAYFIELD_COLS#0 - [346] (byte) play_init::j#1 ← ++ (byte) play_init::j#2 - [347] if((byte) play_init::j#1!=(const byte) PLAYFIELD_LINES#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto play_init::@1 + [339] (byte) play_init::idx#2 ← phi( play_init/(byte/signed byte/word/signed word/dword/signed dword) 0 play_init::@1/(byte) play_init::idx#1 ) + [339] (byte*) play_init::pli#2 ← phi( play_init/(const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 play_init::@1/(byte*) play_init::pli#1 ) + [339] (byte) play_init::j#2 ← phi( play_init/(byte/signed byte/word/signed word/dword/signed dword) 0 play_init::@1/(byte) play_init::j#1 ) + [340] (byte~) play_init::$1 ← (byte) play_init::j#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 + [341] *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte~) play_init::$1) ← (byte*) play_init::pli#2 + [342] *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0 + (byte) play_init::j#2) ← (byte) play_init::idx#2 + [343] (byte*) play_init::pli#1 ← (byte*) play_init::pli#2 + (const byte) PLAYFIELD_COLS#0 + [344] (byte) play_init::idx#1 ← (byte) play_init::idx#2 + (const byte) PLAYFIELD_COLS#0 + [345] (byte) play_init::j#1 ← ++ (byte) play_init::j#2 + [346] if((byte) play_init::j#1!=(const byte) PLAYFIELD_LINES#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto play_init::@1 to:play_init::@2 play_init::@2: scope:[play_init] from play_init::@1 - [348] *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0+(const byte) PLAYFIELD_LINES#0) ← (const byte) PLAYFIELD_COLS#0*(const byte) PLAYFIELD_LINES#0 + [347] *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0+(const byte) PLAYFIELD_LINES#0) ← (const byte) PLAYFIELD_COLS#0*(const byte) PLAYFIELD_LINES#0 to:play_init::@return play_init::@return: scope:[play_init] from play_init::@2 - [349] return + [348] return to:@return sprites_irq_init: scope:[sprites_irq_init] from main::@17 asm { sei } - [351] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0 + [350] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0 asm { ldaCIA1_INTERRUPT } - [353] *((const byte*) PROCPORT_DDR#0) ← (const byte) PROCPORT_DDR_MEMORY_MASK#0 - [354] *((const byte*) PROCPORT#0) ← (const byte) PROCPORT_RAM_IO#0 - [355] *((const byte*) CIA1_INTERRUPT#0) ← (const byte) CIA_INTERRUPT_CLEAR#0 - [356] *((const byte*) VIC_CONTROL#0) ← *((const byte*) VIC_CONTROL#0) & (byte/signed byte/word/signed word/dword/signed dword) 127 - [357] *((const byte*) RASTER#0) ← (const byte) IRQ_RASTER_FIRST#0 - [358] *((const byte*) IRQ_ENABLE#0) ← (const byte) IRQ_RASTER#0 - [359] *((const void()**) HARDWARE_IRQ#0) ← &interrupt(HARDWARE_CLOBBER)(void()) sprites_irq() + [352] *((const byte*) PROCPORT_DDR#0) ← (const byte) PROCPORT_DDR_MEMORY_MASK#0 + [353] *((const byte*) PROCPORT#0) ← (const byte) PROCPORT_RAM_IO#0 + [354] *((const byte*) CIA1_INTERRUPT#0) ← (const byte) CIA_INTERRUPT_CLEAR#0 + [355] *((const byte*) VIC_CONTROL#0) ← *((const byte*) VIC_CONTROL#0) & (byte/signed byte/word/signed word/dword/signed dword) 127 + [356] *((const byte*) RASTER#0) ← (const byte) IRQ_RASTER_FIRST#0 + [357] *((const byte*) IRQ_ENABLE#0) ← (const byte) IRQ_RASTER#0 + [358] *((const void()**) HARDWARE_IRQ#0) ← &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 - [361] return + [360] return to:@return sprites_init: scope:[sprites_init] from main::@16 - [362] *((const byte*) SPRITES_ENABLE#0) ← (byte/signed byte/word/signed word/dword/signed dword) 15 - [363] *((const byte*) SPRITES_MC#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 - [364] *((const byte*) SPRITES_EXPAND_Y#0) ← *((const byte*) SPRITES_MC#0) - [365] *((const byte*) SPRITES_EXPAND_X#0) ← *((const byte*) SPRITES_EXPAND_Y#0) + [361] *((const byte*) SPRITES_ENABLE#0) ← (byte/signed byte/word/signed word/dword/signed dword) 15 + [362] *((const byte*) SPRITES_MC#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 + [363] *((const byte*) SPRITES_EXPAND_Y#0) ← *((const byte*) SPRITES_MC#0) + [364] *((const byte*) SPRITES_EXPAND_X#0) ← *((const byte*) SPRITES_EXPAND_Y#0) to:sprites_init::@1 sprites_init::@1: scope:[sprites_init] from sprites_init sprites_init::@1 - [366] (byte) sprites_init::xpos#2 ← phi( sprites_init/(byte/signed byte/word/signed word/dword/signed dword) 24+(byte/signed byte/word/signed word/dword/signed dword) 15*(byte/signed byte/word/signed word/dword/signed dword) 8 sprites_init::@1/(byte) sprites_init::xpos#1 ) - [366] (byte) sprites_init::s#2 ← phi( sprites_init/(byte/signed byte/word/signed word/dword/signed dword) 0 sprites_init::@1/(byte) sprites_init::s#1 ) - [367] (byte) sprites_init::s2#0 ← (byte) sprites_init::s#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 - [368] *((const byte*) SPRITES_XPOS#0 + (byte) sprites_init::s2#0) ← (byte) sprites_init::xpos#2 - [369] *((const byte*) SPRITES_COLS#0 + (byte) sprites_init::s#2) ← (const byte) BLACK#0 - [370] (byte) sprites_init::xpos#1 ← (byte) sprites_init::xpos#2 + (byte/signed byte/word/signed word/dword/signed dword) 24 - [371] (byte) sprites_init::s#1 ← ++ (byte) sprites_init::s#2 - [372] if((byte) sprites_init::s#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto sprites_init::@1 + [365] (byte) sprites_init::xpos#2 ← phi( sprites_init/(byte/signed byte/word/signed word/dword/signed dword) 24+(byte/signed byte/word/signed word/dword/signed dword) 15*(byte/signed byte/word/signed word/dword/signed dword) 8 sprites_init::@1/(byte) sprites_init::xpos#1 ) + [365] (byte) sprites_init::s#2 ← phi( sprites_init/(byte/signed byte/word/signed word/dword/signed dword) 0 sprites_init::@1/(byte) sprites_init::s#1 ) + [366] (byte) sprites_init::s2#0 ← (byte) sprites_init::s#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 + [367] *((const byte*) SPRITES_XPOS#0 + (byte) sprites_init::s2#0) ← (byte) sprites_init::xpos#2 + [368] *((const byte*) SPRITES_COLS#0 + (byte) sprites_init::s#2) ← (const byte) BLACK#0 + [369] (byte) sprites_init::xpos#1 ← (byte) sprites_init::xpos#2 + (byte/signed byte/word/signed word/dword/signed dword) 24 + [370] (byte) sprites_init::s#1 ← ++ (byte) sprites_init::s#2 + [371] if((byte) sprites_init::s#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto sprites_init::@1 to:sprites_init::@return sprites_init::@return: scope:[sprites_init] from sprites_init::@1 - [373] return + [372] return to:@return render_init: scope:[render_init] from main::@15 - [374] phi() + [373] phi() to:render_init::vicSelectGfxBank1 render_init::vicSelectGfxBank1: scope:[render_init] from render_init - [375] *((const byte*) CIA2_PORT_A_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3 + [374] *((const byte*) CIA2_PORT_A_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3 to:render_init::vicSelectGfxBank1_toDd001 render_init::vicSelectGfxBank1_toDd001: scope:[render_init] from render_init::vicSelectGfxBank1 - [376] phi() + [375] phi() to:render_init::vicSelectGfxBank1_@1 render_init::vicSelectGfxBank1_@1: scope:[render_init] from render_init::vicSelectGfxBank1_toDd001 - [377] *((const byte*) CIA2_PORT_A#0) ← (const byte) render_init::vicSelectGfxBank1_toDd001_return#0 + [376] *((const byte*) CIA2_PORT_A#0) ← (const byte) render_init::vicSelectGfxBank1_toDd001_return#0 to:render_init::@3 render_init::@3: scope:[render_init] from render_init::vicSelectGfxBank1_@1 - [378] *((const byte*) D011#0) ← (const byte) VIC_ECM#0|(const byte) VIC_DEN#0|(const byte) VIC_RSEL#0|(byte/signed byte/word/signed word/dword/signed dword) 3 - [379] *((const byte*) BORDERCOL#0) ← (const byte) BLACK#0 - [380] *((const byte*) BGCOL1#0) ← (const byte) BLACK#0 - [381] *((const byte*) BGCOL2#0) ← (const byte) BLUE#0 - [382] *((const byte*) BGCOL3#0) ← (const byte) CYAN#0 - [383] *((const byte*) BGCOL4#0) ← (const byte) GREY#0 - [384] call render_screen_original + [377] *((const byte*) D011#0) ← (const byte) VIC_ECM#0|(const byte) VIC_DEN#0|(const byte) VIC_RSEL#0|(byte/signed byte/word/signed word/dword/signed dword) 3 + [378] *((const byte*) BORDERCOL#0) ← (const byte) BLACK#0 + [379] *((const byte*) BGCOL1#0) ← (const byte) BLACK#0 + [380] *((const byte*) BGCOL2#0) ← (const byte) BLUE#0 + [381] *((const byte*) BGCOL3#0) ← (const byte) CYAN#0 + [382] *((const byte*) BGCOL4#0) ← (const byte) GREY#0 + [383] call render_screen_original to:render_init::@4 render_init::@4: scope:[render_init] from render_init::@3 - [385] phi() - [386] call render_screen_original + [384] phi() + [385] call render_screen_original to:render_init::@1 render_init::@1: scope:[render_init] from render_init::@1 render_init::@4 - [387] (byte*) render_init::li_2#2 ← phi( render_init::@1/(byte*) render_init::li_2#1 render_init::@4/(const byte*) PLAYFIELD_SCREEN_2#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 16 ) - [387] (byte*) render_init::li_1#2 ← phi( render_init::@1/(byte*) render_init::li_1#1 render_init::@4/(const byte*) PLAYFIELD_SCREEN_1#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 16 ) - [387] (byte) render_init::i#2 ← phi( render_init::@1/(byte) render_init::i#1 render_init::@4/(byte/signed byte/word/signed word/dword/signed dword) 0 ) - [388] (byte~) render_init::$13 ← (byte) render_init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 - [389] *((const byte*[PLAYFIELD_LINES#0]) screen_lines_1#0 + (byte~) render_init::$13) ← (byte*) render_init::li_1#2 - [390] (byte~) render_init::$14 ← (byte) render_init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 - [391] *((const byte*[PLAYFIELD_LINES#0]) screen_lines_2#0 + (byte~) render_init::$14) ← (byte*) render_init::li_2#2 - [392] (byte*) render_init::li_1#1 ← (byte*) render_init::li_1#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 - [393] (byte*) render_init::li_2#1 ← (byte*) render_init::li_2#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 - [394] (byte) render_init::i#1 ← ++ (byte) render_init::i#2 - [395] if((byte) render_init::i#1!=(const byte) PLAYFIELD_LINES#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_init::@1 + [386] (byte*) render_init::li_2#2 ← phi( render_init::@1/(byte*) render_init::li_2#1 render_init::@4/(const byte*) PLAYFIELD_SCREEN_2#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 16 ) + [386] (byte*) render_init::li_1#2 ← phi( render_init::@1/(byte*) render_init::li_1#1 render_init::@4/(const byte*) PLAYFIELD_SCREEN_1#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 16 ) + [386] (byte) render_init::i#2 ← phi( render_init::@1/(byte) render_init::i#1 render_init::@4/(byte/signed byte/word/signed word/dword/signed dword) 0 ) + [387] (byte~) render_init::$13 ← (byte) render_init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 + [388] *((const byte*[PLAYFIELD_LINES#0]) screen_lines_1#0 + (byte~) render_init::$13) ← (byte*) render_init::li_1#2 + [389] (byte~) render_init::$14 ← (byte) render_init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 + [390] *((const byte*[PLAYFIELD_LINES#0]) screen_lines_2#0 + (byte~) render_init::$14) ← (byte*) render_init::li_2#2 + [391] (byte*) render_init::li_1#1 ← (byte*) render_init::li_1#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 + [392] (byte*) render_init::li_2#1 ← (byte*) render_init::li_2#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 + [393] (byte) render_init::i#1 ← ++ (byte) render_init::i#2 + [394] if((byte) render_init::i#1!=(const byte) PLAYFIELD_LINES#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_init::@1 to:render_init::@return render_init::@return: scope:[render_init] from render_init::@1 - [396] return + [395] return to:@return render_screen_original: scope:[render_screen_original] from render_init::@3 render_init::@4 - [397] (byte*) render_screen_original::screen#9 ← phi( render_init::@3/(const byte*) PLAYFIELD_SCREEN_1#0 render_init::@4/(const byte*) PLAYFIELD_SCREEN_2#0 ) + [396] (byte*) render_screen_original::screen#9 ← phi( render_init::@3/(const byte*) PLAYFIELD_SCREEN_1#0 render_init::@4/(const byte*) PLAYFIELD_SCREEN_2#0 ) to:render_screen_original::@1 render_screen_original::@1: scope:[render_screen_original] from render_screen_original render_screen_original::@7 - [398] (byte) render_screen_original::y#6 ← phi( render_screen_original/(byte/signed byte/word/signed word/dword/signed dword) 0 render_screen_original::@7/(byte) render_screen_original::y#1 ) - [398] (byte*) render_screen_original::ocols#4 ← phi( render_screen_original/(const byte*) PLAYFIELD_COLORS_ORIGINAL#0+(byte/signed byte/word/signed word/dword/signed dword) 32*(byte/signed byte/word/signed word/dword/signed dword) 2 render_screen_original::@7/(byte*) render_screen_original::ocols#1 ) - [398] (byte*) render_screen_original::oext#4 ← phi( render_screen_original/(const byte*) PLAYFIELD_EXTENDED_ORIGINAL#0+(byte/signed byte/word/signed word/dword/signed dword) 32*(byte/signed byte/word/signed word/dword/signed dword) 2 render_screen_original::@7/(byte*) render_screen_original::oext#1 ) - [398] (byte*) render_screen_original::oscr#4 ← phi( render_screen_original/(const byte*) PLAYFIELD_SCREEN_ORIGINAL#0+(byte/signed byte/word/signed word/dword/signed dword) 32*(byte/signed byte/word/signed word/dword/signed dword) 2 render_screen_original::@7/(byte*) render_screen_original::oscr#1 ) - [398] (byte*) render_screen_original::cols#7 ← phi( render_screen_original/(const byte*) COLS#0 render_screen_original::@7/(byte*) render_screen_original::cols#3 ) - [398] (byte*) render_screen_original::screen#8 ← phi( render_screen_original/(byte*) render_screen_original::screen#9 render_screen_original::@7/(byte*) render_screen_original::screen#10 ) + [397] (byte) render_screen_original::y#6 ← phi( render_screen_original/(byte/signed byte/word/signed word/dword/signed dword) 0 render_screen_original::@7/(byte) render_screen_original::y#1 ) + [397] (byte*) render_screen_original::ocols#4 ← phi( render_screen_original/(const byte*) PLAYFIELD_COLORS_ORIGINAL#0+(byte/signed byte/word/signed word/dword/signed dword) 32*(byte/signed byte/word/signed word/dword/signed dword) 2 render_screen_original::@7/(byte*) render_screen_original::ocols#1 ) + [397] (byte*) render_screen_original::oscr#4 ← phi( render_screen_original/(const byte*) PLAYFIELD_SCREEN_ORIGINAL#0+(byte/signed byte/word/signed word/dword/signed dword) 32*(byte/signed byte/word/signed word/dword/signed dword) 2 render_screen_original::@7/(byte*) render_screen_original::oscr#1 ) + [397] (byte*) render_screen_original::cols#7 ← phi( render_screen_original/(const byte*) COLS#0 render_screen_original::@7/(byte*) render_screen_original::cols#3 ) + [397] (byte*) render_screen_original::screen#8 ← phi( render_screen_original/(byte*) render_screen_original::screen#9 render_screen_original::@7/(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 - [399] (byte) render_screen_original::x#4 ← phi( render_screen_original::@1/(byte/signed byte/word/signed word/dword/signed dword) 0 render_screen_original::@2/(byte) render_screen_original::x#1 ) - [399] (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 ) - [399] (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 ) - [400] *((byte*) render_screen_original::screen#5) ← (const byte) render_screen_original::SPACE#0 - [401] (byte*) render_screen_original::screen#2 ← ++ (byte*) render_screen_original::screen#5 - [402] *((byte*) render_screen_original::cols#4) ← (const byte) BLACK#0 - [403] (byte*) render_screen_original::cols#1 ← ++ (byte*) render_screen_original::cols#4 - [404] (byte) render_screen_original::x#1 ← ++ (byte) render_screen_original::x#4 - [405] if((byte) render_screen_original::x#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_screen_original::@2 + [398] (byte) render_screen_original::x#4 ← phi( render_screen_original::@1/(byte/signed byte/word/signed word/dword/signed dword) 0 render_screen_original::@2/(byte) render_screen_original::x#1 ) + [398] (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 ) + [398] (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 ) + [399] *((byte*) render_screen_original::screen#5) ← (const byte) render_screen_original::SPACE#0 + [400] (byte*) render_screen_original::screen#2 ← ++ (byte*) render_screen_original::screen#5 + [401] *((byte*) render_screen_original::cols#4) ← (const byte) BLACK#0 + [402] (byte*) render_screen_original::cols#1 ← ++ (byte*) render_screen_original::cols#4 + [403] (byte) render_screen_original::x#1 ← ++ (byte) render_screen_original::x#4 + [404] if((byte) render_screen_original::x#1!=(byte/signed byte/word/signed word/dword/signed dword) 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 - [406] (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 ) - [406] (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 ) - [406] (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 ) - [406] (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 ) - [406] (byte*) render_screen_original::oext#2 ← phi( render_screen_original::@2/(byte*) render_screen_original::oext#4 render_screen_original::@3/(byte*) render_screen_original::oext#1 ) - [406] (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 ) - [407] (byte) render_screen_original::c#0 ← *((byte*) render_screen_original::oscr#2) + (byte/signed byte/word/signed word/dword/signed dword) 1 + [405] (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 ) + [405] (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 ) + [405] (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 ) + [405] (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 ) + [405] (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 ) + [406] *((byte*) render_screen_original::screen#6) ← *((byte*) render_screen_original::oscr#2) + [407] (byte*) render_screen_original::screen#3 ← ++ (byte*) render_screen_original::screen#6 [408] (byte*) render_screen_original::oscr#1 ← ++ (byte*) render_screen_original::oscr#2 - [409] (byte/signed word/word/dword/signed dword~) render_screen_original::$8 ← *((byte*) render_screen_original::oext#2) - (byte/signed byte/word/signed word/dword/signed dword) 1 - [410] (byte) render_screen_original::ext#0 ← (byte/signed word/word/dword/signed dword~) render_screen_original::$8 << (byte/signed byte/word/signed word/dword/signed dword) 6 - [411] (byte*) render_screen_original::oext#1 ← ++ (byte*) render_screen_original::oext#2 - [412] (byte~) render_screen_original::$10 ← (byte) render_screen_original::c#0 | (byte) render_screen_original::ext#0 - [413] *((byte*) render_screen_original::screen#6) ← (byte~) render_screen_original::$10 - [414] (byte*) render_screen_original::screen#3 ← ++ (byte*) render_screen_original::screen#6 - [415] *((byte*) render_screen_original::cols#5) ← *((byte*) render_screen_original::ocols#2) - [416] (byte*) render_screen_original::cols#2 ← ++ (byte*) render_screen_original::cols#5 - [417] (byte*) render_screen_original::ocols#1 ← ++ (byte*) render_screen_original::ocols#2 - [418] (byte) render_screen_original::x#2 ← ++ (byte) render_screen_original::x#5 - [419] if((byte) render_screen_original::x#2!=(byte/signed byte/word/signed word/dword/signed dword) 36) goto render_screen_original::@3 + [409] *((byte*) render_screen_original::cols#5) ← *((byte*) render_screen_original::ocols#2) + [410] (byte*) render_screen_original::cols#2 ← ++ (byte*) render_screen_original::cols#5 + [411] (byte*) render_screen_original::ocols#1 ← ++ (byte*) render_screen_original::ocols#2 + [412] (byte) render_screen_original::x#2 ← ++ (byte) render_screen_original::x#5 + [413] if((byte) render_screen_original::x#2!=(byte/signed byte/word/signed word/dword/signed dword) 36) 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 - [420] (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 ) - [420] (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 ) - [420] (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 ) - [421] *((byte*) render_screen_original::screen#7) ← (const byte) render_screen_original::SPACE#0 - [422] (byte*) render_screen_original::screen#10 ← ++ (byte*) render_screen_original::screen#7 - [423] *((byte*) render_screen_original::cols#6) ← (const byte) BLACK#0 - [424] (byte*) render_screen_original::cols#3 ← ++ (byte*) render_screen_original::cols#6 - [425] (byte) render_screen_original::x#3 ← ++ (byte) render_screen_original::x#6 - [426] if((byte) render_screen_original::x#3!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto render_screen_original::@4 + [414] (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 ) + [414] (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 ) + [414] (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 ) + [415] *((byte*) render_screen_original::screen#7) ← (const byte) render_screen_original::SPACE#0 + [416] (byte*) render_screen_original::screen#10 ← ++ (byte*) render_screen_original::screen#7 + [417] *((byte*) render_screen_original::cols#6) ← (const byte) BLACK#0 + [418] (byte*) render_screen_original::cols#3 ← ++ (byte*) render_screen_original::cols#6 + [419] (byte) render_screen_original::x#3 ← ++ (byte) render_screen_original::x#6 + [420] if((byte) render_screen_original::x#3!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto render_screen_original::@4 to:render_screen_original::@7 render_screen_original::@7: scope:[render_screen_original] from render_screen_original::@4 - [427] (byte) render_screen_original::y#1 ← ++ (byte) render_screen_original::y#6 - [428] if((byte) render_screen_original::y#1!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto render_screen_original::@1 + [421] (byte) render_screen_original::y#1 ← ++ (byte) render_screen_original::y#6 + [422] if((byte) render_screen_original::y#1!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto render_screen_original::@1 to:render_screen_original::@return render_screen_original::@return: scope:[render_screen_original] from render_screen_original::@7 - [429] return + [423] return to:@return sid_rnd_init: scope:[sid_rnd_init] from main - [430] *((const word*) SID_VOICE3_FREQ#0) ← (word/dword/signed dword) 65535 - [431] *((const byte*) SID_VOICE3_CONTROL#0) ← (const byte) SID_CONTROL_NOISE#0 + [424] *((const word*) SID_VOICE3_FREQ#0) ← (word/dword/signed dword) 65535 + [425] *((const byte*) SID_VOICE3_CONTROL#0) ← (const byte) SID_CONTROL_NOISE#0 to:sid_rnd_init::@return sid_rnd_init::@return: scope:[sid_rnd_init] from sid_rnd_init - [432] return + [426] return to:@return sprites_irq: scope:[sprites_irq] from - [433] (byte) sprites_irq::ypos#0 ← (byte) irq_sprite_ypos#0 - [434] *((const byte*) SPRITES_YPOS#0) ← (byte) sprites_irq::ypos#0 - [435] *((const byte*) SPRITES_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte) sprites_irq::ypos#0 - [436] *((const byte*) SPRITES_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte) sprites_irq::ypos#0 - [437] *((const byte*) SPRITES_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte) sprites_irq::ypos#0 + [427] (byte) sprites_irq::ypos#0 ← (byte) irq_sprite_ypos#0 + [428] *((const byte*) SPRITES_YPOS#0) ← (byte) sprites_irq::ypos#0 + [429] *((const byte*) SPRITES_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte) sprites_irq::ypos#0 + [430] *((const byte*) SPRITES_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte) sprites_irq::ypos#0 + [431] *((const byte*) SPRITES_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte) sprites_irq::ypos#0 to:sprites_irq::@1 sprites_irq::@1: scope:[sprites_irq] from sprites_irq sprites_irq::@1 - [438] if(*((const byte*) RASTER#0)<(byte) irq_sprite_ypos#0) goto sprites_irq::@1 + [432] if(*((const byte*) RASTER#0)<(byte) irq_sprite_ypos#0) goto sprites_irq::@1 to:sprites_irq::@7 sprites_irq::@7: scope:[sprites_irq] from sprites_irq::@1 - [439] (byte) sprites_irq::ptr#0 ← (byte) irq_sprite_ptr#0 - [440] if((byte) render_screen_showing#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto sprites_irq::@2 + [433] (byte) sprites_irq::ptr#0 ← (byte) irq_sprite_ptr#0 + [434] if((byte) render_screen_showing#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto sprites_irq::@2 to:sprites_irq::@8 sprites_irq::@8: scope:[sprites_irq] from sprites_irq::@7 - [441] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0) ← (byte) sprites_irq::ptr#0 - [442] (byte) sprites_irq::ptr#3 ← ++ (byte) sprites_irq::ptr#0 - [443] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte) sprites_irq::ptr#3 - [444] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte) sprites_irq::ptr#3 - [445] (byte) sprites_irq::ptr#4 ← ++ (byte) sprites_irq::ptr#3 - [446] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte) sprites_irq::ptr#4 + [435] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0) ← (byte) sprites_irq::ptr#0 + [436] (byte) sprites_irq::ptr#3 ← ++ (byte) sprites_irq::ptr#0 + [437] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte) sprites_irq::ptr#3 + [438] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte) sprites_irq::ptr#3 + [439] (byte) sprites_irq::ptr#4 ← ++ (byte) sprites_irq::ptr#3 + [440] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte) sprites_irq::ptr#4 to:sprites_irq::@3 sprites_irq::@3: scope:[sprites_irq] from sprites_irq::@2 sprites_irq::@8 - [447] (byte) irq_cnt#1 ← ++ (byte) irq_cnt#0 - [448] if((byte) irq_cnt#1==(byte/signed byte/word/signed word/dword/signed dword) 10) goto sprites_irq::@4 + [441] (byte) irq_cnt#1 ← ++ (byte) irq_cnt#0 + [442] if((byte) irq_cnt#1==(byte/signed byte/word/signed word/dword/signed dword) 10) goto sprites_irq::@4 to:sprites_irq::@10 sprites_irq::@10: scope:[sprites_irq] from sprites_irq::@3 - [449] (byte) irq_raster_next#2 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 - [450] (byte) irq_sprite_ypos#2 ← (byte) irq_sprite_ypos#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 - [451] (byte) irq_sprite_ptr#2 ← (byte) irq_sprite_ptr#0 + (byte/signed byte/word/signed word/dword/signed dword) 3 + [443] (byte) irq_raster_next#2 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 + [444] (byte) irq_sprite_ypos#2 ← (byte) irq_sprite_ypos#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 + [445] (byte) irq_sprite_ptr#2 ← (byte) irq_sprite_ptr#0 + (byte/signed byte/word/signed word/dword/signed dword) 3 to:sprites_irq::@5 sprites_irq::@5: scope:[sprites_irq] from sprites_irq::@10 sprites_irq::@13 - [452] (byte) irq_raster_next#13 ← phi( sprites_irq::@10/(byte) irq_raster_next#2 sprites_irq::@13/(byte) irq_raster_next#1 ) - [453] (byte) sprites_irq::raster_next#0 ← (byte) irq_raster_next#13 - [454] (byte~) sprites_irq::$4 ← (byte) sprites_irq::raster_next#0 & (byte/signed byte/word/signed word/dword/signed dword) 7 - [455] if((byte~) sprites_irq::$4!=(byte/signed byte/word/signed word/dword/signed dword) 3) goto sprites_irq::@6 + [446] (byte) irq_raster_next#13 ← phi( sprites_irq::@10/(byte) irq_raster_next#2 sprites_irq::@13/(byte) irq_raster_next#1 ) + [447] (byte) sprites_irq::raster_next#0 ← (byte) irq_raster_next#13 + [448] (byte~) sprites_irq::$4 ← (byte) sprites_irq::raster_next#0 & (byte/signed byte/word/signed word/dword/signed dword) 7 + [449] if((byte~) sprites_irq::$4!=(byte/signed byte/word/signed word/dword/signed dword) 3) goto sprites_irq::@6 to:sprites_irq::@12 sprites_irq::@12: scope:[sprites_irq] from sprites_irq::@5 - [456] (byte) sprites_irq::raster_next#1 ← (byte) sprites_irq::raster_next#0 - (byte/signed byte/word/signed word/dword/signed dword) 1 + [450] (byte) sprites_irq::raster_next#1 ← (byte) sprites_irq::raster_next#0 - (byte/signed byte/word/signed word/dword/signed dword) 1 to:sprites_irq::@6 sprites_irq::@6: scope:[sprites_irq] from sprites_irq::@12 sprites_irq::@5 - [457] (byte) sprites_irq::raster_next#2 ← phi( sprites_irq::@12/(byte) sprites_irq::raster_next#1 sprites_irq::@5/(byte) sprites_irq::raster_next#0 ) - [458] *((const byte*) RASTER#0) ← (byte) sprites_irq::raster_next#2 - [459] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0 + [451] (byte) sprites_irq::raster_next#2 ← phi( sprites_irq::@12/(byte) sprites_irq::raster_next#1 sprites_irq::@5/(byte) sprites_irq::raster_next#0 ) + [452] *((const byte*) RASTER#0) ← (byte) sprites_irq::raster_next#2 + [453] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0 to:sprites_irq::@return sprites_irq::@return: scope:[sprites_irq] from sprites_irq::@6 - [460] return + [454] return to:@return sprites_irq::@4: scope:[sprites_irq] from sprites_irq::@3 - [461] (byte) irq_cnt#14 ← (byte/signed byte/word/signed word/dword/signed dword) 0 - [462] (byte) irq_raster_next#1 ← (const byte) IRQ_RASTER_FIRST#0 - [463] (byte) irq_sprite_ypos#1 ← (byte/signed byte/word/signed word/dword/signed dword) 50 + [455] (byte) irq_cnt#14 ← (byte/signed byte/word/signed word/dword/signed dword) 0 + [456] (byte) irq_raster_next#1 ← (const byte) IRQ_RASTER_FIRST#0 + [457] (byte) irq_sprite_ypos#1 ← (byte/signed byte/word/signed word/dword/signed dword) 50 to:sprites_irq::toSpritePtr2 sprites_irq::toSpritePtr2: scope:[sprites_irq] from sprites_irq::@4 - [464] phi() + [458] phi() to:sprites_irq::@13 sprites_irq::@13: scope:[sprites_irq] from sprites_irq::toSpritePtr2 - [465] (byte) irq_sprite_ptr#1 ← (const byte) sprites_irq::toSpritePtr2_return#0 + [459] (byte) irq_sprite_ptr#1 ← (const byte) sprites_irq::toSpritePtr2_return#0 to:sprites_irq::@5 sprites_irq::@2: scope:[sprites_irq] from sprites_irq::@7 - [466] *((const byte*) PLAYFIELD_SPRITE_PTRS_1#0) ← (byte) sprites_irq::ptr#0 - [467] (byte) sprites_irq::ptr#1 ← ++ (byte) sprites_irq::ptr#0 - [468] *((const byte*) PLAYFIELD_SPRITE_PTRS_1#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte) sprites_irq::ptr#1 - [469] *((const byte*) PLAYFIELD_SPRITE_PTRS_1#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte) sprites_irq::ptr#1 - [470] (byte) sprites_irq::ptr#2 ← ++ (byte) sprites_irq::ptr#1 - [471] *((const byte*) PLAYFIELD_SPRITE_PTRS_1#0+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte) sprites_irq::ptr#2 + [460] *((const byte*) PLAYFIELD_SPRITE_PTRS_1#0) ← (byte) sprites_irq::ptr#0 + [461] (byte) sprites_irq::ptr#1 ← ++ (byte) sprites_irq::ptr#0 + [462] *((const byte*) PLAYFIELD_SPRITE_PTRS_1#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte) sprites_irq::ptr#1 + [463] *((const byte*) PLAYFIELD_SPRITE_PTRS_1#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte) sprites_irq::ptr#1 + [464] (byte) sprites_irq::ptr#2 ← ++ (byte) sprites_irq::ptr#1 + [465] *((const byte*) PLAYFIELD_SPRITE_PTRS_1#0+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte) sprites_irq::ptr#2 to:sprites_irq::@3 @@ -8066,7 +8016,6 @@ VARIABLE REGISTER WEIGHTS (byte*) PLAYFIELD_CHARSET (byte*) PLAYFIELD_COLORS_ORIGINAL (byte) PLAYFIELD_COLS -(byte*) PLAYFIELD_EXTENDED_ORIGINAL (byte) PLAYFIELD_LINES (byte*) PLAYFIELD_SCREEN_1 (byte*) PLAYFIELD_SCREEN_2 @@ -8499,39 +8448,29 @@ VARIABLE REGISTER WEIGHTS (byte*) render_playfield::screen_line#1 500.5 (byte*) render_playfield::screen_line#2 1552.0 (void()) render_screen_original((byte*) render_screen_original::screen) -(byte~) render_screen_original::$10 202.0 -(byte/signed word/word/dword/signed dword~) render_screen_original::$8 202.0 (byte) render_screen_original::SPACE -(byte) render_screen_original::c -(byte) render_screen_original::c#0 40.4 (byte*) render_screen_original::cols (byte*) render_screen_original::cols#1 101.0 (byte*) render_screen_original::cols#2 75.75 (byte*) render_screen_original::cols#3 42.599999999999994 (byte*) render_screen_original::cols#4 78.5 -(byte*) render_screen_original::cols#5 40.4 +(byte*) render_screen_original::cols#5 80.8 (byte*) render_screen_original::cols#6 101.0 (byte*) render_screen_original::cols#7 22.0 -(byte) render_screen_original::ext -(byte) render_screen_original::ext#0 101.0 (byte*) render_screen_original::ocols (byte*) render_screen_original::ocols#1 17.75 -(byte*) render_screen_original::ocols#2 36.72727272727273 +(byte*) render_screen_original::ocols#2 67.33333333333333 (byte*) render_screen_original::ocols#4 14.0 -(byte*) render_screen_original::oext -(byte*) render_screen_original::oext#1 11.833333333333332 -(byte*) render_screen_original::oext#2 80.8 -(byte*) render_screen_original::oext#4 14.0 (byte*) render_screen_original::oscr -(byte*) render_screen_original::oscr#1 10.142857142857142 -(byte*) render_screen_original::oscr#2 202.0 +(byte*) render_screen_original::oscr#1 14.2 +(byte*) render_screen_original::oscr#2 134.66666666666666 (byte*) render_screen_original::oscr#4 14.0 (byte*) render_screen_original::screen (byte*) render_screen_original::screen#10 30.42857142857143 (byte*) render_screen_original::screen#2 60.599999999999994 -(byte*) render_screen_original::screen#3 50.5 +(byte*) render_screen_original::screen#3 43.285714285714285 (byte*) render_screen_original::screen#5 157.0 -(byte*) render_screen_original::screen#6 50.5 +(byte*) render_screen_original::screen#6 202.0 (byte*) render_screen_original::screen#7 202.0 (byte*) render_screen_original::screen#8 24.0 (byte*) render_screen_original::screen#9 2.0 @@ -8540,11 +8479,11 @@ VARIABLE REGISTER WEIGHTS (byte) render_screen_original::x#2 202.0 (byte) render_screen_original::x#3 151.5 (byte) render_screen_original::x#4 40.4 -(byte) render_screen_original::x#5 25.25 +(byte) render_screen_original::x#5 43.285714285714285 (byte) render_screen_original::x#6 60.599999999999994 (byte) render_screen_original::y (byte) render_screen_original::y#1 16.5 -(byte) render_screen_original::y#6 0.7586206896551724 +(byte) render_screen_original::y#6 0.9166666666666666 (byte) render_screen_render (byte) render_screen_render#11 3.25 (byte) render_screen_render#16 1.0 @@ -8697,7 +8636,6 @@ Initial phi equivalence classes [ render_init::li_2#2 render_init::li_2#1 ] [ render_screen_original::y#6 render_screen_original::y#1 ] [ render_screen_original::oscr#2 render_screen_original::oscr#4 render_screen_original::oscr#1 ] -[ render_screen_original::oext#2 render_screen_original::oext#4 render_screen_original::oext#1 ] [ render_screen_original::ocols#2 render_screen_original::ocols#4 render_screen_original::ocols#1 ] [ 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 ] [ 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 ] @@ -8777,10 +8715,6 @@ Added variable play_init::$1 to zero page equivalence class [ play_init::$1 ] Added variable sprites_init::s2#0 to zero page equivalence class [ sprites_init::s2#0 ] Added variable render_init::$13 to zero page equivalence class [ render_init::$13 ] Added variable render_init::$14 to zero page equivalence class [ render_init::$14 ] -Added variable render_screen_original::c#0 to zero page equivalence class [ render_screen_original::c#0 ] -Added variable render_screen_original::$8 to zero page equivalence class [ render_screen_original::$8 ] -Added variable render_screen_original::ext#0 to zero page equivalence class [ render_screen_original::ext#0 ] -Added variable render_screen_original::$10 to zero page equivalence class [ render_screen_original::$10 ] Added variable sprites_irq::ypos#0 to zero page equivalence class [ sprites_irq::ypos#0 ] Added variable sprites_irq::ptr#0 to zero page equivalence class [ sprites_irq::ptr#0 ] Added variable sprites_irq::ptr#3 to zero page equivalence class [ sprites_irq::ptr#3 ] @@ -8863,7 +8797,6 @@ Complete equivalence classes [ render_init::li_2#2 render_init::li_2#1 ] [ render_screen_original::y#6 render_screen_original::y#1 ] [ render_screen_original::oscr#2 render_screen_original::oscr#4 render_screen_original::oscr#1 ] -[ render_screen_original::oext#2 render_screen_original::oext#4 render_screen_original::oext#1 ] [ render_screen_original::ocols#2 render_screen_original::ocols#4 render_screen_original::ocols#1 ] [ 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 ] [ 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 ] @@ -8943,10 +8876,6 @@ Complete equivalence classes [ sprites_init::s2#0 ] [ render_init::$13 ] [ render_init::$14 ] -[ render_screen_original::c#0 ] -[ render_screen_original::$8 ] -[ render_screen_original::ext#0 ] -[ render_screen_original::$10 ] [ sprites_irq::ypos#0 ] [ sprites_irq::ptr#0 ] [ sprites_irq::ptr#3 ] @@ -9028,103 +8957,98 @@ Allocated zp ZP_WORD:72 [ render_init::li_1#2 render_init::li_1#1 ] Allocated zp ZP_WORD:74 [ render_init::li_2#2 render_init::li_2#1 ] Allocated zp ZP_BYTE:76 [ render_screen_original::y#6 render_screen_original::y#1 ] Allocated zp ZP_WORD:77 [ render_screen_original::oscr#2 render_screen_original::oscr#4 render_screen_original::oscr#1 ] -Allocated zp ZP_WORD:79 [ render_screen_original::oext#2 render_screen_original::oext#4 render_screen_original::oext#1 ] -Allocated zp ZP_WORD:81 [ render_screen_original::ocols#2 render_screen_original::ocols#4 render_screen_original::ocols#1 ] -Allocated zp ZP_WORD:83 [ 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 ] -Allocated zp ZP_WORD:85 [ 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 ] -Allocated zp ZP_BYTE:87 [ 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 ] -Allocated zp ZP_BYTE:88 [ irq_raster_next#13 irq_raster_next#2 irq_raster_next#1 ] -Allocated zp ZP_BYTE:89 [ sprites_irq::raster_next#2 sprites_irq::raster_next#1 sprites_irq::raster_next#0 ] -Allocated zp ZP_BYTE:90 [ render_screen_showing#0 ] -Allocated zp ZP_BYTE:91 [ irq_raster_next#0 ] -Allocated zp ZP_BYTE:92 [ irq_sprite_ypos#0 ] -Allocated zp ZP_BYTE:93 [ irq_sprite_ptr#0 ] -Allocated zp ZP_BYTE:94 [ irq_cnt#0 ] -Allocated zp ZP_BYTE:95 [ keyboard_event_get::return#3 ] -Allocated zp ZP_BYTE:96 [ main::key_event#0 ] -Allocated zp ZP_BYTE:97 [ play_move_down::key_event#0 ] -Allocated zp ZP_BYTE:98 [ play_move_down::return#3 ] -Allocated zp ZP_BYTE:99 [ main::$12 ] -Allocated zp ZP_BYTE:100 [ main::render#1 ] -Allocated zp ZP_BYTE:101 [ play_move_leftright::key_event#0 ] -Allocated zp ZP_BYTE:102 [ play_move_leftright::return#4 ] -Allocated zp ZP_BYTE:103 [ main::$13 ] -Allocated zp ZP_BYTE:104 [ main::render#2 ] -Allocated zp ZP_BYTE:105 [ play_move_rotate::key_event#0 ] -Allocated zp ZP_BYTE:106 [ play_move_rotate::return#4 ] -Allocated zp ZP_BYTE:107 [ main::$14 ] -Allocated zp ZP_BYTE:108 [ main::render#3 ] -Allocated zp ZP_BYTE:109 [ render_current::$5 ] -Allocated zp ZP_WORD:110 [ render_current::screen_line#0 ] -Allocated zp ZP_BYTE:112 [ render_current::current_cell#0 ] -Allocated zp ZP_BYTE:113 [ render_playfield::$2 ] -Allocated zp ZP_BYTE:114 [ render_playfield::$3 ] -Allocated zp ZP_BYTE:115 [ play_move_rotate::$2 ] -Allocated zp ZP_BYTE:116 [ play_collision::return#13 ] -Allocated zp ZP_BYTE:117 [ play_move_rotate::$6 ] -Allocated zp ZP_BYTE:118 [ play_move_rotate::$4 ] -Allocated zp ZP_WORD:119 [ play_collision::piece_gfx#0 ] -Allocated zp ZP_WORD:121 [ play_collision::playfield_line#0 ] -Allocated zp ZP_BYTE:123 [ play_collision::i#1 ] -Allocated zp ZP_BYTE:124 [ play_collision::$7 ] -Allocated zp ZP_BYTE:125 [ play_collision::return#12 ] -Allocated zp ZP_BYTE:126 [ play_move_leftright::$4 ] -Allocated zp ZP_BYTE:127 [ play_collision::return#1 ] -Allocated zp ZP_BYTE:128 [ play_move_leftright::$8 ] -Allocated zp ZP_BYTE:129 [ keyboard_event_pressed::return#12 ] -Allocated zp ZP_BYTE:130 [ play_move_down::$2 ] -Allocated zp ZP_BYTE:131 [ play_collision::return#0 ] -Allocated zp ZP_BYTE:132 [ play_move_down::$12 ] -Allocated zp ZP_BYTE:133 [ play_spawn_current::$3 ] -Allocated zp ZP_BYTE:134 [ sid_rnd::return#2 ] -Allocated zp ZP_BYTE:135 [ play_spawn_current::$1 ] -Allocated zp ZP_BYTE:136 [ sid_rnd::return#0 ] -Allocated zp ZP_BYTE:137 [ play_remove_lines::c#0 ] -Allocated zp ZP_WORD:138 [ play_lock_current::playfield_line#0 ] -Allocated zp ZP_BYTE:140 [ play_lock_current::i#1 ] -Allocated zp ZP_BYTE:141 [ keyboard_event_pressed::$0 ] -Allocated zp ZP_BYTE:142 [ keyboard_event_pressed::row_bits#0 ] -Allocated zp ZP_BYTE:143 [ keyboard_event_pressed::$1 ] -Allocated zp ZP_BYTE:144 [ keyboard_event_pressed::return#11 ] -Allocated zp ZP_BYTE:145 [ keyboard_matrix_read::rowid#0 ] -Allocated zp ZP_BYTE:146 [ keyboard_matrix_read::return#2 ] -Allocated zp ZP_BYTE:147 [ keyboard_event_scan::row_scan#0 ] -Allocated zp ZP_BYTE:148 [ keyboard_event_pressed::return#0 ] -Allocated zp ZP_BYTE:149 [ keyboard_event_scan::$14 ] -Allocated zp ZP_BYTE:150 [ keyboard_event_pressed::return#1 ] -Allocated zp ZP_BYTE:151 [ keyboard_event_scan::$18 ] -Allocated zp ZP_BYTE:152 [ keyboard_event_pressed::return#2 ] -Allocated zp ZP_BYTE:153 [ keyboard_event_scan::$22 ] -Allocated zp ZP_BYTE:154 [ keyboard_event_pressed::return#10 ] -Allocated zp ZP_BYTE:155 [ keyboard_event_scan::$26 ] -Allocated zp ZP_BYTE:156 [ keyboard_modifiers#5 ] -Allocated zp ZP_BYTE:157 [ keyboard_event_scan::$3 ] -Allocated zp ZP_BYTE:158 [ keyboard_event_scan::$4 ] -Allocated zp ZP_BYTE:159 [ keyboard_event_scan::event_type#0 ] -Allocated zp ZP_BYTE:160 [ keyboard_event_scan::$11 ] -Allocated zp ZP_BYTE:161 [ keyboard_matrix_read::return#0 ] -Allocated zp ZP_BYTE:162 [ render_screen_showing#1 ] -Allocated zp ZP_BYTE:163 [ play_init::$1 ] -Allocated zp ZP_BYTE:164 [ sprites_init::s2#0 ] -Allocated zp ZP_BYTE:165 [ render_init::$13 ] -Allocated zp ZP_BYTE:166 [ render_init::$14 ] -Allocated zp ZP_BYTE:167 [ render_screen_original::c#0 ] -Allocated zp ZP_BYTE:168 [ render_screen_original::$8 ] -Allocated zp ZP_BYTE:169 [ render_screen_original::ext#0 ] -Allocated zp ZP_BYTE:170 [ render_screen_original::$10 ] -Allocated zp ZP_BYTE:171 [ sprites_irq::ypos#0 ] -Allocated zp ZP_BYTE:172 [ sprites_irq::ptr#0 ] -Allocated zp ZP_BYTE:173 [ sprites_irq::ptr#3 ] -Allocated zp ZP_BYTE:174 [ sprites_irq::ptr#4 ] -Allocated zp ZP_BYTE:175 [ irq_cnt#1 ] -Allocated zp ZP_BYTE:176 [ irq_sprite_ypos#2 ] -Allocated zp ZP_BYTE:177 [ irq_sprite_ptr#2 ] -Allocated zp ZP_BYTE:178 [ sprites_irq::$4 ] -Allocated zp ZP_BYTE:179 [ irq_cnt#14 ] -Allocated zp ZP_BYTE:180 [ irq_sprite_ypos#1 ] -Allocated zp ZP_BYTE:181 [ irq_sprite_ptr#1 ] -Allocated zp ZP_BYTE:182 [ sprites_irq::ptr#1 ] -Allocated zp ZP_BYTE:183 [ sprites_irq::ptr#2 ] +Allocated zp ZP_WORD:79 [ render_screen_original::ocols#2 render_screen_original::ocols#4 render_screen_original::ocols#1 ] +Allocated zp ZP_WORD:81 [ 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 ] +Allocated zp ZP_WORD:83 [ 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 ] +Allocated zp ZP_BYTE:85 [ 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 ] +Allocated zp ZP_BYTE:86 [ irq_raster_next#13 irq_raster_next#2 irq_raster_next#1 ] +Allocated zp ZP_BYTE:87 [ sprites_irq::raster_next#2 sprites_irq::raster_next#1 sprites_irq::raster_next#0 ] +Allocated zp ZP_BYTE:88 [ render_screen_showing#0 ] +Allocated zp ZP_BYTE:89 [ irq_raster_next#0 ] +Allocated zp ZP_BYTE:90 [ irq_sprite_ypos#0 ] +Allocated zp ZP_BYTE:91 [ irq_sprite_ptr#0 ] +Allocated zp ZP_BYTE:92 [ irq_cnt#0 ] +Allocated zp ZP_BYTE:93 [ keyboard_event_get::return#3 ] +Allocated zp ZP_BYTE:94 [ main::key_event#0 ] +Allocated zp ZP_BYTE:95 [ play_move_down::key_event#0 ] +Allocated zp ZP_BYTE:96 [ play_move_down::return#3 ] +Allocated zp ZP_BYTE:97 [ main::$12 ] +Allocated zp ZP_BYTE:98 [ main::render#1 ] +Allocated zp ZP_BYTE:99 [ play_move_leftright::key_event#0 ] +Allocated zp ZP_BYTE:100 [ play_move_leftright::return#4 ] +Allocated zp ZP_BYTE:101 [ main::$13 ] +Allocated zp ZP_BYTE:102 [ main::render#2 ] +Allocated zp ZP_BYTE:103 [ play_move_rotate::key_event#0 ] +Allocated zp ZP_BYTE:104 [ play_move_rotate::return#4 ] +Allocated zp ZP_BYTE:105 [ main::$14 ] +Allocated zp ZP_BYTE:106 [ main::render#3 ] +Allocated zp ZP_BYTE:107 [ render_current::$5 ] +Allocated zp ZP_WORD:108 [ render_current::screen_line#0 ] +Allocated zp ZP_BYTE:110 [ render_current::current_cell#0 ] +Allocated zp ZP_BYTE:111 [ render_playfield::$2 ] +Allocated zp ZP_BYTE:112 [ render_playfield::$3 ] +Allocated zp ZP_BYTE:113 [ play_move_rotate::$2 ] +Allocated zp ZP_BYTE:114 [ play_collision::return#13 ] +Allocated zp ZP_BYTE:115 [ play_move_rotate::$6 ] +Allocated zp ZP_BYTE:116 [ play_move_rotate::$4 ] +Allocated zp ZP_WORD:117 [ play_collision::piece_gfx#0 ] +Allocated zp ZP_WORD:119 [ play_collision::playfield_line#0 ] +Allocated zp ZP_BYTE:121 [ play_collision::i#1 ] +Allocated zp ZP_BYTE:122 [ play_collision::$7 ] +Allocated zp ZP_BYTE:123 [ play_collision::return#12 ] +Allocated zp ZP_BYTE:124 [ play_move_leftright::$4 ] +Allocated zp ZP_BYTE:125 [ play_collision::return#1 ] +Allocated zp ZP_BYTE:126 [ play_move_leftright::$8 ] +Allocated zp ZP_BYTE:127 [ keyboard_event_pressed::return#12 ] +Allocated zp ZP_BYTE:128 [ play_move_down::$2 ] +Allocated zp ZP_BYTE:129 [ play_collision::return#0 ] +Allocated zp ZP_BYTE:130 [ play_move_down::$12 ] +Allocated zp ZP_BYTE:131 [ play_spawn_current::$3 ] +Allocated zp ZP_BYTE:132 [ sid_rnd::return#2 ] +Allocated zp ZP_BYTE:133 [ play_spawn_current::$1 ] +Allocated zp ZP_BYTE:134 [ sid_rnd::return#0 ] +Allocated zp ZP_BYTE:135 [ play_remove_lines::c#0 ] +Allocated zp ZP_WORD:136 [ play_lock_current::playfield_line#0 ] +Allocated zp ZP_BYTE:138 [ play_lock_current::i#1 ] +Allocated zp ZP_BYTE:139 [ keyboard_event_pressed::$0 ] +Allocated zp ZP_BYTE:140 [ keyboard_event_pressed::row_bits#0 ] +Allocated zp ZP_BYTE:141 [ keyboard_event_pressed::$1 ] +Allocated zp ZP_BYTE:142 [ keyboard_event_pressed::return#11 ] +Allocated zp ZP_BYTE:143 [ keyboard_matrix_read::rowid#0 ] +Allocated zp ZP_BYTE:144 [ keyboard_matrix_read::return#2 ] +Allocated zp ZP_BYTE:145 [ keyboard_event_scan::row_scan#0 ] +Allocated zp ZP_BYTE:146 [ keyboard_event_pressed::return#0 ] +Allocated zp ZP_BYTE:147 [ keyboard_event_scan::$14 ] +Allocated zp ZP_BYTE:148 [ keyboard_event_pressed::return#1 ] +Allocated zp ZP_BYTE:149 [ keyboard_event_scan::$18 ] +Allocated zp ZP_BYTE:150 [ keyboard_event_pressed::return#2 ] +Allocated zp ZP_BYTE:151 [ keyboard_event_scan::$22 ] +Allocated zp ZP_BYTE:152 [ keyboard_event_pressed::return#10 ] +Allocated zp ZP_BYTE:153 [ keyboard_event_scan::$26 ] +Allocated zp ZP_BYTE:154 [ keyboard_modifiers#5 ] +Allocated zp ZP_BYTE:155 [ keyboard_event_scan::$3 ] +Allocated zp ZP_BYTE:156 [ keyboard_event_scan::$4 ] +Allocated zp ZP_BYTE:157 [ keyboard_event_scan::event_type#0 ] +Allocated zp ZP_BYTE:158 [ keyboard_event_scan::$11 ] +Allocated zp ZP_BYTE:159 [ keyboard_matrix_read::return#0 ] +Allocated zp ZP_BYTE:160 [ render_screen_showing#1 ] +Allocated zp ZP_BYTE:161 [ play_init::$1 ] +Allocated zp ZP_BYTE:162 [ sprites_init::s2#0 ] +Allocated zp ZP_BYTE:163 [ render_init::$13 ] +Allocated zp ZP_BYTE:164 [ render_init::$14 ] +Allocated zp ZP_BYTE:165 [ sprites_irq::ypos#0 ] +Allocated zp ZP_BYTE:166 [ sprites_irq::ptr#0 ] +Allocated zp ZP_BYTE:167 [ sprites_irq::ptr#3 ] +Allocated zp ZP_BYTE:168 [ sprites_irq::ptr#4 ] +Allocated zp ZP_BYTE:169 [ irq_cnt#1 ] +Allocated zp ZP_BYTE:170 [ irq_sprite_ypos#2 ] +Allocated zp ZP_BYTE:171 [ irq_sprite_ptr#2 ] +Allocated zp ZP_BYTE:172 [ sprites_irq::$4 ] +Allocated zp ZP_BYTE:173 [ irq_cnt#14 ] +Allocated zp ZP_BYTE:174 [ irq_sprite_ypos#1 ] +Allocated zp ZP_BYTE:175 [ irq_sprite_ptr#1 ] +Allocated zp ZP_BYTE:176 [ sprites_irq::ptr#1 ] +Allocated zp ZP_BYTE:177 [ sprites_irq::ptr#2 ] INITIAL ASM //SEG0 Basic Upstart @@ -9192,7 +9116,6 @@ INITIAL ASM .label PLAYFIELD_SCREEN_2 = $2c00 .label PLAYFIELD_SCREEN_ORIGINAL = $1800 .label PLAYFIELD_COLORS_ORIGINAL = $1c00 - .label PLAYFIELD_EXTENDED_ORIGINAL = $1400 .label PLAYFIELD_SPRITES = $2000 .label PLAYFIELD_CHARSET = $2800 .const PLAYFIELD_LINES = $16 @@ -9210,20 +9133,20 @@ INITIAL ASM .const toSpritePtr1_return = PLAYFIELD_SPRITES>>6 .label keyboard_events_size = $3f .label keyboard_modifiers = $3c - .label keyboard_modifiers_5 = $9c - .label render_screen_showing = $5a - .label render_screen_showing_1 = $a2 - .label irq_raster_next = $5b - .label irq_sprite_ypos = $5c - .label irq_sprite_ptr = $5d - .label irq_cnt = $5e - .label irq_cnt_1 = $af - .label irq_raster_next_1 = $58 - .label irq_sprite_ypos_1 = $b4 - .label irq_sprite_ptr_1 = $b5 - .label irq_raster_next_2 = $58 - .label irq_sprite_ypos_2 = $b0 - .label irq_sprite_ptr_2 = $b1 + .label keyboard_modifiers_5 = $9a + .label render_screen_showing = $58 + .label render_screen_showing_1 = $a0 + .label irq_raster_next = $59 + .label irq_sprite_ypos = $5a + .label irq_sprite_ptr = $5b + .label irq_cnt = $5c + .label irq_cnt_1 = $a9 + .label irq_raster_next_1 = $56 + .label irq_sprite_ypos_1 = $ae + .label irq_sprite_ptr_1 = $af + .label irq_raster_next_2 = $56 + .label irq_sprite_ypos_2 = $aa + .label irq_sprite_ptr_2 = $ab .label current_movedown_counter = 4 .label current_ypos = $25 .label current_piece_gfx = $29 @@ -9238,9 +9161,9 @@ INITIAL ASM .label render_screen_render_19 = $10 .label render_screen_render_28 = 6 .label current_xpos_47 = 7 - .label irq_raster_next_13 = $58 + .label irq_raster_next_13 = $56 .label current_piece_gfx_53 = 8 - .label irq_cnt_14 = $b3 + .label irq_cnt_14 = $ad .label current_piece_char_63 = $a .label current_ypos_84 = 5 .label current_ypos_85 = 5 @@ -9265,687 +9188,686 @@ b14: lda #0 sta render_screen_showing //SEG5 kickasm(location (const byte*) PLAYFIELD_CHARSET#0) {{ .fill 8,$00 // Place a filled char at the start of the charset .import binary "playfield-screen.imap" }} -//SEG6 kickasm(location (const byte*) PLAYFIELD_SCREEN_ORIGINAL#0) {{ .import binary "playfield-screen.iscr" }} +//SEG6 kickasm(location (const byte*) PLAYFIELD_SCREEN_ORIGINAL#0) {{ // 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 ) }} //SEG7 kickasm(location (const byte*) PLAYFIELD_COLORS_ORIGINAL#0) {{ .import binary "playfield-screen.col" }} -//SEG8 kickasm(location (const byte*) PLAYFIELD_EXTENDED_ORIGINAL#0) {{ .import binary "playfield-extended.col" }} jmp b20 -//SEG9 @20 +//SEG8 @20 b20: -//SEG10 kickasm(location (const byte*) PLAYFIELD_SPRITES#0) {{ .var sprites = LoadPicture("playfield-sprites.png", List().add($010101, $000000)) .for(var sy=0;sy<10;sy++) { .for(var sx=0;sx<3;sx++) { .for (var y=0;y<21; y++) { .for (var c=0; c<3; c++) { .byte sprites.getSinglecolorByte(sx*3+c,sy*21+y) } } .byte 0 } } }} +//SEG9 kickasm(location (const byte*) PLAYFIELD_SPRITES#0) {{ .var sprites = LoadPicture("playfield-sprites.png", List().add($010101, $000000)) .for(var sy=0;sy<10;sy++) { .for(var sx=0;sx<3;sx++) { .for (var y=0;y<21; y++) { .for (var c=0; c<3; c++) { .byte sprites.getSinglecolorByte(sx*3+c,sy*21+y) } } .byte 0 } } }} jmp b21 -//SEG11 @21 +//SEG10 @21 b21: -//SEG12 [7] (byte) irq_raster_next#0 ← (const byte) IRQ_RASTER_FIRST#0 -- vbuz1=vbuc1 +//SEG11 [6] (byte) irq_raster_next#0 ← (const byte) IRQ_RASTER_FIRST#0 -- vbuz1=vbuc1 lda #IRQ_RASTER_FIRST sta irq_raster_next -//SEG13 [8] (byte) irq_sprite_ypos#0 ← (byte/signed byte/word/signed word/dword/signed dword) 50 -- vbuz1=vbuc1 +//SEG12 [7] (byte) irq_sprite_ypos#0 ← (byte/signed byte/word/signed word/dword/signed dword) 50 -- vbuz1=vbuc1 lda #$32 sta irq_sprite_ypos -//SEG14 [9] phi from @21 to toSpritePtr1 [phi:@21->toSpritePtr1] +//SEG13 [8] phi from @21 to toSpritePtr1 [phi:@21->toSpritePtr1] toSpritePtr1_from_b21: jmp toSpritePtr1 -//SEG15 toSpritePtr1 +//SEG14 toSpritePtr1 toSpritePtr1: jmp b33 -//SEG16 @33 +//SEG15 @33 b33: -//SEG17 [10] (byte) irq_sprite_ptr#0 ← (const byte) toSpritePtr1_return#0 -- vbuz1=vbuc1 +//SEG16 [9] (byte) irq_sprite_ptr#0 ← (const byte) toSpritePtr1_return#0 -- vbuz1=vbuc1 lda #toSpritePtr1_return sta irq_sprite_ptr -//SEG18 [11] (byte) irq_cnt#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- vbuz1=vbuc1 +//SEG17 [10] (byte) irq_cnt#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- vbuz1=vbuc1 lda #0 sta irq_cnt -//SEG19 [12] phi from @33 to @32 [phi:@33->@32] +//SEG18 [11] phi from @33 to @32 [phi:@33->@32] b32_from_b33: jmp b32 -//SEG20 @32 +//SEG19 @32 b32: -//SEG21 [13] call main -//SEG22 [15] phi from @32 to main [phi:@32->main] +//SEG20 [12] call main +//SEG21 [14] phi from @32 to main [phi:@32->main] main_from_b32: jsr main -//SEG23 [14] phi from @32 to @end [phi:@32->@end] +//SEG22 [13] phi from @32 to @end [phi:@32->@end] bend_from_b32: jmp bend -//SEG24 @end +//SEG23 @end bend: -//SEG25 main +//SEG24 main main: { - .label _12 = $63 - .label _13 = $67 - .label _14 = $6b - .label key_event = $60 - .label render = $64 - .label render_2 = $68 - .label render_3 = $6c - //SEG26 [16] call sid_rnd_init + .label _12 = $61 + .label _13 = $65 + .label _14 = $69 + .label key_event = $5e + .label render = $62 + .label render_2 = $66 + .label render_3 = $6a + //SEG25 [15] call sid_rnd_init jsr sid_rnd_init jmp b15 - //SEG27 main::@15 + //SEG26 main::@15 b15: - //SEG28 asm { sei } + //SEG27 asm { sei } sei - //SEG29 [18] call render_init - //SEG30 [374] phi from main::@15 to render_init [phi:main::@15->render_init] + //SEG28 [17] call render_init + //SEG29 [373] phi from main::@15 to render_init [phi:main::@15->render_init] render_init_from_b15: jsr render_init - //SEG31 [19] phi from main::@15 to main::@16 [phi:main::@15->main::@16] + //SEG30 [18] phi from main::@15 to main::@16 [phi:main::@15->main::@16] b16_from_b15: jmp b16 - //SEG32 main::@16 + //SEG31 main::@16 b16: - //SEG33 [20] call sprites_init + //SEG32 [19] call sprites_init jsr sprites_init - //SEG34 [21] phi from main::@16 to main::@17 [phi:main::@16->main::@17] + //SEG33 [20] phi from main::@16 to main::@17 [phi:main::@16->main::@17] b17_from_b16: jmp b17 - //SEG35 main::@17 + //SEG34 main::@17 b17: - //SEG36 [22] call sprites_irq_init + //SEG35 [21] call sprites_irq_init jsr sprites_irq_init - //SEG37 [23] phi from main::@17 to main::@18 [phi:main::@17->main::@18] + //SEG36 [22] phi from main::@17 to main::@18 [phi:main::@17->main::@18] b18_from_b17: jmp b18 - //SEG38 main::@18 + //SEG37 main::@18 b18: - //SEG39 [24] call play_init - //SEG40 [339] phi from main::@18 to play_init [phi:main::@18->play_init] + //SEG38 [23] call play_init + //SEG39 [338] phi from main::@18 to play_init [phi:main::@18->play_init] play_init_from_b18: jsr play_init - //SEG41 [25] phi from main::@18 to main::@19 [phi:main::@18->main::@19] + //SEG40 [24] phi from main::@18 to main::@19 [phi:main::@18->main::@19] b19_from_b18: jmp b19 - //SEG42 main::@19 + //SEG41 main::@19 b19: - //SEG43 [26] call play_spawn_current - //SEG44 [210] phi from main::@19 to play_spawn_current [phi:main::@19->play_spawn_current] + //SEG42 [25] call play_spawn_current + //SEG43 [209] phi from main::@19 to play_spawn_current [phi:main::@19->play_spawn_current] play_spawn_current_from_b19: jsr play_spawn_current - //SEG45 [27] phi from main::@19 to main::@20 [phi:main::@19->main::@20] + //SEG44 [26] phi from main::@19 to main::@20 [phi:main::@19->main::@20] b20_from_b19: jmp b20 - //SEG46 main::@20 + //SEG45 main::@20 b20: - //SEG47 [28] call render_playfield - //SEG48 [97] phi from main::@20 to render_playfield [phi:main::@20->render_playfield] + //SEG46 [27] call render_playfield + //SEG47 [96] phi from main::@20 to render_playfield [phi:main::@20->render_playfield] render_playfield_from_b20: - //SEG49 [97] phi (byte) render_screen_render#19 = (byte/signed byte/word/signed word/dword/signed dword) 64 [phi:main::@20->render_playfield#0] -- vbuz1=vbuc1 + //SEG48 [96] phi (byte) render_screen_render#19 = (byte/signed byte/word/signed word/dword/signed dword) 64 [phi:main::@20->render_playfield#0] -- vbuz1=vbuc1 lda #$40 sta render_screen_render_19 jsr render_playfield jmp b21 - //SEG50 main::@21 + //SEG49 main::@21 b21: - //SEG51 [29] (byte~) current_ypos#84 ← (byte) current_ypos#18 -- vbuz1=vbuz2 + //SEG50 [28] (byte~) current_ypos#84 ← (byte) current_ypos#18 -- vbuz1=vbuz2 lda current_ypos sta current_ypos_84 - //SEG52 [30] (byte~) current_xpos#110 ← (byte) current_xpos#23 -- vbuz1=vbuz2 + //SEG51 [29] (byte~) current_xpos#110 ← (byte) current_xpos#23 -- vbuz1=vbuz2 lda current_xpos sta current_xpos_110 - //SEG53 [31] (byte*~) current_piece_gfx#100 ← (byte*) current_piece_gfx#16 -- pbuz1=pbuz2 + //SEG52 [30] (byte*~) current_piece_gfx#100 ← (byte*) current_piece_gfx#16 -- pbuz1=pbuz2 lda current_piece_gfx sta current_piece_gfx_100 lda current_piece_gfx+1 sta current_piece_gfx_100+1 - //SEG54 [32] (byte~) current_piece_char#88 ← (byte) current_piece_char#12 -- vbuz1=vbuz2 + //SEG53 [31] (byte~) current_piece_char#88 ← (byte) current_piece_char#12 -- vbuz1=vbuz2 lda current_piece_char sta current_piece_char_88 - //SEG55 [33] call render_current - //SEG56 [74] phi from main::@21 to render_current [phi:main::@21->render_current] + //SEG54 [32] call render_current + //SEG55 [73] phi from main::@21 to render_current [phi:main::@21->render_current] render_current_from_b21: - //SEG57 [74] phi (byte) current_piece_char#63 = (byte~) current_piece_char#88 [phi:main::@21->render_current#0] -- register_copy - //SEG58 [74] phi (byte*) current_piece_gfx#53 = (byte*~) current_piece_gfx#100 [phi:main::@21->render_current#1] -- register_copy - //SEG59 [74] phi (byte) current_xpos#47 = (byte~) current_xpos#110 [phi:main::@21->render_current#2] -- register_copy - //SEG60 [74] phi (byte) render_screen_render#28 = (byte/signed byte/word/signed word/dword/signed dword) 64 [phi:main::@21->render_current#3] -- vbuz1=vbuc1 + //SEG56 [73] phi (byte) current_piece_char#63 = (byte~) current_piece_char#88 [phi:main::@21->render_current#0] -- register_copy + //SEG57 [73] phi (byte*) current_piece_gfx#53 = (byte*~) current_piece_gfx#100 [phi:main::@21->render_current#1] -- register_copy + //SEG58 [73] phi (byte) current_xpos#47 = (byte~) current_xpos#110 [phi:main::@21->render_current#2] -- register_copy + //SEG59 [73] phi (byte) render_screen_render#28 = (byte/signed byte/word/signed word/dword/signed dword) 64 [phi:main::@21->render_current#3] -- vbuz1=vbuc1 lda #$40 sta render_screen_render_28 - //SEG61 [74] phi (byte) current_ypos#9 = (byte~) current_ypos#84 [phi:main::@21->render_current#4] -- register_copy + //SEG60 [73] phi (byte) current_ypos#9 = (byte~) current_ypos#84 [phi:main::@21->render_current#4] -- register_copy jsr render_current - //SEG62 [34] (byte*~) current_piece#71 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) -- pbuz1=pptc1_derefidx_vbuz2 + //SEG61 [33] (byte*~) current_piece#71 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) -- pbuz1=pptc1_derefidx_vbuz2 ldy play_spawn_current._3 lda PIECES,y sta current_piece lda PIECES+1,y sta current_piece+1 - //SEG63 [35] phi from main::@21 to main::@1 [phi:main::@21->main::@1] + //SEG62 [34] phi from main::@21 to main::@1 [phi:main::@21->main::@1] b1_from_b21: - //SEG64 [35] phi (byte) current_movedown_counter#12 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@21->main::@1#0] -- vbuz1=vbuc1 + //SEG63 [34] phi (byte) current_movedown_counter#12 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@21->main::@1#0] -- vbuz1=vbuc1 lda #0 sta current_movedown_counter - //SEG65 [35] phi (byte) keyboard_events_size#19 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@21->main::@1#1] -- vbuz1=vbuc1 + //SEG64 [34] phi (byte) keyboard_events_size#19 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@21->main::@1#1] -- vbuz1=vbuc1 lda #0 sta keyboard_events_size - //SEG66 [35] phi (byte) current_piece_char#15 = (byte) current_piece_char#12 [phi:main::@21->main::@1#2] -- register_copy - //SEG67 [35] phi (byte) current_ypos#21 = (byte) current_ypos#18 [phi:main::@21->main::@1#3] -- register_copy - //SEG68 [35] phi (byte) current_xpos#10 = (byte) current_xpos#23 [phi:main::@21->main::@1#4] -- register_copy - //SEG69 [35] phi (byte*) current_piece_gfx#20 = (byte*) current_piece_gfx#16 [phi:main::@21->main::@1#5] -- register_copy - //SEG70 [35] phi (byte) current_orientation#10 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@21->main::@1#6] -- vbuz1=vbuc1 + //SEG65 [34] phi (byte) current_piece_char#15 = (byte) current_piece_char#12 [phi:main::@21->main::@1#2] -- register_copy + //SEG66 [34] phi (byte) current_ypos#21 = (byte) current_ypos#18 [phi:main::@21->main::@1#3] -- register_copy + //SEG67 [34] phi (byte) current_xpos#10 = (byte) current_xpos#23 [phi:main::@21->main::@1#4] -- register_copy + //SEG68 [34] phi (byte*) current_piece_gfx#20 = (byte*) current_piece_gfx#16 [phi:main::@21->main::@1#5] -- register_copy + //SEG69 [34] phi (byte) current_orientation#10 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@21->main::@1#6] -- vbuz1=vbuc1 lda #0 sta current_orientation - //SEG71 [35] phi (byte*) current_piece#16 = (byte*~) current_piece#71 [phi:main::@21->main::@1#7] -- register_copy - //SEG72 [35] phi (byte) render_screen_render#16 = (byte/signed byte/word/signed word/dword/signed dword) 64 [phi:main::@21->main::@1#8] -- vbuz1=vbuc1 + //SEG70 [34] phi (byte*) current_piece#16 = (byte*~) current_piece#71 [phi:main::@21->main::@1#7] -- register_copy + //SEG71 [34] phi (byte) render_screen_render#16 = (byte/signed byte/word/signed word/dword/signed dword) 64 [phi:main::@21->main::@1#8] -- vbuz1=vbuc1 lda #$40 sta render_screen_render - //SEG73 [35] phi (byte) render_screen_show#16 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@21->main::@1#9] -- vbuz1=vbuc1 + //SEG72 [34] phi (byte) render_screen_show#16 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@21->main::@1#9] -- vbuz1=vbuc1 lda #0 sta render_screen_show jmp b1 - //SEG74 [35] phi from main::@28 to main::@1 [phi:main::@28->main::@1] + //SEG73 [34] phi from main::@28 to main::@1 [phi:main::@28->main::@1] b1_from_b28: - //SEG75 [35] phi (byte) current_movedown_counter#12 = (byte) current_movedown_counter#10 [phi:main::@28->main::@1#0] -- register_copy - //SEG76 [35] phi (byte) keyboard_events_size#19 = (byte) keyboard_events_size#16 [phi:main::@28->main::@1#1] -- register_copy - //SEG77 [35] phi (byte) current_piece_char#15 = (byte) current_piece_char#1 [phi:main::@28->main::@1#2] -- register_copy - //SEG78 [35] phi (byte) current_ypos#21 = (byte) current_ypos#13 [phi:main::@28->main::@1#3] -- register_copy - //SEG79 [35] phi (byte) current_xpos#10 = (byte) current_xpos#19 [phi:main::@28->main::@1#4] -- register_copy - //SEG80 [35] phi (byte*) current_piece_gfx#20 = (byte*) current_piece_gfx#14 [phi:main::@28->main::@1#5] -- register_copy - //SEG81 [35] phi (byte) current_orientation#10 = (byte) current_orientation#19 [phi:main::@28->main::@1#6] -- register_copy - //SEG82 [35] phi (byte*) current_piece#16 = (byte*) current_piece#10 [phi:main::@28->main::@1#7] -- register_copy + //SEG74 [34] phi (byte) current_movedown_counter#12 = (byte) current_movedown_counter#10 [phi:main::@28->main::@1#0] -- register_copy + //SEG75 [34] phi (byte) keyboard_events_size#19 = (byte) keyboard_events_size#16 [phi:main::@28->main::@1#1] -- register_copy + //SEG76 [34] phi (byte) current_piece_char#15 = (byte) current_piece_char#1 [phi:main::@28->main::@1#2] -- register_copy + //SEG77 [34] phi (byte) current_ypos#21 = (byte) current_ypos#13 [phi:main::@28->main::@1#3] -- register_copy + //SEG78 [34] phi (byte) current_xpos#10 = (byte) current_xpos#19 [phi:main::@28->main::@1#4] -- register_copy + //SEG79 [34] phi (byte*) current_piece_gfx#20 = (byte*) current_piece_gfx#14 [phi:main::@28->main::@1#5] -- register_copy + //SEG80 [34] phi (byte) current_orientation#10 = (byte) current_orientation#19 [phi:main::@28->main::@1#6] -- register_copy + //SEG81 [34] phi (byte*) current_piece#16 = (byte*) current_piece#10 [phi:main::@28->main::@1#7] -- register_copy jmp b1 - //SEG83 main::@1 + //SEG82 main::@1 b1: jmp b4 - //SEG84 main::@4 + //SEG83 main::@4 b4: - //SEG85 [36] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@4 -- _deref_pbuc1_neq_vbuc2_then_la1 + //SEG84 [35] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@4 -- _deref_pbuc1_neq_vbuc2_then_la1 lda RASTER cmp #$ff bne b4 - //SEG86 [37] phi from main::@4 to main::@6 [phi:main::@4->main::@6] + //SEG85 [36] phi from main::@4 to main::@6 [phi:main::@4->main::@6] b6_from_b4: jmp b6 - //SEG87 main::@6 + //SEG86 main::@6 b6: - //SEG88 [38] call render_show + //SEG87 [37] call render_show jsr render_show - //SEG89 [39] phi from main::@6 to main::@23 [phi:main::@6->main::@23] + //SEG88 [38] phi from main::@6 to main::@23 [phi:main::@6->main::@23] b23_from_b6: jmp b23 - //SEG90 main::@23 + //SEG89 main::@23 b23: - //SEG91 [40] call keyboard_event_scan - //SEG92 [276] phi from main::@23 to keyboard_event_scan [phi:main::@23->keyboard_event_scan] + //SEG90 [39] call keyboard_event_scan + //SEG91 [275] phi from main::@23 to keyboard_event_scan [phi:main::@23->keyboard_event_scan] keyboard_event_scan_from_b23: jsr keyboard_event_scan - //SEG93 [41] phi from main::@23 to main::@24 [phi:main::@23->main::@24] + //SEG92 [40] phi from main::@23 to main::@24 [phi:main::@23->main::@24] b24_from_b23: jmp b24 - //SEG94 main::@24 + //SEG93 main::@24 b24: - //SEG95 [42] call keyboard_event_get + //SEG94 [41] call keyboard_event_get jsr keyboard_event_get - //SEG96 [43] (byte) keyboard_event_get::return#3 ← (byte) keyboard_event_get::return#2 -- vbuz1=vbuz2 + //SEG95 [42] (byte) keyboard_event_get::return#3 ← (byte) keyboard_event_get::return#2 -- vbuz1=vbuz2 lda keyboard_event_get.return sta keyboard_event_get.return_3 jmp b25 - //SEG97 main::@25 + //SEG96 main::@25 b25: - //SEG98 [44] (byte) main::key_event#0 ← (byte) keyboard_event_get::return#3 -- vbuz1=vbuz2 + //SEG97 [43] (byte) main::key_event#0 ← (byte) keyboard_event_get::return#3 -- vbuz1=vbuz2 lda keyboard_event_get.return_3 sta key_event - //SEG99 [45] (byte) play_move_down::key_event#0 ← (byte) main::key_event#0 -- vbuz1=vbuz2 + //SEG98 [44] (byte) play_move_down::key_event#0 ← (byte) main::key_event#0 -- vbuz1=vbuz2 lda key_event sta play_move_down.key_event - //SEG100 [46] call play_move_down + //SEG99 [45] call play_move_down jsr play_move_down - //SEG101 [47] (byte) play_move_down::return#3 ← (byte) play_move_down::return#2 -- vbuz1=vbuz2 + //SEG100 [46] (byte) play_move_down::return#3 ← (byte) play_move_down::return#2 -- vbuz1=vbuz2 lda play_move_down.return sta play_move_down.return_3 jmp b26 - //SEG102 main::@26 + //SEG101 main::@26 b26: - //SEG103 [48] (byte~) main::$12 ← (byte) play_move_down::return#3 -- vbuz1=vbuz2 + //SEG102 [47] (byte~) main::$12 ← (byte) play_move_down::return#3 -- vbuz1=vbuz2 lda play_move_down.return_3 sta _12 - //SEG104 [49] (byte) main::render#1 ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte~) main::$12 -- vbuz1=vbuc1_plus_vbuz2 + //SEG103 [48] (byte) main::render#1 ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte~) main::$12 -- vbuz1=vbuc1_plus_vbuz2 lda #0 clc adc _12 sta render - //SEG105 [50] (byte) play_move_leftright::key_event#0 ← (byte) main::key_event#0 -- vbuz1=vbuz2 + //SEG104 [49] (byte) play_move_leftright::key_event#0 ← (byte) main::key_event#0 -- vbuz1=vbuz2 lda key_event sta play_move_leftright.key_event - //SEG106 [51] call play_move_leftright + //SEG105 [50] call play_move_leftright jsr play_move_leftright - //SEG107 [52] (byte) play_move_leftright::return#4 ← (byte) play_move_leftright::return#1 -- vbuz1=vbuz2 + //SEG106 [51] (byte) play_move_leftright::return#4 ← (byte) play_move_leftright::return#1 -- vbuz1=vbuz2 lda play_move_leftright.return sta play_move_leftright.return_4 jmp b27 - //SEG108 main::@27 + //SEG107 main::@27 b27: - //SEG109 [53] (byte~) main::$13 ← (byte) play_move_leftright::return#4 -- vbuz1=vbuz2 + //SEG108 [52] (byte~) main::$13 ← (byte) play_move_leftright::return#4 -- vbuz1=vbuz2 lda play_move_leftright.return_4 sta _13 - //SEG110 [54] (byte) main::render#2 ← (byte) main::render#1 + (byte~) main::$13 -- vbuz1=vbuz2_plus_vbuz3 + //SEG109 [53] (byte) main::render#2 ← (byte) main::render#1 + (byte~) main::$13 -- vbuz1=vbuz2_plus_vbuz3 lda render clc adc _13 sta render_2 - //SEG111 [55] (byte) play_move_rotate::key_event#0 ← (byte) main::key_event#0 -- vbuz1=vbuz2 + //SEG110 [54] (byte) play_move_rotate::key_event#0 ← (byte) main::key_event#0 -- vbuz1=vbuz2 lda key_event sta play_move_rotate.key_event - //SEG112 [56] call play_move_rotate + //SEG111 [55] call play_move_rotate jsr play_move_rotate - //SEG113 [57] (byte) play_move_rotate::return#4 ← (byte) play_move_rotate::return#1 -- vbuz1=vbuz2 + //SEG112 [56] (byte) play_move_rotate::return#4 ← (byte) play_move_rotate::return#1 -- vbuz1=vbuz2 lda play_move_rotate.return sta play_move_rotate.return_4 jmp b28 - //SEG114 main::@28 + //SEG113 main::@28 b28: - //SEG115 [58] (byte~) main::$14 ← (byte) play_move_rotate::return#4 -- vbuz1=vbuz2 + //SEG114 [57] (byte~) main::$14 ← (byte) play_move_rotate::return#4 -- vbuz1=vbuz2 lda play_move_rotate.return_4 sta _14 - //SEG116 [59] (byte) main::render#3 ← (byte) main::render#2 + (byte~) main::$14 -- vbuz1=vbuz2_plus_vbuz3 + //SEG115 [58] (byte) main::render#3 ← (byte) main::render#2 + (byte~) main::$14 -- vbuz1=vbuz2_plus_vbuz3 lda render_2 clc adc _14 sta render_3 - //SEG117 [60] if((byte) main::render#3==(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@1 -- vbuz1_eq_0_then_la1 + //SEG116 [59] if((byte) main::render#3==(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@1 -- vbuz1_eq_0_then_la1 lda render_3 cmp #0 beq b1_from_b28 jmp b13 - //SEG118 main::@13 + //SEG117 main::@13 b13: - //SEG119 [61] (byte~) render_screen_render#63 ← (byte) render_screen_render#16 -- vbuz1=vbuz2 + //SEG118 [60] (byte~) render_screen_render#63 ← (byte) render_screen_render#16 -- vbuz1=vbuz2 lda render_screen_render sta render_screen_render_63 - //SEG120 [62] call render_playfield - //SEG121 [97] phi from main::@13 to render_playfield [phi:main::@13->render_playfield] + //SEG119 [61] call render_playfield + //SEG120 [96] phi from main::@13 to render_playfield [phi:main::@13->render_playfield] render_playfield_from_b13: - //SEG122 [97] phi (byte) render_screen_render#19 = (byte~) render_screen_render#63 [phi:main::@13->render_playfield#0] -- register_copy + //SEG121 [96] phi (byte) render_screen_render#19 = (byte~) render_screen_render#63 [phi:main::@13->render_playfield#0] -- register_copy jsr render_playfield jmp b29 - //SEG123 main::@29 + //SEG122 main::@29 b29: - //SEG124 [63] (byte~) current_ypos#85 ← (byte) current_ypos#13 -- vbuz1=vbuz2 + //SEG123 [62] (byte~) current_ypos#85 ← (byte) current_ypos#13 -- vbuz1=vbuz2 lda current_ypos sta current_ypos_85 - //SEG125 [64] (byte~) render_screen_render#62 ← (byte) render_screen_render#16 -- vbuz1=vbuz2 + //SEG124 [63] (byte~) render_screen_render#62 ← (byte) render_screen_render#16 -- vbuz1=vbuz2 lda render_screen_render sta render_screen_render_62 - //SEG126 [65] (byte~) current_xpos#111 ← (byte) current_xpos#19 -- vbuz1=vbuz2 + //SEG125 [64] (byte~) current_xpos#111 ← (byte) current_xpos#19 -- vbuz1=vbuz2 lda current_xpos sta current_xpos_111 - //SEG127 [66] (byte*~) current_piece_gfx#101 ← (byte*) current_piece_gfx#14 -- pbuz1=pbuz2 + //SEG126 [65] (byte*~) current_piece_gfx#101 ← (byte*) current_piece_gfx#14 -- pbuz1=pbuz2 lda current_piece_gfx sta current_piece_gfx_101 lda current_piece_gfx+1 sta current_piece_gfx_101+1 - //SEG128 [67] (byte~) current_piece_char#89 ← (byte) current_piece_char#1 -- vbuz1=vbuz2 + //SEG127 [66] (byte~) current_piece_char#89 ← (byte) current_piece_char#1 -- vbuz1=vbuz2 lda current_piece_char sta current_piece_char_89 - //SEG129 [68] call render_current - //SEG130 [74] phi from main::@29 to render_current [phi:main::@29->render_current] + //SEG128 [67] call render_current + //SEG129 [73] phi from main::@29 to render_current [phi:main::@29->render_current] render_current_from_b29: - //SEG131 [74] phi (byte) current_piece_char#63 = (byte~) current_piece_char#89 [phi:main::@29->render_current#0] -- register_copy - //SEG132 [74] phi (byte*) current_piece_gfx#53 = (byte*~) current_piece_gfx#101 [phi:main::@29->render_current#1] -- register_copy - //SEG133 [74] phi (byte) current_xpos#47 = (byte~) current_xpos#111 [phi:main::@29->render_current#2] -- register_copy - //SEG134 [74] phi (byte) render_screen_render#28 = (byte~) render_screen_render#62 [phi:main::@29->render_current#3] -- register_copy - //SEG135 [74] phi (byte) current_ypos#9 = (byte~) current_ypos#85 [phi:main::@29->render_current#4] -- register_copy + //SEG130 [73] phi (byte) current_piece_char#63 = (byte~) current_piece_char#89 [phi:main::@29->render_current#0] -- register_copy + //SEG131 [73] phi (byte*) current_piece_gfx#53 = (byte*~) current_piece_gfx#101 [phi:main::@29->render_current#1] -- register_copy + //SEG132 [73] phi (byte) current_xpos#47 = (byte~) current_xpos#111 [phi:main::@29->render_current#2] -- register_copy + //SEG133 [73] phi (byte) render_screen_render#28 = (byte~) render_screen_render#62 [phi:main::@29->render_current#3] -- register_copy + //SEG134 [73] phi (byte) current_ypos#9 = (byte~) current_ypos#85 [phi:main::@29->render_current#4] -- register_copy jsr render_current - //SEG136 [69] phi from main::@29 to main::@30 [phi:main::@29->main::@30] + //SEG135 [68] phi from main::@29 to main::@30 [phi:main::@29->main::@30] b30_from_b29: jmp b30 - //SEG137 main::@30 + //SEG136 main::@30 b30: - //SEG138 [70] call render_screen_swap + //SEG137 [69] call render_screen_swap jsr render_screen_swap - //SEG139 [35] phi from main::@30 to main::@1 [phi:main::@30->main::@1] + //SEG138 [34] phi from main::@30 to main::@1 [phi:main::@30->main::@1] b1_from_b30: - //SEG140 [35] phi (byte) current_movedown_counter#12 = (byte) current_movedown_counter#10 [phi:main::@30->main::@1#0] -- register_copy - //SEG141 [35] phi (byte) keyboard_events_size#19 = (byte) keyboard_events_size#16 [phi:main::@30->main::@1#1] -- register_copy - //SEG142 [35] phi (byte) current_piece_char#15 = (byte) current_piece_char#1 [phi:main::@30->main::@1#2] -- register_copy - //SEG143 [35] phi (byte) current_ypos#21 = (byte) current_ypos#13 [phi:main::@30->main::@1#3] -- register_copy - //SEG144 [35] phi (byte) current_xpos#10 = (byte) current_xpos#19 [phi:main::@30->main::@1#4] -- register_copy - //SEG145 [35] phi (byte*) current_piece_gfx#20 = (byte*) current_piece_gfx#14 [phi:main::@30->main::@1#5] -- register_copy - //SEG146 [35] phi (byte) current_orientation#10 = (byte) current_orientation#19 [phi:main::@30->main::@1#6] -- register_copy - //SEG147 [35] phi (byte*) current_piece#16 = (byte*) current_piece#10 [phi:main::@30->main::@1#7] -- register_copy - //SEG148 [35] phi (byte) render_screen_render#16 = (byte) render_screen_render#11 [phi:main::@30->main::@1#8] -- register_copy - //SEG149 [35] phi (byte) render_screen_show#16 = (byte) render_screen_show#13 [phi:main::@30->main::@1#9] -- register_copy + //SEG139 [34] phi (byte) current_movedown_counter#12 = (byte) current_movedown_counter#10 [phi:main::@30->main::@1#0] -- register_copy + //SEG140 [34] phi (byte) keyboard_events_size#19 = (byte) keyboard_events_size#16 [phi:main::@30->main::@1#1] -- register_copy + //SEG141 [34] phi (byte) current_piece_char#15 = (byte) current_piece_char#1 [phi:main::@30->main::@1#2] -- register_copy + //SEG142 [34] phi (byte) current_ypos#21 = (byte) current_ypos#13 [phi:main::@30->main::@1#3] -- register_copy + //SEG143 [34] phi (byte) current_xpos#10 = (byte) current_xpos#19 [phi:main::@30->main::@1#4] -- register_copy + //SEG144 [34] phi (byte*) current_piece_gfx#20 = (byte*) current_piece_gfx#14 [phi:main::@30->main::@1#5] -- register_copy + //SEG145 [34] phi (byte) current_orientation#10 = (byte) current_orientation#19 [phi:main::@30->main::@1#6] -- register_copy + //SEG146 [34] phi (byte*) current_piece#16 = (byte*) current_piece#10 [phi:main::@30->main::@1#7] -- register_copy + //SEG147 [34] phi (byte) render_screen_render#16 = (byte) render_screen_render#11 [phi:main::@30->main::@1#8] -- register_copy + //SEG148 [34] phi (byte) render_screen_show#16 = (byte) render_screen_show#13 [phi:main::@30->main::@1#9] -- register_copy jmp b1 } -//SEG150 render_screen_swap +//SEG149 render_screen_swap render_screen_swap: { - //SEG151 [71] (byte) render_screen_render#11 ← (byte) render_screen_render#16 ^ (byte/signed byte/word/signed word/dword/signed dword) 64 -- vbuz1=vbuz1_bxor_vbuc1 + //SEG150 [70] (byte) render_screen_render#11 ← (byte) render_screen_render#16 ^ (byte/signed byte/word/signed word/dword/signed dword) 64 -- vbuz1=vbuz1_bxor_vbuc1 lda render_screen_render eor #$40 sta render_screen_render - //SEG152 [72] (byte) render_screen_show#13 ← (byte) render_screen_show#16 ^ (byte/signed byte/word/signed word/dword/signed dword) 64 -- vbuz1=vbuz1_bxor_vbuc1 + //SEG151 [71] (byte) render_screen_show#13 ← (byte) render_screen_show#16 ^ (byte/signed byte/word/signed word/dword/signed dword) 64 -- vbuz1=vbuz1_bxor_vbuc1 lda render_screen_show eor #$40 sta render_screen_show jmp breturn - //SEG153 render_screen_swap::@return + //SEG152 render_screen_swap::@return breturn: - //SEG154 [73] return + //SEG153 [72] return rts } -//SEG155 render_current +//SEG154 render_current render_current: { - .label _5 = $6d + .label _5 = $6b .label ypos2 = $b - .label screen_line = $6e + .label screen_line = $6c .label xpos = $e .label i = $d .label l = $c - .label current_cell = $70 + .label current_cell = $6e .label c = $f - //SEG156 [75] (byte) render_current::ypos2#0 ← (byte) current_ypos#9 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_rol_1 + //SEG155 [74] (byte) render_current::ypos2#0 ← (byte) current_ypos#9 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_rol_1 lda current_ypos_9 asl sta ypos2 - //SEG157 [76] phi from render_current to render_current::@1 [phi:render_current->render_current::@1] + //SEG156 [75] phi from render_current to render_current::@1 [phi:render_current->render_current::@1] b1_from_render_current: - //SEG158 [76] phi (byte) render_current::l#4 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_current->render_current::@1#0] -- vbuz1=vbuc1 + //SEG157 [75] phi (byte) render_current::l#4 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_current->render_current::@1#0] -- vbuz1=vbuc1 lda #0 sta l - //SEG159 [76] phi (byte) render_current::i#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_current->render_current::@1#1] -- vbuz1=vbuc1 + //SEG158 [75] phi (byte) render_current::i#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_current->render_current::@1#1] -- vbuz1=vbuc1 lda #0 sta i - //SEG160 [76] phi (byte) render_current::ypos2#2 = (byte) render_current::ypos2#0 [phi:render_current->render_current::@1#2] -- register_copy + //SEG159 [75] phi (byte) render_current::ypos2#2 = (byte) render_current::ypos2#0 [phi:render_current->render_current::@1#2] -- register_copy jmp b1 - //SEG161 [76] phi from render_current::@3 to render_current::@1 [phi:render_current::@3->render_current::@1] + //SEG160 [75] phi from render_current::@3 to render_current::@1 [phi:render_current::@3->render_current::@1] b1_from_b3: - //SEG162 [76] phi (byte) render_current::l#4 = (byte) render_current::l#1 [phi:render_current::@3->render_current::@1#0] -- register_copy - //SEG163 [76] phi (byte) render_current::i#3 = (byte) render_current::i#8 [phi:render_current::@3->render_current::@1#1] -- register_copy - //SEG164 [76] phi (byte) render_current::ypos2#2 = (byte) render_current::ypos2#1 [phi:render_current::@3->render_current::@1#2] -- register_copy + //SEG161 [75] phi (byte) render_current::l#4 = (byte) render_current::l#1 [phi:render_current::@3->render_current::@1#0] -- register_copy + //SEG162 [75] phi (byte) render_current::i#3 = (byte) render_current::i#8 [phi:render_current::@3->render_current::@1#1] -- register_copy + //SEG163 [75] phi (byte) render_current::ypos2#2 = (byte) render_current::ypos2#1 [phi:render_current::@3->render_current::@1#2] -- register_copy jmp b1 - //SEG165 render_current::@1 + //SEG164 render_current::@1 b1: - //SEG166 [77] if((byte) render_current::ypos2#2>(byte/signed byte/word/signed word/dword/signed dword) 2) goto render_current::@13 -- vbuz1_gt_vbuc1_then_la1 + //SEG165 [76] if((byte) render_current::ypos2#2>(byte/signed byte/word/signed word/dword/signed dword) 2) goto render_current::@13 -- vbuz1_gt_vbuc1_then_la1 lda ypos2 cmp #2 beq !+ bcs b13 !: jmp b7 - //SEG167 render_current::@7 + //SEG166 render_current::@7 b7: - //SEG168 [78] (byte) render_current::i#1 ← (byte) render_current::i#3 + (byte/signed byte/word/signed word/dword/signed dword) 4 -- vbuz1=vbuz1_plus_vbuc1 + //SEG167 [77] (byte) render_current::i#1 ← (byte) render_current::i#3 + (byte/signed byte/word/signed word/dword/signed dword) 4 -- vbuz1=vbuz1_plus_vbuc1 lda #4 clc adc i sta i - //SEG169 [79] phi from render_current::@5 render_current::@7 to render_current::@3 [phi:render_current::@5/render_current::@7->render_current::@3] + //SEG168 [78] phi from render_current::@5 render_current::@7 to render_current::@3 [phi:render_current::@5/render_current::@7->render_current::@3] b3_from_b5: b3_from_b7: - //SEG170 [79] phi (byte) render_current::i#8 = (byte) render_current::i#10 [phi:render_current::@5/render_current::@7->render_current::@3#0] -- register_copy + //SEG169 [78] phi (byte) render_current::i#8 = (byte) render_current::i#10 [phi:render_current::@5/render_current::@7->render_current::@3#0] -- register_copy jmp b3 - //SEG171 render_current::@3 + //SEG170 render_current::@3 b3: - //SEG172 [80] (byte) render_current::ypos2#1 ← (byte) render_current::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 -- vbuz1=vbuz1_plus_2 + //SEG171 [79] (byte) render_current::ypos2#1 ← (byte) render_current::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 -- vbuz1=vbuz1_plus_2 lda ypos2 clc adc #2 sta ypos2 - //SEG173 [81] (byte) render_current::l#1 ← ++ (byte) render_current::l#4 -- vbuz1=_inc_vbuz1 + //SEG172 [80] (byte) render_current::l#1 ← ++ (byte) render_current::l#4 -- vbuz1=_inc_vbuz1 inc l - //SEG174 [82] if((byte) render_current::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_current::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG173 [81] if((byte) render_current::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_current::@1 -- vbuz1_neq_vbuc1_then_la1 lda l cmp #4 bne b1_from_b3 jmp breturn - //SEG175 render_current::@return + //SEG174 render_current::@return breturn: - //SEG176 [83] return + //SEG175 [82] return rts - //SEG177 render_current::@13 + //SEG176 render_current::@13 b13: - //SEG178 [84] if((byte) render_current::ypos2#2<(byte/signed byte/word/signed word/dword/signed dword) 2*(const byte) PLAYFIELD_LINES#0) goto render_current::@2 -- vbuz1_lt_vbuc1_then_la1 + //SEG177 [83] if((byte) render_current::ypos2#2<(byte/signed byte/word/signed word/dword/signed dword) 2*(const byte) PLAYFIELD_LINES#0) goto render_current::@2 -- vbuz1_lt_vbuc1_then_la1 lda ypos2 cmp #2*PLAYFIELD_LINES bcc b2 jmp b7 - //SEG179 render_current::@2 + //SEG178 render_current::@2 b2: - //SEG180 [85] (byte~) render_current::$5 ← (byte) render_screen_render#28 + (byte) render_current::ypos2#2 -- vbuz1=vbuz2_plus_vbuz3 + //SEG179 [84] (byte~) render_current::$5 ← (byte) render_screen_render#28 + (byte) render_current::ypos2#2 -- vbuz1=vbuz2_plus_vbuz3 lda render_screen_render_28 clc adc ypos2 sta _5 - //SEG181 [86] (byte*) render_current::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) screen_lines_1#0 + (byte~) render_current::$5) -- pbuz1=pptc1_derefidx_vbuz2 + //SEG180 [85] (byte*) render_current::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) screen_lines_1#0 + (byte~) render_current::$5) -- pbuz1=pptc1_derefidx_vbuz2 ldy _5 lda screen_lines_1,y sta screen_line lda screen_lines_1+1,y sta screen_line+1 - //SEG182 [87] (byte) render_current::xpos#0 ← (byte) current_xpos#47 -- vbuz1=vbuz2 + //SEG181 [86] (byte) render_current::xpos#0 ← (byte) current_xpos#47 -- vbuz1=vbuz2 lda current_xpos_47 sta xpos - //SEG183 [88] phi from render_current::@2 to render_current::@4 [phi:render_current::@2->render_current::@4] + //SEG182 [87] phi from render_current::@2 to render_current::@4 [phi:render_current::@2->render_current::@4] b4_from_b2: - //SEG184 [88] phi (byte) render_current::c#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_current::@2->render_current::@4#0] -- vbuz1=vbuc1 + //SEG183 [87] phi (byte) render_current::c#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_current::@2->render_current::@4#0] -- vbuz1=vbuc1 lda #0 sta c - //SEG185 [88] phi (byte) render_current::xpos#2 = (byte) render_current::xpos#0 [phi:render_current::@2->render_current::@4#1] -- register_copy - //SEG186 [88] phi (byte) render_current::i#4 = (byte) render_current::i#3 [phi:render_current::@2->render_current::@4#2] -- register_copy + //SEG184 [87] phi (byte) render_current::xpos#2 = (byte) render_current::xpos#0 [phi:render_current::@2->render_current::@4#1] -- register_copy + //SEG185 [87] phi (byte) render_current::i#4 = (byte) render_current::i#3 [phi:render_current::@2->render_current::@4#2] -- register_copy jmp b4 - //SEG187 [88] phi from render_current::@5 to render_current::@4 [phi:render_current::@5->render_current::@4] + //SEG186 [87] phi from render_current::@5 to render_current::@4 [phi:render_current::@5->render_current::@4] b4_from_b5: - //SEG188 [88] phi (byte) render_current::c#2 = (byte) render_current::c#1 [phi:render_current::@5->render_current::@4#0] -- register_copy - //SEG189 [88] phi (byte) render_current::xpos#2 = (byte) render_current::xpos#1 [phi:render_current::@5->render_current::@4#1] -- register_copy - //SEG190 [88] phi (byte) render_current::i#4 = (byte) render_current::i#10 [phi:render_current::@5->render_current::@4#2] -- register_copy + //SEG187 [87] phi (byte) render_current::c#2 = (byte) render_current::c#1 [phi:render_current::@5->render_current::@4#0] -- register_copy + //SEG188 [87] phi (byte) render_current::xpos#2 = (byte) render_current::xpos#1 [phi:render_current::@5->render_current::@4#1] -- register_copy + //SEG189 [87] phi (byte) render_current::i#4 = (byte) render_current::i#10 [phi:render_current::@5->render_current::@4#2] -- register_copy jmp b4 - //SEG191 render_current::@4 + //SEG190 render_current::@4 b4: - //SEG192 [89] (byte) render_current::current_cell#0 ← *((byte*) current_piece_gfx#53 + (byte) render_current::i#4) -- vbuz1=pbuz2_derefidx_vbuz3 + //SEG191 [88] (byte) render_current::current_cell#0 ← *((byte*) current_piece_gfx#53 + (byte) render_current::i#4) -- vbuz1=pbuz2_derefidx_vbuz3 ldy i lda (current_piece_gfx_53),y sta current_cell - //SEG193 [90] (byte) render_current::i#10 ← ++ (byte) render_current::i#4 -- vbuz1=_inc_vbuz1 + //SEG192 [89] (byte) render_current::i#10 ← ++ (byte) render_current::i#4 -- vbuz1=_inc_vbuz1 inc i - //SEG194 [91] if((byte) render_current::current_cell#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto render_current::@5 -- vbuz1_eq_0_then_la1 + //SEG193 [90] if((byte) render_current::current_cell#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto render_current::@5 -- vbuz1_eq_0_then_la1 lda current_cell cmp #0 beq b5 jmp b9 - //SEG195 render_current::@9 + //SEG194 render_current::@9 b9: - //SEG196 [92] if((byte) render_current::xpos#2>=(const byte) PLAYFIELD_COLS#0) goto render_current::@5 -- vbuz1_ge_vbuc1_then_la1 + //SEG195 [91] if((byte) render_current::xpos#2>=(const byte) PLAYFIELD_COLS#0) goto render_current::@5 -- vbuz1_ge_vbuc1_then_la1 lda xpos cmp #PLAYFIELD_COLS bcs b5 jmp b10 - //SEG197 render_current::@10 + //SEG196 render_current::@10 b10: - //SEG198 [93] *((byte*) render_current::screen_line#0 + (byte) render_current::xpos#2) ← (byte) current_piece_char#63 -- pbuz1_derefidx_vbuz2=vbuz3 + //SEG197 [92] *((byte*) render_current::screen_line#0 + (byte) render_current::xpos#2) ← (byte) current_piece_char#63 -- pbuz1_derefidx_vbuz2=vbuz3 lda current_piece_char_63 ldy xpos sta (screen_line),y jmp b5 - //SEG199 render_current::@5 + //SEG198 render_current::@5 b5: - //SEG200 [94] (byte) render_current::xpos#1 ← ++ (byte) render_current::xpos#2 -- vbuz1=_inc_vbuz1 + //SEG199 [93] (byte) render_current::xpos#1 ← ++ (byte) render_current::xpos#2 -- vbuz1=_inc_vbuz1 inc xpos - //SEG201 [95] (byte) render_current::c#1 ← ++ (byte) render_current::c#2 -- vbuz1=_inc_vbuz1 + //SEG200 [94] (byte) render_current::c#1 ← ++ (byte) render_current::c#2 -- vbuz1=_inc_vbuz1 inc c - //SEG202 [96] if((byte) render_current::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_current::@4 -- vbuz1_neq_vbuc1_then_la1 + //SEG201 [95] if((byte) render_current::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_current::@4 -- vbuz1_neq_vbuc1_then_la1 lda c cmp #4 bne b4_from_b5 jmp b3_from_b5 } -//SEG203 render_playfield +//SEG202 render_playfield render_playfield: { - .label _2 = $71 - .label _3 = $72 + .label _2 = $6f + .label _3 = $70 .label screen_line = $13 .label i = $12 .label c = $15 .label l = $11 - //SEG204 [98] phi from render_playfield to render_playfield::@1 [phi:render_playfield->render_playfield::@1] + //SEG203 [97] phi from render_playfield to render_playfield::@1 [phi:render_playfield->render_playfield::@1] b1_from_render_playfield: - //SEG205 [98] phi (byte) render_playfield::i#3 = (const byte) PLAYFIELD_COLS#0*(byte/signed byte/word/signed word/dword/signed dword) 2 [phi:render_playfield->render_playfield::@1#0] -- vbuz1=vbuc1 + //SEG204 [97] phi (byte) render_playfield::i#3 = (const byte) PLAYFIELD_COLS#0*(byte/signed byte/word/signed word/dword/signed dword) 2 [phi:render_playfield->render_playfield::@1#0] -- vbuz1=vbuc1 lda #PLAYFIELD_COLS*2 sta i - //SEG206 [98] phi (byte) render_playfield::l#2 = (byte/signed byte/word/signed word/dword/signed dword) 2 [phi:render_playfield->render_playfield::@1#1] -- vbuz1=vbuc1 + //SEG205 [97] phi (byte) render_playfield::l#2 = (byte/signed byte/word/signed word/dword/signed dword) 2 [phi:render_playfield->render_playfield::@1#1] -- vbuz1=vbuc1 lda #2 sta l jmp b1 - //SEG207 [98] phi from render_playfield::@3 to render_playfield::@1 [phi:render_playfield::@3->render_playfield::@1] + //SEG206 [97] phi from render_playfield::@3 to render_playfield::@1 [phi:render_playfield::@3->render_playfield::@1] b1_from_b3: - //SEG208 [98] phi (byte) render_playfield::i#3 = (byte) render_playfield::i#1 [phi:render_playfield::@3->render_playfield::@1#0] -- register_copy - //SEG209 [98] phi (byte) render_playfield::l#2 = (byte) render_playfield::l#1 [phi:render_playfield::@3->render_playfield::@1#1] -- register_copy + //SEG207 [97] phi (byte) render_playfield::i#3 = (byte) render_playfield::i#1 [phi:render_playfield::@3->render_playfield::@1#0] -- register_copy + //SEG208 [97] phi (byte) render_playfield::l#2 = (byte) render_playfield::l#1 [phi:render_playfield::@3->render_playfield::@1#1] -- register_copy jmp b1 - //SEG210 render_playfield::@1 + //SEG209 render_playfield::@1 b1: - //SEG211 [99] (byte~) render_playfield::$2 ← (byte) render_playfield::l#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_rol_1 + //SEG210 [98] (byte~) render_playfield::$2 ← (byte) render_playfield::l#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_rol_1 lda l asl sta _2 - //SEG212 [100] (byte~) render_playfield::$3 ← (byte) render_screen_render#19 + (byte~) render_playfield::$2 -- vbuz1=vbuz2_plus_vbuz3 + //SEG211 [99] (byte~) render_playfield::$3 ← (byte) render_screen_render#19 + (byte~) render_playfield::$2 -- vbuz1=vbuz2_plus_vbuz3 lda render_screen_render_19 clc adc _2 sta _3 - //SEG213 [101] (byte*) render_playfield::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) screen_lines_1#0 + (byte~) render_playfield::$3) -- pbuz1=pptc1_derefidx_vbuz2 + //SEG212 [100] (byte*) render_playfield::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) screen_lines_1#0 + (byte~) render_playfield::$3) -- pbuz1=pptc1_derefidx_vbuz2 ldy _3 lda screen_lines_1,y sta screen_line lda screen_lines_1+1,y sta screen_line+1 - //SEG214 [102] phi from render_playfield::@1 to render_playfield::@2 [phi:render_playfield::@1->render_playfield::@2] + //SEG213 [101] phi from render_playfield::@1 to render_playfield::@2 [phi:render_playfield::@1->render_playfield::@2] b2_from_b1: - //SEG215 [102] phi (byte) render_playfield::c#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_playfield::@1->render_playfield::@2#0] -- vbuz1=vbuc1 + //SEG214 [101] phi (byte) render_playfield::c#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_playfield::@1->render_playfield::@2#0] -- vbuz1=vbuc1 lda #0 sta c - //SEG216 [102] phi (byte*) render_playfield::screen_line#2 = (byte*) render_playfield::screen_line#0 [phi:render_playfield::@1->render_playfield::@2#1] -- register_copy - //SEG217 [102] phi (byte) render_playfield::i#2 = (byte) render_playfield::i#3 [phi:render_playfield::@1->render_playfield::@2#2] -- register_copy + //SEG215 [101] phi (byte*) render_playfield::screen_line#2 = (byte*) render_playfield::screen_line#0 [phi:render_playfield::@1->render_playfield::@2#1] -- register_copy + //SEG216 [101] phi (byte) render_playfield::i#2 = (byte) render_playfield::i#3 [phi:render_playfield::@1->render_playfield::@2#2] -- register_copy jmp b2 - //SEG218 [102] phi from render_playfield::@2 to render_playfield::@2 [phi:render_playfield::@2->render_playfield::@2] + //SEG217 [101] phi from render_playfield::@2 to render_playfield::@2 [phi:render_playfield::@2->render_playfield::@2] b2_from_b2: - //SEG219 [102] phi (byte) render_playfield::c#2 = (byte) render_playfield::c#1 [phi:render_playfield::@2->render_playfield::@2#0] -- register_copy - //SEG220 [102] phi (byte*) render_playfield::screen_line#2 = (byte*) render_playfield::screen_line#1 [phi:render_playfield::@2->render_playfield::@2#1] -- register_copy - //SEG221 [102] phi (byte) render_playfield::i#2 = (byte) render_playfield::i#1 [phi:render_playfield::@2->render_playfield::@2#2] -- register_copy + //SEG218 [101] phi (byte) render_playfield::c#2 = (byte) render_playfield::c#1 [phi:render_playfield::@2->render_playfield::@2#0] -- register_copy + //SEG219 [101] phi (byte*) render_playfield::screen_line#2 = (byte*) render_playfield::screen_line#1 [phi:render_playfield::@2->render_playfield::@2#1] -- register_copy + //SEG220 [101] phi (byte) render_playfield::i#2 = (byte) render_playfield::i#1 [phi:render_playfield::@2->render_playfield::@2#2] -- register_copy jmp b2 - //SEG222 render_playfield::@2 + //SEG221 render_playfield::@2 b2: - //SEG223 [103] *((byte*) render_playfield::screen_line#2) ← *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) render_playfield::i#2) -- _deref_pbuz1=pbuc1_derefidx_vbuz2 + //SEG222 [102] *((byte*) render_playfield::screen_line#2) ← *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) render_playfield::i#2) -- _deref_pbuz1=pbuc1_derefidx_vbuz2 ldy i lda playfield,y ldy #0 sta (screen_line),y - //SEG224 [104] (byte*) render_playfield::screen_line#1 ← ++ (byte*) render_playfield::screen_line#2 -- pbuz1=_inc_pbuz1 + //SEG223 [103] (byte*) render_playfield::screen_line#1 ← ++ (byte*) render_playfield::screen_line#2 -- pbuz1=_inc_pbuz1 inc screen_line bne !+ inc screen_line+1 !: - //SEG225 [105] (byte) render_playfield::i#1 ← ++ (byte) render_playfield::i#2 -- vbuz1=_inc_vbuz1 + //SEG224 [104] (byte) render_playfield::i#1 ← ++ (byte) render_playfield::i#2 -- vbuz1=_inc_vbuz1 inc i - //SEG226 [106] (byte) render_playfield::c#1 ← ++ (byte) render_playfield::c#2 -- vbuz1=_inc_vbuz1 + //SEG225 [105] (byte) render_playfield::c#1 ← ++ (byte) render_playfield::c#2 -- vbuz1=_inc_vbuz1 inc c - //SEG227 [107] if((byte) render_playfield::c#1!=(const byte) PLAYFIELD_COLS#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_playfield::@2 -- vbuz1_neq_vbuc1_then_la1 + //SEG226 [106] if((byte) render_playfield::c#1!=(const byte) PLAYFIELD_COLS#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_playfield::@2 -- vbuz1_neq_vbuc1_then_la1 lda c cmp #PLAYFIELD_COLS-1+1 bne b2_from_b2 jmp b3 - //SEG228 render_playfield::@3 + //SEG227 render_playfield::@3 b3: - //SEG229 [108] (byte) render_playfield::l#1 ← ++ (byte) render_playfield::l#2 -- vbuz1=_inc_vbuz1 + //SEG228 [107] (byte) render_playfield::l#1 ← ++ (byte) render_playfield::l#2 -- vbuz1=_inc_vbuz1 inc l - //SEG230 [109] if((byte) render_playfield::l#1!=(const byte) PLAYFIELD_LINES#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_playfield::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG229 [108] if((byte) render_playfield::l#1!=(const byte) PLAYFIELD_LINES#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_playfield::@1 -- vbuz1_neq_vbuc1_then_la1 lda l cmp #PLAYFIELD_LINES-1+1 bne b1_from_b3 jmp breturn - //SEG231 render_playfield::@return + //SEG230 render_playfield::@return breturn: - //SEG232 [110] return + //SEG231 [109] return rts } -//SEG233 play_move_rotate +//SEG232 play_move_rotate play_move_rotate: { - .label _2 = $73 - .label _4 = $76 - .label _6 = $75 + .label _2 = $71 + .label _4 = $74 + .label _6 = $73 .label orientation = $17 .label return = $16 - .label key_event = $69 - .label return_4 = $6a - //SEG234 [111] if((byte) play_move_rotate::key_event#0==(const byte) KEY_Z#0) goto play_move_rotate::@1 -- vbuz1_eq_vbuc1_then_la1 + .label key_event = $67 + .label return_4 = $68 + //SEG233 [110] if((byte) play_move_rotate::key_event#0==(const byte) KEY_Z#0) goto play_move_rotate::@1 -- vbuz1_eq_vbuc1_then_la1 lda key_event cmp #KEY_Z beq b1 jmp b6 - //SEG235 play_move_rotate::@6 + //SEG234 play_move_rotate::@6 b6: - //SEG236 [112] if((byte) play_move_rotate::key_event#0==(const byte) KEY_X#0) goto play_move_rotate::@2 -- vbuz1_eq_vbuc1_then_la1 + //SEG235 [111] if((byte) play_move_rotate::key_event#0==(const byte) KEY_X#0) goto play_move_rotate::@2 -- vbuz1_eq_vbuc1_then_la1 lda key_event cmp #KEY_X beq b2 - //SEG237 [113] phi from play_move_rotate::@14 play_move_rotate::@6 to play_move_rotate::@return [phi:play_move_rotate::@14/play_move_rotate::@6->play_move_rotate::@return] + //SEG236 [112] phi from play_move_rotate::@14 play_move_rotate::@6 to play_move_rotate::@return [phi:play_move_rotate::@14/play_move_rotate::@6->play_move_rotate::@return] breturn_from_b14: breturn_from_b6: - //SEG238 [113] phi (byte*) current_piece_gfx#14 = (byte*) current_piece_gfx#1 [phi:play_move_rotate::@14/play_move_rotate::@6->play_move_rotate::@return#0] -- register_copy - //SEG239 [113] phi (byte) current_orientation#19 = (byte) current_orientation#14 [phi:play_move_rotate::@14/play_move_rotate::@6->play_move_rotate::@return#1] -- register_copy - //SEG240 [113] phi (byte) play_move_rotate::return#1 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_rotate::@14/play_move_rotate::@6->play_move_rotate::@return#2] -- vbuz1=vbuc1 + //SEG237 [112] phi (byte*) current_piece_gfx#14 = (byte*) current_piece_gfx#1 [phi:play_move_rotate::@14/play_move_rotate::@6->play_move_rotate::@return#0] -- register_copy + //SEG238 [112] phi (byte) current_orientation#19 = (byte) current_orientation#14 [phi:play_move_rotate::@14/play_move_rotate::@6->play_move_rotate::@return#1] -- register_copy + //SEG239 [112] phi (byte) play_move_rotate::return#1 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_rotate::@14/play_move_rotate::@6->play_move_rotate::@return#2] -- vbuz1=vbuc1 lda #0 sta return jmp breturn - //SEG241 play_move_rotate::@return + //SEG240 play_move_rotate::@return breturn: - //SEG242 [114] return + //SEG241 [113] return rts - //SEG243 play_move_rotate::@2 + //SEG242 play_move_rotate::@2 b2: - //SEG244 [115] (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 ← (byte) current_orientation#14 + (byte/signed byte/word/signed word/dword/signed dword) 16 -- vbuz1=vbuz2_plus_vbuc1 + //SEG243 [114] (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 ← (byte) current_orientation#14 + (byte/signed byte/word/signed word/dword/signed dword) 16 -- vbuz1=vbuz2_plus_vbuc1 lda #$10 clc adc current_orientation sta _2 - //SEG245 [116] (byte) play_move_rotate::orientation#2 ← (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 & (byte/signed byte/word/signed word/dword/signed dword) 63 -- vbuz1=vbuz2_band_vbuc1 + //SEG244 [115] (byte) play_move_rotate::orientation#2 ← (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 & (byte/signed byte/word/signed word/dword/signed dword) 63 -- vbuz1=vbuz2_band_vbuc1 lda #$3f and _2 sta orientation - //SEG246 [117] phi from play_move_rotate::@1 play_move_rotate::@2 to play_move_rotate::@4 [phi:play_move_rotate::@1/play_move_rotate::@2->play_move_rotate::@4] + //SEG245 [116] phi from play_move_rotate::@1 play_move_rotate::@2 to play_move_rotate::@4 [phi:play_move_rotate::@1/play_move_rotate::@2->play_move_rotate::@4] b4_from_b1: b4_from_b2: - //SEG247 [117] phi (byte) play_move_rotate::orientation#3 = (byte) play_move_rotate::orientation#1 [phi:play_move_rotate::@1/play_move_rotate::@2->play_move_rotate::@4#0] -- register_copy + //SEG246 [116] phi (byte) play_move_rotate::orientation#3 = (byte) play_move_rotate::orientation#1 [phi:play_move_rotate::@1/play_move_rotate::@2->play_move_rotate::@4#0] -- register_copy jmp b4 - //SEG248 play_move_rotate::@4 + //SEG247 play_move_rotate::@4 b4: - //SEG249 [118] (byte) play_collision::xpos#3 ← (byte) current_xpos#19 -- vbuz1=vbuz2 + //SEG248 [117] (byte) play_collision::xpos#3 ← (byte) current_xpos#19 -- vbuz1=vbuz2 lda current_xpos sta play_collision.xpos - //SEG250 [119] (byte) play_collision::ypos#3 ← (byte) current_ypos#13 -- vbuz1=vbuz2 + //SEG249 [118] (byte) play_collision::ypos#3 ← (byte) current_ypos#13 -- vbuz1=vbuz2 lda current_ypos sta play_collision.ypos - //SEG251 [120] (byte) play_collision::orientation#3 ← (byte) play_move_rotate::orientation#3 -- vbuz1=vbuz2 + //SEG250 [119] (byte) play_collision::orientation#3 ← (byte) play_move_rotate::orientation#3 -- vbuz1=vbuz2 lda orientation sta play_collision.orientation - //SEG252 [121] (byte*~) current_piece#77 ← (byte*) current_piece#10 -- pbuz1=pbuz2 + //SEG251 [120] (byte*~) current_piece#77 ← (byte*) current_piece#10 -- pbuz1=pbuz2 lda current_piece sta current_piece_77 lda current_piece+1 sta current_piece_77+1 - //SEG253 [122] call play_collision - //SEG254 [130] phi from play_move_rotate::@4 to play_collision [phi:play_move_rotate::@4->play_collision] + //SEG252 [121] call play_collision + //SEG253 [129] phi from play_move_rotate::@4 to play_collision [phi:play_move_rotate::@4->play_collision] play_collision_from_b4: - //SEG255 [130] phi (byte) play_collision::xpos#5 = (byte) play_collision::xpos#3 [phi:play_move_rotate::@4->play_collision#0] -- register_copy - //SEG256 [130] phi (byte) play_collision::ypos#4 = (byte) play_collision::ypos#3 [phi:play_move_rotate::@4->play_collision#1] -- register_copy - //SEG257 [130] phi (byte) play_collision::orientation#4 = (byte) play_collision::orientation#3 [phi:play_move_rotate::@4->play_collision#2] -- register_copy - //SEG258 [130] phi (byte*) current_piece#12 = (byte*~) current_piece#77 [phi:play_move_rotate::@4->play_collision#3] -- register_copy + //SEG254 [129] phi (byte) play_collision::xpos#5 = (byte) play_collision::xpos#3 [phi:play_move_rotate::@4->play_collision#0] -- register_copy + //SEG255 [129] phi (byte) play_collision::ypos#4 = (byte) play_collision::ypos#3 [phi:play_move_rotate::@4->play_collision#1] -- register_copy + //SEG256 [129] phi (byte) play_collision::orientation#4 = (byte) play_collision::orientation#3 [phi:play_move_rotate::@4->play_collision#2] -- register_copy + //SEG257 [129] phi (byte*) current_piece#12 = (byte*~) current_piece#77 [phi:play_move_rotate::@4->play_collision#3] -- register_copy jsr play_collision - //SEG259 [123] (byte) play_collision::return#13 ← (byte) play_collision::return#14 -- vbuz1=vbuz2 + //SEG258 [122] (byte) play_collision::return#13 ← (byte) play_collision::return#14 -- vbuz1=vbuz2 lda play_collision.return_14 sta play_collision.return_13 jmp b14 - //SEG260 play_move_rotate::@14 + //SEG259 play_move_rotate::@14 b14: - //SEG261 [124] (byte~) play_move_rotate::$6 ← (byte) play_collision::return#13 -- vbuz1=vbuz2 + //SEG260 [123] (byte~) play_move_rotate::$6 ← (byte) play_collision::return#13 -- vbuz1=vbuz2 lda play_collision.return_13 sta _6 - //SEG262 [125] if((byte~) play_move_rotate::$6!=(const byte) COLLISION_NONE#0) goto play_move_rotate::@return -- vbuz1_neq_vbuc1_then_la1 + //SEG261 [124] if((byte~) play_move_rotate::$6!=(const byte) COLLISION_NONE#0) goto play_move_rotate::@return -- vbuz1_neq_vbuc1_then_la1 lda _6 cmp #COLLISION_NONE bne breturn_from_b14 jmp b11 - //SEG263 play_move_rotate::@11 + //SEG262 play_move_rotate::@11 b11: - //SEG264 [126] (byte) current_orientation#4 ← (byte) play_move_rotate::orientation#3 -- vbuz1=vbuz2 + //SEG263 [125] (byte) current_orientation#4 ← (byte) play_move_rotate::orientation#3 -- vbuz1=vbuz2 lda orientation sta current_orientation - //SEG265 [127] (byte*) current_piece_gfx#3 ← (byte*) current_piece#10 + (byte) current_orientation#4 -- pbuz1=pbuz2_plus_vbuz3 + //SEG264 [126] (byte*) current_piece_gfx#3 ← (byte*) current_piece#10 + (byte) current_orientation#4 -- pbuz1=pbuz2_plus_vbuz3 lda current_orientation clc adc current_piece @@ -9953,50 +9875,50 @@ play_move_rotate: { lda #0 adc current_piece+1 sta current_piece_gfx+1 - //SEG266 [113] phi from play_move_rotate::@11 to play_move_rotate::@return [phi:play_move_rotate::@11->play_move_rotate::@return] + //SEG265 [112] phi from play_move_rotate::@11 to play_move_rotate::@return [phi:play_move_rotate::@11->play_move_rotate::@return] breturn_from_b11: - //SEG267 [113] phi (byte*) current_piece_gfx#14 = (byte*) current_piece_gfx#3 [phi:play_move_rotate::@11->play_move_rotate::@return#0] -- register_copy - //SEG268 [113] phi (byte) current_orientation#19 = (byte) current_orientation#4 [phi:play_move_rotate::@11->play_move_rotate::@return#1] -- register_copy - //SEG269 [113] phi (byte) play_move_rotate::return#1 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_move_rotate::@11->play_move_rotate::@return#2] -- vbuz1=vbuc1 + //SEG266 [112] phi (byte*) current_piece_gfx#14 = (byte*) current_piece_gfx#3 [phi:play_move_rotate::@11->play_move_rotate::@return#0] -- register_copy + //SEG267 [112] phi (byte) current_orientation#19 = (byte) current_orientation#4 [phi:play_move_rotate::@11->play_move_rotate::@return#1] -- register_copy + //SEG268 [112] phi (byte) play_move_rotate::return#1 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_move_rotate::@11->play_move_rotate::@return#2] -- vbuz1=vbuc1 lda #1 sta return jmp breturn - //SEG270 play_move_rotate::@1 + //SEG269 play_move_rotate::@1 b1: - //SEG271 [128] (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 ← (byte) current_orientation#14 - (byte/signed byte/word/signed word/dword/signed dword) 16 -- vbuz1=vbuz2_minus_vbuc1 + //SEG270 [127] (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 ← (byte) current_orientation#14 - (byte/signed byte/word/signed word/dword/signed dword) 16 -- vbuz1=vbuz2_minus_vbuc1 lda current_orientation sec sbc #$10 sta _4 - //SEG272 [129] (byte) play_move_rotate::orientation#1 ← (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 & (byte/signed byte/word/signed word/dword/signed dword) 63 -- vbuz1=vbuz2_band_vbuc1 + //SEG271 [128] (byte) play_move_rotate::orientation#1 ← (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 & (byte/signed byte/word/signed word/dword/signed dword) 63 -- vbuz1=vbuz2_band_vbuc1 lda #$3f and _4 sta orientation jmp b4_from_b1 } -//SEG273 play_collision +//SEG272 play_collision play_collision: { - .label _7 = $7c + .label _7 = $7a .label xpos = $1c .label ypos = $1b .label orientation = $1a - .label return = $83 - .label return_1 = $7f - .label piece_gfx = $77 + .label return = $81 + .label return_1 = $7d + .label piece_gfx = $75 .label ypos2 = $1d - .label playfield_line = $79 - .label i = $7b + .label playfield_line = $77 + .label i = $79 .label col = $20 .label c = $21 .label l = $1e - .label return_12 = $7d - .label return_13 = $74 + .label return_12 = $7b + .label return_13 = $72 .label i_2 = $1f .label return_14 = $22 .label i_3 = $1f .label i_11 = $1f .label i_13 = $1f - //SEG274 [131] (byte*) play_collision::piece_gfx#0 ← (byte*) current_piece#12 + (byte) play_collision::orientation#4 -- pbuz1=pbuz2_plus_vbuz3 + //SEG273 [130] (byte*) play_collision::piece_gfx#0 ← (byte*) current_piece#12 + (byte) play_collision::orientation#4 -- pbuz1=pbuz2_plus_vbuz3 lda orientation clc adc current_piece_12 @@ -10004,1345 +9926,1345 @@ play_collision: { lda #0 adc current_piece_12+1 sta piece_gfx+1 - //SEG275 [132] (byte) play_collision::ypos2#0 ← (byte) play_collision::ypos#4 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_rol_1 + //SEG274 [131] (byte) play_collision::ypos2#0 ← (byte) play_collision::ypos#4 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_rol_1 lda ypos asl sta ypos2 - //SEG276 [133] phi from play_collision to play_collision::@1 [phi:play_collision->play_collision::@1] + //SEG275 [132] phi from play_collision to play_collision::@1 [phi:play_collision->play_collision::@1] b1_from_play_collision: - //SEG277 [133] phi (byte) play_collision::l#6 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_collision->play_collision::@1#0] -- vbuz1=vbuc1 + //SEG276 [132] phi (byte) play_collision::l#6 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_collision->play_collision::@1#0] -- vbuz1=vbuc1 lda #0 sta l - //SEG278 [133] phi (byte) play_collision::i#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_collision->play_collision::@1#1] -- vbuz1=vbuc1 + //SEG277 [132] phi (byte) play_collision::i#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_collision->play_collision::@1#1] -- vbuz1=vbuc1 lda #0 sta i_3 - //SEG279 [133] phi (byte) play_collision::ypos2#2 = (byte) play_collision::ypos2#0 [phi:play_collision->play_collision::@1#2] -- register_copy + //SEG278 [132] phi (byte) play_collision::ypos2#2 = (byte) play_collision::ypos2#0 [phi:play_collision->play_collision::@1#2] -- register_copy jmp b1 - //SEG280 play_collision::@1 + //SEG279 play_collision::@1 b1: - //SEG281 [134] (byte*) play_collision::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) play_collision::ypos2#2) -- pbuz1=pptc1_derefidx_vbuz2 + //SEG280 [133] (byte*) play_collision::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) play_collision::ypos2#2) -- pbuz1=pptc1_derefidx_vbuz2 ldy ypos2 lda playfield_lines,y sta playfield_line lda playfield_lines+1,y sta playfield_line+1 - //SEG282 [135] (byte~) play_collision::col#9 ← (byte) play_collision::xpos#5 -- vbuz1=vbuz2 + //SEG281 [134] (byte~) play_collision::col#9 ← (byte) play_collision::xpos#5 -- vbuz1=vbuz2 lda xpos sta col - //SEG283 [136] phi from play_collision::@1 to play_collision::@2 [phi:play_collision::@1->play_collision::@2] + //SEG282 [135] phi from play_collision::@1 to play_collision::@2 [phi:play_collision::@1->play_collision::@2] b2_from_b1: - //SEG284 [136] phi (byte) play_collision::c#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_collision::@1->play_collision::@2#0] -- vbuz1=vbuc1 + //SEG283 [135] phi (byte) play_collision::c#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_collision::@1->play_collision::@2#0] -- vbuz1=vbuc1 lda #0 sta c - //SEG285 [136] phi (byte) play_collision::col#2 = (byte~) play_collision::col#9 [phi:play_collision::@1->play_collision::@2#1] -- register_copy - //SEG286 [136] phi (byte) play_collision::i#2 = (byte) play_collision::i#3 [phi:play_collision::@1->play_collision::@2#2] -- register_copy + //SEG284 [135] phi (byte) play_collision::col#2 = (byte~) play_collision::col#9 [phi:play_collision::@1->play_collision::@2#1] -- register_copy + //SEG285 [135] phi (byte) play_collision::i#2 = (byte) play_collision::i#3 [phi:play_collision::@1->play_collision::@2#2] -- register_copy jmp b2 - //SEG287 play_collision::@2 + //SEG286 play_collision::@2 b2: - //SEG288 [137] (byte) play_collision::i#1 ← ++ (byte) play_collision::i#2 -- vbuz1=_inc_vbuz2 + //SEG287 [136] (byte) play_collision::i#1 ← ++ (byte) play_collision::i#2 -- vbuz1=_inc_vbuz2 ldy i_2 iny sty i - //SEG289 [138] if(*((byte*) play_collision::piece_gfx#0 + (byte) play_collision::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_collision::@3 -- pbuz1_derefidx_vbuz2_eq_0_then_la1 + //SEG288 [137] if(*((byte*) play_collision::piece_gfx#0 + (byte) play_collision::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_collision::@3 -- pbuz1_derefidx_vbuz2_eq_0_then_la1 ldy i_2 lda (piece_gfx),y cmp #0 beq b3 jmp b8 - //SEG290 play_collision::@8 + //SEG289 play_collision::@8 b8: - //SEG291 [139] if((byte) play_collision::ypos2#2<(byte/signed byte/word/signed word/dword/signed dword) 2*(const byte) PLAYFIELD_LINES#0) goto play_collision::@4 -- vbuz1_lt_vbuc1_then_la1 + //SEG290 [138] if((byte) play_collision::ypos2#2<(byte/signed byte/word/signed word/dword/signed dword) 2*(const byte) PLAYFIELD_LINES#0) goto play_collision::@4 -- vbuz1_lt_vbuc1_then_la1 lda ypos2 cmp #2*PLAYFIELD_LINES bcc b4 - //SEG292 [140] phi from play_collision::@8 to play_collision::@return [phi:play_collision::@8->play_collision::@return] + //SEG291 [139] phi from play_collision::@8 to play_collision::@return [phi:play_collision::@8->play_collision::@return] breturn_from_b8: - //SEG293 [140] phi (byte) play_collision::return#14 = (const byte) COLLISION_BOTTOM#0 [phi:play_collision::@8->play_collision::@return#0] -- vbuz1=vbuc1 + //SEG292 [139] phi (byte) play_collision::return#14 = (const byte) COLLISION_BOTTOM#0 [phi:play_collision::@8->play_collision::@return#0] -- vbuz1=vbuc1 lda #COLLISION_BOTTOM sta return_14 jmp breturn - //SEG294 play_collision::@return + //SEG293 play_collision::@return breturn: - //SEG295 [141] return + //SEG294 [140] return rts - //SEG296 play_collision::@4 + //SEG295 play_collision::@4 b4: - //SEG297 [142] (byte~) play_collision::$7 ← (byte) play_collision::col#2 & (byte/word/signed word/dword/signed dword) 128 -- vbuz1=vbuz2_band_vbuc1 + //SEG296 [141] (byte~) play_collision::$7 ← (byte) play_collision::col#2 & (byte/word/signed word/dword/signed dword) 128 -- vbuz1=vbuz2_band_vbuc1 lda #$80 and col sta _7 - //SEG298 [143] if((byte~) play_collision::$7==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_collision::@5 -- vbuz1_eq_0_then_la1 + //SEG297 [142] if((byte~) play_collision::$7==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_collision::@5 -- vbuz1_eq_0_then_la1 lda _7 cmp #0 beq b5 - //SEG299 [140] phi from play_collision::@4 to play_collision::@return [phi:play_collision::@4->play_collision::@return] + //SEG298 [139] phi from play_collision::@4 to play_collision::@return [phi:play_collision::@4->play_collision::@return] breturn_from_b4: - //SEG300 [140] phi (byte) play_collision::return#14 = (const byte) COLLISION_LEFT#0 [phi:play_collision::@4->play_collision::@return#0] -- vbuz1=vbuc1 + //SEG299 [139] phi (byte) play_collision::return#14 = (const byte) COLLISION_LEFT#0 [phi:play_collision::@4->play_collision::@return#0] -- vbuz1=vbuc1 lda #COLLISION_LEFT sta return_14 jmp breturn - //SEG301 play_collision::@5 + //SEG300 play_collision::@5 b5: - //SEG302 [144] if((byte) play_collision::col#2<(const byte) PLAYFIELD_COLS#0) goto play_collision::@6 -- vbuz1_lt_vbuc1_then_la1 + //SEG301 [143] if((byte) play_collision::col#2<(const byte) PLAYFIELD_COLS#0) goto play_collision::@6 -- vbuz1_lt_vbuc1_then_la1 lda col cmp #PLAYFIELD_COLS bcc b6 - //SEG303 [140] phi from play_collision::@5 to play_collision::@return [phi:play_collision::@5->play_collision::@return] + //SEG302 [139] phi from play_collision::@5 to play_collision::@return [phi:play_collision::@5->play_collision::@return] breturn_from_b5: - //SEG304 [140] phi (byte) play_collision::return#14 = (const byte) COLLISION_RIGHT#0 [phi:play_collision::@5->play_collision::@return#0] -- vbuz1=vbuc1 + //SEG303 [139] phi (byte) play_collision::return#14 = (const byte) COLLISION_RIGHT#0 [phi:play_collision::@5->play_collision::@return#0] -- vbuz1=vbuc1 lda #COLLISION_RIGHT sta return_14 jmp breturn - //SEG305 play_collision::@6 + //SEG304 play_collision::@6 b6: - //SEG306 [145] if(*((byte*) play_collision::playfield_line#0 + (byte) play_collision::col#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_collision::@3 -- pbuz1_derefidx_vbuz2_eq_0_then_la1 + //SEG305 [144] if(*((byte*) play_collision::playfield_line#0 + (byte) play_collision::col#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_collision::@3 -- pbuz1_derefidx_vbuz2_eq_0_then_la1 ldy col lda (playfield_line),y cmp #0 beq b3 - //SEG307 [140] phi from play_collision::@6 to play_collision::@return [phi:play_collision::@6->play_collision::@return] + //SEG306 [139] phi from play_collision::@6 to play_collision::@return [phi:play_collision::@6->play_collision::@return] breturn_from_b6: - //SEG308 [140] phi (byte) play_collision::return#14 = (const byte) COLLISION_PLAYFIELD#0 [phi:play_collision::@6->play_collision::@return#0] -- vbuz1=vbuc1 + //SEG307 [139] phi (byte) play_collision::return#14 = (const byte) COLLISION_PLAYFIELD#0 [phi:play_collision::@6->play_collision::@return#0] -- vbuz1=vbuc1 lda #COLLISION_PLAYFIELD sta return_14 jmp breturn - //SEG309 play_collision::@3 + //SEG308 play_collision::@3 b3: - //SEG310 [146] (byte) play_collision::col#1 ← ++ (byte) play_collision::col#2 -- vbuz1=_inc_vbuz1 + //SEG309 [145] (byte) play_collision::col#1 ← ++ (byte) play_collision::col#2 -- vbuz1=_inc_vbuz1 inc col - //SEG311 [147] (byte) play_collision::c#1 ← ++ (byte) play_collision::c#2 -- vbuz1=_inc_vbuz1 + //SEG310 [146] (byte) play_collision::c#1 ← ++ (byte) play_collision::c#2 -- vbuz1=_inc_vbuz1 inc c - //SEG312 [148] if((byte) play_collision::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto play_collision::@21 -- vbuz1_neq_vbuc1_then_la1 + //SEG311 [147] if((byte) play_collision::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto play_collision::@21 -- vbuz1_neq_vbuc1_then_la1 lda c cmp #4 bne b21 jmp b17 - //SEG313 play_collision::@17 + //SEG312 play_collision::@17 b17: - //SEG314 [149] (byte) play_collision::ypos2#1 ← (byte) play_collision::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 -- vbuz1=vbuz1_plus_2 + //SEG313 [148] (byte) play_collision::ypos2#1 ← (byte) play_collision::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 -- vbuz1=vbuz1_plus_2 lda ypos2 clc adc #2 sta ypos2 - //SEG315 [150] (byte) play_collision::l#1 ← ++ (byte) play_collision::l#6 -- vbuz1=_inc_vbuz1 + //SEG314 [149] (byte) play_collision::l#1 ← ++ (byte) play_collision::l#6 -- vbuz1=_inc_vbuz1 inc l - //SEG316 [151] if((byte) play_collision::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto play_collision::@20 -- vbuz1_neq_vbuc1_then_la1 + //SEG315 [150] if((byte) play_collision::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto play_collision::@20 -- vbuz1_neq_vbuc1_then_la1 lda l cmp #4 bne b20 - //SEG317 [140] phi from play_collision::@17 to play_collision::@return [phi:play_collision::@17->play_collision::@return] + //SEG316 [139] phi from play_collision::@17 to play_collision::@return [phi:play_collision::@17->play_collision::@return] breturn_from_b17: - //SEG318 [140] phi (byte) play_collision::return#14 = (const byte) COLLISION_NONE#0 [phi:play_collision::@17->play_collision::@return#0] -- vbuz1=vbuc1 + //SEG317 [139] phi (byte) play_collision::return#14 = (const byte) COLLISION_NONE#0 [phi:play_collision::@17->play_collision::@return#0] -- vbuz1=vbuc1 lda #COLLISION_NONE sta return_14 jmp breturn - //SEG319 play_collision::@20 + //SEG318 play_collision::@20 b20: - //SEG320 [152] (byte~) play_collision::i#11 ← (byte) play_collision::i#1 -- vbuz1=vbuz2 + //SEG319 [151] (byte~) play_collision::i#11 ← (byte) play_collision::i#1 -- vbuz1=vbuz2 lda i sta i_11 - //SEG321 [133] phi from play_collision::@20 to play_collision::@1 [phi:play_collision::@20->play_collision::@1] + //SEG320 [132] phi from play_collision::@20 to play_collision::@1 [phi:play_collision::@20->play_collision::@1] b1_from_b20: - //SEG322 [133] phi (byte) play_collision::l#6 = (byte) play_collision::l#1 [phi:play_collision::@20->play_collision::@1#0] -- register_copy - //SEG323 [133] phi (byte) play_collision::i#3 = (byte~) play_collision::i#11 [phi:play_collision::@20->play_collision::@1#1] -- register_copy - //SEG324 [133] phi (byte) play_collision::ypos2#2 = (byte) play_collision::ypos2#1 [phi:play_collision::@20->play_collision::@1#2] -- register_copy + //SEG321 [132] phi (byte) play_collision::l#6 = (byte) play_collision::l#1 [phi:play_collision::@20->play_collision::@1#0] -- register_copy + //SEG322 [132] phi (byte) play_collision::i#3 = (byte~) play_collision::i#11 [phi:play_collision::@20->play_collision::@1#1] -- register_copy + //SEG323 [132] phi (byte) play_collision::ypos2#2 = (byte) play_collision::ypos2#1 [phi:play_collision::@20->play_collision::@1#2] -- register_copy jmp b1 - //SEG325 play_collision::@21 + //SEG324 play_collision::@21 b21: - //SEG326 [153] (byte~) play_collision::i#13 ← (byte) play_collision::i#1 -- vbuz1=vbuz2 + //SEG325 [152] (byte~) play_collision::i#13 ← (byte) play_collision::i#1 -- vbuz1=vbuz2 lda i sta i_13 - //SEG327 [136] phi from play_collision::@21 to play_collision::@2 [phi:play_collision::@21->play_collision::@2] + //SEG326 [135] phi from play_collision::@21 to play_collision::@2 [phi:play_collision::@21->play_collision::@2] b2_from_b21: - //SEG328 [136] phi (byte) play_collision::c#2 = (byte) play_collision::c#1 [phi:play_collision::@21->play_collision::@2#0] -- register_copy - //SEG329 [136] phi (byte) play_collision::col#2 = (byte) play_collision::col#1 [phi:play_collision::@21->play_collision::@2#1] -- register_copy - //SEG330 [136] phi (byte) play_collision::i#2 = (byte~) play_collision::i#13 [phi:play_collision::@21->play_collision::@2#2] -- register_copy + //SEG327 [135] phi (byte) play_collision::c#2 = (byte) play_collision::c#1 [phi:play_collision::@21->play_collision::@2#0] -- register_copy + //SEG328 [135] phi (byte) play_collision::col#2 = (byte) play_collision::col#1 [phi:play_collision::@21->play_collision::@2#1] -- register_copy + //SEG329 [135] phi (byte) play_collision::i#2 = (byte~) play_collision::i#13 [phi:play_collision::@21->play_collision::@2#2] -- register_copy jmp b2 } -//SEG331 play_move_leftright +//SEG330 play_move_leftright play_move_leftright: { - .label _4 = $7e - .label _8 = $80 + .label _4 = $7c + .label _8 = $7e .label return = $23 - .label key_event = $65 - .label return_4 = $66 - //SEG332 [154] if((byte) play_move_leftright::key_event#0==(const byte) KEY_COMMA#0) goto play_move_leftright::@1 -- vbuz1_eq_vbuc1_then_la1 + .label key_event = $63 + .label return_4 = $64 + //SEG331 [153] if((byte) play_move_leftright::key_event#0==(const byte) KEY_COMMA#0) goto play_move_leftright::@1 -- vbuz1_eq_vbuc1_then_la1 lda key_event cmp #KEY_COMMA beq b1 jmp b6 - //SEG333 play_move_leftright::@6 + //SEG332 play_move_leftright::@6 b6: - //SEG334 [155] if((byte) play_move_leftright::key_event#0!=(const byte) KEY_DOT#0) goto play_move_leftright::@return -- vbuz1_neq_vbuc1_then_la1 + //SEG333 [154] if((byte) play_move_leftright::key_event#0!=(const byte) KEY_DOT#0) goto play_move_leftright::@return -- vbuz1_neq_vbuc1_then_la1 lda key_event cmp #KEY_DOT bne breturn_from_b6 jmp b7 - //SEG335 play_move_leftright::@7 + //SEG334 play_move_leftright::@7 b7: - //SEG336 [156] (byte) play_collision::xpos#2 ← (byte) current_xpos#1 + (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_plus_1 + //SEG335 [155] (byte) play_collision::xpos#2 ← (byte) current_xpos#1 + (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_plus_1 ldy current_xpos iny sty play_collision.xpos - //SEG337 [157] (byte) play_collision::ypos#2 ← (byte) current_ypos#13 -- vbuz1=vbuz2 + //SEG336 [156] (byte) play_collision::ypos#2 ← (byte) current_ypos#13 -- vbuz1=vbuz2 lda current_ypos sta play_collision.ypos - //SEG338 [158] (byte) play_collision::orientation#2 ← (byte) current_orientation#14 -- vbuz1=vbuz2 + //SEG337 [157] (byte) play_collision::orientation#2 ← (byte) current_orientation#14 -- vbuz1=vbuz2 lda current_orientation sta play_collision.orientation - //SEG339 [159] (byte*~) current_piece#76 ← (byte*) current_piece#10 -- pbuz1=pbuz2 + //SEG338 [158] (byte*~) current_piece#76 ← (byte*) current_piece#10 -- pbuz1=pbuz2 lda current_piece sta current_piece_76 lda current_piece+1 sta current_piece_76+1 - //SEG340 [160] call play_collision - //SEG341 [130] phi from play_move_leftright::@7 to play_collision [phi:play_move_leftright::@7->play_collision] + //SEG339 [159] call play_collision + //SEG340 [129] phi from play_move_leftright::@7 to play_collision [phi:play_move_leftright::@7->play_collision] play_collision_from_b7: - //SEG342 [130] phi (byte) play_collision::xpos#5 = (byte) play_collision::xpos#2 [phi:play_move_leftright::@7->play_collision#0] -- register_copy - //SEG343 [130] phi (byte) play_collision::ypos#4 = (byte) play_collision::ypos#2 [phi:play_move_leftright::@7->play_collision#1] -- register_copy - //SEG344 [130] phi (byte) play_collision::orientation#4 = (byte) play_collision::orientation#2 [phi:play_move_leftright::@7->play_collision#2] -- register_copy - //SEG345 [130] phi (byte*) current_piece#12 = (byte*~) current_piece#76 [phi:play_move_leftright::@7->play_collision#3] -- register_copy + //SEG341 [129] phi (byte) play_collision::xpos#5 = (byte) play_collision::xpos#2 [phi:play_move_leftright::@7->play_collision#0] -- register_copy + //SEG342 [129] phi (byte) play_collision::ypos#4 = (byte) play_collision::ypos#2 [phi:play_move_leftright::@7->play_collision#1] -- register_copy + //SEG343 [129] phi (byte) play_collision::orientation#4 = (byte) play_collision::orientation#2 [phi:play_move_leftright::@7->play_collision#2] -- register_copy + //SEG344 [129] phi (byte*) current_piece#12 = (byte*~) current_piece#76 [phi:play_move_leftright::@7->play_collision#3] -- register_copy jsr play_collision - //SEG346 [161] (byte) play_collision::return#12 ← (byte) play_collision::return#14 -- vbuz1=vbuz2 + //SEG345 [160] (byte) play_collision::return#12 ← (byte) play_collision::return#14 -- vbuz1=vbuz2 lda play_collision.return_14 sta play_collision.return_12 jmp b15 - //SEG347 play_move_leftright::@15 + //SEG346 play_move_leftright::@15 b15: - //SEG348 [162] (byte~) play_move_leftright::$4 ← (byte) play_collision::return#12 -- vbuz1=vbuz2 + //SEG347 [161] (byte~) play_move_leftright::$4 ← (byte) play_collision::return#12 -- vbuz1=vbuz2 lda play_collision.return_12 sta _4 - //SEG349 [163] if((byte~) play_move_leftright::$4!=(const byte) COLLISION_NONE#0) goto play_move_leftright::@return -- vbuz1_neq_vbuc1_then_la1 + //SEG348 [162] if((byte~) play_move_leftright::$4!=(const byte) COLLISION_NONE#0) goto play_move_leftright::@return -- vbuz1_neq_vbuc1_then_la1 lda _4 cmp #COLLISION_NONE bne breturn_from_b15 jmp b8 - //SEG350 play_move_leftright::@8 + //SEG349 play_move_leftright::@8 b8: - //SEG351 [164] (byte) current_xpos#2 ← ++ (byte) current_xpos#1 -- vbuz1=_inc_vbuz1 + //SEG350 [163] (byte) current_xpos#2 ← ++ (byte) current_xpos#1 -- vbuz1=_inc_vbuz1 inc current_xpos - //SEG352 [165] phi from play_move_leftright::@11 play_move_leftright::@8 to play_move_leftright::@return [phi:play_move_leftright::@11/play_move_leftright::@8->play_move_leftright::@return] + //SEG351 [164] phi from play_move_leftright::@11 play_move_leftright::@8 to play_move_leftright::@return [phi:play_move_leftright::@11/play_move_leftright::@8->play_move_leftright::@return] breturn_from_b11: breturn_from_b8: - //SEG353 [165] phi (byte) current_xpos#19 = (byte) current_xpos#4 [phi:play_move_leftright::@11/play_move_leftright::@8->play_move_leftright::@return#0] -- register_copy - //SEG354 [165] phi (byte) play_move_leftright::return#1 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_move_leftright::@11/play_move_leftright::@8->play_move_leftright::@return#1] -- vbuz1=vbuc1 + //SEG352 [164] phi (byte) current_xpos#19 = (byte) current_xpos#4 [phi:play_move_leftright::@11/play_move_leftright::@8->play_move_leftright::@return#0] -- register_copy + //SEG353 [164] phi (byte) play_move_leftright::return#1 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_move_leftright::@11/play_move_leftright::@8->play_move_leftright::@return#1] -- vbuz1=vbuc1 lda #1 sta return jmp breturn - //SEG355 [165] phi from play_move_leftright::@14 play_move_leftright::@15 play_move_leftright::@6 to play_move_leftright::@return [phi:play_move_leftright::@14/play_move_leftright::@15/play_move_leftright::@6->play_move_leftright::@return] + //SEG354 [164] phi from play_move_leftright::@14 play_move_leftright::@15 play_move_leftright::@6 to play_move_leftright::@return [phi:play_move_leftright::@14/play_move_leftright::@15/play_move_leftright::@6->play_move_leftright::@return] breturn_from_b14: breturn_from_b15: breturn_from_b6: - //SEG356 [165] phi (byte) current_xpos#19 = (byte) current_xpos#1 [phi:play_move_leftright::@14/play_move_leftright::@15/play_move_leftright::@6->play_move_leftright::@return#0] -- register_copy - //SEG357 [165] phi (byte) play_move_leftright::return#1 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_leftright::@14/play_move_leftright::@15/play_move_leftright::@6->play_move_leftright::@return#1] -- vbuz1=vbuc1 + //SEG355 [164] phi (byte) current_xpos#19 = (byte) current_xpos#1 [phi:play_move_leftright::@14/play_move_leftright::@15/play_move_leftright::@6->play_move_leftright::@return#0] -- register_copy + //SEG356 [164] phi (byte) play_move_leftright::return#1 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_leftright::@14/play_move_leftright::@15/play_move_leftright::@6->play_move_leftright::@return#1] -- vbuz1=vbuc1 lda #0 sta return jmp breturn - //SEG358 play_move_leftright::@return + //SEG357 play_move_leftright::@return breturn: - //SEG359 [166] return + //SEG358 [165] return rts - //SEG360 play_move_leftright::@1 + //SEG359 play_move_leftright::@1 b1: - //SEG361 [167] (byte) play_collision::xpos#1 ← (byte) current_xpos#1 - (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_minus_1 + //SEG360 [166] (byte) play_collision::xpos#1 ← (byte) current_xpos#1 - (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_minus_1 ldx current_xpos dex stx play_collision.xpos - //SEG362 [168] (byte) play_collision::ypos#1 ← (byte) current_ypos#13 -- vbuz1=vbuz2 + //SEG361 [167] (byte) play_collision::ypos#1 ← (byte) current_ypos#13 -- vbuz1=vbuz2 lda current_ypos sta play_collision.ypos - //SEG363 [169] (byte) play_collision::orientation#1 ← (byte) current_orientation#14 -- vbuz1=vbuz2 + //SEG362 [168] (byte) play_collision::orientation#1 ← (byte) current_orientation#14 -- vbuz1=vbuz2 lda current_orientation sta play_collision.orientation - //SEG364 [170] (byte*~) current_piece#75 ← (byte*) current_piece#10 -- pbuz1=pbuz2 + //SEG363 [169] (byte*~) current_piece#75 ← (byte*) current_piece#10 -- pbuz1=pbuz2 lda current_piece sta current_piece_75 lda current_piece+1 sta current_piece_75+1 - //SEG365 [171] call play_collision - //SEG366 [130] phi from play_move_leftright::@1 to play_collision [phi:play_move_leftright::@1->play_collision] + //SEG364 [170] call play_collision + //SEG365 [129] phi from play_move_leftright::@1 to play_collision [phi:play_move_leftright::@1->play_collision] play_collision_from_b1: - //SEG367 [130] phi (byte) play_collision::xpos#5 = (byte) play_collision::xpos#1 [phi:play_move_leftright::@1->play_collision#0] -- register_copy - //SEG368 [130] phi (byte) play_collision::ypos#4 = (byte) play_collision::ypos#1 [phi:play_move_leftright::@1->play_collision#1] -- register_copy - //SEG369 [130] phi (byte) play_collision::orientation#4 = (byte) play_collision::orientation#1 [phi:play_move_leftright::@1->play_collision#2] -- register_copy - //SEG370 [130] phi (byte*) current_piece#12 = (byte*~) current_piece#75 [phi:play_move_leftright::@1->play_collision#3] -- register_copy + //SEG366 [129] phi (byte) play_collision::xpos#5 = (byte) play_collision::xpos#1 [phi:play_move_leftright::@1->play_collision#0] -- register_copy + //SEG367 [129] phi (byte) play_collision::ypos#4 = (byte) play_collision::ypos#1 [phi:play_move_leftright::@1->play_collision#1] -- register_copy + //SEG368 [129] phi (byte) play_collision::orientation#4 = (byte) play_collision::orientation#1 [phi:play_move_leftright::@1->play_collision#2] -- register_copy + //SEG369 [129] phi (byte*) current_piece#12 = (byte*~) current_piece#75 [phi:play_move_leftright::@1->play_collision#3] -- register_copy jsr play_collision - //SEG371 [172] (byte) play_collision::return#1 ← (byte) play_collision::return#14 -- vbuz1=vbuz2 + //SEG370 [171] (byte) play_collision::return#1 ← (byte) play_collision::return#14 -- vbuz1=vbuz2 lda play_collision.return_14 sta play_collision.return_1 jmp b14 - //SEG372 play_move_leftright::@14 + //SEG371 play_move_leftright::@14 b14: - //SEG373 [173] (byte~) play_move_leftright::$8 ← (byte) play_collision::return#1 -- vbuz1=vbuz2 + //SEG372 [172] (byte~) play_move_leftright::$8 ← (byte) play_collision::return#1 -- vbuz1=vbuz2 lda play_collision.return_1 sta _8 - //SEG374 [174] if((byte~) play_move_leftright::$8!=(const byte) COLLISION_NONE#0) goto play_move_leftright::@return -- vbuz1_neq_vbuc1_then_la1 + //SEG373 [173] if((byte~) play_move_leftright::$8!=(const byte) COLLISION_NONE#0) goto play_move_leftright::@return -- vbuz1_neq_vbuc1_then_la1 lda _8 cmp #COLLISION_NONE bne breturn_from_b14 jmp b11 - //SEG375 play_move_leftright::@11 + //SEG374 play_move_leftright::@11 b11: - //SEG376 [175] (byte) current_xpos#4 ← -- (byte) current_xpos#1 -- vbuz1=_dec_vbuz1 + //SEG375 [174] (byte) current_xpos#4 ← -- (byte) current_xpos#1 -- vbuz1=_dec_vbuz1 dec current_xpos jmp breturn_from_b11 } -//SEG377 play_move_down +//SEG376 play_move_down play_move_down: { - .label _2 = $82 - .label _12 = $84 + .label _2 = $80 + .label _12 = $82 .label movedown = $24 .label return = $2d - .label key_event = $61 - .label return_3 = $62 - //SEG378 [176] (byte) current_movedown_counter#1 ← ++ (byte) current_movedown_counter#12 -- vbuz1=_inc_vbuz1 + .label key_event = $5f + .label return_3 = $60 + //SEG377 [175] (byte) current_movedown_counter#1 ← ++ (byte) current_movedown_counter#12 -- vbuz1=_inc_vbuz1 inc current_movedown_counter - //SEG379 [177] if((byte) play_move_down::key_event#0!=(const byte) KEY_SPACE#0) goto play_move_down::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG378 [176] if((byte) play_move_down::key_event#0!=(const byte) KEY_SPACE#0) goto play_move_down::@1 -- vbuz1_neq_vbuc1_then_la1 lda key_event cmp #KEY_SPACE bne b1_from_play_move_down - //SEG380 [178] phi from play_move_down to play_move_down::@8 [phi:play_move_down->play_move_down::@8] + //SEG379 [177] phi from play_move_down to play_move_down::@8 [phi:play_move_down->play_move_down::@8] b8_from_play_move_down: jmp b8 - //SEG381 play_move_down::@8 + //SEG380 play_move_down::@8 b8: - //SEG382 [179] phi from play_move_down::@8 to play_move_down::@1 [phi:play_move_down::@8->play_move_down::@1] + //SEG381 [178] phi from play_move_down::@8 to play_move_down::@1 [phi:play_move_down::@8->play_move_down::@1] b1_from_b8: - //SEG383 [179] phi (byte) play_move_down::movedown#10 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_move_down::@8->play_move_down::@1#0] -- vbuz1=vbuc1 + //SEG382 [178] phi (byte) play_move_down::movedown#10 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_move_down::@8->play_move_down::@1#0] -- vbuz1=vbuc1 lda #1 sta movedown jmp b1 - //SEG384 [179] phi from play_move_down to play_move_down::@1 [phi:play_move_down->play_move_down::@1] + //SEG383 [178] phi from play_move_down to play_move_down::@1 [phi:play_move_down->play_move_down::@1] b1_from_play_move_down: - //SEG385 [179] phi (byte) play_move_down::movedown#10 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_down->play_move_down::@1#0] -- vbuz1=vbuc1 + //SEG384 [178] phi (byte) play_move_down::movedown#10 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_down->play_move_down::@1#0] -- vbuz1=vbuc1 lda #0 sta movedown jmp b1 - //SEG386 play_move_down::@1 + //SEG385 play_move_down::@1 b1: - //SEG387 [180] call keyboard_event_pressed - //SEG388 [265] phi from play_move_down::@1 to keyboard_event_pressed [phi:play_move_down::@1->keyboard_event_pressed] + //SEG386 [179] call keyboard_event_pressed + //SEG387 [264] phi from play_move_down::@1 to keyboard_event_pressed [phi:play_move_down::@1->keyboard_event_pressed] keyboard_event_pressed_from_b1: - //SEG389 [265] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_SPACE#0 [phi:play_move_down::@1->keyboard_event_pressed#0] -- vbuz1=vbuc1 + //SEG388 [264] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_SPACE#0 [phi:play_move_down::@1->keyboard_event_pressed#0] -- vbuz1=vbuc1 lda #KEY_SPACE sta keyboard_event_pressed.keycode jsr keyboard_event_pressed - //SEG390 [181] (byte) keyboard_event_pressed::return#12 ← (byte) keyboard_event_pressed::return#11 -- vbuz1=vbuz2 + //SEG389 [180] (byte) keyboard_event_pressed::return#12 ← (byte) keyboard_event_pressed::return#11 -- vbuz1=vbuz2 lda keyboard_event_pressed.return_11 sta keyboard_event_pressed.return_12 jmp b17 - //SEG391 play_move_down::@17 + //SEG390 play_move_down::@17 b17: - //SEG392 [182] (byte~) play_move_down::$2 ← (byte) keyboard_event_pressed::return#12 -- vbuz1=vbuz2 + //SEG391 [181] (byte~) play_move_down::$2 ← (byte) keyboard_event_pressed::return#12 -- vbuz1=vbuz2 lda keyboard_event_pressed.return_12 sta _2 - //SEG393 [183] if((byte~) play_move_down::$2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_move_down::@2 -- vbuz1_eq_0_then_la1 + //SEG392 [182] if((byte~) play_move_down::$2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_move_down::@2 -- vbuz1_eq_0_then_la1 lda _2 cmp #0 beq b2_from_b17 jmp b9 - //SEG394 play_move_down::@9 + //SEG393 play_move_down::@9 b9: - //SEG395 [184] if((byte) current_movedown_counter#1<(const byte) current_movedown_fast#0) goto play_move_down::@2 -- vbuz1_lt_vbuc1_then_la1 + //SEG394 [183] if((byte) current_movedown_counter#1<(const byte) current_movedown_fast#0) goto play_move_down::@2 -- vbuz1_lt_vbuc1_then_la1 lda current_movedown_counter cmp #current_movedown_fast bcc b2_from_b9 jmp b10 - //SEG396 play_move_down::@10 + //SEG395 play_move_down::@10 b10: - //SEG397 [185] (byte) play_move_down::movedown#2 ← ++ (byte) play_move_down::movedown#10 -- vbuz1=_inc_vbuz1 + //SEG396 [184] (byte) play_move_down::movedown#2 ← ++ (byte) play_move_down::movedown#10 -- vbuz1=_inc_vbuz1 inc movedown - //SEG398 [186] phi from play_move_down::@10 play_move_down::@17 play_move_down::@9 to play_move_down::@2 [phi:play_move_down::@10/play_move_down::@17/play_move_down::@9->play_move_down::@2] + //SEG397 [185] phi from play_move_down::@10 play_move_down::@17 play_move_down::@9 to play_move_down::@2 [phi:play_move_down::@10/play_move_down::@17/play_move_down::@9->play_move_down::@2] b2_from_b10: b2_from_b17: b2_from_b9: - //SEG399 [186] phi (byte) play_move_down::movedown#7 = (byte) play_move_down::movedown#2 [phi:play_move_down::@10/play_move_down::@17/play_move_down::@9->play_move_down::@2#0] -- register_copy + //SEG398 [185] phi (byte) play_move_down::movedown#7 = (byte) play_move_down::movedown#2 [phi:play_move_down::@10/play_move_down::@17/play_move_down::@9->play_move_down::@2#0] -- register_copy jmp b2 - //SEG400 play_move_down::@2 + //SEG399 play_move_down::@2 b2: - //SEG401 [187] if((byte) current_movedown_counter#1<(const byte) current_movedown_slow#0) goto play_move_down::@4 -- vbuz1_lt_vbuc1_then_la1 + //SEG400 [186] if((byte) current_movedown_counter#1<(const byte) current_movedown_slow#0) goto play_move_down::@4 -- vbuz1_lt_vbuc1_then_la1 lda current_movedown_counter cmp #current_movedown_slow bcc b4_from_b2 jmp b11 - //SEG402 play_move_down::@11 + //SEG401 play_move_down::@11 b11: - //SEG403 [188] (byte) play_move_down::movedown#3 ← ++ (byte) play_move_down::movedown#7 -- vbuz1=_inc_vbuz1 + //SEG402 [187] (byte) play_move_down::movedown#3 ← ++ (byte) play_move_down::movedown#7 -- vbuz1=_inc_vbuz1 inc movedown - //SEG404 [189] phi from play_move_down::@11 play_move_down::@2 to play_move_down::@4 [phi:play_move_down::@11/play_move_down::@2->play_move_down::@4] + //SEG403 [188] phi from play_move_down::@11 play_move_down::@2 to play_move_down::@4 [phi:play_move_down::@11/play_move_down::@2->play_move_down::@4] b4_from_b11: b4_from_b2: - //SEG405 [189] phi (byte) play_move_down::movedown#6 = (byte) play_move_down::movedown#3 [phi:play_move_down::@11/play_move_down::@2->play_move_down::@4#0] -- register_copy + //SEG404 [188] phi (byte) play_move_down::movedown#6 = (byte) play_move_down::movedown#3 [phi:play_move_down::@11/play_move_down::@2->play_move_down::@4#0] -- register_copy jmp b4 - //SEG406 play_move_down::@4 + //SEG405 play_move_down::@4 b4: - //SEG407 [190] if((byte) play_move_down::movedown#6==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_move_down::@return -- vbuz1_eq_0_then_la1 + //SEG406 [189] if((byte) play_move_down::movedown#6==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_move_down::@return -- vbuz1_eq_0_then_la1 lda movedown cmp #0 beq breturn_from_b4 jmp b12 - //SEG408 play_move_down::@12 + //SEG407 play_move_down::@12 b12: - //SEG409 [191] (byte) play_collision::ypos#0 ← (byte) current_ypos#21 + (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_plus_1 + //SEG408 [190] (byte) play_collision::ypos#0 ← (byte) current_ypos#21 + (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_plus_1 ldy current_ypos iny sty play_collision.ypos - //SEG410 [192] (byte) play_collision::xpos#0 ← (byte) current_xpos#10 -- vbuz1=vbuz2 + //SEG409 [191] (byte) play_collision::xpos#0 ← (byte) current_xpos#10 -- vbuz1=vbuz2 lda current_xpos sta play_collision.xpos - //SEG411 [193] (byte) play_collision::orientation#0 ← (byte) current_orientation#10 -- vbuz1=vbuz2 + //SEG410 [192] (byte) play_collision::orientation#0 ← (byte) current_orientation#10 -- vbuz1=vbuz2 lda current_orientation sta play_collision.orientation - //SEG412 [194] (byte*~) current_piece#74 ← (byte*) current_piece#16 -- pbuz1=pbuz2 + //SEG411 [193] (byte*~) current_piece#74 ← (byte*) current_piece#16 -- pbuz1=pbuz2 lda current_piece sta current_piece_74 lda current_piece+1 sta current_piece_74+1 - //SEG413 [195] call play_collision - //SEG414 [130] phi from play_move_down::@12 to play_collision [phi:play_move_down::@12->play_collision] + //SEG412 [194] call play_collision + //SEG413 [129] phi from play_move_down::@12 to play_collision [phi:play_move_down::@12->play_collision] play_collision_from_b12: - //SEG415 [130] phi (byte) play_collision::xpos#5 = (byte) play_collision::xpos#0 [phi:play_move_down::@12->play_collision#0] -- register_copy - //SEG416 [130] phi (byte) play_collision::ypos#4 = (byte) play_collision::ypos#0 [phi:play_move_down::@12->play_collision#1] -- register_copy - //SEG417 [130] phi (byte) play_collision::orientation#4 = (byte) play_collision::orientation#0 [phi:play_move_down::@12->play_collision#2] -- register_copy - //SEG418 [130] phi (byte*) current_piece#12 = (byte*~) current_piece#74 [phi:play_move_down::@12->play_collision#3] -- register_copy + //SEG414 [129] phi (byte) play_collision::xpos#5 = (byte) play_collision::xpos#0 [phi:play_move_down::@12->play_collision#0] -- register_copy + //SEG415 [129] phi (byte) play_collision::ypos#4 = (byte) play_collision::ypos#0 [phi:play_move_down::@12->play_collision#1] -- register_copy + //SEG416 [129] phi (byte) play_collision::orientation#4 = (byte) play_collision::orientation#0 [phi:play_move_down::@12->play_collision#2] -- register_copy + //SEG417 [129] phi (byte*) current_piece#12 = (byte*~) current_piece#74 [phi:play_move_down::@12->play_collision#3] -- register_copy jsr play_collision - //SEG419 [196] (byte) play_collision::return#0 ← (byte) play_collision::return#14 -- vbuz1=vbuz2 + //SEG418 [195] (byte) play_collision::return#0 ← (byte) play_collision::return#14 -- vbuz1=vbuz2 lda play_collision.return_14 sta play_collision.return jmp b18 - //SEG420 play_move_down::@18 + //SEG419 play_move_down::@18 b18: - //SEG421 [197] (byte~) play_move_down::$12 ← (byte) play_collision::return#0 -- vbuz1=vbuz2 + //SEG420 [196] (byte~) play_move_down::$12 ← (byte) play_collision::return#0 -- vbuz1=vbuz2 lda play_collision.return sta _12 - //SEG422 [198] if((byte~) play_move_down::$12==(const byte) COLLISION_NONE#0) goto play_move_down::@6 -- vbuz1_eq_vbuc1_then_la1 + //SEG421 [197] if((byte~) play_move_down::$12==(const byte) COLLISION_NONE#0) goto play_move_down::@6 -- vbuz1_eq_vbuc1_then_la1 lda _12 cmp #COLLISION_NONE beq b6 - //SEG423 [199] phi from play_move_down::@18 to play_move_down::@13 [phi:play_move_down::@18->play_move_down::@13] + //SEG422 [198] phi from play_move_down::@18 to play_move_down::@13 [phi:play_move_down::@18->play_move_down::@13] b13_from_b18: jmp b13 - //SEG424 play_move_down::@13 + //SEG423 play_move_down::@13 b13: - //SEG425 [200] call play_lock_current + //SEG424 [199] call play_lock_current jsr play_lock_current - //SEG426 [201] phi from play_move_down::@13 to play_move_down::@19 [phi:play_move_down::@13->play_move_down::@19] + //SEG425 [200] phi from play_move_down::@13 to play_move_down::@19 [phi:play_move_down::@13->play_move_down::@19] b19_from_b13: jmp b19 - //SEG427 play_move_down::@19 + //SEG426 play_move_down::@19 b19: - //SEG428 [202] call play_remove_lines - //SEG429 [226] phi from play_move_down::@19 to play_remove_lines [phi:play_move_down::@19->play_remove_lines] + //SEG427 [201] call play_remove_lines + //SEG428 [225] phi from play_move_down::@19 to play_remove_lines [phi:play_move_down::@19->play_remove_lines] play_remove_lines_from_b19: jsr play_remove_lines - //SEG430 [203] phi from play_move_down::@19 to play_move_down::@20 [phi:play_move_down::@19->play_move_down::@20] + //SEG429 [202] phi from play_move_down::@19 to play_move_down::@20 [phi:play_move_down::@19->play_move_down::@20] b20_from_b19: jmp b20 - //SEG431 play_move_down::@20 + //SEG430 play_move_down::@20 b20: - //SEG432 [204] call play_spawn_current - //SEG433 [210] phi from play_move_down::@20 to play_spawn_current [phi:play_move_down::@20->play_spawn_current] + //SEG431 [203] call play_spawn_current + //SEG432 [209] phi from play_move_down::@20 to play_spawn_current [phi:play_move_down::@20->play_spawn_current] play_spawn_current_from_b20: jsr play_spawn_current - //SEG434 [205] (byte*~) current_piece#78 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) -- pbuz1=pptc1_derefidx_vbuz2 + //SEG433 [204] (byte*~) current_piece#78 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) -- pbuz1=pptc1_derefidx_vbuz2 ldy play_spawn_current._3 lda PIECES,y sta current_piece lda PIECES+1,y sta current_piece+1 - //SEG435 [206] phi from play_move_down::@20 to play_move_down::@7 [phi:play_move_down::@20->play_move_down::@7] + //SEG434 [205] phi from play_move_down::@20 to play_move_down::@7 [phi:play_move_down::@20->play_move_down::@7] b7_from_b20: - //SEG436 [206] phi (byte) current_piece_char#20 = (byte) current_piece_char#12 [phi:play_move_down::@20->play_move_down::@7#0] -- register_copy - //SEG437 [206] phi (byte) current_xpos#33 = (byte) current_xpos#23 [phi:play_move_down::@20->play_move_down::@7#1] -- register_copy - //SEG438 [206] phi (byte*) current_piece_gfx#26 = (byte*) current_piece_gfx#16 [phi:play_move_down::@20->play_move_down::@7#2] -- register_copy - //SEG439 [206] phi (byte) current_orientation#29 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_down::@20->play_move_down::@7#3] -- vbuz1=vbuc1 + //SEG435 [205] phi (byte) current_piece_char#20 = (byte) current_piece_char#12 [phi:play_move_down::@20->play_move_down::@7#0] -- register_copy + //SEG436 [205] phi (byte) current_xpos#33 = (byte) current_xpos#23 [phi:play_move_down::@20->play_move_down::@7#1] -- register_copy + //SEG437 [205] phi (byte*) current_piece_gfx#26 = (byte*) current_piece_gfx#16 [phi:play_move_down::@20->play_move_down::@7#2] -- register_copy + //SEG438 [205] phi (byte) current_orientation#29 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_down::@20->play_move_down::@7#3] -- vbuz1=vbuc1 lda #0 sta current_orientation - //SEG440 [206] phi (byte*) current_piece#20 = (byte*~) current_piece#78 [phi:play_move_down::@20->play_move_down::@7#4] -- register_copy - //SEG441 [206] phi (byte) current_ypos#29 = (byte) current_ypos#18 [phi:play_move_down::@20->play_move_down::@7#5] -- register_copy + //SEG439 [205] phi (byte*) current_piece#20 = (byte*~) current_piece#78 [phi:play_move_down::@20->play_move_down::@7#4] -- register_copy + //SEG440 [205] phi (byte) current_ypos#29 = (byte) current_ypos#18 [phi:play_move_down::@20->play_move_down::@7#5] -- register_copy jmp b7 - //SEG442 play_move_down::@7 + //SEG441 play_move_down::@7 b7: - //SEG443 [207] phi from play_move_down::@7 to play_move_down::@return [phi:play_move_down::@7->play_move_down::@return] + //SEG442 [206] phi from play_move_down::@7 to play_move_down::@return [phi:play_move_down::@7->play_move_down::@return] breturn_from_b7: - //SEG444 [207] phi (byte) current_piece_char#1 = (byte) current_piece_char#20 [phi:play_move_down::@7->play_move_down::@return#0] -- register_copy - //SEG445 [207] phi (byte) current_xpos#1 = (byte) current_xpos#33 [phi:play_move_down::@7->play_move_down::@return#1] -- register_copy - //SEG446 [207] phi (byte*) current_piece_gfx#1 = (byte*) current_piece_gfx#26 [phi:play_move_down::@7->play_move_down::@return#2] -- register_copy - //SEG447 [207] phi (byte) current_orientation#14 = (byte) current_orientation#29 [phi:play_move_down::@7->play_move_down::@return#3] -- register_copy - //SEG448 [207] phi (byte*) current_piece#10 = (byte*) current_piece#20 [phi:play_move_down::@7->play_move_down::@return#4] -- register_copy - //SEG449 [207] phi (byte) current_ypos#13 = (byte) current_ypos#29 [phi:play_move_down::@7->play_move_down::@return#5] -- register_copy - //SEG450 [207] phi (byte) current_movedown_counter#10 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_down::@7->play_move_down::@return#6] -- vbuz1=vbuc1 + //SEG443 [206] phi (byte) current_piece_char#1 = (byte) current_piece_char#20 [phi:play_move_down::@7->play_move_down::@return#0] -- register_copy + //SEG444 [206] phi (byte) current_xpos#1 = (byte) current_xpos#33 [phi:play_move_down::@7->play_move_down::@return#1] -- register_copy + //SEG445 [206] phi (byte*) current_piece_gfx#1 = (byte*) current_piece_gfx#26 [phi:play_move_down::@7->play_move_down::@return#2] -- register_copy + //SEG446 [206] phi (byte) current_orientation#14 = (byte) current_orientation#29 [phi:play_move_down::@7->play_move_down::@return#3] -- register_copy + //SEG447 [206] phi (byte*) current_piece#10 = (byte*) current_piece#20 [phi:play_move_down::@7->play_move_down::@return#4] -- register_copy + //SEG448 [206] phi (byte) current_ypos#13 = (byte) current_ypos#29 [phi:play_move_down::@7->play_move_down::@return#5] -- register_copy + //SEG449 [206] phi (byte) current_movedown_counter#10 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_down::@7->play_move_down::@return#6] -- vbuz1=vbuc1 lda #0 sta current_movedown_counter - //SEG451 [207] phi (byte) play_move_down::return#2 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_move_down::@7->play_move_down::@return#7] -- vbuz1=vbuc1 + //SEG450 [206] phi (byte) play_move_down::return#2 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_move_down::@7->play_move_down::@return#7] -- vbuz1=vbuc1 lda #1 sta return jmp breturn - //SEG452 [207] phi from play_move_down::@4 to play_move_down::@return [phi:play_move_down::@4->play_move_down::@return] + //SEG451 [206] phi from play_move_down::@4 to play_move_down::@return [phi:play_move_down::@4->play_move_down::@return] breturn_from_b4: - //SEG453 [207] phi (byte) current_piece_char#1 = (byte) current_piece_char#15 [phi:play_move_down::@4->play_move_down::@return#0] -- register_copy - //SEG454 [207] phi (byte) current_xpos#1 = (byte) current_xpos#10 [phi:play_move_down::@4->play_move_down::@return#1] -- register_copy - //SEG455 [207] phi (byte*) current_piece_gfx#1 = (byte*) current_piece_gfx#20 [phi:play_move_down::@4->play_move_down::@return#2] -- register_copy - //SEG456 [207] phi (byte) current_orientation#14 = (byte) current_orientation#10 [phi:play_move_down::@4->play_move_down::@return#3] -- register_copy - //SEG457 [207] phi (byte*) current_piece#10 = (byte*) current_piece#16 [phi:play_move_down::@4->play_move_down::@return#4] -- register_copy - //SEG458 [207] phi (byte) current_ypos#13 = (byte) current_ypos#21 [phi:play_move_down::@4->play_move_down::@return#5] -- register_copy - //SEG459 [207] phi (byte) current_movedown_counter#10 = (byte) current_movedown_counter#1 [phi:play_move_down::@4->play_move_down::@return#6] -- register_copy - //SEG460 [207] phi (byte) play_move_down::return#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_down::@4->play_move_down::@return#7] -- vbuz1=vbuc1 + //SEG452 [206] phi (byte) current_piece_char#1 = (byte) current_piece_char#15 [phi:play_move_down::@4->play_move_down::@return#0] -- register_copy + //SEG453 [206] phi (byte) current_xpos#1 = (byte) current_xpos#10 [phi:play_move_down::@4->play_move_down::@return#1] -- register_copy + //SEG454 [206] phi (byte*) current_piece_gfx#1 = (byte*) current_piece_gfx#20 [phi:play_move_down::@4->play_move_down::@return#2] -- register_copy + //SEG455 [206] phi (byte) current_orientation#14 = (byte) current_orientation#10 [phi:play_move_down::@4->play_move_down::@return#3] -- register_copy + //SEG456 [206] phi (byte*) current_piece#10 = (byte*) current_piece#16 [phi:play_move_down::@4->play_move_down::@return#4] -- register_copy + //SEG457 [206] phi (byte) current_ypos#13 = (byte) current_ypos#21 [phi:play_move_down::@4->play_move_down::@return#5] -- register_copy + //SEG458 [206] phi (byte) current_movedown_counter#10 = (byte) current_movedown_counter#1 [phi:play_move_down::@4->play_move_down::@return#6] -- register_copy + //SEG459 [206] phi (byte) play_move_down::return#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_down::@4->play_move_down::@return#7] -- vbuz1=vbuc1 lda #0 sta return jmp breturn - //SEG461 play_move_down::@return + //SEG460 play_move_down::@return breturn: - //SEG462 [208] return + //SEG461 [207] return rts - //SEG463 play_move_down::@6 + //SEG462 play_move_down::@6 b6: - //SEG464 [209] (byte) current_ypos#0 ← ++ (byte) current_ypos#21 -- vbuz1=_inc_vbuz1 + //SEG463 [208] (byte) current_ypos#0 ← ++ (byte) current_ypos#21 -- vbuz1=_inc_vbuz1 inc current_ypos - //SEG465 [206] phi from play_move_down::@6 to play_move_down::@7 [phi:play_move_down::@6->play_move_down::@7] + //SEG464 [205] phi from play_move_down::@6 to play_move_down::@7 [phi:play_move_down::@6->play_move_down::@7] b7_from_b6: - //SEG466 [206] phi (byte) current_piece_char#20 = (byte) current_piece_char#15 [phi:play_move_down::@6->play_move_down::@7#0] -- register_copy - //SEG467 [206] phi (byte) current_xpos#33 = (byte) current_xpos#10 [phi:play_move_down::@6->play_move_down::@7#1] -- register_copy - //SEG468 [206] phi (byte*) current_piece_gfx#26 = (byte*) current_piece_gfx#20 [phi:play_move_down::@6->play_move_down::@7#2] -- register_copy - //SEG469 [206] phi (byte) current_orientation#29 = (byte) current_orientation#10 [phi:play_move_down::@6->play_move_down::@7#3] -- register_copy - //SEG470 [206] phi (byte*) current_piece#20 = (byte*) current_piece#16 [phi:play_move_down::@6->play_move_down::@7#4] -- register_copy - //SEG471 [206] phi (byte) current_ypos#29 = (byte) current_ypos#0 [phi:play_move_down::@6->play_move_down::@7#5] -- register_copy + //SEG465 [205] phi (byte) current_piece_char#20 = (byte) current_piece_char#15 [phi:play_move_down::@6->play_move_down::@7#0] -- register_copy + //SEG466 [205] phi (byte) current_xpos#33 = (byte) current_xpos#10 [phi:play_move_down::@6->play_move_down::@7#1] -- register_copy + //SEG467 [205] phi (byte*) current_piece_gfx#26 = (byte*) current_piece_gfx#20 [phi:play_move_down::@6->play_move_down::@7#2] -- register_copy + //SEG468 [205] phi (byte) current_orientation#29 = (byte) current_orientation#10 [phi:play_move_down::@6->play_move_down::@7#3] -- register_copy + //SEG469 [205] phi (byte*) current_piece#20 = (byte*) current_piece#16 [phi:play_move_down::@6->play_move_down::@7#4] -- register_copy + //SEG470 [205] phi (byte) current_ypos#29 = (byte) current_ypos#0 [phi:play_move_down::@6->play_move_down::@7#5] -- register_copy jmp b7 } -//SEG472 play_spawn_current +//SEG471 play_spawn_current play_spawn_current: { - .label _1 = $87 - .label _3 = $85 + .label _1 = $85 + .label _3 = $83 .label piece_idx = $2e - //SEG473 [211] phi from play_spawn_current to play_spawn_current::@1 [phi:play_spawn_current->play_spawn_current::@1] + //SEG472 [210] phi from play_spawn_current to play_spawn_current::@1 [phi:play_spawn_current->play_spawn_current::@1] b1_from_play_spawn_current: - //SEG474 [211] phi (byte) play_spawn_current::piece_idx#2 = (byte/signed byte/word/signed word/dword/signed dword) 7 [phi:play_spawn_current->play_spawn_current::@1#0] -- vbuz1=vbuc1 + //SEG473 [210] phi (byte) play_spawn_current::piece_idx#2 = (byte/signed byte/word/signed word/dword/signed dword) 7 [phi:play_spawn_current->play_spawn_current::@1#0] -- vbuz1=vbuc1 lda #7 sta piece_idx jmp b1 - //SEG475 play_spawn_current::@1 + //SEG474 play_spawn_current::@1 b1: - //SEG476 [212] if((byte) play_spawn_current::piece_idx#2==(byte/signed byte/word/signed word/dword/signed dword) 7) goto play_spawn_current::@2 -- vbuz1_eq_vbuc1_then_la1 + //SEG475 [211] if((byte) play_spawn_current::piece_idx#2==(byte/signed byte/word/signed word/dword/signed dword) 7) goto play_spawn_current::@2 -- vbuz1_eq_vbuc1_then_la1 lda piece_idx cmp #7 beq b2_from_b1 jmp b3 - //SEG477 play_spawn_current::@3 + //SEG476 play_spawn_current::@3 b3: - //SEG478 [213] (byte~) play_spawn_current::$3 ← (byte) play_spawn_current::piece_idx#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_rol_1 + //SEG477 [212] (byte~) play_spawn_current::$3 ← (byte) play_spawn_current::piece_idx#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_rol_1 lda piece_idx asl sta _3 - //SEG479 [214] (byte*) current_piece_gfx#16 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) + (byte/signed byte/word/signed word/dword/signed dword) 0 -- pbuz1=pptc1_derefidx_vbuz2_plus_0 + //SEG478 [213] (byte*) current_piece_gfx#16 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) + (byte/signed byte/word/signed word/dword/signed dword) 0 -- pbuz1=pptc1_derefidx_vbuz2_plus_0 ldy _3 lda PIECES,y sta current_piece_gfx lda PIECES+1,y sta current_piece_gfx+1 - //SEG480 [215] (byte) current_xpos#23 ← *((const byte[]) PIECES_START_X#0 + (byte) play_spawn_current::piece_idx#2) -- vbuz1=pbuc1_derefidx_vbuz2 + //SEG479 [214] (byte) current_xpos#23 ← *((const byte[]) PIECES_START_X#0 + (byte) play_spawn_current::piece_idx#2) -- vbuz1=pbuc1_derefidx_vbuz2 ldy piece_idx lda PIECES_START_X,y sta current_xpos - //SEG481 [216] (byte) current_ypos#18 ← *((const byte[]) PIECES_START_Y#0 + (byte) play_spawn_current::piece_idx#2) -- vbuz1=pbuc1_derefidx_vbuz2 + //SEG480 [215] (byte) current_ypos#18 ← *((const byte[]) PIECES_START_Y#0 + (byte) play_spawn_current::piece_idx#2) -- vbuz1=pbuc1_derefidx_vbuz2 ldy piece_idx lda PIECES_START_Y,y sta current_ypos - //SEG482 [217] (byte) current_piece_char#12 ← *((const byte[]) PIECES_CHARS#0 + (byte) play_spawn_current::piece_idx#2) -- vbuz1=pbuc1_derefidx_vbuz2 + //SEG481 [216] (byte) current_piece_char#12 ← *((const byte[]) PIECES_CHARS#0 + (byte) play_spawn_current::piece_idx#2) -- vbuz1=pbuc1_derefidx_vbuz2 ldy piece_idx lda PIECES_CHARS,y sta current_piece_char jmp breturn - //SEG483 play_spawn_current::@return + //SEG482 play_spawn_current::@return breturn: - //SEG484 [218] return + //SEG483 [217] return rts - //SEG485 [219] phi from play_spawn_current::@1 to play_spawn_current::@2 [phi:play_spawn_current::@1->play_spawn_current::@2] + //SEG484 [218] phi from play_spawn_current::@1 to play_spawn_current::@2 [phi:play_spawn_current::@1->play_spawn_current::@2] b2_from_b1: jmp b2 - //SEG486 play_spawn_current::@2 + //SEG485 play_spawn_current::@2 b2: - //SEG487 [220] call sid_rnd + //SEG486 [219] call sid_rnd jsr sid_rnd - //SEG488 [221] (byte) sid_rnd::return#2 ← (byte) sid_rnd::return#0 -- vbuz1=vbuz2 + //SEG487 [220] (byte) sid_rnd::return#2 ← (byte) sid_rnd::return#0 -- vbuz1=vbuz2 lda sid_rnd.return sta sid_rnd.return_2 jmp b7 - //SEG489 play_spawn_current::@7 + //SEG488 play_spawn_current::@7 b7: - //SEG490 [222] (byte~) play_spawn_current::$1 ← (byte) sid_rnd::return#2 -- vbuz1=vbuz2 + //SEG489 [221] (byte~) play_spawn_current::$1 ← (byte) sid_rnd::return#2 -- vbuz1=vbuz2 lda sid_rnd.return_2 sta _1 - //SEG491 [223] (byte) play_spawn_current::piece_idx#1 ← (byte~) play_spawn_current::$1 & (byte/signed byte/word/signed word/dword/signed dword) 7 -- vbuz1=vbuz2_band_vbuc1 + //SEG490 [222] (byte) play_spawn_current::piece_idx#1 ← (byte~) play_spawn_current::$1 & (byte/signed byte/word/signed word/dword/signed dword) 7 -- vbuz1=vbuz2_band_vbuc1 lda #7 and _1 sta piece_idx - //SEG492 [211] phi from play_spawn_current::@7 to play_spawn_current::@1 [phi:play_spawn_current::@7->play_spawn_current::@1] + //SEG491 [210] phi from play_spawn_current::@7 to play_spawn_current::@1 [phi:play_spawn_current::@7->play_spawn_current::@1] b1_from_b7: - //SEG493 [211] phi (byte) play_spawn_current::piece_idx#2 = (byte) play_spawn_current::piece_idx#1 [phi:play_spawn_current::@7->play_spawn_current::@1#0] -- register_copy + //SEG492 [210] phi (byte) play_spawn_current::piece_idx#2 = (byte) play_spawn_current::piece_idx#1 [phi:play_spawn_current::@7->play_spawn_current::@1#0] -- register_copy jmp b1 } -//SEG494 sid_rnd +//SEG493 sid_rnd sid_rnd: { - .label return = $88 - .label return_2 = $86 - //SEG495 [224] (byte) sid_rnd::return#0 ← *((const byte*) SID_VOICE3_OSC#0) -- vbuz1=_deref_pbuc1 + .label return = $86 + .label return_2 = $84 + //SEG494 [223] (byte) sid_rnd::return#0 ← *((const byte*) SID_VOICE3_OSC#0) -- vbuz1=_deref_pbuc1 lda SID_VOICE3_OSC sta return jmp breturn - //SEG496 sid_rnd::@return + //SEG495 sid_rnd::@return breturn: - //SEG497 [225] return + //SEG496 [224] return rts } -//SEG498 play_remove_lines +//SEG497 play_remove_lines play_remove_lines: { - .label c = $89 + .label c = $87 .label r = $30 .label w = $33 .label x = $31 .label y = $2f .label full = $32 - //SEG499 [227] phi from play_remove_lines to play_remove_lines::@1 [phi:play_remove_lines->play_remove_lines::@1] + //SEG498 [226] phi from play_remove_lines to play_remove_lines::@1 [phi:play_remove_lines->play_remove_lines::@1] b1_from_play_remove_lines: - //SEG500 [227] phi (byte) play_remove_lines::y#8 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_remove_lines->play_remove_lines::@1#0] -- vbuz1=vbuc1 + //SEG499 [226] phi (byte) play_remove_lines::y#8 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_remove_lines->play_remove_lines::@1#0] -- vbuz1=vbuc1 lda #0 sta y - //SEG501 [227] phi (byte) play_remove_lines::w#12 = (const byte) PLAYFIELD_LINES#0*(const byte) PLAYFIELD_COLS#0-(byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_remove_lines->play_remove_lines::@1#1] -- vbuz1=vbuc1 + //SEG500 [226] phi (byte) play_remove_lines::w#12 = (const byte) PLAYFIELD_LINES#0*(const byte) PLAYFIELD_COLS#0-(byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_remove_lines->play_remove_lines::@1#1] -- vbuz1=vbuc1 lda #PLAYFIELD_LINES*PLAYFIELD_COLS-1 sta w - //SEG502 [227] phi (byte) play_remove_lines::r#3 = (const byte) PLAYFIELD_LINES#0*(const byte) PLAYFIELD_COLS#0-(byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_remove_lines->play_remove_lines::@1#2] -- vbuz1=vbuc1 + //SEG501 [226] phi (byte) play_remove_lines::r#3 = (const byte) PLAYFIELD_LINES#0*(const byte) PLAYFIELD_COLS#0-(byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_remove_lines->play_remove_lines::@1#2] -- vbuz1=vbuc1 lda #PLAYFIELD_LINES*PLAYFIELD_COLS-1 sta r jmp b1 - //SEG503 [227] phi from play_remove_lines::@4 to play_remove_lines::@1 [phi:play_remove_lines::@4->play_remove_lines::@1] + //SEG502 [226] phi from play_remove_lines::@4 to play_remove_lines::@1 [phi:play_remove_lines::@4->play_remove_lines::@1] b1_from_b4: - //SEG504 [227] phi (byte) play_remove_lines::y#8 = (byte) play_remove_lines::y#1 [phi:play_remove_lines::@4->play_remove_lines::@1#0] -- register_copy - //SEG505 [227] phi (byte) play_remove_lines::w#12 = (byte) play_remove_lines::w#11 [phi:play_remove_lines::@4->play_remove_lines::@1#1] -- register_copy - //SEG506 [227] phi (byte) play_remove_lines::r#3 = (byte) play_remove_lines::r#1 [phi:play_remove_lines::@4->play_remove_lines::@1#2] -- register_copy + //SEG503 [226] phi (byte) play_remove_lines::y#8 = (byte) play_remove_lines::y#1 [phi:play_remove_lines::@4->play_remove_lines::@1#0] -- register_copy + //SEG504 [226] phi (byte) play_remove_lines::w#12 = (byte) play_remove_lines::w#11 [phi:play_remove_lines::@4->play_remove_lines::@1#1] -- register_copy + //SEG505 [226] phi (byte) play_remove_lines::r#3 = (byte) play_remove_lines::r#1 [phi:play_remove_lines::@4->play_remove_lines::@1#2] -- register_copy jmp b1 - //SEG507 play_remove_lines::@1 + //SEG506 play_remove_lines::@1 b1: - //SEG508 [228] phi from play_remove_lines::@1 to play_remove_lines::@2 [phi:play_remove_lines::@1->play_remove_lines::@2] + //SEG507 [227] phi from play_remove_lines::@1 to play_remove_lines::@2 [phi:play_remove_lines::@1->play_remove_lines::@2] b2_from_b1: - //SEG509 [228] phi (byte) play_remove_lines::full#4 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_remove_lines::@1->play_remove_lines::@2#0] -- vbuz1=vbuc1 + //SEG508 [227] phi (byte) play_remove_lines::full#4 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_remove_lines::@1->play_remove_lines::@2#0] -- vbuz1=vbuc1 lda #1 sta full - //SEG510 [228] phi (byte) play_remove_lines::x#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_remove_lines::@1->play_remove_lines::@2#1] -- vbuz1=vbuc1 + //SEG509 [227] phi (byte) play_remove_lines::x#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_remove_lines::@1->play_remove_lines::@2#1] -- vbuz1=vbuc1 lda #0 sta x - //SEG511 [228] 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 - //SEG512 [228] 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 + //SEG510 [227] 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 + //SEG511 [227] 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 - //SEG513 [228] phi from play_remove_lines::@3 to play_remove_lines::@2 [phi:play_remove_lines::@3->play_remove_lines::@2] + //SEG512 [227] phi from play_remove_lines::@3 to play_remove_lines::@2 [phi:play_remove_lines::@3->play_remove_lines::@2] b2_from_b3: - //SEG514 [228] 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 - //SEG515 [228] 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 - //SEG516 [228] 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 - //SEG517 [228] 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 + //SEG513 [227] 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 + //SEG514 [227] 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 + //SEG515 [227] 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 + //SEG516 [227] 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 - //SEG518 play_remove_lines::@2 + //SEG517 play_remove_lines::@2 b2: - //SEG519 [229] (byte) play_remove_lines::c#0 ← *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) play_remove_lines::r#2) -- vbuz1=pbuc1_derefidx_vbuz2 + //SEG518 [228] (byte) play_remove_lines::c#0 ← *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) play_remove_lines::r#2) -- vbuz1=pbuc1_derefidx_vbuz2 ldy r lda playfield,y sta c - //SEG520 [230] (byte) play_remove_lines::r#1 ← -- (byte) play_remove_lines::r#2 -- vbuz1=_dec_vbuz1 + //SEG519 [229] (byte) play_remove_lines::r#1 ← -- (byte) play_remove_lines::r#2 -- vbuz1=_dec_vbuz1 dec r - //SEG521 [231] if((byte) play_remove_lines::c#0!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_remove_lines::@17 -- vbuz1_neq_0_then_la1 + //SEG520 [230] if((byte) play_remove_lines::c#0!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_remove_lines::@17 -- vbuz1_neq_0_then_la1 lda c cmp #0 bne b17_from_b2 - //SEG522 [232] phi from play_remove_lines::@2 to play_remove_lines::@3 [phi:play_remove_lines::@2->play_remove_lines::@3] + //SEG521 [231] phi from play_remove_lines::@2 to play_remove_lines::@3 [phi:play_remove_lines::@2->play_remove_lines::@3] b3_from_b2: - //SEG523 [232] phi (byte) play_remove_lines::full#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_remove_lines::@2->play_remove_lines::@3#0] -- vbuz1=vbuc1 + //SEG522 [231] phi (byte) play_remove_lines::full#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_remove_lines::@2->play_remove_lines::@3#0] -- vbuz1=vbuc1 lda #0 sta full jmp b3 - //SEG524 play_remove_lines::@3 + //SEG523 play_remove_lines::@3 b3: - //SEG525 [233] *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) play_remove_lines::w#4) ← (byte) play_remove_lines::c#0 -- pbuc1_derefidx_vbuz1=vbuz2 + //SEG524 [232] *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) play_remove_lines::w#4) ← (byte) play_remove_lines::c#0 -- pbuc1_derefidx_vbuz1=vbuz2 lda c ldy w sta playfield,y - //SEG526 [234] (byte) play_remove_lines::w#1 ← -- (byte) play_remove_lines::w#4 -- vbuz1=_dec_vbuz1 + //SEG525 [233] (byte) play_remove_lines::w#1 ← -- (byte) play_remove_lines::w#4 -- vbuz1=_dec_vbuz1 dec w - //SEG527 [235] (byte) play_remove_lines::x#1 ← ++ (byte) play_remove_lines::x#2 -- vbuz1=_inc_vbuz1 + //SEG526 [234] (byte) play_remove_lines::x#1 ← ++ (byte) play_remove_lines::x#2 -- vbuz1=_inc_vbuz1 inc x - //SEG528 [236] if((byte) play_remove_lines::x#1!=(const byte) PLAYFIELD_COLS#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto play_remove_lines::@2 -- vbuz1_neq_vbuc1_then_la1 + //SEG527 [235] if((byte) play_remove_lines::x#1!=(const byte) PLAYFIELD_COLS#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto play_remove_lines::@2 -- vbuz1_neq_vbuc1_then_la1 lda x cmp #PLAYFIELD_COLS-1+1 bne b2_from_b3 jmp b9 - //SEG529 play_remove_lines::@9 + //SEG528 play_remove_lines::@9 b9: - //SEG530 [237] if((byte) play_remove_lines::full#2!=(byte/signed byte/word/signed word/dword/signed dword) 1) goto play_remove_lines::@4 -- vbuz1_neq_vbuc1_then_la1 + //SEG529 [236] if((byte) play_remove_lines::full#2!=(byte/signed byte/word/signed word/dword/signed dword) 1) goto play_remove_lines::@4 -- vbuz1_neq_vbuc1_then_la1 lda full cmp #1 bne b4_from_b9 jmp b10 - //SEG531 play_remove_lines::@10 + //SEG530 play_remove_lines::@10 b10: - //SEG532 [238] (byte) play_remove_lines::w#2 ← (byte) play_remove_lines::w#1 + (const byte) PLAYFIELD_COLS#0 -- vbuz1=vbuz1_plus_vbuc1 + //SEG531 [237] (byte) play_remove_lines::w#2 ← (byte) play_remove_lines::w#1 + (const byte) PLAYFIELD_COLS#0 -- vbuz1=vbuz1_plus_vbuc1 lda #PLAYFIELD_COLS clc adc w sta w - //SEG533 [239] phi from play_remove_lines::@10 play_remove_lines::@9 to play_remove_lines::@4 [phi:play_remove_lines::@10/play_remove_lines::@9->play_remove_lines::@4] + //SEG532 [238] phi from play_remove_lines::@10 play_remove_lines::@9 to play_remove_lines::@4 [phi:play_remove_lines::@10/play_remove_lines::@9->play_remove_lines::@4] b4_from_b10: b4_from_b9: - //SEG534 [239] phi (byte) play_remove_lines::w#11 = (byte) play_remove_lines::w#2 [phi:play_remove_lines::@10/play_remove_lines::@9->play_remove_lines::@4#0] -- register_copy + //SEG533 [238] phi (byte) play_remove_lines::w#11 = (byte) play_remove_lines::w#2 [phi:play_remove_lines::@10/play_remove_lines::@9->play_remove_lines::@4#0] -- register_copy jmp b4 - //SEG535 play_remove_lines::@4 + //SEG534 play_remove_lines::@4 b4: - //SEG536 [240] (byte) play_remove_lines::y#1 ← ++ (byte) play_remove_lines::y#8 -- vbuz1=_inc_vbuz1 + //SEG535 [239] (byte) play_remove_lines::y#1 ← ++ (byte) play_remove_lines::y#8 -- vbuz1=_inc_vbuz1 inc y - //SEG537 [241] if((byte) play_remove_lines::y#1!=(const byte) PLAYFIELD_LINES#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto play_remove_lines::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG536 [240] if((byte) play_remove_lines::y#1!=(const byte) PLAYFIELD_LINES#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto play_remove_lines::@1 -- vbuz1_neq_vbuc1_then_la1 lda y cmp #PLAYFIELD_LINES-1+1 bne b1_from_b4 - //SEG538 [242] phi from play_remove_lines::@4 play_remove_lines::@6 to play_remove_lines::@5 [phi:play_remove_lines::@4/play_remove_lines::@6->play_remove_lines::@5] + //SEG537 [241] phi from play_remove_lines::@4 play_remove_lines::@6 to play_remove_lines::@5 [phi:play_remove_lines::@4/play_remove_lines::@6->play_remove_lines::@5] b5_from_b4: b5_from_b6: - //SEG539 [242] phi (byte) play_remove_lines::w#6 = (byte) play_remove_lines::w#11 [phi:play_remove_lines::@4/play_remove_lines::@6->play_remove_lines::@5#0] -- register_copy + //SEG538 [241] phi (byte) play_remove_lines::w#6 = (byte) play_remove_lines::w#11 [phi:play_remove_lines::@4/play_remove_lines::@6->play_remove_lines::@5#0] -- register_copy jmp b5 - //SEG540 play_remove_lines::@5 + //SEG539 play_remove_lines::@5 b5: - //SEG541 [243] if((byte) play_remove_lines::w#6!=(byte/word/signed word/dword/signed dword) 255) goto play_remove_lines::@6 -- vbuz1_neq_vbuc1_then_la1 + //SEG540 [242] if((byte) play_remove_lines::w#6!=(byte/word/signed word/dword/signed dword) 255) goto play_remove_lines::@6 -- vbuz1_neq_vbuc1_then_la1 lda w cmp #$ff bne b6 jmp breturn - //SEG542 play_remove_lines::@return + //SEG541 play_remove_lines::@return breturn: - //SEG543 [244] return + //SEG542 [243] return rts - //SEG544 play_remove_lines::@6 + //SEG543 play_remove_lines::@6 b6: - //SEG545 [245] *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) play_remove_lines::w#6) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- pbuc1_derefidx_vbuz1=vbuc2 + //SEG544 [244] *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) play_remove_lines::w#6) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- pbuc1_derefidx_vbuz1=vbuc2 ldy w lda #0 sta playfield,y - //SEG546 [246] (byte) play_remove_lines::w#3 ← -- (byte) play_remove_lines::w#6 -- vbuz1=_dec_vbuz1 + //SEG545 [245] (byte) play_remove_lines::w#3 ← -- (byte) play_remove_lines::w#6 -- vbuz1=_dec_vbuz1 dec w jmp b5_from_b6 - //SEG547 [247] phi from play_remove_lines::@2 to play_remove_lines::@17 [phi:play_remove_lines::@2->play_remove_lines::@17] + //SEG546 [246] phi from play_remove_lines::@2 to play_remove_lines::@17 [phi:play_remove_lines::@2->play_remove_lines::@17] b17_from_b2: jmp b17 - //SEG548 play_remove_lines::@17 + //SEG547 play_remove_lines::@17 b17: - //SEG549 [232] phi from play_remove_lines::@17 to play_remove_lines::@3 [phi:play_remove_lines::@17->play_remove_lines::@3] + //SEG548 [231] phi from play_remove_lines::@17 to play_remove_lines::@3 [phi:play_remove_lines::@17->play_remove_lines::@3] b3_from_b17: - //SEG550 [232] phi (byte) play_remove_lines::full#2 = (byte) play_remove_lines::full#4 [phi:play_remove_lines::@17->play_remove_lines::@3#0] -- register_copy + //SEG549 [231] phi (byte) play_remove_lines::full#2 = (byte) play_remove_lines::full#4 [phi:play_remove_lines::@17->play_remove_lines::@3#0] -- register_copy jmp b3 } -//SEG551 play_lock_current +//SEG550 play_lock_current play_lock_current: { .label ypos2 = $34 - .label playfield_line = $8a + .label playfield_line = $88 .label col = $37 - .label i = $8c + .label i = $8a .label c = $38 .label l = $35 .label i_2 = $36 .label i_3 = $36 .label i_7 = $36 .label i_9 = $36 - //SEG552 [248] (byte) play_lock_current::ypos2#0 ← (byte) current_ypos#21 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_rol_1 + //SEG551 [247] (byte) play_lock_current::ypos2#0 ← (byte) current_ypos#21 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_rol_1 lda current_ypos asl sta ypos2 - //SEG553 [249] phi from play_lock_current to play_lock_current::@1 [phi:play_lock_current->play_lock_current::@1] + //SEG552 [248] phi from play_lock_current to play_lock_current::@1 [phi:play_lock_current->play_lock_current::@1] b1_from_play_lock_current: - //SEG554 [249] phi (byte) play_lock_current::l#6 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_lock_current->play_lock_current::@1#0] -- vbuz1=vbuc1 + //SEG553 [248] phi (byte) play_lock_current::l#6 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_lock_current->play_lock_current::@1#0] -- vbuz1=vbuc1 lda #0 sta l - //SEG555 [249] phi (byte) play_lock_current::i#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_lock_current->play_lock_current::@1#1] -- vbuz1=vbuc1 + //SEG554 [248] phi (byte) play_lock_current::i#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_lock_current->play_lock_current::@1#1] -- vbuz1=vbuc1 lda #0 sta i_3 - //SEG556 [249] phi (byte) play_lock_current::ypos2#2 = (byte) play_lock_current::ypos2#0 [phi:play_lock_current->play_lock_current::@1#2] -- register_copy + //SEG555 [248] phi (byte) play_lock_current::ypos2#2 = (byte) play_lock_current::ypos2#0 [phi:play_lock_current->play_lock_current::@1#2] -- register_copy jmp b1 - //SEG557 play_lock_current::@1 + //SEG556 play_lock_current::@1 b1: - //SEG558 [250] (byte*) play_lock_current::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) play_lock_current::ypos2#2) -- pbuz1=pptc1_derefidx_vbuz2 + //SEG557 [249] (byte*) play_lock_current::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) play_lock_current::ypos2#2) -- pbuz1=pptc1_derefidx_vbuz2 ldy ypos2 lda playfield_lines,y sta playfield_line lda playfield_lines+1,y sta playfield_line+1 - //SEG559 [251] (byte) play_lock_current::col#0 ← (byte) current_xpos#10 -- vbuz1=vbuz2 + //SEG558 [250] (byte) play_lock_current::col#0 ← (byte) current_xpos#10 -- vbuz1=vbuz2 lda current_xpos sta col - //SEG560 [252] phi from play_lock_current::@1 to play_lock_current::@2 [phi:play_lock_current::@1->play_lock_current::@2] + //SEG559 [251] phi from play_lock_current::@1 to play_lock_current::@2 [phi:play_lock_current::@1->play_lock_current::@2] b2_from_b1: - //SEG561 [252] phi (byte) play_lock_current::c#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_lock_current::@1->play_lock_current::@2#0] -- vbuz1=vbuc1 + //SEG560 [251] phi (byte) play_lock_current::c#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_lock_current::@1->play_lock_current::@2#0] -- vbuz1=vbuc1 lda #0 sta c - //SEG562 [252] phi (byte) play_lock_current::col#2 = (byte) play_lock_current::col#0 [phi:play_lock_current::@1->play_lock_current::@2#1] -- register_copy - //SEG563 [252] 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 + //SEG561 [251] phi (byte) play_lock_current::col#2 = (byte) play_lock_current::col#0 [phi:play_lock_current::@1->play_lock_current::@2#1] -- register_copy + //SEG562 [251] 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 - //SEG564 play_lock_current::@2 + //SEG563 play_lock_current::@2 b2: - //SEG565 [253] (byte) play_lock_current::i#1 ← ++ (byte) play_lock_current::i#2 -- vbuz1=_inc_vbuz2 + //SEG564 [252] (byte) play_lock_current::i#1 ← ++ (byte) play_lock_current::i#2 -- vbuz1=_inc_vbuz2 ldy i_2 iny sty i - //SEG566 [254] if(*((byte*) current_piece_gfx#20 + (byte) play_lock_current::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_lock_current::@3 -- pbuz1_derefidx_vbuz2_eq_0_then_la1 + //SEG565 [253] if(*((byte*) current_piece_gfx#20 + (byte) play_lock_current::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_lock_current::@3 -- pbuz1_derefidx_vbuz2_eq_0_then_la1 ldy i_2 lda (current_piece_gfx),y cmp #0 beq b3 jmp b4 - //SEG567 play_lock_current::@4 + //SEG566 play_lock_current::@4 b4: - //SEG568 [255] *((byte*) play_lock_current::playfield_line#0 + (byte) play_lock_current::col#2) ← (byte) current_piece_char#15 -- pbuz1_derefidx_vbuz2=vbuz3 + //SEG567 [254] *((byte*) play_lock_current::playfield_line#0 + (byte) play_lock_current::col#2) ← (byte) current_piece_char#15 -- pbuz1_derefidx_vbuz2=vbuz3 lda current_piece_char ldy col sta (playfield_line),y jmp b3 - //SEG569 play_lock_current::@3 + //SEG568 play_lock_current::@3 b3: - //SEG570 [256] (byte) play_lock_current::col#1 ← ++ (byte) play_lock_current::col#2 -- vbuz1=_inc_vbuz1 + //SEG569 [255] (byte) play_lock_current::col#1 ← ++ (byte) play_lock_current::col#2 -- vbuz1=_inc_vbuz1 inc col - //SEG571 [257] (byte) play_lock_current::c#1 ← ++ (byte) play_lock_current::c#2 -- vbuz1=_inc_vbuz1 + //SEG570 [256] (byte) play_lock_current::c#1 ← ++ (byte) play_lock_current::c#2 -- vbuz1=_inc_vbuz1 inc c - //SEG572 [258] if((byte) play_lock_current::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto play_lock_current::@8 -- vbuz1_neq_vbuc1_then_la1 + //SEG571 [257] if((byte) play_lock_current::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto play_lock_current::@8 -- vbuz1_neq_vbuc1_then_la1 lda c cmp #4 bne b8 jmp b5 - //SEG573 play_lock_current::@5 + //SEG572 play_lock_current::@5 b5: - //SEG574 [259] (byte) play_lock_current::ypos2#1 ← (byte) play_lock_current::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 -- vbuz1=vbuz1_plus_2 + //SEG573 [258] (byte) play_lock_current::ypos2#1 ← (byte) play_lock_current::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 -- vbuz1=vbuz1_plus_2 lda ypos2 clc adc #2 sta ypos2 - //SEG575 [260] (byte) play_lock_current::l#1 ← ++ (byte) play_lock_current::l#6 -- vbuz1=_inc_vbuz1 + //SEG574 [259] (byte) play_lock_current::l#1 ← ++ (byte) play_lock_current::l#6 -- vbuz1=_inc_vbuz1 inc l - //SEG576 [261] if((byte) play_lock_current::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto play_lock_current::@7 -- vbuz1_neq_vbuc1_then_la1 + //SEG575 [260] if((byte) play_lock_current::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto play_lock_current::@7 -- vbuz1_neq_vbuc1_then_la1 lda l cmp #4 bne b7 jmp breturn - //SEG577 play_lock_current::@return + //SEG576 play_lock_current::@return breturn: - //SEG578 [262] return + //SEG577 [261] return rts - //SEG579 play_lock_current::@7 + //SEG578 play_lock_current::@7 b7: - //SEG580 [263] (byte~) play_lock_current::i#7 ← (byte) play_lock_current::i#1 -- vbuz1=vbuz2 + //SEG579 [262] (byte~) play_lock_current::i#7 ← (byte) play_lock_current::i#1 -- vbuz1=vbuz2 lda i sta i_7 - //SEG581 [249] phi from play_lock_current::@7 to play_lock_current::@1 [phi:play_lock_current::@7->play_lock_current::@1] + //SEG580 [248] phi from play_lock_current::@7 to play_lock_current::@1 [phi:play_lock_current::@7->play_lock_current::@1] b1_from_b7: - //SEG582 [249] phi (byte) play_lock_current::l#6 = (byte) play_lock_current::l#1 [phi:play_lock_current::@7->play_lock_current::@1#0] -- register_copy - //SEG583 [249] phi (byte) play_lock_current::i#3 = (byte~) play_lock_current::i#7 [phi:play_lock_current::@7->play_lock_current::@1#1] -- register_copy - //SEG584 [249] phi (byte) play_lock_current::ypos2#2 = (byte) play_lock_current::ypos2#1 [phi:play_lock_current::@7->play_lock_current::@1#2] -- register_copy + //SEG581 [248] phi (byte) play_lock_current::l#6 = (byte) play_lock_current::l#1 [phi:play_lock_current::@7->play_lock_current::@1#0] -- register_copy + //SEG582 [248] phi (byte) play_lock_current::i#3 = (byte~) play_lock_current::i#7 [phi:play_lock_current::@7->play_lock_current::@1#1] -- register_copy + //SEG583 [248] phi (byte) play_lock_current::ypos2#2 = (byte) play_lock_current::ypos2#1 [phi:play_lock_current::@7->play_lock_current::@1#2] -- register_copy jmp b1 - //SEG585 play_lock_current::@8 + //SEG584 play_lock_current::@8 b8: - //SEG586 [264] (byte~) play_lock_current::i#9 ← (byte) play_lock_current::i#1 -- vbuz1=vbuz2 + //SEG585 [263] (byte~) play_lock_current::i#9 ← (byte) play_lock_current::i#1 -- vbuz1=vbuz2 lda i sta i_9 - //SEG587 [252] phi from play_lock_current::@8 to play_lock_current::@2 [phi:play_lock_current::@8->play_lock_current::@2] + //SEG586 [251] phi from play_lock_current::@8 to play_lock_current::@2 [phi:play_lock_current::@8->play_lock_current::@2] b2_from_b8: - //SEG588 [252] phi (byte) play_lock_current::c#2 = (byte) play_lock_current::c#1 [phi:play_lock_current::@8->play_lock_current::@2#0] -- register_copy - //SEG589 [252] phi (byte) play_lock_current::col#2 = (byte) play_lock_current::col#1 [phi:play_lock_current::@8->play_lock_current::@2#1] -- register_copy - //SEG590 [252] phi (byte) play_lock_current::i#2 = (byte~) play_lock_current::i#9 [phi:play_lock_current::@8->play_lock_current::@2#2] -- register_copy + //SEG587 [251] phi (byte) play_lock_current::c#2 = (byte) play_lock_current::c#1 [phi:play_lock_current::@8->play_lock_current::@2#0] -- register_copy + //SEG588 [251] phi (byte) play_lock_current::col#2 = (byte) play_lock_current::col#1 [phi:play_lock_current::@8->play_lock_current::@2#1] -- register_copy + //SEG589 [251] phi (byte) play_lock_current::i#2 = (byte~) play_lock_current::i#9 [phi:play_lock_current::@8->play_lock_current::@2#2] -- register_copy jmp b2 } -//SEG591 keyboard_event_pressed +//SEG590 keyboard_event_pressed keyboard_event_pressed: { - .label _0 = $8d - .label _1 = $8f - .label return = $94 - .label return_1 = $96 - .label return_2 = $98 - .label row_bits = $8e - .label return_10 = $9a + .label _0 = $8b + .label _1 = $8d + .label return = $92 + .label return_1 = $94 + .label return_2 = $96 + .label row_bits = $8c + .label return_10 = $98 .label keycode = $39 - .label return_11 = $90 - .label return_12 = $81 - //SEG592 [266] (byte~) keyboard_event_pressed::$0 ← (byte) keyboard_event_pressed::keycode#5 >> (byte/signed byte/word/signed word/dword/signed dword) 3 -- vbuz1=vbuz2_ror_3 + .label return_11 = $8e + .label return_12 = $7f + //SEG591 [265] (byte~) keyboard_event_pressed::$0 ← (byte) keyboard_event_pressed::keycode#5 >> (byte/signed byte/word/signed word/dword/signed dword) 3 -- vbuz1=vbuz2_ror_3 lda keycode lsr lsr lsr sta _0 - //SEG593 [267] (byte) keyboard_event_pressed::row_bits#0 ← *((const byte[8]) keyboard_scan_values#0 + (byte~) keyboard_event_pressed::$0) -- vbuz1=pbuc1_derefidx_vbuz2 + //SEG592 [266] (byte) keyboard_event_pressed::row_bits#0 ← *((const byte[8]) keyboard_scan_values#0 + (byte~) keyboard_event_pressed::$0) -- vbuz1=pbuc1_derefidx_vbuz2 ldy _0 lda keyboard_scan_values,y sta row_bits - //SEG594 [268] (byte~) keyboard_event_pressed::$1 ← (byte) keyboard_event_pressed::keycode#5 & (byte/signed byte/word/signed word/dword/signed dword) 7 -- vbuz1=vbuz2_band_vbuc1 + //SEG593 [267] (byte~) keyboard_event_pressed::$1 ← (byte) keyboard_event_pressed::keycode#5 & (byte/signed byte/word/signed word/dword/signed dword) 7 -- vbuz1=vbuz2_band_vbuc1 lda #7 and keycode sta _1 - //SEG595 [269] (byte) keyboard_event_pressed::return#11 ← (byte) keyboard_event_pressed::row_bits#0 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte~) keyboard_event_pressed::$1) -- vbuz1=vbuz2_band_pbuc1_derefidx_vbuz3 + //SEG594 [268] (byte) keyboard_event_pressed::return#11 ← (byte) keyboard_event_pressed::row_bits#0 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte~) keyboard_event_pressed::$1) -- vbuz1=vbuz2_band_pbuc1_derefidx_vbuz3 lda row_bits ldy _1 and keyboard_matrix_col_bitmask,y sta return_11 jmp breturn - //SEG596 keyboard_event_pressed::@return + //SEG595 keyboard_event_pressed::@return breturn: - //SEG597 [270] return + //SEG596 [269] return rts } -//SEG598 keyboard_event_get +//SEG597 keyboard_event_get keyboard_event_get: { .label return = $3a - .label return_3 = $5f - //SEG599 [271] if((byte) keyboard_events_size#13==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_get::@return -- vbuz1_eq_0_then_la1 + .label return_3 = $5d + //SEG598 [270] if((byte) keyboard_events_size#13==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_get::@return -- vbuz1_eq_0_then_la1 lda keyboard_events_size cmp #0 beq breturn_from_keyboard_event_get jmp b3 - //SEG600 keyboard_event_get::@3 + //SEG599 keyboard_event_get::@3 b3: - //SEG601 [272] (byte) keyboard_events_size#4 ← -- (byte) keyboard_events_size#13 -- vbuz1=_dec_vbuz1 + //SEG600 [271] (byte) keyboard_events_size#4 ← -- (byte) keyboard_events_size#13 -- vbuz1=_dec_vbuz1 dec keyboard_events_size - //SEG602 [273] (byte) keyboard_event_get::return#1 ← *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#4) -- vbuz1=pbuc1_derefidx_vbuz2 + //SEG601 [272] (byte) keyboard_event_get::return#1 ← *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#4) -- vbuz1=pbuc1_derefidx_vbuz2 ldy keyboard_events_size lda keyboard_events,y sta return - //SEG603 [274] phi from keyboard_event_get::@3 to keyboard_event_get::@return [phi:keyboard_event_get::@3->keyboard_event_get::@return] + //SEG602 [273] phi from keyboard_event_get::@3 to keyboard_event_get::@return [phi:keyboard_event_get::@3->keyboard_event_get::@return] breturn_from_b3: - //SEG604 [274] phi (byte) keyboard_events_size#16 = (byte) keyboard_events_size#4 [phi:keyboard_event_get::@3->keyboard_event_get::@return#0] -- register_copy - //SEG605 [274] phi (byte) keyboard_event_get::return#2 = (byte) keyboard_event_get::return#1 [phi:keyboard_event_get::@3->keyboard_event_get::@return#1] -- register_copy + //SEG603 [273] phi (byte) keyboard_events_size#16 = (byte) keyboard_events_size#4 [phi:keyboard_event_get::@3->keyboard_event_get::@return#0] -- register_copy + //SEG604 [273] phi (byte) keyboard_event_get::return#2 = (byte) keyboard_event_get::return#1 [phi:keyboard_event_get::@3->keyboard_event_get::@return#1] -- register_copy jmp breturn - //SEG606 [274] phi from keyboard_event_get to keyboard_event_get::@return [phi:keyboard_event_get->keyboard_event_get::@return] + //SEG605 [273] phi from keyboard_event_get to keyboard_event_get::@return [phi:keyboard_event_get->keyboard_event_get::@return] breturn_from_keyboard_event_get: - //SEG607 [274] phi (byte) keyboard_events_size#16 = (byte) keyboard_events_size#13 [phi:keyboard_event_get->keyboard_event_get::@return#0] -- register_copy - //SEG608 [274] phi (byte) keyboard_event_get::return#2 = (byte/word/signed word/dword/signed dword) 255 [phi:keyboard_event_get->keyboard_event_get::@return#1] -- vbuz1=vbuc1 + //SEG606 [273] phi (byte) keyboard_events_size#16 = (byte) keyboard_events_size#13 [phi:keyboard_event_get->keyboard_event_get::@return#0] -- register_copy + //SEG607 [273] phi (byte) keyboard_event_get::return#2 = (byte/word/signed word/dword/signed dword) 255 [phi:keyboard_event_get->keyboard_event_get::@return#1] -- vbuz1=vbuc1 lda #$ff sta return jmp breturn - //SEG609 keyboard_event_get::@return + //SEG608 keyboard_event_get::@return breturn: - //SEG610 [275] return + //SEG609 [274] return rts } -//SEG611 keyboard_event_scan +//SEG610 keyboard_event_scan keyboard_event_scan: { - .label _3 = $9d - .label _4 = $9e - .label _11 = $a0 - .label _14 = $95 - .label _18 = $97 - .label _22 = $99 - .label _26 = $9b - .label row_scan = $93 + .label _3 = $9b + .label _4 = $9c + .label _11 = $9e + .label _14 = $93 + .label _18 = $95 + .label _22 = $97 + .label _26 = $99 + .label row_scan = $91 .label keycode = $3e .label row = $3b .label col = $3d - .label event_type = $9f - //SEG612 [277] phi from keyboard_event_scan to keyboard_event_scan::@1 [phi:keyboard_event_scan->keyboard_event_scan::@1] + .label event_type = $9d + //SEG611 [276] phi from keyboard_event_scan to keyboard_event_scan::@1 [phi:keyboard_event_scan->keyboard_event_scan::@1] b1_from_keyboard_event_scan: - //SEG613 [277] phi (byte) keyboard_events_size#29 = (byte) keyboard_events_size#19 [phi:keyboard_event_scan->keyboard_event_scan::@1#0] -- register_copy - //SEG614 [277] phi (byte) keyboard_event_scan::keycode#11 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:keyboard_event_scan->keyboard_event_scan::@1#1] -- vbuz1=vbuc1 + //SEG612 [276] phi (byte) keyboard_events_size#29 = (byte) keyboard_events_size#19 [phi:keyboard_event_scan->keyboard_event_scan::@1#0] -- register_copy + //SEG613 [276] phi (byte) keyboard_event_scan::keycode#11 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:keyboard_event_scan->keyboard_event_scan::@1#1] -- vbuz1=vbuc1 lda #0 sta keycode - //SEG615 [277] phi (byte) keyboard_event_scan::row#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:keyboard_event_scan->keyboard_event_scan::@1#2] -- vbuz1=vbuc1 + //SEG614 [276] phi (byte) keyboard_event_scan::row#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:keyboard_event_scan->keyboard_event_scan::@1#2] -- vbuz1=vbuc1 lda #0 sta row jmp b1 - //SEG616 [277] phi from keyboard_event_scan::@3 to keyboard_event_scan::@1 [phi:keyboard_event_scan::@3->keyboard_event_scan::@1] + //SEG615 [276] phi from keyboard_event_scan::@3 to keyboard_event_scan::@1 [phi:keyboard_event_scan::@3->keyboard_event_scan::@1] b1_from_b3: - //SEG617 [277] phi (byte) keyboard_events_size#29 = (byte) keyboard_events_size#13 [phi:keyboard_event_scan::@3->keyboard_event_scan::@1#0] -- register_copy - //SEG618 [277] phi (byte) keyboard_event_scan::keycode#11 = (byte) keyboard_event_scan::keycode#14 [phi:keyboard_event_scan::@3->keyboard_event_scan::@1#1] -- register_copy - //SEG619 [277] phi (byte) keyboard_event_scan::row#2 = (byte) keyboard_event_scan::row#1 [phi:keyboard_event_scan::@3->keyboard_event_scan::@1#2] -- register_copy + //SEG616 [276] phi (byte) keyboard_events_size#29 = (byte) keyboard_events_size#13 [phi:keyboard_event_scan::@3->keyboard_event_scan::@1#0] -- register_copy + //SEG617 [276] phi (byte) keyboard_event_scan::keycode#11 = (byte) keyboard_event_scan::keycode#14 [phi:keyboard_event_scan::@3->keyboard_event_scan::@1#1] -- register_copy + //SEG618 [276] phi (byte) keyboard_event_scan::row#2 = (byte) keyboard_event_scan::row#1 [phi:keyboard_event_scan::@3->keyboard_event_scan::@1#2] -- register_copy jmp b1 - //SEG620 keyboard_event_scan::@1 + //SEG619 keyboard_event_scan::@1 b1: - //SEG621 [278] (byte) keyboard_matrix_read::rowid#0 ← (byte) keyboard_event_scan::row#2 -- vbuz1=vbuz2 + //SEG620 [277] (byte) keyboard_matrix_read::rowid#0 ← (byte) keyboard_event_scan::row#2 -- vbuz1=vbuz2 lda row sta keyboard_matrix_read.rowid - //SEG622 [279] call keyboard_matrix_read + //SEG621 [278] call keyboard_matrix_read jsr keyboard_matrix_read - //SEG623 [280] (byte) keyboard_matrix_read::return#2 ← (byte) keyboard_matrix_read::return#0 -- vbuz1=vbuz2 + //SEG622 [279] (byte) keyboard_matrix_read::return#2 ← (byte) keyboard_matrix_read::return#0 -- vbuz1=vbuz2 lda keyboard_matrix_read.return sta keyboard_matrix_read.return_2 jmp b25 - //SEG624 keyboard_event_scan::@25 + //SEG623 keyboard_event_scan::@25 b25: - //SEG625 [281] (byte) keyboard_event_scan::row_scan#0 ← (byte) keyboard_matrix_read::return#2 -- vbuz1=vbuz2 + //SEG624 [280] (byte) keyboard_event_scan::row_scan#0 ← (byte) keyboard_matrix_read::return#2 -- vbuz1=vbuz2 lda keyboard_matrix_read.return_2 sta row_scan - //SEG626 [282] if((byte) keyboard_event_scan::row_scan#0!=*((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2)) goto keyboard_event_scan::@4 -- vbuz1_neq_pbuc1_derefidx_vbuz2_then_la1 + //SEG625 [281] if((byte) keyboard_event_scan::row_scan#0!=*((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2)) goto keyboard_event_scan::@4 -- vbuz1_neq_pbuc1_derefidx_vbuz2_then_la1 lda row_scan ldy row cmp keyboard_scan_values,y bne b4_from_b25 jmp b13 - //SEG627 keyboard_event_scan::@13 + //SEG626 keyboard_event_scan::@13 b13: - //SEG628 [283] (byte) keyboard_event_scan::keycode#1 ← (byte) keyboard_event_scan::keycode#11 + (byte/signed byte/word/signed word/dword/signed dword) 8 -- vbuz1=vbuz1_plus_vbuc1 + //SEG627 [282] (byte) keyboard_event_scan::keycode#1 ← (byte) keyboard_event_scan::keycode#11 + (byte/signed byte/word/signed word/dword/signed dword) 8 -- vbuz1=vbuz1_plus_vbuc1 lda #8 clc adc keycode sta keycode - //SEG629 [284] phi from keyboard_event_scan::@13 keyboard_event_scan::@19 to keyboard_event_scan::@3 [phi:keyboard_event_scan::@13/keyboard_event_scan::@19->keyboard_event_scan::@3] + //SEG628 [283] phi from keyboard_event_scan::@13 keyboard_event_scan::@19 to keyboard_event_scan::@3 [phi:keyboard_event_scan::@13/keyboard_event_scan::@19->keyboard_event_scan::@3] b3_from_b13: b3_from_b19: - //SEG630 [284] phi (byte) keyboard_events_size#13 = (byte) keyboard_events_size#29 [phi:keyboard_event_scan::@13/keyboard_event_scan::@19->keyboard_event_scan::@3#0] -- register_copy - //SEG631 [284] phi (byte) keyboard_event_scan::keycode#14 = (byte) keyboard_event_scan::keycode#1 [phi:keyboard_event_scan::@13/keyboard_event_scan::@19->keyboard_event_scan::@3#1] -- register_copy + //SEG629 [283] phi (byte) keyboard_events_size#13 = (byte) keyboard_events_size#29 [phi:keyboard_event_scan::@13/keyboard_event_scan::@19->keyboard_event_scan::@3#0] -- register_copy + //SEG630 [283] phi (byte) keyboard_event_scan::keycode#14 = (byte) keyboard_event_scan::keycode#1 [phi:keyboard_event_scan::@13/keyboard_event_scan::@19->keyboard_event_scan::@3#1] -- register_copy jmp b3 - //SEG632 keyboard_event_scan::@3 + //SEG631 keyboard_event_scan::@3 b3: - //SEG633 [285] (byte) keyboard_event_scan::row#1 ← ++ (byte) keyboard_event_scan::row#2 -- vbuz1=_inc_vbuz1 + //SEG632 [284] (byte) keyboard_event_scan::row#1 ← ++ (byte) keyboard_event_scan::row#2 -- vbuz1=_inc_vbuz1 inc row - //SEG634 [286] if((byte) keyboard_event_scan::row#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto keyboard_event_scan::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG633 [285] if((byte) keyboard_event_scan::row#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto keyboard_event_scan::@1 -- vbuz1_neq_vbuc1_then_la1 lda row cmp #8 bne b1_from_b3 - //SEG635 [287] phi from keyboard_event_scan::@3 to keyboard_event_scan::@20 [phi:keyboard_event_scan::@3->keyboard_event_scan::@20] + //SEG634 [286] phi from keyboard_event_scan::@3 to keyboard_event_scan::@20 [phi:keyboard_event_scan::@3->keyboard_event_scan::@20] b20_from_b3: jmp b20 - //SEG636 keyboard_event_scan::@20 + //SEG635 keyboard_event_scan::@20 b20: - //SEG637 [288] call keyboard_event_pressed - //SEG638 [265] phi from keyboard_event_scan::@20 to keyboard_event_pressed [phi:keyboard_event_scan::@20->keyboard_event_pressed] + //SEG636 [287] call keyboard_event_pressed + //SEG637 [264] phi from keyboard_event_scan::@20 to keyboard_event_pressed [phi:keyboard_event_scan::@20->keyboard_event_pressed] keyboard_event_pressed_from_b20: - //SEG639 [265] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_LSHIFT#0 [phi:keyboard_event_scan::@20->keyboard_event_pressed#0] -- vbuz1=vbuc1 + //SEG638 [264] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_LSHIFT#0 [phi:keyboard_event_scan::@20->keyboard_event_pressed#0] -- vbuz1=vbuc1 lda #KEY_LSHIFT sta keyboard_event_pressed.keycode jsr keyboard_event_pressed - //SEG640 [289] (byte) keyboard_event_pressed::return#0 ← (byte) keyboard_event_pressed::return#11 -- vbuz1=vbuz2 + //SEG639 [288] (byte) keyboard_event_pressed::return#0 ← (byte) keyboard_event_pressed::return#11 -- vbuz1=vbuz2 lda keyboard_event_pressed.return_11 sta keyboard_event_pressed.return jmp b26 - //SEG641 keyboard_event_scan::@26 + //SEG640 keyboard_event_scan::@26 b26: - //SEG642 [290] (byte~) keyboard_event_scan::$14 ← (byte) keyboard_event_pressed::return#0 -- vbuz1=vbuz2 + //SEG641 [289] (byte~) keyboard_event_scan::$14 ← (byte) keyboard_event_pressed::return#0 -- vbuz1=vbuz2 lda keyboard_event_pressed.return sta _14 - //SEG643 [291] if((byte~) keyboard_event_scan::$14==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@9 -- vbuz1_eq_0_then_la1 + //SEG642 [290] if((byte~) keyboard_event_scan::$14==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@9 -- vbuz1_eq_0_then_la1 lda _14 cmp #0 beq b9_from_b26 - //SEG644 [292] phi from keyboard_event_scan::@26 to keyboard_event_scan::@21 [phi:keyboard_event_scan::@26->keyboard_event_scan::@21] + //SEG643 [291] phi from keyboard_event_scan::@26 to keyboard_event_scan::@21 [phi:keyboard_event_scan::@26->keyboard_event_scan::@21] b21_from_b26: jmp b21 - //SEG645 keyboard_event_scan::@21 + //SEG644 keyboard_event_scan::@21 b21: - //SEG646 [293] phi from keyboard_event_scan::@21 to keyboard_event_scan::@9 [phi:keyboard_event_scan::@21->keyboard_event_scan::@9] + //SEG645 [292] phi from keyboard_event_scan::@21 to keyboard_event_scan::@9 [phi:keyboard_event_scan::@21->keyboard_event_scan::@9] b9_from_b21: - //SEG647 [293] phi (byte) keyboard_modifiers#11 = (byte/signed byte/word/signed word/dword/signed dword) 0|(const byte) KEY_MODIFIER_LSHIFT#0 [phi:keyboard_event_scan::@21->keyboard_event_scan::@9#0] -- vbuz1=vbuc1 + //SEG646 [292] phi (byte) keyboard_modifiers#11 = (byte/signed byte/word/signed word/dword/signed dword) 0|(const byte) KEY_MODIFIER_LSHIFT#0 [phi:keyboard_event_scan::@21->keyboard_event_scan::@9#0] -- vbuz1=vbuc1 lda #0|KEY_MODIFIER_LSHIFT sta keyboard_modifiers jmp b9 - //SEG648 [293] phi from keyboard_event_scan::@26 to keyboard_event_scan::@9 [phi:keyboard_event_scan::@26->keyboard_event_scan::@9] + //SEG647 [292] phi from keyboard_event_scan::@26 to keyboard_event_scan::@9 [phi:keyboard_event_scan::@26->keyboard_event_scan::@9] b9_from_b26: - //SEG649 [293] phi (byte) keyboard_modifiers#11 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:keyboard_event_scan::@26->keyboard_event_scan::@9#0] -- vbuz1=vbuc1 + //SEG648 [292] phi (byte) keyboard_modifiers#11 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:keyboard_event_scan::@26->keyboard_event_scan::@9#0] -- vbuz1=vbuc1 lda #0 sta keyboard_modifiers jmp b9 - //SEG650 keyboard_event_scan::@9 + //SEG649 keyboard_event_scan::@9 b9: - //SEG651 [294] call keyboard_event_pressed - //SEG652 [265] phi from keyboard_event_scan::@9 to keyboard_event_pressed [phi:keyboard_event_scan::@9->keyboard_event_pressed] + //SEG650 [293] call keyboard_event_pressed + //SEG651 [264] phi from keyboard_event_scan::@9 to keyboard_event_pressed [phi:keyboard_event_scan::@9->keyboard_event_pressed] keyboard_event_pressed_from_b9: - //SEG653 [265] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_RSHIFT#0 [phi:keyboard_event_scan::@9->keyboard_event_pressed#0] -- vbuz1=vbuc1 + //SEG652 [264] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_RSHIFT#0 [phi:keyboard_event_scan::@9->keyboard_event_pressed#0] -- vbuz1=vbuc1 lda #KEY_RSHIFT sta keyboard_event_pressed.keycode jsr keyboard_event_pressed - //SEG654 [295] (byte) keyboard_event_pressed::return#1 ← (byte) keyboard_event_pressed::return#11 -- vbuz1=vbuz2 + //SEG653 [294] (byte) keyboard_event_pressed::return#1 ← (byte) keyboard_event_pressed::return#11 -- vbuz1=vbuz2 lda keyboard_event_pressed.return_11 sta keyboard_event_pressed.return_1 jmp b27 - //SEG655 keyboard_event_scan::@27 + //SEG654 keyboard_event_scan::@27 b27: - //SEG656 [296] (byte~) keyboard_event_scan::$18 ← (byte) keyboard_event_pressed::return#1 -- vbuz1=vbuz2 + //SEG655 [295] (byte~) keyboard_event_scan::$18 ← (byte) keyboard_event_pressed::return#1 -- vbuz1=vbuz2 lda keyboard_event_pressed.return_1 sta _18 - //SEG657 [297] if((byte~) keyboard_event_scan::$18==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@10 -- vbuz1_eq_0_then_la1 + //SEG656 [296] if((byte~) keyboard_event_scan::$18==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@10 -- vbuz1_eq_0_then_la1 lda _18 cmp #0 beq b10_from_b27 jmp b22 - //SEG658 keyboard_event_scan::@22 + //SEG657 keyboard_event_scan::@22 b22: - //SEG659 [298] (byte) keyboard_modifiers#3 ← (byte) keyboard_modifiers#11 | (const byte) KEY_MODIFIER_RSHIFT#0 -- vbuz1=vbuz1_bor_vbuc1 + //SEG658 [297] (byte) keyboard_modifiers#3 ← (byte) keyboard_modifiers#11 | (const byte) KEY_MODIFIER_RSHIFT#0 -- vbuz1=vbuz1_bor_vbuc1 lda #KEY_MODIFIER_RSHIFT ora keyboard_modifiers sta keyboard_modifiers - //SEG660 [299] phi from keyboard_event_scan::@22 keyboard_event_scan::@27 to keyboard_event_scan::@10 [phi:keyboard_event_scan::@22/keyboard_event_scan::@27->keyboard_event_scan::@10] + //SEG659 [298] phi from keyboard_event_scan::@22 keyboard_event_scan::@27 to keyboard_event_scan::@10 [phi:keyboard_event_scan::@22/keyboard_event_scan::@27->keyboard_event_scan::@10] b10_from_b22: b10_from_b27: - //SEG661 [299] phi (byte) keyboard_modifiers#12 = (byte) keyboard_modifiers#3 [phi:keyboard_event_scan::@22/keyboard_event_scan::@27->keyboard_event_scan::@10#0] -- register_copy + //SEG660 [298] phi (byte) keyboard_modifiers#12 = (byte) keyboard_modifiers#3 [phi:keyboard_event_scan::@22/keyboard_event_scan::@27->keyboard_event_scan::@10#0] -- register_copy jmp b10 - //SEG662 keyboard_event_scan::@10 + //SEG661 keyboard_event_scan::@10 b10: - //SEG663 [300] call keyboard_event_pressed - //SEG664 [265] phi from keyboard_event_scan::@10 to keyboard_event_pressed [phi:keyboard_event_scan::@10->keyboard_event_pressed] + //SEG662 [299] call keyboard_event_pressed + //SEG663 [264] phi from keyboard_event_scan::@10 to keyboard_event_pressed [phi:keyboard_event_scan::@10->keyboard_event_pressed] keyboard_event_pressed_from_b10: - //SEG665 [265] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_CTRL#0 [phi:keyboard_event_scan::@10->keyboard_event_pressed#0] -- vbuz1=vbuc1 + //SEG664 [264] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_CTRL#0 [phi:keyboard_event_scan::@10->keyboard_event_pressed#0] -- vbuz1=vbuc1 lda #KEY_CTRL sta keyboard_event_pressed.keycode jsr keyboard_event_pressed - //SEG666 [301] (byte) keyboard_event_pressed::return#2 ← (byte) keyboard_event_pressed::return#11 -- vbuz1=vbuz2 + //SEG665 [300] (byte) keyboard_event_pressed::return#2 ← (byte) keyboard_event_pressed::return#11 -- vbuz1=vbuz2 lda keyboard_event_pressed.return_11 sta keyboard_event_pressed.return_2 jmp b28 - //SEG667 keyboard_event_scan::@28 + //SEG666 keyboard_event_scan::@28 b28: - //SEG668 [302] (byte~) keyboard_event_scan::$22 ← (byte) keyboard_event_pressed::return#2 -- vbuz1=vbuz2 + //SEG667 [301] (byte~) keyboard_event_scan::$22 ← (byte) keyboard_event_pressed::return#2 -- vbuz1=vbuz2 lda keyboard_event_pressed.return_2 sta _22 - //SEG669 [303] if((byte~) keyboard_event_scan::$22==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@11 -- vbuz1_eq_0_then_la1 + //SEG668 [302] if((byte~) keyboard_event_scan::$22==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@11 -- vbuz1_eq_0_then_la1 lda _22 cmp #0 beq b11_from_b28 jmp b23 - //SEG670 keyboard_event_scan::@23 + //SEG669 keyboard_event_scan::@23 b23: - //SEG671 [304] (byte) keyboard_modifiers#4 ← (byte) keyboard_modifiers#12 | (const byte) KEY_MODIFIER_CTRL#0 -- vbuz1=vbuz1_bor_vbuc1 + //SEG670 [303] (byte) keyboard_modifiers#4 ← (byte) keyboard_modifiers#12 | (const byte) KEY_MODIFIER_CTRL#0 -- vbuz1=vbuz1_bor_vbuc1 lda #KEY_MODIFIER_CTRL ora keyboard_modifiers sta keyboard_modifiers - //SEG672 [305] phi from keyboard_event_scan::@23 keyboard_event_scan::@28 to keyboard_event_scan::@11 [phi:keyboard_event_scan::@23/keyboard_event_scan::@28->keyboard_event_scan::@11] + //SEG671 [304] phi from keyboard_event_scan::@23 keyboard_event_scan::@28 to keyboard_event_scan::@11 [phi:keyboard_event_scan::@23/keyboard_event_scan::@28->keyboard_event_scan::@11] b11_from_b23: b11_from_b28: - //SEG673 [305] phi (byte) keyboard_modifiers#13 = (byte) keyboard_modifiers#4 [phi:keyboard_event_scan::@23/keyboard_event_scan::@28->keyboard_event_scan::@11#0] -- register_copy + //SEG672 [304] phi (byte) keyboard_modifiers#13 = (byte) keyboard_modifiers#4 [phi:keyboard_event_scan::@23/keyboard_event_scan::@28->keyboard_event_scan::@11#0] -- register_copy jmp b11 - //SEG674 keyboard_event_scan::@11 + //SEG673 keyboard_event_scan::@11 b11: - //SEG675 [306] call keyboard_event_pressed - //SEG676 [265] phi from keyboard_event_scan::@11 to keyboard_event_pressed [phi:keyboard_event_scan::@11->keyboard_event_pressed] + //SEG674 [305] call keyboard_event_pressed + //SEG675 [264] phi from keyboard_event_scan::@11 to keyboard_event_pressed [phi:keyboard_event_scan::@11->keyboard_event_pressed] keyboard_event_pressed_from_b11: - //SEG677 [265] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_COMMODORE#0 [phi:keyboard_event_scan::@11->keyboard_event_pressed#0] -- vbuz1=vbuc1 + //SEG676 [264] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_COMMODORE#0 [phi:keyboard_event_scan::@11->keyboard_event_pressed#0] -- vbuz1=vbuc1 lda #KEY_COMMODORE sta keyboard_event_pressed.keycode jsr keyboard_event_pressed - //SEG678 [307] (byte) keyboard_event_pressed::return#10 ← (byte) keyboard_event_pressed::return#11 -- vbuz1=vbuz2 + //SEG677 [306] (byte) keyboard_event_pressed::return#10 ← (byte) keyboard_event_pressed::return#11 -- vbuz1=vbuz2 lda keyboard_event_pressed.return_11 sta keyboard_event_pressed.return_10 jmp b29 - //SEG679 keyboard_event_scan::@29 + //SEG678 keyboard_event_scan::@29 b29: - //SEG680 [308] (byte~) keyboard_event_scan::$26 ← (byte) keyboard_event_pressed::return#10 -- vbuz1=vbuz2 + //SEG679 [307] (byte~) keyboard_event_scan::$26 ← (byte) keyboard_event_pressed::return#10 -- vbuz1=vbuz2 lda keyboard_event_pressed.return_10 sta _26 - //SEG681 [309] if((byte~) keyboard_event_scan::$26==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@return -- vbuz1_eq_0_then_la1 + //SEG680 [308] if((byte~) keyboard_event_scan::$26==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@return -- vbuz1_eq_0_then_la1 lda _26 cmp #0 beq breturn jmp b24 - //SEG682 keyboard_event_scan::@24 + //SEG681 keyboard_event_scan::@24 b24: - //SEG683 [310] (byte) keyboard_modifiers#5 ← (byte) keyboard_modifiers#13 | (const byte) KEY_MODIFIER_COMMODORE#0 -- vbuz1=vbuz2_bor_vbuc1 + //SEG682 [309] (byte) keyboard_modifiers#5 ← (byte) keyboard_modifiers#13 | (const byte) KEY_MODIFIER_COMMODORE#0 -- vbuz1=vbuz2_bor_vbuc1 lda #KEY_MODIFIER_COMMODORE ora keyboard_modifiers sta keyboard_modifiers_5 jmp breturn - //SEG684 keyboard_event_scan::@return + //SEG683 keyboard_event_scan::@return breturn: - //SEG685 [311] return + //SEG684 [310] return rts - //SEG686 [312] phi from keyboard_event_scan::@25 to keyboard_event_scan::@4 [phi:keyboard_event_scan::@25->keyboard_event_scan::@4] + //SEG685 [311] phi from keyboard_event_scan::@25 to keyboard_event_scan::@4 [phi:keyboard_event_scan::@25->keyboard_event_scan::@4] b4_from_b25: - //SEG687 [312] phi (byte) keyboard_events_size#10 = (byte) keyboard_events_size#29 [phi:keyboard_event_scan::@25->keyboard_event_scan::@4#0] -- register_copy - //SEG688 [312] phi (byte) keyboard_event_scan::keycode#10 = (byte) keyboard_event_scan::keycode#11 [phi:keyboard_event_scan::@25->keyboard_event_scan::@4#1] -- register_copy - //SEG689 [312] phi (byte) keyboard_event_scan::col#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:keyboard_event_scan::@25->keyboard_event_scan::@4#2] -- vbuz1=vbuc1 + //SEG686 [311] phi (byte) keyboard_events_size#10 = (byte) keyboard_events_size#29 [phi:keyboard_event_scan::@25->keyboard_event_scan::@4#0] -- register_copy + //SEG687 [311] phi (byte) keyboard_event_scan::keycode#10 = (byte) keyboard_event_scan::keycode#11 [phi:keyboard_event_scan::@25->keyboard_event_scan::@4#1] -- register_copy + //SEG688 [311] phi (byte) keyboard_event_scan::col#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:keyboard_event_scan::@25->keyboard_event_scan::@4#2] -- vbuz1=vbuc1 lda #0 sta col jmp b4 - //SEG690 [312] phi from keyboard_event_scan::@5 to keyboard_event_scan::@4 [phi:keyboard_event_scan::@5->keyboard_event_scan::@4] + //SEG689 [311] phi from keyboard_event_scan::@5 to keyboard_event_scan::@4 [phi:keyboard_event_scan::@5->keyboard_event_scan::@4] b4_from_b5: - //SEG691 [312] phi (byte) keyboard_events_size#10 = (byte) keyboard_events_size#30 [phi:keyboard_event_scan::@5->keyboard_event_scan::@4#0] -- register_copy - //SEG692 [312] phi (byte) keyboard_event_scan::keycode#10 = (byte) keyboard_event_scan::keycode#15 [phi:keyboard_event_scan::@5->keyboard_event_scan::@4#1] -- register_copy - //SEG693 [312] phi (byte) keyboard_event_scan::col#2 = (byte) keyboard_event_scan::col#1 [phi:keyboard_event_scan::@5->keyboard_event_scan::@4#2] -- register_copy + //SEG690 [311] phi (byte) keyboard_events_size#10 = (byte) keyboard_events_size#30 [phi:keyboard_event_scan::@5->keyboard_event_scan::@4#0] -- register_copy + //SEG691 [311] phi (byte) keyboard_event_scan::keycode#10 = (byte) keyboard_event_scan::keycode#15 [phi:keyboard_event_scan::@5->keyboard_event_scan::@4#1] -- register_copy + //SEG692 [311] phi (byte) keyboard_event_scan::col#2 = (byte) keyboard_event_scan::col#1 [phi:keyboard_event_scan::@5->keyboard_event_scan::@4#2] -- register_copy jmp b4 - //SEG694 keyboard_event_scan::@4 + //SEG693 keyboard_event_scan::@4 b4: - //SEG695 [313] (byte~) keyboard_event_scan::$3 ← (byte) keyboard_event_scan::row_scan#0 ^ *((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2) -- vbuz1=vbuz2_bxor_pbuc1_derefidx_vbuz3 + //SEG694 [312] (byte~) keyboard_event_scan::$3 ← (byte) keyboard_event_scan::row_scan#0 ^ *((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2) -- vbuz1=vbuz2_bxor_pbuc1_derefidx_vbuz3 lda row_scan ldy row eor keyboard_scan_values,y sta _3 - //SEG696 [314] (byte~) keyboard_event_scan::$4 ← (byte~) keyboard_event_scan::$3 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_event_scan::col#2) -- vbuz1=vbuz2_band_pbuc1_derefidx_vbuz3 + //SEG695 [313] (byte~) keyboard_event_scan::$4 ← (byte~) keyboard_event_scan::$3 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_event_scan::col#2) -- vbuz1=vbuz2_band_pbuc1_derefidx_vbuz3 lda _3 ldy col and keyboard_matrix_col_bitmask,y sta _4 - //SEG697 [315] if((byte~) keyboard_event_scan::$4==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@5 -- vbuz1_eq_0_then_la1 + //SEG696 [314] if((byte~) keyboard_event_scan::$4==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@5 -- vbuz1_eq_0_then_la1 lda _4 cmp #0 beq b5_from_b4 jmp b15 - //SEG698 keyboard_event_scan::@15 + //SEG697 keyboard_event_scan::@15 b15: - //SEG699 [316] if((byte) keyboard_events_size#10==(byte/signed byte/word/signed word/dword/signed dword) 8) goto keyboard_event_scan::@5 -- vbuz1_eq_vbuc1_then_la1 + //SEG698 [315] if((byte) keyboard_events_size#10==(byte/signed byte/word/signed word/dword/signed dword) 8) goto keyboard_event_scan::@5 -- vbuz1_eq_vbuc1_then_la1 lda keyboard_events_size cmp #8 beq b5_from_b15 jmp b16 - //SEG700 keyboard_event_scan::@16 + //SEG699 keyboard_event_scan::@16 b16: - //SEG701 [317] (byte) keyboard_event_scan::event_type#0 ← (byte) keyboard_event_scan::row_scan#0 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_event_scan::col#2) -- vbuz1=vbuz2_band_pbuc1_derefidx_vbuz3 + //SEG700 [316] (byte) keyboard_event_scan::event_type#0 ← (byte) keyboard_event_scan::row_scan#0 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_event_scan::col#2) -- vbuz1=vbuz2_band_pbuc1_derefidx_vbuz3 lda row_scan ldy col and keyboard_matrix_col_bitmask,y sta event_type - //SEG702 [318] if((byte) keyboard_event_scan::event_type#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@7 -- vbuz1_eq_0_then_la1 + //SEG701 [317] if((byte) keyboard_event_scan::event_type#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@7 -- vbuz1_eq_0_then_la1 lda event_type cmp #0 beq b7 jmp b17 - //SEG703 keyboard_event_scan::@17 + //SEG702 keyboard_event_scan::@17 b17: - //SEG704 [319] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte) keyboard_event_scan::keycode#10 -- pbuc1_derefidx_vbuz1=vbuz2 + //SEG703 [318] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte) keyboard_event_scan::keycode#10 -- pbuc1_derefidx_vbuz1=vbuz2 lda keycode ldy keyboard_events_size sta keyboard_events,y - //SEG705 [320] (byte) keyboard_events_size#2 ← ++ (byte) keyboard_events_size#10 -- vbuz1=_inc_vbuz1 + //SEG704 [319] (byte) keyboard_events_size#2 ← ++ (byte) keyboard_events_size#10 -- vbuz1=_inc_vbuz1 inc keyboard_events_size - //SEG706 [321] phi from keyboard_event_scan::@15 keyboard_event_scan::@17 keyboard_event_scan::@4 keyboard_event_scan::@7 to keyboard_event_scan::@5 [phi:keyboard_event_scan::@15/keyboard_event_scan::@17/keyboard_event_scan::@4/keyboard_event_scan::@7->keyboard_event_scan::@5] + //SEG705 [320] phi from keyboard_event_scan::@15 keyboard_event_scan::@17 keyboard_event_scan::@4 keyboard_event_scan::@7 to keyboard_event_scan::@5 [phi:keyboard_event_scan::@15/keyboard_event_scan::@17/keyboard_event_scan::@4/keyboard_event_scan::@7->keyboard_event_scan::@5] b5_from_b15: b5_from_b17: b5_from_b4: b5_from_b7: - //SEG707 [321] phi (byte) keyboard_events_size#30 = (byte) keyboard_events_size#10 [phi:keyboard_event_scan::@15/keyboard_event_scan::@17/keyboard_event_scan::@4/keyboard_event_scan::@7->keyboard_event_scan::@5#0] -- register_copy + //SEG706 [320] phi (byte) keyboard_events_size#30 = (byte) keyboard_events_size#10 [phi:keyboard_event_scan::@15/keyboard_event_scan::@17/keyboard_event_scan::@4/keyboard_event_scan::@7->keyboard_event_scan::@5#0] -- register_copy jmp b5 - //SEG708 keyboard_event_scan::@5 + //SEG707 keyboard_event_scan::@5 b5: - //SEG709 [322] (byte) keyboard_event_scan::keycode#15 ← ++ (byte) keyboard_event_scan::keycode#10 -- vbuz1=_inc_vbuz1 + //SEG708 [321] (byte) keyboard_event_scan::keycode#15 ← ++ (byte) keyboard_event_scan::keycode#10 -- vbuz1=_inc_vbuz1 inc keycode - //SEG710 [323] (byte) keyboard_event_scan::col#1 ← ++ (byte) keyboard_event_scan::col#2 -- vbuz1=_inc_vbuz1 + //SEG709 [322] (byte) keyboard_event_scan::col#1 ← ++ (byte) keyboard_event_scan::col#2 -- vbuz1=_inc_vbuz1 inc col - //SEG711 [324] if((byte) keyboard_event_scan::col#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto keyboard_event_scan::@4 -- vbuz1_neq_vbuc1_then_la1 + //SEG710 [323] if((byte) keyboard_event_scan::col#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto keyboard_event_scan::@4 -- vbuz1_neq_vbuc1_then_la1 lda col cmp #8 bne b4_from_b5 jmp b19 - //SEG712 keyboard_event_scan::@19 + //SEG711 keyboard_event_scan::@19 b19: - //SEG713 [325] *((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2) ← (byte) keyboard_event_scan::row_scan#0 -- pbuc1_derefidx_vbuz1=vbuz2 + //SEG712 [324] *((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2) ← (byte) keyboard_event_scan::row_scan#0 -- pbuc1_derefidx_vbuz1=vbuz2 lda row_scan ldy row sta keyboard_scan_values,y jmp b3_from_b19 - //SEG714 keyboard_event_scan::@7 + //SEG713 keyboard_event_scan::@7 b7: - //SEG715 [326] (byte/word/dword~) keyboard_event_scan::$11 ← (byte) keyboard_event_scan::keycode#10 | (byte/signed byte/word/signed word/dword/signed dword) 64 -- vbuz1=vbuz2_bor_vbuc1 + //SEG714 [325] (byte/word/dword~) keyboard_event_scan::$11 ← (byte) keyboard_event_scan::keycode#10 | (byte/signed byte/word/signed word/dword/signed dword) 64 -- vbuz1=vbuz2_bor_vbuc1 lda #$40 ora keycode sta _11 - //SEG716 [327] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte/word/dword~) keyboard_event_scan::$11 -- pbuc1_derefidx_vbuz1=vbuz2 + //SEG715 [326] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte/word/dword~) keyboard_event_scan::$11 -- pbuc1_derefidx_vbuz1=vbuz2 lda _11 ldy keyboard_events_size sta keyboard_events,y - //SEG717 [328] (byte) keyboard_events_size#1 ← ++ (byte) keyboard_events_size#10 -- vbuz1=_inc_vbuz1 + //SEG716 [327] (byte) keyboard_events_size#1 ← ++ (byte) keyboard_events_size#10 -- vbuz1=_inc_vbuz1 inc keyboard_events_size jmp b5_from_b7 } -//SEG718 keyboard_matrix_read +//SEG717 keyboard_matrix_read keyboard_matrix_read: { - .label return = $a1 - .label rowid = $91 - .label return_2 = $92 - //SEG719 [329] *((const byte*) CIA1_PORT_A#0) ← *((const byte[8]) keyboard_matrix_row_bitmask#0 + (byte) keyboard_matrix_read::rowid#0) -- _deref_pbuc1=pbuc2_derefidx_vbuz1 + .label return = $9f + .label rowid = $8f + .label return_2 = $90 + //SEG718 [328] *((const byte*) CIA1_PORT_A#0) ← *((const byte[8]) keyboard_matrix_row_bitmask#0 + (byte) keyboard_matrix_read::rowid#0) -- _deref_pbuc1=pbuc2_derefidx_vbuz1 ldy rowid lda keyboard_matrix_row_bitmask,y sta CIA1_PORT_A - //SEG720 [330] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) -- vbuz1=_bnot__deref_pbuc1 + //SEG719 [329] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) -- vbuz1=_bnot__deref_pbuc1 lda CIA1_PORT_B eor #$ff sta return jmp breturn - //SEG721 keyboard_matrix_read::@return + //SEG720 keyboard_matrix_read::@return breturn: - //SEG722 [331] return + //SEG721 [330] return rts } -//SEG723 render_show +//SEG722 render_show render_show: { .const toD0181_return = (>(PLAYFIELD_SCREEN_1&$3fff)<<2)|(>PLAYFIELD_CHARSET)>>2&$f .const toD0182_return = (>(PLAYFIELD_SCREEN_2&$3fff)<<2)|(>PLAYFIELD_CHARSET)>>2&$f .label d018val = $40 - //SEG724 [332] if((byte) render_screen_show#16==(byte/signed byte/word/signed word/dword/signed dword) 0) goto render_show::toD0181 -- vbuz1_eq_0_then_la1 + //SEG723 [331] if((byte) render_screen_show#16==(byte/signed byte/word/signed word/dword/signed dword) 0) goto render_show::toD0181 -- vbuz1_eq_0_then_la1 lda render_screen_show cmp #0 beq toD0181_from_render_show - //SEG725 [333] phi from render_show to render_show::toD0182 [phi:render_show->render_show::toD0182] + //SEG724 [332] phi from render_show to render_show::toD0182 [phi:render_show->render_show::toD0182] toD0182_from_render_show: jmp toD0182 - //SEG726 render_show::toD0182 + //SEG725 render_show::toD0182 toD0182: - //SEG727 [334] phi from render_show::toD0182 to render_show::@2 [phi:render_show::toD0182->render_show::@2] + //SEG726 [333] phi from render_show::toD0182 to render_show::@2 [phi:render_show::toD0182->render_show::@2] b2_from_toD0182: - //SEG728 [334] phi (byte) render_show::d018val#3 = (const byte) render_show::toD0182_return#0 [phi:render_show::toD0182->render_show::@2#0] -- vbuz1=vbuc1 + //SEG727 [333] phi (byte) render_show::d018val#3 = (const byte) render_show::toD0182_return#0 [phi:render_show::toD0182->render_show::@2#0] -- vbuz1=vbuc1 lda #toD0182_return sta d018val jmp b2 - //SEG729 render_show::@2 + //SEG728 render_show::@2 b2: - //SEG730 [335] *((const byte*) D018#0) ← (byte) render_show::d018val#3 -- _deref_pbuc1=vbuz1 + //SEG729 [334] *((const byte*) D018#0) ← (byte) render_show::d018val#3 -- _deref_pbuc1=vbuz1 lda d018val sta D018 - //SEG731 [336] (byte) render_screen_showing#1 ← (byte) render_screen_show#16 -- vbuz1=vbuz2 + //SEG730 [335] (byte) render_screen_showing#1 ← (byte) render_screen_show#16 -- vbuz1=vbuz2 lda render_screen_show sta render_screen_showing_1 jmp breturn - //SEG732 render_show::@return + //SEG731 render_show::@return breturn: - //SEG733 [337] return + //SEG732 [336] return rts - //SEG734 [338] phi from render_show to render_show::toD0181 [phi:render_show->render_show::toD0181] + //SEG733 [337] phi from render_show to render_show::toD0181 [phi:render_show->render_show::toD0181] toD0181_from_render_show: jmp toD0181 - //SEG735 render_show::toD0181 + //SEG734 render_show::toD0181 toD0181: - //SEG736 [334] phi from render_show::toD0181 to render_show::@2 [phi:render_show::toD0181->render_show::@2] + //SEG735 [333] phi from render_show::toD0181 to render_show::@2 [phi:render_show::toD0181->render_show::@2] b2_from_toD0181: - //SEG737 [334] phi (byte) render_show::d018val#3 = (const byte) render_show::toD0181_return#0 [phi:render_show::toD0181->render_show::@2#0] -- vbuz1=vbuc1 + //SEG736 [333] phi (byte) render_show::d018val#3 = (const byte) render_show::toD0181_return#0 [phi:render_show::toD0181->render_show::@2#0] -- vbuz1=vbuc1 lda #toD0181_return sta d018val jmp b2 } -//SEG738 play_init +//SEG737 play_init play_init: { - .label _1 = $a3 + .label _1 = $a1 .label pli = $42 .label idx = $44 .label j = $41 - //SEG739 [340] phi from play_init to play_init::@1 [phi:play_init->play_init::@1] + //SEG738 [339] phi from play_init to play_init::@1 [phi:play_init->play_init::@1] b1_from_play_init: - //SEG740 [340] phi (byte) play_init::idx#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_init->play_init::@1#0] -- vbuz1=vbuc1 + //SEG739 [339] phi (byte) play_init::idx#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_init->play_init::@1#0] -- vbuz1=vbuc1 lda #0 sta idx - //SEG741 [340] phi (byte*) play_init::pli#2 = (const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 [phi:play_init->play_init::@1#1] -- pbuz1=pbuc1 + //SEG740 [339] phi (byte*) play_init::pli#2 = (const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 [phi:play_init->play_init::@1#1] -- pbuz1=pbuc1 lda #playfield sta pli+1 - //SEG742 [340] phi (byte) play_init::j#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_init->play_init::@1#2] -- vbuz1=vbuc1 + //SEG741 [339] phi (byte) play_init::j#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_init->play_init::@1#2] -- vbuz1=vbuc1 lda #0 sta j jmp b1 - //SEG743 [340] phi from play_init::@1 to play_init::@1 [phi:play_init::@1->play_init::@1] + //SEG742 [339] phi from play_init::@1 to play_init::@1 [phi:play_init::@1->play_init::@1] b1_from_b1: - //SEG744 [340] phi (byte) play_init::idx#2 = (byte) play_init::idx#1 [phi:play_init::@1->play_init::@1#0] -- register_copy - //SEG745 [340] phi (byte*) play_init::pli#2 = (byte*) play_init::pli#1 [phi:play_init::@1->play_init::@1#1] -- register_copy - //SEG746 [340] phi (byte) play_init::j#2 = (byte) play_init::j#1 [phi:play_init::@1->play_init::@1#2] -- register_copy + //SEG743 [339] phi (byte) play_init::idx#2 = (byte) play_init::idx#1 [phi:play_init::@1->play_init::@1#0] -- register_copy + //SEG744 [339] phi (byte*) play_init::pli#2 = (byte*) play_init::pli#1 [phi:play_init::@1->play_init::@1#1] -- register_copy + //SEG745 [339] phi (byte) play_init::j#2 = (byte) play_init::j#1 [phi:play_init::@1->play_init::@1#2] -- register_copy jmp b1 - //SEG747 play_init::@1 + //SEG746 play_init::@1 b1: - //SEG748 [341] (byte~) play_init::$1 ← (byte) play_init::j#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_rol_1 + //SEG747 [340] (byte~) play_init::$1 ← (byte) play_init::j#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_rol_1 lda j asl sta _1 - //SEG749 [342] *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte~) play_init::$1) ← (byte*) play_init::pli#2 -- pptc1_derefidx_vbuz1=pbuz2 + //SEG748 [341] *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte~) play_init::$1) ← (byte*) play_init::pli#2 -- pptc1_derefidx_vbuz1=pbuz2 ldy _1 lda pli sta playfield_lines,y lda pli+1 sta playfield_lines+1,y - //SEG750 [343] *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0 + (byte) play_init::j#2) ← (byte) play_init::idx#2 -- pbuc1_derefidx_vbuz1=vbuz2 + //SEG749 [342] *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0 + (byte) play_init::j#2) ← (byte) play_init::idx#2 -- pbuc1_derefidx_vbuz1=vbuz2 lda idx ldy j sta playfield_lines_idx,y - //SEG751 [344] (byte*) play_init::pli#1 ← (byte*) play_init::pli#2 + (const byte) PLAYFIELD_COLS#0 -- pbuz1=pbuz1_plus_vbuc1 + //SEG750 [343] (byte*) play_init::pli#1 ← (byte*) play_init::pli#2 + (const byte) PLAYFIELD_COLS#0 -- pbuz1=pbuz1_plus_vbuc1 lda pli clc adc #PLAYFIELD_COLS @@ -11350,246 +11272,246 @@ play_init: { bcc !+ inc pli+1 !: - //SEG752 [345] (byte) play_init::idx#1 ← (byte) play_init::idx#2 + (const byte) PLAYFIELD_COLS#0 -- vbuz1=vbuz1_plus_vbuc1 + //SEG751 [344] (byte) play_init::idx#1 ← (byte) play_init::idx#2 + (const byte) PLAYFIELD_COLS#0 -- vbuz1=vbuz1_plus_vbuc1 lda #PLAYFIELD_COLS clc adc idx sta idx - //SEG753 [346] (byte) play_init::j#1 ← ++ (byte) play_init::j#2 -- vbuz1=_inc_vbuz1 + //SEG752 [345] (byte) play_init::j#1 ← ++ (byte) play_init::j#2 -- vbuz1=_inc_vbuz1 inc j - //SEG754 [347] if((byte) play_init::j#1!=(const byte) PLAYFIELD_LINES#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto play_init::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG753 [346] if((byte) play_init::j#1!=(const byte) PLAYFIELD_LINES#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto play_init::@1 -- vbuz1_neq_vbuc1_then_la1 lda j cmp #PLAYFIELD_LINES-1+1 bne b1_from_b1 jmp b2 - //SEG755 play_init::@2 + //SEG754 play_init::@2 b2: - //SEG756 [348] *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0+(const byte) PLAYFIELD_LINES#0) ← (const byte) PLAYFIELD_COLS#0*(const byte) PLAYFIELD_LINES#0 -- _deref_pbuc1=vbuc2 + //SEG755 [347] *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0+(const byte) PLAYFIELD_LINES#0) ← (const byte) PLAYFIELD_COLS#0*(const byte) PLAYFIELD_LINES#0 -- _deref_pbuc1=vbuc2 lda #PLAYFIELD_COLS*PLAYFIELD_LINES sta playfield_lines_idx+PLAYFIELD_LINES jmp breturn - //SEG757 play_init::@return + //SEG756 play_init::@return breturn: - //SEG758 [349] return + //SEG757 [348] return rts } -//SEG759 sprites_irq_init +//SEG758 sprites_irq_init sprites_irq_init: { - //SEG760 asm { sei } + //SEG759 asm { sei } sei - //SEG761 [351] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0 -- _deref_pbuc1=vbuc2 + //SEG760 [350] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0 -- _deref_pbuc1=vbuc2 lda #IRQ_RASTER sta IRQ_STATUS - //SEG762 asm { ldaCIA1_INTERRUPT } + //SEG761 asm { ldaCIA1_INTERRUPT } lda CIA1_INTERRUPT - //SEG763 [353] *((const byte*) PROCPORT_DDR#0) ← (const byte) PROCPORT_DDR_MEMORY_MASK#0 -- _deref_pbuc1=vbuc2 + //SEG762 [352] *((const byte*) PROCPORT_DDR#0) ← (const byte) PROCPORT_DDR_MEMORY_MASK#0 -- _deref_pbuc1=vbuc2 lda #PROCPORT_DDR_MEMORY_MASK sta PROCPORT_DDR - //SEG764 [354] *((const byte*) PROCPORT#0) ← (const byte) PROCPORT_RAM_IO#0 -- _deref_pbuc1=vbuc2 + //SEG763 [353] *((const byte*) PROCPORT#0) ← (const byte) PROCPORT_RAM_IO#0 -- _deref_pbuc1=vbuc2 lda #PROCPORT_RAM_IO sta PROCPORT - //SEG765 [355] *((const byte*) CIA1_INTERRUPT#0) ← (const byte) CIA_INTERRUPT_CLEAR#0 -- _deref_pbuc1=vbuc2 + //SEG764 [354] *((const byte*) CIA1_INTERRUPT#0) ← (const byte) CIA_INTERRUPT_CLEAR#0 -- _deref_pbuc1=vbuc2 lda #CIA_INTERRUPT_CLEAR sta CIA1_INTERRUPT - //SEG766 [356] *((const byte*) VIC_CONTROL#0) ← *((const byte*) VIC_CONTROL#0) & (byte/signed byte/word/signed word/dword/signed dword) 127 -- _deref_pbuc1=_deref_pbuc1_band_vbuc2 + //SEG765 [355] *((const byte*) VIC_CONTROL#0) ← *((const byte*) VIC_CONTROL#0) & (byte/signed byte/word/signed word/dword/signed dword) 127 -- _deref_pbuc1=_deref_pbuc1_band_vbuc2 lda VIC_CONTROL and #$7f sta VIC_CONTROL - //SEG767 [357] *((const byte*) RASTER#0) ← (const byte) IRQ_RASTER_FIRST#0 -- _deref_pbuc1=vbuc2 + //SEG766 [356] *((const byte*) RASTER#0) ← (const byte) IRQ_RASTER_FIRST#0 -- _deref_pbuc1=vbuc2 lda #IRQ_RASTER_FIRST sta RASTER - //SEG768 [358] *((const byte*) IRQ_ENABLE#0) ← (const byte) IRQ_RASTER#0 -- _deref_pbuc1=vbuc2 + //SEG767 [357] *((const byte*) IRQ_ENABLE#0) ← (const byte) IRQ_RASTER#0 -- _deref_pbuc1=vbuc2 lda #IRQ_RASTER sta IRQ_ENABLE - //SEG769 [359] *((const void()**) HARDWARE_IRQ#0) ← &interrupt(HARDWARE_CLOBBER)(void()) sprites_irq() -- _deref_pptc1=pprc2 + //SEG768 [358] *((const void()**) HARDWARE_IRQ#0) ← &interrupt(HARDWARE_CLOBBER)(void()) sprites_irq() -- _deref_pptc1=pprc2 lda #sprites_irq sta HARDWARE_IRQ+1 - //SEG770 asm { cli } + //SEG769 asm { cli } cli jmp breturn - //SEG771 sprites_irq_init::@return + //SEG770 sprites_irq_init::@return breturn: - //SEG772 [361] return + //SEG771 [360] return rts } -//SEG773 sprites_init +//SEG772 sprites_init sprites_init: { - .label s2 = $a4 + .label s2 = $a2 .label xpos = $46 .label s = $45 - //SEG774 [362] *((const byte*) SPRITES_ENABLE#0) ← (byte/signed byte/word/signed word/dword/signed dword) 15 -- _deref_pbuc1=vbuc2 + //SEG773 [361] *((const byte*) SPRITES_ENABLE#0) ← (byte/signed byte/word/signed word/dword/signed dword) 15 -- _deref_pbuc1=vbuc2 lda #$f sta SPRITES_ENABLE - //SEG775 [363] *((const byte*) SPRITES_MC#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2 + //SEG774 [362] *((const byte*) SPRITES_MC#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2 lda #0 sta SPRITES_MC - //SEG776 [364] *((const byte*) SPRITES_EXPAND_Y#0) ← *((const byte*) SPRITES_MC#0) -- _deref_pbuc1=_deref_pbuc2 + //SEG775 [363] *((const byte*) SPRITES_EXPAND_Y#0) ← *((const byte*) SPRITES_MC#0) -- _deref_pbuc1=_deref_pbuc2 lda SPRITES_MC sta SPRITES_EXPAND_Y - //SEG777 [365] *((const byte*) SPRITES_EXPAND_X#0) ← *((const byte*) SPRITES_EXPAND_Y#0) -- _deref_pbuc1=_deref_pbuc2 + //SEG776 [364] *((const byte*) SPRITES_EXPAND_X#0) ← *((const byte*) SPRITES_EXPAND_Y#0) -- _deref_pbuc1=_deref_pbuc2 lda SPRITES_EXPAND_Y sta SPRITES_EXPAND_X - //SEG778 [366] phi from sprites_init to sprites_init::@1 [phi:sprites_init->sprites_init::@1] + //SEG777 [365] phi from sprites_init to sprites_init::@1 [phi:sprites_init->sprites_init::@1] b1_from_sprites_init: - //SEG779 [366] phi (byte) sprites_init::xpos#2 = (byte/signed byte/word/signed word/dword/signed dword) 24+(byte/signed byte/word/signed word/dword/signed dword) 15*(byte/signed byte/word/signed word/dword/signed dword) 8 [phi:sprites_init->sprites_init::@1#0] -- vbuz1=vbuc1 + //SEG778 [365] phi (byte) sprites_init::xpos#2 = (byte/signed byte/word/signed word/dword/signed dword) 24+(byte/signed byte/word/signed word/dword/signed dword) 15*(byte/signed byte/word/signed word/dword/signed dword) 8 [phi:sprites_init->sprites_init::@1#0] -- vbuz1=vbuc1 lda #$18+$f*8 sta xpos - //SEG780 [366] phi (byte) sprites_init::s#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:sprites_init->sprites_init::@1#1] -- vbuz1=vbuc1 + //SEG779 [365] phi (byte) sprites_init::s#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:sprites_init->sprites_init::@1#1] -- vbuz1=vbuc1 lda #0 sta s jmp b1 - //SEG781 [366] phi from sprites_init::@1 to sprites_init::@1 [phi:sprites_init::@1->sprites_init::@1] + //SEG780 [365] phi from sprites_init::@1 to sprites_init::@1 [phi:sprites_init::@1->sprites_init::@1] b1_from_b1: - //SEG782 [366] phi (byte) sprites_init::xpos#2 = (byte) sprites_init::xpos#1 [phi:sprites_init::@1->sprites_init::@1#0] -- register_copy - //SEG783 [366] phi (byte) sprites_init::s#2 = (byte) sprites_init::s#1 [phi:sprites_init::@1->sprites_init::@1#1] -- register_copy + //SEG781 [365] phi (byte) sprites_init::xpos#2 = (byte) sprites_init::xpos#1 [phi:sprites_init::@1->sprites_init::@1#0] -- register_copy + //SEG782 [365] phi (byte) sprites_init::s#2 = (byte) sprites_init::s#1 [phi:sprites_init::@1->sprites_init::@1#1] -- register_copy jmp b1 - //SEG784 sprites_init::@1 + //SEG783 sprites_init::@1 b1: - //SEG785 [367] (byte) sprites_init::s2#0 ← (byte) sprites_init::s#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_rol_1 + //SEG784 [366] (byte) sprites_init::s2#0 ← (byte) sprites_init::s#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_rol_1 lda s asl sta s2 - //SEG786 [368] *((const byte*) SPRITES_XPOS#0 + (byte) sprites_init::s2#0) ← (byte) sprites_init::xpos#2 -- pbuc1_derefidx_vbuz1=vbuz2 + //SEG785 [367] *((const byte*) SPRITES_XPOS#0 + (byte) sprites_init::s2#0) ← (byte) sprites_init::xpos#2 -- pbuc1_derefidx_vbuz1=vbuz2 lda xpos ldy s2 sta SPRITES_XPOS,y - //SEG787 [369] *((const byte*) SPRITES_COLS#0 + (byte) sprites_init::s#2) ← (const byte) BLACK#0 -- pbuc1_derefidx_vbuz1=vbuc2 + //SEG786 [368] *((const byte*) SPRITES_COLS#0 + (byte) sprites_init::s#2) ← (const byte) BLACK#0 -- pbuc1_derefidx_vbuz1=vbuc2 ldy s lda #BLACK sta SPRITES_COLS,y - //SEG788 [370] (byte) sprites_init::xpos#1 ← (byte) sprites_init::xpos#2 + (byte/signed byte/word/signed word/dword/signed dword) 24 -- vbuz1=vbuz1_plus_vbuc1 + //SEG787 [369] (byte) sprites_init::xpos#1 ← (byte) sprites_init::xpos#2 + (byte/signed byte/word/signed word/dword/signed dword) 24 -- vbuz1=vbuz1_plus_vbuc1 lda #$18 clc adc xpos sta xpos - //SEG789 [371] (byte) sprites_init::s#1 ← ++ (byte) sprites_init::s#2 -- vbuz1=_inc_vbuz1 + //SEG788 [370] (byte) sprites_init::s#1 ← ++ (byte) sprites_init::s#2 -- vbuz1=_inc_vbuz1 inc s - //SEG790 [372] if((byte) sprites_init::s#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto sprites_init::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG789 [371] if((byte) sprites_init::s#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto sprites_init::@1 -- vbuz1_neq_vbuc1_then_la1 lda s cmp #4 bne b1_from_b1 jmp breturn - //SEG791 sprites_init::@return + //SEG790 sprites_init::@return breturn: - //SEG792 [373] return + //SEG791 [372] return rts } -//SEG793 render_init +//SEG792 render_init render_init: { .const vicSelectGfxBank1_toDd001_return = 3^(>PLAYFIELD_CHARSET)>>6 - .label _13 = $a5 - .label _14 = $a6 + .label _13 = $a3 + .label _14 = $a4 .label li_1 = $48 .label li_2 = $4a .label i = $47 jmp vicSelectGfxBank1 - //SEG794 render_init::vicSelectGfxBank1 + //SEG793 render_init::vicSelectGfxBank1 vicSelectGfxBank1: - //SEG795 [375] *((const byte*) CIA2_PORT_A_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3 -- _deref_pbuc1=vbuc2 + //SEG794 [374] *((const byte*) CIA2_PORT_A_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3 -- _deref_pbuc1=vbuc2 lda #3 sta CIA2_PORT_A_DDR - //SEG796 [376] phi from render_init::vicSelectGfxBank1 to render_init::vicSelectGfxBank1_toDd001 [phi:render_init::vicSelectGfxBank1->render_init::vicSelectGfxBank1_toDd001] + //SEG795 [375] 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 - //SEG797 render_init::vicSelectGfxBank1_toDd001 + //SEG796 render_init::vicSelectGfxBank1_toDd001 vicSelectGfxBank1_toDd001: jmp vicSelectGfxBank1_b1 - //SEG798 render_init::vicSelectGfxBank1_@1 + //SEG797 render_init::vicSelectGfxBank1_@1 vicSelectGfxBank1_b1: - //SEG799 [377] *((const byte*) CIA2_PORT_A#0) ← (const byte) render_init::vicSelectGfxBank1_toDd001_return#0 -- _deref_pbuc1=vbuc2 + //SEG798 [376] *((const byte*) CIA2_PORT_A#0) ← (const byte) render_init::vicSelectGfxBank1_toDd001_return#0 -- _deref_pbuc1=vbuc2 lda #vicSelectGfxBank1_toDd001_return sta CIA2_PORT_A jmp b3 - //SEG800 render_init::@3 + //SEG799 render_init::@3 b3: - //SEG801 [378] *((const byte*) D011#0) ← (const byte) VIC_ECM#0|(const byte) VIC_DEN#0|(const byte) VIC_RSEL#0|(byte/signed byte/word/signed word/dword/signed dword) 3 -- _deref_pbuc1=vbuc2 + //SEG800 [377] *((const byte*) D011#0) ← (const byte) VIC_ECM#0|(const byte) VIC_DEN#0|(const byte) VIC_RSEL#0|(byte/signed byte/word/signed word/dword/signed dword) 3 -- _deref_pbuc1=vbuc2 lda #VIC_ECM|VIC_DEN|VIC_RSEL|3 sta D011 - //SEG802 [379] *((const byte*) BORDERCOL#0) ← (const byte) BLACK#0 -- _deref_pbuc1=vbuc2 + //SEG801 [378] *((const byte*) BORDERCOL#0) ← (const byte) BLACK#0 -- _deref_pbuc1=vbuc2 lda #BLACK sta BORDERCOL - //SEG803 [380] *((const byte*) BGCOL1#0) ← (const byte) BLACK#0 -- _deref_pbuc1=vbuc2 + //SEG802 [379] *((const byte*) BGCOL1#0) ← (const byte) BLACK#0 -- _deref_pbuc1=vbuc2 lda #BLACK sta BGCOL1 - //SEG804 [381] *((const byte*) BGCOL2#0) ← (const byte) BLUE#0 -- _deref_pbuc1=vbuc2 + //SEG803 [380] *((const byte*) BGCOL2#0) ← (const byte) BLUE#0 -- _deref_pbuc1=vbuc2 lda #BLUE sta BGCOL2 - //SEG805 [382] *((const byte*) BGCOL3#0) ← (const byte) CYAN#0 -- _deref_pbuc1=vbuc2 + //SEG804 [381] *((const byte*) BGCOL3#0) ← (const byte) CYAN#0 -- _deref_pbuc1=vbuc2 lda #CYAN sta BGCOL3 - //SEG806 [383] *((const byte*) BGCOL4#0) ← (const byte) GREY#0 -- _deref_pbuc1=vbuc2 + //SEG805 [382] *((const byte*) BGCOL4#0) ← (const byte) GREY#0 -- _deref_pbuc1=vbuc2 lda #GREY sta BGCOL4 - //SEG807 [384] call render_screen_original - //SEG808 [397] phi from render_init::@3 to render_screen_original [phi:render_init::@3->render_screen_original] + //SEG806 [383] call render_screen_original + //SEG807 [396] phi from render_init::@3 to render_screen_original [phi:render_init::@3->render_screen_original] render_screen_original_from_b3: - //SEG809 [397] phi (byte*) render_screen_original::screen#9 = (const byte*) PLAYFIELD_SCREEN_1#0 [phi:render_init::@3->render_screen_original#0] -- pbuz1=pbuc1 + //SEG808 [396] phi (byte*) render_screen_original::screen#9 = (const byte*) PLAYFIELD_SCREEN_1#0 [phi:render_init::@3->render_screen_original#0] -- pbuz1=pbuc1 lda #PLAYFIELD_SCREEN_1 sta render_screen_original.screen+1 jsr render_screen_original - //SEG810 [385] phi from render_init::@3 to render_init::@4 [phi:render_init::@3->render_init::@4] + //SEG809 [384] phi from render_init::@3 to render_init::@4 [phi:render_init::@3->render_init::@4] b4_from_b3: jmp b4 - //SEG811 render_init::@4 + //SEG810 render_init::@4 b4: - //SEG812 [386] call render_screen_original - //SEG813 [397] phi from render_init::@4 to render_screen_original [phi:render_init::@4->render_screen_original] + //SEG811 [385] call render_screen_original + //SEG812 [396] phi from render_init::@4 to render_screen_original [phi:render_init::@4->render_screen_original] render_screen_original_from_b4: - //SEG814 [397] phi (byte*) render_screen_original::screen#9 = (const byte*) PLAYFIELD_SCREEN_2#0 [phi:render_init::@4->render_screen_original#0] -- pbuz1=pbuc1 + //SEG813 [396] phi (byte*) render_screen_original::screen#9 = (const byte*) PLAYFIELD_SCREEN_2#0 [phi:render_init::@4->render_screen_original#0] -- pbuz1=pbuc1 lda #PLAYFIELD_SCREEN_2 sta render_screen_original.screen+1 jsr render_screen_original - //SEG815 [387] phi from render_init::@4 to render_init::@1 [phi:render_init::@4->render_init::@1] + //SEG814 [386] phi from render_init::@4 to render_init::@1 [phi:render_init::@4->render_init::@1] b1_from_b4: - //SEG816 [387] phi (byte*) render_init::li_2#2 = (const byte*) PLAYFIELD_SCREEN_2#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 16 [phi:render_init::@4->render_init::@1#0] -- pbuz1=pbuc1 + //SEG815 [386] phi (byte*) render_init::li_2#2 = (const byte*) PLAYFIELD_SCREEN_2#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 16 [phi:render_init::@4->render_init::@1#0] -- pbuz1=pbuc1 lda #PLAYFIELD_SCREEN_2+2*$28+$10 sta li_2+1 - //SEG817 [387] phi (byte*) render_init::li_1#2 = (const byte*) PLAYFIELD_SCREEN_1#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 16 [phi:render_init::@4->render_init::@1#1] -- pbuz1=pbuc1 + //SEG816 [386] phi (byte*) render_init::li_1#2 = (const byte*) PLAYFIELD_SCREEN_1#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 16 [phi:render_init::@4->render_init::@1#1] -- pbuz1=pbuc1 lda #PLAYFIELD_SCREEN_1+2*$28+$10 sta li_1+1 - //SEG818 [387] phi (byte) render_init::i#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_init::@4->render_init::@1#2] -- vbuz1=vbuc1 + //SEG817 [386] phi (byte) render_init::i#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_init::@4->render_init::@1#2] -- vbuz1=vbuc1 lda #0 sta i jmp b1 - //SEG819 [387] phi from render_init::@1 to render_init::@1 [phi:render_init::@1->render_init::@1] + //SEG818 [386] phi from render_init::@1 to render_init::@1 [phi:render_init::@1->render_init::@1] b1_from_b1: - //SEG820 [387] phi (byte*) render_init::li_2#2 = (byte*) render_init::li_2#1 [phi:render_init::@1->render_init::@1#0] -- register_copy - //SEG821 [387] phi (byte*) render_init::li_1#2 = (byte*) render_init::li_1#1 [phi:render_init::@1->render_init::@1#1] -- register_copy - //SEG822 [387] phi (byte) render_init::i#2 = (byte) render_init::i#1 [phi:render_init::@1->render_init::@1#2] -- register_copy + //SEG819 [386] phi (byte*) render_init::li_2#2 = (byte*) render_init::li_2#1 [phi:render_init::@1->render_init::@1#0] -- register_copy + //SEG820 [386] phi (byte*) render_init::li_1#2 = (byte*) render_init::li_1#1 [phi:render_init::@1->render_init::@1#1] -- register_copy + //SEG821 [386] phi (byte) render_init::i#2 = (byte) render_init::i#1 [phi:render_init::@1->render_init::@1#2] -- register_copy jmp b1 - //SEG823 render_init::@1 + //SEG822 render_init::@1 b1: - //SEG824 [388] (byte~) render_init::$13 ← (byte) render_init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_rol_1 + //SEG823 [387] (byte~) render_init::$13 ← (byte) render_init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_rol_1 lda i asl sta _13 - //SEG825 [389] *((const byte*[PLAYFIELD_LINES#0]) screen_lines_1#0 + (byte~) render_init::$13) ← (byte*) render_init::li_1#2 -- pptc1_derefidx_vbuz1=pbuz2 + //SEG824 [388] *((const byte*[PLAYFIELD_LINES#0]) screen_lines_1#0 + (byte~) render_init::$13) ← (byte*) render_init::li_1#2 -- pptc1_derefidx_vbuz1=pbuz2 ldy _13 lda li_1 sta screen_lines_1,y lda li_1+1 sta screen_lines_1+1,y - //SEG826 [390] (byte~) render_init::$14 ← (byte) render_init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_rol_1 + //SEG825 [389] (byte~) render_init::$14 ← (byte) render_init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_rol_1 lda i asl sta _14 - //SEG827 [391] *((const byte*[PLAYFIELD_LINES#0]) screen_lines_2#0 + (byte~) render_init::$14) ← (byte*) render_init::li_2#2 -- pptc1_derefidx_vbuz1=pbuz2 + //SEG826 [390] *((const byte*[PLAYFIELD_LINES#0]) screen_lines_2#0 + (byte~) render_init::$14) ← (byte*) render_init::li_2#2 -- pptc1_derefidx_vbuz1=pbuz2 ldy _14 lda li_2 sta screen_lines_2,y lda li_2+1 sta screen_lines_2+1,y - //SEG828 [392] (byte*) render_init::li_1#1 ← (byte*) render_init::li_1#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 -- pbuz1=pbuz1_plus_vbuc1 + //SEG827 [391] (byte*) render_init::li_1#1 ← (byte*) render_init::li_1#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 -- pbuz1=pbuz1_plus_vbuc1 lda li_1 clc adc #$28 @@ -11597,7 +11519,7 @@ render_init: { bcc !+ inc li_1+1 !: - //SEG829 [393] (byte*) render_init::li_2#1 ← (byte*) render_init::li_2#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 -- pbuz1=pbuz1_plus_vbuc1 + //SEG828 [392] (byte*) render_init::li_2#1 ← (byte*) render_init::li_2#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 -- pbuz1=pbuz1_plus_vbuc1 lda li_2 clc adc #$28 @@ -11605,390 +11527,349 @@ render_init: { bcc !+ inc li_2+1 !: - //SEG830 [394] (byte) render_init::i#1 ← ++ (byte) render_init::i#2 -- vbuz1=_inc_vbuz1 + //SEG829 [393] (byte) render_init::i#1 ← ++ (byte) render_init::i#2 -- vbuz1=_inc_vbuz1 inc i - //SEG831 [395] if((byte) render_init::i#1!=(const byte) PLAYFIELD_LINES#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_init::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG830 [394] if((byte) render_init::i#1!=(const byte) PLAYFIELD_LINES#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_init::@1 -- vbuz1_neq_vbuc1_then_la1 lda i cmp #PLAYFIELD_LINES-1+1 bne b1_from_b1 jmp breturn - //SEG832 render_init::@return + //SEG831 render_init::@return breturn: - //SEG833 [396] return + //SEG832 [395] return rts } -//SEG834 render_screen_original +//SEG833 render_screen_original render_screen_original: { .const SPACE = 0 - .label _8 = $a8 - .label _10 = $aa - .label screen = $53 - .label cols = $55 - .label x = $57 - .label c = $a7 + .label screen = $51 + .label cols = $53 + .label x = $55 .label oscr = $4d - .label ext = $a9 - .label oext = $4f - .label ocols = $51 + .label ocols = $4f .label y = $4c - //SEG835 [398] phi from render_screen_original to render_screen_original::@1 [phi:render_screen_original->render_screen_original::@1] + //SEG834 [397] phi from render_screen_original to render_screen_original::@1 [phi:render_screen_original->render_screen_original::@1] b1_from_render_screen_original: - //SEG836 [398] phi (byte) render_screen_original::y#6 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_screen_original->render_screen_original::@1#0] -- vbuz1=vbuc1 + //SEG835 [397] phi (byte) render_screen_original::y#6 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_screen_original->render_screen_original::@1#0] -- vbuz1=vbuc1 lda #0 sta y - //SEG837 [398] phi (byte*) render_screen_original::ocols#4 = (const byte*) PLAYFIELD_COLORS_ORIGINAL#0+(byte/signed byte/word/signed word/dword/signed dword) 32*(byte/signed byte/word/signed word/dword/signed dword) 2 [phi:render_screen_original->render_screen_original::@1#1] -- pbuz1=pbuc1 + //SEG836 [397] phi (byte*) render_screen_original::ocols#4 = (const byte*) PLAYFIELD_COLORS_ORIGINAL#0+(byte/signed byte/word/signed word/dword/signed dword) 32*(byte/signed byte/word/signed word/dword/signed dword) 2 [phi:render_screen_original->render_screen_original::@1#1] -- pbuz1=pbuc1 lda #PLAYFIELD_COLORS_ORIGINAL+$20*2 sta ocols+1 - //SEG838 [398] phi (byte*) render_screen_original::oext#4 = (const byte*) PLAYFIELD_EXTENDED_ORIGINAL#0+(byte/signed byte/word/signed word/dword/signed dword) 32*(byte/signed byte/word/signed word/dword/signed dword) 2 [phi:render_screen_original->render_screen_original::@1#2] -- pbuz1=pbuc1 - lda #PLAYFIELD_EXTENDED_ORIGINAL+$20*2 - sta oext+1 - //SEG839 [398] phi (byte*) render_screen_original::oscr#4 = (const byte*) PLAYFIELD_SCREEN_ORIGINAL#0+(byte/signed byte/word/signed word/dword/signed dword) 32*(byte/signed byte/word/signed word/dword/signed dword) 2 [phi:render_screen_original->render_screen_original::@1#3] -- pbuz1=pbuc1 + //SEG837 [397] phi (byte*) render_screen_original::oscr#4 = (const byte*) PLAYFIELD_SCREEN_ORIGINAL#0+(byte/signed byte/word/signed word/dword/signed dword) 32*(byte/signed byte/word/signed word/dword/signed dword) 2 [phi:render_screen_original->render_screen_original::@1#2] -- pbuz1=pbuc1 lda #PLAYFIELD_SCREEN_ORIGINAL+$20*2 sta oscr+1 - //SEG840 [398] phi (byte*) render_screen_original::cols#7 = (const byte*) COLS#0 [phi:render_screen_original->render_screen_original::@1#4] -- pbuz1=pbuc1 + //SEG838 [397] phi (byte*) render_screen_original::cols#7 = (const byte*) COLS#0 [phi:render_screen_original->render_screen_original::@1#3] -- pbuz1=pbuc1 lda #COLS sta cols+1 - //SEG841 [398] phi (byte*) render_screen_original::screen#8 = (byte*) render_screen_original::screen#9 [phi:render_screen_original->render_screen_original::@1#5] -- register_copy + //SEG839 [397] 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 - //SEG842 [398] phi from render_screen_original::@7 to render_screen_original::@1 [phi:render_screen_original::@7->render_screen_original::@1] + //SEG840 [397] phi from render_screen_original::@7 to render_screen_original::@1 [phi:render_screen_original::@7->render_screen_original::@1] b1_from_b7: - //SEG843 [398] phi (byte) render_screen_original::y#6 = (byte) render_screen_original::y#1 [phi:render_screen_original::@7->render_screen_original::@1#0] -- register_copy - //SEG844 [398] phi (byte*) render_screen_original::ocols#4 = (byte*) render_screen_original::ocols#1 [phi:render_screen_original::@7->render_screen_original::@1#1] -- register_copy - //SEG845 [398] phi (byte*) render_screen_original::oext#4 = (byte*) render_screen_original::oext#1 [phi:render_screen_original::@7->render_screen_original::@1#2] -- register_copy - //SEG846 [398] phi (byte*) render_screen_original::oscr#4 = (byte*) render_screen_original::oscr#1 [phi:render_screen_original::@7->render_screen_original::@1#3] -- register_copy - //SEG847 [398] phi (byte*) render_screen_original::cols#7 = (byte*) render_screen_original::cols#3 [phi:render_screen_original::@7->render_screen_original::@1#4] -- register_copy - //SEG848 [398] phi (byte*) render_screen_original::screen#8 = (byte*) render_screen_original::screen#10 [phi:render_screen_original::@7->render_screen_original::@1#5] -- register_copy + //SEG841 [397] phi (byte) render_screen_original::y#6 = (byte) render_screen_original::y#1 [phi:render_screen_original::@7->render_screen_original::@1#0] -- register_copy + //SEG842 [397] phi (byte*) render_screen_original::ocols#4 = (byte*) render_screen_original::ocols#1 [phi:render_screen_original::@7->render_screen_original::@1#1] -- register_copy + //SEG843 [397] phi (byte*) render_screen_original::oscr#4 = (byte*) render_screen_original::oscr#1 [phi:render_screen_original::@7->render_screen_original::@1#2] -- register_copy + //SEG844 [397] phi (byte*) render_screen_original::cols#7 = (byte*) render_screen_original::cols#3 [phi:render_screen_original::@7->render_screen_original::@1#3] -- register_copy + //SEG845 [397] phi (byte*) render_screen_original::screen#8 = (byte*) render_screen_original::screen#10 [phi:render_screen_original::@7->render_screen_original::@1#4] -- register_copy jmp b1 - //SEG849 render_screen_original::@1 + //SEG846 render_screen_original::@1 b1: - //SEG850 [399] phi from render_screen_original::@1 to render_screen_original::@2 [phi:render_screen_original::@1->render_screen_original::@2] + //SEG847 [398] phi from render_screen_original::@1 to render_screen_original::@2 [phi:render_screen_original::@1->render_screen_original::@2] b2_from_b1: - //SEG851 [399] phi (byte) render_screen_original::x#4 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_screen_original::@1->render_screen_original::@2#0] -- vbuz1=vbuc1 + //SEG848 [398] phi (byte) render_screen_original::x#4 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_screen_original::@1->render_screen_original::@2#0] -- vbuz1=vbuc1 lda #0 sta x - //SEG852 [399] 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 - //SEG853 [399] 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 + //SEG849 [398] 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 + //SEG850 [398] 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 - //SEG854 [399] phi from render_screen_original::@2 to render_screen_original::@2 [phi:render_screen_original::@2->render_screen_original::@2] + //SEG851 [398] phi from render_screen_original::@2 to render_screen_original::@2 [phi:render_screen_original::@2->render_screen_original::@2] b2_from_b2: - //SEG855 [399] 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 - //SEG856 [399] 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 - //SEG857 [399] 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 + //SEG852 [398] 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 + //SEG853 [398] 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 + //SEG854 [398] 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 - //SEG858 render_screen_original::@2 + //SEG855 render_screen_original::@2 b2: - //SEG859 [400] *((byte*) render_screen_original::screen#5) ← (const byte) render_screen_original::SPACE#0 -- _deref_pbuz1=vbuc1 + //SEG856 [399] *((byte*) render_screen_original::screen#5) ← (const byte) render_screen_original::SPACE#0 -- _deref_pbuz1=vbuc1 lda #SPACE ldy #0 sta (screen),y - //SEG860 [401] (byte*) render_screen_original::screen#2 ← ++ (byte*) render_screen_original::screen#5 -- pbuz1=_inc_pbuz1 + //SEG857 [400] (byte*) render_screen_original::screen#2 ← ++ (byte*) render_screen_original::screen#5 -- pbuz1=_inc_pbuz1 inc screen bne !+ inc screen+1 !: - //SEG861 [402] *((byte*) render_screen_original::cols#4) ← (const byte) BLACK#0 -- _deref_pbuz1=vbuc1 + //SEG858 [401] *((byte*) render_screen_original::cols#4) ← (const byte) BLACK#0 -- _deref_pbuz1=vbuc1 lda #BLACK ldy #0 sta (cols),y - //SEG862 [403] (byte*) render_screen_original::cols#1 ← ++ (byte*) render_screen_original::cols#4 -- pbuz1=_inc_pbuz1 + //SEG859 [402] (byte*) render_screen_original::cols#1 ← ++ (byte*) render_screen_original::cols#4 -- pbuz1=_inc_pbuz1 inc cols bne !+ inc cols+1 !: - //SEG863 [404] (byte) render_screen_original::x#1 ← ++ (byte) render_screen_original::x#4 -- vbuz1=_inc_vbuz1 + //SEG860 [403] (byte) render_screen_original::x#1 ← ++ (byte) render_screen_original::x#4 -- vbuz1=_inc_vbuz1 inc x - //SEG864 [405] if((byte) render_screen_original::x#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_screen_original::@2 -- vbuz1_neq_vbuc1_then_la1 + //SEG861 [404] if((byte) render_screen_original::x#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_screen_original::@2 -- vbuz1_neq_vbuc1_then_la1 lda x cmp #4 bne b2_from_b2 - //SEG865 [406] 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] + //SEG862 [405] 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: - //SEG866 [406] 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 - //SEG867 [406] 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 - //SEG868 [406] 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 - //SEG869 [406] 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 - //SEG870 [406] phi (byte*) render_screen_original::oext#2 = (byte*) render_screen_original::oext#4 [phi:render_screen_original::@2/render_screen_original::@3->render_screen_original::@3#4] -- register_copy - //SEG871 [406] 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#5] -- register_copy + //SEG863 [405] 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 + //SEG864 [405] 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 + //SEG865 [405] 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 + //SEG866 [405] 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 + //SEG867 [405] 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 - //SEG872 render_screen_original::@3 + //SEG868 render_screen_original::@3 b3: - //SEG873 [407] (byte) render_screen_original::c#0 ← *((byte*) render_screen_original::oscr#2) + (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=_deref_pbuz2_plus_1 + //SEG869 [406] *((byte*) render_screen_original::screen#6) ← *((byte*) render_screen_original::oscr#2) -- _deref_pbuz1=_deref_pbuz2 ldy #0 lda (oscr),y - clc - adc #1 - sta c - //SEG874 [408] (byte*) render_screen_original::oscr#1 ← ++ (byte*) render_screen_original::oscr#2 -- pbuz1=_inc_pbuz1 + ldy #0 + sta (screen),y + //SEG870 [407] (byte*) render_screen_original::screen#3 ← ++ (byte*) render_screen_original::screen#6 -- pbuz1=_inc_pbuz1 + inc screen + bne !+ + inc screen+1 + !: + //SEG871 [408] (byte*) render_screen_original::oscr#1 ← ++ (byte*) render_screen_original::oscr#2 -- pbuz1=_inc_pbuz1 inc oscr bne !+ inc oscr+1 !: - //SEG875 [409] (byte/signed word/word/dword/signed dword~) render_screen_original::$8 ← *((byte*) render_screen_original::oext#2) - (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=_deref_pbuz2_minus_1 - ldy #0 - lda (oext),y - sec - sbc #1 - sta _8 - //SEG876 [410] (byte) render_screen_original::ext#0 ← (byte/signed word/word/dword/signed dword~) render_screen_original::$8 << (byte/signed byte/word/signed word/dword/signed dword) 6 -- vbuz1=vbuz2_rol_6 - lda _8 - asl - asl - asl - asl - asl - asl - sta ext - //SEG877 [411] (byte*) render_screen_original::oext#1 ← ++ (byte*) render_screen_original::oext#2 -- pbuz1=_inc_pbuz1 - inc oext - bne !+ - inc oext+1 - !: - //SEG878 [412] (byte~) render_screen_original::$10 ← (byte) render_screen_original::c#0 | (byte) render_screen_original::ext#0 -- vbuz1=vbuz2_bor_vbuz3 - lda c - ora ext - sta _10 - //SEG879 [413] *((byte*) render_screen_original::screen#6) ← (byte~) render_screen_original::$10 -- _deref_pbuz1=vbuz2 - lda _10 - ldy #0 - sta (screen),y - //SEG880 [414] (byte*) render_screen_original::screen#3 ← ++ (byte*) render_screen_original::screen#6 -- pbuz1=_inc_pbuz1 - inc screen - bne !+ - inc screen+1 - !: - //SEG881 [415] *((byte*) render_screen_original::cols#5) ← *((byte*) render_screen_original::ocols#2) -- _deref_pbuz1=_deref_pbuz2 + //SEG872 [409] *((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 - //SEG882 [416] (byte*) render_screen_original::cols#2 ← ++ (byte*) render_screen_original::cols#5 -- pbuz1=_inc_pbuz1 + //SEG873 [410] (byte*) render_screen_original::cols#2 ← ++ (byte*) render_screen_original::cols#5 -- pbuz1=_inc_pbuz1 inc cols bne !+ inc cols+1 !: - //SEG883 [417] (byte*) render_screen_original::ocols#1 ← ++ (byte*) render_screen_original::ocols#2 -- pbuz1=_inc_pbuz1 + //SEG874 [411] (byte*) render_screen_original::ocols#1 ← ++ (byte*) render_screen_original::ocols#2 -- pbuz1=_inc_pbuz1 inc ocols bne !+ inc ocols+1 !: - //SEG884 [418] (byte) render_screen_original::x#2 ← ++ (byte) render_screen_original::x#5 -- vbuz1=_inc_vbuz1 + //SEG875 [412] (byte) render_screen_original::x#2 ← ++ (byte) render_screen_original::x#5 -- vbuz1=_inc_vbuz1 inc x - //SEG885 [419] if((byte) render_screen_original::x#2!=(byte/signed byte/word/signed word/dword/signed dword) 36) goto render_screen_original::@3 -- vbuz1_neq_vbuc1_then_la1 + //SEG876 [413] if((byte) render_screen_original::x#2!=(byte/signed byte/word/signed word/dword/signed dword) 36) goto render_screen_original::@3 -- vbuz1_neq_vbuc1_then_la1 lda x cmp #$24 bne b3_from_b3 - //SEG886 [420] 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] + //SEG877 [414] 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: - //SEG887 [420] 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 - //SEG888 [420] 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 - //SEG889 [420] 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 + //SEG878 [414] 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 + //SEG879 [414] 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 + //SEG880 [414] 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 - //SEG890 render_screen_original::@4 + //SEG881 render_screen_original::@4 b4: - //SEG891 [421] *((byte*) render_screen_original::screen#7) ← (const byte) render_screen_original::SPACE#0 -- _deref_pbuz1=vbuc1 + //SEG882 [415] *((byte*) render_screen_original::screen#7) ← (const byte) render_screen_original::SPACE#0 -- _deref_pbuz1=vbuc1 lda #SPACE ldy #0 sta (screen),y - //SEG892 [422] (byte*) render_screen_original::screen#10 ← ++ (byte*) render_screen_original::screen#7 -- pbuz1=_inc_pbuz1 + //SEG883 [416] (byte*) render_screen_original::screen#10 ← ++ (byte*) render_screen_original::screen#7 -- pbuz1=_inc_pbuz1 inc screen bne !+ inc screen+1 !: - //SEG893 [423] *((byte*) render_screen_original::cols#6) ← (const byte) BLACK#0 -- _deref_pbuz1=vbuc1 + //SEG884 [417] *((byte*) render_screen_original::cols#6) ← (const byte) BLACK#0 -- _deref_pbuz1=vbuc1 lda #BLACK ldy #0 sta (cols),y - //SEG894 [424] (byte*) render_screen_original::cols#3 ← ++ (byte*) render_screen_original::cols#6 -- pbuz1=_inc_pbuz1 + //SEG885 [418] (byte*) render_screen_original::cols#3 ← ++ (byte*) render_screen_original::cols#6 -- pbuz1=_inc_pbuz1 inc cols bne !+ inc cols+1 !: - //SEG895 [425] (byte) render_screen_original::x#3 ← ++ (byte) render_screen_original::x#6 -- vbuz1=_inc_vbuz1 + //SEG886 [419] (byte) render_screen_original::x#3 ← ++ (byte) render_screen_original::x#6 -- vbuz1=_inc_vbuz1 inc x - //SEG896 [426] if((byte) render_screen_original::x#3!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto render_screen_original::@4 -- vbuz1_neq_vbuc1_then_la1 + //SEG887 [420] if((byte) render_screen_original::x#3!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto render_screen_original::@4 -- vbuz1_neq_vbuc1_then_la1 lda x cmp #$28 bne b4_from_b4 jmp b7 - //SEG897 render_screen_original::@7 + //SEG888 render_screen_original::@7 b7: - //SEG898 [427] (byte) render_screen_original::y#1 ← ++ (byte) render_screen_original::y#6 -- vbuz1=_inc_vbuz1 + //SEG889 [421] (byte) render_screen_original::y#1 ← ++ (byte) render_screen_original::y#6 -- vbuz1=_inc_vbuz1 inc y - //SEG899 [428] if((byte) render_screen_original::y#1!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto render_screen_original::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG890 [422] if((byte) render_screen_original::y#1!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto render_screen_original::@1 -- vbuz1_neq_vbuc1_then_la1 lda y cmp #$19 bne b1_from_b7 jmp breturn - //SEG900 render_screen_original::@return + //SEG891 render_screen_original::@return breturn: - //SEG901 [429] return + //SEG892 [423] return rts } -//SEG902 sid_rnd_init +//SEG893 sid_rnd_init sid_rnd_init: { - //SEG903 [430] *((const word*) SID_VOICE3_FREQ#0) ← (word/dword/signed dword) 65535 -- _deref_pwuc1=vwuc2 + //SEG894 [424] *((const word*) SID_VOICE3_FREQ#0) ← (word/dword/signed dword) 65535 -- _deref_pwuc1=vwuc2 lda #<$ffff sta SID_VOICE3_FREQ lda #>$ffff sta SID_VOICE3_FREQ+1 - //SEG904 [431] *((const byte*) SID_VOICE3_CONTROL#0) ← (const byte) SID_CONTROL_NOISE#0 -- _deref_pbuc1=vbuc2 + //SEG895 [425] *((const byte*) SID_VOICE3_CONTROL#0) ← (const byte) SID_CONTROL_NOISE#0 -- _deref_pbuc1=vbuc2 lda #SID_CONTROL_NOISE sta SID_VOICE3_CONTROL jmp breturn - //SEG905 sid_rnd_init::@return + //SEG896 sid_rnd_init::@return breturn: - //SEG906 [432] return + //SEG897 [426] return rts } -//SEG907 sprites_irq +//SEG898 sprites_irq sprites_irq: { .const toSpritePtr2_return = PLAYFIELD_SPRITES>>6 - .label _4 = $b2 - .label ypos = $ab - .label ptr = $ac - .label ptr_1 = $b6 - .label ptr_2 = $b7 - .label ptr_3 = $ad - .label ptr_4 = $ae - .label raster_next = $59 - //SEG908 entry interrupt(HARDWARE_CLOBBER) + .label _4 = $ac + .label ypos = $a5 + .label ptr = $a6 + .label ptr_1 = $b0 + .label ptr_2 = $b1 + .label ptr_3 = $a7 + .label ptr_4 = $a8 + .label raster_next = $57 + //SEG899 entry interrupt(HARDWARE_CLOBBER) sta rega+1 stx regx+1 sty regy+1 - //SEG909 [433] (byte) sprites_irq::ypos#0 ← (byte) irq_sprite_ypos#0 -- vbuz1=vbuz2 + //SEG900 [427] (byte) sprites_irq::ypos#0 ← (byte) irq_sprite_ypos#0 -- vbuz1=vbuz2 lda irq_sprite_ypos sta ypos - //SEG910 [434] *((const byte*) SPRITES_YPOS#0) ← (byte) sprites_irq::ypos#0 -- _deref_pbuc1=vbuz1 + //SEG901 [428] *((const byte*) SPRITES_YPOS#0) ← (byte) sprites_irq::ypos#0 -- _deref_pbuc1=vbuz1 lda ypos sta SPRITES_YPOS - //SEG911 [435] *((const byte*) SPRITES_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte) sprites_irq::ypos#0 -- _deref_pbuc1=vbuz1 + //SEG902 [429] *((const byte*) SPRITES_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte) sprites_irq::ypos#0 -- _deref_pbuc1=vbuz1 lda ypos sta SPRITES_YPOS+2 - //SEG912 [436] *((const byte*) SPRITES_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte) sprites_irq::ypos#0 -- _deref_pbuc1=vbuz1 + //SEG903 [430] *((const byte*) SPRITES_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte) sprites_irq::ypos#0 -- _deref_pbuc1=vbuz1 lda ypos sta SPRITES_YPOS+4 - //SEG913 [437] *((const byte*) SPRITES_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte) sprites_irq::ypos#0 -- _deref_pbuc1=vbuz1 + //SEG904 [431] *((const byte*) SPRITES_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte) sprites_irq::ypos#0 -- _deref_pbuc1=vbuz1 lda ypos sta SPRITES_YPOS+6 jmp b1 - //SEG914 sprites_irq::@1 + //SEG905 sprites_irq::@1 b1: - //SEG915 [438] if(*((const byte*) RASTER#0)<(byte) irq_sprite_ypos#0) goto sprites_irq::@1 -- _deref_pbuc1_lt_vbuz1_then_la1 + //SEG906 [432] if(*((const byte*) RASTER#0)<(byte) irq_sprite_ypos#0) goto sprites_irq::@1 -- _deref_pbuc1_lt_vbuz1_then_la1 lda RASTER cmp irq_sprite_ypos bcc b1 jmp b7 - //SEG916 sprites_irq::@7 + //SEG907 sprites_irq::@7 b7: - //SEG917 [439] (byte) sprites_irq::ptr#0 ← (byte) irq_sprite_ptr#0 -- vbuz1=vbuz2 + //SEG908 [433] (byte) sprites_irq::ptr#0 ← (byte) irq_sprite_ptr#0 -- vbuz1=vbuz2 lda irq_sprite_ptr sta ptr - //SEG918 [440] if((byte) render_screen_showing#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto sprites_irq::@2 -- vbuz1_eq_0_then_la1 + //SEG909 [434] if((byte) render_screen_showing#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto sprites_irq::@2 -- vbuz1_eq_0_then_la1 lda render_screen_showing cmp #0 beq b2 jmp b8 - //SEG919 sprites_irq::@8 + //SEG910 sprites_irq::@8 b8: - //SEG920 [441] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0) ← (byte) sprites_irq::ptr#0 -- _deref_pbuc1=vbuz1 + //SEG911 [435] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0) ← (byte) sprites_irq::ptr#0 -- _deref_pbuc1=vbuz1 lda ptr sta PLAYFIELD_SPRITE_PTRS_2 - //SEG921 [442] (byte) sprites_irq::ptr#3 ← ++ (byte) sprites_irq::ptr#0 -- vbuz1=_inc_vbuz2 + //SEG912 [436] (byte) sprites_irq::ptr#3 ← ++ (byte) sprites_irq::ptr#0 -- vbuz1=_inc_vbuz2 ldy ptr iny sty ptr_3 - //SEG922 [443] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte) sprites_irq::ptr#3 -- _deref_pbuc1=vbuz1 + //SEG913 [437] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte) sprites_irq::ptr#3 -- _deref_pbuc1=vbuz1 lda ptr_3 sta PLAYFIELD_SPRITE_PTRS_2+1 - //SEG923 [444] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte) sprites_irq::ptr#3 -- _deref_pbuc1=vbuz1 + //SEG914 [438] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte) sprites_irq::ptr#3 -- _deref_pbuc1=vbuz1 lda ptr_3 sta PLAYFIELD_SPRITE_PTRS_2+2 - //SEG924 [445] (byte) sprites_irq::ptr#4 ← ++ (byte) sprites_irq::ptr#3 -- vbuz1=_inc_vbuz2 + //SEG915 [439] (byte) sprites_irq::ptr#4 ← ++ (byte) sprites_irq::ptr#3 -- vbuz1=_inc_vbuz2 ldy ptr_3 iny sty ptr_4 - //SEG925 [446] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte) sprites_irq::ptr#4 -- _deref_pbuc1=vbuz1 + //SEG916 [440] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte) sprites_irq::ptr#4 -- _deref_pbuc1=vbuz1 lda ptr_4 sta PLAYFIELD_SPRITE_PTRS_2+3 jmp b3 - //SEG926 sprites_irq::@3 + //SEG917 sprites_irq::@3 b3: - //SEG927 [447] (byte) irq_cnt#1 ← ++ (byte) irq_cnt#0 -- vbuz1=_inc_vbuz2 + //SEG918 [441] (byte) irq_cnt#1 ← ++ (byte) irq_cnt#0 -- vbuz1=_inc_vbuz2 ldy irq_cnt iny sty irq_cnt_1 - //SEG928 [448] if((byte) irq_cnt#1==(byte/signed byte/word/signed word/dword/signed dword) 10) goto sprites_irq::@4 -- vbuz1_eq_vbuc1_then_la1 + //SEG919 [442] if((byte) irq_cnt#1==(byte/signed byte/word/signed word/dword/signed dword) 10) goto sprites_irq::@4 -- vbuz1_eq_vbuc1_then_la1 lda irq_cnt_1 cmp #$a beq b4 jmp b10 - //SEG929 sprites_irq::@10 + //SEG920 sprites_irq::@10 b10: - //SEG930 [449] (byte) irq_raster_next#2 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 -- vbuz1=vbuz2_plus_vbuc1 + //SEG921 [443] (byte) irq_raster_next#2 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 -- vbuz1=vbuz2_plus_vbuc1 lda #$15 clc adc irq_raster_next sta irq_raster_next_2 - //SEG931 [450] (byte) irq_sprite_ypos#2 ← (byte) irq_sprite_ypos#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 -- vbuz1=vbuz2_plus_vbuc1 + //SEG922 [444] (byte) irq_sprite_ypos#2 ← (byte) irq_sprite_ypos#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 -- vbuz1=vbuz2_plus_vbuc1 lda #$15 clc adc irq_sprite_ypos sta irq_sprite_ypos_2 - //SEG932 [451] (byte) irq_sprite_ptr#2 ← (byte) irq_sprite_ptr#0 + (byte/signed byte/word/signed word/dword/signed dword) 3 -- vbuz1=vbuz2_plus_vbuc1 + //SEG923 [445] (byte) irq_sprite_ptr#2 ← (byte) irq_sprite_ptr#0 + (byte/signed byte/word/signed word/dword/signed dword) 3 -- vbuz1=vbuz2_plus_vbuc1 lda #3 clc adc irq_sprite_ptr sta irq_sprite_ptr_2 - //SEG933 [452] phi from sprites_irq::@10 sprites_irq::@13 to sprites_irq::@5 [phi:sprites_irq::@10/sprites_irq::@13->sprites_irq::@5] + //SEG924 [446] phi from sprites_irq::@10 sprites_irq::@13 to sprites_irq::@5 [phi:sprites_irq::@10/sprites_irq::@13->sprites_irq::@5] b5_from_b10: b5_from_b13: - //SEG934 [452] phi (byte) irq_raster_next#13 = (byte) irq_raster_next#2 [phi:sprites_irq::@10/sprites_irq::@13->sprites_irq::@5#0] -- register_copy + //SEG925 [446] phi (byte) irq_raster_next#13 = (byte) irq_raster_next#2 [phi:sprites_irq::@10/sprites_irq::@13->sprites_irq::@5#0] -- register_copy jmp b5 - //SEG935 sprites_irq::@5 + //SEG926 sprites_irq::@5 b5: - //SEG936 [453] (byte) sprites_irq::raster_next#0 ← (byte) irq_raster_next#13 -- vbuz1=vbuz2 + //SEG927 [447] (byte) sprites_irq::raster_next#0 ← (byte) irq_raster_next#13 -- vbuz1=vbuz2 lda irq_raster_next_13 sta raster_next - //SEG937 [454] (byte~) sprites_irq::$4 ← (byte) sprites_irq::raster_next#0 & (byte/signed byte/word/signed word/dword/signed dword) 7 -- vbuz1=vbuz2_band_vbuc1 + //SEG928 [448] (byte~) sprites_irq::$4 ← (byte) sprites_irq::raster_next#0 & (byte/signed byte/word/signed word/dword/signed dword) 7 -- vbuz1=vbuz2_band_vbuc1 lda #7 and raster_next sta _4 - //SEG938 [455] if((byte~) sprites_irq::$4!=(byte/signed byte/word/signed word/dword/signed dword) 3) goto sprites_irq::@6 -- vbuz1_neq_vbuc1_then_la1 + //SEG929 [449] if((byte~) sprites_irq::$4!=(byte/signed byte/word/signed word/dword/signed dword) 3) goto sprites_irq::@6 -- vbuz1_neq_vbuc1_then_la1 lda _4 cmp #3 bne b6_from_b5 jmp b12 - //SEG939 sprites_irq::@12 + //SEG930 sprites_irq::@12 b12: - //SEG940 [456] (byte) sprites_irq::raster_next#1 ← (byte) sprites_irq::raster_next#0 - (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz1_minus_1 + //SEG931 [450] (byte) sprites_irq::raster_next#1 ← (byte) sprites_irq::raster_next#0 - (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz1_minus_1 dec raster_next - //SEG941 [457] phi from sprites_irq::@12 sprites_irq::@5 to sprites_irq::@6 [phi:sprites_irq::@12/sprites_irq::@5->sprites_irq::@6] + //SEG932 [451] phi from sprites_irq::@12 sprites_irq::@5 to sprites_irq::@6 [phi:sprites_irq::@12/sprites_irq::@5->sprites_irq::@6] b6_from_b12: b6_from_b5: - //SEG942 [457] phi (byte) sprites_irq::raster_next#2 = (byte) sprites_irq::raster_next#1 [phi:sprites_irq::@12/sprites_irq::@5->sprites_irq::@6#0] -- register_copy + //SEG933 [451] phi (byte) sprites_irq::raster_next#2 = (byte) sprites_irq::raster_next#1 [phi:sprites_irq::@12/sprites_irq::@5->sprites_irq::@6#0] -- register_copy jmp b6 - //SEG943 sprites_irq::@6 + //SEG934 sprites_irq::@6 b6: - //SEG944 [458] *((const byte*) RASTER#0) ← (byte) sprites_irq::raster_next#2 -- _deref_pbuc1=vbuz1 + //SEG935 [452] *((const byte*) RASTER#0) ← (byte) sprites_irq::raster_next#2 -- _deref_pbuc1=vbuz1 lda raster_next sta RASTER - //SEG945 [459] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0 -- _deref_pbuc1=vbuc2 + //SEG936 [453] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0 -- _deref_pbuc1=vbuc2 lda #IRQ_RASTER sta IRQ_STATUS jmp breturn - //SEG946 sprites_irq::@return + //SEG937 sprites_irq::@return breturn: - //SEG947 [460] return - exit interrupt(HARDWARE_CLOBBER) + //SEG938 [454] return - exit interrupt(HARDWARE_CLOBBER) rega: lda #00 regx: @@ -11996,49 +11877,49 @@ sprites_irq: { regy: ldy #00 rti - //SEG948 sprites_irq::@4 + //SEG939 sprites_irq::@4 b4: - //SEG949 [461] (byte) irq_cnt#14 ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- vbuz1=vbuc1 + //SEG940 [455] (byte) irq_cnt#14 ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- vbuz1=vbuc1 lda #0 sta irq_cnt_14 - //SEG950 [462] (byte) irq_raster_next#1 ← (const byte) IRQ_RASTER_FIRST#0 -- vbuz1=vbuc1 + //SEG941 [456] (byte) irq_raster_next#1 ← (const byte) IRQ_RASTER_FIRST#0 -- vbuz1=vbuc1 lda #IRQ_RASTER_FIRST sta irq_raster_next_1 - //SEG951 [463] (byte) irq_sprite_ypos#1 ← (byte/signed byte/word/signed word/dword/signed dword) 50 -- vbuz1=vbuc1 + //SEG942 [457] (byte) irq_sprite_ypos#1 ← (byte/signed byte/word/signed word/dword/signed dword) 50 -- vbuz1=vbuc1 lda #$32 sta irq_sprite_ypos_1 - //SEG952 [464] phi from sprites_irq::@4 to sprites_irq::toSpritePtr2 [phi:sprites_irq::@4->sprites_irq::toSpritePtr2] + //SEG943 [458] phi from sprites_irq::@4 to sprites_irq::toSpritePtr2 [phi:sprites_irq::@4->sprites_irq::toSpritePtr2] toSpritePtr2_from_b4: jmp toSpritePtr2 - //SEG953 sprites_irq::toSpritePtr2 + //SEG944 sprites_irq::toSpritePtr2 toSpritePtr2: jmp b13 - //SEG954 sprites_irq::@13 + //SEG945 sprites_irq::@13 b13: - //SEG955 [465] (byte) irq_sprite_ptr#1 ← (const byte) sprites_irq::toSpritePtr2_return#0 -- vbuz1=vbuc1 + //SEG946 [459] (byte) irq_sprite_ptr#1 ← (const byte) sprites_irq::toSpritePtr2_return#0 -- vbuz1=vbuc1 lda #toSpritePtr2_return sta irq_sprite_ptr_1 jmp b5_from_b13 - //SEG956 sprites_irq::@2 + //SEG947 sprites_irq::@2 b2: - //SEG957 [466] *((const byte*) PLAYFIELD_SPRITE_PTRS_1#0) ← (byte) sprites_irq::ptr#0 -- _deref_pbuc1=vbuz1 + //SEG948 [460] *((const byte*) PLAYFIELD_SPRITE_PTRS_1#0) ← (byte) sprites_irq::ptr#0 -- _deref_pbuc1=vbuz1 lda ptr sta PLAYFIELD_SPRITE_PTRS_1 - //SEG958 [467] (byte) sprites_irq::ptr#1 ← ++ (byte) sprites_irq::ptr#0 -- vbuz1=_inc_vbuz2 + //SEG949 [461] (byte) sprites_irq::ptr#1 ← ++ (byte) sprites_irq::ptr#0 -- vbuz1=_inc_vbuz2 ldy ptr iny sty ptr_1 - //SEG959 [468] *((const byte*) PLAYFIELD_SPRITE_PTRS_1#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte) sprites_irq::ptr#1 -- _deref_pbuc1=vbuz1 + //SEG950 [462] *((const byte*) PLAYFIELD_SPRITE_PTRS_1#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte) sprites_irq::ptr#1 -- _deref_pbuc1=vbuz1 lda ptr_1 sta PLAYFIELD_SPRITE_PTRS_1+1 - //SEG960 [469] *((const byte*) PLAYFIELD_SPRITE_PTRS_1#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte) sprites_irq::ptr#1 -- _deref_pbuc1=vbuz1 + //SEG951 [463] *((const byte*) PLAYFIELD_SPRITE_PTRS_1#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte) sprites_irq::ptr#1 -- _deref_pbuc1=vbuz1 lda ptr_1 sta PLAYFIELD_SPRITE_PTRS_1+2 - //SEG961 [470] (byte) sprites_irq::ptr#2 ← ++ (byte) sprites_irq::ptr#1 -- vbuz1=_inc_vbuz2 + //SEG952 [464] (byte) sprites_irq::ptr#2 ← ++ (byte) sprites_irq::ptr#1 -- vbuz1=_inc_vbuz2 ldy ptr_1 iny sty ptr_2 - //SEG962 [471] *((const byte*) PLAYFIELD_SPRITE_PTRS_1#0+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte) sprites_irq::ptr#2 -- _deref_pbuc1=vbuz1 + //SEG953 [465] *((const byte*) PLAYFIELD_SPRITE_PTRS_1#0+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte) sprites_irq::ptr#2 -- _deref_pbuc1=vbuz1 lda ptr_2 sta PLAYFIELD_SPRITE_PTRS_1+3 jmp b3 @@ -12077,14 +11958,18 @@ sprites_irq: { .import binary "playfield-screen.imap" .pc = PLAYFIELD_SCREEN_ORIGINAL "PLAYFIELD_SCREEN_ORIGINAL" - .import binary "playfield-screen.iscr" + // 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_EXTENDED_ORIGINAL "PLAYFIELD_EXTENDED_ORIGINAL" - .import binary "playfield-extended.col" - .pc = PLAYFIELD_SPRITES "PLAYFIELD_SPRITES" .var sprites = LoadPicture("playfield-sprites.png", List().add($010101, $000000)) .for(var sy=0;sy<10;sy++) { @@ -12101,55 +11986,55 @@ sprites_irq: { REGISTER UPLIFT POTENTIAL REGISTERS Statement [1] (byte) render_screen_showing#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( ) always clobbers reg byte a -Statement [7] (byte) irq_raster_next#0 ← (const byte) IRQ_RASTER_FIRST#0 [ ] ( ) always clobbers reg byte a -Statement [8] (byte) irq_sprite_ypos#0 ← (byte/signed byte/word/signed word/dword/signed dword) 50 [ ] ( ) always clobbers reg byte a -Statement [10] (byte) irq_sprite_ptr#0 ← (const byte) toSpritePtr1_return#0 [ ] ( ) always clobbers reg byte a -Statement [11] (byte) irq_cnt#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( ) always clobbers reg byte a -Statement [31] (byte*~) current_piece_gfx#100 ← (byte*) current_piece_gfx#16 [ current_ypos#84 current_ypos#18 current_xpos#110 current_xpos#23 current_piece_gfx#100 current_piece_gfx#16 current_piece_char#12 play_spawn_current::$3 ] ( main:13 [ current_ypos#84 current_ypos#18 current_xpos#110 current_xpos#23 current_piece_gfx#100 current_piece_gfx#16 current_piece_char#12 play_spawn_current::$3 ] ) always clobbers reg byte a +Statement [6] (byte) irq_raster_next#0 ← (const byte) IRQ_RASTER_FIRST#0 [ ] ( ) always clobbers reg byte a +Statement [7] (byte) irq_sprite_ypos#0 ← (byte/signed byte/word/signed word/dword/signed dword) 50 [ ] ( ) always clobbers reg byte a +Statement [9] (byte) irq_sprite_ptr#0 ← (const byte) toSpritePtr1_return#0 [ ] ( ) always clobbers reg byte a +Statement [10] (byte) irq_cnt#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( ) always clobbers reg byte a +Statement [30] (byte*~) current_piece_gfx#100 ← (byte*) current_piece_gfx#16 [ current_ypos#84 current_ypos#18 current_xpos#110 current_xpos#23 current_piece_gfx#100 current_piece_gfx#16 current_piece_char#12 play_spawn_current::$3 ] ( main:12 [ current_ypos#84 current_ypos#18 current_xpos#110 current_xpos#23 current_piece_gfx#100 current_piece_gfx#16 current_piece_char#12 play_spawn_current::$3 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:5 [ current_ypos#9 current_ypos#84 current_ypos#85 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:37 [ current_ypos#29 current_ypos#21 current_ypos#18 current_ypos#13 current_ypos#0 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:7 [ current_xpos#47 current_xpos#110 current_xpos#111 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:43 [ current_xpos#33 current_xpos#10 current_xpos#23 current_xpos#19 current_xpos#4 current_xpos#1 current_xpos#2 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:44 [ current_piece_char#20 current_piece_char#15 current_piece_char#12 current_piece_char#1 ] -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:133 [ play_spawn_current::$3 ] -Statement [34] (byte*~) current_piece#71 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) [ current_ypos#18 current_xpos#23 current_piece_gfx#16 current_piece_char#12 current_piece#71 ] ( main:13 [ current_ypos#18 current_xpos#23 current_piece_gfx#16 current_piece_char#12 current_piece#71 ] ) always clobbers reg byte a -Statement [36] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@4 [ render_screen_show#16 render_screen_render#16 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 keyboard_events_size#19 current_movedown_counter#12 ] ( main:13 [ render_screen_show#16 render_screen_render#16 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 keyboard_events_size#19 current_movedown_counter#12 ] ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:131 [ play_spawn_current::$3 ] +Statement [33] (byte*~) current_piece#71 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) [ current_ypos#18 current_xpos#23 current_piece_gfx#16 current_piece_char#12 current_piece#71 ] ( main:12 [ current_ypos#18 current_xpos#23 current_piece_gfx#16 current_piece_char#12 current_piece#71 ] ) always clobbers reg byte a +Statement [35] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@4 [ render_screen_show#16 render_screen_render#16 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 keyboard_events_size#19 current_movedown_counter#12 ] ( main:12 [ render_screen_show#16 render_screen_render#16 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 keyboard_events_size#19 current_movedown_counter#12 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:2 [ render_screen_show#16 render_screen_show#13 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:3 [ render_screen_render#16 render_screen_render#11 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:40 [ current_orientation#29 current_orientation#10 current_orientation#19 current_orientation#4 current_orientation#14 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:63 [ keyboard_events_size#10 keyboard_events_size#29 keyboard_events_size#19 keyboard_events_size#16 keyboard_events_size#13 keyboard_events_size#4 keyboard_events_size#30 keyboard_events_size#2 keyboard_events_size#1 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:4 [ current_movedown_counter#12 current_movedown_counter#10 current_movedown_counter#1 ] -Statement [49] (byte) main::render#1 ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte~) main::$12 [ render_screen_show#16 render_screen_render#16 current_piece#10 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_orientation#14 current_piece_gfx#1 current_xpos#1 ] ( main:13 [ render_screen_show#16 render_screen_render#16 current_piece#10 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_orientation#14 current_piece_gfx#1 current_xpos#1 ] ) always clobbers reg byte a -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:96 [ main::key_event#0 ] -Statement [54] (byte) main::render#2 ← (byte) main::render#1 + (byte~) main::$13 [ render_screen_show#16 render_screen_render#16 current_piece#10 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#2 current_orientation#14 current_piece_gfx#1 ] ( main:13 [ render_screen_show#16 render_screen_render#16 current_piece#10 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#2 current_orientation#14 current_piece_gfx#1 ] ) always clobbers reg byte a -Statement [59] (byte) main::render#3 ← (byte) main::render#2 + (byte~) main::$14 [ render_screen_show#16 render_screen_render#16 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::render#3 ] ( main:13 [ render_screen_show#16 render_screen_render#16 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::render#3 ] ) always clobbers reg byte a -Statement [66] (byte*~) current_piece_gfx#101 ← (byte*) current_piece_gfx#14 [ render_screen_show#16 render_screen_render#16 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 current_ypos#85 render_screen_render#62 current_xpos#111 current_piece_gfx#101 ] ( main:13 [ render_screen_show#16 render_screen_render#16 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 current_ypos#85 render_screen_render#62 current_xpos#111 current_piece_gfx#101 ] ) always clobbers reg byte a +Statement [48] (byte) main::render#1 ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte~) main::$12 [ render_screen_show#16 render_screen_render#16 current_piece#10 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_orientation#14 current_piece_gfx#1 current_xpos#1 ] ( main:12 [ render_screen_show#16 render_screen_render#16 current_piece#10 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_orientation#14 current_piece_gfx#1 current_xpos#1 ] ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:94 [ main::key_event#0 ] +Statement [53] (byte) main::render#2 ← (byte) main::render#1 + (byte~) main::$13 [ render_screen_show#16 render_screen_render#16 current_piece#10 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#2 current_orientation#14 current_piece_gfx#1 ] ( main:12 [ render_screen_show#16 render_screen_render#16 current_piece#10 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#2 current_orientation#14 current_piece_gfx#1 ] ) always clobbers reg byte a +Statement [58] (byte) main::render#3 ← (byte) main::render#2 + (byte~) main::$14 [ render_screen_show#16 render_screen_render#16 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::render#3 ] ( main:12 [ render_screen_show#16 render_screen_render#16 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::render#3 ] ) always clobbers reg byte a +Statement [65] (byte*~) current_piece_gfx#101 ← (byte*) current_piece_gfx#14 [ render_screen_show#16 render_screen_render#16 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 current_ypos#85 render_screen_render#62 current_xpos#111 current_piece_gfx#101 ] ( main:12 [ render_screen_show#16 render_screen_render#16 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 current_ypos#85 render_screen_render#62 current_xpos#111 current_piece_gfx#101 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:6 [ render_screen_render#28 render_screen_render#62 ] -Statement [71] (byte) render_screen_render#11 ← (byte) render_screen_render#16 ^ (byte/signed byte/word/signed word/dword/signed dword) 64 [ render_screen_show#16 render_screen_render#11 ] ( main:13::render_screen_swap:70 [ current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 render_screen_show#16 render_screen_render#11 ] ) always clobbers reg byte a -Statement [72] (byte) render_screen_show#13 ← (byte) render_screen_show#16 ^ (byte/signed byte/word/signed word/dword/signed dword) 64 [ render_screen_show#13 render_screen_render#11 ] ( main:13::render_screen_swap:70 [ current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 render_screen_show#13 render_screen_render#11 ] ) always clobbers reg byte a -Statement [75] (byte) render_current::ypos2#0 ← (byte) current_ypos#9 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ render_screen_render#28 current_xpos#47 current_piece_gfx#53 current_piece_char#63 render_current::ypos2#0 ] ( main:13::render_current:33 [ current_ypos#18 current_xpos#23 current_piece_gfx#16 current_piece_char#12 play_spawn_current::$3 render_screen_render#28 current_xpos#47 current_piece_gfx#53 current_piece_char#63 render_current::ypos2#0 ] main:13::render_current:68 [ render_screen_show#16 render_screen_render#16 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 render_screen_render#28 current_xpos#47 current_piece_gfx#53 current_piece_char#63 render_current::ypos2#0 ] ) always clobbers reg byte a +Statement [70] (byte) render_screen_render#11 ← (byte) render_screen_render#16 ^ (byte/signed byte/word/signed word/dword/signed dword) 64 [ render_screen_show#16 render_screen_render#11 ] ( main:12::render_screen_swap:69 [ current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 render_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/signed byte/word/signed word/dword/signed dword) 64 [ render_screen_show#13 render_screen_render#11 ] ( main:12::render_screen_swap:69 [ current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 render_screen_show#13 render_screen_render#11 ] ) always clobbers reg byte a +Statement [74] (byte) render_current::ypos2#0 ← (byte) current_ypos#9 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ render_screen_render#28 current_xpos#47 current_piece_gfx#53 current_piece_char#63 render_current::ypos2#0 ] ( main:12::render_current:32 [ current_ypos#18 current_xpos#23 current_piece_gfx#16 current_piece_char#12 play_spawn_current::$3 render_screen_render#28 current_xpos#47 current_piece_gfx#53 current_piece_char#63 render_current::ypos2#0 ] main:12::render_current:67 [ render_screen_show#16 render_screen_render#16 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 render_screen_render#28 current_xpos#47 current_piece_gfx#53 current_piece_char#63 render_current::ypos2#0 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:10 [ current_piece_char#63 current_piece_char#88 current_piece_char#89 ] -Statement [78] (byte) render_current::i#1 ← (byte) render_current::i#3 + (byte/signed byte/word/signed word/dword/signed dword) 4 [ render_screen_render#28 current_xpos#47 current_piece_gfx#53 current_piece_char#63 render_current::ypos2#2 render_current::l#4 render_current::i#1 ] ( main:13::render_current:33 [ current_ypos#18 current_xpos#23 current_piece_gfx#16 current_piece_char#12 play_spawn_current::$3 render_screen_render#28 current_xpos#47 current_piece_gfx#53 current_piece_char#63 render_current::ypos2#2 render_current::l#4 render_current::i#1 ] main:13::render_current:68 [ render_screen_show#16 render_screen_render#16 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 render_screen_render#28 current_xpos#47 current_piece_gfx#53 current_piece_char#63 render_current::ypos2#2 render_current::l#4 render_current::i#1 ] ) always clobbers reg byte a +Statement [77] (byte) render_current::i#1 ← (byte) render_current::i#3 + (byte/signed byte/word/signed word/dword/signed dword) 4 [ render_screen_render#28 current_xpos#47 current_piece_gfx#53 current_piece_char#63 render_current::ypos2#2 render_current::l#4 render_current::i#1 ] ( main:12::render_current:32 [ current_ypos#18 current_xpos#23 current_piece_gfx#16 current_piece_char#12 play_spawn_current::$3 render_screen_render#28 current_xpos#47 current_piece_gfx#53 current_piece_char#63 render_current::ypos2#2 render_current::l#4 render_current::i#1 ] main:12::render_current:67 [ render_screen_show#16 render_screen_render#16 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 render_screen_render#28 current_xpos#47 current_piece_gfx#53 current_piece_char#63 render_current::ypos2#2 render_current::l#4 render_current::i#1 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:11 [ render_current::ypos2#2 render_current::ypos2#0 render_current::ypos2#1 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:12 [ render_current::l#4 render_current::l#1 ] -Statement [85] (byte~) render_current::$5 ← (byte) render_screen_render#28 + (byte) render_current::ypos2#2 [ render_screen_render#28 current_xpos#47 current_piece_gfx#53 current_piece_char#63 render_current::ypos2#2 render_current::i#3 render_current::l#4 render_current::$5 ] ( main:13::render_current:33 [ current_ypos#18 current_xpos#23 current_piece_gfx#16 current_piece_char#12 play_spawn_current::$3 render_screen_render#28 current_xpos#47 current_piece_gfx#53 current_piece_char#63 render_current::ypos2#2 render_current::i#3 render_current::l#4 render_current::$5 ] main:13::render_current:68 [ render_screen_show#16 render_screen_render#16 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 render_screen_render#28 current_xpos#47 current_piece_gfx#53 current_piece_char#63 render_current::ypos2#2 render_current::i#3 render_current::l#4 render_current::$5 ] ) always clobbers reg byte a +Statement [84] (byte~) render_current::$5 ← (byte) render_screen_render#28 + (byte) render_current::ypos2#2 [ render_screen_render#28 current_xpos#47 current_piece_gfx#53 current_piece_char#63 render_current::ypos2#2 render_current::i#3 render_current::l#4 render_current::$5 ] ( main:12::render_current:32 [ current_ypos#18 current_xpos#23 current_piece_gfx#16 current_piece_char#12 play_spawn_current::$3 render_screen_render#28 current_xpos#47 current_piece_gfx#53 current_piece_char#63 render_current::ypos2#2 render_current::i#3 render_current::l#4 render_current::$5 ] main:12::render_current:67 [ render_screen_show#16 render_screen_render#16 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 render_screen_render#28 current_xpos#47 current_piece_gfx#53 current_piece_char#63 render_current::ypos2#2 render_current::i#3 render_current::l#4 render_current::$5 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:13 [ render_current::i#4 render_current::i#3 render_current::i#8 render_current::i#10 render_current::i#1 ] -Statement [86] (byte*) render_current::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) screen_lines_1#0 + (byte~) render_current::$5) [ render_screen_render#28 current_xpos#47 current_piece_gfx#53 current_piece_char#63 render_current::ypos2#2 render_current::i#3 render_current::l#4 render_current::screen_line#0 ] ( main:13::render_current:33 [ current_ypos#18 current_xpos#23 current_piece_gfx#16 current_piece_char#12 play_spawn_current::$3 render_screen_render#28 current_xpos#47 current_piece_gfx#53 current_piece_char#63 render_current::ypos2#2 render_current::i#3 render_current::l#4 render_current::screen_line#0 ] main:13::render_current:68 [ render_screen_show#16 render_screen_render#16 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 render_screen_render#28 current_xpos#47 current_piece_gfx#53 current_piece_char#63 render_current::ypos2#2 render_current::i#3 render_current::l#4 render_current::screen_line#0 ] ) always clobbers reg byte a -Statement [89] (byte) render_current::current_cell#0 ← *((byte*) current_piece_gfx#53 + (byte) render_current::i#4) [ render_screen_render#28 current_xpos#47 current_piece_gfx#53 current_piece_char#63 render_current::ypos2#2 render_current::l#4 render_current::screen_line#0 render_current::i#4 render_current::xpos#2 render_current::c#2 render_current::current_cell#0 ] ( main:13::render_current:33 [ current_ypos#18 current_xpos#23 current_piece_gfx#16 current_piece_char#12 play_spawn_current::$3 render_screen_render#28 current_xpos#47 current_piece_gfx#53 current_piece_char#63 render_current::ypos2#2 render_current::l#4 render_current::screen_line#0 render_current::i#4 render_current::xpos#2 render_current::c#2 render_current::current_cell#0 ] main:13::render_current:68 [ render_screen_show#16 render_screen_render#16 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 render_screen_render#28 current_xpos#47 current_piece_gfx#53 current_piece_char#63 render_current::ypos2#2 render_current::l#4 render_current::screen_line#0 render_current::i#4 render_current::xpos#2 render_current::c#2 render_current::current_cell#0 ] ) always clobbers reg byte a +Statement [85] (byte*) render_current::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) screen_lines_1#0 + (byte~) render_current::$5) [ render_screen_render#28 current_xpos#47 current_piece_gfx#53 current_piece_char#63 render_current::ypos2#2 render_current::i#3 render_current::l#4 render_current::screen_line#0 ] ( main:12::render_current:32 [ current_ypos#18 current_xpos#23 current_piece_gfx#16 current_piece_char#12 play_spawn_current::$3 render_screen_render#28 current_xpos#47 current_piece_gfx#53 current_piece_char#63 render_current::ypos2#2 render_current::i#3 render_current::l#4 render_current::screen_line#0 ] main:12::render_current:67 [ render_screen_show#16 render_screen_render#16 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 render_screen_render#28 current_xpos#47 current_piece_gfx#53 current_piece_char#63 render_current::ypos2#2 render_current::i#3 render_current::l#4 render_current::screen_line#0 ] ) always clobbers reg byte a +Statement [88] (byte) render_current::current_cell#0 ← *((byte*) current_piece_gfx#53 + (byte) render_current::i#4) [ render_screen_render#28 current_xpos#47 current_piece_gfx#53 current_piece_char#63 render_current::ypos2#2 render_current::l#4 render_current::screen_line#0 render_current::i#4 render_current::xpos#2 render_current::c#2 render_current::current_cell#0 ] ( main:12::render_current:32 [ current_ypos#18 current_xpos#23 current_piece_gfx#16 current_piece_char#12 play_spawn_current::$3 render_screen_render#28 current_xpos#47 current_piece_gfx#53 current_piece_char#63 render_current::ypos2#2 render_current::l#4 render_current::screen_line#0 render_current::i#4 render_current::xpos#2 render_current::c#2 render_current::current_cell#0 ] main:12::render_current:67 [ render_screen_show#16 render_screen_render#16 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 render_screen_render#28 current_xpos#47 current_piece_gfx#53 current_piece_char#63 render_current::ypos2#2 render_current::l#4 render_current::screen_line#0 render_current::i#4 render_current::xpos#2 render_current::c#2 render_current::current_cell#0 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:14 [ render_current::xpos#2 render_current::xpos#0 render_current::xpos#1 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:15 [ render_current::c#2 render_current::c#1 ] -Statement [93] *((byte*) render_current::screen_line#0 + (byte) render_current::xpos#2) ← (byte) current_piece_char#63 [ render_screen_render#28 current_xpos#47 current_piece_gfx#53 current_piece_char#63 render_current::ypos2#2 render_current::l#4 render_current::i#10 render_current::screen_line#0 render_current::xpos#2 render_current::c#2 ] ( main:13::render_current:33 [ current_ypos#18 current_xpos#23 current_piece_gfx#16 current_piece_char#12 play_spawn_current::$3 render_screen_render#28 current_xpos#47 current_piece_gfx#53 current_piece_char#63 render_current::ypos2#2 render_current::l#4 render_current::i#10 render_current::screen_line#0 render_current::xpos#2 render_current::c#2 ] main:13::render_current:68 [ render_screen_show#16 render_screen_render#16 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 render_screen_render#28 current_xpos#47 current_piece_gfx#53 current_piece_char#63 render_current::ypos2#2 render_current::l#4 render_current::i#10 render_current::screen_line#0 render_current::xpos#2 render_current::c#2 ] ) always clobbers reg byte a -Statement [99] (byte~) render_playfield::$2 ← (byte) render_playfield::l#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ render_screen_render#19 render_playfield::l#2 render_playfield::i#3 render_playfield::$2 ] ( main:13::render_playfield:28 [ current_ypos#18 current_xpos#23 current_piece_gfx#16 current_piece_char#12 play_spawn_current::$3 render_screen_render#19 render_playfield::l#2 render_playfield::i#3 render_playfield::$2 ] main:13::render_playfield:62 [ render_screen_show#16 render_screen_render#16 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 render_screen_render#19 render_playfield::l#2 render_playfield::i#3 render_playfield::$2 ] ) always clobbers reg byte a +Statement [92] *((byte*) render_current::screen_line#0 + (byte) render_current::xpos#2) ← (byte) current_piece_char#63 [ render_screen_render#28 current_xpos#47 current_piece_gfx#53 current_piece_char#63 render_current::ypos2#2 render_current::l#4 render_current::i#10 render_current::screen_line#0 render_current::xpos#2 render_current::c#2 ] ( main:12::render_current:32 [ current_ypos#18 current_xpos#23 current_piece_gfx#16 current_piece_char#12 play_spawn_current::$3 render_screen_render#28 current_xpos#47 current_piece_gfx#53 current_piece_char#63 render_current::ypos2#2 render_current::l#4 render_current::i#10 render_current::screen_line#0 render_current::xpos#2 render_current::c#2 ] main:12::render_current:67 [ render_screen_show#16 render_screen_render#16 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 render_screen_render#28 current_xpos#47 current_piece_gfx#53 current_piece_char#63 render_current::ypos2#2 render_current::l#4 render_current::i#10 render_current::screen_line#0 render_current::xpos#2 render_current::c#2 ] ) always clobbers reg byte a +Statement [98] (byte~) render_playfield::$2 ← (byte) render_playfield::l#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ render_screen_render#19 render_playfield::l#2 render_playfield::i#3 render_playfield::$2 ] ( main:12::render_playfield:27 [ current_ypos#18 current_xpos#23 current_piece_gfx#16 current_piece_char#12 play_spawn_current::$3 render_screen_render#19 render_playfield::l#2 render_playfield::i#3 render_playfield::$2 ] main:12::render_playfield:61 [ render_screen_show#16 render_screen_render#16 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 render_screen_render#19 render_playfield::l#2 render_playfield::i#3 render_playfield::$2 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:16 [ render_screen_render#19 render_screen_render#63 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:17 [ render_playfield::l#2 render_playfield::l#1 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:18 [ render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 ] -Statement [100] (byte~) render_playfield::$3 ← (byte) render_screen_render#19 + (byte~) render_playfield::$2 [ render_screen_render#19 render_playfield::l#2 render_playfield::i#3 render_playfield::$3 ] ( main:13::render_playfield:28 [ current_ypos#18 current_xpos#23 current_piece_gfx#16 current_piece_char#12 play_spawn_current::$3 render_screen_render#19 render_playfield::l#2 render_playfield::i#3 render_playfield::$3 ] main:13::render_playfield:62 [ render_screen_show#16 render_screen_render#16 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 render_screen_render#19 render_playfield::l#2 render_playfield::i#3 render_playfield::$3 ] ) always clobbers reg byte a -Statement [101] (byte*) render_playfield::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) screen_lines_1#0 + (byte~) render_playfield::$3) [ render_screen_render#19 render_playfield::l#2 render_playfield::i#3 render_playfield::screen_line#0 ] ( main:13::render_playfield:28 [ current_ypos#18 current_xpos#23 current_piece_gfx#16 current_piece_char#12 play_spawn_current::$3 render_screen_render#19 render_playfield::l#2 render_playfield::i#3 render_playfield::screen_line#0 ] main:13::render_playfield:62 [ render_screen_show#16 render_screen_render#16 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 render_screen_render#19 render_playfield::l#2 render_playfield::i#3 render_playfield::screen_line#0 ] ) always clobbers reg byte a -Statement [103] *((byte*) render_playfield::screen_line#2) ← *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) render_playfield::i#2) [ render_screen_render#19 render_playfield::l#2 render_playfield::i#2 render_playfield::screen_line#2 render_playfield::c#2 ] ( main:13::render_playfield:28 [ current_ypos#18 current_xpos#23 current_piece_gfx#16 current_piece_char#12 play_spawn_current::$3 render_screen_render#19 render_playfield::l#2 render_playfield::i#2 render_playfield::screen_line#2 render_playfield::c#2 ] main:13::render_playfield:62 [ render_screen_show#16 render_screen_render#16 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 render_screen_render#19 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 [99] (byte~) render_playfield::$3 ← (byte) render_screen_render#19 + (byte~) render_playfield::$2 [ render_screen_render#19 render_playfield::l#2 render_playfield::i#3 render_playfield::$3 ] ( main:12::render_playfield:27 [ current_ypos#18 current_xpos#23 current_piece_gfx#16 current_piece_char#12 play_spawn_current::$3 render_screen_render#19 render_playfield::l#2 render_playfield::i#3 render_playfield::$3 ] main:12::render_playfield:61 [ render_screen_show#16 render_screen_render#16 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 render_screen_render#19 render_playfield::l#2 render_playfield::i#3 render_playfield::$3 ] ) always clobbers reg byte a +Statement [100] (byte*) render_playfield::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) screen_lines_1#0 + (byte~) render_playfield::$3) [ render_screen_render#19 render_playfield::l#2 render_playfield::i#3 render_playfield::screen_line#0 ] ( main:12::render_playfield:27 [ current_ypos#18 current_xpos#23 current_piece_gfx#16 current_piece_char#12 play_spawn_current::$3 render_screen_render#19 render_playfield::l#2 render_playfield::i#3 render_playfield::screen_line#0 ] main:12::render_playfield:61 [ render_screen_show#16 render_screen_render#16 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 render_screen_render#19 render_playfield::l#2 render_playfield::i#3 render_playfield::screen_line#0 ] ) always clobbers reg byte a +Statement [102] *((byte*) render_playfield::screen_line#2) ← *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) render_playfield::i#2) [ render_screen_render#19 render_playfield::l#2 render_playfield::i#2 render_playfield::screen_line#2 render_playfield::c#2 ] ( main:12::render_playfield:27 [ current_ypos#18 current_xpos#23 current_piece_gfx#16 current_piece_char#12 play_spawn_current::$3 render_screen_render#19 render_playfield::l#2 render_playfield::i#2 render_playfield::screen_line#2 render_playfield::c#2 ] main:12::render_playfield:61 [ render_screen_show#16 render_screen_render#16 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 render_screen_render#19 render_playfield::l#2 render_playfield::i#2 render_playfield::screen_line#2 render_playfield::c#2 ] ) always clobbers reg byte a reg byte y Removing always clobbered register reg byte y as potential for zp ZP_BYTE:37 [ current_ypos#29 current_ypos#21 current_ypos#18 current_ypos#13 current_ypos#0 ] Removing always clobbered register reg byte y as potential for zp ZP_BYTE:43 [ current_xpos#33 current_xpos#10 current_xpos#23 current_xpos#19 current_xpos#4 current_xpos#1 current_xpos#2 ] Removing always clobbered register reg byte y as potential for zp ZP_BYTE:44 [ current_piece_char#20 current_piece_char#15 current_piece_char#12 current_piece_char#1 ] -Removing always clobbered register reg byte y as potential for zp ZP_BYTE:133 [ play_spawn_current::$3 ] +Removing always clobbered register reg byte y as potential for zp ZP_BYTE:131 [ play_spawn_current::$3 ] Removing always clobbered register reg byte y as potential for zp ZP_BYTE:16 [ render_screen_render#19 render_screen_render#63 ] Removing always clobbered register reg byte y as potential for zp ZP_BYTE:17 [ render_playfield::l#2 render_playfield::l#1 ] Removing always clobbered register reg byte y as potential for zp ZP_BYTE:18 [ render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 ] @@ -12160,285 +12045,277 @@ Removing always clobbered register reg byte y as potential for zp ZP_BYTE:3 [ re Removing always clobbered register reg byte y as potential for zp ZP_BYTE:40 [ current_orientation#29 current_orientation#10 current_orientation#19 current_orientation#4 current_orientation#14 ] Removing always clobbered register reg byte y as potential for zp ZP_BYTE:63 [ keyboard_events_size#10 keyboard_events_size#29 keyboard_events_size#19 keyboard_events_size#16 keyboard_events_size#13 keyboard_events_size#4 keyboard_events_size#30 keyboard_events_size#2 keyboard_events_size#1 ] Removing always clobbered register reg byte y as potential for zp ZP_BYTE:4 [ current_movedown_counter#12 current_movedown_counter#10 current_movedown_counter#1 ] -Statement [115] (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 ← (byte) current_orientation#14 + (byte/signed byte/word/signed word/dword/signed dword) 16 [ current_piece#10 current_xpos#19 current_ypos#13 current_orientation#14 current_piece_gfx#1 play_move_rotate::$2 ] ( main:13::play_move_rotate:56 [ render_screen_show#16 render_screen_render#16 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::render#2 current_piece#10 current_xpos#19 current_ypos#13 current_orientation#14 current_piece_gfx#1 play_move_rotate::$2 ] ) always clobbers reg byte a -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:104 [ main::render#2 ] -Statement [116] (byte) play_move_rotate::orientation#2 ← (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 & (byte/signed byte/word/signed word/dword/signed dword) 63 [ current_piece#10 current_xpos#19 current_ypos#13 current_orientation#14 current_piece_gfx#1 play_move_rotate::orientation#2 ] ( main:13::play_move_rotate:56 [ render_screen_show#16 render_screen_render#16 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::render#2 current_piece#10 current_xpos#19 current_ypos#13 current_orientation#14 current_piece_gfx#1 play_move_rotate::orientation#2 ] ) always clobbers reg byte a -Statement [121] (byte*~) current_piece#77 ← (byte*) current_piece#10 [ current_piece#10 current_xpos#19 current_ypos#13 current_orientation#14 current_piece_gfx#1 play_move_rotate::orientation#3 play_collision::xpos#3 play_collision::ypos#3 play_collision::orientation#3 current_piece#77 ] ( main:13::play_move_rotate:56 [ render_screen_show#16 render_screen_render#16 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::render#2 current_piece#10 current_xpos#19 current_ypos#13 current_orientation#14 current_piece_gfx#1 play_move_rotate::orientation#3 play_collision::xpos#3 play_collision::ypos#3 play_collision::orientation#3 current_piece#77 ] ) always clobbers reg byte a +Statement [114] (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 ← (byte) current_orientation#14 + (byte/signed byte/word/signed word/dword/signed dword) 16 [ current_piece#10 current_xpos#19 current_ypos#13 current_orientation#14 current_piece_gfx#1 play_move_rotate::$2 ] ( main:12::play_move_rotate:55 [ render_screen_show#16 render_screen_render#16 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::render#2 current_piece#10 current_xpos#19 current_ypos#13 current_orientation#14 current_piece_gfx#1 play_move_rotate::$2 ] ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:102 [ main::render#2 ] +Statement [115] (byte) play_move_rotate::orientation#2 ← (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 & (byte/signed byte/word/signed word/dword/signed dword) 63 [ current_piece#10 current_xpos#19 current_ypos#13 current_orientation#14 current_piece_gfx#1 play_move_rotate::orientation#2 ] ( main:12::play_move_rotate:55 [ render_screen_show#16 render_screen_render#16 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::render#2 current_piece#10 current_xpos#19 current_ypos#13 current_orientation#14 current_piece_gfx#1 play_move_rotate::orientation#2 ] ) always clobbers reg byte a +Statement [120] (byte*~) current_piece#77 ← (byte*) current_piece#10 [ current_piece#10 current_xpos#19 current_ypos#13 current_orientation#14 current_piece_gfx#1 play_move_rotate::orientation#3 play_collision::xpos#3 play_collision::ypos#3 play_collision::orientation#3 current_piece#77 ] ( main:12::play_move_rotate:55 [ render_screen_show#16 render_screen_render#16 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::render#2 current_piece#10 current_xpos#19 current_ypos#13 current_orientation#14 current_piece_gfx#1 play_move_rotate::orientation#3 play_collision::xpos#3 play_collision::ypos#3 play_collision::orientation#3 current_piece#77 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:23 [ play_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#2 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:28 [ play_collision::xpos#5 play_collision::xpos#0 play_collision::xpos#1 play_collision::xpos#2 play_collision::xpos#3 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:27 [ play_collision::ypos#4 play_collision::ypos#0 play_collision::ypos#1 play_collision::ypos#2 play_collision::ypos#3 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:26 [ play_collision::orientation#4 play_collision::orientation#0 play_collision::orientation#1 play_collision::orientation#2 play_collision::orientation#3 ] -Statement [127] (byte*) current_piece_gfx#3 ← (byte*) current_piece#10 + (byte) current_orientation#4 [ current_piece#10 current_xpos#19 current_ypos#13 current_orientation#4 current_piece_gfx#3 ] ( main:13::play_move_rotate:56 [ render_screen_show#16 render_screen_render#16 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::render#2 current_piece#10 current_xpos#19 current_ypos#13 current_orientation#4 current_piece_gfx#3 ] ) always clobbers reg byte a -Statement [128] (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 ← (byte) current_orientation#14 - (byte/signed byte/word/signed word/dword/signed dword) 16 [ current_piece#10 current_xpos#19 current_ypos#13 current_orientation#14 current_piece_gfx#1 play_move_rotate::$4 ] ( main:13::play_move_rotate:56 [ render_screen_show#16 render_screen_render#16 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::render#2 current_piece#10 current_xpos#19 current_ypos#13 current_orientation#14 current_piece_gfx#1 play_move_rotate::$4 ] ) always clobbers reg byte a -Statement [129] (byte) play_move_rotate::orientation#1 ← (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 & (byte/signed byte/word/signed word/dword/signed dword) 63 [ current_piece#10 current_xpos#19 current_ypos#13 current_orientation#14 current_piece_gfx#1 play_move_rotate::orientation#1 ] ( main:13::play_move_rotate:56 [ render_screen_show#16 render_screen_render#16 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::render#2 current_piece#10 current_xpos#19 current_ypos#13 current_orientation#14 current_piece_gfx#1 play_move_rotate::orientation#1 ] ) always clobbers reg byte a -Statement [131] (byte*) play_collision::piece_gfx#0 ← (byte*) current_piece#12 + (byte) play_collision::orientation#4 [ play_collision::ypos#4 play_collision::xpos#5 play_collision::piece_gfx#0 ] ( main:13::play_move_rotate:56::play_collision:122 [ render_screen_show#16 render_screen_render#16 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::render#2 current_piece#10 current_xpos#19 current_ypos#13 current_orientation#14 current_piece_gfx#1 play_move_rotate::orientation#3 play_collision::ypos#4 play_collision::xpos#5 play_collision::piece_gfx#0 ] main:13::play_move_leftright:51::play_collision:160 [ render_screen_show#16 render_screen_render#16 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_piece_gfx#1 current_piece#10 current_ypos#13 current_orientation#14 current_xpos#1 play_collision::ypos#4 play_collision::xpos#5 play_collision::piece_gfx#0 ] main:13::play_move_leftright:51::play_collision:171 [ render_screen_show#16 render_screen_render#16 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_piece_gfx#1 current_piece#10 current_ypos#13 current_orientation#14 current_xpos#1 play_collision::ypos#4 play_collision::xpos#5 play_collision::piece_gfx#0 ] main:13::play_move_down:46::play_collision:195 [ render_screen_show#16 render_screen_render#16 keyboard_events_size#16 main::key_event#0 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 play_collision::ypos#4 play_collision::xpos#5 play_collision::piece_gfx#0 ] ) always clobbers reg byte a -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:100 [ main::render#1 ] -Statement [132] (byte) play_collision::ypos2#0 ← (byte) play_collision::ypos#4 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#0 ] ( main:13::play_move_rotate:56::play_collision:122 [ render_screen_show#16 render_screen_render#16 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::render#2 current_piece#10 current_xpos#19 current_ypos#13 current_orientation#14 current_piece_gfx#1 play_move_rotate::orientation#3 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#0 ] main:13::play_move_leftright:51::play_collision:160 [ render_screen_show#16 render_screen_render#16 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_piece_gfx#1 current_piece#10 current_ypos#13 current_orientation#14 current_xpos#1 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#0 ] main:13::play_move_leftright:51::play_collision:171 [ render_screen_show#16 render_screen_render#16 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_piece_gfx#1 current_piece#10 current_ypos#13 current_orientation#14 current_xpos#1 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#0 ] main:13::play_move_down:46::play_collision:195 [ render_screen_show#16 render_screen_render#16 keyboard_events_size#16 main::key_event#0 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#0 ] ) always clobbers reg byte a -Statement [134] (byte*) play_collision::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) play_collision::ypos2#2) [ play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] ( main:13::play_move_rotate:56::play_collision:122 [ render_screen_show#16 render_screen_render#16 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::render#2 current_piece#10 current_xpos#19 current_ypos#13 current_orientation#14 current_piece_gfx#1 play_move_rotate::orientation#3 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] main:13::play_move_leftright:51::play_collision:160 [ render_screen_show#16 render_screen_render#16 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_piece_gfx#1 current_piece#10 current_ypos#13 current_orientation#14 current_xpos#1 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] main:13::play_move_leftright:51::play_collision:171 [ render_screen_show#16 render_screen_render#16 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_piece_gfx#1 current_piece#10 current_ypos#13 current_orientation#14 current_xpos#1 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] main:13::play_move_down:46::play_collision:195 [ render_screen_show#16 render_screen_render#16 keyboard_events_size#16 main::key_event#0 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] ) always clobbers reg byte a +Statement [126] (byte*) current_piece_gfx#3 ← (byte*) current_piece#10 + (byte) current_orientation#4 [ current_piece#10 current_xpos#19 current_ypos#13 current_orientation#4 current_piece_gfx#3 ] ( main:12::play_move_rotate:55 [ render_screen_show#16 render_screen_render#16 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::render#2 current_piece#10 current_xpos#19 current_ypos#13 current_orientation#4 current_piece_gfx#3 ] ) always clobbers reg byte a +Statement [127] (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 ← (byte) current_orientation#14 - (byte/signed byte/word/signed word/dword/signed dword) 16 [ current_piece#10 current_xpos#19 current_ypos#13 current_orientation#14 current_piece_gfx#1 play_move_rotate::$4 ] ( main:12::play_move_rotate:55 [ render_screen_show#16 render_screen_render#16 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::render#2 current_piece#10 current_xpos#19 current_ypos#13 current_orientation#14 current_piece_gfx#1 play_move_rotate::$4 ] ) always clobbers reg byte a +Statement [128] (byte) play_move_rotate::orientation#1 ← (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 & (byte/signed byte/word/signed word/dword/signed dword) 63 [ current_piece#10 current_xpos#19 current_ypos#13 current_orientation#14 current_piece_gfx#1 play_move_rotate::orientation#1 ] ( main:12::play_move_rotate:55 [ render_screen_show#16 render_screen_render#16 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::render#2 current_piece#10 current_xpos#19 current_ypos#13 current_orientation#14 current_piece_gfx#1 play_move_rotate::orientation#1 ] ) always clobbers reg byte a +Statement [130] (byte*) play_collision::piece_gfx#0 ← (byte*) current_piece#12 + (byte) play_collision::orientation#4 [ play_collision::ypos#4 play_collision::xpos#5 play_collision::piece_gfx#0 ] ( main:12::play_move_rotate:55::play_collision:121 [ render_screen_show#16 render_screen_render#16 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::render#2 current_piece#10 current_xpos#19 current_ypos#13 current_orientation#14 current_piece_gfx#1 play_move_rotate::orientation#3 play_collision::ypos#4 play_collision::xpos#5 play_collision::piece_gfx#0 ] main:12::play_move_leftright:50::play_collision:159 [ render_screen_show#16 render_screen_render#16 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_piece_gfx#1 current_piece#10 current_ypos#13 current_orientation#14 current_xpos#1 play_collision::ypos#4 play_collision::xpos#5 play_collision::piece_gfx#0 ] main:12::play_move_leftright:50::play_collision:170 [ render_screen_show#16 render_screen_render#16 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_piece_gfx#1 current_piece#10 current_ypos#13 current_orientation#14 current_xpos#1 play_collision::ypos#4 play_collision::xpos#5 play_collision::piece_gfx#0 ] main:12::play_move_down:45::play_collision:194 [ render_screen_show#16 render_screen_render#16 keyboard_events_size#16 main::key_event#0 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 play_collision::ypos#4 play_collision::xpos#5 play_collision::piece_gfx#0 ] ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:98 [ main::render#1 ] +Statement [131] (byte) play_collision::ypos2#0 ← (byte) play_collision::ypos#4 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#0 ] ( main:12::play_move_rotate:55::play_collision:121 [ render_screen_show#16 render_screen_render#16 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::render#2 current_piece#10 current_xpos#19 current_ypos#13 current_orientation#14 current_piece_gfx#1 play_move_rotate::orientation#3 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#0 ] main:12::play_move_leftright:50::play_collision:159 [ render_screen_show#16 render_screen_render#16 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_piece_gfx#1 current_piece#10 current_ypos#13 current_orientation#14 current_xpos#1 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#0 ] main:12::play_move_leftright:50::play_collision:170 [ render_screen_show#16 render_screen_render#16 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_piece_gfx#1 current_piece#10 current_ypos#13 current_orientation#14 current_xpos#1 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#0 ] main:12::play_move_down:45::play_collision:194 [ render_screen_show#16 render_screen_render#16 keyboard_events_size#16 main::key_event#0 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#0 ] ) always clobbers reg byte a +Statement [133] (byte*) play_collision::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) play_collision::ypos2#2) [ play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] ( main:12::play_move_rotate:55::play_collision:121 [ render_screen_show#16 render_screen_render#16 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::render#2 current_piece#10 current_xpos#19 current_ypos#13 current_orientation#14 current_piece_gfx#1 play_move_rotate::orientation#3 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] main:12::play_move_leftright:50::play_collision:159 [ render_screen_show#16 render_screen_render#16 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_piece_gfx#1 current_piece#10 current_ypos#13 current_orientation#14 current_xpos#1 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] main:12::play_move_leftright:50::play_collision:170 [ render_screen_show#16 render_screen_render#16 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_piece_gfx#1 current_piece#10 current_ypos#13 current_orientation#14 current_xpos#1 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] main:12::play_move_down:45::play_collision:194 [ render_screen_show#16 render_screen_render#16 keyboard_events_size#16 main::key_event#0 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:29 [ play_collision::ypos2#2 play_collision::ypos2#0 play_collision::ypos2#1 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:31 [ play_collision::i#2 play_collision::i#3 play_collision::i#11 play_collision::i#13 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:30 [ play_collision::l#6 play_collision::l#1 ] -Statement [138] if(*((byte*) play_collision::piece_gfx#0 + (byte) play_collision::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_collision::@3 [ play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] ( main:13::play_move_rotate:56::play_collision:122 [ render_screen_show#16 render_screen_render#16 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::render#2 current_piece#10 current_xpos#19 current_ypos#13 current_orientation#14 current_piece_gfx#1 play_move_rotate::orientation#3 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:13::play_move_leftright:51::play_collision:160 [ render_screen_show#16 render_screen_render#16 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_piece_gfx#1 current_piece#10 current_ypos#13 current_orientation#14 current_xpos#1 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:13::play_move_leftright:51::play_collision:171 [ render_screen_show#16 render_screen_render#16 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_piece_gfx#1 current_piece#10 current_ypos#13 current_orientation#14 current_xpos#1 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:13::play_move_down:46::play_collision:195 [ render_screen_show#16 render_screen_render#16 keyboard_events_size#16 main::key_event#0 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] ) always clobbers reg byte a +Statement [137] if(*((byte*) play_collision::piece_gfx#0 + (byte) play_collision::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_collision::@3 [ play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] ( main:12::play_move_rotate:55::play_collision:121 [ render_screen_show#16 render_screen_render#16 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::render#2 current_piece#10 current_xpos#19 current_ypos#13 current_orientation#14 current_piece_gfx#1 play_move_rotate::orientation#3 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:12::play_move_leftright:50::play_collision:159 [ render_screen_show#16 render_screen_render#16 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_piece_gfx#1 current_piece#10 current_ypos#13 current_orientation#14 current_xpos#1 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:12::play_move_leftright:50::play_collision:170 [ render_screen_show#16 render_screen_render#16 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_piece_gfx#1 current_piece#10 current_ypos#13 current_orientation#14 current_xpos#1 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:12::play_move_down:45::play_collision:194 [ render_screen_show#16 render_screen_render#16 keyboard_events_size#16 main::key_event#0 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:32 [ play_collision::col#2 play_collision::col#9 play_collision::col#1 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:33 [ play_collision::c#2 play_collision::c#1 ] -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:123 [ play_collision::i#1 ] -Statement [142] (byte~) play_collision::$7 ← (byte) play_collision::col#2 & (byte/word/signed word/dword/signed dword) 128 [ play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] ( main:13::play_move_rotate:56::play_collision:122 [ render_screen_show#16 render_screen_render#16 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::render#2 current_piece#10 current_xpos#19 current_ypos#13 current_orientation#14 current_piece_gfx#1 play_move_rotate::orientation#3 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] main:13::play_move_leftright:51::play_collision:160 [ render_screen_show#16 render_screen_render#16 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_piece_gfx#1 current_piece#10 current_ypos#13 current_orientation#14 current_xpos#1 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] main:13::play_move_leftright:51::play_collision:171 [ render_screen_show#16 render_screen_render#16 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_piece_gfx#1 current_piece#10 current_ypos#13 current_orientation#14 current_xpos#1 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] main:13::play_move_down:46::play_collision:195 [ render_screen_show#16 render_screen_render#16 keyboard_events_size#16 main::key_event#0 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] ) always clobbers reg byte a -Statement [145] if(*((byte*) play_collision::playfield_line#0 + (byte) play_collision::col#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_collision::@3 [ play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] ( main:13::play_move_rotate:56::play_collision:122 [ render_screen_show#16 render_screen_render#16 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::render#2 current_piece#10 current_xpos#19 current_ypos#13 current_orientation#14 current_piece_gfx#1 play_move_rotate::orientation#3 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:13::play_move_leftright:51::play_collision:160 [ render_screen_show#16 render_screen_render#16 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_piece_gfx#1 current_piece#10 current_ypos#13 current_orientation#14 current_xpos#1 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:13::play_move_leftright:51::play_collision:171 [ render_screen_show#16 render_screen_render#16 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_piece_gfx#1 current_piece#10 current_ypos#13 current_orientation#14 current_xpos#1 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:13::play_move_down:46::play_collision:195 [ render_screen_show#16 render_screen_render#16 keyboard_events_size#16 main::key_event#0 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] ) always clobbers reg byte a -Statement [159] (byte*~) current_piece#76 ← (byte*) current_piece#10 [ current_piece#10 current_ypos#13 current_orientation#14 current_piece#76 play_collision::orientation#2 play_collision::ypos#2 play_collision::xpos#2 current_xpos#1 ] ( main:13::play_move_leftright:51 [ render_screen_show#16 render_screen_render#16 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_piece_gfx#1 current_piece#10 current_ypos#13 current_orientation#14 current_piece#76 play_collision::orientation#2 play_collision::ypos#2 play_collision::xpos#2 current_xpos#1 ] ) always clobbers reg byte a -Statement [170] (byte*~) current_piece#75 ← (byte*) current_piece#10 [ current_piece#10 current_ypos#13 current_orientation#14 current_piece#75 play_collision::orientation#1 play_collision::ypos#1 play_collision::xpos#1 current_xpos#1 ] ( main:13::play_move_leftright:51 [ render_screen_show#16 render_screen_render#16 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_piece_gfx#1 current_piece#10 current_ypos#13 current_orientation#14 current_piece#75 play_collision::orientation#1 play_collision::ypos#1 play_collision::xpos#1 current_xpos#1 ] ) always clobbers reg byte a -Statement [194] (byte*~) current_piece#74 ← (byte*) current_piece#16 [ current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_piece#74 play_collision::orientation#0 play_collision::ypos#0 play_collision::xpos#0 ] ( main:13::play_move_down:46 [ render_screen_show#16 render_screen_render#16 keyboard_events_size#16 main::key_event#0 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_piece#74 play_collision::orientation#0 play_collision::ypos#0 play_collision::xpos#0 ] ) always clobbers reg byte a -Statement [205] (byte*~) current_piece#78 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) [ current_ypos#18 current_xpos#23 current_piece_gfx#16 current_piece_char#12 current_piece#78 ] ( main:13::play_move_down:46 [ render_screen_show#16 render_screen_render#16 keyboard_events_size#16 main::key_event#0 current_ypos#18 current_xpos#23 current_piece_gfx#16 current_piece_char#12 current_piece#78 ] ) always clobbers reg byte a -Statement [213] (byte~) play_spawn_current::$3 ← (byte) play_spawn_current::piece_idx#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ play_spawn_current::$3 play_spawn_current::piece_idx#2 ] ( main:13::play_spawn_current:26 [ play_spawn_current::$3 play_spawn_current::piece_idx#2 ] main:13::play_move_down:46::play_spawn_current:204 [ render_screen_show#16 render_screen_render#16 keyboard_events_size#16 main::key_event#0 play_spawn_current::$3 play_spawn_current::piece_idx#2 ] ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:121 [ play_collision::i#1 ] +Statement [141] (byte~) play_collision::$7 ← (byte) play_collision::col#2 & (byte/word/signed word/dword/signed dword) 128 [ play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] ( main:12::play_move_rotate:55::play_collision:121 [ render_screen_show#16 render_screen_render#16 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::render#2 current_piece#10 current_xpos#19 current_ypos#13 current_orientation#14 current_piece_gfx#1 play_move_rotate::orientation#3 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] main:12::play_move_leftright:50::play_collision:159 [ render_screen_show#16 render_screen_render#16 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_piece_gfx#1 current_piece#10 current_ypos#13 current_orientation#14 current_xpos#1 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] main:12::play_move_leftright:50::play_collision:170 [ render_screen_show#16 render_screen_render#16 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_piece_gfx#1 current_piece#10 current_ypos#13 current_orientation#14 current_xpos#1 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] main:12::play_move_down:45::play_collision:194 [ render_screen_show#16 render_screen_render#16 keyboard_events_size#16 main::key_event#0 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] ) always clobbers reg byte a +Statement [144] if(*((byte*) play_collision::playfield_line#0 + (byte) play_collision::col#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_collision::@3 [ play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] ( main:12::play_move_rotate:55::play_collision:121 [ render_screen_show#16 render_screen_render#16 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::render#2 current_piece#10 current_xpos#19 current_ypos#13 current_orientation#14 current_piece_gfx#1 play_move_rotate::orientation#3 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:12::play_move_leftright:50::play_collision:159 [ render_screen_show#16 render_screen_render#16 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_piece_gfx#1 current_piece#10 current_ypos#13 current_orientation#14 current_xpos#1 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:12::play_move_leftright:50::play_collision:170 [ render_screen_show#16 render_screen_render#16 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_piece_gfx#1 current_piece#10 current_ypos#13 current_orientation#14 current_xpos#1 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:12::play_move_down:45::play_collision:194 [ render_screen_show#16 render_screen_render#16 keyboard_events_size#16 main::key_event#0 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] ) always clobbers reg byte a +Statement [158] (byte*~) current_piece#76 ← (byte*) current_piece#10 [ current_piece#10 current_ypos#13 current_orientation#14 current_piece#76 play_collision::orientation#2 play_collision::ypos#2 play_collision::xpos#2 current_xpos#1 ] ( main:12::play_move_leftright:50 [ render_screen_show#16 render_screen_render#16 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_piece_gfx#1 current_piece#10 current_ypos#13 current_orientation#14 current_piece#76 play_collision::orientation#2 play_collision::ypos#2 play_collision::xpos#2 current_xpos#1 ] ) always clobbers reg byte a +Statement [169] (byte*~) current_piece#75 ← (byte*) current_piece#10 [ current_piece#10 current_ypos#13 current_orientation#14 current_piece#75 play_collision::orientation#1 play_collision::ypos#1 play_collision::xpos#1 current_xpos#1 ] ( main:12::play_move_leftright:50 [ render_screen_show#16 render_screen_render#16 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_piece_gfx#1 current_piece#10 current_ypos#13 current_orientation#14 current_piece#75 play_collision::orientation#1 play_collision::ypos#1 play_collision::xpos#1 current_xpos#1 ] ) always clobbers reg byte a +Statement [193] (byte*~) current_piece#74 ← (byte*) current_piece#16 [ current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_piece#74 play_collision::orientation#0 play_collision::ypos#0 play_collision::xpos#0 ] ( main:12::play_move_down:45 [ render_screen_show#16 render_screen_render#16 keyboard_events_size#16 main::key_event#0 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_piece#74 play_collision::orientation#0 play_collision::ypos#0 play_collision::xpos#0 ] ) always clobbers reg byte a +Statement [204] (byte*~) current_piece#78 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) [ current_ypos#18 current_xpos#23 current_piece_gfx#16 current_piece_char#12 current_piece#78 ] ( main:12::play_move_down:45 [ render_screen_show#16 render_screen_render#16 keyboard_events_size#16 main::key_event#0 current_ypos#18 current_xpos#23 current_piece_gfx#16 current_piece_char#12 current_piece#78 ] ) always clobbers reg byte a +Statement [212] (byte~) play_spawn_current::$3 ← (byte) play_spawn_current::piece_idx#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ play_spawn_current::$3 play_spawn_current::piece_idx#2 ] ( main:12::play_spawn_current:25 [ play_spawn_current::$3 play_spawn_current::piece_idx#2 ] main:12::play_move_down:45::play_spawn_current:203 [ render_screen_show#16 render_screen_render#16 keyboard_events_size#16 main::key_event#0 play_spawn_current::$3 play_spawn_current::piece_idx#2 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:46 [ play_spawn_current::piece_idx#2 play_spawn_current::piece_idx#1 ] -Statement [214] (byte*) current_piece_gfx#16 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) + (byte/signed byte/word/signed word/dword/signed dword) 0 [ current_piece_gfx#16 play_spawn_current::$3 play_spawn_current::piece_idx#2 ] ( main:13::play_spawn_current:26 [ current_piece_gfx#16 play_spawn_current::$3 play_spawn_current::piece_idx#2 ] main:13::play_move_down:46::play_spawn_current:204 [ render_screen_show#16 render_screen_render#16 keyboard_events_size#16 main::key_event#0 current_piece_gfx#16 play_spawn_current::$3 play_spawn_current::piece_idx#2 ] ) always clobbers reg byte a -Statement [215] (byte) current_xpos#23 ← *((const byte[]) PIECES_START_X#0 + (byte) play_spawn_current::piece_idx#2) [ current_xpos#23 current_piece_gfx#16 play_spawn_current::$3 play_spawn_current::piece_idx#2 ] ( main:13::play_spawn_current:26 [ current_xpos#23 current_piece_gfx#16 play_spawn_current::$3 play_spawn_current::piece_idx#2 ] main:13::play_move_down:46::play_spawn_current:204 [ render_screen_show#16 render_screen_render#16 keyboard_events_size#16 main::key_event#0 current_xpos#23 current_piece_gfx#16 play_spawn_current::$3 play_spawn_current::piece_idx#2 ] ) always clobbers reg byte a -Statement [216] (byte) current_ypos#18 ← *((const byte[]) PIECES_START_Y#0 + (byte) play_spawn_current::piece_idx#2) [ current_ypos#18 current_xpos#23 current_piece_gfx#16 play_spawn_current::$3 play_spawn_current::piece_idx#2 ] ( main:13::play_spawn_current:26 [ current_ypos#18 current_xpos#23 current_piece_gfx#16 play_spawn_current::$3 play_spawn_current::piece_idx#2 ] main:13::play_move_down:46::play_spawn_current:204 [ render_screen_show#16 render_screen_render#16 keyboard_events_size#16 main::key_event#0 current_ypos#18 current_xpos#23 current_piece_gfx#16 play_spawn_current::$3 play_spawn_current::piece_idx#2 ] ) always clobbers reg byte a -Statement [217] (byte) current_piece_char#12 ← *((const byte[]) PIECES_CHARS#0 + (byte) play_spawn_current::piece_idx#2) [ current_ypos#18 current_xpos#23 current_piece_gfx#16 current_piece_char#12 play_spawn_current::$3 ] ( main:13::play_spawn_current:26 [ current_ypos#18 current_xpos#23 current_piece_gfx#16 current_piece_char#12 play_spawn_current::$3 ] main:13::play_move_down:46::play_spawn_current:204 [ render_screen_show#16 render_screen_render#16 keyboard_events_size#16 main::key_event#0 current_ypos#18 current_xpos#23 current_piece_gfx#16 current_piece_char#12 play_spawn_current::$3 ] ) always clobbers reg byte a -Statement [223] (byte) play_spawn_current::piece_idx#1 ← (byte~) play_spawn_current::$1 & (byte/signed byte/word/signed word/dword/signed dword) 7 [ play_spawn_current::piece_idx#1 ] ( main:13::play_spawn_current:26 [ play_spawn_current::piece_idx#1 ] main:13::play_move_down:46::play_spawn_current:204 [ render_screen_show#16 render_screen_render#16 keyboard_events_size#16 main::key_event#0 play_spawn_current::piece_idx#1 ] ) always clobbers reg byte a -Statement [238] (byte) play_remove_lines::w#2 ← (byte) play_remove_lines::w#1 + (const byte) PLAYFIELD_COLS#0 [ play_remove_lines::y#8 play_remove_lines::r#1 play_remove_lines::w#2 ] ( main:13::play_move_down:46::play_remove_lines:202 [ render_screen_show#16 render_screen_render#16 keyboard_events_size#16 main::key_event#0 play_remove_lines::y#8 play_remove_lines::r#1 play_remove_lines::w#2 ] ) always clobbers reg byte a +Statement [213] (byte*) current_piece_gfx#16 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) + (byte/signed byte/word/signed word/dword/signed dword) 0 [ current_piece_gfx#16 play_spawn_current::$3 play_spawn_current::piece_idx#2 ] ( main:12::play_spawn_current:25 [ current_piece_gfx#16 play_spawn_current::$3 play_spawn_current::piece_idx#2 ] main:12::play_move_down:45::play_spawn_current:203 [ render_screen_show#16 render_screen_render#16 keyboard_events_size#16 main::key_event#0 current_piece_gfx#16 play_spawn_current::$3 play_spawn_current::piece_idx#2 ] ) always clobbers reg byte a +Statement [214] (byte) current_xpos#23 ← *((const byte[]) PIECES_START_X#0 + (byte) play_spawn_current::piece_idx#2) [ current_xpos#23 current_piece_gfx#16 play_spawn_current::$3 play_spawn_current::piece_idx#2 ] ( main:12::play_spawn_current:25 [ current_xpos#23 current_piece_gfx#16 play_spawn_current::$3 play_spawn_current::piece_idx#2 ] main:12::play_move_down:45::play_spawn_current:203 [ render_screen_show#16 render_screen_render#16 keyboard_events_size#16 main::key_event#0 current_xpos#23 current_piece_gfx#16 play_spawn_current::$3 play_spawn_current::piece_idx#2 ] ) always clobbers reg byte a +Statement [215] (byte) current_ypos#18 ← *((const byte[]) PIECES_START_Y#0 + (byte) play_spawn_current::piece_idx#2) [ current_ypos#18 current_xpos#23 current_piece_gfx#16 play_spawn_current::$3 play_spawn_current::piece_idx#2 ] ( main:12::play_spawn_current:25 [ current_ypos#18 current_xpos#23 current_piece_gfx#16 play_spawn_current::$3 play_spawn_current::piece_idx#2 ] main:12::play_move_down:45::play_spawn_current:203 [ render_screen_show#16 render_screen_render#16 keyboard_events_size#16 main::key_event#0 current_ypos#18 current_xpos#23 current_piece_gfx#16 play_spawn_current::$3 play_spawn_current::piece_idx#2 ] ) always clobbers reg byte a +Statement [216] (byte) current_piece_char#12 ← *((const byte[]) PIECES_CHARS#0 + (byte) play_spawn_current::piece_idx#2) [ current_ypos#18 current_xpos#23 current_piece_gfx#16 current_piece_char#12 play_spawn_current::$3 ] ( main:12::play_spawn_current:25 [ current_ypos#18 current_xpos#23 current_piece_gfx#16 current_piece_char#12 play_spawn_current::$3 ] main:12::play_move_down:45::play_spawn_current:203 [ render_screen_show#16 render_screen_render#16 keyboard_events_size#16 main::key_event#0 current_ypos#18 current_xpos#23 current_piece_gfx#16 current_piece_char#12 play_spawn_current::$3 ] ) always clobbers reg byte a +Statement [222] (byte) play_spawn_current::piece_idx#1 ← (byte~) play_spawn_current::$1 & (byte/signed byte/word/signed word/dword/signed dword) 7 [ play_spawn_current::piece_idx#1 ] ( main:12::play_spawn_current:25 [ play_spawn_current::piece_idx#1 ] main:12::play_move_down:45::play_spawn_current:203 [ render_screen_show#16 render_screen_render#16 keyboard_events_size#16 main::key_event#0 play_spawn_current::piece_idx#1 ] ) always clobbers reg byte a +Statement [237] (byte) play_remove_lines::w#2 ← (byte) play_remove_lines::w#1 + (const byte) PLAYFIELD_COLS#0 [ play_remove_lines::y#8 play_remove_lines::r#1 play_remove_lines::w#2 ] ( main:12::play_move_down:45::play_remove_lines:201 [ render_screen_show#16 render_screen_render#16 keyboard_events_size#16 main::key_event#0 play_remove_lines::y#8 play_remove_lines::r#1 play_remove_lines::w#2 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:47 [ play_remove_lines::y#8 play_remove_lines::y#1 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:48 [ play_remove_lines::r#2 play_remove_lines::r#3 play_remove_lines::r#1 ] -Statement [245] *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) play_remove_lines::w#6) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ play_remove_lines::w#6 ] ( main:13::play_move_down:46::play_remove_lines:202 [ render_screen_show#16 render_screen_render#16 keyboard_events_size#16 main::key_event#0 play_remove_lines::w#6 ] ) always clobbers reg byte a +Statement [244] *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) play_remove_lines::w#6) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ play_remove_lines::w#6 ] ( main:12::play_move_down:45::play_remove_lines:201 [ render_screen_show#16 render_screen_render#16 keyboard_events_size#16 main::key_event#0 play_remove_lines::w#6 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:51 [ play_remove_lines::w#6 play_remove_lines::w#4 play_remove_lines::w#12 play_remove_lines::w#11 play_remove_lines::w#1 play_remove_lines::w#2 play_remove_lines::w#3 ] -Statement [248] (byte) play_lock_current::ypos2#0 ← (byte) current_ypos#21 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ current_piece_gfx#20 current_xpos#10 current_piece_char#15 play_lock_current::ypos2#0 ] ( main:13::play_move_down:46::play_lock_current:200 [ render_screen_show#16 render_screen_render#16 keyboard_events_size#16 main::key_event#0 current_piece_gfx#20 current_xpos#10 current_piece_char#15 play_lock_current::ypos2#0 ] ) always clobbers reg byte a -Statement [250] (byte*) play_lock_current::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) play_lock_current::ypos2#2) [ current_piece_gfx#20 current_xpos#10 current_piece_char#15 play_lock_current::ypos2#2 play_lock_current::i#3 play_lock_current::l#6 play_lock_current::playfield_line#0 ] ( main:13::play_move_down:46::play_lock_current:200 [ render_screen_show#16 render_screen_render#16 keyboard_events_size#16 main::key_event#0 current_piece_gfx#20 current_xpos#10 current_piece_char#15 play_lock_current::ypos2#2 play_lock_current::i#3 play_lock_current::l#6 play_lock_current::playfield_line#0 ] ) always clobbers reg byte a +Statement [247] (byte) play_lock_current::ypos2#0 ← (byte) current_ypos#21 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ current_piece_gfx#20 current_xpos#10 current_piece_char#15 play_lock_current::ypos2#0 ] ( main:12::play_move_down:45::play_lock_current:199 [ render_screen_show#16 render_screen_render#16 keyboard_events_size#16 main::key_event#0 current_piece_gfx#20 current_xpos#10 current_piece_char#15 play_lock_current::ypos2#0 ] ) always clobbers reg byte a +Statement [249] (byte*) play_lock_current::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) play_lock_current::ypos2#2) [ current_piece_gfx#20 current_xpos#10 current_piece_char#15 play_lock_current::ypos2#2 play_lock_current::i#3 play_lock_current::l#6 play_lock_current::playfield_line#0 ] ( main:12::play_move_down:45::play_lock_current:199 [ render_screen_show#16 render_screen_render#16 keyboard_events_size#16 main::key_event#0 current_piece_gfx#20 current_xpos#10 current_piece_char#15 play_lock_current::ypos2#2 play_lock_current::i#3 play_lock_current::l#6 play_lock_current::playfield_line#0 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:52 [ play_lock_current::ypos2#2 play_lock_current::ypos2#0 play_lock_current::ypos2#1 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:54 [ play_lock_current::i#2 play_lock_current::i#3 play_lock_current::i#7 play_lock_current::i#9 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:53 [ play_lock_current::l#6 play_lock_current::l#1 ] -Statement [254] if(*((byte*) current_piece_gfx#20 + (byte) play_lock_current::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_lock_current::@3 [ current_piece_gfx#20 current_xpos#10 current_piece_char#15 play_lock_current::ypos2#2 play_lock_current::l#6 play_lock_current::playfield_line#0 play_lock_current::col#2 play_lock_current::c#2 play_lock_current::i#1 ] ( main:13::play_move_down:46::play_lock_current:200 [ render_screen_show#16 render_screen_render#16 keyboard_events_size#16 main::key_event#0 current_piece_gfx#20 current_xpos#10 current_piece_char#15 play_lock_current::ypos2#2 play_lock_current::l#6 play_lock_current::playfield_line#0 play_lock_current::col#2 play_lock_current::c#2 play_lock_current::i#1 ] ) always clobbers reg byte a +Statement [253] if(*((byte*) current_piece_gfx#20 + (byte) play_lock_current::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_lock_current::@3 [ current_piece_gfx#20 current_xpos#10 current_piece_char#15 play_lock_current::ypos2#2 play_lock_current::l#6 play_lock_current::playfield_line#0 play_lock_current::col#2 play_lock_current::c#2 play_lock_current::i#1 ] ( main:12::play_move_down:45::play_lock_current:199 [ render_screen_show#16 render_screen_render#16 keyboard_events_size#16 main::key_event#0 current_piece_gfx#20 current_xpos#10 current_piece_char#15 play_lock_current::ypos2#2 play_lock_current::l#6 play_lock_current::playfield_line#0 play_lock_current::col#2 play_lock_current::c#2 play_lock_current::i#1 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:55 [ play_lock_current::col#2 play_lock_current::col#0 play_lock_current::col#1 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:56 [ play_lock_current::c#2 play_lock_current::c#1 ] -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:140 [ play_lock_current::i#1 ] -Statement [255] *((byte*) play_lock_current::playfield_line#0 + (byte) play_lock_current::col#2) ← (byte) current_piece_char#15 [ current_piece_gfx#20 current_xpos#10 current_piece_char#15 play_lock_current::ypos2#2 play_lock_current::l#6 play_lock_current::playfield_line#0 play_lock_current::col#2 play_lock_current::c#2 play_lock_current::i#1 ] ( main:13::play_move_down:46::play_lock_current:200 [ render_screen_show#16 render_screen_render#16 keyboard_events_size#16 main::key_event#0 current_piece_gfx#20 current_xpos#10 current_piece_char#15 play_lock_current::ypos2#2 play_lock_current::l#6 play_lock_current::playfield_line#0 play_lock_current::col#2 play_lock_current::c#2 play_lock_current::i#1 ] ) always clobbers reg byte a -Statement [266] (byte~) keyboard_event_pressed::$0 ← (byte) keyboard_event_pressed::keycode#5 >> (byte/signed byte/word/signed word/dword/signed dword) 3 [ keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] ( main:13::play_move_down:46::keyboard_event_pressed:180 [ render_screen_show#16 render_screen_render#16 keyboard_events_size#16 main::key_event#0 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#1 play_move_down::movedown#10 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] main:13::keyboard_event_scan:40::keyboard_event_pressed:288 [ render_screen_show#16 render_screen_render#16 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 keyboard_events_size#13 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] main:13::keyboard_event_scan:40::keyboard_event_pressed:294 [ render_screen_show#16 render_screen_render#16 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 keyboard_events_size#13 keyboard_modifiers#11 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] main:13::keyboard_event_scan:40::keyboard_event_pressed:300 [ render_screen_show#16 render_screen_render#16 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 keyboard_events_size#13 keyboard_modifiers#12 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] main:13::keyboard_event_scan:40::keyboard_event_pressed:306 [ render_screen_show#16 render_screen_render#16 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 keyboard_events_size#13 keyboard_modifiers#13 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:138 [ play_lock_current::i#1 ] +Statement [254] *((byte*) play_lock_current::playfield_line#0 + (byte) play_lock_current::col#2) ← (byte) current_piece_char#15 [ current_piece_gfx#20 current_xpos#10 current_piece_char#15 play_lock_current::ypos2#2 play_lock_current::l#6 play_lock_current::playfield_line#0 play_lock_current::col#2 play_lock_current::c#2 play_lock_current::i#1 ] ( main:12::play_move_down:45::play_lock_current:199 [ render_screen_show#16 render_screen_render#16 keyboard_events_size#16 main::key_event#0 current_piece_gfx#20 current_xpos#10 current_piece_char#15 play_lock_current::ypos2#2 play_lock_current::l#6 play_lock_current::playfield_line#0 play_lock_current::col#2 play_lock_current::c#2 play_lock_current::i#1 ] ) always clobbers reg byte a +Statement [265] (byte~) keyboard_event_pressed::$0 ← (byte) keyboard_event_pressed::keycode#5 >> (byte/signed byte/word/signed word/dword/signed dword) 3 [ keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] ( main:12::play_move_down:45::keyboard_event_pressed:179 [ render_screen_show#16 render_screen_render#16 keyboard_events_size#16 main::key_event#0 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#1 play_move_down::movedown#10 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] main:12::keyboard_event_scan:39::keyboard_event_pressed:287 [ render_screen_show#16 render_screen_render#16 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 keyboard_events_size#13 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] main:12::keyboard_event_scan:39::keyboard_event_pressed:293 [ render_screen_show#16 render_screen_render#16 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 keyboard_events_size#13 keyboard_modifiers#11 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] main:12::keyboard_event_scan:39::keyboard_event_pressed:299 [ render_screen_show#16 render_screen_render#16 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 keyboard_events_size#13 keyboard_modifiers#12 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] main:12::keyboard_event_scan:39::keyboard_event_pressed:305 [ render_screen_show#16 render_screen_render#16 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 keyboard_events_size#13 keyboard_modifiers#13 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:36 [ play_move_down::movedown#6 play_move_down::movedown#3 play_move_down::movedown#7 play_move_down::movedown#2 play_move_down::movedown#10 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:57 [ keyboard_event_pressed::keycode#5 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:60 [ keyboard_modifiers#13 keyboard_modifiers#4 keyboard_modifiers#12 keyboard_modifiers#3 keyboard_modifiers#11 ] -Statement [268] (byte~) keyboard_event_pressed::$1 ← (byte) keyboard_event_pressed::keycode#5 & (byte/signed byte/word/signed word/dword/signed dword) 7 [ keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] ( main:13::play_move_down:46::keyboard_event_pressed:180 [ render_screen_show#16 render_screen_render#16 keyboard_events_size#16 main::key_event#0 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#1 play_move_down::movedown#10 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:13::keyboard_event_scan:40::keyboard_event_pressed:288 [ render_screen_show#16 render_screen_render#16 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 keyboard_events_size#13 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:13::keyboard_event_scan:40::keyboard_event_pressed:294 [ render_screen_show#16 render_screen_render#16 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 keyboard_events_size#13 keyboard_modifiers#11 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:13::keyboard_event_scan:40::keyboard_event_pressed:300 [ render_screen_show#16 render_screen_render#16 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 keyboard_events_size#13 keyboard_modifiers#12 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:13::keyboard_event_scan:40::keyboard_event_pressed:306 [ render_screen_show#16 render_screen_render#16 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 keyboard_events_size#13 keyboard_modifiers#13 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] ) always clobbers reg byte a -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:142 [ keyboard_event_pressed::row_bits#0 ] -Statement [269] (byte) keyboard_event_pressed::return#11 ← (byte) keyboard_event_pressed::row_bits#0 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte~) keyboard_event_pressed::$1) [ keyboard_event_pressed::return#11 ] ( main:13::play_move_down:46::keyboard_event_pressed:180 [ render_screen_show#16 render_screen_render#16 keyboard_events_size#16 main::key_event#0 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#1 play_move_down::movedown#10 keyboard_event_pressed::return#11 ] main:13::keyboard_event_scan:40::keyboard_event_pressed:288 [ render_screen_show#16 render_screen_render#16 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 keyboard_events_size#13 keyboard_event_pressed::return#11 ] main:13::keyboard_event_scan:40::keyboard_event_pressed:294 [ render_screen_show#16 render_screen_render#16 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 keyboard_events_size#13 keyboard_modifiers#11 keyboard_event_pressed::return#11 ] main:13::keyboard_event_scan:40::keyboard_event_pressed:300 [ render_screen_show#16 render_screen_render#16 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 keyboard_events_size#13 keyboard_modifiers#12 keyboard_event_pressed::return#11 ] main:13::keyboard_event_scan:40::keyboard_event_pressed:306 [ render_screen_show#16 render_screen_render#16 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 keyboard_events_size#13 keyboard_modifiers#13 keyboard_event_pressed::return#11 ] ) always clobbers reg byte a -Statement [283] (byte) keyboard_event_scan::keycode#1 ← (byte) keyboard_event_scan::keycode#11 + (byte/signed byte/word/signed word/dword/signed dword) 8 [ keyboard_event_scan::row#2 keyboard_events_size#29 keyboard_event_scan::keycode#1 ] ( main:13::keyboard_event_scan:40 [ render_screen_show#16 render_screen_render#16 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 keyboard_event_scan::row#2 keyboard_events_size#29 keyboard_event_scan::keycode#1 ] ) always clobbers reg byte a +Statement [267] (byte~) keyboard_event_pressed::$1 ← (byte) keyboard_event_pressed::keycode#5 & (byte/signed byte/word/signed word/dword/signed dword) 7 [ keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] ( main:12::play_move_down:45::keyboard_event_pressed:179 [ render_screen_show#16 render_screen_render#16 keyboard_events_size#16 main::key_event#0 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#1 play_move_down::movedown#10 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:12::keyboard_event_scan:39::keyboard_event_pressed:287 [ render_screen_show#16 render_screen_render#16 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 keyboard_events_size#13 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:12::keyboard_event_scan:39::keyboard_event_pressed:293 [ render_screen_show#16 render_screen_render#16 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 keyboard_events_size#13 keyboard_modifiers#11 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:12::keyboard_event_scan:39::keyboard_event_pressed:299 [ render_screen_show#16 render_screen_render#16 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 keyboard_events_size#13 keyboard_modifiers#12 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:12::keyboard_event_scan:39::keyboard_event_pressed:305 [ render_screen_show#16 render_screen_render#16 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 keyboard_events_size#13 keyboard_modifiers#13 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:140 [ keyboard_event_pressed::row_bits#0 ] +Statement [268] (byte) keyboard_event_pressed::return#11 ← (byte) keyboard_event_pressed::row_bits#0 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte~) keyboard_event_pressed::$1) [ keyboard_event_pressed::return#11 ] ( main:12::play_move_down:45::keyboard_event_pressed:179 [ render_screen_show#16 render_screen_render#16 keyboard_events_size#16 main::key_event#0 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#1 play_move_down::movedown#10 keyboard_event_pressed::return#11 ] main:12::keyboard_event_scan:39::keyboard_event_pressed:287 [ render_screen_show#16 render_screen_render#16 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 keyboard_events_size#13 keyboard_event_pressed::return#11 ] main:12::keyboard_event_scan:39::keyboard_event_pressed:293 [ render_screen_show#16 render_screen_render#16 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 keyboard_events_size#13 keyboard_modifiers#11 keyboard_event_pressed::return#11 ] main:12::keyboard_event_scan:39::keyboard_event_pressed:299 [ render_screen_show#16 render_screen_render#16 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 keyboard_events_size#13 keyboard_modifiers#12 keyboard_event_pressed::return#11 ] main:12::keyboard_event_scan:39::keyboard_event_pressed:305 [ render_screen_show#16 render_screen_render#16 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 keyboard_events_size#13 keyboard_modifiers#13 keyboard_event_pressed::return#11 ] ) always clobbers reg byte a +Statement [282] (byte) keyboard_event_scan::keycode#1 ← (byte) keyboard_event_scan::keycode#11 + (byte/signed byte/word/signed word/dword/signed dword) 8 [ keyboard_event_scan::row#2 keyboard_events_size#29 keyboard_event_scan::keycode#1 ] ( main:12::keyboard_event_scan:39 [ render_screen_show#16 render_screen_render#16 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 keyboard_event_scan::row#2 keyboard_events_size#29 keyboard_event_scan::keycode#1 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:59 [ keyboard_event_scan::row#2 keyboard_event_scan::row#1 ] -Statement [298] (byte) keyboard_modifiers#3 ← (byte) keyboard_modifiers#11 | (const byte) KEY_MODIFIER_RSHIFT#0 [ keyboard_events_size#13 keyboard_modifiers#3 ] ( main:13::keyboard_event_scan:40 [ render_screen_show#16 render_screen_render#16 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 keyboard_events_size#13 keyboard_modifiers#3 ] ) always clobbers reg byte a -Statement [304] (byte) keyboard_modifiers#4 ← (byte) keyboard_modifiers#12 | (const byte) KEY_MODIFIER_CTRL#0 [ keyboard_events_size#13 keyboard_modifiers#4 ] ( main:13::keyboard_event_scan:40 [ render_screen_show#16 render_screen_render#16 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 keyboard_events_size#13 keyboard_modifiers#4 ] ) always clobbers reg byte a -Statement [310] (byte) keyboard_modifiers#5 ← (byte) keyboard_modifiers#13 | (const byte) KEY_MODIFIER_COMMODORE#0 [ keyboard_events_size#13 ] ( main:13::keyboard_event_scan:40 [ render_screen_show#16 render_screen_render#16 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 keyboard_events_size#13 ] ) always clobbers reg byte a -Statement [313] (byte~) keyboard_event_scan::$3 ← (byte) keyboard_event_scan::row_scan#0 ^ *((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2) [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::$3 ] ( main:13::keyboard_event_scan:40 [ render_screen_show#16 render_screen_render#16 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::$3 ] ) always clobbers reg byte a -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:147 [ keyboard_event_scan::row_scan#0 ] +Statement [297] (byte) keyboard_modifiers#3 ← (byte) keyboard_modifiers#11 | (const byte) KEY_MODIFIER_RSHIFT#0 [ keyboard_events_size#13 keyboard_modifiers#3 ] ( main:12::keyboard_event_scan:39 [ render_screen_show#16 render_screen_render#16 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 keyboard_events_size#13 keyboard_modifiers#3 ] ) always clobbers reg byte a +Statement [303] (byte) keyboard_modifiers#4 ← (byte) keyboard_modifiers#12 | (const byte) KEY_MODIFIER_CTRL#0 [ keyboard_events_size#13 keyboard_modifiers#4 ] ( main:12::keyboard_event_scan:39 [ render_screen_show#16 render_screen_render#16 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 keyboard_events_size#13 keyboard_modifiers#4 ] ) always clobbers reg byte a +Statement [309] (byte) keyboard_modifiers#5 ← (byte) keyboard_modifiers#13 | (const byte) KEY_MODIFIER_COMMODORE#0 [ keyboard_events_size#13 ] ( main:12::keyboard_event_scan:39 [ render_screen_show#16 render_screen_render#16 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 keyboard_events_size#13 ] ) always clobbers reg byte a +Statement [312] (byte~) keyboard_event_scan::$3 ← (byte) keyboard_event_scan::row_scan#0 ^ *((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2) [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::$3 ] ( main:12::keyboard_event_scan:39 [ render_screen_show#16 render_screen_render#16 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::$3 ] ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:145 [ keyboard_event_scan::row_scan#0 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:61 [ keyboard_event_scan::col#2 keyboard_event_scan::col#1 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:62 [ keyboard_event_scan::keycode#10 keyboard_event_scan::keycode#11 keyboard_event_scan::keycode#14 keyboard_event_scan::keycode#1 keyboard_event_scan::keycode#15 ] -Statement [314] (byte~) keyboard_event_scan::$4 ← (byte~) keyboard_event_scan::$3 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_event_scan::col#2) [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::$4 ] ( main:13::keyboard_event_scan:40 [ render_screen_show#16 render_screen_render#16 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::$4 ] ) always clobbers reg byte a -Statement [317] (byte) keyboard_event_scan::event_type#0 ← (byte) keyboard_event_scan::row_scan#0 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_event_scan::col#2) [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::event_type#0 ] ( main:13::keyboard_event_scan:40 [ render_screen_show#16 render_screen_render#16 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::event_type#0 ] ) always clobbers reg byte a -Statement [319] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte) keyboard_event_scan::keycode#10 [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 ] ( main:13::keyboard_event_scan:40 [ render_screen_show#16 render_screen_render#16 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 ] ) always clobbers reg byte a -Statement [325] *((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2) ← (byte) keyboard_event_scan::row_scan#0 [ keyboard_event_scan::row#2 keyboard_event_scan::keycode#15 keyboard_events_size#30 ] ( main:13::keyboard_event_scan:40 [ render_screen_show#16 render_screen_render#16 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 keyboard_event_scan::row#2 keyboard_event_scan::keycode#15 keyboard_events_size#30 ] ) always clobbers reg byte a -Statement [326] (byte/word/dword~) keyboard_event_scan::$11 ← (byte) keyboard_event_scan::keycode#10 | (byte/signed byte/word/signed word/dword/signed dword) 64 [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::$11 ] ( main:13::keyboard_event_scan:40 [ render_screen_show#16 render_screen_render#16 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::$11 ] ) always clobbers reg byte a -Statement [329] *((const byte*) CIA1_PORT_A#0) ← *((const byte[8]) keyboard_matrix_row_bitmask#0 + (byte) keyboard_matrix_read::rowid#0) [ ] ( main:13::keyboard_event_scan:40::keyboard_matrix_read:279 [ render_screen_show#16 render_screen_render#16 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#29 ] ) always clobbers reg byte a -Statement [330] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) [ keyboard_matrix_read::return#0 ] ( main:13::keyboard_event_scan:40::keyboard_matrix_read:279 [ render_screen_show#16 render_screen_render#16 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#29 keyboard_matrix_read::return#0 ] ) always clobbers reg byte a -Statement [341] (byte~) play_init::$1 ← (byte) play_init::j#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ play_init::j#2 play_init::pli#2 play_init::idx#2 play_init::$1 ] ( main:13::play_init:24 [ play_init::j#2 play_init::pli#2 play_init::idx#2 play_init::$1 ] ) always clobbers reg byte a +Statement [313] (byte~) keyboard_event_scan::$4 ← (byte~) keyboard_event_scan::$3 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_event_scan::col#2) [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::$4 ] ( main:12::keyboard_event_scan:39 [ render_screen_show#16 render_screen_render#16 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::$4 ] ) always clobbers reg byte a +Statement [316] (byte) keyboard_event_scan::event_type#0 ← (byte) keyboard_event_scan::row_scan#0 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_event_scan::col#2) [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::event_type#0 ] ( main:12::keyboard_event_scan:39 [ render_screen_show#16 render_screen_render#16 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::event_type#0 ] ) always clobbers reg byte a +Statement [318] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte) keyboard_event_scan::keycode#10 [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 ] ( main:12::keyboard_event_scan:39 [ render_screen_show#16 render_screen_render#16 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 ] ) always clobbers reg byte a +Statement [324] *((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2) ← (byte) keyboard_event_scan::row_scan#0 [ keyboard_event_scan::row#2 keyboard_event_scan::keycode#15 keyboard_events_size#30 ] ( main:12::keyboard_event_scan:39 [ render_screen_show#16 render_screen_render#16 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 keyboard_event_scan::row#2 keyboard_event_scan::keycode#15 keyboard_events_size#30 ] ) always clobbers reg byte a +Statement [325] (byte/word/dword~) keyboard_event_scan::$11 ← (byte) keyboard_event_scan::keycode#10 | (byte/signed byte/word/signed word/dword/signed dword) 64 [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::$11 ] ( main:12::keyboard_event_scan:39 [ render_screen_show#16 render_screen_render#16 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::$11 ] ) always clobbers reg byte a +Statement [328] *((const byte*) CIA1_PORT_A#0) ← *((const byte[8]) keyboard_matrix_row_bitmask#0 + (byte) keyboard_matrix_read::rowid#0) [ ] ( main:12::keyboard_event_scan:39::keyboard_matrix_read:278 [ render_screen_show#16 render_screen_render#16 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#29 ] ) always clobbers reg byte a +Statement [329] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) [ keyboard_matrix_read::return#0 ] ( main:12::keyboard_event_scan:39::keyboard_matrix_read:278 [ render_screen_show#16 render_screen_render#16 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#29 keyboard_matrix_read::return#0 ] ) always clobbers reg byte a +Statement [340] (byte~) play_init::$1 ← (byte) play_init::j#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ play_init::j#2 play_init::pli#2 play_init::idx#2 play_init::$1 ] ( main:12::play_init:23 [ play_init::j#2 play_init::pli#2 play_init::idx#2 play_init::$1 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:65 [ play_init::j#2 play_init::j#1 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:68 [ play_init::idx#2 play_init::idx#1 ] -Statement [342] *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte~) play_init::$1) ← (byte*) play_init::pli#2 [ play_init::j#2 play_init::pli#2 play_init::idx#2 ] ( main:13::play_init:24 [ play_init::j#2 play_init::pli#2 play_init::idx#2 ] ) always clobbers reg byte a -Statement [343] *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0 + (byte) play_init::j#2) ← (byte) play_init::idx#2 [ play_init::j#2 play_init::pli#2 play_init::idx#2 ] ( main:13::play_init:24 [ play_init::j#2 play_init::pli#2 play_init::idx#2 ] ) always clobbers reg byte a -Statement [344] (byte*) play_init::pli#1 ← (byte*) play_init::pli#2 + (const byte) PLAYFIELD_COLS#0 [ play_init::j#2 play_init::idx#2 play_init::pli#1 ] ( main:13::play_init:24 [ play_init::j#2 play_init::idx#2 play_init::pli#1 ] ) always clobbers reg byte a -Statement [345] (byte) play_init::idx#1 ← (byte) play_init::idx#2 + (const byte) PLAYFIELD_COLS#0 [ play_init::j#2 play_init::pli#1 play_init::idx#1 ] ( main:13::play_init:24 [ play_init::j#2 play_init::pli#1 play_init::idx#1 ] ) always clobbers reg byte a -Statement [348] *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0+(const byte) PLAYFIELD_LINES#0) ← (const byte) PLAYFIELD_COLS#0*(const byte) PLAYFIELD_LINES#0 [ ] ( main:13::play_init:24 [ ] ) always clobbers reg byte a -Statement [351] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0 [ ] ( main:13::sprites_irq_init:22 [ ] ) always clobbers reg byte a +Statement [341] *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte~) play_init::$1) ← (byte*) play_init::pli#2 [ play_init::j#2 play_init::pli#2 play_init::idx#2 ] ( main:12::play_init:23 [ play_init::j#2 play_init::pli#2 play_init::idx#2 ] ) always clobbers reg byte a +Statement [342] *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0 + (byte) play_init::j#2) ← (byte) play_init::idx#2 [ play_init::j#2 play_init::pli#2 play_init::idx#2 ] ( main:12::play_init:23 [ play_init::j#2 play_init::pli#2 play_init::idx#2 ] ) always clobbers reg byte a +Statement [343] (byte*) play_init::pli#1 ← (byte*) play_init::pli#2 + (const byte) PLAYFIELD_COLS#0 [ play_init::j#2 play_init::idx#2 play_init::pli#1 ] ( main:12::play_init:23 [ play_init::j#2 play_init::idx#2 play_init::pli#1 ] ) always clobbers reg byte a +Statement [344] (byte) play_init::idx#1 ← (byte) play_init::idx#2 + (const byte) PLAYFIELD_COLS#0 [ play_init::j#2 play_init::pli#1 play_init::idx#1 ] ( main:12::play_init:23 [ play_init::j#2 play_init::pli#1 play_init::idx#1 ] ) always clobbers reg byte a +Statement [347] *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0+(const byte) PLAYFIELD_LINES#0) ← (const byte) PLAYFIELD_COLS#0*(const byte) PLAYFIELD_LINES#0 [ ] ( main:12::play_init:23 [ ] ) always clobbers reg byte a +Statement [350] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0 [ ] ( main:12::sprites_irq_init:21 [ ] ) always clobbers reg byte a Statement asm { ldaCIA1_INTERRUPT } always clobbers reg byte a -Statement [353] *((const byte*) PROCPORT_DDR#0) ← (const byte) PROCPORT_DDR_MEMORY_MASK#0 [ ] ( main:13::sprites_irq_init:22 [ ] ) always clobbers reg byte a -Statement [354] *((const byte*) PROCPORT#0) ← (const byte) PROCPORT_RAM_IO#0 [ ] ( main:13::sprites_irq_init:22 [ ] ) always clobbers reg byte a -Statement [355] *((const byte*) CIA1_INTERRUPT#0) ← (const byte) CIA_INTERRUPT_CLEAR#0 [ ] ( main:13::sprites_irq_init:22 [ ] ) always clobbers reg byte a -Statement [356] *((const byte*) VIC_CONTROL#0) ← *((const byte*) VIC_CONTROL#0) & (byte/signed byte/word/signed word/dword/signed dword) 127 [ ] ( main:13::sprites_irq_init:22 [ ] ) always clobbers reg byte a -Statement [357] *((const byte*) RASTER#0) ← (const byte) IRQ_RASTER_FIRST#0 [ ] ( main:13::sprites_irq_init:22 [ ] ) always clobbers reg byte a -Statement [358] *((const byte*) IRQ_ENABLE#0) ← (const byte) IRQ_RASTER#0 [ ] ( main:13::sprites_irq_init:22 [ ] ) always clobbers reg byte a -Statement [359] *((const void()**) HARDWARE_IRQ#0) ← &interrupt(HARDWARE_CLOBBER)(void()) sprites_irq() [ ] ( main:13::sprites_irq_init:22 [ ] ) always clobbers reg byte a -Statement [362] *((const byte*) SPRITES_ENABLE#0) ← (byte/signed byte/word/signed word/dword/signed dword) 15 [ ] ( main:13::sprites_init:20 [ ] ) always clobbers reg byte a -Statement [363] *((const byte*) SPRITES_MC#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:13::sprites_init:20 [ ] ) always clobbers reg byte a -Statement [364] *((const byte*) SPRITES_EXPAND_Y#0) ← *((const byte*) SPRITES_MC#0) [ ] ( main:13::sprites_init:20 [ ] ) always clobbers reg byte a -Statement [365] *((const byte*) SPRITES_EXPAND_X#0) ← *((const byte*) SPRITES_EXPAND_Y#0) [ ] ( main:13::sprites_init:20 [ ] ) always clobbers reg byte a -Statement [367] (byte) sprites_init::s2#0 ← (byte) sprites_init::s#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ sprites_init::s#2 sprites_init::xpos#2 sprites_init::s2#0 ] ( main:13::sprites_init:20 [ sprites_init::s#2 sprites_init::xpos#2 sprites_init::s2#0 ] ) always clobbers reg byte a +Statement [352] *((const byte*) PROCPORT_DDR#0) ← (const byte) PROCPORT_DDR_MEMORY_MASK#0 [ ] ( main:12::sprites_irq_init:21 [ ] ) always clobbers reg byte a +Statement [353] *((const byte*) PROCPORT#0) ← (const byte) PROCPORT_RAM_IO#0 [ ] ( main:12::sprites_irq_init:21 [ ] ) always clobbers reg byte a +Statement [354] *((const byte*) CIA1_INTERRUPT#0) ← (const byte) CIA_INTERRUPT_CLEAR#0 [ ] ( main:12::sprites_irq_init:21 [ ] ) always clobbers reg byte a +Statement [355] *((const byte*) VIC_CONTROL#0) ← *((const byte*) VIC_CONTROL#0) & (byte/signed byte/word/signed word/dword/signed dword) 127 [ ] ( main:12::sprites_irq_init:21 [ ] ) always clobbers reg byte a +Statement [356] *((const byte*) RASTER#0) ← (const byte) IRQ_RASTER_FIRST#0 [ ] ( main:12::sprites_irq_init:21 [ ] ) always clobbers reg byte a +Statement [357] *((const byte*) IRQ_ENABLE#0) ← (const byte) IRQ_RASTER#0 [ ] ( main:12::sprites_irq_init:21 [ ] ) always clobbers reg byte a +Statement [358] *((const void()**) HARDWARE_IRQ#0) ← &interrupt(HARDWARE_CLOBBER)(void()) sprites_irq() [ ] ( main:12::sprites_irq_init:21 [ ] ) always clobbers reg byte a +Statement [361] *((const byte*) SPRITES_ENABLE#0) ← (byte/signed byte/word/signed word/dword/signed dword) 15 [ ] ( main:12::sprites_init:19 [ ] ) always clobbers reg byte a +Statement [362] *((const byte*) SPRITES_MC#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:12::sprites_init:19 [ ] ) always clobbers reg byte a +Statement [363] *((const byte*) SPRITES_EXPAND_Y#0) ← *((const byte*) SPRITES_MC#0) [ ] ( main:12::sprites_init:19 [ ] ) always clobbers reg byte a +Statement [364] *((const byte*) SPRITES_EXPAND_X#0) ← *((const byte*) SPRITES_EXPAND_Y#0) [ ] ( main:12::sprites_init:19 [ ] ) always clobbers reg byte a +Statement [366] (byte) sprites_init::s2#0 ← (byte) sprites_init::s#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ sprites_init::s#2 sprites_init::xpos#2 sprites_init::s2#0 ] ( main:12::sprites_init:19 [ 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 ZP_BYTE:69 [ sprites_init::s#2 sprites_init::s#1 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:70 [ sprites_init::xpos#2 sprites_init::xpos#1 ] -Statement [368] *((const byte*) SPRITES_XPOS#0 + (byte) sprites_init::s2#0) ← (byte) sprites_init::xpos#2 [ sprites_init::s#2 sprites_init::xpos#2 ] ( main:13::sprites_init:20 [ sprites_init::s#2 sprites_init::xpos#2 ] ) always clobbers reg byte a -Statement [369] *((const byte*) SPRITES_COLS#0 + (byte) sprites_init::s#2) ← (const byte) BLACK#0 [ sprites_init::s#2 sprites_init::xpos#2 ] ( main:13::sprites_init:20 [ sprites_init::s#2 sprites_init::xpos#2 ] ) always clobbers reg byte a -Statement [370] (byte) sprites_init::xpos#1 ← (byte) sprites_init::xpos#2 + (byte/signed byte/word/signed word/dword/signed dword) 24 [ sprites_init::s#2 sprites_init::xpos#1 ] ( main:13::sprites_init:20 [ sprites_init::s#2 sprites_init::xpos#1 ] ) always clobbers reg byte a -Statement [375] *((const byte*) CIA2_PORT_A_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3 [ ] ( main:13::render_init:18 [ ] ) always clobbers reg byte a -Statement [377] *((const byte*) CIA2_PORT_A#0) ← (const byte) render_init::vicSelectGfxBank1_toDd001_return#0 [ ] ( main:13::render_init:18 [ ] ) always clobbers reg byte a -Statement [378] *((const byte*) D011#0) ← (const byte) VIC_ECM#0|(const byte) VIC_DEN#0|(const byte) VIC_RSEL#0|(byte/signed byte/word/signed word/dword/signed dword) 3 [ ] ( main:13::render_init:18 [ ] ) always clobbers reg byte a -Statement [379] *((const byte*) BORDERCOL#0) ← (const byte) BLACK#0 [ ] ( main:13::render_init:18 [ ] ) always clobbers reg byte a -Statement [380] *((const byte*) BGCOL1#0) ← (const byte) BLACK#0 [ ] ( main:13::render_init:18 [ ] ) always clobbers reg byte a -Statement [381] *((const byte*) BGCOL2#0) ← (const byte) BLUE#0 [ ] ( main:13::render_init:18 [ ] ) always clobbers reg byte a -Statement [382] *((const byte*) BGCOL3#0) ← (const byte) CYAN#0 [ ] ( main:13::render_init:18 [ ] ) always clobbers reg byte a -Statement [383] *((const byte*) BGCOL4#0) ← (const byte) GREY#0 [ ] ( main:13::render_init:18 [ ] ) always clobbers reg byte a -Statement [388] (byte~) render_init::$13 ← (byte) render_init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ render_init::i#2 render_init::li_1#2 render_init::li_2#2 render_init::$13 ] ( main:13::render_init:18 [ render_init::i#2 render_init::li_1#2 render_init::li_2#2 render_init::$13 ] ) always clobbers reg byte a +Statement [367] *((const byte*) SPRITES_XPOS#0 + (byte) sprites_init::s2#0) ← (byte) sprites_init::xpos#2 [ sprites_init::s#2 sprites_init::xpos#2 ] ( main:12::sprites_init:19 [ sprites_init::s#2 sprites_init::xpos#2 ] ) always clobbers reg byte a +Statement [368] *((const byte*) SPRITES_COLS#0 + (byte) sprites_init::s#2) ← (const byte) BLACK#0 [ sprites_init::s#2 sprites_init::xpos#2 ] ( main:12::sprites_init:19 [ sprites_init::s#2 sprites_init::xpos#2 ] ) always clobbers reg byte a +Statement [369] (byte) sprites_init::xpos#1 ← (byte) sprites_init::xpos#2 + (byte/signed byte/word/signed word/dword/signed dword) 24 [ sprites_init::s#2 sprites_init::xpos#1 ] ( main:12::sprites_init:19 [ sprites_init::s#2 sprites_init::xpos#1 ] ) always clobbers reg byte a +Statement [374] *((const byte*) CIA2_PORT_A_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3 [ ] ( main:12::render_init:17 [ ] ) always clobbers reg byte a +Statement [376] *((const byte*) CIA2_PORT_A#0) ← (const byte) render_init::vicSelectGfxBank1_toDd001_return#0 [ ] ( main:12::render_init:17 [ ] ) always clobbers reg byte a +Statement [377] *((const byte*) D011#0) ← (const byte) VIC_ECM#0|(const byte) VIC_DEN#0|(const byte) VIC_RSEL#0|(byte/signed byte/word/signed word/dword/signed dword) 3 [ ] ( main:12::render_init:17 [ ] ) always clobbers reg byte a +Statement [378] *((const byte*) BORDERCOL#0) ← (const byte) BLACK#0 [ ] ( main:12::render_init:17 [ ] ) always clobbers reg byte a +Statement [379] *((const byte*) BGCOL1#0) ← (const byte) BLACK#0 [ ] ( main:12::render_init:17 [ ] ) always clobbers reg byte a +Statement [380] *((const byte*) BGCOL2#0) ← (const byte) BLUE#0 [ ] ( main:12::render_init:17 [ ] ) always clobbers reg byte a +Statement [381] *((const byte*) BGCOL3#0) ← (const byte) CYAN#0 [ ] ( main:12::render_init:17 [ ] ) always clobbers reg byte a +Statement [382] *((const byte*) BGCOL4#0) ← (const byte) GREY#0 [ ] ( main:12::render_init:17 [ ] ) always clobbers reg byte a +Statement [387] (byte~) render_init::$13 ← (byte) render_init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ render_init::i#2 render_init::li_1#2 render_init::li_2#2 render_init::$13 ] ( main:12::render_init:17 [ render_init::i#2 render_init::li_1#2 render_init::li_2#2 render_init::$13 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:71 [ render_init::i#2 render_init::i#1 ] -Statement [389] *((const byte*[PLAYFIELD_LINES#0]) screen_lines_1#0 + (byte~) render_init::$13) ← (byte*) render_init::li_1#2 [ render_init::i#2 render_init::li_1#2 render_init::li_2#2 ] ( main:13::render_init:18 [ render_init::i#2 render_init::li_1#2 render_init::li_2#2 ] ) always clobbers reg byte a -Statement [390] (byte~) render_init::$14 ← (byte) render_init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ render_init::i#2 render_init::li_1#2 render_init::li_2#2 render_init::$14 ] ( main:13::render_init:18 [ render_init::i#2 render_init::li_1#2 render_init::li_2#2 render_init::$14 ] ) always clobbers reg byte a -Statement [391] *((const byte*[PLAYFIELD_LINES#0]) screen_lines_2#0 + (byte~) render_init::$14) ← (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 [ render_init::i#2 render_init::li_1#2 render_init::li_2#2 ] ) always clobbers reg byte a -Statement [392] (byte*) render_init::li_1#1 ← (byte*) render_init::li_1#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ render_init::i#2 render_init::li_2#2 render_init::li_1#1 ] ( main:13::render_init:18 [ render_init::i#2 render_init::li_2#2 render_init::li_1#1 ] ) always clobbers reg byte a -Statement [393] (byte*) render_init::li_2#1 ← (byte*) render_init::li_2#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ render_init::i#2 render_init::li_1#1 render_init::li_2#1 ] ( main:13::render_init:18 [ render_init::i#2 render_init::li_1#1 render_init::li_2#1 ] ) always clobbers reg byte a -Statement [400] *((byte*) render_screen_original::screen#5) ← (const byte) render_screen_original::SPACE#0 [ render_screen_original::oscr#4 render_screen_original::oext#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:384 [ render_screen_original::oscr#4 render_screen_original::oext#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:386 [ render_screen_original::oscr#4 render_screen_original::oext#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 [388] *((const byte*[PLAYFIELD_LINES#0]) screen_lines_1#0 + (byte~) render_init::$13) ← (byte*) render_init::li_1#2 [ render_init::i#2 render_init::li_1#2 render_init::li_2#2 ] ( main:12::render_init:17 [ render_init::i#2 render_init::li_1#2 render_init::li_2#2 ] ) always clobbers reg byte a +Statement [389] (byte~) render_init::$14 ← (byte) render_init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ render_init::i#2 render_init::li_1#2 render_init::li_2#2 render_init::$14 ] ( main:12::render_init:17 [ render_init::i#2 render_init::li_1#2 render_init::li_2#2 render_init::$14 ] ) always clobbers reg byte a +Statement [390] *((const byte*[PLAYFIELD_LINES#0]) screen_lines_2#0 + (byte~) render_init::$14) ← (byte*) render_init::li_2#2 [ render_init::i#2 render_init::li_1#2 render_init::li_2#2 ] ( main:12::render_init:17 [ render_init::i#2 render_init::li_1#2 render_init::li_2#2 ] ) always clobbers reg byte a +Statement [391] (byte*) render_init::li_1#1 ← (byte*) render_init::li_1#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ render_init::i#2 render_init::li_2#2 render_init::li_1#1 ] ( main:12::render_init:17 [ render_init::i#2 render_init::li_2#2 render_init::li_1#1 ] ) always clobbers reg byte a +Statement [392] (byte*) render_init::li_2#1 ← (byte*) render_init::li_2#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ render_init::i#2 render_init::li_1#1 render_init::li_2#1 ] ( main:12::render_init:17 [ render_init::i#2 render_init::li_1#1 render_init::li_2#1 ] ) always clobbers reg byte a +Statement [399] *((byte*) render_screen_original::screen#5) ← (const byte) render_screen_original::SPACE#0 [ 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:12::render_init:17::render_screen_original:383 [ 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:12::render_init:17::render_screen_original:385 [ 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 ZP_BYTE:76 [ render_screen_original::y#6 render_screen_original::y#1 ] Removing always clobbered register reg byte y as potential for zp ZP_BYTE:76 [ render_screen_original::y#6 render_screen_original::y#1 ] -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:87 [ 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 ZP_BYTE:87 [ 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 [402] *((byte*) render_screen_original::cols#4) ← (const byte) BLACK#0 [ render_screen_original::oscr#4 render_screen_original::oext#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:384 [ render_screen_original::oscr#4 render_screen_original::oext#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:386 [ render_screen_original::oscr#4 render_screen_original::oext#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 [407] (byte) render_screen_original::c#0 ← *((byte*) render_screen_original::oscr#2) + (byte/signed byte/word/signed word/dword/signed dword) 1 [ render_screen_original::y#6 render_screen_original::oscr#2 render_screen_original::oext#2 render_screen_original::screen#6 render_screen_original::ocols#2 render_screen_original::cols#5 render_screen_original::x#5 render_screen_original::c#0 ] ( main:13::render_init:18::render_screen_original:384 [ render_screen_original::y#6 render_screen_original::oscr#2 render_screen_original::oext#2 render_screen_original::screen#6 render_screen_original::ocols#2 render_screen_original::cols#5 render_screen_original::x#5 render_screen_original::c#0 ] main:13::render_init:18::render_screen_original:386 [ render_screen_original::y#6 render_screen_original::oscr#2 render_screen_original::oext#2 render_screen_original::screen#6 render_screen_original::ocols#2 render_screen_original::cols#5 render_screen_original::x#5 render_screen_original::c#0 ] ) always clobbers reg byte a reg byte y -Statement [409] (byte/signed word/word/dword/signed dword~) render_screen_original::$8 ← *((byte*) render_screen_original::oext#2) - (byte/signed byte/word/signed word/dword/signed dword) 1 [ render_screen_original::y#6 render_screen_original::oscr#1 render_screen_original::oext#2 render_screen_original::screen#6 render_screen_original::ocols#2 render_screen_original::cols#5 render_screen_original::x#5 render_screen_original::c#0 render_screen_original::$8 ] ( main:13::render_init:18::render_screen_original:384 [ render_screen_original::y#6 render_screen_original::oscr#1 render_screen_original::oext#2 render_screen_original::screen#6 render_screen_original::ocols#2 render_screen_original::cols#5 render_screen_original::x#5 render_screen_original::c#0 render_screen_original::$8 ] main:13::render_init:18::render_screen_original:386 [ render_screen_original::y#6 render_screen_original::oscr#1 render_screen_original::oext#2 render_screen_original::screen#6 render_screen_original::ocols#2 render_screen_original::cols#5 render_screen_original::x#5 render_screen_original::c#0 render_screen_original::$8 ] ) always clobbers reg byte a reg byte y -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:167 [ render_screen_original::c#0 ] -Removing always clobbered register reg byte y as potential for zp ZP_BYTE:167 [ render_screen_original::c#0 ] -Statement [410] (byte) render_screen_original::ext#0 ← (byte/signed word/word/dword/signed dword~) render_screen_original::$8 << (byte/signed byte/word/signed word/dword/signed dword) 6 [ render_screen_original::y#6 render_screen_original::oscr#1 render_screen_original::oext#2 render_screen_original::screen#6 render_screen_original::ocols#2 render_screen_original::cols#5 render_screen_original::x#5 render_screen_original::c#0 render_screen_original::ext#0 ] ( main:13::render_init:18::render_screen_original:384 [ render_screen_original::y#6 render_screen_original::oscr#1 render_screen_original::oext#2 render_screen_original::screen#6 render_screen_original::ocols#2 render_screen_original::cols#5 render_screen_original::x#5 render_screen_original::c#0 render_screen_original::ext#0 ] main:13::render_init:18::render_screen_original:386 [ render_screen_original::y#6 render_screen_original::oscr#1 render_screen_original::oext#2 render_screen_original::screen#6 render_screen_original::ocols#2 render_screen_original::cols#5 render_screen_original::x#5 render_screen_original::c#0 render_screen_original::ext#0 ] ) always clobbers reg byte a -Statement [413] *((byte*) render_screen_original::screen#6) ← (byte~) render_screen_original::$10 [ render_screen_original::y#6 render_screen_original::oscr#1 render_screen_original::oext#1 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:384 [ render_screen_original::y#6 render_screen_original::oscr#1 render_screen_original::oext#1 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:386 [ render_screen_original::y#6 render_screen_original::oscr#1 render_screen_original::oext#1 render_screen_original::screen#6 render_screen_original::ocols#2 render_screen_original::cols#5 render_screen_original::x#5 ] ) always clobbers reg byte y -Statement [415] *((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::oext#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:384 [ render_screen_original::y#6 render_screen_original::oscr#1 render_screen_original::oext#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:386 [ render_screen_original::y#6 render_screen_original::oscr#1 render_screen_original::oext#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 [421] *((byte*) render_screen_original::screen#7) ← (const byte) render_screen_original::SPACE#0 [ render_screen_original::y#6 render_screen_original::oscr#1 render_screen_original::oext#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:384 [ render_screen_original::y#6 render_screen_original::oscr#1 render_screen_original::oext#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:386 [ render_screen_original::y#6 render_screen_original::oscr#1 render_screen_original::oext#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 [423] *((byte*) render_screen_original::cols#6) ← (const byte) BLACK#0 [ render_screen_original::y#6 render_screen_original::screen#10 render_screen_original::oscr#1 render_screen_original::oext#1 render_screen_original::ocols#1 render_screen_original::cols#6 render_screen_original::x#6 ] ( main:13::render_init:18::render_screen_original:384 [ render_screen_original::y#6 render_screen_original::screen#10 render_screen_original::oscr#1 render_screen_original::oext#1 render_screen_original::ocols#1 render_screen_original::cols#6 render_screen_original::x#6 ] main:13::render_init:18::render_screen_original:386 [ render_screen_original::y#6 render_screen_original::screen#10 render_screen_original::oscr#1 render_screen_original::oext#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 [430] *((const word*) SID_VOICE3_FREQ#0) ← (word/dword/signed dword) 65535 [ ] ( main:13::sid_rnd_init:16 [ ] ) always clobbers reg byte a -Statement [431] *((const byte*) SID_VOICE3_CONTROL#0) ← (const byte) SID_CONTROL_NOISE#0 [ ] ( main:13::sid_rnd_init:16 [ ] ) always clobbers reg byte a -Statement [438] if(*((const byte*) RASTER#0)<(byte) irq_sprite_ypos#0) goto sprites_irq::@1 [ render_screen_showing#0 irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 irq_cnt#0 ] ( [ render_screen_showing#0 irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 irq_cnt#0 ] ) always clobbers reg byte a -Statement [440] if((byte) render_screen_showing#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto sprites_irq::@2 [ irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 irq_cnt#0 sprites_irq::ptr#0 ] ( [ irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 irq_cnt#0 sprites_irq::ptr#0 ] ) always clobbers reg byte a -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:172 [ sprites_irq::ptr#0 ] -Statement [447] (byte) irq_cnt#1 ← ++ (byte) irq_cnt#0 [ irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 irq_cnt#1 ] ( [ irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 irq_cnt#1 ] ) always clobbers reg byte y -Statement [448] if((byte) irq_cnt#1==(byte/signed byte/word/signed word/dword/signed dword) 10) goto sprites_irq::@4 [ irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 ] ( [ irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 ] ) always clobbers reg byte a -Statement [449] (byte) irq_raster_next#2 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 [ irq_sprite_ypos#0 irq_sprite_ptr#0 irq_raster_next#2 ] ( [ irq_sprite_ypos#0 irq_sprite_ptr#0 irq_raster_next#2 ] ) always clobbers reg byte a -Statement [450] (byte) irq_sprite_ypos#2 ← (byte) irq_sprite_ypos#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 [ irq_sprite_ptr#0 irq_raster_next#2 ] ( [ irq_sprite_ptr#0 irq_raster_next#2 ] ) always clobbers reg byte a -Statement [451] (byte) irq_sprite_ptr#2 ← (byte) irq_sprite_ptr#0 + (byte/signed byte/word/signed word/dword/signed dword) 3 [ irq_raster_next#2 ] ( [ irq_raster_next#2 ] ) always clobbers reg byte a -Statement [454] (byte~) sprites_irq::$4 ← (byte) sprites_irq::raster_next#0 & (byte/signed byte/word/signed word/dword/signed dword) 7 [ sprites_irq::raster_next#0 sprites_irq::$4 ] ( [ sprites_irq::raster_next#0 sprites_irq::$4 ] ) always clobbers reg byte a -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:89 [ sprites_irq::raster_next#2 sprites_irq::raster_next#1 sprites_irq::raster_next#0 ] -Statement [459] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0 [ ] ( [ ] ) always clobbers reg byte a -Statement [460] return [ ] ( [ ] ) always clobbers reg byte a reg byte x reg byte y -Statement [461] (byte) irq_cnt#14 ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( [ ] ) always clobbers reg byte a -Statement [462] (byte) irq_raster_next#1 ← (const byte) IRQ_RASTER_FIRST#0 [ irq_raster_next#1 ] ( [ irq_raster_next#1 ] ) always clobbers reg byte a -Statement [463] (byte) irq_sprite_ypos#1 ← (byte/signed byte/word/signed word/dword/signed dword) 50 [ irq_raster_next#1 ] ( [ irq_raster_next#1 ] ) always clobbers reg byte a -Statement [465] (byte) irq_sprite_ptr#1 ← (const byte) sprites_irq::toSpritePtr2_return#0 [ irq_raster_next#1 ] ( [ irq_raster_next#1 ] ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:85 [ 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 ZP_BYTE:85 [ 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 [401] *((byte*) render_screen_original::cols#4) ← (const byte) BLACK#0 [ 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:12::render_init:17::render_screen_original:383 [ 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:12::render_init:17::render_screen_original:385 [ 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 [406] *((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:12::render_init:17::render_screen_original:383 [ 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:12::render_init:17::render_screen_original:385 [ 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 [409] *((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:12::render_init:17::render_screen_original:383 [ 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:12::render_init:17::render_screen_original:385 [ 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 [415] *((byte*) render_screen_original::screen#7) ← (const byte) render_screen_original::SPACE#0 [ 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:12::render_init:17::render_screen_original:383 [ 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:12::render_init:17::render_screen_original:385 [ 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 [417] *((byte*) render_screen_original::cols#6) ← (const byte) BLACK#0 [ 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:12::render_init:17::render_screen_original:383 [ 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:12::render_init:17::render_screen_original:385 [ 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 [424] *((const word*) SID_VOICE3_FREQ#0) ← (word/dword/signed dword) 65535 [ ] ( main:12::sid_rnd_init:15 [ ] ) always clobbers reg byte a +Statement [425] *((const byte*) SID_VOICE3_CONTROL#0) ← (const byte) SID_CONTROL_NOISE#0 [ ] ( main:12::sid_rnd_init:15 [ ] ) always clobbers reg byte a +Statement [432] if(*((const byte*) RASTER#0)<(byte) irq_sprite_ypos#0) goto sprites_irq::@1 [ render_screen_showing#0 irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 irq_cnt#0 ] ( [ render_screen_showing#0 irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 irq_cnt#0 ] ) always clobbers reg byte a +Statement [434] if((byte) render_screen_showing#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto sprites_irq::@2 [ irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 irq_cnt#0 sprites_irq::ptr#0 ] ( [ irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 irq_cnt#0 sprites_irq::ptr#0 ] ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:166 [ sprites_irq::ptr#0 ] +Statement [441] (byte) irq_cnt#1 ← ++ (byte) irq_cnt#0 [ irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 irq_cnt#1 ] ( [ irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 irq_cnt#1 ] ) always clobbers reg byte y +Statement [442] if((byte) irq_cnt#1==(byte/signed byte/word/signed word/dword/signed dword) 10) goto sprites_irq::@4 [ irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 ] ( [ irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 ] ) always clobbers reg byte a +Statement [443] (byte) irq_raster_next#2 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 [ irq_sprite_ypos#0 irq_sprite_ptr#0 irq_raster_next#2 ] ( [ irq_sprite_ypos#0 irq_sprite_ptr#0 irq_raster_next#2 ] ) always clobbers reg byte a +Statement [444] (byte) irq_sprite_ypos#2 ← (byte) irq_sprite_ypos#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 [ irq_sprite_ptr#0 irq_raster_next#2 ] ( [ irq_sprite_ptr#0 irq_raster_next#2 ] ) always clobbers reg byte a +Statement [445] (byte) irq_sprite_ptr#2 ← (byte) irq_sprite_ptr#0 + (byte/signed byte/word/signed word/dword/signed dword) 3 [ irq_raster_next#2 ] ( [ irq_raster_next#2 ] ) always clobbers reg byte a +Statement [448] (byte~) sprites_irq::$4 ← (byte) sprites_irq::raster_next#0 & (byte/signed byte/word/signed word/dword/signed dword) 7 [ sprites_irq::raster_next#0 sprites_irq::$4 ] ( [ sprites_irq::raster_next#0 sprites_irq::$4 ] ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:87 [ sprites_irq::raster_next#2 sprites_irq::raster_next#1 sprites_irq::raster_next#0 ] +Statement [453] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0 [ ] ( [ ] ) always clobbers reg byte a +Statement [454] return [ ] ( [ ] ) always clobbers reg byte a reg byte x reg byte y +Statement [455] (byte) irq_cnt#14 ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( [ ] ) always clobbers reg byte a +Statement [456] (byte) irq_raster_next#1 ← (const byte) IRQ_RASTER_FIRST#0 [ irq_raster_next#1 ] ( [ irq_raster_next#1 ] ) always clobbers reg byte a +Statement [457] (byte) irq_sprite_ypos#1 ← (byte/signed byte/word/signed word/dword/signed dword) 50 [ irq_raster_next#1 ] ( [ irq_raster_next#1 ] ) always clobbers reg byte a +Statement [459] (byte) irq_sprite_ptr#1 ← (const byte) sprites_irq::toSpritePtr2_return#0 [ irq_raster_next#1 ] ( [ irq_raster_next#1 ] ) always clobbers reg byte a Statement [1] (byte) render_screen_showing#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( ) always clobbers reg byte a -Statement [7] (byte) irq_raster_next#0 ← (const byte) IRQ_RASTER_FIRST#0 [ ] ( ) always clobbers reg byte a -Statement [8] (byte) irq_sprite_ypos#0 ← (byte/signed byte/word/signed word/dword/signed dword) 50 [ ] ( ) always clobbers reg byte a -Statement [10] (byte) irq_sprite_ptr#0 ← (const byte) toSpritePtr1_return#0 [ ] ( ) always clobbers reg byte a -Statement [11] (byte) irq_cnt#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( ) always clobbers reg byte a -Statement [31] (byte*~) current_piece_gfx#100 ← (byte*) current_piece_gfx#16 [ current_ypos#84 current_ypos#18 current_xpos#110 current_xpos#23 current_piece_gfx#100 current_piece_gfx#16 current_piece_char#12 play_spawn_current::$3 ] ( main:13 [ current_ypos#84 current_ypos#18 current_xpos#110 current_xpos#23 current_piece_gfx#100 current_piece_gfx#16 current_piece_char#12 play_spawn_current::$3 ] ) always clobbers reg byte a -Statement [34] (byte*~) current_piece#71 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) [ current_ypos#18 current_xpos#23 current_piece_gfx#16 current_piece_char#12 current_piece#71 ] ( main:13 [ current_ypos#18 current_xpos#23 current_piece_gfx#16 current_piece_char#12 current_piece#71 ] ) always clobbers reg byte a -Statement [36] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@4 [ render_screen_show#16 render_screen_render#16 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 keyboard_events_size#19 current_movedown_counter#12 ] ( main:13 [ render_screen_show#16 render_screen_render#16 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 keyboard_events_size#19 current_movedown_counter#12 ] ) always clobbers reg byte a -Statement [49] (byte) main::render#1 ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte~) main::$12 [ render_screen_show#16 render_screen_render#16 current_piece#10 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_orientation#14 current_piece_gfx#1 current_xpos#1 ] ( main:13 [ render_screen_show#16 render_screen_render#16 current_piece#10 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_orientation#14 current_piece_gfx#1 current_xpos#1 ] ) always clobbers reg byte a -Statement [54] (byte) main::render#2 ← (byte) main::render#1 + (byte~) main::$13 [ render_screen_show#16 render_screen_render#16 current_piece#10 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#2 current_orientation#14 current_piece_gfx#1 ] ( main:13 [ render_screen_show#16 render_screen_render#16 current_piece#10 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#2 current_orientation#14 current_piece_gfx#1 ] ) always clobbers reg byte a -Statement [59] (byte) main::render#3 ← (byte) main::render#2 + (byte~) main::$14 [ render_screen_show#16 render_screen_render#16 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::render#3 ] ( main:13 [ render_screen_show#16 render_screen_render#16 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::render#3 ] ) always clobbers reg byte a -Statement [66] (byte*~) current_piece_gfx#101 ← (byte*) current_piece_gfx#14 [ render_screen_show#16 render_screen_render#16 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 current_ypos#85 render_screen_render#62 current_xpos#111 current_piece_gfx#101 ] ( main:13 [ render_screen_show#16 render_screen_render#16 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 current_ypos#85 render_screen_render#62 current_xpos#111 current_piece_gfx#101 ] ) always clobbers reg byte a -Statement [71] (byte) render_screen_render#11 ← (byte) render_screen_render#16 ^ (byte/signed byte/word/signed word/dword/signed dword) 64 [ render_screen_show#16 render_screen_render#11 ] ( main:13::render_screen_swap:70 [ current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 render_screen_show#16 render_screen_render#11 ] ) always clobbers reg byte a -Statement [72] (byte) render_screen_show#13 ← (byte) render_screen_show#16 ^ (byte/signed byte/word/signed word/dword/signed dword) 64 [ render_screen_show#13 render_screen_render#11 ] ( main:13::render_screen_swap:70 [ current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 render_screen_show#13 render_screen_render#11 ] ) always clobbers reg byte a -Statement [75] (byte) render_current::ypos2#0 ← (byte) current_ypos#9 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ render_screen_render#28 current_xpos#47 current_piece_gfx#53 current_piece_char#63 render_current::ypos2#0 ] ( main:13::render_current:33 [ current_ypos#18 current_xpos#23 current_piece_gfx#16 current_piece_char#12 play_spawn_current::$3 render_screen_render#28 current_xpos#47 current_piece_gfx#53 current_piece_char#63 render_current::ypos2#0 ] main:13::render_current:68 [ render_screen_show#16 render_screen_render#16 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 render_screen_render#28 current_xpos#47 current_piece_gfx#53 current_piece_char#63 render_current::ypos2#0 ] ) always clobbers reg byte a -Statement [77] if((byte) render_current::ypos2#2>(byte/signed byte/word/signed word/dword/signed dword) 2) goto render_current::@13 [ render_screen_render#28 current_xpos#47 current_piece_gfx#53 current_piece_char#63 render_current::ypos2#2 render_current::i#3 render_current::l#4 ] ( main:13::render_current:33 [ current_ypos#18 current_xpos#23 current_piece_gfx#16 current_piece_char#12 play_spawn_current::$3 render_screen_render#28 current_xpos#47 current_piece_gfx#53 current_piece_char#63 render_current::ypos2#2 render_current::i#3 render_current::l#4 ] main:13::render_current:68 [ render_screen_show#16 render_screen_render#16 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 render_screen_render#28 current_xpos#47 current_piece_gfx#53 current_piece_char#63 render_current::ypos2#2 render_current::i#3 render_current::l#4 ] ) always clobbers reg byte a -Statement [78] (byte) render_current::i#1 ← (byte) render_current::i#3 + (byte/signed byte/word/signed word/dword/signed dword) 4 [ render_screen_render#28 current_xpos#47 current_piece_gfx#53 current_piece_char#63 render_current::ypos2#2 render_current::l#4 render_current::i#1 ] ( main:13::render_current:33 [ current_ypos#18 current_xpos#23 current_piece_gfx#16 current_piece_char#12 play_spawn_current::$3 render_screen_render#28 current_xpos#47 current_piece_gfx#53 current_piece_char#63 render_current::ypos2#2 render_current::l#4 render_current::i#1 ] main:13::render_current:68 [ render_screen_show#16 render_screen_render#16 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 render_screen_render#28 current_xpos#47 current_piece_gfx#53 current_piece_char#63 render_current::ypos2#2 render_current::l#4 render_current::i#1 ] ) always clobbers reg byte a -Statement [85] (byte~) render_current::$5 ← (byte) render_screen_render#28 + (byte) render_current::ypos2#2 [ render_screen_render#28 current_xpos#47 current_piece_gfx#53 current_piece_char#63 render_current::ypos2#2 render_current::i#3 render_current::l#4 render_current::$5 ] ( main:13::render_current:33 [ current_ypos#18 current_xpos#23 current_piece_gfx#16 current_piece_char#12 play_spawn_current::$3 render_screen_render#28 current_xpos#47 current_piece_gfx#53 current_piece_char#63 render_current::ypos2#2 render_current::i#3 render_current::l#4 render_current::$5 ] main:13::render_current:68 [ render_screen_show#16 render_screen_render#16 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 render_screen_render#28 current_xpos#47 current_piece_gfx#53 current_piece_char#63 render_current::ypos2#2 render_current::i#3 render_current::l#4 render_current::$5 ] ) always clobbers reg byte a -Statement [86] (byte*) render_current::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) screen_lines_1#0 + (byte~) render_current::$5) [ render_screen_render#28 current_xpos#47 current_piece_gfx#53 current_piece_char#63 render_current::ypos2#2 render_current::i#3 render_current::l#4 render_current::screen_line#0 ] ( main:13::render_current:33 [ current_ypos#18 current_xpos#23 current_piece_gfx#16 current_piece_char#12 play_spawn_current::$3 render_screen_render#28 current_xpos#47 current_piece_gfx#53 current_piece_char#63 render_current::ypos2#2 render_current::i#3 render_current::l#4 render_current::screen_line#0 ] main:13::render_current:68 [ render_screen_show#16 render_screen_render#16 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 render_screen_render#28 current_xpos#47 current_piece_gfx#53 current_piece_char#63 render_current::ypos2#2 render_current::i#3 render_current::l#4 render_current::screen_line#0 ] ) always clobbers reg byte a -Statement [89] (byte) render_current::current_cell#0 ← *((byte*) current_piece_gfx#53 + (byte) render_current::i#4) [ render_screen_render#28 current_xpos#47 current_piece_gfx#53 current_piece_char#63 render_current::ypos2#2 render_current::l#4 render_current::screen_line#0 render_current::i#4 render_current::xpos#2 render_current::c#2 render_current::current_cell#0 ] ( main:13::render_current:33 [ current_ypos#18 current_xpos#23 current_piece_gfx#16 current_piece_char#12 play_spawn_current::$3 render_screen_render#28 current_xpos#47 current_piece_gfx#53 current_piece_char#63 render_current::ypos2#2 render_current::l#4 render_current::screen_line#0 render_current::i#4 render_current::xpos#2 render_current::c#2 render_current::current_cell#0 ] main:13::render_current:68 [ render_screen_show#16 render_screen_render#16 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 render_screen_render#28 current_xpos#47 current_piece_gfx#53 current_piece_char#63 render_current::ypos2#2 render_current::l#4 render_current::screen_line#0 render_current::i#4 render_current::xpos#2 render_current::c#2 render_current::current_cell#0 ] ) always clobbers reg byte a -Statement [93] *((byte*) render_current::screen_line#0 + (byte) render_current::xpos#2) ← (byte) current_piece_char#63 [ render_screen_render#28 current_xpos#47 current_piece_gfx#53 current_piece_char#63 render_current::ypos2#2 render_current::l#4 render_current::i#10 render_current::screen_line#0 render_current::xpos#2 render_current::c#2 ] ( main:13::render_current:33 [ current_ypos#18 current_xpos#23 current_piece_gfx#16 current_piece_char#12 play_spawn_current::$3 render_screen_render#28 current_xpos#47 current_piece_gfx#53 current_piece_char#63 render_current::ypos2#2 render_current::l#4 render_current::i#10 render_current::screen_line#0 render_current::xpos#2 render_current::c#2 ] main:13::render_current:68 [ render_screen_show#16 render_screen_render#16 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 render_screen_render#28 current_xpos#47 current_piece_gfx#53 current_piece_char#63 render_current::ypos2#2 render_current::l#4 render_current::i#10 render_current::screen_line#0 render_current::xpos#2 render_current::c#2 ] ) always clobbers reg byte a -Statement [99] (byte~) render_playfield::$2 ← (byte) render_playfield::l#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ render_screen_render#19 render_playfield::l#2 render_playfield::i#3 render_playfield::$2 ] ( main:13::render_playfield:28 [ current_ypos#18 current_xpos#23 current_piece_gfx#16 current_piece_char#12 play_spawn_current::$3 render_screen_render#19 render_playfield::l#2 render_playfield::i#3 render_playfield::$2 ] main:13::render_playfield:62 [ render_screen_show#16 render_screen_render#16 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 render_screen_render#19 render_playfield::l#2 render_playfield::i#3 render_playfield::$2 ] ) always clobbers reg byte a -Statement [100] (byte~) render_playfield::$3 ← (byte) render_screen_render#19 + (byte~) render_playfield::$2 [ render_screen_render#19 render_playfield::l#2 render_playfield::i#3 render_playfield::$3 ] ( main:13::render_playfield:28 [ current_ypos#18 current_xpos#23 current_piece_gfx#16 current_piece_char#12 play_spawn_current::$3 render_screen_render#19 render_playfield::l#2 render_playfield::i#3 render_playfield::$3 ] main:13::render_playfield:62 [ render_screen_show#16 render_screen_render#16 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 render_screen_render#19 render_playfield::l#2 render_playfield::i#3 render_playfield::$3 ] ) always clobbers reg byte a -Statement [101] (byte*) render_playfield::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) screen_lines_1#0 + (byte~) render_playfield::$3) [ render_screen_render#19 render_playfield::l#2 render_playfield::i#3 render_playfield::screen_line#0 ] ( main:13::render_playfield:28 [ current_ypos#18 current_xpos#23 current_piece_gfx#16 current_piece_char#12 play_spawn_current::$3 render_screen_render#19 render_playfield::l#2 render_playfield::i#3 render_playfield::screen_line#0 ] main:13::render_playfield:62 [ render_screen_show#16 render_screen_render#16 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 render_screen_render#19 render_playfield::l#2 render_playfield::i#3 render_playfield::screen_line#0 ] ) always clobbers reg byte a -Statement [103] *((byte*) render_playfield::screen_line#2) ← *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) render_playfield::i#2) [ render_screen_render#19 render_playfield::l#2 render_playfield::i#2 render_playfield::screen_line#2 render_playfield::c#2 ] ( main:13::render_playfield:28 [ current_ypos#18 current_xpos#23 current_piece_gfx#16 current_piece_char#12 play_spawn_current::$3 render_screen_render#19 render_playfield::l#2 render_playfield::i#2 render_playfield::screen_line#2 render_playfield::c#2 ] main:13::render_playfield:62 [ render_screen_show#16 render_screen_render#16 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 render_screen_render#19 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 [115] (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 ← (byte) current_orientation#14 + (byte/signed byte/word/signed word/dword/signed dword) 16 [ current_piece#10 current_xpos#19 current_ypos#13 current_orientation#14 current_piece_gfx#1 play_move_rotate::$2 ] ( main:13::play_move_rotate:56 [ render_screen_show#16 render_screen_render#16 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::render#2 current_piece#10 current_xpos#19 current_ypos#13 current_orientation#14 current_piece_gfx#1 play_move_rotate::$2 ] ) always clobbers reg byte a -Statement [116] (byte) play_move_rotate::orientation#2 ← (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 & (byte/signed byte/word/signed word/dword/signed dword) 63 [ current_piece#10 current_xpos#19 current_ypos#13 current_orientation#14 current_piece_gfx#1 play_move_rotate::orientation#2 ] ( main:13::play_move_rotate:56 [ render_screen_show#16 render_screen_render#16 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::render#2 current_piece#10 current_xpos#19 current_ypos#13 current_orientation#14 current_piece_gfx#1 play_move_rotate::orientation#2 ] ) always clobbers reg byte a -Statement [121] (byte*~) current_piece#77 ← (byte*) current_piece#10 [ current_piece#10 current_xpos#19 current_ypos#13 current_orientation#14 current_piece_gfx#1 play_move_rotate::orientation#3 play_collision::xpos#3 play_collision::ypos#3 play_collision::orientation#3 current_piece#77 ] ( main:13::play_move_rotate:56 [ render_screen_show#16 render_screen_render#16 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::render#2 current_piece#10 current_xpos#19 current_ypos#13 current_orientation#14 current_piece_gfx#1 play_move_rotate::orientation#3 play_collision::xpos#3 play_collision::ypos#3 play_collision::orientation#3 current_piece#77 ] ) always clobbers reg byte a -Statement [127] (byte*) current_piece_gfx#3 ← (byte*) current_piece#10 + (byte) current_orientation#4 [ current_piece#10 current_xpos#19 current_ypos#13 current_orientation#4 current_piece_gfx#3 ] ( main:13::play_move_rotate:56 [ render_screen_show#16 render_screen_render#16 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::render#2 current_piece#10 current_xpos#19 current_ypos#13 current_orientation#4 current_piece_gfx#3 ] ) always clobbers reg byte a -Statement [128] (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 ← (byte) current_orientation#14 - (byte/signed byte/word/signed word/dword/signed dword) 16 [ current_piece#10 current_xpos#19 current_ypos#13 current_orientation#14 current_piece_gfx#1 play_move_rotate::$4 ] ( main:13::play_move_rotate:56 [ render_screen_show#16 render_screen_render#16 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::render#2 current_piece#10 current_xpos#19 current_ypos#13 current_orientation#14 current_piece_gfx#1 play_move_rotate::$4 ] ) always clobbers reg byte a -Statement [129] (byte) play_move_rotate::orientation#1 ← (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 & (byte/signed byte/word/signed word/dword/signed dword) 63 [ current_piece#10 current_xpos#19 current_ypos#13 current_orientation#14 current_piece_gfx#1 play_move_rotate::orientation#1 ] ( main:13::play_move_rotate:56 [ render_screen_show#16 render_screen_render#16 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::render#2 current_piece#10 current_xpos#19 current_ypos#13 current_orientation#14 current_piece_gfx#1 play_move_rotate::orientation#1 ] ) always clobbers reg byte a -Statement [131] (byte*) play_collision::piece_gfx#0 ← (byte*) current_piece#12 + (byte) play_collision::orientation#4 [ play_collision::ypos#4 play_collision::xpos#5 play_collision::piece_gfx#0 ] ( main:13::play_move_rotate:56::play_collision:122 [ render_screen_show#16 render_screen_render#16 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::render#2 current_piece#10 current_xpos#19 current_ypos#13 current_orientation#14 current_piece_gfx#1 play_move_rotate::orientation#3 play_collision::ypos#4 play_collision::xpos#5 play_collision::piece_gfx#0 ] main:13::play_move_leftright:51::play_collision:160 [ render_screen_show#16 render_screen_render#16 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_piece_gfx#1 current_piece#10 current_ypos#13 current_orientation#14 current_xpos#1 play_collision::ypos#4 play_collision::xpos#5 play_collision::piece_gfx#0 ] main:13::play_move_leftright:51::play_collision:171 [ render_screen_show#16 render_screen_render#16 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_piece_gfx#1 current_piece#10 current_ypos#13 current_orientation#14 current_xpos#1 play_collision::ypos#4 play_collision::xpos#5 play_collision::piece_gfx#0 ] main:13::play_move_down:46::play_collision:195 [ render_screen_show#16 render_screen_render#16 keyboard_events_size#16 main::key_event#0 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 play_collision::ypos#4 play_collision::xpos#5 play_collision::piece_gfx#0 ] ) always clobbers reg byte a -Statement [132] (byte) play_collision::ypos2#0 ← (byte) play_collision::ypos#4 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#0 ] ( main:13::play_move_rotate:56::play_collision:122 [ render_screen_show#16 render_screen_render#16 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::render#2 current_piece#10 current_xpos#19 current_ypos#13 current_orientation#14 current_piece_gfx#1 play_move_rotate::orientation#3 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#0 ] main:13::play_move_leftright:51::play_collision:160 [ render_screen_show#16 render_screen_render#16 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_piece_gfx#1 current_piece#10 current_ypos#13 current_orientation#14 current_xpos#1 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#0 ] main:13::play_move_leftright:51::play_collision:171 [ render_screen_show#16 render_screen_render#16 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_piece_gfx#1 current_piece#10 current_ypos#13 current_orientation#14 current_xpos#1 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#0 ] main:13::play_move_down:46::play_collision:195 [ render_screen_show#16 render_screen_render#16 keyboard_events_size#16 main::key_event#0 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#0 ] ) always clobbers reg byte a -Statement [134] (byte*) play_collision::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) play_collision::ypos2#2) [ play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] ( main:13::play_move_rotate:56::play_collision:122 [ render_screen_show#16 render_screen_render#16 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::render#2 current_piece#10 current_xpos#19 current_ypos#13 current_orientation#14 current_piece_gfx#1 play_move_rotate::orientation#3 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] main:13::play_move_leftright:51::play_collision:160 [ render_screen_show#16 render_screen_render#16 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_piece_gfx#1 current_piece#10 current_ypos#13 current_orientation#14 current_xpos#1 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] main:13::play_move_leftright:51::play_collision:171 [ render_screen_show#16 render_screen_render#16 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_piece_gfx#1 current_piece#10 current_ypos#13 current_orientation#14 current_xpos#1 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] main:13::play_move_down:46::play_collision:195 [ render_screen_show#16 render_screen_render#16 keyboard_events_size#16 main::key_event#0 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] ) always clobbers reg byte a -Statement [138] if(*((byte*) play_collision::piece_gfx#0 + (byte) play_collision::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_collision::@3 [ play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] ( main:13::play_move_rotate:56::play_collision:122 [ render_screen_show#16 render_screen_render#16 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::render#2 current_piece#10 current_xpos#19 current_ypos#13 current_orientation#14 current_piece_gfx#1 play_move_rotate::orientation#3 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:13::play_move_leftright:51::play_collision:160 [ render_screen_show#16 render_screen_render#16 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_piece_gfx#1 current_piece#10 current_ypos#13 current_orientation#14 current_xpos#1 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:13::play_move_leftright:51::play_collision:171 [ render_screen_show#16 render_screen_render#16 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_piece_gfx#1 current_piece#10 current_ypos#13 current_orientation#14 current_xpos#1 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:13::play_move_down:46::play_collision:195 [ render_screen_show#16 render_screen_render#16 keyboard_events_size#16 main::key_event#0 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] ) always clobbers reg byte a -Statement [142] (byte~) play_collision::$7 ← (byte) play_collision::col#2 & (byte/word/signed word/dword/signed dword) 128 [ play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] ( main:13::play_move_rotate:56::play_collision:122 [ render_screen_show#16 render_screen_render#16 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::render#2 current_piece#10 current_xpos#19 current_ypos#13 current_orientation#14 current_piece_gfx#1 play_move_rotate::orientation#3 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] main:13::play_move_leftright:51::play_collision:160 [ render_screen_show#16 render_screen_render#16 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_piece_gfx#1 current_piece#10 current_ypos#13 current_orientation#14 current_xpos#1 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] main:13::play_move_leftright:51::play_collision:171 [ render_screen_show#16 render_screen_render#16 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_piece_gfx#1 current_piece#10 current_ypos#13 current_orientation#14 current_xpos#1 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] main:13::play_move_down:46::play_collision:195 [ render_screen_show#16 render_screen_render#16 keyboard_events_size#16 main::key_event#0 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] ) always clobbers reg byte a -Statement [145] if(*((byte*) play_collision::playfield_line#0 + (byte) play_collision::col#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_collision::@3 [ play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] ( main:13::play_move_rotate:56::play_collision:122 [ render_screen_show#16 render_screen_render#16 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::render#2 current_piece#10 current_xpos#19 current_ypos#13 current_orientation#14 current_piece_gfx#1 play_move_rotate::orientation#3 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:13::play_move_leftright:51::play_collision:160 [ render_screen_show#16 render_screen_render#16 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_piece_gfx#1 current_piece#10 current_ypos#13 current_orientation#14 current_xpos#1 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:13::play_move_leftright:51::play_collision:171 [ render_screen_show#16 render_screen_render#16 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_piece_gfx#1 current_piece#10 current_ypos#13 current_orientation#14 current_xpos#1 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:13::play_move_down:46::play_collision:195 [ render_screen_show#16 render_screen_render#16 keyboard_events_size#16 main::key_event#0 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] ) always clobbers reg byte a -Statement [159] (byte*~) current_piece#76 ← (byte*) current_piece#10 [ current_piece#10 current_ypos#13 current_orientation#14 current_piece#76 play_collision::orientation#2 play_collision::ypos#2 play_collision::xpos#2 current_xpos#1 ] ( main:13::play_move_leftright:51 [ render_screen_show#16 render_screen_render#16 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_piece_gfx#1 current_piece#10 current_ypos#13 current_orientation#14 current_piece#76 play_collision::orientation#2 play_collision::ypos#2 play_collision::xpos#2 current_xpos#1 ] ) always clobbers reg byte a -Statement [170] (byte*~) current_piece#75 ← (byte*) current_piece#10 [ current_piece#10 current_ypos#13 current_orientation#14 current_piece#75 play_collision::orientation#1 play_collision::ypos#1 play_collision::xpos#1 current_xpos#1 ] ( main:13::play_move_leftright:51 [ render_screen_show#16 render_screen_render#16 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_piece_gfx#1 current_piece#10 current_ypos#13 current_orientation#14 current_piece#75 play_collision::orientation#1 play_collision::ypos#1 play_collision::xpos#1 current_xpos#1 ] ) always clobbers reg byte a -Statement [194] (byte*~) current_piece#74 ← (byte*) current_piece#16 [ current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_piece#74 play_collision::orientation#0 play_collision::ypos#0 play_collision::xpos#0 ] ( main:13::play_move_down:46 [ render_screen_show#16 render_screen_render#16 keyboard_events_size#16 main::key_event#0 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_piece#74 play_collision::orientation#0 play_collision::ypos#0 play_collision::xpos#0 ] ) always clobbers reg byte a -Statement [205] (byte*~) current_piece#78 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) [ current_ypos#18 current_xpos#23 current_piece_gfx#16 current_piece_char#12 current_piece#78 ] ( main:13::play_move_down:46 [ render_screen_show#16 render_screen_render#16 keyboard_events_size#16 main::key_event#0 current_ypos#18 current_xpos#23 current_piece_gfx#16 current_piece_char#12 current_piece#78 ] ) always clobbers reg byte a -Statement [213] (byte~) play_spawn_current::$3 ← (byte) play_spawn_current::piece_idx#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ play_spawn_current::$3 play_spawn_current::piece_idx#2 ] ( main:13::play_spawn_current:26 [ play_spawn_current::$3 play_spawn_current::piece_idx#2 ] main:13::play_move_down:46::play_spawn_current:204 [ render_screen_show#16 render_screen_render#16 keyboard_events_size#16 main::key_event#0 play_spawn_current::$3 play_spawn_current::piece_idx#2 ] ) always clobbers reg byte a -Statement [214] (byte*) current_piece_gfx#16 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) + (byte/signed byte/word/signed word/dword/signed dword) 0 [ current_piece_gfx#16 play_spawn_current::$3 play_spawn_current::piece_idx#2 ] ( main:13::play_spawn_current:26 [ current_piece_gfx#16 play_spawn_current::$3 play_spawn_current::piece_idx#2 ] main:13::play_move_down:46::play_spawn_current:204 [ render_screen_show#16 render_screen_render#16 keyboard_events_size#16 main::key_event#0 current_piece_gfx#16 play_spawn_current::$3 play_spawn_current::piece_idx#2 ] ) always clobbers reg byte a -Statement [215] (byte) current_xpos#23 ← *((const byte[]) PIECES_START_X#0 + (byte) play_spawn_current::piece_idx#2) [ current_xpos#23 current_piece_gfx#16 play_spawn_current::$3 play_spawn_current::piece_idx#2 ] ( main:13::play_spawn_current:26 [ current_xpos#23 current_piece_gfx#16 play_spawn_current::$3 play_spawn_current::piece_idx#2 ] main:13::play_move_down:46::play_spawn_current:204 [ render_screen_show#16 render_screen_render#16 keyboard_events_size#16 main::key_event#0 current_xpos#23 current_piece_gfx#16 play_spawn_current::$3 play_spawn_current::piece_idx#2 ] ) always clobbers reg byte a -Statement [216] (byte) current_ypos#18 ← *((const byte[]) PIECES_START_Y#0 + (byte) play_spawn_current::piece_idx#2) [ current_ypos#18 current_xpos#23 current_piece_gfx#16 play_spawn_current::$3 play_spawn_current::piece_idx#2 ] ( main:13::play_spawn_current:26 [ current_ypos#18 current_xpos#23 current_piece_gfx#16 play_spawn_current::$3 play_spawn_current::piece_idx#2 ] main:13::play_move_down:46::play_spawn_current:204 [ render_screen_show#16 render_screen_render#16 keyboard_events_size#16 main::key_event#0 current_ypos#18 current_xpos#23 current_piece_gfx#16 play_spawn_current::$3 play_spawn_current::piece_idx#2 ] ) always clobbers reg byte a -Statement [217] (byte) current_piece_char#12 ← *((const byte[]) PIECES_CHARS#0 + (byte) play_spawn_current::piece_idx#2) [ current_ypos#18 current_xpos#23 current_piece_gfx#16 current_piece_char#12 play_spawn_current::$3 ] ( main:13::play_spawn_current:26 [ current_ypos#18 current_xpos#23 current_piece_gfx#16 current_piece_char#12 play_spawn_current::$3 ] main:13::play_move_down:46::play_spawn_current:204 [ render_screen_show#16 render_screen_render#16 keyboard_events_size#16 main::key_event#0 current_ypos#18 current_xpos#23 current_piece_gfx#16 current_piece_char#12 play_spawn_current::$3 ] ) always clobbers reg byte a -Statement [223] (byte) play_spawn_current::piece_idx#1 ← (byte~) play_spawn_current::$1 & (byte/signed byte/word/signed word/dword/signed dword) 7 [ play_spawn_current::piece_idx#1 ] ( main:13::play_spawn_current:26 [ play_spawn_current::piece_idx#1 ] main:13::play_move_down:46::play_spawn_current:204 [ render_screen_show#16 render_screen_render#16 keyboard_events_size#16 main::key_event#0 play_spawn_current::piece_idx#1 ] ) always clobbers reg byte a -Statement [238] (byte) play_remove_lines::w#2 ← (byte) play_remove_lines::w#1 + (const byte) PLAYFIELD_COLS#0 [ play_remove_lines::y#8 play_remove_lines::r#1 play_remove_lines::w#2 ] ( main:13::play_move_down:46::play_remove_lines:202 [ render_screen_show#16 render_screen_render#16 keyboard_events_size#16 main::key_event#0 play_remove_lines::y#8 play_remove_lines::r#1 play_remove_lines::w#2 ] ) always clobbers reg byte a -Statement [245] *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) play_remove_lines::w#6) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ play_remove_lines::w#6 ] ( main:13::play_move_down:46::play_remove_lines:202 [ render_screen_show#16 render_screen_render#16 keyboard_events_size#16 main::key_event#0 play_remove_lines::w#6 ] ) always clobbers reg byte a -Statement [248] (byte) play_lock_current::ypos2#0 ← (byte) current_ypos#21 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ current_piece_gfx#20 current_xpos#10 current_piece_char#15 play_lock_current::ypos2#0 ] ( main:13::play_move_down:46::play_lock_current:200 [ render_screen_show#16 render_screen_render#16 keyboard_events_size#16 main::key_event#0 current_piece_gfx#20 current_xpos#10 current_piece_char#15 play_lock_current::ypos2#0 ] ) always clobbers reg byte a -Statement [250] (byte*) play_lock_current::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) play_lock_current::ypos2#2) [ current_piece_gfx#20 current_xpos#10 current_piece_char#15 play_lock_current::ypos2#2 play_lock_current::i#3 play_lock_current::l#6 play_lock_current::playfield_line#0 ] ( main:13::play_move_down:46::play_lock_current:200 [ render_screen_show#16 render_screen_render#16 keyboard_events_size#16 main::key_event#0 current_piece_gfx#20 current_xpos#10 current_piece_char#15 play_lock_current::ypos2#2 play_lock_current::i#3 play_lock_current::l#6 play_lock_current::playfield_line#0 ] ) always clobbers reg byte a -Statement [254] if(*((byte*) current_piece_gfx#20 + (byte) play_lock_current::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_lock_current::@3 [ current_piece_gfx#20 current_xpos#10 current_piece_char#15 play_lock_current::ypos2#2 play_lock_current::l#6 play_lock_current::playfield_line#0 play_lock_current::col#2 play_lock_current::c#2 play_lock_current::i#1 ] ( main:13::play_move_down:46::play_lock_current:200 [ render_screen_show#16 render_screen_render#16 keyboard_events_size#16 main::key_event#0 current_piece_gfx#20 current_xpos#10 current_piece_char#15 play_lock_current::ypos2#2 play_lock_current::l#6 play_lock_current::playfield_line#0 play_lock_current::col#2 play_lock_current::c#2 play_lock_current::i#1 ] ) always clobbers reg byte a -Statement [255] *((byte*) play_lock_current::playfield_line#0 + (byte) play_lock_current::col#2) ← (byte) current_piece_char#15 [ current_piece_gfx#20 current_xpos#10 current_piece_char#15 play_lock_current::ypos2#2 play_lock_current::l#6 play_lock_current::playfield_line#0 play_lock_current::col#2 play_lock_current::c#2 play_lock_current::i#1 ] ( main:13::play_move_down:46::play_lock_current:200 [ render_screen_show#16 render_screen_render#16 keyboard_events_size#16 main::key_event#0 current_piece_gfx#20 current_xpos#10 current_piece_char#15 play_lock_current::ypos2#2 play_lock_current::l#6 play_lock_current::playfield_line#0 play_lock_current::col#2 play_lock_current::c#2 play_lock_current::i#1 ] ) always clobbers reg byte a -Statement [266] (byte~) keyboard_event_pressed::$0 ← (byte) keyboard_event_pressed::keycode#5 >> (byte/signed byte/word/signed word/dword/signed dword) 3 [ keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] ( main:13::play_move_down:46::keyboard_event_pressed:180 [ render_screen_show#16 render_screen_render#16 keyboard_events_size#16 main::key_event#0 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#1 play_move_down::movedown#10 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] main:13::keyboard_event_scan:40::keyboard_event_pressed:288 [ render_screen_show#16 render_screen_render#16 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 keyboard_events_size#13 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] main:13::keyboard_event_scan:40::keyboard_event_pressed:294 [ render_screen_show#16 render_screen_render#16 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 keyboard_events_size#13 keyboard_modifiers#11 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] main:13::keyboard_event_scan:40::keyboard_event_pressed:300 [ render_screen_show#16 render_screen_render#16 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 keyboard_events_size#13 keyboard_modifiers#12 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] main:13::keyboard_event_scan:40::keyboard_event_pressed:306 [ render_screen_show#16 render_screen_render#16 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 keyboard_events_size#13 keyboard_modifiers#13 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] ) always clobbers reg byte a -Statement [268] (byte~) keyboard_event_pressed::$1 ← (byte) keyboard_event_pressed::keycode#5 & (byte/signed byte/word/signed word/dword/signed dword) 7 [ keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] ( main:13::play_move_down:46::keyboard_event_pressed:180 [ render_screen_show#16 render_screen_render#16 keyboard_events_size#16 main::key_event#0 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#1 play_move_down::movedown#10 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:13::keyboard_event_scan:40::keyboard_event_pressed:288 [ render_screen_show#16 render_screen_render#16 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 keyboard_events_size#13 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:13::keyboard_event_scan:40::keyboard_event_pressed:294 [ render_screen_show#16 render_screen_render#16 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 keyboard_events_size#13 keyboard_modifiers#11 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:13::keyboard_event_scan:40::keyboard_event_pressed:300 [ render_screen_show#16 render_screen_render#16 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 keyboard_events_size#13 keyboard_modifiers#12 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:13::keyboard_event_scan:40::keyboard_event_pressed:306 [ render_screen_show#16 render_screen_render#16 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 keyboard_events_size#13 keyboard_modifiers#13 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] ) always clobbers reg byte a -Statement [269] (byte) keyboard_event_pressed::return#11 ← (byte) keyboard_event_pressed::row_bits#0 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte~) keyboard_event_pressed::$1) [ keyboard_event_pressed::return#11 ] ( main:13::play_move_down:46::keyboard_event_pressed:180 [ render_screen_show#16 render_screen_render#16 keyboard_events_size#16 main::key_event#0 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#1 play_move_down::movedown#10 keyboard_event_pressed::return#11 ] main:13::keyboard_event_scan:40::keyboard_event_pressed:288 [ render_screen_show#16 render_screen_render#16 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 keyboard_events_size#13 keyboard_event_pressed::return#11 ] main:13::keyboard_event_scan:40::keyboard_event_pressed:294 [ render_screen_show#16 render_screen_render#16 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 keyboard_events_size#13 keyboard_modifiers#11 keyboard_event_pressed::return#11 ] main:13::keyboard_event_scan:40::keyboard_event_pressed:300 [ render_screen_show#16 render_screen_render#16 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 keyboard_events_size#13 keyboard_modifiers#12 keyboard_event_pressed::return#11 ] main:13::keyboard_event_scan:40::keyboard_event_pressed:306 [ render_screen_show#16 render_screen_render#16 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 keyboard_events_size#13 keyboard_modifiers#13 keyboard_event_pressed::return#11 ] ) always clobbers reg byte a -Statement [282] if((byte) keyboard_event_scan::row_scan#0!=*((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2)) goto keyboard_event_scan::@4 [ keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#29 keyboard_event_scan::row_scan#0 ] ( main:13::keyboard_event_scan:40 [ render_screen_show#16 render_screen_render#16 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#29 keyboard_event_scan::row_scan#0 ] ) always clobbers reg byte a -Statement [283] (byte) keyboard_event_scan::keycode#1 ← (byte) keyboard_event_scan::keycode#11 + (byte/signed byte/word/signed word/dword/signed dword) 8 [ keyboard_event_scan::row#2 keyboard_events_size#29 keyboard_event_scan::keycode#1 ] ( main:13::keyboard_event_scan:40 [ render_screen_show#16 render_screen_render#16 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 keyboard_event_scan::row#2 keyboard_events_size#29 keyboard_event_scan::keycode#1 ] ) always clobbers reg byte a -Statement [298] (byte) keyboard_modifiers#3 ← (byte) keyboard_modifiers#11 | (const byte) KEY_MODIFIER_RSHIFT#0 [ keyboard_events_size#13 keyboard_modifiers#3 ] ( main:13::keyboard_event_scan:40 [ render_screen_show#16 render_screen_render#16 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 keyboard_events_size#13 keyboard_modifiers#3 ] ) always clobbers reg byte a -Statement [304] (byte) keyboard_modifiers#4 ← (byte) keyboard_modifiers#12 | (const byte) KEY_MODIFIER_CTRL#0 [ keyboard_events_size#13 keyboard_modifiers#4 ] ( main:13::keyboard_event_scan:40 [ render_screen_show#16 render_screen_render#16 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 keyboard_events_size#13 keyboard_modifiers#4 ] ) always clobbers reg byte a -Statement [310] (byte) keyboard_modifiers#5 ← (byte) keyboard_modifiers#13 | (const byte) KEY_MODIFIER_COMMODORE#0 [ keyboard_events_size#13 ] ( main:13::keyboard_event_scan:40 [ render_screen_show#16 render_screen_render#16 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 keyboard_events_size#13 ] ) always clobbers reg byte a -Statement [313] (byte~) keyboard_event_scan::$3 ← (byte) keyboard_event_scan::row_scan#0 ^ *((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2) [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::$3 ] ( main:13::keyboard_event_scan:40 [ render_screen_show#16 render_screen_render#16 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::$3 ] ) always clobbers reg byte a -Statement [314] (byte~) keyboard_event_scan::$4 ← (byte~) keyboard_event_scan::$3 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_event_scan::col#2) [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::$4 ] ( main:13::keyboard_event_scan:40 [ render_screen_show#16 render_screen_render#16 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::$4 ] ) always clobbers reg byte a -Statement [317] (byte) keyboard_event_scan::event_type#0 ← (byte) keyboard_event_scan::row_scan#0 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_event_scan::col#2) [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::event_type#0 ] ( main:13::keyboard_event_scan:40 [ render_screen_show#16 render_screen_render#16 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::event_type#0 ] ) always clobbers reg byte a -Statement [319] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte) keyboard_event_scan::keycode#10 [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 ] ( main:13::keyboard_event_scan:40 [ render_screen_show#16 render_screen_render#16 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 ] ) always clobbers reg byte a -Statement [325] *((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2) ← (byte) keyboard_event_scan::row_scan#0 [ keyboard_event_scan::row#2 keyboard_event_scan::keycode#15 keyboard_events_size#30 ] ( main:13::keyboard_event_scan:40 [ render_screen_show#16 render_screen_render#16 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 keyboard_event_scan::row#2 keyboard_event_scan::keycode#15 keyboard_events_size#30 ] ) always clobbers reg byte a -Statement [326] (byte/word/dword~) keyboard_event_scan::$11 ← (byte) keyboard_event_scan::keycode#10 | (byte/signed byte/word/signed word/dword/signed dword) 64 [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::$11 ] ( main:13::keyboard_event_scan:40 [ render_screen_show#16 render_screen_render#16 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::$11 ] ) always clobbers reg byte a -Statement [329] *((const byte*) CIA1_PORT_A#0) ← *((const byte[8]) keyboard_matrix_row_bitmask#0 + (byte) keyboard_matrix_read::rowid#0) [ ] ( main:13::keyboard_event_scan:40::keyboard_matrix_read:279 [ render_screen_show#16 render_screen_render#16 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#29 ] ) always clobbers reg byte a -Statement [330] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) [ keyboard_matrix_read::return#0 ] ( main:13::keyboard_event_scan:40::keyboard_matrix_read:279 [ render_screen_show#16 render_screen_render#16 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#29 keyboard_matrix_read::return#0 ] ) always clobbers reg byte a -Statement [341] (byte~) play_init::$1 ← (byte) play_init::j#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ play_init::j#2 play_init::pli#2 play_init::idx#2 play_init::$1 ] ( main:13::play_init:24 [ play_init::j#2 play_init::pli#2 play_init::idx#2 play_init::$1 ] ) always clobbers reg byte a -Statement [342] *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte~) play_init::$1) ← (byte*) play_init::pli#2 [ play_init::j#2 play_init::pli#2 play_init::idx#2 ] ( main:13::play_init:24 [ play_init::j#2 play_init::pli#2 play_init::idx#2 ] ) always clobbers reg byte a -Statement [343] *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0 + (byte) play_init::j#2) ← (byte) play_init::idx#2 [ play_init::j#2 play_init::pli#2 play_init::idx#2 ] ( main:13::play_init:24 [ play_init::j#2 play_init::pli#2 play_init::idx#2 ] ) always clobbers reg byte a -Statement [344] (byte*) play_init::pli#1 ← (byte*) play_init::pli#2 + (const byte) PLAYFIELD_COLS#0 [ play_init::j#2 play_init::idx#2 play_init::pli#1 ] ( main:13::play_init:24 [ play_init::j#2 play_init::idx#2 play_init::pli#1 ] ) always clobbers reg byte a -Statement [345] (byte) play_init::idx#1 ← (byte) play_init::idx#2 + (const byte) PLAYFIELD_COLS#0 [ play_init::j#2 play_init::pli#1 play_init::idx#1 ] ( main:13::play_init:24 [ play_init::j#2 play_init::pli#1 play_init::idx#1 ] ) always clobbers reg byte a -Statement [348] *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0+(const byte) PLAYFIELD_LINES#0) ← (const byte) PLAYFIELD_COLS#0*(const byte) PLAYFIELD_LINES#0 [ ] ( main:13::play_init:24 [ ] ) always clobbers reg byte a -Statement [351] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0 [ ] ( main:13::sprites_irq_init:22 [ ] ) always clobbers reg byte a +Statement [6] (byte) irq_raster_next#0 ← (const byte) IRQ_RASTER_FIRST#0 [ ] ( ) always clobbers reg byte a +Statement [7] (byte) irq_sprite_ypos#0 ← (byte/signed byte/word/signed word/dword/signed dword) 50 [ ] ( ) always clobbers reg byte a +Statement [9] (byte) irq_sprite_ptr#0 ← (const byte) toSpritePtr1_return#0 [ ] ( ) always clobbers reg byte a +Statement [10] (byte) irq_cnt#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( ) always clobbers reg byte a +Statement [30] (byte*~) current_piece_gfx#100 ← (byte*) current_piece_gfx#16 [ current_ypos#84 current_ypos#18 current_xpos#110 current_xpos#23 current_piece_gfx#100 current_piece_gfx#16 current_piece_char#12 play_spawn_current::$3 ] ( main:12 [ current_ypos#84 current_ypos#18 current_xpos#110 current_xpos#23 current_piece_gfx#100 current_piece_gfx#16 current_piece_char#12 play_spawn_current::$3 ] ) always clobbers reg byte a +Statement [33] (byte*~) current_piece#71 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) [ current_ypos#18 current_xpos#23 current_piece_gfx#16 current_piece_char#12 current_piece#71 ] ( main:12 [ current_ypos#18 current_xpos#23 current_piece_gfx#16 current_piece_char#12 current_piece#71 ] ) always clobbers reg byte a +Statement [35] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@4 [ render_screen_show#16 render_screen_render#16 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 keyboard_events_size#19 current_movedown_counter#12 ] ( main:12 [ render_screen_show#16 render_screen_render#16 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 keyboard_events_size#19 current_movedown_counter#12 ] ) always clobbers reg byte a +Statement [48] (byte) main::render#1 ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte~) main::$12 [ render_screen_show#16 render_screen_render#16 current_piece#10 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_orientation#14 current_piece_gfx#1 current_xpos#1 ] ( main:12 [ render_screen_show#16 render_screen_render#16 current_piece#10 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_orientation#14 current_piece_gfx#1 current_xpos#1 ] ) always clobbers reg byte a +Statement [53] (byte) main::render#2 ← (byte) main::render#1 + (byte~) main::$13 [ render_screen_show#16 render_screen_render#16 current_piece#10 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#2 current_orientation#14 current_piece_gfx#1 ] ( main:12 [ render_screen_show#16 render_screen_render#16 current_piece#10 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#2 current_orientation#14 current_piece_gfx#1 ] ) always clobbers reg byte a +Statement [58] (byte) main::render#3 ← (byte) main::render#2 + (byte~) main::$14 [ render_screen_show#16 render_screen_render#16 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::render#3 ] ( main:12 [ render_screen_show#16 render_screen_render#16 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::render#3 ] ) always clobbers reg byte a +Statement [65] (byte*~) current_piece_gfx#101 ← (byte*) current_piece_gfx#14 [ render_screen_show#16 render_screen_render#16 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 current_ypos#85 render_screen_render#62 current_xpos#111 current_piece_gfx#101 ] ( main:12 [ render_screen_show#16 render_screen_render#16 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 current_ypos#85 render_screen_render#62 current_xpos#111 current_piece_gfx#101 ] ) always clobbers reg byte a +Statement [70] (byte) render_screen_render#11 ← (byte) render_screen_render#16 ^ (byte/signed byte/word/signed word/dword/signed dword) 64 [ render_screen_show#16 render_screen_render#11 ] ( main:12::render_screen_swap:69 [ current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 render_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/signed byte/word/signed word/dword/signed dword) 64 [ render_screen_show#13 render_screen_render#11 ] ( main:12::render_screen_swap:69 [ current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 render_screen_show#13 render_screen_render#11 ] ) always clobbers reg byte a +Statement [74] (byte) render_current::ypos2#0 ← (byte) current_ypos#9 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ render_screen_render#28 current_xpos#47 current_piece_gfx#53 current_piece_char#63 render_current::ypos2#0 ] ( main:12::render_current:32 [ current_ypos#18 current_xpos#23 current_piece_gfx#16 current_piece_char#12 play_spawn_current::$3 render_screen_render#28 current_xpos#47 current_piece_gfx#53 current_piece_char#63 render_current::ypos2#0 ] main:12::render_current:67 [ render_screen_show#16 render_screen_render#16 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 render_screen_render#28 current_xpos#47 current_piece_gfx#53 current_piece_char#63 render_current::ypos2#0 ] ) always clobbers reg byte a +Statement [76] if((byte) render_current::ypos2#2>(byte/signed byte/word/signed word/dword/signed dword) 2) goto render_current::@13 [ render_screen_render#28 current_xpos#47 current_piece_gfx#53 current_piece_char#63 render_current::ypos2#2 render_current::i#3 render_current::l#4 ] ( main:12::render_current:32 [ current_ypos#18 current_xpos#23 current_piece_gfx#16 current_piece_char#12 play_spawn_current::$3 render_screen_render#28 current_xpos#47 current_piece_gfx#53 current_piece_char#63 render_current::ypos2#2 render_current::i#3 render_current::l#4 ] main:12::render_current:67 [ render_screen_show#16 render_screen_render#16 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 render_screen_render#28 current_xpos#47 current_piece_gfx#53 current_piece_char#63 render_current::ypos2#2 render_current::i#3 render_current::l#4 ] ) always clobbers reg byte a +Statement [77] (byte) render_current::i#1 ← (byte) render_current::i#3 + (byte/signed byte/word/signed word/dword/signed dword) 4 [ render_screen_render#28 current_xpos#47 current_piece_gfx#53 current_piece_char#63 render_current::ypos2#2 render_current::l#4 render_current::i#1 ] ( main:12::render_current:32 [ current_ypos#18 current_xpos#23 current_piece_gfx#16 current_piece_char#12 play_spawn_current::$3 render_screen_render#28 current_xpos#47 current_piece_gfx#53 current_piece_char#63 render_current::ypos2#2 render_current::l#4 render_current::i#1 ] main:12::render_current:67 [ render_screen_show#16 render_screen_render#16 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 render_screen_render#28 current_xpos#47 current_piece_gfx#53 current_piece_char#63 render_current::ypos2#2 render_current::l#4 render_current::i#1 ] ) always clobbers reg byte a +Statement [84] (byte~) render_current::$5 ← (byte) render_screen_render#28 + (byte) render_current::ypos2#2 [ render_screen_render#28 current_xpos#47 current_piece_gfx#53 current_piece_char#63 render_current::ypos2#2 render_current::i#3 render_current::l#4 render_current::$5 ] ( main:12::render_current:32 [ current_ypos#18 current_xpos#23 current_piece_gfx#16 current_piece_char#12 play_spawn_current::$3 render_screen_render#28 current_xpos#47 current_piece_gfx#53 current_piece_char#63 render_current::ypos2#2 render_current::i#3 render_current::l#4 render_current::$5 ] main:12::render_current:67 [ render_screen_show#16 render_screen_render#16 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 render_screen_render#28 current_xpos#47 current_piece_gfx#53 current_piece_char#63 render_current::ypos2#2 render_current::i#3 render_current::l#4 render_current::$5 ] ) always clobbers reg byte a +Statement [85] (byte*) render_current::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) screen_lines_1#0 + (byte~) render_current::$5) [ render_screen_render#28 current_xpos#47 current_piece_gfx#53 current_piece_char#63 render_current::ypos2#2 render_current::i#3 render_current::l#4 render_current::screen_line#0 ] ( main:12::render_current:32 [ current_ypos#18 current_xpos#23 current_piece_gfx#16 current_piece_char#12 play_spawn_current::$3 render_screen_render#28 current_xpos#47 current_piece_gfx#53 current_piece_char#63 render_current::ypos2#2 render_current::i#3 render_current::l#4 render_current::screen_line#0 ] main:12::render_current:67 [ render_screen_show#16 render_screen_render#16 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 render_screen_render#28 current_xpos#47 current_piece_gfx#53 current_piece_char#63 render_current::ypos2#2 render_current::i#3 render_current::l#4 render_current::screen_line#0 ] ) always clobbers reg byte a +Statement [88] (byte) render_current::current_cell#0 ← *((byte*) current_piece_gfx#53 + (byte) render_current::i#4) [ render_screen_render#28 current_xpos#47 current_piece_gfx#53 current_piece_char#63 render_current::ypos2#2 render_current::l#4 render_current::screen_line#0 render_current::i#4 render_current::xpos#2 render_current::c#2 render_current::current_cell#0 ] ( main:12::render_current:32 [ current_ypos#18 current_xpos#23 current_piece_gfx#16 current_piece_char#12 play_spawn_current::$3 render_screen_render#28 current_xpos#47 current_piece_gfx#53 current_piece_char#63 render_current::ypos2#2 render_current::l#4 render_current::screen_line#0 render_current::i#4 render_current::xpos#2 render_current::c#2 render_current::current_cell#0 ] main:12::render_current:67 [ render_screen_show#16 render_screen_render#16 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 render_screen_render#28 current_xpos#47 current_piece_gfx#53 current_piece_char#63 render_current::ypos2#2 render_current::l#4 render_current::screen_line#0 render_current::i#4 render_current::xpos#2 render_current::c#2 render_current::current_cell#0 ] ) always clobbers reg byte a +Statement [92] *((byte*) render_current::screen_line#0 + (byte) render_current::xpos#2) ← (byte) current_piece_char#63 [ render_screen_render#28 current_xpos#47 current_piece_gfx#53 current_piece_char#63 render_current::ypos2#2 render_current::l#4 render_current::i#10 render_current::screen_line#0 render_current::xpos#2 render_current::c#2 ] ( main:12::render_current:32 [ current_ypos#18 current_xpos#23 current_piece_gfx#16 current_piece_char#12 play_spawn_current::$3 render_screen_render#28 current_xpos#47 current_piece_gfx#53 current_piece_char#63 render_current::ypos2#2 render_current::l#4 render_current::i#10 render_current::screen_line#0 render_current::xpos#2 render_current::c#2 ] main:12::render_current:67 [ render_screen_show#16 render_screen_render#16 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 render_screen_render#28 current_xpos#47 current_piece_gfx#53 current_piece_char#63 render_current::ypos2#2 render_current::l#4 render_current::i#10 render_current::screen_line#0 render_current::xpos#2 render_current::c#2 ] ) always clobbers reg byte a +Statement [98] (byte~) render_playfield::$2 ← (byte) render_playfield::l#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ render_screen_render#19 render_playfield::l#2 render_playfield::i#3 render_playfield::$2 ] ( main:12::render_playfield:27 [ current_ypos#18 current_xpos#23 current_piece_gfx#16 current_piece_char#12 play_spawn_current::$3 render_screen_render#19 render_playfield::l#2 render_playfield::i#3 render_playfield::$2 ] main:12::render_playfield:61 [ render_screen_show#16 render_screen_render#16 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 render_screen_render#19 render_playfield::l#2 render_playfield::i#3 render_playfield::$2 ] ) always clobbers reg byte a +Statement [99] (byte~) render_playfield::$3 ← (byte) render_screen_render#19 + (byte~) render_playfield::$2 [ render_screen_render#19 render_playfield::l#2 render_playfield::i#3 render_playfield::$3 ] ( main:12::render_playfield:27 [ current_ypos#18 current_xpos#23 current_piece_gfx#16 current_piece_char#12 play_spawn_current::$3 render_screen_render#19 render_playfield::l#2 render_playfield::i#3 render_playfield::$3 ] main:12::render_playfield:61 [ render_screen_show#16 render_screen_render#16 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 render_screen_render#19 render_playfield::l#2 render_playfield::i#3 render_playfield::$3 ] ) always clobbers reg byte a +Statement [100] (byte*) render_playfield::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) screen_lines_1#0 + (byte~) render_playfield::$3) [ render_screen_render#19 render_playfield::l#2 render_playfield::i#3 render_playfield::screen_line#0 ] ( main:12::render_playfield:27 [ current_ypos#18 current_xpos#23 current_piece_gfx#16 current_piece_char#12 play_spawn_current::$3 render_screen_render#19 render_playfield::l#2 render_playfield::i#3 render_playfield::screen_line#0 ] main:12::render_playfield:61 [ render_screen_show#16 render_screen_render#16 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 render_screen_render#19 render_playfield::l#2 render_playfield::i#3 render_playfield::screen_line#0 ] ) always clobbers reg byte a +Statement [102] *((byte*) render_playfield::screen_line#2) ← *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) render_playfield::i#2) [ render_screen_render#19 render_playfield::l#2 render_playfield::i#2 render_playfield::screen_line#2 render_playfield::c#2 ] ( main:12::render_playfield:27 [ current_ypos#18 current_xpos#23 current_piece_gfx#16 current_piece_char#12 play_spawn_current::$3 render_screen_render#19 render_playfield::l#2 render_playfield::i#2 render_playfield::screen_line#2 render_playfield::c#2 ] main:12::render_playfield:61 [ render_screen_show#16 render_screen_render#16 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 render_screen_render#19 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 [114] (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 ← (byte) current_orientation#14 + (byte/signed byte/word/signed word/dword/signed dword) 16 [ current_piece#10 current_xpos#19 current_ypos#13 current_orientation#14 current_piece_gfx#1 play_move_rotate::$2 ] ( main:12::play_move_rotate:55 [ render_screen_show#16 render_screen_render#16 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::render#2 current_piece#10 current_xpos#19 current_ypos#13 current_orientation#14 current_piece_gfx#1 play_move_rotate::$2 ] ) always clobbers reg byte a +Statement [115] (byte) play_move_rotate::orientation#2 ← (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 & (byte/signed byte/word/signed word/dword/signed dword) 63 [ current_piece#10 current_xpos#19 current_ypos#13 current_orientation#14 current_piece_gfx#1 play_move_rotate::orientation#2 ] ( main:12::play_move_rotate:55 [ render_screen_show#16 render_screen_render#16 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::render#2 current_piece#10 current_xpos#19 current_ypos#13 current_orientation#14 current_piece_gfx#1 play_move_rotate::orientation#2 ] ) always clobbers reg byte a +Statement [120] (byte*~) current_piece#77 ← (byte*) current_piece#10 [ current_piece#10 current_xpos#19 current_ypos#13 current_orientation#14 current_piece_gfx#1 play_move_rotate::orientation#3 play_collision::xpos#3 play_collision::ypos#3 play_collision::orientation#3 current_piece#77 ] ( main:12::play_move_rotate:55 [ render_screen_show#16 render_screen_render#16 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::render#2 current_piece#10 current_xpos#19 current_ypos#13 current_orientation#14 current_piece_gfx#1 play_move_rotate::orientation#3 play_collision::xpos#3 play_collision::ypos#3 play_collision::orientation#3 current_piece#77 ] ) always clobbers reg byte a +Statement [126] (byte*) current_piece_gfx#3 ← (byte*) current_piece#10 + (byte) current_orientation#4 [ current_piece#10 current_xpos#19 current_ypos#13 current_orientation#4 current_piece_gfx#3 ] ( main:12::play_move_rotate:55 [ render_screen_show#16 render_screen_render#16 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::render#2 current_piece#10 current_xpos#19 current_ypos#13 current_orientation#4 current_piece_gfx#3 ] ) always clobbers reg byte a +Statement [127] (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 ← (byte) current_orientation#14 - (byte/signed byte/word/signed word/dword/signed dword) 16 [ current_piece#10 current_xpos#19 current_ypos#13 current_orientation#14 current_piece_gfx#1 play_move_rotate::$4 ] ( main:12::play_move_rotate:55 [ render_screen_show#16 render_screen_render#16 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::render#2 current_piece#10 current_xpos#19 current_ypos#13 current_orientation#14 current_piece_gfx#1 play_move_rotate::$4 ] ) always clobbers reg byte a +Statement [128] (byte) play_move_rotate::orientation#1 ← (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 & (byte/signed byte/word/signed word/dword/signed dword) 63 [ current_piece#10 current_xpos#19 current_ypos#13 current_orientation#14 current_piece_gfx#1 play_move_rotate::orientation#1 ] ( main:12::play_move_rotate:55 [ render_screen_show#16 render_screen_render#16 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::render#2 current_piece#10 current_xpos#19 current_ypos#13 current_orientation#14 current_piece_gfx#1 play_move_rotate::orientation#1 ] ) always clobbers reg byte a +Statement [130] (byte*) play_collision::piece_gfx#0 ← (byte*) current_piece#12 + (byte) play_collision::orientation#4 [ play_collision::ypos#4 play_collision::xpos#5 play_collision::piece_gfx#0 ] ( main:12::play_move_rotate:55::play_collision:121 [ render_screen_show#16 render_screen_render#16 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::render#2 current_piece#10 current_xpos#19 current_ypos#13 current_orientation#14 current_piece_gfx#1 play_move_rotate::orientation#3 play_collision::ypos#4 play_collision::xpos#5 play_collision::piece_gfx#0 ] main:12::play_move_leftright:50::play_collision:159 [ render_screen_show#16 render_screen_render#16 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_piece_gfx#1 current_piece#10 current_ypos#13 current_orientation#14 current_xpos#1 play_collision::ypos#4 play_collision::xpos#5 play_collision::piece_gfx#0 ] main:12::play_move_leftright:50::play_collision:170 [ render_screen_show#16 render_screen_render#16 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_piece_gfx#1 current_piece#10 current_ypos#13 current_orientation#14 current_xpos#1 play_collision::ypos#4 play_collision::xpos#5 play_collision::piece_gfx#0 ] main:12::play_move_down:45::play_collision:194 [ render_screen_show#16 render_screen_render#16 keyboard_events_size#16 main::key_event#0 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 play_collision::ypos#4 play_collision::xpos#5 play_collision::piece_gfx#0 ] ) always clobbers reg byte a +Statement [131] (byte) play_collision::ypos2#0 ← (byte) play_collision::ypos#4 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#0 ] ( main:12::play_move_rotate:55::play_collision:121 [ render_screen_show#16 render_screen_render#16 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::render#2 current_piece#10 current_xpos#19 current_ypos#13 current_orientation#14 current_piece_gfx#1 play_move_rotate::orientation#3 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#0 ] main:12::play_move_leftright:50::play_collision:159 [ render_screen_show#16 render_screen_render#16 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_piece_gfx#1 current_piece#10 current_ypos#13 current_orientation#14 current_xpos#1 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#0 ] main:12::play_move_leftright:50::play_collision:170 [ render_screen_show#16 render_screen_render#16 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_piece_gfx#1 current_piece#10 current_ypos#13 current_orientation#14 current_xpos#1 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#0 ] main:12::play_move_down:45::play_collision:194 [ render_screen_show#16 render_screen_render#16 keyboard_events_size#16 main::key_event#0 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#0 ] ) always clobbers reg byte a +Statement [133] (byte*) play_collision::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) play_collision::ypos2#2) [ play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] ( main:12::play_move_rotate:55::play_collision:121 [ render_screen_show#16 render_screen_render#16 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::render#2 current_piece#10 current_xpos#19 current_ypos#13 current_orientation#14 current_piece_gfx#1 play_move_rotate::orientation#3 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] main:12::play_move_leftright:50::play_collision:159 [ render_screen_show#16 render_screen_render#16 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_piece_gfx#1 current_piece#10 current_ypos#13 current_orientation#14 current_xpos#1 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] main:12::play_move_leftright:50::play_collision:170 [ render_screen_show#16 render_screen_render#16 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_piece_gfx#1 current_piece#10 current_ypos#13 current_orientation#14 current_xpos#1 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] main:12::play_move_down:45::play_collision:194 [ render_screen_show#16 render_screen_render#16 keyboard_events_size#16 main::key_event#0 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] ) always clobbers reg byte a +Statement [137] if(*((byte*) play_collision::piece_gfx#0 + (byte) play_collision::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_collision::@3 [ play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] ( main:12::play_move_rotate:55::play_collision:121 [ render_screen_show#16 render_screen_render#16 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::render#2 current_piece#10 current_xpos#19 current_ypos#13 current_orientation#14 current_piece_gfx#1 play_move_rotate::orientation#3 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:12::play_move_leftright:50::play_collision:159 [ render_screen_show#16 render_screen_render#16 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_piece_gfx#1 current_piece#10 current_ypos#13 current_orientation#14 current_xpos#1 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:12::play_move_leftright:50::play_collision:170 [ render_screen_show#16 render_screen_render#16 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_piece_gfx#1 current_piece#10 current_ypos#13 current_orientation#14 current_xpos#1 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:12::play_move_down:45::play_collision:194 [ render_screen_show#16 render_screen_render#16 keyboard_events_size#16 main::key_event#0 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] ) always clobbers reg byte a +Statement [141] (byte~) play_collision::$7 ← (byte) play_collision::col#2 & (byte/word/signed word/dword/signed dword) 128 [ play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] ( main:12::play_move_rotate:55::play_collision:121 [ render_screen_show#16 render_screen_render#16 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::render#2 current_piece#10 current_xpos#19 current_ypos#13 current_orientation#14 current_piece_gfx#1 play_move_rotate::orientation#3 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] main:12::play_move_leftright:50::play_collision:159 [ render_screen_show#16 render_screen_render#16 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_piece_gfx#1 current_piece#10 current_ypos#13 current_orientation#14 current_xpos#1 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] main:12::play_move_leftright:50::play_collision:170 [ render_screen_show#16 render_screen_render#16 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_piece_gfx#1 current_piece#10 current_ypos#13 current_orientation#14 current_xpos#1 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] main:12::play_move_down:45::play_collision:194 [ render_screen_show#16 render_screen_render#16 keyboard_events_size#16 main::key_event#0 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] ) always clobbers reg byte a +Statement [144] if(*((byte*) play_collision::playfield_line#0 + (byte) play_collision::col#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_collision::@3 [ play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] ( main:12::play_move_rotate:55::play_collision:121 [ render_screen_show#16 render_screen_render#16 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::render#2 current_piece#10 current_xpos#19 current_ypos#13 current_orientation#14 current_piece_gfx#1 play_move_rotate::orientation#3 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:12::play_move_leftright:50::play_collision:159 [ render_screen_show#16 render_screen_render#16 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_piece_gfx#1 current_piece#10 current_ypos#13 current_orientation#14 current_xpos#1 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:12::play_move_leftright:50::play_collision:170 [ render_screen_show#16 render_screen_render#16 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_piece_gfx#1 current_piece#10 current_ypos#13 current_orientation#14 current_xpos#1 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:12::play_move_down:45::play_collision:194 [ render_screen_show#16 render_screen_render#16 keyboard_events_size#16 main::key_event#0 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] ) always clobbers reg byte a +Statement [158] (byte*~) current_piece#76 ← (byte*) current_piece#10 [ current_piece#10 current_ypos#13 current_orientation#14 current_piece#76 play_collision::orientation#2 play_collision::ypos#2 play_collision::xpos#2 current_xpos#1 ] ( main:12::play_move_leftright:50 [ render_screen_show#16 render_screen_render#16 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_piece_gfx#1 current_piece#10 current_ypos#13 current_orientation#14 current_piece#76 play_collision::orientation#2 play_collision::ypos#2 play_collision::xpos#2 current_xpos#1 ] ) always clobbers reg byte a +Statement [169] (byte*~) current_piece#75 ← (byte*) current_piece#10 [ current_piece#10 current_ypos#13 current_orientation#14 current_piece#75 play_collision::orientation#1 play_collision::ypos#1 play_collision::xpos#1 current_xpos#1 ] ( main:12::play_move_leftright:50 [ render_screen_show#16 render_screen_render#16 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_piece_gfx#1 current_piece#10 current_ypos#13 current_orientation#14 current_piece#75 play_collision::orientation#1 play_collision::ypos#1 play_collision::xpos#1 current_xpos#1 ] ) always clobbers reg byte a +Statement [193] (byte*~) current_piece#74 ← (byte*) current_piece#16 [ current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_piece#74 play_collision::orientation#0 play_collision::ypos#0 play_collision::xpos#0 ] ( main:12::play_move_down:45 [ render_screen_show#16 render_screen_render#16 keyboard_events_size#16 main::key_event#0 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_piece#74 play_collision::orientation#0 play_collision::ypos#0 play_collision::xpos#0 ] ) always clobbers reg byte a +Statement [204] (byte*~) current_piece#78 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) [ current_ypos#18 current_xpos#23 current_piece_gfx#16 current_piece_char#12 current_piece#78 ] ( main:12::play_move_down:45 [ render_screen_show#16 render_screen_render#16 keyboard_events_size#16 main::key_event#0 current_ypos#18 current_xpos#23 current_piece_gfx#16 current_piece_char#12 current_piece#78 ] ) always clobbers reg byte a +Statement [212] (byte~) play_spawn_current::$3 ← (byte) play_spawn_current::piece_idx#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ play_spawn_current::$3 play_spawn_current::piece_idx#2 ] ( main:12::play_spawn_current:25 [ play_spawn_current::$3 play_spawn_current::piece_idx#2 ] main:12::play_move_down:45::play_spawn_current:203 [ render_screen_show#16 render_screen_render#16 keyboard_events_size#16 main::key_event#0 play_spawn_current::$3 play_spawn_current::piece_idx#2 ] ) always clobbers reg byte a +Statement [213] (byte*) current_piece_gfx#16 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) + (byte/signed byte/word/signed word/dword/signed dword) 0 [ current_piece_gfx#16 play_spawn_current::$3 play_spawn_current::piece_idx#2 ] ( main:12::play_spawn_current:25 [ current_piece_gfx#16 play_spawn_current::$3 play_spawn_current::piece_idx#2 ] main:12::play_move_down:45::play_spawn_current:203 [ render_screen_show#16 render_screen_render#16 keyboard_events_size#16 main::key_event#0 current_piece_gfx#16 play_spawn_current::$3 play_spawn_current::piece_idx#2 ] ) always clobbers reg byte a +Statement [214] (byte) current_xpos#23 ← *((const byte[]) PIECES_START_X#0 + (byte) play_spawn_current::piece_idx#2) [ current_xpos#23 current_piece_gfx#16 play_spawn_current::$3 play_spawn_current::piece_idx#2 ] ( main:12::play_spawn_current:25 [ current_xpos#23 current_piece_gfx#16 play_spawn_current::$3 play_spawn_current::piece_idx#2 ] main:12::play_move_down:45::play_spawn_current:203 [ render_screen_show#16 render_screen_render#16 keyboard_events_size#16 main::key_event#0 current_xpos#23 current_piece_gfx#16 play_spawn_current::$3 play_spawn_current::piece_idx#2 ] ) always clobbers reg byte a +Statement [215] (byte) current_ypos#18 ← *((const byte[]) PIECES_START_Y#0 + (byte) play_spawn_current::piece_idx#2) [ current_ypos#18 current_xpos#23 current_piece_gfx#16 play_spawn_current::$3 play_spawn_current::piece_idx#2 ] ( main:12::play_spawn_current:25 [ current_ypos#18 current_xpos#23 current_piece_gfx#16 play_spawn_current::$3 play_spawn_current::piece_idx#2 ] main:12::play_move_down:45::play_spawn_current:203 [ render_screen_show#16 render_screen_render#16 keyboard_events_size#16 main::key_event#0 current_ypos#18 current_xpos#23 current_piece_gfx#16 play_spawn_current::$3 play_spawn_current::piece_idx#2 ] ) always clobbers reg byte a +Statement [216] (byte) current_piece_char#12 ← *((const byte[]) PIECES_CHARS#0 + (byte) play_spawn_current::piece_idx#2) [ current_ypos#18 current_xpos#23 current_piece_gfx#16 current_piece_char#12 play_spawn_current::$3 ] ( main:12::play_spawn_current:25 [ current_ypos#18 current_xpos#23 current_piece_gfx#16 current_piece_char#12 play_spawn_current::$3 ] main:12::play_move_down:45::play_spawn_current:203 [ render_screen_show#16 render_screen_render#16 keyboard_events_size#16 main::key_event#0 current_ypos#18 current_xpos#23 current_piece_gfx#16 current_piece_char#12 play_spawn_current::$3 ] ) always clobbers reg byte a +Statement [222] (byte) play_spawn_current::piece_idx#1 ← (byte~) play_spawn_current::$1 & (byte/signed byte/word/signed word/dword/signed dword) 7 [ play_spawn_current::piece_idx#1 ] ( main:12::play_spawn_current:25 [ play_spawn_current::piece_idx#1 ] main:12::play_move_down:45::play_spawn_current:203 [ render_screen_show#16 render_screen_render#16 keyboard_events_size#16 main::key_event#0 play_spawn_current::piece_idx#1 ] ) always clobbers reg byte a +Statement [237] (byte) play_remove_lines::w#2 ← (byte) play_remove_lines::w#1 + (const byte) PLAYFIELD_COLS#0 [ play_remove_lines::y#8 play_remove_lines::r#1 play_remove_lines::w#2 ] ( main:12::play_move_down:45::play_remove_lines:201 [ render_screen_show#16 render_screen_render#16 keyboard_events_size#16 main::key_event#0 play_remove_lines::y#8 play_remove_lines::r#1 play_remove_lines::w#2 ] ) always clobbers reg byte a +Statement [244] *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) play_remove_lines::w#6) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ play_remove_lines::w#6 ] ( main:12::play_move_down:45::play_remove_lines:201 [ render_screen_show#16 render_screen_render#16 keyboard_events_size#16 main::key_event#0 play_remove_lines::w#6 ] ) always clobbers reg byte a +Statement [247] (byte) play_lock_current::ypos2#0 ← (byte) current_ypos#21 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ current_piece_gfx#20 current_xpos#10 current_piece_char#15 play_lock_current::ypos2#0 ] ( main:12::play_move_down:45::play_lock_current:199 [ render_screen_show#16 render_screen_render#16 keyboard_events_size#16 main::key_event#0 current_piece_gfx#20 current_xpos#10 current_piece_char#15 play_lock_current::ypos2#0 ] ) always clobbers reg byte a +Statement [249] (byte*) play_lock_current::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) play_lock_current::ypos2#2) [ current_piece_gfx#20 current_xpos#10 current_piece_char#15 play_lock_current::ypos2#2 play_lock_current::i#3 play_lock_current::l#6 play_lock_current::playfield_line#0 ] ( main:12::play_move_down:45::play_lock_current:199 [ render_screen_show#16 render_screen_render#16 keyboard_events_size#16 main::key_event#0 current_piece_gfx#20 current_xpos#10 current_piece_char#15 play_lock_current::ypos2#2 play_lock_current::i#3 play_lock_current::l#6 play_lock_current::playfield_line#0 ] ) always clobbers reg byte a +Statement [253] if(*((byte*) current_piece_gfx#20 + (byte) play_lock_current::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_lock_current::@3 [ current_piece_gfx#20 current_xpos#10 current_piece_char#15 play_lock_current::ypos2#2 play_lock_current::l#6 play_lock_current::playfield_line#0 play_lock_current::col#2 play_lock_current::c#2 play_lock_current::i#1 ] ( main:12::play_move_down:45::play_lock_current:199 [ render_screen_show#16 render_screen_render#16 keyboard_events_size#16 main::key_event#0 current_piece_gfx#20 current_xpos#10 current_piece_char#15 play_lock_current::ypos2#2 play_lock_current::l#6 play_lock_current::playfield_line#0 play_lock_current::col#2 play_lock_current::c#2 play_lock_current::i#1 ] ) always clobbers reg byte a +Statement [254] *((byte*) play_lock_current::playfield_line#0 + (byte) play_lock_current::col#2) ← (byte) current_piece_char#15 [ current_piece_gfx#20 current_xpos#10 current_piece_char#15 play_lock_current::ypos2#2 play_lock_current::l#6 play_lock_current::playfield_line#0 play_lock_current::col#2 play_lock_current::c#2 play_lock_current::i#1 ] ( main:12::play_move_down:45::play_lock_current:199 [ render_screen_show#16 render_screen_render#16 keyboard_events_size#16 main::key_event#0 current_piece_gfx#20 current_xpos#10 current_piece_char#15 play_lock_current::ypos2#2 play_lock_current::l#6 play_lock_current::playfield_line#0 play_lock_current::col#2 play_lock_current::c#2 play_lock_current::i#1 ] ) always clobbers reg byte a +Statement [265] (byte~) keyboard_event_pressed::$0 ← (byte) keyboard_event_pressed::keycode#5 >> (byte/signed byte/word/signed word/dword/signed dword) 3 [ keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] ( main:12::play_move_down:45::keyboard_event_pressed:179 [ render_screen_show#16 render_screen_render#16 keyboard_events_size#16 main::key_event#0 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#1 play_move_down::movedown#10 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] main:12::keyboard_event_scan:39::keyboard_event_pressed:287 [ render_screen_show#16 render_screen_render#16 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 keyboard_events_size#13 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] main:12::keyboard_event_scan:39::keyboard_event_pressed:293 [ render_screen_show#16 render_screen_render#16 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 keyboard_events_size#13 keyboard_modifiers#11 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] main:12::keyboard_event_scan:39::keyboard_event_pressed:299 [ render_screen_show#16 render_screen_render#16 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 keyboard_events_size#13 keyboard_modifiers#12 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] main:12::keyboard_event_scan:39::keyboard_event_pressed:305 [ render_screen_show#16 render_screen_render#16 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 keyboard_events_size#13 keyboard_modifiers#13 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] ) always clobbers reg byte a +Statement [267] (byte~) keyboard_event_pressed::$1 ← (byte) keyboard_event_pressed::keycode#5 & (byte/signed byte/word/signed word/dword/signed dword) 7 [ keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] ( main:12::play_move_down:45::keyboard_event_pressed:179 [ render_screen_show#16 render_screen_render#16 keyboard_events_size#16 main::key_event#0 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#1 play_move_down::movedown#10 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:12::keyboard_event_scan:39::keyboard_event_pressed:287 [ render_screen_show#16 render_screen_render#16 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 keyboard_events_size#13 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:12::keyboard_event_scan:39::keyboard_event_pressed:293 [ render_screen_show#16 render_screen_render#16 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 keyboard_events_size#13 keyboard_modifiers#11 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:12::keyboard_event_scan:39::keyboard_event_pressed:299 [ render_screen_show#16 render_screen_render#16 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 keyboard_events_size#13 keyboard_modifiers#12 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:12::keyboard_event_scan:39::keyboard_event_pressed:305 [ render_screen_show#16 render_screen_render#16 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 keyboard_events_size#13 keyboard_modifiers#13 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] ) always clobbers reg byte a +Statement [268] (byte) keyboard_event_pressed::return#11 ← (byte) keyboard_event_pressed::row_bits#0 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte~) keyboard_event_pressed::$1) [ keyboard_event_pressed::return#11 ] ( main:12::play_move_down:45::keyboard_event_pressed:179 [ render_screen_show#16 render_screen_render#16 keyboard_events_size#16 main::key_event#0 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#1 play_move_down::movedown#10 keyboard_event_pressed::return#11 ] main:12::keyboard_event_scan:39::keyboard_event_pressed:287 [ render_screen_show#16 render_screen_render#16 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 keyboard_events_size#13 keyboard_event_pressed::return#11 ] main:12::keyboard_event_scan:39::keyboard_event_pressed:293 [ render_screen_show#16 render_screen_render#16 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 keyboard_events_size#13 keyboard_modifiers#11 keyboard_event_pressed::return#11 ] main:12::keyboard_event_scan:39::keyboard_event_pressed:299 [ render_screen_show#16 render_screen_render#16 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 keyboard_events_size#13 keyboard_modifiers#12 keyboard_event_pressed::return#11 ] main:12::keyboard_event_scan:39::keyboard_event_pressed:305 [ render_screen_show#16 render_screen_render#16 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 keyboard_events_size#13 keyboard_modifiers#13 keyboard_event_pressed::return#11 ] ) always clobbers reg byte a +Statement [281] if((byte) keyboard_event_scan::row_scan#0!=*((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2)) goto keyboard_event_scan::@4 [ keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#29 keyboard_event_scan::row_scan#0 ] ( main:12::keyboard_event_scan:39 [ render_screen_show#16 render_screen_render#16 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#29 keyboard_event_scan::row_scan#0 ] ) always clobbers reg byte a +Statement [282] (byte) keyboard_event_scan::keycode#1 ← (byte) keyboard_event_scan::keycode#11 + (byte/signed byte/word/signed word/dword/signed dword) 8 [ keyboard_event_scan::row#2 keyboard_events_size#29 keyboard_event_scan::keycode#1 ] ( main:12::keyboard_event_scan:39 [ render_screen_show#16 render_screen_render#16 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 keyboard_event_scan::row#2 keyboard_events_size#29 keyboard_event_scan::keycode#1 ] ) always clobbers reg byte a +Statement [297] (byte) keyboard_modifiers#3 ← (byte) keyboard_modifiers#11 | (const byte) KEY_MODIFIER_RSHIFT#0 [ keyboard_events_size#13 keyboard_modifiers#3 ] ( main:12::keyboard_event_scan:39 [ render_screen_show#16 render_screen_render#16 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 keyboard_events_size#13 keyboard_modifiers#3 ] ) always clobbers reg byte a +Statement [303] (byte) keyboard_modifiers#4 ← (byte) keyboard_modifiers#12 | (const byte) KEY_MODIFIER_CTRL#0 [ keyboard_events_size#13 keyboard_modifiers#4 ] ( main:12::keyboard_event_scan:39 [ render_screen_show#16 render_screen_render#16 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 keyboard_events_size#13 keyboard_modifiers#4 ] ) always clobbers reg byte a +Statement [309] (byte) keyboard_modifiers#5 ← (byte) keyboard_modifiers#13 | (const byte) KEY_MODIFIER_COMMODORE#0 [ keyboard_events_size#13 ] ( main:12::keyboard_event_scan:39 [ render_screen_show#16 render_screen_render#16 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 keyboard_events_size#13 ] ) always clobbers reg byte a +Statement [312] (byte~) keyboard_event_scan::$3 ← (byte) keyboard_event_scan::row_scan#0 ^ *((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2) [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::$3 ] ( main:12::keyboard_event_scan:39 [ render_screen_show#16 render_screen_render#16 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::$3 ] ) always clobbers reg byte a +Statement [313] (byte~) keyboard_event_scan::$4 ← (byte~) keyboard_event_scan::$3 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_event_scan::col#2) [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::$4 ] ( main:12::keyboard_event_scan:39 [ render_screen_show#16 render_screen_render#16 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::$4 ] ) always clobbers reg byte a +Statement [316] (byte) keyboard_event_scan::event_type#0 ← (byte) keyboard_event_scan::row_scan#0 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_event_scan::col#2) [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::event_type#0 ] ( main:12::keyboard_event_scan:39 [ render_screen_show#16 render_screen_render#16 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::event_type#0 ] ) always clobbers reg byte a +Statement [318] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte) keyboard_event_scan::keycode#10 [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 ] ( main:12::keyboard_event_scan:39 [ render_screen_show#16 render_screen_render#16 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 ] ) always clobbers reg byte a +Statement [324] *((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2) ← (byte) keyboard_event_scan::row_scan#0 [ keyboard_event_scan::row#2 keyboard_event_scan::keycode#15 keyboard_events_size#30 ] ( main:12::keyboard_event_scan:39 [ render_screen_show#16 render_screen_render#16 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 keyboard_event_scan::row#2 keyboard_event_scan::keycode#15 keyboard_events_size#30 ] ) always clobbers reg byte a +Statement [325] (byte/word/dword~) keyboard_event_scan::$11 ← (byte) keyboard_event_scan::keycode#10 | (byte/signed byte/word/signed word/dword/signed dword) 64 [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::$11 ] ( main:12::keyboard_event_scan:39 [ render_screen_show#16 render_screen_render#16 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::$11 ] ) always clobbers reg byte a +Statement [328] *((const byte*) CIA1_PORT_A#0) ← *((const byte[8]) keyboard_matrix_row_bitmask#0 + (byte) keyboard_matrix_read::rowid#0) [ ] ( main:12::keyboard_event_scan:39::keyboard_matrix_read:278 [ render_screen_show#16 render_screen_render#16 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#29 ] ) always clobbers reg byte a +Statement [329] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) [ keyboard_matrix_read::return#0 ] ( main:12::keyboard_event_scan:39::keyboard_matrix_read:278 [ render_screen_show#16 render_screen_render#16 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#29 keyboard_matrix_read::return#0 ] ) always clobbers reg byte a +Statement [340] (byte~) play_init::$1 ← (byte) play_init::j#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ play_init::j#2 play_init::pli#2 play_init::idx#2 play_init::$1 ] ( main:12::play_init:23 [ play_init::j#2 play_init::pli#2 play_init::idx#2 play_init::$1 ] ) always clobbers reg byte a +Statement [341] *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte~) play_init::$1) ← (byte*) play_init::pli#2 [ play_init::j#2 play_init::pli#2 play_init::idx#2 ] ( main:12::play_init:23 [ play_init::j#2 play_init::pli#2 play_init::idx#2 ] ) always clobbers reg byte a +Statement [342] *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0 + (byte) play_init::j#2) ← (byte) play_init::idx#2 [ play_init::j#2 play_init::pli#2 play_init::idx#2 ] ( main:12::play_init:23 [ play_init::j#2 play_init::pli#2 play_init::idx#2 ] ) always clobbers reg byte a +Statement [343] (byte*) play_init::pli#1 ← (byte*) play_init::pli#2 + (const byte) PLAYFIELD_COLS#0 [ play_init::j#2 play_init::idx#2 play_init::pli#1 ] ( main:12::play_init:23 [ play_init::j#2 play_init::idx#2 play_init::pli#1 ] ) always clobbers reg byte a +Statement [344] (byte) play_init::idx#1 ← (byte) play_init::idx#2 + (const byte) PLAYFIELD_COLS#0 [ play_init::j#2 play_init::pli#1 play_init::idx#1 ] ( main:12::play_init:23 [ play_init::j#2 play_init::pli#1 play_init::idx#1 ] ) always clobbers reg byte a +Statement [347] *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0+(const byte) PLAYFIELD_LINES#0) ← (const byte) PLAYFIELD_COLS#0*(const byte) PLAYFIELD_LINES#0 [ ] ( main:12::play_init:23 [ ] ) always clobbers reg byte a +Statement [350] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0 [ ] ( main:12::sprites_irq_init:21 [ ] ) always clobbers reg byte a Statement asm { ldaCIA1_INTERRUPT } always clobbers reg byte a -Statement [353] *((const byte*) PROCPORT_DDR#0) ← (const byte) PROCPORT_DDR_MEMORY_MASK#0 [ ] ( main:13::sprites_irq_init:22 [ ] ) always clobbers reg byte a -Statement [354] *((const byte*) PROCPORT#0) ← (const byte) PROCPORT_RAM_IO#0 [ ] ( main:13::sprites_irq_init:22 [ ] ) always clobbers reg byte a -Statement [355] *((const byte*) CIA1_INTERRUPT#0) ← (const byte) CIA_INTERRUPT_CLEAR#0 [ ] ( main:13::sprites_irq_init:22 [ ] ) always clobbers reg byte a -Statement [356] *((const byte*) VIC_CONTROL#0) ← *((const byte*) VIC_CONTROL#0) & (byte/signed byte/word/signed word/dword/signed dword) 127 [ ] ( main:13::sprites_irq_init:22 [ ] ) always clobbers reg byte a -Statement [357] *((const byte*) RASTER#0) ← (const byte) IRQ_RASTER_FIRST#0 [ ] ( main:13::sprites_irq_init:22 [ ] ) always clobbers reg byte a -Statement [358] *((const byte*) IRQ_ENABLE#0) ← (const byte) IRQ_RASTER#0 [ ] ( main:13::sprites_irq_init:22 [ ] ) always clobbers reg byte a -Statement [359] *((const void()**) HARDWARE_IRQ#0) ← &interrupt(HARDWARE_CLOBBER)(void()) sprites_irq() [ ] ( main:13::sprites_irq_init:22 [ ] ) always clobbers reg byte a -Statement [362] *((const byte*) SPRITES_ENABLE#0) ← (byte/signed byte/word/signed word/dword/signed dword) 15 [ ] ( main:13::sprites_init:20 [ ] ) always clobbers reg byte a -Statement [363] *((const byte*) SPRITES_MC#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:13::sprites_init:20 [ ] ) always clobbers reg byte a -Statement [364] *((const byte*) SPRITES_EXPAND_Y#0) ← *((const byte*) SPRITES_MC#0) [ ] ( main:13::sprites_init:20 [ ] ) always clobbers reg byte a -Statement [365] *((const byte*) SPRITES_EXPAND_X#0) ← *((const byte*) SPRITES_EXPAND_Y#0) [ ] ( main:13::sprites_init:20 [ ] ) always clobbers reg byte a -Statement [367] (byte) sprites_init::s2#0 ← (byte) sprites_init::s#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ sprites_init::s#2 sprites_init::xpos#2 sprites_init::s2#0 ] ( main:13::sprites_init:20 [ sprites_init::s#2 sprites_init::xpos#2 sprites_init::s2#0 ] ) always clobbers reg byte a -Statement [368] *((const byte*) SPRITES_XPOS#0 + (byte) sprites_init::s2#0) ← (byte) sprites_init::xpos#2 [ sprites_init::s#2 sprites_init::xpos#2 ] ( main:13::sprites_init:20 [ sprites_init::s#2 sprites_init::xpos#2 ] ) always clobbers reg byte a -Statement [369] *((const byte*) SPRITES_COLS#0 + (byte) sprites_init::s#2) ← (const byte) BLACK#0 [ sprites_init::s#2 sprites_init::xpos#2 ] ( main:13::sprites_init:20 [ sprites_init::s#2 sprites_init::xpos#2 ] ) always clobbers reg byte a -Statement [370] (byte) sprites_init::xpos#1 ← (byte) sprites_init::xpos#2 + (byte/signed byte/word/signed word/dword/signed dword) 24 [ sprites_init::s#2 sprites_init::xpos#1 ] ( main:13::sprites_init:20 [ sprites_init::s#2 sprites_init::xpos#1 ] ) always clobbers reg byte a -Statement [375] *((const byte*) CIA2_PORT_A_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3 [ ] ( main:13::render_init:18 [ ] ) always clobbers reg byte a -Statement [377] *((const byte*) CIA2_PORT_A#0) ← (const byte) render_init::vicSelectGfxBank1_toDd001_return#0 [ ] ( main:13::render_init:18 [ ] ) always clobbers reg byte a -Statement [378] *((const byte*) D011#0) ← (const byte) VIC_ECM#0|(const byte) VIC_DEN#0|(const byte) VIC_RSEL#0|(byte/signed byte/word/signed word/dword/signed dword) 3 [ ] ( main:13::render_init:18 [ ] ) always clobbers reg byte a -Statement [379] *((const byte*) BORDERCOL#0) ← (const byte) BLACK#0 [ ] ( main:13::render_init:18 [ ] ) always clobbers reg byte a -Statement [380] *((const byte*) BGCOL1#0) ← (const byte) BLACK#0 [ ] ( main:13::render_init:18 [ ] ) always clobbers reg byte a -Statement [381] *((const byte*) BGCOL2#0) ← (const byte) BLUE#0 [ ] ( main:13::render_init:18 [ ] ) always clobbers reg byte a -Statement [382] *((const byte*) BGCOL3#0) ← (const byte) CYAN#0 [ ] ( main:13::render_init:18 [ ] ) always clobbers reg byte a -Statement [383] *((const byte*) BGCOL4#0) ← (const byte) GREY#0 [ ] ( main:13::render_init:18 [ ] ) always clobbers reg byte a -Statement [388] (byte~) render_init::$13 ← (byte) render_init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ render_init::i#2 render_init::li_1#2 render_init::li_2#2 render_init::$13 ] ( main:13::render_init:18 [ render_init::i#2 render_init::li_1#2 render_init::li_2#2 render_init::$13 ] ) always clobbers reg byte a -Statement [389] *((const byte*[PLAYFIELD_LINES#0]) screen_lines_1#0 + (byte~) render_init::$13) ← (byte*) render_init::li_1#2 [ render_init::i#2 render_init::li_1#2 render_init::li_2#2 ] ( main:13::render_init:18 [ render_init::i#2 render_init::li_1#2 render_init::li_2#2 ] ) always clobbers reg byte a -Statement [390] (byte~) render_init::$14 ← (byte) render_init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ render_init::i#2 render_init::li_1#2 render_init::li_2#2 render_init::$14 ] ( main:13::render_init:18 [ render_init::i#2 render_init::li_1#2 render_init::li_2#2 render_init::$14 ] ) always clobbers reg byte a -Statement [391] *((const byte*[PLAYFIELD_LINES#0]) screen_lines_2#0 + (byte~) render_init::$14) ← (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 [ render_init::i#2 render_init::li_1#2 render_init::li_2#2 ] ) always clobbers reg byte a -Statement [392] (byte*) render_init::li_1#1 ← (byte*) render_init::li_1#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ render_init::i#2 render_init::li_2#2 render_init::li_1#1 ] ( main:13::render_init:18 [ render_init::i#2 render_init::li_2#2 render_init::li_1#1 ] ) always clobbers reg byte a -Statement [393] (byte*) render_init::li_2#1 ← (byte*) render_init::li_2#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ render_init::i#2 render_init::li_1#1 render_init::li_2#1 ] ( main:13::render_init:18 [ render_init::i#2 render_init::li_1#1 render_init::li_2#1 ] ) always clobbers reg byte a -Statement [400] *((byte*) render_screen_original::screen#5) ← (const byte) render_screen_original::SPACE#0 [ render_screen_original::oscr#4 render_screen_original::oext#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:384 [ render_screen_original::oscr#4 render_screen_original::oext#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:386 [ render_screen_original::oscr#4 render_screen_original::oext#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 [402] *((byte*) render_screen_original::cols#4) ← (const byte) BLACK#0 [ render_screen_original::oscr#4 render_screen_original::oext#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:384 [ render_screen_original::oscr#4 render_screen_original::oext#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:386 [ render_screen_original::oscr#4 render_screen_original::oext#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 [407] (byte) render_screen_original::c#0 ← *((byte*) render_screen_original::oscr#2) + (byte/signed byte/word/signed word/dword/signed dword) 1 [ render_screen_original::y#6 render_screen_original::oscr#2 render_screen_original::oext#2 render_screen_original::screen#6 render_screen_original::ocols#2 render_screen_original::cols#5 render_screen_original::x#5 render_screen_original::c#0 ] ( main:13::render_init:18::render_screen_original:384 [ render_screen_original::y#6 render_screen_original::oscr#2 render_screen_original::oext#2 render_screen_original::screen#6 render_screen_original::ocols#2 render_screen_original::cols#5 render_screen_original::x#5 render_screen_original::c#0 ] main:13::render_init:18::render_screen_original:386 [ render_screen_original::y#6 render_screen_original::oscr#2 render_screen_original::oext#2 render_screen_original::screen#6 render_screen_original::ocols#2 render_screen_original::cols#5 render_screen_original::x#5 render_screen_original::c#0 ] ) always clobbers reg byte a reg byte y -Statement [409] (byte/signed word/word/dword/signed dword~) render_screen_original::$8 ← *((byte*) render_screen_original::oext#2) - (byte/signed byte/word/signed word/dword/signed dword) 1 [ render_screen_original::y#6 render_screen_original::oscr#1 render_screen_original::oext#2 render_screen_original::screen#6 render_screen_original::ocols#2 render_screen_original::cols#5 render_screen_original::x#5 render_screen_original::c#0 render_screen_original::$8 ] ( main:13::render_init:18::render_screen_original:384 [ render_screen_original::y#6 render_screen_original::oscr#1 render_screen_original::oext#2 render_screen_original::screen#6 render_screen_original::ocols#2 render_screen_original::cols#5 render_screen_original::x#5 render_screen_original::c#0 render_screen_original::$8 ] main:13::render_init:18::render_screen_original:386 [ render_screen_original::y#6 render_screen_original::oscr#1 render_screen_original::oext#2 render_screen_original::screen#6 render_screen_original::ocols#2 render_screen_original::cols#5 render_screen_original::x#5 render_screen_original::c#0 render_screen_original::$8 ] ) always clobbers reg byte a reg byte y -Statement [410] (byte) render_screen_original::ext#0 ← (byte/signed word/word/dword/signed dword~) render_screen_original::$8 << (byte/signed byte/word/signed word/dword/signed dword) 6 [ render_screen_original::y#6 render_screen_original::oscr#1 render_screen_original::oext#2 render_screen_original::screen#6 render_screen_original::ocols#2 render_screen_original::cols#5 render_screen_original::x#5 render_screen_original::c#0 render_screen_original::ext#0 ] ( main:13::render_init:18::render_screen_original:384 [ render_screen_original::y#6 render_screen_original::oscr#1 render_screen_original::oext#2 render_screen_original::screen#6 render_screen_original::ocols#2 render_screen_original::cols#5 render_screen_original::x#5 render_screen_original::c#0 render_screen_original::ext#0 ] main:13::render_init:18::render_screen_original:386 [ render_screen_original::y#6 render_screen_original::oscr#1 render_screen_original::oext#2 render_screen_original::screen#6 render_screen_original::ocols#2 render_screen_original::cols#5 render_screen_original::x#5 render_screen_original::c#0 render_screen_original::ext#0 ] ) always clobbers reg byte a -Statement [413] *((byte*) render_screen_original::screen#6) ← (byte~) render_screen_original::$10 [ render_screen_original::y#6 render_screen_original::oscr#1 render_screen_original::oext#1 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:384 [ render_screen_original::y#6 render_screen_original::oscr#1 render_screen_original::oext#1 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:386 [ render_screen_original::y#6 render_screen_original::oscr#1 render_screen_original::oext#1 render_screen_original::screen#6 render_screen_original::ocols#2 render_screen_original::cols#5 render_screen_original::x#5 ] ) always clobbers reg byte y -Statement [415] *((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::oext#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:384 [ render_screen_original::y#6 render_screen_original::oscr#1 render_screen_original::oext#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:386 [ render_screen_original::y#6 render_screen_original::oscr#1 render_screen_original::oext#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 [421] *((byte*) render_screen_original::screen#7) ← (const byte) render_screen_original::SPACE#0 [ render_screen_original::y#6 render_screen_original::oscr#1 render_screen_original::oext#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:384 [ render_screen_original::y#6 render_screen_original::oscr#1 render_screen_original::oext#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:386 [ render_screen_original::y#6 render_screen_original::oscr#1 render_screen_original::oext#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 [423] *((byte*) render_screen_original::cols#6) ← (const byte) BLACK#0 [ render_screen_original::y#6 render_screen_original::screen#10 render_screen_original::oscr#1 render_screen_original::oext#1 render_screen_original::ocols#1 render_screen_original::cols#6 render_screen_original::x#6 ] ( main:13::render_init:18::render_screen_original:384 [ render_screen_original::y#6 render_screen_original::screen#10 render_screen_original::oscr#1 render_screen_original::oext#1 render_screen_original::ocols#1 render_screen_original::cols#6 render_screen_original::x#6 ] main:13::render_init:18::render_screen_original:386 [ render_screen_original::y#6 render_screen_original::screen#10 render_screen_original::oscr#1 render_screen_original::oext#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 [430] *((const word*) SID_VOICE3_FREQ#0) ← (word/dword/signed dword) 65535 [ ] ( main:13::sid_rnd_init:16 [ ] ) always clobbers reg byte a -Statement [431] *((const byte*) SID_VOICE3_CONTROL#0) ← (const byte) SID_CONTROL_NOISE#0 [ ] ( main:13::sid_rnd_init:16 [ ] ) always clobbers reg byte a -Statement [438] if(*((const byte*) RASTER#0)<(byte) irq_sprite_ypos#0) goto sprites_irq::@1 [ render_screen_showing#0 irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 irq_cnt#0 ] ( [ render_screen_showing#0 irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 irq_cnt#0 ] ) always clobbers reg byte a -Statement [440] if((byte) render_screen_showing#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto sprites_irq::@2 [ irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 irq_cnt#0 sprites_irq::ptr#0 ] ( [ irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 irq_cnt#0 sprites_irq::ptr#0 ] ) always clobbers reg byte a -Statement [447] (byte) irq_cnt#1 ← ++ (byte) irq_cnt#0 [ irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 irq_cnt#1 ] ( [ irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 irq_cnt#1 ] ) always clobbers reg byte y -Statement [448] if((byte) irq_cnt#1==(byte/signed byte/word/signed word/dword/signed dword) 10) goto sprites_irq::@4 [ irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 ] ( [ irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 ] ) always clobbers reg byte a -Statement [449] (byte) irq_raster_next#2 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 [ irq_sprite_ypos#0 irq_sprite_ptr#0 irq_raster_next#2 ] ( [ irq_sprite_ypos#0 irq_sprite_ptr#0 irq_raster_next#2 ] ) always clobbers reg byte a -Statement [450] (byte) irq_sprite_ypos#2 ← (byte) irq_sprite_ypos#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 [ irq_sprite_ptr#0 irq_raster_next#2 ] ( [ irq_sprite_ptr#0 irq_raster_next#2 ] ) always clobbers reg byte a -Statement [451] (byte) irq_sprite_ptr#2 ← (byte) irq_sprite_ptr#0 + (byte/signed byte/word/signed word/dword/signed dword) 3 [ irq_raster_next#2 ] ( [ irq_raster_next#2 ] ) always clobbers reg byte a -Statement [454] (byte~) sprites_irq::$4 ← (byte) sprites_irq::raster_next#0 & (byte/signed byte/word/signed word/dword/signed dword) 7 [ sprites_irq::raster_next#0 sprites_irq::$4 ] ( [ sprites_irq::raster_next#0 sprites_irq::$4 ] ) always clobbers reg byte a -Statement [459] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0 [ ] ( [ ] ) always clobbers reg byte a -Statement [460] return [ ] ( [ ] ) always clobbers reg byte a reg byte x reg byte y -Statement [461] (byte) irq_cnt#14 ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( [ ] ) always clobbers reg byte a -Statement [462] (byte) irq_raster_next#1 ← (const byte) IRQ_RASTER_FIRST#0 [ irq_raster_next#1 ] ( [ irq_raster_next#1 ] ) always clobbers reg byte a -Statement [463] (byte) irq_sprite_ypos#1 ← (byte/signed byte/word/signed word/dword/signed dword) 50 [ irq_raster_next#1 ] ( [ irq_raster_next#1 ] ) always clobbers reg byte a -Statement [465] (byte) irq_sprite_ptr#1 ← (const byte) sprites_irq::toSpritePtr2_return#0 [ irq_raster_next#1 ] ( [ irq_raster_next#1 ] ) always clobbers reg byte a +Statement [352] *((const byte*) PROCPORT_DDR#0) ← (const byte) PROCPORT_DDR_MEMORY_MASK#0 [ ] ( main:12::sprites_irq_init:21 [ ] ) always clobbers reg byte a +Statement [353] *((const byte*) PROCPORT#0) ← (const byte) PROCPORT_RAM_IO#0 [ ] ( main:12::sprites_irq_init:21 [ ] ) always clobbers reg byte a +Statement [354] *((const byte*) CIA1_INTERRUPT#0) ← (const byte) CIA_INTERRUPT_CLEAR#0 [ ] ( main:12::sprites_irq_init:21 [ ] ) always clobbers reg byte a +Statement [355] *((const byte*) VIC_CONTROL#0) ← *((const byte*) VIC_CONTROL#0) & (byte/signed byte/word/signed word/dword/signed dword) 127 [ ] ( main:12::sprites_irq_init:21 [ ] ) always clobbers reg byte a +Statement [356] *((const byte*) RASTER#0) ← (const byte) IRQ_RASTER_FIRST#0 [ ] ( main:12::sprites_irq_init:21 [ ] ) always clobbers reg byte a +Statement [357] *((const byte*) IRQ_ENABLE#0) ← (const byte) IRQ_RASTER#0 [ ] ( main:12::sprites_irq_init:21 [ ] ) always clobbers reg byte a +Statement [358] *((const void()**) HARDWARE_IRQ#0) ← &interrupt(HARDWARE_CLOBBER)(void()) sprites_irq() [ ] ( main:12::sprites_irq_init:21 [ ] ) always clobbers reg byte a +Statement [361] *((const byte*) SPRITES_ENABLE#0) ← (byte/signed byte/word/signed word/dword/signed dword) 15 [ ] ( main:12::sprites_init:19 [ ] ) always clobbers reg byte a +Statement [362] *((const byte*) SPRITES_MC#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:12::sprites_init:19 [ ] ) always clobbers reg byte a +Statement [363] *((const byte*) SPRITES_EXPAND_Y#0) ← *((const byte*) SPRITES_MC#0) [ ] ( main:12::sprites_init:19 [ ] ) always clobbers reg byte a +Statement [364] *((const byte*) SPRITES_EXPAND_X#0) ← *((const byte*) SPRITES_EXPAND_Y#0) [ ] ( main:12::sprites_init:19 [ ] ) always clobbers reg byte a +Statement [366] (byte) sprites_init::s2#0 ← (byte) sprites_init::s#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ sprites_init::s#2 sprites_init::xpos#2 sprites_init::s2#0 ] ( main:12::sprites_init:19 [ sprites_init::s#2 sprites_init::xpos#2 sprites_init::s2#0 ] ) always clobbers reg byte a +Statement [367] *((const byte*) SPRITES_XPOS#0 + (byte) sprites_init::s2#0) ← (byte) sprites_init::xpos#2 [ sprites_init::s#2 sprites_init::xpos#2 ] ( main:12::sprites_init:19 [ sprites_init::s#2 sprites_init::xpos#2 ] ) always clobbers reg byte a +Statement [368] *((const byte*) SPRITES_COLS#0 + (byte) sprites_init::s#2) ← (const byte) BLACK#0 [ sprites_init::s#2 sprites_init::xpos#2 ] ( main:12::sprites_init:19 [ sprites_init::s#2 sprites_init::xpos#2 ] ) always clobbers reg byte a +Statement [369] (byte) sprites_init::xpos#1 ← (byte) sprites_init::xpos#2 + (byte/signed byte/word/signed word/dword/signed dword) 24 [ sprites_init::s#2 sprites_init::xpos#1 ] ( main:12::sprites_init:19 [ sprites_init::s#2 sprites_init::xpos#1 ] ) always clobbers reg byte a +Statement [374] *((const byte*) CIA2_PORT_A_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3 [ ] ( main:12::render_init:17 [ ] ) always clobbers reg byte a +Statement [376] *((const byte*) CIA2_PORT_A#0) ← (const byte) render_init::vicSelectGfxBank1_toDd001_return#0 [ ] ( main:12::render_init:17 [ ] ) always clobbers reg byte a +Statement [377] *((const byte*) D011#0) ← (const byte) VIC_ECM#0|(const byte) VIC_DEN#0|(const byte) VIC_RSEL#0|(byte/signed byte/word/signed word/dword/signed dword) 3 [ ] ( main:12::render_init:17 [ ] ) always clobbers reg byte a +Statement [378] *((const byte*) BORDERCOL#0) ← (const byte) BLACK#0 [ ] ( main:12::render_init:17 [ ] ) always clobbers reg byte a +Statement [379] *((const byte*) BGCOL1#0) ← (const byte) BLACK#0 [ ] ( main:12::render_init:17 [ ] ) always clobbers reg byte a +Statement [380] *((const byte*) BGCOL2#0) ← (const byte) BLUE#0 [ ] ( main:12::render_init:17 [ ] ) always clobbers reg byte a +Statement [381] *((const byte*) BGCOL3#0) ← (const byte) CYAN#0 [ ] ( main:12::render_init:17 [ ] ) always clobbers reg byte a +Statement [382] *((const byte*) BGCOL4#0) ← (const byte) GREY#0 [ ] ( main:12::render_init:17 [ ] ) always clobbers reg byte a +Statement [387] (byte~) render_init::$13 ← (byte) render_init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ render_init::i#2 render_init::li_1#2 render_init::li_2#2 render_init::$13 ] ( main:12::render_init:17 [ render_init::i#2 render_init::li_1#2 render_init::li_2#2 render_init::$13 ] ) always clobbers reg byte a +Statement [388] *((const byte*[PLAYFIELD_LINES#0]) screen_lines_1#0 + (byte~) render_init::$13) ← (byte*) render_init::li_1#2 [ render_init::i#2 render_init::li_1#2 render_init::li_2#2 ] ( main:12::render_init:17 [ render_init::i#2 render_init::li_1#2 render_init::li_2#2 ] ) always clobbers reg byte a +Statement [389] (byte~) render_init::$14 ← (byte) render_init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ render_init::i#2 render_init::li_1#2 render_init::li_2#2 render_init::$14 ] ( main:12::render_init:17 [ render_init::i#2 render_init::li_1#2 render_init::li_2#2 render_init::$14 ] ) always clobbers reg byte a +Statement [390] *((const byte*[PLAYFIELD_LINES#0]) screen_lines_2#0 + (byte~) render_init::$14) ← (byte*) render_init::li_2#2 [ render_init::i#2 render_init::li_1#2 render_init::li_2#2 ] ( main:12::render_init:17 [ render_init::i#2 render_init::li_1#2 render_init::li_2#2 ] ) always clobbers reg byte a +Statement [391] (byte*) render_init::li_1#1 ← (byte*) render_init::li_1#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ render_init::i#2 render_init::li_2#2 render_init::li_1#1 ] ( main:12::render_init:17 [ render_init::i#2 render_init::li_2#2 render_init::li_1#1 ] ) always clobbers reg byte a +Statement [392] (byte*) render_init::li_2#1 ← (byte*) render_init::li_2#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ render_init::i#2 render_init::li_1#1 render_init::li_2#1 ] ( main:12::render_init:17 [ render_init::i#2 render_init::li_1#1 render_init::li_2#1 ] ) always clobbers reg byte a +Statement [399] *((byte*) render_screen_original::screen#5) ← (const byte) render_screen_original::SPACE#0 [ 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:12::render_init:17::render_screen_original:383 [ 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:12::render_init:17::render_screen_original:385 [ 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 [401] *((byte*) render_screen_original::cols#4) ← (const byte) BLACK#0 [ 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:12::render_init:17::render_screen_original:383 [ 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:12::render_init:17::render_screen_original:385 [ 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 [406] *((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:12::render_init:17::render_screen_original:383 [ 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:12::render_init:17::render_screen_original:385 [ 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 [409] *((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:12::render_init:17::render_screen_original:383 [ 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:12::render_init:17::render_screen_original:385 [ 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 [415] *((byte*) render_screen_original::screen#7) ← (const byte) render_screen_original::SPACE#0 [ 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:12::render_init:17::render_screen_original:383 [ 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:12::render_init:17::render_screen_original:385 [ 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 [417] *((byte*) render_screen_original::cols#6) ← (const byte) BLACK#0 [ 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:12::render_init:17::render_screen_original:383 [ 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:12::render_init:17::render_screen_original:385 [ 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 [424] *((const word*) SID_VOICE3_FREQ#0) ← (word/dword/signed dword) 65535 [ ] ( main:12::sid_rnd_init:15 [ ] ) always clobbers reg byte a +Statement [425] *((const byte*) SID_VOICE3_CONTROL#0) ← (const byte) SID_CONTROL_NOISE#0 [ ] ( main:12::sid_rnd_init:15 [ ] ) always clobbers reg byte a +Statement [432] if(*((const byte*) RASTER#0)<(byte) irq_sprite_ypos#0) goto sprites_irq::@1 [ render_screen_showing#0 irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 irq_cnt#0 ] ( [ render_screen_showing#0 irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 irq_cnt#0 ] ) always clobbers reg byte a +Statement [434] if((byte) render_screen_showing#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto sprites_irq::@2 [ irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 irq_cnt#0 sprites_irq::ptr#0 ] ( [ irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 irq_cnt#0 sprites_irq::ptr#0 ] ) always clobbers reg byte a +Statement [441] (byte) irq_cnt#1 ← ++ (byte) irq_cnt#0 [ irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 irq_cnt#1 ] ( [ irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 irq_cnt#1 ] ) always clobbers reg byte y +Statement [442] if((byte) irq_cnt#1==(byte/signed byte/word/signed word/dword/signed dword) 10) goto sprites_irq::@4 [ irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 ] ( [ irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 ] ) always clobbers reg byte a +Statement [443] (byte) irq_raster_next#2 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 [ irq_sprite_ypos#0 irq_sprite_ptr#0 irq_raster_next#2 ] ( [ irq_sprite_ypos#0 irq_sprite_ptr#0 irq_raster_next#2 ] ) always clobbers reg byte a +Statement [444] (byte) irq_sprite_ypos#2 ← (byte) irq_sprite_ypos#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 [ irq_sprite_ptr#0 irq_raster_next#2 ] ( [ irq_sprite_ptr#0 irq_raster_next#2 ] ) always clobbers reg byte a +Statement [445] (byte) irq_sprite_ptr#2 ← (byte) irq_sprite_ptr#0 + (byte/signed byte/word/signed word/dword/signed dword) 3 [ irq_raster_next#2 ] ( [ irq_raster_next#2 ] ) always clobbers reg byte a +Statement [448] (byte~) sprites_irq::$4 ← (byte) sprites_irq::raster_next#0 & (byte/signed byte/word/signed word/dword/signed dword) 7 [ sprites_irq::raster_next#0 sprites_irq::$4 ] ( [ sprites_irq::raster_next#0 sprites_irq::$4 ] ) always clobbers reg byte a +Statement [453] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0 [ ] ( [ ] ) always clobbers reg byte a +Statement [454] return [ ] ( [ ] ) always clobbers reg byte a reg byte x reg byte y +Statement [455] (byte) irq_cnt#14 ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( [ ] ) always clobbers reg byte a +Statement [456] (byte) irq_raster_next#1 ← (const byte) IRQ_RASTER_FIRST#0 [ irq_raster_next#1 ] ( [ irq_raster_next#1 ] ) always clobbers reg byte a +Statement [457] (byte) irq_sprite_ypos#1 ← (byte/signed byte/word/signed word/dword/signed dword) 50 [ irq_raster_next#1 ] ( [ irq_raster_next#1 ] ) always clobbers reg byte a +Statement [459] (byte) irq_sprite_ptr#1 ← (const byte) sprites_irq::toSpritePtr2_return#0 [ irq_raster_next#1 ] ( [ irq_raster_next#1 ] ) always clobbers reg byte a Potential registers zp ZP_BYTE:2 [ render_screen_show#16 render_screen_show#13 ] : zp ZP_BYTE:2 , reg byte x , Potential registers zp ZP_BYTE:3 [ render_screen_render#16 render_screen_render#11 ] : zp ZP_BYTE:3 , reg byte x , Potential registers zp ZP_BYTE:4 [ current_movedown_counter#12 current_movedown_counter#10 current_movedown_counter#1 ] : zp ZP_BYTE:4 , reg byte x , @@ -12507,366 +12384,357 @@ Potential registers zp ZP_WORD:72 [ render_init::li_1#2 render_init::li_1#1 ] : Potential registers zp ZP_WORD:74 [ render_init::li_2#2 render_init::li_2#1 ] : zp ZP_WORD:74 , Potential registers zp ZP_BYTE:76 [ render_screen_original::y#6 render_screen_original::y#1 ] : zp ZP_BYTE:76 , reg byte x , Potential registers zp ZP_WORD:77 [ render_screen_original::oscr#2 render_screen_original::oscr#4 render_screen_original::oscr#1 ] : zp ZP_WORD:77 , -Potential registers zp ZP_WORD:79 [ render_screen_original::oext#2 render_screen_original::oext#4 render_screen_original::oext#1 ] : zp ZP_WORD:79 , -Potential registers zp ZP_WORD:81 [ render_screen_original::ocols#2 render_screen_original::ocols#4 render_screen_original::ocols#1 ] : zp ZP_WORD:81 , -Potential registers zp ZP_WORD:83 [ 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 ] : zp ZP_WORD:83 , -Potential registers zp ZP_WORD:85 [ 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 ZP_WORD:85 , -Potential registers zp ZP_BYTE:87 [ 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 ZP_BYTE:87 , reg byte x , -Potential registers zp ZP_BYTE:88 [ irq_raster_next#13 irq_raster_next#2 irq_raster_next#1 ] : zp ZP_BYTE:88 , -Potential registers zp ZP_BYTE:89 [ sprites_irq::raster_next#2 sprites_irq::raster_next#1 sprites_irq::raster_next#0 ] : zp ZP_BYTE:89 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:90 [ render_screen_showing#0 ] : zp ZP_BYTE:90 , -Potential registers zp ZP_BYTE:91 [ irq_raster_next#0 ] : zp ZP_BYTE:91 , -Potential registers zp ZP_BYTE:92 [ irq_sprite_ypos#0 ] : zp ZP_BYTE:92 , -Potential registers zp ZP_BYTE:93 [ irq_sprite_ptr#0 ] : zp ZP_BYTE:93 , -Potential registers zp ZP_BYTE:94 [ irq_cnt#0 ] : zp ZP_BYTE:94 , -Potential registers zp ZP_BYTE:95 [ keyboard_event_get::return#3 ] : zp ZP_BYTE:95 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:96 [ main::key_event#0 ] : zp ZP_BYTE:96 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:97 [ play_move_down::key_event#0 ] : zp ZP_BYTE:97 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:98 [ play_move_down::return#3 ] : zp ZP_BYTE:98 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:99 [ main::$12 ] : zp ZP_BYTE:99 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:100 [ main::render#1 ] : zp ZP_BYTE:100 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:101 [ play_move_leftright::key_event#0 ] : zp ZP_BYTE:101 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:102 [ play_move_leftright::return#4 ] : zp ZP_BYTE:102 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:103 [ main::$13 ] : zp ZP_BYTE:103 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:104 [ main::render#2 ] : zp ZP_BYTE:104 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:105 [ play_move_rotate::key_event#0 ] : zp ZP_BYTE:105 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:106 [ play_move_rotate::return#4 ] : zp ZP_BYTE:106 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:107 [ main::$14 ] : zp ZP_BYTE:107 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:108 [ main::render#3 ] : zp ZP_BYTE:108 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:109 [ render_current::$5 ] : zp ZP_BYTE:109 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_WORD:110 [ render_current::screen_line#0 ] : zp ZP_WORD:110 , -Potential registers zp ZP_BYTE:112 [ render_current::current_cell#0 ] : zp ZP_BYTE:112 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:113 [ render_playfield::$2 ] : zp ZP_BYTE:113 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:114 [ render_playfield::$3 ] : zp ZP_BYTE:114 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:115 [ play_move_rotate::$2 ] : zp ZP_BYTE:115 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:116 [ play_collision::return#13 ] : zp ZP_BYTE:116 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:117 [ play_move_rotate::$6 ] : zp ZP_BYTE:117 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:118 [ play_move_rotate::$4 ] : zp ZP_BYTE:118 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_WORD:119 [ play_collision::piece_gfx#0 ] : zp ZP_WORD:119 , -Potential registers zp ZP_WORD:121 [ play_collision::playfield_line#0 ] : zp ZP_WORD:121 , -Potential registers zp ZP_BYTE:123 [ play_collision::i#1 ] : zp ZP_BYTE:123 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:124 [ play_collision::$7 ] : zp ZP_BYTE:124 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:125 [ play_collision::return#12 ] : zp ZP_BYTE:125 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:126 [ play_move_leftright::$4 ] : zp ZP_BYTE:126 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:127 [ play_collision::return#1 ] : zp ZP_BYTE:127 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:128 [ play_move_leftright::$8 ] : zp ZP_BYTE:128 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:129 [ keyboard_event_pressed::return#12 ] : zp ZP_BYTE:129 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:130 [ play_move_down::$2 ] : zp ZP_BYTE:130 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:131 [ play_collision::return#0 ] : zp ZP_BYTE:131 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:132 [ play_move_down::$12 ] : zp ZP_BYTE:132 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:133 [ play_spawn_current::$3 ] : zp ZP_BYTE:133 , reg byte x , -Potential registers zp ZP_BYTE:134 [ sid_rnd::return#2 ] : zp ZP_BYTE:134 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:135 [ play_spawn_current::$1 ] : zp ZP_BYTE:135 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:136 [ sid_rnd::return#0 ] : zp ZP_BYTE:136 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:137 [ play_remove_lines::c#0 ] : zp ZP_BYTE:137 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_WORD:138 [ play_lock_current::playfield_line#0 ] : zp ZP_WORD:138 , -Potential registers zp ZP_BYTE:140 [ play_lock_current::i#1 ] : zp ZP_BYTE:140 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:141 [ keyboard_event_pressed::$0 ] : zp ZP_BYTE:141 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:142 [ keyboard_event_pressed::row_bits#0 ] : zp ZP_BYTE:142 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:143 [ keyboard_event_pressed::$1 ] : zp ZP_BYTE:143 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:144 [ keyboard_event_pressed::return#11 ] : zp ZP_BYTE:144 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:145 [ keyboard_matrix_read::rowid#0 ] : zp ZP_BYTE:145 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:146 [ keyboard_matrix_read::return#2 ] : zp ZP_BYTE:146 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:147 [ keyboard_event_scan::row_scan#0 ] : zp ZP_BYTE:147 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:148 [ keyboard_event_pressed::return#0 ] : zp ZP_BYTE:148 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:149 [ keyboard_event_scan::$14 ] : zp ZP_BYTE:149 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:150 [ keyboard_event_pressed::return#1 ] : zp ZP_BYTE:150 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:151 [ keyboard_event_scan::$18 ] : zp ZP_BYTE:151 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:152 [ keyboard_event_pressed::return#2 ] : zp ZP_BYTE:152 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:153 [ keyboard_event_scan::$22 ] : zp ZP_BYTE:153 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:154 [ keyboard_event_pressed::return#10 ] : zp ZP_BYTE:154 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:155 [ keyboard_event_scan::$26 ] : zp ZP_BYTE:155 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:156 [ keyboard_modifiers#5 ] : zp ZP_BYTE:156 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:157 [ keyboard_event_scan::$3 ] : zp ZP_BYTE:157 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:158 [ keyboard_event_scan::$4 ] : zp ZP_BYTE:158 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:159 [ keyboard_event_scan::event_type#0 ] : zp ZP_BYTE:159 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:160 [ keyboard_event_scan::$11 ] : zp ZP_BYTE:160 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:161 [ keyboard_matrix_read::return#0 ] : zp ZP_BYTE:161 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:162 [ render_screen_showing#1 ] : zp ZP_BYTE:162 , -Potential registers zp ZP_BYTE:163 [ play_init::$1 ] : zp ZP_BYTE:163 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:164 [ sprites_init::s2#0 ] : zp ZP_BYTE:164 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:165 [ render_init::$13 ] : zp ZP_BYTE:165 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:166 [ render_init::$14 ] : zp ZP_BYTE:166 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:167 [ render_screen_original::c#0 ] : zp ZP_BYTE:167 , reg byte x , -Potential registers zp ZP_BYTE:168 [ render_screen_original::$8 ] : zp ZP_BYTE:168 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:169 [ render_screen_original::ext#0 ] : zp ZP_BYTE:169 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:170 [ render_screen_original::$10 ] : zp ZP_BYTE:170 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:171 [ sprites_irq::ypos#0 ] : zp ZP_BYTE:171 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:172 [ sprites_irq::ptr#0 ] : zp ZP_BYTE:172 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:173 [ sprites_irq::ptr#3 ] : zp ZP_BYTE:173 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:174 [ sprites_irq::ptr#4 ] : zp ZP_BYTE:174 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:175 [ irq_cnt#1 ] : zp ZP_BYTE:175 , -Potential registers zp ZP_BYTE:176 [ irq_sprite_ypos#2 ] : zp ZP_BYTE:176 , -Potential registers zp ZP_BYTE:177 [ irq_sprite_ptr#2 ] : zp ZP_BYTE:177 , -Potential registers zp ZP_BYTE:178 [ sprites_irq::$4 ] : zp ZP_BYTE:178 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:179 [ irq_cnt#14 ] : zp ZP_BYTE:179 , -Potential registers zp ZP_BYTE:180 [ irq_sprite_ypos#1 ] : zp ZP_BYTE:180 , -Potential registers zp ZP_BYTE:181 [ irq_sprite_ptr#1 ] : zp ZP_BYTE:181 , -Potential registers zp ZP_BYTE:182 [ sprites_irq::ptr#1 ] : zp ZP_BYTE:182 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:183 [ sprites_irq::ptr#2 ] : zp ZP_BYTE:183 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_WORD:79 [ render_screen_original::ocols#2 render_screen_original::ocols#4 render_screen_original::ocols#1 ] : zp ZP_WORD:79 , +Potential registers zp ZP_WORD:81 [ 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 ] : zp ZP_WORD:81 , +Potential registers zp ZP_WORD:83 [ 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 ZP_WORD:83 , +Potential registers zp ZP_BYTE:85 [ 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 ZP_BYTE:85 , reg byte x , +Potential registers zp ZP_BYTE:86 [ irq_raster_next#13 irq_raster_next#2 irq_raster_next#1 ] : zp ZP_BYTE:86 , +Potential registers zp ZP_BYTE:87 [ sprites_irq::raster_next#2 sprites_irq::raster_next#1 sprites_irq::raster_next#0 ] : zp ZP_BYTE:87 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:88 [ render_screen_showing#0 ] : zp ZP_BYTE:88 , +Potential registers zp ZP_BYTE:89 [ irq_raster_next#0 ] : zp ZP_BYTE:89 , +Potential registers zp ZP_BYTE:90 [ irq_sprite_ypos#0 ] : zp ZP_BYTE:90 , +Potential registers zp ZP_BYTE:91 [ irq_sprite_ptr#0 ] : zp ZP_BYTE:91 , +Potential registers zp ZP_BYTE:92 [ irq_cnt#0 ] : zp ZP_BYTE:92 , +Potential registers zp ZP_BYTE:93 [ keyboard_event_get::return#3 ] : zp ZP_BYTE:93 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:94 [ main::key_event#0 ] : zp ZP_BYTE:94 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:95 [ play_move_down::key_event#0 ] : zp ZP_BYTE:95 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:96 [ play_move_down::return#3 ] : zp ZP_BYTE:96 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:97 [ main::$12 ] : zp ZP_BYTE:97 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:98 [ main::render#1 ] : zp ZP_BYTE:98 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:99 [ play_move_leftright::key_event#0 ] : zp ZP_BYTE:99 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:100 [ play_move_leftright::return#4 ] : zp ZP_BYTE:100 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:101 [ main::$13 ] : zp ZP_BYTE:101 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:102 [ main::render#2 ] : zp ZP_BYTE:102 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:103 [ play_move_rotate::key_event#0 ] : zp ZP_BYTE:103 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:104 [ play_move_rotate::return#4 ] : zp ZP_BYTE:104 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:105 [ main::$14 ] : zp ZP_BYTE:105 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:106 [ main::render#3 ] : zp ZP_BYTE:106 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:107 [ render_current::$5 ] : zp ZP_BYTE:107 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_WORD:108 [ render_current::screen_line#0 ] : zp ZP_WORD:108 , +Potential registers zp ZP_BYTE:110 [ render_current::current_cell#0 ] : zp ZP_BYTE:110 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:111 [ render_playfield::$2 ] : zp ZP_BYTE:111 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:112 [ render_playfield::$3 ] : zp ZP_BYTE:112 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:113 [ play_move_rotate::$2 ] : zp ZP_BYTE:113 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:114 [ play_collision::return#13 ] : zp ZP_BYTE:114 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:115 [ play_move_rotate::$6 ] : zp ZP_BYTE:115 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:116 [ play_move_rotate::$4 ] : zp ZP_BYTE:116 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_WORD:117 [ play_collision::piece_gfx#0 ] : zp ZP_WORD:117 , +Potential registers zp ZP_WORD:119 [ play_collision::playfield_line#0 ] : zp ZP_WORD:119 , +Potential registers zp ZP_BYTE:121 [ play_collision::i#1 ] : zp ZP_BYTE:121 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:122 [ play_collision::$7 ] : zp ZP_BYTE:122 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:123 [ play_collision::return#12 ] : zp ZP_BYTE:123 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:124 [ play_move_leftright::$4 ] : zp ZP_BYTE:124 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:125 [ play_collision::return#1 ] : zp ZP_BYTE:125 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:126 [ play_move_leftright::$8 ] : zp ZP_BYTE:126 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:127 [ keyboard_event_pressed::return#12 ] : zp ZP_BYTE:127 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:128 [ play_move_down::$2 ] : zp ZP_BYTE:128 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:129 [ play_collision::return#0 ] : zp ZP_BYTE:129 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:130 [ play_move_down::$12 ] : zp ZP_BYTE:130 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:131 [ play_spawn_current::$3 ] : zp ZP_BYTE:131 , reg byte x , +Potential registers zp ZP_BYTE:132 [ sid_rnd::return#2 ] : zp ZP_BYTE:132 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:133 [ play_spawn_current::$1 ] : zp ZP_BYTE:133 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:134 [ sid_rnd::return#0 ] : zp ZP_BYTE:134 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:135 [ play_remove_lines::c#0 ] : zp ZP_BYTE:135 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_WORD:136 [ play_lock_current::playfield_line#0 ] : zp ZP_WORD:136 , +Potential registers zp ZP_BYTE:138 [ play_lock_current::i#1 ] : zp ZP_BYTE:138 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:139 [ keyboard_event_pressed::$0 ] : zp ZP_BYTE:139 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:140 [ keyboard_event_pressed::row_bits#0 ] : zp ZP_BYTE:140 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:141 [ keyboard_event_pressed::$1 ] : zp ZP_BYTE:141 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:142 [ keyboard_event_pressed::return#11 ] : zp ZP_BYTE:142 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:143 [ keyboard_matrix_read::rowid#0 ] : zp ZP_BYTE:143 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:144 [ keyboard_matrix_read::return#2 ] : zp ZP_BYTE:144 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:145 [ keyboard_event_scan::row_scan#0 ] : zp ZP_BYTE:145 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:146 [ keyboard_event_pressed::return#0 ] : zp ZP_BYTE:146 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:147 [ keyboard_event_scan::$14 ] : zp ZP_BYTE:147 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:148 [ keyboard_event_pressed::return#1 ] : zp ZP_BYTE:148 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:149 [ keyboard_event_scan::$18 ] : zp ZP_BYTE:149 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:150 [ keyboard_event_pressed::return#2 ] : zp ZP_BYTE:150 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:151 [ keyboard_event_scan::$22 ] : zp ZP_BYTE:151 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:152 [ keyboard_event_pressed::return#10 ] : zp ZP_BYTE:152 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:153 [ keyboard_event_scan::$26 ] : zp ZP_BYTE:153 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:154 [ keyboard_modifiers#5 ] : zp ZP_BYTE:154 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:155 [ keyboard_event_scan::$3 ] : zp ZP_BYTE:155 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:156 [ keyboard_event_scan::$4 ] : zp ZP_BYTE:156 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:157 [ keyboard_event_scan::event_type#0 ] : zp ZP_BYTE:157 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:158 [ keyboard_event_scan::$11 ] : zp ZP_BYTE:158 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:159 [ keyboard_matrix_read::return#0 ] : zp ZP_BYTE:159 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:160 [ render_screen_showing#1 ] : zp ZP_BYTE:160 , +Potential registers zp ZP_BYTE:161 [ play_init::$1 ] : zp ZP_BYTE:161 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:162 [ sprites_init::s2#0 ] : zp ZP_BYTE:162 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:163 [ render_init::$13 ] : zp ZP_BYTE:163 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:164 [ render_init::$14 ] : zp ZP_BYTE:164 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:165 [ sprites_irq::ypos#0 ] : zp ZP_BYTE:165 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:166 [ sprites_irq::ptr#0 ] : zp ZP_BYTE:166 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:167 [ sprites_irq::ptr#3 ] : zp ZP_BYTE:167 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:168 [ sprites_irq::ptr#4 ] : zp ZP_BYTE:168 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:169 [ irq_cnt#1 ] : zp ZP_BYTE:169 , +Potential registers zp ZP_BYTE:170 [ irq_sprite_ypos#2 ] : zp ZP_BYTE:170 , +Potential registers zp ZP_BYTE:171 [ irq_sprite_ptr#2 ] : zp ZP_BYTE:171 , +Potential registers zp ZP_BYTE:172 [ sprites_irq::$4 ] : zp ZP_BYTE:172 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:173 [ irq_cnt#14 ] : zp ZP_BYTE:173 , +Potential registers zp ZP_BYTE:174 [ irq_sprite_ypos#1 ] : zp ZP_BYTE:174 , +Potential registers zp ZP_BYTE:175 [ irq_sprite_ptr#1 ] : zp ZP_BYTE:175 , +Potential registers zp ZP_BYTE:176 [ sprites_irq::ptr#1 ] : zp ZP_BYTE:176 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:177 [ sprites_irq::ptr#2 ] : zp ZP_BYTE:177 , reg byte a , reg byte x , reg byte y , REGISTER UPLIFT SCOPES -Uplift Scope [keyboard_event_scan] 20,002: zp ZP_BYTE:157 [ keyboard_event_scan::$3 ] 20,002: zp ZP_BYTE:158 [ keyboard_event_scan::$4 ] 20,002: zp ZP_BYTE:159 [ keyboard_event_scan::event_type#0 ] 20,002: zp ZP_BYTE:160 [ keyboard_event_scan::$11 ] 17,858.93: zp ZP_BYTE:61 [ keyboard_event_scan::col#2 keyboard_event_scan::col#1 ] 11,908.48: zp ZP_BYTE:62 [ keyboard_event_scan::keycode#10 keyboard_event_scan::keycode#11 keyboard_event_scan::keycode#14 keyboard_event_scan::keycode#1 keyboard_event_scan::keycode#15 ] 2,101.74: zp ZP_BYTE:59 [ keyboard_event_scan::row#2 keyboard_event_scan::row#1 ] 1,278.06: zp ZP_BYTE:147 [ keyboard_event_scan::row_scan#0 ] 4: zp ZP_BYTE:149 [ keyboard_event_scan::$14 ] 4: zp ZP_BYTE:151 [ keyboard_event_scan::$18 ] 4: zp ZP_BYTE:153 [ keyboard_event_scan::$22 ] 4: zp ZP_BYTE:155 [ keyboard_event_scan::$26 ] -Uplift Scope [play_collision] 38,173.33: zp ZP_BYTE:31 [ play_collision::i#2 play_collision::i#3 play_collision::i#11 play_collision::i#13 ] 20,002: zp ZP_BYTE:124 [ play_collision::$7 ] 13,378.25: zp ZP_BYTE:32 [ play_collision::col#2 play_collision::col#9 play_collision::col#1 ] 12,223.44: zp ZP_BYTE:33 [ play_collision::c#2 play_collision::c#1 ] 1,615.62: zp ZP_BYTE:123 [ play_collision::i#1 ] 1,371.57: zp ZP_BYTE:29 [ play_collision::ypos2#2 play_collision::ypos2#0 play_collision::ypos2#1 ] 1,126.12: zp ZP_BYTE:30 [ play_collision::l#6 play_collision::l#1 ] 785.86: zp ZP_WORD:121 [ play_collision::playfield_line#0 ] 476.33: zp ZP_WORD:119 [ play_collision::piece_gfx#0 ] 50.2: zp ZP_BYTE:28 [ play_collision::xpos#5 play_collision::xpos#0 play_collision::xpos#1 play_collision::xpos#2 play_collision::xpos#3 ] 18: zp ZP_BYTE:26 [ play_collision::orientation#4 play_collision::orientation#0 play_collision::orientation#1 play_collision::orientation#2 play_collision::orientation#3 ] 10: zp ZP_BYTE:27 [ play_collision::ypos#4 play_collision::ypos#0 play_collision::ypos#1 play_collision::ypos#2 play_collision::ypos#3 ] 4: zp ZP_BYTE:116 [ play_collision::return#13 ] 4: zp ZP_BYTE:125 [ play_collision::return#12 ] 4: zp ZP_BYTE:127 [ play_collision::return#1 ] 4: zp ZP_BYTE:131 [ play_collision::return#0 ] 1.33: zp ZP_BYTE:34 [ play_collision::return#14 ] -Uplift Scope [play_lock_current] 38,173.33: zp ZP_BYTE:54 [ play_lock_current::i#2 play_lock_current::i#3 play_lock_current::i#7 play_lock_current::i#9 ] 14,753.5: zp ZP_BYTE:55 [ play_lock_current::col#2 play_lock_current::col#0 play_lock_current::col#1 ] 14,001.4: zp ZP_BYTE:56 [ play_lock_current::c#2 play_lock_current::c#1 ] 2,333.67: zp ZP_BYTE:140 [ play_lock_current::i#1 ] 1,167.83: zp ZP_BYTE:53 [ play_lock_current::l#6 play_lock_current::l#1 ] 1,100.2: zp ZP_WORD:138 [ play_lock_current::playfield_line#0 ] 777.68: zp ZP_BYTE:52 [ play_lock_current::ypos2#2 play_lock_current::ypos2#0 play_lock_current::ypos2#1 ] -Uplift Scope [play_remove_lines] 19,119.62: zp ZP_BYTE:48 [ play_remove_lines::r#2 play_remove_lines::r#3 play_remove_lines::r#1 ] 18,939.14: zp ZP_BYTE:51 [ play_remove_lines::w#6 play_remove_lines::w#4 play_remove_lines::w#12 play_remove_lines::w#11 play_remove_lines::w#1 play_remove_lines::w#2 play_remove_lines::w#3 ] 17,501.75: zp ZP_BYTE:49 [ play_remove_lines::x#2 play_remove_lines::x#1 ] 8,201: zp ZP_BYTE:50 [ play_remove_lines::full#4 play_remove_lines::full#2 ] 6,000.6: zp ZP_BYTE:137 [ play_remove_lines::c#0 ] 1,644.5: zp ZP_BYTE:47 [ play_remove_lines::y#8 play_remove_lines::y#1 ] -Uplift Scope [] 58,858.19: zp ZP_BYTE:63 [ keyboard_events_size#10 keyboard_events_size#29 keyboard_events_size#19 keyboard_events_size#16 keyboard_events_size#13 keyboard_events_size#4 keyboard_events_size#30 keyboard_events_size#2 keyboard_events_size#1 ] 212.98: zp ZP_WORD:41 [ current_piece_gfx#26 current_piece_gfx#20 current_piece_gfx#16 current_piece_gfx#14 current_piece_gfx#3 current_piece_gfx#1 ] 205.92: zp ZP_BYTE:44 [ current_piece_char#20 current_piece_char#15 current_piece_char#12 current_piece_char#1 ] 72.09: zp ZP_BYTE:10 [ current_piece_char#63 current_piece_char#88 current_piece_char#89 ] 59.09: zp ZP_WORD:8 [ current_piece_gfx#53 current_piece_gfx#100 current_piece_gfx#101 ] 40.1: zp ZP_BYTE:43 [ current_xpos#33 current_xpos#10 current_xpos#23 current_xpos#19 current_xpos#4 current_xpos#1 current_xpos#2 ] 30.62: zp ZP_BYTE:16 [ render_screen_render#19 render_screen_render#63 ] 26: zp ZP_WORD:24 [ current_piece#12 current_piece#74 current_piece#75 current_piece#76 current_piece#77 ] 20.4: zp ZP_BYTE:5 [ current_ypos#9 current_ypos#84 current_ypos#85 ] 20: zp ZP_BYTE:156 [ keyboard_modifiers#5 ] 20: zp ZP_BYTE:162 [ render_screen_showing#1 ] 20: zp ZP_BYTE:176 [ irq_sprite_ypos#2 ] 20: zp ZP_BYTE:177 [ irq_sprite_ptr#2 ] 20: zp ZP_BYTE:179 [ irq_cnt#14 ] 20: zp ZP_BYTE:180 [ irq_sprite_ypos#1 ] 20: zp ZP_BYTE:181 [ irq_sprite_ptr#1 ] 19.25: zp ZP_WORD:38 [ current_piece#20 current_piece#78 current_piece#16 current_piece#71 current_piece#10 ] 17.64: zp ZP_BYTE:40 [ current_orientation#29 current_orientation#10 current_orientation#19 current_orientation#4 current_orientation#14 ] 16.01: zp ZP_BYTE:37 [ current_ypos#29 current_ypos#21 current_ypos#18 current_ypos#13 current_ypos#0 ] 15.12: zp ZP_BYTE:4 [ current_movedown_counter#12 current_movedown_counter#10 current_movedown_counter#1 ] 13.85: zp ZP_BYTE:7 [ current_xpos#47 current_xpos#110 current_xpos#111 ] 11.6: zp ZP_BYTE:60 [ keyboard_modifiers#13 keyboard_modifiers#4 keyboard_modifiers#12 keyboard_modifiers#3 keyboard_modifiers#11 ] 10.59: zp ZP_BYTE:6 [ render_screen_render#28 render_screen_render#62 ] 8.33: zp ZP_BYTE:88 [ irq_raster_next#13 irq_raster_next#2 irq_raster_next#1 ] 4.73: zp ZP_BYTE:2 [ render_screen_show#16 render_screen_show#13 ] 4.25: zp ZP_BYTE:3 [ render_screen_render#16 render_screen_render#11 ] 4: zp ZP_BYTE:175 [ irq_cnt#1 ] 0.74: zp ZP_BYTE:92 [ irq_sprite_ypos#0 ] 0.57: zp ZP_BYTE:90 [ render_screen_showing#0 ] 0.25: zp ZP_BYTE:93 [ irq_sprite_ptr#0 ] 0.2: zp ZP_BYTE:94 [ irq_cnt#0 ] 0.18: zp ZP_BYTE:91 [ irq_raster_next#0 ] -Uplift Scope [render_current] 2,534.25: zp ZP_BYTE:13 [ render_current::i#4 render_current::i#3 render_current::i#8 render_current::i#10 render_current::i#1 ] 1,787.5: zp ZP_BYTE:15 [ render_current::c#2 render_current::c#1 ] 1,553.5: zp ZP_BYTE:14 [ render_current::xpos#2 render_current::xpos#0 render_current::xpos#1 ] 1,001: zp ZP_BYTE:112 [ render_current::current_cell#0 ] 202: zp ZP_BYTE:109 [ render_current::$5 ] 162.72: zp ZP_BYTE:12 [ render_current::l#4 render_current::l#1 ] 101.16: zp ZP_BYTE:11 [ render_current::ypos2#2 render_current::ypos2#0 render_current::ypos2#1 ] 100.18: zp ZP_WORD:110 [ render_current::screen_line#0 ] -Uplift Scope [render_playfield] 2,254.5: zp ZP_WORD:19 [ render_playfield::screen_line#2 render_playfield::screen_line#0 render_playfield::screen_line#1 ] 2,002: zp ZP_BYTE:21 [ render_playfield::c#2 render_playfield::c#1 ] 1,505.77: zp ZP_BYTE:18 [ render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 ] 202: zp ZP_BYTE:113 [ render_playfield::$2 ] 202: zp ZP_BYTE:114 [ render_playfield::$3 ] 181.8: zp ZP_BYTE:17 [ render_playfield::l#2 render_playfield::l#1 ] -Uplift Scope [play_spawn_current] 2,337: zp ZP_BYTE:46 [ play_spawn_current::piece_idx#2 play_spawn_current::piece_idx#1 ] 2,002: zp ZP_BYTE:135 [ play_spawn_current::$1 ] 0.13: zp ZP_BYTE:133 [ play_spawn_current::$3 ] -Uplift Scope [keyboard_matrix_read] 2,002: zp ZP_BYTE:146 [ keyboard_matrix_read::return#2 ] 1,003: zp ZP_BYTE:145 [ keyboard_matrix_read::rowid#0 ] 334.33: zp ZP_BYTE:161 [ keyboard_matrix_read::return#0 ] -Uplift Scope [render_screen_original] 681.75: zp ZP_BYTE:87 [ 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 ] 577.03: zp ZP_WORD:83 [ 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 ] 461.25: zp ZP_WORD:85 [ 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 ] 226.14: zp ZP_WORD:77 [ render_screen_original::oscr#2 render_screen_original::oscr#4 render_screen_original::oscr#1 ] 202: zp ZP_BYTE:168 [ render_screen_original::$8 ] 202: zp ZP_BYTE:170 [ render_screen_original::$10 ] 106.63: zp ZP_WORD:79 [ render_screen_original::oext#2 render_screen_original::oext#4 render_screen_original::oext#1 ] 101: zp ZP_BYTE:169 [ render_screen_original::ext#0 ] 68.48: zp ZP_WORD:81 [ render_screen_original::ocols#2 render_screen_original::ocols#4 render_screen_original::ocols#1 ] 40.4: zp ZP_BYTE:167 [ render_screen_original::c#0 ] 17.26: zp ZP_BYTE:76 [ render_screen_original::y#6 render_screen_original::y#1 ] -Uplift Scope [sid_rnd] 2,002: zp ZP_BYTE:134 [ sid_rnd::return#2 ] 334.33: zp ZP_BYTE:136 [ sid_rnd::return#0 ] -Uplift Scope [main] 202: zp ZP_BYTE:99 [ main::$12 ] 202: zp ZP_BYTE:103 [ main::$13 ] 202: zp ZP_BYTE:107 [ main::$14 ] 202: zp ZP_BYTE:108 [ main::render#3 ] 40.4: zp ZP_BYTE:100 [ main::render#1 ] 40.4: zp ZP_BYTE:104 [ main::render#2 ] 36.73: zp ZP_BYTE:96 [ main::key_event#0 ] -Uplift Scope [play_move_down] 202: zp ZP_BYTE:98 [ play_move_down::return#3 ] 51.5: zp ZP_BYTE:97 [ play_move_down::key_event#0 ] 33.67: zp ZP_BYTE:45 [ play_move_down::return#2 ] 20: zp ZP_BYTE:36 [ play_move_down::movedown#6 play_move_down::movedown#3 play_move_down::movedown#7 play_move_down::movedown#2 play_move_down::movedown#10 ] 4: zp ZP_BYTE:130 [ play_move_down::$2 ] 4: zp ZP_BYTE:132 [ play_move_down::$12 ] -Uplift Scope [play_move_rotate] 202: zp ZP_BYTE:106 [ play_move_rotate::return#4 ] 52.5: zp ZP_BYTE:105 [ play_move_rotate::key_event#0 ] 33.67: zp ZP_BYTE:22 [ play_move_rotate::return#1 ] 8.89: zp ZP_BYTE:23 [ play_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#2 ] 4: zp ZP_BYTE:115 [ play_move_rotate::$2 ] 4: zp ZP_BYTE:117 [ play_move_rotate::$6 ] 4: zp ZP_BYTE:118 [ play_move_rotate::$4 ] -Uplift Scope [play_move_leftright] 202: zp ZP_BYTE:102 [ play_move_leftright::return#4 ] 52.5: zp ZP_BYTE:101 [ play_move_leftright::key_event#0 ] 33.67: zp ZP_BYTE:35 [ play_move_leftright::return#1 ] 4: zp ZP_BYTE:126 [ play_move_leftright::$4 ] 4: zp ZP_BYTE:128 [ play_move_leftright::$8 ] -Uplift Scope [keyboard_event_get] 202: zp ZP_BYTE:95 [ keyboard_event_get::return#3 ] 38.33: zp ZP_BYTE:58 [ keyboard_event_get::return#2 keyboard_event_get::return#1 ] -Uplift Scope [render_init] 22.79: zp ZP_BYTE:71 [ render_init::i#2 render_init::i#1 ] 22: zp ZP_BYTE:165 [ render_init::$13 ] 22: zp ZP_BYTE:166 [ render_init::$14 ] 12.83: zp ZP_WORD:74 [ render_init::li_2#2 render_init::li_2#1 ] 12.1: zp ZP_WORD:72 [ render_init::li_1#2 render_init::li_1#1 ] -Uplift Scope [play_init] 23.83: zp ZP_BYTE:65 [ play_init::j#2 play_init::j#1 ] 22: zp ZP_BYTE:163 [ play_init::$1 ] 13.93: zp ZP_BYTE:68 [ play_init::idx#2 play_init::idx#1 ] 13.75: zp ZP_WORD:66 [ play_init::pli#2 play_init::pli#1 ] -Uplift Scope [sprites_init] 25.3: zp ZP_BYTE:69 [ sprites_init::s#2 sprites_init::s#1 ] 22: zp ZP_BYTE:164 [ sprites_init::s2#0 ] 15.58: zp ZP_BYTE:70 [ sprites_init::xpos#2 sprites_init::xpos#1 ] -Uplift Scope [sprites_irq] 12.67: zp ZP_BYTE:89 [ sprites_irq::raster_next#2 sprites_irq::raster_next#1 sprites_irq::raster_next#0 ] 4: zp ZP_BYTE:174 [ sprites_irq::ptr#4 ] 4: zp ZP_BYTE:178 [ sprites_irq::$4 ] 4: zp ZP_BYTE:183 [ sprites_irq::ptr#2 ] 2.67: zp ZP_BYTE:173 [ sprites_irq::ptr#3 ] 2.67: zp ZP_BYTE:182 [ sprites_irq::ptr#1 ] 2.5: zp ZP_BYTE:171 [ sprites_irq::ypos#0 ] 2.5: zp ZP_BYTE:172 [ sprites_irq::ptr#0 ] -Uplift Scope [keyboard_event_pressed] 4: zp ZP_BYTE:129 [ keyboard_event_pressed::return#12 ] 4: zp ZP_BYTE:141 [ keyboard_event_pressed::$0 ] 4: zp ZP_BYTE:143 [ keyboard_event_pressed::$1 ] 4: zp ZP_BYTE:148 [ keyboard_event_pressed::return#0 ] 4: zp ZP_BYTE:150 [ keyboard_event_pressed::return#1 ] 4: zp ZP_BYTE:152 [ keyboard_event_pressed::return#2 ] 4: zp ZP_BYTE:154 [ keyboard_event_pressed::return#10 ] 2: zp ZP_BYTE:142 [ keyboard_event_pressed::row_bits#0 ] 1.71: zp ZP_BYTE:144 [ keyboard_event_pressed::return#11 ] 1.33: zp ZP_BYTE:57 [ keyboard_event_pressed::keycode#5 ] +Uplift Scope [keyboard_event_scan] 20,002: zp ZP_BYTE:155 [ keyboard_event_scan::$3 ] 20,002: zp ZP_BYTE:156 [ keyboard_event_scan::$4 ] 20,002: zp ZP_BYTE:157 [ keyboard_event_scan::event_type#0 ] 20,002: zp ZP_BYTE:158 [ keyboard_event_scan::$11 ] 17,858.93: zp ZP_BYTE:61 [ keyboard_event_scan::col#2 keyboard_event_scan::col#1 ] 11,908.48: zp ZP_BYTE:62 [ keyboard_event_scan::keycode#10 keyboard_event_scan::keycode#11 keyboard_event_scan::keycode#14 keyboard_event_scan::keycode#1 keyboard_event_scan::keycode#15 ] 2,101.74: zp ZP_BYTE:59 [ keyboard_event_scan::row#2 keyboard_event_scan::row#1 ] 1,278.06: zp ZP_BYTE:145 [ keyboard_event_scan::row_scan#0 ] 4: zp ZP_BYTE:147 [ keyboard_event_scan::$14 ] 4: zp ZP_BYTE:149 [ keyboard_event_scan::$18 ] 4: zp ZP_BYTE:151 [ keyboard_event_scan::$22 ] 4: zp ZP_BYTE:153 [ keyboard_event_scan::$26 ] +Uplift Scope [play_collision] 38,173.33: zp ZP_BYTE:31 [ play_collision::i#2 play_collision::i#3 play_collision::i#11 play_collision::i#13 ] 20,002: zp ZP_BYTE:122 [ play_collision::$7 ] 13,378.25: zp ZP_BYTE:32 [ play_collision::col#2 play_collision::col#9 play_collision::col#1 ] 12,223.44: zp ZP_BYTE:33 [ play_collision::c#2 play_collision::c#1 ] 1,615.62: zp ZP_BYTE:121 [ play_collision::i#1 ] 1,371.57: zp ZP_BYTE:29 [ play_collision::ypos2#2 play_collision::ypos2#0 play_collision::ypos2#1 ] 1,126.12: zp ZP_BYTE:30 [ play_collision::l#6 play_collision::l#1 ] 785.86: zp ZP_WORD:119 [ play_collision::playfield_line#0 ] 476.33: zp ZP_WORD:117 [ play_collision::piece_gfx#0 ] 50.2: zp ZP_BYTE:28 [ play_collision::xpos#5 play_collision::xpos#0 play_collision::xpos#1 play_collision::xpos#2 play_collision::xpos#3 ] 18: zp ZP_BYTE:26 [ play_collision::orientation#4 play_collision::orientation#0 play_collision::orientation#1 play_collision::orientation#2 play_collision::orientation#3 ] 10: zp ZP_BYTE:27 [ play_collision::ypos#4 play_collision::ypos#0 play_collision::ypos#1 play_collision::ypos#2 play_collision::ypos#3 ] 4: zp ZP_BYTE:114 [ play_collision::return#13 ] 4: zp ZP_BYTE:123 [ play_collision::return#12 ] 4: zp ZP_BYTE:125 [ play_collision::return#1 ] 4: zp ZP_BYTE:129 [ play_collision::return#0 ] 1.33: zp ZP_BYTE:34 [ play_collision::return#14 ] +Uplift Scope [play_lock_current] 38,173.33: zp ZP_BYTE:54 [ play_lock_current::i#2 play_lock_current::i#3 play_lock_current::i#7 play_lock_current::i#9 ] 14,753.5: zp ZP_BYTE:55 [ play_lock_current::col#2 play_lock_current::col#0 play_lock_current::col#1 ] 14,001.4: zp ZP_BYTE:56 [ play_lock_current::c#2 play_lock_current::c#1 ] 2,333.67: zp ZP_BYTE:138 [ play_lock_current::i#1 ] 1,167.83: zp ZP_BYTE:53 [ play_lock_current::l#6 play_lock_current::l#1 ] 1,100.2: zp ZP_WORD:136 [ play_lock_current::playfield_line#0 ] 777.68: zp ZP_BYTE:52 [ play_lock_current::ypos2#2 play_lock_current::ypos2#0 play_lock_current::ypos2#1 ] +Uplift Scope [play_remove_lines] 19,119.62: zp ZP_BYTE:48 [ play_remove_lines::r#2 play_remove_lines::r#3 play_remove_lines::r#1 ] 18,939.14: zp ZP_BYTE:51 [ play_remove_lines::w#6 play_remove_lines::w#4 play_remove_lines::w#12 play_remove_lines::w#11 play_remove_lines::w#1 play_remove_lines::w#2 play_remove_lines::w#3 ] 17,501.75: zp ZP_BYTE:49 [ play_remove_lines::x#2 play_remove_lines::x#1 ] 8,201: zp ZP_BYTE:50 [ play_remove_lines::full#4 play_remove_lines::full#2 ] 6,000.6: zp ZP_BYTE:135 [ play_remove_lines::c#0 ] 1,644.5: zp ZP_BYTE:47 [ play_remove_lines::y#8 play_remove_lines::y#1 ] +Uplift Scope [] 58,858.19: zp ZP_BYTE:63 [ keyboard_events_size#10 keyboard_events_size#29 keyboard_events_size#19 keyboard_events_size#16 keyboard_events_size#13 keyboard_events_size#4 keyboard_events_size#30 keyboard_events_size#2 keyboard_events_size#1 ] 212.98: zp ZP_WORD:41 [ current_piece_gfx#26 current_piece_gfx#20 current_piece_gfx#16 current_piece_gfx#14 current_piece_gfx#3 current_piece_gfx#1 ] 205.92: zp ZP_BYTE:44 [ current_piece_char#20 current_piece_char#15 current_piece_char#12 current_piece_char#1 ] 72.09: zp ZP_BYTE:10 [ current_piece_char#63 current_piece_char#88 current_piece_char#89 ] 59.09: zp ZP_WORD:8 [ current_piece_gfx#53 current_piece_gfx#100 current_piece_gfx#101 ] 40.1: zp ZP_BYTE:43 [ current_xpos#33 current_xpos#10 current_xpos#23 current_xpos#19 current_xpos#4 current_xpos#1 current_xpos#2 ] 30.62: zp ZP_BYTE:16 [ render_screen_render#19 render_screen_render#63 ] 26: zp ZP_WORD:24 [ current_piece#12 current_piece#74 current_piece#75 current_piece#76 current_piece#77 ] 20.4: zp ZP_BYTE:5 [ current_ypos#9 current_ypos#84 current_ypos#85 ] 20: zp ZP_BYTE:154 [ keyboard_modifiers#5 ] 20: zp ZP_BYTE:160 [ render_screen_showing#1 ] 20: zp ZP_BYTE:170 [ irq_sprite_ypos#2 ] 20: zp ZP_BYTE:171 [ irq_sprite_ptr#2 ] 20: zp ZP_BYTE:173 [ irq_cnt#14 ] 20: zp ZP_BYTE:174 [ irq_sprite_ypos#1 ] 20: zp ZP_BYTE:175 [ irq_sprite_ptr#1 ] 19.25: zp ZP_WORD:38 [ current_piece#20 current_piece#78 current_piece#16 current_piece#71 current_piece#10 ] 17.64: zp ZP_BYTE:40 [ current_orientation#29 current_orientation#10 current_orientation#19 current_orientation#4 current_orientation#14 ] 16.01: zp ZP_BYTE:37 [ current_ypos#29 current_ypos#21 current_ypos#18 current_ypos#13 current_ypos#0 ] 15.12: zp ZP_BYTE:4 [ current_movedown_counter#12 current_movedown_counter#10 current_movedown_counter#1 ] 13.85: zp ZP_BYTE:7 [ current_xpos#47 current_xpos#110 current_xpos#111 ] 11.6: zp ZP_BYTE:60 [ keyboard_modifiers#13 keyboard_modifiers#4 keyboard_modifiers#12 keyboard_modifiers#3 keyboard_modifiers#11 ] 10.59: zp ZP_BYTE:6 [ render_screen_render#28 render_screen_render#62 ] 8.33: zp ZP_BYTE:86 [ irq_raster_next#13 irq_raster_next#2 irq_raster_next#1 ] 4.73: zp ZP_BYTE:2 [ render_screen_show#16 render_screen_show#13 ] 4.25: zp ZP_BYTE:3 [ render_screen_render#16 render_screen_render#11 ] 4: zp ZP_BYTE:169 [ irq_cnt#1 ] 0.74: zp ZP_BYTE:90 [ irq_sprite_ypos#0 ] 0.57: zp ZP_BYTE:88 [ render_screen_showing#0 ] 0.25: zp ZP_BYTE:91 [ irq_sprite_ptr#0 ] 0.2: zp ZP_BYTE:92 [ irq_cnt#0 ] 0.18: zp ZP_BYTE:89 [ irq_raster_next#0 ] +Uplift Scope [render_current] 2,534.25: zp ZP_BYTE:13 [ render_current::i#4 render_current::i#3 render_current::i#8 render_current::i#10 render_current::i#1 ] 1,787.5: zp ZP_BYTE:15 [ render_current::c#2 render_current::c#1 ] 1,553.5: zp ZP_BYTE:14 [ render_current::xpos#2 render_current::xpos#0 render_current::xpos#1 ] 1,001: zp ZP_BYTE:110 [ render_current::current_cell#0 ] 202: zp ZP_BYTE:107 [ render_current::$5 ] 162.72: zp ZP_BYTE:12 [ render_current::l#4 render_current::l#1 ] 101.16: zp ZP_BYTE:11 [ render_current::ypos2#2 render_current::ypos2#0 render_current::ypos2#1 ] 100.18: zp ZP_WORD:108 [ render_current::screen_line#0 ] +Uplift Scope [render_playfield] 2,254.5: zp ZP_WORD:19 [ render_playfield::screen_line#2 render_playfield::screen_line#0 render_playfield::screen_line#1 ] 2,002: zp ZP_BYTE:21 [ render_playfield::c#2 render_playfield::c#1 ] 1,505.77: zp ZP_BYTE:18 [ render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 ] 202: zp ZP_BYTE:111 [ render_playfield::$2 ] 202: zp ZP_BYTE:112 [ render_playfield::$3 ] 181.8: zp ZP_BYTE:17 [ render_playfield::l#2 render_playfield::l#1 ] +Uplift Scope [play_spawn_current] 2,337: zp ZP_BYTE:46 [ play_spawn_current::piece_idx#2 play_spawn_current::piece_idx#1 ] 2,002: zp ZP_BYTE:133 [ play_spawn_current::$1 ] 0.13: zp ZP_BYTE:131 [ play_spawn_current::$3 ] +Uplift Scope [keyboard_matrix_read] 2,002: zp ZP_BYTE:144 [ keyboard_matrix_read::return#2 ] 1,003: zp ZP_BYTE:143 [ keyboard_matrix_read::rowid#0 ] 334.33: zp ZP_BYTE:159 [ keyboard_matrix_read::return#0 ] +Uplift Scope [sid_rnd] 2,002: zp ZP_BYTE:132 [ sid_rnd::return#2 ] 334.33: zp ZP_BYTE:134 [ sid_rnd::return#0 ] +Uplift Scope [render_screen_original] 721.31: zp ZP_WORD:81 [ 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 ] 699.79: zp ZP_BYTE:85 [ 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 ] 501.65: zp ZP_WORD:83 [ 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 ] 162.87: zp ZP_WORD:77 [ render_screen_original::oscr#2 render_screen_original::oscr#4 render_screen_original::oscr#1 ] 99.08: zp ZP_WORD:79 [ render_screen_original::ocols#2 render_screen_original::ocols#4 render_screen_original::ocols#1 ] 17.42: zp ZP_BYTE:76 [ render_screen_original::y#6 render_screen_original::y#1 ] +Uplift Scope [main] 202: zp ZP_BYTE:97 [ main::$12 ] 202: zp ZP_BYTE:101 [ main::$13 ] 202: zp ZP_BYTE:105 [ main::$14 ] 202: zp ZP_BYTE:106 [ main::render#3 ] 40.4: zp ZP_BYTE:98 [ main::render#1 ] 40.4: zp ZP_BYTE:102 [ main::render#2 ] 36.73: zp ZP_BYTE:94 [ main::key_event#0 ] +Uplift Scope [play_move_down] 202: zp ZP_BYTE:96 [ play_move_down::return#3 ] 51.5: zp ZP_BYTE:95 [ play_move_down::key_event#0 ] 33.67: zp ZP_BYTE:45 [ play_move_down::return#2 ] 20: zp ZP_BYTE:36 [ play_move_down::movedown#6 play_move_down::movedown#3 play_move_down::movedown#7 play_move_down::movedown#2 play_move_down::movedown#10 ] 4: zp ZP_BYTE:128 [ play_move_down::$2 ] 4: zp ZP_BYTE:130 [ play_move_down::$12 ] +Uplift Scope [play_move_rotate] 202: zp ZP_BYTE:104 [ play_move_rotate::return#4 ] 52.5: zp ZP_BYTE:103 [ play_move_rotate::key_event#0 ] 33.67: zp ZP_BYTE:22 [ play_move_rotate::return#1 ] 8.89: zp ZP_BYTE:23 [ play_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#2 ] 4: zp ZP_BYTE:113 [ play_move_rotate::$2 ] 4: zp ZP_BYTE:115 [ play_move_rotate::$6 ] 4: zp ZP_BYTE:116 [ play_move_rotate::$4 ] +Uplift Scope [play_move_leftright] 202: zp ZP_BYTE:100 [ play_move_leftright::return#4 ] 52.5: zp ZP_BYTE:99 [ play_move_leftright::key_event#0 ] 33.67: zp ZP_BYTE:35 [ play_move_leftright::return#1 ] 4: zp ZP_BYTE:124 [ play_move_leftright::$4 ] 4: zp ZP_BYTE:126 [ play_move_leftright::$8 ] +Uplift Scope [keyboard_event_get] 202: zp ZP_BYTE:93 [ keyboard_event_get::return#3 ] 38.33: zp ZP_BYTE:58 [ keyboard_event_get::return#2 keyboard_event_get::return#1 ] +Uplift Scope [render_init] 22.79: zp ZP_BYTE:71 [ render_init::i#2 render_init::i#1 ] 22: zp ZP_BYTE:163 [ render_init::$13 ] 22: zp ZP_BYTE:164 [ render_init::$14 ] 12.83: zp ZP_WORD:74 [ render_init::li_2#2 render_init::li_2#1 ] 12.1: zp ZP_WORD:72 [ render_init::li_1#2 render_init::li_1#1 ] +Uplift Scope [play_init] 23.83: zp ZP_BYTE:65 [ play_init::j#2 play_init::j#1 ] 22: zp ZP_BYTE:161 [ play_init::$1 ] 13.93: zp ZP_BYTE:68 [ play_init::idx#2 play_init::idx#1 ] 13.75: zp ZP_WORD:66 [ play_init::pli#2 play_init::pli#1 ] +Uplift Scope [sprites_init] 25.3: zp ZP_BYTE:69 [ sprites_init::s#2 sprites_init::s#1 ] 22: zp ZP_BYTE:162 [ sprites_init::s2#0 ] 15.58: zp ZP_BYTE:70 [ sprites_init::xpos#2 sprites_init::xpos#1 ] +Uplift Scope [sprites_irq] 12.67: zp ZP_BYTE:87 [ sprites_irq::raster_next#2 sprites_irq::raster_next#1 sprites_irq::raster_next#0 ] 4: zp ZP_BYTE:168 [ sprites_irq::ptr#4 ] 4: zp ZP_BYTE:172 [ sprites_irq::$4 ] 4: zp ZP_BYTE:177 [ sprites_irq::ptr#2 ] 2.67: zp ZP_BYTE:167 [ sprites_irq::ptr#3 ] 2.67: zp ZP_BYTE:176 [ sprites_irq::ptr#1 ] 2.5: zp ZP_BYTE:165 [ sprites_irq::ypos#0 ] 2.5: zp ZP_BYTE:166 [ sprites_irq::ptr#0 ] +Uplift Scope [keyboard_event_pressed] 4: zp ZP_BYTE:127 [ keyboard_event_pressed::return#12 ] 4: zp ZP_BYTE:139 [ keyboard_event_pressed::$0 ] 4: zp ZP_BYTE:141 [ keyboard_event_pressed::$1 ] 4: zp ZP_BYTE:146 [ keyboard_event_pressed::return#0 ] 4: zp ZP_BYTE:148 [ keyboard_event_pressed::return#1 ] 4: zp ZP_BYTE:150 [ keyboard_event_pressed::return#2 ] 4: zp ZP_BYTE:152 [ keyboard_event_pressed::return#10 ] 2: zp ZP_BYTE:140 [ keyboard_event_pressed::row_bits#0 ] 1.71: zp ZP_BYTE:142 [ keyboard_event_pressed::return#11 ] 1.33: zp ZP_BYTE:57 [ keyboard_event_pressed::keycode#5 ] Uplift Scope [render_show] 2: zp ZP_BYTE:64 [ render_show::d018val#3 ] Uplift Scope [sid_rnd_init] Uplift Scope [render_screen_swap] Uplift Scope [sprites_irq_init] -Uplifting [keyboard_event_scan] best 4522196 combination reg byte a [ keyboard_event_scan::$3 ] reg byte a [ keyboard_event_scan::$4 ] reg byte a [ keyboard_event_scan::event_type#0 ] reg byte a [ keyboard_event_scan::$11 ] zp ZP_BYTE:61 [ keyboard_event_scan::col#2 keyboard_event_scan::col#1 ] zp ZP_BYTE:62 [ keyboard_event_scan::keycode#10 keyboard_event_scan::keycode#11 keyboard_event_scan::keycode#14 keyboard_event_scan::keycode#1 keyboard_event_scan::keycode#15 ] zp ZP_BYTE:59 [ keyboard_event_scan::row#2 keyboard_event_scan::row#1 ] zp ZP_BYTE:147 [ keyboard_event_scan::row_scan#0 ] zp ZP_BYTE:149 [ keyboard_event_scan::$14 ] zp ZP_BYTE:151 [ keyboard_event_scan::$18 ] zp ZP_BYTE:153 [ keyboard_event_scan::$22 ] zp ZP_BYTE:155 [ keyboard_event_scan::$26 ] +Uplifting [keyboard_event_scan] best 4515440 combination reg byte a [ keyboard_event_scan::$3 ] reg byte a [ keyboard_event_scan::$4 ] reg byte a [ keyboard_event_scan::event_type#0 ] reg byte a [ keyboard_event_scan::$11 ] zp ZP_BYTE:61 [ keyboard_event_scan::col#2 keyboard_event_scan::col#1 ] zp ZP_BYTE:62 [ keyboard_event_scan::keycode#10 keyboard_event_scan::keycode#11 keyboard_event_scan::keycode#14 keyboard_event_scan::keycode#1 keyboard_event_scan::keycode#15 ] zp ZP_BYTE:59 [ keyboard_event_scan::row#2 keyboard_event_scan::row#1 ] zp ZP_BYTE:145 [ keyboard_event_scan::row_scan#0 ] zp ZP_BYTE:147 [ keyboard_event_scan::$14 ] zp ZP_BYTE:149 [ keyboard_event_scan::$18 ] zp ZP_BYTE:151 [ keyboard_event_scan::$22 ] zp ZP_BYTE:153 [ keyboard_event_scan::$26 ] Limited combination testing to 100 combinations of 5308416 possible. -Uplifting [play_collision] best 4372196 combination zp ZP_BYTE:31 [ play_collision::i#2 play_collision::i#3 play_collision::i#11 play_collision::i#13 ] reg byte a [ play_collision::$7 ] zp ZP_BYTE:32 [ play_collision::col#2 play_collision::col#9 play_collision::col#1 ] reg byte x [ play_collision::c#2 play_collision::c#1 ] zp ZP_BYTE:123 [ play_collision::i#1 ] zp ZP_BYTE:29 [ play_collision::ypos2#2 play_collision::ypos2#0 play_collision::ypos2#1 ] zp ZP_BYTE:30 [ play_collision::l#6 play_collision::l#1 ] zp ZP_WORD:121 [ play_collision::playfield_line#0 ] zp ZP_WORD:119 [ play_collision::piece_gfx#0 ] zp ZP_BYTE:28 [ play_collision::xpos#5 play_collision::xpos#0 play_collision::xpos#1 play_collision::xpos#2 play_collision::xpos#3 ] zp ZP_BYTE:26 [ play_collision::orientation#4 play_collision::orientation#0 play_collision::orientation#1 play_collision::orientation#2 play_collision::orientation#3 ] zp ZP_BYTE:27 [ play_collision::ypos#4 play_collision::ypos#0 play_collision::ypos#1 play_collision::ypos#2 play_collision::ypos#3 ] zp ZP_BYTE:116 [ play_collision::return#13 ] zp ZP_BYTE:125 [ play_collision::return#12 ] zp ZP_BYTE:127 [ play_collision::return#1 ] zp ZP_BYTE:131 [ play_collision::return#0 ] zp ZP_BYTE:34 [ play_collision::return#14 ] +Uplifting [play_collision] best 4365440 combination zp ZP_BYTE:31 [ play_collision::i#2 play_collision::i#3 play_collision::i#11 play_collision::i#13 ] reg byte a [ play_collision::$7 ] zp ZP_BYTE:32 [ play_collision::col#2 play_collision::col#9 play_collision::col#1 ] reg byte x [ play_collision::c#2 play_collision::c#1 ] zp ZP_BYTE:121 [ play_collision::i#1 ] zp ZP_BYTE:29 [ play_collision::ypos2#2 play_collision::ypos2#0 play_collision::ypos2#1 ] zp ZP_BYTE:30 [ play_collision::l#6 play_collision::l#1 ] zp ZP_WORD:119 [ play_collision::playfield_line#0 ] zp ZP_WORD:117 [ play_collision::piece_gfx#0 ] zp ZP_BYTE:28 [ play_collision::xpos#5 play_collision::xpos#0 play_collision::xpos#1 play_collision::xpos#2 play_collision::xpos#3 ] zp ZP_BYTE:26 [ play_collision::orientation#4 play_collision::orientation#0 play_collision::orientation#1 play_collision::orientation#2 play_collision::orientation#3 ] zp ZP_BYTE:27 [ play_collision::ypos#4 play_collision::ypos#0 play_collision::ypos#1 play_collision::ypos#2 play_collision::ypos#3 ] zp ZP_BYTE:114 [ play_collision::return#13 ] zp ZP_BYTE:123 [ play_collision::return#12 ] zp ZP_BYTE:125 [ play_collision::return#1 ] zp ZP_BYTE:129 [ play_collision::return#0 ] zp ZP_BYTE:34 [ play_collision::return#14 ] Limited combination testing to 100 combinations of 80621568 possible. -Uplifting [play_lock_current] best 4282196 combination zp ZP_BYTE:54 [ play_lock_current::i#2 play_lock_current::i#3 play_lock_current::i#7 play_lock_current::i#9 ] zp ZP_BYTE:55 [ play_lock_current::col#2 play_lock_current::col#0 play_lock_current::col#1 ] reg byte x [ play_lock_current::c#2 play_lock_current::c#1 ] zp ZP_BYTE:140 [ play_lock_current::i#1 ] zp ZP_BYTE:53 [ play_lock_current::l#6 play_lock_current::l#1 ] zp ZP_WORD:138 [ play_lock_current::playfield_line#0 ] zp ZP_BYTE:52 [ play_lock_current::ypos2#2 play_lock_current::ypos2#0 play_lock_current::ypos2#1 ] +Uplifting [play_lock_current] best 4275440 combination zp ZP_BYTE:54 [ play_lock_current::i#2 play_lock_current::i#3 play_lock_current::i#7 play_lock_current::i#9 ] zp ZP_BYTE:55 [ play_lock_current::col#2 play_lock_current::col#0 play_lock_current::col#1 ] reg byte x [ play_lock_current::c#2 play_lock_current::c#1 ] zp ZP_BYTE:138 [ play_lock_current::i#1 ] zp ZP_BYTE:53 [ play_lock_current::l#6 play_lock_current::l#1 ] zp ZP_WORD:136 [ play_lock_current::playfield_line#0 ] zp ZP_BYTE:52 [ play_lock_current::ypos2#2 play_lock_current::ypos2#0 play_lock_current::ypos2#1 ] Limited combination testing to 100 combinations of 729 possible. -Uplifting [play_remove_lines] best 4145196 combination reg byte y [ play_remove_lines::r#2 play_remove_lines::r#3 play_remove_lines::r#1 ] reg byte x [ play_remove_lines::w#6 play_remove_lines::w#4 play_remove_lines::w#12 play_remove_lines::w#11 play_remove_lines::w#1 play_remove_lines::w#2 play_remove_lines::w#3 ] zp ZP_BYTE:49 [ play_remove_lines::x#2 play_remove_lines::x#1 ] zp ZP_BYTE:50 [ play_remove_lines::full#4 play_remove_lines::full#2 ] zp ZP_BYTE:137 [ play_remove_lines::c#0 ] zp ZP_BYTE:47 [ play_remove_lines::y#8 play_remove_lines::y#1 ] +Uplifting [play_remove_lines] best 4138440 combination reg byte y [ play_remove_lines::r#2 play_remove_lines::r#3 play_remove_lines::r#1 ] reg byte x [ play_remove_lines::w#6 play_remove_lines::w#4 play_remove_lines::w#12 play_remove_lines::w#11 play_remove_lines::w#1 play_remove_lines::w#2 play_remove_lines::w#3 ] zp ZP_BYTE:49 [ play_remove_lines::x#2 play_remove_lines::x#1 ] zp ZP_BYTE:50 [ play_remove_lines::full#4 play_remove_lines::full#2 ] zp ZP_BYTE:135 [ play_remove_lines::c#0 ] zp ZP_BYTE:47 [ play_remove_lines::y#8 play_remove_lines::y#1 ] Limited combination testing to 100 combinations of 1728 possible. -Uplifting [] best 4144030 combination zp ZP_BYTE:63 [ keyboard_events_size#10 keyboard_events_size#29 keyboard_events_size#19 keyboard_events_size#16 keyboard_events_size#13 keyboard_events_size#4 keyboard_events_size#30 keyboard_events_size#2 keyboard_events_size#1 ] zp ZP_WORD:41 [ current_piece_gfx#26 current_piece_gfx#20 current_piece_gfx#16 current_piece_gfx#14 current_piece_gfx#3 current_piece_gfx#1 ] zp ZP_BYTE:44 [ current_piece_char#20 current_piece_char#15 current_piece_char#12 current_piece_char#1 ] reg byte x [ current_piece_char#63 current_piece_char#88 current_piece_char#89 ] zp ZP_WORD:8 [ current_piece_gfx#53 current_piece_gfx#100 current_piece_gfx#101 ] zp ZP_BYTE:43 [ current_xpos#33 current_xpos#10 current_xpos#23 current_xpos#19 current_xpos#4 current_xpos#1 current_xpos#2 ] reg byte x [ render_screen_render#19 render_screen_render#63 ] zp ZP_WORD:24 [ current_piece#12 current_piece#74 current_piece#75 current_piece#76 current_piece#77 ] zp ZP_BYTE:5 [ current_ypos#9 current_ypos#84 current_ypos#85 ] zp ZP_BYTE:156 [ keyboard_modifiers#5 ] zp ZP_BYTE:162 [ render_screen_showing#1 ] zp ZP_BYTE:176 [ irq_sprite_ypos#2 ] zp ZP_BYTE:177 [ irq_sprite_ptr#2 ] zp ZP_BYTE:179 [ irq_cnt#14 ] zp ZP_BYTE:180 [ irq_sprite_ypos#1 ] zp ZP_BYTE:181 [ irq_sprite_ptr#1 ] zp ZP_WORD:38 [ current_piece#20 current_piece#78 current_piece#16 current_piece#71 current_piece#10 ] zp ZP_BYTE:40 [ current_orientation#29 current_orientation#10 current_orientation#19 current_orientation#4 current_orientation#14 ] zp ZP_BYTE:37 [ current_ypos#29 current_ypos#21 current_ypos#18 current_ypos#13 current_ypos#0 ] zp ZP_BYTE:4 [ current_movedown_counter#12 current_movedown_counter#10 current_movedown_counter#1 ] zp ZP_BYTE:7 [ current_xpos#47 current_xpos#110 current_xpos#111 ] zp ZP_BYTE:60 [ keyboard_modifiers#13 keyboard_modifiers#4 keyboard_modifiers#12 keyboard_modifiers#3 keyboard_modifiers#11 ] zp ZP_BYTE:6 [ render_screen_render#28 render_screen_render#62 ] zp ZP_BYTE:88 [ irq_raster_next#13 irq_raster_next#2 irq_raster_next#1 ] zp ZP_BYTE:2 [ render_screen_show#16 render_screen_show#13 ] zp ZP_BYTE:3 [ render_screen_render#16 render_screen_render#11 ] zp ZP_BYTE:175 [ irq_cnt#1 ] zp ZP_BYTE:92 [ irq_sprite_ypos#0 ] zp ZP_BYTE:90 [ render_screen_showing#0 ] zp ZP_BYTE:93 [ irq_sprite_ptr#0 ] zp ZP_BYTE:94 [ irq_cnt#0 ] zp ZP_BYTE:91 [ irq_raster_next#0 ] +Uplifting [] best 4137274 combination zp ZP_BYTE:63 [ keyboard_events_size#10 keyboard_events_size#29 keyboard_events_size#19 keyboard_events_size#16 keyboard_events_size#13 keyboard_events_size#4 keyboard_events_size#30 keyboard_events_size#2 keyboard_events_size#1 ] zp ZP_WORD:41 [ current_piece_gfx#26 current_piece_gfx#20 current_piece_gfx#16 current_piece_gfx#14 current_piece_gfx#3 current_piece_gfx#1 ] zp ZP_BYTE:44 [ current_piece_char#20 current_piece_char#15 current_piece_char#12 current_piece_char#1 ] reg byte x [ current_piece_char#63 current_piece_char#88 current_piece_char#89 ] zp ZP_WORD:8 [ current_piece_gfx#53 current_piece_gfx#100 current_piece_gfx#101 ] zp ZP_BYTE:43 [ current_xpos#33 current_xpos#10 current_xpos#23 current_xpos#19 current_xpos#4 current_xpos#1 current_xpos#2 ] reg byte x [ render_screen_render#19 render_screen_render#63 ] zp ZP_WORD:24 [ current_piece#12 current_piece#74 current_piece#75 current_piece#76 current_piece#77 ] zp ZP_BYTE:5 [ current_ypos#9 current_ypos#84 current_ypos#85 ] zp ZP_BYTE:154 [ keyboard_modifiers#5 ] zp ZP_BYTE:160 [ render_screen_showing#1 ] zp ZP_BYTE:170 [ irq_sprite_ypos#2 ] zp ZP_BYTE:171 [ irq_sprite_ptr#2 ] zp ZP_BYTE:173 [ irq_cnt#14 ] zp ZP_BYTE:174 [ irq_sprite_ypos#1 ] zp ZP_BYTE:175 [ irq_sprite_ptr#1 ] zp ZP_WORD:38 [ current_piece#20 current_piece#78 current_piece#16 current_piece#71 current_piece#10 ] zp ZP_BYTE:40 [ current_orientation#29 current_orientation#10 current_orientation#19 current_orientation#4 current_orientation#14 ] zp ZP_BYTE:37 [ current_ypos#29 current_ypos#21 current_ypos#18 current_ypos#13 current_ypos#0 ] zp ZP_BYTE:4 [ current_movedown_counter#12 current_movedown_counter#10 current_movedown_counter#1 ] zp ZP_BYTE:7 [ current_xpos#47 current_xpos#110 current_xpos#111 ] zp ZP_BYTE:60 [ keyboard_modifiers#13 keyboard_modifiers#4 keyboard_modifiers#12 keyboard_modifiers#3 keyboard_modifiers#11 ] zp ZP_BYTE:6 [ render_screen_render#28 render_screen_render#62 ] zp ZP_BYTE:86 [ irq_raster_next#13 irq_raster_next#2 irq_raster_next#1 ] zp ZP_BYTE:2 [ render_screen_show#16 render_screen_show#13 ] zp ZP_BYTE:3 [ render_screen_render#16 render_screen_render#11 ] zp ZP_BYTE:169 [ irq_cnt#1 ] zp ZP_BYTE:90 [ irq_sprite_ypos#0 ] zp ZP_BYTE:88 [ render_screen_showing#0 ] zp ZP_BYTE:91 [ irq_sprite_ptr#0 ] zp ZP_BYTE:92 [ irq_cnt#0 ] zp ZP_BYTE:89 [ irq_raster_next#0 ] Limited combination testing to 100 combinations of 497664 possible. -Uplifting [render_current] best 4138030 combination zp ZP_BYTE:13 [ render_current::i#4 render_current::i#3 render_current::i#8 render_current::i#10 render_current::i#1 ] zp ZP_BYTE:15 [ render_current::c#2 render_current::c#1 ] zp ZP_BYTE:14 [ render_current::xpos#2 render_current::xpos#0 render_current::xpos#1 ] reg byte a [ render_current::current_cell#0 ] zp ZP_BYTE:109 [ render_current::$5 ] zp ZP_BYTE:12 [ render_current::l#4 render_current::l#1 ] zp ZP_BYTE:11 [ render_current::ypos2#2 render_current::ypos2#0 render_current::ypos2#1 ] zp ZP_WORD:110 [ render_current::screen_line#0 ] +Uplifting [render_current] best 4131274 combination zp ZP_BYTE:13 [ render_current::i#4 render_current::i#3 render_current::i#8 render_current::i#10 render_current::i#1 ] zp ZP_BYTE:15 [ render_current::c#2 render_current::c#1 ] zp ZP_BYTE:14 [ render_current::xpos#2 render_current::xpos#0 render_current::xpos#1 ] reg byte a [ render_current::current_cell#0 ] zp ZP_BYTE:107 [ render_current::$5 ] zp ZP_BYTE:12 [ render_current::l#4 render_current::l#1 ] zp ZP_BYTE:11 [ render_current::ypos2#2 render_current::ypos2#0 render_current::ypos2#1 ] zp ZP_WORD:108 [ render_current::screen_line#0 ] Limited combination testing to 100 combinations of 3888 possible. -Uplifting [render_playfield] best 4137430 combination zp ZP_WORD:19 [ render_playfield::screen_line#2 render_playfield::screen_line#0 render_playfield::screen_line#1 ] zp ZP_BYTE:21 [ render_playfield::c#2 render_playfield::c#1 ] zp ZP_BYTE:18 [ render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 ] reg byte a [ render_playfield::$2 ] reg byte a [ render_playfield::$3 ] zp ZP_BYTE:17 [ render_playfield::l#2 render_playfield::l#1 ] +Uplifting [render_playfield] best 4130674 combination zp ZP_WORD:19 [ render_playfield::screen_line#2 render_playfield::screen_line#0 render_playfield::screen_line#1 ] zp ZP_BYTE:21 [ render_playfield::c#2 render_playfield::c#1 ] zp ZP_BYTE:18 [ render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 ] reg byte a [ render_playfield::$2 ] reg byte a [ render_playfield::$3 ] zp ZP_BYTE:17 [ render_playfield::l#2 render_playfield::l#1 ] Limited combination testing to 100 combinations of 128 possible. -Uplifting [play_spawn_current] best 4124420 combination reg byte x [ play_spawn_current::piece_idx#2 play_spawn_current::piece_idx#1 ] reg byte a [ play_spawn_current::$1 ] zp ZP_BYTE:133 [ play_spawn_current::$3 ] -Uplifting [keyboard_matrix_read] best 4112414 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 4108514 combination 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 ZP_WORD:83 [ 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 ] zp ZP_WORD:85 [ 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 ZP_WORD:77 [ render_screen_original::oscr#2 render_screen_original::oscr#4 render_screen_original::oscr#1 ] reg byte a [ render_screen_original::$8 ] reg byte a [ render_screen_original::$10 ] zp ZP_WORD:79 [ render_screen_original::oext#2 render_screen_original::oext#4 render_screen_original::oext#1 ] reg byte a [ render_screen_original::ext#0 ] zp ZP_WORD:81 [ render_screen_original::ocols#2 render_screen_original::ocols#4 render_screen_original::ocols#1 ] zp ZP_BYTE:167 [ render_screen_original::c#0 ] zp ZP_BYTE:76 [ render_screen_original::y#6 render_screen_original::y#1 ] -Limited combination testing to 100 combinations of 512 possible. -Uplifting [sid_rnd] best 4099511 combination reg byte a [ sid_rnd::return#2 ] reg byte a [ sid_rnd::return#0 ] -Uplifting [main] best 4097111 combination reg byte a [ main::$12 ] reg byte a [ main::$13 ] reg byte a [ main::$14 ] reg byte a [ main::render#3 ] zp ZP_BYTE:100 [ main::render#1 ] zp ZP_BYTE:104 [ main::render#2 ] zp ZP_BYTE:96 [ main::key_event#0 ] +Uplifting [play_spawn_current] best 4117664 combination reg byte x [ play_spawn_current::piece_idx#2 play_spawn_current::piece_idx#1 ] reg byte a [ play_spawn_current::$1 ] zp ZP_BYTE:131 [ play_spawn_current::$3 ] +Uplifting [keyboard_matrix_read] best 4105658 combination reg byte a [ keyboard_matrix_read::return#2 ] reg byte x [ keyboard_matrix_read::rowid#0 ] reg byte a [ keyboard_matrix_read::return#0 ] +Uplifting [sid_rnd] best 4096655 combination reg byte a [ sid_rnd::return#2 ] reg byte a [ sid_rnd::return#0 ] +Uplifting [render_screen_original] best 4094555 combination zp ZP_WORD:81 [ 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 ZP_WORD:83 [ 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 ZP_WORD:77 [ render_screen_original::oscr#2 render_screen_original::oscr#4 render_screen_original::oscr#1 ] zp ZP_WORD:79 [ render_screen_original::ocols#2 render_screen_original::ocols#4 render_screen_original::ocols#1 ] zp ZP_BYTE:76 [ render_screen_original::y#6 render_screen_original::y#1 ] +Uplifting [main] best 4092155 combination reg byte a [ main::$12 ] reg byte a [ main::$13 ] reg byte a [ main::$14 ] reg byte a [ main::render#3 ] zp ZP_BYTE:98 [ main::render#1 ] zp ZP_BYTE:102 [ main::render#2 ] zp ZP_BYTE:94 [ main::key_event#0 ] Limited combination testing to 100 combinations of 6912 possible. -Uplifting [play_move_down] best 4096102 combination reg byte a [ play_move_down::return#3 ] reg byte a [ play_move_down::key_event#0 ] reg byte x [ play_move_down::return#2 ] zp ZP_BYTE:36 [ play_move_down::movedown#6 play_move_down::movedown#3 play_move_down::movedown#7 play_move_down::movedown#2 play_move_down::movedown#10 ] zp ZP_BYTE:130 [ play_move_down::$2 ] zp ZP_BYTE:132 [ play_move_down::$12 ] +Uplifting [play_move_down] best 4091146 combination reg byte a [ play_move_down::return#3 ] reg byte a [ play_move_down::key_event#0 ] reg byte x [ play_move_down::return#2 ] zp ZP_BYTE:36 [ play_move_down::movedown#6 play_move_down::movedown#3 play_move_down::movedown#7 play_move_down::movedown#2 play_move_down::movedown#10 ] zp ZP_BYTE:128 [ play_move_down::$2 ] zp ZP_BYTE:130 [ play_move_down::$12 ] Limited combination testing to 100 combinations of 3072 possible. -Uplifting [play_move_rotate] best 4094890 combination reg byte a [ play_move_rotate::return#4 ] reg byte a [ play_move_rotate::key_event#0 ] reg byte a [ play_move_rotate::return#1 ] zp ZP_BYTE:23 [ play_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#2 ] zp ZP_BYTE:115 [ play_move_rotate::$2 ] zp ZP_BYTE:117 [ play_move_rotate::$6 ] zp ZP_BYTE:118 [ play_move_rotate::$4 ] +Uplifting [play_move_rotate] best 4089934 combination reg byte a [ play_move_rotate::return#4 ] reg byte a [ play_move_rotate::key_event#0 ] reg byte a [ play_move_rotate::return#1 ] zp ZP_BYTE:23 [ play_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#2 ] zp ZP_BYTE:113 [ play_move_rotate::$2 ] zp ZP_BYTE:115 [ play_move_rotate::$6 ] zp ZP_BYTE:116 [ play_move_rotate::$4 ] Limited combination testing to 100 combinations of 12288 possible. -Uplifting [play_move_leftright] best 4093672 combination reg byte a [ play_move_leftright::return#4 ] reg byte a [ play_move_leftright::key_event#0 ] reg byte a [ play_move_leftright::return#1 ] reg byte a [ play_move_leftright::$4 ] zp ZP_BYTE:128 [ play_move_leftright::$8 ] +Uplifting [play_move_leftright] best 4088716 combination reg byte a [ play_move_leftright::return#4 ] reg byte a [ play_move_leftright::key_event#0 ] reg byte a [ play_move_leftright::return#1 ] reg byte a [ play_move_leftright::$4 ] zp ZP_BYTE:126 [ play_move_leftright::$8 ] Limited combination testing to 100 combinations of 1024 possible. -Uplifting [keyboard_event_get] best 4092766 combination reg byte a [ keyboard_event_get::return#3 ] reg byte a [ keyboard_event_get::return#2 keyboard_event_get::return#1 ] -Uplifting [render_init] best 4092576 combination reg byte x [ render_init::i#2 render_init::i#1 ] reg byte a [ render_init::$13 ] reg byte a [ render_init::$14 ] zp ZP_WORD:74 [ render_init::li_2#2 render_init::li_2#1 ] zp ZP_WORD:72 [ render_init::li_1#2 render_init::li_1#1 ] -Uplifting [play_init] best 4092406 combination reg byte x [ play_init::j#2 play_init::j#1 ] reg byte a [ play_init::$1 ] zp ZP_BYTE:68 [ play_init::idx#2 play_init::idx#1 ] zp ZP_WORD:66 [ play_init::pli#2 play_init::pli#1 ] -Uplifting [sprites_init] best 4092236 combination reg byte x [ sprites_init::s#2 sprites_init::s#1 ] reg byte a [ sprites_init::s2#0 ] zp ZP_BYTE:70 [ sprites_init::xpos#2 sprites_init::xpos#1 ] -Uplifting [sprites_irq] best 4092210 combination reg byte x [ sprites_irq::raster_next#2 sprites_irq::raster_next#1 sprites_irq::raster_next#0 ] reg byte x [ sprites_irq::ptr#4 ] reg byte a [ sprites_irq::$4 ] reg byte a [ sprites_irq::ptr#2 ] zp ZP_BYTE:173 [ sprites_irq::ptr#3 ] zp ZP_BYTE:182 [ sprites_irq::ptr#1 ] zp ZP_BYTE:171 [ sprites_irq::ypos#0 ] zp ZP_BYTE:172 [ sprites_irq::ptr#0 ] +Uplifting [keyboard_event_get] best 4087810 combination reg byte a [ keyboard_event_get::return#3 ] reg byte a [ keyboard_event_get::return#2 keyboard_event_get::return#1 ] +Uplifting [render_init] best 4087620 combination reg byte x [ render_init::i#2 render_init::i#1 ] reg byte a [ render_init::$13 ] reg byte a [ render_init::$14 ] zp ZP_WORD:74 [ render_init::li_2#2 render_init::li_2#1 ] zp ZP_WORD:72 [ render_init::li_1#2 render_init::li_1#1 ] +Uplifting [play_init] best 4087450 combination reg byte x [ play_init::j#2 play_init::j#1 ] reg byte a [ play_init::$1 ] zp ZP_BYTE:68 [ play_init::idx#2 play_init::idx#1 ] zp ZP_WORD:66 [ play_init::pli#2 play_init::pli#1 ] +Uplifting [sprites_init] best 4087280 combination reg byte x [ sprites_init::s#2 sprites_init::s#1 ] reg byte a [ sprites_init::s2#0 ] zp ZP_BYTE:70 [ sprites_init::xpos#2 sprites_init::xpos#1 ] +Uplifting [sprites_irq] best 4087254 combination reg byte x [ sprites_irq::raster_next#2 sprites_irq::raster_next#1 sprites_irq::raster_next#0 ] reg byte x [ sprites_irq::ptr#4 ] reg byte a [ sprites_irq::$4 ] reg byte a [ sprites_irq::ptr#2 ] zp ZP_BYTE:167 [ sprites_irq::ptr#3 ] zp ZP_BYTE:176 [ sprites_irq::ptr#1 ] zp ZP_BYTE:165 [ sprites_irq::ypos#0 ] zp ZP_BYTE:166 [ sprites_irq::ptr#0 ] Limited combination testing to 100 combinations of 36864 possible. -Uplifting [keyboard_event_pressed] best 4092190 combination reg byte a [ keyboard_event_pressed::return#12 ] reg byte a [ keyboard_event_pressed::$0 ] reg byte a [ keyboard_event_pressed::$1 ] reg byte a [ keyboard_event_pressed::return#0 ] zp ZP_BYTE:150 [ keyboard_event_pressed::return#1 ] zp ZP_BYTE:152 [ keyboard_event_pressed::return#2 ] zp ZP_BYTE:154 [ keyboard_event_pressed::return#10 ] zp ZP_BYTE:142 [ keyboard_event_pressed::row_bits#0 ] zp ZP_BYTE:144 [ keyboard_event_pressed::return#11 ] zp ZP_BYTE:57 [ keyboard_event_pressed::keycode#5 ] +Uplifting [keyboard_event_pressed] best 4087234 combination reg byte a [ keyboard_event_pressed::return#12 ] reg byte a [ keyboard_event_pressed::$0 ] reg byte a [ keyboard_event_pressed::$1 ] reg byte a [ keyboard_event_pressed::return#0 ] zp ZP_BYTE:148 [ keyboard_event_pressed::return#1 ] zp ZP_BYTE:150 [ keyboard_event_pressed::return#2 ] zp ZP_BYTE:152 [ keyboard_event_pressed::return#10 ] zp ZP_BYTE:140 [ keyboard_event_pressed::row_bits#0 ] zp ZP_BYTE:142 [ keyboard_event_pressed::return#11 ] zp ZP_BYTE:57 [ keyboard_event_pressed::keycode#5 ] Limited combination testing to 100 combinations of 589824 possible. -Uplifting [render_show] best 4092181 combination reg byte a [ render_show::d018val#3 ] -Uplifting [sid_rnd_init] best 4092181 combination -Uplifting [render_screen_swap] best 4092181 combination -Uplifting [sprites_irq_init] best 4092181 combination +Uplifting [render_show] best 4087225 combination reg byte a [ render_show::d018val#3 ] +Uplifting [sid_rnd_init] best 4087225 combination +Uplifting [render_screen_swap] best 4087225 combination +Uplifting [sprites_irq_init] best 4087225 combination Attempting to uplift remaining variables inzp ZP_BYTE:63 [ keyboard_events_size#10 keyboard_events_size#29 keyboard_events_size#19 keyboard_events_size#16 keyboard_events_size#13 keyboard_events_size#4 keyboard_events_size#30 keyboard_events_size#2 keyboard_events_size#1 ] -Uplifting [] best 4092181 combination zp ZP_BYTE:63 [ keyboard_events_size#10 keyboard_events_size#29 keyboard_events_size#19 keyboard_events_size#16 keyboard_events_size#13 keyboard_events_size#4 keyboard_events_size#30 keyboard_events_size#2 keyboard_events_size#1 ] +Uplifting [] best 4087225 combination zp ZP_BYTE:63 [ keyboard_events_size#10 keyboard_events_size#29 keyboard_events_size#19 keyboard_events_size#16 keyboard_events_size#13 keyboard_events_size#4 keyboard_events_size#30 keyboard_events_size#2 keyboard_events_size#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:31 [ play_collision::i#2 play_collision::i#3 play_collision::i#11 play_collision::i#13 ] -Uplifting [play_collision] best 4092181 combination zp ZP_BYTE:31 [ play_collision::i#2 play_collision::i#3 play_collision::i#11 play_collision::i#13 ] +Uplifting [play_collision] best 4087225 combination zp ZP_BYTE:31 [ play_collision::i#2 play_collision::i#3 play_collision::i#11 play_collision::i#13 ] Attempting to uplift remaining variables inzp ZP_BYTE:54 [ 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 4092181 combination zp ZP_BYTE:54 [ 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 4087225 combination zp ZP_BYTE:54 [ 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 ZP_BYTE:61 [ keyboard_event_scan::col#2 keyboard_event_scan::col#1 ] -Uplifting [keyboard_event_scan] best 3942181 combination reg byte x [ keyboard_event_scan::col#2 keyboard_event_scan::col#1 ] +Uplifting [keyboard_event_scan] best 3937225 combination reg byte x [ keyboard_event_scan::col#2 keyboard_event_scan::col#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:49 [ play_remove_lines::x#2 play_remove_lines::x#1 ] -Uplifting [play_remove_lines] best 3942181 combination zp ZP_BYTE:49 [ play_remove_lines::x#2 play_remove_lines::x#1 ] +Uplifting [play_remove_lines] best 3937225 combination zp ZP_BYTE:49 [ play_remove_lines::x#2 play_remove_lines::x#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:55 [ play_lock_current::col#2 play_lock_current::col#0 play_lock_current::col#1 ] -Uplifting [play_lock_current] best 3942181 combination zp ZP_BYTE:55 [ play_lock_current::col#2 play_lock_current::col#0 play_lock_current::col#1 ] +Uplifting [play_lock_current] best 3937225 combination zp ZP_BYTE:55 [ play_lock_current::col#2 play_lock_current::col#0 play_lock_current::col#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:32 [ play_collision::col#2 play_collision::col#9 play_collision::col#1 ] -Uplifting [play_collision] best 3942181 combination zp ZP_BYTE:32 [ play_collision::col#2 play_collision::col#9 play_collision::col#1 ] +Uplifting [play_collision] best 3937225 combination zp ZP_BYTE:32 [ play_collision::col#2 play_collision::col#9 play_collision::col#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:62 [ keyboard_event_scan::keycode#10 keyboard_event_scan::keycode#11 keyboard_event_scan::keycode#14 keyboard_event_scan::keycode#1 keyboard_event_scan::keycode#15 ] -Uplifting [keyboard_event_scan] best 3942181 combination zp ZP_BYTE:62 [ keyboard_event_scan::keycode#10 keyboard_event_scan::keycode#11 keyboard_event_scan::keycode#14 keyboard_event_scan::keycode#1 keyboard_event_scan::keycode#15 ] +Uplifting [keyboard_event_scan] best 3937225 combination zp ZP_BYTE:62 [ keyboard_event_scan::keycode#10 keyboard_event_scan::keycode#11 keyboard_event_scan::keycode#14 keyboard_event_scan::keycode#1 keyboard_event_scan::keycode#15 ] Attempting to uplift remaining variables inzp ZP_BYTE:50 [ play_remove_lines::full#4 play_remove_lines::full#2 ] -Uplifting [play_remove_lines] best 3942181 combination zp ZP_BYTE:50 [ play_remove_lines::full#4 play_remove_lines::full#2 ] -Attempting to uplift remaining variables inzp ZP_BYTE:137 [ play_remove_lines::c#0 ] -Uplifting [play_remove_lines] best 3942181 combination zp ZP_BYTE:137 [ play_remove_lines::c#0 ] +Uplifting [play_remove_lines] best 3937225 combination zp ZP_BYTE:50 [ play_remove_lines::full#4 play_remove_lines::full#2 ] +Attempting to uplift remaining variables inzp ZP_BYTE:135 [ play_remove_lines::c#0 ] +Uplifting [play_remove_lines] best 3937225 combination zp ZP_BYTE:135 [ play_remove_lines::c#0 ] Attempting to uplift remaining variables inzp ZP_BYTE:13 [ render_current::i#4 render_current::i#3 render_current::i#8 render_current::i#10 render_current::i#1 ] -Uplifting [render_current] best 3942181 combination zp ZP_BYTE:13 [ render_current::i#4 render_current::i#3 render_current::i#8 render_current::i#10 render_current::i#1 ] -Attempting to uplift remaining variables inzp ZP_BYTE:140 [ play_lock_current::i#1 ] -Uplifting [play_lock_current] best 3942181 combination zp ZP_BYTE:140 [ play_lock_current::i#1 ] +Uplifting [render_current] best 3937225 combination zp ZP_BYTE:13 [ render_current::i#4 render_current::i#3 render_current::i#8 render_current::i#10 render_current::i#1 ] +Attempting to uplift remaining variables inzp ZP_BYTE:138 [ play_lock_current::i#1 ] +Uplifting [play_lock_current] best 3937225 combination zp ZP_BYTE:138 [ play_lock_current::i#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:59 [ keyboard_event_scan::row#2 keyboard_event_scan::row#1 ] -Uplifting [keyboard_event_scan] best 3942181 combination zp ZP_BYTE:59 [ keyboard_event_scan::row#2 keyboard_event_scan::row#1 ] +Uplifting [keyboard_event_scan] best 3937225 combination zp ZP_BYTE:59 [ keyboard_event_scan::row#2 keyboard_event_scan::row#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:21 [ render_playfield::c#2 render_playfield::c#1 ] -Uplifting [render_playfield] best 3942181 combination zp ZP_BYTE:21 [ render_playfield::c#2 render_playfield::c#1 ] +Uplifting [render_playfield] best 3937225 combination zp ZP_BYTE:21 [ render_playfield::c#2 render_playfield::c#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:15 [ render_current::c#2 render_current::c#1 ] -Uplifting [render_current] best 3942181 combination zp ZP_BYTE:15 [ render_current::c#2 render_current::c#1 ] +Uplifting [render_current] best 3937225 combination zp ZP_BYTE:15 [ render_current::c#2 render_current::c#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:47 [ play_remove_lines::y#8 play_remove_lines::y#1 ] -Uplifting [play_remove_lines] best 3942181 combination zp ZP_BYTE:47 [ play_remove_lines::y#8 play_remove_lines::y#1 ] -Attempting to uplift remaining variables inzp ZP_BYTE:123 [ play_collision::i#1 ] -Uplifting [play_collision] best 3942181 combination zp ZP_BYTE:123 [ play_collision::i#1 ] +Uplifting [play_remove_lines] best 3937225 combination zp ZP_BYTE:47 [ play_remove_lines::y#8 play_remove_lines::y#1 ] +Attempting to uplift remaining variables inzp ZP_BYTE:121 [ play_collision::i#1 ] +Uplifting [play_collision] best 3937225 combination zp ZP_BYTE:121 [ play_collision::i#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:14 [ render_current::xpos#2 render_current::xpos#0 render_current::xpos#1 ] -Uplifting [render_current] best 3942181 combination zp ZP_BYTE:14 [ render_current::xpos#2 render_current::xpos#0 render_current::xpos#1 ] +Uplifting [render_current] best 3937225 combination zp ZP_BYTE:14 [ render_current::xpos#2 render_current::xpos#0 render_current::xpos#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:18 [ render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 ] -Uplifting [render_playfield] best 3942181 combination zp ZP_BYTE:18 [ render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 ] +Uplifting [render_playfield] best 3937225 combination zp ZP_BYTE:18 [ render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:29 [ play_collision::ypos2#2 play_collision::ypos2#0 play_collision::ypos2#1 ] -Uplifting [play_collision] best 3942181 combination zp ZP_BYTE:29 [ play_collision::ypos2#2 play_collision::ypos2#0 play_collision::ypos2#1 ] -Attempting to uplift remaining variables inzp ZP_BYTE:147 [ keyboard_event_scan::row_scan#0 ] -Uplifting [keyboard_event_scan] best 3942181 combination zp ZP_BYTE:147 [ keyboard_event_scan::row_scan#0 ] +Uplifting [play_collision] best 3937225 combination zp ZP_BYTE:29 [ play_collision::ypos2#2 play_collision::ypos2#0 play_collision::ypos2#1 ] +Attempting to uplift remaining variables inzp ZP_BYTE:145 [ keyboard_event_scan::row_scan#0 ] +Uplifting [keyboard_event_scan] best 3937225 combination zp ZP_BYTE:145 [ keyboard_event_scan::row_scan#0 ] Attempting to uplift remaining variables inzp ZP_BYTE:53 [ play_lock_current::l#6 play_lock_current::l#1 ] -Uplifting [play_lock_current] best 3942181 combination zp ZP_BYTE:53 [ play_lock_current::l#6 play_lock_current::l#1 ] +Uplifting [play_lock_current] best 3937225 combination zp ZP_BYTE:53 [ play_lock_current::l#6 play_lock_current::l#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:30 [ play_collision::l#6 play_collision::l#1 ] -Uplifting [play_collision] best 3942181 combination zp ZP_BYTE:30 [ play_collision::l#6 play_collision::l#1 ] +Uplifting [play_collision] best 3937225 combination zp ZP_BYTE:30 [ play_collision::l#6 play_collision::l#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:52 [ play_lock_current::ypos2#2 play_lock_current::ypos2#0 play_lock_current::ypos2#1 ] -Uplifting [play_lock_current] best 3942181 combination zp ZP_BYTE:52 [ play_lock_current::ypos2#2 play_lock_current::ypos2#0 play_lock_current::ypos2#1 ] +Uplifting [play_lock_current] best 3937225 combination zp ZP_BYTE:52 [ play_lock_current::ypos2#2 play_lock_current::ypos2#0 play_lock_current::ypos2#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:44 [ current_piece_char#20 current_piece_char#15 current_piece_char#12 current_piece_char#1 ] -Uplifting [] best 3942181 combination zp ZP_BYTE:44 [ current_piece_char#20 current_piece_char#15 current_piece_char#12 current_piece_char#1 ] -Attempting to uplift remaining variables inzp ZP_BYTE:109 [ render_current::$5 ] -Uplifting [render_current] best 3941781 combination reg byte a [ render_current::$5 ] +Uplifting [] best 3937225 combination zp ZP_BYTE:44 [ current_piece_char#20 current_piece_char#15 current_piece_char#12 current_piece_char#1 ] +Attempting to uplift remaining variables inzp ZP_BYTE:107 [ render_current::$5 ] +Uplifting [render_current] best 3936825 combination reg byte a [ render_current::$5 ] Attempting to uplift remaining variables inzp ZP_BYTE:17 [ render_playfield::l#2 render_playfield::l#1 ] -Uplifting [render_playfield] best 3941781 combination zp ZP_BYTE:17 [ render_playfield::l#2 render_playfield::l#1 ] +Uplifting [render_playfield] best 3936825 combination zp ZP_BYTE:17 [ render_playfield::l#2 render_playfield::l#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:12 [ render_current::l#4 render_current::l#1 ] -Uplifting [render_current] best 3941781 combination zp ZP_BYTE:12 [ render_current::l#4 render_current::l#1 ] +Uplifting [render_current] best 3936825 combination zp ZP_BYTE:12 [ render_current::l#4 render_current::l#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:11 [ render_current::ypos2#2 render_current::ypos2#0 render_current::ypos2#1 ] -Uplifting [render_current] best 3941781 combination zp ZP_BYTE:11 [ render_current::ypos2#2 render_current::ypos2#0 render_current::ypos2#1 ] +Uplifting [render_current] best 3936825 combination zp ZP_BYTE:11 [ render_current::ypos2#2 render_current::ypos2#0 render_current::ypos2#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:28 [ play_collision::xpos#5 play_collision::xpos#0 play_collision::xpos#1 play_collision::xpos#2 play_collision::xpos#3 ] -Uplifting [play_collision] best 3941781 combination zp ZP_BYTE:28 [ play_collision::xpos#5 play_collision::xpos#0 play_collision::xpos#1 play_collision::xpos#2 play_collision::xpos#3 ] -Attempting to uplift remaining variables inzp ZP_BYTE:100 [ main::render#1 ] -Uplifting [main] best 3941781 combination zp ZP_BYTE:100 [ main::render#1 ] -Attempting to uplift remaining variables inzp ZP_BYTE:104 [ main::render#2 ] -Uplifting [main] best 3941781 combination zp ZP_BYTE:104 [ main::render#2 ] -Attempting to uplift remaining variables inzp ZP_BYTE:167 [ render_screen_original::c#0 ] -Uplifting [render_screen_original] best 3941781 combination zp ZP_BYTE:167 [ render_screen_original::c#0 ] +Uplifting [play_collision] best 3936825 combination zp ZP_BYTE:28 [ play_collision::xpos#5 play_collision::xpos#0 play_collision::xpos#1 play_collision::xpos#2 play_collision::xpos#3 ] +Attempting to uplift remaining variables inzp ZP_BYTE:98 [ main::render#1 ] +Uplifting [main] best 3936825 combination zp ZP_BYTE:98 [ main::render#1 ] +Attempting to uplift remaining variables inzp ZP_BYTE:102 [ main::render#2 ] +Uplifting [main] best 3936825 combination zp ZP_BYTE:102 [ main::render#2 ] Attempting to uplift remaining variables inzp ZP_BYTE:43 [ current_xpos#33 current_xpos#10 current_xpos#23 current_xpos#19 current_xpos#4 current_xpos#1 current_xpos#2 ] -Uplifting [] best 3941781 combination zp ZP_BYTE:43 [ current_xpos#33 current_xpos#10 current_xpos#23 current_xpos#19 current_xpos#4 current_xpos#1 current_xpos#2 ] -Attempting to uplift remaining variables inzp ZP_BYTE:96 [ main::key_event#0 ] -Uplifting [main] best 3941781 combination zp ZP_BYTE:96 [ main::key_event#0 ] +Uplifting [] best 3936825 combination zp ZP_BYTE:43 [ current_xpos#33 current_xpos#10 current_xpos#23 current_xpos#19 current_xpos#4 current_xpos#1 current_xpos#2 ] +Attempting to uplift remaining variables inzp ZP_BYTE:94 [ main::key_event#0 ] +Uplifting [main] best 3936825 combination zp ZP_BYTE:94 [ main::key_event#0 ] Attempting to uplift remaining variables inzp ZP_BYTE:5 [ current_ypos#9 current_ypos#84 current_ypos#85 ] -Uplifting [] best 3941747 combination reg byte y [ current_ypos#9 current_ypos#84 current_ypos#85 ] +Uplifting [] best 3936791 combination reg byte y [ current_ypos#9 current_ypos#84 current_ypos#85 ] Attempting to uplift remaining variables inzp ZP_BYTE:36 [ play_move_down::movedown#6 play_move_down::movedown#3 play_move_down::movedown#7 play_move_down::movedown#2 play_move_down::movedown#10 ] -Uplifting [play_move_down] best 3941732 combination reg byte x [ play_move_down::movedown#6 play_move_down::movedown#3 play_move_down::movedown#7 play_move_down::movedown#2 play_move_down::movedown#10 ] -Attempting to uplift remaining variables inzp ZP_BYTE:156 [ keyboard_modifiers#5 ] -Uplifting [] best 3941729 combination reg byte a [ keyboard_modifiers#5 ] -Attempting to uplift remaining variables inzp ZP_BYTE:162 [ render_screen_showing#1 ] -Uplifting [] best 3941729 combination zp ZP_BYTE:162 [ render_screen_showing#1 ] -Attempting to uplift remaining variables inzp ZP_BYTE:176 [ irq_sprite_ypos#2 ] -Uplifting [] best 3941729 combination zp ZP_BYTE:176 [ irq_sprite_ypos#2 ] -Attempting to uplift remaining variables inzp ZP_BYTE:177 [ irq_sprite_ptr#2 ] -Uplifting [] best 3941729 combination zp ZP_BYTE:177 [ irq_sprite_ptr#2 ] -Attempting to uplift remaining variables inzp ZP_BYTE:179 [ irq_cnt#14 ] -Uplifting [] best 3941729 combination zp ZP_BYTE:179 [ irq_cnt#14 ] -Attempting to uplift remaining variables inzp ZP_BYTE:180 [ irq_sprite_ypos#1 ] -Uplifting [] best 3941729 combination zp ZP_BYTE:180 [ irq_sprite_ypos#1 ] -Attempting to uplift remaining variables inzp ZP_BYTE:181 [ irq_sprite_ptr#1 ] -Uplifting [] best 3941729 combination zp ZP_BYTE:181 [ irq_sprite_ptr#1 ] +Uplifting [play_move_down] best 3936776 combination reg byte x [ play_move_down::movedown#6 play_move_down::movedown#3 play_move_down::movedown#7 play_move_down::movedown#2 play_move_down::movedown#10 ] +Attempting to uplift remaining variables inzp ZP_BYTE:154 [ keyboard_modifiers#5 ] +Uplifting [] best 3936773 combination reg byte a [ keyboard_modifiers#5 ] +Attempting to uplift remaining variables inzp ZP_BYTE:160 [ render_screen_showing#1 ] +Uplifting [] best 3936773 combination zp ZP_BYTE:160 [ render_screen_showing#1 ] +Attempting to uplift remaining variables inzp ZP_BYTE:170 [ irq_sprite_ypos#2 ] +Uplifting [] best 3936773 combination zp ZP_BYTE:170 [ irq_sprite_ypos#2 ] +Attempting to uplift remaining variables inzp ZP_BYTE:171 [ irq_sprite_ptr#2 ] +Uplifting [] best 3936773 combination zp ZP_BYTE:171 [ irq_sprite_ptr#2 ] +Attempting to uplift remaining variables inzp ZP_BYTE:173 [ irq_cnt#14 ] +Uplifting [] best 3936773 combination zp ZP_BYTE:173 [ irq_cnt#14 ] +Attempting to uplift remaining variables inzp ZP_BYTE:174 [ irq_sprite_ypos#1 ] +Uplifting [] best 3936773 combination zp ZP_BYTE:174 [ irq_sprite_ypos#1 ] +Attempting to uplift remaining variables inzp ZP_BYTE:175 [ irq_sprite_ptr#1 ] +Uplifting [] best 3936773 combination zp ZP_BYTE:175 [ irq_sprite_ptr#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:26 [ play_collision::orientation#4 play_collision::orientation#0 play_collision::orientation#1 play_collision::orientation#2 play_collision::orientation#3 ] -Uplifting [play_collision] best 3941716 combination reg byte x [ play_collision::orientation#4 play_collision::orientation#0 play_collision::orientation#1 play_collision::orientation#2 play_collision::orientation#3 ] +Uplifting [play_collision] best 3936760 combination reg byte x [ play_collision::orientation#4 play_collision::orientation#0 play_collision::orientation#1 play_collision::orientation#2 play_collision::orientation#3 ] Attempting to uplift remaining variables inzp ZP_BYTE:40 [ current_orientation#29 current_orientation#10 current_orientation#19 current_orientation#4 current_orientation#14 ] -Uplifting [] best 3941716 combination zp ZP_BYTE:40 [ current_orientation#29 current_orientation#10 current_orientation#19 current_orientation#4 current_orientation#14 ] +Uplifting [] best 3936760 combination zp ZP_BYTE:40 [ current_orientation#29 current_orientation#10 current_orientation#19 current_orientation#4 current_orientation#14 ] Attempting to uplift remaining variables inzp ZP_BYTE:76 [ render_screen_original::y#6 render_screen_original::y#1 ] -Uplifting [render_screen_original] best 3941716 combination zp ZP_BYTE:76 [ render_screen_original::y#6 render_screen_original::y#1 ] +Uplifting [render_screen_original] best 3936760 combination zp ZP_BYTE:76 [ render_screen_original::y#6 render_screen_original::y#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:37 [ current_ypos#29 current_ypos#21 current_ypos#18 current_ypos#13 current_ypos#0 ] -Uplifting [] best 3941716 combination zp ZP_BYTE:37 [ current_ypos#29 current_ypos#21 current_ypos#18 current_ypos#13 current_ypos#0 ] +Uplifting [] best 3936760 combination zp ZP_BYTE:37 [ current_ypos#29 current_ypos#21 current_ypos#18 current_ypos#13 current_ypos#0 ] Attempting to uplift remaining variables inzp ZP_BYTE:70 [ sprites_init::xpos#2 sprites_init::xpos#1 ] -Uplifting [sprites_init] best 3941716 combination zp ZP_BYTE:70 [ sprites_init::xpos#2 sprites_init::xpos#1 ] +Uplifting [sprites_init] best 3936760 combination zp ZP_BYTE:70 [ sprites_init::xpos#2 sprites_init::xpos#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:4 [ current_movedown_counter#12 current_movedown_counter#10 current_movedown_counter#1 ] -Uplifting [] best 3941716 combination zp ZP_BYTE:4 [ current_movedown_counter#12 current_movedown_counter#10 current_movedown_counter#1 ] +Uplifting [] best 3936760 combination zp ZP_BYTE:4 [ current_movedown_counter#12 current_movedown_counter#10 current_movedown_counter#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:68 [ play_init::idx#2 play_init::idx#1 ] -Uplifting [play_init] best 3941716 combination zp ZP_BYTE:68 [ play_init::idx#2 play_init::idx#1 ] +Uplifting [play_init] best 3936760 combination zp ZP_BYTE:68 [ play_init::idx#2 play_init::idx#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:7 [ current_xpos#47 current_xpos#110 current_xpos#111 ] -Uplifting [] best 3941716 combination zp ZP_BYTE:7 [ current_xpos#47 current_xpos#110 current_xpos#111 ] +Uplifting [] best 3936760 combination zp ZP_BYTE:7 [ current_xpos#47 current_xpos#110 current_xpos#111 ] Attempting to uplift remaining variables inzp ZP_BYTE:60 [ keyboard_modifiers#13 keyboard_modifiers#4 keyboard_modifiers#12 keyboard_modifiers#3 keyboard_modifiers#11 ] -Uplifting [] best 3941705 combination reg byte x [ keyboard_modifiers#13 keyboard_modifiers#4 keyboard_modifiers#12 keyboard_modifiers#3 keyboard_modifiers#11 ] +Uplifting [] best 3936749 combination reg byte x [ keyboard_modifiers#13 keyboard_modifiers#4 keyboard_modifiers#12 keyboard_modifiers#3 keyboard_modifiers#11 ] Attempting to uplift remaining variables inzp ZP_BYTE:6 [ render_screen_render#28 render_screen_render#62 ] -Uplifting [] best 3941705 combination zp ZP_BYTE:6 [ render_screen_render#28 render_screen_render#62 ] +Uplifting [] best 3936749 combination zp ZP_BYTE:6 [ render_screen_render#28 render_screen_render#62 ] Attempting to uplift remaining variables inzp ZP_BYTE:27 [ play_collision::ypos#4 play_collision::ypos#0 play_collision::ypos#1 play_collision::ypos#2 play_collision::ypos#3 ] -Uplifting [play_collision] best 3941692 combination reg byte y [ play_collision::ypos#4 play_collision::ypos#0 play_collision::ypos#1 play_collision::ypos#2 play_collision::ypos#3 ] +Uplifting [play_collision] best 3936736 combination reg byte y [ play_collision::ypos#4 play_collision::ypos#0 play_collision::ypos#1 play_collision::ypos#2 play_collision::ypos#3 ] Attempting to uplift remaining variables inzp ZP_BYTE:23 [ play_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#2 ] -Uplifting [play_move_rotate] best 3941692 combination zp ZP_BYTE:23 [ play_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#2 ] -Attempting to uplift remaining variables inzp ZP_BYTE:88 [ irq_raster_next#13 irq_raster_next#2 irq_raster_next#1 ] -Uplifting [] best 3941692 combination zp ZP_BYTE:88 [ irq_raster_next#13 irq_raster_next#2 irq_raster_next#1 ] +Uplifting [play_move_rotate] best 3936736 combination zp ZP_BYTE:23 [ play_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#2 ] +Attempting to uplift remaining variables inzp ZP_BYTE:86 [ irq_raster_next#13 irq_raster_next#2 irq_raster_next#1 ] +Uplifting [] best 3936736 combination zp ZP_BYTE:86 [ irq_raster_next#13 irq_raster_next#2 irq_raster_next#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:2 [ render_screen_show#16 render_screen_show#13 ] -Uplifting [] best 3941692 combination zp ZP_BYTE:2 [ render_screen_show#16 render_screen_show#13 ] +Uplifting [] best 3936736 combination zp ZP_BYTE:2 [ render_screen_show#16 render_screen_show#13 ] Attempting to uplift remaining variables inzp ZP_BYTE:3 [ render_screen_render#16 render_screen_render#11 ] -Uplifting [] best 3941692 combination zp ZP_BYTE:3 [ render_screen_render#16 render_screen_render#11 ] -Attempting to uplift remaining variables inzp ZP_BYTE:115 [ play_move_rotate::$2 ] -Uplifting [play_move_rotate] best 3941686 combination reg byte a [ play_move_rotate::$2 ] -Attempting to uplift remaining variables inzp ZP_BYTE:116 [ play_collision::return#13 ] -Uplifting [play_collision] best 3941680 combination reg byte a [ play_collision::return#13 ] -Attempting to uplift remaining variables inzp ZP_BYTE:117 [ play_move_rotate::$6 ] -Uplifting [play_move_rotate] best 3941674 combination reg byte a [ play_move_rotate::$6 ] -Attempting to uplift remaining variables inzp ZP_BYTE:118 [ play_move_rotate::$4 ] -Uplifting [play_move_rotate] best 3941668 combination reg byte a [ play_move_rotate::$4 ] -Attempting to uplift remaining variables inzp ZP_BYTE:125 [ play_collision::return#12 ] -Uplifting [play_collision] best 3941662 combination reg byte a [ play_collision::return#12 ] -Attempting to uplift remaining variables inzp ZP_BYTE:127 [ play_collision::return#1 ] -Uplifting [play_collision] best 3941656 combination reg byte a [ play_collision::return#1 ] -Attempting to uplift remaining variables inzp ZP_BYTE:128 [ play_move_leftright::$8 ] -Uplifting [play_move_leftright] best 3941650 combination reg byte a [ play_move_leftright::$8 ] -Attempting to uplift remaining variables inzp ZP_BYTE:130 [ play_move_down::$2 ] -Uplifting [play_move_down] best 3941644 combination reg byte a [ play_move_down::$2 ] -Attempting to uplift remaining variables inzp ZP_BYTE:131 [ play_collision::return#0 ] -Uplifting [play_collision] best 3941638 combination reg byte a [ play_collision::return#0 ] -Attempting to uplift remaining variables inzp ZP_BYTE:132 [ play_move_down::$12 ] -Uplifting [play_move_down] best 3941632 combination reg byte a [ play_move_down::$12 ] -Attempting to uplift remaining variables inzp ZP_BYTE:149 [ keyboard_event_scan::$14 ] -Uplifting [keyboard_event_scan] best 3941626 combination reg byte a [ keyboard_event_scan::$14 ] -Attempting to uplift remaining variables inzp ZP_BYTE:150 [ keyboard_event_pressed::return#1 ] -Uplifting [keyboard_event_pressed] best 3941620 combination reg byte a [ keyboard_event_pressed::return#1 ] -Attempting to uplift remaining variables inzp ZP_BYTE:151 [ keyboard_event_scan::$18 ] -Uplifting [keyboard_event_scan] best 3941614 combination reg byte a [ keyboard_event_scan::$18 ] -Attempting to uplift remaining variables inzp ZP_BYTE:152 [ keyboard_event_pressed::return#2 ] -Uplifting [keyboard_event_pressed] best 3941608 combination reg byte a [ keyboard_event_pressed::return#2 ] -Attempting to uplift remaining variables inzp ZP_BYTE:153 [ keyboard_event_scan::$22 ] -Uplifting [keyboard_event_scan] best 3941602 combination reg byte a [ keyboard_event_scan::$22 ] -Attempting to uplift remaining variables inzp ZP_BYTE:154 [ keyboard_event_pressed::return#10 ] -Uplifting [keyboard_event_pressed] best 3941596 combination reg byte a [ keyboard_event_pressed::return#10 ] -Attempting to uplift remaining variables inzp ZP_BYTE:155 [ keyboard_event_scan::$26 ] -Uplifting [keyboard_event_scan] best 3941590 combination reg byte a [ keyboard_event_scan::$26 ] -Attempting to uplift remaining variables inzp ZP_BYTE:175 [ irq_cnt#1 ] -Uplifting [] best 3941590 combination zp ZP_BYTE:175 [ irq_cnt#1 ] -Attempting to uplift remaining variables inzp ZP_BYTE:173 [ sprites_irq::ptr#3 ] -Uplifting [sprites_irq] best 3941578 combination reg byte x [ sprites_irq::ptr#3 ] -Attempting to uplift remaining variables inzp ZP_BYTE:182 [ sprites_irq::ptr#1 ] -Uplifting [sprites_irq] best 3941568 combination reg byte a [ sprites_irq::ptr#1 ] -Attempting to uplift remaining variables inzp ZP_BYTE:171 [ sprites_irq::ypos#0 ] -Uplifting [sprites_irq] best 3941553 combination reg byte a [ sprites_irq::ypos#0 ] -Attempting to uplift remaining variables inzp ZP_BYTE:172 [ sprites_irq::ptr#0 ] -Uplifting [sprites_irq] best 3941540 combination reg byte x [ sprites_irq::ptr#0 ] -Attempting to uplift remaining variables inzp ZP_BYTE:142 [ keyboard_event_pressed::row_bits#0 ] -Uplifting [keyboard_event_pressed] best 3941540 combination zp ZP_BYTE:142 [ keyboard_event_pressed::row_bits#0 ] -Attempting to uplift remaining variables inzp ZP_BYTE:144 [ keyboard_event_pressed::return#11 ] -Uplifting [keyboard_event_pressed] best 3941522 combination reg byte a [ keyboard_event_pressed::return#11 ] +Uplifting [] best 3936736 combination zp ZP_BYTE:3 [ render_screen_render#16 render_screen_render#11 ] +Attempting to uplift remaining variables inzp ZP_BYTE:113 [ play_move_rotate::$2 ] +Uplifting [play_move_rotate] best 3936730 combination reg byte a [ play_move_rotate::$2 ] +Attempting to uplift remaining variables inzp ZP_BYTE:114 [ play_collision::return#13 ] +Uplifting [play_collision] best 3936724 combination reg byte a [ play_collision::return#13 ] +Attempting to uplift remaining variables inzp ZP_BYTE:115 [ play_move_rotate::$6 ] +Uplifting [play_move_rotate] best 3936718 combination reg byte a [ play_move_rotate::$6 ] +Attempting to uplift remaining variables inzp ZP_BYTE:116 [ play_move_rotate::$4 ] +Uplifting [play_move_rotate] best 3936712 combination reg byte a [ play_move_rotate::$4 ] +Attempting to uplift remaining variables inzp ZP_BYTE:123 [ play_collision::return#12 ] +Uplifting [play_collision] best 3936706 combination reg byte a [ play_collision::return#12 ] +Attempting to uplift remaining variables inzp ZP_BYTE:125 [ play_collision::return#1 ] +Uplifting [play_collision] best 3936700 combination reg byte a [ play_collision::return#1 ] +Attempting to uplift remaining variables inzp ZP_BYTE:126 [ play_move_leftright::$8 ] +Uplifting [play_move_leftright] best 3936694 combination reg byte a [ play_move_leftright::$8 ] +Attempting to uplift remaining variables inzp ZP_BYTE:128 [ play_move_down::$2 ] +Uplifting [play_move_down] best 3936688 combination reg byte a [ play_move_down::$2 ] +Attempting to uplift remaining variables inzp ZP_BYTE:129 [ play_collision::return#0 ] +Uplifting [play_collision] best 3936682 combination reg byte a [ play_collision::return#0 ] +Attempting to uplift remaining variables inzp ZP_BYTE:130 [ play_move_down::$12 ] +Uplifting [play_move_down] best 3936676 combination reg byte a [ play_move_down::$12 ] +Attempting to uplift remaining variables inzp ZP_BYTE:147 [ keyboard_event_scan::$14 ] +Uplifting [keyboard_event_scan] best 3936670 combination reg byte a [ keyboard_event_scan::$14 ] +Attempting to uplift remaining variables inzp ZP_BYTE:148 [ keyboard_event_pressed::return#1 ] +Uplifting [keyboard_event_pressed] best 3936664 combination reg byte a [ keyboard_event_pressed::return#1 ] +Attempting to uplift remaining variables inzp ZP_BYTE:149 [ keyboard_event_scan::$18 ] +Uplifting [keyboard_event_scan] best 3936658 combination reg byte a [ keyboard_event_scan::$18 ] +Attempting to uplift remaining variables inzp ZP_BYTE:150 [ keyboard_event_pressed::return#2 ] +Uplifting [keyboard_event_pressed] best 3936652 combination reg byte a [ keyboard_event_pressed::return#2 ] +Attempting to uplift remaining variables inzp ZP_BYTE:151 [ keyboard_event_scan::$22 ] +Uplifting [keyboard_event_scan] best 3936646 combination reg byte a [ keyboard_event_scan::$22 ] +Attempting to uplift remaining variables inzp ZP_BYTE:152 [ keyboard_event_pressed::return#10 ] +Uplifting [keyboard_event_pressed] best 3936640 combination reg byte a [ keyboard_event_pressed::return#10 ] +Attempting to uplift remaining variables inzp ZP_BYTE:153 [ keyboard_event_scan::$26 ] +Uplifting [keyboard_event_scan] best 3936634 combination reg byte a [ keyboard_event_scan::$26 ] +Attempting to uplift remaining variables inzp ZP_BYTE:169 [ irq_cnt#1 ] +Uplifting [] best 3936634 combination zp ZP_BYTE:169 [ irq_cnt#1 ] +Attempting to uplift remaining variables inzp ZP_BYTE:167 [ sprites_irq::ptr#3 ] +Uplifting [sprites_irq] best 3936622 combination reg byte x [ sprites_irq::ptr#3 ] +Attempting to uplift remaining variables inzp ZP_BYTE:176 [ sprites_irq::ptr#1 ] +Uplifting [sprites_irq] best 3936612 combination reg byte a [ sprites_irq::ptr#1 ] +Attempting to uplift remaining variables inzp ZP_BYTE:165 [ sprites_irq::ypos#0 ] +Uplifting [sprites_irq] best 3936597 combination reg byte a [ sprites_irq::ypos#0 ] +Attempting to uplift remaining variables inzp ZP_BYTE:166 [ sprites_irq::ptr#0 ] +Uplifting [sprites_irq] best 3936584 combination reg byte x [ sprites_irq::ptr#0 ] +Attempting to uplift remaining variables inzp ZP_BYTE:140 [ keyboard_event_pressed::row_bits#0 ] +Uplifting [keyboard_event_pressed] best 3936584 combination zp ZP_BYTE:140 [ keyboard_event_pressed::row_bits#0 ] +Attempting to uplift remaining variables inzp ZP_BYTE:142 [ keyboard_event_pressed::return#11 ] +Uplifting [keyboard_event_pressed] best 3936566 combination reg byte a [ keyboard_event_pressed::return#11 ] Attempting to uplift remaining variables inzp ZP_BYTE:34 [ play_collision::return#14 ] -Uplifting [play_collision] best 3941495 combination reg byte a [ play_collision::return#14 ] +Uplifting [play_collision] best 3936539 combination reg byte a [ play_collision::return#14 ] Attempting to uplift remaining variables inzp ZP_BYTE:57 [ keyboard_event_pressed::keycode#5 ] -Uplifting [keyboard_event_pressed] best 3941495 combination zp ZP_BYTE:57 [ keyboard_event_pressed::keycode#5 ] -Attempting to uplift remaining variables inzp ZP_BYTE:92 [ irq_sprite_ypos#0 ] -Uplifting [] best 3941495 combination zp ZP_BYTE:92 [ irq_sprite_ypos#0 ] -Attempting to uplift remaining variables inzp ZP_BYTE:90 [ render_screen_showing#0 ] -Uplifting [] best 3941495 combination zp ZP_BYTE:90 [ render_screen_showing#0 ] -Attempting to uplift remaining variables inzp ZP_BYTE:93 [ irq_sprite_ptr#0 ] -Uplifting [] best 3941495 combination zp ZP_BYTE:93 [ irq_sprite_ptr#0 ] -Attempting to uplift remaining variables inzp ZP_BYTE:94 [ irq_cnt#0 ] -Uplifting [] best 3941495 combination zp ZP_BYTE:94 [ irq_cnt#0 ] -Attempting to uplift remaining variables inzp ZP_BYTE:91 [ irq_raster_next#0 ] -Uplifting [] best 3941495 combination zp ZP_BYTE:91 [ irq_raster_next#0 ] -Attempting to uplift remaining variables inzp ZP_BYTE:133 [ play_spawn_current::$3 ] -Uplifting [play_spawn_current] best 3941495 combination zp ZP_BYTE:133 [ play_spawn_current::$3 ] -Coalescing zero page register with common assignment [ zp ZP_WORD:24 [ current_piece#12 current_piece#74 current_piece#75 current_piece#76 current_piece#77 ] ] with [ zp ZP_WORD:119 [ play_collision::piece_gfx#0 ] ] - score: 1 +Uplifting [keyboard_event_pressed] best 3936539 combination zp ZP_BYTE:57 [ keyboard_event_pressed::keycode#5 ] +Attempting to uplift remaining variables inzp ZP_BYTE:90 [ irq_sprite_ypos#0 ] +Uplifting [] best 3936539 combination zp ZP_BYTE:90 [ irq_sprite_ypos#0 ] +Attempting to uplift remaining variables inzp ZP_BYTE:88 [ render_screen_showing#0 ] +Uplifting [] best 3936539 combination zp ZP_BYTE:88 [ render_screen_showing#0 ] +Attempting to uplift remaining variables inzp ZP_BYTE:91 [ irq_sprite_ptr#0 ] +Uplifting [] best 3936539 combination zp ZP_BYTE:91 [ irq_sprite_ptr#0 ] +Attempting to uplift remaining variables inzp ZP_BYTE:92 [ irq_cnt#0 ] +Uplifting [] best 3936539 combination zp ZP_BYTE:92 [ irq_cnt#0 ] +Attempting to uplift remaining variables inzp ZP_BYTE:89 [ irq_raster_next#0 ] +Uplifting [] best 3936539 combination zp ZP_BYTE:89 [ irq_raster_next#0 ] +Attempting to uplift remaining variables inzp ZP_BYTE:131 [ play_spawn_current::$3 ] +Uplifting [play_spawn_current] best 3936539 combination zp ZP_BYTE:131 [ play_spawn_current::$3 ] +Coalescing zero page register with common assignment [ zp ZP_WORD:24 [ current_piece#12 current_piece#74 current_piece#75 current_piece#76 current_piece#77 ] ] with [ zp ZP_WORD:117 [ play_collision::piece_gfx#0 ] ] - score: 1 Coalescing zero page register with common assignment [ zp ZP_BYTE:37 [ current_ypos#29 current_ypos#21 current_ypos#18 current_ypos#13 current_ypos#0 ] ] with [ zp ZP_BYTE:52 [ play_lock_current::ypos2#2 play_lock_current::ypos2#0 play_lock_current::ypos2#1 ] ] - score: 1 -Coalescing zero page register with common assignment [ zp ZP_BYTE:88 [ irq_raster_next#13 irq_raster_next#2 irq_raster_next#1 ] ] with [ zp ZP_BYTE:91 [ irq_raster_next#0 ] ] - score: 1 -Coalescing zero page register with common assignment [ zp ZP_BYTE:92 [ irq_sprite_ypos#0 ] ] with [ zp ZP_BYTE:176 [ irq_sprite_ypos#2 ] ] - score: 1 -Coalescing zero page register with common assignment [ zp ZP_BYTE:93 [ irq_sprite_ptr#0 ] ] with [ zp ZP_BYTE:177 [ irq_sprite_ptr#2 ] ] - score: 1 -Coalescing zero page register with common assignment [ zp ZP_BYTE:94 [ irq_cnt#0 ] ] with [ zp ZP_BYTE:175 [ irq_cnt#1 ] ] - score: 1 -Coalescing zero page register with common assignment [ zp ZP_BYTE:100 [ main::render#1 ] ] with [ zp ZP_BYTE:104 [ main::render#2 ] ] - score: 1 +Coalescing zero page register with common assignment [ zp ZP_BYTE:86 [ irq_raster_next#13 irq_raster_next#2 irq_raster_next#1 ] ] with [ zp ZP_BYTE:89 [ irq_raster_next#0 ] ] - score: 1 +Coalescing zero page register with common assignment [ zp ZP_BYTE:90 [ irq_sprite_ypos#0 ] ] with [ zp ZP_BYTE:170 [ irq_sprite_ypos#2 ] ] - score: 1 +Coalescing zero page register with common assignment [ zp ZP_BYTE:91 [ irq_sprite_ptr#0 ] ] with [ zp ZP_BYTE:171 [ irq_sprite_ptr#2 ] ] - score: 1 +Coalescing zero page register with common assignment [ zp ZP_BYTE:92 [ irq_cnt#0 ] ] with [ zp ZP_BYTE:169 [ irq_cnt#1 ] ] - score: 1 +Coalescing zero page register with common assignment [ zp ZP_BYTE:98 [ main::render#1 ] ] with [ zp ZP_BYTE:102 [ main::render#2 ] ] - score: 1 Coalescing zero page register [ zp ZP_BYTE:2 [ render_screen_show#16 render_screen_show#13 ] ] with [ zp ZP_BYTE:68 [ play_init::idx#2 play_init::idx#1 ] ] Coalescing zero page register [ zp ZP_BYTE:2 [ render_screen_show#16 render_screen_show#13 play_init::idx#2 play_init::idx#1 ] ] with [ zp ZP_BYTE:70 [ sprites_init::xpos#2 sprites_init::xpos#1 ] ] Coalescing zero page register [ zp ZP_BYTE:2 [ render_screen_show#16 render_screen_show#13 play_init::idx#2 play_init::idx#1 sprites_init::xpos#2 sprites_init::xpos#1 ] ] with [ zp ZP_BYTE:76 [ render_screen_original::y#6 render_screen_original::y#1 ] ] -Coalescing zero page register [ zp ZP_BYTE:3 [ render_screen_render#16 render_screen_render#11 ] ] with [ zp ZP_BYTE:167 [ render_screen_original::c#0 ] ] Coalescing zero page register [ zp ZP_BYTE:4 [ current_movedown_counter#12 current_movedown_counter#10 current_movedown_counter#1 ] ] with [ zp ZP_BYTE:47 [ play_remove_lines::y#8 play_remove_lines::y#1 ] ] Coalescing zero page register [ zp ZP_BYTE:4 [ current_movedown_counter#12 current_movedown_counter#10 current_movedown_counter#1 play_remove_lines::y#8 play_remove_lines::y#1 ] ] with [ zp ZP_BYTE:53 [ play_lock_current::l#6 play_lock_current::l#1 ] ] -Coalescing zero page register [ zp ZP_BYTE:4 [ current_movedown_counter#12 current_movedown_counter#10 current_movedown_counter#1 play_remove_lines::y#8 play_remove_lines::y#1 play_lock_current::l#6 play_lock_current::l#1 ] ] with [ zp ZP_BYTE:133 [ play_spawn_current::$3 ] ] +Coalescing zero page register [ zp ZP_BYTE:4 [ current_movedown_counter#12 current_movedown_counter#10 current_movedown_counter#1 play_remove_lines::y#8 play_remove_lines::y#1 play_lock_current::l#6 play_lock_current::l#1 ] ] with [ zp ZP_BYTE:131 [ play_spawn_current::$3 ] ] Coalescing zero page register [ zp ZP_BYTE:6 [ render_screen_render#28 render_screen_render#62 ] ] with [ zp ZP_BYTE:17 [ render_playfield::l#2 render_playfield::l#1 ] ] Coalescing zero page register [ zp ZP_BYTE:6 [ render_screen_render#28 render_screen_render#62 render_playfield::l#2 render_playfield::l#1 ] ] with [ zp ZP_BYTE:23 [ play_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#2 ] ] Coalescing zero page register [ zp ZP_BYTE:6 [ render_screen_render#28 render_screen_render#62 render_playfield::l#2 render_playfield::l#1 play_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#2 ] ] with [ zp ZP_BYTE:49 [ play_remove_lines::x#2 play_remove_lines::x#1 ] ] @@ -12878,31 +12746,31 @@ Coalescing zero page register [ zp ZP_BYTE:7 [ current_xpos#47 current_xpos#110 Coalescing zero page register [ zp ZP_BYTE:7 [ current_xpos#47 current_xpos#110 current_xpos#111 render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 play_collision::xpos#5 play_collision::xpos#0 play_collision::xpos#1 play_collision::xpos#2 play_collision::xpos#3 ] ] with [ zp ZP_BYTE:50 [ play_remove_lines::full#4 play_remove_lines::full#2 ] ] Coalescing zero page register [ zp ZP_BYTE:7 [ current_xpos#47 current_xpos#110 current_xpos#111 render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 play_collision::xpos#5 play_collision::xpos#0 play_collision::xpos#1 play_collision::xpos#2 play_collision::xpos#3 play_remove_lines::full#4 play_remove_lines::full#2 ] ] with [ zp ZP_BYTE:55 [ play_lock_current::col#2 play_lock_current::col#0 play_lock_current::col#1 ] ] Coalescing zero page register [ zp ZP_BYTE:7 [ current_xpos#47 current_xpos#110 current_xpos#111 render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 play_collision::xpos#5 play_collision::xpos#0 play_collision::xpos#1 play_collision::xpos#2 play_collision::xpos#3 play_remove_lines::full#4 play_remove_lines::full#2 play_lock_current::col#2 play_lock_current::col#0 play_lock_current::col#1 ] ] with [ zp ZP_BYTE:62 [ keyboard_event_scan::keycode#10 keyboard_event_scan::keycode#11 keyboard_event_scan::keycode#14 keyboard_event_scan::keycode#1 keyboard_event_scan::keycode#15 ] ] -Coalescing zero page register [ zp ZP_BYTE:7 [ current_xpos#47 current_xpos#110 current_xpos#111 render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 play_collision::xpos#5 play_collision::xpos#0 play_collision::xpos#1 play_collision::xpos#2 play_collision::xpos#3 play_remove_lines::full#4 play_remove_lines::full#2 play_lock_current::col#2 play_lock_current::col#0 play_lock_current::col#1 keyboard_event_scan::keycode#10 keyboard_event_scan::keycode#11 keyboard_event_scan::keycode#14 keyboard_event_scan::keycode#1 keyboard_event_scan::keycode#15 ] ] with [ zp ZP_BYTE:142 [ keyboard_event_pressed::row_bits#0 ] ] +Coalescing zero page register [ zp ZP_BYTE:7 [ current_xpos#47 current_xpos#110 current_xpos#111 render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 play_collision::xpos#5 play_collision::xpos#0 play_collision::xpos#1 play_collision::xpos#2 play_collision::xpos#3 play_remove_lines::full#4 play_remove_lines::full#2 play_lock_current::col#2 play_lock_current::col#0 play_lock_current::col#1 keyboard_event_scan::keycode#10 keyboard_event_scan::keycode#11 keyboard_event_scan::keycode#14 keyboard_event_scan::keycode#1 keyboard_event_scan::keycode#15 ] ] with [ zp ZP_BYTE:140 [ keyboard_event_pressed::row_bits#0 ] ] Coalescing zero page register [ zp ZP_WORD:8 [ current_piece_gfx#53 current_piece_gfx#100 current_piece_gfx#101 ] ] with [ zp ZP_WORD:19 [ render_playfield::screen_line#2 render_playfield::screen_line#0 render_playfield::screen_line#1 ] ] Coalescing zero page register [ zp ZP_WORD:8 [ current_piece_gfx#53 current_piece_gfx#100 current_piece_gfx#101 render_playfield::screen_line#2 render_playfield::screen_line#0 render_playfield::screen_line#1 ] ] with [ zp ZP_WORD:24 [ current_piece#12 current_piece#74 current_piece#75 current_piece#76 current_piece#77 play_collision::piece_gfx#0 ] ] Coalescing zero page register [ zp ZP_WORD:8 [ current_piece_gfx#53 current_piece_gfx#100 current_piece_gfx#101 render_playfield::screen_line#2 render_playfield::screen_line#0 render_playfield::screen_line#1 current_piece#12 current_piece#74 current_piece#75 current_piece#76 current_piece#77 play_collision::piece_gfx#0 ] ] with [ zp ZP_WORD:66 [ play_init::pli#2 play_init::pli#1 ] ] Coalescing zero page register [ zp ZP_WORD:8 [ current_piece_gfx#53 current_piece_gfx#100 current_piece_gfx#101 render_playfield::screen_line#2 render_playfield::screen_line#0 render_playfield::screen_line#1 current_piece#12 current_piece#74 current_piece#75 current_piece#76 current_piece#77 play_collision::piece_gfx#0 play_init::pli#2 play_init::pli#1 ] ] with [ zp ZP_WORD:72 [ render_init::li_1#2 render_init::li_1#1 ] ] Coalescing zero page register [ zp ZP_WORD:8 [ current_piece_gfx#53 current_piece_gfx#100 current_piece_gfx#101 render_playfield::screen_line#2 render_playfield::screen_line#0 render_playfield::screen_line#1 current_piece#12 current_piece#74 current_piece#75 current_piece#76 current_piece#77 play_collision::piece_gfx#0 play_init::pli#2 play_init::pli#1 render_init::li_1#2 render_init::li_1#1 ] ] with [ zp ZP_WORD:77 [ render_screen_original::oscr#2 render_screen_original::oscr#4 render_screen_original::oscr#1 ] ] -Coalescing zero page register [ zp ZP_WORD:8 [ current_piece_gfx#53 current_piece_gfx#100 current_piece_gfx#101 render_playfield::screen_line#2 render_playfield::screen_line#0 render_playfield::screen_line#1 current_piece#12 current_piece#74 current_piece#75 current_piece#76 current_piece#77 play_collision::piece_gfx#0 play_init::pli#2 play_init::pli#1 render_init::li_1#2 render_init::li_1#1 render_screen_original::oscr#2 render_screen_original::oscr#4 render_screen_original::oscr#1 ] ] with [ zp ZP_WORD:138 [ play_lock_current::playfield_line#0 ] ] +Coalescing zero page register [ zp ZP_WORD:8 [ current_piece_gfx#53 current_piece_gfx#100 current_piece_gfx#101 render_playfield::screen_line#2 render_playfield::screen_line#0 render_playfield::screen_line#1 current_piece#12 current_piece#74 current_piece#75 current_piece#76 current_piece#77 play_collision::piece_gfx#0 play_init::pli#2 play_init::pli#1 render_init::li_1#2 render_init::li_1#1 render_screen_original::oscr#2 render_screen_original::oscr#4 render_screen_original::oscr#1 ] ] with [ zp ZP_WORD:136 [ play_lock_current::playfield_line#0 ] ] Coalescing zero page register [ zp ZP_BYTE:11 [ render_current::ypos2#2 render_current::ypos2#0 render_current::ypos2#1 ] ] with [ zp ZP_BYTE:21 [ render_playfield::c#2 render_playfield::c#1 ] ] Coalescing zero page register [ zp ZP_BYTE:11 [ render_current::ypos2#2 render_current::ypos2#0 render_current::ypos2#1 render_playfield::c#2 render_playfield::c#1 ] ] with [ zp ZP_BYTE:29 [ play_collision::ypos2#2 play_collision::ypos2#0 play_collision::ypos2#1 ] ] -Coalescing zero page register [ zp ZP_BYTE:11 [ render_current::ypos2#2 render_current::ypos2#0 render_current::ypos2#1 render_playfield::c#2 render_playfield::c#1 play_collision::ypos2#2 play_collision::ypos2#0 play_collision::ypos2#1 ] ] with [ zp ZP_BYTE:137 [ play_remove_lines::c#0 ] ] -Coalescing zero page register [ zp ZP_BYTE:11 [ render_current::ypos2#2 render_current::ypos2#0 render_current::ypos2#1 render_playfield::c#2 render_playfield::c#1 play_collision::ypos2#2 play_collision::ypos2#0 play_collision::ypos2#1 play_remove_lines::c#0 ] ] with [ zp ZP_BYTE:140 [ play_lock_current::i#1 ] ] -Coalescing zero page register [ zp ZP_BYTE:11 [ render_current::ypos2#2 render_current::ypos2#0 render_current::ypos2#1 render_playfield::c#2 render_playfield::c#1 play_collision::ypos2#2 play_collision::ypos2#0 play_collision::ypos2#1 play_remove_lines::c#0 play_lock_current::i#1 ] ] with [ zp ZP_BYTE:147 [ keyboard_event_scan::row_scan#0 ] ] +Coalescing zero page register [ zp ZP_BYTE:11 [ render_current::ypos2#2 render_current::ypos2#0 render_current::ypos2#1 render_playfield::c#2 render_playfield::c#1 play_collision::ypos2#2 play_collision::ypos2#0 play_collision::ypos2#1 ] ] with [ zp ZP_BYTE:135 [ play_remove_lines::c#0 ] ] +Coalescing zero page register [ zp ZP_BYTE:11 [ render_current::ypos2#2 render_current::ypos2#0 render_current::ypos2#1 render_playfield::c#2 render_playfield::c#1 play_collision::ypos2#2 play_collision::ypos2#0 play_collision::ypos2#1 play_remove_lines::c#0 ] ] with [ zp ZP_BYTE:138 [ play_lock_current::i#1 ] ] +Coalescing zero page register [ zp ZP_BYTE:11 [ render_current::ypos2#2 render_current::ypos2#0 render_current::ypos2#1 render_playfield::c#2 render_playfield::c#1 play_collision::ypos2#2 play_collision::ypos2#0 play_collision::ypos2#1 play_remove_lines::c#0 play_lock_current::i#1 ] ] with [ zp ZP_BYTE:145 [ keyboard_event_scan::row_scan#0 ] ] Coalescing zero page register [ zp ZP_BYTE:12 [ render_current::l#4 render_current::l#1 ] ] with [ zp ZP_BYTE:30 [ play_collision::l#6 play_collision::l#1 ] ] Coalescing zero page register [ zp ZP_BYTE:13 [ render_current::i#4 render_current::i#3 render_current::i#8 render_current::i#10 render_current::i#1 ] ] with [ zp ZP_BYTE:31 [ play_collision::i#2 play_collision::i#3 play_collision::i#11 play_collision::i#13 ] ] Coalescing zero page register [ zp ZP_BYTE:14 [ render_current::xpos#2 render_current::xpos#0 render_current::xpos#1 ] ] with [ zp ZP_BYTE:32 [ play_collision::col#2 play_collision::col#9 play_collision::col#1 ] ] -Coalescing zero page register [ zp ZP_BYTE:15 [ render_current::c#2 render_current::c#1 ] ] with [ zp ZP_BYTE:96 [ main::key_event#0 ] ] +Coalescing zero page register [ zp ZP_BYTE:15 [ render_current::c#2 render_current::c#1 ] ] with [ zp ZP_BYTE:94 [ main::key_event#0 ] ] Coalescing zero page register [ zp ZP_WORD:38 [ current_piece#20 current_piece#78 current_piece#16 current_piece#71 current_piece#10 ] ] with [ zp ZP_WORD:74 [ render_init::li_2#2 render_init::li_2#1 ] ] -Coalescing zero page register [ zp ZP_WORD:38 [ current_piece#20 current_piece#78 current_piece#16 current_piece#71 current_piece#10 render_init::li_2#2 render_init::li_2#1 ] ] with [ zp ZP_WORD:79 [ render_screen_original::oext#2 render_screen_original::oext#4 render_screen_original::oext#1 ] ] -Coalescing zero page register [ zp ZP_WORD:41 [ current_piece_gfx#26 current_piece_gfx#20 current_piece_gfx#16 current_piece_gfx#14 current_piece_gfx#3 current_piece_gfx#1 ] ] with [ zp ZP_WORD:81 [ render_screen_original::ocols#2 render_screen_original::ocols#4 render_screen_original::ocols#1 ] ] -Coalescing zero page register [ zp ZP_WORD:83 [ 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 ] ] with [ zp ZP_WORD:110 [ render_current::screen_line#0 ] ] -Coalescing zero page register [ zp ZP_WORD:83 [ 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 render_current::screen_line#0 ] ] with [ zp ZP_WORD:121 [ play_collision::playfield_line#0 ] ] -Coalescing zero page register [ zp ZP_BYTE:90 [ render_screen_showing#0 ] ] with [ zp ZP_BYTE:162 [ render_screen_showing#1 ] ] -Coalescing zero page register [ zp ZP_BYTE:92 [ irq_sprite_ypos#0 irq_sprite_ypos#2 ] ] with [ zp ZP_BYTE:180 [ irq_sprite_ypos#1 ] ] -Coalescing zero page register [ zp ZP_BYTE:93 [ irq_sprite_ptr#0 irq_sprite_ptr#2 ] ] with [ zp ZP_BYTE:181 [ irq_sprite_ptr#1 ] ] -Coalescing zero page register [ zp ZP_BYTE:94 [ irq_cnt#0 irq_cnt#1 ] ] with [ zp ZP_BYTE:179 [ irq_cnt#14 ] ] +Coalescing zero page register [ zp ZP_WORD:38 [ current_piece#20 current_piece#78 current_piece#16 current_piece#71 current_piece#10 render_init::li_2#2 render_init::li_2#1 ] ] with [ zp ZP_WORD:79 [ render_screen_original::ocols#2 render_screen_original::ocols#4 render_screen_original::ocols#1 ] ] +Coalescing zero page register [ zp ZP_WORD:41 [ current_piece_gfx#26 current_piece_gfx#20 current_piece_gfx#16 current_piece_gfx#14 current_piece_gfx#3 current_piece_gfx#1 ] ] with [ zp ZP_WORD:81 [ 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 ] ] +Coalescing zero page register [ zp ZP_WORD:83 [ 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 ] ] with [ zp ZP_WORD:108 [ render_current::screen_line#0 ] ] +Coalescing zero page register [ zp ZP_WORD:83 [ 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 render_current::screen_line#0 ] ] with [ zp ZP_WORD:119 [ play_collision::playfield_line#0 ] ] +Coalescing zero page register [ zp ZP_BYTE:88 [ render_screen_showing#0 ] ] with [ zp ZP_BYTE:160 [ render_screen_showing#1 ] ] +Coalescing zero page register [ zp ZP_BYTE:90 [ irq_sprite_ypos#0 irq_sprite_ypos#2 ] ] with [ zp ZP_BYTE:174 [ irq_sprite_ypos#1 ] ] +Coalescing zero page register [ zp ZP_BYTE:91 [ irq_sprite_ptr#0 irq_sprite_ptr#2 ] ] with [ zp ZP_BYTE:175 [ irq_sprite_ptr#1 ] ] +Coalescing zero page register [ zp ZP_BYTE:92 [ irq_cnt#0 irq_cnt#1 ] ] with [ zp ZP_BYTE:173 [ irq_cnt#14 ] ] Allocated (was zp ZP_BYTE:6) zp ZP_BYTE:5 [ render_screen_render#28 render_screen_render#62 render_playfield::l#2 render_playfield::l#1 play_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#2 play_remove_lines::x#2 play_remove_lines::x#1 play_lock_current::i#2 play_lock_current::i#3 play_lock_current::i#7 play_lock_current::i#9 keyboard_event_pressed::keycode#5 keyboard_event_scan::row#2 keyboard_event_scan::row#1 ] Allocated (was zp ZP_BYTE:7) zp ZP_BYTE:6 [ current_xpos#47 current_xpos#110 current_xpos#111 render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 play_collision::xpos#5 play_collision::xpos#0 play_collision::xpos#1 play_collision::xpos#2 play_collision::xpos#3 play_remove_lines::full#4 play_remove_lines::full#2 play_lock_current::col#2 play_lock_current::col#0 play_lock_current::col#1 keyboard_event_scan::keycode#10 keyboard_event_scan::keycode#11 keyboard_event_scan::keycode#14 keyboard_event_scan::keycode#1 keyboard_event_scan::keycode#15 keyboard_event_pressed::row_bits#0 ] Allocated (was zp ZP_WORD:8) zp ZP_WORD:7 [ current_piece_gfx#53 current_piece_gfx#100 current_piece_gfx#101 render_playfield::screen_line#2 render_playfield::screen_line#0 render_playfield::screen_line#1 current_piece#12 current_piece#74 current_piece#75 current_piece#76 current_piece#77 play_collision::piece_gfx#0 play_init::pli#2 play_init::pli#1 render_init::li_1#2 render_init::li_1#1 render_screen_original::oscr#2 render_screen_original::oscr#4 render_screen_original::oscr#1 play_lock_current::playfield_line#0 ] @@ -12912,25 +12780,24 @@ Allocated (was zp ZP_BYTE:13) zp ZP_BYTE:11 [ render_current::i#4 render_current Allocated (was zp ZP_BYTE:14) zp ZP_BYTE:12 [ render_current::xpos#2 render_current::xpos#0 render_current::xpos#1 play_collision::col#2 play_collision::col#9 play_collision::col#1 ] Allocated (was zp ZP_BYTE:15) zp ZP_BYTE:13 [ render_current::c#2 render_current::c#1 main::key_event#0 ] Allocated (was zp ZP_BYTE:37) zp ZP_BYTE:14 [ current_ypos#29 current_ypos#21 current_ypos#18 current_ypos#13 current_ypos#0 play_lock_current::ypos2#2 play_lock_current::ypos2#0 play_lock_current::ypos2#1 ] -Allocated (was zp ZP_WORD:38) zp ZP_WORD:15 [ current_piece#20 current_piece#78 current_piece#16 current_piece#71 current_piece#10 render_init::li_2#2 render_init::li_2#1 render_screen_original::oext#2 render_screen_original::oext#4 render_screen_original::oext#1 ] +Allocated (was zp ZP_WORD:38) zp ZP_WORD:15 [ current_piece#20 current_piece#78 current_piece#16 current_piece#71 current_piece#10 render_init::li_2#2 render_init::li_2#1 render_screen_original::ocols#2 render_screen_original::ocols#4 render_screen_original::ocols#1 ] Allocated (was zp ZP_BYTE:40) zp ZP_BYTE:17 [ current_orientation#29 current_orientation#10 current_orientation#19 current_orientation#4 current_orientation#14 ] -Allocated (was zp ZP_WORD:41) zp ZP_WORD:18 [ current_piece_gfx#26 current_piece_gfx#20 current_piece_gfx#16 current_piece_gfx#14 current_piece_gfx#3 current_piece_gfx#1 render_screen_original::ocols#2 render_screen_original::ocols#4 render_screen_original::ocols#1 ] +Allocated (was zp ZP_WORD:41) zp ZP_WORD:18 [ current_piece_gfx#26 current_piece_gfx#20 current_piece_gfx#16 current_piece_gfx#14 current_piece_gfx#3 current_piece_gfx#1 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 ] Allocated (was zp ZP_BYTE:43) zp ZP_BYTE:20 [ current_xpos#33 current_xpos#10 current_xpos#23 current_xpos#19 current_xpos#4 current_xpos#1 current_xpos#2 ] Allocated (was zp ZP_BYTE:44) zp ZP_BYTE:21 [ current_piece_char#20 current_piece_char#15 current_piece_char#12 current_piece_char#1 ] Allocated (was zp ZP_BYTE:63) zp ZP_BYTE:22 [ keyboard_events_size#10 keyboard_events_size#29 keyboard_events_size#19 keyboard_events_size#16 keyboard_events_size#13 keyboard_events_size#4 keyboard_events_size#30 keyboard_events_size#2 keyboard_events_size#1 ] -Allocated (was zp ZP_WORD:83) zp ZP_WORD:23 [ 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 render_current::screen_line#0 play_collision::playfield_line#0 ] -Allocated (was zp ZP_WORD:85) zp ZP_WORD:25 [ 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 ] -Allocated (was zp ZP_BYTE:88) zp ZP_BYTE:27 [ irq_raster_next#13 irq_raster_next#2 irq_raster_next#1 irq_raster_next#0 ] -Allocated (was zp ZP_BYTE:90) zp ZP_BYTE:28 [ render_screen_showing#0 render_screen_showing#1 ] -Allocated (was zp ZP_BYTE:92) zp ZP_BYTE:29 [ irq_sprite_ypos#0 irq_sprite_ypos#2 irq_sprite_ypos#1 ] -Allocated (was zp ZP_BYTE:93) zp ZP_BYTE:30 [ irq_sprite_ptr#0 irq_sprite_ptr#2 irq_sprite_ptr#1 ] -Allocated (was zp ZP_BYTE:94) zp ZP_BYTE:31 [ irq_cnt#0 irq_cnt#1 irq_cnt#14 ] -Allocated (was zp ZP_BYTE:100) zp ZP_BYTE:32 [ main::render#1 main::render#2 ] -Allocated (was zp ZP_BYTE:123) zp ZP_BYTE:33 [ play_collision::i#1 ] +Allocated (was zp ZP_WORD:83) zp ZP_WORD:23 [ 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 render_current::screen_line#0 play_collision::playfield_line#0 ] +Allocated (was zp ZP_BYTE:86) zp ZP_BYTE:25 [ irq_raster_next#13 irq_raster_next#2 irq_raster_next#1 irq_raster_next#0 ] +Allocated (was zp ZP_BYTE:88) zp ZP_BYTE:26 [ render_screen_showing#0 render_screen_showing#1 ] +Allocated (was zp ZP_BYTE:90) zp ZP_BYTE:27 [ irq_sprite_ypos#0 irq_sprite_ypos#2 irq_sprite_ypos#1 ] +Allocated (was zp ZP_BYTE:91) zp ZP_BYTE:28 [ irq_sprite_ptr#0 irq_sprite_ptr#2 irq_sprite_ptr#1 ] +Allocated (was zp ZP_BYTE:92) zp ZP_BYTE:29 [ irq_cnt#0 irq_cnt#1 irq_cnt#14 ] +Allocated (was zp ZP_BYTE:98) zp ZP_BYTE:30 [ main::render#1 main::render#2 ] +Allocated (was zp ZP_BYTE:121) zp ZP_BYTE:31 [ play_collision::i#1 ] Interrupt procedure sprites_irq clobbers AXCNZV -Removing interrupt register storage sty regy+1 in SEG908 entry interrupt(HARDWARE_CLOBBER) -Removing interrupt register storage regy: in SEG947 [460] return - exit interrupt(HARDWARE_CLOBBER) -Removing interrupt register storage ldy #00 in SEG947 [460] return - exit interrupt(HARDWARE_CLOBBER) +Removing interrupt register storage sty regy+1 in SEG899 entry interrupt(HARDWARE_CLOBBER) +Removing interrupt register storage regy: in SEG938 [454] return - exit interrupt(HARDWARE_CLOBBER) +Removing interrupt register storage ldy #00 in SEG938 [454] return - exit interrupt(HARDWARE_CLOBBER) ASSEMBLER BEFORE OPTIMIZATION //SEG0 Basic Upstart @@ -12998,7 +12865,6 @@ ASSEMBLER BEFORE OPTIMIZATION .label PLAYFIELD_SCREEN_2 = $2c00 .label PLAYFIELD_SCREEN_ORIGINAL = $1800 .label PLAYFIELD_COLORS_ORIGINAL = $1c00 - .label PLAYFIELD_EXTENDED_ORIGINAL = $1400 .label PLAYFIELD_SPRITES = $2000 .label PLAYFIELD_CHARSET = $2800 .const PLAYFIELD_LINES = $16 @@ -13015,11 +12881,11 @@ ASSEMBLER BEFORE OPTIMIZATION .label PLAYFIELD_SPRITE_PTRS_2 = PLAYFIELD_SCREEN_2+SPRITE_PTRS .const toSpritePtr1_return = PLAYFIELD_SPRITES>>6 .label keyboard_events_size = $16 - .label render_screen_showing = $1c - .label irq_raster_next = $1b - .label irq_sprite_ypos = $1d - .label irq_sprite_ptr = $1e - .label irq_cnt = $1f + .label render_screen_showing = $1a + .label irq_raster_next = $19 + .label irq_sprite_ypos = $1b + .label irq_sprite_ptr = $1c + .label irq_cnt = $1d .label current_movedown_counter = 4 .label current_ypos = $e .label current_piece_gfx = $12 @@ -13051,335 +12917,334 @@ b14: lda #0 sta render_screen_showing //SEG5 kickasm(location (const byte*) PLAYFIELD_CHARSET#0) {{ .fill 8,$00 // Place a filled char at the start of the charset .import binary "playfield-screen.imap" }} -//SEG6 kickasm(location (const byte*) PLAYFIELD_SCREEN_ORIGINAL#0) {{ .import binary "playfield-screen.iscr" }} +//SEG6 kickasm(location (const byte*) PLAYFIELD_SCREEN_ORIGINAL#0) {{ // 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 ) }} //SEG7 kickasm(location (const byte*) PLAYFIELD_COLORS_ORIGINAL#0) {{ .import binary "playfield-screen.col" }} -//SEG8 kickasm(location (const byte*) PLAYFIELD_EXTENDED_ORIGINAL#0) {{ .import binary "playfield-extended.col" }} jmp b20 -//SEG9 @20 +//SEG8 @20 b20: -//SEG10 kickasm(location (const byte*) PLAYFIELD_SPRITES#0) {{ .var sprites = LoadPicture("playfield-sprites.png", List().add($010101, $000000)) .for(var sy=0;sy<10;sy++) { .for(var sx=0;sx<3;sx++) { .for (var y=0;y<21; y++) { .for (var c=0; c<3; c++) { .byte sprites.getSinglecolorByte(sx*3+c,sy*21+y) } } .byte 0 } } }} +//SEG9 kickasm(location (const byte*) PLAYFIELD_SPRITES#0) {{ .var sprites = LoadPicture("playfield-sprites.png", List().add($010101, $000000)) .for(var sy=0;sy<10;sy++) { .for(var sx=0;sx<3;sx++) { .for (var y=0;y<21; y++) { .for (var c=0; c<3; c++) { .byte sprites.getSinglecolorByte(sx*3+c,sy*21+y) } } .byte 0 } } }} jmp b21 -//SEG11 @21 +//SEG10 @21 b21: -//SEG12 [7] (byte) irq_raster_next#0 ← (const byte) IRQ_RASTER_FIRST#0 -- vbuz1=vbuc1 +//SEG11 [6] (byte) irq_raster_next#0 ← (const byte) IRQ_RASTER_FIRST#0 -- vbuz1=vbuc1 lda #IRQ_RASTER_FIRST sta irq_raster_next -//SEG13 [8] (byte) irq_sprite_ypos#0 ← (byte/signed byte/word/signed word/dword/signed dword) 50 -- vbuz1=vbuc1 +//SEG12 [7] (byte) irq_sprite_ypos#0 ← (byte/signed byte/word/signed word/dword/signed dword) 50 -- vbuz1=vbuc1 lda #$32 sta irq_sprite_ypos -//SEG14 [9] phi from @21 to toSpritePtr1 [phi:@21->toSpritePtr1] +//SEG13 [8] phi from @21 to toSpritePtr1 [phi:@21->toSpritePtr1] toSpritePtr1_from_b21: jmp toSpritePtr1 -//SEG15 toSpritePtr1 +//SEG14 toSpritePtr1 toSpritePtr1: jmp b33 -//SEG16 @33 +//SEG15 @33 b33: -//SEG17 [10] (byte) irq_sprite_ptr#0 ← (const byte) toSpritePtr1_return#0 -- vbuz1=vbuc1 +//SEG16 [9] (byte) irq_sprite_ptr#0 ← (const byte) toSpritePtr1_return#0 -- vbuz1=vbuc1 lda #toSpritePtr1_return sta irq_sprite_ptr -//SEG18 [11] (byte) irq_cnt#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- vbuz1=vbuc1 +//SEG17 [10] (byte) irq_cnt#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- vbuz1=vbuc1 lda #0 sta irq_cnt -//SEG19 [12] phi from @33 to @32 [phi:@33->@32] +//SEG18 [11] phi from @33 to @32 [phi:@33->@32] b32_from_b33: jmp b32 -//SEG20 @32 +//SEG19 @32 b32: -//SEG21 [13] call main -//SEG22 [15] phi from @32 to main [phi:@32->main] +//SEG20 [12] call main +//SEG21 [14] phi from @32 to main [phi:@32->main] main_from_b32: jsr main -//SEG23 [14] phi from @32 to @end [phi:@32->@end] +//SEG22 [13] phi from @32 to @end [phi:@32->@end] bend_from_b32: jmp bend -//SEG24 @end +//SEG23 @end bend: -//SEG25 main +//SEG24 main main: { .label key_event = $d - .label render = $20 - //SEG26 [16] call sid_rnd_init + .label render = $1e + //SEG25 [15] call sid_rnd_init jsr sid_rnd_init jmp b15 - //SEG27 main::@15 + //SEG26 main::@15 b15: - //SEG28 asm { sei } + //SEG27 asm { sei } sei - //SEG29 [18] call render_init - //SEG30 [374] phi from main::@15 to render_init [phi:main::@15->render_init] + //SEG28 [17] call render_init + //SEG29 [373] phi from main::@15 to render_init [phi:main::@15->render_init] render_init_from_b15: jsr render_init - //SEG31 [19] phi from main::@15 to main::@16 [phi:main::@15->main::@16] + //SEG30 [18] phi from main::@15 to main::@16 [phi:main::@15->main::@16] b16_from_b15: jmp b16 - //SEG32 main::@16 + //SEG31 main::@16 b16: - //SEG33 [20] call sprites_init + //SEG32 [19] call sprites_init jsr sprites_init - //SEG34 [21] phi from main::@16 to main::@17 [phi:main::@16->main::@17] + //SEG33 [20] phi from main::@16 to main::@17 [phi:main::@16->main::@17] b17_from_b16: jmp b17 - //SEG35 main::@17 + //SEG34 main::@17 b17: - //SEG36 [22] call sprites_irq_init + //SEG35 [21] call sprites_irq_init jsr sprites_irq_init - //SEG37 [23] phi from main::@17 to main::@18 [phi:main::@17->main::@18] + //SEG36 [22] phi from main::@17 to main::@18 [phi:main::@17->main::@18] b18_from_b17: jmp b18 - //SEG38 main::@18 + //SEG37 main::@18 b18: - //SEG39 [24] call play_init - //SEG40 [339] phi from main::@18 to play_init [phi:main::@18->play_init] + //SEG38 [23] call play_init + //SEG39 [338] phi from main::@18 to play_init [phi:main::@18->play_init] play_init_from_b18: jsr play_init - //SEG41 [25] phi from main::@18 to main::@19 [phi:main::@18->main::@19] + //SEG40 [24] phi from main::@18 to main::@19 [phi:main::@18->main::@19] b19_from_b18: jmp b19 - //SEG42 main::@19 + //SEG41 main::@19 b19: - //SEG43 [26] call play_spawn_current - //SEG44 [210] phi from main::@19 to play_spawn_current [phi:main::@19->play_spawn_current] + //SEG42 [25] call play_spawn_current + //SEG43 [209] phi from main::@19 to play_spawn_current [phi:main::@19->play_spawn_current] play_spawn_current_from_b19: jsr play_spawn_current - //SEG45 [27] phi from main::@19 to main::@20 [phi:main::@19->main::@20] + //SEG44 [26] phi from main::@19 to main::@20 [phi:main::@19->main::@20] b20_from_b19: jmp b20 - //SEG46 main::@20 + //SEG45 main::@20 b20: - //SEG47 [28] call render_playfield - //SEG48 [97] phi from main::@20 to render_playfield [phi:main::@20->render_playfield] + //SEG46 [27] call render_playfield + //SEG47 [96] phi from main::@20 to render_playfield [phi:main::@20->render_playfield] render_playfield_from_b20: - //SEG49 [97] phi (byte) render_screen_render#19 = (byte/signed byte/word/signed word/dword/signed dword) 64 [phi:main::@20->render_playfield#0] -- vbuxx=vbuc1 + //SEG48 [96] phi (byte) render_screen_render#19 = (byte/signed byte/word/signed word/dword/signed dword) 64 [phi:main::@20->render_playfield#0] -- vbuxx=vbuc1 ldx #$40 jsr render_playfield jmp b21 - //SEG50 main::@21 + //SEG49 main::@21 b21: - //SEG51 [29] (byte~) current_ypos#84 ← (byte) current_ypos#18 -- vbuyy=vbuz1 + //SEG50 [28] (byte~) current_ypos#84 ← (byte) current_ypos#18 -- vbuyy=vbuz1 ldy current_ypos - //SEG52 [30] (byte~) current_xpos#110 ← (byte) current_xpos#23 -- vbuz1=vbuz2 + //SEG51 [29] (byte~) current_xpos#110 ← (byte) current_xpos#23 -- vbuz1=vbuz2 lda current_xpos sta current_xpos_110 - //SEG53 [31] (byte*~) current_piece_gfx#100 ← (byte*) current_piece_gfx#16 -- pbuz1=pbuz2 + //SEG52 [30] (byte*~) current_piece_gfx#100 ← (byte*) current_piece_gfx#16 -- pbuz1=pbuz2 lda current_piece_gfx sta current_piece_gfx_100 lda current_piece_gfx+1 sta current_piece_gfx_100+1 - //SEG54 [32] (byte~) current_piece_char#88 ← (byte) current_piece_char#12 -- vbuxx=vbuz1 + //SEG53 [31] (byte~) current_piece_char#88 ← (byte) current_piece_char#12 -- vbuxx=vbuz1 ldx current_piece_char - //SEG55 [33] call render_current - //SEG56 [74] phi from main::@21 to render_current [phi:main::@21->render_current] + //SEG54 [32] call render_current + //SEG55 [73] phi from main::@21 to render_current [phi:main::@21->render_current] render_current_from_b21: - //SEG57 [74] phi (byte) current_piece_char#63 = (byte~) current_piece_char#88 [phi:main::@21->render_current#0] -- register_copy - //SEG58 [74] phi (byte*) current_piece_gfx#53 = (byte*~) current_piece_gfx#100 [phi:main::@21->render_current#1] -- register_copy - //SEG59 [74] phi (byte) current_xpos#47 = (byte~) current_xpos#110 [phi:main::@21->render_current#2] -- register_copy - //SEG60 [74] phi (byte) render_screen_render#28 = (byte/signed byte/word/signed word/dword/signed dword) 64 [phi:main::@21->render_current#3] -- vbuz1=vbuc1 + //SEG56 [73] phi (byte) current_piece_char#63 = (byte~) current_piece_char#88 [phi:main::@21->render_current#0] -- register_copy + //SEG57 [73] phi (byte*) current_piece_gfx#53 = (byte*~) current_piece_gfx#100 [phi:main::@21->render_current#1] -- register_copy + //SEG58 [73] phi (byte) current_xpos#47 = (byte~) current_xpos#110 [phi:main::@21->render_current#2] -- register_copy + //SEG59 [73] phi (byte) render_screen_render#28 = (byte/signed byte/word/signed word/dword/signed dword) 64 [phi:main::@21->render_current#3] -- vbuz1=vbuc1 lda #$40 sta render_screen_render_28 - //SEG61 [74] phi (byte) current_ypos#9 = (byte~) current_ypos#84 [phi:main::@21->render_current#4] -- register_copy + //SEG60 [73] phi (byte) current_ypos#9 = (byte~) current_ypos#84 [phi:main::@21->render_current#4] -- register_copy jsr render_current - //SEG62 [34] (byte*~) current_piece#71 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) -- pbuz1=pptc1_derefidx_vbuz2 + //SEG61 [33] (byte*~) current_piece#71 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) -- pbuz1=pptc1_derefidx_vbuz2 ldy play_spawn_current._3 lda PIECES,y sta current_piece lda PIECES+1,y sta current_piece+1 - //SEG63 [35] phi from main::@21 to main::@1 [phi:main::@21->main::@1] + //SEG62 [34] phi from main::@21 to main::@1 [phi:main::@21->main::@1] b1_from_b21: - //SEG64 [35] phi (byte) current_movedown_counter#12 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@21->main::@1#0] -- vbuz1=vbuc1 + //SEG63 [34] phi (byte) current_movedown_counter#12 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@21->main::@1#0] -- vbuz1=vbuc1 lda #0 sta current_movedown_counter - //SEG65 [35] phi (byte) keyboard_events_size#19 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@21->main::@1#1] -- vbuz1=vbuc1 + //SEG64 [34] phi (byte) keyboard_events_size#19 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@21->main::@1#1] -- vbuz1=vbuc1 lda #0 sta keyboard_events_size - //SEG66 [35] phi (byte) current_piece_char#15 = (byte) current_piece_char#12 [phi:main::@21->main::@1#2] -- register_copy - //SEG67 [35] phi (byte) current_ypos#21 = (byte) current_ypos#18 [phi:main::@21->main::@1#3] -- register_copy - //SEG68 [35] phi (byte) current_xpos#10 = (byte) current_xpos#23 [phi:main::@21->main::@1#4] -- register_copy - //SEG69 [35] phi (byte*) current_piece_gfx#20 = (byte*) current_piece_gfx#16 [phi:main::@21->main::@1#5] -- register_copy - //SEG70 [35] phi (byte) current_orientation#10 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@21->main::@1#6] -- vbuz1=vbuc1 + //SEG65 [34] phi (byte) current_piece_char#15 = (byte) current_piece_char#12 [phi:main::@21->main::@1#2] -- register_copy + //SEG66 [34] phi (byte) current_ypos#21 = (byte) current_ypos#18 [phi:main::@21->main::@1#3] -- register_copy + //SEG67 [34] phi (byte) current_xpos#10 = (byte) current_xpos#23 [phi:main::@21->main::@1#4] -- register_copy + //SEG68 [34] phi (byte*) current_piece_gfx#20 = (byte*) current_piece_gfx#16 [phi:main::@21->main::@1#5] -- register_copy + //SEG69 [34] phi (byte) current_orientation#10 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@21->main::@1#6] -- vbuz1=vbuc1 lda #0 sta current_orientation - //SEG71 [35] phi (byte*) current_piece#16 = (byte*~) current_piece#71 [phi:main::@21->main::@1#7] -- register_copy - //SEG72 [35] phi (byte) render_screen_render#16 = (byte/signed byte/word/signed word/dword/signed dword) 64 [phi:main::@21->main::@1#8] -- vbuz1=vbuc1 + //SEG70 [34] phi (byte*) current_piece#16 = (byte*~) current_piece#71 [phi:main::@21->main::@1#7] -- register_copy + //SEG71 [34] phi (byte) render_screen_render#16 = (byte/signed byte/word/signed word/dword/signed dword) 64 [phi:main::@21->main::@1#8] -- vbuz1=vbuc1 lda #$40 sta render_screen_render - //SEG73 [35] phi (byte) render_screen_show#16 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@21->main::@1#9] -- vbuz1=vbuc1 + //SEG72 [34] phi (byte) render_screen_show#16 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@21->main::@1#9] -- vbuz1=vbuc1 lda #0 sta render_screen_show jmp b1 - //SEG74 [35] phi from main::@28 to main::@1 [phi:main::@28->main::@1] + //SEG73 [34] phi from main::@28 to main::@1 [phi:main::@28->main::@1] b1_from_b28: - //SEG75 [35] phi (byte) current_movedown_counter#12 = (byte) current_movedown_counter#10 [phi:main::@28->main::@1#0] -- register_copy - //SEG76 [35] phi (byte) keyboard_events_size#19 = (byte) keyboard_events_size#16 [phi:main::@28->main::@1#1] -- register_copy - //SEG77 [35] phi (byte) current_piece_char#15 = (byte) current_piece_char#1 [phi:main::@28->main::@1#2] -- register_copy - //SEG78 [35] phi (byte) current_ypos#21 = (byte) current_ypos#13 [phi:main::@28->main::@1#3] -- register_copy - //SEG79 [35] phi (byte) current_xpos#10 = (byte) current_xpos#19 [phi:main::@28->main::@1#4] -- register_copy - //SEG80 [35] phi (byte*) current_piece_gfx#20 = (byte*) current_piece_gfx#14 [phi:main::@28->main::@1#5] -- register_copy - //SEG81 [35] phi (byte) current_orientation#10 = (byte) current_orientation#19 [phi:main::@28->main::@1#6] -- register_copy - //SEG82 [35] phi (byte*) current_piece#16 = (byte*) current_piece#10 [phi:main::@28->main::@1#7] -- register_copy + //SEG74 [34] phi (byte) current_movedown_counter#12 = (byte) current_movedown_counter#10 [phi:main::@28->main::@1#0] -- register_copy + //SEG75 [34] phi (byte) keyboard_events_size#19 = (byte) keyboard_events_size#16 [phi:main::@28->main::@1#1] -- register_copy + //SEG76 [34] phi (byte) current_piece_char#15 = (byte) current_piece_char#1 [phi:main::@28->main::@1#2] -- register_copy + //SEG77 [34] phi (byte) current_ypos#21 = (byte) current_ypos#13 [phi:main::@28->main::@1#3] -- register_copy + //SEG78 [34] phi (byte) current_xpos#10 = (byte) current_xpos#19 [phi:main::@28->main::@1#4] -- register_copy + //SEG79 [34] phi (byte*) current_piece_gfx#20 = (byte*) current_piece_gfx#14 [phi:main::@28->main::@1#5] -- register_copy + //SEG80 [34] phi (byte) current_orientation#10 = (byte) current_orientation#19 [phi:main::@28->main::@1#6] -- register_copy + //SEG81 [34] phi (byte*) current_piece#16 = (byte*) current_piece#10 [phi:main::@28->main::@1#7] -- register_copy jmp b1 - //SEG83 main::@1 + //SEG82 main::@1 b1: jmp b4 - //SEG84 main::@4 + //SEG83 main::@4 b4: - //SEG85 [36] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@4 -- _deref_pbuc1_neq_vbuc2_then_la1 + //SEG84 [35] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@4 -- _deref_pbuc1_neq_vbuc2_then_la1 lda RASTER cmp #$ff bne b4 - //SEG86 [37] phi from main::@4 to main::@6 [phi:main::@4->main::@6] + //SEG85 [36] phi from main::@4 to main::@6 [phi:main::@4->main::@6] b6_from_b4: jmp b6 - //SEG87 main::@6 + //SEG86 main::@6 b6: - //SEG88 [38] call render_show + //SEG87 [37] call render_show jsr render_show - //SEG89 [39] phi from main::@6 to main::@23 [phi:main::@6->main::@23] + //SEG88 [38] phi from main::@6 to main::@23 [phi:main::@6->main::@23] b23_from_b6: jmp b23 - //SEG90 main::@23 + //SEG89 main::@23 b23: - //SEG91 [40] call keyboard_event_scan - //SEG92 [276] phi from main::@23 to keyboard_event_scan [phi:main::@23->keyboard_event_scan] + //SEG90 [39] call keyboard_event_scan + //SEG91 [275] phi from main::@23 to keyboard_event_scan [phi:main::@23->keyboard_event_scan] keyboard_event_scan_from_b23: jsr keyboard_event_scan - //SEG93 [41] phi from main::@23 to main::@24 [phi:main::@23->main::@24] + //SEG92 [40] phi from main::@23 to main::@24 [phi:main::@23->main::@24] b24_from_b23: jmp b24 - //SEG94 main::@24 + //SEG93 main::@24 b24: - //SEG95 [42] call keyboard_event_get + //SEG94 [41] call keyboard_event_get jsr keyboard_event_get - //SEG96 [43] (byte) keyboard_event_get::return#3 ← (byte) keyboard_event_get::return#2 + //SEG95 [42] (byte) keyboard_event_get::return#3 ← (byte) keyboard_event_get::return#2 // (byte) keyboard_event_get::return#3 = (byte) keyboard_event_get::return#2 // register copy reg byte a jmp b25 - //SEG97 main::@25 + //SEG96 main::@25 b25: - //SEG98 [44] (byte) main::key_event#0 ← (byte) keyboard_event_get::return#3 -- vbuz1=vbuaa + //SEG97 [43] (byte) main::key_event#0 ← (byte) keyboard_event_get::return#3 -- vbuz1=vbuaa sta key_event - //SEG99 [45] (byte) play_move_down::key_event#0 ← (byte) main::key_event#0 -- vbuaa=vbuz1 + //SEG98 [44] (byte) play_move_down::key_event#0 ← (byte) main::key_event#0 -- vbuaa=vbuz1 lda key_event - //SEG100 [46] call play_move_down + //SEG99 [45] call play_move_down jsr play_move_down - //SEG101 [47] (byte) play_move_down::return#3 ← (byte) play_move_down::return#2 -- vbuaa=vbuxx + //SEG100 [46] (byte) play_move_down::return#3 ← (byte) play_move_down::return#2 -- vbuaa=vbuxx txa jmp b26 - //SEG102 main::@26 + //SEG101 main::@26 b26: - //SEG103 [48] (byte~) main::$12 ← (byte) play_move_down::return#3 + //SEG102 [47] (byte~) main::$12 ← (byte) play_move_down::return#3 // (byte~) main::$12 = (byte) play_move_down::return#3 // register copy reg byte a - //SEG104 [49] (byte) main::render#1 ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte~) main::$12 -- vbuz1=vbuc1_plus_vbuaa + //SEG103 [48] (byte) main::render#1 ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte~) main::$12 -- vbuz1=vbuc1_plus_vbuaa clc adc #0 sta render - //SEG105 [50] (byte) play_move_leftright::key_event#0 ← (byte) main::key_event#0 -- vbuaa=vbuz1 + //SEG104 [49] (byte) play_move_leftright::key_event#0 ← (byte) main::key_event#0 -- vbuaa=vbuz1 lda key_event - //SEG106 [51] call play_move_leftright + //SEG105 [50] call play_move_leftright jsr play_move_leftright - //SEG107 [52] (byte) play_move_leftright::return#4 ← (byte) play_move_leftright::return#1 + //SEG106 [51] (byte) play_move_leftright::return#4 ← (byte) play_move_leftright::return#1 // (byte) play_move_leftright::return#4 = (byte) play_move_leftright::return#1 // register copy reg byte a jmp b27 - //SEG108 main::@27 + //SEG107 main::@27 b27: - //SEG109 [53] (byte~) main::$13 ← (byte) play_move_leftright::return#4 + //SEG108 [52] (byte~) main::$13 ← (byte) play_move_leftright::return#4 // (byte~) main::$13 = (byte) play_move_leftright::return#4 // register copy reg byte a - //SEG110 [54] (byte) main::render#2 ← (byte) main::render#1 + (byte~) main::$13 -- vbuz1=vbuz1_plus_vbuaa + //SEG109 [53] (byte) main::render#2 ← (byte) main::render#1 + (byte~) main::$13 -- vbuz1=vbuz1_plus_vbuaa clc adc render sta render - //SEG111 [55] (byte) play_move_rotate::key_event#0 ← (byte) main::key_event#0 -- vbuaa=vbuz1 + //SEG110 [54] (byte) play_move_rotate::key_event#0 ← (byte) main::key_event#0 -- vbuaa=vbuz1 lda key_event - //SEG112 [56] call play_move_rotate + //SEG111 [55] call play_move_rotate jsr play_move_rotate - //SEG113 [57] (byte) play_move_rotate::return#4 ← (byte) play_move_rotate::return#1 + //SEG112 [56] (byte) play_move_rotate::return#4 ← (byte) play_move_rotate::return#1 // (byte) play_move_rotate::return#4 = (byte) play_move_rotate::return#1 // register copy reg byte a jmp b28 - //SEG114 main::@28 + //SEG113 main::@28 b28: - //SEG115 [58] (byte~) main::$14 ← (byte) play_move_rotate::return#4 + //SEG114 [57] (byte~) main::$14 ← (byte) play_move_rotate::return#4 // (byte~) main::$14 = (byte) play_move_rotate::return#4 // register copy reg byte a - //SEG116 [59] (byte) main::render#3 ← (byte) main::render#2 + (byte~) main::$14 -- vbuaa=vbuz1_plus_vbuaa + //SEG115 [58] (byte) main::render#3 ← (byte) main::render#2 + (byte~) main::$14 -- vbuaa=vbuz1_plus_vbuaa clc adc render - //SEG117 [60] if((byte) main::render#3==(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@1 -- vbuaa_eq_0_then_la1 + //SEG116 [59] if((byte) main::render#3==(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@1 -- vbuaa_eq_0_then_la1 cmp #0 beq b1_from_b28 jmp b13 - //SEG118 main::@13 + //SEG117 main::@13 b13: - //SEG119 [61] (byte~) render_screen_render#63 ← (byte) render_screen_render#16 -- vbuxx=vbuz1 + //SEG118 [60] (byte~) render_screen_render#63 ← (byte) render_screen_render#16 -- vbuxx=vbuz1 ldx render_screen_render - //SEG120 [62] call render_playfield - //SEG121 [97] phi from main::@13 to render_playfield [phi:main::@13->render_playfield] + //SEG119 [61] call render_playfield + //SEG120 [96] phi from main::@13 to render_playfield [phi:main::@13->render_playfield] render_playfield_from_b13: - //SEG122 [97] phi (byte) render_screen_render#19 = (byte~) render_screen_render#63 [phi:main::@13->render_playfield#0] -- register_copy + //SEG121 [96] phi (byte) render_screen_render#19 = (byte~) render_screen_render#63 [phi:main::@13->render_playfield#0] -- register_copy jsr render_playfield jmp b29 - //SEG123 main::@29 + //SEG122 main::@29 b29: - //SEG124 [63] (byte~) current_ypos#85 ← (byte) current_ypos#13 -- vbuyy=vbuz1 + //SEG123 [62] (byte~) current_ypos#85 ← (byte) current_ypos#13 -- vbuyy=vbuz1 ldy current_ypos - //SEG125 [64] (byte~) render_screen_render#62 ← (byte) render_screen_render#16 -- vbuz1=vbuz2 + //SEG124 [63] (byte~) render_screen_render#62 ← (byte) render_screen_render#16 -- vbuz1=vbuz2 lda render_screen_render sta render_screen_render_62 - //SEG126 [65] (byte~) current_xpos#111 ← (byte) current_xpos#19 -- vbuz1=vbuz2 + //SEG125 [64] (byte~) current_xpos#111 ← (byte) current_xpos#19 -- vbuz1=vbuz2 lda current_xpos sta current_xpos_111 - //SEG127 [66] (byte*~) current_piece_gfx#101 ← (byte*) current_piece_gfx#14 -- pbuz1=pbuz2 + //SEG126 [65] (byte*~) current_piece_gfx#101 ← (byte*) current_piece_gfx#14 -- pbuz1=pbuz2 lda current_piece_gfx sta current_piece_gfx_101 lda current_piece_gfx+1 sta current_piece_gfx_101+1 - //SEG128 [67] (byte~) current_piece_char#89 ← (byte) current_piece_char#1 -- vbuxx=vbuz1 + //SEG127 [66] (byte~) current_piece_char#89 ← (byte) current_piece_char#1 -- vbuxx=vbuz1 ldx current_piece_char - //SEG129 [68] call render_current - //SEG130 [74] phi from main::@29 to render_current [phi:main::@29->render_current] + //SEG128 [67] call render_current + //SEG129 [73] phi from main::@29 to render_current [phi:main::@29->render_current] render_current_from_b29: - //SEG131 [74] phi (byte) current_piece_char#63 = (byte~) current_piece_char#89 [phi:main::@29->render_current#0] -- register_copy - //SEG132 [74] phi (byte*) current_piece_gfx#53 = (byte*~) current_piece_gfx#101 [phi:main::@29->render_current#1] -- register_copy - //SEG133 [74] phi (byte) current_xpos#47 = (byte~) current_xpos#111 [phi:main::@29->render_current#2] -- register_copy - //SEG134 [74] phi (byte) render_screen_render#28 = (byte~) render_screen_render#62 [phi:main::@29->render_current#3] -- register_copy - //SEG135 [74] phi (byte) current_ypos#9 = (byte~) current_ypos#85 [phi:main::@29->render_current#4] -- register_copy + //SEG130 [73] phi (byte) current_piece_char#63 = (byte~) current_piece_char#89 [phi:main::@29->render_current#0] -- register_copy + //SEG131 [73] phi (byte*) current_piece_gfx#53 = (byte*~) current_piece_gfx#101 [phi:main::@29->render_current#1] -- register_copy + //SEG132 [73] phi (byte) current_xpos#47 = (byte~) current_xpos#111 [phi:main::@29->render_current#2] -- register_copy + //SEG133 [73] phi (byte) render_screen_render#28 = (byte~) render_screen_render#62 [phi:main::@29->render_current#3] -- register_copy + //SEG134 [73] phi (byte) current_ypos#9 = (byte~) current_ypos#85 [phi:main::@29->render_current#4] -- register_copy jsr render_current - //SEG136 [69] phi from main::@29 to main::@30 [phi:main::@29->main::@30] + //SEG135 [68] phi from main::@29 to main::@30 [phi:main::@29->main::@30] b30_from_b29: jmp b30 - //SEG137 main::@30 + //SEG136 main::@30 b30: - //SEG138 [70] call render_screen_swap + //SEG137 [69] call render_screen_swap jsr render_screen_swap - //SEG139 [35] phi from main::@30 to main::@1 [phi:main::@30->main::@1] + //SEG138 [34] phi from main::@30 to main::@1 [phi:main::@30->main::@1] b1_from_b30: - //SEG140 [35] phi (byte) current_movedown_counter#12 = (byte) current_movedown_counter#10 [phi:main::@30->main::@1#0] -- register_copy - //SEG141 [35] phi (byte) keyboard_events_size#19 = (byte) keyboard_events_size#16 [phi:main::@30->main::@1#1] -- register_copy - //SEG142 [35] phi (byte) current_piece_char#15 = (byte) current_piece_char#1 [phi:main::@30->main::@1#2] -- register_copy - //SEG143 [35] phi (byte) current_ypos#21 = (byte) current_ypos#13 [phi:main::@30->main::@1#3] -- register_copy - //SEG144 [35] phi (byte) current_xpos#10 = (byte) current_xpos#19 [phi:main::@30->main::@1#4] -- register_copy - //SEG145 [35] phi (byte*) current_piece_gfx#20 = (byte*) current_piece_gfx#14 [phi:main::@30->main::@1#5] -- register_copy - //SEG146 [35] phi (byte) current_orientation#10 = (byte) current_orientation#19 [phi:main::@30->main::@1#6] -- register_copy - //SEG147 [35] phi (byte*) current_piece#16 = (byte*) current_piece#10 [phi:main::@30->main::@1#7] -- register_copy - //SEG148 [35] phi (byte) render_screen_render#16 = (byte) render_screen_render#11 [phi:main::@30->main::@1#8] -- register_copy - //SEG149 [35] phi (byte) render_screen_show#16 = (byte) render_screen_show#13 [phi:main::@30->main::@1#9] -- register_copy + //SEG139 [34] phi (byte) current_movedown_counter#12 = (byte) current_movedown_counter#10 [phi:main::@30->main::@1#0] -- register_copy + //SEG140 [34] phi (byte) keyboard_events_size#19 = (byte) keyboard_events_size#16 [phi:main::@30->main::@1#1] -- register_copy + //SEG141 [34] phi (byte) current_piece_char#15 = (byte) current_piece_char#1 [phi:main::@30->main::@1#2] -- register_copy + //SEG142 [34] phi (byte) current_ypos#21 = (byte) current_ypos#13 [phi:main::@30->main::@1#3] -- register_copy + //SEG143 [34] phi (byte) current_xpos#10 = (byte) current_xpos#19 [phi:main::@30->main::@1#4] -- register_copy + //SEG144 [34] phi (byte*) current_piece_gfx#20 = (byte*) current_piece_gfx#14 [phi:main::@30->main::@1#5] -- register_copy + //SEG145 [34] phi (byte) current_orientation#10 = (byte) current_orientation#19 [phi:main::@30->main::@1#6] -- register_copy + //SEG146 [34] phi (byte*) current_piece#16 = (byte*) current_piece#10 [phi:main::@30->main::@1#7] -- register_copy + //SEG147 [34] phi (byte) render_screen_render#16 = (byte) render_screen_render#11 [phi:main::@30->main::@1#8] -- register_copy + //SEG148 [34] phi (byte) render_screen_show#16 = (byte) render_screen_show#13 [phi:main::@30->main::@1#9] -- register_copy jmp b1 } -//SEG150 render_screen_swap +//SEG149 render_screen_swap render_screen_swap: { - //SEG151 [71] (byte) render_screen_render#11 ← (byte) render_screen_render#16 ^ (byte/signed byte/word/signed word/dword/signed dword) 64 -- vbuz1=vbuz1_bxor_vbuc1 + //SEG150 [70] (byte) render_screen_render#11 ← (byte) render_screen_render#16 ^ (byte/signed byte/word/signed word/dword/signed dword) 64 -- vbuz1=vbuz1_bxor_vbuc1 lda render_screen_render eor #$40 sta render_screen_render - //SEG152 [72] (byte) render_screen_show#13 ← (byte) render_screen_show#16 ^ (byte/signed byte/word/signed word/dword/signed dword) 64 -- vbuz1=vbuz1_bxor_vbuc1 + //SEG151 [71] (byte) render_screen_show#13 ← (byte) render_screen_show#16 ^ (byte/signed byte/word/signed word/dword/signed dword) 64 -- vbuz1=vbuz1_bxor_vbuc1 lda render_screen_show eor #$40 sta render_screen_show jmp breturn - //SEG153 render_screen_swap::@return + //SEG152 render_screen_swap::@return breturn: - //SEG154 [73] return + //SEG153 [72] return rts } -//SEG155 render_current +//SEG154 render_current render_current: { .label ypos2 = 9 .label screen_line = $17 @@ -13387,299 +13252,299 @@ render_current: { .label i = $b .label l = $a .label c = $d - //SEG156 [75] (byte) render_current::ypos2#0 ← (byte) current_ypos#9 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuyy_rol_1 + //SEG155 [74] (byte) render_current::ypos2#0 ← (byte) current_ypos#9 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuyy_rol_1 tya asl sta ypos2 - //SEG157 [76] phi from render_current to render_current::@1 [phi:render_current->render_current::@1] + //SEG156 [75] phi from render_current to render_current::@1 [phi:render_current->render_current::@1] b1_from_render_current: - //SEG158 [76] phi (byte) render_current::l#4 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_current->render_current::@1#0] -- vbuz1=vbuc1 + //SEG157 [75] phi (byte) render_current::l#4 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_current->render_current::@1#0] -- vbuz1=vbuc1 lda #0 sta l - //SEG159 [76] phi (byte) render_current::i#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_current->render_current::@1#1] -- vbuz1=vbuc1 + //SEG158 [75] phi (byte) render_current::i#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_current->render_current::@1#1] -- vbuz1=vbuc1 lda #0 sta i - //SEG160 [76] phi (byte) render_current::ypos2#2 = (byte) render_current::ypos2#0 [phi:render_current->render_current::@1#2] -- register_copy + //SEG159 [75] phi (byte) render_current::ypos2#2 = (byte) render_current::ypos2#0 [phi:render_current->render_current::@1#2] -- register_copy jmp b1 - //SEG161 [76] phi from render_current::@3 to render_current::@1 [phi:render_current::@3->render_current::@1] + //SEG160 [75] phi from render_current::@3 to render_current::@1 [phi:render_current::@3->render_current::@1] b1_from_b3: - //SEG162 [76] phi (byte) render_current::l#4 = (byte) render_current::l#1 [phi:render_current::@3->render_current::@1#0] -- register_copy - //SEG163 [76] phi (byte) render_current::i#3 = (byte) render_current::i#8 [phi:render_current::@3->render_current::@1#1] -- register_copy - //SEG164 [76] phi (byte) render_current::ypos2#2 = (byte) render_current::ypos2#1 [phi:render_current::@3->render_current::@1#2] -- register_copy + //SEG161 [75] phi (byte) render_current::l#4 = (byte) render_current::l#1 [phi:render_current::@3->render_current::@1#0] -- register_copy + //SEG162 [75] phi (byte) render_current::i#3 = (byte) render_current::i#8 [phi:render_current::@3->render_current::@1#1] -- register_copy + //SEG163 [75] phi (byte) render_current::ypos2#2 = (byte) render_current::ypos2#1 [phi:render_current::@3->render_current::@1#2] -- register_copy jmp b1 - //SEG165 render_current::@1 + //SEG164 render_current::@1 b1: - //SEG166 [77] if((byte) render_current::ypos2#2>(byte/signed byte/word/signed word/dword/signed dword) 2) goto render_current::@13 -- vbuz1_gt_vbuc1_then_la1 + //SEG165 [76] if((byte) render_current::ypos2#2>(byte/signed byte/word/signed word/dword/signed dword) 2) goto render_current::@13 -- vbuz1_gt_vbuc1_then_la1 lda ypos2 cmp #2 beq !+ bcs b13 !: jmp b7 - //SEG167 render_current::@7 + //SEG166 render_current::@7 b7: - //SEG168 [78] (byte) render_current::i#1 ← (byte) render_current::i#3 + (byte/signed byte/word/signed word/dword/signed dword) 4 -- vbuz1=vbuz1_plus_vbuc1 + //SEG167 [77] (byte) render_current::i#1 ← (byte) render_current::i#3 + (byte/signed byte/word/signed word/dword/signed dword) 4 -- vbuz1=vbuz1_plus_vbuc1 lda #4 clc adc i sta i - //SEG169 [79] phi from render_current::@5 render_current::@7 to render_current::@3 [phi:render_current::@5/render_current::@7->render_current::@3] + //SEG168 [78] phi from render_current::@5 render_current::@7 to render_current::@3 [phi:render_current::@5/render_current::@7->render_current::@3] b3_from_b5: b3_from_b7: - //SEG170 [79] phi (byte) render_current::i#8 = (byte) render_current::i#10 [phi:render_current::@5/render_current::@7->render_current::@3#0] -- register_copy + //SEG169 [78] phi (byte) render_current::i#8 = (byte) render_current::i#10 [phi:render_current::@5/render_current::@7->render_current::@3#0] -- register_copy jmp b3 - //SEG171 render_current::@3 + //SEG170 render_current::@3 b3: - //SEG172 [80] (byte) render_current::ypos2#1 ← (byte) render_current::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 -- vbuz1=vbuz1_plus_2 + //SEG171 [79] (byte) render_current::ypos2#1 ← (byte) render_current::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 -- vbuz1=vbuz1_plus_2 lda ypos2 clc adc #2 sta ypos2 - //SEG173 [81] (byte) render_current::l#1 ← ++ (byte) render_current::l#4 -- vbuz1=_inc_vbuz1 + //SEG172 [80] (byte) render_current::l#1 ← ++ (byte) render_current::l#4 -- vbuz1=_inc_vbuz1 inc l - //SEG174 [82] if((byte) render_current::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_current::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG173 [81] if((byte) render_current::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_current::@1 -- vbuz1_neq_vbuc1_then_la1 lda l cmp #4 bne b1_from_b3 jmp breturn - //SEG175 render_current::@return + //SEG174 render_current::@return breturn: - //SEG176 [83] return + //SEG175 [82] return rts - //SEG177 render_current::@13 + //SEG176 render_current::@13 b13: - //SEG178 [84] if((byte) render_current::ypos2#2<(byte/signed byte/word/signed word/dword/signed dword) 2*(const byte) PLAYFIELD_LINES#0) goto render_current::@2 -- vbuz1_lt_vbuc1_then_la1 + //SEG177 [83] if((byte) render_current::ypos2#2<(byte/signed byte/word/signed word/dword/signed dword) 2*(const byte) PLAYFIELD_LINES#0) goto render_current::@2 -- vbuz1_lt_vbuc1_then_la1 lda ypos2 cmp #2*PLAYFIELD_LINES bcc b2 jmp b7 - //SEG179 render_current::@2 + //SEG178 render_current::@2 b2: - //SEG180 [85] (byte~) render_current::$5 ← (byte) render_screen_render#28 + (byte) render_current::ypos2#2 -- vbuaa=vbuz1_plus_vbuz2 + //SEG179 [84] (byte~) render_current::$5 ← (byte) render_screen_render#28 + (byte) render_current::ypos2#2 -- vbuaa=vbuz1_plus_vbuz2 lda render_screen_render_28 clc adc ypos2 - //SEG181 [86] (byte*) render_current::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) screen_lines_1#0 + (byte~) render_current::$5) -- pbuz1=pptc1_derefidx_vbuaa + //SEG180 [85] (byte*) render_current::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) screen_lines_1#0 + (byte~) render_current::$5) -- pbuz1=pptc1_derefidx_vbuaa tay lda screen_lines_1,y sta screen_line lda screen_lines_1+1,y sta screen_line+1 - //SEG182 [87] (byte) render_current::xpos#0 ← (byte) current_xpos#47 -- vbuz1=vbuz2 + //SEG181 [86] (byte) render_current::xpos#0 ← (byte) current_xpos#47 -- vbuz1=vbuz2 lda current_xpos_47 sta xpos - //SEG183 [88] phi from render_current::@2 to render_current::@4 [phi:render_current::@2->render_current::@4] + //SEG182 [87] phi from render_current::@2 to render_current::@4 [phi:render_current::@2->render_current::@4] b4_from_b2: - //SEG184 [88] phi (byte) render_current::c#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_current::@2->render_current::@4#0] -- vbuz1=vbuc1 + //SEG183 [87] phi (byte) render_current::c#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_current::@2->render_current::@4#0] -- vbuz1=vbuc1 lda #0 sta c - //SEG185 [88] phi (byte) render_current::xpos#2 = (byte) render_current::xpos#0 [phi:render_current::@2->render_current::@4#1] -- register_copy - //SEG186 [88] phi (byte) render_current::i#4 = (byte) render_current::i#3 [phi:render_current::@2->render_current::@4#2] -- register_copy + //SEG184 [87] phi (byte) render_current::xpos#2 = (byte) render_current::xpos#0 [phi:render_current::@2->render_current::@4#1] -- register_copy + //SEG185 [87] phi (byte) render_current::i#4 = (byte) render_current::i#3 [phi:render_current::@2->render_current::@4#2] -- register_copy jmp b4 - //SEG187 [88] phi from render_current::@5 to render_current::@4 [phi:render_current::@5->render_current::@4] + //SEG186 [87] phi from render_current::@5 to render_current::@4 [phi:render_current::@5->render_current::@4] b4_from_b5: - //SEG188 [88] phi (byte) render_current::c#2 = (byte) render_current::c#1 [phi:render_current::@5->render_current::@4#0] -- register_copy - //SEG189 [88] phi (byte) render_current::xpos#2 = (byte) render_current::xpos#1 [phi:render_current::@5->render_current::@4#1] -- register_copy - //SEG190 [88] phi (byte) render_current::i#4 = (byte) render_current::i#10 [phi:render_current::@5->render_current::@4#2] -- register_copy + //SEG187 [87] phi (byte) render_current::c#2 = (byte) render_current::c#1 [phi:render_current::@5->render_current::@4#0] -- register_copy + //SEG188 [87] phi (byte) render_current::xpos#2 = (byte) render_current::xpos#1 [phi:render_current::@5->render_current::@4#1] -- register_copy + //SEG189 [87] phi (byte) render_current::i#4 = (byte) render_current::i#10 [phi:render_current::@5->render_current::@4#2] -- register_copy jmp b4 - //SEG191 render_current::@4 + //SEG190 render_current::@4 b4: - //SEG192 [89] (byte) render_current::current_cell#0 ← *((byte*) current_piece_gfx#53 + (byte) render_current::i#4) -- vbuaa=pbuz1_derefidx_vbuz2 + //SEG191 [88] (byte) render_current::current_cell#0 ← *((byte*) current_piece_gfx#53 + (byte) render_current::i#4) -- vbuaa=pbuz1_derefidx_vbuz2 ldy i lda (current_piece_gfx_53),y - //SEG193 [90] (byte) render_current::i#10 ← ++ (byte) render_current::i#4 -- vbuz1=_inc_vbuz1 + //SEG192 [89] (byte) render_current::i#10 ← ++ (byte) render_current::i#4 -- vbuz1=_inc_vbuz1 inc i - //SEG194 [91] if((byte) render_current::current_cell#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto render_current::@5 -- vbuaa_eq_0_then_la1 + //SEG193 [90] if((byte) render_current::current_cell#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto render_current::@5 -- vbuaa_eq_0_then_la1 cmp #0 beq b5 jmp b9 - //SEG195 render_current::@9 + //SEG194 render_current::@9 b9: - //SEG196 [92] if((byte) render_current::xpos#2>=(const byte) PLAYFIELD_COLS#0) goto render_current::@5 -- vbuz1_ge_vbuc1_then_la1 + //SEG195 [91] if((byte) render_current::xpos#2>=(const byte) PLAYFIELD_COLS#0) goto render_current::@5 -- vbuz1_ge_vbuc1_then_la1 lda xpos cmp #PLAYFIELD_COLS bcs b5 jmp b10 - //SEG197 render_current::@10 + //SEG196 render_current::@10 b10: - //SEG198 [93] *((byte*) render_current::screen_line#0 + (byte) render_current::xpos#2) ← (byte) current_piece_char#63 -- pbuz1_derefidx_vbuz2=vbuxx + //SEG197 [92] *((byte*) render_current::screen_line#0 + (byte) render_current::xpos#2) ← (byte) current_piece_char#63 -- pbuz1_derefidx_vbuz2=vbuxx ldy xpos txa sta (screen_line),y jmp b5 - //SEG199 render_current::@5 + //SEG198 render_current::@5 b5: - //SEG200 [94] (byte) render_current::xpos#1 ← ++ (byte) render_current::xpos#2 -- vbuz1=_inc_vbuz1 + //SEG199 [93] (byte) render_current::xpos#1 ← ++ (byte) render_current::xpos#2 -- vbuz1=_inc_vbuz1 inc xpos - //SEG201 [95] (byte) render_current::c#1 ← ++ (byte) render_current::c#2 -- vbuz1=_inc_vbuz1 + //SEG200 [94] (byte) render_current::c#1 ← ++ (byte) render_current::c#2 -- vbuz1=_inc_vbuz1 inc c - //SEG202 [96] if((byte) render_current::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_current::@4 -- vbuz1_neq_vbuc1_then_la1 + //SEG201 [95] if((byte) render_current::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_current::@4 -- vbuz1_neq_vbuc1_then_la1 lda c cmp #4 bne b4_from_b5 jmp b3_from_b5 } -//SEG203 render_playfield +//SEG202 render_playfield render_playfield: { .label screen_line = 7 .label i = 6 .label c = 9 .label l = 5 - //SEG204 [98] phi from render_playfield to render_playfield::@1 [phi:render_playfield->render_playfield::@1] + //SEG203 [97] phi from render_playfield to render_playfield::@1 [phi:render_playfield->render_playfield::@1] b1_from_render_playfield: - //SEG205 [98] phi (byte) render_playfield::i#3 = (const byte) PLAYFIELD_COLS#0*(byte/signed byte/word/signed word/dword/signed dword) 2 [phi:render_playfield->render_playfield::@1#0] -- vbuz1=vbuc1 + //SEG204 [97] phi (byte) render_playfield::i#3 = (const byte) PLAYFIELD_COLS#0*(byte/signed byte/word/signed word/dword/signed dword) 2 [phi:render_playfield->render_playfield::@1#0] -- vbuz1=vbuc1 lda #PLAYFIELD_COLS*2 sta i - //SEG206 [98] phi (byte) render_playfield::l#2 = (byte/signed byte/word/signed word/dword/signed dword) 2 [phi:render_playfield->render_playfield::@1#1] -- vbuz1=vbuc1 + //SEG205 [97] phi (byte) render_playfield::l#2 = (byte/signed byte/word/signed word/dword/signed dword) 2 [phi:render_playfield->render_playfield::@1#1] -- vbuz1=vbuc1 lda #2 sta l jmp b1 - //SEG207 [98] phi from render_playfield::@3 to render_playfield::@1 [phi:render_playfield::@3->render_playfield::@1] + //SEG206 [97] phi from render_playfield::@3 to render_playfield::@1 [phi:render_playfield::@3->render_playfield::@1] b1_from_b3: - //SEG208 [98] phi (byte) render_playfield::i#3 = (byte) render_playfield::i#1 [phi:render_playfield::@3->render_playfield::@1#0] -- register_copy - //SEG209 [98] phi (byte) render_playfield::l#2 = (byte) render_playfield::l#1 [phi:render_playfield::@3->render_playfield::@1#1] -- register_copy + //SEG207 [97] phi (byte) render_playfield::i#3 = (byte) render_playfield::i#1 [phi:render_playfield::@3->render_playfield::@1#0] -- register_copy + //SEG208 [97] phi (byte) render_playfield::l#2 = (byte) render_playfield::l#1 [phi:render_playfield::@3->render_playfield::@1#1] -- register_copy jmp b1 - //SEG210 render_playfield::@1 + //SEG209 render_playfield::@1 b1: - //SEG211 [99] (byte~) render_playfield::$2 ← (byte) render_playfield::l#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuaa=vbuz1_rol_1 + //SEG210 [98] (byte~) render_playfield::$2 ← (byte) render_playfield::l#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuaa=vbuz1_rol_1 lda l asl - //SEG212 [100] (byte~) render_playfield::$3 ← (byte) render_screen_render#19 + (byte~) render_playfield::$2 -- vbuaa=vbuxx_plus_vbuaa + //SEG211 [99] (byte~) render_playfield::$3 ← (byte) render_screen_render#19 + (byte~) render_playfield::$2 -- vbuaa=vbuxx_plus_vbuaa stx $ff clc adc $ff - //SEG213 [101] (byte*) render_playfield::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) screen_lines_1#0 + (byte~) render_playfield::$3) -- pbuz1=pptc1_derefidx_vbuaa + //SEG212 [100] (byte*) render_playfield::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) screen_lines_1#0 + (byte~) render_playfield::$3) -- pbuz1=pptc1_derefidx_vbuaa tay lda screen_lines_1,y sta screen_line lda screen_lines_1+1,y sta screen_line+1 - //SEG214 [102] phi from render_playfield::@1 to render_playfield::@2 [phi:render_playfield::@1->render_playfield::@2] + //SEG213 [101] phi from render_playfield::@1 to render_playfield::@2 [phi:render_playfield::@1->render_playfield::@2] b2_from_b1: - //SEG215 [102] phi (byte) render_playfield::c#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_playfield::@1->render_playfield::@2#0] -- vbuz1=vbuc1 + //SEG214 [101] phi (byte) render_playfield::c#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_playfield::@1->render_playfield::@2#0] -- vbuz1=vbuc1 lda #0 sta c - //SEG216 [102] phi (byte*) render_playfield::screen_line#2 = (byte*) render_playfield::screen_line#0 [phi:render_playfield::@1->render_playfield::@2#1] -- register_copy - //SEG217 [102] phi (byte) render_playfield::i#2 = (byte) render_playfield::i#3 [phi:render_playfield::@1->render_playfield::@2#2] -- register_copy + //SEG215 [101] phi (byte*) render_playfield::screen_line#2 = (byte*) render_playfield::screen_line#0 [phi:render_playfield::@1->render_playfield::@2#1] -- register_copy + //SEG216 [101] phi (byte) render_playfield::i#2 = (byte) render_playfield::i#3 [phi:render_playfield::@1->render_playfield::@2#2] -- register_copy jmp b2 - //SEG218 [102] phi from render_playfield::@2 to render_playfield::@2 [phi:render_playfield::@2->render_playfield::@2] + //SEG217 [101] phi from render_playfield::@2 to render_playfield::@2 [phi:render_playfield::@2->render_playfield::@2] b2_from_b2: - //SEG219 [102] phi (byte) render_playfield::c#2 = (byte) render_playfield::c#1 [phi:render_playfield::@2->render_playfield::@2#0] -- register_copy - //SEG220 [102] phi (byte*) render_playfield::screen_line#2 = (byte*) render_playfield::screen_line#1 [phi:render_playfield::@2->render_playfield::@2#1] -- register_copy - //SEG221 [102] phi (byte) render_playfield::i#2 = (byte) render_playfield::i#1 [phi:render_playfield::@2->render_playfield::@2#2] -- register_copy + //SEG218 [101] phi (byte) render_playfield::c#2 = (byte) render_playfield::c#1 [phi:render_playfield::@2->render_playfield::@2#0] -- register_copy + //SEG219 [101] phi (byte*) render_playfield::screen_line#2 = (byte*) render_playfield::screen_line#1 [phi:render_playfield::@2->render_playfield::@2#1] -- register_copy + //SEG220 [101] phi (byte) render_playfield::i#2 = (byte) render_playfield::i#1 [phi:render_playfield::@2->render_playfield::@2#2] -- register_copy jmp b2 - //SEG222 render_playfield::@2 + //SEG221 render_playfield::@2 b2: - //SEG223 [103] *((byte*) render_playfield::screen_line#2) ← *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) render_playfield::i#2) -- _deref_pbuz1=pbuc1_derefidx_vbuz2 + //SEG222 [102] *((byte*) render_playfield::screen_line#2) ← *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) render_playfield::i#2) -- _deref_pbuz1=pbuc1_derefidx_vbuz2 ldy i lda playfield,y ldy #0 sta (screen_line),y - //SEG224 [104] (byte*) render_playfield::screen_line#1 ← ++ (byte*) render_playfield::screen_line#2 -- pbuz1=_inc_pbuz1 + //SEG223 [103] (byte*) render_playfield::screen_line#1 ← ++ (byte*) render_playfield::screen_line#2 -- pbuz1=_inc_pbuz1 inc screen_line bne !+ inc screen_line+1 !: - //SEG225 [105] (byte) render_playfield::i#1 ← ++ (byte) render_playfield::i#2 -- vbuz1=_inc_vbuz1 + //SEG224 [104] (byte) render_playfield::i#1 ← ++ (byte) render_playfield::i#2 -- vbuz1=_inc_vbuz1 inc i - //SEG226 [106] (byte) render_playfield::c#1 ← ++ (byte) render_playfield::c#2 -- vbuz1=_inc_vbuz1 + //SEG225 [105] (byte) render_playfield::c#1 ← ++ (byte) render_playfield::c#2 -- vbuz1=_inc_vbuz1 inc c - //SEG227 [107] if((byte) render_playfield::c#1!=(const byte) PLAYFIELD_COLS#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_playfield::@2 -- vbuz1_neq_vbuc1_then_la1 + //SEG226 [106] if((byte) render_playfield::c#1!=(const byte) PLAYFIELD_COLS#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_playfield::@2 -- vbuz1_neq_vbuc1_then_la1 lda c cmp #PLAYFIELD_COLS-1+1 bne b2_from_b2 jmp b3 - //SEG228 render_playfield::@3 + //SEG227 render_playfield::@3 b3: - //SEG229 [108] (byte) render_playfield::l#1 ← ++ (byte) render_playfield::l#2 -- vbuz1=_inc_vbuz1 + //SEG228 [107] (byte) render_playfield::l#1 ← ++ (byte) render_playfield::l#2 -- vbuz1=_inc_vbuz1 inc l - //SEG230 [109] if((byte) render_playfield::l#1!=(const byte) PLAYFIELD_LINES#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_playfield::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG229 [108] if((byte) render_playfield::l#1!=(const byte) PLAYFIELD_LINES#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_playfield::@1 -- vbuz1_neq_vbuc1_then_la1 lda l cmp #PLAYFIELD_LINES-1+1 bne b1_from_b3 jmp breturn - //SEG231 render_playfield::@return + //SEG230 render_playfield::@return breturn: - //SEG232 [110] return + //SEG231 [109] return rts } -//SEG233 play_move_rotate +//SEG232 play_move_rotate play_move_rotate: { .label orientation = 5 - //SEG234 [111] if((byte) play_move_rotate::key_event#0==(const byte) KEY_Z#0) goto play_move_rotate::@1 -- vbuaa_eq_vbuc1_then_la1 + //SEG233 [110] if((byte) play_move_rotate::key_event#0==(const byte) KEY_Z#0) goto play_move_rotate::@1 -- vbuaa_eq_vbuc1_then_la1 cmp #KEY_Z beq b1 jmp b6 - //SEG235 play_move_rotate::@6 + //SEG234 play_move_rotate::@6 b6: - //SEG236 [112] if((byte) play_move_rotate::key_event#0==(const byte) KEY_X#0) goto play_move_rotate::@2 -- vbuaa_eq_vbuc1_then_la1 + //SEG235 [111] if((byte) play_move_rotate::key_event#0==(const byte) KEY_X#0) goto play_move_rotate::@2 -- vbuaa_eq_vbuc1_then_la1 cmp #KEY_X beq b2 - //SEG237 [113] phi from play_move_rotate::@14 play_move_rotate::@6 to play_move_rotate::@return [phi:play_move_rotate::@14/play_move_rotate::@6->play_move_rotate::@return] + //SEG236 [112] phi from play_move_rotate::@14 play_move_rotate::@6 to play_move_rotate::@return [phi:play_move_rotate::@14/play_move_rotate::@6->play_move_rotate::@return] breturn_from_b14: breturn_from_b6: - //SEG238 [113] phi (byte*) current_piece_gfx#14 = (byte*) current_piece_gfx#1 [phi:play_move_rotate::@14/play_move_rotate::@6->play_move_rotate::@return#0] -- register_copy - //SEG239 [113] phi (byte) current_orientation#19 = (byte) current_orientation#14 [phi:play_move_rotate::@14/play_move_rotate::@6->play_move_rotate::@return#1] -- register_copy - //SEG240 [113] phi (byte) play_move_rotate::return#1 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_rotate::@14/play_move_rotate::@6->play_move_rotate::@return#2] -- vbuaa=vbuc1 + //SEG237 [112] phi (byte*) current_piece_gfx#14 = (byte*) current_piece_gfx#1 [phi:play_move_rotate::@14/play_move_rotate::@6->play_move_rotate::@return#0] -- register_copy + //SEG238 [112] phi (byte) current_orientation#19 = (byte) current_orientation#14 [phi:play_move_rotate::@14/play_move_rotate::@6->play_move_rotate::@return#1] -- register_copy + //SEG239 [112] phi (byte) play_move_rotate::return#1 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_rotate::@14/play_move_rotate::@6->play_move_rotate::@return#2] -- vbuaa=vbuc1 lda #0 jmp breturn - //SEG241 play_move_rotate::@return + //SEG240 play_move_rotate::@return breturn: - //SEG242 [114] return + //SEG241 [113] return rts - //SEG243 play_move_rotate::@2 + //SEG242 play_move_rotate::@2 b2: - //SEG244 [115] (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 ← (byte) current_orientation#14 + (byte/signed byte/word/signed word/dword/signed dword) 16 -- vbuaa=vbuz1_plus_vbuc1 + //SEG243 [114] (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 ← (byte) current_orientation#14 + (byte/signed byte/word/signed word/dword/signed dword) 16 -- vbuaa=vbuz1_plus_vbuc1 lda #$10 clc adc current_orientation - //SEG245 [116] (byte) play_move_rotate::orientation#2 ← (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 & (byte/signed byte/word/signed word/dword/signed dword) 63 -- vbuz1=vbuaa_band_vbuc1 + //SEG244 [115] (byte) play_move_rotate::orientation#2 ← (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 & (byte/signed byte/word/signed word/dword/signed dword) 63 -- vbuz1=vbuaa_band_vbuc1 and #$3f sta orientation - //SEG246 [117] phi from play_move_rotate::@1 play_move_rotate::@2 to play_move_rotate::@4 [phi:play_move_rotate::@1/play_move_rotate::@2->play_move_rotate::@4] + //SEG245 [116] phi from play_move_rotate::@1 play_move_rotate::@2 to play_move_rotate::@4 [phi:play_move_rotate::@1/play_move_rotate::@2->play_move_rotate::@4] b4_from_b1: b4_from_b2: - //SEG247 [117] phi (byte) play_move_rotate::orientation#3 = (byte) play_move_rotate::orientation#1 [phi:play_move_rotate::@1/play_move_rotate::@2->play_move_rotate::@4#0] -- register_copy + //SEG246 [116] phi (byte) play_move_rotate::orientation#3 = (byte) play_move_rotate::orientation#1 [phi:play_move_rotate::@1/play_move_rotate::@2->play_move_rotate::@4#0] -- register_copy jmp b4 - //SEG248 play_move_rotate::@4 + //SEG247 play_move_rotate::@4 b4: - //SEG249 [118] (byte) play_collision::xpos#3 ← (byte) current_xpos#19 -- vbuz1=vbuz2 + //SEG248 [117] (byte) play_collision::xpos#3 ← (byte) current_xpos#19 -- vbuz1=vbuz2 lda current_xpos sta play_collision.xpos - //SEG250 [119] (byte) play_collision::ypos#3 ← (byte) current_ypos#13 -- vbuyy=vbuz1 + //SEG249 [118] (byte) play_collision::ypos#3 ← (byte) current_ypos#13 -- vbuyy=vbuz1 ldy current_ypos - //SEG251 [120] (byte) play_collision::orientation#3 ← (byte) play_move_rotate::orientation#3 -- vbuxx=vbuz1 + //SEG250 [119] (byte) play_collision::orientation#3 ← (byte) play_move_rotate::orientation#3 -- vbuxx=vbuz1 ldx orientation - //SEG252 [121] (byte*~) current_piece#77 ← (byte*) current_piece#10 -- pbuz1=pbuz2 + //SEG251 [120] (byte*~) current_piece#77 ← (byte*) current_piece#10 -- pbuz1=pbuz2 lda current_piece sta current_piece_77 lda current_piece+1 sta current_piece_77+1 - //SEG253 [122] call play_collision - //SEG254 [130] phi from play_move_rotate::@4 to play_collision [phi:play_move_rotate::@4->play_collision] + //SEG252 [121] call play_collision + //SEG253 [129] phi from play_move_rotate::@4 to play_collision [phi:play_move_rotate::@4->play_collision] play_collision_from_b4: - //SEG255 [130] phi (byte) play_collision::xpos#5 = (byte) play_collision::xpos#3 [phi:play_move_rotate::@4->play_collision#0] -- register_copy - //SEG256 [130] phi (byte) play_collision::ypos#4 = (byte) play_collision::ypos#3 [phi:play_move_rotate::@4->play_collision#1] -- register_copy - //SEG257 [130] phi (byte) play_collision::orientation#4 = (byte) play_collision::orientation#3 [phi:play_move_rotate::@4->play_collision#2] -- register_copy - //SEG258 [130] phi (byte*) current_piece#12 = (byte*~) current_piece#77 [phi:play_move_rotate::@4->play_collision#3] -- register_copy + //SEG254 [129] phi (byte) play_collision::xpos#5 = (byte) play_collision::xpos#3 [phi:play_move_rotate::@4->play_collision#0] -- register_copy + //SEG255 [129] phi (byte) play_collision::ypos#4 = (byte) play_collision::ypos#3 [phi:play_move_rotate::@4->play_collision#1] -- register_copy + //SEG256 [129] phi (byte) play_collision::orientation#4 = (byte) play_collision::orientation#3 [phi:play_move_rotate::@4->play_collision#2] -- register_copy + //SEG257 [129] phi (byte*) current_piece#12 = (byte*~) current_piece#77 [phi:play_move_rotate::@4->play_collision#3] -- register_copy jsr play_collision - //SEG259 [123] (byte) play_collision::return#13 ← (byte) play_collision::return#14 + //SEG258 [122] (byte) play_collision::return#13 ← (byte) play_collision::return#14 // (byte) play_collision::return#13 = (byte) play_collision::return#14 // register copy reg byte a jmp b14 - //SEG260 play_move_rotate::@14 + //SEG259 play_move_rotate::@14 b14: - //SEG261 [124] (byte~) play_move_rotate::$6 ← (byte) play_collision::return#13 + //SEG260 [123] (byte~) play_move_rotate::$6 ← (byte) play_collision::return#13 // (byte~) play_move_rotate::$6 = (byte) play_collision::return#13 // register copy reg byte a - //SEG262 [125] if((byte~) play_move_rotate::$6!=(const byte) COLLISION_NONE#0) goto play_move_rotate::@return -- vbuaa_neq_vbuc1_then_la1 + //SEG261 [124] if((byte~) play_move_rotate::$6!=(const byte) COLLISION_NONE#0) goto play_move_rotate::@return -- vbuaa_neq_vbuc1_then_la1 cmp #COLLISION_NONE bne breturn_from_b14 jmp b11 - //SEG263 play_move_rotate::@11 + //SEG262 play_move_rotate::@11 b11: - //SEG264 [126] (byte) current_orientation#4 ← (byte) play_move_rotate::orientation#3 -- vbuz1=vbuz2 + //SEG263 [125] (byte) current_orientation#4 ← (byte) play_move_rotate::orientation#3 -- vbuz1=vbuz2 lda orientation sta current_orientation - //SEG265 [127] (byte*) current_piece_gfx#3 ← (byte*) current_piece#10 + (byte) current_orientation#4 -- pbuz1=pbuz2_plus_vbuz3 + //SEG264 [126] (byte*) current_piece_gfx#3 ← (byte*) current_piece#10 + (byte) current_orientation#4 -- pbuz1=pbuz2_plus_vbuz3 lda current_orientation clc adc current_piece @@ -13687,38 +13552,38 @@ play_move_rotate: { lda #0 adc current_piece+1 sta current_piece_gfx+1 - //SEG266 [113] phi from play_move_rotate::@11 to play_move_rotate::@return [phi:play_move_rotate::@11->play_move_rotate::@return] + //SEG265 [112] phi from play_move_rotate::@11 to play_move_rotate::@return [phi:play_move_rotate::@11->play_move_rotate::@return] breturn_from_b11: - //SEG267 [113] phi (byte*) current_piece_gfx#14 = (byte*) current_piece_gfx#3 [phi:play_move_rotate::@11->play_move_rotate::@return#0] -- register_copy - //SEG268 [113] phi (byte) current_orientation#19 = (byte) current_orientation#4 [phi:play_move_rotate::@11->play_move_rotate::@return#1] -- register_copy - //SEG269 [113] phi (byte) play_move_rotate::return#1 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_move_rotate::@11->play_move_rotate::@return#2] -- vbuaa=vbuc1 + //SEG266 [112] phi (byte*) current_piece_gfx#14 = (byte*) current_piece_gfx#3 [phi:play_move_rotate::@11->play_move_rotate::@return#0] -- register_copy + //SEG267 [112] phi (byte) current_orientation#19 = (byte) current_orientation#4 [phi:play_move_rotate::@11->play_move_rotate::@return#1] -- register_copy + //SEG268 [112] phi (byte) play_move_rotate::return#1 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_move_rotate::@11->play_move_rotate::@return#2] -- vbuaa=vbuc1 lda #1 jmp breturn - //SEG270 play_move_rotate::@1 + //SEG269 play_move_rotate::@1 b1: - //SEG271 [128] (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 ← (byte) current_orientation#14 - (byte/signed byte/word/signed word/dword/signed dword) 16 -- vbuaa=vbuz1_minus_vbuc1 + //SEG270 [127] (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 ← (byte) current_orientation#14 - (byte/signed byte/word/signed word/dword/signed dword) 16 -- vbuaa=vbuz1_minus_vbuc1 lda current_orientation sec sbc #$10 - //SEG272 [129] (byte) play_move_rotate::orientation#1 ← (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 & (byte/signed byte/word/signed word/dword/signed dword) 63 -- vbuz1=vbuaa_band_vbuc1 + //SEG271 [128] (byte) play_move_rotate::orientation#1 ← (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 & (byte/signed byte/word/signed word/dword/signed dword) 63 -- vbuz1=vbuaa_band_vbuc1 and #$3f sta orientation jmp b4_from_b1 } -//SEG273 play_collision +//SEG272 play_collision play_collision: { .label xpos = 6 .label piece_gfx = 7 .label ypos2 = 9 .label playfield_line = $17 - .label i = $21 + .label i = $1f .label col = $c .label l = $a .label i_2 = $b .label i_3 = $b .label i_11 = $b .label i_13 = $b - //SEG274 [131] (byte*) play_collision::piece_gfx#0 ← (byte*) current_piece#12 + (byte) play_collision::orientation#4 -- pbuz1=pbuz1_plus_vbuxx + //SEG273 [130] (byte*) play_collision::piece_gfx#0 ← (byte*) current_piece#12 + (byte) play_collision::orientation#4 -- pbuz1=pbuz1_plus_vbuxx txa clc adc piece_gfx @@ -13726,669 +13591,669 @@ play_collision: { lda #0 adc piece_gfx+1 sta piece_gfx+1 - //SEG275 [132] (byte) play_collision::ypos2#0 ← (byte) play_collision::ypos#4 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuyy_rol_1 + //SEG274 [131] (byte) play_collision::ypos2#0 ← (byte) play_collision::ypos#4 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuyy_rol_1 tya asl sta ypos2 - //SEG276 [133] phi from play_collision to play_collision::@1 [phi:play_collision->play_collision::@1] + //SEG275 [132] phi from play_collision to play_collision::@1 [phi:play_collision->play_collision::@1] b1_from_play_collision: - //SEG277 [133] phi (byte) play_collision::l#6 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_collision->play_collision::@1#0] -- vbuz1=vbuc1 + //SEG276 [132] phi (byte) play_collision::l#6 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_collision->play_collision::@1#0] -- vbuz1=vbuc1 lda #0 sta l - //SEG278 [133] phi (byte) play_collision::i#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_collision->play_collision::@1#1] -- vbuz1=vbuc1 + //SEG277 [132] phi (byte) play_collision::i#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_collision->play_collision::@1#1] -- vbuz1=vbuc1 lda #0 sta i_3 - //SEG279 [133] phi (byte) play_collision::ypos2#2 = (byte) play_collision::ypos2#0 [phi:play_collision->play_collision::@1#2] -- register_copy + //SEG278 [132] phi (byte) play_collision::ypos2#2 = (byte) play_collision::ypos2#0 [phi:play_collision->play_collision::@1#2] -- register_copy jmp b1 - //SEG280 play_collision::@1 + //SEG279 play_collision::@1 b1: - //SEG281 [134] (byte*) play_collision::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) play_collision::ypos2#2) -- pbuz1=pptc1_derefidx_vbuz2 + //SEG280 [133] (byte*) play_collision::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) play_collision::ypos2#2) -- pbuz1=pptc1_derefidx_vbuz2 ldy ypos2 lda playfield_lines,y sta playfield_line lda playfield_lines+1,y sta playfield_line+1 - //SEG282 [135] (byte~) play_collision::col#9 ← (byte) play_collision::xpos#5 -- vbuz1=vbuz2 + //SEG281 [134] (byte~) play_collision::col#9 ← (byte) play_collision::xpos#5 -- vbuz1=vbuz2 lda xpos sta col - //SEG283 [136] phi from play_collision::@1 to play_collision::@2 [phi:play_collision::@1->play_collision::@2] + //SEG282 [135] phi from play_collision::@1 to play_collision::@2 [phi:play_collision::@1->play_collision::@2] b2_from_b1: - //SEG284 [136] phi (byte) play_collision::c#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_collision::@1->play_collision::@2#0] -- vbuxx=vbuc1 + //SEG283 [135] phi (byte) play_collision::c#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_collision::@1->play_collision::@2#0] -- vbuxx=vbuc1 ldx #0 - //SEG285 [136] phi (byte) play_collision::col#2 = (byte~) play_collision::col#9 [phi:play_collision::@1->play_collision::@2#1] -- register_copy - //SEG286 [136] phi (byte) play_collision::i#2 = (byte) play_collision::i#3 [phi:play_collision::@1->play_collision::@2#2] -- register_copy + //SEG284 [135] phi (byte) play_collision::col#2 = (byte~) play_collision::col#9 [phi:play_collision::@1->play_collision::@2#1] -- register_copy + //SEG285 [135] phi (byte) play_collision::i#2 = (byte) play_collision::i#3 [phi:play_collision::@1->play_collision::@2#2] -- register_copy jmp b2 - //SEG287 play_collision::@2 + //SEG286 play_collision::@2 b2: - //SEG288 [137] (byte) play_collision::i#1 ← ++ (byte) play_collision::i#2 -- vbuz1=_inc_vbuz2 + //SEG287 [136] (byte) play_collision::i#1 ← ++ (byte) play_collision::i#2 -- vbuz1=_inc_vbuz2 ldy i_2 iny sty i - //SEG289 [138] if(*((byte*) play_collision::piece_gfx#0 + (byte) play_collision::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_collision::@3 -- pbuz1_derefidx_vbuz2_eq_0_then_la1 + //SEG288 [137] if(*((byte*) play_collision::piece_gfx#0 + (byte) play_collision::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_collision::@3 -- pbuz1_derefidx_vbuz2_eq_0_then_la1 ldy i_2 lda (piece_gfx),y cmp #0 beq b3 jmp b8 - //SEG290 play_collision::@8 + //SEG289 play_collision::@8 b8: - //SEG291 [139] if((byte) play_collision::ypos2#2<(byte/signed byte/word/signed word/dword/signed dword) 2*(const byte) PLAYFIELD_LINES#0) goto play_collision::@4 -- vbuz1_lt_vbuc1_then_la1 + //SEG290 [138] if((byte) play_collision::ypos2#2<(byte/signed byte/word/signed word/dword/signed dword) 2*(const byte) PLAYFIELD_LINES#0) goto play_collision::@4 -- vbuz1_lt_vbuc1_then_la1 lda ypos2 cmp #2*PLAYFIELD_LINES bcc b4 - //SEG292 [140] phi from play_collision::@8 to play_collision::@return [phi:play_collision::@8->play_collision::@return] + //SEG291 [139] phi from play_collision::@8 to play_collision::@return [phi:play_collision::@8->play_collision::@return] breturn_from_b8: - //SEG293 [140] phi (byte) play_collision::return#14 = (const byte) COLLISION_BOTTOM#0 [phi:play_collision::@8->play_collision::@return#0] -- vbuaa=vbuc1 + //SEG292 [139] phi (byte) play_collision::return#14 = (const byte) COLLISION_BOTTOM#0 [phi:play_collision::@8->play_collision::@return#0] -- vbuaa=vbuc1 lda #COLLISION_BOTTOM jmp breturn - //SEG294 play_collision::@return + //SEG293 play_collision::@return breturn: - //SEG295 [141] return + //SEG294 [140] return rts - //SEG296 play_collision::@4 + //SEG295 play_collision::@4 b4: - //SEG297 [142] (byte~) play_collision::$7 ← (byte) play_collision::col#2 & (byte/word/signed word/dword/signed dword) 128 -- vbuaa=vbuz1_band_vbuc1 + //SEG296 [141] (byte~) play_collision::$7 ← (byte) play_collision::col#2 & (byte/word/signed word/dword/signed dword) 128 -- vbuaa=vbuz1_band_vbuc1 lda #$80 and col - //SEG298 [143] if((byte~) play_collision::$7==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_collision::@5 -- vbuaa_eq_0_then_la1 + //SEG297 [142] if((byte~) play_collision::$7==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_collision::@5 -- vbuaa_eq_0_then_la1 cmp #0 beq b5 - //SEG299 [140] phi from play_collision::@4 to play_collision::@return [phi:play_collision::@4->play_collision::@return] + //SEG298 [139] phi from play_collision::@4 to play_collision::@return [phi:play_collision::@4->play_collision::@return] breturn_from_b4: - //SEG300 [140] phi (byte) play_collision::return#14 = (const byte) COLLISION_LEFT#0 [phi:play_collision::@4->play_collision::@return#0] -- vbuaa=vbuc1 + //SEG299 [139] phi (byte) play_collision::return#14 = (const byte) COLLISION_LEFT#0 [phi:play_collision::@4->play_collision::@return#0] -- vbuaa=vbuc1 lda #COLLISION_LEFT jmp breturn - //SEG301 play_collision::@5 + //SEG300 play_collision::@5 b5: - //SEG302 [144] if((byte) play_collision::col#2<(const byte) PLAYFIELD_COLS#0) goto play_collision::@6 -- vbuz1_lt_vbuc1_then_la1 + //SEG301 [143] if((byte) play_collision::col#2<(const byte) PLAYFIELD_COLS#0) goto play_collision::@6 -- vbuz1_lt_vbuc1_then_la1 lda col cmp #PLAYFIELD_COLS bcc b6 - //SEG303 [140] phi from play_collision::@5 to play_collision::@return [phi:play_collision::@5->play_collision::@return] + //SEG302 [139] phi from play_collision::@5 to play_collision::@return [phi:play_collision::@5->play_collision::@return] breturn_from_b5: - //SEG304 [140] phi (byte) play_collision::return#14 = (const byte) COLLISION_RIGHT#0 [phi:play_collision::@5->play_collision::@return#0] -- vbuaa=vbuc1 + //SEG303 [139] phi (byte) play_collision::return#14 = (const byte) COLLISION_RIGHT#0 [phi:play_collision::@5->play_collision::@return#0] -- vbuaa=vbuc1 lda #COLLISION_RIGHT jmp breturn - //SEG305 play_collision::@6 + //SEG304 play_collision::@6 b6: - //SEG306 [145] if(*((byte*) play_collision::playfield_line#0 + (byte) play_collision::col#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_collision::@3 -- pbuz1_derefidx_vbuz2_eq_0_then_la1 + //SEG305 [144] if(*((byte*) play_collision::playfield_line#0 + (byte) play_collision::col#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_collision::@3 -- pbuz1_derefidx_vbuz2_eq_0_then_la1 ldy col lda (playfield_line),y cmp #0 beq b3 - //SEG307 [140] phi from play_collision::@6 to play_collision::@return [phi:play_collision::@6->play_collision::@return] + //SEG306 [139] phi from play_collision::@6 to play_collision::@return [phi:play_collision::@6->play_collision::@return] breturn_from_b6: - //SEG308 [140] phi (byte) play_collision::return#14 = (const byte) COLLISION_PLAYFIELD#0 [phi:play_collision::@6->play_collision::@return#0] -- vbuaa=vbuc1 + //SEG307 [139] phi (byte) play_collision::return#14 = (const byte) COLLISION_PLAYFIELD#0 [phi:play_collision::@6->play_collision::@return#0] -- vbuaa=vbuc1 lda #COLLISION_PLAYFIELD jmp breturn - //SEG309 play_collision::@3 + //SEG308 play_collision::@3 b3: - //SEG310 [146] (byte) play_collision::col#1 ← ++ (byte) play_collision::col#2 -- vbuz1=_inc_vbuz1 + //SEG309 [145] (byte) play_collision::col#1 ← ++ (byte) play_collision::col#2 -- vbuz1=_inc_vbuz1 inc col - //SEG311 [147] (byte) play_collision::c#1 ← ++ (byte) play_collision::c#2 -- vbuxx=_inc_vbuxx + //SEG310 [146] (byte) play_collision::c#1 ← ++ (byte) play_collision::c#2 -- vbuxx=_inc_vbuxx inx - //SEG312 [148] if((byte) play_collision::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto play_collision::@21 -- vbuxx_neq_vbuc1_then_la1 + //SEG311 [147] if((byte) play_collision::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto play_collision::@21 -- vbuxx_neq_vbuc1_then_la1 cpx #4 bne b21 jmp b17 - //SEG313 play_collision::@17 + //SEG312 play_collision::@17 b17: - //SEG314 [149] (byte) play_collision::ypos2#1 ← (byte) play_collision::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 -- vbuz1=vbuz1_plus_2 + //SEG313 [148] (byte) play_collision::ypos2#1 ← (byte) play_collision::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 -- vbuz1=vbuz1_plus_2 lda ypos2 clc adc #2 sta ypos2 - //SEG315 [150] (byte) play_collision::l#1 ← ++ (byte) play_collision::l#6 -- vbuz1=_inc_vbuz1 + //SEG314 [149] (byte) play_collision::l#1 ← ++ (byte) play_collision::l#6 -- vbuz1=_inc_vbuz1 inc l - //SEG316 [151] if((byte) play_collision::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto play_collision::@20 -- vbuz1_neq_vbuc1_then_la1 + //SEG315 [150] if((byte) play_collision::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto play_collision::@20 -- vbuz1_neq_vbuc1_then_la1 lda l cmp #4 bne b20 - //SEG317 [140] phi from play_collision::@17 to play_collision::@return [phi:play_collision::@17->play_collision::@return] + //SEG316 [139] phi from play_collision::@17 to play_collision::@return [phi:play_collision::@17->play_collision::@return] breturn_from_b17: - //SEG318 [140] phi (byte) play_collision::return#14 = (const byte) COLLISION_NONE#0 [phi:play_collision::@17->play_collision::@return#0] -- vbuaa=vbuc1 + //SEG317 [139] phi (byte) play_collision::return#14 = (const byte) COLLISION_NONE#0 [phi:play_collision::@17->play_collision::@return#0] -- vbuaa=vbuc1 lda #COLLISION_NONE jmp breturn - //SEG319 play_collision::@20 + //SEG318 play_collision::@20 b20: - //SEG320 [152] (byte~) play_collision::i#11 ← (byte) play_collision::i#1 -- vbuz1=vbuz2 + //SEG319 [151] (byte~) play_collision::i#11 ← (byte) play_collision::i#1 -- vbuz1=vbuz2 lda i sta i_11 - //SEG321 [133] phi from play_collision::@20 to play_collision::@1 [phi:play_collision::@20->play_collision::@1] + //SEG320 [132] phi from play_collision::@20 to play_collision::@1 [phi:play_collision::@20->play_collision::@1] b1_from_b20: - //SEG322 [133] phi (byte) play_collision::l#6 = (byte) play_collision::l#1 [phi:play_collision::@20->play_collision::@1#0] -- register_copy - //SEG323 [133] phi (byte) play_collision::i#3 = (byte~) play_collision::i#11 [phi:play_collision::@20->play_collision::@1#1] -- register_copy - //SEG324 [133] phi (byte) play_collision::ypos2#2 = (byte) play_collision::ypos2#1 [phi:play_collision::@20->play_collision::@1#2] -- register_copy + //SEG321 [132] phi (byte) play_collision::l#6 = (byte) play_collision::l#1 [phi:play_collision::@20->play_collision::@1#0] -- register_copy + //SEG322 [132] phi (byte) play_collision::i#3 = (byte~) play_collision::i#11 [phi:play_collision::@20->play_collision::@1#1] -- register_copy + //SEG323 [132] phi (byte) play_collision::ypos2#2 = (byte) play_collision::ypos2#1 [phi:play_collision::@20->play_collision::@1#2] -- register_copy jmp b1 - //SEG325 play_collision::@21 + //SEG324 play_collision::@21 b21: - //SEG326 [153] (byte~) play_collision::i#13 ← (byte) play_collision::i#1 -- vbuz1=vbuz2 + //SEG325 [152] (byte~) play_collision::i#13 ← (byte) play_collision::i#1 -- vbuz1=vbuz2 lda i sta i_13 - //SEG327 [136] phi from play_collision::@21 to play_collision::@2 [phi:play_collision::@21->play_collision::@2] + //SEG326 [135] phi from play_collision::@21 to play_collision::@2 [phi:play_collision::@21->play_collision::@2] b2_from_b21: - //SEG328 [136] phi (byte) play_collision::c#2 = (byte) play_collision::c#1 [phi:play_collision::@21->play_collision::@2#0] -- register_copy - //SEG329 [136] phi (byte) play_collision::col#2 = (byte) play_collision::col#1 [phi:play_collision::@21->play_collision::@2#1] -- register_copy - //SEG330 [136] phi (byte) play_collision::i#2 = (byte~) play_collision::i#13 [phi:play_collision::@21->play_collision::@2#2] -- register_copy + //SEG327 [135] phi (byte) play_collision::c#2 = (byte) play_collision::c#1 [phi:play_collision::@21->play_collision::@2#0] -- register_copy + //SEG328 [135] phi (byte) play_collision::col#2 = (byte) play_collision::col#1 [phi:play_collision::@21->play_collision::@2#1] -- register_copy + //SEG329 [135] phi (byte) play_collision::i#2 = (byte~) play_collision::i#13 [phi:play_collision::@21->play_collision::@2#2] -- register_copy jmp b2 } -//SEG331 play_move_leftright +//SEG330 play_move_leftright play_move_leftright: { - //SEG332 [154] if((byte) play_move_leftright::key_event#0==(const byte) KEY_COMMA#0) goto play_move_leftright::@1 -- vbuaa_eq_vbuc1_then_la1 + //SEG331 [153] if((byte) play_move_leftright::key_event#0==(const byte) KEY_COMMA#0) goto play_move_leftright::@1 -- vbuaa_eq_vbuc1_then_la1 cmp #KEY_COMMA beq b1 jmp b6 - //SEG333 play_move_leftright::@6 + //SEG332 play_move_leftright::@6 b6: - //SEG334 [155] if((byte) play_move_leftright::key_event#0!=(const byte) KEY_DOT#0) goto play_move_leftright::@return -- vbuaa_neq_vbuc1_then_la1 + //SEG333 [154] if((byte) play_move_leftright::key_event#0!=(const byte) KEY_DOT#0) goto play_move_leftright::@return -- vbuaa_neq_vbuc1_then_la1 cmp #KEY_DOT bne breturn_from_b6 jmp b7 - //SEG335 play_move_leftright::@7 + //SEG334 play_move_leftright::@7 b7: - //SEG336 [156] (byte) play_collision::xpos#2 ← (byte) current_xpos#1 + (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_plus_1 + //SEG335 [155] (byte) play_collision::xpos#2 ← (byte) current_xpos#1 + (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_plus_1 ldy current_xpos iny sty play_collision.xpos - //SEG337 [157] (byte) play_collision::ypos#2 ← (byte) current_ypos#13 -- vbuyy=vbuz1 + //SEG336 [156] (byte) play_collision::ypos#2 ← (byte) current_ypos#13 -- vbuyy=vbuz1 ldy current_ypos - //SEG338 [158] (byte) play_collision::orientation#2 ← (byte) current_orientation#14 -- vbuxx=vbuz1 + //SEG337 [157] (byte) play_collision::orientation#2 ← (byte) current_orientation#14 -- vbuxx=vbuz1 ldx current_orientation - //SEG339 [159] (byte*~) current_piece#76 ← (byte*) current_piece#10 -- pbuz1=pbuz2 + //SEG338 [158] (byte*~) current_piece#76 ← (byte*) current_piece#10 -- pbuz1=pbuz2 lda current_piece sta current_piece_76 lda current_piece+1 sta current_piece_76+1 - //SEG340 [160] call play_collision - //SEG341 [130] phi from play_move_leftright::@7 to play_collision [phi:play_move_leftright::@7->play_collision] + //SEG339 [159] call play_collision + //SEG340 [129] phi from play_move_leftright::@7 to play_collision [phi:play_move_leftright::@7->play_collision] play_collision_from_b7: - //SEG342 [130] phi (byte) play_collision::xpos#5 = (byte) play_collision::xpos#2 [phi:play_move_leftright::@7->play_collision#0] -- register_copy - //SEG343 [130] phi (byte) play_collision::ypos#4 = (byte) play_collision::ypos#2 [phi:play_move_leftright::@7->play_collision#1] -- register_copy - //SEG344 [130] phi (byte) play_collision::orientation#4 = (byte) play_collision::orientation#2 [phi:play_move_leftright::@7->play_collision#2] -- register_copy - //SEG345 [130] phi (byte*) current_piece#12 = (byte*~) current_piece#76 [phi:play_move_leftright::@7->play_collision#3] -- register_copy + //SEG341 [129] phi (byte) play_collision::xpos#5 = (byte) play_collision::xpos#2 [phi:play_move_leftright::@7->play_collision#0] -- register_copy + //SEG342 [129] phi (byte) play_collision::ypos#4 = (byte) play_collision::ypos#2 [phi:play_move_leftright::@7->play_collision#1] -- register_copy + //SEG343 [129] phi (byte) play_collision::orientation#4 = (byte) play_collision::orientation#2 [phi:play_move_leftright::@7->play_collision#2] -- register_copy + //SEG344 [129] phi (byte*) current_piece#12 = (byte*~) current_piece#76 [phi:play_move_leftright::@7->play_collision#3] -- register_copy jsr play_collision - //SEG346 [161] (byte) play_collision::return#12 ← (byte) play_collision::return#14 + //SEG345 [160] (byte) play_collision::return#12 ← (byte) play_collision::return#14 // (byte) play_collision::return#12 = (byte) play_collision::return#14 // register copy reg byte a jmp b15 - //SEG347 play_move_leftright::@15 + //SEG346 play_move_leftright::@15 b15: - //SEG348 [162] (byte~) play_move_leftright::$4 ← (byte) play_collision::return#12 + //SEG347 [161] (byte~) play_move_leftright::$4 ← (byte) play_collision::return#12 // (byte~) play_move_leftright::$4 = (byte) play_collision::return#12 // register copy reg byte a - //SEG349 [163] if((byte~) play_move_leftright::$4!=(const byte) COLLISION_NONE#0) goto play_move_leftright::@return -- vbuaa_neq_vbuc1_then_la1 + //SEG348 [162] if((byte~) play_move_leftright::$4!=(const byte) COLLISION_NONE#0) goto play_move_leftright::@return -- vbuaa_neq_vbuc1_then_la1 cmp #COLLISION_NONE bne breturn_from_b15 jmp b8 - //SEG350 play_move_leftright::@8 + //SEG349 play_move_leftright::@8 b8: - //SEG351 [164] (byte) current_xpos#2 ← ++ (byte) current_xpos#1 -- vbuz1=_inc_vbuz1 + //SEG350 [163] (byte) current_xpos#2 ← ++ (byte) current_xpos#1 -- vbuz1=_inc_vbuz1 inc current_xpos - //SEG352 [165] phi from play_move_leftright::@11 play_move_leftright::@8 to play_move_leftright::@return [phi:play_move_leftright::@11/play_move_leftright::@8->play_move_leftright::@return] + //SEG351 [164] phi from play_move_leftright::@11 play_move_leftright::@8 to play_move_leftright::@return [phi:play_move_leftright::@11/play_move_leftright::@8->play_move_leftright::@return] breturn_from_b11: breturn_from_b8: - //SEG353 [165] phi (byte) current_xpos#19 = (byte) current_xpos#4 [phi:play_move_leftright::@11/play_move_leftright::@8->play_move_leftright::@return#0] -- register_copy - //SEG354 [165] phi (byte) play_move_leftright::return#1 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_move_leftright::@11/play_move_leftright::@8->play_move_leftright::@return#1] -- vbuaa=vbuc1 + //SEG352 [164] phi (byte) current_xpos#19 = (byte) current_xpos#4 [phi:play_move_leftright::@11/play_move_leftright::@8->play_move_leftright::@return#0] -- register_copy + //SEG353 [164] phi (byte) play_move_leftright::return#1 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_move_leftright::@11/play_move_leftright::@8->play_move_leftright::@return#1] -- vbuaa=vbuc1 lda #1 jmp breturn - //SEG355 [165] phi from play_move_leftright::@14 play_move_leftright::@15 play_move_leftright::@6 to play_move_leftright::@return [phi:play_move_leftright::@14/play_move_leftright::@15/play_move_leftright::@6->play_move_leftright::@return] + //SEG354 [164] phi from play_move_leftright::@14 play_move_leftright::@15 play_move_leftright::@6 to play_move_leftright::@return [phi:play_move_leftright::@14/play_move_leftright::@15/play_move_leftright::@6->play_move_leftright::@return] breturn_from_b14: breturn_from_b15: breturn_from_b6: - //SEG356 [165] phi (byte) current_xpos#19 = (byte) current_xpos#1 [phi:play_move_leftright::@14/play_move_leftright::@15/play_move_leftright::@6->play_move_leftright::@return#0] -- register_copy - //SEG357 [165] phi (byte) play_move_leftright::return#1 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_leftright::@14/play_move_leftright::@15/play_move_leftright::@6->play_move_leftright::@return#1] -- vbuaa=vbuc1 + //SEG355 [164] phi (byte) current_xpos#19 = (byte) current_xpos#1 [phi:play_move_leftright::@14/play_move_leftright::@15/play_move_leftright::@6->play_move_leftright::@return#0] -- register_copy + //SEG356 [164] phi (byte) play_move_leftright::return#1 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_leftright::@14/play_move_leftright::@15/play_move_leftright::@6->play_move_leftright::@return#1] -- vbuaa=vbuc1 lda #0 jmp breturn - //SEG358 play_move_leftright::@return + //SEG357 play_move_leftright::@return breturn: - //SEG359 [166] return + //SEG358 [165] return rts - //SEG360 play_move_leftright::@1 + //SEG359 play_move_leftright::@1 b1: - //SEG361 [167] (byte) play_collision::xpos#1 ← (byte) current_xpos#1 - (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_minus_1 + //SEG360 [166] (byte) play_collision::xpos#1 ← (byte) current_xpos#1 - (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_minus_1 ldx current_xpos dex stx play_collision.xpos - //SEG362 [168] (byte) play_collision::ypos#1 ← (byte) current_ypos#13 -- vbuyy=vbuz1 + //SEG361 [167] (byte) play_collision::ypos#1 ← (byte) current_ypos#13 -- vbuyy=vbuz1 ldy current_ypos - //SEG363 [169] (byte) play_collision::orientation#1 ← (byte) current_orientation#14 -- vbuxx=vbuz1 + //SEG362 [168] (byte) play_collision::orientation#1 ← (byte) current_orientation#14 -- vbuxx=vbuz1 ldx current_orientation - //SEG364 [170] (byte*~) current_piece#75 ← (byte*) current_piece#10 -- pbuz1=pbuz2 + //SEG363 [169] (byte*~) current_piece#75 ← (byte*) current_piece#10 -- pbuz1=pbuz2 lda current_piece sta current_piece_75 lda current_piece+1 sta current_piece_75+1 - //SEG365 [171] call play_collision - //SEG366 [130] phi from play_move_leftright::@1 to play_collision [phi:play_move_leftright::@1->play_collision] + //SEG364 [170] call play_collision + //SEG365 [129] phi from play_move_leftright::@1 to play_collision [phi:play_move_leftright::@1->play_collision] play_collision_from_b1: - //SEG367 [130] phi (byte) play_collision::xpos#5 = (byte) play_collision::xpos#1 [phi:play_move_leftright::@1->play_collision#0] -- register_copy - //SEG368 [130] phi (byte) play_collision::ypos#4 = (byte) play_collision::ypos#1 [phi:play_move_leftright::@1->play_collision#1] -- register_copy - //SEG369 [130] phi (byte) play_collision::orientation#4 = (byte) play_collision::orientation#1 [phi:play_move_leftright::@1->play_collision#2] -- register_copy - //SEG370 [130] phi (byte*) current_piece#12 = (byte*~) current_piece#75 [phi:play_move_leftright::@1->play_collision#3] -- register_copy + //SEG366 [129] phi (byte) play_collision::xpos#5 = (byte) play_collision::xpos#1 [phi:play_move_leftright::@1->play_collision#0] -- register_copy + //SEG367 [129] phi (byte) play_collision::ypos#4 = (byte) play_collision::ypos#1 [phi:play_move_leftright::@1->play_collision#1] -- register_copy + //SEG368 [129] phi (byte) play_collision::orientation#4 = (byte) play_collision::orientation#1 [phi:play_move_leftright::@1->play_collision#2] -- register_copy + //SEG369 [129] phi (byte*) current_piece#12 = (byte*~) current_piece#75 [phi:play_move_leftright::@1->play_collision#3] -- register_copy jsr play_collision - //SEG371 [172] (byte) play_collision::return#1 ← (byte) play_collision::return#14 + //SEG370 [171] (byte) play_collision::return#1 ← (byte) play_collision::return#14 // (byte) play_collision::return#1 = (byte) play_collision::return#14 // register copy reg byte a jmp b14 - //SEG372 play_move_leftright::@14 + //SEG371 play_move_leftright::@14 b14: - //SEG373 [173] (byte~) play_move_leftright::$8 ← (byte) play_collision::return#1 + //SEG372 [172] (byte~) play_move_leftright::$8 ← (byte) play_collision::return#1 // (byte~) play_move_leftright::$8 = (byte) play_collision::return#1 // register copy reg byte a - //SEG374 [174] if((byte~) play_move_leftright::$8!=(const byte) COLLISION_NONE#0) goto play_move_leftright::@return -- vbuaa_neq_vbuc1_then_la1 + //SEG373 [173] if((byte~) play_move_leftright::$8!=(const byte) COLLISION_NONE#0) goto play_move_leftright::@return -- vbuaa_neq_vbuc1_then_la1 cmp #COLLISION_NONE bne breturn_from_b14 jmp b11 - //SEG375 play_move_leftright::@11 + //SEG374 play_move_leftright::@11 b11: - //SEG376 [175] (byte) current_xpos#4 ← -- (byte) current_xpos#1 -- vbuz1=_dec_vbuz1 + //SEG375 [174] (byte) current_xpos#4 ← -- (byte) current_xpos#1 -- vbuz1=_dec_vbuz1 dec current_xpos jmp breturn_from_b11 } -//SEG377 play_move_down +//SEG376 play_move_down play_move_down: { - //SEG378 [176] (byte) current_movedown_counter#1 ← ++ (byte) current_movedown_counter#12 -- vbuz1=_inc_vbuz1 + //SEG377 [175] (byte) current_movedown_counter#1 ← ++ (byte) current_movedown_counter#12 -- vbuz1=_inc_vbuz1 inc current_movedown_counter - //SEG379 [177] if((byte) play_move_down::key_event#0!=(const byte) KEY_SPACE#0) goto play_move_down::@1 -- vbuaa_neq_vbuc1_then_la1 + //SEG378 [176] if((byte) play_move_down::key_event#0!=(const byte) KEY_SPACE#0) goto play_move_down::@1 -- vbuaa_neq_vbuc1_then_la1 cmp #KEY_SPACE bne b1_from_play_move_down - //SEG380 [178] phi from play_move_down to play_move_down::@8 [phi:play_move_down->play_move_down::@8] + //SEG379 [177] phi from play_move_down to play_move_down::@8 [phi:play_move_down->play_move_down::@8] b8_from_play_move_down: jmp b8 - //SEG381 play_move_down::@8 + //SEG380 play_move_down::@8 b8: - //SEG382 [179] phi from play_move_down::@8 to play_move_down::@1 [phi:play_move_down::@8->play_move_down::@1] + //SEG381 [178] phi from play_move_down::@8 to play_move_down::@1 [phi:play_move_down::@8->play_move_down::@1] b1_from_b8: - //SEG383 [179] phi (byte) play_move_down::movedown#10 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_move_down::@8->play_move_down::@1#0] -- vbuxx=vbuc1 + //SEG382 [178] phi (byte) play_move_down::movedown#10 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_move_down::@8->play_move_down::@1#0] -- vbuxx=vbuc1 ldx #1 jmp b1 - //SEG384 [179] phi from play_move_down to play_move_down::@1 [phi:play_move_down->play_move_down::@1] + //SEG383 [178] phi from play_move_down to play_move_down::@1 [phi:play_move_down->play_move_down::@1] b1_from_play_move_down: - //SEG385 [179] phi (byte) play_move_down::movedown#10 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_down->play_move_down::@1#0] -- vbuxx=vbuc1 + //SEG384 [178] phi (byte) play_move_down::movedown#10 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_down->play_move_down::@1#0] -- vbuxx=vbuc1 ldx #0 jmp b1 - //SEG386 play_move_down::@1 + //SEG385 play_move_down::@1 b1: - //SEG387 [180] call keyboard_event_pressed - //SEG388 [265] phi from play_move_down::@1 to keyboard_event_pressed [phi:play_move_down::@1->keyboard_event_pressed] + //SEG386 [179] call keyboard_event_pressed + //SEG387 [264] phi from play_move_down::@1 to keyboard_event_pressed [phi:play_move_down::@1->keyboard_event_pressed] keyboard_event_pressed_from_b1: - //SEG389 [265] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_SPACE#0 [phi:play_move_down::@1->keyboard_event_pressed#0] -- vbuz1=vbuc1 + //SEG388 [264] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_SPACE#0 [phi:play_move_down::@1->keyboard_event_pressed#0] -- vbuz1=vbuc1 lda #KEY_SPACE sta keyboard_event_pressed.keycode jsr keyboard_event_pressed - //SEG390 [181] (byte) keyboard_event_pressed::return#12 ← (byte) keyboard_event_pressed::return#11 + //SEG389 [180] (byte) keyboard_event_pressed::return#12 ← (byte) keyboard_event_pressed::return#11 // (byte) keyboard_event_pressed::return#12 = (byte) keyboard_event_pressed::return#11 // register copy reg byte a jmp b17 - //SEG391 play_move_down::@17 + //SEG390 play_move_down::@17 b17: - //SEG392 [182] (byte~) play_move_down::$2 ← (byte) keyboard_event_pressed::return#12 + //SEG391 [181] (byte~) play_move_down::$2 ← (byte) keyboard_event_pressed::return#12 // (byte~) play_move_down::$2 = (byte) keyboard_event_pressed::return#12 // register copy reg byte a - //SEG393 [183] if((byte~) play_move_down::$2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_move_down::@2 -- vbuaa_eq_0_then_la1 + //SEG392 [182] if((byte~) play_move_down::$2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_move_down::@2 -- vbuaa_eq_0_then_la1 cmp #0 beq b2_from_b17 jmp b9 - //SEG394 play_move_down::@9 + //SEG393 play_move_down::@9 b9: - //SEG395 [184] if((byte) current_movedown_counter#1<(const byte) current_movedown_fast#0) goto play_move_down::@2 -- vbuz1_lt_vbuc1_then_la1 + //SEG394 [183] if((byte) current_movedown_counter#1<(const byte) current_movedown_fast#0) goto play_move_down::@2 -- vbuz1_lt_vbuc1_then_la1 lda current_movedown_counter cmp #current_movedown_fast bcc b2_from_b9 jmp b10 - //SEG396 play_move_down::@10 + //SEG395 play_move_down::@10 b10: - //SEG397 [185] (byte) play_move_down::movedown#2 ← ++ (byte) play_move_down::movedown#10 -- vbuxx=_inc_vbuxx + //SEG396 [184] (byte) play_move_down::movedown#2 ← ++ (byte) play_move_down::movedown#10 -- vbuxx=_inc_vbuxx inx - //SEG398 [186] phi from play_move_down::@10 play_move_down::@17 play_move_down::@9 to play_move_down::@2 [phi:play_move_down::@10/play_move_down::@17/play_move_down::@9->play_move_down::@2] + //SEG397 [185] phi from play_move_down::@10 play_move_down::@17 play_move_down::@9 to play_move_down::@2 [phi:play_move_down::@10/play_move_down::@17/play_move_down::@9->play_move_down::@2] b2_from_b10: b2_from_b17: b2_from_b9: - //SEG399 [186] phi (byte) play_move_down::movedown#7 = (byte) play_move_down::movedown#2 [phi:play_move_down::@10/play_move_down::@17/play_move_down::@9->play_move_down::@2#0] -- register_copy + //SEG398 [185] phi (byte) play_move_down::movedown#7 = (byte) play_move_down::movedown#2 [phi:play_move_down::@10/play_move_down::@17/play_move_down::@9->play_move_down::@2#0] -- register_copy jmp b2 - //SEG400 play_move_down::@2 + //SEG399 play_move_down::@2 b2: - //SEG401 [187] if((byte) current_movedown_counter#1<(const byte) current_movedown_slow#0) goto play_move_down::@4 -- vbuz1_lt_vbuc1_then_la1 + //SEG400 [186] if((byte) current_movedown_counter#1<(const byte) current_movedown_slow#0) goto play_move_down::@4 -- vbuz1_lt_vbuc1_then_la1 lda current_movedown_counter cmp #current_movedown_slow bcc b4_from_b2 jmp b11 - //SEG402 play_move_down::@11 + //SEG401 play_move_down::@11 b11: - //SEG403 [188] (byte) play_move_down::movedown#3 ← ++ (byte) play_move_down::movedown#7 -- vbuxx=_inc_vbuxx + //SEG402 [187] (byte) play_move_down::movedown#3 ← ++ (byte) play_move_down::movedown#7 -- vbuxx=_inc_vbuxx inx - //SEG404 [189] phi from play_move_down::@11 play_move_down::@2 to play_move_down::@4 [phi:play_move_down::@11/play_move_down::@2->play_move_down::@4] + //SEG403 [188] phi from play_move_down::@11 play_move_down::@2 to play_move_down::@4 [phi:play_move_down::@11/play_move_down::@2->play_move_down::@4] b4_from_b11: b4_from_b2: - //SEG405 [189] phi (byte) play_move_down::movedown#6 = (byte) play_move_down::movedown#3 [phi:play_move_down::@11/play_move_down::@2->play_move_down::@4#0] -- register_copy + //SEG404 [188] phi (byte) play_move_down::movedown#6 = (byte) play_move_down::movedown#3 [phi:play_move_down::@11/play_move_down::@2->play_move_down::@4#0] -- register_copy jmp b4 - //SEG406 play_move_down::@4 + //SEG405 play_move_down::@4 b4: - //SEG407 [190] if((byte) play_move_down::movedown#6==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_move_down::@return -- vbuxx_eq_0_then_la1 + //SEG406 [189] if((byte) play_move_down::movedown#6==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_move_down::@return -- vbuxx_eq_0_then_la1 cpx #0 beq breturn_from_b4 jmp b12 - //SEG408 play_move_down::@12 + //SEG407 play_move_down::@12 b12: - //SEG409 [191] (byte) play_collision::ypos#0 ← (byte) current_ypos#21 + (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuyy=vbuz1_plus_1 + //SEG408 [190] (byte) play_collision::ypos#0 ← (byte) current_ypos#21 + (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuyy=vbuz1_plus_1 ldy current_ypos iny - //SEG410 [192] (byte) play_collision::xpos#0 ← (byte) current_xpos#10 -- vbuz1=vbuz2 + //SEG409 [191] (byte) play_collision::xpos#0 ← (byte) current_xpos#10 -- vbuz1=vbuz2 lda current_xpos sta play_collision.xpos - //SEG411 [193] (byte) play_collision::orientation#0 ← (byte) current_orientation#10 -- vbuxx=vbuz1 + //SEG410 [192] (byte) play_collision::orientation#0 ← (byte) current_orientation#10 -- vbuxx=vbuz1 ldx current_orientation - //SEG412 [194] (byte*~) current_piece#74 ← (byte*) current_piece#16 -- pbuz1=pbuz2 + //SEG411 [193] (byte*~) current_piece#74 ← (byte*) current_piece#16 -- pbuz1=pbuz2 lda current_piece sta current_piece_74 lda current_piece+1 sta current_piece_74+1 - //SEG413 [195] call play_collision - //SEG414 [130] phi from play_move_down::@12 to play_collision [phi:play_move_down::@12->play_collision] + //SEG412 [194] call play_collision + //SEG413 [129] phi from play_move_down::@12 to play_collision [phi:play_move_down::@12->play_collision] play_collision_from_b12: - //SEG415 [130] phi (byte) play_collision::xpos#5 = (byte) play_collision::xpos#0 [phi:play_move_down::@12->play_collision#0] -- register_copy - //SEG416 [130] phi (byte) play_collision::ypos#4 = (byte) play_collision::ypos#0 [phi:play_move_down::@12->play_collision#1] -- register_copy - //SEG417 [130] phi (byte) play_collision::orientation#4 = (byte) play_collision::orientation#0 [phi:play_move_down::@12->play_collision#2] -- register_copy - //SEG418 [130] phi (byte*) current_piece#12 = (byte*~) current_piece#74 [phi:play_move_down::@12->play_collision#3] -- register_copy + //SEG414 [129] phi (byte) play_collision::xpos#5 = (byte) play_collision::xpos#0 [phi:play_move_down::@12->play_collision#0] -- register_copy + //SEG415 [129] phi (byte) play_collision::ypos#4 = (byte) play_collision::ypos#0 [phi:play_move_down::@12->play_collision#1] -- register_copy + //SEG416 [129] phi (byte) play_collision::orientation#4 = (byte) play_collision::orientation#0 [phi:play_move_down::@12->play_collision#2] -- register_copy + //SEG417 [129] phi (byte*) current_piece#12 = (byte*~) current_piece#74 [phi:play_move_down::@12->play_collision#3] -- register_copy jsr play_collision - //SEG419 [196] (byte) play_collision::return#0 ← (byte) play_collision::return#14 + //SEG418 [195] (byte) play_collision::return#0 ← (byte) play_collision::return#14 // (byte) play_collision::return#0 = (byte) play_collision::return#14 // register copy reg byte a jmp b18 - //SEG420 play_move_down::@18 + //SEG419 play_move_down::@18 b18: - //SEG421 [197] (byte~) play_move_down::$12 ← (byte) play_collision::return#0 + //SEG420 [196] (byte~) play_move_down::$12 ← (byte) play_collision::return#0 // (byte~) play_move_down::$12 = (byte) play_collision::return#0 // register copy reg byte a - //SEG422 [198] if((byte~) play_move_down::$12==(const byte) COLLISION_NONE#0) goto play_move_down::@6 -- vbuaa_eq_vbuc1_then_la1 + //SEG421 [197] if((byte~) play_move_down::$12==(const byte) COLLISION_NONE#0) goto play_move_down::@6 -- vbuaa_eq_vbuc1_then_la1 cmp #COLLISION_NONE beq b6 - //SEG423 [199] phi from play_move_down::@18 to play_move_down::@13 [phi:play_move_down::@18->play_move_down::@13] + //SEG422 [198] phi from play_move_down::@18 to play_move_down::@13 [phi:play_move_down::@18->play_move_down::@13] b13_from_b18: jmp b13 - //SEG424 play_move_down::@13 + //SEG423 play_move_down::@13 b13: - //SEG425 [200] call play_lock_current + //SEG424 [199] call play_lock_current jsr play_lock_current - //SEG426 [201] phi from play_move_down::@13 to play_move_down::@19 [phi:play_move_down::@13->play_move_down::@19] + //SEG425 [200] phi from play_move_down::@13 to play_move_down::@19 [phi:play_move_down::@13->play_move_down::@19] b19_from_b13: jmp b19 - //SEG427 play_move_down::@19 + //SEG426 play_move_down::@19 b19: - //SEG428 [202] call play_remove_lines - //SEG429 [226] phi from play_move_down::@19 to play_remove_lines [phi:play_move_down::@19->play_remove_lines] + //SEG427 [201] call play_remove_lines + //SEG428 [225] phi from play_move_down::@19 to play_remove_lines [phi:play_move_down::@19->play_remove_lines] play_remove_lines_from_b19: jsr play_remove_lines - //SEG430 [203] phi from play_move_down::@19 to play_move_down::@20 [phi:play_move_down::@19->play_move_down::@20] + //SEG429 [202] phi from play_move_down::@19 to play_move_down::@20 [phi:play_move_down::@19->play_move_down::@20] b20_from_b19: jmp b20 - //SEG431 play_move_down::@20 + //SEG430 play_move_down::@20 b20: - //SEG432 [204] call play_spawn_current - //SEG433 [210] phi from play_move_down::@20 to play_spawn_current [phi:play_move_down::@20->play_spawn_current] + //SEG431 [203] call play_spawn_current + //SEG432 [209] phi from play_move_down::@20 to play_spawn_current [phi:play_move_down::@20->play_spawn_current] play_spawn_current_from_b20: jsr play_spawn_current - //SEG434 [205] (byte*~) current_piece#78 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) -- pbuz1=pptc1_derefidx_vbuz2 + //SEG433 [204] (byte*~) current_piece#78 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) -- pbuz1=pptc1_derefidx_vbuz2 ldy play_spawn_current._3 lda PIECES,y sta current_piece lda PIECES+1,y sta current_piece+1 - //SEG435 [206] phi from play_move_down::@20 to play_move_down::@7 [phi:play_move_down::@20->play_move_down::@7] + //SEG434 [205] phi from play_move_down::@20 to play_move_down::@7 [phi:play_move_down::@20->play_move_down::@7] b7_from_b20: - //SEG436 [206] phi (byte) current_piece_char#20 = (byte) current_piece_char#12 [phi:play_move_down::@20->play_move_down::@7#0] -- register_copy - //SEG437 [206] phi (byte) current_xpos#33 = (byte) current_xpos#23 [phi:play_move_down::@20->play_move_down::@7#1] -- register_copy - //SEG438 [206] phi (byte*) current_piece_gfx#26 = (byte*) current_piece_gfx#16 [phi:play_move_down::@20->play_move_down::@7#2] -- register_copy - //SEG439 [206] phi (byte) current_orientation#29 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_down::@20->play_move_down::@7#3] -- vbuz1=vbuc1 + //SEG435 [205] phi (byte) current_piece_char#20 = (byte) current_piece_char#12 [phi:play_move_down::@20->play_move_down::@7#0] -- register_copy + //SEG436 [205] phi (byte) current_xpos#33 = (byte) current_xpos#23 [phi:play_move_down::@20->play_move_down::@7#1] -- register_copy + //SEG437 [205] phi (byte*) current_piece_gfx#26 = (byte*) current_piece_gfx#16 [phi:play_move_down::@20->play_move_down::@7#2] -- register_copy + //SEG438 [205] phi (byte) current_orientation#29 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_down::@20->play_move_down::@7#3] -- vbuz1=vbuc1 lda #0 sta current_orientation - //SEG440 [206] phi (byte*) current_piece#20 = (byte*~) current_piece#78 [phi:play_move_down::@20->play_move_down::@7#4] -- register_copy - //SEG441 [206] phi (byte) current_ypos#29 = (byte) current_ypos#18 [phi:play_move_down::@20->play_move_down::@7#5] -- register_copy + //SEG439 [205] phi (byte*) current_piece#20 = (byte*~) current_piece#78 [phi:play_move_down::@20->play_move_down::@7#4] -- register_copy + //SEG440 [205] phi (byte) current_ypos#29 = (byte) current_ypos#18 [phi:play_move_down::@20->play_move_down::@7#5] -- register_copy jmp b7 - //SEG442 play_move_down::@7 + //SEG441 play_move_down::@7 b7: - //SEG443 [207] phi from play_move_down::@7 to play_move_down::@return [phi:play_move_down::@7->play_move_down::@return] + //SEG442 [206] phi from play_move_down::@7 to play_move_down::@return [phi:play_move_down::@7->play_move_down::@return] breturn_from_b7: - //SEG444 [207] phi (byte) current_piece_char#1 = (byte) current_piece_char#20 [phi:play_move_down::@7->play_move_down::@return#0] -- register_copy - //SEG445 [207] phi (byte) current_xpos#1 = (byte) current_xpos#33 [phi:play_move_down::@7->play_move_down::@return#1] -- register_copy - //SEG446 [207] phi (byte*) current_piece_gfx#1 = (byte*) current_piece_gfx#26 [phi:play_move_down::@7->play_move_down::@return#2] -- register_copy - //SEG447 [207] phi (byte) current_orientation#14 = (byte) current_orientation#29 [phi:play_move_down::@7->play_move_down::@return#3] -- register_copy - //SEG448 [207] phi (byte*) current_piece#10 = (byte*) current_piece#20 [phi:play_move_down::@7->play_move_down::@return#4] -- register_copy - //SEG449 [207] phi (byte) current_ypos#13 = (byte) current_ypos#29 [phi:play_move_down::@7->play_move_down::@return#5] -- register_copy - //SEG450 [207] phi (byte) current_movedown_counter#10 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_down::@7->play_move_down::@return#6] -- vbuz1=vbuc1 + //SEG443 [206] phi (byte) current_piece_char#1 = (byte) current_piece_char#20 [phi:play_move_down::@7->play_move_down::@return#0] -- register_copy + //SEG444 [206] phi (byte) current_xpos#1 = (byte) current_xpos#33 [phi:play_move_down::@7->play_move_down::@return#1] -- register_copy + //SEG445 [206] phi (byte*) current_piece_gfx#1 = (byte*) current_piece_gfx#26 [phi:play_move_down::@7->play_move_down::@return#2] -- register_copy + //SEG446 [206] phi (byte) current_orientation#14 = (byte) current_orientation#29 [phi:play_move_down::@7->play_move_down::@return#3] -- register_copy + //SEG447 [206] phi (byte*) current_piece#10 = (byte*) current_piece#20 [phi:play_move_down::@7->play_move_down::@return#4] -- register_copy + //SEG448 [206] phi (byte) current_ypos#13 = (byte) current_ypos#29 [phi:play_move_down::@7->play_move_down::@return#5] -- register_copy + //SEG449 [206] phi (byte) current_movedown_counter#10 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_down::@7->play_move_down::@return#6] -- vbuz1=vbuc1 lda #0 sta current_movedown_counter - //SEG451 [207] phi (byte) play_move_down::return#2 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_move_down::@7->play_move_down::@return#7] -- vbuxx=vbuc1 + //SEG450 [206] phi (byte) play_move_down::return#2 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_move_down::@7->play_move_down::@return#7] -- vbuxx=vbuc1 ldx #1 jmp breturn - //SEG452 [207] phi from play_move_down::@4 to play_move_down::@return [phi:play_move_down::@4->play_move_down::@return] + //SEG451 [206] phi from play_move_down::@4 to play_move_down::@return [phi:play_move_down::@4->play_move_down::@return] breturn_from_b4: - //SEG453 [207] phi (byte) current_piece_char#1 = (byte) current_piece_char#15 [phi:play_move_down::@4->play_move_down::@return#0] -- register_copy - //SEG454 [207] phi (byte) current_xpos#1 = (byte) current_xpos#10 [phi:play_move_down::@4->play_move_down::@return#1] -- register_copy - //SEG455 [207] phi (byte*) current_piece_gfx#1 = (byte*) current_piece_gfx#20 [phi:play_move_down::@4->play_move_down::@return#2] -- register_copy - //SEG456 [207] phi (byte) current_orientation#14 = (byte) current_orientation#10 [phi:play_move_down::@4->play_move_down::@return#3] -- register_copy - //SEG457 [207] phi (byte*) current_piece#10 = (byte*) current_piece#16 [phi:play_move_down::@4->play_move_down::@return#4] -- register_copy - //SEG458 [207] phi (byte) current_ypos#13 = (byte) current_ypos#21 [phi:play_move_down::@4->play_move_down::@return#5] -- register_copy - //SEG459 [207] phi (byte) current_movedown_counter#10 = (byte) current_movedown_counter#1 [phi:play_move_down::@4->play_move_down::@return#6] -- register_copy - //SEG460 [207] phi (byte) play_move_down::return#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_down::@4->play_move_down::@return#7] -- vbuxx=vbuc1 + //SEG452 [206] phi (byte) current_piece_char#1 = (byte) current_piece_char#15 [phi:play_move_down::@4->play_move_down::@return#0] -- register_copy + //SEG453 [206] phi (byte) current_xpos#1 = (byte) current_xpos#10 [phi:play_move_down::@4->play_move_down::@return#1] -- register_copy + //SEG454 [206] phi (byte*) current_piece_gfx#1 = (byte*) current_piece_gfx#20 [phi:play_move_down::@4->play_move_down::@return#2] -- register_copy + //SEG455 [206] phi (byte) current_orientation#14 = (byte) current_orientation#10 [phi:play_move_down::@4->play_move_down::@return#3] -- register_copy + //SEG456 [206] phi (byte*) current_piece#10 = (byte*) current_piece#16 [phi:play_move_down::@4->play_move_down::@return#4] -- register_copy + //SEG457 [206] phi (byte) current_ypos#13 = (byte) current_ypos#21 [phi:play_move_down::@4->play_move_down::@return#5] -- register_copy + //SEG458 [206] phi (byte) current_movedown_counter#10 = (byte) current_movedown_counter#1 [phi:play_move_down::@4->play_move_down::@return#6] -- register_copy + //SEG459 [206] phi (byte) play_move_down::return#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_down::@4->play_move_down::@return#7] -- vbuxx=vbuc1 ldx #0 jmp breturn - //SEG461 play_move_down::@return + //SEG460 play_move_down::@return breturn: - //SEG462 [208] return + //SEG461 [207] return rts - //SEG463 play_move_down::@6 + //SEG462 play_move_down::@6 b6: - //SEG464 [209] (byte) current_ypos#0 ← ++ (byte) current_ypos#21 -- vbuz1=_inc_vbuz1 + //SEG463 [208] (byte) current_ypos#0 ← ++ (byte) current_ypos#21 -- vbuz1=_inc_vbuz1 inc current_ypos - //SEG465 [206] phi from play_move_down::@6 to play_move_down::@7 [phi:play_move_down::@6->play_move_down::@7] + //SEG464 [205] phi from play_move_down::@6 to play_move_down::@7 [phi:play_move_down::@6->play_move_down::@7] b7_from_b6: - //SEG466 [206] phi (byte) current_piece_char#20 = (byte) current_piece_char#15 [phi:play_move_down::@6->play_move_down::@7#0] -- register_copy - //SEG467 [206] phi (byte) current_xpos#33 = (byte) current_xpos#10 [phi:play_move_down::@6->play_move_down::@7#1] -- register_copy - //SEG468 [206] phi (byte*) current_piece_gfx#26 = (byte*) current_piece_gfx#20 [phi:play_move_down::@6->play_move_down::@7#2] -- register_copy - //SEG469 [206] phi (byte) current_orientation#29 = (byte) current_orientation#10 [phi:play_move_down::@6->play_move_down::@7#3] -- register_copy - //SEG470 [206] phi (byte*) current_piece#20 = (byte*) current_piece#16 [phi:play_move_down::@6->play_move_down::@7#4] -- register_copy - //SEG471 [206] phi (byte) current_ypos#29 = (byte) current_ypos#0 [phi:play_move_down::@6->play_move_down::@7#5] -- register_copy + //SEG465 [205] phi (byte) current_piece_char#20 = (byte) current_piece_char#15 [phi:play_move_down::@6->play_move_down::@7#0] -- register_copy + //SEG466 [205] phi (byte) current_xpos#33 = (byte) current_xpos#10 [phi:play_move_down::@6->play_move_down::@7#1] -- register_copy + //SEG467 [205] phi (byte*) current_piece_gfx#26 = (byte*) current_piece_gfx#20 [phi:play_move_down::@6->play_move_down::@7#2] -- register_copy + //SEG468 [205] phi (byte) current_orientation#29 = (byte) current_orientation#10 [phi:play_move_down::@6->play_move_down::@7#3] -- register_copy + //SEG469 [205] phi (byte*) current_piece#20 = (byte*) current_piece#16 [phi:play_move_down::@6->play_move_down::@7#4] -- register_copy + //SEG470 [205] phi (byte) current_ypos#29 = (byte) current_ypos#0 [phi:play_move_down::@6->play_move_down::@7#5] -- register_copy jmp b7 } -//SEG472 play_spawn_current +//SEG471 play_spawn_current play_spawn_current: { .label _3 = 4 - //SEG473 [211] phi from play_spawn_current to play_spawn_current::@1 [phi:play_spawn_current->play_spawn_current::@1] + //SEG472 [210] phi from play_spawn_current to play_spawn_current::@1 [phi:play_spawn_current->play_spawn_current::@1] b1_from_play_spawn_current: - //SEG474 [211] phi (byte) play_spawn_current::piece_idx#2 = (byte/signed byte/word/signed word/dword/signed dword) 7 [phi:play_spawn_current->play_spawn_current::@1#0] -- vbuxx=vbuc1 + //SEG473 [210] phi (byte) play_spawn_current::piece_idx#2 = (byte/signed byte/word/signed word/dword/signed dword) 7 [phi:play_spawn_current->play_spawn_current::@1#0] -- vbuxx=vbuc1 ldx #7 jmp b1 - //SEG475 play_spawn_current::@1 + //SEG474 play_spawn_current::@1 b1: - //SEG476 [212] if((byte) play_spawn_current::piece_idx#2==(byte/signed byte/word/signed word/dword/signed dword) 7) goto play_spawn_current::@2 -- vbuxx_eq_vbuc1_then_la1 + //SEG475 [211] if((byte) play_spawn_current::piece_idx#2==(byte/signed byte/word/signed word/dword/signed dword) 7) goto play_spawn_current::@2 -- vbuxx_eq_vbuc1_then_la1 cpx #7 beq b2_from_b1 jmp b3 - //SEG477 play_spawn_current::@3 + //SEG476 play_spawn_current::@3 b3: - //SEG478 [213] (byte~) play_spawn_current::$3 ← (byte) play_spawn_current::piece_idx#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuxx_rol_1 + //SEG477 [212] (byte~) play_spawn_current::$3 ← (byte) play_spawn_current::piece_idx#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuxx_rol_1 txa asl sta _3 - //SEG479 [214] (byte*) current_piece_gfx#16 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) + (byte/signed byte/word/signed word/dword/signed dword) 0 -- pbuz1=pptc1_derefidx_vbuz2_plus_0 + //SEG478 [213] (byte*) current_piece_gfx#16 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) + (byte/signed byte/word/signed word/dword/signed dword) 0 -- pbuz1=pptc1_derefidx_vbuz2_plus_0 ldy _3 lda PIECES,y sta current_piece_gfx lda PIECES+1,y sta current_piece_gfx+1 - //SEG480 [215] (byte) current_xpos#23 ← *((const byte[]) PIECES_START_X#0 + (byte) play_spawn_current::piece_idx#2) -- vbuz1=pbuc1_derefidx_vbuxx + //SEG479 [214] (byte) current_xpos#23 ← *((const byte[]) PIECES_START_X#0 + (byte) play_spawn_current::piece_idx#2) -- vbuz1=pbuc1_derefidx_vbuxx lda PIECES_START_X,x sta current_xpos - //SEG481 [216] (byte) current_ypos#18 ← *((const byte[]) PIECES_START_Y#0 + (byte) play_spawn_current::piece_idx#2) -- vbuz1=pbuc1_derefidx_vbuxx + //SEG480 [215] (byte) current_ypos#18 ← *((const byte[]) PIECES_START_Y#0 + (byte) play_spawn_current::piece_idx#2) -- vbuz1=pbuc1_derefidx_vbuxx lda PIECES_START_Y,x sta current_ypos - //SEG482 [217] (byte) current_piece_char#12 ← *((const byte[]) PIECES_CHARS#0 + (byte) play_spawn_current::piece_idx#2) -- vbuz1=pbuc1_derefidx_vbuxx + //SEG481 [216] (byte) current_piece_char#12 ← *((const byte[]) PIECES_CHARS#0 + (byte) play_spawn_current::piece_idx#2) -- vbuz1=pbuc1_derefidx_vbuxx lda PIECES_CHARS,x sta current_piece_char jmp breturn - //SEG483 play_spawn_current::@return + //SEG482 play_spawn_current::@return breturn: - //SEG484 [218] return + //SEG483 [217] return rts - //SEG485 [219] phi from play_spawn_current::@1 to play_spawn_current::@2 [phi:play_spawn_current::@1->play_spawn_current::@2] + //SEG484 [218] phi from play_spawn_current::@1 to play_spawn_current::@2 [phi:play_spawn_current::@1->play_spawn_current::@2] b2_from_b1: jmp b2 - //SEG486 play_spawn_current::@2 + //SEG485 play_spawn_current::@2 b2: - //SEG487 [220] call sid_rnd + //SEG486 [219] call sid_rnd jsr sid_rnd - //SEG488 [221] (byte) sid_rnd::return#2 ← (byte) sid_rnd::return#0 + //SEG487 [220] (byte) sid_rnd::return#2 ← (byte) sid_rnd::return#0 // (byte) sid_rnd::return#2 = (byte) sid_rnd::return#0 // register copy reg byte a jmp b7 - //SEG489 play_spawn_current::@7 + //SEG488 play_spawn_current::@7 b7: - //SEG490 [222] (byte~) play_spawn_current::$1 ← (byte) sid_rnd::return#2 + //SEG489 [221] (byte~) play_spawn_current::$1 ← (byte) sid_rnd::return#2 // (byte~) play_spawn_current::$1 = (byte) sid_rnd::return#2 // register copy reg byte a - //SEG491 [223] (byte) play_spawn_current::piece_idx#1 ← (byte~) play_spawn_current::$1 & (byte/signed byte/word/signed word/dword/signed dword) 7 -- vbuxx=vbuaa_band_vbuc1 + //SEG490 [222] (byte) play_spawn_current::piece_idx#1 ← (byte~) play_spawn_current::$1 & (byte/signed byte/word/signed word/dword/signed dword) 7 -- vbuxx=vbuaa_band_vbuc1 and #7 tax - //SEG492 [211] phi from play_spawn_current::@7 to play_spawn_current::@1 [phi:play_spawn_current::@7->play_spawn_current::@1] + //SEG491 [210] phi from play_spawn_current::@7 to play_spawn_current::@1 [phi:play_spawn_current::@7->play_spawn_current::@1] b1_from_b7: - //SEG493 [211] phi (byte) play_spawn_current::piece_idx#2 = (byte) play_spawn_current::piece_idx#1 [phi:play_spawn_current::@7->play_spawn_current::@1#0] -- register_copy + //SEG492 [210] phi (byte) play_spawn_current::piece_idx#2 = (byte) play_spawn_current::piece_idx#1 [phi:play_spawn_current::@7->play_spawn_current::@1#0] -- register_copy jmp b1 } -//SEG494 sid_rnd +//SEG493 sid_rnd sid_rnd: { - //SEG495 [224] (byte) sid_rnd::return#0 ← *((const byte*) SID_VOICE3_OSC#0) -- vbuaa=_deref_pbuc1 + //SEG494 [223] (byte) sid_rnd::return#0 ← *((const byte*) SID_VOICE3_OSC#0) -- vbuaa=_deref_pbuc1 lda SID_VOICE3_OSC jmp breturn - //SEG496 sid_rnd::@return + //SEG495 sid_rnd::@return breturn: - //SEG497 [225] return + //SEG496 [224] return rts } -//SEG498 play_remove_lines +//SEG497 play_remove_lines play_remove_lines: { .label c = 9 .label x = 5 .label y = 4 .label full = 6 - //SEG499 [227] phi from play_remove_lines to play_remove_lines::@1 [phi:play_remove_lines->play_remove_lines::@1] + //SEG498 [226] phi from play_remove_lines to play_remove_lines::@1 [phi:play_remove_lines->play_remove_lines::@1] b1_from_play_remove_lines: - //SEG500 [227] phi (byte) play_remove_lines::y#8 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_remove_lines->play_remove_lines::@1#0] -- vbuz1=vbuc1 + //SEG499 [226] phi (byte) play_remove_lines::y#8 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_remove_lines->play_remove_lines::@1#0] -- vbuz1=vbuc1 lda #0 sta y - //SEG501 [227] phi (byte) play_remove_lines::w#12 = (const byte) PLAYFIELD_LINES#0*(const byte) PLAYFIELD_COLS#0-(byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_remove_lines->play_remove_lines::@1#1] -- vbuxx=vbuc1 + //SEG500 [226] phi (byte) play_remove_lines::w#12 = (const byte) PLAYFIELD_LINES#0*(const byte) PLAYFIELD_COLS#0-(byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_remove_lines->play_remove_lines::@1#1] -- vbuxx=vbuc1 ldx #PLAYFIELD_LINES*PLAYFIELD_COLS-1 - //SEG502 [227] phi (byte) play_remove_lines::r#3 = (const byte) PLAYFIELD_LINES#0*(const byte) PLAYFIELD_COLS#0-(byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_remove_lines->play_remove_lines::@1#2] -- vbuyy=vbuc1 + //SEG501 [226] phi (byte) play_remove_lines::r#3 = (const byte) PLAYFIELD_LINES#0*(const byte) PLAYFIELD_COLS#0-(byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_remove_lines->play_remove_lines::@1#2] -- vbuyy=vbuc1 ldy #PLAYFIELD_LINES*PLAYFIELD_COLS-1 jmp b1 - //SEG503 [227] phi from play_remove_lines::@4 to play_remove_lines::@1 [phi:play_remove_lines::@4->play_remove_lines::@1] + //SEG502 [226] phi from play_remove_lines::@4 to play_remove_lines::@1 [phi:play_remove_lines::@4->play_remove_lines::@1] b1_from_b4: - //SEG504 [227] phi (byte) play_remove_lines::y#8 = (byte) play_remove_lines::y#1 [phi:play_remove_lines::@4->play_remove_lines::@1#0] -- register_copy - //SEG505 [227] phi (byte) play_remove_lines::w#12 = (byte) play_remove_lines::w#11 [phi:play_remove_lines::@4->play_remove_lines::@1#1] -- register_copy - //SEG506 [227] phi (byte) play_remove_lines::r#3 = (byte) play_remove_lines::r#1 [phi:play_remove_lines::@4->play_remove_lines::@1#2] -- register_copy + //SEG503 [226] phi (byte) play_remove_lines::y#8 = (byte) play_remove_lines::y#1 [phi:play_remove_lines::@4->play_remove_lines::@1#0] -- register_copy + //SEG504 [226] phi (byte) play_remove_lines::w#12 = (byte) play_remove_lines::w#11 [phi:play_remove_lines::@4->play_remove_lines::@1#1] -- register_copy + //SEG505 [226] phi (byte) play_remove_lines::r#3 = (byte) play_remove_lines::r#1 [phi:play_remove_lines::@4->play_remove_lines::@1#2] -- register_copy jmp b1 - //SEG507 play_remove_lines::@1 + //SEG506 play_remove_lines::@1 b1: - //SEG508 [228] phi from play_remove_lines::@1 to play_remove_lines::@2 [phi:play_remove_lines::@1->play_remove_lines::@2] + //SEG507 [227] phi from play_remove_lines::@1 to play_remove_lines::@2 [phi:play_remove_lines::@1->play_remove_lines::@2] b2_from_b1: - //SEG509 [228] phi (byte) play_remove_lines::full#4 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_remove_lines::@1->play_remove_lines::@2#0] -- vbuz1=vbuc1 + //SEG508 [227] phi (byte) play_remove_lines::full#4 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_remove_lines::@1->play_remove_lines::@2#0] -- vbuz1=vbuc1 lda #1 sta full - //SEG510 [228] phi (byte) play_remove_lines::x#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_remove_lines::@1->play_remove_lines::@2#1] -- vbuz1=vbuc1 + //SEG509 [227] phi (byte) play_remove_lines::x#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_remove_lines::@1->play_remove_lines::@2#1] -- vbuz1=vbuc1 lda #0 sta x - //SEG511 [228] 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 - //SEG512 [228] 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 + //SEG510 [227] 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 + //SEG511 [227] 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 - //SEG513 [228] phi from play_remove_lines::@3 to play_remove_lines::@2 [phi:play_remove_lines::@3->play_remove_lines::@2] + //SEG512 [227] phi from play_remove_lines::@3 to play_remove_lines::@2 [phi:play_remove_lines::@3->play_remove_lines::@2] b2_from_b3: - //SEG514 [228] 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 - //SEG515 [228] 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 - //SEG516 [228] 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 - //SEG517 [228] 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 + //SEG513 [227] 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 + //SEG514 [227] 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 + //SEG515 [227] 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 + //SEG516 [227] 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 - //SEG518 play_remove_lines::@2 + //SEG517 play_remove_lines::@2 b2: - //SEG519 [229] (byte) play_remove_lines::c#0 ← *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) play_remove_lines::r#2) -- vbuz1=pbuc1_derefidx_vbuyy + //SEG518 [228] (byte) play_remove_lines::c#0 ← *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) play_remove_lines::r#2) -- vbuz1=pbuc1_derefidx_vbuyy lda playfield,y sta c - //SEG520 [230] (byte) play_remove_lines::r#1 ← -- (byte) play_remove_lines::r#2 -- vbuyy=_dec_vbuyy + //SEG519 [229] (byte) play_remove_lines::r#1 ← -- (byte) play_remove_lines::r#2 -- vbuyy=_dec_vbuyy dey - //SEG521 [231] if((byte) play_remove_lines::c#0!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_remove_lines::@17 -- vbuz1_neq_0_then_la1 + //SEG520 [230] if((byte) play_remove_lines::c#0!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_remove_lines::@17 -- vbuz1_neq_0_then_la1 lda c cmp #0 bne b17_from_b2 - //SEG522 [232] phi from play_remove_lines::@2 to play_remove_lines::@3 [phi:play_remove_lines::@2->play_remove_lines::@3] + //SEG521 [231] phi from play_remove_lines::@2 to play_remove_lines::@3 [phi:play_remove_lines::@2->play_remove_lines::@3] b3_from_b2: - //SEG523 [232] phi (byte) play_remove_lines::full#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_remove_lines::@2->play_remove_lines::@3#0] -- vbuz1=vbuc1 + //SEG522 [231] phi (byte) play_remove_lines::full#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_remove_lines::@2->play_remove_lines::@3#0] -- vbuz1=vbuc1 lda #0 sta full jmp b3 - //SEG524 play_remove_lines::@3 + //SEG523 play_remove_lines::@3 b3: - //SEG525 [233] *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) play_remove_lines::w#4) ← (byte) play_remove_lines::c#0 -- pbuc1_derefidx_vbuxx=vbuz1 + //SEG524 [232] *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) play_remove_lines::w#4) ← (byte) play_remove_lines::c#0 -- pbuc1_derefidx_vbuxx=vbuz1 lda c sta playfield,x - //SEG526 [234] (byte) play_remove_lines::w#1 ← -- (byte) play_remove_lines::w#4 -- vbuxx=_dec_vbuxx + //SEG525 [233] (byte) play_remove_lines::w#1 ← -- (byte) play_remove_lines::w#4 -- vbuxx=_dec_vbuxx dex - //SEG527 [235] (byte) play_remove_lines::x#1 ← ++ (byte) play_remove_lines::x#2 -- vbuz1=_inc_vbuz1 + //SEG526 [234] (byte) play_remove_lines::x#1 ← ++ (byte) play_remove_lines::x#2 -- vbuz1=_inc_vbuz1 inc x - //SEG528 [236] if((byte) play_remove_lines::x#1!=(const byte) PLAYFIELD_COLS#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto play_remove_lines::@2 -- vbuz1_neq_vbuc1_then_la1 + //SEG527 [235] if((byte) play_remove_lines::x#1!=(const byte) PLAYFIELD_COLS#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto play_remove_lines::@2 -- vbuz1_neq_vbuc1_then_la1 lda x cmp #PLAYFIELD_COLS-1+1 bne b2_from_b3 jmp b9 - //SEG529 play_remove_lines::@9 + //SEG528 play_remove_lines::@9 b9: - //SEG530 [237] if((byte) play_remove_lines::full#2!=(byte/signed byte/word/signed word/dword/signed dword) 1) goto play_remove_lines::@4 -- vbuz1_neq_vbuc1_then_la1 + //SEG529 [236] if((byte) play_remove_lines::full#2!=(byte/signed byte/word/signed word/dword/signed dword) 1) goto play_remove_lines::@4 -- vbuz1_neq_vbuc1_then_la1 lda full cmp #1 bne b4_from_b9 jmp b10 - //SEG531 play_remove_lines::@10 + //SEG530 play_remove_lines::@10 b10: - //SEG532 [238] (byte) play_remove_lines::w#2 ← (byte) play_remove_lines::w#1 + (const byte) PLAYFIELD_COLS#0 -- vbuxx=vbuxx_plus_vbuc1 + //SEG531 [237] (byte) play_remove_lines::w#2 ← (byte) play_remove_lines::w#1 + (const byte) PLAYFIELD_COLS#0 -- vbuxx=vbuxx_plus_vbuc1 txa clc adc #PLAYFIELD_COLS tax - //SEG533 [239] phi from play_remove_lines::@10 play_remove_lines::@9 to play_remove_lines::@4 [phi:play_remove_lines::@10/play_remove_lines::@9->play_remove_lines::@4] + //SEG532 [238] phi from play_remove_lines::@10 play_remove_lines::@9 to play_remove_lines::@4 [phi:play_remove_lines::@10/play_remove_lines::@9->play_remove_lines::@4] b4_from_b10: b4_from_b9: - //SEG534 [239] phi (byte) play_remove_lines::w#11 = (byte) play_remove_lines::w#2 [phi:play_remove_lines::@10/play_remove_lines::@9->play_remove_lines::@4#0] -- register_copy + //SEG533 [238] phi (byte) play_remove_lines::w#11 = (byte) play_remove_lines::w#2 [phi:play_remove_lines::@10/play_remove_lines::@9->play_remove_lines::@4#0] -- register_copy jmp b4 - //SEG535 play_remove_lines::@4 + //SEG534 play_remove_lines::@4 b4: - //SEG536 [240] (byte) play_remove_lines::y#1 ← ++ (byte) play_remove_lines::y#8 -- vbuz1=_inc_vbuz1 + //SEG535 [239] (byte) play_remove_lines::y#1 ← ++ (byte) play_remove_lines::y#8 -- vbuz1=_inc_vbuz1 inc y - //SEG537 [241] if((byte) play_remove_lines::y#1!=(const byte) PLAYFIELD_LINES#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto play_remove_lines::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG536 [240] if((byte) play_remove_lines::y#1!=(const byte) PLAYFIELD_LINES#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto play_remove_lines::@1 -- vbuz1_neq_vbuc1_then_la1 lda y cmp #PLAYFIELD_LINES-1+1 bne b1_from_b4 - //SEG538 [242] phi from play_remove_lines::@4 play_remove_lines::@6 to play_remove_lines::@5 [phi:play_remove_lines::@4/play_remove_lines::@6->play_remove_lines::@5] + //SEG537 [241] phi from play_remove_lines::@4 play_remove_lines::@6 to play_remove_lines::@5 [phi:play_remove_lines::@4/play_remove_lines::@6->play_remove_lines::@5] b5_from_b4: b5_from_b6: - //SEG539 [242] phi (byte) play_remove_lines::w#6 = (byte) play_remove_lines::w#11 [phi:play_remove_lines::@4/play_remove_lines::@6->play_remove_lines::@5#0] -- register_copy + //SEG538 [241] phi (byte) play_remove_lines::w#6 = (byte) play_remove_lines::w#11 [phi:play_remove_lines::@4/play_remove_lines::@6->play_remove_lines::@5#0] -- register_copy jmp b5 - //SEG540 play_remove_lines::@5 + //SEG539 play_remove_lines::@5 b5: - //SEG541 [243] if((byte) play_remove_lines::w#6!=(byte/word/signed word/dword/signed dword) 255) goto play_remove_lines::@6 -- vbuxx_neq_vbuc1_then_la1 + //SEG540 [242] if((byte) play_remove_lines::w#6!=(byte/word/signed word/dword/signed dword) 255) goto play_remove_lines::@6 -- vbuxx_neq_vbuc1_then_la1 cpx #$ff bne b6 jmp breturn - //SEG542 play_remove_lines::@return + //SEG541 play_remove_lines::@return breturn: - //SEG543 [244] return + //SEG542 [243] return rts - //SEG544 play_remove_lines::@6 + //SEG543 play_remove_lines::@6 b6: - //SEG545 [245] *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) play_remove_lines::w#6) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- pbuc1_derefidx_vbuxx=vbuc2 + //SEG544 [244] *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) play_remove_lines::w#6) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- pbuc1_derefidx_vbuxx=vbuc2 lda #0 sta playfield,x - //SEG546 [246] (byte) play_remove_lines::w#3 ← -- (byte) play_remove_lines::w#6 -- vbuxx=_dec_vbuxx + //SEG545 [245] (byte) play_remove_lines::w#3 ← -- (byte) play_remove_lines::w#6 -- vbuxx=_dec_vbuxx dex jmp b5_from_b6 - //SEG547 [247] phi from play_remove_lines::@2 to play_remove_lines::@17 [phi:play_remove_lines::@2->play_remove_lines::@17] + //SEG546 [246] phi from play_remove_lines::@2 to play_remove_lines::@17 [phi:play_remove_lines::@2->play_remove_lines::@17] b17_from_b2: jmp b17 - //SEG548 play_remove_lines::@17 + //SEG547 play_remove_lines::@17 b17: - //SEG549 [232] phi from play_remove_lines::@17 to play_remove_lines::@3 [phi:play_remove_lines::@17->play_remove_lines::@3] + //SEG548 [231] phi from play_remove_lines::@17 to play_remove_lines::@3 [phi:play_remove_lines::@17->play_remove_lines::@3] b3_from_b17: - //SEG550 [232] phi (byte) play_remove_lines::full#2 = (byte) play_remove_lines::full#4 [phi:play_remove_lines::@17->play_remove_lines::@3#0] -- register_copy + //SEG549 [231] phi (byte) play_remove_lines::full#2 = (byte) play_remove_lines::full#4 [phi:play_remove_lines::@17->play_remove_lines::@3#0] -- register_copy jmp b3 } -//SEG551 play_lock_current +//SEG550 play_lock_current play_lock_current: { .label ypos2 = $e .label playfield_line = 7 @@ -14399,530 +14264,530 @@ play_lock_current: { .label i_3 = 5 .label i_7 = 5 .label i_9 = 5 - //SEG552 [248] (byte) play_lock_current::ypos2#0 ← (byte) current_ypos#21 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz1_rol_1 + //SEG551 [247] (byte) play_lock_current::ypos2#0 ← (byte) current_ypos#21 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz1_rol_1 asl ypos2 - //SEG553 [249] phi from play_lock_current to play_lock_current::@1 [phi:play_lock_current->play_lock_current::@1] + //SEG552 [248] phi from play_lock_current to play_lock_current::@1 [phi:play_lock_current->play_lock_current::@1] b1_from_play_lock_current: - //SEG554 [249] phi (byte) play_lock_current::l#6 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_lock_current->play_lock_current::@1#0] -- vbuz1=vbuc1 + //SEG553 [248] phi (byte) play_lock_current::l#6 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_lock_current->play_lock_current::@1#0] -- vbuz1=vbuc1 lda #0 sta l - //SEG555 [249] phi (byte) play_lock_current::i#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_lock_current->play_lock_current::@1#1] -- vbuz1=vbuc1 + //SEG554 [248] phi (byte) play_lock_current::i#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_lock_current->play_lock_current::@1#1] -- vbuz1=vbuc1 lda #0 sta i_3 - //SEG556 [249] phi (byte) play_lock_current::ypos2#2 = (byte) play_lock_current::ypos2#0 [phi:play_lock_current->play_lock_current::@1#2] -- register_copy + //SEG555 [248] phi (byte) play_lock_current::ypos2#2 = (byte) play_lock_current::ypos2#0 [phi:play_lock_current->play_lock_current::@1#2] -- register_copy jmp b1 - //SEG557 play_lock_current::@1 + //SEG556 play_lock_current::@1 b1: - //SEG558 [250] (byte*) play_lock_current::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) play_lock_current::ypos2#2) -- pbuz1=pptc1_derefidx_vbuz2 + //SEG557 [249] (byte*) play_lock_current::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) play_lock_current::ypos2#2) -- pbuz1=pptc1_derefidx_vbuz2 ldy ypos2 lda playfield_lines,y sta playfield_line lda playfield_lines+1,y sta playfield_line+1 - //SEG559 [251] (byte) play_lock_current::col#0 ← (byte) current_xpos#10 -- vbuz1=vbuz2 + //SEG558 [250] (byte) play_lock_current::col#0 ← (byte) current_xpos#10 -- vbuz1=vbuz2 lda current_xpos sta col - //SEG560 [252] phi from play_lock_current::@1 to play_lock_current::@2 [phi:play_lock_current::@1->play_lock_current::@2] + //SEG559 [251] phi from play_lock_current::@1 to play_lock_current::@2 [phi:play_lock_current::@1->play_lock_current::@2] b2_from_b1: - //SEG561 [252] phi (byte) play_lock_current::c#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_lock_current::@1->play_lock_current::@2#0] -- vbuxx=vbuc1 + //SEG560 [251] phi (byte) play_lock_current::c#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_lock_current::@1->play_lock_current::@2#0] -- vbuxx=vbuc1 ldx #0 - //SEG562 [252] phi (byte) play_lock_current::col#2 = (byte) play_lock_current::col#0 [phi:play_lock_current::@1->play_lock_current::@2#1] -- register_copy - //SEG563 [252] 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 + //SEG561 [251] phi (byte) play_lock_current::col#2 = (byte) play_lock_current::col#0 [phi:play_lock_current::@1->play_lock_current::@2#1] -- register_copy + //SEG562 [251] 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 - //SEG564 play_lock_current::@2 + //SEG563 play_lock_current::@2 b2: - //SEG565 [253] (byte) play_lock_current::i#1 ← ++ (byte) play_lock_current::i#2 -- vbuz1=_inc_vbuz2 + //SEG564 [252] (byte) play_lock_current::i#1 ← ++ (byte) play_lock_current::i#2 -- vbuz1=_inc_vbuz2 ldy i_2 iny sty i - //SEG566 [254] if(*((byte*) current_piece_gfx#20 + (byte) play_lock_current::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_lock_current::@3 -- pbuz1_derefidx_vbuz2_eq_0_then_la1 + //SEG565 [253] if(*((byte*) current_piece_gfx#20 + (byte) play_lock_current::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_lock_current::@3 -- pbuz1_derefidx_vbuz2_eq_0_then_la1 ldy i_2 lda (current_piece_gfx),y cmp #0 beq b3 jmp b4 - //SEG567 play_lock_current::@4 + //SEG566 play_lock_current::@4 b4: - //SEG568 [255] *((byte*) play_lock_current::playfield_line#0 + (byte) play_lock_current::col#2) ← (byte) current_piece_char#15 -- pbuz1_derefidx_vbuz2=vbuz3 + //SEG567 [254] *((byte*) play_lock_current::playfield_line#0 + (byte) play_lock_current::col#2) ← (byte) current_piece_char#15 -- pbuz1_derefidx_vbuz2=vbuz3 lda current_piece_char ldy col sta (playfield_line),y jmp b3 - //SEG569 play_lock_current::@3 + //SEG568 play_lock_current::@3 b3: - //SEG570 [256] (byte) play_lock_current::col#1 ← ++ (byte) play_lock_current::col#2 -- vbuz1=_inc_vbuz1 + //SEG569 [255] (byte) play_lock_current::col#1 ← ++ (byte) play_lock_current::col#2 -- vbuz1=_inc_vbuz1 inc col - //SEG571 [257] (byte) play_lock_current::c#1 ← ++ (byte) play_lock_current::c#2 -- vbuxx=_inc_vbuxx + //SEG570 [256] (byte) play_lock_current::c#1 ← ++ (byte) play_lock_current::c#2 -- vbuxx=_inc_vbuxx inx - //SEG572 [258] if((byte) play_lock_current::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto play_lock_current::@8 -- vbuxx_neq_vbuc1_then_la1 + //SEG571 [257] if((byte) play_lock_current::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto play_lock_current::@8 -- vbuxx_neq_vbuc1_then_la1 cpx #4 bne b8 jmp b5 - //SEG573 play_lock_current::@5 + //SEG572 play_lock_current::@5 b5: - //SEG574 [259] (byte) play_lock_current::ypos2#1 ← (byte) play_lock_current::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 -- vbuz1=vbuz1_plus_2 + //SEG573 [258] (byte) play_lock_current::ypos2#1 ← (byte) play_lock_current::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 -- vbuz1=vbuz1_plus_2 lda ypos2 clc adc #2 sta ypos2 - //SEG575 [260] (byte) play_lock_current::l#1 ← ++ (byte) play_lock_current::l#6 -- vbuz1=_inc_vbuz1 + //SEG574 [259] (byte) play_lock_current::l#1 ← ++ (byte) play_lock_current::l#6 -- vbuz1=_inc_vbuz1 inc l - //SEG576 [261] if((byte) play_lock_current::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto play_lock_current::@7 -- vbuz1_neq_vbuc1_then_la1 + //SEG575 [260] if((byte) play_lock_current::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto play_lock_current::@7 -- vbuz1_neq_vbuc1_then_la1 lda l cmp #4 bne b7 jmp breturn - //SEG577 play_lock_current::@return + //SEG576 play_lock_current::@return breturn: - //SEG578 [262] return + //SEG577 [261] return rts - //SEG579 play_lock_current::@7 + //SEG578 play_lock_current::@7 b7: - //SEG580 [263] (byte~) play_lock_current::i#7 ← (byte) play_lock_current::i#1 -- vbuz1=vbuz2 + //SEG579 [262] (byte~) play_lock_current::i#7 ← (byte) play_lock_current::i#1 -- vbuz1=vbuz2 lda i sta i_7 - //SEG581 [249] phi from play_lock_current::@7 to play_lock_current::@1 [phi:play_lock_current::@7->play_lock_current::@1] + //SEG580 [248] phi from play_lock_current::@7 to play_lock_current::@1 [phi:play_lock_current::@7->play_lock_current::@1] b1_from_b7: - //SEG582 [249] phi (byte) play_lock_current::l#6 = (byte) play_lock_current::l#1 [phi:play_lock_current::@7->play_lock_current::@1#0] -- register_copy - //SEG583 [249] phi (byte) play_lock_current::i#3 = (byte~) play_lock_current::i#7 [phi:play_lock_current::@7->play_lock_current::@1#1] -- register_copy - //SEG584 [249] phi (byte) play_lock_current::ypos2#2 = (byte) play_lock_current::ypos2#1 [phi:play_lock_current::@7->play_lock_current::@1#2] -- register_copy + //SEG581 [248] phi (byte) play_lock_current::l#6 = (byte) play_lock_current::l#1 [phi:play_lock_current::@7->play_lock_current::@1#0] -- register_copy + //SEG582 [248] phi (byte) play_lock_current::i#3 = (byte~) play_lock_current::i#7 [phi:play_lock_current::@7->play_lock_current::@1#1] -- register_copy + //SEG583 [248] phi (byte) play_lock_current::ypos2#2 = (byte) play_lock_current::ypos2#1 [phi:play_lock_current::@7->play_lock_current::@1#2] -- register_copy jmp b1 - //SEG585 play_lock_current::@8 + //SEG584 play_lock_current::@8 b8: - //SEG586 [264] (byte~) play_lock_current::i#9 ← (byte) play_lock_current::i#1 -- vbuz1=vbuz2 + //SEG585 [263] (byte~) play_lock_current::i#9 ← (byte) play_lock_current::i#1 -- vbuz1=vbuz2 lda i sta i_9 - //SEG587 [252] phi from play_lock_current::@8 to play_lock_current::@2 [phi:play_lock_current::@8->play_lock_current::@2] + //SEG586 [251] phi from play_lock_current::@8 to play_lock_current::@2 [phi:play_lock_current::@8->play_lock_current::@2] b2_from_b8: - //SEG588 [252] phi (byte) play_lock_current::c#2 = (byte) play_lock_current::c#1 [phi:play_lock_current::@8->play_lock_current::@2#0] -- register_copy - //SEG589 [252] phi (byte) play_lock_current::col#2 = (byte) play_lock_current::col#1 [phi:play_lock_current::@8->play_lock_current::@2#1] -- register_copy - //SEG590 [252] phi (byte) play_lock_current::i#2 = (byte~) play_lock_current::i#9 [phi:play_lock_current::@8->play_lock_current::@2#2] -- register_copy + //SEG587 [251] phi (byte) play_lock_current::c#2 = (byte) play_lock_current::c#1 [phi:play_lock_current::@8->play_lock_current::@2#0] -- register_copy + //SEG588 [251] phi (byte) play_lock_current::col#2 = (byte) play_lock_current::col#1 [phi:play_lock_current::@8->play_lock_current::@2#1] -- register_copy + //SEG589 [251] phi (byte) play_lock_current::i#2 = (byte~) play_lock_current::i#9 [phi:play_lock_current::@8->play_lock_current::@2#2] -- register_copy jmp b2 } -//SEG591 keyboard_event_pressed +//SEG590 keyboard_event_pressed keyboard_event_pressed: { .label row_bits = 6 .label keycode = 5 - //SEG592 [266] (byte~) keyboard_event_pressed::$0 ← (byte) keyboard_event_pressed::keycode#5 >> (byte/signed byte/word/signed word/dword/signed dword) 3 -- vbuaa=vbuz1_ror_3 + //SEG591 [265] (byte~) keyboard_event_pressed::$0 ← (byte) keyboard_event_pressed::keycode#5 >> (byte/signed byte/word/signed word/dword/signed dword) 3 -- vbuaa=vbuz1_ror_3 lda keycode lsr lsr lsr - //SEG593 [267] (byte) keyboard_event_pressed::row_bits#0 ← *((const byte[8]) keyboard_scan_values#0 + (byte~) keyboard_event_pressed::$0) -- vbuz1=pbuc1_derefidx_vbuaa + //SEG592 [266] (byte) keyboard_event_pressed::row_bits#0 ← *((const byte[8]) keyboard_scan_values#0 + (byte~) keyboard_event_pressed::$0) -- vbuz1=pbuc1_derefidx_vbuaa tay lda keyboard_scan_values,y sta row_bits - //SEG594 [268] (byte~) keyboard_event_pressed::$1 ← (byte) keyboard_event_pressed::keycode#5 & (byte/signed byte/word/signed word/dword/signed dword) 7 -- vbuaa=vbuz1_band_vbuc1 + //SEG593 [267] (byte~) keyboard_event_pressed::$1 ← (byte) keyboard_event_pressed::keycode#5 & (byte/signed byte/word/signed word/dword/signed dword) 7 -- vbuaa=vbuz1_band_vbuc1 lda #7 and keycode - //SEG595 [269] (byte) keyboard_event_pressed::return#11 ← (byte) keyboard_event_pressed::row_bits#0 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte~) keyboard_event_pressed::$1) -- vbuaa=vbuz1_band_pbuc1_derefidx_vbuaa + //SEG594 [268] (byte) keyboard_event_pressed::return#11 ← (byte) keyboard_event_pressed::row_bits#0 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte~) keyboard_event_pressed::$1) -- vbuaa=vbuz1_band_pbuc1_derefidx_vbuaa tay lda keyboard_matrix_col_bitmask,y and row_bits jmp breturn - //SEG596 keyboard_event_pressed::@return + //SEG595 keyboard_event_pressed::@return breturn: - //SEG597 [270] return + //SEG596 [269] return rts } -//SEG598 keyboard_event_get +//SEG597 keyboard_event_get keyboard_event_get: { - //SEG599 [271] if((byte) keyboard_events_size#13==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_get::@return -- vbuz1_eq_0_then_la1 + //SEG598 [270] if((byte) keyboard_events_size#13==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_get::@return -- vbuz1_eq_0_then_la1 lda keyboard_events_size cmp #0 beq breturn_from_keyboard_event_get jmp b3 - //SEG600 keyboard_event_get::@3 + //SEG599 keyboard_event_get::@3 b3: - //SEG601 [272] (byte) keyboard_events_size#4 ← -- (byte) keyboard_events_size#13 -- vbuz1=_dec_vbuz1 + //SEG600 [271] (byte) keyboard_events_size#4 ← -- (byte) keyboard_events_size#13 -- vbuz1=_dec_vbuz1 dec keyboard_events_size - //SEG602 [273] (byte) keyboard_event_get::return#1 ← *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#4) -- vbuaa=pbuc1_derefidx_vbuz1 + //SEG601 [272] (byte) keyboard_event_get::return#1 ← *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#4) -- vbuaa=pbuc1_derefidx_vbuz1 ldy keyboard_events_size lda keyboard_events,y - //SEG603 [274] phi from keyboard_event_get::@3 to keyboard_event_get::@return [phi:keyboard_event_get::@3->keyboard_event_get::@return] + //SEG602 [273] phi from keyboard_event_get::@3 to keyboard_event_get::@return [phi:keyboard_event_get::@3->keyboard_event_get::@return] breturn_from_b3: - //SEG604 [274] phi (byte) keyboard_events_size#16 = (byte) keyboard_events_size#4 [phi:keyboard_event_get::@3->keyboard_event_get::@return#0] -- register_copy - //SEG605 [274] phi (byte) keyboard_event_get::return#2 = (byte) keyboard_event_get::return#1 [phi:keyboard_event_get::@3->keyboard_event_get::@return#1] -- register_copy + //SEG603 [273] phi (byte) keyboard_events_size#16 = (byte) keyboard_events_size#4 [phi:keyboard_event_get::@3->keyboard_event_get::@return#0] -- register_copy + //SEG604 [273] phi (byte) keyboard_event_get::return#2 = (byte) keyboard_event_get::return#1 [phi:keyboard_event_get::@3->keyboard_event_get::@return#1] -- register_copy jmp breturn - //SEG606 [274] phi from keyboard_event_get to keyboard_event_get::@return [phi:keyboard_event_get->keyboard_event_get::@return] + //SEG605 [273] phi from keyboard_event_get to keyboard_event_get::@return [phi:keyboard_event_get->keyboard_event_get::@return] breturn_from_keyboard_event_get: - //SEG607 [274] phi (byte) keyboard_events_size#16 = (byte) keyboard_events_size#13 [phi:keyboard_event_get->keyboard_event_get::@return#0] -- register_copy - //SEG608 [274] phi (byte) keyboard_event_get::return#2 = (byte/word/signed word/dword/signed dword) 255 [phi:keyboard_event_get->keyboard_event_get::@return#1] -- vbuaa=vbuc1 + //SEG606 [273] phi (byte) keyboard_events_size#16 = (byte) keyboard_events_size#13 [phi:keyboard_event_get->keyboard_event_get::@return#0] -- register_copy + //SEG607 [273] phi (byte) keyboard_event_get::return#2 = (byte/word/signed word/dword/signed dword) 255 [phi:keyboard_event_get->keyboard_event_get::@return#1] -- vbuaa=vbuc1 lda #$ff jmp breturn - //SEG609 keyboard_event_get::@return + //SEG608 keyboard_event_get::@return breturn: - //SEG610 [275] return + //SEG609 [274] return rts } -//SEG611 keyboard_event_scan +//SEG610 keyboard_event_scan keyboard_event_scan: { .label row_scan = 9 .label keycode = 6 .label row = 5 - //SEG612 [277] phi from keyboard_event_scan to keyboard_event_scan::@1 [phi:keyboard_event_scan->keyboard_event_scan::@1] + //SEG611 [276] phi from keyboard_event_scan to keyboard_event_scan::@1 [phi:keyboard_event_scan->keyboard_event_scan::@1] b1_from_keyboard_event_scan: - //SEG613 [277] phi (byte) keyboard_events_size#29 = (byte) keyboard_events_size#19 [phi:keyboard_event_scan->keyboard_event_scan::@1#0] -- register_copy - //SEG614 [277] phi (byte) keyboard_event_scan::keycode#11 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:keyboard_event_scan->keyboard_event_scan::@1#1] -- vbuz1=vbuc1 + //SEG612 [276] phi (byte) keyboard_events_size#29 = (byte) keyboard_events_size#19 [phi:keyboard_event_scan->keyboard_event_scan::@1#0] -- register_copy + //SEG613 [276] phi (byte) keyboard_event_scan::keycode#11 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:keyboard_event_scan->keyboard_event_scan::@1#1] -- vbuz1=vbuc1 lda #0 sta keycode - //SEG615 [277] phi (byte) keyboard_event_scan::row#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:keyboard_event_scan->keyboard_event_scan::@1#2] -- vbuz1=vbuc1 + //SEG614 [276] phi (byte) keyboard_event_scan::row#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:keyboard_event_scan->keyboard_event_scan::@1#2] -- vbuz1=vbuc1 lda #0 sta row jmp b1 - //SEG616 [277] phi from keyboard_event_scan::@3 to keyboard_event_scan::@1 [phi:keyboard_event_scan::@3->keyboard_event_scan::@1] + //SEG615 [276] phi from keyboard_event_scan::@3 to keyboard_event_scan::@1 [phi:keyboard_event_scan::@3->keyboard_event_scan::@1] b1_from_b3: - //SEG617 [277] phi (byte) keyboard_events_size#29 = (byte) keyboard_events_size#13 [phi:keyboard_event_scan::@3->keyboard_event_scan::@1#0] -- register_copy - //SEG618 [277] phi (byte) keyboard_event_scan::keycode#11 = (byte) keyboard_event_scan::keycode#14 [phi:keyboard_event_scan::@3->keyboard_event_scan::@1#1] -- register_copy - //SEG619 [277] phi (byte) keyboard_event_scan::row#2 = (byte) keyboard_event_scan::row#1 [phi:keyboard_event_scan::@3->keyboard_event_scan::@1#2] -- register_copy + //SEG616 [276] phi (byte) keyboard_events_size#29 = (byte) keyboard_events_size#13 [phi:keyboard_event_scan::@3->keyboard_event_scan::@1#0] -- register_copy + //SEG617 [276] phi (byte) keyboard_event_scan::keycode#11 = (byte) keyboard_event_scan::keycode#14 [phi:keyboard_event_scan::@3->keyboard_event_scan::@1#1] -- register_copy + //SEG618 [276] phi (byte) keyboard_event_scan::row#2 = (byte) keyboard_event_scan::row#1 [phi:keyboard_event_scan::@3->keyboard_event_scan::@1#2] -- register_copy jmp b1 - //SEG620 keyboard_event_scan::@1 + //SEG619 keyboard_event_scan::@1 b1: - //SEG621 [278] (byte) keyboard_matrix_read::rowid#0 ← (byte) keyboard_event_scan::row#2 -- vbuxx=vbuz1 + //SEG620 [277] (byte) keyboard_matrix_read::rowid#0 ← (byte) keyboard_event_scan::row#2 -- vbuxx=vbuz1 ldx row - //SEG622 [279] call keyboard_matrix_read + //SEG621 [278] call keyboard_matrix_read jsr keyboard_matrix_read - //SEG623 [280] (byte) keyboard_matrix_read::return#2 ← (byte) keyboard_matrix_read::return#0 + //SEG622 [279] (byte) keyboard_matrix_read::return#2 ← (byte) keyboard_matrix_read::return#0 // (byte) keyboard_matrix_read::return#2 = (byte) keyboard_matrix_read::return#0 // register copy reg byte a jmp b25 - //SEG624 keyboard_event_scan::@25 + //SEG623 keyboard_event_scan::@25 b25: - //SEG625 [281] (byte) keyboard_event_scan::row_scan#0 ← (byte) keyboard_matrix_read::return#2 -- vbuz1=vbuaa + //SEG624 [280] (byte) keyboard_event_scan::row_scan#0 ← (byte) keyboard_matrix_read::return#2 -- vbuz1=vbuaa sta row_scan - //SEG626 [282] if((byte) keyboard_event_scan::row_scan#0!=*((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2)) goto keyboard_event_scan::@4 -- vbuz1_neq_pbuc1_derefidx_vbuz2_then_la1 + //SEG625 [281] if((byte) keyboard_event_scan::row_scan#0!=*((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2)) goto keyboard_event_scan::@4 -- vbuz1_neq_pbuc1_derefidx_vbuz2_then_la1 lda row_scan ldy row cmp keyboard_scan_values,y bne b4_from_b25 jmp b13 - //SEG627 keyboard_event_scan::@13 + //SEG626 keyboard_event_scan::@13 b13: - //SEG628 [283] (byte) keyboard_event_scan::keycode#1 ← (byte) keyboard_event_scan::keycode#11 + (byte/signed byte/word/signed word/dword/signed dword) 8 -- vbuz1=vbuz1_plus_vbuc1 + //SEG627 [282] (byte) keyboard_event_scan::keycode#1 ← (byte) keyboard_event_scan::keycode#11 + (byte/signed byte/word/signed word/dword/signed dword) 8 -- vbuz1=vbuz1_plus_vbuc1 lda #8 clc adc keycode sta keycode - //SEG629 [284] phi from keyboard_event_scan::@13 keyboard_event_scan::@19 to keyboard_event_scan::@3 [phi:keyboard_event_scan::@13/keyboard_event_scan::@19->keyboard_event_scan::@3] + //SEG628 [283] phi from keyboard_event_scan::@13 keyboard_event_scan::@19 to keyboard_event_scan::@3 [phi:keyboard_event_scan::@13/keyboard_event_scan::@19->keyboard_event_scan::@3] b3_from_b13: b3_from_b19: - //SEG630 [284] phi (byte) keyboard_events_size#13 = (byte) keyboard_events_size#29 [phi:keyboard_event_scan::@13/keyboard_event_scan::@19->keyboard_event_scan::@3#0] -- register_copy - //SEG631 [284] phi (byte) keyboard_event_scan::keycode#14 = (byte) keyboard_event_scan::keycode#1 [phi:keyboard_event_scan::@13/keyboard_event_scan::@19->keyboard_event_scan::@3#1] -- register_copy + //SEG629 [283] phi (byte) keyboard_events_size#13 = (byte) keyboard_events_size#29 [phi:keyboard_event_scan::@13/keyboard_event_scan::@19->keyboard_event_scan::@3#0] -- register_copy + //SEG630 [283] phi (byte) keyboard_event_scan::keycode#14 = (byte) keyboard_event_scan::keycode#1 [phi:keyboard_event_scan::@13/keyboard_event_scan::@19->keyboard_event_scan::@3#1] -- register_copy jmp b3 - //SEG632 keyboard_event_scan::@3 + //SEG631 keyboard_event_scan::@3 b3: - //SEG633 [285] (byte) keyboard_event_scan::row#1 ← ++ (byte) keyboard_event_scan::row#2 -- vbuz1=_inc_vbuz1 + //SEG632 [284] (byte) keyboard_event_scan::row#1 ← ++ (byte) keyboard_event_scan::row#2 -- vbuz1=_inc_vbuz1 inc row - //SEG634 [286] if((byte) keyboard_event_scan::row#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto keyboard_event_scan::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG633 [285] if((byte) keyboard_event_scan::row#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto keyboard_event_scan::@1 -- vbuz1_neq_vbuc1_then_la1 lda row cmp #8 bne b1_from_b3 - //SEG635 [287] phi from keyboard_event_scan::@3 to keyboard_event_scan::@20 [phi:keyboard_event_scan::@3->keyboard_event_scan::@20] + //SEG634 [286] phi from keyboard_event_scan::@3 to keyboard_event_scan::@20 [phi:keyboard_event_scan::@3->keyboard_event_scan::@20] b20_from_b3: jmp b20 - //SEG636 keyboard_event_scan::@20 + //SEG635 keyboard_event_scan::@20 b20: - //SEG637 [288] call keyboard_event_pressed - //SEG638 [265] phi from keyboard_event_scan::@20 to keyboard_event_pressed [phi:keyboard_event_scan::@20->keyboard_event_pressed] + //SEG636 [287] call keyboard_event_pressed + //SEG637 [264] phi from keyboard_event_scan::@20 to keyboard_event_pressed [phi:keyboard_event_scan::@20->keyboard_event_pressed] keyboard_event_pressed_from_b20: - //SEG639 [265] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_LSHIFT#0 [phi:keyboard_event_scan::@20->keyboard_event_pressed#0] -- vbuz1=vbuc1 + //SEG638 [264] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_LSHIFT#0 [phi:keyboard_event_scan::@20->keyboard_event_pressed#0] -- vbuz1=vbuc1 lda #KEY_LSHIFT sta keyboard_event_pressed.keycode jsr keyboard_event_pressed - //SEG640 [289] (byte) keyboard_event_pressed::return#0 ← (byte) keyboard_event_pressed::return#11 + //SEG639 [288] (byte) keyboard_event_pressed::return#0 ← (byte) keyboard_event_pressed::return#11 // (byte) keyboard_event_pressed::return#0 = (byte) keyboard_event_pressed::return#11 // register copy reg byte a jmp b26 - //SEG641 keyboard_event_scan::@26 + //SEG640 keyboard_event_scan::@26 b26: - //SEG642 [290] (byte~) keyboard_event_scan::$14 ← (byte) keyboard_event_pressed::return#0 + //SEG641 [289] (byte~) keyboard_event_scan::$14 ← (byte) keyboard_event_pressed::return#0 // (byte~) keyboard_event_scan::$14 = (byte) keyboard_event_pressed::return#0 // register copy reg byte a - //SEG643 [291] if((byte~) keyboard_event_scan::$14==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@9 -- vbuaa_eq_0_then_la1 + //SEG642 [290] if((byte~) keyboard_event_scan::$14==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@9 -- vbuaa_eq_0_then_la1 cmp #0 beq b9_from_b26 - //SEG644 [292] phi from keyboard_event_scan::@26 to keyboard_event_scan::@21 [phi:keyboard_event_scan::@26->keyboard_event_scan::@21] + //SEG643 [291] phi from keyboard_event_scan::@26 to keyboard_event_scan::@21 [phi:keyboard_event_scan::@26->keyboard_event_scan::@21] b21_from_b26: jmp b21 - //SEG645 keyboard_event_scan::@21 + //SEG644 keyboard_event_scan::@21 b21: - //SEG646 [293] phi from keyboard_event_scan::@21 to keyboard_event_scan::@9 [phi:keyboard_event_scan::@21->keyboard_event_scan::@9] + //SEG645 [292] phi from keyboard_event_scan::@21 to keyboard_event_scan::@9 [phi:keyboard_event_scan::@21->keyboard_event_scan::@9] b9_from_b21: - //SEG647 [293] phi (byte) keyboard_modifiers#11 = (byte/signed byte/word/signed word/dword/signed dword) 0|(const byte) KEY_MODIFIER_LSHIFT#0 [phi:keyboard_event_scan::@21->keyboard_event_scan::@9#0] -- vbuxx=vbuc1 + //SEG646 [292] phi (byte) keyboard_modifiers#11 = (byte/signed byte/word/signed word/dword/signed dword) 0|(const byte) KEY_MODIFIER_LSHIFT#0 [phi:keyboard_event_scan::@21->keyboard_event_scan::@9#0] -- vbuxx=vbuc1 ldx #0|KEY_MODIFIER_LSHIFT jmp b9 - //SEG648 [293] phi from keyboard_event_scan::@26 to keyboard_event_scan::@9 [phi:keyboard_event_scan::@26->keyboard_event_scan::@9] + //SEG647 [292] phi from keyboard_event_scan::@26 to keyboard_event_scan::@9 [phi:keyboard_event_scan::@26->keyboard_event_scan::@9] b9_from_b26: - //SEG649 [293] phi (byte) keyboard_modifiers#11 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:keyboard_event_scan::@26->keyboard_event_scan::@9#0] -- vbuxx=vbuc1 + //SEG648 [292] phi (byte) keyboard_modifiers#11 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:keyboard_event_scan::@26->keyboard_event_scan::@9#0] -- vbuxx=vbuc1 ldx #0 jmp b9 - //SEG650 keyboard_event_scan::@9 + //SEG649 keyboard_event_scan::@9 b9: - //SEG651 [294] call keyboard_event_pressed - //SEG652 [265] phi from keyboard_event_scan::@9 to keyboard_event_pressed [phi:keyboard_event_scan::@9->keyboard_event_pressed] + //SEG650 [293] call keyboard_event_pressed + //SEG651 [264] phi from keyboard_event_scan::@9 to keyboard_event_pressed [phi:keyboard_event_scan::@9->keyboard_event_pressed] keyboard_event_pressed_from_b9: - //SEG653 [265] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_RSHIFT#0 [phi:keyboard_event_scan::@9->keyboard_event_pressed#0] -- vbuz1=vbuc1 + //SEG652 [264] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_RSHIFT#0 [phi:keyboard_event_scan::@9->keyboard_event_pressed#0] -- vbuz1=vbuc1 lda #KEY_RSHIFT sta keyboard_event_pressed.keycode jsr keyboard_event_pressed - //SEG654 [295] (byte) keyboard_event_pressed::return#1 ← (byte) keyboard_event_pressed::return#11 + //SEG653 [294] (byte) keyboard_event_pressed::return#1 ← (byte) keyboard_event_pressed::return#11 // (byte) keyboard_event_pressed::return#1 = (byte) keyboard_event_pressed::return#11 // register copy reg byte a jmp b27 - //SEG655 keyboard_event_scan::@27 + //SEG654 keyboard_event_scan::@27 b27: - //SEG656 [296] (byte~) keyboard_event_scan::$18 ← (byte) keyboard_event_pressed::return#1 + //SEG655 [295] (byte~) keyboard_event_scan::$18 ← (byte) keyboard_event_pressed::return#1 // (byte~) keyboard_event_scan::$18 = (byte) keyboard_event_pressed::return#1 // register copy reg byte a - //SEG657 [297] if((byte~) keyboard_event_scan::$18==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@10 -- vbuaa_eq_0_then_la1 + //SEG656 [296] if((byte~) keyboard_event_scan::$18==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@10 -- vbuaa_eq_0_then_la1 cmp #0 beq b10_from_b27 jmp b22 - //SEG658 keyboard_event_scan::@22 + //SEG657 keyboard_event_scan::@22 b22: - //SEG659 [298] (byte) keyboard_modifiers#3 ← (byte) keyboard_modifiers#11 | (const byte) KEY_MODIFIER_RSHIFT#0 -- vbuxx=vbuxx_bor_vbuc1 + //SEG658 [297] (byte) keyboard_modifiers#3 ← (byte) keyboard_modifiers#11 | (const byte) KEY_MODIFIER_RSHIFT#0 -- vbuxx=vbuxx_bor_vbuc1 txa ora #KEY_MODIFIER_RSHIFT tax - //SEG660 [299] phi from keyboard_event_scan::@22 keyboard_event_scan::@27 to keyboard_event_scan::@10 [phi:keyboard_event_scan::@22/keyboard_event_scan::@27->keyboard_event_scan::@10] + //SEG659 [298] phi from keyboard_event_scan::@22 keyboard_event_scan::@27 to keyboard_event_scan::@10 [phi:keyboard_event_scan::@22/keyboard_event_scan::@27->keyboard_event_scan::@10] b10_from_b22: b10_from_b27: - //SEG661 [299] phi (byte) keyboard_modifiers#12 = (byte) keyboard_modifiers#3 [phi:keyboard_event_scan::@22/keyboard_event_scan::@27->keyboard_event_scan::@10#0] -- register_copy + //SEG660 [298] phi (byte) keyboard_modifiers#12 = (byte) keyboard_modifiers#3 [phi:keyboard_event_scan::@22/keyboard_event_scan::@27->keyboard_event_scan::@10#0] -- register_copy jmp b10 - //SEG662 keyboard_event_scan::@10 + //SEG661 keyboard_event_scan::@10 b10: - //SEG663 [300] call keyboard_event_pressed - //SEG664 [265] phi from keyboard_event_scan::@10 to keyboard_event_pressed [phi:keyboard_event_scan::@10->keyboard_event_pressed] + //SEG662 [299] call keyboard_event_pressed + //SEG663 [264] phi from keyboard_event_scan::@10 to keyboard_event_pressed [phi:keyboard_event_scan::@10->keyboard_event_pressed] keyboard_event_pressed_from_b10: - //SEG665 [265] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_CTRL#0 [phi:keyboard_event_scan::@10->keyboard_event_pressed#0] -- vbuz1=vbuc1 + //SEG664 [264] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_CTRL#0 [phi:keyboard_event_scan::@10->keyboard_event_pressed#0] -- vbuz1=vbuc1 lda #KEY_CTRL sta keyboard_event_pressed.keycode jsr keyboard_event_pressed - //SEG666 [301] (byte) keyboard_event_pressed::return#2 ← (byte) keyboard_event_pressed::return#11 + //SEG665 [300] (byte) keyboard_event_pressed::return#2 ← (byte) keyboard_event_pressed::return#11 // (byte) keyboard_event_pressed::return#2 = (byte) keyboard_event_pressed::return#11 // register copy reg byte a jmp b28 - //SEG667 keyboard_event_scan::@28 + //SEG666 keyboard_event_scan::@28 b28: - //SEG668 [302] (byte~) keyboard_event_scan::$22 ← (byte) keyboard_event_pressed::return#2 + //SEG667 [301] (byte~) keyboard_event_scan::$22 ← (byte) keyboard_event_pressed::return#2 // (byte~) keyboard_event_scan::$22 = (byte) keyboard_event_pressed::return#2 // register copy reg byte a - //SEG669 [303] if((byte~) keyboard_event_scan::$22==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@11 -- vbuaa_eq_0_then_la1 + //SEG668 [302] if((byte~) keyboard_event_scan::$22==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@11 -- vbuaa_eq_0_then_la1 cmp #0 beq b11_from_b28 jmp b23 - //SEG670 keyboard_event_scan::@23 + //SEG669 keyboard_event_scan::@23 b23: - //SEG671 [304] (byte) keyboard_modifiers#4 ← (byte) keyboard_modifiers#12 | (const byte) KEY_MODIFIER_CTRL#0 -- vbuxx=vbuxx_bor_vbuc1 + //SEG670 [303] (byte) keyboard_modifiers#4 ← (byte) keyboard_modifiers#12 | (const byte) KEY_MODIFIER_CTRL#0 -- vbuxx=vbuxx_bor_vbuc1 txa ora #KEY_MODIFIER_CTRL tax - //SEG672 [305] phi from keyboard_event_scan::@23 keyboard_event_scan::@28 to keyboard_event_scan::@11 [phi:keyboard_event_scan::@23/keyboard_event_scan::@28->keyboard_event_scan::@11] + //SEG671 [304] phi from keyboard_event_scan::@23 keyboard_event_scan::@28 to keyboard_event_scan::@11 [phi:keyboard_event_scan::@23/keyboard_event_scan::@28->keyboard_event_scan::@11] b11_from_b23: b11_from_b28: - //SEG673 [305] phi (byte) keyboard_modifiers#13 = (byte) keyboard_modifiers#4 [phi:keyboard_event_scan::@23/keyboard_event_scan::@28->keyboard_event_scan::@11#0] -- register_copy + //SEG672 [304] phi (byte) keyboard_modifiers#13 = (byte) keyboard_modifiers#4 [phi:keyboard_event_scan::@23/keyboard_event_scan::@28->keyboard_event_scan::@11#0] -- register_copy jmp b11 - //SEG674 keyboard_event_scan::@11 + //SEG673 keyboard_event_scan::@11 b11: - //SEG675 [306] call keyboard_event_pressed - //SEG676 [265] phi from keyboard_event_scan::@11 to keyboard_event_pressed [phi:keyboard_event_scan::@11->keyboard_event_pressed] + //SEG674 [305] call keyboard_event_pressed + //SEG675 [264] phi from keyboard_event_scan::@11 to keyboard_event_pressed [phi:keyboard_event_scan::@11->keyboard_event_pressed] keyboard_event_pressed_from_b11: - //SEG677 [265] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_COMMODORE#0 [phi:keyboard_event_scan::@11->keyboard_event_pressed#0] -- vbuz1=vbuc1 + //SEG676 [264] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_COMMODORE#0 [phi:keyboard_event_scan::@11->keyboard_event_pressed#0] -- vbuz1=vbuc1 lda #KEY_COMMODORE sta keyboard_event_pressed.keycode jsr keyboard_event_pressed - //SEG678 [307] (byte) keyboard_event_pressed::return#10 ← (byte) keyboard_event_pressed::return#11 + //SEG677 [306] (byte) keyboard_event_pressed::return#10 ← (byte) keyboard_event_pressed::return#11 // (byte) keyboard_event_pressed::return#10 = (byte) keyboard_event_pressed::return#11 // register copy reg byte a jmp b29 - //SEG679 keyboard_event_scan::@29 + //SEG678 keyboard_event_scan::@29 b29: - //SEG680 [308] (byte~) keyboard_event_scan::$26 ← (byte) keyboard_event_pressed::return#10 + //SEG679 [307] (byte~) keyboard_event_scan::$26 ← (byte) keyboard_event_pressed::return#10 // (byte~) keyboard_event_scan::$26 = (byte) keyboard_event_pressed::return#10 // register copy reg byte a - //SEG681 [309] if((byte~) keyboard_event_scan::$26==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@return -- vbuaa_eq_0_then_la1 + //SEG680 [308] if((byte~) keyboard_event_scan::$26==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@return -- vbuaa_eq_0_then_la1 cmp #0 beq breturn jmp b24 - //SEG682 keyboard_event_scan::@24 + //SEG681 keyboard_event_scan::@24 b24: - //SEG683 [310] (byte) keyboard_modifiers#5 ← (byte) keyboard_modifiers#13 | (const byte) KEY_MODIFIER_COMMODORE#0 -- vbuaa=vbuxx_bor_vbuc1 + //SEG682 [309] (byte) keyboard_modifiers#5 ← (byte) keyboard_modifiers#13 | (const byte) KEY_MODIFIER_COMMODORE#0 -- vbuaa=vbuxx_bor_vbuc1 txa ora #KEY_MODIFIER_COMMODORE jmp breturn - //SEG684 keyboard_event_scan::@return + //SEG683 keyboard_event_scan::@return breturn: - //SEG685 [311] return + //SEG684 [310] return rts - //SEG686 [312] phi from keyboard_event_scan::@25 to keyboard_event_scan::@4 [phi:keyboard_event_scan::@25->keyboard_event_scan::@4] + //SEG685 [311] phi from keyboard_event_scan::@25 to keyboard_event_scan::@4 [phi:keyboard_event_scan::@25->keyboard_event_scan::@4] b4_from_b25: - //SEG687 [312] phi (byte) keyboard_events_size#10 = (byte) keyboard_events_size#29 [phi:keyboard_event_scan::@25->keyboard_event_scan::@4#0] -- register_copy - //SEG688 [312] phi (byte) keyboard_event_scan::keycode#10 = (byte) keyboard_event_scan::keycode#11 [phi:keyboard_event_scan::@25->keyboard_event_scan::@4#1] -- register_copy - //SEG689 [312] phi (byte) keyboard_event_scan::col#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:keyboard_event_scan::@25->keyboard_event_scan::@4#2] -- vbuxx=vbuc1 + //SEG686 [311] phi (byte) keyboard_events_size#10 = (byte) keyboard_events_size#29 [phi:keyboard_event_scan::@25->keyboard_event_scan::@4#0] -- register_copy + //SEG687 [311] phi (byte) keyboard_event_scan::keycode#10 = (byte) keyboard_event_scan::keycode#11 [phi:keyboard_event_scan::@25->keyboard_event_scan::@4#1] -- register_copy + //SEG688 [311] phi (byte) keyboard_event_scan::col#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:keyboard_event_scan::@25->keyboard_event_scan::@4#2] -- vbuxx=vbuc1 ldx #0 jmp b4 - //SEG690 [312] phi from keyboard_event_scan::@5 to keyboard_event_scan::@4 [phi:keyboard_event_scan::@5->keyboard_event_scan::@4] + //SEG689 [311] phi from keyboard_event_scan::@5 to keyboard_event_scan::@4 [phi:keyboard_event_scan::@5->keyboard_event_scan::@4] b4_from_b5: - //SEG691 [312] phi (byte) keyboard_events_size#10 = (byte) keyboard_events_size#30 [phi:keyboard_event_scan::@5->keyboard_event_scan::@4#0] -- register_copy - //SEG692 [312] phi (byte) keyboard_event_scan::keycode#10 = (byte) keyboard_event_scan::keycode#15 [phi:keyboard_event_scan::@5->keyboard_event_scan::@4#1] -- register_copy - //SEG693 [312] phi (byte) keyboard_event_scan::col#2 = (byte) keyboard_event_scan::col#1 [phi:keyboard_event_scan::@5->keyboard_event_scan::@4#2] -- register_copy + //SEG690 [311] phi (byte) keyboard_events_size#10 = (byte) keyboard_events_size#30 [phi:keyboard_event_scan::@5->keyboard_event_scan::@4#0] -- register_copy + //SEG691 [311] phi (byte) keyboard_event_scan::keycode#10 = (byte) keyboard_event_scan::keycode#15 [phi:keyboard_event_scan::@5->keyboard_event_scan::@4#1] -- register_copy + //SEG692 [311] phi (byte) keyboard_event_scan::col#2 = (byte) keyboard_event_scan::col#1 [phi:keyboard_event_scan::@5->keyboard_event_scan::@4#2] -- register_copy jmp b4 - //SEG694 keyboard_event_scan::@4 + //SEG693 keyboard_event_scan::@4 b4: - //SEG695 [313] (byte~) keyboard_event_scan::$3 ← (byte) keyboard_event_scan::row_scan#0 ^ *((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2) -- vbuaa=vbuz1_bxor_pbuc1_derefidx_vbuz2 + //SEG694 [312] (byte~) keyboard_event_scan::$3 ← (byte) keyboard_event_scan::row_scan#0 ^ *((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2) -- vbuaa=vbuz1_bxor_pbuc1_derefidx_vbuz2 lda row_scan ldy row eor keyboard_scan_values,y - //SEG696 [314] (byte~) keyboard_event_scan::$4 ← (byte~) keyboard_event_scan::$3 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_event_scan::col#2) -- vbuaa=vbuaa_band_pbuc1_derefidx_vbuxx + //SEG695 [313] (byte~) keyboard_event_scan::$4 ← (byte~) keyboard_event_scan::$3 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_event_scan::col#2) -- vbuaa=vbuaa_band_pbuc1_derefidx_vbuxx and keyboard_matrix_col_bitmask,x - //SEG697 [315] if((byte~) keyboard_event_scan::$4==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@5 -- vbuaa_eq_0_then_la1 + //SEG696 [314] if((byte~) keyboard_event_scan::$4==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@5 -- vbuaa_eq_0_then_la1 cmp #0 beq b5_from_b4 jmp b15 - //SEG698 keyboard_event_scan::@15 + //SEG697 keyboard_event_scan::@15 b15: - //SEG699 [316] if((byte) keyboard_events_size#10==(byte/signed byte/word/signed word/dword/signed dword) 8) goto keyboard_event_scan::@5 -- vbuz1_eq_vbuc1_then_la1 + //SEG698 [315] if((byte) keyboard_events_size#10==(byte/signed byte/word/signed word/dword/signed dword) 8) goto keyboard_event_scan::@5 -- vbuz1_eq_vbuc1_then_la1 lda keyboard_events_size cmp #8 beq b5_from_b15 jmp b16 - //SEG700 keyboard_event_scan::@16 + //SEG699 keyboard_event_scan::@16 b16: - //SEG701 [317] (byte) keyboard_event_scan::event_type#0 ← (byte) keyboard_event_scan::row_scan#0 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_event_scan::col#2) -- vbuaa=vbuz1_band_pbuc1_derefidx_vbuxx + //SEG700 [316] (byte) keyboard_event_scan::event_type#0 ← (byte) keyboard_event_scan::row_scan#0 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_event_scan::col#2) -- vbuaa=vbuz1_band_pbuc1_derefidx_vbuxx lda keyboard_matrix_col_bitmask,x and row_scan - //SEG702 [318] if((byte) keyboard_event_scan::event_type#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@7 -- vbuaa_eq_0_then_la1 + //SEG701 [317] if((byte) keyboard_event_scan::event_type#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@7 -- vbuaa_eq_0_then_la1 cmp #0 beq b7 jmp b17 - //SEG703 keyboard_event_scan::@17 + //SEG702 keyboard_event_scan::@17 b17: - //SEG704 [319] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte) keyboard_event_scan::keycode#10 -- pbuc1_derefidx_vbuz1=vbuz2 + //SEG703 [318] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte) keyboard_event_scan::keycode#10 -- pbuc1_derefidx_vbuz1=vbuz2 lda keycode ldy keyboard_events_size sta keyboard_events,y - //SEG705 [320] (byte) keyboard_events_size#2 ← ++ (byte) keyboard_events_size#10 -- vbuz1=_inc_vbuz1 + //SEG704 [319] (byte) keyboard_events_size#2 ← ++ (byte) keyboard_events_size#10 -- vbuz1=_inc_vbuz1 inc keyboard_events_size - //SEG706 [321] phi from keyboard_event_scan::@15 keyboard_event_scan::@17 keyboard_event_scan::@4 keyboard_event_scan::@7 to keyboard_event_scan::@5 [phi:keyboard_event_scan::@15/keyboard_event_scan::@17/keyboard_event_scan::@4/keyboard_event_scan::@7->keyboard_event_scan::@5] + //SEG705 [320] phi from keyboard_event_scan::@15 keyboard_event_scan::@17 keyboard_event_scan::@4 keyboard_event_scan::@7 to keyboard_event_scan::@5 [phi:keyboard_event_scan::@15/keyboard_event_scan::@17/keyboard_event_scan::@4/keyboard_event_scan::@7->keyboard_event_scan::@5] b5_from_b15: b5_from_b17: b5_from_b4: b5_from_b7: - //SEG707 [321] phi (byte) keyboard_events_size#30 = (byte) keyboard_events_size#10 [phi:keyboard_event_scan::@15/keyboard_event_scan::@17/keyboard_event_scan::@4/keyboard_event_scan::@7->keyboard_event_scan::@5#0] -- register_copy + //SEG706 [320] phi (byte) keyboard_events_size#30 = (byte) keyboard_events_size#10 [phi:keyboard_event_scan::@15/keyboard_event_scan::@17/keyboard_event_scan::@4/keyboard_event_scan::@7->keyboard_event_scan::@5#0] -- register_copy jmp b5 - //SEG708 keyboard_event_scan::@5 + //SEG707 keyboard_event_scan::@5 b5: - //SEG709 [322] (byte) keyboard_event_scan::keycode#15 ← ++ (byte) keyboard_event_scan::keycode#10 -- vbuz1=_inc_vbuz1 + //SEG708 [321] (byte) keyboard_event_scan::keycode#15 ← ++ (byte) keyboard_event_scan::keycode#10 -- vbuz1=_inc_vbuz1 inc keycode - //SEG710 [323] (byte) keyboard_event_scan::col#1 ← ++ (byte) keyboard_event_scan::col#2 -- vbuxx=_inc_vbuxx + //SEG709 [322] (byte) keyboard_event_scan::col#1 ← ++ (byte) keyboard_event_scan::col#2 -- vbuxx=_inc_vbuxx inx - //SEG711 [324] if((byte) keyboard_event_scan::col#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto keyboard_event_scan::@4 -- vbuxx_neq_vbuc1_then_la1 + //SEG710 [323] if((byte) keyboard_event_scan::col#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto keyboard_event_scan::@4 -- vbuxx_neq_vbuc1_then_la1 cpx #8 bne b4_from_b5 jmp b19 - //SEG712 keyboard_event_scan::@19 + //SEG711 keyboard_event_scan::@19 b19: - //SEG713 [325] *((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2) ← (byte) keyboard_event_scan::row_scan#0 -- pbuc1_derefidx_vbuz1=vbuz2 + //SEG712 [324] *((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2) ← (byte) keyboard_event_scan::row_scan#0 -- pbuc1_derefidx_vbuz1=vbuz2 lda row_scan ldy row sta keyboard_scan_values,y jmp b3_from_b19 - //SEG714 keyboard_event_scan::@7 + //SEG713 keyboard_event_scan::@7 b7: - //SEG715 [326] (byte/word/dword~) keyboard_event_scan::$11 ← (byte) keyboard_event_scan::keycode#10 | (byte/signed byte/word/signed word/dword/signed dword) 64 -- vbuaa=vbuz1_bor_vbuc1 + //SEG714 [325] (byte/word/dword~) keyboard_event_scan::$11 ← (byte) keyboard_event_scan::keycode#10 | (byte/signed byte/word/signed word/dword/signed dword) 64 -- vbuaa=vbuz1_bor_vbuc1 lda #$40 ora keycode - //SEG716 [327] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte/word/dword~) keyboard_event_scan::$11 -- pbuc1_derefidx_vbuz1=vbuaa + //SEG715 [326] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte/word/dword~) keyboard_event_scan::$11 -- pbuc1_derefidx_vbuz1=vbuaa ldy keyboard_events_size sta keyboard_events,y - //SEG717 [328] (byte) keyboard_events_size#1 ← ++ (byte) keyboard_events_size#10 -- vbuz1=_inc_vbuz1 + //SEG716 [327] (byte) keyboard_events_size#1 ← ++ (byte) keyboard_events_size#10 -- vbuz1=_inc_vbuz1 inc keyboard_events_size jmp b5_from_b7 } -//SEG718 keyboard_matrix_read +//SEG717 keyboard_matrix_read keyboard_matrix_read: { - //SEG719 [329] *((const byte*) CIA1_PORT_A#0) ← *((const byte[8]) keyboard_matrix_row_bitmask#0 + (byte) keyboard_matrix_read::rowid#0) -- _deref_pbuc1=pbuc2_derefidx_vbuxx + //SEG718 [328] *((const byte*) CIA1_PORT_A#0) ← *((const byte[8]) keyboard_matrix_row_bitmask#0 + (byte) keyboard_matrix_read::rowid#0) -- _deref_pbuc1=pbuc2_derefidx_vbuxx lda keyboard_matrix_row_bitmask,x sta CIA1_PORT_A - //SEG720 [330] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) -- vbuaa=_bnot__deref_pbuc1 + //SEG719 [329] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) -- vbuaa=_bnot__deref_pbuc1 lda CIA1_PORT_B eor #$ff jmp breturn - //SEG721 keyboard_matrix_read::@return + //SEG720 keyboard_matrix_read::@return breturn: - //SEG722 [331] return + //SEG721 [330] return rts } -//SEG723 render_show +//SEG722 render_show render_show: { .const toD0181_return = (>(PLAYFIELD_SCREEN_1&$3fff)<<2)|(>PLAYFIELD_CHARSET)>>2&$f .const toD0182_return = (>(PLAYFIELD_SCREEN_2&$3fff)<<2)|(>PLAYFIELD_CHARSET)>>2&$f - //SEG724 [332] if((byte) render_screen_show#16==(byte/signed byte/word/signed word/dword/signed dword) 0) goto render_show::toD0181 -- vbuz1_eq_0_then_la1 + //SEG723 [331] if((byte) render_screen_show#16==(byte/signed byte/word/signed word/dword/signed dword) 0) goto render_show::toD0181 -- vbuz1_eq_0_then_la1 lda render_screen_show cmp #0 beq toD0181_from_render_show - //SEG725 [333] phi from render_show to render_show::toD0182 [phi:render_show->render_show::toD0182] + //SEG724 [332] phi from render_show to render_show::toD0182 [phi:render_show->render_show::toD0182] toD0182_from_render_show: jmp toD0182 - //SEG726 render_show::toD0182 + //SEG725 render_show::toD0182 toD0182: - //SEG727 [334] phi from render_show::toD0182 to render_show::@2 [phi:render_show::toD0182->render_show::@2] + //SEG726 [333] phi from render_show::toD0182 to render_show::@2 [phi:render_show::toD0182->render_show::@2] b2_from_toD0182: - //SEG728 [334] phi (byte) render_show::d018val#3 = (const byte) render_show::toD0182_return#0 [phi:render_show::toD0182->render_show::@2#0] -- vbuaa=vbuc1 + //SEG727 [333] phi (byte) render_show::d018val#3 = (const byte) render_show::toD0182_return#0 [phi:render_show::toD0182->render_show::@2#0] -- vbuaa=vbuc1 lda #toD0182_return jmp b2 - //SEG729 render_show::@2 + //SEG728 render_show::@2 b2: - //SEG730 [335] *((const byte*) D018#0) ← (byte) render_show::d018val#3 -- _deref_pbuc1=vbuaa + //SEG729 [334] *((const byte*) D018#0) ← (byte) render_show::d018val#3 -- _deref_pbuc1=vbuaa sta D018 - //SEG731 [336] (byte) render_screen_showing#1 ← (byte) render_screen_show#16 -- vbuz1=vbuz2 + //SEG730 [335] (byte) render_screen_showing#1 ← (byte) render_screen_show#16 -- vbuz1=vbuz2 lda render_screen_show sta render_screen_showing jmp breturn - //SEG732 render_show::@return + //SEG731 render_show::@return breturn: - //SEG733 [337] return + //SEG732 [336] return rts - //SEG734 [338] phi from render_show to render_show::toD0181 [phi:render_show->render_show::toD0181] + //SEG733 [337] phi from render_show to render_show::toD0181 [phi:render_show->render_show::toD0181] toD0181_from_render_show: jmp toD0181 - //SEG735 render_show::toD0181 + //SEG734 render_show::toD0181 toD0181: - //SEG736 [334] phi from render_show::toD0181 to render_show::@2 [phi:render_show::toD0181->render_show::@2] + //SEG735 [333] phi from render_show::toD0181 to render_show::@2 [phi:render_show::toD0181->render_show::@2] b2_from_toD0181: - //SEG737 [334] phi (byte) render_show::d018val#3 = (const byte) render_show::toD0181_return#0 [phi:render_show::toD0181->render_show::@2#0] -- vbuaa=vbuc1 + //SEG736 [333] phi (byte) render_show::d018val#3 = (const byte) render_show::toD0181_return#0 [phi:render_show::toD0181->render_show::@2#0] -- vbuaa=vbuc1 lda #toD0181_return jmp b2 } -//SEG738 play_init +//SEG737 play_init play_init: { .label pli = 7 .label idx = 2 - //SEG739 [340] phi from play_init to play_init::@1 [phi:play_init->play_init::@1] + //SEG738 [339] phi from play_init to play_init::@1 [phi:play_init->play_init::@1] b1_from_play_init: - //SEG740 [340] phi (byte) play_init::idx#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_init->play_init::@1#0] -- vbuz1=vbuc1 + //SEG739 [339] phi (byte) play_init::idx#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_init->play_init::@1#0] -- vbuz1=vbuc1 lda #0 sta idx - //SEG741 [340] phi (byte*) play_init::pli#2 = (const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 [phi:play_init->play_init::@1#1] -- pbuz1=pbuc1 + //SEG740 [339] phi (byte*) play_init::pli#2 = (const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 [phi:play_init->play_init::@1#1] -- pbuz1=pbuc1 lda #playfield sta pli+1 - //SEG742 [340] phi (byte) play_init::j#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_init->play_init::@1#2] -- vbuxx=vbuc1 + //SEG741 [339] phi (byte) play_init::j#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_init->play_init::@1#2] -- vbuxx=vbuc1 ldx #0 jmp b1 - //SEG743 [340] phi from play_init::@1 to play_init::@1 [phi:play_init::@1->play_init::@1] + //SEG742 [339] phi from play_init::@1 to play_init::@1 [phi:play_init::@1->play_init::@1] b1_from_b1: - //SEG744 [340] phi (byte) play_init::idx#2 = (byte) play_init::idx#1 [phi:play_init::@1->play_init::@1#0] -- register_copy - //SEG745 [340] phi (byte*) play_init::pli#2 = (byte*) play_init::pli#1 [phi:play_init::@1->play_init::@1#1] -- register_copy - //SEG746 [340] phi (byte) play_init::j#2 = (byte) play_init::j#1 [phi:play_init::@1->play_init::@1#2] -- register_copy + //SEG743 [339] phi (byte) play_init::idx#2 = (byte) play_init::idx#1 [phi:play_init::@1->play_init::@1#0] -- register_copy + //SEG744 [339] phi (byte*) play_init::pli#2 = (byte*) play_init::pli#1 [phi:play_init::@1->play_init::@1#1] -- register_copy + //SEG745 [339] phi (byte) play_init::j#2 = (byte) play_init::j#1 [phi:play_init::@1->play_init::@1#2] -- register_copy jmp b1 - //SEG747 play_init::@1 + //SEG746 play_init::@1 b1: - //SEG748 [341] (byte~) play_init::$1 ← (byte) play_init::j#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuaa=vbuxx_rol_1 + //SEG747 [340] (byte~) play_init::$1 ← (byte) play_init::j#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuaa=vbuxx_rol_1 txa asl - //SEG749 [342] *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte~) play_init::$1) ← (byte*) play_init::pli#2 -- pptc1_derefidx_vbuaa=pbuz1 + //SEG748 [341] *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte~) play_init::$1) ← (byte*) play_init::pli#2 -- pptc1_derefidx_vbuaa=pbuz1 tay lda pli sta playfield_lines,y lda pli+1 sta playfield_lines+1,y - //SEG750 [343] *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0 + (byte) play_init::j#2) ← (byte) play_init::idx#2 -- pbuc1_derefidx_vbuxx=vbuz1 + //SEG749 [342] *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0 + (byte) play_init::j#2) ← (byte) play_init::idx#2 -- pbuc1_derefidx_vbuxx=vbuz1 lda idx sta playfield_lines_idx,x - //SEG751 [344] (byte*) play_init::pli#1 ← (byte*) play_init::pli#2 + (const byte) PLAYFIELD_COLS#0 -- pbuz1=pbuz1_plus_vbuc1 + //SEG750 [343] (byte*) play_init::pli#1 ← (byte*) play_init::pli#2 + (const byte) PLAYFIELD_COLS#0 -- pbuz1=pbuz1_plus_vbuc1 lda pli clc adc #PLAYFIELD_COLS @@ -14930,233 +14795,233 @@ play_init: { bcc !+ inc pli+1 !: - //SEG752 [345] (byte) play_init::idx#1 ← (byte) play_init::idx#2 + (const byte) PLAYFIELD_COLS#0 -- vbuz1=vbuz1_plus_vbuc1 + //SEG751 [344] (byte) play_init::idx#1 ← (byte) play_init::idx#2 + (const byte) PLAYFIELD_COLS#0 -- vbuz1=vbuz1_plus_vbuc1 lda #PLAYFIELD_COLS clc adc idx sta idx - //SEG753 [346] (byte) play_init::j#1 ← ++ (byte) play_init::j#2 -- vbuxx=_inc_vbuxx + //SEG752 [345] (byte) play_init::j#1 ← ++ (byte) play_init::j#2 -- vbuxx=_inc_vbuxx inx - //SEG754 [347] if((byte) play_init::j#1!=(const byte) PLAYFIELD_LINES#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto play_init::@1 -- vbuxx_neq_vbuc1_then_la1 + //SEG753 [346] if((byte) play_init::j#1!=(const byte) PLAYFIELD_LINES#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto play_init::@1 -- vbuxx_neq_vbuc1_then_la1 cpx #PLAYFIELD_LINES-1+1 bne b1_from_b1 jmp b2 - //SEG755 play_init::@2 + //SEG754 play_init::@2 b2: - //SEG756 [348] *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0+(const byte) PLAYFIELD_LINES#0) ← (const byte) PLAYFIELD_COLS#0*(const byte) PLAYFIELD_LINES#0 -- _deref_pbuc1=vbuc2 + //SEG755 [347] *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0+(const byte) PLAYFIELD_LINES#0) ← (const byte) PLAYFIELD_COLS#0*(const byte) PLAYFIELD_LINES#0 -- _deref_pbuc1=vbuc2 lda #PLAYFIELD_COLS*PLAYFIELD_LINES sta playfield_lines_idx+PLAYFIELD_LINES jmp breturn - //SEG757 play_init::@return + //SEG756 play_init::@return breturn: - //SEG758 [349] return + //SEG757 [348] return rts } -//SEG759 sprites_irq_init +//SEG758 sprites_irq_init sprites_irq_init: { - //SEG760 asm { sei } + //SEG759 asm { sei } sei - //SEG761 [351] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0 -- _deref_pbuc1=vbuc2 + //SEG760 [350] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0 -- _deref_pbuc1=vbuc2 lda #IRQ_RASTER sta IRQ_STATUS - //SEG762 asm { ldaCIA1_INTERRUPT } + //SEG761 asm { ldaCIA1_INTERRUPT } lda CIA1_INTERRUPT - //SEG763 [353] *((const byte*) PROCPORT_DDR#0) ← (const byte) PROCPORT_DDR_MEMORY_MASK#0 -- _deref_pbuc1=vbuc2 + //SEG762 [352] *((const byte*) PROCPORT_DDR#0) ← (const byte) PROCPORT_DDR_MEMORY_MASK#0 -- _deref_pbuc1=vbuc2 lda #PROCPORT_DDR_MEMORY_MASK sta PROCPORT_DDR - //SEG764 [354] *((const byte*) PROCPORT#0) ← (const byte) PROCPORT_RAM_IO#0 -- _deref_pbuc1=vbuc2 + //SEG763 [353] *((const byte*) PROCPORT#0) ← (const byte) PROCPORT_RAM_IO#0 -- _deref_pbuc1=vbuc2 lda #PROCPORT_RAM_IO sta PROCPORT - //SEG765 [355] *((const byte*) CIA1_INTERRUPT#0) ← (const byte) CIA_INTERRUPT_CLEAR#0 -- _deref_pbuc1=vbuc2 + //SEG764 [354] *((const byte*) CIA1_INTERRUPT#0) ← (const byte) CIA_INTERRUPT_CLEAR#0 -- _deref_pbuc1=vbuc2 lda #CIA_INTERRUPT_CLEAR sta CIA1_INTERRUPT - //SEG766 [356] *((const byte*) VIC_CONTROL#0) ← *((const byte*) VIC_CONTROL#0) & (byte/signed byte/word/signed word/dword/signed dword) 127 -- _deref_pbuc1=_deref_pbuc1_band_vbuc2 + //SEG765 [355] *((const byte*) VIC_CONTROL#0) ← *((const byte*) VIC_CONTROL#0) & (byte/signed byte/word/signed word/dword/signed dword) 127 -- _deref_pbuc1=_deref_pbuc1_band_vbuc2 lda VIC_CONTROL and #$7f sta VIC_CONTROL - //SEG767 [357] *((const byte*) RASTER#0) ← (const byte) IRQ_RASTER_FIRST#0 -- _deref_pbuc1=vbuc2 + //SEG766 [356] *((const byte*) RASTER#0) ← (const byte) IRQ_RASTER_FIRST#0 -- _deref_pbuc1=vbuc2 lda #IRQ_RASTER_FIRST sta RASTER - //SEG768 [358] *((const byte*) IRQ_ENABLE#0) ← (const byte) IRQ_RASTER#0 -- _deref_pbuc1=vbuc2 + //SEG767 [357] *((const byte*) IRQ_ENABLE#0) ← (const byte) IRQ_RASTER#0 -- _deref_pbuc1=vbuc2 lda #IRQ_RASTER sta IRQ_ENABLE - //SEG769 [359] *((const void()**) HARDWARE_IRQ#0) ← &interrupt(HARDWARE_CLOBBER)(void()) sprites_irq() -- _deref_pptc1=pprc2 + //SEG768 [358] *((const void()**) HARDWARE_IRQ#0) ← &interrupt(HARDWARE_CLOBBER)(void()) sprites_irq() -- _deref_pptc1=pprc2 lda #sprites_irq sta HARDWARE_IRQ+1 - //SEG770 asm { cli } + //SEG769 asm { cli } cli jmp breturn - //SEG771 sprites_irq_init::@return + //SEG770 sprites_irq_init::@return breturn: - //SEG772 [361] return + //SEG771 [360] return rts } -//SEG773 sprites_init +//SEG772 sprites_init sprites_init: { .label xpos = 2 - //SEG774 [362] *((const byte*) SPRITES_ENABLE#0) ← (byte/signed byte/word/signed word/dword/signed dword) 15 -- _deref_pbuc1=vbuc2 + //SEG773 [361] *((const byte*) SPRITES_ENABLE#0) ← (byte/signed byte/word/signed word/dword/signed dword) 15 -- _deref_pbuc1=vbuc2 lda #$f sta SPRITES_ENABLE - //SEG775 [363] *((const byte*) SPRITES_MC#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2 + //SEG774 [362] *((const byte*) SPRITES_MC#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2 lda #0 sta SPRITES_MC - //SEG776 [364] *((const byte*) SPRITES_EXPAND_Y#0) ← *((const byte*) SPRITES_MC#0) -- _deref_pbuc1=_deref_pbuc2 + //SEG775 [363] *((const byte*) SPRITES_EXPAND_Y#0) ← *((const byte*) SPRITES_MC#0) -- _deref_pbuc1=_deref_pbuc2 lda SPRITES_MC sta SPRITES_EXPAND_Y - //SEG777 [365] *((const byte*) SPRITES_EXPAND_X#0) ← *((const byte*) SPRITES_EXPAND_Y#0) -- _deref_pbuc1=_deref_pbuc2 + //SEG776 [364] *((const byte*) SPRITES_EXPAND_X#0) ← *((const byte*) SPRITES_EXPAND_Y#0) -- _deref_pbuc1=_deref_pbuc2 lda SPRITES_EXPAND_Y sta SPRITES_EXPAND_X - //SEG778 [366] phi from sprites_init to sprites_init::@1 [phi:sprites_init->sprites_init::@1] + //SEG777 [365] phi from sprites_init to sprites_init::@1 [phi:sprites_init->sprites_init::@1] b1_from_sprites_init: - //SEG779 [366] phi (byte) sprites_init::xpos#2 = (byte/signed byte/word/signed word/dword/signed dword) 24+(byte/signed byte/word/signed word/dword/signed dword) 15*(byte/signed byte/word/signed word/dword/signed dword) 8 [phi:sprites_init->sprites_init::@1#0] -- vbuz1=vbuc1 + //SEG778 [365] phi (byte) sprites_init::xpos#2 = (byte/signed byte/word/signed word/dword/signed dword) 24+(byte/signed byte/word/signed word/dword/signed dword) 15*(byte/signed byte/word/signed word/dword/signed dword) 8 [phi:sprites_init->sprites_init::@1#0] -- vbuz1=vbuc1 lda #$18+$f*8 sta xpos - //SEG780 [366] phi (byte) sprites_init::s#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:sprites_init->sprites_init::@1#1] -- vbuxx=vbuc1 + //SEG779 [365] phi (byte) sprites_init::s#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:sprites_init->sprites_init::@1#1] -- vbuxx=vbuc1 ldx #0 jmp b1 - //SEG781 [366] phi from sprites_init::@1 to sprites_init::@1 [phi:sprites_init::@1->sprites_init::@1] + //SEG780 [365] phi from sprites_init::@1 to sprites_init::@1 [phi:sprites_init::@1->sprites_init::@1] b1_from_b1: - //SEG782 [366] phi (byte) sprites_init::xpos#2 = (byte) sprites_init::xpos#1 [phi:sprites_init::@1->sprites_init::@1#0] -- register_copy - //SEG783 [366] phi (byte) sprites_init::s#2 = (byte) sprites_init::s#1 [phi:sprites_init::@1->sprites_init::@1#1] -- register_copy + //SEG781 [365] phi (byte) sprites_init::xpos#2 = (byte) sprites_init::xpos#1 [phi:sprites_init::@1->sprites_init::@1#0] -- register_copy + //SEG782 [365] phi (byte) sprites_init::s#2 = (byte) sprites_init::s#1 [phi:sprites_init::@1->sprites_init::@1#1] -- register_copy jmp b1 - //SEG784 sprites_init::@1 + //SEG783 sprites_init::@1 b1: - //SEG785 [367] (byte) sprites_init::s2#0 ← (byte) sprites_init::s#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuaa=vbuxx_rol_1 + //SEG784 [366] (byte) sprites_init::s2#0 ← (byte) sprites_init::s#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuaa=vbuxx_rol_1 txa asl - //SEG786 [368] *((const byte*) SPRITES_XPOS#0 + (byte) sprites_init::s2#0) ← (byte) sprites_init::xpos#2 -- pbuc1_derefidx_vbuaa=vbuz1 + //SEG785 [367] *((const byte*) SPRITES_XPOS#0 + (byte) sprites_init::s2#0) ← (byte) sprites_init::xpos#2 -- pbuc1_derefidx_vbuaa=vbuz1 tay lda xpos sta SPRITES_XPOS,y - //SEG787 [369] *((const byte*) SPRITES_COLS#0 + (byte) sprites_init::s#2) ← (const byte) BLACK#0 -- pbuc1_derefidx_vbuxx=vbuc2 + //SEG786 [368] *((const byte*) SPRITES_COLS#0 + (byte) sprites_init::s#2) ← (const byte) BLACK#0 -- pbuc1_derefidx_vbuxx=vbuc2 lda #BLACK sta SPRITES_COLS,x - //SEG788 [370] (byte) sprites_init::xpos#1 ← (byte) sprites_init::xpos#2 + (byte/signed byte/word/signed word/dword/signed dword) 24 -- vbuz1=vbuz1_plus_vbuc1 + //SEG787 [369] (byte) sprites_init::xpos#1 ← (byte) sprites_init::xpos#2 + (byte/signed byte/word/signed word/dword/signed dword) 24 -- vbuz1=vbuz1_plus_vbuc1 lda #$18 clc adc xpos sta xpos - //SEG789 [371] (byte) sprites_init::s#1 ← ++ (byte) sprites_init::s#2 -- vbuxx=_inc_vbuxx + //SEG788 [370] (byte) sprites_init::s#1 ← ++ (byte) sprites_init::s#2 -- vbuxx=_inc_vbuxx inx - //SEG790 [372] if((byte) sprites_init::s#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto sprites_init::@1 -- vbuxx_neq_vbuc1_then_la1 + //SEG789 [371] if((byte) sprites_init::s#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto sprites_init::@1 -- vbuxx_neq_vbuc1_then_la1 cpx #4 bne b1_from_b1 jmp breturn - //SEG791 sprites_init::@return + //SEG790 sprites_init::@return breturn: - //SEG792 [373] return + //SEG791 [372] return rts } -//SEG793 render_init +//SEG792 render_init render_init: { .const vicSelectGfxBank1_toDd001_return = 3^(>PLAYFIELD_CHARSET)>>6 .label li_1 = 7 .label li_2 = $f jmp vicSelectGfxBank1 - //SEG794 render_init::vicSelectGfxBank1 + //SEG793 render_init::vicSelectGfxBank1 vicSelectGfxBank1: - //SEG795 [375] *((const byte*) CIA2_PORT_A_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3 -- _deref_pbuc1=vbuc2 + //SEG794 [374] *((const byte*) CIA2_PORT_A_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3 -- _deref_pbuc1=vbuc2 lda #3 sta CIA2_PORT_A_DDR - //SEG796 [376] phi from render_init::vicSelectGfxBank1 to render_init::vicSelectGfxBank1_toDd001 [phi:render_init::vicSelectGfxBank1->render_init::vicSelectGfxBank1_toDd001] + //SEG795 [375] 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 - //SEG797 render_init::vicSelectGfxBank1_toDd001 + //SEG796 render_init::vicSelectGfxBank1_toDd001 vicSelectGfxBank1_toDd001: jmp vicSelectGfxBank1_b1 - //SEG798 render_init::vicSelectGfxBank1_@1 + //SEG797 render_init::vicSelectGfxBank1_@1 vicSelectGfxBank1_b1: - //SEG799 [377] *((const byte*) CIA2_PORT_A#0) ← (const byte) render_init::vicSelectGfxBank1_toDd001_return#0 -- _deref_pbuc1=vbuc2 + //SEG798 [376] *((const byte*) CIA2_PORT_A#0) ← (const byte) render_init::vicSelectGfxBank1_toDd001_return#0 -- _deref_pbuc1=vbuc2 lda #vicSelectGfxBank1_toDd001_return sta CIA2_PORT_A jmp b3 - //SEG800 render_init::@3 + //SEG799 render_init::@3 b3: - //SEG801 [378] *((const byte*) D011#0) ← (const byte) VIC_ECM#0|(const byte) VIC_DEN#0|(const byte) VIC_RSEL#0|(byte/signed byte/word/signed word/dword/signed dword) 3 -- _deref_pbuc1=vbuc2 + //SEG800 [377] *((const byte*) D011#0) ← (const byte) VIC_ECM#0|(const byte) VIC_DEN#0|(const byte) VIC_RSEL#0|(byte/signed byte/word/signed word/dword/signed dword) 3 -- _deref_pbuc1=vbuc2 lda #VIC_ECM|VIC_DEN|VIC_RSEL|3 sta D011 - //SEG802 [379] *((const byte*) BORDERCOL#0) ← (const byte) BLACK#0 -- _deref_pbuc1=vbuc2 + //SEG801 [378] *((const byte*) BORDERCOL#0) ← (const byte) BLACK#0 -- _deref_pbuc1=vbuc2 lda #BLACK sta BORDERCOL - //SEG803 [380] *((const byte*) BGCOL1#0) ← (const byte) BLACK#0 -- _deref_pbuc1=vbuc2 + //SEG802 [379] *((const byte*) BGCOL1#0) ← (const byte) BLACK#0 -- _deref_pbuc1=vbuc2 lda #BLACK sta BGCOL1 - //SEG804 [381] *((const byte*) BGCOL2#0) ← (const byte) BLUE#0 -- _deref_pbuc1=vbuc2 + //SEG803 [380] *((const byte*) BGCOL2#0) ← (const byte) BLUE#0 -- _deref_pbuc1=vbuc2 lda #BLUE sta BGCOL2 - //SEG805 [382] *((const byte*) BGCOL3#0) ← (const byte) CYAN#0 -- _deref_pbuc1=vbuc2 + //SEG804 [381] *((const byte*) BGCOL3#0) ← (const byte) CYAN#0 -- _deref_pbuc1=vbuc2 lda #CYAN sta BGCOL3 - //SEG806 [383] *((const byte*) BGCOL4#0) ← (const byte) GREY#0 -- _deref_pbuc1=vbuc2 + //SEG805 [382] *((const byte*) BGCOL4#0) ← (const byte) GREY#0 -- _deref_pbuc1=vbuc2 lda #GREY sta BGCOL4 - //SEG807 [384] call render_screen_original - //SEG808 [397] phi from render_init::@3 to render_screen_original [phi:render_init::@3->render_screen_original] + //SEG806 [383] call render_screen_original + //SEG807 [396] phi from render_init::@3 to render_screen_original [phi:render_init::@3->render_screen_original] render_screen_original_from_b3: - //SEG809 [397] phi (byte*) render_screen_original::screen#9 = (const byte*) PLAYFIELD_SCREEN_1#0 [phi:render_init::@3->render_screen_original#0] -- pbuz1=pbuc1 + //SEG808 [396] phi (byte*) render_screen_original::screen#9 = (const byte*) PLAYFIELD_SCREEN_1#0 [phi:render_init::@3->render_screen_original#0] -- pbuz1=pbuc1 lda #PLAYFIELD_SCREEN_1 sta render_screen_original.screen+1 jsr render_screen_original - //SEG810 [385] phi from render_init::@3 to render_init::@4 [phi:render_init::@3->render_init::@4] + //SEG809 [384] phi from render_init::@3 to render_init::@4 [phi:render_init::@3->render_init::@4] b4_from_b3: jmp b4 - //SEG811 render_init::@4 + //SEG810 render_init::@4 b4: - //SEG812 [386] call render_screen_original - //SEG813 [397] phi from render_init::@4 to render_screen_original [phi:render_init::@4->render_screen_original] + //SEG811 [385] call render_screen_original + //SEG812 [396] phi from render_init::@4 to render_screen_original [phi:render_init::@4->render_screen_original] render_screen_original_from_b4: - //SEG814 [397] phi (byte*) render_screen_original::screen#9 = (const byte*) PLAYFIELD_SCREEN_2#0 [phi:render_init::@4->render_screen_original#0] -- pbuz1=pbuc1 + //SEG813 [396] phi (byte*) render_screen_original::screen#9 = (const byte*) PLAYFIELD_SCREEN_2#0 [phi:render_init::@4->render_screen_original#0] -- pbuz1=pbuc1 lda #PLAYFIELD_SCREEN_2 sta render_screen_original.screen+1 jsr render_screen_original - //SEG815 [387] phi from render_init::@4 to render_init::@1 [phi:render_init::@4->render_init::@1] + //SEG814 [386] phi from render_init::@4 to render_init::@1 [phi:render_init::@4->render_init::@1] b1_from_b4: - //SEG816 [387] phi (byte*) render_init::li_2#2 = (const byte*) PLAYFIELD_SCREEN_2#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 16 [phi:render_init::@4->render_init::@1#0] -- pbuz1=pbuc1 + //SEG815 [386] phi (byte*) render_init::li_2#2 = (const byte*) PLAYFIELD_SCREEN_2#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 16 [phi:render_init::@4->render_init::@1#0] -- pbuz1=pbuc1 lda #PLAYFIELD_SCREEN_2+2*$28+$10 sta li_2+1 - //SEG817 [387] phi (byte*) render_init::li_1#2 = (const byte*) PLAYFIELD_SCREEN_1#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 16 [phi:render_init::@4->render_init::@1#1] -- pbuz1=pbuc1 + //SEG816 [386] phi (byte*) render_init::li_1#2 = (const byte*) PLAYFIELD_SCREEN_1#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 16 [phi:render_init::@4->render_init::@1#1] -- pbuz1=pbuc1 lda #PLAYFIELD_SCREEN_1+2*$28+$10 sta li_1+1 - //SEG818 [387] phi (byte) render_init::i#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_init::@4->render_init::@1#2] -- vbuxx=vbuc1 + //SEG817 [386] phi (byte) render_init::i#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_init::@4->render_init::@1#2] -- vbuxx=vbuc1 ldx #0 jmp b1 - //SEG819 [387] phi from render_init::@1 to render_init::@1 [phi:render_init::@1->render_init::@1] + //SEG818 [386] phi from render_init::@1 to render_init::@1 [phi:render_init::@1->render_init::@1] b1_from_b1: - //SEG820 [387] phi (byte*) render_init::li_2#2 = (byte*) render_init::li_2#1 [phi:render_init::@1->render_init::@1#0] -- register_copy - //SEG821 [387] phi (byte*) render_init::li_1#2 = (byte*) render_init::li_1#1 [phi:render_init::@1->render_init::@1#1] -- register_copy - //SEG822 [387] phi (byte) render_init::i#2 = (byte) render_init::i#1 [phi:render_init::@1->render_init::@1#2] -- register_copy + //SEG819 [386] phi (byte*) render_init::li_2#2 = (byte*) render_init::li_2#1 [phi:render_init::@1->render_init::@1#0] -- register_copy + //SEG820 [386] phi (byte*) render_init::li_1#2 = (byte*) render_init::li_1#1 [phi:render_init::@1->render_init::@1#1] -- register_copy + //SEG821 [386] phi (byte) render_init::i#2 = (byte) render_init::i#1 [phi:render_init::@1->render_init::@1#2] -- register_copy jmp b1 - //SEG823 render_init::@1 + //SEG822 render_init::@1 b1: - //SEG824 [388] (byte~) render_init::$13 ← (byte) render_init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuaa=vbuxx_rol_1 + //SEG823 [387] (byte~) render_init::$13 ← (byte) render_init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuaa=vbuxx_rol_1 txa asl - //SEG825 [389] *((const byte*[PLAYFIELD_LINES#0]) screen_lines_1#0 + (byte~) render_init::$13) ← (byte*) render_init::li_1#2 -- pptc1_derefidx_vbuaa=pbuz1 + //SEG824 [388] *((const byte*[PLAYFIELD_LINES#0]) screen_lines_1#0 + (byte~) render_init::$13) ← (byte*) render_init::li_1#2 -- pptc1_derefidx_vbuaa=pbuz1 tay lda li_1 sta screen_lines_1,y lda li_1+1 sta screen_lines_1+1,y - //SEG826 [390] (byte~) render_init::$14 ← (byte) render_init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuaa=vbuxx_rol_1 + //SEG825 [389] (byte~) render_init::$14 ← (byte) render_init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuaa=vbuxx_rol_1 txa asl - //SEG827 [391] *((const byte*[PLAYFIELD_LINES#0]) screen_lines_2#0 + (byte~) render_init::$14) ← (byte*) render_init::li_2#2 -- pptc1_derefidx_vbuaa=pbuz1 + //SEG826 [390] *((const byte*[PLAYFIELD_LINES#0]) screen_lines_2#0 + (byte~) render_init::$14) ← (byte*) render_init::li_2#2 -- pptc1_derefidx_vbuaa=pbuz1 tay lda li_2 sta screen_lines_2,y lda li_2+1 sta screen_lines_2+1,y - //SEG828 [392] (byte*) render_init::li_1#1 ← (byte*) render_init::li_1#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 -- pbuz1=pbuz1_plus_vbuc1 + //SEG827 [391] (byte*) render_init::li_1#1 ← (byte*) render_init::li_1#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 -- pbuz1=pbuz1_plus_vbuc1 lda li_1 clc adc #$28 @@ -15164,7 +15029,7 @@ render_init: { bcc !+ inc li_1+1 !: - //SEG829 [393] (byte*) render_init::li_2#1 ← (byte*) render_init::li_2#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 -- pbuz1=pbuz1_plus_vbuc1 + //SEG828 [392] (byte*) render_init::li_2#1 ← (byte*) render_init::li_2#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 -- pbuz1=pbuz1_plus_vbuc1 lda li_2 clc adc #$28 @@ -15172,390 +15037,358 @@ render_init: { bcc !+ inc li_2+1 !: - //SEG830 [394] (byte) render_init::i#1 ← ++ (byte) render_init::i#2 -- vbuxx=_inc_vbuxx + //SEG829 [393] (byte) render_init::i#1 ← ++ (byte) render_init::i#2 -- vbuxx=_inc_vbuxx inx - //SEG831 [395] if((byte) render_init::i#1!=(const byte) PLAYFIELD_LINES#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_init::@1 -- vbuxx_neq_vbuc1_then_la1 + //SEG830 [394] if((byte) render_init::i#1!=(const byte) PLAYFIELD_LINES#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_init::@1 -- vbuxx_neq_vbuc1_then_la1 cpx #PLAYFIELD_LINES-1+1 bne b1_from_b1 jmp breturn - //SEG832 render_init::@return + //SEG831 render_init::@return breturn: - //SEG833 [396] return + //SEG832 [395] return rts } -//SEG834 render_screen_original +//SEG833 render_screen_original render_screen_original: { .const SPACE = 0 - .label screen = $17 - .label cols = $19 - .label c = 3 + .label screen = $12 + .label cols = $17 .label oscr = 7 - .label oext = $f - .label ocols = $12 + .label ocols = $f .label y = 2 - //SEG835 [398] phi from render_screen_original to render_screen_original::@1 [phi:render_screen_original->render_screen_original::@1] + //SEG834 [397] phi from render_screen_original to render_screen_original::@1 [phi:render_screen_original->render_screen_original::@1] b1_from_render_screen_original: - //SEG836 [398] phi (byte) render_screen_original::y#6 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_screen_original->render_screen_original::@1#0] -- vbuz1=vbuc1 + //SEG835 [397] phi (byte) render_screen_original::y#6 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_screen_original->render_screen_original::@1#0] -- vbuz1=vbuc1 lda #0 sta y - //SEG837 [398] phi (byte*) render_screen_original::ocols#4 = (const byte*) PLAYFIELD_COLORS_ORIGINAL#0+(byte/signed byte/word/signed word/dword/signed dword) 32*(byte/signed byte/word/signed word/dword/signed dword) 2 [phi:render_screen_original->render_screen_original::@1#1] -- pbuz1=pbuc1 + //SEG836 [397] phi (byte*) render_screen_original::ocols#4 = (const byte*) PLAYFIELD_COLORS_ORIGINAL#0+(byte/signed byte/word/signed word/dword/signed dword) 32*(byte/signed byte/word/signed word/dword/signed dword) 2 [phi:render_screen_original->render_screen_original::@1#1] -- pbuz1=pbuc1 lda #PLAYFIELD_COLORS_ORIGINAL+$20*2 sta ocols+1 - //SEG838 [398] phi (byte*) render_screen_original::oext#4 = (const byte*) PLAYFIELD_EXTENDED_ORIGINAL#0+(byte/signed byte/word/signed word/dword/signed dword) 32*(byte/signed byte/word/signed word/dword/signed dword) 2 [phi:render_screen_original->render_screen_original::@1#2] -- pbuz1=pbuc1 - lda #PLAYFIELD_EXTENDED_ORIGINAL+$20*2 - sta oext+1 - //SEG839 [398] phi (byte*) render_screen_original::oscr#4 = (const byte*) PLAYFIELD_SCREEN_ORIGINAL#0+(byte/signed byte/word/signed word/dword/signed dword) 32*(byte/signed byte/word/signed word/dword/signed dword) 2 [phi:render_screen_original->render_screen_original::@1#3] -- pbuz1=pbuc1 + //SEG837 [397] phi (byte*) render_screen_original::oscr#4 = (const byte*) PLAYFIELD_SCREEN_ORIGINAL#0+(byte/signed byte/word/signed word/dword/signed dword) 32*(byte/signed byte/word/signed word/dword/signed dword) 2 [phi:render_screen_original->render_screen_original::@1#2] -- pbuz1=pbuc1 lda #PLAYFIELD_SCREEN_ORIGINAL+$20*2 sta oscr+1 - //SEG840 [398] phi (byte*) render_screen_original::cols#7 = (const byte*) COLS#0 [phi:render_screen_original->render_screen_original::@1#4] -- pbuz1=pbuc1 + //SEG838 [397] phi (byte*) render_screen_original::cols#7 = (const byte*) COLS#0 [phi:render_screen_original->render_screen_original::@1#3] -- pbuz1=pbuc1 lda #COLS sta cols+1 - //SEG841 [398] phi (byte*) render_screen_original::screen#8 = (byte*) render_screen_original::screen#9 [phi:render_screen_original->render_screen_original::@1#5] -- register_copy + //SEG839 [397] 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 - //SEG842 [398] phi from render_screen_original::@7 to render_screen_original::@1 [phi:render_screen_original::@7->render_screen_original::@1] + //SEG840 [397] phi from render_screen_original::@7 to render_screen_original::@1 [phi:render_screen_original::@7->render_screen_original::@1] b1_from_b7: - //SEG843 [398] phi (byte) render_screen_original::y#6 = (byte) render_screen_original::y#1 [phi:render_screen_original::@7->render_screen_original::@1#0] -- register_copy - //SEG844 [398] phi (byte*) render_screen_original::ocols#4 = (byte*) render_screen_original::ocols#1 [phi:render_screen_original::@7->render_screen_original::@1#1] -- register_copy - //SEG845 [398] phi (byte*) render_screen_original::oext#4 = (byte*) render_screen_original::oext#1 [phi:render_screen_original::@7->render_screen_original::@1#2] -- register_copy - //SEG846 [398] phi (byte*) render_screen_original::oscr#4 = (byte*) render_screen_original::oscr#1 [phi:render_screen_original::@7->render_screen_original::@1#3] -- register_copy - //SEG847 [398] phi (byte*) render_screen_original::cols#7 = (byte*) render_screen_original::cols#3 [phi:render_screen_original::@7->render_screen_original::@1#4] -- register_copy - //SEG848 [398] phi (byte*) render_screen_original::screen#8 = (byte*) render_screen_original::screen#10 [phi:render_screen_original::@7->render_screen_original::@1#5] -- register_copy + //SEG841 [397] phi (byte) render_screen_original::y#6 = (byte) render_screen_original::y#1 [phi:render_screen_original::@7->render_screen_original::@1#0] -- register_copy + //SEG842 [397] phi (byte*) render_screen_original::ocols#4 = (byte*) render_screen_original::ocols#1 [phi:render_screen_original::@7->render_screen_original::@1#1] -- register_copy + //SEG843 [397] phi (byte*) render_screen_original::oscr#4 = (byte*) render_screen_original::oscr#1 [phi:render_screen_original::@7->render_screen_original::@1#2] -- register_copy + //SEG844 [397] phi (byte*) render_screen_original::cols#7 = (byte*) render_screen_original::cols#3 [phi:render_screen_original::@7->render_screen_original::@1#3] -- register_copy + //SEG845 [397] phi (byte*) render_screen_original::screen#8 = (byte*) render_screen_original::screen#10 [phi:render_screen_original::@7->render_screen_original::@1#4] -- register_copy jmp b1 - //SEG849 render_screen_original::@1 + //SEG846 render_screen_original::@1 b1: - //SEG850 [399] phi from render_screen_original::@1 to render_screen_original::@2 [phi:render_screen_original::@1->render_screen_original::@2] + //SEG847 [398] phi from render_screen_original::@1 to render_screen_original::@2 [phi:render_screen_original::@1->render_screen_original::@2] b2_from_b1: - //SEG851 [399] phi (byte) render_screen_original::x#4 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_screen_original::@1->render_screen_original::@2#0] -- vbuxx=vbuc1 + //SEG848 [398] phi (byte) render_screen_original::x#4 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_screen_original::@1->render_screen_original::@2#0] -- vbuxx=vbuc1 ldx #0 - //SEG852 [399] 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 - //SEG853 [399] 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 + //SEG849 [398] 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 + //SEG850 [398] 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 - //SEG854 [399] phi from render_screen_original::@2 to render_screen_original::@2 [phi:render_screen_original::@2->render_screen_original::@2] + //SEG851 [398] phi from render_screen_original::@2 to render_screen_original::@2 [phi:render_screen_original::@2->render_screen_original::@2] b2_from_b2: - //SEG855 [399] 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 - //SEG856 [399] 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 - //SEG857 [399] 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 + //SEG852 [398] 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 + //SEG853 [398] 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 + //SEG854 [398] 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 - //SEG858 render_screen_original::@2 + //SEG855 render_screen_original::@2 b2: - //SEG859 [400] *((byte*) render_screen_original::screen#5) ← (const byte) render_screen_original::SPACE#0 -- _deref_pbuz1=vbuc1 + //SEG856 [399] *((byte*) render_screen_original::screen#5) ← (const byte) render_screen_original::SPACE#0 -- _deref_pbuz1=vbuc1 lda #SPACE ldy #0 sta (screen),y - //SEG860 [401] (byte*) render_screen_original::screen#2 ← ++ (byte*) render_screen_original::screen#5 -- pbuz1=_inc_pbuz1 + //SEG857 [400] (byte*) render_screen_original::screen#2 ← ++ (byte*) render_screen_original::screen#5 -- pbuz1=_inc_pbuz1 inc screen bne !+ inc screen+1 !: - //SEG861 [402] *((byte*) render_screen_original::cols#4) ← (const byte) BLACK#0 -- _deref_pbuz1=vbuc1 + //SEG858 [401] *((byte*) render_screen_original::cols#4) ← (const byte) BLACK#0 -- _deref_pbuz1=vbuc1 lda #BLACK ldy #0 sta (cols),y - //SEG862 [403] (byte*) render_screen_original::cols#1 ← ++ (byte*) render_screen_original::cols#4 -- pbuz1=_inc_pbuz1 + //SEG859 [402] (byte*) render_screen_original::cols#1 ← ++ (byte*) render_screen_original::cols#4 -- pbuz1=_inc_pbuz1 inc cols bne !+ inc cols+1 !: - //SEG863 [404] (byte) render_screen_original::x#1 ← ++ (byte) render_screen_original::x#4 -- vbuxx=_inc_vbuxx + //SEG860 [403] (byte) render_screen_original::x#1 ← ++ (byte) render_screen_original::x#4 -- vbuxx=_inc_vbuxx inx - //SEG864 [405] if((byte) render_screen_original::x#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_screen_original::@2 -- vbuxx_neq_vbuc1_then_la1 + //SEG861 [404] if((byte) render_screen_original::x#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_screen_original::@2 -- vbuxx_neq_vbuc1_then_la1 cpx #4 bne b2_from_b2 - //SEG865 [406] 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] + //SEG862 [405] 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: - //SEG866 [406] 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 - //SEG867 [406] 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 - //SEG868 [406] 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 - //SEG869 [406] 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 - //SEG870 [406] phi (byte*) render_screen_original::oext#2 = (byte*) render_screen_original::oext#4 [phi:render_screen_original::@2/render_screen_original::@3->render_screen_original::@3#4] -- register_copy - //SEG871 [406] 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#5] -- register_copy + //SEG863 [405] 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 + //SEG864 [405] 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 + //SEG865 [405] 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 + //SEG866 [405] 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 + //SEG867 [405] 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 - //SEG872 render_screen_original::@3 + //SEG868 render_screen_original::@3 b3: - //SEG873 [407] (byte) render_screen_original::c#0 ← *((byte*) render_screen_original::oscr#2) + (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=_deref_pbuz2_plus_1 + //SEG869 [406] *((byte*) render_screen_original::screen#6) ← *((byte*) render_screen_original::oscr#2) -- _deref_pbuz1=_deref_pbuz2 ldy #0 lda (oscr),y - clc - adc #1 - sta c - //SEG874 [408] (byte*) render_screen_original::oscr#1 ← ++ (byte*) render_screen_original::oscr#2 -- pbuz1=_inc_pbuz1 + ldy #0 + sta (screen),y + //SEG870 [407] (byte*) render_screen_original::screen#3 ← ++ (byte*) render_screen_original::screen#6 -- pbuz1=_inc_pbuz1 + inc screen + bne !+ + inc screen+1 + !: + //SEG871 [408] (byte*) render_screen_original::oscr#1 ← ++ (byte*) render_screen_original::oscr#2 -- pbuz1=_inc_pbuz1 inc oscr bne !+ inc oscr+1 !: - //SEG875 [409] (byte/signed word/word/dword/signed dword~) render_screen_original::$8 ← *((byte*) render_screen_original::oext#2) - (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuaa=_deref_pbuz1_minus_1 - ldy #0 - lda (oext),y - sec - sbc #1 - //SEG876 [410] (byte) render_screen_original::ext#0 ← (byte/signed word/word/dword/signed dword~) render_screen_original::$8 << (byte/signed byte/word/signed word/dword/signed dword) 6 -- vbuaa=vbuaa_rol_6 - asl - asl - asl - asl - asl - asl - //SEG877 [411] (byte*) render_screen_original::oext#1 ← ++ (byte*) render_screen_original::oext#2 -- pbuz1=_inc_pbuz1 - inc oext - bne !+ - inc oext+1 - !: - //SEG878 [412] (byte~) render_screen_original::$10 ← (byte) render_screen_original::c#0 | (byte) render_screen_original::ext#0 -- vbuaa=vbuz1_bor_vbuaa - ora c - //SEG879 [413] *((byte*) render_screen_original::screen#6) ← (byte~) render_screen_original::$10 -- _deref_pbuz1=vbuaa - ldy #0 - sta (screen),y - //SEG880 [414] (byte*) render_screen_original::screen#3 ← ++ (byte*) render_screen_original::screen#6 -- pbuz1=_inc_pbuz1 - inc screen - bne !+ - inc screen+1 - !: - //SEG881 [415] *((byte*) render_screen_original::cols#5) ← *((byte*) render_screen_original::ocols#2) -- _deref_pbuz1=_deref_pbuz2 + //SEG872 [409] *((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 - //SEG882 [416] (byte*) render_screen_original::cols#2 ← ++ (byte*) render_screen_original::cols#5 -- pbuz1=_inc_pbuz1 + //SEG873 [410] (byte*) render_screen_original::cols#2 ← ++ (byte*) render_screen_original::cols#5 -- pbuz1=_inc_pbuz1 inc cols bne !+ inc cols+1 !: - //SEG883 [417] (byte*) render_screen_original::ocols#1 ← ++ (byte*) render_screen_original::ocols#2 -- pbuz1=_inc_pbuz1 + //SEG874 [411] (byte*) render_screen_original::ocols#1 ← ++ (byte*) render_screen_original::ocols#2 -- pbuz1=_inc_pbuz1 inc ocols bne !+ inc ocols+1 !: - //SEG884 [418] (byte) render_screen_original::x#2 ← ++ (byte) render_screen_original::x#5 -- vbuxx=_inc_vbuxx + //SEG875 [412] (byte) render_screen_original::x#2 ← ++ (byte) render_screen_original::x#5 -- vbuxx=_inc_vbuxx inx - //SEG885 [419] if((byte) render_screen_original::x#2!=(byte/signed byte/word/signed word/dword/signed dword) 36) goto render_screen_original::@3 -- vbuxx_neq_vbuc1_then_la1 + //SEG876 [413] if((byte) render_screen_original::x#2!=(byte/signed byte/word/signed word/dword/signed dword) 36) goto render_screen_original::@3 -- vbuxx_neq_vbuc1_then_la1 cpx #$24 bne b3_from_b3 - //SEG886 [420] 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] + //SEG877 [414] 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: - //SEG887 [420] 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 - //SEG888 [420] 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 - //SEG889 [420] 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 + //SEG878 [414] 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 + //SEG879 [414] 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 + //SEG880 [414] 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 - //SEG890 render_screen_original::@4 + //SEG881 render_screen_original::@4 b4: - //SEG891 [421] *((byte*) render_screen_original::screen#7) ← (const byte) render_screen_original::SPACE#0 -- _deref_pbuz1=vbuc1 + //SEG882 [415] *((byte*) render_screen_original::screen#7) ← (const byte) render_screen_original::SPACE#0 -- _deref_pbuz1=vbuc1 lda #SPACE ldy #0 sta (screen),y - //SEG892 [422] (byte*) render_screen_original::screen#10 ← ++ (byte*) render_screen_original::screen#7 -- pbuz1=_inc_pbuz1 + //SEG883 [416] (byte*) render_screen_original::screen#10 ← ++ (byte*) render_screen_original::screen#7 -- pbuz1=_inc_pbuz1 inc screen bne !+ inc screen+1 !: - //SEG893 [423] *((byte*) render_screen_original::cols#6) ← (const byte) BLACK#0 -- _deref_pbuz1=vbuc1 + //SEG884 [417] *((byte*) render_screen_original::cols#6) ← (const byte) BLACK#0 -- _deref_pbuz1=vbuc1 lda #BLACK ldy #0 sta (cols),y - //SEG894 [424] (byte*) render_screen_original::cols#3 ← ++ (byte*) render_screen_original::cols#6 -- pbuz1=_inc_pbuz1 + //SEG885 [418] (byte*) render_screen_original::cols#3 ← ++ (byte*) render_screen_original::cols#6 -- pbuz1=_inc_pbuz1 inc cols bne !+ inc cols+1 !: - //SEG895 [425] (byte) render_screen_original::x#3 ← ++ (byte) render_screen_original::x#6 -- vbuxx=_inc_vbuxx + //SEG886 [419] (byte) render_screen_original::x#3 ← ++ (byte) render_screen_original::x#6 -- vbuxx=_inc_vbuxx inx - //SEG896 [426] if((byte) render_screen_original::x#3!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto render_screen_original::@4 -- vbuxx_neq_vbuc1_then_la1 + //SEG887 [420] if((byte) render_screen_original::x#3!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto render_screen_original::@4 -- vbuxx_neq_vbuc1_then_la1 cpx #$28 bne b4_from_b4 jmp b7 - //SEG897 render_screen_original::@7 + //SEG888 render_screen_original::@7 b7: - //SEG898 [427] (byte) render_screen_original::y#1 ← ++ (byte) render_screen_original::y#6 -- vbuz1=_inc_vbuz1 + //SEG889 [421] (byte) render_screen_original::y#1 ← ++ (byte) render_screen_original::y#6 -- vbuz1=_inc_vbuz1 inc y - //SEG899 [428] if((byte) render_screen_original::y#1!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto render_screen_original::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG890 [422] if((byte) render_screen_original::y#1!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto render_screen_original::@1 -- vbuz1_neq_vbuc1_then_la1 lda y cmp #$19 bne b1_from_b7 jmp breturn - //SEG900 render_screen_original::@return + //SEG891 render_screen_original::@return breturn: - //SEG901 [429] return + //SEG892 [423] return rts } -//SEG902 sid_rnd_init +//SEG893 sid_rnd_init sid_rnd_init: { - //SEG903 [430] *((const word*) SID_VOICE3_FREQ#0) ← (word/dword/signed dword) 65535 -- _deref_pwuc1=vwuc2 + //SEG894 [424] *((const word*) SID_VOICE3_FREQ#0) ← (word/dword/signed dword) 65535 -- _deref_pwuc1=vwuc2 lda #<$ffff sta SID_VOICE3_FREQ lda #>$ffff sta SID_VOICE3_FREQ+1 - //SEG904 [431] *((const byte*) SID_VOICE3_CONTROL#0) ← (const byte) SID_CONTROL_NOISE#0 -- _deref_pbuc1=vbuc2 + //SEG895 [425] *((const byte*) SID_VOICE3_CONTROL#0) ← (const byte) SID_CONTROL_NOISE#0 -- _deref_pbuc1=vbuc2 lda #SID_CONTROL_NOISE sta SID_VOICE3_CONTROL jmp breturn - //SEG905 sid_rnd_init::@return + //SEG896 sid_rnd_init::@return breturn: - //SEG906 [432] return + //SEG897 [426] return rts } -//SEG907 sprites_irq +//SEG898 sprites_irq sprites_irq: { .const toSpritePtr2_return = PLAYFIELD_SPRITES>>6 - //SEG908 entry interrupt(HARDWARE_CLOBBER) + //SEG899 entry interrupt(HARDWARE_CLOBBER) sta rega+1 stx regx+1 - //SEG909 [433] (byte) sprites_irq::ypos#0 ← (byte) irq_sprite_ypos#0 -- vbuaa=vbuz1 + //SEG900 [427] (byte) sprites_irq::ypos#0 ← (byte) irq_sprite_ypos#0 -- vbuaa=vbuz1 lda irq_sprite_ypos - //SEG910 [434] *((const byte*) SPRITES_YPOS#0) ← (byte) sprites_irq::ypos#0 -- _deref_pbuc1=vbuaa + //SEG901 [428] *((const byte*) SPRITES_YPOS#0) ← (byte) sprites_irq::ypos#0 -- _deref_pbuc1=vbuaa sta SPRITES_YPOS - //SEG911 [435] *((const byte*) SPRITES_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte) sprites_irq::ypos#0 -- _deref_pbuc1=vbuaa + //SEG902 [429] *((const byte*) SPRITES_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte) sprites_irq::ypos#0 -- _deref_pbuc1=vbuaa sta SPRITES_YPOS+2 - //SEG912 [436] *((const byte*) SPRITES_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte) sprites_irq::ypos#0 -- _deref_pbuc1=vbuaa + //SEG903 [430] *((const byte*) SPRITES_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte) sprites_irq::ypos#0 -- _deref_pbuc1=vbuaa sta SPRITES_YPOS+4 - //SEG913 [437] *((const byte*) SPRITES_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte) sprites_irq::ypos#0 -- _deref_pbuc1=vbuaa + //SEG904 [431] *((const byte*) SPRITES_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte) sprites_irq::ypos#0 -- _deref_pbuc1=vbuaa sta SPRITES_YPOS+6 jmp b1 - //SEG914 sprites_irq::@1 + //SEG905 sprites_irq::@1 b1: - //SEG915 [438] if(*((const byte*) RASTER#0)<(byte) irq_sprite_ypos#0) goto sprites_irq::@1 -- _deref_pbuc1_lt_vbuz1_then_la1 + //SEG906 [432] if(*((const byte*) RASTER#0)<(byte) irq_sprite_ypos#0) goto sprites_irq::@1 -- _deref_pbuc1_lt_vbuz1_then_la1 lda RASTER cmp irq_sprite_ypos bcc b1 jmp b7 - //SEG916 sprites_irq::@7 + //SEG907 sprites_irq::@7 b7: - //SEG917 [439] (byte) sprites_irq::ptr#0 ← (byte) irq_sprite_ptr#0 -- vbuxx=vbuz1 + //SEG908 [433] (byte) sprites_irq::ptr#0 ← (byte) irq_sprite_ptr#0 -- vbuxx=vbuz1 ldx irq_sprite_ptr - //SEG918 [440] if((byte) render_screen_showing#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto sprites_irq::@2 -- vbuz1_eq_0_then_la1 + //SEG909 [434] if((byte) render_screen_showing#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto sprites_irq::@2 -- vbuz1_eq_0_then_la1 lda render_screen_showing cmp #0 beq b2 jmp b8 - //SEG919 sprites_irq::@8 + //SEG910 sprites_irq::@8 b8: - //SEG920 [441] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0) ← (byte) sprites_irq::ptr#0 -- _deref_pbuc1=vbuxx + //SEG911 [435] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0) ← (byte) sprites_irq::ptr#0 -- _deref_pbuc1=vbuxx stx PLAYFIELD_SPRITE_PTRS_2 - //SEG921 [442] (byte) sprites_irq::ptr#3 ← ++ (byte) sprites_irq::ptr#0 -- vbuxx=_inc_vbuxx + //SEG912 [436] (byte) sprites_irq::ptr#3 ← ++ (byte) sprites_irq::ptr#0 -- vbuxx=_inc_vbuxx inx - //SEG922 [443] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte) sprites_irq::ptr#3 -- _deref_pbuc1=vbuxx + //SEG913 [437] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte) sprites_irq::ptr#3 -- _deref_pbuc1=vbuxx stx PLAYFIELD_SPRITE_PTRS_2+1 - //SEG923 [444] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte) sprites_irq::ptr#3 -- _deref_pbuc1=vbuxx + //SEG914 [438] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte) sprites_irq::ptr#3 -- _deref_pbuc1=vbuxx stx PLAYFIELD_SPRITE_PTRS_2+2 - //SEG924 [445] (byte) sprites_irq::ptr#4 ← ++ (byte) sprites_irq::ptr#3 -- vbuxx=_inc_vbuxx + //SEG915 [439] (byte) sprites_irq::ptr#4 ← ++ (byte) sprites_irq::ptr#3 -- vbuxx=_inc_vbuxx inx - //SEG925 [446] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte) sprites_irq::ptr#4 -- _deref_pbuc1=vbuxx + //SEG916 [440] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte) sprites_irq::ptr#4 -- _deref_pbuc1=vbuxx stx PLAYFIELD_SPRITE_PTRS_2+3 jmp b3 - //SEG926 sprites_irq::@3 + //SEG917 sprites_irq::@3 b3: - //SEG927 [447] (byte) irq_cnt#1 ← ++ (byte) irq_cnt#0 -- vbuz1=_inc_vbuz1 + //SEG918 [441] (byte) irq_cnt#1 ← ++ (byte) irq_cnt#0 -- vbuz1=_inc_vbuz1 inc irq_cnt - //SEG928 [448] if((byte) irq_cnt#1==(byte/signed byte/word/signed word/dword/signed dword) 10) goto sprites_irq::@4 -- vbuz1_eq_vbuc1_then_la1 + //SEG919 [442] if((byte) irq_cnt#1==(byte/signed byte/word/signed word/dword/signed dword) 10) goto sprites_irq::@4 -- vbuz1_eq_vbuc1_then_la1 lda irq_cnt cmp #$a beq b4 jmp b10 - //SEG929 sprites_irq::@10 + //SEG920 sprites_irq::@10 b10: - //SEG930 [449] (byte) irq_raster_next#2 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 -- vbuz1=vbuz1_plus_vbuc1 + //SEG921 [443] (byte) irq_raster_next#2 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 -- vbuz1=vbuz1_plus_vbuc1 lda #$15 clc adc irq_raster_next sta irq_raster_next - //SEG931 [450] (byte) irq_sprite_ypos#2 ← (byte) irq_sprite_ypos#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 -- vbuz1=vbuz1_plus_vbuc1 + //SEG922 [444] (byte) irq_sprite_ypos#2 ← (byte) irq_sprite_ypos#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 -- vbuz1=vbuz1_plus_vbuc1 lda #$15 clc adc irq_sprite_ypos sta irq_sprite_ypos - //SEG932 [451] (byte) irq_sprite_ptr#2 ← (byte) irq_sprite_ptr#0 + (byte/signed byte/word/signed word/dword/signed dword) 3 -- vbuz1=vbuz1_plus_vbuc1 + //SEG923 [445] (byte) irq_sprite_ptr#2 ← (byte) irq_sprite_ptr#0 + (byte/signed byte/word/signed word/dword/signed dword) 3 -- vbuz1=vbuz1_plus_vbuc1 lda #3 clc adc irq_sprite_ptr sta irq_sprite_ptr - //SEG933 [452] phi from sprites_irq::@10 sprites_irq::@13 to sprites_irq::@5 [phi:sprites_irq::@10/sprites_irq::@13->sprites_irq::@5] + //SEG924 [446] phi from sprites_irq::@10 sprites_irq::@13 to sprites_irq::@5 [phi:sprites_irq::@10/sprites_irq::@13->sprites_irq::@5] b5_from_b10: b5_from_b13: - //SEG934 [452] phi (byte) irq_raster_next#13 = (byte) irq_raster_next#2 [phi:sprites_irq::@10/sprites_irq::@13->sprites_irq::@5#0] -- register_copy + //SEG925 [446] phi (byte) irq_raster_next#13 = (byte) irq_raster_next#2 [phi:sprites_irq::@10/sprites_irq::@13->sprites_irq::@5#0] -- register_copy jmp b5 - //SEG935 sprites_irq::@5 + //SEG926 sprites_irq::@5 b5: - //SEG936 [453] (byte) sprites_irq::raster_next#0 ← (byte) irq_raster_next#13 -- vbuxx=vbuz1 + //SEG927 [447] (byte) sprites_irq::raster_next#0 ← (byte) irq_raster_next#13 -- vbuxx=vbuz1 ldx irq_raster_next - //SEG937 [454] (byte~) sprites_irq::$4 ← (byte) sprites_irq::raster_next#0 & (byte/signed byte/word/signed word/dword/signed dword) 7 -- vbuaa=vbuxx_band_vbuc1 + //SEG928 [448] (byte~) sprites_irq::$4 ← (byte) sprites_irq::raster_next#0 & (byte/signed byte/word/signed word/dword/signed dword) 7 -- vbuaa=vbuxx_band_vbuc1 txa and #7 - //SEG938 [455] if((byte~) sprites_irq::$4!=(byte/signed byte/word/signed word/dword/signed dword) 3) goto sprites_irq::@6 -- vbuaa_neq_vbuc1_then_la1 + //SEG929 [449] if((byte~) sprites_irq::$4!=(byte/signed byte/word/signed word/dword/signed dword) 3) goto sprites_irq::@6 -- vbuaa_neq_vbuc1_then_la1 cmp #3 bne b6_from_b5 jmp b12 - //SEG939 sprites_irq::@12 + //SEG930 sprites_irq::@12 b12: - //SEG940 [456] (byte) sprites_irq::raster_next#1 ← (byte) sprites_irq::raster_next#0 - (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuxx=vbuxx_minus_1 + //SEG931 [450] (byte) sprites_irq::raster_next#1 ← (byte) sprites_irq::raster_next#0 - (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuxx=vbuxx_minus_1 dex - //SEG941 [457] phi from sprites_irq::@12 sprites_irq::@5 to sprites_irq::@6 [phi:sprites_irq::@12/sprites_irq::@5->sprites_irq::@6] + //SEG932 [451] phi from sprites_irq::@12 sprites_irq::@5 to sprites_irq::@6 [phi:sprites_irq::@12/sprites_irq::@5->sprites_irq::@6] b6_from_b12: b6_from_b5: - //SEG942 [457] phi (byte) sprites_irq::raster_next#2 = (byte) sprites_irq::raster_next#1 [phi:sprites_irq::@12/sprites_irq::@5->sprites_irq::@6#0] -- register_copy + //SEG933 [451] phi (byte) sprites_irq::raster_next#2 = (byte) sprites_irq::raster_next#1 [phi:sprites_irq::@12/sprites_irq::@5->sprites_irq::@6#0] -- register_copy jmp b6 - //SEG943 sprites_irq::@6 + //SEG934 sprites_irq::@6 b6: - //SEG944 [458] *((const byte*) RASTER#0) ← (byte) sprites_irq::raster_next#2 -- _deref_pbuc1=vbuxx + //SEG935 [452] *((const byte*) RASTER#0) ← (byte) sprites_irq::raster_next#2 -- _deref_pbuc1=vbuxx stx RASTER - //SEG945 [459] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0 -- _deref_pbuc1=vbuc2 + //SEG936 [453] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0 -- _deref_pbuc1=vbuc2 lda #IRQ_RASTER sta IRQ_STATUS jmp breturn - //SEG946 sprites_irq::@return + //SEG937 sprites_irq::@return breturn: - //SEG947 [460] return - exit interrupt(HARDWARE_CLOBBER) + //SEG938 [454] return - exit interrupt(HARDWARE_CLOBBER) rega: lda #00 regx: ldx #00 rti - //SEG948 sprites_irq::@4 + //SEG939 sprites_irq::@4 b4: - //SEG949 [461] (byte) irq_cnt#14 ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- vbuz1=vbuc1 + //SEG940 [455] (byte) irq_cnt#14 ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- vbuz1=vbuc1 lda #0 sta irq_cnt - //SEG950 [462] (byte) irq_raster_next#1 ← (const byte) IRQ_RASTER_FIRST#0 -- vbuz1=vbuc1 + //SEG941 [456] (byte) irq_raster_next#1 ← (const byte) IRQ_RASTER_FIRST#0 -- vbuz1=vbuc1 lda #IRQ_RASTER_FIRST sta irq_raster_next - //SEG951 [463] (byte) irq_sprite_ypos#1 ← (byte/signed byte/word/signed word/dword/signed dword) 50 -- vbuz1=vbuc1 + //SEG942 [457] (byte) irq_sprite_ypos#1 ← (byte/signed byte/word/signed word/dword/signed dword) 50 -- vbuz1=vbuc1 lda #$32 sta irq_sprite_ypos - //SEG952 [464] phi from sprites_irq::@4 to sprites_irq::toSpritePtr2 [phi:sprites_irq::@4->sprites_irq::toSpritePtr2] + //SEG943 [458] phi from sprites_irq::@4 to sprites_irq::toSpritePtr2 [phi:sprites_irq::@4->sprites_irq::toSpritePtr2] toSpritePtr2_from_b4: jmp toSpritePtr2 - //SEG953 sprites_irq::toSpritePtr2 + //SEG944 sprites_irq::toSpritePtr2 toSpritePtr2: jmp b13 - //SEG954 sprites_irq::@13 + //SEG945 sprites_irq::@13 b13: - //SEG955 [465] (byte) irq_sprite_ptr#1 ← (const byte) sprites_irq::toSpritePtr2_return#0 -- vbuz1=vbuc1 + //SEG946 [459] (byte) irq_sprite_ptr#1 ← (const byte) sprites_irq::toSpritePtr2_return#0 -- vbuz1=vbuc1 lda #toSpritePtr2_return sta irq_sprite_ptr jmp b5_from_b13 - //SEG956 sprites_irq::@2 + //SEG947 sprites_irq::@2 b2: - //SEG957 [466] *((const byte*) PLAYFIELD_SPRITE_PTRS_1#0) ← (byte) sprites_irq::ptr#0 -- _deref_pbuc1=vbuxx + //SEG948 [460] *((const byte*) PLAYFIELD_SPRITE_PTRS_1#0) ← (byte) sprites_irq::ptr#0 -- _deref_pbuc1=vbuxx stx PLAYFIELD_SPRITE_PTRS_1 - //SEG958 [467] (byte) sprites_irq::ptr#1 ← ++ (byte) sprites_irq::ptr#0 -- vbuaa=_inc_vbuxx + //SEG949 [461] (byte) sprites_irq::ptr#1 ← ++ (byte) sprites_irq::ptr#0 -- vbuaa=_inc_vbuxx txa clc adc #1 - //SEG959 [468] *((const byte*) PLAYFIELD_SPRITE_PTRS_1#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte) sprites_irq::ptr#1 -- _deref_pbuc1=vbuaa + //SEG950 [462] *((const byte*) PLAYFIELD_SPRITE_PTRS_1#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte) sprites_irq::ptr#1 -- _deref_pbuc1=vbuaa sta PLAYFIELD_SPRITE_PTRS_1+1 - //SEG960 [469] *((const byte*) PLAYFIELD_SPRITE_PTRS_1#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte) sprites_irq::ptr#1 -- _deref_pbuc1=vbuaa + //SEG951 [463] *((const byte*) PLAYFIELD_SPRITE_PTRS_1#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte) sprites_irq::ptr#1 -- _deref_pbuc1=vbuaa sta PLAYFIELD_SPRITE_PTRS_1+2 - //SEG961 [470] (byte) sprites_irq::ptr#2 ← ++ (byte) sprites_irq::ptr#1 -- vbuaa=_inc_vbuaa + //SEG952 [464] (byte) sprites_irq::ptr#2 ← ++ (byte) sprites_irq::ptr#1 -- vbuaa=_inc_vbuaa clc adc #1 - //SEG962 [471] *((const byte*) PLAYFIELD_SPRITE_PTRS_1#0+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte) sprites_irq::ptr#2 -- _deref_pbuc1=vbuaa + //SEG953 [465] *((const byte*) PLAYFIELD_SPRITE_PTRS_1#0+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte) sprites_irq::ptr#2 -- _deref_pbuc1=vbuaa sta PLAYFIELD_SPRITE_PTRS_1+3 jmp b3 } @@ -15593,14 +15426,18 @@ sprites_irq: { .import binary "playfield-screen.imap" .pc = PLAYFIELD_SCREEN_ORIGINAL "PLAYFIELD_SCREEN_ORIGINAL" - .import binary "playfield-screen.iscr" + // 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_EXTENDED_ORIGINAL "PLAYFIELD_EXTENDED_ORIGINAL" - .import binary "playfield-extended.col" - .pc = PLAYFIELD_SPRITES "PLAYFIELD_SPRITES" .var sprites = LoadPicture("playfield-sprites.png", List().add($010101, $000000)) .for(var sy=0;sy<10;sy++) { @@ -15786,6 +15623,7 @@ Removing instruction lda SPRITES_MC Removing instruction lda SPRITES_EXPAND_Y Removing instruction lda #BLACK Removing instruction ldy #0 +Removing instruction ldy #0 Succesful ASM optimization Pass5UnnecesaryLoadElimination Replacing label b1 with b4 Replacing label b1_from_b28 with b4 @@ -16098,7 +15936,6 @@ Removing instruction b17: Succesful ASM optimization Pass5UnusedLabelElimination Removing unreachable instruction jmp b3 Succesful ASM optimization Pass5UnreachableCodeElimination -Fixing long branch [1124] bne b1 to beq FINAL SYMBOL TABLE (label) @14 @@ -16296,8 +16133,6 @@ FINAL SYMBOL TABLE (const byte*) PLAYFIELD_COLORS_ORIGINAL#0 PLAYFIELD_COLORS_ORIGINAL = ((byte*))(word/signed word/dword/signed dword) 7168 (byte) PLAYFIELD_COLS (const byte) PLAYFIELD_COLS#0 PLAYFIELD_COLS = (byte/signed byte/word/signed word/dword/signed dword) 10 -(byte*) PLAYFIELD_EXTENDED_ORIGINAL -(const byte*) PLAYFIELD_EXTENDED_ORIGINAL#0 PLAYFIELD_EXTENDED_ORIGINAL = ((byte*))(word/signed word/dword/signed dword) 5120 (byte) PLAYFIELD_LINES (const byte) PLAYFIELD_LINES#0 PLAYFIELD_LINES = (byte/signed byte/word/signed word/dword/signed dword) 22 (byte*) PLAYFIELD_SCREEN_1 @@ -16446,22 +16281,22 @@ FINAL SYMBOL TABLE (byte~) current_ypos#85 reg byte y 4.4 (byte) current_ypos#9 reg byte y 15.0 (byte) irq_cnt -(byte) irq_cnt#0 irq_cnt zp ZP_BYTE:31 0.2 -(byte) irq_cnt#1 irq_cnt zp ZP_BYTE:31 4.0 -(byte) irq_cnt#14 irq_cnt zp ZP_BYTE:31 20.0 +(byte) irq_cnt#0 irq_cnt zp ZP_BYTE:29 0.2 +(byte) irq_cnt#1 irq_cnt zp ZP_BYTE:29 4.0 +(byte) irq_cnt#14 irq_cnt zp ZP_BYTE:29 20.0 (byte) irq_raster_next -(byte) irq_raster_next#0 irq_raster_next zp ZP_BYTE:27 0.18181818181818182 -(byte) irq_raster_next#1 irq_raster_next zp ZP_BYTE:27 1.0 -(byte) irq_raster_next#13 irq_raster_next zp ZP_BYTE:27 6.0 -(byte) irq_raster_next#2 irq_raster_next zp ZP_BYTE:27 1.3333333333333333 +(byte) irq_raster_next#0 irq_raster_next zp ZP_BYTE:25 0.18181818181818182 +(byte) irq_raster_next#1 irq_raster_next zp ZP_BYTE:25 1.0 +(byte) irq_raster_next#13 irq_raster_next zp ZP_BYTE:25 6.0 +(byte) irq_raster_next#2 irq_raster_next zp ZP_BYTE:25 1.3333333333333333 (byte) irq_sprite_ptr -(byte) irq_sprite_ptr#0 irq_sprite_ptr zp ZP_BYTE:30 0.25 -(byte) irq_sprite_ptr#1 irq_sprite_ptr zp ZP_BYTE:30 20.0 -(byte) irq_sprite_ptr#2 irq_sprite_ptr zp ZP_BYTE:30 20.0 +(byte) irq_sprite_ptr#0 irq_sprite_ptr zp ZP_BYTE:28 0.25 +(byte) irq_sprite_ptr#1 irq_sprite_ptr zp ZP_BYTE:28 20.0 +(byte) irq_sprite_ptr#2 irq_sprite_ptr zp ZP_BYTE:28 20.0 (byte) irq_sprite_ypos -(byte) irq_sprite_ypos#0 irq_sprite_ypos zp ZP_BYTE:29 0.7391304347826086 -(byte) irq_sprite_ypos#1 irq_sprite_ypos zp ZP_BYTE:29 20.0 -(byte) irq_sprite_ypos#2 irq_sprite_ypos zp ZP_BYTE:29 20.0 +(byte) irq_sprite_ypos#0 irq_sprite_ypos zp ZP_BYTE:27 0.7391304347826086 +(byte) irq_sprite_ypos#1 irq_sprite_ypos zp ZP_BYTE:27 20.0 +(byte) irq_sprite_ypos#2 irq_sprite_ypos zp ZP_BYTE:27 20.0 (byte[]) keyboard_char_keycodes (byte()) keyboard_event_get() (label) keyboard_event_get::@3 @@ -16592,8 +16427,8 @@ FINAL SYMBOL TABLE (byte) main::key_event (byte) main::key_event#0 key_event zp ZP_BYTE:13 36.72727272727273 (byte) main::render -(byte) main::render#1 render zp ZP_BYTE:32 40.4 -(byte) main::render#2 render zp ZP_BYTE:32 40.4 +(byte) main::render#1 render zp ZP_BYTE:30 40.4 +(byte) main::render#2 render zp ZP_BYTE:30 40.4 (byte) main::render#3 reg byte a 202.0 (byte()) play_collision((byte) play_collision::xpos , (byte) play_collision::ypos , (byte) play_collision::orientation) (byte~) play_collision::$7 reg byte a 20002.0 @@ -16616,7 +16451,7 @@ FINAL SYMBOL TABLE (byte) play_collision::col#2 col zp ZP_BYTE:12 6375.75 (byte~) play_collision::col#9 col zp ZP_BYTE:12 2002.0 (byte) play_collision::i -(byte) play_collision::i#1 i zp ZP_BYTE:33 1615.6153846153845 +(byte) play_collision::i#1 i zp ZP_BYTE:31 1615.6153846153845 (byte~) play_collision::i#11 i#11 zp ZP_BYTE:11 2002.0 (byte~) play_collision::i#13 i#13 zp ZP_BYTE:11 20002.0 (byte) play_collision::i#2 i#2 zp ZP_BYTE:11 15502.0 @@ -16904,8 +16739,6 @@ FINAL SYMBOL TABLE (byte*) render_playfield::screen_line#1 screen_line zp ZP_WORD:7 500.5 (byte*) render_playfield::screen_line#2 screen_line zp ZP_WORD:7 1552.0 (void()) render_screen_original((byte*) render_screen_original::screen) -(byte~) render_screen_original::$10 reg byte a 202.0 -(byte/signed word/word/dword/signed dword~) render_screen_original::$8 reg byte a 202.0 (label) render_screen_original::@1 (label) render_screen_original::@2 (label) render_screen_original::@3 @@ -16914,49 +16747,41 @@ FINAL SYMBOL TABLE (label) render_screen_original::@return (byte) render_screen_original::SPACE (const byte) render_screen_original::SPACE#0 SPACE = (byte/signed byte/word/signed word/dword/signed dword) 0 -(byte) render_screen_original::c -(byte) render_screen_original::c#0 c zp ZP_BYTE:3 40.4 (byte*) render_screen_original::cols -(byte*) render_screen_original::cols#1 cols zp ZP_WORD:25 101.0 -(byte*) render_screen_original::cols#2 cols zp ZP_WORD:25 75.75 -(byte*) render_screen_original::cols#3 cols zp ZP_WORD:25 42.599999999999994 -(byte*) render_screen_original::cols#4 cols zp ZP_WORD:25 78.5 -(byte*) render_screen_original::cols#5 cols zp ZP_WORD:25 40.4 -(byte*) render_screen_original::cols#6 cols zp ZP_WORD:25 101.0 -(byte*) render_screen_original::cols#7 cols zp ZP_WORD:25 22.0 -(byte) render_screen_original::ext -(byte) render_screen_original::ext#0 reg byte a 101.0 +(byte*) render_screen_original::cols#1 cols zp ZP_WORD:23 101.0 +(byte*) render_screen_original::cols#2 cols zp ZP_WORD:23 75.75 +(byte*) render_screen_original::cols#3 cols zp ZP_WORD:23 42.599999999999994 +(byte*) render_screen_original::cols#4 cols zp ZP_WORD:23 78.5 +(byte*) render_screen_original::cols#5 cols zp ZP_WORD:23 80.8 +(byte*) render_screen_original::cols#6 cols zp ZP_WORD:23 101.0 +(byte*) render_screen_original::cols#7 cols zp ZP_WORD:23 22.0 (byte*) render_screen_original::ocols -(byte*) render_screen_original::ocols#1 ocols zp ZP_WORD:18 17.75 -(byte*) render_screen_original::ocols#2 ocols zp ZP_WORD:18 36.72727272727273 -(byte*) render_screen_original::ocols#4 ocols zp ZP_WORD:18 14.0 -(byte*) render_screen_original::oext -(byte*) render_screen_original::oext#1 oext zp ZP_WORD:15 11.833333333333332 -(byte*) render_screen_original::oext#2 oext zp ZP_WORD:15 80.8 -(byte*) render_screen_original::oext#4 oext zp ZP_WORD:15 14.0 +(byte*) render_screen_original::ocols#1 ocols zp ZP_WORD:15 17.75 +(byte*) render_screen_original::ocols#2 ocols zp ZP_WORD:15 67.33333333333333 +(byte*) render_screen_original::ocols#4 ocols zp ZP_WORD:15 14.0 (byte*) render_screen_original::oscr -(byte*) render_screen_original::oscr#1 oscr zp ZP_WORD:7 10.142857142857142 -(byte*) render_screen_original::oscr#2 oscr zp ZP_WORD:7 202.0 +(byte*) render_screen_original::oscr#1 oscr zp ZP_WORD:7 14.2 +(byte*) render_screen_original::oscr#2 oscr zp ZP_WORD:7 134.66666666666666 (byte*) render_screen_original::oscr#4 oscr zp ZP_WORD:7 14.0 (byte*) render_screen_original::screen -(byte*) render_screen_original::screen#10 screen zp ZP_WORD:23 30.42857142857143 -(byte*) render_screen_original::screen#2 screen zp ZP_WORD:23 60.599999999999994 -(byte*) render_screen_original::screen#3 screen zp ZP_WORD:23 50.5 -(byte*) render_screen_original::screen#5 screen zp ZP_WORD:23 157.0 -(byte*) render_screen_original::screen#6 screen zp ZP_WORD:23 50.5 -(byte*) render_screen_original::screen#7 screen zp ZP_WORD:23 202.0 -(byte*) render_screen_original::screen#8 screen zp ZP_WORD:23 24.0 -(byte*) render_screen_original::screen#9 screen zp ZP_WORD:23 2.0 +(byte*) render_screen_original::screen#10 screen zp ZP_WORD:18 30.42857142857143 +(byte*) render_screen_original::screen#2 screen zp ZP_WORD:18 60.599999999999994 +(byte*) render_screen_original::screen#3 screen zp ZP_WORD:18 43.285714285714285 +(byte*) render_screen_original::screen#5 screen zp ZP_WORD:18 157.0 +(byte*) render_screen_original::screen#6 screen zp ZP_WORD:18 202.0 +(byte*) render_screen_original::screen#7 screen zp ZP_WORD:18 202.0 +(byte*) render_screen_original::screen#8 screen zp ZP_WORD:18 24.0 +(byte*) render_screen_original::screen#9 screen zp ZP_WORD:18 2.0 (byte) render_screen_original::x (byte) render_screen_original::x#1 reg byte x 202.0 (byte) render_screen_original::x#2 reg byte x 202.0 (byte) render_screen_original::x#3 reg byte x 151.5 (byte) render_screen_original::x#4 reg byte x 40.4 -(byte) render_screen_original::x#5 reg byte x 25.25 +(byte) render_screen_original::x#5 reg byte x 43.285714285714285 (byte) render_screen_original::x#6 reg byte x 60.599999999999994 (byte) render_screen_original::y (byte) render_screen_original::y#1 y zp ZP_BYTE:2 16.5 -(byte) render_screen_original::y#6 y zp ZP_BYTE:2 0.7586206896551724 +(byte) render_screen_original::y#6 y zp ZP_BYTE:2 0.9166666666666666 (byte) render_screen_render (byte) render_screen_render#11 render_screen_render zp ZP_BYTE:3 3.25 (byte) render_screen_render#16 render_screen_render zp ZP_BYTE:3 1.0 @@ -16968,8 +16793,8 @@ FINAL SYMBOL TABLE (byte) render_screen_show#13 render_screen_show zp ZP_BYTE:2 4.333333333333333 (byte) render_screen_show#16 render_screen_show zp ZP_BYTE:2 0.39534883720930225 (byte) render_screen_showing -(byte) render_screen_showing#0 render_screen_showing zp ZP_BYTE:28 0.5714285714285714 -(byte) render_screen_showing#1 render_screen_showing zp ZP_BYTE:28 20.0 +(byte) render_screen_showing#0 render_screen_showing zp ZP_BYTE:26 0.5714285714285714 +(byte) render_screen_showing#1 render_screen_showing zp ZP_BYTE:26 20.0 (void()) render_screen_swap() (label) render_screen_swap::@return (void()) render_show() @@ -17071,7 +16896,7 @@ interrupt(HARDWARE_CLOBBER)(void()) sprites_irq() (byte*) toSpritePtr1_sprite zp ZP_BYTE:2 [ render_screen_show#16 render_screen_show#13 play_init::idx#2 play_init::idx#1 sprites_init::xpos#2 sprites_init::xpos#1 render_screen_original::y#6 render_screen_original::y#1 ] -zp ZP_BYTE:3 [ render_screen_render#16 render_screen_render#11 render_screen_original::c#0 ] +zp ZP_BYTE:3 [ render_screen_render#16 render_screen_render#11 ] zp ZP_BYTE:4 [ current_movedown_counter#12 current_movedown_counter#10 current_movedown_counter#1 play_remove_lines::y#8 play_remove_lines::y#1 play_lock_current::l#6 play_lock_current::l#1 play_spawn_current::$3 ] reg byte y [ current_ypos#9 current_ypos#84 current_ypos#85 ] zp ZP_BYTE:5 [ render_screen_render#28 render_screen_render#62 render_playfield::l#2 render_playfield::l#1 play_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#2 play_remove_lines::x#2 play_remove_lines::x#1 play_lock_current::i#2 play_lock_current::i#3 play_lock_current::i#7 play_lock_current::i#9 keyboard_event_pressed::keycode#5 keyboard_event_scan::row#2 keyboard_event_scan::row#1 ] @@ -17092,9 +16917,9 @@ reg byte a [ play_collision::return#14 ] reg byte a [ play_move_leftright::return#1 ] reg byte x [ play_move_down::movedown#6 play_move_down::movedown#3 play_move_down::movedown#7 play_move_down::movedown#2 play_move_down::movedown#10 ] zp ZP_BYTE:14 [ current_ypos#29 current_ypos#21 current_ypos#18 current_ypos#13 current_ypos#0 play_lock_current::ypos2#2 play_lock_current::ypos2#0 play_lock_current::ypos2#1 ] -zp ZP_WORD:15 [ current_piece#20 current_piece#78 current_piece#16 current_piece#71 current_piece#10 render_init::li_2#2 render_init::li_2#1 render_screen_original::oext#2 render_screen_original::oext#4 render_screen_original::oext#1 ] +zp ZP_WORD:15 [ current_piece#20 current_piece#78 current_piece#16 current_piece#71 current_piece#10 render_init::li_2#2 render_init::li_2#1 render_screen_original::ocols#2 render_screen_original::ocols#4 render_screen_original::ocols#1 ] zp ZP_BYTE:17 [ current_orientation#29 current_orientation#10 current_orientation#19 current_orientation#4 current_orientation#14 ] -zp ZP_WORD:18 [ current_piece_gfx#26 current_piece_gfx#20 current_piece_gfx#16 current_piece_gfx#14 current_piece_gfx#3 current_piece_gfx#1 render_screen_original::ocols#2 render_screen_original::ocols#4 render_screen_original::ocols#1 ] +zp ZP_WORD:18 [ current_piece_gfx#26 current_piece_gfx#20 current_piece_gfx#16 current_piece_gfx#14 current_piece_gfx#3 current_piece_gfx#1 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 ] zp ZP_BYTE:20 [ current_xpos#33 current_xpos#10 current_xpos#23 current_xpos#19 current_xpos#4 current_xpos#1 current_xpos#2 ] zp ZP_BYTE:21 [ current_piece_char#20 current_piece_char#15 current_piece_char#12 current_piece_char#1 ] reg byte x [ play_move_down::return#2 ] @@ -17110,20 +16935,19 @@ reg byte a [ render_show::d018val#3 ] reg byte x [ play_init::j#2 play_init::j#1 ] reg byte x [ sprites_init::s#2 sprites_init::s#1 ] reg byte x [ render_init::i#2 render_init::i#1 ] -zp ZP_WORD:23 [ 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 render_current::screen_line#0 play_collision::playfield_line#0 ] -zp ZP_WORD:25 [ 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 ZP_WORD:23 [ 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 render_current::screen_line#0 play_collision::playfield_line#0 ] 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 ZP_BYTE:27 [ irq_raster_next#13 irq_raster_next#2 irq_raster_next#1 irq_raster_next#0 ] +zp ZP_BYTE:25 [ irq_raster_next#13 irq_raster_next#2 irq_raster_next#1 irq_raster_next#0 ] reg byte x [ sprites_irq::raster_next#2 sprites_irq::raster_next#1 sprites_irq::raster_next#0 ] -zp ZP_BYTE:28 [ render_screen_showing#0 render_screen_showing#1 ] -zp ZP_BYTE:29 [ irq_sprite_ypos#0 irq_sprite_ypos#2 irq_sprite_ypos#1 ] -zp ZP_BYTE:30 [ irq_sprite_ptr#0 irq_sprite_ptr#2 irq_sprite_ptr#1 ] -zp ZP_BYTE:31 [ irq_cnt#0 irq_cnt#1 irq_cnt#14 ] +zp ZP_BYTE:26 [ render_screen_showing#0 render_screen_showing#1 ] +zp ZP_BYTE:27 [ irq_sprite_ypos#0 irq_sprite_ypos#2 irq_sprite_ypos#1 ] +zp ZP_BYTE:28 [ irq_sprite_ptr#0 irq_sprite_ptr#2 irq_sprite_ptr#1 ] +zp ZP_BYTE:29 [ irq_cnt#0 irq_cnt#1 irq_cnt#14 ] reg byte a [ keyboard_event_get::return#3 ] reg byte a [ play_move_down::key_event#0 ] reg byte a [ play_move_down::return#3 ] reg byte a [ main::$12 ] -zp ZP_BYTE:32 [ main::render#1 main::render#2 ] +zp ZP_BYTE:30 [ main::render#1 main::render#2 ] reg byte a [ play_move_leftright::key_event#0 ] reg byte a [ play_move_leftright::return#4 ] reg byte a [ main::$13 ] @@ -17139,7 +16963,7 @@ reg byte a [ play_move_rotate::$2 ] reg byte a [ play_collision::return#13 ] reg byte a [ play_move_rotate::$6 ] reg byte a [ play_move_rotate::$4 ] -zp ZP_BYTE:33 [ play_collision::i#1 ] +zp ZP_BYTE:31 [ play_collision::i#1 ] reg byte a [ play_collision::$7 ] reg byte a [ play_collision::return#12 ] reg byte a [ play_move_leftright::$4 ] @@ -17175,9 +16999,6 @@ reg byte a [ play_init::$1 ] reg byte a [ sprites_init::s2#0 ] reg byte a [ render_init::$13 ] reg byte a [ render_init::$14 ] -reg byte a [ render_screen_original::$8 ] -reg byte a [ render_screen_original::ext#0 ] -reg byte a [ render_screen_original::$10 ] reg byte a [ sprites_irq::ypos#0 ] reg byte x [ sprites_irq::ptr#0 ] reg byte x [ sprites_irq::ptr#3 ] @@ -17188,7 +17009,7 @@ reg byte a [ sprites_irq::ptr#2 ] FINAL ASSEMBLER -Score: 3214623 +Score: 3209437 //SEG0 Basic Upstart .pc = $801 "Basic" @@ -17255,7 +17076,6 @@ Score: 3214623 .label PLAYFIELD_SCREEN_2 = $2c00 .label PLAYFIELD_SCREEN_ORIGINAL = $1800 .label PLAYFIELD_COLORS_ORIGINAL = $1c00 - .label PLAYFIELD_EXTENDED_ORIGINAL = $1400 .label PLAYFIELD_SPRITES = $2000 .label PLAYFIELD_CHARSET = $2800 .const PLAYFIELD_LINES = $16 @@ -17272,11 +17092,11 @@ Score: 3214623 .label PLAYFIELD_SPRITE_PTRS_2 = PLAYFIELD_SCREEN_2+SPRITE_PTRS .const toSpritePtr1_return = PLAYFIELD_SPRITES>>6 .label keyboard_events_size = $16 - .label render_screen_showing = $1c - .label irq_raster_next = $1b - .label irq_sprite_ypos = $1d - .label irq_sprite_ptr = $1e - .label irq_cnt = $1f + .label render_screen_showing = $1a + .label irq_raster_next = $19 + .label irq_sprite_ypos = $1b + .label irq_sprite_ptr = $1c + .label irq_cnt = $1d .label current_movedown_counter = 4 .label current_ypos = $e .label current_piece_gfx = $12 @@ -17306,256 +17126,255 @@ bbegin: lda #0 sta render_screen_showing //SEG5 kickasm(location (const byte*) PLAYFIELD_CHARSET#0) {{ .fill 8,$00 // Place a filled char at the start of the charset .import binary "playfield-screen.imap" }} -//SEG6 kickasm(location (const byte*) PLAYFIELD_SCREEN_ORIGINAL#0) {{ .import binary "playfield-screen.iscr" }} +//SEG6 kickasm(location (const byte*) PLAYFIELD_SCREEN_ORIGINAL#0) {{ // 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 ) }} //SEG7 kickasm(location (const byte*) PLAYFIELD_COLORS_ORIGINAL#0) {{ .import binary "playfield-screen.col" }} -//SEG8 kickasm(location (const byte*) PLAYFIELD_EXTENDED_ORIGINAL#0) {{ .import binary "playfield-extended.col" }} -//SEG9 @20 -//SEG10 kickasm(location (const byte*) PLAYFIELD_SPRITES#0) {{ .var sprites = LoadPicture("playfield-sprites.png", List().add($010101, $000000)) .for(var sy=0;sy<10;sy++) { .for(var sx=0;sx<3;sx++) { .for (var y=0;y<21; y++) { .for (var c=0; c<3; c++) { .byte sprites.getSinglecolorByte(sx*3+c,sy*21+y) } } .byte 0 } } }} -//SEG11 @21 -//SEG12 [7] (byte) irq_raster_next#0 ← (const byte) IRQ_RASTER_FIRST#0 -- vbuz1=vbuc1 +//SEG8 @20 +//SEG9 kickasm(location (const byte*) PLAYFIELD_SPRITES#0) {{ .var sprites = LoadPicture("playfield-sprites.png", List().add($010101, $000000)) .for(var sy=0;sy<10;sy++) { .for(var sx=0;sx<3;sx++) { .for (var y=0;y<21; y++) { .for (var c=0; c<3; c++) { .byte sprites.getSinglecolorByte(sx*3+c,sy*21+y) } } .byte 0 } } }} +//SEG10 @21 +//SEG11 [6] (byte) irq_raster_next#0 ← (const byte) IRQ_RASTER_FIRST#0 -- vbuz1=vbuc1 lda #IRQ_RASTER_FIRST sta irq_raster_next -//SEG13 [8] (byte) irq_sprite_ypos#0 ← (byte/signed byte/word/signed word/dword/signed dword) 50 -- vbuz1=vbuc1 +//SEG12 [7] (byte) irq_sprite_ypos#0 ← (byte/signed byte/word/signed word/dword/signed dword) 50 -- vbuz1=vbuc1 lda #$32 sta irq_sprite_ypos -//SEG14 [9] phi from @21 to toSpritePtr1 [phi:@21->toSpritePtr1] -//SEG15 toSpritePtr1 -//SEG16 @33 -//SEG17 [10] (byte) irq_sprite_ptr#0 ← (const byte) toSpritePtr1_return#0 -- vbuz1=vbuc1 +//SEG13 [8] phi from @21 to toSpritePtr1 [phi:@21->toSpritePtr1] +//SEG14 toSpritePtr1 +//SEG15 @33 +//SEG16 [9] (byte) irq_sprite_ptr#0 ← (const byte) toSpritePtr1_return#0 -- vbuz1=vbuc1 lda #toSpritePtr1_return sta irq_sprite_ptr -//SEG18 [11] (byte) irq_cnt#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- vbuz1=vbuc1 +//SEG17 [10] (byte) irq_cnt#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- vbuz1=vbuc1 lda #0 sta irq_cnt -//SEG19 [12] phi from @33 to @32 [phi:@33->@32] -//SEG20 @32 -//SEG21 [13] call main -//SEG22 [15] phi from @32 to main [phi:@32->main] +//SEG18 [11] phi from @33 to @32 [phi:@33->@32] +//SEG19 @32 +//SEG20 [12] call main +//SEG21 [14] phi from @32 to main [phi:@32->main] jsr main -//SEG23 [14] phi from @32 to @end [phi:@32->@end] -//SEG24 @end -//SEG25 main +//SEG22 [13] phi from @32 to @end [phi:@32->@end] +//SEG23 @end +//SEG24 main main: { .label key_event = $d - .label render = $20 - //SEG26 [16] call sid_rnd_init + .label render = $1e + //SEG25 [15] call sid_rnd_init jsr sid_rnd_init - //SEG27 main::@15 - //SEG28 asm { sei } + //SEG26 main::@15 + //SEG27 asm { sei } sei - //SEG29 [18] call render_init - //SEG30 [374] phi from main::@15 to render_init [phi:main::@15->render_init] + //SEG28 [17] call render_init + //SEG29 [373] phi from main::@15 to render_init [phi:main::@15->render_init] jsr render_init - //SEG31 [19] phi from main::@15 to main::@16 [phi:main::@15->main::@16] - //SEG32 main::@16 - //SEG33 [20] call sprites_init + //SEG30 [18] phi from main::@15 to main::@16 [phi:main::@15->main::@16] + //SEG31 main::@16 + //SEG32 [19] call sprites_init jsr sprites_init - //SEG34 [21] phi from main::@16 to main::@17 [phi:main::@16->main::@17] - //SEG35 main::@17 - //SEG36 [22] call sprites_irq_init + //SEG33 [20] phi from main::@16 to main::@17 [phi:main::@16->main::@17] + //SEG34 main::@17 + //SEG35 [21] call sprites_irq_init jsr sprites_irq_init - //SEG37 [23] phi from main::@17 to main::@18 [phi:main::@17->main::@18] - //SEG38 main::@18 - //SEG39 [24] call play_init - //SEG40 [339] phi from main::@18 to play_init [phi:main::@18->play_init] + //SEG36 [22] phi from main::@17 to main::@18 [phi:main::@17->main::@18] + //SEG37 main::@18 + //SEG38 [23] call play_init + //SEG39 [338] phi from main::@18 to play_init [phi:main::@18->play_init] jsr play_init - //SEG41 [25] phi from main::@18 to main::@19 [phi:main::@18->main::@19] - //SEG42 main::@19 - //SEG43 [26] call play_spawn_current - //SEG44 [210] phi from main::@19 to play_spawn_current [phi:main::@19->play_spawn_current] + //SEG40 [24] phi from main::@18 to main::@19 [phi:main::@18->main::@19] + //SEG41 main::@19 + //SEG42 [25] call play_spawn_current + //SEG43 [209] phi from main::@19 to play_spawn_current [phi:main::@19->play_spawn_current] jsr play_spawn_current - //SEG45 [27] phi from main::@19 to main::@20 [phi:main::@19->main::@20] - //SEG46 main::@20 - //SEG47 [28] call render_playfield - //SEG48 [97] phi from main::@20 to render_playfield [phi:main::@20->render_playfield] - //SEG49 [97] phi (byte) render_screen_render#19 = (byte/signed byte/word/signed word/dword/signed dword) 64 [phi:main::@20->render_playfield#0] -- vbuxx=vbuc1 + //SEG44 [26] phi from main::@19 to main::@20 [phi:main::@19->main::@20] + //SEG45 main::@20 + //SEG46 [27] call render_playfield + //SEG47 [96] phi from main::@20 to render_playfield [phi:main::@20->render_playfield] + //SEG48 [96] phi (byte) render_screen_render#19 = (byte/signed byte/word/signed word/dword/signed dword) 64 [phi:main::@20->render_playfield#0] -- vbuxx=vbuc1 ldx #$40 jsr render_playfield - //SEG50 main::@21 - //SEG51 [29] (byte~) current_ypos#84 ← (byte) current_ypos#18 -- vbuyy=vbuz1 + //SEG49 main::@21 + //SEG50 [28] (byte~) current_ypos#84 ← (byte) current_ypos#18 -- vbuyy=vbuz1 ldy current_ypos - //SEG52 [30] (byte~) current_xpos#110 ← (byte) current_xpos#23 -- vbuz1=vbuz2 + //SEG51 [29] (byte~) current_xpos#110 ← (byte) current_xpos#23 -- vbuz1=vbuz2 lda current_xpos sta current_xpos_110 - //SEG53 [31] (byte*~) current_piece_gfx#100 ← (byte*) current_piece_gfx#16 -- pbuz1=pbuz2 + //SEG52 [30] (byte*~) current_piece_gfx#100 ← (byte*) current_piece_gfx#16 -- pbuz1=pbuz2 lda current_piece_gfx sta current_piece_gfx_100 lda current_piece_gfx+1 sta current_piece_gfx_100+1 - //SEG54 [32] (byte~) current_piece_char#88 ← (byte) current_piece_char#12 -- vbuxx=vbuz1 + //SEG53 [31] (byte~) current_piece_char#88 ← (byte) current_piece_char#12 -- vbuxx=vbuz1 ldx current_piece_char - //SEG55 [33] call render_current - //SEG56 [74] phi from main::@21 to render_current [phi:main::@21->render_current] - //SEG57 [74] phi (byte) current_piece_char#63 = (byte~) current_piece_char#88 [phi:main::@21->render_current#0] -- register_copy - //SEG58 [74] phi (byte*) current_piece_gfx#53 = (byte*~) current_piece_gfx#100 [phi:main::@21->render_current#1] -- register_copy - //SEG59 [74] phi (byte) current_xpos#47 = (byte~) current_xpos#110 [phi:main::@21->render_current#2] -- register_copy - //SEG60 [74] phi (byte) render_screen_render#28 = (byte/signed byte/word/signed word/dword/signed dword) 64 [phi:main::@21->render_current#3] -- vbuz1=vbuc1 + //SEG54 [32] call render_current + //SEG55 [73] phi from main::@21 to render_current [phi:main::@21->render_current] + //SEG56 [73] phi (byte) current_piece_char#63 = (byte~) current_piece_char#88 [phi:main::@21->render_current#0] -- register_copy + //SEG57 [73] phi (byte*) current_piece_gfx#53 = (byte*~) current_piece_gfx#100 [phi:main::@21->render_current#1] -- register_copy + //SEG58 [73] phi (byte) current_xpos#47 = (byte~) current_xpos#110 [phi:main::@21->render_current#2] -- register_copy + //SEG59 [73] phi (byte) render_screen_render#28 = (byte/signed byte/word/signed word/dword/signed dword) 64 [phi:main::@21->render_current#3] -- vbuz1=vbuc1 lda #$40 sta render_screen_render_28 - //SEG61 [74] phi (byte) current_ypos#9 = (byte~) current_ypos#84 [phi:main::@21->render_current#4] -- register_copy + //SEG60 [73] phi (byte) current_ypos#9 = (byte~) current_ypos#84 [phi:main::@21->render_current#4] -- register_copy jsr render_current - //SEG62 [34] (byte*~) current_piece#71 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) -- pbuz1=pptc1_derefidx_vbuz2 + //SEG61 [33] (byte*~) current_piece#71 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) -- pbuz1=pptc1_derefidx_vbuz2 ldy play_spawn_current._3 lda PIECES,y sta current_piece lda PIECES+1,y sta current_piece+1 - //SEG63 [35] phi from main::@21 to main::@1 [phi:main::@21->main::@1] - //SEG64 [35] phi (byte) current_movedown_counter#12 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@21->main::@1#0] -- vbuz1=vbuc1 + //SEG62 [34] phi from main::@21 to main::@1 [phi:main::@21->main::@1] + //SEG63 [34] phi (byte) current_movedown_counter#12 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@21->main::@1#0] -- vbuz1=vbuc1 lda #0 sta current_movedown_counter - //SEG65 [35] phi (byte) keyboard_events_size#19 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@21->main::@1#1] -- vbuz1=vbuc1 + //SEG64 [34] phi (byte) keyboard_events_size#19 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@21->main::@1#1] -- vbuz1=vbuc1 sta keyboard_events_size - //SEG66 [35] phi (byte) current_piece_char#15 = (byte) current_piece_char#12 [phi:main::@21->main::@1#2] -- register_copy - //SEG67 [35] phi (byte) current_ypos#21 = (byte) current_ypos#18 [phi:main::@21->main::@1#3] -- register_copy - //SEG68 [35] phi (byte) current_xpos#10 = (byte) current_xpos#23 [phi:main::@21->main::@1#4] -- register_copy - //SEG69 [35] phi (byte*) current_piece_gfx#20 = (byte*) current_piece_gfx#16 [phi:main::@21->main::@1#5] -- register_copy - //SEG70 [35] phi (byte) current_orientation#10 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@21->main::@1#6] -- vbuz1=vbuc1 + //SEG65 [34] phi (byte) current_piece_char#15 = (byte) current_piece_char#12 [phi:main::@21->main::@1#2] -- register_copy + //SEG66 [34] phi (byte) current_ypos#21 = (byte) current_ypos#18 [phi:main::@21->main::@1#3] -- register_copy + //SEG67 [34] phi (byte) current_xpos#10 = (byte) current_xpos#23 [phi:main::@21->main::@1#4] -- register_copy + //SEG68 [34] phi (byte*) current_piece_gfx#20 = (byte*) current_piece_gfx#16 [phi:main::@21->main::@1#5] -- register_copy + //SEG69 [34] phi (byte) current_orientation#10 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@21->main::@1#6] -- vbuz1=vbuc1 sta current_orientation - //SEG71 [35] phi (byte*) current_piece#16 = (byte*~) current_piece#71 [phi:main::@21->main::@1#7] -- register_copy - //SEG72 [35] phi (byte) render_screen_render#16 = (byte/signed byte/word/signed word/dword/signed dword) 64 [phi:main::@21->main::@1#8] -- vbuz1=vbuc1 + //SEG70 [34] phi (byte*) current_piece#16 = (byte*~) current_piece#71 [phi:main::@21->main::@1#7] -- register_copy + //SEG71 [34] phi (byte) render_screen_render#16 = (byte/signed byte/word/signed word/dword/signed dword) 64 [phi:main::@21->main::@1#8] -- vbuz1=vbuc1 lda #$40 sta render_screen_render - //SEG73 [35] phi (byte) render_screen_show#16 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@21->main::@1#9] -- vbuz1=vbuc1 + //SEG72 [34] phi (byte) render_screen_show#16 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@21->main::@1#9] -- vbuz1=vbuc1 lda #0 sta render_screen_show - //SEG74 [35] phi from main::@28 to main::@1 [phi:main::@28->main::@1] - //SEG75 [35] phi (byte) current_movedown_counter#12 = (byte) current_movedown_counter#10 [phi:main::@28->main::@1#0] -- register_copy - //SEG76 [35] phi (byte) keyboard_events_size#19 = (byte) keyboard_events_size#16 [phi:main::@28->main::@1#1] -- register_copy - //SEG77 [35] phi (byte) current_piece_char#15 = (byte) current_piece_char#1 [phi:main::@28->main::@1#2] -- register_copy - //SEG78 [35] phi (byte) current_ypos#21 = (byte) current_ypos#13 [phi:main::@28->main::@1#3] -- register_copy - //SEG79 [35] phi (byte) current_xpos#10 = (byte) current_xpos#19 [phi:main::@28->main::@1#4] -- register_copy - //SEG80 [35] phi (byte*) current_piece_gfx#20 = (byte*) current_piece_gfx#14 [phi:main::@28->main::@1#5] -- register_copy - //SEG81 [35] phi (byte) current_orientation#10 = (byte) current_orientation#19 [phi:main::@28->main::@1#6] -- register_copy - //SEG82 [35] phi (byte*) current_piece#16 = (byte*) current_piece#10 [phi:main::@28->main::@1#7] -- register_copy - //SEG83 main::@1 - //SEG84 main::@4 + //SEG73 [34] phi from main::@28 to main::@1 [phi:main::@28->main::@1] + //SEG74 [34] phi (byte) current_movedown_counter#12 = (byte) current_movedown_counter#10 [phi:main::@28->main::@1#0] -- register_copy + //SEG75 [34] phi (byte) keyboard_events_size#19 = (byte) keyboard_events_size#16 [phi:main::@28->main::@1#1] -- register_copy + //SEG76 [34] phi (byte) current_piece_char#15 = (byte) current_piece_char#1 [phi:main::@28->main::@1#2] -- register_copy + //SEG77 [34] phi (byte) current_ypos#21 = (byte) current_ypos#13 [phi:main::@28->main::@1#3] -- register_copy + //SEG78 [34] phi (byte) current_xpos#10 = (byte) current_xpos#19 [phi:main::@28->main::@1#4] -- register_copy + //SEG79 [34] phi (byte*) current_piece_gfx#20 = (byte*) current_piece_gfx#14 [phi:main::@28->main::@1#5] -- register_copy + //SEG80 [34] phi (byte) current_orientation#10 = (byte) current_orientation#19 [phi:main::@28->main::@1#6] -- register_copy + //SEG81 [34] phi (byte*) current_piece#16 = (byte*) current_piece#10 [phi:main::@28->main::@1#7] -- register_copy + //SEG82 main::@1 + //SEG83 main::@4 b4: - //SEG85 [36] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@4 -- _deref_pbuc1_neq_vbuc2_then_la1 + //SEG84 [35] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@4 -- _deref_pbuc1_neq_vbuc2_then_la1 lda RASTER cmp #$ff bne b4 - //SEG86 [37] phi from main::@4 to main::@6 [phi:main::@4->main::@6] - //SEG87 main::@6 - //SEG88 [38] call render_show + //SEG85 [36] phi from main::@4 to main::@6 [phi:main::@4->main::@6] + //SEG86 main::@6 + //SEG87 [37] call render_show jsr render_show - //SEG89 [39] phi from main::@6 to main::@23 [phi:main::@6->main::@23] - //SEG90 main::@23 - //SEG91 [40] call keyboard_event_scan - //SEG92 [276] phi from main::@23 to keyboard_event_scan [phi:main::@23->keyboard_event_scan] + //SEG88 [38] phi from main::@6 to main::@23 [phi:main::@6->main::@23] + //SEG89 main::@23 + //SEG90 [39] call keyboard_event_scan + //SEG91 [275] phi from main::@23 to keyboard_event_scan [phi:main::@23->keyboard_event_scan] jsr keyboard_event_scan - //SEG93 [41] phi from main::@23 to main::@24 [phi:main::@23->main::@24] - //SEG94 main::@24 - //SEG95 [42] call keyboard_event_get + //SEG92 [40] phi from main::@23 to main::@24 [phi:main::@23->main::@24] + //SEG93 main::@24 + //SEG94 [41] call keyboard_event_get jsr keyboard_event_get - //SEG96 [43] (byte) keyboard_event_get::return#3 ← (byte) keyboard_event_get::return#2 + //SEG95 [42] (byte) keyboard_event_get::return#3 ← (byte) keyboard_event_get::return#2 // (byte) keyboard_event_get::return#3 = (byte) keyboard_event_get::return#2 // register copy reg byte a - //SEG97 main::@25 - //SEG98 [44] (byte) main::key_event#0 ← (byte) keyboard_event_get::return#3 -- vbuz1=vbuaa + //SEG96 main::@25 + //SEG97 [43] (byte) main::key_event#0 ← (byte) keyboard_event_get::return#3 -- vbuz1=vbuaa sta key_event - //SEG99 [45] (byte) play_move_down::key_event#0 ← (byte) main::key_event#0 -- vbuaa=vbuz1 - //SEG100 [46] call play_move_down + //SEG98 [44] (byte) play_move_down::key_event#0 ← (byte) main::key_event#0 -- vbuaa=vbuz1 + //SEG99 [45] call play_move_down jsr play_move_down - //SEG101 [47] (byte) play_move_down::return#3 ← (byte) play_move_down::return#2 -- vbuaa=vbuxx + //SEG100 [46] (byte) play_move_down::return#3 ← (byte) play_move_down::return#2 -- vbuaa=vbuxx txa - //SEG102 main::@26 - //SEG103 [48] (byte~) main::$12 ← (byte) play_move_down::return#3 + //SEG101 main::@26 + //SEG102 [47] (byte~) main::$12 ← (byte) play_move_down::return#3 // (byte~) main::$12 = (byte) play_move_down::return#3 // register copy reg byte a - //SEG104 [49] (byte) main::render#1 ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte~) main::$12 -- vbuz1=vbuc1_plus_vbuaa + //SEG103 [48] (byte) main::render#1 ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte~) main::$12 -- vbuz1=vbuc1_plus_vbuaa clc adc #0 sta render - //SEG105 [50] (byte) play_move_leftright::key_event#0 ← (byte) main::key_event#0 -- vbuaa=vbuz1 + //SEG104 [49] (byte) play_move_leftright::key_event#0 ← (byte) main::key_event#0 -- vbuaa=vbuz1 lda key_event - //SEG106 [51] call play_move_leftright + //SEG105 [50] call play_move_leftright jsr play_move_leftright - //SEG107 [52] (byte) play_move_leftright::return#4 ← (byte) play_move_leftright::return#1 + //SEG106 [51] (byte) play_move_leftright::return#4 ← (byte) play_move_leftright::return#1 // (byte) play_move_leftright::return#4 = (byte) play_move_leftright::return#1 // register copy reg byte a - //SEG108 main::@27 - //SEG109 [53] (byte~) main::$13 ← (byte) play_move_leftright::return#4 + //SEG107 main::@27 + //SEG108 [52] (byte~) main::$13 ← (byte) play_move_leftright::return#4 // (byte~) main::$13 = (byte) play_move_leftright::return#4 // register copy reg byte a - //SEG110 [54] (byte) main::render#2 ← (byte) main::render#1 + (byte~) main::$13 -- vbuz1=vbuz1_plus_vbuaa + //SEG109 [53] (byte) main::render#2 ← (byte) main::render#1 + (byte~) main::$13 -- vbuz1=vbuz1_plus_vbuaa clc adc render sta render - //SEG111 [55] (byte) play_move_rotate::key_event#0 ← (byte) main::key_event#0 -- vbuaa=vbuz1 + //SEG110 [54] (byte) play_move_rotate::key_event#0 ← (byte) main::key_event#0 -- vbuaa=vbuz1 lda key_event - //SEG112 [56] call play_move_rotate + //SEG111 [55] call play_move_rotate jsr play_move_rotate - //SEG113 [57] (byte) play_move_rotate::return#4 ← (byte) play_move_rotate::return#1 + //SEG112 [56] (byte) play_move_rotate::return#4 ← (byte) play_move_rotate::return#1 // (byte) play_move_rotate::return#4 = (byte) play_move_rotate::return#1 // register copy reg byte a - //SEG114 main::@28 - //SEG115 [58] (byte~) main::$14 ← (byte) play_move_rotate::return#4 + //SEG113 main::@28 + //SEG114 [57] (byte~) main::$14 ← (byte) play_move_rotate::return#4 // (byte~) main::$14 = (byte) play_move_rotate::return#4 // register copy reg byte a - //SEG116 [59] (byte) main::render#3 ← (byte) main::render#2 + (byte~) main::$14 -- vbuaa=vbuz1_plus_vbuaa + //SEG115 [58] (byte) main::render#3 ← (byte) main::render#2 + (byte~) main::$14 -- vbuaa=vbuz1_plus_vbuaa clc adc render - //SEG117 [60] if((byte) main::render#3==(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@1 -- vbuaa_eq_0_then_la1 + //SEG116 [59] if((byte) main::render#3==(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@1 -- vbuaa_eq_0_then_la1 cmp #0 beq b4 - //SEG118 main::@13 - //SEG119 [61] (byte~) render_screen_render#63 ← (byte) render_screen_render#16 -- vbuxx=vbuz1 + //SEG117 main::@13 + //SEG118 [60] (byte~) render_screen_render#63 ← (byte) render_screen_render#16 -- vbuxx=vbuz1 ldx render_screen_render - //SEG120 [62] call render_playfield - //SEG121 [97] phi from main::@13 to render_playfield [phi:main::@13->render_playfield] - //SEG122 [97] phi (byte) render_screen_render#19 = (byte~) render_screen_render#63 [phi:main::@13->render_playfield#0] -- register_copy + //SEG119 [61] call render_playfield + //SEG120 [96] phi from main::@13 to render_playfield [phi:main::@13->render_playfield] + //SEG121 [96] phi (byte) render_screen_render#19 = (byte~) render_screen_render#63 [phi:main::@13->render_playfield#0] -- register_copy jsr render_playfield - //SEG123 main::@29 - //SEG124 [63] (byte~) current_ypos#85 ← (byte) current_ypos#13 -- vbuyy=vbuz1 + //SEG122 main::@29 + //SEG123 [62] (byte~) current_ypos#85 ← (byte) current_ypos#13 -- vbuyy=vbuz1 ldy current_ypos - //SEG125 [64] (byte~) render_screen_render#62 ← (byte) render_screen_render#16 -- vbuz1=vbuz2 + //SEG124 [63] (byte~) render_screen_render#62 ← (byte) render_screen_render#16 -- vbuz1=vbuz2 lda render_screen_render sta render_screen_render_62 - //SEG126 [65] (byte~) current_xpos#111 ← (byte) current_xpos#19 -- vbuz1=vbuz2 + //SEG125 [64] (byte~) current_xpos#111 ← (byte) current_xpos#19 -- vbuz1=vbuz2 lda current_xpos sta current_xpos_111 - //SEG127 [66] (byte*~) current_piece_gfx#101 ← (byte*) current_piece_gfx#14 -- pbuz1=pbuz2 + //SEG126 [65] (byte*~) current_piece_gfx#101 ← (byte*) current_piece_gfx#14 -- pbuz1=pbuz2 lda current_piece_gfx sta current_piece_gfx_101 lda current_piece_gfx+1 sta current_piece_gfx_101+1 - //SEG128 [67] (byte~) current_piece_char#89 ← (byte) current_piece_char#1 -- vbuxx=vbuz1 + //SEG127 [66] (byte~) current_piece_char#89 ← (byte) current_piece_char#1 -- vbuxx=vbuz1 ldx current_piece_char - //SEG129 [68] call render_current - //SEG130 [74] phi from main::@29 to render_current [phi:main::@29->render_current] - //SEG131 [74] phi (byte) current_piece_char#63 = (byte~) current_piece_char#89 [phi:main::@29->render_current#0] -- register_copy - //SEG132 [74] phi (byte*) current_piece_gfx#53 = (byte*~) current_piece_gfx#101 [phi:main::@29->render_current#1] -- register_copy - //SEG133 [74] phi (byte) current_xpos#47 = (byte~) current_xpos#111 [phi:main::@29->render_current#2] -- register_copy - //SEG134 [74] phi (byte) render_screen_render#28 = (byte~) render_screen_render#62 [phi:main::@29->render_current#3] -- register_copy - //SEG135 [74] phi (byte) current_ypos#9 = (byte~) current_ypos#85 [phi:main::@29->render_current#4] -- register_copy + //SEG128 [67] call render_current + //SEG129 [73] phi from main::@29 to render_current [phi:main::@29->render_current] + //SEG130 [73] phi (byte) current_piece_char#63 = (byte~) current_piece_char#89 [phi:main::@29->render_current#0] -- register_copy + //SEG131 [73] phi (byte*) current_piece_gfx#53 = (byte*~) current_piece_gfx#101 [phi:main::@29->render_current#1] -- register_copy + //SEG132 [73] phi (byte) current_xpos#47 = (byte~) current_xpos#111 [phi:main::@29->render_current#2] -- register_copy + //SEG133 [73] phi (byte) render_screen_render#28 = (byte~) render_screen_render#62 [phi:main::@29->render_current#3] -- register_copy + //SEG134 [73] phi (byte) current_ypos#9 = (byte~) current_ypos#85 [phi:main::@29->render_current#4] -- register_copy jsr render_current - //SEG136 [69] phi from main::@29 to main::@30 [phi:main::@29->main::@30] - //SEG137 main::@30 - //SEG138 [70] call render_screen_swap + //SEG135 [68] phi from main::@29 to main::@30 [phi:main::@29->main::@30] + //SEG136 main::@30 + //SEG137 [69] call render_screen_swap jsr render_screen_swap - //SEG139 [35] phi from main::@30 to main::@1 [phi:main::@30->main::@1] - //SEG140 [35] phi (byte) current_movedown_counter#12 = (byte) current_movedown_counter#10 [phi:main::@30->main::@1#0] -- register_copy - //SEG141 [35] phi (byte) keyboard_events_size#19 = (byte) keyboard_events_size#16 [phi:main::@30->main::@1#1] -- register_copy - //SEG142 [35] phi (byte) current_piece_char#15 = (byte) current_piece_char#1 [phi:main::@30->main::@1#2] -- register_copy - //SEG143 [35] phi (byte) current_ypos#21 = (byte) current_ypos#13 [phi:main::@30->main::@1#3] -- register_copy - //SEG144 [35] phi (byte) current_xpos#10 = (byte) current_xpos#19 [phi:main::@30->main::@1#4] -- register_copy - //SEG145 [35] phi (byte*) current_piece_gfx#20 = (byte*) current_piece_gfx#14 [phi:main::@30->main::@1#5] -- register_copy - //SEG146 [35] phi (byte) current_orientation#10 = (byte) current_orientation#19 [phi:main::@30->main::@1#6] -- register_copy - //SEG147 [35] phi (byte*) current_piece#16 = (byte*) current_piece#10 [phi:main::@30->main::@1#7] -- register_copy - //SEG148 [35] phi (byte) render_screen_render#16 = (byte) render_screen_render#11 [phi:main::@30->main::@1#8] -- register_copy - //SEG149 [35] phi (byte) render_screen_show#16 = (byte) render_screen_show#13 [phi:main::@30->main::@1#9] -- register_copy + //SEG138 [34] phi from main::@30 to main::@1 [phi:main::@30->main::@1] + //SEG139 [34] phi (byte) current_movedown_counter#12 = (byte) current_movedown_counter#10 [phi:main::@30->main::@1#0] -- register_copy + //SEG140 [34] phi (byte) keyboard_events_size#19 = (byte) keyboard_events_size#16 [phi:main::@30->main::@1#1] -- register_copy + //SEG141 [34] phi (byte) current_piece_char#15 = (byte) current_piece_char#1 [phi:main::@30->main::@1#2] -- register_copy + //SEG142 [34] phi (byte) current_ypos#21 = (byte) current_ypos#13 [phi:main::@30->main::@1#3] -- register_copy + //SEG143 [34] phi (byte) current_xpos#10 = (byte) current_xpos#19 [phi:main::@30->main::@1#4] -- register_copy + //SEG144 [34] phi (byte*) current_piece_gfx#20 = (byte*) current_piece_gfx#14 [phi:main::@30->main::@1#5] -- register_copy + //SEG145 [34] phi (byte) current_orientation#10 = (byte) current_orientation#19 [phi:main::@30->main::@1#6] -- register_copy + //SEG146 [34] phi (byte*) current_piece#16 = (byte*) current_piece#10 [phi:main::@30->main::@1#7] -- register_copy + //SEG147 [34] phi (byte) render_screen_render#16 = (byte) render_screen_render#11 [phi:main::@30->main::@1#8] -- register_copy + //SEG148 [34] phi (byte) render_screen_show#16 = (byte) render_screen_show#13 [phi:main::@30->main::@1#9] -- register_copy jmp b4 } -//SEG150 render_screen_swap +//SEG149 render_screen_swap render_screen_swap: { - //SEG151 [71] (byte) render_screen_render#11 ← (byte) render_screen_render#16 ^ (byte/signed byte/word/signed word/dword/signed dword) 64 -- vbuz1=vbuz1_bxor_vbuc1 + //SEG150 [70] (byte) render_screen_render#11 ← (byte) render_screen_render#16 ^ (byte/signed byte/word/signed word/dword/signed dword) 64 -- vbuz1=vbuz1_bxor_vbuc1 lda render_screen_render eor #$40 sta render_screen_render - //SEG152 [72] (byte) render_screen_show#13 ← (byte) render_screen_show#16 ^ (byte/signed byte/word/signed word/dword/signed dword) 64 -- vbuz1=vbuz1_bxor_vbuc1 + //SEG151 [71] (byte) render_screen_show#13 ← (byte) render_screen_show#16 ^ (byte/signed byte/word/signed word/dword/signed dword) 64 -- vbuz1=vbuz1_bxor_vbuc1 lda render_screen_show eor #$40 sta render_screen_show - //SEG153 render_screen_swap::@return - //SEG154 [73] return + //SEG152 render_screen_swap::@return + //SEG153 [72] return rts } -//SEG155 render_current +//SEG154 render_current render_current: { .label ypos2 = 9 .label screen_line = $17 @@ -17563,292 +17382,292 @@ render_current: { .label i = $b .label l = $a .label c = $d - //SEG156 [75] (byte) render_current::ypos2#0 ← (byte) current_ypos#9 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuyy_rol_1 + //SEG155 [74] (byte) render_current::ypos2#0 ← (byte) current_ypos#9 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuyy_rol_1 tya asl sta ypos2 - //SEG157 [76] phi from render_current to render_current::@1 [phi:render_current->render_current::@1] - //SEG158 [76] phi (byte) render_current::l#4 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_current->render_current::@1#0] -- vbuz1=vbuc1 + //SEG156 [75] phi from render_current to render_current::@1 [phi:render_current->render_current::@1] + //SEG157 [75] phi (byte) render_current::l#4 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_current->render_current::@1#0] -- vbuz1=vbuc1 lda #0 sta l - //SEG159 [76] phi (byte) render_current::i#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_current->render_current::@1#1] -- vbuz1=vbuc1 + //SEG158 [75] phi (byte) render_current::i#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_current->render_current::@1#1] -- vbuz1=vbuc1 sta i - //SEG160 [76] phi (byte) render_current::ypos2#2 = (byte) render_current::ypos2#0 [phi:render_current->render_current::@1#2] -- register_copy - //SEG161 [76] phi from render_current::@3 to render_current::@1 [phi:render_current::@3->render_current::@1] - //SEG162 [76] phi (byte) render_current::l#4 = (byte) render_current::l#1 [phi:render_current::@3->render_current::@1#0] -- register_copy - //SEG163 [76] phi (byte) render_current::i#3 = (byte) render_current::i#8 [phi:render_current::@3->render_current::@1#1] -- register_copy - //SEG164 [76] phi (byte) render_current::ypos2#2 = (byte) render_current::ypos2#1 [phi:render_current::@3->render_current::@1#2] -- register_copy - //SEG165 render_current::@1 + //SEG159 [75] phi (byte) render_current::ypos2#2 = (byte) render_current::ypos2#0 [phi:render_current->render_current::@1#2] -- register_copy + //SEG160 [75] phi from render_current::@3 to render_current::@1 [phi:render_current::@3->render_current::@1] + //SEG161 [75] phi (byte) render_current::l#4 = (byte) render_current::l#1 [phi:render_current::@3->render_current::@1#0] -- register_copy + //SEG162 [75] phi (byte) render_current::i#3 = (byte) render_current::i#8 [phi:render_current::@3->render_current::@1#1] -- register_copy + //SEG163 [75] phi (byte) render_current::ypos2#2 = (byte) render_current::ypos2#1 [phi:render_current::@3->render_current::@1#2] -- register_copy + //SEG164 render_current::@1 b1: - //SEG166 [77] if((byte) render_current::ypos2#2>(byte/signed byte/word/signed word/dword/signed dword) 2) goto render_current::@13 -- vbuz1_gt_vbuc1_then_la1 + //SEG165 [76] if((byte) render_current::ypos2#2>(byte/signed byte/word/signed word/dword/signed dword) 2) goto render_current::@13 -- vbuz1_gt_vbuc1_then_la1 lda ypos2 cmp #2 beq !+ bcs b13 !: - //SEG167 render_current::@7 + //SEG166 render_current::@7 b7: - //SEG168 [78] (byte) render_current::i#1 ← (byte) render_current::i#3 + (byte/signed byte/word/signed word/dword/signed dword) 4 -- vbuz1=vbuz1_plus_vbuc1 + //SEG167 [77] (byte) render_current::i#1 ← (byte) render_current::i#3 + (byte/signed byte/word/signed word/dword/signed dword) 4 -- vbuz1=vbuz1_plus_vbuc1 lda #4 clc adc i sta i - //SEG169 [79] phi from render_current::@5 render_current::@7 to render_current::@3 [phi:render_current::@5/render_current::@7->render_current::@3] - //SEG170 [79] phi (byte) render_current::i#8 = (byte) render_current::i#10 [phi:render_current::@5/render_current::@7->render_current::@3#0] -- register_copy - //SEG171 render_current::@3 + //SEG168 [78] phi from render_current::@5 render_current::@7 to render_current::@3 [phi:render_current::@5/render_current::@7->render_current::@3] + //SEG169 [78] phi (byte) render_current::i#8 = (byte) render_current::i#10 [phi:render_current::@5/render_current::@7->render_current::@3#0] -- register_copy + //SEG170 render_current::@3 b3: - //SEG172 [80] (byte) render_current::ypos2#1 ← (byte) render_current::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 -- vbuz1=vbuz1_plus_2 + //SEG171 [79] (byte) render_current::ypos2#1 ← (byte) render_current::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 -- vbuz1=vbuz1_plus_2 lda ypos2 clc adc #2 sta ypos2 - //SEG173 [81] (byte) render_current::l#1 ← ++ (byte) render_current::l#4 -- vbuz1=_inc_vbuz1 + //SEG172 [80] (byte) render_current::l#1 ← ++ (byte) render_current::l#4 -- vbuz1=_inc_vbuz1 inc l - //SEG174 [82] if((byte) render_current::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_current::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG173 [81] if((byte) render_current::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_current::@1 -- vbuz1_neq_vbuc1_then_la1 lda l cmp #4 bne b1 - //SEG175 render_current::@return - //SEG176 [83] return + //SEG174 render_current::@return + //SEG175 [82] return rts - //SEG177 render_current::@13 + //SEG176 render_current::@13 b13: - //SEG178 [84] if((byte) render_current::ypos2#2<(byte/signed byte/word/signed word/dword/signed dword) 2*(const byte) PLAYFIELD_LINES#0) goto render_current::@2 -- vbuz1_lt_vbuc1_then_la1 + //SEG177 [83] if((byte) render_current::ypos2#2<(byte/signed byte/word/signed word/dword/signed dword) 2*(const byte) PLAYFIELD_LINES#0) goto render_current::@2 -- vbuz1_lt_vbuc1_then_la1 lda ypos2 cmp #2*PLAYFIELD_LINES bcc b2 jmp b7 - //SEG179 render_current::@2 + //SEG178 render_current::@2 b2: - //SEG180 [85] (byte~) render_current::$5 ← (byte) render_screen_render#28 + (byte) render_current::ypos2#2 -- vbuaa=vbuz1_plus_vbuz2 + //SEG179 [84] (byte~) render_current::$5 ← (byte) render_screen_render#28 + (byte) render_current::ypos2#2 -- vbuaa=vbuz1_plus_vbuz2 lda render_screen_render_28 clc adc ypos2 - //SEG181 [86] (byte*) render_current::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) screen_lines_1#0 + (byte~) render_current::$5) -- pbuz1=pptc1_derefidx_vbuaa + //SEG180 [85] (byte*) render_current::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) screen_lines_1#0 + (byte~) render_current::$5) -- pbuz1=pptc1_derefidx_vbuaa tay lda screen_lines_1,y sta screen_line lda screen_lines_1+1,y sta screen_line+1 - //SEG182 [87] (byte) render_current::xpos#0 ← (byte) current_xpos#47 -- vbuz1=vbuz2 + //SEG181 [86] (byte) render_current::xpos#0 ← (byte) current_xpos#47 -- vbuz1=vbuz2 lda current_xpos_47 sta xpos - //SEG183 [88] phi from render_current::@2 to render_current::@4 [phi:render_current::@2->render_current::@4] - //SEG184 [88] phi (byte) render_current::c#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_current::@2->render_current::@4#0] -- vbuz1=vbuc1 + //SEG182 [87] phi from render_current::@2 to render_current::@4 [phi:render_current::@2->render_current::@4] + //SEG183 [87] phi (byte) render_current::c#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_current::@2->render_current::@4#0] -- vbuz1=vbuc1 lda #0 sta c - //SEG185 [88] phi (byte) render_current::xpos#2 = (byte) render_current::xpos#0 [phi:render_current::@2->render_current::@4#1] -- register_copy - //SEG186 [88] phi (byte) render_current::i#4 = (byte) render_current::i#3 [phi:render_current::@2->render_current::@4#2] -- register_copy - //SEG187 [88] phi from render_current::@5 to render_current::@4 [phi:render_current::@5->render_current::@4] - //SEG188 [88] phi (byte) render_current::c#2 = (byte) render_current::c#1 [phi:render_current::@5->render_current::@4#0] -- register_copy - //SEG189 [88] phi (byte) render_current::xpos#2 = (byte) render_current::xpos#1 [phi:render_current::@5->render_current::@4#1] -- register_copy - //SEG190 [88] phi (byte) render_current::i#4 = (byte) render_current::i#10 [phi:render_current::@5->render_current::@4#2] -- register_copy - //SEG191 render_current::@4 + //SEG184 [87] phi (byte) render_current::xpos#2 = (byte) render_current::xpos#0 [phi:render_current::@2->render_current::@4#1] -- register_copy + //SEG185 [87] phi (byte) render_current::i#4 = (byte) render_current::i#3 [phi:render_current::@2->render_current::@4#2] -- register_copy + //SEG186 [87] phi from render_current::@5 to render_current::@4 [phi:render_current::@5->render_current::@4] + //SEG187 [87] phi (byte) render_current::c#2 = (byte) render_current::c#1 [phi:render_current::@5->render_current::@4#0] -- register_copy + //SEG188 [87] phi (byte) render_current::xpos#2 = (byte) render_current::xpos#1 [phi:render_current::@5->render_current::@4#1] -- register_copy + //SEG189 [87] phi (byte) render_current::i#4 = (byte) render_current::i#10 [phi:render_current::@5->render_current::@4#2] -- register_copy + //SEG190 render_current::@4 b4: - //SEG192 [89] (byte) render_current::current_cell#0 ← *((byte*) current_piece_gfx#53 + (byte) render_current::i#4) -- vbuaa=pbuz1_derefidx_vbuz2 + //SEG191 [88] (byte) render_current::current_cell#0 ← *((byte*) current_piece_gfx#53 + (byte) render_current::i#4) -- vbuaa=pbuz1_derefidx_vbuz2 ldy i lda (current_piece_gfx_53),y - //SEG193 [90] (byte) render_current::i#10 ← ++ (byte) render_current::i#4 -- vbuz1=_inc_vbuz1 + //SEG192 [89] (byte) render_current::i#10 ← ++ (byte) render_current::i#4 -- vbuz1=_inc_vbuz1 inc i - //SEG194 [91] if((byte) render_current::current_cell#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto render_current::@5 -- vbuaa_eq_0_then_la1 + //SEG193 [90] if((byte) render_current::current_cell#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto render_current::@5 -- vbuaa_eq_0_then_la1 cmp #0 beq b5 - //SEG195 render_current::@9 - //SEG196 [92] if((byte) render_current::xpos#2>=(const byte) PLAYFIELD_COLS#0) goto render_current::@5 -- vbuz1_ge_vbuc1_then_la1 + //SEG194 render_current::@9 + //SEG195 [91] if((byte) render_current::xpos#2>=(const byte) PLAYFIELD_COLS#0) goto render_current::@5 -- vbuz1_ge_vbuc1_then_la1 lda xpos cmp #PLAYFIELD_COLS bcs b5 - //SEG197 render_current::@10 - //SEG198 [93] *((byte*) render_current::screen_line#0 + (byte) render_current::xpos#2) ← (byte) current_piece_char#63 -- pbuz1_derefidx_vbuz2=vbuxx + //SEG196 render_current::@10 + //SEG197 [92] *((byte*) render_current::screen_line#0 + (byte) render_current::xpos#2) ← (byte) current_piece_char#63 -- pbuz1_derefidx_vbuz2=vbuxx tay txa sta (screen_line),y - //SEG199 render_current::@5 + //SEG198 render_current::@5 b5: - //SEG200 [94] (byte) render_current::xpos#1 ← ++ (byte) render_current::xpos#2 -- vbuz1=_inc_vbuz1 + //SEG199 [93] (byte) render_current::xpos#1 ← ++ (byte) render_current::xpos#2 -- vbuz1=_inc_vbuz1 inc xpos - //SEG201 [95] (byte) render_current::c#1 ← ++ (byte) render_current::c#2 -- vbuz1=_inc_vbuz1 + //SEG200 [94] (byte) render_current::c#1 ← ++ (byte) render_current::c#2 -- vbuz1=_inc_vbuz1 inc c - //SEG202 [96] if((byte) render_current::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_current::@4 -- vbuz1_neq_vbuc1_then_la1 + //SEG201 [95] if((byte) render_current::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_current::@4 -- vbuz1_neq_vbuc1_then_la1 lda c cmp #4 bne b4 jmp b3 } -//SEG203 render_playfield +//SEG202 render_playfield render_playfield: { .label screen_line = 7 .label i = 6 .label c = 9 .label l = 5 - //SEG204 [98] phi from render_playfield to render_playfield::@1 [phi:render_playfield->render_playfield::@1] - //SEG205 [98] phi (byte) render_playfield::i#3 = (const byte) PLAYFIELD_COLS#0*(byte/signed byte/word/signed word/dword/signed dword) 2 [phi:render_playfield->render_playfield::@1#0] -- vbuz1=vbuc1 + //SEG203 [97] phi from render_playfield to render_playfield::@1 [phi:render_playfield->render_playfield::@1] + //SEG204 [97] phi (byte) render_playfield::i#3 = (const byte) PLAYFIELD_COLS#0*(byte/signed byte/word/signed word/dword/signed dword) 2 [phi:render_playfield->render_playfield::@1#0] -- vbuz1=vbuc1 lda #PLAYFIELD_COLS*2 sta i - //SEG206 [98] phi (byte) render_playfield::l#2 = (byte/signed byte/word/signed word/dword/signed dword) 2 [phi:render_playfield->render_playfield::@1#1] -- vbuz1=vbuc1 + //SEG205 [97] phi (byte) render_playfield::l#2 = (byte/signed byte/word/signed word/dword/signed dword) 2 [phi:render_playfield->render_playfield::@1#1] -- vbuz1=vbuc1 lda #2 sta l - //SEG207 [98] phi from render_playfield::@3 to render_playfield::@1 [phi:render_playfield::@3->render_playfield::@1] - //SEG208 [98] phi (byte) render_playfield::i#3 = (byte) render_playfield::i#1 [phi:render_playfield::@3->render_playfield::@1#0] -- register_copy - //SEG209 [98] phi (byte) render_playfield::l#2 = (byte) render_playfield::l#1 [phi:render_playfield::@3->render_playfield::@1#1] -- register_copy - //SEG210 render_playfield::@1 + //SEG206 [97] phi from render_playfield::@3 to render_playfield::@1 [phi:render_playfield::@3->render_playfield::@1] + //SEG207 [97] phi (byte) render_playfield::i#3 = (byte) render_playfield::i#1 [phi:render_playfield::@3->render_playfield::@1#0] -- register_copy + //SEG208 [97] phi (byte) render_playfield::l#2 = (byte) render_playfield::l#1 [phi:render_playfield::@3->render_playfield::@1#1] -- register_copy + //SEG209 render_playfield::@1 b1: - //SEG211 [99] (byte~) render_playfield::$2 ← (byte) render_playfield::l#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuaa=vbuz1_rol_1 + //SEG210 [98] (byte~) render_playfield::$2 ← (byte) render_playfield::l#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuaa=vbuz1_rol_1 lda l asl - //SEG212 [100] (byte~) render_playfield::$3 ← (byte) render_screen_render#19 + (byte~) render_playfield::$2 -- vbuaa=vbuxx_plus_vbuaa + //SEG211 [99] (byte~) render_playfield::$3 ← (byte) render_screen_render#19 + (byte~) render_playfield::$2 -- vbuaa=vbuxx_plus_vbuaa stx $ff clc adc $ff - //SEG213 [101] (byte*) render_playfield::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) screen_lines_1#0 + (byte~) render_playfield::$3) -- pbuz1=pptc1_derefidx_vbuaa + //SEG212 [100] (byte*) render_playfield::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) screen_lines_1#0 + (byte~) render_playfield::$3) -- pbuz1=pptc1_derefidx_vbuaa tay lda screen_lines_1,y sta screen_line lda screen_lines_1+1,y sta screen_line+1 - //SEG214 [102] phi from render_playfield::@1 to render_playfield::@2 [phi:render_playfield::@1->render_playfield::@2] - //SEG215 [102] phi (byte) render_playfield::c#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_playfield::@1->render_playfield::@2#0] -- vbuz1=vbuc1 + //SEG213 [101] phi from render_playfield::@1 to render_playfield::@2 [phi:render_playfield::@1->render_playfield::@2] + //SEG214 [101] phi (byte) render_playfield::c#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_playfield::@1->render_playfield::@2#0] -- vbuz1=vbuc1 lda #0 sta c - //SEG216 [102] phi (byte*) render_playfield::screen_line#2 = (byte*) render_playfield::screen_line#0 [phi:render_playfield::@1->render_playfield::@2#1] -- register_copy - //SEG217 [102] phi (byte) render_playfield::i#2 = (byte) render_playfield::i#3 [phi:render_playfield::@1->render_playfield::@2#2] -- register_copy - //SEG218 [102] phi from render_playfield::@2 to render_playfield::@2 [phi:render_playfield::@2->render_playfield::@2] - //SEG219 [102] phi (byte) render_playfield::c#2 = (byte) render_playfield::c#1 [phi:render_playfield::@2->render_playfield::@2#0] -- register_copy - //SEG220 [102] phi (byte*) render_playfield::screen_line#2 = (byte*) render_playfield::screen_line#1 [phi:render_playfield::@2->render_playfield::@2#1] -- register_copy - //SEG221 [102] phi (byte) render_playfield::i#2 = (byte) render_playfield::i#1 [phi:render_playfield::@2->render_playfield::@2#2] -- register_copy - //SEG222 render_playfield::@2 + //SEG215 [101] phi (byte*) render_playfield::screen_line#2 = (byte*) render_playfield::screen_line#0 [phi:render_playfield::@1->render_playfield::@2#1] -- register_copy + //SEG216 [101] phi (byte) render_playfield::i#2 = (byte) render_playfield::i#3 [phi:render_playfield::@1->render_playfield::@2#2] -- register_copy + //SEG217 [101] phi from render_playfield::@2 to render_playfield::@2 [phi:render_playfield::@2->render_playfield::@2] + //SEG218 [101] phi (byte) render_playfield::c#2 = (byte) render_playfield::c#1 [phi:render_playfield::@2->render_playfield::@2#0] -- register_copy + //SEG219 [101] phi (byte*) render_playfield::screen_line#2 = (byte*) render_playfield::screen_line#1 [phi:render_playfield::@2->render_playfield::@2#1] -- register_copy + //SEG220 [101] phi (byte) render_playfield::i#2 = (byte) render_playfield::i#1 [phi:render_playfield::@2->render_playfield::@2#2] -- register_copy + //SEG221 render_playfield::@2 b2: - //SEG223 [103] *((byte*) render_playfield::screen_line#2) ← *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) render_playfield::i#2) -- _deref_pbuz1=pbuc1_derefidx_vbuz2 + //SEG222 [102] *((byte*) render_playfield::screen_line#2) ← *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) render_playfield::i#2) -- _deref_pbuz1=pbuc1_derefidx_vbuz2 ldy i lda playfield,y ldy #0 sta (screen_line),y - //SEG224 [104] (byte*) render_playfield::screen_line#1 ← ++ (byte*) render_playfield::screen_line#2 -- pbuz1=_inc_pbuz1 + //SEG223 [103] (byte*) render_playfield::screen_line#1 ← ++ (byte*) render_playfield::screen_line#2 -- pbuz1=_inc_pbuz1 inc screen_line bne !+ inc screen_line+1 !: - //SEG225 [105] (byte) render_playfield::i#1 ← ++ (byte) render_playfield::i#2 -- vbuz1=_inc_vbuz1 + //SEG224 [104] (byte) render_playfield::i#1 ← ++ (byte) render_playfield::i#2 -- vbuz1=_inc_vbuz1 inc i - //SEG226 [106] (byte) render_playfield::c#1 ← ++ (byte) render_playfield::c#2 -- vbuz1=_inc_vbuz1 + //SEG225 [105] (byte) render_playfield::c#1 ← ++ (byte) render_playfield::c#2 -- vbuz1=_inc_vbuz1 inc c - //SEG227 [107] if((byte) render_playfield::c#1!=(const byte) PLAYFIELD_COLS#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_playfield::@2 -- vbuz1_neq_vbuc1_then_la1 + //SEG226 [106] if((byte) render_playfield::c#1!=(const byte) PLAYFIELD_COLS#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_playfield::@2 -- vbuz1_neq_vbuc1_then_la1 lda c cmp #PLAYFIELD_COLS-1+1 bne b2 - //SEG228 render_playfield::@3 - //SEG229 [108] (byte) render_playfield::l#1 ← ++ (byte) render_playfield::l#2 -- vbuz1=_inc_vbuz1 + //SEG227 render_playfield::@3 + //SEG228 [107] (byte) render_playfield::l#1 ← ++ (byte) render_playfield::l#2 -- vbuz1=_inc_vbuz1 inc l - //SEG230 [109] if((byte) render_playfield::l#1!=(const byte) PLAYFIELD_LINES#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_playfield::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG229 [108] if((byte) render_playfield::l#1!=(const byte) PLAYFIELD_LINES#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_playfield::@1 -- vbuz1_neq_vbuc1_then_la1 lda l cmp #PLAYFIELD_LINES-1+1 bne b1 - //SEG231 render_playfield::@return - //SEG232 [110] return + //SEG230 render_playfield::@return + //SEG231 [109] return rts } -//SEG233 play_move_rotate +//SEG232 play_move_rotate play_move_rotate: { .label orientation = 5 - //SEG234 [111] if((byte) play_move_rotate::key_event#0==(const byte) KEY_Z#0) goto play_move_rotate::@1 -- vbuaa_eq_vbuc1_then_la1 + //SEG233 [110] if((byte) play_move_rotate::key_event#0==(const byte) KEY_Z#0) goto play_move_rotate::@1 -- vbuaa_eq_vbuc1_then_la1 cmp #KEY_Z beq b1 - //SEG235 play_move_rotate::@6 - //SEG236 [112] if((byte) play_move_rotate::key_event#0==(const byte) KEY_X#0) goto play_move_rotate::@2 -- vbuaa_eq_vbuc1_then_la1 + //SEG234 play_move_rotate::@6 + //SEG235 [111] if((byte) play_move_rotate::key_event#0==(const byte) KEY_X#0) goto play_move_rotate::@2 -- vbuaa_eq_vbuc1_then_la1 cmp #KEY_X beq b2 - //SEG237 [113] phi from play_move_rotate::@14 play_move_rotate::@6 to play_move_rotate::@return [phi:play_move_rotate::@14/play_move_rotate::@6->play_move_rotate::@return] + //SEG236 [112] phi from play_move_rotate::@14 play_move_rotate::@6 to play_move_rotate::@return [phi:play_move_rotate::@14/play_move_rotate::@6->play_move_rotate::@return] b3: - //SEG238 [113] phi (byte*) current_piece_gfx#14 = (byte*) current_piece_gfx#1 [phi:play_move_rotate::@14/play_move_rotate::@6->play_move_rotate::@return#0] -- register_copy - //SEG239 [113] phi (byte) current_orientation#19 = (byte) current_orientation#14 [phi:play_move_rotate::@14/play_move_rotate::@6->play_move_rotate::@return#1] -- register_copy - //SEG240 [113] phi (byte) play_move_rotate::return#1 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_rotate::@14/play_move_rotate::@6->play_move_rotate::@return#2] -- vbuaa=vbuc1 + //SEG237 [112] phi (byte*) current_piece_gfx#14 = (byte*) current_piece_gfx#1 [phi:play_move_rotate::@14/play_move_rotate::@6->play_move_rotate::@return#0] -- register_copy + //SEG238 [112] phi (byte) current_orientation#19 = (byte) current_orientation#14 [phi:play_move_rotate::@14/play_move_rotate::@6->play_move_rotate::@return#1] -- register_copy + //SEG239 [112] phi (byte) play_move_rotate::return#1 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_rotate::@14/play_move_rotate::@6->play_move_rotate::@return#2] -- vbuaa=vbuc1 lda #0 - //SEG241 play_move_rotate::@return + //SEG240 play_move_rotate::@return breturn: - //SEG242 [114] return + //SEG241 [113] return rts - //SEG243 play_move_rotate::@2 + //SEG242 play_move_rotate::@2 b2: - //SEG244 [115] (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 ← (byte) current_orientation#14 + (byte/signed byte/word/signed word/dword/signed dword) 16 -- vbuaa=vbuz1_plus_vbuc1 + //SEG243 [114] (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 ← (byte) current_orientation#14 + (byte/signed byte/word/signed word/dword/signed dword) 16 -- vbuaa=vbuz1_plus_vbuc1 lda #$10 clc adc current_orientation - //SEG245 [116] (byte) play_move_rotate::orientation#2 ← (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 & (byte/signed byte/word/signed word/dword/signed dword) 63 -- vbuz1=vbuaa_band_vbuc1 + //SEG244 [115] (byte) play_move_rotate::orientation#2 ← (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 & (byte/signed byte/word/signed word/dword/signed dword) 63 -- vbuz1=vbuaa_band_vbuc1 and #$3f sta orientation - //SEG246 [117] phi from play_move_rotate::@1 play_move_rotate::@2 to play_move_rotate::@4 [phi:play_move_rotate::@1/play_move_rotate::@2->play_move_rotate::@4] - //SEG247 [117] phi (byte) play_move_rotate::orientation#3 = (byte) play_move_rotate::orientation#1 [phi:play_move_rotate::@1/play_move_rotate::@2->play_move_rotate::@4#0] -- register_copy - //SEG248 play_move_rotate::@4 + //SEG245 [116] phi from play_move_rotate::@1 play_move_rotate::@2 to play_move_rotate::@4 [phi:play_move_rotate::@1/play_move_rotate::@2->play_move_rotate::@4] + //SEG246 [116] phi (byte) play_move_rotate::orientation#3 = (byte) play_move_rotate::orientation#1 [phi:play_move_rotate::@1/play_move_rotate::@2->play_move_rotate::@4#0] -- register_copy + //SEG247 play_move_rotate::@4 b4: - //SEG249 [118] (byte) play_collision::xpos#3 ← (byte) current_xpos#19 -- vbuz1=vbuz2 + //SEG248 [117] (byte) play_collision::xpos#3 ← (byte) current_xpos#19 -- vbuz1=vbuz2 lda current_xpos sta play_collision.xpos - //SEG250 [119] (byte) play_collision::ypos#3 ← (byte) current_ypos#13 -- vbuyy=vbuz1 + //SEG249 [118] (byte) play_collision::ypos#3 ← (byte) current_ypos#13 -- vbuyy=vbuz1 ldy current_ypos - //SEG251 [120] (byte) play_collision::orientation#3 ← (byte) play_move_rotate::orientation#3 -- vbuxx=vbuz1 + //SEG250 [119] (byte) play_collision::orientation#3 ← (byte) play_move_rotate::orientation#3 -- vbuxx=vbuz1 ldx orientation - //SEG252 [121] (byte*~) current_piece#77 ← (byte*) current_piece#10 -- pbuz1=pbuz2 + //SEG251 [120] (byte*~) current_piece#77 ← (byte*) current_piece#10 -- pbuz1=pbuz2 lda current_piece sta current_piece_77 lda current_piece+1 sta current_piece_77+1 - //SEG253 [122] call play_collision - //SEG254 [130] phi from play_move_rotate::@4 to play_collision [phi:play_move_rotate::@4->play_collision] - //SEG255 [130] phi (byte) play_collision::xpos#5 = (byte) play_collision::xpos#3 [phi:play_move_rotate::@4->play_collision#0] -- register_copy - //SEG256 [130] phi (byte) play_collision::ypos#4 = (byte) play_collision::ypos#3 [phi:play_move_rotate::@4->play_collision#1] -- register_copy - //SEG257 [130] phi (byte) play_collision::orientation#4 = (byte) play_collision::orientation#3 [phi:play_move_rotate::@4->play_collision#2] -- register_copy - //SEG258 [130] phi (byte*) current_piece#12 = (byte*~) current_piece#77 [phi:play_move_rotate::@4->play_collision#3] -- register_copy + //SEG252 [121] call play_collision + //SEG253 [129] phi from play_move_rotate::@4 to play_collision [phi:play_move_rotate::@4->play_collision] + //SEG254 [129] phi (byte) play_collision::xpos#5 = (byte) play_collision::xpos#3 [phi:play_move_rotate::@4->play_collision#0] -- register_copy + //SEG255 [129] phi (byte) play_collision::ypos#4 = (byte) play_collision::ypos#3 [phi:play_move_rotate::@4->play_collision#1] -- register_copy + //SEG256 [129] phi (byte) play_collision::orientation#4 = (byte) play_collision::orientation#3 [phi:play_move_rotate::@4->play_collision#2] -- register_copy + //SEG257 [129] phi (byte*) current_piece#12 = (byte*~) current_piece#77 [phi:play_move_rotate::@4->play_collision#3] -- register_copy jsr play_collision - //SEG259 [123] (byte) play_collision::return#13 ← (byte) play_collision::return#14 + //SEG258 [122] (byte) play_collision::return#13 ← (byte) play_collision::return#14 // (byte) play_collision::return#13 = (byte) play_collision::return#14 // register copy reg byte a - //SEG260 play_move_rotate::@14 - //SEG261 [124] (byte~) play_move_rotate::$6 ← (byte) play_collision::return#13 + //SEG259 play_move_rotate::@14 + //SEG260 [123] (byte~) play_move_rotate::$6 ← (byte) play_collision::return#13 // (byte~) play_move_rotate::$6 = (byte) play_collision::return#13 // register copy reg byte a - //SEG262 [125] if((byte~) play_move_rotate::$6!=(const byte) COLLISION_NONE#0) goto play_move_rotate::@return -- vbuaa_neq_vbuc1_then_la1 + //SEG261 [124] if((byte~) play_move_rotate::$6!=(const byte) COLLISION_NONE#0) goto play_move_rotate::@return -- vbuaa_neq_vbuc1_then_la1 cmp #COLLISION_NONE bne b3 - //SEG263 play_move_rotate::@11 - //SEG264 [126] (byte) current_orientation#4 ← (byte) play_move_rotate::orientation#3 -- vbuz1=vbuz2 + //SEG262 play_move_rotate::@11 + //SEG263 [125] (byte) current_orientation#4 ← (byte) play_move_rotate::orientation#3 -- vbuz1=vbuz2 lda orientation sta current_orientation - //SEG265 [127] (byte*) current_piece_gfx#3 ← (byte*) current_piece#10 + (byte) current_orientation#4 -- pbuz1=pbuz2_plus_vbuz3 + //SEG264 [126] (byte*) current_piece_gfx#3 ← (byte*) current_piece#10 + (byte) current_orientation#4 -- pbuz1=pbuz2_plus_vbuz3 clc adc current_piece sta current_piece_gfx lda #0 adc current_piece+1 sta current_piece_gfx+1 - //SEG266 [113] phi from play_move_rotate::@11 to play_move_rotate::@return [phi:play_move_rotate::@11->play_move_rotate::@return] - //SEG267 [113] phi (byte*) current_piece_gfx#14 = (byte*) current_piece_gfx#3 [phi:play_move_rotate::@11->play_move_rotate::@return#0] -- register_copy - //SEG268 [113] phi (byte) current_orientation#19 = (byte) current_orientation#4 [phi:play_move_rotate::@11->play_move_rotate::@return#1] -- register_copy - //SEG269 [113] phi (byte) play_move_rotate::return#1 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_move_rotate::@11->play_move_rotate::@return#2] -- vbuaa=vbuc1 + //SEG265 [112] phi from play_move_rotate::@11 to play_move_rotate::@return [phi:play_move_rotate::@11->play_move_rotate::@return] + //SEG266 [112] phi (byte*) current_piece_gfx#14 = (byte*) current_piece_gfx#3 [phi:play_move_rotate::@11->play_move_rotate::@return#0] -- register_copy + //SEG267 [112] phi (byte) current_orientation#19 = (byte) current_orientation#4 [phi:play_move_rotate::@11->play_move_rotate::@return#1] -- register_copy + //SEG268 [112] phi (byte) play_move_rotate::return#1 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_move_rotate::@11->play_move_rotate::@return#2] -- vbuaa=vbuc1 lda #1 jmp breturn - //SEG270 play_move_rotate::@1 + //SEG269 play_move_rotate::@1 b1: - //SEG271 [128] (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 ← (byte) current_orientation#14 - (byte/signed byte/word/signed word/dword/signed dword) 16 -- vbuaa=vbuz1_minus_vbuc1 + //SEG270 [127] (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 ← (byte) current_orientation#14 - (byte/signed byte/word/signed word/dword/signed dword) 16 -- vbuaa=vbuz1_minus_vbuc1 lda current_orientation sec sbc #$10 - //SEG272 [129] (byte) play_move_rotate::orientation#1 ← (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 & (byte/signed byte/word/signed word/dword/signed dword) 63 -- vbuz1=vbuaa_band_vbuc1 + //SEG271 [128] (byte) play_move_rotate::orientation#1 ← (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 & (byte/signed byte/word/signed word/dword/signed dword) 63 -- vbuz1=vbuaa_band_vbuc1 and #$3f sta orientation jmp b4 } -//SEG273 play_collision +//SEG272 play_collision play_collision: { .label xpos = 6 .label piece_gfx = 7 .label ypos2 = 9 .label playfield_line = $17 - .label i = $21 + .label i = $1f .label col = $c .label l = $a .label i_2 = $b .label i_3 = $b .label i_11 = $b .label i_13 = $b - //SEG274 [131] (byte*) play_collision::piece_gfx#0 ← (byte*) current_piece#12 + (byte) play_collision::orientation#4 -- pbuz1=pbuz1_plus_vbuxx + //SEG273 [130] (byte*) play_collision::piece_gfx#0 ← (byte*) current_piece#12 + (byte) play_collision::orientation#4 -- pbuz1=pbuz1_plus_vbuxx txa clc adc piece_gfx @@ -17856,551 +17675,551 @@ play_collision: { lda #0 adc piece_gfx+1 sta piece_gfx+1 - //SEG275 [132] (byte) play_collision::ypos2#0 ← (byte) play_collision::ypos#4 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuyy_rol_1 + //SEG274 [131] (byte) play_collision::ypos2#0 ← (byte) play_collision::ypos#4 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuyy_rol_1 tya asl sta ypos2 - //SEG276 [133] phi from play_collision to play_collision::@1 [phi:play_collision->play_collision::@1] - //SEG277 [133] phi (byte) play_collision::l#6 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_collision->play_collision::@1#0] -- vbuz1=vbuc1 + //SEG275 [132] phi from play_collision to play_collision::@1 [phi:play_collision->play_collision::@1] + //SEG276 [132] phi (byte) play_collision::l#6 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_collision->play_collision::@1#0] -- vbuz1=vbuc1 lda #0 sta l - //SEG278 [133] phi (byte) play_collision::i#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_collision->play_collision::@1#1] -- vbuz1=vbuc1 + //SEG277 [132] phi (byte) play_collision::i#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_collision->play_collision::@1#1] -- vbuz1=vbuc1 sta i_3 - //SEG279 [133] phi (byte) play_collision::ypos2#2 = (byte) play_collision::ypos2#0 [phi:play_collision->play_collision::@1#2] -- register_copy - //SEG280 play_collision::@1 + //SEG278 [132] phi (byte) play_collision::ypos2#2 = (byte) play_collision::ypos2#0 [phi:play_collision->play_collision::@1#2] -- register_copy + //SEG279 play_collision::@1 b1: - //SEG281 [134] (byte*) play_collision::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) play_collision::ypos2#2) -- pbuz1=pptc1_derefidx_vbuz2 + //SEG280 [133] (byte*) play_collision::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) play_collision::ypos2#2) -- pbuz1=pptc1_derefidx_vbuz2 ldy ypos2 lda playfield_lines,y sta playfield_line lda playfield_lines+1,y sta playfield_line+1 - //SEG282 [135] (byte~) play_collision::col#9 ← (byte) play_collision::xpos#5 -- vbuz1=vbuz2 + //SEG281 [134] (byte~) play_collision::col#9 ← (byte) play_collision::xpos#5 -- vbuz1=vbuz2 lda xpos sta col - //SEG283 [136] phi from play_collision::@1 to play_collision::@2 [phi:play_collision::@1->play_collision::@2] - //SEG284 [136] phi (byte) play_collision::c#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_collision::@1->play_collision::@2#0] -- vbuxx=vbuc1 + //SEG282 [135] phi from play_collision::@1 to play_collision::@2 [phi:play_collision::@1->play_collision::@2] + //SEG283 [135] phi (byte) play_collision::c#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_collision::@1->play_collision::@2#0] -- vbuxx=vbuc1 ldx #0 - //SEG285 [136] phi (byte) play_collision::col#2 = (byte~) play_collision::col#9 [phi:play_collision::@1->play_collision::@2#1] -- register_copy - //SEG286 [136] phi (byte) play_collision::i#2 = (byte) play_collision::i#3 [phi:play_collision::@1->play_collision::@2#2] -- register_copy - //SEG287 play_collision::@2 + //SEG284 [135] phi (byte) play_collision::col#2 = (byte~) play_collision::col#9 [phi:play_collision::@1->play_collision::@2#1] -- register_copy + //SEG285 [135] phi (byte) play_collision::i#2 = (byte) play_collision::i#3 [phi:play_collision::@1->play_collision::@2#2] -- register_copy + //SEG286 play_collision::@2 b2: - //SEG288 [137] (byte) play_collision::i#1 ← ++ (byte) play_collision::i#2 -- vbuz1=_inc_vbuz2 + //SEG287 [136] (byte) play_collision::i#1 ← ++ (byte) play_collision::i#2 -- vbuz1=_inc_vbuz2 ldy i_2 iny sty i - //SEG289 [138] if(*((byte*) play_collision::piece_gfx#0 + (byte) play_collision::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_collision::@3 -- pbuz1_derefidx_vbuz2_eq_0_then_la1 + //SEG288 [137] if(*((byte*) play_collision::piece_gfx#0 + (byte) play_collision::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_collision::@3 -- pbuz1_derefidx_vbuz2_eq_0_then_la1 ldy i_2 lda (piece_gfx),y cmp #0 beq b3 - //SEG290 play_collision::@8 - //SEG291 [139] if((byte) play_collision::ypos2#2<(byte/signed byte/word/signed word/dword/signed dword) 2*(const byte) PLAYFIELD_LINES#0) goto play_collision::@4 -- vbuz1_lt_vbuc1_then_la1 + //SEG289 play_collision::@8 + //SEG290 [138] if((byte) play_collision::ypos2#2<(byte/signed byte/word/signed word/dword/signed dword) 2*(const byte) PLAYFIELD_LINES#0) goto play_collision::@4 -- vbuz1_lt_vbuc1_then_la1 lda ypos2 cmp #2*PLAYFIELD_LINES bcc b4 - //SEG292 [140] phi from play_collision::@8 to play_collision::@return [phi:play_collision::@8->play_collision::@return] - //SEG293 [140] phi (byte) play_collision::return#14 = (const byte) COLLISION_BOTTOM#0 [phi:play_collision::@8->play_collision::@return#0] -- vbuaa=vbuc1 + //SEG291 [139] phi from play_collision::@8 to play_collision::@return [phi:play_collision::@8->play_collision::@return] + //SEG292 [139] phi (byte) play_collision::return#14 = (const byte) COLLISION_BOTTOM#0 [phi:play_collision::@8->play_collision::@return#0] -- vbuaa=vbuc1 lda #COLLISION_BOTTOM - //SEG294 play_collision::@return + //SEG293 play_collision::@return breturn: - //SEG295 [141] return + //SEG294 [140] return rts - //SEG296 play_collision::@4 + //SEG295 play_collision::@4 b4: - //SEG297 [142] (byte~) play_collision::$7 ← (byte) play_collision::col#2 & (byte/word/signed word/dword/signed dword) 128 -- vbuaa=vbuz1_band_vbuc1 + //SEG296 [141] (byte~) play_collision::$7 ← (byte) play_collision::col#2 & (byte/word/signed word/dword/signed dword) 128 -- vbuaa=vbuz1_band_vbuc1 lda #$80 and col - //SEG298 [143] if((byte~) play_collision::$7==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_collision::@5 -- vbuaa_eq_0_then_la1 + //SEG297 [142] if((byte~) play_collision::$7==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_collision::@5 -- vbuaa_eq_0_then_la1 cmp #0 beq b5 - //SEG299 [140] phi from play_collision::@4 to play_collision::@return [phi:play_collision::@4->play_collision::@return] - //SEG300 [140] phi (byte) play_collision::return#14 = (const byte) COLLISION_LEFT#0 [phi:play_collision::@4->play_collision::@return#0] -- vbuaa=vbuc1 + //SEG298 [139] phi from play_collision::@4 to play_collision::@return [phi:play_collision::@4->play_collision::@return] + //SEG299 [139] phi (byte) play_collision::return#14 = (const byte) COLLISION_LEFT#0 [phi:play_collision::@4->play_collision::@return#0] -- vbuaa=vbuc1 lda #COLLISION_LEFT jmp breturn - //SEG301 play_collision::@5 + //SEG300 play_collision::@5 b5: - //SEG302 [144] if((byte) play_collision::col#2<(const byte) PLAYFIELD_COLS#0) goto play_collision::@6 -- vbuz1_lt_vbuc1_then_la1 + //SEG301 [143] if((byte) play_collision::col#2<(const byte) PLAYFIELD_COLS#0) goto play_collision::@6 -- vbuz1_lt_vbuc1_then_la1 lda col cmp #PLAYFIELD_COLS bcc b6 - //SEG303 [140] phi from play_collision::@5 to play_collision::@return [phi:play_collision::@5->play_collision::@return] - //SEG304 [140] phi (byte) play_collision::return#14 = (const byte) COLLISION_RIGHT#0 [phi:play_collision::@5->play_collision::@return#0] -- vbuaa=vbuc1 + //SEG302 [139] phi from play_collision::@5 to play_collision::@return [phi:play_collision::@5->play_collision::@return] + //SEG303 [139] phi (byte) play_collision::return#14 = (const byte) COLLISION_RIGHT#0 [phi:play_collision::@5->play_collision::@return#0] -- vbuaa=vbuc1 lda #COLLISION_RIGHT jmp breturn - //SEG305 play_collision::@6 + //SEG304 play_collision::@6 b6: - //SEG306 [145] if(*((byte*) play_collision::playfield_line#0 + (byte) play_collision::col#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_collision::@3 -- pbuz1_derefidx_vbuz2_eq_0_then_la1 + //SEG305 [144] if(*((byte*) play_collision::playfield_line#0 + (byte) play_collision::col#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_collision::@3 -- pbuz1_derefidx_vbuz2_eq_0_then_la1 ldy col lda (playfield_line),y cmp #0 beq b3 - //SEG307 [140] phi from play_collision::@6 to play_collision::@return [phi:play_collision::@6->play_collision::@return] - //SEG308 [140] phi (byte) play_collision::return#14 = (const byte) COLLISION_PLAYFIELD#0 [phi:play_collision::@6->play_collision::@return#0] -- vbuaa=vbuc1 + //SEG306 [139] phi from play_collision::@6 to play_collision::@return [phi:play_collision::@6->play_collision::@return] + //SEG307 [139] phi (byte) play_collision::return#14 = (const byte) COLLISION_PLAYFIELD#0 [phi:play_collision::@6->play_collision::@return#0] -- vbuaa=vbuc1 lda #COLLISION_PLAYFIELD jmp breturn - //SEG309 play_collision::@3 + //SEG308 play_collision::@3 b3: - //SEG310 [146] (byte) play_collision::col#1 ← ++ (byte) play_collision::col#2 -- vbuz1=_inc_vbuz1 + //SEG309 [145] (byte) play_collision::col#1 ← ++ (byte) play_collision::col#2 -- vbuz1=_inc_vbuz1 inc col - //SEG311 [147] (byte) play_collision::c#1 ← ++ (byte) play_collision::c#2 -- vbuxx=_inc_vbuxx + //SEG310 [146] (byte) play_collision::c#1 ← ++ (byte) play_collision::c#2 -- vbuxx=_inc_vbuxx inx - //SEG312 [148] if((byte) play_collision::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto play_collision::@21 -- vbuxx_neq_vbuc1_then_la1 + //SEG311 [147] if((byte) play_collision::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto play_collision::@21 -- vbuxx_neq_vbuc1_then_la1 cpx #4 bne b21 - //SEG313 play_collision::@17 - //SEG314 [149] (byte) play_collision::ypos2#1 ← (byte) play_collision::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 -- vbuz1=vbuz1_plus_2 + //SEG312 play_collision::@17 + //SEG313 [148] (byte) play_collision::ypos2#1 ← (byte) play_collision::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 -- vbuz1=vbuz1_plus_2 lda ypos2 clc adc #2 sta ypos2 - //SEG315 [150] (byte) play_collision::l#1 ← ++ (byte) play_collision::l#6 -- vbuz1=_inc_vbuz1 + //SEG314 [149] (byte) play_collision::l#1 ← ++ (byte) play_collision::l#6 -- vbuz1=_inc_vbuz1 inc l - //SEG316 [151] if((byte) play_collision::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto play_collision::@20 -- vbuz1_neq_vbuc1_then_la1 + //SEG315 [150] if((byte) play_collision::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto play_collision::@20 -- vbuz1_neq_vbuc1_then_la1 lda l cmp #4 bne b20 - //SEG317 [140] phi from play_collision::@17 to play_collision::@return [phi:play_collision::@17->play_collision::@return] - //SEG318 [140] phi (byte) play_collision::return#14 = (const byte) COLLISION_NONE#0 [phi:play_collision::@17->play_collision::@return#0] -- vbuaa=vbuc1 + //SEG316 [139] phi from play_collision::@17 to play_collision::@return [phi:play_collision::@17->play_collision::@return] + //SEG317 [139] phi (byte) play_collision::return#14 = (const byte) COLLISION_NONE#0 [phi:play_collision::@17->play_collision::@return#0] -- vbuaa=vbuc1 lda #COLLISION_NONE jmp breturn - //SEG319 play_collision::@20 + //SEG318 play_collision::@20 b20: - //SEG320 [152] (byte~) play_collision::i#11 ← (byte) play_collision::i#1 -- vbuz1=vbuz2 + //SEG319 [151] (byte~) play_collision::i#11 ← (byte) play_collision::i#1 -- vbuz1=vbuz2 lda i sta i_11 - //SEG321 [133] phi from play_collision::@20 to play_collision::@1 [phi:play_collision::@20->play_collision::@1] - //SEG322 [133] phi (byte) play_collision::l#6 = (byte) play_collision::l#1 [phi:play_collision::@20->play_collision::@1#0] -- register_copy - //SEG323 [133] phi (byte) play_collision::i#3 = (byte~) play_collision::i#11 [phi:play_collision::@20->play_collision::@1#1] -- register_copy - //SEG324 [133] phi (byte) play_collision::ypos2#2 = (byte) play_collision::ypos2#1 [phi:play_collision::@20->play_collision::@1#2] -- register_copy + //SEG320 [132] phi from play_collision::@20 to play_collision::@1 [phi:play_collision::@20->play_collision::@1] + //SEG321 [132] phi (byte) play_collision::l#6 = (byte) play_collision::l#1 [phi:play_collision::@20->play_collision::@1#0] -- register_copy + //SEG322 [132] phi (byte) play_collision::i#3 = (byte~) play_collision::i#11 [phi:play_collision::@20->play_collision::@1#1] -- register_copy + //SEG323 [132] phi (byte) play_collision::ypos2#2 = (byte) play_collision::ypos2#1 [phi:play_collision::@20->play_collision::@1#2] -- register_copy jmp b1 - //SEG325 play_collision::@21 + //SEG324 play_collision::@21 b21: - //SEG326 [153] (byte~) play_collision::i#13 ← (byte) play_collision::i#1 -- vbuz1=vbuz2 + //SEG325 [152] (byte~) play_collision::i#13 ← (byte) play_collision::i#1 -- vbuz1=vbuz2 lda i sta i_13 - //SEG327 [136] phi from play_collision::@21 to play_collision::@2 [phi:play_collision::@21->play_collision::@2] - //SEG328 [136] phi (byte) play_collision::c#2 = (byte) play_collision::c#1 [phi:play_collision::@21->play_collision::@2#0] -- register_copy - //SEG329 [136] phi (byte) play_collision::col#2 = (byte) play_collision::col#1 [phi:play_collision::@21->play_collision::@2#1] -- register_copy - //SEG330 [136] phi (byte) play_collision::i#2 = (byte~) play_collision::i#13 [phi:play_collision::@21->play_collision::@2#2] -- register_copy + //SEG326 [135] phi from play_collision::@21 to play_collision::@2 [phi:play_collision::@21->play_collision::@2] + //SEG327 [135] phi (byte) play_collision::c#2 = (byte) play_collision::c#1 [phi:play_collision::@21->play_collision::@2#0] -- register_copy + //SEG328 [135] phi (byte) play_collision::col#2 = (byte) play_collision::col#1 [phi:play_collision::@21->play_collision::@2#1] -- register_copy + //SEG329 [135] phi (byte) play_collision::i#2 = (byte~) play_collision::i#13 [phi:play_collision::@21->play_collision::@2#2] -- register_copy jmp b2 } -//SEG331 play_move_leftright +//SEG330 play_move_leftright play_move_leftright: { - //SEG332 [154] if((byte) play_move_leftright::key_event#0==(const byte) KEY_COMMA#0) goto play_move_leftright::@1 -- vbuaa_eq_vbuc1_then_la1 + //SEG331 [153] if((byte) play_move_leftright::key_event#0==(const byte) KEY_COMMA#0) goto play_move_leftright::@1 -- vbuaa_eq_vbuc1_then_la1 cmp #KEY_COMMA beq b1 - //SEG333 play_move_leftright::@6 - //SEG334 [155] if((byte) play_move_leftright::key_event#0!=(const byte) KEY_DOT#0) goto play_move_leftright::@return -- vbuaa_neq_vbuc1_then_la1 + //SEG332 play_move_leftright::@6 + //SEG333 [154] if((byte) play_move_leftright::key_event#0!=(const byte) KEY_DOT#0) goto play_move_leftright::@return -- vbuaa_neq_vbuc1_then_la1 cmp #KEY_DOT bne b3 - //SEG335 play_move_leftright::@7 - //SEG336 [156] (byte) play_collision::xpos#2 ← (byte) current_xpos#1 + (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_plus_1 + //SEG334 play_move_leftright::@7 + //SEG335 [155] (byte) play_collision::xpos#2 ← (byte) current_xpos#1 + (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_plus_1 ldy current_xpos iny sty play_collision.xpos - //SEG337 [157] (byte) play_collision::ypos#2 ← (byte) current_ypos#13 -- vbuyy=vbuz1 + //SEG336 [156] (byte) play_collision::ypos#2 ← (byte) current_ypos#13 -- vbuyy=vbuz1 ldy current_ypos - //SEG338 [158] (byte) play_collision::orientation#2 ← (byte) current_orientation#14 -- vbuxx=vbuz1 + //SEG337 [157] (byte) play_collision::orientation#2 ← (byte) current_orientation#14 -- vbuxx=vbuz1 ldx current_orientation - //SEG339 [159] (byte*~) current_piece#76 ← (byte*) current_piece#10 -- pbuz1=pbuz2 + //SEG338 [158] (byte*~) current_piece#76 ← (byte*) current_piece#10 -- pbuz1=pbuz2 lda current_piece sta current_piece_76 lda current_piece+1 sta current_piece_76+1 - //SEG340 [160] call play_collision - //SEG341 [130] phi from play_move_leftright::@7 to play_collision [phi:play_move_leftright::@7->play_collision] - //SEG342 [130] phi (byte) play_collision::xpos#5 = (byte) play_collision::xpos#2 [phi:play_move_leftright::@7->play_collision#0] -- register_copy - //SEG343 [130] phi (byte) play_collision::ypos#4 = (byte) play_collision::ypos#2 [phi:play_move_leftright::@7->play_collision#1] -- register_copy - //SEG344 [130] phi (byte) play_collision::orientation#4 = (byte) play_collision::orientation#2 [phi:play_move_leftright::@7->play_collision#2] -- register_copy - //SEG345 [130] phi (byte*) current_piece#12 = (byte*~) current_piece#76 [phi:play_move_leftright::@7->play_collision#3] -- register_copy + //SEG339 [159] call play_collision + //SEG340 [129] phi from play_move_leftright::@7 to play_collision [phi:play_move_leftright::@7->play_collision] + //SEG341 [129] phi (byte) play_collision::xpos#5 = (byte) play_collision::xpos#2 [phi:play_move_leftright::@7->play_collision#0] -- register_copy + //SEG342 [129] phi (byte) play_collision::ypos#4 = (byte) play_collision::ypos#2 [phi:play_move_leftright::@7->play_collision#1] -- register_copy + //SEG343 [129] phi (byte) play_collision::orientation#4 = (byte) play_collision::orientation#2 [phi:play_move_leftright::@7->play_collision#2] -- register_copy + //SEG344 [129] phi (byte*) current_piece#12 = (byte*~) current_piece#76 [phi:play_move_leftright::@7->play_collision#3] -- register_copy jsr play_collision - //SEG346 [161] (byte) play_collision::return#12 ← (byte) play_collision::return#14 + //SEG345 [160] (byte) play_collision::return#12 ← (byte) play_collision::return#14 // (byte) play_collision::return#12 = (byte) play_collision::return#14 // register copy reg byte a - //SEG347 play_move_leftright::@15 - //SEG348 [162] (byte~) play_move_leftright::$4 ← (byte) play_collision::return#12 + //SEG346 play_move_leftright::@15 + //SEG347 [161] (byte~) play_move_leftright::$4 ← (byte) play_collision::return#12 // (byte~) play_move_leftright::$4 = (byte) play_collision::return#12 // register copy reg byte a - //SEG349 [163] if((byte~) play_move_leftright::$4!=(const byte) COLLISION_NONE#0) goto play_move_leftright::@return -- vbuaa_neq_vbuc1_then_la1 + //SEG348 [162] if((byte~) play_move_leftright::$4!=(const byte) COLLISION_NONE#0) goto play_move_leftright::@return -- vbuaa_neq_vbuc1_then_la1 cmp #COLLISION_NONE bne b3 - //SEG350 play_move_leftright::@8 - //SEG351 [164] (byte) current_xpos#2 ← ++ (byte) current_xpos#1 -- vbuz1=_inc_vbuz1 + //SEG349 play_move_leftright::@8 + //SEG350 [163] (byte) current_xpos#2 ← ++ (byte) current_xpos#1 -- vbuz1=_inc_vbuz1 inc current_xpos - //SEG352 [165] phi from play_move_leftright::@11 play_move_leftright::@8 to play_move_leftright::@return [phi:play_move_leftright::@11/play_move_leftright::@8->play_move_leftright::@return] + //SEG351 [164] phi from play_move_leftright::@11 play_move_leftright::@8 to play_move_leftright::@return [phi:play_move_leftright::@11/play_move_leftright::@8->play_move_leftright::@return] b2: - //SEG353 [165] phi (byte) current_xpos#19 = (byte) current_xpos#4 [phi:play_move_leftright::@11/play_move_leftright::@8->play_move_leftright::@return#0] -- register_copy - //SEG354 [165] phi (byte) play_move_leftright::return#1 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_move_leftright::@11/play_move_leftright::@8->play_move_leftright::@return#1] -- vbuaa=vbuc1 + //SEG352 [164] phi (byte) current_xpos#19 = (byte) current_xpos#4 [phi:play_move_leftright::@11/play_move_leftright::@8->play_move_leftright::@return#0] -- register_copy + //SEG353 [164] phi (byte) play_move_leftright::return#1 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_move_leftright::@11/play_move_leftright::@8->play_move_leftright::@return#1] -- vbuaa=vbuc1 lda #1 jmp breturn - //SEG355 [165] phi from play_move_leftright::@14 play_move_leftright::@15 play_move_leftright::@6 to play_move_leftright::@return [phi:play_move_leftright::@14/play_move_leftright::@15/play_move_leftright::@6->play_move_leftright::@return] + //SEG354 [164] phi from play_move_leftright::@14 play_move_leftright::@15 play_move_leftright::@6 to play_move_leftright::@return [phi:play_move_leftright::@14/play_move_leftright::@15/play_move_leftright::@6->play_move_leftright::@return] b3: - //SEG356 [165] phi (byte) current_xpos#19 = (byte) current_xpos#1 [phi:play_move_leftright::@14/play_move_leftright::@15/play_move_leftright::@6->play_move_leftright::@return#0] -- register_copy - //SEG357 [165] phi (byte) play_move_leftright::return#1 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_leftright::@14/play_move_leftright::@15/play_move_leftright::@6->play_move_leftright::@return#1] -- vbuaa=vbuc1 + //SEG355 [164] phi (byte) current_xpos#19 = (byte) current_xpos#1 [phi:play_move_leftright::@14/play_move_leftright::@15/play_move_leftright::@6->play_move_leftright::@return#0] -- register_copy + //SEG356 [164] phi (byte) play_move_leftright::return#1 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_leftright::@14/play_move_leftright::@15/play_move_leftright::@6->play_move_leftright::@return#1] -- vbuaa=vbuc1 lda #0 - //SEG358 play_move_leftright::@return + //SEG357 play_move_leftright::@return breturn: - //SEG359 [166] return + //SEG358 [165] return rts - //SEG360 play_move_leftright::@1 + //SEG359 play_move_leftright::@1 b1: - //SEG361 [167] (byte) play_collision::xpos#1 ← (byte) current_xpos#1 - (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_minus_1 + //SEG360 [166] (byte) play_collision::xpos#1 ← (byte) current_xpos#1 - (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_minus_1 ldx current_xpos dex stx play_collision.xpos - //SEG362 [168] (byte) play_collision::ypos#1 ← (byte) current_ypos#13 -- vbuyy=vbuz1 + //SEG361 [167] (byte) play_collision::ypos#1 ← (byte) current_ypos#13 -- vbuyy=vbuz1 ldy current_ypos - //SEG363 [169] (byte) play_collision::orientation#1 ← (byte) current_orientation#14 -- vbuxx=vbuz1 + //SEG362 [168] (byte) play_collision::orientation#1 ← (byte) current_orientation#14 -- vbuxx=vbuz1 ldx current_orientation - //SEG364 [170] (byte*~) current_piece#75 ← (byte*) current_piece#10 -- pbuz1=pbuz2 + //SEG363 [169] (byte*~) current_piece#75 ← (byte*) current_piece#10 -- pbuz1=pbuz2 lda current_piece sta current_piece_75 lda current_piece+1 sta current_piece_75+1 - //SEG365 [171] call play_collision - //SEG366 [130] phi from play_move_leftright::@1 to play_collision [phi:play_move_leftright::@1->play_collision] - //SEG367 [130] phi (byte) play_collision::xpos#5 = (byte) play_collision::xpos#1 [phi:play_move_leftright::@1->play_collision#0] -- register_copy - //SEG368 [130] phi (byte) play_collision::ypos#4 = (byte) play_collision::ypos#1 [phi:play_move_leftright::@1->play_collision#1] -- register_copy - //SEG369 [130] phi (byte) play_collision::orientation#4 = (byte) play_collision::orientation#1 [phi:play_move_leftright::@1->play_collision#2] -- register_copy - //SEG370 [130] phi (byte*) current_piece#12 = (byte*~) current_piece#75 [phi:play_move_leftright::@1->play_collision#3] -- register_copy + //SEG364 [170] call play_collision + //SEG365 [129] phi from play_move_leftright::@1 to play_collision [phi:play_move_leftright::@1->play_collision] + //SEG366 [129] phi (byte) play_collision::xpos#5 = (byte) play_collision::xpos#1 [phi:play_move_leftright::@1->play_collision#0] -- register_copy + //SEG367 [129] phi (byte) play_collision::ypos#4 = (byte) play_collision::ypos#1 [phi:play_move_leftright::@1->play_collision#1] -- register_copy + //SEG368 [129] phi (byte) play_collision::orientation#4 = (byte) play_collision::orientation#1 [phi:play_move_leftright::@1->play_collision#2] -- register_copy + //SEG369 [129] phi (byte*) current_piece#12 = (byte*~) current_piece#75 [phi:play_move_leftright::@1->play_collision#3] -- register_copy jsr play_collision - //SEG371 [172] (byte) play_collision::return#1 ← (byte) play_collision::return#14 + //SEG370 [171] (byte) play_collision::return#1 ← (byte) play_collision::return#14 // (byte) play_collision::return#1 = (byte) play_collision::return#14 // register copy reg byte a - //SEG372 play_move_leftright::@14 - //SEG373 [173] (byte~) play_move_leftright::$8 ← (byte) play_collision::return#1 + //SEG371 play_move_leftright::@14 + //SEG372 [172] (byte~) play_move_leftright::$8 ← (byte) play_collision::return#1 // (byte~) play_move_leftright::$8 = (byte) play_collision::return#1 // register copy reg byte a - //SEG374 [174] if((byte~) play_move_leftright::$8!=(const byte) COLLISION_NONE#0) goto play_move_leftright::@return -- vbuaa_neq_vbuc1_then_la1 + //SEG373 [173] if((byte~) play_move_leftright::$8!=(const byte) COLLISION_NONE#0) goto play_move_leftright::@return -- vbuaa_neq_vbuc1_then_la1 cmp #COLLISION_NONE bne b3 - //SEG375 play_move_leftright::@11 - //SEG376 [175] (byte) current_xpos#4 ← -- (byte) current_xpos#1 -- vbuz1=_dec_vbuz1 + //SEG374 play_move_leftright::@11 + //SEG375 [174] (byte) current_xpos#4 ← -- (byte) current_xpos#1 -- vbuz1=_dec_vbuz1 dec current_xpos jmp b2 } -//SEG377 play_move_down +//SEG376 play_move_down play_move_down: { - //SEG378 [176] (byte) current_movedown_counter#1 ← ++ (byte) current_movedown_counter#12 -- vbuz1=_inc_vbuz1 + //SEG377 [175] (byte) current_movedown_counter#1 ← ++ (byte) current_movedown_counter#12 -- vbuz1=_inc_vbuz1 inc current_movedown_counter - //SEG379 [177] if((byte) play_move_down::key_event#0!=(const byte) KEY_SPACE#0) goto play_move_down::@1 -- vbuaa_neq_vbuc1_then_la1 + //SEG378 [176] if((byte) play_move_down::key_event#0!=(const byte) KEY_SPACE#0) goto play_move_down::@1 -- vbuaa_neq_vbuc1_then_la1 cmp #KEY_SPACE bne b3 - //SEG380 [178] phi from play_move_down to play_move_down::@8 [phi:play_move_down->play_move_down::@8] - //SEG381 play_move_down::@8 - //SEG382 [179] phi from play_move_down::@8 to play_move_down::@1 [phi:play_move_down::@8->play_move_down::@1] - //SEG383 [179] phi (byte) play_move_down::movedown#10 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_move_down::@8->play_move_down::@1#0] -- vbuxx=vbuc1 + //SEG379 [177] phi from play_move_down to play_move_down::@8 [phi:play_move_down->play_move_down::@8] + //SEG380 play_move_down::@8 + //SEG381 [178] phi from play_move_down::@8 to play_move_down::@1 [phi:play_move_down::@8->play_move_down::@1] + //SEG382 [178] phi (byte) play_move_down::movedown#10 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_move_down::@8->play_move_down::@1#0] -- vbuxx=vbuc1 ldx #1 jmp b1 - //SEG384 [179] phi from play_move_down to play_move_down::@1 [phi:play_move_down->play_move_down::@1] + //SEG383 [178] phi from play_move_down to play_move_down::@1 [phi:play_move_down->play_move_down::@1] b3: - //SEG385 [179] phi (byte) play_move_down::movedown#10 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_down->play_move_down::@1#0] -- vbuxx=vbuc1 + //SEG384 [178] phi (byte) play_move_down::movedown#10 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_down->play_move_down::@1#0] -- vbuxx=vbuc1 ldx #0 - //SEG386 play_move_down::@1 + //SEG385 play_move_down::@1 b1: - //SEG387 [180] call keyboard_event_pressed - //SEG388 [265] phi from play_move_down::@1 to keyboard_event_pressed [phi:play_move_down::@1->keyboard_event_pressed] - //SEG389 [265] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_SPACE#0 [phi:play_move_down::@1->keyboard_event_pressed#0] -- vbuz1=vbuc1 + //SEG386 [179] call keyboard_event_pressed + //SEG387 [264] phi from play_move_down::@1 to keyboard_event_pressed [phi:play_move_down::@1->keyboard_event_pressed] + //SEG388 [264] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_SPACE#0 [phi:play_move_down::@1->keyboard_event_pressed#0] -- vbuz1=vbuc1 lda #KEY_SPACE sta keyboard_event_pressed.keycode jsr keyboard_event_pressed - //SEG390 [181] (byte) keyboard_event_pressed::return#12 ← (byte) keyboard_event_pressed::return#11 + //SEG389 [180] (byte) keyboard_event_pressed::return#12 ← (byte) keyboard_event_pressed::return#11 // (byte) keyboard_event_pressed::return#12 = (byte) keyboard_event_pressed::return#11 // register copy reg byte a - //SEG391 play_move_down::@17 - //SEG392 [182] (byte~) play_move_down::$2 ← (byte) keyboard_event_pressed::return#12 + //SEG390 play_move_down::@17 + //SEG391 [181] (byte~) play_move_down::$2 ← (byte) keyboard_event_pressed::return#12 // (byte~) play_move_down::$2 = (byte) keyboard_event_pressed::return#12 // register copy reg byte a - //SEG393 [183] if((byte~) play_move_down::$2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_move_down::@2 -- vbuaa_eq_0_then_la1 + //SEG392 [182] if((byte~) play_move_down::$2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_move_down::@2 -- vbuaa_eq_0_then_la1 cmp #0 beq b2 - //SEG394 play_move_down::@9 - //SEG395 [184] if((byte) current_movedown_counter#1<(const byte) current_movedown_fast#0) goto play_move_down::@2 -- vbuz1_lt_vbuc1_then_la1 + //SEG393 play_move_down::@9 + //SEG394 [183] if((byte) current_movedown_counter#1<(const byte) current_movedown_fast#0) goto play_move_down::@2 -- vbuz1_lt_vbuc1_then_la1 lda current_movedown_counter cmp #current_movedown_fast bcc b2 - //SEG396 play_move_down::@10 - //SEG397 [185] (byte) play_move_down::movedown#2 ← ++ (byte) play_move_down::movedown#10 -- vbuxx=_inc_vbuxx + //SEG395 play_move_down::@10 + //SEG396 [184] (byte) play_move_down::movedown#2 ← ++ (byte) play_move_down::movedown#10 -- vbuxx=_inc_vbuxx inx - //SEG398 [186] phi from play_move_down::@10 play_move_down::@17 play_move_down::@9 to play_move_down::@2 [phi:play_move_down::@10/play_move_down::@17/play_move_down::@9->play_move_down::@2] - //SEG399 [186] phi (byte) play_move_down::movedown#7 = (byte) play_move_down::movedown#2 [phi:play_move_down::@10/play_move_down::@17/play_move_down::@9->play_move_down::@2#0] -- register_copy - //SEG400 play_move_down::@2 + //SEG397 [185] phi from play_move_down::@10 play_move_down::@17 play_move_down::@9 to play_move_down::@2 [phi:play_move_down::@10/play_move_down::@17/play_move_down::@9->play_move_down::@2] + //SEG398 [185] phi (byte) play_move_down::movedown#7 = (byte) play_move_down::movedown#2 [phi:play_move_down::@10/play_move_down::@17/play_move_down::@9->play_move_down::@2#0] -- register_copy + //SEG399 play_move_down::@2 b2: - //SEG401 [187] if((byte) current_movedown_counter#1<(const byte) current_movedown_slow#0) goto play_move_down::@4 -- vbuz1_lt_vbuc1_then_la1 + //SEG400 [186] if((byte) current_movedown_counter#1<(const byte) current_movedown_slow#0) goto play_move_down::@4 -- vbuz1_lt_vbuc1_then_la1 lda current_movedown_counter cmp #current_movedown_slow bcc b4 - //SEG402 play_move_down::@11 - //SEG403 [188] (byte) play_move_down::movedown#3 ← ++ (byte) play_move_down::movedown#7 -- vbuxx=_inc_vbuxx + //SEG401 play_move_down::@11 + //SEG402 [187] (byte) play_move_down::movedown#3 ← ++ (byte) play_move_down::movedown#7 -- vbuxx=_inc_vbuxx inx - //SEG404 [189] phi from play_move_down::@11 play_move_down::@2 to play_move_down::@4 [phi:play_move_down::@11/play_move_down::@2->play_move_down::@4] - //SEG405 [189] phi (byte) play_move_down::movedown#6 = (byte) play_move_down::movedown#3 [phi:play_move_down::@11/play_move_down::@2->play_move_down::@4#0] -- register_copy - //SEG406 play_move_down::@4 + //SEG403 [188] phi from play_move_down::@11 play_move_down::@2 to play_move_down::@4 [phi:play_move_down::@11/play_move_down::@2->play_move_down::@4] + //SEG404 [188] phi (byte) play_move_down::movedown#6 = (byte) play_move_down::movedown#3 [phi:play_move_down::@11/play_move_down::@2->play_move_down::@4#0] -- register_copy + //SEG405 play_move_down::@4 b4: - //SEG407 [190] if((byte) play_move_down::movedown#6==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_move_down::@return -- vbuxx_eq_0_then_la1 + //SEG406 [189] if((byte) play_move_down::movedown#6==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_move_down::@return -- vbuxx_eq_0_then_la1 cpx #0 beq b5 - //SEG408 play_move_down::@12 - //SEG409 [191] (byte) play_collision::ypos#0 ← (byte) current_ypos#21 + (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuyy=vbuz1_plus_1 + //SEG407 play_move_down::@12 + //SEG408 [190] (byte) play_collision::ypos#0 ← (byte) current_ypos#21 + (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuyy=vbuz1_plus_1 ldy current_ypos iny - //SEG410 [192] (byte) play_collision::xpos#0 ← (byte) current_xpos#10 -- vbuz1=vbuz2 + //SEG409 [191] (byte) play_collision::xpos#0 ← (byte) current_xpos#10 -- vbuz1=vbuz2 lda current_xpos sta play_collision.xpos - //SEG411 [193] (byte) play_collision::orientation#0 ← (byte) current_orientation#10 -- vbuxx=vbuz1 + //SEG410 [192] (byte) play_collision::orientation#0 ← (byte) current_orientation#10 -- vbuxx=vbuz1 ldx current_orientation - //SEG412 [194] (byte*~) current_piece#74 ← (byte*) current_piece#16 -- pbuz1=pbuz2 + //SEG411 [193] (byte*~) current_piece#74 ← (byte*) current_piece#16 -- pbuz1=pbuz2 lda current_piece sta current_piece_74 lda current_piece+1 sta current_piece_74+1 - //SEG413 [195] call play_collision - //SEG414 [130] phi from play_move_down::@12 to play_collision [phi:play_move_down::@12->play_collision] - //SEG415 [130] phi (byte) play_collision::xpos#5 = (byte) play_collision::xpos#0 [phi:play_move_down::@12->play_collision#0] -- register_copy - //SEG416 [130] phi (byte) play_collision::ypos#4 = (byte) play_collision::ypos#0 [phi:play_move_down::@12->play_collision#1] -- register_copy - //SEG417 [130] phi (byte) play_collision::orientation#4 = (byte) play_collision::orientation#0 [phi:play_move_down::@12->play_collision#2] -- register_copy - //SEG418 [130] phi (byte*) current_piece#12 = (byte*~) current_piece#74 [phi:play_move_down::@12->play_collision#3] -- register_copy + //SEG412 [194] call play_collision + //SEG413 [129] phi from play_move_down::@12 to play_collision [phi:play_move_down::@12->play_collision] + //SEG414 [129] phi (byte) play_collision::xpos#5 = (byte) play_collision::xpos#0 [phi:play_move_down::@12->play_collision#0] -- register_copy + //SEG415 [129] phi (byte) play_collision::ypos#4 = (byte) play_collision::ypos#0 [phi:play_move_down::@12->play_collision#1] -- register_copy + //SEG416 [129] phi (byte) play_collision::orientation#4 = (byte) play_collision::orientation#0 [phi:play_move_down::@12->play_collision#2] -- register_copy + //SEG417 [129] phi (byte*) current_piece#12 = (byte*~) current_piece#74 [phi:play_move_down::@12->play_collision#3] -- register_copy jsr play_collision - //SEG419 [196] (byte) play_collision::return#0 ← (byte) play_collision::return#14 + //SEG418 [195] (byte) play_collision::return#0 ← (byte) play_collision::return#14 // (byte) play_collision::return#0 = (byte) play_collision::return#14 // register copy reg byte a - //SEG420 play_move_down::@18 - //SEG421 [197] (byte~) play_move_down::$12 ← (byte) play_collision::return#0 + //SEG419 play_move_down::@18 + //SEG420 [196] (byte~) play_move_down::$12 ← (byte) play_collision::return#0 // (byte~) play_move_down::$12 = (byte) play_collision::return#0 // register copy reg byte a - //SEG422 [198] if((byte~) play_move_down::$12==(const byte) COLLISION_NONE#0) goto play_move_down::@6 -- vbuaa_eq_vbuc1_then_la1 + //SEG421 [197] if((byte~) play_move_down::$12==(const byte) COLLISION_NONE#0) goto play_move_down::@6 -- vbuaa_eq_vbuc1_then_la1 cmp #COLLISION_NONE beq b6 - //SEG423 [199] phi from play_move_down::@18 to play_move_down::@13 [phi:play_move_down::@18->play_move_down::@13] - //SEG424 play_move_down::@13 - //SEG425 [200] call play_lock_current + //SEG422 [198] phi from play_move_down::@18 to play_move_down::@13 [phi:play_move_down::@18->play_move_down::@13] + //SEG423 play_move_down::@13 + //SEG424 [199] call play_lock_current jsr play_lock_current - //SEG426 [201] phi from play_move_down::@13 to play_move_down::@19 [phi:play_move_down::@13->play_move_down::@19] - //SEG427 play_move_down::@19 - //SEG428 [202] call play_remove_lines - //SEG429 [226] phi from play_move_down::@19 to play_remove_lines [phi:play_move_down::@19->play_remove_lines] + //SEG425 [200] phi from play_move_down::@13 to play_move_down::@19 [phi:play_move_down::@13->play_move_down::@19] + //SEG426 play_move_down::@19 + //SEG427 [201] call play_remove_lines + //SEG428 [225] phi from play_move_down::@19 to play_remove_lines [phi:play_move_down::@19->play_remove_lines] jsr play_remove_lines - //SEG430 [203] phi from play_move_down::@19 to play_move_down::@20 [phi:play_move_down::@19->play_move_down::@20] - //SEG431 play_move_down::@20 - //SEG432 [204] call play_spawn_current - //SEG433 [210] phi from play_move_down::@20 to play_spawn_current [phi:play_move_down::@20->play_spawn_current] + //SEG429 [202] phi from play_move_down::@19 to play_move_down::@20 [phi:play_move_down::@19->play_move_down::@20] + //SEG430 play_move_down::@20 + //SEG431 [203] call play_spawn_current + //SEG432 [209] phi from play_move_down::@20 to play_spawn_current [phi:play_move_down::@20->play_spawn_current] jsr play_spawn_current - //SEG434 [205] (byte*~) current_piece#78 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) -- pbuz1=pptc1_derefidx_vbuz2 + //SEG433 [204] (byte*~) current_piece#78 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) -- pbuz1=pptc1_derefidx_vbuz2 ldy play_spawn_current._3 lda PIECES,y sta current_piece lda PIECES+1,y sta current_piece+1 - //SEG435 [206] phi from play_move_down::@20 to play_move_down::@7 [phi:play_move_down::@20->play_move_down::@7] - //SEG436 [206] phi (byte) current_piece_char#20 = (byte) current_piece_char#12 [phi:play_move_down::@20->play_move_down::@7#0] -- register_copy - //SEG437 [206] phi (byte) current_xpos#33 = (byte) current_xpos#23 [phi:play_move_down::@20->play_move_down::@7#1] -- register_copy - //SEG438 [206] phi (byte*) current_piece_gfx#26 = (byte*) current_piece_gfx#16 [phi:play_move_down::@20->play_move_down::@7#2] -- register_copy - //SEG439 [206] phi (byte) current_orientation#29 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_down::@20->play_move_down::@7#3] -- vbuz1=vbuc1 + //SEG434 [205] phi from play_move_down::@20 to play_move_down::@7 [phi:play_move_down::@20->play_move_down::@7] + //SEG435 [205] phi (byte) current_piece_char#20 = (byte) current_piece_char#12 [phi:play_move_down::@20->play_move_down::@7#0] -- register_copy + //SEG436 [205] phi (byte) current_xpos#33 = (byte) current_xpos#23 [phi:play_move_down::@20->play_move_down::@7#1] -- register_copy + //SEG437 [205] phi (byte*) current_piece_gfx#26 = (byte*) current_piece_gfx#16 [phi:play_move_down::@20->play_move_down::@7#2] -- register_copy + //SEG438 [205] phi (byte) current_orientation#29 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_down::@20->play_move_down::@7#3] -- vbuz1=vbuc1 lda #0 sta current_orientation - //SEG440 [206] phi (byte*) current_piece#20 = (byte*~) current_piece#78 [phi:play_move_down::@20->play_move_down::@7#4] -- register_copy - //SEG441 [206] phi (byte) current_ypos#29 = (byte) current_ypos#18 [phi:play_move_down::@20->play_move_down::@7#5] -- register_copy - //SEG442 play_move_down::@7 + //SEG439 [205] phi (byte*) current_piece#20 = (byte*~) current_piece#78 [phi:play_move_down::@20->play_move_down::@7#4] -- register_copy + //SEG440 [205] phi (byte) current_ypos#29 = (byte) current_ypos#18 [phi:play_move_down::@20->play_move_down::@7#5] -- register_copy + //SEG441 play_move_down::@7 b7: - //SEG443 [207] phi from play_move_down::@7 to play_move_down::@return [phi:play_move_down::@7->play_move_down::@return] - //SEG444 [207] phi (byte) current_piece_char#1 = (byte) current_piece_char#20 [phi:play_move_down::@7->play_move_down::@return#0] -- register_copy - //SEG445 [207] phi (byte) current_xpos#1 = (byte) current_xpos#33 [phi:play_move_down::@7->play_move_down::@return#1] -- register_copy - //SEG446 [207] phi (byte*) current_piece_gfx#1 = (byte*) current_piece_gfx#26 [phi:play_move_down::@7->play_move_down::@return#2] -- register_copy - //SEG447 [207] phi (byte) current_orientation#14 = (byte) current_orientation#29 [phi:play_move_down::@7->play_move_down::@return#3] -- register_copy - //SEG448 [207] phi (byte*) current_piece#10 = (byte*) current_piece#20 [phi:play_move_down::@7->play_move_down::@return#4] -- register_copy - //SEG449 [207] phi (byte) current_ypos#13 = (byte) current_ypos#29 [phi:play_move_down::@7->play_move_down::@return#5] -- register_copy - //SEG450 [207] phi (byte) current_movedown_counter#10 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_down::@7->play_move_down::@return#6] -- vbuz1=vbuc1 + //SEG442 [206] phi from play_move_down::@7 to play_move_down::@return [phi:play_move_down::@7->play_move_down::@return] + //SEG443 [206] phi (byte) current_piece_char#1 = (byte) current_piece_char#20 [phi:play_move_down::@7->play_move_down::@return#0] -- register_copy + //SEG444 [206] phi (byte) current_xpos#1 = (byte) current_xpos#33 [phi:play_move_down::@7->play_move_down::@return#1] -- register_copy + //SEG445 [206] phi (byte*) current_piece_gfx#1 = (byte*) current_piece_gfx#26 [phi:play_move_down::@7->play_move_down::@return#2] -- register_copy + //SEG446 [206] phi (byte) current_orientation#14 = (byte) current_orientation#29 [phi:play_move_down::@7->play_move_down::@return#3] -- register_copy + //SEG447 [206] phi (byte*) current_piece#10 = (byte*) current_piece#20 [phi:play_move_down::@7->play_move_down::@return#4] -- register_copy + //SEG448 [206] phi (byte) current_ypos#13 = (byte) current_ypos#29 [phi:play_move_down::@7->play_move_down::@return#5] -- register_copy + //SEG449 [206] phi (byte) current_movedown_counter#10 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_down::@7->play_move_down::@return#6] -- vbuz1=vbuc1 lda #0 sta current_movedown_counter - //SEG451 [207] phi (byte) play_move_down::return#2 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_move_down::@7->play_move_down::@return#7] -- vbuxx=vbuc1 + //SEG450 [206] phi (byte) play_move_down::return#2 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_move_down::@7->play_move_down::@return#7] -- vbuxx=vbuc1 ldx #1 jmp breturn - //SEG452 [207] phi from play_move_down::@4 to play_move_down::@return [phi:play_move_down::@4->play_move_down::@return] + //SEG451 [206] phi from play_move_down::@4 to play_move_down::@return [phi:play_move_down::@4->play_move_down::@return] b5: - //SEG453 [207] phi (byte) current_piece_char#1 = (byte) current_piece_char#15 [phi:play_move_down::@4->play_move_down::@return#0] -- register_copy - //SEG454 [207] phi (byte) current_xpos#1 = (byte) current_xpos#10 [phi:play_move_down::@4->play_move_down::@return#1] -- register_copy - //SEG455 [207] phi (byte*) current_piece_gfx#1 = (byte*) current_piece_gfx#20 [phi:play_move_down::@4->play_move_down::@return#2] -- register_copy - //SEG456 [207] phi (byte) current_orientation#14 = (byte) current_orientation#10 [phi:play_move_down::@4->play_move_down::@return#3] -- register_copy - //SEG457 [207] phi (byte*) current_piece#10 = (byte*) current_piece#16 [phi:play_move_down::@4->play_move_down::@return#4] -- register_copy - //SEG458 [207] phi (byte) current_ypos#13 = (byte) current_ypos#21 [phi:play_move_down::@4->play_move_down::@return#5] -- register_copy - //SEG459 [207] phi (byte) current_movedown_counter#10 = (byte) current_movedown_counter#1 [phi:play_move_down::@4->play_move_down::@return#6] -- register_copy - //SEG460 [207] phi (byte) play_move_down::return#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_down::@4->play_move_down::@return#7] -- vbuxx=vbuc1 + //SEG452 [206] phi (byte) current_piece_char#1 = (byte) current_piece_char#15 [phi:play_move_down::@4->play_move_down::@return#0] -- register_copy + //SEG453 [206] phi (byte) current_xpos#1 = (byte) current_xpos#10 [phi:play_move_down::@4->play_move_down::@return#1] -- register_copy + //SEG454 [206] phi (byte*) current_piece_gfx#1 = (byte*) current_piece_gfx#20 [phi:play_move_down::@4->play_move_down::@return#2] -- register_copy + //SEG455 [206] phi (byte) current_orientation#14 = (byte) current_orientation#10 [phi:play_move_down::@4->play_move_down::@return#3] -- register_copy + //SEG456 [206] phi (byte*) current_piece#10 = (byte*) current_piece#16 [phi:play_move_down::@4->play_move_down::@return#4] -- register_copy + //SEG457 [206] phi (byte) current_ypos#13 = (byte) current_ypos#21 [phi:play_move_down::@4->play_move_down::@return#5] -- register_copy + //SEG458 [206] phi (byte) current_movedown_counter#10 = (byte) current_movedown_counter#1 [phi:play_move_down::@4->play_move_down::@return#6] -- register_copy + //SEG459 [206] phi (byte) play_move_down::return#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_down::@4->play_move_down::@return#7] -- vbuxx=vbuc1 ldx #0 - //SEG461 play_move_down::@return + //SEG460 play_move_down::@return breturn: - //SEG462 [208] return + //SEG461 [207] return rts - //SEG463 play_move_down::@6 + //SEG462 play_move_down::@6 b6: - //SEG464 [209] (byte) current_ypos#0 ← ++ (byte) current_ypos#21 -- vbuz1=_inc_vbuz1 + //SEG463 [208] (byte) current_ypos#0 ← ++ (byte) current_ypos#21 -- vbuz1=_inc_vbuz1 inc current_ypos - //SEG465 [206] phi from play_move_down::@6 to play_move_down::@7 [phi:play_move_down::@6->play_move_down::@7] - //SEG466 [206] phi (byte) current_piece_char#20 = (byte) current_piece_char#15 [phi:play_move_down::@6->play_move_down::@7#0] -- register_copy - //SEG467 [206] phi (byte) current_xpos#33 = (byte) current_xpos#10 [phi:play_move_down::@6->play_move_down::@7#1] -- register_copy - //SEG468 [206] phi (byte*) current_piece_gfx#26 = (byte*) current_piece_gfx#20 [phi:play_move_down::@6->play_move_down::@7#2] -- register_copy - //SEG469 [206] phi (byte) current_orientation#29 = (byte) current_orientation#10 [phi:play_move_down::@6->play_move_down::@7#3] -- register_copy - //SEG470 [206] phi (byte*) current_piece#20 = (byte*) current_piece#16 [phi:play_move_down::@6->play_move_down::@7#4] -- register_copy - //SEG471 [206] phi (byte) current_ypos#29 = (byte) current_ypos#0 [phi:play_move_down::@6->play_move_down::@7#5] -- register_copy + //SEG464 [205] phi from play_move_down::@6 to play_move_down::@7 [phi:play_move_down::@6->play_move_down::@7] + //SEG465 [205] phi (byte) current_piece_char#20 = (byte) current_piece_char#15 [phi:play_move_down::@6->play_move_down::@7#0] -- register_copy + //SEG466 [205] phi (byte) current_xpos#33 = (byte) current_xpos#10 [phi:play_move_down::@6->play_move_down::@7#1] -- register_copy + //SEG467 [205] phi (byte*) current_piece_gfx#26 = (byte*) current_piece_gfx#20 [phi:play_move_down::@6->play_move_down::@7#2] -- register_copy + //SEG468 [205] phi (byte) current_orientation#29 = (byte) current_orientation#10 [phi:play_move_down::@6->play_move_down::@7#3] -- register_copy + //SEG469 [205] phi (byte*) current_piece#20 = (byte*) current_piece#16 [phi:play_move_down::@6->play_move_down::@7#4] -- register_copy + //SEG470 [205] phi (byte) current_ypos#29 = (byte) current_ypos#0 [phi:play_move_down::@6->play_move_down::@7#5] -- register_copy jmp b7 } -//SEG472 play_spawn_current +//SEG471 play_spawn_current play_spawn_current: { .label _3 = 4 - //SEG473 [211] phi from play_spawn_current to play_spawn_current::@1 [phi:play_spawn_current->play_spawn_current::@1] - //SEG474 [211] phi (byte) play_spawn_current::piece_idx#2 = (byte/signed byte/word/signed word/dword/signed dword) 7 [phi:play_spawn_current->play_spawn_current::@1#0] -- vbuxx=vbuc1 + //SEG472 [210] phi from play_spawn_current to play_spawn_current::@1 [phi:play_spawn_current->play_spawn_current::@1] + //SEG473 [210] phi (byte) play_spawn_current::piece_idx#2 = (byte/signed byte/word/signed word/dword/signed dword) 7 [phi:play_spawn_current->play_spawn_current::@1#0] -- vbuxx=vbuc1 ldx #7 - //SEG475 play_spawn_current::@1 + //SEG474 play_spawn_current::@1 b1: - //SEG476 [212] if((byte) play_spawn_current::piece_idx#2==(byte/signed byte/word/signed word/dword/signed dword) 7) goto play_spawn_current::@2 -- vbuxx_eq_vbuc1_then_la1 + //SEG475 [211] if((byte) play_spawn_current::piece_idx#2==(byte/signed byte/word/signed word/dword/signed dword) 7) goto play_spawn_current::@2 -- vbuxx_eq_vbuc1_then_la1 cpx #7 beq b2 - //SEG477 play_spawn_current::@3 - //SEG478 [213] (byte~) play_spawn_current::$3 ← (byte) play_spawn_current::piece_idx#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuxx_rol_1 + //SEG476 play_spawn_current::@3 + //SEG477 [212] (byte~) play_spawn_current::$3 ← (byte) play_spawn_current::piece_idx#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuxx_rol_1 txa asl sta _3 - //SEG479 [214] (byte*) current_piece_gfx#16 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) + (byte/signed byte/word/signed word/dword/signed dword) 0 -- pbuz1=pptc1_derefidx_vbuz2_plus_0 + //SEG478 [213] (byte*) current_piece_gfx#16 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) + (byte/signed byte/word/signed word/dword/signed dword) 0 -- pbuz1=pptc1_derefidx_vbuz2_plus_0 tay lda PIECES,y sta current_piece_gfx lda PIECES+1,y sta current_piece_gfx+1 - //SEG480 [215] (byte) current_xpos#23 ← *((const byte[]) PIECES_START_X#0 + (byte) play_spawn_current::piece_idx#2) -- vbuz1=pbuc1_derefidx_vbuxx + //SEG479 [214] (byte) current_xpos#23 ← *((const byte[]) PIECES_START_X#0 + (byte) play_spawn_current::piece_idx#2) -- vbuz1=pbuc1_derefidx_vbuxx lda PIECES_START_X,x sta current_xpos - //SEG481 [216] (byte) current_ypos#18 ← *((const byte[]) PIECES_START_Y#0 + (byte) play_spawn_current::piece_idx#2) -- vbuz1=pbuc1_derefidx_vbuxx + //SEG480 [215] (byte) current_ypos#18 ← *((const byte[]) PIECES_START_Y#0 + (byte) play_spawn_current::piece_idx#2) -- vbuz1=pbuc1_derefidx_vbuxx lda PIECES_START_Y,x sta current_ypos - //SEG482 [217] (byte) current_piece_char#12 ← *((const byte[]) PIECES_CHARS#0 + (byte) play_spawn_current::piece_idx#2) -- vbuz1=pbuc1_derefidx_vbuxx + //SEG481 [216] (byte) current_piece_char#12 ← *((const byte[]) PIECES_CHARS#0 + (byte) play_spawn_current::piece_idx#2) -- vbuz1=pbuc1_derefidx_vbuxx lda PIECES_CHARS,x sta current_piece_char - //SEG483 play_spawn_current::@return - //SEG484 [218] return + //SEG482 play_spawn_current::@return + //SEG483 [217] return rts - //SEG485 [219] phi from play_spawn_current::@1 to play_spawn_current::@2 [phi:play_spawn_current::@1->play_spawn_current::@2] - //SEG486 play_spawn_current::@2 + //SEG484 [218] phi from play_spawn_current::@1 to play_spawn_current::@2 [phi:play_spawn_current::@1->play_spawn_current::@2] + //SEG485 play_spawn_current::@2 b2: - //SEG487 [220] call sid_rnd + //SEG486 [219] call sid_rnd jsr sid_rnd - //SEG488 [221] (byte) sid_rnd::return#2 ← (byte) sid_rnd::return#0 + //SEG487 [220] (byte) sid_rnd::return#2 ← (byte) sid_rnd::return#0 // (byte) sid_rnd::return#2 = (byte) sid_rnd::return#0 // register copy reg byte a - //SEG489 play_spawn_current::@7 - //SEG490 [222] (byte~) play_spawn_current::$1 ← (byte) sid_rnd::return#2 + //SEG488 play_spawn_current::@7 + //SEG489 [221] (byte~) play_spawn_current::$1 ← (byte) sid_rnd::return#2 // (byte~) play_spawn_current::$1 = (byte) sid_rnd::return#2 // register copy reg byte a - //SEG491 [223] (byte) play_spawn_current::piece_idx#1 ← (byte~) play_spawn_current::$1 & (byte/signed byte/word/signed word/dword/signed dword) 7 -- vbuxx=vbuaa_band_vbuc1 + //SEG490 [222] (byte) play_spawn_current::piece_idx#1 ← (byte~) play_spawn_current::$1 & (byte/signed byte/word/signed word/dword/signed dword) 7 -- vbuxx=vbuaa_band_vbuc1 and #7 tax - //SEG492 [211] phi from play_spawn_current::@7 to play_spawn_current::@1 [phi:play_spawn_current::@7->play_spawn_current::@1] - //SEG493 [211] phi (byte) play_spawn_current::piece_idx#2 = (byte) play_spawn_current::piece_idx#1 [phi:play_spawn_current::@7->play_spawn_current::@1#0] -- register_copy + //SEG491 [210] phi from play_spawn_current::@7 to play_spawn_current::@1 [phi:play_spawn_current::@7->play_spawn_current::@1] + //SEG492 [210] phi (byte) play_spawn_current::piece_idx#2 = (byte) play_spawn_current::piece_idx#1 [phi:play_spawn_current::@7->play_spawn_current::@1#0] -- register_copy jmp b1 } -//SEG494 sid_rnd +//SEG493 sid_rnd sid_rnd: { - //SEG495 [224] (byte) sid_rnd::return#0 ← *((const byte*) SID_VOICE3_OSC#0) -- vbuaa=_deref_pbuc1 + //SEG494 [223] (byte) sid_rnd::return#0 ← *((const byte*) SID_VOICE3_OSC#0) -- vbuaa=_deref_pbuc1 lda SID_VOICE3_OSC - //SEG496 sid_rnd::@return - //SEG497 [225] return + //SEG495 sid_rnd::@return + //SEG496 [224] return rts } -//SEG498 play_remove_lines +//SEG497 play_remove_lines play_remove_lines: { .label c = 9 .label x = 5 .label y = 4 .label full = 6 - //SEG499 [227] phi from play_remove_lines to play_remove_lines::@1 [phi:play_remove_lines->play_remove_lines::@1] - //SEG500 [227] phi (byte) play_remove_lines::y#8 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_remove_lines->play_remove_lines::@1#0] -- vbuz1=vbuc1 + //SEG498 [226] phi from play_remove_lines to play_remove_lines::@1 [phi:play_remove_lines->play_remove_lines::@1] + //SEG499 [226] phi (byte) play_remove_lines::y#8 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_remove_lines->play_remove_lines::@1#0] -- vbuz1=vbuc1 lda #0 sta y - //SEG501 [227] phi (byte) play_remove_lines::w#12 = (const byte) PLAYFIELD_LINES#0*(const byte) PLAYFIELD_COLS#0-(byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_remove_lines->play_remove_lines::@1#1] -- vbuxx=vbuc1 + //SEG500 [226] phi (byte) play_remove_lines::w#12 = (const byte) PLAYFIELD_LINES#0*(const byte) PLAYFIELD_COLS#0-(byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_remove_lines->play_remove_lines::@1#1] -- vbuxx=vbuc1 ldx #PLAYFIELD_LINES*PLAYFIELD_COLS-1 - //SEG502 [227] phi (byte) play_remove_lines::r#3 = (const byte) PLAYFIELD_LINES#0*(const byte) PLAYFIELD_COLS#0-(byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_remove_lines->play_remove_lines::@1#2] -- vbuyy=vbuc1 + //SEG501 [226] phi (byte) play_remove_lines::r#3 = (const byte) PLAYFIELD_LINES#0*(const byte) PLAYFIELD_COLS#0-(byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_remove_lines->play_remove_lines::@1#2] -- vbuyy=vbuc1 ldy #PLAYFIELD_LINES*PLAYFIELD_COLS-1 - //SEG503 [227] phi from play_remove_lines::@4 to play_remove_lines::@1 [phi:play_remove_lines::@4->play_remove_lines::@1] - //SEG504 [227] phi (byte) play_remove_lines::y#8 = (byte) play_remove_lines::y#1 [phi:play_remove_lines::@4->play_remove_lines::@1#0] -- register_copy - //SEG505 [227] phi (byte) play_remove_lines::w#12 = (byte) play_remove_lines::w#11 [phi:play_remove_lines::@4->play_remove_lines::@1#1] -- register_copy - //SEG506 [227] phi (byte) play_remove_lines::r#3 = (byte) play_remove_lines::r#1 [phi:play_remove_lines::@4->play_remove_lines::@1#2] -- register_copy - //SEG507 play_remove_lines::@1 + //SEG502 [226] phi from play_remove_lines::@4 to play_remove_lines::@1 [phi:play_remove_lines::@4->play_remove_lines::@1] + //SEG503 [226] phi (byte) play_remove_lines::y#8 = (byte) play_remove_lines::y#1 [phi:play_remove_lines::@4->play_remove_lines::@1#0] -- register_copy + //SEG504 [226] phi (byte) play_remove_lines::w#12 = (byte) play_remove_lines::w#11 [phi:play_remove_lines::@4->play_remove_lines::@1#1] -- register_copy + //SEG505 [226] phi (byte) play_remove_lines::r#3 = (byte) play_remove_lines::r#1 [phi:play_remove_lines::@4->play_remove_lines::@1#2] -- register_copy + //SEG506 play_remove_lines::@1 b1: - //SEG508 [228] phi from play_remove_lines::@1 to play_remove_lines::@2 [phi:play_remove_lines::@1->play_remove_lines::@2] - //SEG509 [228] phi (byte) play_remove_lines::full#4 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_remove_lines::@1->play_remove_lines::@2#0] -- vbuz1=vbuc1 + //SEG507 [227] phi from play_remove_lines::@1 to play_remove_lines::@2 [phi:play_remove_lines::@1->play_remove_lines::@2] + //SEG508 [227] phi (byte) play_remove_lines::full#4 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_remove_lines::@1->play_remove_lines::@2#0] -- vbuz1=vbuc1 lda #1 sta full - //SEG510 [228] phi (byte) play_remove_lines::x#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_remove_lines::@1->play_remove_lines::@2#1] -- vbuz1=vbuc1 + //SEG509 [227] phi (byte) play_remove_lines::x#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_remove_lines::@1->play_remove_lines::@2#1] -- vbuz1=vbuc1 lda #0 sta x - //SEG511 [228] 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 - //SEG512 [228] 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 - //SEG513 [228] phi from play_remove_lines::@3 to play_remove_lines::@2 [phi:play_remove_lines::@3->play_remove_lines::@2] - //SEG514 [228] 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 - //SEG515 [228] 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 - //SEG516 [228] 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 - //SEG517 [228] 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 - //SEG518 play_remove_lines::@2 + //SEG510 [227] 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 + //SEG511 [227] 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 + //SEG512 [227] phi from play_remove_lines::@3 to play_remove_lines::@2 [phi:play_remove_lines::@3->play_remove_lines::@2] + //SEG513 [227] 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 + //SEG514 [227] 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 + //SEG515 [227] 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 + //SEG516 [227] 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 + //SEG517 play_remove_lines::@2 b2: - //SEG519 [229] (byte) play_remove_lines::c#0 ← *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) play_remove_lines::r#2) -- vbuz1=pbuc1_derefidx_vbuyy + //SEG518 [228] (byte) play_remove_lines::c#0 ← *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) play_remove_lines::r#2) -- vbuz1=pbuc1_derefidx_vbuyy lda playfield,y sta c - //SEG520 [230] (byte) play_remove_lines::r#1 ← -- (byte) play_remove_lines::r#2 -- vbuyy=_dec_vbuyy + //SEG519 [229] (byte) play_remove_lines::r#1 ← -- (byte) play_remove_lines::r#2 -- vbuyy=_dec_vbuyy dey - //SEG521 [231] if((byte) play_remove_lines::c#0!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_remove_lines::@17 -- vbuz1_neq_0_then_la1 + //SEG520 [230] if((byte) play_remove_lines::c#0!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_remove_lines::@17 -- vbuz1_neq_0_then_la1 cmp #0 bne b3 - //SEG522 [232] phi from play_remove_lines::@2 to play_remove_lines::@3 [phi:play_remove_lines::@2->play_remove_lines::@3] - //SEG523 [232] phi (byte) play_remove_lines::full#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_remove_lines::@2->play_remove_lines::@3#0] -- vbuz1=vbuc1 + //SEG521 [231] phi from play_remove_lines::@2 to play_remove_lines::@3 [phi:play_remove_lines::@2->play_remove_lines::@3] + //SEG522 [231] phi (byte) play_remove_lines::full#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_remove_lines::@2->play_remove_lines::@3#0] -- vbuz1=vbuc1 lda #0 sta full - //SEG524 play_remove_lines::@3 + //SEG523 play_remove_lines::@3 b3: - //SEG525 [233] *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) play_remove_lines::w#4) ← (byte) play_remove_lines::c#0 -- pbuc1_derefidx_vbuxx=vbuz1 + //SEG524 [232] *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) play_remove_lines::w#4) ← (byte) play_remove_lines::c#0 -- pbuc1_derefidx_vbuxx=vbuz1 lda c sta playfield,x - //SEG526 [234] (byte) play_remove_lines::w#1 ← -- (byte) play_remove_lines::w#4 -- vbuxx=_dec_vbuxx + //SEG525 [233] (byte) play_remove_lines::w#1 ← -- (byte) play_remove_lines::w#4 -- vbuxx=_dec_vbuxx dex - //SEG527 [235] (byte) play_remove_lines::x#1 ← ++ (byte) play_remove_lines::x#2 -- vbuz1=_inc_vbuz1 + //SEG526 [234] (byte) play_remove_lines::x#1 ← ++ (byte) play_remove_lines::x#2 -- vbuz1=_inc_vbuz1 inc x - //SEG528 [236] if((byte) play_remove_lines::x#1!=(const byte) PLAYFIELD_COLS#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto play_remove_lines::@2 -- vbuz1_neq_vbuc1_then_la1 + //SEG527 [235] if((byte) play_remove_lines::x#1!=(const byte) PLAYFIELD_COLS#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto play_remove_lines::@2 -- vbuz1_neq_vbuc1_then_la1 lda x cmp #PLAYFIELD_COLS-1+1 bne b2 - //SEG529 play_remove_lines::@9 - //SEG530 [237] if((byte) play_remove_lines::full#2!=(byte/signed byte/word/signed word/dword/signed dword) 1) goto play_remove_lines::@4 -- vbuz1_neq_vbuc1_then_la1 + //SEG528 play_remove_lines::@9 + //SEG529 [236] if((byte) play_remove_lines::full#2!=(byte/signed byte/word/signed word/dword/signed dword) 1) goto play_remove_lines::@4 -- vbuz1_neq_vbuc1_then_la1 lda full cmp #1 bne b4 - //SEG531 play_remove_lines::@10 - //SEG532 [238] (byte) play_remove_lines::w#2 ← (byte) play_remove_lines::w#1 + (const byte) PLAYFIELD_COLS#0 -- vbuxx=vbuxx_plus_vbuc1 + //SEG530 play_remove_lines::@10 + //SEG531 [237] (byte) play_remove_lines::w#2 ← (byte) play_remove_lines::w#1 + (const byte) PLAYFIELD_COLS#0 -- vbuxx=vbuxx_plus_vbuc1 txa clc adc #PLAYFIELD_COLS tax - //SEG533 [239] phi from play_remove_lines::@10 play_remove_lines::@9 to play_remove_lines::@4 [phi:play_remove_lines::@10/play_remove_lines::@9->play_remove_lines::@4] - //SEG534 [239] phi (byte) play_remove_lines::w#11 = (byte) play_remove_lines::w#2 [phi:play_remove_lines::@10/play_remove_lines::@9->play_remove_lines::@4#0] -- register_copy - //SEG535 play_remove_lines::@4 + //SEG532 [238] phi from play_remove_lines::@10 play_remove_lines::@9 to play_remove_lines::@4 [phi:play_remove_lines::@10/play_remove_lines::@9->play_remove_lines::@4] + //SEG533 [238] phi (byte) play_remove_lines::w#11 = (byte) play_remove_lines::w#2 [phi:play_remove_lines::@10/play_remove_lines::@9->play_remove_lines::@4#0] -- register_copy + //SEG534 play_remove_lines::@4 b4: - //SEG536 [240] (byte) play_remove_lines::y#1 ← ++ (byte) play_remove_lines::y#8 -- vbuz1=_inc_vbuz1 + //SEG535 [239] (byte) play_remove_lines::y#1 ← ++ (byte) play_remove_lines::y#8 -- vbuz1=_inc_vbuz1 inc y - //SEG537 [241] if((byte) play_remove_lines::y#1!=(const byte) PLAYFIELD_LINES#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto play_remove_lines::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG536 [240] if((byte) play_remove_lines::y#1!=(const byte) PLAYFIELD_LINES#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto play_remove_lines::@1 -- vbuz1_neq_vbuc1_then_la1 lda y cmp #PLAYFIELD_LINES-1+1 bne b1 - //SEG538 [242] phi from play_remove_lines::@4 play_remove_lines::@6 to play_remove_lines::@5 [phi:play_remove_lines::@4/play_remove_lines::@6->play_remove_lines::@5] - //SEG539 [242] phi (byte) play_remove_lines::w#6 = (byte) play_remove_lines::w#11 [phi:play_remove_lines::@4/play_remove_lines::@6->play_remove_lines::@5#0] -- register_copy - //SEG540 play_remove_lines::@5 + //SEG537 [241] phi from play_remove_lines::@4 play_remove_lines::@6 to play_remove_lines::@5 [phi:play_remove_lines::@4/play_remove_lines::@6->play_remove_lines::@5] + //SEG538 [241] phi (byte) play_remove_lines::w#6 = (byte) play_remove_lines::w#11 [phi:play_remove_lines::@4/play_remove_lines::@6->play_remove_lines::@5#0] -- register_copy + //SEG539 play_remove_lines::@5 b5: - //SEG541 [243] if((byte) play_remove_lines::w#6!=(byte/word/signed word/dword/signed dword) 255) goto play_remove_lines::@6 -- vbuxx_neq_vbuc1_then_la1 + //SEG540 [242] if((byte) play_remove_lines::w#6!=(byte/word/signed word/dword/signed dword) 255) goto play_remove_lines::@6 -- vbuxx_neq_vbuc1_then_la1 cpx #$ff bne b6 - //SEG542 play_remove_lines::@return - //SEG543 [244] return + //SEG541 play_remove_lines::@return + //SEG542 [243] return rts - //SEG544 play_remove_lines::@6 + //SEG543 play_remove_lines::@6 b6: - //SEG545 [245] *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) play_remove_lines::w#6) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- pbuc1_derefidx_vbuxx=vbuc2 + //SEG544 [244] *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) play_remove_lines::w#6) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- pbuc1_derefidx_vbuxx=vbuc2 lda #0 sta playfield,x - //SEG546 [246] (byte) play_remove_lines::w#3 ← -- (byte) play_remove_lines::w#6 -- vbuxx=_dec_vbuxx + //SEG545 [245] (byte) play_remove_lines::w#3 ← -- (byte) play_remove_lines::w#6 -- vbuxx=_dec_vbuxx dex jmp b5 - //SEG547 [247] phi from play_remove_lines::@2 to play_remove_lines::@17 [phi:play_remove_lines::@2->play_remove_lines::@17] - //SEG548 play_remove_lines::@17 - //SEG549 [232] phi from play_remove_lines::@17 to play_remove_lines::@3 [phi:play_remove_lines::@17->play_remove_lines::@3] - //SEG550 [232] phi (byte) play_remove_lines::full#2 = (byte) play_remove_lines::full#4 [phi:play_remove_lines::@17->play_remove_lines::@3#0] -- register_copy + //SEG546 [246] phi from play_remove_lines::@2 to play_remove_lines::@17 [phi:play_remove_lines::@2->play_remove_lines::@17] + //SEG547 play_remove_lines::@17 + //SEG548 [231] phi from play_remove_lines::@17 to play_remove_lines::@3 [phi:play_remove_lines::@17->play_remove_lines::@3] + //SEG549 [231] phi (byte) play_remove_lines::full#2 = (byte) play_remove_lines::full#4 [phi:play_remove_lines::@17->play_remove_lines::@3#0] -- register_copy } -//SEG551 play_lock_current +//SEG550 play_lock_current play_lock_current: { .label ypos2 = $e .label playfield_line = 7 @@ -18411,432 +18230,432 @@ play_lock_current: { .label i_3 = 5 .label i_7 = 5 .label i_9 = 5 - //SEG552 [248] (byte) play_lock_current::ypos2#0 ← (byte) current_ypos#21 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz1_rol_1 + //SEG551 [247] (byte) play_lock_current::ypos2#0 ← (byte) current_ypos#21 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz1_rol_1 asl ypos2 - //SEG553 [249] phi from play_lock_current to play_lock_current::@1 [phi:play_lock_current->play_lock_current::@1] - //SEG554 [249] phi (byte) play_lock_current::l#6 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_lock_current->play_lock_current::@1#0] -- vbuz1=vbuc1 + //SEG552 [248] phi from play_lock_current to play_lock_current::@1 [phi:play_lock_current->play_lock_current::@1] + //SEG553 [248] phi (byte) play_lock_current::l#6 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_lock_current->play_lock_current::@1#0] -- vbuz1=vbuc1 lda #0 sta l - //SEG555 [249] phi (byte) play_lock_current::i#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_lock_current->play_lock_current::@1#1] -- vbuz1=vbuc1 + //SEG554 [248] phi (byte) play_lock_current::i#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_lock_current->play_lock_current::@1#1] -- vbuz1=vbuc1 sta i_3 - //SEG556 [249] phi (byte) play_lock_current::ypos2#2 = (byte) play_lock_current::ypos2#0 [phi:play_lock_current->play_lock_current::@1#2] -- register_copy - //SEG557 play_lock_current::@1 + //SEG555 [248] phi (byte) play_lock_current::ypos2#2 = (byte) play_lock_current::ypos2#0 [phi:play_lock_current->play_lock_current::@1#2] -- register_copy + //SEG556 play_lock_current::@1 b1: - //SEG558 [250] (byte*) play_lock_current::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) play_lock_current::ypos2#2) -- pbuz1=pptc1_derefidx_vbuz2 + //SEG557 [249] (byte*) play_lock_current::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) play_lock_current::ypos2#2) -- pbuz1=pptc1_derefidx_vbuz2 ldy ypos2 lda playfield_lines,y sta playfield_line lda playfield_lines+1,y sta playfield_line+1 - //SEG559 [251] (byte) play_lock_current::col#0 ← (byte) current_xpos#10 -- vbuz1=vbuz2 + //SEG558 [250] (byte) play_lock_current::col#0 ← (byte) current_xpos#10 -- vbuz1=vbuz2 lda current_xpos sta col - //SEG560 [252] phi from play_lock_current::@1 to play_lock_current::@2 [phi:play_lock_current::@1->play_lock_current::@2] - //SEG561 [252] phi (byte) play_lock_current::c#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_lock_current::@1->play_lock_current::@2#0] -- vbuxx=vbuc1 + //SEG559 [251] phi from play_lock_current::@1 to play_lock_current::@2 [phi:play_lock_current::@1->play_lock_current::@2] + //SEG560 [251] phi (byte) play_lock_current::c#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_lock_current::@1->play_lock_current::@2#0] -- vbuxx=vbuc1 ldx #0 - //SEG562 [252] phi (byte) play_lock_current::col#2 = (byte) play_lock_current::col#0 [phi:play_lock_current::@1->play_lock_current::@2#1] -- register_copy - //SEG563 [252] 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 - //SEG564 play_lock_current::@2 + //SEG561 [251] phi (byte) play_lock_current::col#2 = (byte) play_lock_current::col#0 [phi:play_lock_current::@1->play_lock_current::@2#1] -- register_copy + //SEG562 [251] 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 + //SEG563 play_lock_current::@2 b2: - //SEG565 [253] (byte) play_lock_current::i#1 ← ++ (byte) play_lock_current::i#2 -- vbuz1=_inc_vbuz2 + //SEG564 [252] (byte) play_lock_current::i#1 ← ++ (byte) play_lock_current::i#2 -- vbuz1=_inc_vbuz2 ldy i_2 iny sty i - //SEG566 [254] if(*((byte*) current_piece_gfx#20 + (byte) play_lock_current::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_lock_current::@3 -- pbuz1_derefidx_vbuz2_eq_0_then_la1 + //SEG565 [253] if(*((byte*) current_piece_gfx#20 + (byte) play_lock_current::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_lock_current::@3 -- pbuz1_derefidx_vbuz2_eq_0_then_la1 ldy i_2 lda (current_piece_gfx),y cmp #0 beq b3 - //SEG567 play_lock_current::@4 - //SEG568 [255] *((byte*) play_lock_current::playfield_line#0 + (byte) play_lock_current::col#2) ← (byte) current_piece_char#15 -- pbuz1_derefidx_vbuz2=vbuz3 + //SEG566 play_lock_current::@4 + //SEG567 [254] *((byte*) play_lock_current::playfield_line#0 + (byte) play_lock_current::col#2) ← (byte) current_piece_char#15 -- pbuz1_derefidx_vbuz2=vbuz3 lda current_piece_char ldy col sta (playfield_line),y - //SEG569 play_lock_current::@3 + //SEG568 play_lock_current::@3 b3: - //SEG570 [256] (byte) play_lock_current::col#1 ← ++ (byte) play_lock_current::col#2 -- vbuz1=_inc_vbuz1 + //SEG569 [255] (byte) play_lock_current::col#1 ← ++ (byte) play_lock_current::col#2 -- vbuz1=_inc_vbuz1 inc col - //SEG571 [257] (byte) play_lock_current::c#1 ← ++ (byte) play_lock_current::c#2 -- vbuxx=_inc_vbuxx + //SEG570 [256] (byte) play_lock_current::c#1 ← ++ (byte) play_lock_current::c#2 -- vbuxx=_inc_vbuxx inx - //SEG572 [258] if((byte) play_lock_current::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto play_lock_current::@8 -- vbuxx_neq_vbuc1_then_la1 + //SEG571 [257] if((byte) play_lock_current::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto play_lock_current::@8 -- vbuxx_neq_vbuc1_then_la1 cpx #4 bne b8 - //SEG573 play_lock_current::@5 - //SEG574 [259] (byte) play_lock_current::ypos2#1 ← (byte) play_lock_current::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 -- vbuz1=vbuz1_plus_2 + //SEG572 play_lock_current::@5 + //SEG573 [258] (byte) play_lock_current::ypos2#1 ← (byte) play_lock_current::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 -- vbuz1=vbuz1_plus_2 lda ypos2 clc adc #2 sta ypos2 - //SEG575 [260] (byte) play_lock_current::l#1 ← ++ (byte) play_lock_current::l#6 -- vbuz1=_inc_vbuz1 + //SEG574 [259] (byte) play_lock_current::l#1 ← ++ (byte) play_lock_current::l#6 -- vbuz1=_inc_vbuz1 inc l - //SEG576 [261] if((byte) play_lock_current::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto play_lock_current::@7 -- vbuz1_neq_vbuc1_then_la1 + //SEG575 [260] if((byte) play_lock_current::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto play_lock_current::@7 -- vbuz1_neq_vbuc1_then_la1 lda l cmp #4 bne b7 - //SEG577 play_lock_current::@return - //SEG578 [262] return + //SEG576 play_lock_current::@return + //SEG577 [261] return rts - //SEG579 play_lock_current::@7 + //SEG578 play_lock_current::@7 b7: - //SEG580 [263] (byte~) play_lock_current::i#7 ← (byte) play_lock_current::i#1 -- vbuz1=vbuz2 + //SEG579 [262] (byte~) play_lock_current::i#7 ← (byte) play_lock_current::i#1 -- vbuz1=vbuz2 lda i sta i_7 - //SEG581 [249] phi from play_lock_current::@7 to play_lock_current::@1 [phi:play_lock_current::@7->play_lock_current::@1] - //SEG582 [249] phi (byte) play_lock_current::l#6 = (byte) play_lock_current::l#1 [phi:play_lock_current::@7->play_lock_current::@1#0] -- register_copy - //SEG583 [249] phi (byte) play_lock_current::i#3 = (byte~) play_lock_current::i#7 [phi:play_lock_current::@7->play_lock_current::@1#1] -- register_copy - //SEG584 [249] phi (byte) play_lock_current::ypos2#2 = (byte) play_lock_current::ypos2#1 [phi:play_lock_current::@7->play_lock_current::@1#2] -- register_copy + //SEG580 [248] phi from play_lock_current::@7 to play_lock_current::@1 [phi:play_lock_current::@7->play_lock_current::@1] + //SEG581 [248] phi (byte) play_lock_current::l#6 = (byte) play_lock_current::l#1 [phi:play_lock_current::@7->play_lock_current::@1#0] -- register_copy + //SEG582 [248] phi (byte) play_lock_current::i#3 = (byte~) play_lock_current::i#7 [phi:play_lock_current::@7->play_lock_current::@1#1] -- register_copy + //SEG583 [248] phi (byte) play_lock_current::ypos2#2 = (byte) play_lock_current::ypos2#1 [phi:play_lock_current::@7->play_lock_current::@1#2] -- register_copy jmp b1 - //SEG585 play_lock_current::@8 + //SEG584 play_lock_current::@8 b8: - //SEG586 [264] (byte~) play_lock_current::i#9 ← (byte) play_lock_current::i#1 -- vbuz1=vbuz2 + //SEG585 [263] (byte~) play_lock_current::i#9 ← (byte) play_lock_current::i#1 -- vbuz1=vbuz2 lda i sta i_9 - //SEG587 [252] phi from play_lock_current::@8 to play_lock_current::@2 [phi:play_lock_current::@8->play_lock_current::@2] - //SEG588 [252] phi (byte) play_lock_current::c#2 = (byte) play_lock_current::c#1 [phi:play_lock_current::@8->play_lock_current::@2#0] -- register_copy - //SEG589 [252] phi (byte) play_lock_current::col#2 = (byte) play_lock_current::col#1 [phi:play_lock_current::@8->play_lock_current::@2#1] -- register_copy - //SEG590 [252] phi (byte) play_lock_current::i#2 = (byte~) play_lock_current::i#9 [phi:play_lock_current::@8->play_lock_current::@2#2] -- register_copy + //SEG586 [251] phi from play_lock_current::@8 to play_lock_current::@2 [phi:play_lock_current::@8->play_lock_current::@2] + //SEG587 [251] phi (byte) play_lock_current::c#2 = (byte) play_lock_current::c#1 [phi:play_lock_current::@8->play_lock_current::@2#0] -- register_copy + //SEG588 [251] phi (byte) play_lock_current::col#2 = (byte) play_lock_current::col#1 [phi:play_lock_current::@8->play_lock_current::@2#1] -- register_copy + //SEG589 [251] phi (byte) play_lock_current::i#2 = (byte~) play_lock_current::i#9 [phi:play_lock_current::@8->play_lock_current::@2#2] -- register_copy jmp b2 } -//SEG591 keyboard_event_pressed +//SEG590 keyboard_event_pressed keyboard_event_pressed: { .label row_bits = 6 .label keycode = 5 - //SEG592 [266] (byte~) keyboard_event_pressed::$0 ← (byte) keyboard_event_pressed::keycode#5 >> (byte/signed byte/word/signed word/dword/signed dword) 3 -- vbuaa=vbuz1_ror_3 + //SEG591 [265] (byte~) keyboard_event_pressed::$0 ← (byte) keyboard_event_pressed::keycode#5 >> (byte/signed byte/word/signed word/dword/signed dword) 3 -- vbuaa=vbuz1_ror_3 lda keycode lsr lsr lsr - //SEG593 [267] (byte) keyboard_event_pressed::row_bits#0 ← *((const byte[8]) keyboard_scan_values#0 + (byte~) keyboard_event_pressed::$0) -- vbuz1=pbuc1_derefidx_vbuaa + //SEG592 [266] (byte) keyboard_event_pressed::row_bits#0 ← *((const byte[8]) keyboard_scan_values#0 + (byte~) keyboard_event_pressed::$0) -- vbuz1=pbuc1_derefidx_vbuaa tay lda keyboard_scan_values,y sta row_bits - //SEG594 [268] (byte~) keyboard_event_pressed::$1 ← (byte) keyboard_event_pressed::keycode#5 & (byte/signed byte/word/signed word/dword/signed dword) 7 -- vbuaa=vbuz1_band_vbuc1 + //SEG593 [267] (byte~) keyboard_event_pressed::$1 ← (byte) keyboard_event_pressed::keycode#5 & (byte/signed byte/word/signed word/dword/signed dword) 7 -- vbuaa=vbuz1_band_vbuc1 lda #7 and keycode - //SEG595 [269] (byte) keyboard_event_pressed::return#11 ← (byte) keyboard_event_pressed::row_bits#0 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte~) keyboard_event_pressed::$1) -- vbuaa=vbuz1_band_pbuc1_derefidx_vbuaa + //SEG594 [268] (byte) keyboard_event_pressed::return#11 ← (byte) keyboard_event_pressed::row_bits#0 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte~) keyboard_event_pressed::$1) -- vbuaa=vbuz1_band_pbuc1_derefidx_vbuaa tay lda keyboard_matrix_col_bitmask,y and row_bits - //SEG596 keyboard_event_pressed::@return - //SEG597 [270] return + //SEG595 keyboard_event_pressed::@return + //SEG596 [269] return rts } -//SEG598 keyboard_event_get +//SEG597 keyboard_event_get keyboard_event_get: { - //SEG599 [271] if((byte) keyboard_events_size#13==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_get::@return -- vbuz1_eq_0_then_la1 + //SEG598 [270] if((byte) keyboard_events_size#13==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_get::@return -- vbuz1_eq_0_then_la1 lda keyboard_events_size cmp #0 beq b1 - //SEG600 keyboard_event_get::@3 - //SEG601 [272] (byte) keyboard_events_size#4 ← -- (byte) keyboard_events_size#13 -- vbuz1=_dec_vbuz1 + //SEG599 keyboard_event_get::@3 + //SEG600 [271] (byte) keyboard_events_size#4 ← -- (byte) keyboard_events_size#13 -- vbuz1=_dec_vbuz1 dec keyboard_events_size - //SEG602 [273] (byte) keyboard_event_get::return#1 ← *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#4) -- vbuaa=pbuc1_derefidx_vbuz1 + //SEG601 [272] (byte) keyboard_event_get::return#1 ← *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#4) -- vbuaa=pbuc1_derefidx_vbuz1 ldy keyboard_events_size lda keyboard_events,y - //SEG603 [274] phi from keyboard_event_get::@3 to keyboard_event_get::@return [phi:keyboard_event_get::@3->keyboard_event_get::@return] - //SEG604 [274] phi (byte) keyboard_events_size#16 = (byte) keyboard_events_size#4 [phi:keyboard_event_get::@3->keyboard_event_get::@return#0] -- register_copy - //SEG605 [274] phi (byte) keyboard_event_get::return#2 = (byte) keyboard_event_get::return#1 [phi:keyboard_event_get::@3->keyboard_event_get::@return#1] -- register_copy + //SEG602 [273] phi from keyboard_event_get::@3 to keyboard_event_get::@return [phi:keyboard_event_get::@3->keyboard_event_get::@return] + //SEG603 [273] phi (byte) keyboard_events_size#16 = (byte) keyboard_events_size#4 [phi:keyboard_event_get::@3->keyboard_event_get::@return#0] -- register_copy + //SEG604 [273] phi (byte) keyboard_event_get::return#2 = (byte) keyboard_event_get::return#1 [phi:keyboard_event_get::@3->keyboard_event_get::@return#1] -- register_copy jmp breturn - //SEG606 [274] phi from keyboard_event_get to keyboard_event_get::@return [phi:keyboard_event_get->keyboard_event_get::@return] + //SEG605 [273] phi from keyboard_event_get to keyboard_event_get::@return [phi:keyboard_event_get->keyboard_event_get::@return] b1: - //SEG607 [274] phi (byte) keyboard_events_size#16 = (byte) keyboard_events_size#13 [phi:keyboard_event_get->keyboard_event_get::@return#0] -- register_copy - //SEG608 [274] phi (byte) keyboard_event_get::return#2 = (byte/word/signed word/dword/signed dword) 255 [phi:keyboard_event_get->keyboard_event_get::@return#1] -- vbuaa=vbuc1 + //SEG606 [273] phi (byte) keyboard_events_size#16 = (byte) keyboard_events_size#13 [phi:keyboard_event_get->keyboard_event_get::@return#0] -- register_copy + //SEG607 [273] phi (byte) keyboard_event_get::return#2 = (byte/word/signed word/dword/signed dword) 255 [phi:keyboard_event_get->keyboard_event_get::@return#1] -- vbuaa=vbuc1 lda #$ff - //SEG609 keyboard_event_get::@return + //SEG608 keyboard_event_get::@return breturn: - //SEG610 [275] return + //SEG609 [274] return rts } -//SEG611 keyboard_event_scan +//SEG610 keyboard_event_scan keyboard_event_scan: { .label row_scan = 9 .label keycode = 6 .label row = 5 - //SEG612 [277] phi from keyboard_event_scan to keyboard_event_scan::@1 [phi:keyboard_event_scan->keyboard_event_scan::@1] - //SEG613 [277] phi (byte) keyboard_events_size#29 = (byte) keyboard_events_size#19 [phi:keyboard_event_scan->keyboard_event_scan::@1#0] -- register_copy - //SEG614 [277] phi (byte) keyboard_event_scan::keycode#11 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:keyboard_event_scan->keyboard_event_scan::@1#1] -- vbuz1=vbuc1 + //SEG611 [276] phi from keyboard_event_scan to keyboard_event_scan::@1 [phi:keyboard_event_scan->keyboard_event_scan::@1] + //SEG612 [276] phi (byte) keyboard_events_size#29 = (byte) keyboard_events_size#19 [phi:keyboard_event_scan->keyboard_event_scan::@1#0] -- register_copy + //SEG613 [276] phi (byte) keyboard_event_scan::keycode#11 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:keyboard_event_scan->keyboard_event_scan::@1#1] -- vbuz1=vbuc1 lda #0 sta keycode - //SEG615 [277] phi (byte) keyboard_event_scan::row#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:keyboard_event_scan->keyboard_event_scan::@1#2] -- vbuz1=vbuc1 + //SEG614 [276] phi (byte) keyboard_event_scan::row#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:keyboard_event_scan->keyboard_event_scan::@1#2] -- vbuz1=vbuc1 sta row - //SEG616 [277] phi from keyboard_event_scan::@3 to keyboard_event_scan::@1 [phi:keyboard_event_scan::@3->keyboard_event_scan::@1] - //SEG617 [277] phi (byte) keyboard_events_size#29 = (byte) keyboard_events_size#13 [phi:keyboard_event_scan::@3->keyboard_event_scan::@1#0] -- register_copy - //SEG618 [277] phi (byte) keyboard_event_scan::keycode#11 = (byte) keyboard_event_scan::keycode#14 [phi:keyboard_event_scan::@3->keyboard_event_scan::@1#1] -- register_copy - //SEG619 [277] phi (byte) keyboard_event_scan::row#2 = (byte) keyboard_event_scan::row#1 [phi:keyboard_event_scan::@3->keyboard_event_scan::@1#2] -- register_copy - //SEG620 keyboard_event_scan::@1 + //SEG615 [276] phi from keyboard_event_scan::@3 to keyboard_event_scan::@1 [phi:keyboard_event_scan::@3->keyboard_event_scan::@1] + //SEG616 [276] phi (byte) keyboard_events_size#29 = (byte) keyboard_events_size#13 [phi:keyboard_event_scan::@3->keyboard_event_scan::@1#0] -- register_copy + //SEG617 [276] phi (byte) keyboard_event_scan::keycode#11 = (byte) keyboard_event_scan::keycode#14 [phi:keyboard_event_scan::@3->keyboard_event_scan::@1#1] -- register_copy + //SEG618 [276] phi (byte) keyboard_event_scan::row#2 = (byte) keyboard_event_scan::row#1 [phi:keyboard_event_scan::@3->keyboard_event_scan::@1#2] -- register_copy + //SEG619 keyboard_event_scan::@1 b1: - //SEG621 [278] (byte) keyboard_matrix_read::rowid#0 ← (byte) keyboard_event_scan::row#2 -- vbuxx=vbuz1 + //SEG620 [277] (byte) keyboard_matrix_read::rowid#0 ← (byte) keyboard_event_scan::row#2 -- vbuxx=vbuz1 ldx row - //SEG622 [279] call keyboard_matrix_read + //SEG621 [278] call keyboard_matrix_read jsr keyboard_matrix_read - //SEG623 [280] (byte) keyboard_matrix_read::return#2 ← (byte) keyboard_matrix_read::return#0 + //SEG622 [279] (byte) keyboard_matrix_read::return#2 ← (byte) keyboard_matrix_read::return#0 // (byte) keyboard_matrix_read::return#2 = (byte) keyboard_matrix_read::return#0 // register copy reg byte a - //SEG624 keyboard_event_scan::@25 - //SEG625 [281] (byte) keyboard_event_scan::row_scan#0 ← (byte) keyboard_matrix_read::return#2 -- vbuz1=vbuaa + //SEG623 keyboard_event_scan::@25 + //SEG624 [280] (byte) keyboard_event_scan::row_scan#0 ← (byte) keyboard_matrix_read::return#2 -- vbuz1=vbuaa sta row_scan - //SEG626 [282] if((byte) keyboard_event_scan::row_scan#0!=*((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2)) goto keyboard_event_scan::@4 -- vbuz1_neq_pbuc1_derefidx_vbuz2_then_la1 + //SEG625 [281] if((byte) keyboard_event_scan::row_scan#0!=*((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2)) goto keyboard_event_scan::@4 -- vbuz1_neq_pbuc1_derefidx_vbuz2_then_la1 ldy row cmp keyboard_scan_values,y bne b6 - //SEG627 keyboard_event_scan::@13 - //SEG628 [283] (byte) keyboard_event_scan::keycode#1 ← (byte) keyboard_event_scan::keycode#11 + (byte/signed byte/word/signed word/dword/signed dword) 8 -- vbuz1=vbuz1_plus_vbuc1 + //SEG626 keyboard_event_scan::@13 + //SEG627 [282] (byte) keyboard_event_scan::keycode#1 ← (byte) keyboard_event_scan::keycode#11 + (byte/signed byte/word/signed word/dword/signed dword) 8 -- vbuz1=vbuz1_plus_vbuc1 lda #8 clc adc keycode sta keycode - //SEG629 [284] phi from keyboard_event_scan::@13 keyboard_event_scan::@19 to keyboard_event_scan::@3 [phi:keyboard_event_scan::@13/keyboard_event_scan::@19->keyboard_event_scan::@3] - //SEG630 [284] phi (byte) keyboard_events_size#13 = (byte) keyboard_events_size#29 [phi:keyboard_event_scan::@13/keyboard_event_scan::@19->keyboard_event_scan::@3#0] -- register_copy - //SEG631 [284] phi (byte) keyboard_event_scan::keycode#14 = (byte) keyboard_event_scan::keycode#1 [phi:keyboard_event_scan::@13/keyboard_event_scan::@19->keyboard_event_scan::@3#1] -- register_copy - //SEG632 keyboard_event_scan::@3 + //SEG628 [283] phi from keyboard_event_scan::@13 keyboard_event_scan::@19 to keyboard_event_scan::@3 [phi:keyboard_event_scan::@13/keyboard_event_scan::@19->keyboard_event_scan::@3] + //SEG629 [283] phi (byte) keyboard_events_size#13 = (byte) keyboard_events_size#29 [phi:keyboard_event_scan::@13/keyboard_event_scan::@19->keyboard_event_scan::@3#0] -- register_copy + //SEG630 [283] phi (byte) keyboard_event_scan::keycode#14 = (byte) keyboard_event_scan::keycode#1 [phi:keyboard_event_scan::@13/keyboard_event_scan::@19->keyboard_event_scan::@3#1] -- register_copy + //SEG631 keyboard_event_scan::@3 b3: - //SEG633 [285] (byte) keyboard_event_scan::row#1 ← ++ (byte) keyboard_event_scan::row#2 -- vbuz1=_inc_vbuz1 + //SEG632 [284] (byte) keyboard_event_scan::row#1 ← ++ (byte) keyboard_event_scan::row#2 -- vbuz1=_inc_vbuz1 inc row - //SEG634 [286] if((byte) keyboard_event_scan::row#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto keyboard_event_scan::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG633 [285] if((byte) keyboard_event_scan::row#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto keyboard_event_scan::@1 -- vbuz1_neq_vbuc1_then_la1 lda row cmp #8 bne b1 - //SEG635 [287] phi from keyboard_event_scan::@3 to keyboard_event_scan::@20 [phi:keyboard_event_scan::@3->keyboard_event_scan::@20] - //SEG636 keyboard_event_scan::@20 - //SEG637 [288] call keyboard_event_pressed - //SEG638 [265] phi from keyboard_event_scan::@20 to keyboard_event_pressed [phi:keyboard_event_scan::@20->keyboard_event_pressed] - //SEG639 [265] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_LSHIFT#0 [phi:keyboard_event_scan::@20->keyboard_event_pressed#0] -- vbuz1=vbuc1 + //SEG634 [286] phi from keyboard_event_scan::@3 to keyboard_event_scan::@20 [phi:keyboard_event_scan::@3->keyboard_event_scan::@20] + //SEG635 keyboard_event_scan::@20 + //SEG636 [287] call keyboard_event_pressed + //SEG637 [264] phi from keyboard_event_scan::@20 to keyboard_event_pressed [phi:keyboard_event_scan::@20->keyboard_event_pressed] + //SEG638 [264] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_LSHIFT#0 [phi:keyboard_event_scan::@20->keyboard_event_pressed#0] -- vbuz1=vbuc1 lda #KEY_LSHIFT sta keyboard_event_pressed.keycode jsr keyboard_event_pressed - //SEG640 [289] (byte) keyboard_event_pressed::return#0 ← (byte) keyboard_event_pressed::return#11 + //SEG639 [288] (byte) keyboard_event_pressed::return#0 ← (byte) keyboard_event_pressed::return#11 // (byte) keyboard_event_pressed::return#0 = (byte) keyboard_event_pressed::return#11 // register copy reg byte a - //SEG641 keyboard_event_scan::@26 - //SEG642 [290] (byte~) keyboard_event_scan::$14 ← (byte) keyboard_event_pressed::return#0 + //SEG640 keyboard_event_scan::@26 + //SEG641 [289] (byte~) keyboard_event_scan::$14 ← (byte) keyboard_event_pressed::return#0 // (byte~) keyboard_event_scan::$14 = (byte) keyboard_event_pressed::return#0 // register copy reg byte a - //SEG643 [291] if((byte~) keyboard_event_scan::$14==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@9 -- vbuaa_eq_0_then_la1 + //SEG642 [290] if((byte~) keyboard_event_scan::$14==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@9 -- vbuaa_eq_0_then_la1 cmp #0 beq b2 - //SEG644 [292] phi from keyboard_event_scan::@26 to keyboard_event_scan::@21 [phi:keyboard_event_scan::@26->keyboard_event_scan::@21] - //SEG645 keyboard_event_scan::@21 - //SEG646 [293] phi from keyboard_event_scan::@21 to keyboard_event_scan::@9 [phi:keyboard_event_scan::@21->keyboard_event_scan::@9] - //SEG647 [293] phi (byte) keyboard_modifiers#11 = (byte/signed byte/word/signed word/dword/signed dword) 0|(const byte) KEY_MODIFIER_LSHIFT#0 [phi:keyboard_event_scan::@21->keyboard_event_scan::@9#0] -- vbuxx=vbuc1 + //SEG643 [291] phi from keyboard_event_scan::@26 to keyboard_event_scan::@21 [phi:keyboard_event_scan::@26->keyboard_event_scan::@21] + //SEG644 keyboard_event_scan::@21 + //SEG645 [292] phi from keyboard_event_scan::@21 to keyboard_event_scan::@9 [phi:keyboard_event_scan::@21->keyboard_event_scan::@9] + //SEG646 [292] phi (byte) keyboard_modifiers#11 = (byte/signed byte/word/signed word/dword/signed dword) 0|(const byte) KEY_MODIFIER_LSHIFT#0 [phi:keyboard_event_scan::@21->keyboard_event_scan::@9#0] -- vbuxx=vbuc1 ldx #0|KEY_MODIFIER_LSHIFT jmp b9 - //SEG648 [293] phi from keyboard_event_scan::@26 to keyboard_event_scan::@9 [phi:keyboard_event_scan::@26->keyboard_event_scan::@9] + //SEG647 [292] phi from keyboard_event_scan::@26 to keyboard_event_scan::@9 [phi:keyboard_event_scan::@26->keyboard_event_scan::@9] b2: - //SEG649 [293] phi (byte) keyboard_modifiers#11 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:keyboard_event_scan::@26->keyboard_event_scan::@9#0] -- vbuxx=vbuc1 + //SEG648 [292] phi (byte) keyboard_modifiers#11 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:keyboard_event_scan::@26->keyboard_event_scan::@9#0] -- vbuxx=vbuc1 ldx #0 - //SEG650 keyboard_event_scan::@9 + //SEG649 keyboard_event_scan::@9 b9: - //SEG651 [294] call keyboard_event_pressed - //SEG652 [265] phi from keyboard_event_scan::@9 to keyboard_event_pressed [phi:keyboard_event_scan::@9->keyboard_event_pressed] - //SEG653 [265] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_RSHIFT#0 [phi:keyboard_event_scan::@9->keyboard_event_pressed#0] -- vbuz1=vbuc1 + //SEG650 [293] call keyboard_event_pressed + //SEG651 [264] phi from keyboard_event_scan::@9 to keyboard_event_pressed [phi:keyboard_event_scan::@9->keyboard_event_pressed] + //SEG652 [264] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_RSHIFT#0 [phi:keyboard_event_scan::@9->keyboard_event_pressed#0] -- vbuz1=vbuc1 lda #KEY_RSHIFT sta keyboard_event_pressed.keycode jsr keyboard_event_pressed - //SEG654 [295] (byte) keyboard_event_pressed::return#1 ← (byte) keyboard_event_pressed::return#11 + //SEG653 [294] (byte) keyboard_event_pressed::return#1 ← (byte) keyboard_event_pressed::return#11 // (byte) keyboard_event_pressed::return#1 = (byte) keyboard_event_pressed::return#11 // register copy reg byte a - //SEG655 keyboard_event_scan::@27 - //SEG656 [296] (byte~) keyboard_event_scan::$18 ← (byte) keyboard_event_pressed::return#1 + //SEG654 keyboard_event_scan::@27 + //SEG655 [295] (byte~) keyboard_event_scan::$18 ← (byte) keyboard_event_pressed::return#1 // (byte~) keyboard_event_scan::$18 = (byte) keyboard_event_pressed::return#1 // register copy reg byte a - //SEG657 [297] if((byte~) keyboard_event_scan::$18==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@10 -- vbuaa_eq_0_then_la1 + //SEG656 [296] if((byte~) keyboard_event_scan::$18==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@10 -- vbuaa_eq_0_then_la1 cmp #0 beq b10 - //SEG658 keyboard_event_scan::@22 - //SEG659 [298] (byte) keyboard_modifiers#3 ← (byte) keyboard_modifiers#11 | (const byte) KEY_MODIFIER_RSHIFT#0 -- vbuxx=vbuxx_bor_vbuc1 + //SEG657 keyboard_event_scan::@22 + //SEG658 [297] (byte) keyboard_modifiers#3 ← (byte) keyboard_modifiers#11 | (const byte) KEY_MODIFIER_RSHIFT#0 -- vbuxx=vbuxx_bor_vbuc1 txa ora #KEY_MODIFIER_RSHIFT tax - //SEG660 [299] phi from keyboard_event_scan::@22 keyboard_event_scan::@27 to keyboard_event_scan::@10 [phi:keyboard_event_scan::@22/keyboard_event_scan::@27->keyboard_event_scan::@10] - //SEG661 [299] phi (byte) keyboard_modifiers#12 = (byte) keyboard_modifiers#3 [phi:keyboard_event_scan::@22/keyboard_event_scan::@27->keyboard_event_scan::@10#0] -- register_copy - //SEG662 keyboard_event_scan::@10 + //SEG659 [298] phi from keyboard_event_scan::@22 keyboard_event_scan::@27 to keyboard_event_scan::@10 [phi:keyboard_event_scan::@22/keyboard_event_scan::@27->keyboard_event_scan::@10] + //SEG660 [298] phi (byte) keyboard_modifiers#12 = (byte) keyboard_modifiers#3 [phi:keyboard_event_scan::@22/keyboard_event_scan::@27->keyboard_event_scan::@10#0] -- register_copy + //SEG661 keyboard_event_scan::@10 b10: - //SEG663 [300] call keyboard_event_pressed - //SEG664 [265] phi from keyboard_event_scan::@10 to keyboard_event_pressed [phi:keyboard_event_scan::@10->keyboard_event_pressed] - //SEG665 [265] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_CTRL#0 [phi:keyboard_event_scan::@10->keyboard_event_pressed#0] -- vbuz1=vbuc1 + //SEG662 [299] call keyboard_event_pressed + //SEG663 [264] phi from keyboard_event_scan::@10 to keyboard_event_pressed [phi:keyboard_event_scan::@10->keyboard_event_pressed] + //SEG664 [264] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_CTRL#0 [phi:keyboard_event_scan::@10->keyboard_event_pressed#0] -- vbuz1=vbuc1 lda #KEY_CTRL sta keyboard_event_pressed.keycode jsr keyboard_event_pressed - //SEG666 [301] (byte) keyboard_event_pressed::return#2 ← (byte) keyboard_event_pressed::return#11 + //SEG665 [300] (byte) keyboard_event_pressed::return#2 ← (byte) keyboard_event_pressed::return#11 // (byte) keyboard_event_pressed::return#2 = (byte) keyboard_event_pressed::return#11 // register copy reg byte a - //SEG667 keyboard_event_scan::@28 - //SEG668 [302] (byte~) keyboard_event_scan::$22 ← (byte) keyboard_event_pressed::return#2 + //SEG666 keyboard_event_scan::@28 + //SEG667 [301] (byte~) keyboard_event_scan::$22 ← (byte) keyboard_event_pressed::return#2 // (byte~) keyboard_event_scan::$22 = (byte) keyboard_event_pressed::return#2 // register copy reg byte a - //SEG669 [303] if((byte~) keyboard_event_scan::$22==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@11 -- vbuaa_eq_0_then_la1 + //SEG668 [302] if((byte~) keyboard_event_scan::$22==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@11 -- vbuaa_eq_0_then_la1 cmp #0 beq b11 - //SEG670 keyboard_event_scan::@23 - //SEG671 [304] (byte) keyboard_modifiers#4 ← (byte) keyboard_modifiers#12 | (const byte) KEY_MODIFIER_CTRL#0 -- vbuxx=vbuxx_bor_vbuc1 + //SEG669 keyboard_event_scan::@23 + //SEG670 [303] (byte) keyboard_modifiers#4 ← (byte) keyboard_modifiers#12 | (const byte) KEY_MODIFIER_CTRL#0 -- vbuxx=vbuxx_bor_vbuc1 txa ora #KEY_MODIFIER_CTRL tax - //SEG672 [305] phi from keyboard_event_scan::@23 keyboard_event_scan::@28 to keyboard_event_scan::@11 [phi:keyboard_event_scan::@23/keyboard_event_scan::@28->keyboard_event_scan::@11] - //SEG673 [305] phi (byte) keyboard_modifiers#13 = (byte) keyboard_modifiers#4 [phi:keyboard_event_scan::@23/keyboard_event_scan::@28->keyboard_event_scan::@11#0] -- register_copy - //SEG674 keyboard_event_scan::@11 + //SEG671 [304] phi from keyboard_event_scan::@23 keyboard_event_scan::@28 to keyboard_event_scan::@11 [phi:keyboard_event_scan::@23/keyboard_event_scan::@28->keyboard_event_scan::@11] + //SEG672 [304] phi (byte) keyboard_modifiers#13 = (byte) keyboard_modifiers#4 [phi:keyboard_event_scan::@23/keyboard_event_scan::@28->keyboard_event_scan::@11#0] -- register_copy + //SEG673 keyboard_event_scan::@11 b11: - //SEG675 [306] call keyboard_event_pressed - //SEG676 [265] phi from keyboard_event_scan::@11 to keyboard_event_pressed [phi:keyboard_event_scan::@11->keyboard_event_pressed] - //SEG677 [265] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_COMMODORE#0 [phi:keyboard_event_scan::@11->keyboard_event_pressed#0] -- vbuz1=vbuc1 + //SEG674 [305] call keyboard_event_pressed + //SEG675 [264] phi from keyboard_event_scan::@11 to keyboard_event_pressed [phi:keyboard_event_scan::@11->keyboard_event_pressed] + //SEG676 [264] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_COMMODORE#0 [phi:keyboard_event_scan::@11->keyboard_event_pressed#0] -- vbuz1=vbuc1 lda #KEY_COMMODORE sta keyboard_event_pressed.keycode jsr keyboard_event_pressed - //SEG678 [307] (byte) keyboard_event_pressed::return#10 ← (byte) keyboard_event_pressed::return#11 + //SEG677 [306] (byte) keyboard_event_pressed::return#10 ← (byte) keyboard_event_pressed::return#11 // (byte) keyboard_event_pressed::return#10 = (byte) keyboard_event_pressed::return#11 // register copy reg byte a - //SEG679 keyboard_event_scan::@29 - //SEG680 [308] (byte~) keyboard_event_scan::$26 ← (byte) keyboard_event_pressed::return#10 + //SEG678 keyboard_event_scan::@29 + //SEG679 [307] (byte~) keyboard_event_scan::$26 ← (byte) keyboard_event_pressed::return#10 // (byte~) keyboard_event_scan::$26 = (byte) keyboard_event_pressed::return#10 // register copy reg byte a - //SEG681 [309] if((byte~) keyboard_event_scan::$26==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@return -- vbuaa_eq_0_then_la1 + //SEG680 [308] if((byte~) keyboard_event_scan::$26==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@return -- vbuaa_eq_0_then_la1 cmp #0 beq breturn - //SEG682 keyboard_event_scan::@24 - //SEG683 [310] (byte) keyboard_modifiers#5 ← (byte) keyboard_modifiers#13 | (const byte) KEY_MODIFIER_COMMODORE#0 -- vbuaa=vbuxx_bor_vbuc1 + //SEG681 keyboard_event_scan::@24 + //SEG682 [309] (byte) keyboard_modifiers#5 ← (byte) keyboard_modifiers#13 | (const byte) KEY_MODIFIER_COMMODORE#0 -- vbuaa=vbuxx_bor_vbuc1 txa ora #KEY_MODIFIER_COMMODORE - //SEG684 keyboard_event_scan::@return + //SEG683 keyboard_event_scan::@return breturn: - //SEG685 [311] return + //SEG684 [310] return rts - //SEG686 [312] phi from keyboard_event_scan::@25 to keyboard_event_scan::@4 [phi:keyboard_event_scan::@25->keyboard_event_scan::@4] + //SEG685 [311] phi from keyboard_event_scan::@25 to keyboard_event_scan::@4 [phi:keyboard_event_scan::@25->keyboard_event_scan::@4] b6: - //SEG687 [312] phi (byte) keyboard_events_size#10 = (byte) keyboard_events_size#29 [phi:keyboard_event_scan::@25->keyboard_event_scan::@4#0] -- register_copy - //SEG688 [312] phi (byte) keyboard_event_scan::keycode#10 = (byte) keyboard_event_scan::keycode#11 [phi:keyboard_event_scan::@25->keyboard_event_scan::@4#1] -- register_copy - //SEG689 [312] phi (byte) keyboard_event_scan::col#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:keyboard_event_scan::@25->keyboard_event_scan::@4#2] -- vbuxx=vbuc1 + //SEG686 [311] phi (byte) keyboard_events_size#10 = (byte) keyboard_events_size#29 [phi:keyboard_event_scan::@25->keyboard_event_scan::@4#0] -- register_copy + //SEG687 [311] phi (byte) keyboard_event_scan::keycode#10 = (byte) keyboard_event_scan::keycode#11 [phi:keyboard_event_scan::@25->keyboard_event_scan::@4#1] -- register_copy + //SEG688 [311] phi (byte) keyboard_event_scan::col#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:keyboard_event_scan::@25->keyboard_event_scan::@4#2] -- vbuxx=vbuc1 ldx #0 - //SEG690 [312] phi from keyboard_event_scan::@5 to keyboard_event_scan::@4 [phi:keyboard_event_scan::@5->keyboard_event_scan::@4] - //SEG691 [312] phi (byte) keyboard_events_size#10 = (byte) keyboard_events_size#30 [phi:keyboard_event_scan::@5->keyboard_event_scan::@4#0] -- register_copy - //SEG692 [312] phi (byte) keyboard_event_scan::keycode#10 = (byte) keyboard_event_scan::keycode#15 [phi:keyboard_event_scan::@5->keyboard_event_scan::@4#1] -- register_copy - //SEG693 [312] phi (byte) keyboard_event_scan::col#2 = (byte) keyboard_event_scan::col#1 [phi:keyboard_event_scan::@5->keyboard_event_scan::@4#2] -- register_copy - //SEG694 keyboard_event_scan::@4 + //SEG689 [311] phi from keyboard_event_scan::@5 to keyboard_event_scan::@4 [phi:keyboard_event_scan::@5->keyboard_event_scan::@4] + //SEG690 [311] phi (byte) keyboard_events_size#10 = (byte) keyboard_events_size#30 [phi:keyboard_event_scan::@5->keyboard_event_scan::@4#0] -- register_copy + //SEG691 [311] phi (byte) keyboard_event_scan::keycode#10 = (byte) keyboard_event_scan::keycode#15 [phi:keyboard_event_scan::@5->keyboard_event_scan::@4#1] -- register_copy + //SEG692 [311] phi (byte) keyboard_event_scan::col#2 = (byte) keyboard_event_scan::col#1 [phi:keyboard_event_scan::@5->keyboard_event_scan::@4#2] -- register_copy + //SEG693 keyboard_event_scan::@4 b4: - //SEG695 [313] (byte~) keyboard_event_scan::$3 ← (byte) keyboard_event_scan::row_scan#0 ^ *((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2) -- vbuaa=vbuz1_bxor_pbuc1_derefidx_vbuz2 + //SEG694 [312] (byte~) keyboard_event_scan::$3 ← (byte) keyboard_event_scan::row_scan#0 ^ *((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2) -- vbuaa=vbuz1_bxor_pbuc1_derefidx_vbuz2 lda row_scan ldy row eor keyboard_scan_values,y - //SEG696 [314] (byte~) keyboard_event_scan::$4 ← (byte~) keyboard_event_scan::$3 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_event_scan::col#2) -- vbuaa=vbuaa_band_pbuc1_derefidx_vbuxx + //SEG695 [313] (byte~) keyboard_event_scan::$4 ← (byte~) keyboard_event_scan::$3 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_event_scan::col#2) -- vbuaa=vbuaa_band_pbuc1_derefidx_vbuxx and keyboard_matrix_col_bitmask,x - //SEG697 [315] if((byte~) keyboard_event_scan::$4==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@5 -- vbuaa_eq_0_then_la1 + //SEG696 [314] if((byte~) keyboard_event_scan::$4==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@5 -- vbuaa_eq_0_then_la1 cmp #0 beq b5 - //SEG698 keyboard_event_scan::@15 - //SEG699 [316] if((byte) keyboard_events_size#10==(byte/signed byte/word/signed word/dword/signed dword) 8) goto keyboard_event_scan::@5 -- vbuz1_eq_vbuc1_then_la1 + //SEG697 keyboard_event_scan::@15 + //SEG698 [315] if((byte) keyboard_events_size#10==(byte/signed byte/word/signed word/dword/signed dword) 8) goto keyboard_event_scan::@5 -- vbuz1_eq_vbuc1_then_la1 lda keyboard_events_size cmp #8 beq b5 - //SEG700 keyboard_event_scan::@16 - //SEG701 [317] (byte) keyboard_event_scan::event_type#0 ← (byte) keyboard_event_scan::row_scan#0 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_event_scan::col#2) -- vbuaa=vbuz1_band_pbuc1_derefidx_vbuxx + //SEG699 keyboard_event_scan::@16 + //SEG700 [316] (byte) keyboard_event_scan::event_type#0 ← (byte) keyboard_event_scan::row_scan#0 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_event_scan::col#2) -- vbuaa=vbuz1_band_pbuc1_derefidx_vbuxx lda keyboard_matrix_col_bitmask,x and row_scan - //SEG702 [318] if((byte) keyboard_event_scan::event_type#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@7 -- vbuaa_eq_0_then_la1 + //SEG701 [317] if((byte) keyboard_event_scan::event_type#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@7 -- vbuaa_eq_0_then_la1 cmp #0 beq b7 - //SEG703 keyboard_event_scan::@17 - //SEG704 [319] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte) keyboard_event_scan::keycode#10 -- pbuc1_derefidx_vbuz1=vbuz2 + //SEG702 keyboard_event_scan::@17 + //SEG703 [318] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte) keyboard_event_scan::keycode#10 -- pbuc1_derefidx_vbuz1=vbuz2 lda keycode ldy keyboard_events_size sta keyboard_events,y - //SEG705 [320] (byte) keyboard_events_size#2 ← ++ (byte) keyboard_events_size#10 -- vbuz1=_inc_vbuz1 + //SEG704 [319] (byte) keyboard_events_size#2 ← ++ (byte) keyboard_events_size#10 -- vbuz1=_inc_vbuz1 inc keyboard_events_size - //SEG706 [321] phi from keyboard_event_scan::@15 keyboard_event_scan::@17 keyboard_event_scan::@4 keyboard_event_scan::@7 to keyboard_event_scan::@5 [phi:keyboard_event_scan::@15/keyboard_event_scan::@17/keyboard_event_scan::@4/keyboard_event_scan::@7->keyboard_event_scan::@5] - //SEG707 [321] phi (byte) keyboard_events_size#30 = (byte) keyboard_events_size#10 [phi:keyboard_event_scan::@15/keyboard_event_scan::@17/keyboard_event_scan::@4/keyboard_event_scan::@7->keyboard_event_scan::@5#0] -- register_copy - //SEG708 keyboard_event_scan::@5 + //SEG705 [320] phi from keyboard_event_scan::@15 keyboard_event_scan::@17 keyboard_event_scan::@4 keyboard_event_scan::@7 to keyboard_event_scan::@5 [phi:keyboard_event_scan::@15/keyboard_event_scan::@17/keyboard_event_scan::@4/keyboard_event_scan::@7->keyboard_event_scan::@5] + //SEG706 [320] phi (byte) keyboard_events_size#30 = (byte) keyboard_events_size#10 [phi:keyboard_event_scan::@15/keyboard_event_scan::@17/keyboard_event_scan::@4/keyboard_event_scan::@7->keyboard_event_scan::@5#0] -- register_copy + //SEG707 keyboard_event_scan::@5 b5: - //SEG709 [322] (byte) keyboard_event_scan::keycode#15 ← ++ (byte) keyboard_event_scan::keycode#10 -- vbuz1=_inc_vbuz1 + //SEG708 [321] (byte) keyboard_event_scan::keycode#15 ← ++ (byte) keyboard_event_scan::keycode#10 -- vbuz1=_inc_vbuz1 inc keycode - //SEG710 [323] (byte) keyboard_event_scan::col#1 ← ++ (byte) keyboard_event_scan::col#2 -- vbuxx=_inc_vbuxx + //SEG709 [322] (byte) keyboard_event_scan::col#1 ← ++ (byte) keyboard_event_scan::col#2 -- vbuxx=_inc_vbuxx inx - //SEG711 [324] if((byte) keyboard_event_scan::col#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto keyboard_event_scan::@4 -- vbuxx_neq_vbuc1_then_la1 + //SEG710 [323] if((byte) keyboard_event_scan::col#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto keyboard_event_scan::@4 -- vbuxx_neq_vbuc1_then_la1 cpx #8 bne b4 - //SEG712 keyboard_event_scan::@19 - //SEG713 [325] *((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2) ← (byte) keyboard_event_scan::row_scan#0 -- pbuc1_derefidx_vbuz1=vbuz2 + //SEG711 keyboard_event_scan::@19 + //SEG712 [324] *((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2) ← (byte) keyboard_event_scan::row_scan#0 -- pbuc1_derefidx_vbuz1=vbuz2 lda row_scan ldy row sta keyboard_scan_values,y jmp b3 - //SEG714 keyboard_event_scan::@7 + //SEG713 keyboard_event_scan::@7 b7: - //SEG715 [326] (byte/word/dword~) keyboard_event_scan::$11 ← (byte) keyboard_event_scan::keycode#10 | (byte/signed byte/word/signed word/dword/signed dword) 64 -- vbuaa=vbuz1_bor_vbuc1 + //SEG714 [325] (byte/word/dword~) keyboard_event_scan::$11 ← (byte) keyboard_event_scan::keycode#10 | (byte/signed byte/word/signed word/dword/signed dword) 64 -- vbuaa=vbuz1_bor_vbuc1 lda #$40 ora keycode - //SEG716 [327] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte/word/dword~) keyboard_event_scan::$11 -- pbuc1_derefidx_vbuz1=vbuaa + //SEG715 [326] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte/word/dword~) keyboard_event_scan::$11 -- pbuc1_derefidx_vbuz1=vbuaa ldy keyboard_events_size sta keyboard_events,y - //SEG717 [328] (byte) keyboard_events_size#1 ← ++ (byte) keyboard_events_size#10 -- vbuz1=_inc_vbuz1 + //SEG716 [327] (byte) keyboard_events_size#1 ← ++ (byte) keyboard_events_size#10 -- vbuz1=_inc_vbuz1 inc keyboard_events_size jmp b5 } -//SEG718 keyboard_matrix_read +//SEG717 keyboard_matrix_read keyboard_matrix_read: { - //SEG719 [329] *((const byte*) CIA1_PORT_A#0) ← *((const byte[8]) keyboard_matrix_row_bitmask#0 + (byte) keyboard_matrix_read::rowid#0) -- _deref_pbuc1=pbuc2_derefidx_vbuxx + //SEG718 [328] *((const byte*) CIA1_PORT_A#0) ← *((const byte[8]) keyboard_matrix_row_bitmask#0 + (byte) keyboard_matrix_read::rowid#0) -- _deref_pbuc1=pbuc2_derefidx_vbuxx lda keyboard_matrix_row_bitmask,x sta CIA1_PORT_A - //SEG720 [330] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) -- vbuaa=_bnot__deref_pbuc1 + //SEG719 [329] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) -- vbuaa=_bnot__deref_pbuc1 lda CIA1_PORT_B eor #$ff - //SEG721 keyboard_matrix_read::@return - //SEG722 [331] return + //SEG720 keyboard_matrix_read::@return + //SEG721 [330] return rts } -//SEG723 render_show +//SEG722 render_show render_show: { .const toD0181_return = (>(PLAYFIELD_SCREEN_1&$3fff)<<2)|(>PLAYFIELD_CHARSET)>>2&$f .const toD0182_return = (>(PLAYFIELD_SCREEN_2&$3fff)<<2)|(>PLAYFIELD_CHARSET)>>2&$f - //SEG724 [332] if((byte) render_screen_show#16==(byte/signed byte/word/signed word/dword/signed dword) 0) goto render_show::toD0181 -- vbuz1_eq_0_then_la1 + //SEG723 [331] if((byte) render_screen_show#16==(byte/signed byte/word/signed word/dword/signed dword) 0) goto render_show::toD0181 -- vbuz1_eq_0_then_la1 lda render_screen_show cmp #0 beq toD0181 - //SEG725 [333] phi from render_show to render_show::toD0182 [phi:render_show->render_show::toD0182] - //SEG726 render_show::toD0182 - //SEG727 [334] phi from render_show::toD0182 to render_show::@2 [phi:render_show::toD0182->render_show::@2] - //SEG728 [334] phi (byte) render_show::d018val#3 = (const byte) render_show::toD0182_return#0 [phi:render_show::toD0182->render_show::@2#0] -- vbuaa=vbuc1 + //SEG724 [332] phi from render_show to render_show::toD0182 [phi:render_show->render_show::toD0182] + //SEG725 render_show::toD0182 + //SEG726 [333] phi from render_show::toD0182 to render_show::@2 [phi:render_show::toD0182->render_show::@2] + //SEG727 [333] phi (byte) render_show::d018val#3 = (const byte) render_show::toD0182_return#0 [phi:render_show::toD0182->render_show::@2#0] -- vbuaa=vbuc1 lda #toD0182_return - //SEG729 render_show::@2 + //SEG728 render_show::@2 b2: - //SEG730 [335] *((const byte*) D018#0) ← (byte) render_show::d018val#3 -- _deref_pbuc1=vbuaa + //SEG729 [334] *((const byte*) D018#0) ← (byte) render_show::d018val#3 -- _deref_pbuc1=vbuaa sta D018 - //SEG731 [336] (byte) render_screen_showing#1 ← (byte) render_screen_show#16 -- vbuz1=vbuz2 + //SEG730 [335] (byte) render_screen_showing#1 ← (byte) render_screen_show#16 -- vbuz1=vbuz2 lda render_screen_show sta render_screen_showing - //SEG732 render_show::@return - //SEG733 [337] return + //SEG731 render_show::@return + //SEG732 [336] return rts - //SEG734 [338] phi from render_show to render_show::toD0181 [phi:render_show->render_show::toD0181] - //SEG735 render_show::toD0181 + //SEG733 [337] phi from render_show to render_show::toD0181 [phi:render_show->render_show::toD0181] + //SEG734 render_show::toD0181 toD0181: - //SEG736 [334] phi from render_show::toD0181 to render_show::@2 [phi:render_show::toD0181->render_show::@2] - //SEG737 [334] phi (byte) render_show::d018val#3 = (const byte) render_show::toD0181_return#0 [phi:render_show::toD0181->render_show::@2#0] -- vbuaa=vbuc1 + //SEG735 [333] phi from render_show::toD0181 to render_show::@2 [phi:render_show::toD0181->render_show::@2] + //SEG736 [333] phi (byte) render_show::d018val#3 = (const byte) render_show::toD0181_return#0 [phi:render_show::toD0181->render_show::@2#0] -- vbuaa=vbuc1 lda #toD0181_return jmp b2 } -//SEG738 play_init +//SEG737 play_init play_init: { .label pli = 7 .label idx = 2 - //SEG739 [340] phi from play_init to play_init::@1 [phi:play_init->play_init::@1] - //SEG740 [340] phi (byte) play_init::idx#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_init->play_init::@1#0] -- vbuz1=vbuc1 + //SEG738 [339] phi from play_init to play_init::@1 [phi:play_init->play_init::@1] + //SEG739 [339] phi (byte) play_init::idx#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_init->play_init::@1#0] -- vbuz1=vbuc1 lda #0 sta idx - //SEG741 [340] phi (byte*) play_init::pli#2 = (const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 [phi:play_init->play_init::@1#1] -- pbuz1=pbuc1 + //SEG740 [339] phi (byte*) play_init::pli#2 = (const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 [phi:play_init->play_init::@1#1] -- pbuz1=pbuc1 lda #playfield sta pli+1 - //SEG742 [340] phi (byte) play_init::j#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_init->play_init::@1#2] -- vbuxx=vbuc1 + //SEG741 [339] phi (byte) play_init::j#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_init->play_init::@1#2] -- vbuxx=vbuc1 ldx #0 - //SEG743 [340] phi from play_init::@1 to play_init::@1 [phi:play_init::@1->play_init::@1] - //SEG744 [340] phi (byte) play_init::idx#2 = (byte) play_init::idx#1 [phi:play_init::@1->play_init::@1#0] -- register_copy - //SEG745 [340] phi (byte*) play_init::pli#2 = (byte*) play_init::pli#1 [phi:play_init::@1->play_init::@1#1] -- register_copy - //SEG746 [340] phi (byte) play_init::j#2 = (byte) play_init::j#1 [phi:play_init::@1->play_init::@1#2] -- register_copy - //SEG747 play_init::@1 + //SEG742 [339] phi from play_init::@1 to play_init::@1 [phi:play_init::@1->play_init::@1] + //SEG743 [339] phi (byte) play_init::idx#2 = (byte) play_init::idx#1 [phi:play_init::@1->play_init::@1#0] -- register_copy + //SEG744 [339] phi (byte*) play_init::pli#2 = (byte*) play_init::pli#1 [phi:play_init::@1->play_init::@1#1] -- register_copy + //SEG745 [339] phi (byte) play_init::j#2 = (byte) play_init::j#1 [phi:play_init::@1->play_init::@1#2] -- register_copy + //SEG746 play_init::@1 b1: - //SEG748 [341] (byte~) play_init::$1 ← (byte) play_init::j#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuaa=vbuxx_rol_1 + //SEG747 [340] (byte~) play_init::$1 ← (byte) play_init::j#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuaa=vbuxx_rol_1 txa asl - //SEG749 [342] *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte~) play_init::$1) ← (byte*) play_init::pli#2 -- pptc1_derefidx_vbuaa=pbuz1 + //SEG748 [341] *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte~) play_init::$1) ← (byte*) play_init::pli#2 -- pptc1_derefidx_vbuaa=pbuz1 tay lda pli sta playfield_lines,y lda pli+1 sta playfield_lines+1,y - //SEG750 [343] *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0 + (byte) play_init::j#2) ← (byte) play_init::idx#2 -- pbuc1_derefidx_vbuxx=vbuz1 + //SEG749 [342] *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0 + (byte) play_init::j#2) ← (byte) play_init::idx#2 -- pbuc1_derefidx_vbuxx=vbuz1 lda idx sta playfield_lines_idx,x - //SEG751 [344] (byte*) play_init::pli#1 ← (byte*) play_init::pli#2 + (const byte) PLAYFIELD_COLS#0 -- pbuz1=pbuz1_plus_vbuc1 + //SEG750 [343] (byte*) play_init::pli#1 ← (byte*) play_init::pli#2 + (const byte) PLAYFIELD_COLS#0 -- pbuz1=pbuz1_plus_vbuc1 lda pli clc adc #PLAYFIELD_COLS @@ -18844,200 +18663,200 @@ play_init: { bcc !+ inc pli+1 !: - //SEG752 [345] (byte) play_init::idx#1 ← (byte) play_init::idx#2 + (const byte) PLAYFIELD_COLS#0 -- vbuz1=vbuz1_plus_vbuc1 + //SEG751 [344] (byte) play_init::idx#1 ← (byte) play_init::idx#2 + (const byte) PLAYFIELD_COLS#0 -- vbuz1=vbuz1_plus_vbuc1 lda #PLAYFIELD_COLS clc adc idx sta idx - //SEG753 [346] (byte) play_init::j#1 ← ++ (byte) play_init::j#2 -- vbuxx=_inc_vbuxx + //SEG752 [345] (byte) play_init::j#1 ← ++ (byte) play_init::j#2 -- vbuxx=_inc_vbuxx inx - //SEG754 [347] if((byte) play_init::j#1!=(const byte) PLAYFIELD_LINES#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto play_init::@1 -- vbuxx_neq_vbuc1_then_la1 + //SEG753 [346] if((byte) play_init::j#1!=(const byte) PLAYFIELD_LINES#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto play_init::@1 -- vbuxx_neq_vbuc1_then_la1 cpx #PLAYFIELD_LINES-1+1 bne b1 - //SEG755 play_init::@2 - //SEG756 [348] *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0+(const byte) PLAYFIELD_LINES#0) ← (const byte) PLAYFIELD_COLS#0*(const byte) PLAYFIELD_LINES#0 -- _deref_pbuc1=vbuc2 + //SEG754 play_init::@2 + //SEG755 [347] *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0+(const byte) PLAYFIELD_LINES#0) ← (const byte) PLAYFIELD_COLS#0*(const byte) PLAYFIELD_LINES#0 -- _deref_pbuc1=vbuc2 lda #PLAYFIELD_COLS*PLAYFIELD_LINES sta playfield_lines_idx+PLAYFIELD_LINES - //SEG757 play_init::@return - //SEG758 [349] return + //SEG756 play_init::@return + //SEG757 [348] return rts } -//SEG759 sprites_irq_init +//SEG758 sprites_irq_init sprites_irq_init: { - //SEG760 asm { sei } + //SEG759 asm { sei } sei - //SEG761 [351] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0 -- _deref_pbuc1=vbuc2 + //SEG760 [350] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0 -- _deref_pbuc1=vbuc2 lda #IRQ_RASTER sta IRQ_STATUS - //SEG762 asm { ldaCIA1_INTERRUPT } + //SEG761 asm { ldaCIA1_INTERRUPT } lda CIA1_INTERRUPT - //SEG763 [353] *((const byte*) PROCPORT_DDR#0) ← (const byte) PROCPORT_DDR_MEMORY_MASK#0 -- _deref_pbuc1=vbuc2 + //SEG762 [352] *((const byte*) PROCPORT_DDR#0) ← (const byte) PROCPORT_DDR_MEMORY_MASK#0 -- _deref_pbuc1=vbuc2 lda #PROCPORT_DDR_MEMORY_MASK sta PROCPORT_DDR - //SEG764 [354] *((const byte*) PROCPORT#0) ← (const byte) PROCPORT_RAM_IO#0 -- _deref_pbuc1=vbuc2 + //SEG763 [353] *((const byte*) PROCPORT#0) ← (const byte) PROCPORT_RAM_IO#0 -- _deref_pbuc1=vbuc2 lda #PROCPORT_RAM_IO sta PROCPORT - //SEG765 [355] *((const byte*) CIA1_INTERRUPT#0) ← (const byte) CIA_INTERRUPT_CLEAR#0 -- _deref_pbuc1=vbuc2 + //SEG764 [354] *((const byte*) CIA1_INTERRUPT#0) ← (const byte) CIA_INTERRUPT_CLEAR#0 -- _deref_pbuc1=vbuc2 lda #CIA_INTERRUPT_CLEAR sta CIA1_INTERRUPT - //SEG766 [356] *((const byte*) VIC_CONTROL#0) ← *((const byte*) VIC_CONTROL#0) & (byte/signed byte/word/signed word/dword/signed dword) 127 -- _deref_pbuc1=_deref_pbuc1_band_vbuc2 + //SEG765 [355] *((const byte*) VIC_CONTROL#0) ← *((const byte*) VIC_CONTROL#0) & (byte/signed byte/word/signed word/dword/signed dword) 127 -- _deref_pbuc1=_deref_pbuc1_band_vbuc2 lda VIC_CONTROL and #$7f sta VIC_CONTROL - //SEG767 [357] *((const byte*) RASTER#0) ← (const byte) IRQ_RASTER_FIRST#0 -- _deref_pbuc1=vbuc2 + //SEG766 [356] *((const byte*) RASTER#0) ← (const byte) IRQ_RASTER_FIRST#0 -- _deref_pbuc1=vbuc2 lda #IRQ_RASTER_FIRST sta RASTER - //SEG768 [358] *((const byte*) IRQ_ENABLE#0) ← (const byte) IRQ_RASTER#0 -- _deref_pbuc1=vbuc2 + //SEG767 [357] *((const byte*) IRQ_ENABLE#0) ← (const byte) IRQ_RASTER#0 -- _deref_pbuc1=vbuc2 lda #IRQ_RASTER sta IRQ_ENABLE - //SEG769 [359] *((const void()**) HARDWARE_IRQ#0) ← &interrupt(HARDWARE_CLOBBER)(void()) sprites_irq() -- _deref_pptc1=pprc2 + //SEG768 [358] *((const void()**) HARDWARE_IRQ#0) ← &interrupt(HARDWARE_CLOBBER)(void()) sprites_irq() -- _deref_pptc1=pprc2 lda #sprites_irq sta HARDWARE_IRQ+1 - //SEG770 asm { cli } + //SEG769 asm { cli } cli - //SEG771 sprites_irq_init::@return - //SEG772 [361] return + //SEG770 sprites_irq_init::@return + //SEG771 [360] return rts } -//SEG773 sprites_init +//SEG772 sprites_init sprites_init: { .label xpos = 2 - //SEG774 [362] *((const byte*) SPRITES_ENABLE#0) ← (byte/signed byte/word/signed word/dword/signed dword) 15 -- _deref_pbuc1=vbuc2 + //SEG773 [361] *((const byte*) SPRITES_ENABLE#0) ← (byte/signed byte/word/signed word/dword/signed dword) 15 -- _deref_pbuc1=vbuc2 lda #$f sta SPRITES_ENABLE - //SEG775 [363] *((const byte*) SPRITES_MC#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2 + //SEG774 [362] *((const byte*) SPRITES_MC#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2 lda #0 sta SPRITES_MC - //SEG776 [364] *((const byte*) SPRITES_EXPAND_Y#0) ← *((const byte*) SPRITES_MC#0) -- _deref_pbuc1=_deref_pbuc2 + //SEG775 [363] *((const byte*) SPRITES_EXPAND_Y#0) ← *((const byte*) SPRITES_MC#0) -- _deref_pbuc1=_deref_pbuc2 sta SPRITES_EXPAND_Y - //SEG777 [365] *((const byte*) SPRITES_EXPAND_X#0) ← *((const byte*) SPRITES_EXPAND_Y#0) -- _deref_pbuc1=_deref_pbuc2 + //SEG776 [364] *((const byte*) SPRITES_EXPAND_X#0) ← *((const byte*) SPRITES_EXPAND_Y#0) -- _deref_pbuc1=_deref_pbuc2 sta SPRITES_EXPAND_X - //SEG778 [366] phi from sprites_init to sprites_init::@1 [phi:sprites_init->sprites_init::@1] - //SEG779 [366] phi (byte) sprites_init::xpos#2 = (byte/signed byte/word/signed word/dword/signed dword) 24+(byte/signed byte/word/signed word/dword/signed dword) 15*(byte/signed byte/word/signed word/dword/signed dword) 8 [phi:sprites_init->sprites_init::@1#0] -- vbuz1=vbuc1 + //SEG777 [365] phi from sprites_init to sprites_init::@1 [phi:sprites_init->sprites_init::@1] + //SEG778 [365] phi (byte) sprites_init::xpos#2 = (byte/signed byte/word/signed word/dword/signed dword) 24+(byte/signed byte/word/signed word/dword/signed dword) 15*(byte/signed byte/word/signed word/dword/signed dword) 8 [phi:sprites_init->sprites_init::@1#0] -- vbuz1=vbuc1 lda #$18+$f*8 sta xpos - //SEG780 [366] phi (byte) sprites_init::s#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:sprites_init->sprites_init::@1#1] -- vbuxx=vbuc1 + //SEG779 [365] phi (byte) sprites_init::s#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:sprites_init->sprites_init::@1#1] -- vbuxx=vbuc1 ldx #0 - //SEG781 [366] phi from sprites_init::@1 to sprites_init::@1 [phi:sprites_init::@1->sprites_init::@1] - //SEG782 [366] phi (byte) sprites_init::xpos#2 = (byte) sprites_init::xpos#1 [phi:sprites_init::@1->sprites_init::@1#0] -- register_copy - //SEG783 [366] phi (byte) sprites_init::s#2 = (byte) sprites_init::s#1 [phi:sprites_init::@1->sprites_init::@1#1] -- register_copy - //SEG784 sprites_init::@1 + //SEG780 [365] phi from sprites_init::@1 to sprites_init::@1 [phi:sprites_init::@1->sprites_init::@1] + //SEG781 [365] phi (byte) sprites_init::xpos#2 = (byte) sprites_init::xpos#1 [phi:sprites_init::@1->sprites_init::@1#0] -- register_copy + //SEG782 [365] phi (byte) sprites_init::s#2 = (byte) sprites_init::s#1 [phi:sprites_init::@1->sprites_init::@1#1] -- register_copy + //SEG783 sprites_init::@1 b1: - //SEG785 [367] (byte) sprites_init::s2#0 ← (byte) sprites_init::s#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuaa=vbuxx_rol_1 + //SEG784 [366] (byte) sprites_init::s2#0 ← (byte) sprites_init::s#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuaa=vbuxx_rol_1 txa asl - //SEG786 [368] *((const byte*) SPRITES_XPOS#0 + (byte) sprites_init::s2#0) ← (byte) sprites_init::xpos#2 -- pbuc1_derefidx_vbuaa=vbuz1 + //SEG785 [367] *((const byte*) SPRITES_XPOS#0 + (byte) sprites_init::s2#0) ← (byte) sprites_init::xpos#2 -- pbuc1_derefidx_vbuaa=vbuz1 tay lda xpos sta SPRITES_XPOS,y - //SEG787 [369] *((const byte*) SPRITES_COLS#0 + (byte) sprites_init::s#2) ← (const byte) BLACK#0 -- pbuc1_derefidx_vbuxx=vbuc2 + //SEG786 [368] *((const byte*) SPRITES_COLS#0 + (byte) sprites_init::s#2) ← (const byte) BLACK#0 -- pbuc1_derefidx_vbuxx=vbuc2 lda #BLACK sta SPRITES_COLS,x - //SEG788 [370] (byte) sprites_init::xpos#1 ← (byte) sprites_init::xpos#2 + (byte/signed byte/word/signed word/dword/signed dword) 24 -- vbuz1=vbuz1_plus_vbuc1 + //SEG787 [369] (byte) sprites_init::xpos#1 ← (byte) sprites_init::xpos#2 + (byte/signed byte/word/signed word/dword/signed dword) 24 -- vbuz1=vbuz1_plus_vbuc1 lda #$18 clc adc xpos sta xpos - //SEG789 [371] (byte) sprites_init::s#1 ← ++ (byte) sprites_init::s#2 -- vbuxx=_inc_vbuxx + //SEG788 [370] (byte) sprites_init::s#1 ← ++ (byte) sprites_init::s#2 -- vbuxx=_inc_vbuxx inx - //SEG790 [372] if((byte) sprites_init::s#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto sprites_init::@1 -- vbuxx_neq_vbuc1_then_la1 + //SEG789 [371] if((byte) sprites_init::s#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto sprites_init::@1 -- vbuxx_neq_vbuc1_then_la1 cpx #4 bne b1 - //SEG791 sprites_init::@return - //SEG792 [373] return + //SEG790 sprites_init::@return + //SEG791 [372] return rts } -//SEG793 render_init +//SEG792 render_init render_init: { .const vicSelectGfxBank1_toDd001_return = 3^(>PLAYFIELD_CHARSET)>>6 .label li_1 = 7 .label li_2 = $f - //SEG794 render_init::vicSelectGfxBank1 - //SEG795 [375] *((const byte*) CIA2_PORT_A_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3 -- _deref_pbuc1=vbuc2 + //SEG793 render_init::vicSelectGfxBank1 + //SEG794 [374] *((const byte*) CIA2_PORT_A_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3 -- _deref_pbuc1=vbuc2 lda #3 sta CIA2_PORT_A_DDR - //SEG796 [376] phi from render_init::vicSelectGfxBank1 to render_init::vicSelectGfxBank1_toDd001 [phi:render_init::vicSelectGfxBank1->render_init::vicSelectGfxBank1_toDd001] - //SEG797 render_init::vicSelectGfxBank1_toDd001 - //SEG798 render_init::vicSelectGfxBank1_@1 - //SEG799 [377] *((const byte*) CIA2_PORT_A#0) ← (const byte) render_init::vicSelectGfxBank1_toDd001_return#0 -- _deref_pbuc1=vbuc2 + //SEG795 [375] phi from render_init::vicSelectGfxBank1 to render_init::vicSelectGfxBank1_toDd001 [phi:render_init::vicSelectGfxBank1->render_init::vicSelectGfxBank1_toDd001] + //SEG796 render_init::vicSelectGfxBank1_toDd001 + //SEG797 render_init::vicSelectGfxBank1_@1 + //SEG798 [376] *((const byte*) CIA2_PORT_A#0) ← (const byte) render_init::vicSelectGfxBank1_toDd001_return#0 -- _deref_pbuc1=vbuc2 lda #vicSelectGfxBank1_toDd001_return sta CIA2_PORT_A - //SEG800 render_init::@3 - //SEG801 [378] *((const byte*) D011#0) ← (const byte) VIC_ECM#0|(const byte) VIC_DEN#0|(const byte) VIC_RSEL#0|(byte/signed byte/word/signed word/dword/signed dword) 3 -- _deref_pbuc1=vbuc2 + //SEG799 render_init::@3 + //SEG800 [377] *((const byte*) D011#0) ← (const byte) VIC_ECM#0|(const byte) VIC_DEN#0|(const byte) VIC_RSEL#0|(byte/signed byte/word/signed word/dword/signed dword) 3 -- _deref_pbuc1=vbuc2 lda #VIC_ECM|VIC_DEN|VIC_RSEL|3 sta D011 - //SEG802 [379] *((const byte*) BORDERCOL#0) ← (const byte) BLACK#0 -- _deref_pbuc1=vbuc2 + //SEG801 [378] *((const byte*) BORDERCOL#0) ← (const byte) BLACK#0 -- _deref_pbuc1=vbuc2 lda #BLACK sta BORDERCOL - //SEG803 [380] *((const byte*) BGCOL1#0) ← (const byte) BLACK#0 -- _deref_pbuc1=vbuc2 + //SEG802 [379] *((const byte*) BGCOL1#0) ← (const byte) BLACK#0 -- _deref_pbuc1=vbuc2 sta BGCOL1 - //SEG804 [381] *((const byte*) BGCOL2#0) ← (const byte) BLUE#0 -- _deref_pbuc1=vbuc2 + //SEG803 [380] *((const byte*) BGCOL2#0) ← (const byte) BLUE#0 -- _deref_pbuc1=vbuc2 lda #BLUE sta BGCOL2 - //SEG805 [382] *((const byte*) BGCOL3#0) ← (const byte) CYAN#0 -- _deref_pbuc1=vbuc2 + //SEG804 [381] *((const byte*) BGCOL3#0) ← (const byte) CYAN#0 -- _deref_pbuc1=vbuc2 lda #CYAN sta BGCOL3 - //SEG806 [383] *((const byte*) BGCOL4#0) ← (const byte) GREY#0 -- _deref_pbuc1=vbuc2 + //SEG805 [382] *((const byte*) BGCOL4#0) ← (const byte) GREY#0 -- _deref_pbuc1=vbuc2 lda #GREY sta BGCOL4 - //SEG807 [384] call render_screen_original - //SEG808 [397] phi from render_init::@3 to render_screen_original [phi:render_init::@3->render_screen_original] - //SEG809 [397] phi (byte*) render_screen_original::screen#9 = (const byte*) PLAYFIELD_SCREEN_1#0 [phi:render_init::@3->render_screen_original#0] -- pbuz1=pbuc1 + //SEG806 [383] call render_screen_original + //SEG807 [396] phi from render_init::@3 to render_screen_original [phi:render_init::@3->render_screen_original] + //SEG808 [396] phi (byte*) render_screen_original::screen#9 = (const byte*) PLAYFIELD_SCREEN_1#0 [phi:render_init::@3->render_screen_original#0] -- pbuz1=pbuc1 lda #PLAYFIELD_SCREEN_1 sta render_screen_original.screen+1 jsr render_screen_original - //SEG810 [385] phi from render_init::@3 to render_init::@4 [phi:render_init::@3->render_init::@4] - //SEG811 render_init::@4 - //SEG812 [386] call render_screen_original - //SEG813 [397] phi from render_init::@4 to render_screen_original [phi:render_init::@4->render_screen_original] - //SEG814 [397] phi (byte*) render_screen_original::screen#9 = (const byte*) PLAYFIELD_SCREEN_2#0 [phi:render_init::@4->render_screen_original#0] -- pbuz1=pbuc1 + //SEG809 [384] phi from render_init::@3 to render_init::@4 [phi:render_init::@3->render_init::@4] + //SEG810 render_init::@4 + //SEG811 [385] call render_screen_original + //SEG812 [396] phi from render_init::@4 to render_screen_original [phi:render_init::@4->render_screen_original] + //SEG813 [396] phi (byte*) render_screen_original::screen#9 = (const byte*) PLAYFIELD_SCREEN_2#0 [phi:render_init::@4->render_screen_original#0] -- pbuz1=pbuc1 lda #PLAYFIELD_SCREEN_2 sta render_screen_original.screen+1 jsr render_screen_original - //SEG815 [387] phi from render_init::@4 to render_init::@1 [phi:render_init::@4->render_init::@1] - //SEG816 [387] phi (byte*) render_init::li_2#2 = (const byte*) PLAYFIELD_SCREEN_2#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 16 [phi:render_init::@4->render_init::@1#0] -- pbuz1=pbuc1 + //SEG814 [386] phi from render_init::@4 to render_init::@1 [phi:render_init::@4->render_init::@1] + //SEG815 [386] phi (byte*) render_init::li_2#2 = (const byte*) PLAYFIELD_SCREEN_2#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 16 [phi:render_init::@4->render_init::@1#0] -- pbuz1=pbuc1 lda #PLAYFIELD_SCREEN_2+2*$28+$10 sta li_2+1 - //SEG817 [387] phi (byte*) render_init::li_1#2 = (const byte*) PLAYFIELD_SCREEN_1#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 16 [phi:render_init::@4->render_init::@1#1] -- pbuz1=pbuc1 + //SEG816 [386] phi (byte*) render_init::li_1#2 = (const byte*) PLAYFIELD_SCREEN_1#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 16 [phi:render_init::@4->render_init::@1#1] -- pbuz1=pbuc1 lda #PLAYFIELD_SCREEN_1+2*$28+$10 sta li_1+1 - //SEG818 [387] phi (byte) render_init::i#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_init::@4->render_init::@1#2] -- vbuxx=vbuc1 + //SEG817 [386] phi (byte) render_init::i#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_init::@4->render_init::@1#2] -- vbuxx=vbuc1 ldx #0 - //SEG819 [387] phi from render_init::@1 to render_init::@1 [phi:render_init::@1->render_init::@1] - //SEG820 [387] phi (byte*) render_init::li_2#2 = (byte*) render_init::li_2#1 [phi:render_init::@1->render_init::@1#0] -- register_copy - //SEG821 [387] phi (byte*) render_init::li_1#2 = (byte*) render_init::li_1#1 [phi:render_init::@1->render_init::@1#1] -- register_copy - //SEG822 [387] phi (byte) render_init::i#2 = (byte) render_init::i#1 [phi:render_init::@1->render_init::@1#2] -- register_copy - //SEG823 render_init::@1 + //SEG818 [386] phi from render_init::@1 to render_init::@1 [phi:render_init::@1->render_init::@1] + //SEG819 [386] phi (byte*) render_init::li_2#2 = (byte*) render_init::li_2#1 [phi:render_init::@1->render_init::@1#0] -- register_copy + //SEG820 [386] phi (byte*) render_init::li_1#2 = (byte*) render_init::li_1#1 [phi:render_init::@1->render_init::@1#1] -- register_copy + //SEG821 [386] phi (byte) render_init::i#2 = (byte) render_init::i#1 [phi:render_init::@1->render_init::@1#2] -- register_copy + //SEG822 render_init::@1 b1: - //SEG824 [388] (byte~) render_init::$13 ← (byte) render_init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuaa=vbuxx_rol_1 + //SEG823 [387] (byte~) render_init::$13 ← (byte) render_init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuaa=vbuxx_rol_1 txa asl - //SEG825 [389] *((const byte*[PLAYFIELD_LINES#0]) screen_lines_1#0 + (byte~) render_init::$13) ← (byte*) render_init::li_1#2 -- pptc1_derefidx_vbuaa=pbuz1 + //SEG824 [388] *((const byte*[PLAYFIELD_LINES#0]) screen_lines_1#0 + (byte~) render_init::$13) ← (byte*) render_init::li_1#2 -- pptc1_derefidx_vbuaa=pbuz1 tay lda li_1 sta screen_lines_1,y lda li_1+1 sta screen_lines_1+1,y - //SEG826 [390] (byte~) render_init::$14 ← (byte) render_init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuaa=vbuxx_rol_1 + //SEG825 [389] (byte~) render_init::$14 ← (byte) render_init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuaa=vbuxx_rol_1 txa asl - //SEG827 [391] *((const byte*[PLAYFIELD_LINES#0]) screen_lines_2#0 + (byte~) render_init::$14) ← (byte*) render_init::li_2#2 -- pptc1_derefidx_vbuaa=pbuz1 + //SEG826 [390] *((const byte*[PLAYFIELD_LINES#0]) screen_lines_2#0 + (byte~) render_init::$14) ← (byte*) render_init::li_2#2 -- pptc1_derefidx_vbuaa=pbuz1 tay lda li_2 sta screen_lines_2,y lda li_2+1 sta screen_lines_2+1,y - //SEG828 [392] (byte*) render_init::li_1#1 ← (byte*) render_init::li_1#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 -- pbuz1=pbuz1_plus_vbuc1 + //SEG827 [391] (byte*) render_init::li_1#1 ← (byte*) render_init::li_1#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 -- pbuz1=pbuz1_plus_vbuc1 lda li_1 clc adc #$28 @@ -19045,7 +18864,7 @@ render_init: { bcc !+ inc li_1+1 !: - //SEG829 [393] (byte*) render_init::li_2#1 ← (byte*) render_init::li_2#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 -- pbuz1=pbuz1_plus_vbuc1 + //SEG828 [392] (byte*) render_init::li_2#1 ← (byte*) render_init::li_2#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 -- pbuz1=pbuz1_plus_vbuc1 lda li_2 clc adc #$28 @@ -19053,346 +18872,311 @@ render_init: { bcc !+ inc li_2+1 !: - //SEG830 [394] (byte) render_init::i#1 ← ++ (byte) render_init::i#2 -- vbuxx=_inc_vbuxx + //SEG829 [393] (byte) render_init::i#1 ← ++ (byte) render_init::i#2 -- vbuxx=_inc_vbuxx inx - //SEG831 [395] if((byte) render_init::i#1!=(const byte) PLAYFIELD_LINES#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_init::@1 -- vbuxx_neq_vbuc1_then_la1 + //SEG830 [394] if((byte) render_init::i#1!=(const byte) PLAYFIELD_LINES#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_init::@1 -- vbuxx_neq_vbuc1_then_la1 cpx #PLAYFIELD_LINES-1+1 bne b1 - //SEG832 render_init::@return - //SEG833 [396] return + //SEG831 render_init::@return + //SEG832 [395] return rts } -//SEG834 render_screen_original +//SEG833 render_screen_original render_screen_original: { .const SPACE = 0 - .label screen = $17 - .label cols = $19 - .label c = 3 + .label screen = $12 + .label cols = $17 .label oscr = 7 - .label oext = $f - .label ocols = $12 + .label ocols = $f .label y = 2 - //SEG835 [398] phi from render_screen_original to render_screen_original::@1 [phi:render_screen_original->render_screen_original::@1] - //SEG836 [398] phi (byte) render_screen_original::y#6 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_screen_original->render_screen_original::@1#0] -- vbuz1=vbuc1 + //SEG834 [397] phi from render_screen_original to render_screen_original::@1 [phi:render_screen_original->render_screen_original::@1] + //SEG835 [397] phi (byte) render_screen_original::y#6 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_screen_original->render_screen_original::@1#0] -- vbuz1=vbuc1 lda #0 sta y - //SEG837 [398] phi (byte*) render_screen_original::ocols#4 = (const byte*) PLAYFIELD_COLORS_ORIGINAL#0+(byte/signed byte/word/signed word/dword/signed dword) 32*(byte/signed byte/word/signed word/dword/signed dword) 2 [phi:render_screen_original->render_screen_original::@1#1] -- pbuz1=pbuc1 + //SEG836 [397] phi (byte*) render_screen_original::ocols#4 = (const byte*) PLAYFIELD_COLORS_ORIGINAL#0+(byte/signed byte/word/signed word/dword/signed dword) 32*(byte/signed byte/word/signed word/dword/signed dword) 2 [phi:render_screen_original->render_screen_original::@1#1] -- pbuz1=pbuc1 lda #PLAYFIELD_COLORS_ORIGINAL+$20*2 sta ocols+1 - //SEG838 [398] phi (byte*) render_screen_original::oext#4 = (const byte*) PLAYFIELD_EXTENDED_ORIGINAL#0+(byte/signed byte/word/signed word/dword/signed dword) 32*(byte/signed byte/word/signed word/dword/signed dword) 2 [phi:render_screen_original->render_screen_original::@1#2] -- pbuz1=pbuc1 - lda #PLAYFIELD_EXTENDED_ORIGINAL+$20*2 - sta oext+1 - //SEG839 [398] phi (byte*) render_screen_original::oscr#4 = (const byte*) PLAYFIELD_SCREEN_ORIGINAL#0+(byte/signed byte/word/signed word/dword/signed dword) 32*(byte/signed byte/word/signed word/dword/signed dword) 2 [phi:render_screen_original->render_screen_original::@1#3] -- pbuz1=pbuc1 + //SEG837 [397] phi (byte*) render_screen_original::oscr#4 = (const byte*) PLAYFIELD_SCREEN_ORIGINAL#0+(byte/signed byte/word/signed word/dword/signed dword) 32*(byte/signed byte/word/signed word/dword/signed dword) 2 [phi:render_screen_original->render_screen_original::@1#2] -- pbuz1=pbuc1 lda #PLAYFIELD_SCREEN_ORIGINAL+$20*2 sta oscr+1 - //SEG840 [398] phi (byte*) render_screen_original::cols#7 = (const byte*) COLS#0 [phi:render_screen_original->render_screen_original::@1#4] -- pbuz1=pbuc1 + //SEG838 [397] phi (byte*) render_screen_original::cols#7 = (const byte*) COLS#0 [phi:render_screen_original->render_screen_original::@1#3] -- pbuz1=pbuc1 lda #COLS sta cols+1 - //SEG841 [398] phi (byte*) render_screen_original::screen#8 = (byte*) render_screen_original::screen#9 [phi:render_screen_original->render_screen_original::@1#5] -- register_copy - //SEG842 [398] phi from render_screen_original::@7 to render_screen_original::@1 [phi:render_screen_original::@7->render_screen_original::@1] - //SEG843 [398] phi (byte) render_screen_original::y#6 = (byte) render_screen_original::y#1 [phi:render_screen_original::@7->render_screen_original::@1#0] -- register_copy - //SEG844 [398] phi (byte*) render_screen_original::ocols#4 = (byte*) render_screen_original::ocols#1 [phi:render_screen_original::@7->render_screen_original::@1#1] -- register_copy - //SEG845 [398] phi (byte*) render_screen_original::oext#4 = (byte*) render_screen_original::oext#1 [phi:render_screen_original::@7->render_screen_original::@1#2] -- register_copy - //SEG846 [398] phi (byte*) render_screen_original::oscr#4 = (byte*) render_screen_original::oscr#1 [phi:render_screen_original::@7->render_screen_original::@1#3] -- register_copy - //SEG847 [398] phi (byte*) render_screen_original::cols#7 = (byte*) render_screen_original::cols#3 [phi:render_screen_original::@7->render_screen_original::@1#4] -- register_copy - //SEG848 [398] phi (byte*) render_screen_original::screen#8 = (byte*) render_screen_original::screen#10 [phi:render_screen_original::@7->render_screen_original::@1#5] -- register_copy - //SEG849 render_screen_original::@1 + //SEG839 [397] phi (byte*) render_screen_original::screen#8 = (byte*) render_screen_original::screen#9 [phi:render_screen_original->render_screen_original::@1#4] -- register_copy + //SEG840 [397] phi from render_screen_original::@7 to render_screen_original::@1 [phi:render_screen_original::@7->render_screen_original::@1] + //SEG841 [397] phi (byte) render_screen_original::y#6 = (byte) render_screen_original::y#1 [phi:render_screen_original::@7->render_screen_original::@1#0] -- register_copy + //SEG842 [397] phi (byte*) render_screen_original::ocols#4 = (byte*) render_screen_original::ocols#1 [phi:render_screen_original::@7->render_screen_original::@1#1] -- register_copy + //SEG843 [397] phi (byte*) render_screen_original::oscr#4 = (byte*) render_screen_original::oscr#1 [phi:render_screen_original::@7->render_screen_original::@1#2] -- register_copy + //SEG844 [397] phi (byte*) render_screen_original::cols#7 = (byte*) render_screen_original::cols#3 [phi:render_screen_original::@7->render_screen_original::@1#3] -- register_copy + //SEG845 [397] phi (byte*) render_screen_original::screen#8 = (byte*) render_screen_original::screen#10 [phi:render_screen_original::@7->render_screen_original::@1#4] -- register_copy + //SEG846 render_screen_original::@1 b1: - //SEG850 [399] phi from render_screen_original::@1 to render_screen_original::@2 [phi:render_screen_original::@1->render_screen_original::@2] - //SEG851 [399] phi (byte) render_screen_original::x#4 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_screen_original::@1->render_screen_original::@2#0] -- vbuxx=vbuc1 + //SEG847 [398] phi from render_screen_original::@1 to render_screen_original::@2 [phi:render_screen_original::@1->render_screen_original::@2] + //SEG848 [398] phi (byte) render_screen_original::x#4 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_screen_original::@1->render_screen_original::@2#0] -- vbuxx=vbuc1 ldx #0 - //SEG852 [399] 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 - //SEG853 [399] 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 - //SEG854 [399] phi from render_screen_original::@2 to render_screen_original::@2 [phi:render_screen_original::@2->render_screen_original::@2] - //SEG855 [399] 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 - //SEG856 [399] 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 - //SEG857 [399] 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 - //SEG858 render_screen_original::@2 + //SEG849 [398] 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 + //SEG850 [398] 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 + //SEG851 [398] phi from render_screen_original::@2 to render_screen_original::@2 [phi:render_screen_original::@2->render_screen_original::@2] + //SEG852 [398] 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 + //SEG853 [398] 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 + //SEG854 [398] 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 + //SEG855 render_screen_original::@2 b2: - //SEG859 [400] *((byte*) render_screen_original::screen#5) ← (const byte) render_screen_original::SPACE#0 -- _deref_pbuz1=vbuc1 + //SEG856 [399] *((byte*) render_screen_original::screen#5) ← (const byte) render_screen_original::SPACE#0 -- _deref_pbuz1=vbuc1 lda #SPACE ldy #0 sta (screen),y - //SEG860 [401] (byte*) render_screen_original::screen#2 ← ++ (byte*) render_screen_original::screen#5 -- pbuz1=_inc_pbuz1 + //SEG857 [400] (byte*) render_screen_original::screen#2 ← ++ (byte*) render_screen_original::screen#5 -- pbuz1=_inc_pbuz1 inc screen bne !+ inc screen+1 !: - //SEG861 [402] *((byte*) render_screen_original::cols#4) ← (const byte) BLACK#0 -- _deref_pbuz1=vbuc1 + //SEG858 [401] *((byte*) render_screen_original::cols#4) ← (const byte) BLACK#0 -- _deref_pbuz1=vbuc1 lda #BLACK ldy #0 sta (cols),y - //SEG862 [403] (byte*) render_screen_original::cols#1 ← ++ (byte*) render_screen_original::cols#4 -- pbuz1=_inc_pbuz1 + //SEG859 [402] (byte*) render_screen_original::cols#1 ← ++ (byte*) render_screen_original::cols#4 -- pbuz1=_inc_pbuz1 inc cols bne !+ inc cols+1 !: - //SEG863 [404] (byte) render_screen_original::x#1 ← ++ (byte) render_screen_original::x#4 -- vbuxx=_inc_vbuxx + //SEG860 [403] (byte) render_screen_original::x#1 ← ++ (byte) render_screen_original::x#4 -- vbuxx=_inc_vbuxx inx - //SEG864 [405] if((byte) render_screen_original::x#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_screen_original::@2 -- vbuxx_neq_vbuc1_then_la1 + //SEG861 [404] if((byte) render_screen_original::x#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_screen_original::@2 -- vbuxx_neq_vbuc1_then_la1 cpx #4 bne b2 - //SEG865 [406] 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] - //SEG866 [406] 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 - //SEG867 [406] 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 - //SEG868 [406] 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 - //SEG869 [406] 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 - //SEG870 [406] phi (byte*) render_screen_original::oext#2 = (byte*) render_screen_original::oext#4 [phi:render_screen_original::@2/render_screen_original::@3->render_screen_original::@3#4] -- register_copy - //SEG871 [406] 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#5] -- register_copy - //SEG872 render_screen_original::@3 + //SEG862 [405] 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] + //SEG863 [405] 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 + //SEG864 [405] 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 + //SEG865 [405] 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 + //SEG866 [405] 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 + //SEG867 [405] 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 + //SEG868 render_screen_original::@3 b3: - //SEG873 [407] (byte) render_screen_original::c#0 ← *((byte*) render_screen_original::oscr#2) + (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=_deref_pbuz2_plus_1 + //SEG869 [406] *((byte*) render_screen_original::screen#6) ← *((byte*) render_screen_original::oscr#2) -- _deref_pbuz1=_deref_pbuz2 ldy #0 lda (oscr),y - clc - adc #1 - sta c - //SEG874 [408] (byte*) render_screen_original::oscr#1 ← ++ (byte*) render_screen_original::oscr#2 -- pbuz1=_inc_pbuz1 + sta (screen),y + //SEG870 [407] (byte*) render_screen_original::screen#3 ← ++ (byte*) render_screen_original::screen#6 -- pbuz1=_inc_pbuz1 + inc screen + bne !+ + inc screen+1 + !: + //SEG871 [408] (byte*) render_screen_original::oscr#1 ← ++ (byte*) render_screen_original::oscr#2 -- pbuz1=_inc_pbuz1 inc oscr bne !+ inc oscr+1 !: - //SEG875 [409] (byte/signed word/word/dword/signed dword~) render_screen_original::$8 ← *((byte*) render_screen_original::oext#2) - (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuaa=_deref_pbuz1_minus_1 - ldy #0 - lda (oext),y - sec - sbc #1 - //SEG876 [410] (byte) render_screen_original::ext#0 ← (byte/signed word/word/dword/signed dword~) render_screen_original::$8 << (byte/signed byte/word/signed word/dword/signed dword) 6 -- vbuaa=vbuaa_rol_6 - asl - asl - asl - asl - asl - asl - //SEG877 [411] (byte*) render_screen_original::oext#1 ← ++ (byte*) render_screen_original::oext#2 -- pbuz1=_inc_pbuz1 - inc oext - bne !+ - inc oext+1 - !: - //SEG878 [412] (byte~) render_screen_original::$10 ← (byte) render_screen_original::c#0 | (byte) render_screen_original::ext#0 -- vbuaa=vbuz1_bor_vbuaa - ora c - //SEG879 [413] *((byte*) render_screen_original::screen#6) ← (byte~) render_screen_original::$10 -- _deref_pbuz1=vbuaa - ldy #0 - sta (screen),y - //SEG880 [414] (byte*) render_screen_original::screen#3 ← ++ (byte*) render_screen_original::screen#6 -- pbuz1=_inc_pbuz1 - inc screen - bne !+ - inc screen+1 - !: - //SEG881 [415] *((byte*) render_screen_original::cols#5) ← *((byte*) render_screen_original::ocols#2) -- _deref_pbuz1=_deref_pbuz2 + //SEG872 [409] *((byte*) render_screen_original::cols#5) ← *((byte*) render_screen_original::ocols#2) -- _deref_pbuz1=_deref_pbuz2 ldy #0 lda (ocols),y sta (cols),y - //SEG882 [416] (byte*) render_screen_original::cols#2 ← ++ (byte*) render_screen_original::cols#5 -- pbuz1=_inc_pbuz1 + //SEG873 [410] (byte*) render_screen_original::cols#2 ← ++ (byte*) render_screen_original::cols#5 -- pbuz1=_inc_pbuz1 inc cols bne !+ inc cols+1 !: - //SEG883 [417] (byte*) render_screen_original::ocols#1 ← ++ (byte*) render_screen_original::ocols#2 -- pbuz1=_inc_pbuz1 + //SEG874 [411] (byte*) render_screen_original::ocols#1 ← ++ (byte*) render_screen_original::ocols#2 -- pbuz1=_inc_pbuz1 inc ocols bne !+ inc ocols+1 !: - //SEG884 [418] (byte) render_screen_original::x#2 ← ++ (byte) render_screen_original::x#5 -- vbuxx=_inc_vbuxx + //SEG875 [412] (byte) render_screen_original::x#2 ← ++ (byte) render_screen_original::x#5 -- vbuxx=_inc_vbuxx inx - //SEG885 [419] if((byte) render_screen_original::x#2!=(byte/signed byte/word/signed word/dword/signed dword) 36) goto render_screen_original::@3 -- vbuxx_neq_vbuc1_then_la1 + //SEG876 [413] if((byte) render_screen_original::x#2!=(byte/signed byte/word/signed word/dword/signed dword) 36) goto render_screen_original::@3 -- vbuxx_neq_vbuc1_then_la1 cpx #$24 bne b3 - //SEG886 [420] 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] - //SEG887 [420] 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 - //SEG888 [420] 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 - //SEG889 [420] 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 - //SEG890 render_screen_original::@4 + //SEG877 [414] 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] + //SEG878 [414] 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 + //SEG879 [414] 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 + //SEG880 [414] 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 + //SEG881 render_screen_original::@4 b4: - //SEG891 [421] *((byte*) render_screen_original::screen#7) ← (const byte) render_screen_original::SPACE#0 -- _deref_pbuz1=vbuc1 + //SEG882 [415] *((byte*) render_screen_original::screen#7) ← (const byte) render_screen_original::SPACE#0 -- _deref_pbuz1=vbuc1 lda #SPACE ldy #0 sta (screen),y - //SEG892 [422] (byte*) render_screen_original::screen#10 ← ++ (byte*) render_screen_original::screen#7 -- pbuz1=_inc_pbuz1 + //SEG883 [416] (byte*) render_screen_original::screen#10 ← ++ (byte*) render_screen_original::screen#7 -- pbuz1=_inc_pbuz1 inc screen bne !+ inc screen+1 !: - //SEG893 [423] *((byte*) render_screen_original::cols#6) ← (const byte) BLACK#0 -- _deref_pbuz1=vbuc1 + //SEG884 [417] *((byte*) render_screen_original::cols#6) ← (const byte) BLACK#0 -- _deref_pbuz1=vbuc1 lda #BLACK ldy #0 sta (cols),y - //SEG894 [424] (byte*) render_screen_original::cols#3 ← ++ (byte*) render_screen_original::cols#6 -- pbuz1=_inc_pbuz1 + //SEG885 [418] (byte*) render_screen_original::cols#3 ← ++ (byte*) render_screen_original::cols#6 -- pbuz1=_inc_pbuz1 inc cols bne !+ inc cols+1 !: - //SEG895 [425] (byte) render_screen_original::x#3 ← ++ (byte) render_screen_original::x#6 -- vbuxx=_inc_vbuxx + //SEG886 [419] (byte) render_screen_original::x#3 ← ++ (byte) render_screen_original::x#6 -- vbuxx=_inc_vbuxx inx - //SEG896 [426] if((byte) render_screen_original::x#3!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto render_screen_original::@4 -- vbuxx_neq_vbuc1_then_la1 + //SEG887 [420] if((byte) render_screen_original::x#3!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto render_screen_original::@4 -- vbuxx_neq_vbuc1_then_la1 cpx #$28 bne b4 - //SEG897 render_screen_original::@7 - //SEG898 [427] (byte) render_screen_original::y#1 ← ++ (byte) render_screen_original::y#6 -- vbuz1=_inc_vbuz1 + //SEG888 render_screen_original::@7 + //SEG889 [421] (byte) render_screen_original::y#1 ← ++ (byte) render_screen_original::y#6 -- vbuz1=_inc_vbuz1 inc y - //SEG899 [428] if((byte) render_screen_original::y#1!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto render_screen_original::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG890 [422] if((byte) render_screen_original::y#1!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto render_screen_original::@1 -- vbuz1_neq_vbuc1_then_la1 lda y cmp #$19 - beq !b1+ - jmp b1 - !b1: - //SEG900 render_screen_original::@return - //SEG901 [429] return + bne b1 + //SEG891 render_screen_original::@return + //SEG892 [423] return rts } -//SEG902 sid_rnd_init +//SEG893 sid_rnd_init sid_rnd_init: { - //SEG903 [430] *((const word*) SID_VOICE3_FREQ#0) ← (word/dword/signed dword) 65535 -- _deref_pwuc1=vwuc2 + //SEG894 [424] *((const word*) SID_VOICE3_FREQ#0) ← (word/dword/signed dword) 65535 -- _deref_pwuc1=vwuc2 lda #<$ffff sta SID_VOICE3_FREQ lda #>$ffff sta SID_VOICE3_FREQ+1 - //SEG904 [431] *((const byte*) SID_VOICE3_CONTROL#0) ← (const byte) SID_CONTROL_NOISE#0 -- _deref_pbuc1=vbuc2 + //SEG895 [425] *((const byte*) SID_VOICE3_CONTROL#0) ← (const byte) SID_CONTROL_NOISE#0 -- _deref_pbuc1=vbuc2 lda #SID_CONTROL_NOISE sta SID_VOICE3_CONTROL - //SEG905 sid_rnd_init::@return - //SEG906 [432] return + //SEG896 sid_rnd_init::@return + //SEG897 [426] return rts } -//SEG907 sprites_irq +//SEG898 sprites_irq sprites_irq: { .const toSpritePtr2_return = PLAYFIELD_SPRITES>>6 - //SEG908 entry interrupt(HARDWARE_CLOBBER) + //SEG899 entry interrupt(HARDWARE_CLOBBER) sta rega+1 stx regx+1 - //SEG909 [433] (byte) sprites_irq::ypos#0 ← (byte) irq_sprite_ypos#0 -- vbuaa=vbuz1 + //SEG900 [427] (byte) sprites_irq::ypos#0 ← (byte) irq_sprite_ypos#0 -- vbuaa=vbuz1 lda irq_sprite_ypos - //SEG910 [434] *((const byte*) SPRITES_YPOS#0) ← (byte) sprites_irq::ypos#0 -- _deref_pbuc1=vbuaa + //SEG901 [428] *((const byte*) SPRITES_YPOS#0) ← (byte) sprites_irq::ypos#0 -- _deref_pbuc1=vbuaa sta SPRITES_YPOS - //SEG911 [435] *((const byte*) SPRITES_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte) sprites_irq::ypos#0 -- _deref_pbuc1=vbuaa + //SEG902 [429] *((const byte*) SPRITES_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte) sprites_irq::ypos#0 -- _deref_pbuc1=vbuaa sta SPRITES_YPOS+2 - //SEG912 [436] *((const byte*) SPRITES_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte) sprites_irq::ypos#0 -- _deref_pbuc1=vbuaa + //SEG903 [430] *((const byte*) SPRITES_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte) sprites_irq::ypos#0 -- _deref_pbuc1=vbuaa sta SPRITES_YPOS+4 - //SEG913 [437] *((const byte*) SPRITES_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte) sprites_irq::ypos#0 -- _deref_pbuc1=vbuaa + //SEG904 [431] *((const byte*) SPRITES_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte) sprites_irq::ypos#0 -- _deref_pbuc1=vbuaa sta SPRITES_YPOS+6 - //SEG914 sprites_irq::@1 + //SEG905 sprites_irq::@1 b1: - //SEG915 [438] if(*((const byte*) RASTER#0)<(byte) irq_sprite_ypos#0) goto sprites_irq::@1 -- _deref_pbuc1_lt_vbuz1_then_la1 + //SEG906 [432] if(*((const byte*) RASTER#0)<(byte) irq_sprite_ypos#0) goto sprites_irq::@1 -- _deref_pbuc1_lt_vbuz1_then_la1 lda RASTER cmp irq_sprite_ypos bcc b1 - //SEG916 sprites_irq::@7 - //SEG917 [439] (byte) sprites_irq::ptr#0 ← (byte) irq_sprite_ptr#0 -- vbuxx=vbuz1 + //SEG907 sprites_irq::@7 + //SEG908 [433] (byte) sprites_irq::ptr#0 ← (byte) irq_sprite_ptr#0 -- vbuxx=vbuz1 ldx irq_sprite_ptr - //SEG918 [440] if((byte) render_screen_showing#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto sprites_irq::@2 -- vbuz1_eq_0_then_la1 + //SEG909 [434] if((byte) render_screen_showing#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto sprites_irq::@2 -- vbuz1_eq_0_then_la1 lda render_screen_showing cmp #0 beq b2 - //SEG919 sprites_irq::@8 - //SEG920 [441] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0) ← (byte) sprites_irq::ptr#0 -- _deref_pbuc1=vbuxx + //SEG910 sprites_irq::@8 + //SEG911 [435] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0) ← (byte) sprites_irq::ptr#0 -- _deref_pbuc1=vbuxx stx PLAYFIELD_SPRITE_PTRS_2 - //SEG921 [442] (byte) sprites_irq::ptr#3 ← ++ (byte) sprites_irq::ptr#0 -- vbuxx=_inc_vbuxx + //SEG912 [436] (byte) sprites_irq::ptr#3 ← ++ (byte) sprites_irq::ptr#0 -- vbuxx=_inc_vbuxx inx - //SEG922 [443] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte) sprites_irq::ptr#3 -- _deref_pbuc1=vbuxx + //SEG913 [437] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte) sprites_irq::ptr#3 -- _deref_pbuc1=vbuxx stx PLAYFIELD_SPRITE_PTRS_2+1 - //SEG923 [444] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte) sprites_irq::ptr#3 -- _deref_pbuc1=vbuxx + //SEG914 [438] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte) sprites_irq::ptr#3 -- _deref_pbuc1=vbuxx stx PLAYFIELD_SPRITE_PTRS_2+2 - //SEG924 [445] (byte) sprites_irq::ptr#4 ← ++ (byte) sprites_irq::ptr#3 -- vbuxx=_inc_vbuxx + //SEG915 [439] (byte) sprites_irq::ptr#4 ← ++ (byte) sprites_irq::ptr#3 -- vbuxx=_inc_vbuxx inx - //SEG925 [446] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte) sprites_irq::ptr#4 -- _deref_pbuc1=vbuxx + //SEG916 [440] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte) sprites_irq::ptr#4 -- _deref_pbuc1=vbuxx stx PLAYFIELD_SPRITE_PTRS_2+3 - //SEG926 sprites_irq::@3 + //SEG917 sprites_irq::@3 b3: - //SEG927 [447] (byte) irq_cnt#1 ← ++ (byte) irq_cnt#0 -- vbuz1=_inc_vbuz1 + //SEG918 [441] (byte) irq_cnt#1 ← ++ (byte) irq_cnt#0 -- vbuz1=_inc_vbuz1 inc irq_cnt - //SEG928 [448] if((byte) irq_cnt#1==(byte/signed byte/word/signed word/dword/signed dword) 10) goto sprites_irq::@4 -- vbuz1_eq_vbuc1_then_la1 + //SEG919 [442] if((byte) irq_cnt#1==(byte/signed byte/word/signed word/dword/signed dword) 10) goto sprites_irq::@4 -- vbuz1_eq_vbuc1_then_la1 lda irq_cnt cmp #$a beq b4 - //SEG929 sprites_irq::@10 - //SEG930 [449] (byte) irq_raster_next#2 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 -- vbuz1=vbuz1_plus_vbuc1 + //SEG920 sprites_irq::@10 + //SEG921 [443] (byte) irq_raster_next#2 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 -- vbuz1=vbuz1_plus_vbuc1 lda #$15 clc adc irq_raster_next sta irq_raster_next - //SEG931 [450] (byte) irq_sprite_ypos#2 ← (byte) irq_sprite_ypos#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 -- vbuz1=vbuz1_plus_vbuc1 + //SEG922 [444] (byte) irq_sprite_ypos#2 ← (byte) irq_sprite_ypos#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 -- vbuz1=vbuz1_plus_vbuc1 lda #$15 clc adc irq_sprite_ypos sta irq_sprite_ypos - //SEG932 [451] (byte) irq_sprite_ptr#2 ← (byte) irq_sprite_ptr#0 + (byte/signed byte/word/signed word/dword/signed dword) 3 -- vbuz1=vbuz1_plus_vbuc1 + //SEG923 [445] (byte) irq_sprite_ptr#2 ← (byte) irq_sprite_ptr#0 + (byte/signed byte/word/signed word/dword/signed dword) 3 -- vbuz1=vbuz1_plus_vbuc1 lda #3 clc adc irq_sprite_ptr sta irq_sprite_ptr - //SEG933 [452] phi from sprites_irq::@10 sprites_irq::@13 to sprites_irq::@5 [phi:sprites_irq::@10/sprites_irq::@13->sprites_irq::@5] - //SEG934 [452] phi (byte) irq_raster_next#13 = (byte) irq_raster_next#2 [phi:sprites_irq::@10/sprites_irq::@13->sprites_irq::@5#0] -- register_copy - //SEG935 sprites_irq::@5 + //SEG924 [446] phi from sprites_irq::@10 sprites_irq::@13 to sprites_irq::@5 [phi:sprites_irq::@10/sprites_irq::@13->sprites_irq::@5] + //SEG925 [446] phi (byte) irq_raster_next#13 = (byte) irq_raster_next#2 [phi:sprites_irq::@10/sprites_irq::@13->sprites_irq::@5#0] -- register_copy + //SEG926 sprites_irq::@5 b5: - //SEG936 [453] (byte) sprites_irq::raster_next#0 ← (byte) irq_raster_next#13 -- vbuxx=vbuz1 + //SEG927 [447] (byte) sprites_irq::raster_next#0 ← (byte) irq_raster_next#13 -- vbuxx=vbuz1 ldx irq_raster_next - //SEG937 [454] (byte~) sprites_irq::$4 ← (byte) sprites_irq::raster_next#0 & (byte/signed byte/word/signed word/dword/signed dword) 7 -- vbuaa=vbuxx_band_vbuc1 + //SEG928 [448] (byte~) sprites_irq::$4 ← (byte) sprites_irq::raster_next#0 & (byte/signed byte/word/signed word/dword/signed dword) 7 -- vbuaa=vbuxx_band_vbuc1 txa and #7 - //SEG938 [455] if((byte~) sprites_irq::$4!=(byte/signed byte/word/signed word/dword/signed dword) 3) goto sprites_irq::@6 -- vbuaa_neq_vbuc1_then_la1 + //SEG929 [449] if((byte~) sprites_irq::$4!=(byte/signed byte/word/signed word/dword/signed dword) 3) goto sprites_irq::@6 -- vbuaa_neq_vbuc1_then_la1 cmp #3 bne b6 - //SEG939 sprites_irq::@12 - //SEG940 [456] (byte) sprites_irq::raster_next#1 ← (byte) sprites_irq::raster_next#0 - (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuxx=vbuxx_minus_1 + //SEG930 sprites_irq::@12 + //SEG931 [450] (byte) sprites_irq::raster_next#1 ← (byte) sprites_irq::raster_next#0 - (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuxx=vbuxx_minus_1 dex - //SEG941 [457] phi from sprites_irq::@12 sprites_irq::@5 to sprites_irq::@6 [phi:sprites_irq::@12/sprites_irq::@5->sprites_irq::@6] - //SEG942 [457] phi (byte) sprites_irq::raster_next#2 = (byte) sprites_irq::raster_next#1 [phi:sprites_irq::@12/sprites_irq::@5->sprites_irq::@6#0] -- register_copy - //SEG943 sprites_irq::@6 + //SEG932 [451] phi from sprites_irq::@12 sprites_irq::@5 to sprites_irq::@6 [phi:sprites_irq::@12/sprites_irq::@5->sprites_irq::@6] + //SEG933 [451] phi (byte) sprites_irq::raster_next#2 = (byte) sprites_irq::raster_next#1 [phi:sprites_irq::@12/sprites_irq::@5->sprites_irq::@6#0] -- register_copy + //SEG934 sprites_irq::@6 b6: - //SEG944 [458] *((const byte*) RASTER#0) ← (byte) sprites_irq::raster_next#2 -- _deref_pbuc1=vbuxx + //SEG935 [452] *((const byte*) RASTER#0) ← (byte) sprites_irq::raster_next#2 -- _deref_pbuc1=vbuxx stx RASTER - //SEG945 [459] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0 -- _deref_pbuc1=vbuc2 + //SEG936 [453] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0 -- _deref_pbuc1=vbuc2 lda #IRQ_RASTER sta IRQ_STATUS - //SEG946 sprites_irq::@return - //SEG947 [460] return - exit interrupt(HARDWARE_CLOBBER) + //SEG937 sprites_irq::@return + //SEG938 [454] return - exit interrupt(HARDWARE_CLOBBER) rega: lda #00 regx: ldx #00 rti - //SEG948 sprites_irq::@4 + //SEG939 sprites_irq::@4 b4: - //SEG949 [461] (byte) irq_cnt#14 ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- vbuz1=vbuc1 + //SEG940 [455] (byte) irq_cnt#14 ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- vbuz1=vbuc1 lda #0 sta irq_cnt - //SEG950 [462] (byte) irq_raster_next#1 ← (const byte) IRQ_RASTER_FIRST#0 -- vbuz1=vbuc1 + //SEG941 [456] (byte) irq_raster_next#1 ← (const byte) IRQ_RASTER_FIRST#0 -- vbuz1=vbuc1 lda #IRQ_RASTER_FIRST sta irq_raster_next - //SEG951 [463] (byte) irq_sprite_ypos#1 ← (byte/signed byte/word/signed word/dword/signed dword) 50 -- vbuz1=vbuc1 + //SEG942 [457] (byte) irq_sprite_ypos#1 ← (byte/signed byte/word/signed word/dword/signed dword) 50 -- vbuz1=vbuc1 lda #$32 sta irq_sprite_ypos - //SEG952 [464] phi from sprites_irq::@4 to sprites_irq::toSpritePtr2 [phi:sprites_irq::@4->sprites_irq::toSpritePtr2] - //SEG953 sprites_irq::toSpritePtr2 - //SEG954 sprites_irq::@13 - //SEG955 [465] (byte) irq_sprite_ptr#1 ← (const byte) sprites_irq::toSpritePtr2_return#0 -- vbuz1=vbuc1 + //SEG943 [458] phi from sprites_irq::@4 to sprites_irq::toSpritePtr2 [phi:sprites_irq::@4->sprites_irq::toSpritePtr2] + //SEG944 sprites_irq::toSpritePtr2 + //SEG945 sprites_irq::@13 + //SEG946 [459] (byte) irq_sprite_ptr#1 ← (const byte) sprites_irq::toSpritePtr2_return#0 -- vbuz1=vbuc1 lda #toSpritePtr2_return sta irq_sprite_ptr jmp b5 - //SEG956 sprites_irq::@2 + //SEG947 sprites_irq::@2 b2: - //SEG957 [466] *((const byte*) PLAYFIELD_SPRITE_PTRS_1#0) ← (byte) sprites_irq::ptr#0 -- _deref_pbuc1=vbuxx + //SEG948 [460] *((const byte*) PLAYFIELD_SPRITE_PTRS_1#0) ← (byte) sprites_irq::ptr#0 -- _deref_pbuc1=vbuxx stx PLAYFIELD_SPRITE_PTRS_1 - //SEG958 [467] (byte) sprites_irq::ptr#1 ← ++ (byte) sprites_irq::ptr#0 -- vbuaa=_inc_vbuxx + //SEG949 [461] (byte) sprites_irq::ptr#1 ← ++ (byte) sprites_irq::ptr#0 -- vbuaa=_inc_vbuxx txa clc adc #1 - //SEG959 [468] *((const byte*) PLAYFIELD_SPRITE_PTRS_1#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte) sprites_irq::ptr#1 -- _deref_pbuc1=vbuaa + //SEG950 [462] *((const byte*) PLAYFIELD_SPRITE_PTRS_1#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte) sprites_irq::ptr#1 -- _deref_pbuc1=vbuaa sta PLAYFIELD_SPRITE_PTRS_1+1 - //SEG960 [469] *((const byte*) PLAYFIELD_SPRITE_PTRS_1#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte) sprites_irq::ptr#1 -- _deref_pbuc1=vbuaa + //SEG951 [463] *((const byte*) PLAYFIELD_SPRITE_PTRS_1#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte) sprites_irq::ptr#1 -- _deref_pbuc1=vbuaa sta PLAYFIELD_SPRITE_PTRS_1+2 - //SEG961 [470] (byte) sprites_irq::ptr#2 ← ++ (byte) sprites_irq::ptr#1 -- vbuaa=_inc_vbuaa + //SEG952 [464] (byte) sprites_irq::ptr#2 ← ++ (byte) sprites_irq::ptr#1 -- vbuaa=_inc_vbuaa clc adc #1 - //SEG962 [471] *((const byte*) PLAYFIELD_SPRITE_PTRS_1#0+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte) sprites_irq::ptr#2 -- _deref_pbuc1=vbuaa + //SEG953 [465] *((const byte*) PLAYFIELD_SPRITE_PTRS_1#0+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte) sprites_irq::ptr#2 -- _deref_pbuc1=vbuaa sta PLAYFIELD_SPRITE_PTRS_1+3 jmp b3 } @@ -19430,14 +19214,18 @@ sprites_irq: { .import binary "playfield-screen.imap" .pc = PLAYFIELD_SCREEN_ORIGINAL "PLAYFIELD_SCREEN_ORIGINAL" - .import binary "playfield-screen.iscr" + // 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_EXTENDED_ORIGINAL "PLAYFIELD_EXTENDED_ORIGINAL" - .import binary "playfield-extended.col" - .pc = PLAYFIELD_SPRITES "PLAYFIELD_SPRITES" .var sprites = LoadPicture("playfield-sprites.png", List().add($010101, $000000)) .for(var sy=0;sy<10;sy++) { diff --git a/src/test/ref/examples/tetris/tetris.sym b/src/test/ref/examples/tetris/tetris.sym index cb90537aa..941d93594 100644 --- a/src/test/ref/examples/tetris/tetris.sym +++ b/src/test/ref/examples/tetris/tetris.sym @@ -193,8 +193,6 @@ (const byte*) PLAYFIELD_COLORS_ORIGINAL#0 PLAYFIELD_COLORS_ORIGINAL = ((byte*))(word/signed word/dword/signed dword) 7168 (byte) PLAYFIELD_COLS (const byte) PLAYFIELD_COLS#0 PLAYFIELD_COLS = (byte/signed byte/word/signed word/dword/signed dword) 10 -(byte*) PLAYFIELD_EXTENDED_ORIGINAL -(const byte*) PLAYFIELD_EXTENDED_ORIGINAL#0 PLAYFIELD_EXTENDED_ORIGINAL = ((byte*))(word/signed word/dword/signed dword) 5120 (byte) PLAYFIELD_LINES (const byte) PLAYFIELD_LINES#0 PLAYFIELD_LINES = (byte/signed byte/word/signed word/dword/signed dword) 22 (byte*) PLAYFIELD_SCREEN_1 @@ -343,22 +341,22 @@ (byte~) current_ypos#85 reg byte y 4.4 (byte) current_ypos#9 reg byte y 15.0 (byte) irq_cnt -(byte) irq_cnt#0 irq_cnt zp ZP_BYTE:31 0.2 -(byte) irq_cnt#1 irq_cnt zp ZP_BYTE:31 4.0 -(byte) irq_cnt#14 irq_cnt zp ZP_BYTE:31 20.0 +(byte) irq_cnt#0 irq_cnt zp ZP_BYTE:29 0.2 +(byte) irq_cnt#1 irq_cnt zp ZP_BYTE:29 4.0 +(byte) irq_cnt#14 irq_cnt zp ZP_BYTE:29 20.0 (byte) irq_raster_next -(byte) irq_raster_next#0 irq_raster_next zp ZP_BYTE:27 0.18181818181818182 -(byte) irq_raster_next#1 irq_raster_next zp ZP_BYTE:27 1.0 -(byte) irq_raster_next#13 irq_raster_next zp ZP_BYTE:27 6.0 -(byte) irq_raster_next#2 irq_raster_next zp ZP_BYTE:27 1.3333333333333333 +(byte) irq_raster_next#0 irq_raster_next zp ZP_BYTE:25 0.18181818181818182 +(byte) irq_raster_next#1 irq_raster_next zp ZP_BYTE:25 1.0 +(byte) irq_raster_next#13 irq_raster_next zp ZP_BYTE:25 6.0 +(byte) irq_raster_next#2 irq_raster_next zp ZP_BYTE:25 1.3333333333333333 (byte) irq_sprite_ptr -(byte) irq_sprite_ptr#0 irq_sprite_ptr zp ZP_BYTE:30 0.25 -(byte) irq_sprite_ptr#1 irq_sprite_ptr zp ZP_BYTE:30 20.0 -(byte) irq_sprite_ptr#2 irq_sprite_ptr zp ZP_BYTE:30 20.0 +(byte) irq_sprite_ptr#0 irq_sprite_ptr zp ZP_BYTE:28 0.25 +(byte) irq_sprite_ptr#1 irq_sprite_ptr zp ZP_BYTE:28 20.0 +(byte) irq_sprite_ptr#2 irq_sprite_ptr zp ZP_BYTE:28 20.0 (byte) irq_sprite_ypos -(byte) irq_sprite_ypos#0 irq_sprite_ypos zp ZP_BYTE:29 0.7391304347826086 -(byte) irq_sprite_ypos#1 irq_sprite_ypos zp ZP_BYTE:29 20.0 -(byte) irq_sprite_ypos#2 irq_sprite_ypos zp ZP_BYTE:29 20.0 +(byte) irq_sprite_ypos#0 irq_sprite_ypos zp ZP_BYTE:27 0.7391304347826086 +(byte) irq_sprite_ypos#1 irq_sprite_ypos zp ZP_BYTE:27 20.0 +(byte) irq_sprite_ypos#2 irq_sprite_ypos zp ZP_BYTE:27 20.0 (byte[]) keyboard_char_keycodes (byte()) keyboard_event_get() (label) keyboard_event_get::@3 @@ -489,8 +487,8 @@ (byte) main::key_event (byte) main::key_event#0 key_event zp ZP_BYTE:13 36.72727272727273 (byte) main::render -(byte) main::render#1 render zp ZP_BYTE:32 40.4 -(byte) main::render#2 render zp ZP_BYTE:32 40.4 +(byte) main::render#1 render zp ZP_BYTE:30 40.4 +(byte) main::render#2 render zp ZP_BYTE:30 40.4 (byte) main::render#3 reg byte a 202.0 (byte()) play_collision((byte) play_collision::xpos , (byte) play_collision::ypos , (byte) play_collision::orientation) (byte~) play_collision::$7 reg byte a 20002.0 @@ -513,7 +511,7 @@ (byte) play_collision::col#2 col zp ZP_BYTE:12 6375.75 (byte~) play_collision::col#9 col zp ZP_BYTE:12 2002.0 (byte) play_collision::i -(byte) play_collision::i#1 i zp ZP_BYTE:33 1615.6153846153845 +(byte) play_collision::i#1 i zp ZP_BYTE:31 1615.6153846153845 (byte~) play_collision::i#11 i#11 zp ZP_BYTE:11 2002.0 (byte~) play_collision::i#13 i#13 zp ZP_BYTE:11 20002.0 (byte) play_collision::i#2 i#2 zp ZP_BYTE:11 15502.0 @@ -801,8 +799,6 @@ (byte*) render_playfield::screen_line#1 screen_line zp ZP_WORD:7 500.5 (byte*) render_playfield::screen_line#2 screen_line zp ZP_WORD:7 1552.0 (void()) render_screen_original((byte*) render_screen_original::screen) -(byte~) render_screen_original::$10 reg byte a 202.0 -(byte/signed word/word/dword/signed dword~) render_screen_original::$8 reg byte a 202.0 (label) render_screen_original::@1 (label) render_screen_original::@2 (label) render_screen_original::@3 @@ -811,49 +807,41 @@ (label) render_screen_original::@return (byte) render_screen_original::SPACE (const byte) render_screen_original::SPACE#0 SPACE = (byte/signed byte/word/signed word/dword/signed dword) 0 -(byte) render_screen_original::c -(byte) render_screen_original::c#0 c zp ZP_BYTE:3 40.4 (byte*) render_screen_original::cols -(byte*) render_screen_original::cols#1 cols zp ZP_WORD:25 101.0 -(byte*) render_screen_original::cols#2 cols zp ZP_WORD:25 75.75 -(byte*) render_screen_original::cols#3 cols zp ZP_WORD:25 42.599999999999994 -(byte*) render_screen_original::cols#4 cols zp ZP_WORD:25 78.5 -(byte*) render_screen_original::cols#5 cols zp ZP_WORD:25 40.4 -(byte*) render_screen_original::cols#6 cols zp ZP_WORD:25 101.0 -(byte*) render_screen_original::cols#7 cols zp ZP_WORD:25 22.0 -(byte) render_screen_original::ext -(byte) render_screen_original::ext#0 reg byte a 101.0 +(byte*) render_screen_original::cols#1 cols zp ZP_WORD:23 101.0 +(byte*) render_screen_original::cols#2 cols zp ZP_WORD:23 75.75 +(byte*) render_screen_original::cols#3 cols zp ZP_WORD:23 42.599999999999994 +(byte*) render_screen_original::cols#4 cols zp ZP_WORD:23 78.5 +(byte*) render_screen_original::cols#5 cols zp ZP_WORD:23 80.8 +(byte*) render_screen_original::cols#6 cols zp ZP_WORD:23 101.0 +(byte*) render_screen_original::cols#7 cols zp ZP_WORD:23 22.0 (byte*) render_screen_original::ocols -(byte*) render_screen_original::ocols#1 ocols zp ZP_WORD:18 17.75 -(byte*) render_screen_original::ocols#2 ocols zp ZP_WORD:18 36.72727272727273 -(byte*) render_screen_original::ocols#4 ocols zp ZP_WORD:18 14.0 -(byte*) render_screen_original::oext -(byte*) render_screen_original::oext#1 oext zp ZP_WORD:15 11.833333333333332 -(byte*) render_screen_original::oext#2 oext zp ZP_WORD:15 80.8 -(byte*) render_screen_original::oext#4 oext zp ZP_WORD:15 14.0 +(byte*) render_screen_original::ocols#1 ocols zp ZP_WORD:15 17.75 +(byte*) render_screen_original::ocols#2 ocols zp ZP_WORD:15 67.33333333333333 +(byte*) render_screen_original::ocols#4 ocols zp ZP_WORD:15 14.0 (byte*) render_screen_original::oscr -(byte*) render_screen_original::oscr#1 oscr zp ZP_WORD:7 10.142857142857142 -(byte*) render_screen_original::oscr#2 oscr zp ZP_WORD:7 202.0 +(byte*) render_screen_original::oscr#1 oscr zp ZP_WORD:7 14.2 +(byte*) render_screen_original::oscr#2 oscr zp ZP_WORD:7 134.66666666666666 (byte*) render_screen_original::oscr#4 oscr zp ZP_WORD:7 14.0 (byte*) render_screen_original::screen -(byte*) render_screen_original::screen#10 screen zp ZP_WORD:23 30.42857142857143 -(byte*) render_screen_original::screen#2 screen zp ZP_WORD:23 60.599999999999994 -(byte*) render_screen_original::screen#3 screen zp ZP_WORD:23 50.5 -(byte*) render_screen_original::screen#5 screen zp ZP_WORD:23 157.0 -(byte*) render_screen_original::screen#6 screen zp ZP_WORD:23 50.5 -(byte*) render_screen_original::screen#7 screen zp ZP_WORD:23 202.0 -(byte*) render_screen_original::screen#8 screen zp ZP_WORD:23 24.0 -(byte*) render_screen_original::screen#9 screen zp ZP_WORD:23 2.0 +(byte*) render_screen_original::screen#10 screen zp ZP_WORD:18 30.42857142857143 +(byte*) render_screen_original::screen#2 screen zp ZP_WORD:18 60.599999999999994 +(byte*) render_screen_original::screen#3 screen zp ZP_WORD:18 43.285714285714285 +(byte*) render_screen_original::screen#5 screen zp ZP_WORD:18 157.0 +(byte*) render_screen_original::screen#6 screen zp ZP_WORD:18 202.0 +(byte*) render_screen_original::screen#7 screen zp ZP_WORD:18 202.0 +(byte*) render_screen_original::screen#8 screen zp ZP_WORD:18 24.0 +(byte*) render_screen_original::screen#9 screen zp ZP_WORD:18 2.0 (byte) render_screen_original::x (byte) render_screen_original::x#1 reg byte x 202.0 (byte) render_screen_original::x#2 reg byte x 202.0 (byte) render_screen_original::x#3 reg byte x 151.5 (byte) render_screen_original::x#4 reg byte x 40.4 -(byte) render_screen_original::x#5 reg byte x 25.25 +(byte) render_screen_original::x#5 reg byte x 43.285714285714285 (byte) render_screen_original::x#6 reg byte x 60.599999999999994 (byte) render_screen_original::y (byte) render_screen_original::y#1 y zp ZP_BYTE:2 16.5 -(byte) render_screen_original::y#6 y zp ZP_BYTE:2 0.7586206896551724 +(byte) render_screen_original::y#6 y zp ZP_BYTE:2 0.9166666666666666 (byte) render_screen_render (byte) render_screen_render#11 render_screen_render zp ZP_BYTE:3 3.25 (byte) render_screen_render#16 render_screen_render zp ZP_BYTE:3 1.0 @@ -865,8 +853,8 @@ (byte) render_screen_show#13 render_screen_show zp ZP_BYTE:2 4.333333333333333 (byte) render_screen_show#16 render_screen_show zp ZP_BYTE:2 0.39534883720930225 (byte) render_screen_showing -(byte) render_screen_showing#0 render_screen_showing zp ZP_BYTE:28 0.5714285714285714 -(byte) render_screen_showing#1 render_screen_showing zp ZP_BYTE:28 20.0 +(byte) render_screen_showing#0 render_screen_showing zp ZP_BYTE:26 0.5714285714285714 +(byte) render_screen_showing#1 render_screen_showing zp ZP_BYTE:26 20.0 (void()) render_screen_swap() (label) render_screen_swap::@return (void()) render_show() @@ -968,7 +956,7 @@ interrupt(HARDWARE_CLOBBER)(void()) sprites_irq() (byte*) toSpritePtr1_sprite zp ZP_BYTE:2 [ render_screen_show#16 render_screen_show#13 play_init::idx#2 play_init::idx#1 sprites_init::xpos#2 sprites_init::xpos#1 render_screen_original::y#6 render_screen_original::y#1 ] -zp ZP_BYTE:3 [ render_screen_render#16 render_screen_render#11 render_screen_original::c#0 ] +zp ZP_BYTE:3 [ render_screen_render#16 render_screen_render#11 ] zp ZP_BYTE:4 [ current_movedown_counter#12 current_movedown_counter#10 current_movedown_counter#1 play_remove_lines::y#8 play_remove_lines::y#1 play_lock_current::l#6 play_lock_current::l#1 play_spawn_current::$3 ] reg byte y [ current_ypos#9 current_ypos#84 current_ypos#85 ] zp ZP_BYTE:5 [ render_screen_render#28 render_screen_render#62 render_playfield::l#2 render_playfield::l#1 play_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#2 play_remove_lines::x#2 play_remove_lines::x#1 play_lock_current::i#2 play_lock_current::i#3 play_lock_current::i#7 play_lock_current::i#9 keyboard_event_pressed::keycode#5 keyboard_event_scan::row#2 keyboard_event_scan::row#1 ] @@ -989,9 +977,9 @@ reg byte a [ play_collision::return#14 ] reg byte a [ play_move_leftright::return#1 ] reg byte x [ play_move_down::movedown#6 play_move_down::movedown#3 play_move_down::movedown#7 play_move_down::movedown#2 play_move_down::movedown#10 ] zp ZP_BYTE:14 [ current_ypos#29 current_ypos#21 current_ypos#18 current_ypos#13 current_ypos#0 play_lock_current::ypos2#2 play_lock_current::ypos2#0 play_lock_current::ypos2#1 ] -zp ZP_WORD:15 [ current_piece#20 current_piece#78 current_piece#16 current_piece#71 current_piece#10 render_init::li_2#2 render_init::li_2#1 render_screen_original::oext#2 render_screen_original::oext#4 render_screen_original::oext#1 ] +zp ZP_WORD:15 [ current_piece#20 current_piece#78 current_piece#16 current_piece#71 current_piece#10 render_init::li_2#2 render_init::li_2#1 render_screen_original::ocols#2 render_screen_original::ocols#4 render_screen_original::ocols#1 ] zp ZP_BYTE:17 [ current_orientation#29 current_orientation#10 current_orientation#19 current_orientation#4 current_orientation#14 ] -zp ZP_WORD:18 [ current_piece_gfx#26 current_piece_gfx#20 current_piece_gfx#16 current_piece_gfx#14 current_piece_gfx#3 current_piece_gfx#1 render_screen_original::ocols#2 render_screen_original::ocols#4 render_screen_original::ocols#1 ] +zp ZP_WORD:18 [ current_piece_gfx#26 current_piece_gfx#20 current_piece_gfx#16 current_piece_gfx#14 current_piece_gfx#3 current_piece_gfx#1 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 ] zp ZP_BYTE:20 [ current_xpos#33 current_xpos#10 current_xpos#23 current_xpos#19 current_xpos#4 current_xpos#1 current_xpos#2 ] zp ZP_BYTE:21 [ current_piece_char#20 current_piece_char#15 current_piece_char#12 current_piece_char#1 ] reg byte x [ play_move_down::return#2 ] @@ -1007,20 +995,19 @@ reg byte a [ render_show::d018val#3 ] reg byte x [ play_init::j#2 play_init::j#1 ] reg byte x [ sprites_init::s#2 sprites_init::s#1 ] reg byte x [ render_init::i#2 render_init::i#1 ] -zp ZP_WORD:23 [ 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 render_current::screen_line#0 play_collision::playfield_line#0 ] -zp ZP_WORD:25 [ 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 ZP_WORD:23 [ 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 render_current::screen_line#0 play_collision::playfield_line#0 ] 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 ZP_BYTE:27 [ irq_raster_next#13 irq_raster_next#2 irq_raster_next#1 irq_raster_next#0 ] +zp ZP_BYTE:25 [ irq_raster_next#13 irq_raster_next#2 irq_raster_next#1 irq_raster_next#0 ] reg byte x [ sprites_irq::raster_next#2 sprites_irq::raster_next#1 sprites_irq::raster_next#0 ] -zp ZP_BYTE:28 [ render_screen_showing#0 render_screen_showing#1 ] -zp ZP_BYTE:29 [ irq_sprite_ypos#0 irq_sprite_ypos#2 irq_sprite_ypos#1 ] -zp ZP_BYTE:30 [ irq_sprite_ptr#0 irq_sprite_ptr#2 irq_sprite_ptr#1 ] -zp ZP_BYTE:31 [ irq_cnt#0 irq_cnt#1 irq_cnt#14 ] +zp ZP_BYTE:26 [ render_screen_showing#0 render_screen_showing#1 ] +zp ZP_BYTE:27 [ irq_sprite_ypos#0 irq_sprite_ypos#2 irq_sprite_ypos#1 ] +zp ZP_BYTE:28 [ irq_sprite_ptr#0 irq_sprite_ptr#2 irq_sprite_ptr#1 ] +zp ZP_BYTE:29 [ irq_cnt#0 irq_cnt#1 irq_cnt#14 ] reg byte a [ keyboard_event_get::return#3 ] reg byte a [ play_move_down::key_event#0 ] reg byte a [ play_move_down::return#3 ] reg byte a [ main::$12 ] -zp ZP_BYTE:32 [ main::render#1 main::render#2 ] +zp ZP_BYTE:30 [ main::render#1 main::render#2 ] reg byte a [ play_move_leftright::key_event#0 ] reg byte a [ play_move_leftright::return#4 ] reg byte a [ main::$13 ] @@ -1036,7 +1023,7 @@ reg byte a [ play_move_rotate::$2 ] reg byte a [ play_collision::return#13 ] reg byte a [ play_move_rotate::$6 ] reg byte a [ play_move_rotate::$4 ] -zp ZP_BYTE:33 [ play_collision::i#1 ] +zp ZP_BYTE:31 [ play_collision::i#1 ] reg byte a [ play_collision::$7 ] reg byte a [ play_collision::return#12 ] reg byte a [ play_move_leftright::$4 ] @@ -1072,9 +1059,6 @@ reg byte a [ play_init::$1 ] reg byte a [ sprites_init::s2#0 ] reg byte a [ render_init::$13 ] reg byte a [ render_init::$14 ] -reg byte a [ render_screen_original::$8 ] -reg byte a [ render_screen_original::ext#0 ] -reg byte a [ render_screen_original::$10 ] reg byte a [ sprites_irq::ypos#0 ] reg byte x [ sprites_irq::ptr#0 ] reg byte x [ sprites_irq::ptr#3 ]