diff --git a/src/test/kc/examples/tetris/tetris-pieces.kc b/src/test/kc/examples/tetris/tetris-pieces.kc index 462391c7c..3e3e9101c 100644 --- a/src/test/kc/examples/tetris/tetris-pieces.kc +++ b/src/test/kc/examples/tetris/tetris-pieces.kc @@ -97,17 +97,7 @@ align($40) byte[4*4*4] PIECE_L = { // The J-piece align($40) byte[4*4*4] PIECE_J = { - 1, 0, 0, 0, - 1, 1, 1, 0, 0, 0, 0, 0, - 0, 0, 0, 0, - - 0, 1, 1, 0, - 0, 1, 0, 0, - 0, 1, 0, 0, - 0, 0, 0, 0, - - 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, @@ -115,6 +105,16 @@ align($40) byte[4*4*4] PIECE_J = { 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, + 0, 0, 0, 0, + + 1, 0, 0, 0, + 1, 1, 1, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + + 0, 1, 1, 0, + 0, 1, 0, 0, + 0, 1, 0, 0, 0, 0, 0, 0 }; @@ -171,4 +171,7 @@ align($40) byte[4*4*4] PIECE_I = { word[] PIECES = { (word)PIECE_T, (word)PIECE_S, (word)PIECE_Z, (word)PIECE_J, (word)PIECE_O, (word)PIECE_I, (word)PIECE_L }; // The chars to use for the different pieces -byte[] PIECES_CHARS = { $57, $58, $98, $58, $57, $57, $98 }; \ No newline at end of file +byte[] PIECES_CHARS = { $57, $58, $98, $58, $57, $57, $98 }; +// The initial X/Y for each piece +byte[] PIECES_START_X = { 4, 4, 4, 4, 4, 3, 4}; +byte[] PIECES_START_Y = { 2, 1, 1, 1, 2, 0, 1}; \ No newline at end of file diff --git a/src/test/kc/examples/tetris/tetris-play.kc b/src/test/kc/examples/tetris/tetris-play.kc index 40fe902b5..567a59dff 100644 --- a/src/test/kc/examples/tetris/tetris-play.kc +++ b/src/test/kc/examples/tetris/tetris-play.kc @@ -175,8 +175,8 @@ void play_spawn_current() { current_piece = PIECES[piece_idx<<1]; current_orientation = 0; current_piece_gfx = current_piece + current_orientation; - current_xpos = 3; - current_ypos = 0; + current_xpos = PIECES_START_X[piece_idx]; + current_ypos = PIECES_START_Y[piece_idx]; current_piece_char = PIECES_CHARS[piece_idx]; } diff --git a/src/test/ref/examples/tetris/tetris.asm b/src/test/ref/examples/tetris/tetris.asm index 6c1f3e8fa..55b1fcbd8 100644 --- a/src/test/ref/examples/tetris/tetris.asm +++ b/src/test/ref/examples/tetris/tetris.asm @@ -80,26 +80,27 @@ .label irq_sprite_ypos = $15 .label irq_sprite_ptr = $16 .label irq_cnt = $17 - .label current_movedown_counter = 3 - .label current_ypos = 2 + .label current_movedown_counter = 2 + .label current_ypos = $b .label current_xpos = $11 .label current_orientation = $e .label current_piece_gfx = $f .label current_piece = $c .label current_piece_char = $12 - .label current_piece_12 = 5 - .label current_xpos_48 = 4 - .label current_piece_gfx_53 = 5 - .label current_piece_char_63 = 7 - .label current_xpos_104 = 4 - .label current_piece_gfx_95 = 5 - .label current_piece_gfx_96 = 5 - .label current_piece_char_83 = 7 - .label current_piece_char_84 = 7 - .label current_piece_73 = 5 - .label current_piece_74 = 5 - .label current_piece_75 = 5 - .label current_piece_76 = 5 + .label current_piece_12 = 4 + .label current_xpos_48 = 3 + .label current_piece_gfx_53 = 4 + .label current_piece_char_63 = 6 + .label current_xpos_105 = 3 + .label current_xpos_106 = 3 + .label current_piece_gfx_95 = 4 + .label current_piece_gfx_96 = 4 + .label current_piece_char_83 = 6 + .label current_piece_char_84 = 6 + .label current_piece_73 = 4 + .label current_piece_74 = 4 + .label current_piece_75 = 4 + .label current_piece_76 = 4 bbegin: lda #IRQ_RASTER_FIRST sta irq_raster_next @@ -121,15 +122,15 @@ main: { jsr play_init jsr play_spawn_current jsr render_playfield + ldx current_ypos + lda current_xpos + sta current_xpos_105 lda current_piece_gfx sta current_piece_gfx_95 lda current_piece_gfx+1 sta current_piece_gfx_95+1 lda current_piece_char sta current_piece_char_83 - lda #3 - sta current_xpos_48 - ldx #0 jsr render_current ldy play_spawn_current._3 lda PIECES,y @@ -139,10 +140,6 @@ main: { lda #0 sta current_movedown_counter sta keyboard_events_size - sta current_ypos - lda #3 - sta current_xpos - lda #0 sta current_orientation b4: lda RASTER @@ -175,7 +172,7 @@ main: { jsr render_playfield ldx current_ypos lda current_xpos - sta current_xpos_104 + sta current_xpos_106 lda current_piece_gfx sta current_piece_gfx_96 lda current_piece_gfx+1 @@ -188,11 +185,11 @@ main: { jmp b4 } render_current: { - .label ypos2 = 8 + .label ypos2 = 7 .label screen_line = $1a - .label xpos = $b - .label i = $a - .label l = 9 + .label xpos = $a + .label i = 9 + .label l = 8 txa asl sta ypos2 @@ -254,9 +251,9 @@ render_current: { jmp b3 } render_playfield: { - .label screen_line = 5 - .label i = 7 - .label l = 4 + .label screen_line = 4 + .label i = 6 + .label l = 3 lda #PLAYFIELD_COLS*2 sta i lda #2 @@ -290,7 +287,7 @@ render_playfield: { rts } play_move_rotate: { - .label orientation = 4 + .label orientation = 3 cmp #KEY_Z beq b1 cmp #KEY_X @@ -336,17 +333,17 @@ play_move_rotate: { jmp b4 } play_collision: { - .label xpos = 7 - .label piece_gfx = 5 - .label ypos2 = 8 + .label xpos = 6 + .label piece_gfx = 4 + .label ypos2 = 7 .label playfield_line = $1a .label i = $1c - .label col = $b - .label l = 9 - .label i_2 = $a - .label i_3 = $a - .label i_11 = $a - .label i_13 = $a + .label col = $a + .label l = 8 + .label i_2 = 9 + .label i_3 = 9 + .label i_11 = 9 + .label i_13 = 9 txa clc adc piece_gfx @@ -514,11 +511,8 @@ play_move_down: { sta current_piece lda PIECES+1,y sta current_piece+1 - lda #3 - sta current_xpos lda #0 sta current_orientation - sta current_ypos b7: lda #0 sta current_movedown_counter @@ -546,6 +540,10 @@ play_spawn_current: { sta current_piece_gfx lda PIECES+1,y sta current_piece_gfx+1 + lda PIECES_START_X,x + sta current_xpos + lda PIECES_START_Y,x + sta current_ypos lda PIECES_CHARS,x sta current_piece_char rts @@ -563,7 +561,7 @@ play_remove_lines: { .label c = 7 .label x = 3 .label y = 2 - .label full = 4 + .label full = 6 lda #0 sta y ldx #PLAYFIELD_LINES*PLAYFIELD_COLS-1 @@ -612,15 +610,15 @@ play_remove_lines: { jmp b5 } play_lock_current: { - .label ypos2 = 2 - .label playfield_line = 5 - .label col = 7 - .label i = 8 - .label l = 3 - .label i_2 = 4 - .label i_3 = 4 - .label i_7 = 4 - .label i_9 = 4 + .label ypos2 = $b + .label playfield_line = 4 + .label col = 6 + .label i = 7 + .label l = 2 + .label i_2 = 3 + .label i_3 = 3 + .label i_7 = 3 + .label i_9 = 3 asl ypos2 lda #0 sta l @@ -669,8 +667,8 @@ play_lock_current: { jmp b2 } keyboard_event_pressed: { - .label row_bits = 7 - .label keycode = 4 + .label row_bits = 6 + .label keycode = 3 lda keycode lsr lsr @@ -699,9 +697,9 @@ keyboard_event_get: { rts } keyboard_event_scan: { - .label row_scan = 8 - .label keycode = 7 - .label row = 4 + .label row_scan = 7 + .label keycode = 6 + .label row = 3 lda #0 sta keycode sta row @@ -803,7 +801,7 @@ keyboard_matrix_read: { rts } play_init: { - .label pli = 5 + .label pli = 4 .label idx = 2 lda #0 sta idx @@ -897,8 +895,8 @@ render_init: { .const vicSelectGfxBank1_toDd001_return = 3^(>PLAYFIELD_SCREEN)>>6 .const toD0181_return = (>(PLAYFIELD_SCREEN&$3fff)<<2)|(>PLAYFIELD_CHARSET)>>2&$f .label _18 = $c - .label li = 5 - .label line = 5 + .label li = 4 + .label line = 4 .label l = 2 lda #3 sta CIA2_PORT_A_DDR @@ -979,7 +977,7 @@ render_init: { render_screen_original: { .const SPACE = 0 .label screen = $c - .label orig = 5 + .label orig = 4 .label y = 2 lda #0 sta y @@ -1041,7 +1039,7 @@ render_screen_original: { fill: { .const size = $3e8 .label end = COLS+size - .label addr = 5 + .label addr = 4 lda #COLS @@ -1152,12 +1150,14 @@ irq: { .align $40 PIECE_L: .byte 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0 .align $40 - PIECE_J: .byte 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0 + PIECE_J: .byte 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 .align $40 PIECE_O: .byte 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .align $40 PIECE_I: .byte 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0 PIECES_CHARS: .byte $57, $58, $98, $58, $57, $57, $98 + PIECES_START_X: .byte 4, 4, 4, 4, 4, 3, 4 + PIECES_START_Y: .byte 2, 1, 1, 1, 2, 0, 1 screen_lines: .fill 2*PLAYFIELD_LINES, 0 playfield_lines: .fill 2*PLAYFIELD_LINES, 0 playfield: .fill PLAYFIELD_LINES*PLAYFIELD_COLS, 0 diff --git a/src/test/ref/examples/tetris/tetris.cfg b/src/test/ref/examples/tetris/tetris.cfg index 11f2abe7d..dadcedf39 100644 --- a/src/test/ref/examples/tetris/tetris.cfg +++ b/src/test/ref/examples/tetris/tetris.cfg @@ -68,846 +68,850 @@ main::@26: scope:[main] from main::@25 [25] call render_playfield to:main::@27 main::@27: scope:[main] from main::@26 - [26] (byte*~) current_piece_gfx#95 ← (byte*) current_piece_gfx#17 - [27] (byte~) current_piece_char#83 ← (byte) current_piece_char#13 - [28] call render_current - [29] (byte*~) current_piece#72 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) + [26] (byte~) current_ypos#79 ← (byte) current_ypos#19 + [27] (byte~) current_xpos#105 ← (byte) current_xpos#24 + [28] (byte*~) current_piece_gfx#95 ← (byte*) current_piece_gfx#17 + [29] (byte~) current_piece_char#83 ← (byte) current_piece_char#13 + [30] call render_current + [31] (byte*~) current_piece#72 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) to:main::@1 main::@1: scope:[main] from main::@10 main::@27 - [30] (byte) current_movedown_counter#12 ← phi( main::@10/(byte) current_movedown_counter#10 main::@27/(byte/signed byte/word/signed word/dword/signed dword) 0 ) - [30] (byte) keyboard_events_size#19 ← phi( main::@10/(byte) keyboard_events_size#16 main::@27/(byte/signed byte/word/signed word/dword/signed dword) 0 ) - [30] (byte) current_piece_char#16 ← phi( main::@10/(byte) current_piece_char#11 main::@27/(byte) current_piece_char#13 ) - [30] (byte) current_ypos#22 ← phi( main::@10/(byte) current_ypos#14 main::@27/(byte/signed byte/word/signed word/dword/signed dword) 0 ) - [30] (byte) current_xpos#11 ← phi( main::@10/(byte) current_xpos#20 main::@27/(byte/signed byte/word/signed word/dword/signed dword) 3 ) - [30] (byte*) current_piece_gfx#10 ← phi( main::@10/(byte*) current_piece_gfx#15 main::@27/(byte*) current_piece_gfx#17 ) - [30] (byte) current_orientation#10 ← phi( main::@10/(byte) current_orientation#19 main::@27/(byte/signed byte/word/signed word/dword/signed dword) 0 ) - [30] (byte*) current_piece#16 ← phi( main::@10/(byte*) current_piece#10 main::@27/(byte*~) current_piece#72 ) + [32] (byte) current_movedown_counter#12 ← phi( main::@10/(byte) current_movedown_counter#10 main::@27/(byte/signed byte/word/signed word/dword/signed dword) 0 ) + [32] (byte) keyboard_events_size#19 ← phi( main::@10/(byte) keyboard_events_size#16 main::@27/(byte/signed byte/word/signed word/dword/signed dword) 0 ) + [32] (byte) current_piece_char#16 ← phi( main::@10/(byte) current_piece_char#11 main::@27/(byte) current_piece_char#13 ) + [32] (byte) current_ypos#22 ← phi( main::@10/(byte) current_ypos#14 main::@27/(byte) current_ypos#19 ) + [32] (byte) current_xpos#11 ← phi( main::@10/(byte) current_xpos#20 main::@27/(byte) current_xpos#24 ) + [32] (byte*) current_piece_gfx#10 ← phi( main::@10/(byte*) current_piece_gfx#15 main::@27/(byte*) current_piece_gfx#17 ) + [32] (byte) current_orientation#10 ← phi( main::@10/(byte) current_orientation#19 main::@27/(byte/signed byte/word/signed word/dword/signed dword) 0 ) + [32] (byte*) current_piece#16 ← phi( main::@10/(byte*) current_piece#10 main::@27/(byte*~) current_piece#72 ) to:main::@4 main::@4: scope:[main] from main::@1 main::@4 - [31] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@4 + [33] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@4 to:main::@7 main::@7: scope:[main] from main::@4 main::@7 - [32] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 254) goto main::@7 + [34] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 254) goto main::@7 to:main::@9 main::@9: scope:[main] from main::@7 - [33] *((const byte*) BORDERCOL#0) ← ++ *((const byte*) BORDERCOL#0) - [34] call keyboard_event_scan + [35] *((const byte*) BORDERCOL#0) ← ++ *((const byte*) BORDERCOL#0) + [36] call keyboard_event_scan to:main::@29 main::@29: scope:[main] from main::@9 - [35] phi() - [36] call keyboard_event_get - [37] (byte) keyboard_event_get::return#3 ← (byte) keyboard_event_get::return#2 + [37] phi() + [38] call keyboard_event_get + [39] (byte) keyboard_event_get::return#3 ← (byte) keyboard_event_get::return#2 to:main::@30 main::@30: scope:[main] from main::@29 - [38] (byte) main::key_event#0 ← (byte) keyboard_event_get::return#3 - [39] (byte) play_move_down::key_event#0 ← (byte) main::key_event#0 - [40] call play_move_down - [41] (byte) play_move_down::return#3 ← (byte) play_move_down::return#2 + [40] (byte) main::key_event#0 ← (byte) keyboard_event_get::return#3 + [41] (byte) play_move_down::key_event#0 ← (byte) main::key_event#0 + [42] call play_move_down + [43] (byte) play_move_down::return#3 ← (byte) play_move_down::return#2 to:main::@31 main::@31: scope:[main] from main::@30 - [42] (byte~) main::$12 ← (byte) play_move_down::return#3 - [43] (byte) main::render#1 ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte~) main::$12 - [44] (byte) play_move_leftright::key_event#0 ← (byte) main::key_event#0 - [45] call play_move_leftright - [46] (byte) play_move_leftright::return#4 ← (byte) play_move_leftright::return#1 + [44] (byte~) main::$12 ← (byte) play_move_down::return#3 + [45] (byte) main::render#1 ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte~) main::$12 + [46] (byte) play_move_leftright::key_event#0 ← (byte) main::key_event#0 + [47] call play_move_leftright + [48] (byte) play_move_leftright::return#4 ← (byte) play_move_leftright::return#1 to:main::@32 main::@32: scope:[main] from main::@31 - [47] (byte~) main::$13 ← (byte) play_move_leftright::return#4 - [48] (byte) main::render#2 ← (byte) main::render#1 + (byte~) main::$13 - [49] (byte) play_move_rotate::key_event#0 ← (byte) main::key_event#0 - [50] call play_move_rotate - [51] (byte) play_move_rotate::return#4 ← (byte) play_move_rotate::return#1 + [49] (byte~) main::$13 ← (byte) play_move_leftright::return#4 + [50] (byte) main::render#2 ← (byte) main::render#1 + (byte~) main::$13 + [51] (byte) play_move_rotate::key_event#0 ← (byte) main::key_event#0 + [52] call play_move_rotate + [53] (byte) play_move_rotate::return#4 ← (byte) play_move_rotate::return#1 to:main::@33 main::@33: scope:[main] from main::@32 - [52] (byte~) main::$14 ← (byte) play_move_rotate::return#4 - [53] (byte) main::render#3 ← (byte) main::render#2 + (byte~) main::$14 - [54] if((byte) main::render#3==(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@10 + [54] (byte~) main::$14 ← (byte) play_move_rotate::return#4 + [55] (byte) main::render#3 ← (byte) main::render#2 + (byte~) main::$14 + [56] if((byte) main::render#3==(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@10 to:main::@19 main::@19: scope:[main] from main::@33 - [55] phi() - [56] call render_playfield + [57] phi() + [58] call render_playfield to:main::@34 main::@34: scope:[main] from main::@19 - [57] (byte~) current_ypos#78 ← (byte) current_ypos#14 - [58] (byte~) current_xpos#104 ← (byte) current_xpos#20 - [59] (byte*~) current_piece_gfx#96 ← (byte*) current_piece_gfx#15 - [60] (byte~) current_piece_char#84 ← (byte) current_piece_char#11 - [61] call render_current + [59] (byte~) current_ypos#80 ← (byte) current_ypos#14 + [60] (byte~) current_xpos#106 ← (byte) current_xpos#20 + [61] (byte*~) current_piece_gfx#96 ← (byte*) current_piece_gfx#15 + [62] (byte~) current_piece_char#84 ← (byte) current_piece_char#11 + [63] call render_current to:main::@10 main::@10: scope:[main] from main::@33 main::@34 - [62] *((const byte*) BORDERCOL#0) ← -- *((const byte*) BORDERCOL#0) + [64] *((const byte*) BORDERCOL#0) ← -- *((const byte*) BORDERCOL#0) to:main::@1 render_current: scope:[render_current] from main::@27 main::@34 - [63] (byte) current_piece_char#63 ← phi( main::@27/(byte~) current_piece_char#83 main::@34/(byte~) current_piece_char#84 ) - [63] (byte*) current_piece_gfx#53 ← phi( main::@27/(byte*~) current_piece_gfx#95 main::@34/(byte*~) current_piece_gfx#96 ) - [63] (byte) current_xpos#48 ← phi( main::@27/(byte/signed byte/word/signed word/dword/signed dword) 3 main::@34/(byte~) current_xpos#104 ) - [63] (byte) current_ypos#10 ← phi( main::@27/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@34/(byte~) current_ypos#78 ) - [64] (byte) render_current::ypos2#0 ← (byte) current_ypos#10 << (byte/signed byte/word/signed word/dword/signed dword) 1 + [65] (byte) current_piece_char#63 ← phi( main::@27/(byte~) current_piece_char#83 main::@34/(byte~) current_piece_char#84 ) + [65] (byte*) current_piece_gfx#53 ← phi( main::@27/(byte*~) current_piece_gfx#95 main::@34/(byte*~) current_piece_gfx#96 ) + [65] (byte) current_xpos#48 ← phi( main::@27/(byte~) current_xpos#105 main::@34/(byte~) current_xpos#106 ) + [65] (byte) current_ypos#10 ← phi( main::@27/(byte~) current_ypos#79 main::@34/(byte~) current_ypos#80 ) + [66] (byte) render_current::ypos2#0 ← (byte) current_ypos#10 << (byte/signed byte/word/signed word/dword/signed dword) 1 to:render_current::@1 render_current::@1: scope:[render_current] from render_current render_current::@3 - [65] (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 ) - [65] (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 ) - [65] (byte) render_current::ypos2#2 ← phi( render_current/(byte) render_current::ypos2#0 render_current::@3/(byte) render_current::ypos2#1 ) - [66] if((byte) render_current::ypos2#2>(byte/signed byte/word/signed word/dword/signed dword) 2) goto render_current::@13 + [67] (byte) render_current::l#4 ← phi( render_current/(byte/signed byte/word/signed word/dword/signed dword) 0 render_current::@3/(byte) render_current::l#1 ) + [67] (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 ) + [67] (byte) render_current::ypos2#2 ← phi( render_current/(byte) render_current::ypos2#0 render_current::@3/(byte) render_current::ypos2#1 ) + [68] 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 - [67] (byte) render_current::i#1 ← (byte) render_current::i#3 + (byte/signed byte/word/signed word/dword/signed dword) 4 + [69] (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 - [68] (byte) render_current::i#8 ← phi( render_current::@5/(byte) render_current::i#10 render_current::@7/(byte) render_current::i#1 ) - [69] (byte) render_current::ypos2#1 ← (byte) render_current::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 - [70] (byte) render_current::l#1 ← ++ (byte) render_current::l#4 - [71] if((byte) render_current::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_current::@1 + [70] (byte) render_current::i#8 ← phi( render_current::@5/(byte) render_current::i#10 render_current::@7/(byte) render_current::i#1 ) + [71] (byte) render_current::ypos2#1 ← (byte) render_current::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 + [72] (byte) render_current::l#1 ← ++ (byte) render_current::l#4 + [73] 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 - [72] return + [74] return to:@return render_current::@13: scope:[render_current] from render_current::@1 - [73] 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 + [75] 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 - [74] (byte*) render_current::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) screen_lines#0 + (byte) render_current::ypos2#2) - [75] (byte) render_current::xpos#0 ← (byte) current_xpos#48 + [76] (byte*) render_current::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) screen_lines#0 + (byte) render_current::ypos2#2) + [77] (byte) render_current::xpos#0 ← (byte) current_xpos#48 to:render_current::@4 render_current::@4: scope:[render_current] from render_current::@2 render_current::@5 - [76] (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 ) - [76] (byte) render_current::xpos#2 ← phi( render_current::@2/(byte) render_current::xpos#0 render_current::@5/(byte) render_current::xpos#1 ) - [76] (byte) render_current::i#4 ← phi( render_current::@2/(byte) render_current::i#3 render_current::@5/(byte) render_current::i#10 ) - [77] (byte) render_current::current_cell#0 ← *((byte*) current_piece_gfx#53 + (byte) render_current::i#4) - [78] (byte) render_current::i#10 ← ++ (byte) render_current::i#4 - [79] if((byte) render_current::current_cell#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto render_current::@5 + [78] (byte) render_current::c#2 ← phi( render_current::@2/(byte/signed byte/word/signed word/dword/signed dword) 0 render_current::@5/(byte) render_current::c#1 ) + [78] (byte) render_current::xpos#2 ← phi( render_current::@2/(byte) render_current::xpos#0 render_current::@5/(byte) render_current::xpos#1 ) + [78] (byte) render_current::i#4 ← phi( render_current::@2/(byte) render_current::i#3 render_current::@5/(byte) render_current::i#10 ) + [79] (byte) render_current::current_cell#0 ← *((byte*) current_piece_gfx#53 + (byte) render_current::i#4) + [80] (byte) render_current::i#10 ← ++ (byte) render_current::i#4 + [81] if((byte) render_current::current_cell#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto render_current::@5 to:render_current::@9 render_current::@9: scope:[render_current] from render_current::@4 - [80] if((byte) render_current::xpos#2>=(const byte) PLAYFIELD_COLS#0) goto render_current::@5 + [82] if((byte) render_current::xpos#2>=(const byte) PLAYFIELD_COLS#0) goto render_current::@5 to:render_current::@10 render_current::@10: scope:[render_current] from render_current::@9 - [81] *((byte*) render_current::screen_line#0 + (byte) render_current::xpos#2) ← (byte) current_piece_char#63 + [83] *((byte*) render_current::screen_line#0 + (byte) render_current::xpos#2) ← (byte) current_piece_char#63 to:render_current::@5 render_current::@5: scope:[render_current] from render_current::@10 render_current::@4 render_current::@9 - [82] (byte) render_current::xpos#1 ← ++ (byte) render_current::xpos#2 - [83] (byte) render_current::c#1 ← ++ (byte) render_current::c#2 - [84] if((byte) render_current::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_current::@4 + [84] (byte) render_current::xpos#1 ← ++ (byte) render_current::xpos#2 + [85] (byte) render_current::c#1 ← ++ (byte) render_current::c#2 + [86] 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::@19 main::@26 - [85] phi() + [87] phi() to:render_playfield::@1 render_playfield::@1: scope:[render_playfield] from render_playfield render_playfield::@3 - [86] (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 ) - [86] (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 ) - [87] (byte~) render_playfield::$2 ← (byte) render_playfield::l#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 - [88] (byte*) render_playfield::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) screen_lines#0 + (byte~) render_playfield::$2) + [88] (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 ) + [88] (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 ) + [89] (byte~) render_playfield::$2 ← (byte) render_playfield::l#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 + [90] (byte*) render_playfield::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) screen_lines#0 + (byte~) render_playfield::$2) to:render_playfield::@2 render_playfield::@2: scope:[render_playfield] from render_playfield::@1 render_playfield::@2 - [89] (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 ) - [89] (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 ) - [89] (byte) render_playfield::i#2 ← phi( render_playfield::@1/(byte) render_playfield::i#3 render_playfield::@2/(byte) render_playfield::i#1 ) - [90] *((byte*) render_playfield::screen_line#2) ← *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) render_playfield::i#2) - [91] (byte*) render_playfield::screen_line#1 ← ++ (byte*) render_playfield::screen_line#2 - [92] (byte) render_playfield::i#1 ← ++ (byte) render_playfield::i#2 - [93] (byte) render_playfield::c#1 ← ++ (byte) render_playfield::c#2 - [94] 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 + [91] (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 ) + [91] (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 ) + [91] (byte) render_playfield::i#2 ← phi( render_playfield::@1/(byte) render_playfield::i#3 render_playfield::@2/(byte) render_playfield::i#1 ) + [92] *((byte*) render_playfield::screen_line#2) ← *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) render_playfield::i#2) + [93] (byte*) render_playfield::screen_line#1 ← ++ (byte*) render_playfield::screen_line#2 + [94] (byte) render_playfield::i#1 ← ++ (byte) render_playfield::i#2 + [95] (byte) render_playfield::c#1 ← ++ (byte) render_playfield::c#2 + [96] 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 - [95] (byte) render_playfield::l#1 ← ++ (byte) render_playfield::l#2 - [96] 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 + [97] (byte) render_playfield::l#1 ← ++ (byte) render_playfield::l#2 + [98] 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 - [97] return + [99] return to:@return play_move_rotate: scope:[play_move_rotate] from main::@32 - [98] if((byte) play_move_rotate::key_event#0==(const byte) KEY_Z#0) goto play_move_rotate::@1 + [100] 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 - [99] if((byte) play_move_rotate::key_event#0==(const byte) KEY_X#0) goto play_move_rotate::@2 + [101] if((byte) play_move_rotate::key_event#0==(const byte) KEY_X#0) goto play_move_rotate::@2 to:play_move_rotate::@return play_move_rotate::@return: scope:[play_move_rotate] from play_move_rotate::@11 play_move_rotate::@14 play_move_rotate::@6 - [100] (byte*) current_piece_gfx#15 ← phi( play_move_rotate::@11/(byte*) current_piece_gfx#4 play_move_rotate::@14/(byte*) current_piece_gfx#14 play_move_rotate::@6/(byte*) current_piece_gfx#14 ) - [100] (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 ) - [100] (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 ) - [101] return + [102] (byte*) current_piece_gfx#15 ← phi( play_move_rotate::@11/(byte*) current_piece_gfx#4 play_move_rotate::@14/(byte*) current_piece_gfx#14 play_move_rotate::@6/(byte*) current_piece_gfx#14 ) + [102] (byte) current_orientation#19 ← phi( play_move_rotate::@11/(byte) current_orientation#4 play_move_rotate::@14/(byte) current_orientation#14 play_move_rotate::@6/(byte) current_orientation#14 ) + [102] (byte) play_move_rotate::return#1 ← phi( play_move_rotate::@11/(byte/signed byte/word/signed word/dword/signed dword) 1 play_move_rotate::@14/(byte/signed byte/word/signed word/dword/signed dword) 0 play_move_rotate::@6/(byte/signed byte/word/signed word/dword/signed dword) 0 ) + [103] return to:@return play_move_rotate::@2: scope:[play_move_rotate] from play_move_rotate::@6 - [102] (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 - [103] (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 + [104] (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 ← (byte) current_orientation#14 + (byte/signed byte/word/signed word/dword/signed dword) 16 + [105] (byte) play_move_rotate::orientation#2 ← (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 & (byte/signed byte/word/signed word/dword/signed dword) 63 to:play_move_rotate::@4 play_move_rotate::@4: scope:[play_move_rotate] from play_move_rotate::@1 play_move_rotate::@2 - [104] (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 ) - [105] (byte) play_collision::xpos#3 ← (byte) current_xpos#20 - [106] (byte) play_collision::ypos#3 ← (byte) current_ypos#14 - [107] (byte) play_collision::orientation#3 ← (byte) play_move_rotate::orientation#3 - [108] (byte*~) current_piece#76 ← (byte*) current_piece#10 - [109] call play_collision - [110] (byte) play_collision::return#13 ← (byte) play_collision::return#14 + [106] (byte) play_move_rotate::orientation#3 ← phi( play_move_rotate::@1/(byte) play_move_rotate::orientation#1 play_move_rotate::@2/(byte) play_move_rotate::orientation#2 ) + [107] (byte) play_collision::xpos#3 ← (byte) current_xpos#20 + [108] (byte) play_collision::ypos#3 ← (byte) current_ypos#14 + [109] (byte) play_collision::orientation#3 ← (byte) play_move_rotate::orientation#3 + [110] (byte*~) current_piece#76 ← (byte*) current_piece#10 + [111] call play_collision + [112] (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 - [111] (byte~) play_move_rotate::$6 ← (byte) play_collision::return#13 - [112] if((byte~) play_move_rotate::$6!=(const byte) COLLISION_NONE#0) goto play_move_rotate::@return + [113] (byte~) play_move_rotate::$6 ← (byte) play_collision::return#13 + [114] 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 - [113] (byte) current_orientation#4 ← (byte) play_move_rotate::orientation#3 - [114] (byte*) current_piece_gfx#4 ← (byte*) current_piece#10 + (byte) current_orientation#4 + [115] (byte) current_orientation#4 ← (byte) play_move_rotate::orientation#3 + [116] (byte*) current_piece_gfx#4 ← (byte*) current_piece#10 + (byte) current_orientation#4 to:play_move_rotate::@return play_move_rotate::@1: scope:[play_move_rotate] from play_move_rotate - [115] (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 - [116] (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 + [117] (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 ← (byte) current_orientation#14 - (byte/signed byte/word/signed word/dword/signed dword) 16 + [118] (byte) play_move_rotate::orientation#1 ← (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 & (byte/signed byte/word/signed word/dword/signed dword) 63 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 - [117] (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 ) - [117] (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 ) - [117] (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 ) - [117] (byte*) current_piece#12 ← phi( play_move_down::@12/(byte*~) current_piece#73 play_move_leftright::@1/(byte*~) current_piece#74 play_move_leftright::@7/(byte*~) current_piece#75 play_move_rotate::@4/(byte*~) current_piece#76 ) - [118] (byte*) play_collision::piece_gfx#0 ← (byte*) current_piece#12 + (byte) play_collision::orientation#4 - [119] (byte) play_collision::ypos2#0 ← (byte) play_collision::ypos#4 << (byte/signed byte/word/signed word/dword/signed dword) 1 + [119] (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 ) + [119] (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 ) + [119] (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 ) + [119] (byte*) current_piece#12 ← phi( play_move_down::@12/(byte*~) current_piece#73 play_move_leftright::@1/(byte*~) current_piece#74 play_move_leftright::@7/(byte*~) current_piece#75 play_move_rotate::@4/(byte*~) current_piece#76 ) + [120] (byte*) play_collision::piece_gfx#0 ← (byte*) current_piece#12 + (byte) play_collision::orientation#4 + [121] (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 - [120] (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 ) - [120] (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 ) - [120] (byte) play_collision::ypos2#2 ← phi( play_collision/(byte) play_collision::ypos2#0 play_collision::@20/(byte) play_collision::ypos2#1 ) - [121] (byte*) play_collision::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) play_collision::ypos2#2) - [122] (byte~) play_collision::col#9 ← (byte) play_collision::xpos#5 + [122] (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 ) + [122] (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 ) + [122] (byte) play_collision::ypos2#2 ← phi( play_collision/(byte) play_collision::ypos2#0 play_collision::@20/(byte) play_collision::ypos2#1 ) + [123] (byte*) play_collision::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) play_collision::ypos2#2) + [124] (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 - [123] (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 ) - [123] (byte) play_collision::col#2 ← phi( play_collision::@1/(byte~) play_collision::col#9 play_collision::@21/(byte) play_collision::col#1 ) - [123] (byte) play_collision::i#2 ← phi( play_collision::@1/(byte) play_collision::i#3 play_collision::@21/(byte~) play_collision::i#13 ) - [124] (byte) play_collision::i#1 ← ++ (byte) play_collision::i#2 - [125] 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 + [125] (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 ) + [125] (byte) play_collision::col#2 ← phi( play_collision::@1/(byte~) play_collision::col#9 play_collision::@21/(byte) play_collision::col#1 ) + [125] (byte) play_collision::i#2 ← phi( play_collision::@1/(byte) play_collision::i#3 play_collision::@21/(byte~) play_collision::i#13 ) + [126] (byte) play_collision::i#1 ← ++ (byte) play_collision::i#2 + [127] if(*((byte*) play_collision::piece_gfx#0 + (byte) play_collision::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_collision::@3 to:play_collision::@8 play_collision::@8: scope:[play_collision] from play_collision::@2 - [126] 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 + [128] 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 - [127] (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 ) - [128] return + [129] (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 ) + [130] return to:@return play_collision::@4: scope:[play_collision] from play_collision::@8 - [129] (byte~) play_collision::$7 ← (byte) play_collision::col#2 & (byte/word/signed word/dword/signed dword) 128 - [130] if((byte~) play_collision::$7==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_collision::@5 + [131] (byte~) play_collision::$7 ← (byte) play_collision::col#2 & (byte/word/signed word/dword/signed dword) 128 + [132] 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 - [131] if((byte) play_collision::col#2<(const byte) PLAYFIELD_COLS#0) goto play_collision::@6 + [133] 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 - [132] 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 + [134] if(*((byte*) play_collision::playfield_line#0 + (byte) play_collision::col#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_collision::@3 to:play_collision::@return play_collision::@3: scope:[play_collision] from play_collision::@2 play_collision::@6 - [133] (byte) play_collision::col#1 ← ++ (byte) play_collision::col#2 - [134] (byte) play_collision::c#1 ← ++ (byte) play_collision::c#2 - [135] if((byte) play_collision::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto play_collision::@21 + [135] (byte) play_collision::col#1 ← ++ (byte) play_collision::col#2 + [136] (byte) play_collision::c#1 ← ++ (byte) play_collision::c#2 + [137] 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 - [136] (byte) play_collision::ypos2#1 ← (byte) play_collision::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 - [137] (byte) play_collision::l#1 ← ++ (byte) play_collision::l#6 - [138] if((byte) play_collision::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto play_collision::@20 + [138] (byte) play_collision::ypos2#1 ← (byte) play_collision::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 + [139] (byte) play_collision::l#1 ← ++ (byte) play_collision::l#6 + [140] 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 - [139] (byte~) play_collision::i#11 ← (byte) play_collision::i#1 + [141] (byte~) play_collision::i#11 ← (byte) play_collision::i#1 to:play_collision::@1 play_collision::@21: scope:[play_collision] from play_collision::@3 - [140] (byte~) play_collision::i#13 ← (byte) play_collision::i#1 + [142] (byte~) play_collision::i#13 ← (byte) play_collision::i#1 to:play_collision::@2 play_move_leftright: scope:[play_move_leftright] from main::@31 - [141] if((byte) play_move_leftright::key_event#0==(const byte) KEY_COMMA#0) goto play_move_leftright::@1 + [143] 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 - [142] if((byte) play_move_leftright::key_event#0!=(const byte) KEY_DOT#0) goto play_move_leftright::@return + [144] if((byte) play_move_leftright::key_event#0!=(const byte) KEY_DOT#0) goto play_move_leftright::@return to:play_move_leftright::@7 play_move_leftright::@7: scope:[play_move_leftright] from play_move_leftright::@6 - [143] (byte) play_collision::xpos#2 ← (byte) current_xpos#16 + (byte/signed byte/word/signed word/dword/signed dword) 1 - [144] (byte) play_collision::ypos#2 ← (byte) current_ypos#14 - [145] (byte) play_collision::orientation#2 ← (byte) current_orientation#14 - [146] (byte*~) current_piece#75 ← (byte*) current_piece#10 - [147] call play_collision - [148] (byte) play_collision::return#12 ← (byte) play_collision::return#14 + [145] (byte) play_collision::xpos#2 ← (byte) current_xpos#16 + (byte/signed byte/word/signed word/dword/signed dword) 1 + [146] (byte) play_collision::ypos#2 ← (byte) current_ypos#14 + [147] (byte) play_collision::orientation#2 ← (byte) current_orientation#14 + [148] (byte*~) current_piece#75 ← (byte*) current_piece#10 + [149] call play_collision + [150] (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 - [149] (byte~) play_move_leftright::$4 ← (byte) play_collision::return#12 - [150] if((byte~) play_move_leftright::$4!=(const byte) COLLISION_NONE#0) goto play_move_leftright::@return + [151] (byte~) play_move_leftright::$4 ← (byte) play_collision::return#12 + [152] if((byte~) play_move_leftright::$4!=(const byte) COLLISION_NONE#0) goto play_move_leftright::@return to:play_move_leftright::@8 play_move_leftright::@8: scope:[play_move_leftright] from play_move_leftright::@15 - [151] (byte) current_xpos#3 ← ++ (byte) current_xpos#16 + [153] (byte) current_xpos#3 ← ++ (byte) current_xpos#16 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 - [152] (byte) current_xpos#20 ← phi( play_move_leftright::@11/(byte) current_xpos#5 play_move_leftright::@15/(byte) current_xpos#16 play_move_leftright::@8/(byte) current_xpos#3 play_move_leftright::@14/(byte) current_xpos#16 play_move_leftright::@6/(byte) current_xpos#16 ) - [152] (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 ) - [153] return + [154] (byte) current_xpos#20 ← phi( play_move_leftright::@11/(byte) current_xpos#5 play_move_leftright::@15/(byte) current_xpos#16 play_move_leftright::@8/(byte) current_xpos#3 play_move_leftright::@14/(byte) current_xpos#16 play_move_leftright::@6/(byte) current_xpos#16 ) + [154] (byte) play_move_leftright::return#1 ← phi( play_move_leftright::@11/(byte/signed byte/word/signed word/dword/signed dword) 1 play_move_leftright::@15/(byte/signed byte/word/signed word/dword/signed dword) 0 play_move_leftright::@8/(byte/signed byte/word/signed word/dword/signed dword) 1 play_move_leftright::@14/(byte/signed byte/word/signed word/dword/signed dword) 0 play_move_leftright::@6/(byte/signed byte/word/signed word/dword/signed dword) 0 ) + [155] return to:@return play_move_leftright::@1: scope:[play_move_leftright] from play_move_leftright - [154] (byte) play_collision::xpos#1 ← (byte) current_xpos#16 - (byte/signed byte/word/signed word/dword/signed dword) 1 - [155] (byte) play_collision::ypos#1 ← (byte) current_ypos#14 - [156] (byte) play_collision::orientation#1 ← (byte) current_orientation#14 - [157] (byte*~) current_piece#74 ← (byte*) current_piece#10 - [158] call play_collision - [159] (byte) play_collision::return#1 ← (byte) play_collision::return#14 + [156] (byte) play_collision::xpos#1 ← (byte) current_xpos#16 - (byte/signed byte/word/signed word/dword/signed dword) 1 + [157] (byte) play_collision::ypos#1 ← (byte) current_ypos#14 + [158] (byte) play_collision::orientation#1 ← (byte) current_orientation#14 + [159] (byte*~) current_piece#74 ← (byte*) current_piece#10 + [160] call play_collision + [161] (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 - [160] (byte~) play_move_leftright::$8 ← (byte) play_collision::return#1 - [161] if((byte~) play_move_leftright::$8!=(const byte) COLLISION_NONE#0) goto play_move_leftright::@return + [162] (byte~) play_move_leftright::$8 ← (byte) play_collision::return#1 + [163] if((byte~) play_move_leftright::$8!=(const byte) COLLISION_NONE#0) goto play_move_leftright::@return to:play_move_leftright::@11 play_move_leftright::@11: scope:[play_move_leftright] from play_move_leftright::@14 - [162] (byte) current_xpos#5 ← -- (byte) current_xpos#16 + [164] (byte) current_xpos#5 ← -- (byte) current_xpos#16 to:play_move_leftright::@return play_move_down: scope:[play_move_down] from main::@30 - [163] (byte) current_movedown_counter#1 ← ++ (byte) current_movedown_counter#12 - [164] if((byte) play_move_down::key_event#0!=(const byte) KEY_SPACE#0) goto play_move_down::@1 + [165] (byte) current_movedown_counter#1 ← ++ (byte) current_movedown_counter#12 + [166] 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 - [165] phi() + [167] phi() to:play_move_down::@1 play_move_down::@1: scope:[play_move_down] from play_move_down play_move_down::@8 - [166] (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 ) - [167] call keyboard_event_pressed - [168] (byte) keyboard_event_pressed::return#12 ← (byte) keyboard_event_pressed::return#11 + [168] (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 ) + [169] call keyboard_event_pressed + [170] (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 - [169] (byte~) play_move_down::$2 ← (byte) keyboard_event_pressed::return#12 - [170] if((byte~) play_move_down::$2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_move_down::@2 + [171] (byte~) play_move_down::$2 ← (byte) keyboard_event_pressed::return#12 + [172] 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 - [171] if((byte) current_movedown_counter#1<(const byte) current_movedown_fast#0) goto play_move_down::@2 + [173] 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 - [172] (byte) play_move_down::movedown#2 ← ++ (byte) play_move_down::movedown#10 + [174] (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 - [173] (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 ) - [174] if((byte) current_movedown_counter#1<(const byte) current_movedown_slow#0) goto play_move_down::@4 + [175] (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 ) + [176] 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 - [175] (byte) play_move_down::movedown#3 ← ++ (byte) play_move_down::movedown#7 + [177] (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 - [176] (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 ) - [177] if((byte) play_move_down::movedown#6==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_move_down::@return + [178] (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 ) + [179] if((byte) play_move_down::movedown#6==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_move_down::@return to:play_move_down::@12 play_move_down::@12: scope:[play_move_down] from play_move_down::@4 - [178] (byte) play_collision::ypos#0 ← (byte) current_ypos#22 + (byte/signed byte/word/signed word/dword/signed dword) 1 - [179] (byte) play_collision::xpos#0 ← (byte) current_xpos#11 - [180] (byte) play_collision::orientation#0 ← (byte) current_orientation#10 - [181] (byte*~) current_piece#73 ← (byte*) current_piece#16 - [182] call play_collision - [183] (byte) play_collision::return#0 ← (byte) play_collision::return#14 + [180] (byte) play_collision::ypos#0 ← (byte) current_ypos#22 + (byte/signed byte/word/signed word/dword/signed dword) 1 + [181] (byte) play_collision::xpos#0 ← (byte) current_xpos#11 + [182] (byte) play_collision::orientation#0 ← (byte) current_orientation#10 + [183] (byte*~) current_piece#73 ← (byte*) current_piece#16 + [184] call play_collision + [185] (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 - [184] (byte~) play_move_down::$12 ← (byte) play_collision::return#0 - [185] if((byte~) play_move_down::$12==(const byte) COLLISION_NONE#0) goto play_move_down::@6 + [186] (byte~) play_move_down::$12 ← (byte) play_collision::return#0 + [187] 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 - [186] phi() - [187] call play_lock_current + [188] phi() + [189] call play_lock_current to:play_move_down::@19 play_move_down::@19: scope:[play_move_down] from play_move_down::@13 - [188] phi() - [189] call play_remove_lines + [190] phi() + [191] call play_remove_lines to:play_move_down::@20 play_move_down::@20: scope:[play_move_down] from play_move_down::@19 - [190] phi() - [191] call play_spawn_current - [192] (byte*~) current_piece#77 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) + [192] phi() + [193] call play_spawn_current + [194] (byte*~) current_piece#77 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) to:play_move_down::@7 play_move_down::@7: scope:[play_move_down] from play_move_down::@20 play_move_down::@6 - [193] (byte) current_piece_char#21 ← phi( play_move_down::@20/(byte) current_piece_char#13 play_move_down::@6/(byte) current_piece_char#16 ) - [193] (byte) current_xpos#34 ← phi( play_move_down::@20/(byte/signed byte/word/signed word/dword/signed dword) 3 play_move_down::@6/(byte) current_xpos#11 ) - [193] (byte*) current_piece_gfx#27 ← phi( play_move_down::@20/(byte*) current_piece_gfx#17 play_move_down::@6/(byte*) current_piece_gfx#10 ) - [193] (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 ) - [193] (byte*) current_piece#20 ← phi( play_move_down::@20/(byte*~) current_piece#77 play_move_down::@6/(byte*) current_piece#16 ) - [193] (byte) current_ypos#30 ← phi( play_move_down::@20/(byte/signed byte/word/signed word/dword/signed dword) 0 play_move_down::@6/(byte) current_ypos#1 ) + [195] (byte) current_piece_char#21 ← phi( play_move_down::@20/(byte) current_piece_char#13 play_move_down::@6/(byte) current_piece_char#16 ) + [195] (byte) current_xpos#34 ← phi( play_move_down::@20/(byte) current_xpos#24 play_move_down::@6/(byte) current_xpos#11 ) + [195] (byte*) current_piece_gfx#27 ← phi( play_move_down::@20/(byte*) current_piece_gfx#17 play_move_down::@6/(byte*) current_piece_gfx#10 ) + [195] (byte) current_orientation#29 ← phi( play_move_down::@20/(byte/signed byte/word/signed word/dword/signed dword) 0 play_move_down::@6/(byte) current_orientation#10 ) + [195] (byte*) current_piece#20 ← phi( play_move_down::@20/(byte*~) current_piece#77 play_move_down::@6/(byte*) current_piece#16 ) + [195] (byte) current_ypos#30 ← phi( play_move_down::@20/(byte) current_ypos#19 play_move_down::@6/(byte) current_ypos#1 ) to:play_move_down::@return play_move_down::@return: scope:[play_move_down] from play_move_down::@4 play_move_down::@7 - [194] (byte) current_piece_char#11 ← phi( play_move_down::@4/(byte) current_piece_char#16 play_move_down::@7/(byte) current_piece_char#21 ) - [194] (byte) current_xpos#16 ← phi( play_move_down::@4/(byte) current_xpos#11 play_move_down::@7/(byte) current_xpos#34 ) - [194] (byte*) current_piece_gfx#14 ← phi( play_move_down::@4/(byte*) current_piece_gfx#10 play_move_down::@7/(byte*) current_piece_gfx#27 ) - [194] (byte) current_orientation#14 ← phi( play_move_down::@4/(byte) current_orientation#10 play_move_down::@7/(byte) current_orientation#29 ) - [194] (byte*) current_piece#10 ← phi( play_move_down::@4/(byte*) current_piece#16 play_move_down::@7/(byte*) current_piece#20 ) - [194] (byte) current_ypos#14 ← phi( play_move_down::@4/(byte) current_ypos#22 play_move_down::@7/(byte) current_ypos#30 ) - [194] (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 ) - [194] (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 ) - [195] return + [196] (byte) current_piece_char#11 ← phi( play_move_down::@4/(byte) current_piece_char#16 play_move_down::@7/(byte) current_piece_char#21 ) + [196] (byte) current_xpos#16 ← phi( play_move_down::@4/(byte) current_xpos#11 play_move_down::@7/(byte) current_xpos#34 ) + [196] (byte*) current_piece_gfx#14 ← phi( play_move_down::@4/(byte*) current_piece_gfx#10 play_move_down::@7/(byte*) current_piece_gfx#27 ) + [196] (byte) current_orientation#14 ← phi( play_move_down::@4/(byte) current_orientation#10 play_move_down::@7/(byte) current_orientation#29 ) + [196] (byte*) current_piece#10 ← phi( play_move_down::@4/(byte*) current_piece#16 play_move_down::@7/(byte*) current_piece#20 ) + [196] (byte) current_ypos#14 ← phi( play_move_down::@4/(byte) current_ypos#22 play_move_down::@7/(byte) current_ypos#30 ) + [196] (byte) current_movedown_counter#10 ← phi( play_move_down::@4/(byte) current_movedown_counter#1 play_move_down::@7/(byte/signed byte/word/signed word/dword/signed dword) 0 ) + [196] (byte) play_move_down::return#2 ← phi( play_move_down::@4/(byte/signed byte/word/signed word/dword/signed dword) 0 play_move_down::@7/(byte/signed byte/word/signed word/dword/signed dword) 1 ) + [197] return to:@return play_move_down::@6: scope:[play_move_down] from play_move_down::@18 - [196] (byte) current_ypos#1 ← ++ (byte) current_ypos#22 + [198] (byte) current_ypos#1 ← ++ (byte) current_ypos#22 to:play_move_down::@7 play_spawn_current: scope:[play_spawn_current] from main::@25 play_move_down::@20 - [197] phi() + [199] phi() to:play_spawn_current::@1 play_spawn_current::@1: scope:[play_spawn_current] from play_spawn_current play_spawn_current::@7 - [198] (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 ) - [199] if((byte) play_spawn_current::piece_idx#2==(byte/signed byte/word/signed word/dword/signed dword) 7) goto play_spawn_current::@2 + [200] (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 ) + [201] 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 - [200] (byte~) play_spawn_current::$3 ← (byte) play_spawn_current::piece_idx#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 - [201] (byte*) current_piece_gfx#17 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) + (byte/signed byte/word/signed word/dword/signed dword) 0 - [202] (byte) current_piece_char#13 ← *((const byte[]) PIECES_CHARS#0 + (byte) play_spawn_current::piece_idx#2) + [202] (byte~) play_spawn_current::$3 ← (byte) play_spawn_current::piece_idx#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 + [203] (byte*) current_piece_gfx#17 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) + (byte/signed byte/word/signed word/dword/signed dword) 0 + [204] (byte) current_xpos#24 ← *((const byte[]) PIECES_START_X#0 + (byte) play_spawn_current::piece_idx#2) + [205] (byte) current_ypos#19 ← *((const byte[]) PIECES_START_Y#0 + (byte) play_spawn_current::piece_idx#2) + [206] (byte) current_piece_char#13 ← *((const byte[]) PIECES_CHARS#0 + (byte) play_spawn_current::piece_idx#2) to:play_spawn_current::@return play_spawn_current::@return: scope:[play_spawn_current] from play_spawn_current::@3 - [203] return + [207] return to:@return play_spawn_current::@2: scope:[play_spawn_current] from play_spawn_current::@1 - [204] phi() - [205] call sid_rnd - [206] (byte) sid_rnd::return#2 ← (byte) sid_rnd::return#0 + [208] phi() + [209] call sid_rnd + [210] (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 - [207] (byte~) play_spawn_current::$1 ← (byte) sid_rnd::return#2 - [208] (byte) play_spawn_current::piece_idx#1 ← (byte~) play_spawn_current::$1 & (byte/signed byte/word/signed word/dword/signed dword) 7 + [211] (byte~) play_spawn_current::$1 ← (byte) sid_rnd::return#2 + [212] (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 - [209] (byte) sid_rnd::return#0 ← *((const byte*) SID_VOICE3_OSC#0) + [213] (byte) sid_rnd::return#0 ← *((const byte*) SID_VOICE3_OSC#0) to:sid_rnd::@return sid_rnd::@return: scope:[sid_rnd] from sid_rnd - [210] return + [214] return to:@return play_remove_lines: scope:[play_remove_lines] from play_move_down::@19 - [211] phi() + [215] phi() to:play_remove_lines::@1 play_remove_lines::@1: scope:[play_remove_lines] from play_remove_lines play_remove_lines::@4 - [212] (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 ) - [212] (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 ) - [212] (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 ) + [216] (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 ) + [216] (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 ) + [216] (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 - [213] (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 ) - [213] (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 ) - [213] (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 ) - [213] (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 ) - [214] (byte) play_remove_lines::c#0 ← *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) play_remove_lines::r#2) - [215] (byte) play_remove_lines::r#1 ← -- (byte) play_remove_lines::r#2 - [216] if((byte) play_remove_lines::c#0!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_remove_lines::@17 + [217] (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 ) + [217] (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 ) + [217] (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 ) + [217] (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 ) + [218] (byte) play_remove_lines::c#0 ← *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) play_remove_lines::r#2) + [219] (byte) play_remove_lines::r#1 ← -- (byte) play_remove_lines::r#2 + [220] 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 - [217] (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 ) - [218] *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) play_remove_lines::w#4) ← (byte) play_remove_lines::c#0 - [219] (byte) play_remove_lines::w#1 ← -- (byte) play_remove_lines::w#4 - [220] (byte) play_remove_lines::x#1 ← ++ (byte) play_remove_lines::x#2 - [221] 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 + [221] (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 ) + [222] *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) play_remove_lines::w#4) ← (byte) play_remove_lines::c#0 + [223] (byte) play_remove_lines::w#1 ← -- (byte) play_remove_lines::w#4 + [224] (byte) play_remove_lines::x#1 ← ++ (byte) play_remove_lines::x#2 + [225] 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 - [222] if((byte) play_remove_lines::full#2!=(byte/signed byte/word/signed word/dword/signed dword) 1) goto play_remove_lines::@4 + [226] 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 - [223] (byte) play_remove_lines::w#2 ← (byte) play_remove_lines::w#1 + (const byte) PLAYFIELD_COLS#0 + [227] (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 - [224] (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 ) - [225] (byte) play_remove_lines::y#1 ← ++ (byte) play_remove_lines::y#8 - [226] 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 + [228] (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 ) + [229] (byte) play_remove_lines::y#1 ← ++ (byte) play_remove_lines::y#8 + [230] 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 - [227] (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 ) - [228] if((byte) play_remove_lines::w#6!=(byte/word/signed word/dword/signed dword) 255) goto play_remove_lines::@6 + [231] (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 ) + [232] 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 - [229] return + [233] return to:@return play_remove_lines::@6: scope:[play_remove_lines] from play_remove_lines::@5 - [230] *((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 - [231] (byte) play_remove_lines::w#3 ← -- (byte) play_remove_lines::w#6 + [234] *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) play_remove_lines::w#6) ← (byte/signed byte/word/signed word/dword/signed dword) 0 + [235] (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 - [232] phi() + [236] phi() to:play_remove_lines::@3 play_lock_current: scope:[play_lock_current] from play_move_down::@13 - [233] (byte) play_lock_current::ypos2#0 ← (byte) current_ypos#22 << (byte/signed byte/word/signed word/dword/signed dword) 1 + [237] (byte) play_lock_current::ypos2#0 ← (byte) current_ypos#22 << (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 - [234] (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 ) - [234] (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 ) - [234] (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 ) - [235] (byte*) play_lock_current::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) play_lock_current::ypos2#2) - [236] (byte) play_lock_current::col#0 ← (byte) current_xpos#11 + [238] (byte) play_lock_current::l#6 ← phi( play_lock_current/(byte/signed byte/word/signed word/dword/signed dword) 0 play_lock_current::@7/(byte) play_lock_current::l#1 ) + [238] (byte) play_lock_current::i#3 ← phi( play_lock_current/(byte/signed byte/word/signed word/dword/signed dword) 0 play_lock_current::@7/(byte~) play_lock_current::i#7 ) + [238] (byte) play_lock_current::ypos2#2 ← phi( play_lock_current/(byte) play_lock_current::ypos2#0 play_lock_current::@7/(byte) play_lock_current::ypos2#1 ) + [239] (byte*) play_lock_current::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) play_lock_current::ypos2#2) + [240] (byte) play_lock_current::col#0 ← (byte) current_xpos#11 to:play_lock_current::@2 play_lock_current::@2: scope:[play_lock_current] from play_lock_current::@1 play_lock_current::@8 - [237] (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 ) - [237] (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 ) - [237] (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 ) - [238] (byte) play_lock_current::i#1 ← ++ (byte) play_lock_current::i#2 - [239] if(*((byte*) current_piece_gfx#10 + (byte) play_lock_current::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_lock_current::@3 + [241] (byte) play_lock_current::c#2 ← phi( play_lock_current::@1/(byte/signed byte/word/signed word/dword/signed dword) 0 play_lock_current::@8/(byte) play_lock_current::c#1 ) + [241] (byte) play_lock_current::col#2 ← phi( play_lock_current::@1/(byte) play_lock_current::col#0 play_lock_current::@8/(byte) play_lock_current::col#1 ) + [241] (byte) play_lock_current::i#2 ← phi( play_lock_current::@1/(byte) play_lock_current::i#3 play_lock_current::@8/(byte~) play_lock_current::i#9 ) + [242] (byte) play_lock_current::i#1 ← ++ (byte) play_lock_current::i#2 + [243] if(*((byte*) current_piece_gfx#10 + (byte) play_lock_current::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_lock_current::@3 to:play_lock_current::@4 play_lock_current::@4: scope:[play_lock_current] from play_lock_current::@2 - [240] *((byte*) play_lock_current::playfield_line#0 + (byte) play_lock_current::col#2) ← (byte) current_piece_char#16 + [244] *((byte*) play_lock_current::playfield_line#0 + (byte) play_lock_current::col#2) ← (byte) current_piece_char#16 to:play_lock_current::@3 play_lock_current::@3: scope:[play_lock_current] from play_lock_current::@2 play_lock_current::@4 - [241] (byte) play_lock_current::col#1 ← ++ (byte) play_lock_current::col#2 - [242] (byte) play_lock_current::c#1 ← ++ (byte) play_lock_current::c#2 - [243] if((byte) play_lock_current::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto play_lock_current::@8 + [245] (byte) play_lock_current::col#1 ← ++ (byte) play_lock_current::col#2 + [246] (byte) play_lock_current::c#1 ← ++ (byte) play_lock_current::c#2 + [247] 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 - [244] (byte) play_lock_current::ypos2#1 ← (byte) play_lock_current::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 - [245] (byte) play_lock_current::l#1 ← ++ (byte) play_lock_current::l#6 - [246] if((byte) play_lock_current::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto play_lock_current::@7 + [248] (byte) play_lock_current::ypos2#1 ← (byte) play_lock_current::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 + [249] (byte) play_lock_current::l#1 ← ++ (byte) play_lock_current::l#6 + [250] 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 - [247] return + [251] return to:@return play_lock_current::@7: scope:[play_lock_current] from play_lock_current::@5 - [248] (byte~) play_lock_current::i#7 ← (byte) play_lock_current::i#1 + [252] (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 - [249] (byte~) play_lock_current::i#9 ← (byte) play_lock_current::i#1 + [253] (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 - [250] (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 ) - [251] (byte~) keyboard_event_pressed::$0 ← (byte) keyboard_event_pressed::keycode#5 >> (byte/signed byte/word/signed word/dword/signed dword) 3 - [252] (byte) keyboard_event_pressed::row_bits#0 ← *((const byte[8]) keyboard_scan_values#0 + (byte~) keyboard_event_pressed::$0) - [253] (byte~) keyboard_event_pressed::$1 ← (byte) keyboard_event_pressed::keycode#5 & (byte/signed byte/word/signed word/dword/signed dword) 7 - [254] (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) + [254] (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 ) + [255] (byte~) keyboard_event_pressed::$0 ← (byte) keyboard_event_pressed::keycode#5 >> (byte/signed byte/word/signed word/dword/signed dword) 3 + [256] (byte) keyboard_event_pressed::row_bits#0 ← *((const byte[8]) keyboard_scan_values#0 + (byte~) keyboard_event_pressed::$0) + [257] (byte~) keyboard_event_pressed::$1 ← (byte) keyboard_event_pressed::keycode#5 & (byte/signed byte/word/signed word/dword/signed dword) 7 + [258] (byte) keyboard_event_pressed::return#11 ← (byte) keyboard_event_pressed::row_bits#0 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte~) keyboard_event_pressed::$1) to:keyboard_event_pressed::@return keyboard_event_pressed::@return: scope:[keyboard_event_pressed] from keyboard_event_pressed - [255] return + [259] return to:@return keyboard_event_get: scope:[keyboard_event_get] from main::@29 - [256] if((byte) keyboard_events_size#13==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_get::@return + [260] if((byte) keyboard_events_size#13==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_get::@return to:keyboard_event_get::@3 keyboard_event_get::@3: scope:[keyboard_event_get] from keyboard_event_get - [257] (byte) keyboard_events_size#4 ← -- (byte) keyboard_events_size#13 - [258] (byte) keyboard_event_get::return#1 ← *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#4) + [261] (byte) keyboard_events_size#4 ← -- (byte) keyboard_events_size#13 + [262] (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 - [259] (byte) keyboard_events_size#16 ← phi( keyboard_event_get/(byte) keyboard_events_size#13 keyboard_event_get::@3/(byte) keyboard_events_size#4 ) - [259] (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 ) - [260] return + [263] (byte) keyboard_events_size#16 ← phi( keyboard_event_get/(byte) keyboard_events_size#13 keyboard_event_get::@3/(byte) keyboard_events_size#4 ) + [263] (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 ) + [264] return to:@return keyboard_event_scan: scope:[keyboard_event_scan] from main::@9 - [261] phi() + [265] phi() to:keyboard_event_scan::@1 keyboard_event_scan::@1: scope:[keyboard_event_scan] from keyboard_event_scan keyboard_event_scan::@3 - [262] (byte) keyboard_events_size#29 ← phi( keyboard_event_scan/(byte) keyboard_events_size#19 keyboard_event_scan::@3/(byte) keyboard_events_size#13 ) - [262] (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 ) - [262] (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 ) - [263] (byte) keyboard_matrix_read::rowid#0 ← (byte) keyboard_event_scan::row#2 - [264] call keyboard_matrix_read - [265] (byte) keyboard_matrix_read::return#2 ← (byte) keyboard_matrix_read::return#0 + [266] (byte) keyboard_events_size#29 ← phi( keyboard_event_scan/(byte) keyboard_events_size#19 keyboard_event_scan::@3/(byte) keyboard_events_size#13 ) + [266] (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 ) + [266] (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 ) + [267] (byte) keyboard_matrix_read::rowid#0 ← (byte) keyboard_event_scan::row#2 + [268] call keyboard_matrix_read + [269] (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 - [266] (byte) keyboard_event_scan::row_scan#0 ← (byte) keyboard_matrix_read::return#2 - [267] 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 + [270] (byte) keyboard_event_scan::row_scan#0 ← (byte) keyboard_matrix_read::return#2 + [271] if((byte) keyboard_event_scan::row_scan#0!=*((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2)) goto keyboard_event_scan::@4 to:keyboard_event_scan::@13 keyboard_event_scan::@13: scope:[keyboard_event_scan] from keyboard_event_scan::@25 - [268] (byte) keyboard_event_scan::keycode#1 ← (byte) keyboard_event_scan::keycode#11 + (byte/signed byte/word/signed word/dword/signed dword) 8 + [272] (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 - [269] (byte) keyboard_events_size#13 ← phi( keyboard_event_scan::@13/(byte) keyboard_events_size#29 keyboard_event_scan::@19/(byte) keyboard_events_size#30 ) - [269] (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 ) - [270] (byte) keyboard_event_scan::row#1 ← ++ (byte) keyboard_event_scan::row#2 - [271] if((byte) keyboard_event_scan::row#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto keyboard_event_scan::@1 + [273] (byte) keyboard_events_size#13 ← phi( keyboard_event_scan::@13/(byte) keyboard_events_size#29 keyboard_event_scan::@19/(byte) keyboard_events_size#30 ) + [273] (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 ) + [274] (byte) keyboard_event_scan::row#1 ← ++ (byte) keyboard_event_scan::row#2 + [275] 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 - [272] phi() - [273] call keyboard_event_pressed - [274] (byte) keyboard_event_pressed::return#0 ← (byte) keyboard_event_pressed::return#11 + [276] phi() + [277] call keyboard_event_pressed + [278] (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 - [275] (byte~) keyboard_event_scan::$14 ← (byte) keyboard_event_pressed::return#0 - [276] if((byte~) keyboard_event_scan::$14==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@9 + [279] (byte~) keyboard_event_scan::$14 ← (byte) keyboard_event_pressed::return#0 + [280] 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 - [277] phi() + [281] phi() to:keyboard_event_scan::@9 keyboard_event_scan::@9: scope:[keyboard_event_scan] from keyboard_event_scan::@21 keyboard_event_scan::@26 - [278] (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 ) - [279] call keyboard_event_pressed - [280] (byte) keyboard_event_pressed::return#1 ← (byte) keyboard_event_pressed::return#11 + [282] (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 ) + [283] call keyboard_event_pressed + [284] (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 - [281] (byte~) keyboard_event_scan::$18 ← (byte) keyboard_event_pressed::return#1 - [282] if((byte~) keyboard_event_scan::$18==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@10 + [285] (byte~) keyboard_event_scan::$18 ← (byte) keyboard_event_pressed::return#1 + [286] 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 - [283] (byte) keyboard_modifiers#3 ← (byte) keyboard_modifiers#11 | (const byte) KEY_MODIFIER_RSHIFT#0 + [287] (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 - [284] (byte) keyboard_modifiers#12 ← phi( keyboard_event_scan::@22/(byte) keyboard_modifiers#3 keyboard_event_scan::@27/(byte) keyboard_modifiers#11 ) - [285] call keyboard_event_pressed - [286] (byte) keyboard_event_pressed::return#2 ← (byte) keyboard_event_pressed::return#11 + [288] (byte) keyboard_modifiers#12 ← phi( keyboard_event_scan::@22/(byte) keyboard_modifiers#3 keyboard_event_scan::@27/(byte) keyboard_modifiers#11 ) + [289] call keyboard_event_pressed + [290] (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 - [287] (byte~) keyboard_event_scan::$22 ← (byte) keyboard_event_pressed::return#2 - [288] if((byte~) keyboard_event_scan::$22==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@11 + [291] (byte~) keyboard_event_scan::$22 ← (byte) keyboard_event_pressed::return#2 + [292] 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 - [289] (byte) keyboard_modifiers#4 ← (byte) keyboard_modifiers#12 | (const byte) KEY_MODIFIER_CTRL#0 + [293] (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 - [290] (byte) keyboard_modifiers#13 ← phi( keyboard_event_scan::@23/(byte) keyboard_modifiers#4 keyboard_event_scan::@28/(byte) keyboard_modifiers#12 ) - [291] call keyboard_event_pressed - [292] (byte) keyboard_event_pressed::return#10 ← (byte) keyboard_event_pressed::return#11 + [294] (byte) keyboard_modifiers#13 ← phi( keyboard_event_scan::@23/(byte) keyboard_modifiers#4 keyboard_event_scan::@28/(byte) keyboard_modifiers#12 ) + [295] call keyboard_event_pressed + [296] (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 - [293] (byte~) keyboard_event_scan::$26 ← (byte) keyboard_event_pressed::return#10 - [294] if((byte~) keyboard_event_scan::$26==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@return + [297] (byte~) keyboard_event_scan::$26 ← (byte) keyboard_event_pressed::return#10 + [298] 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 - [295] (byte) keyboard_modifiers#5 ← (byte) keyboard_modifiers#13 | (const byte) KEY_MODIFIER_COMMODORE#0 + [299] (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 - [296] return + [300] return to:@return keyboard_event_scan::@4: scope:[keyboard_event_scan] from keyboard_event_scan::@25 keyboard_event_scan::@5 - [297] (byte) keyboard_events_size#10 ← phi( keyboard_event_scan::@25/(byte) keyboard_events_size#29 keyboard_event_scan::@5/(byte) keyboard_events_size#30 ) - [297] (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 ) - [297] (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 ) - [298] (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) - [299] (byte~) keyboard_event_scan::$4 ← (byte~) keyboard_event_scan::$3 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_event_scan::col#2) - [300] if((byte~) keyboard_event_scan::$4==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@5 + [301] (byte) keyboard_events_size#10 ← phi( keyboard_event_scan::@25/(byte) keyboard_events_size#29 keyboard_event_scan::@5/(byte) keyboard_events_size#30 ) + [301] (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 ) + [301] (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 ) + [302] (byte~) keyboard_event_scan::$3 ← (byte) keyboard_event_scan::row_scan#0 ^ *((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2) + [303] (byte~) keyboard_event_scan::$4 ← (byte~) keyboard_event_scan::$3 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_event_scan::col#2) + [304] 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 - [301] if((byte) keyboard_events_size#10==(byte/signed byte/word/signed word/dword/signed dword) 8) goto keyboard_event_scan::@5 + [305] 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 - [302] (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) - [303] if((byte) keyboard_event_scan::event_type#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@7 + [306] (byte) keyboard_event_scan::event_type#0 ← (byte) keyboard_event_scan::row_scan#0 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_event_scan::col#2) + [307] 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 - [304] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte) keyboard_event_scan::keycode#10 - [305] (byte) keyboard_events_size#2 ← ++ (byte) keyboard_events_size#10 + [308] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte) keyboard_event_scan::keycode#10 + [309] (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 - [306] (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 ) - [307] (byte) keyboard_event_scan::keycode#15 ← ++ (byte) keyboard_event_scan::keycode#10 - [308] (byte) keyboard_event_scan::col#1 ← ++ (byte) keyboard_event_scan::col#2 - [309] if((byte) keyboard_event_scan::col#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto keyboard_event_scan::@4 + [310] (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 ) + [311] (byte) keyboard_event_scan::keycode#15 ← ++ (byte) keyboard_event_scan::keycode#10 + [312] (byte) keyboard_event_scan::col#1 ← ++ (byte) keyboard_event_scan::col#2 + [313] 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 - [310] *((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2) ← (byte) keyboard_event_scan::row_scan#0 + [314] *((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 - [311] (byte/word/dword~) keyboard_event_scan::$11 ← (byte) keyboard_event_scan::keycode#10 | (byte/signed byte/word/signed word/dword/signed dword) 64 - [312] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte/word/dword~) keyboard_event_scan::$11 - [313] (byte) keyboard_events_size#1 ← ++ (byte) keyboard_events_size#10 + [315] (byte/word/dword~) keyboard_event_scan::$11 ← (byte) keyboard_event_scan::keycode#10 | (byte/signed byte/word/signed word/dword/signed dword) 64 + [316] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte/word/dword~) keyboard_event_scan::$11 + [317] (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 - [314] *((const byte*) CIA1_PORT_A#0) ← *((const byte[8]) keyboard_matrix_row_bitmask#0 + (byte) keyboard_matrix_read::rowid#0) - [315] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) + [318] *((const byte*) CIA1_PORT_A#0) ← *((const byte[8]) keyboard_matrix_row_bitmask#0 + (byte) keyboard_matrix_read::rowid#0) + [319] (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 - [316] return + [320] return to:@return play_init: scope:[play_init] from main::@24 - [317] phi() + [321] phi() to:play_init::@1 play_init::@1: scope:[play_init] from play_init play_init::@1 - [318] (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 ) - [318] (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 ) - [318] (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 ) - [319] (byte~) play_init::$1 ← (byte) play_init::j#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 - [320] *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte~) play_init::$1) ← (byte*) play_init::pli#2 - [321] *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0 + (byte) play_init::j#2) ← (byte) play_init::idx#2 - [322] (byte*) play_init::pli#1 ← (byte*) play_init::pli#2 + (const byte) PLAYFIELD_COLS#0 - [323] (byte) play_init::idx#1 ← (byte) play_init::idx#2 + (const byte) PLAYFIELD_COLS#0 - [324] (byte) play_init::j#1 ← ++ (byte) play_init::j#2 - [325] 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 + [322] (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 ) + [322] (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 ) + [322] (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 ) + [323] (byte~) play_init::$1 ← (byte) play_init::j#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 + [324] *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte~) play_init::$1) ← (byte*) play_init::pli#2 + [325] *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0 + (byte) play_init::j#2) ← (byte) play_init::idx#2 + [326] (byte*) play_init::pli#1 ← (byte*) play_init::pli#2 + (const byte) PLAYFIELD_COLS#0 + [327] (byte) play_init::idx#1 ← (byte) play_init::idx#2 + (const byte) PLAYFIELD_COLS#0 + [328] (byte) play_init::j#1 ← ++ (byte) play_init::j#2 + [329] 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 - [326] *((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 + [330] *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0+(const byte) PLAYFIELD_LINES#0) ← (const byte) PLAYFIELD_COLS#0*(const byte) PLAYFIELD_LINES#0 to:play_init::@return play_init::@return: scope:[play_init] from play_init::@2 - [327] return + [331] return to:@return sprites_irq_init: scope:[sprites_irq_init] from main::@23 asm { sei } - [329] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0 + [333] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0 asm { ldaCIA1_INTERRUPT } - [331] *((const byte*) PROCPORT_DDR#0) ← (const byte) PROCPORT_DDR_MEMORY_MASK#0 - [332] *((const byte*) PROCPORT#0) ← (const byte) PROCPORT_RAM_IO#0 - [333] *((const byte*) CIA1_INTERRUPT#0) ← (const byte) CIA_INTERRUPT_CLEAR#0 - [334] *((const byte*) VIC_CONTROL#0) ← *((const byte*) VIC_CONTROL#0) & (byte/signed byte/word/signed word/dword/signed dword) 127 - [335] *((const byte*) RASTER#0) ← (const byte) IRQ_RASTER_FIRST#0 - [336] *((const byte*) IRQ_ENABLE#0) ← (const byte) IRQ_RASTER#0 - [337] *((const void()**) HARDWARE_IRQ#0) ← &interrupt(HARDWARE_CLOBBER)(void()) irq() + [335] *((const byte*) PROCPORT_DDR#0) ← (const byte) PROCPORT_DDR_MEMORY_MASK#0 + [336] *((const byte*) PROCPORT#0) ← (const byte) PROCPORT_RAM_IO#0 + [337] *((const byte*) CIA1_INTERRUPT#0) ← (const byte) CIA_INTERRUPT_CLEAR#0 + [338] *((const byte*) VIC_CONTROL#0) ← *((const byte*) VIC_CONTROL#0) & (byte/signed byte/word/signed word/dword/signed dword) 127 + [339] *((const byte*) RASTER#0) ← (const byte) IRQ_RASTER_FIRST#0 + [340] *((const byte*) IRQ_ENABLE#0) ← (const byte) IRQ_RASTER#0 + [341] *((const void()**) HARDWARE_IRQ#0) ← &interrupt(HARDWARE_CLOBBER)(void()) irq() asm { cli } to:sprites_irq_init::@return sprites_irq_init::@return: scope:[sprites_irq_init] from sprites_irq_init - [339] return + [343] return to:@return sprites_init: scope:[sprites_init] from main::@22 - [340] *((const byte*) SPRITES_ENABLE#0) ← (byte/signed byte/word/signed word/dword/signed dword) 15 - [341] *((const byte*) SPRITES_MC#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 - [342] *((const byte*) SPRITES_EXPAND_Y#0) ← *((const byte*) SPRITES_MC#0) - [343] *((const byte*) SPRITES_EXPAND_X#0) ← *((const byte*) SPRITES_EXPAND_Y#0) + [344] *((const byte*) SPRITES_ENABLE#0) ← (byte/signed byte/word/signed word/dword/signed dword) 15 + [345] *((const byte*) SPRITES_MC#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 + [346] *((const byte*) SPRITES_EXPAND_Y#0) ← *((const byte*) SPRITES_MC#0) + [347] *((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 - [344] (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 ) - [344] (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 ) - [345] (byte) sprites_init::s2#0 ← (byte) sprites_init::s#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 - [346] *((const byte*) SPRITES_XPOS#0 + (byte) sprites_init::s2#0) ← (byte) sprites_init::xpos#2 - [347] *((const byte*) SPRITES_COLS#0 + (byte) sprites_init::s#2) ← (const byte) BLACK#0 - [348] (byte) sprites_init::xpos#1 ← (byte) sprites_init::xpos#2 + (byte/signed byte/word/signed word/dword/signed dword) 24 - [349] (byte) sprites_init::s#1 ← ++ (byte) sprites_init::s#2 - [350] if((byte) sprites_init::s#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto sprites_init::@1 + [348] (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 ) + [348] (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 ) + [349] (byte) sprites_init::s2#0 ← (byte) sprites_init::s#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 + [350] *((const byte*) SPRITES_XPOS#0 + (byte) sprites_init::s2#0) ← (byte) sprites_init::xpos#2 + [351] *((const byte*) SPRITES_COLS#0 + (byte) sprites_init::s#2) ← (const byte) BLACK#0 + [352] (byte) sprites_init::xpos#1 ← (byte) sprites_init::xpos#2 + (byte/signed byte/word/signed word/dword/signed dword) 24 + [353] (byte) sprites_init::s#1 ← ++ (byte) sprites_init::s#2 + [354] 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 - [351] return + [355] return to:@return render_init: scope:[render_init] from main::@21 - [352] phi() + [356] phi() to:render_init::vicSelectGfxBank1 render_init::vicSelectGfxBank1: scope:[render_init] from render_init - [353] *((const byte*) CIA2_PORT_A_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3 + [357] *((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 - [354] phi() + [358] phi() to:render_init::vicSelectGfxBank1_@1 render_init::vicSelectGfxBank1_@1: scope:[render_init] from render_init::vicSelectGfxBank1_toDd001 - [355] *((const byte*) CIA2_PORT_A#0) ← (const byte) render_init::vicSelectGfxBank1_toDd001_return#0 + [359] *((const byte*) CIA2_PORT_A#0) ← (const byte) render_init::vicSelectGfxBank1_toDd001_return#0 to:render_init::toD0181 render_init::toD0181: scope:[render_init] from render_init::vicSelectGfxBank1_@1 - [356] phi() + [360] phi() to:render_init::@8 render_init::@8: scope:[render_init] from render_init::toD0181 - [357] *((const byte*) D018#0) ← (const byte) render_init::toD0181_return#0 - [358] *((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 - [359] *((const byte*) BGCOL1#0) ← (const byte) BLACK#0 - [360] *((const byte*) BGCOL2#0) ← (const byte) BLUE#0 - [361] *((const byte*) BGCOL3#0) ← (const byte) CYAN#0 - [362] *((const byte*) BGCOL4#0) ← (const byte) GREY#0 - [363] call fill + [361] *((const byte*) D018#0) ← (const byte) render_init::toD0181_return#0 + [362] *((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 + [363] *((const byte*) BGCOL1#0) ← (const byte) BLACK#0 + [364] *((const byte*) BGCOL2#0) ← (const byte) BLUE#0 + [365] *((const byte*) BGCOL3#0) ← (const byte) CYAN#0 + [366] *((const byte*) BGCOL4#0) ← (const byte) GREY#0 + [367] call fill to:render_init::@9 render_init::@9: scope:[render_init] from render_init::@8 - [364] phi() - [365] call render_screen_original + [368] phi() + [369] call render_screen_original to:render_init::@1 render_init::@1: scope:[render_init] from render_init::@1 render_init::@9 - [366] (byte*) render_init::li#2 ← phi( render_init::@1/(byte*) render_init::li#1 render_init::@9/(const byte*) PLAYFIELD_SCREEN#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 ) - [366] (byte) render_init::i#2 ← phi( render_init::@1/(byte) render_init::i#1 render_init::@9/(byte/signed byte/word/signed word/dword/signed dword) 0 ) - [367] (byte~) render_init::$11 ← (byte) render_init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 - [368] *((const byte*[PLAYFIELD_LINES#0]) screen_lines#0 + (byte~) render_init::$11) ← (byte*) render_init::li#2 - [369] (byte*) render_init::li#1 ← (byte*) render_init::li#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 - [370] (byte) render_init::i#1 ← ++ (byte) render_init::i#2 - [371] 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 + [370] (byte*) render_init::li#2 ← phi( render_init::@1/(byte*) render_init::li#1 render_init::@9/(const byte*) PLAYFIELD_SCREEN#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 ) + [370] (byte) render_init::i#2 ← phi( render_init::@1/(byte) render_init::i#1 render_init::@9/(byte/signed byte/word/signed word/dword/signed dword) 0 ) + [371] (byte~) render_init::$11 ← (byte) render_init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 + [372] *((const byte*[PLAYFIELD_LINES#0]) screen_lines#0 + (byte~) render_init::$11) ← (byte*) render_init::li#2 + [373] (byte*) render_init::li#1 ← (byte*) render_init::li#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 + [374] (byte) render_init::i#1 ← ++ (byte) render_init::i#2 + [375] 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::@2 render_init::@2: scope:[render_init] from render_init::@1 render_init::@5 - [372] (byte) render_init::l#4 ← phi( render_init::@1/(byte/signed byte/word/signed word/dword/signed dword) 2 render_init::@5/(byte) render_init::l#1 ) - [372] (byte*) render_init::line#4 ← phi( render_init::@1/(const byte*) COLS#0+(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 16 render_init::@5/(byte*) render_init::line#1 ) + [376] (byte) render_init::l#4 ← phi( render_init::@1/(byte/signed byte/word/signed word/dword/signed dword) 2 render_init::@5/(byte) render_init::l#1 ) + [376] (byte*) render_init::line#4 ← phi( render_init::@1/(const byte*) COLS#0+(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 16 render_init::@5/(byte*) render_init::line#1 ) to:render_init::@3 render_init::@3: scope:[render_init] from render_init::@2 render_init::@3 - [373] (byte) render_init::c#2 ← phi( render_init::@2/(byte/signed byte/word/signed word/dword/signed dword) 0 render_init::@3/(byte) render_init::c#1 ) - [374] (byte*~) render_init::$18 ← (byte*) render_init::line#4 + (byte) render_init::c#2 - [375] *((byte*~) render_init::$18) ← (const byte) WHITE#0 - [376] (byte) render_init::c#1 ← ++ (byte) render_init::c#2 - [377] if((byte) render_init::c#1!=(const byte) PLAYFIELD_COLS#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_init::@3 + [377] (byte) render_init::c#2 ← phi( render_init::@2/(byte/signed byte/word/signed word/dword/signed dword) 0 render_init::@3/(byte) render_init::c#1 ) + [378] (byte*~) render_init::$18 ← (byte*) render_init::line#4 + (byte) render_init::c#2 + [379] *((byte*~) render_init::$18) ← (const byte) WHITE#0 + [380] (byte) render_init::c#1 ← ++ (byte) render_init::c#2 + [381] if((byte) render_init::c#1!=(const byte) PLAYFIELD_COLS#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_init::@3 to:render_init::@5 render_init::@5: scope:[render_init] from render_init::@3 - [378] (byte*) render_init::line#1 ← (byte*) render_init::line#4 + (byte/signed byte/word/signed word/dword/signed dword) 40 - [379] (byte) render_init::l#1 ← ++ (byte) render_init::l#4 - [380] if((byte) render_init::l#1!=(const byte) PLAYFIELD_LINES#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_init::@2 + [382] (byte*) render_init::line#1 ← (byte*) render_init::line#4 + (byte/signed byte/word/signed word/dword/signed dword) 40 + [383] (byte) render_init::l#1 ← ++ (byte) render_init::l#4 + [384] if((byte) render_init::l#1!=(const byte) PLAYFIELD_LINES#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_init::@2 to:render_init::@return render_init::@return: scope:[render_init] from render_init::@5 - [381] return + [385] return to:@return render_screen_original: scope:[render_screen_original] from render_init::@9 - [382] phi() + [386] phi() to:render_screen_original::@1 render_screen_original::@1: scope:[render_screen_original] from render_screen_original render_screen_original::@7 - [383] (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 ) - [383] (byte*) render_screen_original::orig#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::orig#1 ) - [383] (byte*) render_screen_original::screen#7 ← phi( render_screen_original/(const byte*) PLAYFIELD_SCREEN#0 render_screen_original::@7/(byte*) render_screen_original::screen#3 ) + [387] (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 ) + [387] (byte*) render_screen_original::orig#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::orig#1 ) + [387] (byte*) render_screen_original::screen#7 ← phi( render_screen_original/(const byte*) PLAYFIELD_SCREEN#0 render_screen_original::@7/(byte*) render_screen_original::screen#3 ) to:render_screen_original::@2 render_screen_original::@2: scope:[render_screen_original] from render_screen_original::@1 render_screen_original::@2 - [384] (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 ) - [384] (byte*) render_screen_original::screen#4 ← phi( render_screen_original::@1/(byte*) render_screen_original::screen#7 render_screen_original::@2/(byte*) render_screen_original::screen#1 ) - [385] *((byte*) render_screen_original::screen#4) ← (const byte) render_screen_original::SPACE#0 - [386] (byte*) render_screen_original::screen#1 ← ++ (byte*) render_screen_original::screen#4 - [387] (byte) render_screen_original::x#1 ← ++ (byte) render_screen_original::x#4 - [388] if((byte) render_screen_original::x#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_screen_original::@2 + [388] (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 ) + [388] (byte*) render_screen_original::screen#4 ← phi( render_screen_original::@1/(byte*) render_screen_original::screen#7 render_screen_original::@2/(byte*) render_screen_original::screen#1 ) + [389] *((byte*) render_screen_original::screen#4) ← (const byte) render_screen_original::SPACE#0 + [390] (byte*) render_screen_original::screen#1 ← ++ (byte*) render_screen_original::screen#4 + [391] (byte) render_screen_original::x#1 ← ++ (byte) render_screen_original::x#4 + [392] 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 - [389] (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 ) - [389] (byte*) render_screen_original::screen#5 ← phi( render_screen_original::@2/(byte*) render_screen_original::screen#1 render_screen_original::@3/(byte*) render_screen_original::screen#2 ) - [389] (byte*) render_screen_original::orig#2 ← phi( render_screen_original::@2/(byte*) render_screen_original::orig#4 render_screen_original::@3/(byte*) render_screen_original::orig#1 ) - [390] (byte/signed word/word/dword/signed dword~) render_screen_original::$3 ← *((byte*) render_screen_original::orig#2) + (byte/signed byte/word/signed word/dword/signed dword) 1 - [391] *((byte*) render_screen_original::screen#5) ← (byte/signed word/word/dword/signed dword~) render_screen_original::$3 - [392] (byte*) render_screen_original::screen#2 ← ++ (byte*) render_screen_original::screen#5 - [393] (byte*) render_screen_original::orig#1 ← ++ (byte*) render_screen_original::orig#2 - [394] (byte) render_screen_original::x#2 ← ++ (byte) render_screen_original::x#5 - [395] if((byte) render_screen_original::x#2!=(byte/signed byte/word/signed word/dword/signed dword) 36) goto render_screen_original::@3 + [393] (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 ) + [393] (byte*) render_screen_original::screen#5 ← phi( render_screen_original::@2/(byte*) render_screen_original::screen#1 render_screen_original::@3/(byte*) render_screen_original::screen#2 ) + [393] (byte*) render_screen_original::orig#2 ← phi( render_screen_original::@2/(byte*) render_screen_original::orig#4 render_screen_original::@3/(byte*) render_screen_original::orig#1 ) + [394] (byte/signed word/word/dword/signed dword~) render_screen_original::$3 ← *((byte*) render_screen_original::orig#2) + (byte/signed byte/word/signed word/dword/signed dword) 1 + [395] *((byte*) render_screen_original::screen#5) ← (byte/signed word/word/dword/signed dword~) render_screen_original::$3 + [396] (byte*) render_screen_original::screen#2 ← ++ (byte*) render_screen_original::screen#5 + [397] (byte*) render_screen_original::orig#1 ← ++ (byte*) render_screen_original::orig#2 + [398] (byte) render_screen_original::x#2 ← ++ (byte) render_screen_original::x#5 + [399] 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 - [396] (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 ) - [396] (byte*) render_screen_original::screen#6 ← phi( render_screen_original::@3/(byte*) render_screen_original::screen#2 render_screen_original::@4/(byte*) render_screen_original::screen#3 ) - [397] *((byte*) render_screen_original::screen#6) ← (const byte) render_screen_original::SPACE#0 - [398] (byte*) render_screen_original::screen#3 ← ++ (byte*) render_screen_original::screen#6 - [399] (byte) render_screen_original::x#3 ← ++ (byte) render_screen_original::x#6 - [400] if((byte) render_screen_original::x#3!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto render_screen_original::@4 + [400] (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 ) + [400] (byte*) render_screen_original::screen#6 ← phi( render_screen_original::@3/(byte*) render_screen_original::screen#2 render_screen_original::@4/(byte*) render_screen_original::screen#3 ) + [401] *((byte*) render_screen_original::screen#6) ← (const byte) render_screen_original::SPACE#0 + [402] (byte*) render_screen_original::screen#3 ← ++ (byte*) render_screen_original::screen#6 + [403] (byte) render_screen_original::x#3 ← ++ (byte) render_screen_original::x#6 + [404] 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 - [401] (byte) render_screen_original::y#1 ← ++ (byte) render_screen_original::y#6 - [402] if((byte) render_screen_original::y#1!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto render_screen_original::@1 + [405] (byte) render_screen_original::y#1 ← ++ (byte) render_screen_original::y#6 + [406] 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 - [403] return + [407] return to:@return fill: scope:[fill] from render_init::@8 - [404] phi() + [408] phi() to:fill::@1 fill::@1: scope:[fill] from fill fill::@1 - [405] (byte*) fill::addr#2 ← phi( fill/(const byte*) COLS#0 fill::@1/(byte*) fill::addr#1 ) - [406] *((byte*) fill::addr#2) ← (const byte) DARK_GREY#0 - [407] (byte*) fill::addr#1 ← ++ (byte*) fill::addr#2 - [408] if((byte*) fill::addr#1!=(const byte*) fill::end#0) goto fill::@1 + [409] (byte*) fill::addr#2 ← phi( fill/(const byte*) COLS#0 fill::@1/(byte*) fill::addr#1 ) + [410] *((byte*) fill::addr#2) ← (const byte) DARK_GREY#0 + [411] (byte*) fill::addr#1 ← ++ (byte*) fill::addr#2 + [412] if((byte*) fill::addr#1!=(const byte*) fill::end#0) goto fill::@1 to:fill::@return fill::@return: scope:[fill] from fill::@1 - [409] return + [413] return to:@return sid_rnd_init: scope:[sid_rnd_init] from main - [410] *((const word*) SID_VOICE3_FREQ#0) ← (word/dword/signed dword) 65535 - [411] *((const byte*) SID_VOICE3_CONTROL#0) ← (const byte) SID_CONTROL_NOISE#0 + [414] *((const word*) SID_VOICE3_FREQ#0) ← (word/dword/signed dword) 65535 + [415] *((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 - [412] return + [416] return to:@return irq: scope:[irq] from - [413] *((const byte*) BORDERCOL#0) ← (const byte) DARK_GREY#0 - [414] (byte) irq::ypos#0 ← (byte) irq_sprite_ypos#0 - [415] *((const byte*) SPRITES_YPOS#0) ← (byte) irq::ypos#0 - [416] *((const byte*) SPRITES_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte) irq::ypos#0 - [417] *((const byte*) SPRITES_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte) irq::ypos#0 - [418] *((const byte*) SPRITES_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte) irq::ypos#0 + [417] *((const byte*) BORDERCOL#0) ← (const byte) DARK_GREY#0 + [418] (byte) irq::ypos#0 ← (byte) irq_sprite_ypos#0 + [419] *((const byte*) SPRITES_YPOS#0) ← (byte) irq::ypos#0 + [420] *((const byte*) SPRITES_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte) irq::ypos#0 + [421] *((const byte*) SPRITES_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte) irq::ypos#0 + [422] *((const byte*) SPRITES_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte) irq::ypos#0 to:irq::@1 irq::@1: scope:[irq] from irq irq::@1 - [419] if(*((const byte*) RASTER#0)!=(byte) irq_sprite_ypos#0) goto irq::@1 + [423] if(*((const byte*) RASTER#0)!=(byte) irq_sprite_ypos#0) goto irq::@1 to:irq::@5 irq::@5: scope:[irq] from irq::@1 - [420] (byte) irq::ptr#0 ← (byte) irq_sprite_ptr#0 - [421] *((const byte*) PLAYFIELD_SPRITE_PTRS#0) ← (byte) irq::ptr#0 - [422] (byte) irq::ptr#1 ← ++ (byte) irq::ptr#0 - [423] *((const byte*) PLAYFIELD_SPRITE_PTRS#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte) irq::ptr#1 - [424] *((const byte*) PLAYFIELD_SPRITE_PTRS#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte) irq::ptr#1 - [425] (byte) irq::ptr#2 ← ++ (byte) irq::ptr#1 - [426] *((const byte*) PLAYFIELD_SPRITE_PTRS#0+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte) irq::ptr#2 - [427] (byte) irq_cnt#1 ← ++ (byte) irq_cnt#0 - [428] if((byte) irq_cnt#1==(byte/signed byte/word/signed word/dword/signed dword) 10) goto irq::@2 + [424] (byte) irq::ptr#0 ← (byte) irq_sprite_ptr#0 + [425] *((const byte*) PLAYFIELD_SPRITE_PTRS#0) ← (byte) irq::ptr#0 + [426] (byte) irq::ptr#1 ← ++ (byte) irq::ptr#0 + [427] *((const byte*) PLAYFIELD_SPRITE_PTRS#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte) irq::ptr#1 + [428] *((const byte*) PLAYFIELD_SPRITE_PTRS#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte) irq::ptr#1 + [429] (byte) irq::ptr#2 ← ++ (byte) irq::ptr#1 + [430] *((const byte*) PLAYFIELD_SPRITE_PTRS#0+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte) irq::ptr#2 + [431] (byte) irq_cnt#1 ← ++ (byte) irq_cnt#0 + [432] if((byte) irq_cnt#1==(byte/signed byte/word/signed word/dword/signed dword) 10) goto irq::@2 to:irq::@6 irq::@6: scope:[irq] from irq::@5 - [429] (byte) irq_raster_next#2 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 - [430] (byte) irq_sprite_ypos#2 ← (byte) irq_sprite_ypos#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 - [431] (byte) irq_sprite_ptr#2 ← (byte) irq_sprite_ptr#0 + (byte/signed byte/word/signed word/dword/signed dword) 3 + [433] (byte) irq_raster_next#2 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 + [434] (byte) irq_sprite_ypos#2 ← (byte) irq_sprite_ypos#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 + [435] (byte) irq_sprite_ptr#2 ← (byte) irq_sprite_ptr#0 + (byte/signed byte/word/signed word/dword/signed dword) 3 to:irq::@3 irq::@3: scope:[irq] from irq::@6 irq::@9 - [432] (byte) irq_raster_next#12 ← phi( irq::@6/(byte) irq_raster_next#2 irq::@9/(byte) irq_raster_next#1 ) - [433] (byte) irq::raster_next#0 ← (byte) irq_raster_next#12 - [434] (byte~) irq::$3 ← (byte) irq::raster_next#0 & (byte/signed byte/word/signed word/dword/signed dword) 7 - [435] if((byte~) irq::$3!=(byte/signed byte/word/signed word/dword/signed dword) 3) goto irq::@4 + [436] (byte) irq_raster_next#12 ← phi( irq::@6/(byte) irq_raster_next#2 irq::@9/(byte) irq_raster_next#1 ) + [437] (byte) irq::raster_next#0 ← (byte) irq_raster_next#12 + [438] (byte~) irq::$3 ← (byte) irq::raster_next#0 & (byte/signed byte/word/signed word/dword/signed dword) 7 + [439] if((byte~) irq::$3!=(byte/signed byte/word/signed word/dword/signed dword) 3) goto irq::@4 to:irq::@8 irq::@8: scope:[irq] from irq::@3 - [436] (byte) irq::raster_next#1 ← (byte) irq::raster_next#0 - (byte/signed byte/word/signed word/dword/signed dword) 1 + [440] (byte) irq::raster_next#1 ← (byte) irq::raster_next#0 - (byte/signed byte/word/signed word/dword/signed dword) 1 to:irq::@4 irq::@4: scope:[irq] from irq::@3 irq::@8 - [437] (byte) irq::raster_next#2 ← phi( irq::@3/(byte) irq::raster_next#0 irq::@8/(byte) irq::raster_next#1 ) - [438] *((const byte*) RASTER#0) ← (byte) irq::raster_next#2 - [439] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0 - [440] *((const byte*) BORDERCOL#0) ← (const byte) BLACK#0 + [441] (byte) irq::raster_next#2 ← phi( irq::@3/(byte) irq::raster_next#0 irq::@8/(byte) irq::raster_next#1 ) + [442] *((const byte*) RASTER#0) ← (byte) irq::raster_next#2 + [443] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0 + [444] *((const byte*) BORDERCOL#0) ← (const byte) BLACK#0 to:irq::@return irq::@return: scope:[irq] from irq::@4 - [441] return + [445] return to:@return irq::@2: scope:[irq] from irq::@5 - [442] (byte) irq_cnt#13 ← (byte/signed byte/word/signed word/dword/signed dword) 0 - [443] (byte) irq_raster_next#1 ← (const byte) IRQ_RASTER_FIRST#0 - [444] (byte) irq_sprite_ypos#1 ← (byte/signed byte/word/signed word/dword/signed dword) 50 + [446] (byte) irq_cnt#13 ← (byte/signed byte/word/signed word/dword/signed dword) 0 + [447] (byte) irq_raster_next#1 ← (const byte) IRQ_RASTER_FIRST#0 + [448] (byte) irq_sprite_ypos#1 ← (byte/signed byte/word/signed word/dword/signed dword) 50 to:irq::toSpritePtr2 irq::toSpritePtr2: scope:[irq] from irq::@2 - [445] phi() + [449] phi() to:irq::@9 irq::@9: scope:[irq] from irq::toSpritePtr2 - [446] (byte) irq_sprite_ptr#1 ← (const byte) irq::toSpritePtr2_return#0 + [450] (byte) irq_sprite_ptr#1 ← (const byte) irq::toSpritePtr2_return#0 to:irq::@3 diff --git a/src/test/ref/examples/tetris/tetris.log b/src/test/ref/examples/tetris/tetris.log index 11c006e83..be738442b 100644 --- a/src/test/ref/examples/tetris/tetris.log +++ b/src/test/ref/examples/tetris/tetris.log @@ -1121,7 +1121,7 @@ irq::@return: scope:[irq] from irq::@4 (byte[$11]) PIECE_L#0 ← { (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0 } (byte/signed byte/word/signed word/dword/signed dword~) $12 ← (byte/signed byte/word/signed word/dword/signed dword) 4 * (byte/signed byte/word/signed word/dword/signed dword) 4 (byte/signed word/word/dword/signed dword/signed byte~) $13 ← (byte/signed byte/word/signed word/dword/signed dword~) $12 * (byte/signed byte/word/signed word/dword/signed dword) 4 - (byte[$13]) PIECE_J#0 ← { (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0 } + (byte[$13]) PIECE_J#0 ← { (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0 } (byte/signed byte/word/signed word/dword/signed dword~) $14 ← (byte/signed byte/word/signed word/dword/signed dword) 4 * (byte/signed byte/word/signed word/dword/signed dword) 4 (byte/signed word/word/dword/signed dword/signed byte~) $15 ← (byte/signed byte/word/signed word/dword/signed dword~) $14 * (byte/signed byte/word/signed word/dword/signed dword) 4 (byte[$15]) PIECE_O#0 ← { (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0 } @@ -1137,6 +1137,8 @@ irq::@return: scope:[irq] from irq::@4 (word~) $24 ← ((word)) (byte[$11]) PIECE_L#0 (word[]) PIECES#0 ← { (word~) $18, (word~) $19, (word~) $20, (word~) $21, (word~) $22, (word~) $23, (word~) $24 } (byte[]) PIECES_CHARS#0 ← { (byte/signed byte/word/signed word/dword/signed dword) 87, (byte/signed byte/word/signed word/dword/signed dword) 88, (byte/word/signed word/dword/signed dword) 152, (byte/signed byte/word/signed word/dword/signed dword) 88, (byte/signed byte/word/signed word/dword/signed dword) 87, (byte/signed byte/word/signed word/dword/signed dword) 87, (byte/word/signed word/dword/signed dword) 152 } + (byte[]) PIECES_START_X#0 ← { (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 3, (byte/signed byte/word/signed word/dword/signed dword) 4 } + (byte[]) PIECES_START_Y#0 ← { (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1 } (byte*[PLAYFIELD_LINES#0]) playfield_lines#0 ← { fill( PLAYFIELD_LINES#0, 0) } (byte/signed word/word/dword/signed dword~) $25 ← (byte) PLAYFIELD_LINES#0 + (byte/signed byte/word/signed word/dword/signed dword) 1 (byte[$25]) playfield_lines_idx#0 ← { fill( $25, 0) } @@ -1835,8 +1837,8 @@ play_spawn_current::@3: scope:[play_spawn_current] from play_spawn_current::@1 (byte) current_orientation#5 ← (byte/signed byte/word/signed word/dword/signed dword) 0 (byte*~) play_spawn_current::$4 ← (byte*) current_piece#3 + (byte) current_orientation#5 (byte*) current_piece_gfx#5 ← (byte*~) play_spawn_current::$4 - (byte) current_xpos#6 ← (byte/signed byte/word/signed word/dword/signed dword) 3 - (byte) current_ypos#4 ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte) current_xpos#6 ← *((byte[]) PIECES_START_X#0 + (byte) play_spawn_current::piece_idx#3) + (byte) current_ypos#4 ← *((byte[]) PIECES_START_Y#0 + (byte) play_spawn_current::piece_idx#3) (byte) current_piece_char#3 ← *((byte[]) PIECES_CHARS#0 + (byte) play_spawn_current::piece_idx#3) to:play_spawn_current::@return play_spawn_current::@return: scope:[play_spawn_current] from play_spawn_current::@3 @@ -2652,6 +2654,10 @@ SYMBOL TABLE SSA (word[]) PIECES#0 (byte[]) PIECES_CHARS (byte[]) PIECES_CHARS#0 +(byte[]) PIECES_START_X +(byte[]) PIECES_START_X#0 +(byte[]) PIECES_START_Y +(byte[]) PIECES_START_Y#0 (byte[$17]) PIECE_I (byte[$17]) PIECE_I#0 (byte[$13]) PIECE_J @@ -5530,12 +5536,14 @@ Constant (const byte[$9]) PIECE_Z#0 = { 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0 Constant (const byte/signed byte/word/signed word/dword/signed dword) $10 = 4*4 Constant (const byte[$11]) PIECE_L#0 = { 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0 } Constant (const byte/signed byte/word/signed word/dword/signed dword) $12 = 4*4 -Constant (const byte[$13]) PIECE_J#0 = { 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0 } +Constant (const byte[$13]) PIECE_J#0 = { 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } Constant (const byte/signed byte/word/signed word/dword/signed dword) $14 = 4*4 Constant (const byte[$15]) PIECE_O#0 = { 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } Constant (const byte/signed byte/word/signed word/dword/signed dword) $16 = 4*4 Constant (const byte[$17]) PIECE_I#0 = { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0 } Constant (const byte[]) PIECES_CHARS#0 = { 87, 88, 152, 88, 87, 87, 152 } +Constant (const byte[]) PIECES_START_X#0 = { 4, 4, 4, 4, 4, 3, 4 } +Constant (const byte[]) PIECES_START_Y#0 = { 2, 1, 1, 1, 2, 0, 1 } Constant (const byte*) current_piece#0 = ((byte*))0 Constant (const byte) current_orientation#0 = 0 Constant (const byte) current_movedown_slow#0 = 50 @@ -5565,8 +5573,6 @@ Constant (const byte) play_lock_current::l#0 = 0 Constant (const byte) play_lock_current::c#0 = 0 Constant (const byte) play_spawn_current::piece_idx#0 = 7 Constant (const byte) current_orientation#20 = 0 -Constant (const byte) current_xpos#24 = 3 -Constant (const byte) current_ypos#19 = 0 Constant (const byte) play_remove_lines::y#0 = 0 Constant (const byte) play_remove_lines::full#0 = 1 Constant (const byte) play_remove_lines::x#0 = 0 @@ -5857,8 +5863,6 @@ Inlining constant with var siblings (const byte) keyboard_modifiers#1 Inlining constant with var siblings (const byte) current_movedown_counter#0 Inlining constant with var siblings (const byte) current_movedown_counter#2 Inlining constant with var siblings (const byte) current_orientation#20 -Inlining constant with var siblings (const byte) current_xpos#24 -Inlining constant with var siblings (const byte) current_ypos#19 Inlining constant with var siblings (const byte) keyboard_modifiers#2 Inlining constant with different constant siblings (const byte) toSpritePtr1_return#1 Constant inlined play_remove_lines::x#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 @@ -5991,8 +5995,6 @@ Constant inlined render_playfield::$3 = (const byte) PLAYFIELD_COLS#0-(byte/sign Constant inlined play_remove_lines::$5 = (const byte) PLAYFIELD_COLS#0-(byte/signed byte/word/signed word/dword/signed dword) 1 Constant inlined irq::toSpritePtr2_sprite#0 = (const byte*) PLAYFIELD_SPRITES#0 Constant inlined play_init::idx#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined current_xpos#24 = (byte/signed byte/word/signed word/dword/signed dword) 3 -Constant inlined current_ypos#19 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined render_init::vicSelectGfxBank1_toDd001_$0#0 = ((word))(const byte*) PLAYFIELD_SCREEN#0 Constant inlined render_init::c#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined main::render#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 @@ -6090,192 +6092,198 @@ Adding NOP phi() at start of fill Adding NOP phi() at start of irq::toSpritePtr2 CALL GRAPH Calls in [] to main:10 -Calls in [main] to sid_rnd_init:13 render_init:15 sprites_init:17 sprites_irq_init:19 play_init:21 play_spawn_current:23 render_playfield:25 render_current:28 keyboard_event_scan:36 keyboard_event_get:38 play_move_down:42 play_move_leftright:47 play_move_rotate:52 render_playfield:58 render_current:63 -Calls in [play_move_rotate] to play_collision:143 -Calls in [play_move_leftright] to play_collision:195 play_collision:212 -Calls in [play_move_down] to keyboard_event_pressed:223 play_collision:243 play_lock_current:248 play_remove_lines:250 play_spawn_current:252 -Calls in [play_spawn_current] to sid_rnd:290 -Calls in [keyboard_event_scan] to keyboard_matrix_read:374 keyboard_event_pressed:385 keyboard_event_pressed:391 keyboard_event_pressed:398 keyboard_event_pressed:405 -Calls in [render_init] to fill:498 render_screen_original:500 +Calls in [main] to sid_rnd_init:13 render_init:15 sprites_init:17 sprites_irq_init:19 play_init:21 play_spawn_current:23 render_playfield:25 render_current:30 keyboard_event_scan:40 keyboard_event_get:42 play_move_down:46 play_move_leftright:51 play_move_rotate:56 render_playfield:62 render_current:67 +Calls in [play_move_rotate] to play_collision:147 +Calls in [play_move_leftright] to play_collision:199 play_collision:216 +Calls in [play_move_down] to keyboard_event_pressed:227 play_collision:247 play_lock_current:252 play_remove_lines:254 play_spawn_current:256 +Calls in [play_spawn_current] to sid_rnd:298 +Calls in [keyboard_event_scan] to keyboard_matrix_read:382 keyboard_event_pressed:393 keyboard_event_pressed:399 keyboard_event_pressed:406 keyboard_event_pressed:413 +Calls in [render_init] to fill:506 render_screen_original:508 Created 113 initial phi equivalence classes -Not coalescing [26] current_piece_gfx#95 ← current_piece_gfx#17 -Not coalescing [27] current_piece_char#83 ← current_piece_char#13 -Coalesced [30] current_piece_gfx#94 ← current_piece_gfx#17 -Coalesced [31] current_piece_char#82 ← current_piece_char#13 -Not coalescing [59] current_ypos#78 ← current_ypos#14 -Not coalescing [60] current_xpos#104 ← current_xpos#20 -Not coalescing [61] current_piece_gfx#96 ← current_piece_gfx#15 -Not coalescing [62] current_piece_char#84 ← current_piece_char#11 -Coalesced [65] current_piece#71 ← current_piece#10 -Coalesced [66] current_orientation#75 ← current_orientation#19 -Coalesced [67] current_piece_gfx#93 ← current_piece_gfx#15 -Coalesced [68] current_xpos#103 ← current_xpos#20 -Coalesced [69] current_ypos#77 ← current_ypos#14 -Coalesced [70] current_piece_char#81 ← current_piece_char#11 -Coalesced [71] keyboard_events_size#79 ← keyboard_events_size#16 -Coalesced [72] current_movedown_counter#48 ← current_movedown_counter#10 -Coalesced [75] render_current::ypos2#11 ← render_current::ypos2#0 -Coalesced [79] render_current::i#14 ← render_current::i#1 -Coalesced [85] render_current::ypos2#12 ← render_current::ypos2#1 -Coalesced [86] render_current::i#12 ← render_current::i#8 -Coalesced [87] render_current::l#11 ← render_current::l#1 -Coalesced [91] render_current::i#15 ← render_current::i#3 -Coalesced [92] render_current::xpos#7 ← render_current::xpos#0 -Coalesced [102] render_current::i#13 ← render_current::i#10 -Coalesced (already) [103] render_current::i#16 ← render_current::i#10 -Coalesced [104] render_current::xpos#8 ← render_current::xpos#1 -Coalesced [105] render_current::c#7 ← render_current::c#1 -Coalesced [110] render_playfield::i#6 ← render_playfield::i#3 -Coalesced [111] render_playfield::screen_line#3 ← render_playfield::screen_line#0 -Coalesced [121] render_playfield::l#5 ← render_playfield::l#1 -Coalesced [122] render_playfield::i#5 ← render_playfield::i#1 -Coalesced (already) [123] render_playfield::i#7 ← render_playfield::i#1 -Coalesced [124] render_playfield::screen_line#4 ← render_playfield::screen_line#1 -Coalesced [125] render_playfield::c#3 ← render_playfield::c#1 -Coalesced [128] current_orientation#78 ← current_orientation#14 -Coalesced [129] current_piece_gfx#99 ← current_piece_gfx#14 -Coalesced [134] play_move_rotate::orientation#7 ← play_move_rotate::orientation#2 -Not coalescing [139] current_piece#76 ← current_piece#10 -Coalesced [140] play_collision::orientation#8 ← play_collision::orientation#3 -Coalesced [141] play_collision::ypos#8 ← play_collision::ypos#3 -Coalesced [142] play_collision::xpos#17 ← play_collision::xpos#3 -Coalesced [149] current_orientation#76 ← current_orientation#4 -Coalesced [150] current_piece_gfx#97 ← current_piece_gfx#4 -Coalesced (already) [151] current_orientation#77 ← current_orientation#14 -Coalesced (already) [152] current_piece_gfx#98 ← current_piece_gfx#14 -Coalesced [155] play_move_rotate::orientation#6 ← play_move_rotate::orientation#1 -Coalesced [159] play_collision::ypos2#11 ← play_collision::ypos2#0 -Coalesced [162] play_collision::i#12 ← play_collision::i#3 -Not coalescing [163] play_collision::col#9 ← play_collision::xpos#5 -Coalesced [180] play_collision::ypos2#12 ← play_collision::ypos2#1 -Not coalescing [181] play_collision::i#11 ← play_collision::i#1 -Coalesced [182] play_collision::l#11 ← play_collision::l#1 -Not coalescing [183] play_collision::i#13 ← play_collision::i#1 -Coalesced [184] play_collision::col#10 ← play_collision::col#1 -Coalesced [185] play_collision::c#9 ← play_collision::c#1 -Not coalescing [191] current_piece#75 ← current_piece#10 -Coalesced [192] play_collision::orientation#7 ← play_collision::orientation#2 -Coalesced [193] play_collision::ypos#7 ← play_collision::ypos#2 -Coalesced [194] play_collision::xpos#16 ← play_collision::xpos#2 -Coalesced [200] current_xpos#107 ← current_xpos#3 -Coalesced [203] current_xpos#106 ← current_xpos#16 -Coalesced (already) [204] current_xpos#109 ← current_xpos#16 -Not coalescing [208] current_piece#74 ← current_piece#10 -Coalesced [209] play_collision::orientation#6 ← play_collision::orientation#1 -Coalesced [210] play_collision::ypos#6 ← play_collision::ypos#1 -Coalesced [211] play_collision::xpos#15 ← play_collision::xpos#1 -Coalesced [217] current_xpos#105 ← current_xpos#5 -Coalesced (already) [218] current_xpos#108 ← current_xpos#16 -Coalesced [229] play_move_down::movedown#13 ← play_move_down::movedown#2 -Coalesced [233] play_move_down::movedown#16 ← play_move_down::movedown#3 -Not coalescing [239] current_piece#73 ← current_piece#16 -Coalesced [240] play_collision::orientation#5 ← play_collision::orientation#0 -Coalesced [241] play_collision::ypos#5 ← play_collision::ypos#0 -Coalesced [242] play_collision::xpos#14 ← play_collision::xpos#0 -Coalesced [254] current_piece_gfx#100 ← current_piece_gfx#17 -Coalesced [255] current_piece_char#85 ← current_piece_char#13 -Coalesced [257] current_ypos#81 ← current_ypos#30 -Coalesced [258] current_piece#80 ← current_piece#20 -Coalesced [259] current_orientation#81 ← current_orientation#29 -Coalesced (already) [260] current_piece_gfx#103 ← current_piece_gfx#27 -Coalesced [261] current_xpos#112 ← current_xpos#34 -Coalesced (already) [262] current_piece_char#88 ← current_piece_char#21 -Coalesced [266] current_ypos#79 ← current_ypos#1 -Coalesced (already) [267] current_piece#78 ← current_piece#16 -Coalesced (already) [268] current_orientation#79 ← current_orientation#10 -Coalesced (already) [269] current_piece_gfx#101 ← current_piece_gfx#10 -Coalesced (already) [270] current_xpos#110 ← current_xpos#11 -Coalesced (already) [271] current_piece_char#86 ← current_piece_char#16 -Coalesced [272] current_movedown_counter#49 ← current_movedown_counter#1 -Coalesced (already) [273] current_ypos#80 ← current_ypos#22 -Coalesced (already) [274] current_piece#79 ← current_piece#16 -Coalesced (already) [275] current_orientation#80 ← current_orientation#10 -Coalesced (already) [276] current_piece_gfx#102 ← current_piece_gfx#10 -Coalesced (already) [277] current_xpos#111 ← current_xpos#11 -Coalesced (already) [278] current_piece_char#87 ← current_piece_char#16 -Coalesced [279] play_move_down::movedown#17 ← play_move_down::movedown#7 -Coalesced [280] play_move_down::movedown#15 ← play_move_down::movedown#10 -Coalesced (already) [281] play_move_down::movedown#14 ← play_move_down::movedown#10 -Coalesced [294] play_spawn_current::piece_idx#4 ← play_spawn_current::piece_idx#1 -Coalesced [299] play_remove_lines::r#10 ← play_remove_lines::r#3 -Coalesced [300] play_remove_lines::w#14 ← play_remove_lines::w#12 -Coalesced [313] play_remove_lines::w#16 ← play_remove_lines::w#2 -Coalesced [317] play_remove_lines::w#18 ← play_remove_lines::w#11 -Coalesced [323] play_remove_lines::w#19 ← play_remove_lines::w#3 -Coalesced [324] play_remove_lines::r#9 ← play_remove_lines::r#1 -Coalesced [325] play_remove_lines::w#13 ← play_remove_lines::w#11 -Coalesced [326] play_remove_lines::y#9 ← play_remove_lines::y#1 -Coalesced [327] play_remove_lines::w#17 ← play_remove_lines::w#1 -Coalesced (already) [328] play_remove_lines::r#11 ← play_remove_lines::r#1 -Coalesced (already) [329] play_remove_lines::w#15 ← play_remove_lines::w#1 -Coalesced [330] play_remove_lines::x#5 ← play_remove_lines::x#1 -Coalesced [331] play_remove_lines::full#5 ← play_remove_lines::full#2 -Coalesced (already) [332] play_remove_lines::full#6 ← play_remove_lines::full#4 -Coalesced [334] play_lock_current::ypos2#7 ← play_lock_current::ypos2#0 -Coalesced [338] play_lock_current::i#8 ← play_lock_current::i#3 -Coalesced [339] play_lock_current::col#5 ← play_lock_current::col#0 -Coalesced [351] play_lock_current::ypos2#8 ← play_lock_current::ypos2#1 -Not coalescing [352] play_lock_current::i#7 ← play_lock_current::i#1 -Coalesced [353] play_lock_current::l#7 ← play_lock_current::l#1 -Not coalescing [354] play_lock_current::i#9 ← play_lock_current::i#1 -Coalesced [355] play_lock_current::col#6 ← play_lock_current::col#1 -Coalesced [356] play_lock_current::c#5 ← play_lock_current::c#1 -Coalesced [366] keyboard_event_get::return#6 ← keyboard_event_get::return#1 -Coalesced [367] keyboard_events_size#81 ← keyboard_events_size#4 -Coalesced [370] keyboard_events_size#80 ← keyboard_events_size#13 -Coalesced [371] keyboard_events_size#82 ← keyboard_events_size#19 -Coalesced [379] keyboard_event_scan::keycode#17 ← keyboard_event_scan::keycode#1 -Coalesced (already) [380] keyboard_events_size#84 ← keyboard_events_size#29 -Coalesced [396] keyboard_modifiers#60 ← keyboard_modifiers#3 -Coalesced [403] keyboard_modifiers#62 ← keyboard_modifiers#4 -Coalesced [411] keyboard_modifiers#63 ← keyboard_modifiers#12 -Coalesced [412] keyboard_modifiers#61 ← keyboard_modifiers#11 -Coalesced [413] keyboard_event_scan::row#15 ← keyboard_event_scan::row#1 -Coalesced [414] keyboard_event_scan::keycode#16 ← keyboard_event_scan::keycode#14 -Coalesced (already) [415] keyboard_events_size#83 ← keyboard_events_size#13 -Coalesced [416] keyboard_event_scan::keycode#19 ← keyboard_event_scan::keycode#11 -Coalesced [417] keyboard_events_size#86 ← keyboard_events_size#29 -Coalesced [427] keyboard_events_size#88 ← keyboard_events_size#2 -Coalesced [433] keyboard_event_scan::keycode#18 ← keyboard_event_scan::keycode#15 -Coalesced [434] keyboard_events_size#85 ← keyboard_events_size#30 -Coalesced [435] keyboard_event_scan::col#9 ← keyboard_event_scan::col#1 -Coalesced (already) [436] keyboard_event_scan::keycode#20 ← keyboard_event_scan::keycode#15 -Coalesced (already) [437] keyboard_events_size#87 ← keyboard_events_size#30 -Coalesced [441] keyboard_events_size#91 ← keyboard_events_size#1 -Coalesced (already) [442] keyboard_events_size#90 ← keyboard_events_size#10 -Coalesced (already) [443] keyboard_events_size#89 ← keyboard_events_size#10 -Coalesced [458] play_init::j#3 ← play_init::j#1 -Coalesced [459] play_init::pli#3 ← play_init::pli#1 -Coalesced [460] play_init::idx#3 ← play_init::idx#1 -Coalesced [485] sprites_init::s#3 ← sprites_init::s#1 -Coalesced [486] sprites_init::xpos#3 ← sprites_init::xpos#1 -Coalesced [517] render_init::line#5 ← render_init::line#1 -Coalesced [518] render_init::l#5 ← render_init::l#1 -Coalesced [519] render_init::c#3 ← render_init::c#1 -Coalesced [520] render_init::i#3 ← render_init::i#1 -Coalesced [521] render_init::li#3 ← render_init::li#1 -Coalesced [524] render_screen_original::screen#11 ← render_screen_original::screen#7 -Coalesced [530] render_screen_original::orig#8 ← render_screen_original::orig#4 -Coalesced [531] render_screen_original::screen#13 ← render_screen_original::screen#1 -Coalesced [532] render_screen_original::x#8 ← render_screen_original::x#1 -Coalesced [540] render_screen_original::screen#15 ← render_screen_original::screen#2 -Coalesced [541] render_screen_original::x#10 ← render_screen_original::x#2 -Coalesced [550] render_screen_original::screen#10 ← render_screen_original::screen#3 -Coalesced [551] render_screen_original::orig#7 ← render_screen_original::orig#1 -Coalesced [552] render_screen_original::y#7 ← render_screen_original::y#1 -Coalesced [553] render_screen_original::screen#16 ← render_screen_original::screen#3 -Coalesced [554] render_screen_original::x#11 ← render_screen_original::x#3 -Coalesced (already) [555] render_screen_original::orig#9 ← render_screen_original::orig#1 -Coalesced [556] render_screen_original::screen#14 ← render_screen_original::screen#2 -Coalesced [557] render_screen_original::x#9 ← render_screen_original::x#2 -Coalesced (already) [558] render_screen_original::screen#12 ← render_screen_original::screen#1 -Coalesced [559] render_screen_original::x#7 ← render_screen_original::x#1 -Coalesced [566] fill::addr#3 ← fill::addr#1 -Coalesced [589] irq_raster_next#21 ← irq_raster_next#2 -Coalesced [595] irq::raster_next#5 ← irq::raster_next#1 -Coalesced [601] irq::raster_next#4 ← irq::raster_next#0 -Coalesced [607] irq_raster_next#22 ← irq_raster_next#1 +Not coalescing [26] current_ypos#79 ← current_ypos#19 +Not coalescing [27] current_xpos#105 ← current_xpos#24 +Not coalescing [28] current_piece_gfx#95 ← current_piece_gfx#17 +Not coalescing [29] current_piece_char#83 ← current_piece_char#13 +Coalesced [32] current_piece_gfx#94 ← current_piece_gfx#17 +Coalesced [33] current_xpos#104 ← current_xpos#24 +Coalesced [34] current_ypos#78 ← current_ypos#19 +Coalesced [35] current_piece_char#82 ← current_piece_char#13 +Not coalescing [63] current_ypos#80 ← current_ypos#14 +Not coalescing [64] current_xpos#106 ← current_xpos#20 +Not coalescing [65] current_piece_gfx#96 ← current_piece_gfx#15 +Not coalescing [66] current_piece_char#84 ← current_piece_char#11 +Coalesced [69] current_piece#71 ← current_piece#10 +Coalesced [70] current_orientation#75 ← current_orientation#19 +Coalesced [71] current_piece_gfx#93 ← current_piece_gfx#15 +Coalesced [72] current_xpos#103 ← current_xpos#20 +Coalesced [73] current_ypos#77 ← current_ypos#14 +Coalesced [74] current_piece_char#81 ← current_piece_char#11 +Coalesced [75] keyboard_events_size#79 ← keyboard_events_size#16 +Coalesced [76] current_movedown_counter#48 ← current_movedown_counter#10 +Coalesced [79] render_current::ypos2#11 ← render_current::ypos2#0 +Coalesced [83] render_current::i#14 ← render_current::i#1 +Coalesced [89] render_current::ypos2#12 ← render_current::ypos2#1 +Coalesced [90] render_current::i#12 ← render_current::i#8 +Coalesced [91] render_current::l#11 ← render_current::l#1 +Coalesced [95] render_current::i#15 ← render_current::i#3 +Coalesced [96] render_current::xpos#7 ← render_current::xpos#0 +Coalesced [106] render_current::i#13 ← render_current::i#10 +Coalesced (already) [107] render_current::i#16 ← render_current::i#10 +Coalesced [108] render_current::xpos#8 ← render_current::xpos#1 +Coalesced [109] render_current::c#7 ← render_current::c#1 +Coalesced [114] render_playfield::i#6 ← render_playfield::i#3 +Coalesced [115] render_playfield::screen_line#3 ← render_playfield::screen_line#0 +Coalesced [125] render_playfield::l#5 ← render_playfield::l#1 +Coalesced [126] render_playfield::i#5 ← render_playfield::i#1 +Coalesced (already) [127] render_playfield::i#7 ← render_playfield::i#1 +Coalesced [128] render_playfield::screen_line#4 ← render_playfield::screen_line#1 +Coalesced [129] render_playfield::c#3 ← render_playfield::c#1 +Coalesced [132] current_orientation#78 ← current_orientation#14 +Coalesced [133] current_piece_gfx#99 ← current_piece_gfx#14 +Coalesced [138] play_move_rotate::orientation#7 ← play_move_rotate::orientation#2 +Not coalescing [143] current_piece#76 ← current_piece#10 +Coalesced [144] play_collision::orientation#8 ← play_collision::orientation#3 +Coalesced [145] play_collision::ypos#8 ← play_collision::ypos#3 +Coalesced [146] play_collision::xpos#17 ← play_collision::xpos#3 +Coalesced [153] current_orientation#76 ← current_orientation#4 +Coalesced [154] current_piece_gfx#97 ← current_piece_gfx#4 +Coalesced (already) [155] current_orientation#77 ← current_orientation#14 +Coalesced (already) [156] current_piece_gfx#98 ← current_piece_gfx#14 +Coalesced [159] play_move_rotate::orientation#6 ← play_move_rotate::orientation#1 +Coalesced [163] play_collision::ypos2#11 ← play_collision::ypos2#0 +Coalesced [166] play_collision::i#12 ← play_collision::i#3 +Not coalescing [167] play_collision::col#9 ← play_collision::xpos#5 +Coalesced [184] play_collision::ypos2#12 ← play_collision::ypos2#1 +Not coalescing [185] play_collision::i#11 ← play_collision::i#1 +Coalesced [186] play_collision::l#11 ← play_collision::l#1 +Not coalescing [187] play_collision::i#13 ← play_collision::i#1 +Coalesced [188] play_collision::col#10 ← play_collision::col#1 +Coalesced [189] play_collision::c#9 ← play_collision::c#1 +Not coalescing [195] current_piece#75 ← current_piece#10 +Coalesced [196] play_collision::orientation#7 ← play_collision::orientation#2 +Coalesced [197] play_collision::ypos#7 ← play_collision::ypos#2 +Coalesced [198] play_collision::xpos#16 ← play_collision::xpos#2 +Coalesced [204] current_xpos#109 ← current_xpos#3 +Coalesced [207] current_xpos#108 ← current_xpos#16 +Coalesced (already) [208] current_xpos#111 ← current_xpos#16 +Not coalescing [212] current_piece#74 ← current_piece#10 +Coalesced [213] play_collision::orientation#6 ← play_collision::orientation#1 +Coalesced [214] play_collision::ypos#6 ← play_collision::ypos#1 +Coalesced [215] play_collision::xpos#15 ← play_collision::xpos#1 +Coalesced [221] current_xpos#107 ← current_xpos#5 +Coalesced (already) [222] current_xpos#110 ← current_xpos#16 +Coalesced [233] play_move_down::movedown#13 ← play_move_down::movedown#2 +Coalesced [237] play_move_down::movedown#16 ← play_move_down::movedown#3 +Not coalescing [243] current_piece#73 ← current_piece#16 +Coalesced [244] play_collision::orientation#5 ← play_collision::orientation#0 +Coalesced [245] play_collision::ypos#5 ← play_collision::ypos#0 +Coalesced [246] play_collision::xpos#14 ← play_collision::xpos#0 +Coalesced [257] current_ypos#81 ← current_ypos#19 +Coalesced [259] current_piece_gfx#100 ← current_piece_gfx#17 +Coalesced [260] current_xpos#112 ← current_xpos#24 +Coalesced [261] current_piece_char#85 ← current_piece_char#13 +Coalesced (already) [263] current_ypos#84 ← current_ypos#30 +Coalesced [264] current_piece#80 ← current_piece#20 +Coalesced [265] current_orientation#81 ← current_orientation#29 +Coalesced (already) [266] current_piece_gfx#103 ← current_piece_gfx#27 +Coalesced (already) [267] current_xpos#115 ← current_xpos#34 +Coalesced (already) [268] current_piece_char#88 ← current_piece_char#21 +Coalesced [272] current_ypos#82 ← current_ypos#1 +Coalesced (already) [273] current_piece#78 ← current_piece#16 +Coalesced (already) [274] current_orientation#79 ← current_orientation#10 +Coalesced (already) [275] current_piece_gfx#101 ← current_piece_gfx#10 +Coalesced (already) [276] current_xpos#113 ← current_xpos#11 +Coalesced (already) [277] current_piece_char#86 ← current_piece_char#16 +Coalesced [278] current_movedown_counter#49 ← current_movedown_counter#1 +Coalesced (already) [279] current_ypos#83 ← current_ypos#22 +Coalesced (already) [280] current_piece#79 ← current_piece#16 +Coalesced (already) [281] current_orientation#80 ← current_orientation#10 +Coalesced (already) [282] current_piece_gfx#102 ← current_piece_gfx#10 +Coalesced (already) [283] current_xpos#114 ← current_xpos#11 +Coalesced (already) [284] current_piece_char#87 ← current_piece_char#16 +Coalesced [285] play_move_down::movedown#17 ← play_move_down::movedown#7 +Coalesced [286] play_move_down::movedown#15 ← play_move_down::movedown#10 +Coalesced (already) [287] play_move_down::movedown#14 ← play_move_down::movedown#10 +Coalesced [302] play_spawn_current::piece_idx#4 ← play_spawn_current::piece_idx#1 +Coalesced [307] play_remove_lines::r#10 ← play_remove_lines::r#3 +Coalesced [308] play_remove_lines::w#14 ← play_remove_lines::w#12 +Coalesced [321] play_remove_lines::w#16 ← play_remove_lines::w#2 +Coalesced [325] play_remove_lines::w#18 ← play_remove_lines::w#11 +Coalesced [331] play_remove_lines::w#19 ← play_remove_lines::w#3 +Coalesced [332] play_remove_lines::r#9 ← play_remove_lines::r#1 +Coalesced [333] play_remove_lines::w#13 ← play_remove_lines::w#11 +Coalesced [334] play_remove_lines::y#9 ← play_remove_lines::y#1 +Coalesced [335] play_remove_lines::w#17 ← play_remove_lines::w#1 +Coalesced (already) [336] play_remove_lines::r#11 ← play_remove_lines::r#1 +Coalesced (already) [337] play_remove_lines::w#15 ← play_remove_lines::w#1 +Coalesced [338] play_remove_lines::x#5 ← play_remove_lines::x#1 +Coalesced [339] play_remove_lines::full#5 ← play_remove_lines::full#2 +Coalesced (already) [340] play_remove_lines::full#6 ← play_remove_lines::full#4 +Coalesced [342] play_lock_current::ypos2#7 ← play_lock_current::ypos2#0 +Coalesced [346] play_lock_current::i#8 ← play_lock_current::i#3 +Coalesced [347] play_lock_current::col#5 ← play_lock_current::col#0 +Coalesced [359] play_lock_current::ypos2#8 ← play_lock_current::ypos2#1 +Not coalescing [360] play_lock_current::i#7 ← play_lock_current::i#1 +Coalesced [361] play_lock_current::l#7 ← play_lock_current::l#1 +Not coalescing [362] play_lock_current::i#9 ← play_lock_current::i#1 +Coalesced [363] play_lock_current::col#6 ← play_lock_current::col#1 +Coalesced [364] play_lock_current::c#5 ← play_lock_current::c#1 +Coalesced [374] keyboard_event_get::return#6 ← keyboard_event_get::return#1 +Coalesced [375] keyboard_events_size#81 ← keyboard_events_size#4 +Coalesced [378] keyboard_events_size#80 ← keyboard_events_size#13 +Coalesced [379] keyboard_events_size#82 ← keyboard_events_size#19 +Coalesced [387] keyboard_event_scan::keycode#17 ← keyboard_event_scan::keycode#1 +Coalesced (already) [388] keyboard_events_size#84 ← keyboard_events_size#29 +Coalesced [404] keyboard_modifiers#60 ← keyboard_modifiers#3 +Coalesced [411] keyboard_modifiers#62 ← keyboard_modifiers#4 +Coalesced [419] keyboard_modifiers#63 ← keyboard_modifiers#12 +Coalesced [420] keyboard_modifiers#61 ← keyboard_modifiers#11 +Coalesced [421] keyboard_event_scan::row#15 ← keyboard_event_scan::row#1 +Coalesced [422] keyboard_event_scan::keycode#16 ← keyboard_event_scan::keycode#14 +Coalesced (already) [423] keyboard_events_size#83 ← keyboard_events_size#13 +Coalesced [424] keyboard_event_scan::keycode#19 ← keyboard_event_scan::keycode#11 +Coalesced [425] keyboard_events_size#86 ← keyboard_events_size#29 +Coalesced [435] keyboard_events_size#88 ← keyboard_events_size#2 +Coalesced [441] keyboard_event_scan::keycode#18 ← keyboard_event_scan::keycode#15 +Coalesced [442] keyboard_events_size#85 ← keyboard_events_size#30 +Coalesced [443] keyboard_event_scan::col#9 ← keyboard_event_scan::col#1 +Coalesced (already) [444] keyboard_event_scan::keycode#20 ← keyboard_event_scan::keycode#15 +Coalesced (already) [445] keyboard_events_size#87 ← keyboard_events_size#30 +Coalesced [449] keyboard_events_size#91 ← keyboard_events_size#1 +Coalesced (already) [450] keyboard_events_size#90 ← keyboard_events_size#10 +Coalesced (already) [451] keyboard_events_size#89 ← keyboard_events_size#10 +Coalesced [466] play_init::j#3 ← play_init::j#1 +Coalesced [467] play_init::pli#3 ← play_init::pli#1 +Coalesced [468] play_init::idx#3 ← play_init::idx#1 +Coalesced [493] sprites_init::s#3 ← sprites_init::s#1 +Coalesced [494] sprites_init::xpos#3 ← sprites_init::xpos#1 +Coalesced [525] render_init::line#5 ← render_init::line#1 +Coalesced [526] render_init::l#5 ← render_init::l#1 +Coalesced [527] render_init::c#3 ← render_init::c#1 +Coalesced [528] render_init::i#3 ← render_init::i#1 +Coalesced [529] render_init::li#3 ← render_init::li#1 +Coalesced [532] render_screen_original::screen#11 ← render_screen_original::screen#7 +Coalesced [538] render_screen_original::orig#8 ← render_screen_original::orig#4 +Coalesced [539] render_screen_original::screen#13 ← render_screen_original::screen#1 +Coalesced [540] render_screen_original::x#8 ← render_screen_original::x#1 +Coalesced [548] render_screen_original::screen#15 ← render_screen_original::screen#2 +Coalesced [549] render_screen_original::x#10 ← render_screen_original::x#2 +Coalesced [558] render_screen_original::screen#10 ← render_screen_original::screen#3 +Coalesced [559] render_screen_original::orig#7 ← render_screen_original::orig#1 +Coalesced [560] render_screen_original::y#7 ← render_screen_original::y#1 +Coalesced [561] render_screen_original::screen#16 ← render_screen_original::screen#3 +Coalesced [562] render_screen_original::x#11 ← render_screen_original::x#3 +Coalesced (already) [563] render_screen_original::orig#9 ← render_screen_original::orig#1 +Coalesced [564] render_screen_original::screen#14 ← render_screen_original::screen#2 +Coalesced [565] render_screen_original::x#9 ← render_screen_original::x#2 +Coalesced (already) [566] render_screen_original::screen#12 ← render_screen_original::screen#1 +Coalesced [567] render_screen_original::x#7 ← render_screen_original::x#1 +Coalesced [574] fill::addr#3 ← fill::addr#1 +Coalesced [597] irq_raster_next#21 ← irq_raster_next#2 +Coalesced [603] irq::raster_next#5 ← irq::raster_next#1 +Coalesced [609] irq::raster_next#4 ← irq::raster_next#0 +Coalesced [615] irq_raster_next#22 ← irq_raster_next#1 Coalesced down to 72 phi equivalence classes Culled Empty Block (label) render_current::@14 Culled Empty Block (label) render_current::@15 @@ -6421,848 +6429,852 @@ main::@26: scope:[main] from main::@25 [25] call render_playfield to:main::@27 main::@27: scope:[main] from main::@26 - [26] (byte*~) current_piece_gfx#95 ← (byte*) current_piece_gfx#17 - [27] (byte~) current_piece_char#83 ← (byte) current_piece_char#13 - [28] call render_current - [29] (byte*~) current_piece#72 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) + [26] (byte~) current_ypos#79 ← (byte) current_ypos#19 + [27] (byte~) current_xpos#105 ← (byte) current_xpos#24 + [28] (byte*~) current_piece_gfx#95 ← (byte*) current_piece_gfx#17 + [29] (byte~) current_piece_char#83 ← (byte) current_piece_char#13 + [30] call render_current + [31] (byte*~) current_piece#72 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) to:main::@1 main::@1: scope:[main] from main::@10 main::@27 - [30] (byte) current_movedown_counter#12 ← phi( main::@10/(byte) current_movedown_counter#10 main::@27/(byte/signed byte/word/signed word/dword/signed dword) 0 ) - [30] (byte) keyboard_events_size#19 ← phi( main::@10/(byte) keyboard_events_size#16 main::@27/(byte/signed byte/word/signed word/dword/signed dword) 0 ) - [30] (byte) current_piece_char#16 ← phi( main::@10/(byte) current_piece_char#11 main::@27/(byte) current_piece_char#13 ) - [30] (byte) current_ypos#22 ← phi( main::@10/(byte) current_ypos#14 main::@27/(byte/signed byte/word/signed word/dword/signed dword) 0 ) - [30] (byte) current_xpos#11 ← phi( main::@10/(byte) current_xpos#20 main::@27/(byte/signed byte/word/signed word/dword/signed dword) 3 ) - [30] (byte*) current_piece_gfx#10 ← phi( main::@10/(byte*) current_piece_gfx#15 main::@27/(byte*) current_piece_gfx#17 ) - [30] (byte) current_orientation#10 ← phi( main::@10/(byte) current_orientation#19 main::@27/(byte/signed byte/word/signed word/dword/signed dword) 0 ) - [30] (byte*) current_piece#16 ← phi( main::@10/(byte*) current_piece#10 main::@27/(byte*~) current_piece#72 ) + [32] (byte) current_movedown_counter#12 ← phi( main::@10/(byte) current_movedown_counter#10 main::@27/(byte/signed byte/word/signed word/dword/signed dword) 0 ) + [32] (byte) keyboard_events_size#19 ← phi( main::@10/(byte) keyboard_events_size#16 main::@27/(byte/signed byte/word/signed word/dword/signed dword) 0 ) + [32] (byte) current_piece_char#16 ← phi( main::@10/(byte) current_piece_char#11 main::@27/(byte) current_piece_char#13 ) + [32] (byte) current_ypos#22 ← phi( main::@10/(byte) current_ypos#14 main::@27/(byte) current_ypos#19 ) + [32] (byte) current_xpos#11 ← phi( main::@10/(byte) current_xpos#20 main::@27/(byte) current_xpos#24 ) + [32] (byte*) current_piece_gfx#10 ← phi( main::@10/(byte*) current_piece_gfx#15 main::@27/(byte*) current_piece_gfx#17 ) + [32] (byte) current_orientation#10 ← phi( main::@10/(byte) current_orientation#19 main::@27/(byte/signed byte/word/signed word/dword/signed dword) 0 ) + [32] (byte*) current_piece#16 ← phi( main::@10/(byte*) current_piece#10 main::@27/(byte*~) current_piece#72 ) to:main::@4 main::@4: scope:[main] from main::@1 main::@4 - [31] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@4 + [33] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@4 to:main::@7 main::@7: scope:[main] from main::@4 main::@7 - [32] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 254) goto main::@7 + [34] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 254) goto main::@7 to:main::@9 main::@9: scope:[main] from main::@7 - [33] *((const byte*) BORDERCOL#0) ← ++ *((const byte*) BORDERCOL#0) - [34] call keyboard_event_scan + [35] *((const byte*) BORDERCOL#0) ← ++ *((const byte*) BORDERCOL#0) + [36] call keyboard_event_scan to:main::@29 main::@29: scope:[main] from main::@9 - [35] phi() - [36] call keyboard_event_get - [37] (byte) keyboard_event_get::return#3 ← (byte) keyboard_event_get::return#2 + [37] phi() + [38] call keyboard_event_get + [39] (byte) keyboard_event_get::return#3 ← (byte) keyboard_event_get::return#2 to:main::@30 main::@30: scope:[main] from main::@29 - [38] (byte) main::key_event#0 ← (byte) keyboard_event_get::return#3 - [39] (byte) play_move_down::key_event#0 ← (byte) main::key_event#0 - [40] call play_move_down - [41] (byte) play_move_down::return#3 ← (byte) play_move_down::return#2 + [40] (byte) main::key_event#0 ← (byte) keyboard_event_get::return#3 + [41] (byte) play_move_down::key_event#0 ← (byte) main::key_event#0 + [42] call play_move_down + [43] (byte) play_move_down::return#3 ← (byte) play_move_down::return#2 to:main::@31 main::@31: scope:[main] from main::@30 - [42] (byte~) main::$12 ← (byte) play_move_down::return#3 - [43] (byte) main::render#1 ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte~) main::$12 - [44] (byte) play_move_leftright::key_event#0 ← (byte) main::key_event#0 - [45] call play_move_leftright - [46] (byte) play_move_leftright::return#4 ← (byte) play_move_leftright::return#1 + [44] (byte~) main::$12 ← (byte) play_move_down::return#3 + [45] (byte) main::render#1 ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte~) main::$12 + [46] (byte) play_move_leftright::key_event#0 ← (byte) main::key_event#0 + [47] call play_move_leftright + [48] (byte) play_move_leftright::return#4 ← (byte) play_move_leftright::return#1 to:main::@32 main::@32: scope:[main] from main::@31 - [47] (byte~) main::$13 ← (byte) play_move_leftright::return#4 - [48] (byte) main::render#2 ← (byte) main::render#1 + (byte~) main::$13 - [49] (byte) play_move_rotate::key_event#0 ← (byte) main::key_event#0 - [50] call play_move_rotate - [51] (byte) play_move_rotate::return#4 ← (byte) play_move_rotate::return#1 + [49] (byte~) main::$13 ← (byte) play_move_leftright::return#4 + [50] (byte) main::render#2 ← (byte) main::render#1 + (byte~) main::$13 + [51] (byte) play_move_rotate::key_event#0 ← (byte) main::key_event#0 + [52] call play_move_rotate + [53] (byte) play_move_rotate::return#4 ← (byte) play_move_rotate::return#1 to:main::@33 main::@33: scope:[main] from main::@32 - [52] (byte~) main::$14 ← (byte) play_move_rotate::return#4 - [53] (byte) main::render#3 ← (byte) main::render#2 + (byte~) main::$14 - [54] if((byte) main::render#3==(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@10 + [54] (byte~) main::$14 ← (byte) play_move_rotate::return#4 + [55] (byte) main::render#3 ← (byte) main::render#2 + (byte~) main::$14 + [56] if((byte) main::render#3==(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@10 to:main::@19 main::@19: scope:[main] from main::@33 - [55] phi() - [56] call render_playfield + [57] phi() + [58] call render_playfield to:main::@34 main::@34: scope:[main] from main::@19 - [57] (byte~) current_ypos#78 ← (byte) current_ypos#14 - [58] (byte~) current_xpos#104 ← (byte) current_xpos#20 - [59] (byte*~) current_piece_gfx#96 ← (byte*) current_piece_gfx#15 - [60] (byte~) current_piece_char#84 ← (byte) current_piece_char#11 - [61] call render_current + [59] (byte~) current_ypos#80 ← (byte) current_ypos#14 + [60] (byte~) current_xpos#106 ← (byte) current_xpos#20 + [61] (byte*~) current_piece_gfx#96 ← (byte*) current_piece_gfx#15 + [62] (byte~) current_piece_char#84 ← (byte) current_piece_char#11 + [63] call render_current to:main::@10 main::@10: scope:[main] from main::@33 main::@34 - [62] *((const byte*) BORDERCOL#0) ← -- *((const byte*) BORDERCOL#0) + [64] *((const byte*) BORDERCOL#0) ← -- *((const byte*) BORDERCOL#0) to:main::@1 render_current: scope:[render_current] from main::@27 main::@34 - [63] (byte) current_piece_char#63 ← phi( main::@27/(byte~) current_piece_char#83 main::@34/(byte~) current_piece_char#84 ) - [63] (byte*) current_piece_gfx#53 ← phi( main::@27/(byte*~) current_piece_gfx#95 main::@34/(byte*~) current_piece_gfx#96 ) - [63] (byte) current_xpos#48 ← phi( main::@27/(byte/signed byte/word/signed word/dword/signed dword) 3 main::@34/(byte~) current_xpos#104 ) - [63] (byte) current_ypos#10 ← phi( main::@27/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@34/(byte~) current_ypos#78 ) - [64] (byte) render_current::ypos2#0 ← (byte) current_ypos#10 << (byte/signed byte/word/signed word/dword/signed dword) 1 + [65] (byte) current_piece_char#63 ← phi( main::@27/(byte~) current_piece_char#83 main::@34/(byte~) current_piece_char#84 ) + [65] (byte*) current_piece_gfx#53 ← phi( main::@27/(byte*~) current_piece_gfx#95 main::@34/(byte*~) current_piece_gfx#96 ) + [65] (byte) current_xpos#48 ← phi( main::@27/(byte~) current_xpos#105 main::@34/(byte~) current_xpos#106 ) + [65] (byte) current_ypos#10 ← phi( main::@27/(byte~) current_ypos#79 main::@34/(byte~) current_ypos#80 ) + [66] (byte) render_current::ypos2#0 ← (byte) current_ypos#10 << (byte/signed byte/word/signed word/dword/signed dword) 1 to:render_current::@1 render_current::@1: scope:[render_current] from render_current render_current::@3 - [65] (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 ) - [65] (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 ) - [65] (byte) render_current::ypos2#2 ← phi( render_current/(byte) render_current::ypos2#0 render_current::@3/(byte) render_current::ypos2#1 ) - [66] if((byte) render_current::ypos2#2>(byte/signed byte/word/signed word/dword/signed dword) 2) goto render_current::@13 + [67] (byte) render_current::l#4 ← phi( render_current/(byte/signed byte/word/signed word/dword/signed dword) 0 render_current::@3/(byte) render_current::l#1 ) + [67] (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 ) + [67] (byte) render_current::ypos2#2 ← phi( render_current/(byte) render_current::ypos2#0 render_current::@3/(byte) render_current::ypos2#1 ) + [68] 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 - [67] (byte) render_current::i#1 ← (byte) render_current::i#3 + (byte/signed byte/word/signed word/dword/signed dword) 4 + [69] (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 - [68] (byte) render_current::i#8 ← phi( render_current::@5/(byte) render_current::i#10 render_current::@7/(byte) render_current::i#1 ) - [69] (byte) render_current::ypos2#1 ← (byte) render_current::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 - [70] (byte) render_current::l#1 ← ++ (byte) render_current::l#4 - [71] if((byte) render_current::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_current::@1 + [70] (byte) render_current::i#8 ← phi( render_current::@5/(byte) render_current::i#10 render_current::@7/(byte) render_current::i#1 ) + [71] (byte) render_current::ypos2#1 ← (byte) render_current::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 + [72] (byte) render_current::l#1 ← ++ (byte) render_current::l#4 + [73] 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 - [72] return + [74] return to:@return render_current::@13: scope:[render_current] from render_current::@1 - [73] 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 + [75] 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 - [74] (byte*) render_current::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) screen_lines#0 + (byte) render_current::ypos2#2) - [75] (byte) render_current::xpos#0 ← (byte) current_xpos#48 + [76] (byte*) render_current::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) screen_lines#0 + (byte) render_current::ypos2#2) + [77] (byte) render_current::xpos#0 ← (byte) current_xpos#48 to:render_current::@4 render_current::@4: scope:[render_current] from render_current::@2 render_current::@5 - [76] (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 ) - [76] (byte) render_current::xpos#2 ← phi( render_current::@2/(byte) render_current::xpos#0 render_current::@5/(byte) render_current::xpos#1 ) - [76] (byte) render_current::i#4 ← phi( render_current::@2/(byte) render_current::i#3 render_current::@5/(byte) render_current::i#10 ) - [77] (byte) render_current::current_cell#0 ← *((byte*) current_piece_gfx#53 + (byte) render_current::i#4) - [78] (byte) render_current::i#10 ← ++ (byte) render_current::i#4 - [79] if((byte) render_current::current_cell#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto render_current::@5 + [78] (byte) render_current::c#2 ← phi( render_current::@2/(byte/signed byte/word/signed word/dword/signed dword) 0 render_current::@5/(byte) render_current::c#1 ) + [78] (byte) render_current::xpos#2 ← phi( render_current::@2/(byte) render_current::xpos#0 render_current::@5/(byte) render_current::xpos#1 ) + [78] (byte) render_current::i#4 ← phi( render_current::@2/(byte) render_current::i#3 render_current::@5/(byte) render_current::i#10 ) + [79] (byte) render_current::current_cell#0 ← *((byte*) current_piece_gfx#53 + (byte) render_current::i#4) + [80] (byte) render_current::i#10 ← ++ (byte) render_current::i#4 + [81] if((byte) render_current::current_cell#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto render_current::@5 to:render_current::@9 render_current::@9: scope:[render_current] from render_current::@4 - [80] if((byte) render_current::xpos#2>=(const byte) PLAYFIELD_COLS#0) goto render_current::@5 + [82] if((byte) render_current::xpos#2>=(const byte) PLAYFIELD_COLS#0) goto render_current::@5 to:render_current::@10 render_current::@10: scope:[render_current] from render_current::@9 - [81] *((byte*) render_current::screen_line#0 + (byte) render_current::xpos#2) ← (byte) current_piece_char#63 + [83] *((byte*) render_current::screen_line#0 + (byte) render_current::xpos#2) ← (byte) current_piece_char#63 to:render_current::@5 render_current::@5: scope:[render_current] from render_current::@10 render_current::@4 render_current::@9 - [82] (byte) render_current::xpos#1 ← ++ (byte) render_current::xpos#2 - [83] (byte) render_current::c#1 ← ++ (byte) render_current::c#2 - [84] if((byte) render_current::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_current::@4 + [84] (byte) render_current::xpos#1 ← ++ (byte) render_current::xpos#2 + [85] (byte) render_current::c#1 ← ++ (byte) render_current::c#2 + [86] 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::@19 main::@26 - [85] phi() + [87] phi() to:render_playfield::@1 render_playfield::@1: scope:[render_playfield] from render_playfield render_playfield::@3 - [86] (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 ) - [86] (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 ) - [87] (byte~) render_playfield::$2 ← (byte) render_playfield::l#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 - [88] (byte*) render_playfield::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) screen_lines#0 + (byte~) render_playfield::$2) + [88] (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 ) + [88] (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 ) + [89] (byte~) render_playfield::$2 ← (byte) render_playfield::l#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 + [90] (byte*) render_playfield::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) screen_lines#0 + (byte~) render_playfield::$2) to:render_playfield::@2 render_playfield::@2: scope:[render_playfield] from render_playfield::@1 render_playfield::@2 - [89] (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 ) - [89] (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 ) - [89] (byte) render_playfield::i#2 ← phi( render_playfield::@1/(byte) render_playfield::i#3 render_playfield::@2/(byte) render_playfield::i#1 ) - [90] *((byte*) render_playfield::screen_line#2) ← *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) render_playfield::i#2) - [91] (byte*) render_playfield::screen_line#1 ← ++ (byte*) render_playfield::screen_line#2 - [92] (byte) render_playfield::i#1 ← ++ (byte) render_playfield::i#2 - [93] (byte) render_playfield::c#1 ← ++ (byte) render_playfield::c#2 - [94] 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 + [91] (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 ) + [91] (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 ) + [91] (byte) render_playfield::i#2 ← phi( render_playfield::@1/(byte) render_playfield::i#3 render_playfield::@2/(byte) render_playfield::i#1 ) + [92] *((byte*) render_playfield::screen_line#2) ← *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) render_playfield::i#2) + [93] (byte*) render_playfield::screen_line#1 ← ++ (byte*) render_playfield::screen_line#2 + [94] (byte) render_playfield::i#1 ← ++ (byte) render_playfield::i#2 + [95] (byte) render_playfield::c#1 ← ++ (byte) render_playfield::c#2 + [96] 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 - [95] (byte) render_playfield::l#1 ← ++ (byte) render_playfield::l#2 - [96] 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 + [97] (byte) render_playfield::l#1 ← ++ (byte) render_playfield::l#2 + [98] 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 - [97] return + [99] return to:@return play_move_rotate: scope:[play_move_rotate] from main::@32 - [98] if((byte) play_move_rotate::key_event#0==(const byte) KEY_Z#0) goto play_move_rotate::@1 + [100] 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 - [99] if((byte) play_move_rotate::key_event#0==(const byte) KEY_X#0) goto play_move_rotate::@2 + [101] if((byte) play_move_rotate::key_event#0==(const byte) KEY_X#0) goto play_move_rotate::@2 to:play_move_rotate::@return play_move_rotate::@return: scope:[play_move_rotate] from play_move_rotate::@11 play_move_rotate::@14 play_move_rotate::@6 - [100] (byte*) current_piece_gfx#15 ← phi( play_move_rotate::@11/(byte*) current_piece_gfx#4 play_move_rotate::@14/(byte*) current_piece_gfx#14 play_move_rotate::@6/(byte*) current_piece_gfx#14 ) - [100] (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 ) - [100] (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 ) - [101] return + [102] (byte*) current_piece_gfx#15 ← phi( play_move_rotate::@11/(byte*) current_piece_gfx#4 play_move_rotate::@14/(byte*) current_piece_gfx#14 play_move_rotate::@6/(byte*) current_piece_gfx#14 ) + [102] (byte) current_orientation#19 ← phi( play_move_rotate::@11/(byte) current_orientation#4 play_move_rotate::@14/(byte) current_orientation#14 play_move_rotate::@6/(byte) current_orientation#14 ) + [102] (byte) play_move_rotate::return#1 ← phi( play_move_rotate::@11/(byte/signed byte/word/signed word/dword/signed dword) 1 play_move_rotate::@14/(byte/signed byte/word/signed word/dword/signed dword) 0 play_move_rotate::@6/(byte/signed byte/word/signed word/dword/signed dword) 0 ) + [103] return to:@return play_move_rotate::@2: scope:[play_move_rotate] from play_move_rotate::@6 - [102] (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 - [103] (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 + [104] (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 ← (byte) current_orientation#14 + (byte/signed byte/word/signed word/dword/signed dword) 16 + [105] (byte) play_move_rotate::orientation#2 ← (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 & (byte/signed byte/word/signed word/dword/signed dword) 63 to:play_move_rotate::@4 play_move_rotate::@4: scope:[play_move_rotate] from play_move_rotate::@1 play_move_rotate::@2 - [104] (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 ) - [105] (byte) play_collision::xpos#3 ← (byte) current_xpos#20 - [106] (byte) play_collision::ypos#3 ← (byte) current_ypos#14 - [107] (byte) play_collision::orientation#3 ← (byte) play_move_rotate::orientation#3 - [108] (byte*~) current_piece#76 ← (byte*) current_piece#10 - [109] call play_collision - [110] (byte) play_collision::return#13 ← (byte) play_collision::return#14 + [106] (byte) play_move_rotate::orientation#3 ← phi( play_move_rotate::@1/(byte) play_move_rotate::orientation#1 play_move_rotate::@2/(byte) play_move_rotate::orientation#2 ) + [107] (byte) play_collision::xpos#3 ← (byte) current_xpos#20 + [108] (byte) play_collision::ypos#3 ← (byte) current_ypos#14 + [109] (byte) play_collision::orientation#3 ← (byte) play_move_rotate::orientation#3 + [110] (byte*~) current_piece#76 ← (byte*) current_piece#10 + [111] call play_collision + [112] (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 - [111] (byte~) play_move_rotate::$6 ← (byte) play_collision::return#13 - [112] if((byte~) play_move_rotate::$6!=(const byte) COLLISION_NONE#0) goto play_move_rotate::@return + [113] (byte~) play_move_rotate::$6 ← (byte) play_collision::return#13 + [114] 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 - [113] (byte) current_orientation#4 ← (byte) play_move_rotate::orientation#3 - [114] (byte*) current_piece_gfx#4 ← (byte*) current_piece#10 + (byte) current_orientation#4 + [115] (byte) current_orientation#4 ← (byte) play_move_rotate::orientation#3 + [116] (byte*) current_piece_gfx#4 ← (byte*) current_piece#10 + (byte) current_orientation#4 to:play_move_rotate::@return play_move_rotate::@1: scope:[play_move_rotate] from play_move_rotate - [115] (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 - [116] (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 + [117] (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 ← (byte) current_orientation#14 - (byte/signed byte/word/signed word/dword/signed dword) 16 + [118] (byte) play_move_rotate::orientation#1 ← (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 & (byte/signed byte/word/signed word/dword/signed dword) 63 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 - [117] (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 ) - [117] (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 ) - [117] (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 ) - [117] (byte*) current_piece#12 ← phi( play_move_down::@12/(byte*~) current_piece#73 play_move_leftright::@1/(byte*~) current_piece#74 play_move_leftright::@7/(byte*~) current_piece#75 play_move_rotate::@4/(byte*~) current_piece#76 ) - [118] (byte*) play_collision::piece_gfx#0 ← (byte*) current_piece#12 + (byte) play_collision::orientation#4 - [119] (byte) play_collision::ypos2#0 ← (byte) play_collision::ypos#4 << (byte/signed byte/word/signed word/dword/signed dword) 1 + [119] (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 ) + [119] (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 ) + [119] (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 ) + [119] (byte*) current_piece#12 ← phi( play_move_down::@12/(byte*~) current_piece#73 play_move_leftright::@1/(byte*~) current_piece#74 play_move_leftright::@7/(byte*~) current_piece#75 play_move_rotate::@4/(byte*~) current_piece#76 ) + [120] (byte*) play_collision::piece_gfx#0 ← (byte*) current_piece#12 + (byte) play_collision::orientation#4 + [121] (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 - [120] (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 ) - [120] (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 ) - [120] (byte) play_collision::ypos2#2 ← phi( play_collision/(byte) play_collision::ypos2#0 play_collision::@20/(byte) play_collision::ypos2#1 ) - [121] (byte*) play_collision::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) play_collision::ypos2#2) - [122] (byte~) play_collision::col#9 ← (byte) play_collision::xpos#5 + [122] (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 ) + [122] (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 ) + [122] (byte) play_collision::ypos2#2 ← phi( play_collision/(byte) play_collision::ypos2#0 play_collision::@20/(byte) play_collision::ypos2#1 ) + [123] (byte*) play_collision::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) play_collision::ypos2#2) + [124] (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 - [123] (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 ) - [123] (byte) play_collision::col#2 ← phi( play_collision::@1/(byte~) play_collision::col#9 play_collision::@21/(byte) play_collision::col#1 ) - [123] (byte) play_collision::i#2 ← phi( play_collision::@1/(byte) play_collision::i#3 play_collision::@21/(byte~) play_collision::i#13 ) - [124] (byte) play_collision::i#1 ← ++ (byte) play_collision::i#2 - [125] 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 + [125] (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 ) + [125] (byte) play_collision::col#2 ← phi( play_collision::@1/(byte~) play_collision::col#9 play_collision::@21/(byte) play_collision::col#1 ) + [125] (byte) play_collision::i#2 ← phi( play_collision::@1/(byte) play_collision::i#3 play_collision::@21/(byte~) play_collision::i#13 ) + [126] (byte) play_collision::i#1 ← ++ (byte) play_collision::i#2 + [127] if(*((byte*) play_collision::piece_gfx#0 + (byte) play_collision::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_collision::@3 to:play_collision::@8 play_collision::@8: scope:[play_collision] from play_collision::@2 - [126] 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 + [128] 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 - [127] (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 ) - [128] return + [129] (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 ) + [130] return to:@return play_collision::@4: scope:[play_collision] from play_collision::@8 - [129] (byte~) play_collision::$7 ← (byte) play_collision::col#2 & (byte/word/signed word/dword/signed dword) 128 - [130] if((byte~) play_collision::$7==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_collision::@5 + [131] (byte~) play_collision::$7 ← (byte) play_collision::col#2 & (byte/word/signed word/dword/signed dword) 128 + [132] 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 - [131] if((byte) play_collision::col#2<(const byte) PLAYFIELD_COLS#0) goto play_collision::@6 + [133] 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 - [132] 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 + [134] if(*((byte*) play_collision::playfield_line#0 + (byte) play_collision::col#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_collision::@3 to:play_collision::@return play_collision::@3: scope:[play_collision] from play_collision::@2 play_collision::@6 - [133] (byte) play_collision::col#1 ← ++ (byte) play_collision::col#2 - [134] (byte) play_collision::c#1 ← ++ (byte) play_collision::c#2 - [135] if((byte) play_collision::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto play_collision::@21 + [135] (byte) play_collision::col#1 ← ++ (byte) play_collision::col#2 + [136] (byte) play_collision::c#1 ← ++ (byte) play_collision::c#2 + [137] 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 - [136] (byte) play_collision::ypos2#1 ← (byte) play_collision::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 - [137] (byte) play_collision::l#1 ← ++ (byte) play_collision::l#6 - [138] if((byte) play_collision::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto play_collision::@20 + [138] (byte) play_collision::ypos2#1 ← (byte) play_collision::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 + [139] (byte) play_collision::l#1 ← ++ (byte) play_collision::l#6 + [140] 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 - [139] (byte~) play_collision::i#11 ← (byte) play_collision::i#1 + [141] (byte~) play_collision::i#11 ← (byte) play_collision::i#1 to:play_collision::@1 play_collision::@21: scope:[play_collision] from play_collision::@3 - [140] (byte~) play_collision::i#13 ← (byte) play_collision::i#1 + [142] (byte~) play_collision::i#13 ← (byte) play_collision::i#1 to:play_collision::@2 play_move_leftright: scope:[play_move_leftright] from main::@31 - [141] if((byte) play_move_leftright::key_event#0==(const byte) KEY_COMMA#0) goto play_move_leftright::@1 + [143] 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 - [142] if((byte) play_move_leftright::key_event#0!=(const byte) KEY_DOT#0) goto play_move_leftright::@return + [144] if((byte) play_move_leftright::key_event#0!=(const byte) KEY_DOT#0) goto play_move_leftright::@return to:play_move_leftright::@7 play_move_leftright::@7: scope:[play_move_leftright] from play_move_leftright::@6 - [143] (byte) play_collision::xpos#2 ← (byte) current_xpos#16 + (byte/signed byte/word/signed word/dword/signed dword) 1 - [144] (byte) play_collision::ypos#2 ← (byte) current_ypos#14 - [145] (byte) play_collision::orientation#2 ← (byte) current_orientation#14 - [146] (byte*~) current_piece#75 ← (byte*) current_piece#10 - [147] call play_collision - [148] (byte) play_collision::return#12 ← (byte) play_collision::return#14 + [145] (byte) play_collision::xpos#2 ← (byte) current_xpos#16 + (byte/signed byte/word/signed word/dword/signed dword) 1 + [146] (byte) play_collision::ypos#2 ← (byte) current_ypos#14 + [147] (byte) play_collision::orientation#2 ← (byte) current_orientation#14 + [148] (byte*~) current_piece#75 ← (byte*) current_piece#10 + [149] call play_collision + [150] (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 - [149] (byte~) play_move_leftright::$4 ← (byte) play_collision::return#12 - [150] if((byte~) play_move_leftright::$4!=(const byte) COLLISION_NONE#0) goto play_move_leftright::@return + [151] (byte~) play_move_leftright::$4 ← (byte) play_collision::return#12 + [152] if((byte~) play_move_leftright::$4!=(const byte) COLLISION_NONE#0) goto play_move_leftright::@return to:play_move_leftright::@8 play_move_leftright::@8: scope:[play_move_leftright] from play_move_leftright::@15 - [151] (byte) current_xpos#3 ← ++ (byte) current_xpos#16 + [153] (byte) current_xpos#3 ← ++ (byte) current_xpos#16 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 - [152] (byte) current_xpos#20 ← phi( play_move_leftright::@11/(byte) current_xpos#5 play_move_leftright::@15/(byte) current_xpos#16 play_move_leftright::@8/(byte) current_xpos#3 play_move_leftright::@14/(byte) current_xpos#16 play_move_leftright::@6/(byte) current_xpos#16 ) - [152] (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 ) - [153] return + [154] (byte) current_xpos#20 ← phi( play_move_leftright::@11/(byte) current_xpos#5 play_move_leftright::@15/(byte) current_xpos#16 play_move_leftright::@8/(byte) current_xpos#3 play_move_leftright::@14/(byte) current_xpos#16 play_move_leftright::@6/(byte) current_xpos#16 ) + [154] (byte) play_move_leftright::return#1 ← phi( play_move_leftright::@11/(byte/signed byte/word/signed word/dword/signed dword) 1 play_move_leftright::@15/(byte/signed byte/word/signed word/dword/signed dword) 0 play_move_leftright::@8/(byte/signed byte/word/signed word/dword/signed dword) 1 play_move_leftright::@14/(byte/signed byte/word/signed word/dword/signed dword) 0 play_move_leftright::@6/(byte/signed byte/word/signed word/dword/signed dword) 0 ) + [155] return to:@return play_move_leftright::@1: scope:[play_move_leftright] from play_move_leftright - [154] (byte) play_collision::xpos#1 ← (byte) current_xpos#16 - (byte/signed byte/word/signed word/dword/signed dword) 1 - [155] (byte) play_collision::ypos#1 ← (byte) current_ypos#14 - [156] (byte) play_collision::orientation#1 ← (byte) current_orientation#14 - [157] (byte*~) current_piece#74 ← (byte*) current_piece#10 - [158] call play_collision - [159] (byte) play_collision::return#1 ← (byte) play_collision::return#14 + [156] (byte) play_collision::xpos#1 ← (byte) current_xpos#16 - (byte/signed byte/word/signed word/dword/signed dword) 1 + [157] (byte) play_collision::ypos#1 ← (byte) current_ypos#14 + [158] (byte) play_collision::orientation#1 ← (byte) current_orientation#14 + [159] (byte*~) current_piece#74 ← (byte*) current_piece#10 + [160] call play_collision + [161] (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 - [160] (byte~) play_move_leftright::$8 ← (byte) play_collision::return#1 - [161] if((byte~) play_move_leftright::$8!=(const byte) COLLISION_NONE#0) goto play_move_leftright::@return + [162] (byte~) play_move_leftright::$8 ← (byte) play_collision::return#1 + [163] if((byte~) play_move_leftright::$8!=(const byte) COLLISION_NONE#0) goto play_move_leftright::@return to:play_move_leftright::@11 play_move_leftright::@11: scope:[play_move_leftright] from play_move_leftright::@14 - [162] (byte) current_xpos#5 ← -- (byte) current_xpos#16 + [164] (byte) current_xpos#5 ← -- (byte) current_xpos#16 to:play_move_leftright::@return play_move_down: scope:[play_move_down] from main::@30 - [163] (byte) current_movedown_counter#1 ← ++ (byte) current_movedown_counter#12 - [164] if((byte) play_move_down::key_event#0!=(const byte) KEY_SPACE#0) goto play_move_down::@1 + [165] (byte) current_movedown_counter#1 ← ++ (byte) current_movedown_counter#12 + [166] 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 - [165] phi() + [167] phi() to:play_move_down::@1 play_move_down::@1: scope:[play_move_down] from play_move_down play_move_down::@8 - [166] (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 ) - [167] call keyboard_event_pressed - [168] (byte) keyboard_event_pressed::return#12 ← (byte) keyboard_event_pressed::return#11 + [168] (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 ) + [169] call keyboard_event_pressed + [170] (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 - [169] (byte~) play_move_down::$2 ← (byte) keyboard_event_pressed::return#12 - [170] if((byte~) play_move_down::$2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_move_down::@2 + [171] (byte~) play_move_down::$2 ← (byte) keyboard_event_pressed::return#12 + [172] 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 - [171] if((byte) current_movedown_counter#1<(const byte) current_movedown_fast#0) goto play_move_down::@2 + [173] 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 - [172] (byte) play_move_down::movedown#2 ← ++ (byte) play_move_down::movedown#10 + [174] (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 - [173] (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 ) - [174] if((byte) current_movedown_counter#1<(const byte) current_movedown_slow#0) goto play_move_down::@4 + [175] (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 ) + [176] 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 - [175] (byte) play_move_down::movedown#3 ← ++ (byte) play_move_down::movedown#7 + [177] (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 - [176] (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 ) - [177] if((byte) play_move_down::movedown#6==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_move_down::@return + [178] (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 ) + [179] if((byte) play_move_down::movedown#6==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_move_down::@return to:play_move_down::@12 play_move_down::@12: scope:[play_move_down] from play_move_down::@4 - [178] (byte) play_collision::ypos#0 ← (byte) current_ypos#22 + (byte/signed byte/word/signed word/dword/signed dword) 1 - [179] (byte) play_collision::xpos#0 ← (byte) current_xpos#11 - [180] (byte) play_collision::orientation#0 ← (byte) current_orientation#10 - [181] (byte*~) current_piece#73 ← (byte*) current_piece#16 - [182] call play_collision - [183] (byte) play_collision::return#0 ← (byte) play_collision::return#14 + [180] (byte) play_collision::ypos#0 ← (byte) current_ypos#22 + (byte/signed byte/word/signed word/dword/signed dword) 1 + [181] (byte) play_collision::xpos#0 ← (byte) current_xpos#11 + [182] (byte) play_collision::orientation#0 ← (byte) current_orientation#10 + [183] (byte*~) current_piece#73 ← (byte*) current_piece#16 + [184] call play_collision + [185] (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 - [184] (byte~) play_move_down::$12 ← (byte) play_collision::return#0 - [185] if((byte~) play_move_down::$12==(const byte) COLLISION_NONE#0) goto play_move_down::@6 + [186] (byte~) play_move_down::$12 ← (byte) play_collision::return#0 + [187] 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 - [186] phi() - [187] call play_lock_current + [188] phi() + [189] call play_lock_current to:play_move_down::@19 play_move_down::@19: scope:[play_move_down] from play_move_down::@13 - [188] phi() - [189] call play_remove_lines + [190] phi() + [191] call play_remove_lines to:play_move_down::@20 play_move_down::@20: scope:[play_move_down] from play_move_down::@19 - [190] phi() - [191] call play_spawn_current - [192] (byte*~) current_piece#77 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) + [192] phi() + [193] call play_spawn_current + [194] (byte*~) current_piece#77 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) to:play_move_down::@7 play_move_down::@7: scope:[play_move_down] from play_move_down::@20 play_move_down::@6 - [193] (byte) current_piece_char#21 ← phi( play_move_down::@20/(byte) current_piece_char#13 play_move_down::@6/(byte) current_piece_char#16 ) - [193] (byte) current_xpos#34 ← phi( play_move_down::@20/(byte/signed byte/word/signed word/dword/signed dword) 3 play_move_down::@6/(byte) current_xpos#11 ) - [193] (byte*) current_piece_gfx#27 ← phi( play_move_down::@20/(byte*) current_piece_gfx#17 play_move_down::@6/(byte*) current_piece_gfx#10 ) - [193] (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 ) - [193] (byte*) current_piece#20 ← phi( play_move_down::@20/(byte*~) current_piece#77 play_move_down::@6/(byte*) current_piece#16 ) - [193] (byte) current_ypos#30 ← phi( play_move_down::@20/(byte/signed byte/word/signed word/dword/signed dword) 0 play_move_down::@6/(byte) current_ypos#1 ) + [195] (byte) current_piece_char#21 ← phi( play_move_down::@20/(byte) current_piece_char#13 play_move_down::@6/(byte) current_piece_char#16 ) + [195] (byte) current_xpos#34 ← phi( play_move_down::@20/(byte) current_xpos#24 play_move_down::@6/(byte) current_xpos#11 ) + [195] (byte*) current_piece_gfx#27 ← phi( play_move_down::@20/(byte*) current_piece_gfx#17 play_move_down::@6/(byte*) current_piece_gfx#10 ) + [195] (byte) current_orientation#29 ← phi( play_move_down::@20/(byte/signed byte/word/signed word/dword/signed dword) 0 play_move_down::@6/(byte) current_orientation#10 ) + [195] (byte*) current_piece#20 ← phi( play_move_down::@20/(byte*~) current_piece#77 play_move_down::@6/(byte*) current_piece#16 ) + [195] (byte) current_ypos#30 ← phi( play_move_down::@20/(byte) current_ypos#19 play_move_down::@6/(byte) current_ypos#1 ) to:play_move_down::@return play_move_down::@return: scope:[play_move_down] from play_move_down::@4 play_move_down::@7 - [194] (byte) current_piece_char#11 ← phi( play_move_down::@4/(byte) current_piece_char#16 play_move_down::@7/(byte) current_piece_char#21 ) - [194] (byte) current_xpos#16 ← phi( play_move_down::@4/(byte) current_xpos#11 play_move_down::@7/(byte) current_xpos#34 ) - [194] (byte*) current_piece_gfx#14 ← phi( play_move_down::@4/(byte*) current_piece_gfx#10 play_move_down::@7/(byte*) current_piece_gfx#27 ) - [194] (byte) current_orientation#14 ← phi( play_move_down::@4/(byte) current_orientation#10 play_move_down::@7/(byte) current_orientation#29 ) - [194] (byte*) current_piece#10 ← phi( play_move_down::@4/(byte*) current_piece#16 play_move_down::@7/(byte*) current_piece#20 ) - [194] (byte) current_ypos#14 ← phi( play_move_down::@4/(byte) current_ypos#22 play_move_down::@7/(byte) current_ypos#30 ) - [194] (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 ) - [194] (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 ) - [195] return + [196] (byte) current_piece_char#11 ← phi( play_move_down::@4/(byte) current_piece_char#16 play_move_down::@7/(byte) current_piece_char#21 ) + [196] (byte) current_xpos#16 ← phi( play_move_down::@4/(byte) current_xpos#11 play_move_down::@7/(byte) current_xpos#34 ) + [196] (byte*) current_piece_gfx#14 ← phi( play_move_down::@4/(byte*) current_piece_gfx#10 play_move_down::@7/(byte*) current_piece_gfx#27 ) + [196] (byte) current_orientation#14 ← phi( play_move_down::@4/(byte) current_orientation#10 play_move_down::@7/(byte) current_orientation#29 ) + [196] (byte*) current_piece#10 ← phi( play_move_down::@4/(byte*) current_piece#16 play_move_down::@7/(byte*) current_piece#20 ) + [196] (byte) current_ypos#14 ← phi( play_move_down::@4/(byte) current_ypos#22 play_move_down::@7/(byte) current_ypos#30 ) + [196] (byte) current_movedown_counter#10 ← phi( play_move_down::@4/(byte) current_movedown_counter#1 play_move_down::@7/(byte/signed byte/word/signed word/dword/signed dword) 0 ) + [196] (byte) play_move_down::return#2 ← phi( play_move_down::@4/(byte/signed byte/word/signed word/dword/signed dword) 0 play_move_down::@7/(byte/signed byte/word/signed word/dword/signed dword) 1 ) + [197] return to:@return play_move_down::@6: scope:[play_move_down] from play_move_down::@18 - [196] (byte) current_ypos#1 ← ++ (byte) current_ypos#22 + [198] (byte) current_ypos#1 ← ++ (byte) current_ypos#22 to:play_move_down::@7 play_spawn_current: scope:[play_spawn_current] from main::@25 play_move_down::@20 - [197] phi() + [199] phi() to:play_spawn_current::@1 play_spawn_current::@1: scope:[play_spawn_current] from play_spawn_current play_spawn_current::@7 - [198] (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 ) - [199] if((byte) play_spawn_current::piece_idx#2==(byte/signed byte/word/signed word/dword/signed dword) 7) goto play_spawn_current::@2 + [200] (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 ) + [201] 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 - [200] (byte~) play_spawn_current::$3 ← (byte) play_spawn_current::piece_idx#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 - [201] (byte*) current_piece_gfx#17 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) + (byte/signed byte/word/signed word/dword/signed dword) 0 - [202] (byte) current_piece_char#13 ← *((const byte[]) PIECES_CHARS#0 + (byte) play_spawn_current::piece_idx#2) + [202] (byte~) play_spawn_current::$3 ← (byte) play_spawn_current::piece_idx#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 + [203] (byte*) current_piece_gfx#17 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) + (byte/signed byte/word/signed word/dword/signed dword) 0 + [204] (byte) current_xpos#24 ← *((const byte[]) PIECES_START_X#0 + (byte) play_spawn_current::piece_idx#2) + [205] (byte) current_ypos#19 ← *((const byte[]) PIECES_START_Y#0 + (byte) play_spawn_current::piece_idx#2) + [206] (byte) current_piece_char#13 ← *((const byte[]) PIECES_CHARS#0 + (byte) play_spawn_current::piece_idx#2) to:play_spawn_current::@return play_spawn_current::@return: scope:[play_spawn_current] from play_spawn_current::@3 - [203] return + [207] return to:@return play_spawn_current::@2: scope:[play_spawn_current] from play_spawn_current::@1 - [204] phi() - [205] call sid_rnd - [206] (byte) sid_rnd::return#2 ← (byte) sid_rnd::return#0 + [208] phi() + [209] call sid_rnd + [210] (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 - [207] (byte~) play_spawn_current::$1 ← (byte) sid_rnd::return#2 - [208] (byte) play_spawn_current::piece_idx#1 ← (byte~) play_spawn_current::$1 & (byte/signed byte/word/signed word/dword/signed dword) 7 + [211] (byte~) play_spawn_current::$1 ← (byte) sid_rnd::return#2 + [212] (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 - [209] (byte) sid_rnd::return#0 ← *((const byte*) SID_VOICE3_OSC#0) + [213] (byte) sid_rnd::return#0 ← *((const byte*) SID_VOICE3_OSC#0) to:sid_rnd::@return sid_rnd::@return: scope:[sid_rnd] from sid_rnd - [210] return + [214] return to:@return play_remove_lines: scope:[play_remove_lines] from play_move_down::@19 - [211] phi() + [215] phi() to:play_remove_lines::@1 play_remove_lines::@1: scope:[play_remove_lines] from play_remove_lines play_remove_lines::@4 - [212] (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 ) - [212] (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 ) - [212] (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 ) + [216] (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 ) + [216] (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 ) + [216] (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 - [213] (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 ) - [213] (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 ) - [213] (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 ) - [213] (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 ) - [214] (byte) play_remove_lines::c#0 ← *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) play_remove_lines::r#2) - [215] (byte) play_remove_lines::r#1 ← -- (byte) play_remove_lines::r#2 - [216] if((byte) play_remove_lines::c#0!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_remove_lines::@17 + [217] (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 ) + [217] (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 ) + [217] (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 ) + [217] (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 ) + [218] (byte) play_remove_lines::c#0 ← *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) play_remove_lines::r#2) + [219] (byte) play_remove_lines::r#1 ← -- (byte) play_remove_lines::r#2 + [220] 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 - [217] (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 ) - [218] *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) play_remove_lines::w#4) ← (byte) play_remove_lines::c#0 - [219] (byte) play_remove_lines::w#1 ← -- (byte) play_remove_lines::w#4 - [220] (byte) play_remove_lines::x#1 ← ++ (byte) play_remove_lines::x#2 - [221] 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 + [221] (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 ) + [222] *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) play_remove_lines::w#4) ← (byte) play_remove_lines::c#0 + [223] (byte) play_remove_lines::w#1 ← -- (byte) play_remove_lines::w#4 + [224] (byte) play_remove_lines::x#1 ← ++ (byte) play_remove_lines::x#2 + [225] 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 - [222] if((byte) play_remove_lines::full#2!=(byte/signed byte/word/signed word/dword/signed dword) 1) goto play_remove_lines::@4 + [226] 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 - [223] (byte) play_remove_lines::w#2 ← (byte) play_remove_lines::w#1 + (const byte) PLAYFIELD_COLS#0 + [227] (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 - [224] (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 ) - [225] (byte) play_remove_lines::y#1 ← ++ (byte) play_remove_lines::y#8 - [226] 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 + [228] (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 ) + [229] (byte) play_remove_lines::y#1 ← ++ (byte) play_remove_lines::y#8 + [230] 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 - [227] (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 ) - [228] if((byte) play_remove_lines::w#6!=(byte/word/signed word/dword/signed dword) 255) goto play_remove_lines::@6 + [231] (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 ) + [232] 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 - [229] return + [233] return to:@return play_remove_lines::@6: scope:[play_remove_lines] from play_remove_lines::@5 - [230] *((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 - [231] (byte) play_remove_lines::w#3 ← -- (byte) play_remove_lines::w#6 + [234] *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) play_remove_lines::w#6) ← (byte/signed byte/word/signed word/dword/signed dword) 0 + [235] (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 - [232] phi() + [236] phi() to:play_remove_lines::@3 play_lock_current: scope:[play_lock_current] from play_move_down::@13 - [233] (byte) play_lock_current::ypos2#0 ← (byte) current_ypos#22 << (byte/signed byte/word/signed word/dword/signed dword) 1 + [237] (byte) play_lock_current::ypos2#0 ← (byte) current_ypos#22 << (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 - [234] (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 ) - [234] (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 ) - [234] (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 ) - [235] (byte*) play_lock_current::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) play_lock_current::ypos2#2) - [236] (byte) play_lock_current::col#0 ← (byte) current_xpos#11 + [238] (byte) play_lock_current::l#6 ← phi( play_lock_current/(byte/signed byte/word/signed word/dword/signed dword) 0 play_lock_current::@7/(byte) play_lock_current::l#1 ) + [238] (byte) play_lock_current::i#3 ← phi( play_lock_current/(byte/signed byte/word/signed word/dword/signed dword) 0 play_lock_current::@7/(byte~) play_lock_current::i#7 ) + [238] (byte) play_lock_current::ypos2#2 ← phi( play_lock_current/(byte) play_lock_current::ypos2#0 play_lock_current::@7/(byte) play_lock_current::ypos2#1 ) + [239] (byte*) play_lock_current::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) play_lock_current::ypos2#2) + [240] (byte) play_lock_current::col#0 ← (byte) current_xpos#11 to:play_lock_current::@2 play_lock_current::@2: scope:[play_lock_current] from play_lock_current::@1 play_lock_current::@8 - [237] (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 ) - [237] (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 ) - [237] (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 ) - [238] (byte) play_lock_current::i#1 ← ++ (byte) play_lock_current::i#2 - [239] if(*((byte*) current_piece_gfx#10 + (byte) play_lock_current::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_lock_current::@3 + [241] (byte) play_lock_current::c#2 ← phi( play_lock_current::@1/(byte/signed byte/word/signed word/dword/signed dword) 0 play_lock_current::@8/(byte) play_lock_current::c#1 ) + [241] (byte) play_lock_current::col#2 ← phi( play_lock_current::@1/(byte) play_lock_current::col#0 play_lock_current::@8/(byte) play_lock_current::col#1 ) + [241] (byte) play_lock_current::i#2 ← phi( play_lock_current::@1/(byte) play_lock_current::i#3 play_lock_current::@8/(byte~) play_lock_current::i#9 ) + [242] (byte) play_lock_current::i#1 ← ++ (byte) play_lock_current::i#2 + [243] if(*((byte*) current_piece_gfx#10 + (byte) play_lock_current::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_lock_current::@3 to:play_lock_current::@4 play_lock_current::@4: scope:[play_lock_current] from play_lock_current::@2 - [240] *((byte*) play_lock_current::playfield_line#0 + (byte) play_lock_current::col#2) ← (byte) current_piece_char#16 + [244] *((byte*) play_lock_current::playfield_line#0 + (byte) play_lock_current::col#2) ← (byte) current_piece_char#16 to:play_lock_current::@3 play_lock_current::@3: scope:[play_lock_current] from play_lock_current::@2 play_lock_current::@4 - [241] (byte) play_lock_current::col#1 ← ++ (byte) play_lock_current::col#2 - [242] (byte) play_lock_current::c#1 ← ++ (byte) play_lock_current::c#2 - [243] if((byte) play_lock_current::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto play_lock_current::@8 + [245] (byte) play_lock_current::col#1 ← ++ (byte) play_lock_current::col#2 + [246] (byte) play_lock_current::c#1 ← ++ (byte) play_lock_current::c#2 + [247] 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 - [244] (byte) play_lock_current::ypos2#1 ← (byte) play_lock_current::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 - [245] (byte) play_lock_current::l#1 ← ++ (byte) play_lock_current::l#6 - [246] if((byte) play_lock_current::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto play_lock_current::@7 + [248] (byte) play_lock_current::ypos2#1 ← (byte) play_lock_current::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 + [249] (byte) play_lock_current::l#1 ← ++ (byte) play_lock_current::l#6 + [250] 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 - [247] return + [251] return to:@return play_lock_current::@7: scope:[play_lock_current] from play_lock_current::@5 - [248] (byte~) play_lock_current::i#7 ← (byte) play_lock_current::i#1 + [252] (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 - [249] (byte~) play_lock_current::i#9 ← (byte) play_lock_current::i#1 + [253] (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 - [250] (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 ) - [251] (byte~) keyboard_event_pressed::$0 ← (byte) keyboard_event_pressed::keycode#5 >> (byte/signed byte/word/signed word/dword/signed dword) 3 - [252] (byte) keyboard_event_pressed::row_bits#0 ← *((const byte[8]) keyboard_scan_values#0 + (byte~) keyboard_event_pressed::$0) - [253] (byte~) keyboard_event_pressed::$1 ← (byte) keyboard_event_pressed::keycode#5 & (byte/signed byte/word/signed word/dword/signed dword) 7 - [254] (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) + [254] (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 ) + [255] (byte~) keyboard_event_pressed::$0 ← (byte) keyboard_event_pressed::keycode#5 >> (byte/signed byte/word/signed word/dword/signed dword) 3 + [256] (byte) keyboard_event_pressed::row_bits#0 ← *((const byte[8]) keyboard_scan_values#0 + (byte~) keyboard_event_pressed::$0) + [257] (byte~) keyboard_event_pressed::$1 ← (byte) keyboard_event_pressed::keycode#5 & (byte/signed byte/word/signed word/dword/signed dword) 7 + [258] (byte) keyboard_event_pressed::return#11 ← (byte) keyboard_event_pressed::row_bits#0 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte~) keyboard_event_pressed::$1) to:keyboard_event_pressed::@return keyboard_event_pressed::@return: scope:[keyboard_event_pressed] from keyboard_event_pressed - [255] return + [259] return to:@return keyboard_event_get: scope:[keyboard_event_get] from main::@29 - [256] if((byte) keyboard_events_size#13==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_get::@return + [260] if((byte) keyboard_events_size#13==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_get::@return to:keyboard_event_get::@3 keyboard_event_get::@3: scope:[keyboard_event_get] from keyboard_event_get - [257] (byte) keyboard_events_size#4 ← -- (byte) keyboard_events_size#13 - [258] (byte) keyboard_event_get::return#1 ← *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#4) + [261] (byte) keyboard_events_size#4 ← -- (byte) keyboard_events_size#13 + [262] (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 - [259] (byte) keyboard_events_size#16 ← phi( keyboard_event_get/(byte) keyboard_events_size#13 keyboard_event_get::@3/(byte) keyboard_events_size#4 ) - [259] (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 ) - [260] return + [263] (byte) keyboard_events_size#16 ← phi( keyboard_event_get/(byte) keyboard_events_size#13 keyboard_event_get::@3/(byte) keyboard_events_size#4 ) + [263] (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 ) + [264] return to:@return keyboard_event_scan: scope:[keyboard_event_scan] from main::@9 - [261] phi() + [265] phi() to:keyboard_event_scan::@1 keyboard_event_scan::@1: scope:[keyboard_event_scan] from keyboard_event_scan keyboard_event_scan::@3 - [262] (byte) keyboard_events_size#29 ← phi( keyboard_event_scan/(byte) keyboard_events_size#19 keyboard_event_scan::@3/(byte) keyboard_events_size#13 ) - [262] (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 ) - [262] (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 ) - [263] (byte) keyboard_matrix_read::rowid#0 ← (byte) keyboard_event_scan::row#2 - [264] call keyboard_matrix_read - [265] (byte) keyboard_matrix_read::return#2 ← (byte) keyboard_matrix_read::return#0 + [266] (byte) keyboard_events_size#29 ← phi( keyboard_event_scan/(byte) keyboard_events_size#19 keyboard_event_scan::@3/(byte) keyboard_events_size#13 ) + [266] (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 ) + [266] (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 ) + [267] (byte) keyboard_matrix_read::rowid#0 ← (byte) keyboard_event_scan::row#2 + [268] call keyboard_matrix_read + [269] (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 - [266] (byte) keyboard_event_scan::row_scan#0 ← (byte) keyboard_matrix_read::return#2 - [267] 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 + [270] (byte) keyboard_event_scan::row_scan#0 ← (byte) keyboard_matrix_read::return#2 + [271] if((byte) keyboard_event_scan::row_scan#0!=*((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2)) goto keyboard_event_scan::@4 to:keyboard_event_scan::@13 keyboard_event_scan::@13: scope:[keyboard_event_scan] from keyboard_event_scan::@25 - [268] (byte) keyboard_event_scan::keycode#1 ← (byte) keyboard_event_scan::keycode#11 + (byte/signed byte/word/signed word/dword/signed dword) 8 + [272] (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 - [269] (byte) keyboard_events_size#13 ← phi( keyboard_event_scan::@13/(byte) keyboard_events_size#29 keyboard_event_scan::@19/(byte) keyboard_events_size#30 ) - [269] (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 ) - [270] (byte) keyboard_event_scan::row#1 ← ++ (byte) keyboard_event_scan::row#2 - [271] if((byte) keyboard_event_scan::row#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto keyboard_event_scan::@1 + [273] (byte) keyboard_events_size#13 ← phi( keyboard_event_scan::@13/(byte) keyboard_events_size#29 keyboard_event_scan::@19/(byte) keyboard_events_size#30 ) + [273] (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 ) + [274] (byte) keyboard_event_scan::row#1 ← ++ (byte) keyboard_event_scan::row#2 + [275] 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 - [272] phi() - [273] call keyboard_event_pressed - [274] (byte) keyboard_event_pressed::return#0 ← (byte) keyboard_event_pressed::return#11 + [276] phi() + [277] call keyboard_event_pressed + [278] (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 - [275] (byte~) keyboard_event_scan::$14 ← (byte) keyboard_event_pressed::return#0 - [276] if((byte~) keyboard_event_scan::$14==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@9 + [279] (byte~) keyboard_event_scan::$14 ← (byte) keyboard_event_pressed::return#0 + [280] 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 - [277] phi() + [281] phi() to:keyboard_event_scan::@9 keyboard_event_scan::@9: scope:[keyboard_event_scan] from keyboard_event_scan::@21 keyboard_event_scan::@26 - [278] (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 ) - [279] call keyboard_event_pressed - [280] (byte) keyboard_event_pressed::return#1 ← (byte) keyboard_event_pressed::return#11 + [282] (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 ) + [283] call keyboard_event_pressed + [284] (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 - [281] (byte~) keyboard_event_scan::$18 ← (byte) keyboard_event_pressed::return#1 - [282] if((byte~) keyboard_event_scan::$18==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@10 + [285] (byte~) keyboard_event_scan::$18 ← (byte) keyboard_event_pressed::return#1 + [286] 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 - [283] (byte) keyboard_modifiers#3 ← (byte) keyboard_modifiers#11 | (const byte) KEY_MODIFIER_RSHIFT#0 + [287] (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 - [284] (byte) keyboard_modifiers#12 ← phi( keyboard_event_scan::@22/(byte) keyboard_modifiers#3 keyboard_event_scan::@27/(byte) keyboard_modifiers#11 ) - [285] call keyboard_event_pressed - [286] (byte) keyboard_event_pressed::return#2 ← (byte) keyboard_event_pressed::return#11 + [288] (byte) keyboard_modifiers#12 ← phi( keyboard_event_scan::@22/(byte) keyboard_modifiers#3 keyboard_event_scan::@27/(byte) keyboard_modifiers#11 ) + [289] call keyboard_event_pressed + [290] (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 - [287] (byte~) keyboard_event_scan::$22 ← (byte) keyboard_event_pressed::return#2 - [288] if((byte~) keyboard_event_scan::$22==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@11 + [291] (byte~) keyboard_event_scan::$22 ← (byte) keyboard_event_pressed::return#2 + [292] 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 - [289] (byte) keyboard_modifiers#4 ← (byte) keyboard_modifiers#12 | (const byte) KEY_MODIFIER_CTRL#0 + [293] (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 - [290] (byte) keyboard_modifiers#13 ← phi( keyboard_event_scan::@23/(byte) keyboard_modifiers#4 keyboard_event_scan::@28/(byte) keyboard_modifiers#12 ) - [291] call keyboard_event_pressed - [292] (byte) keyboard_event_pressed::return#10 ← (byte) keyboard_event_pressed::return#11 + [294] (byte) keyboard_modifiers#13 ← phi( keyboard_event_scan::@23/(byte) keyboard_modifiers#4 keyboard_event_scan::@28/(byte) keyboard_modifiers#12 ) + [295] call keyboard_event_pressed + [296] (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 - [293] (byte~) keyboard_event_scan::$26 ← (byte) keyboard_event_pressed::return#10 - [294] if((byte~) keyboard_event_scan::$26==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@return + [297] (byte~) keyboard_event_scan::$26 ← (byte) keyboard_event_pressed::return#10 + [298] 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 - [295] (byte) keyboard_modifiers#5 ← (byte) keyboard_modifiers#13 | (const byte) KEY_MODIFIER_COMMODORE#0 + [299] (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 - [296] return + [300] return to:@return keyboard_event_scan::@4: scope:[keyboard_event_scan] from keyboard_event_scan::@25 keyboard_event_scan::@5 - [297] (byte) keyboard_events_size#10 ← phi( keyboard_event_scan::@25/(byte) keyboard_events_size#29 keyboard_event_scan::@5/(byte) keyboard_events_size#30 ) - [297] (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 ) - [297] (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 ) - [298] (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) - [299] (byte~) keyboard_event_scan::$4 ← (byte~) keyboard_event_scan::$3 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_event_scan::col#2) - [300] if((byte~) keyboard_event_scan::$4==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@5 + [301] (byte) keyboard_events_size#10 ← phi( keyboard_event_scan::@25/(byte) keyboard_events_size#29 keyboard_event_scan::@5/(byte) keyboard_events_size#30 ) + [301] (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 ) + [301] (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 ) + [302] (byte~) keyboard_event_scan::$3 ← (byte) keyboard_event_scan::row_scan#0 ^ *((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2) + [303] (byte~) keyboard_event_scan::$4 ← (byte~) keyboard_event_scan::$3 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_event_scan::col#2) + [304] 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 - [301] if((byte) keyboard_events_size#10==(byte/signed byte/word/signed word/dword/signed dword) 8) goto keyboard_event_scan::@5 + [305] 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 - [302] (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) - [303] if((byte) keyboard_event_scan::event_type#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@7 + [306] (byte) keyboard_event_scan::event_type#0 ← (byte) keyboard_event_scan::row_scan#0 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_event_scan::col#2) + [307] 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 - [304] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte) keyboard_event_scan::keycode#10 - [305] (byte) keyboard_events_size#2 ← ++ (byte) keyboard_events_size#10 + [308] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte) keyboard_event_scan::keycode#10 + [309] (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 - [306] (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 ) - [307] (byte) keyboard_event_scan::keycode#15 ← ++ (byte) keyboard_event_scan::keycode#10 - [308] (byte) keyboard_event_scan::col#1 ← ++ (byte) keyboard_event_scan::col#2 - [309] if((byte) keyboard_event_scan::col#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto keyboard_event_scan::@4 + [310] (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 ) + [311] (byte) keyboard_event_scan::keycode#15 ← ++ (byte) keyboard_event_scan::keycode#10 + [312] (byte) keyboard_event_scan::col#1 ← ++ (byte) keyboard_event_scan::col#2 + [313] 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 - [310] *((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2) ← (byte) keyboard_event_scan::row_scan#0 + [314] *((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 - [311] (byte/word/dword~) keyboard_event_scan::$11 ← (byte) keyboard_event_scan::keycode#10 | (byte/signed byte/word/signed word/dword/signed dword) 64 - [312] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte/word/dword~) keyboard_event_scan::$11 - [313] (byte) keyboard_events_size#1 ← ++ (byte) keyboard_events_size#10 + [315] (byte/word/dword~) keyboard_event_scan::$11 ← (byte) keyboard_event_scan::keycode#10 | (byte/signed byte/word/signed word/dword/signed dword) 64 + [316] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte/word/dword~) keyboard_event_scan::$11 + [317] (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 - [314] *((const byte*) CIA1_PORT_A#0) ← *((const byte[8]) keyboard_matrix_row_bitmask#0 + (byte) keyboard_matrix_read::rowid#0) - [315] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) + [318] *((const byte*) CIA1_PORT_A#0) ← *((const byte[8]) keyboard_matrix_row_bitmask#0 + (byte) keyboard_matrix_read::rowid#0) + [319] (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 - [316] return + [320] return to:@return play_init: scope:[play_init] from main::@24 - [317] phi() + [321] phi() to:play_init::@1 play_init::@1: scope:[play_init] from play_init play_init::@1 - [318] (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 ) - [318] (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 ) - [318] (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 ) - [319] (byte~) play_init::$1 ← (byte) play_init::j#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 - [320] *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte~) play_init::$1) ← (byte*) play_init::pli#2 - [321] *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0 + (byte) play_init::j#2) ← (byte) play_init::idx#2 - [322] (byte*) play_init::pli#1 ← (byte*) play_init::pli#2 + (const byte) PLAYFIELD_COLS#0 - [323] (byte) play_init::idx#1 ← (byte) play_init::idx#2 + (const byte) PLAYFIELD_COLS#0 - [324] (byte) play_init::j#1 ← ++ (byte) play_init::j#2 - [325] 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 + [322] (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 ) + [322] (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 ) + [322] (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 ) + [323] (byte~) play_init::$1 ← (byte) play_init::j#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 + [324] *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte~) play_init::$1) ← (byte*) play_init::pli#2 + [325] *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0 + (byte) play_init::j#2) ← (byte) play_init::idx#2 + [326] (byte*) play_init::pli#1 ← (byte*) play_init::pli#2 + (const byte) PLAYFIELD_COLS#0 + [327] (byte) play_init::idx#1 ← (byte) play_init::idx#2 + (const byte) PLAYFIELD_COLS#0 + [328] (byte) play_init::j#1 ← ++ (byte) play_init::j#2 + [329] 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 - [326] *((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 + [330] *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0+(const byte) PLAYFIELD_LINES#0) ← (const byte) PLAYFIELD_COLS#0*(const byte) PLAYFIELD_LINES#0 to:play_init::@return play_init::@return: scope:[play_init] from play_init::@2 - [327] return + [331] return to:@return sprites_irq_init: scope:[sprites_irq_init] from main::@23 asm { sei } - [329] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0 + [333] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0 asm { ldaCIA1_INTERRUPT } - [331] *((const byte*) PROCPORT_DDR#0) ← (const byte) PROCPORT_DDR_MEMORY_MASK#0 - [332] *((const byte*) PROCPORT#0) ← (const byte) PROCPORT_RAM_IO#0 - [333] *((const byte*) CIA1_INTERRUPT#0) ← (const byte) CIA_INTERRUPT_CLEAR#0 - [334] *((const byte*) VIC_CONTROL#0) ← *((const byte*) VIC_CONTROL#0) & (byte/signed byte/word/signed word/dword/signed dword) 127 - [335] *((const byte*) RASTER#0) ← (const byte) IRQ_RASTER_FIRST#0 - [336] *((const byte*) IRQ_ENABLE#0) ← (const byte) IRQ_RASTER#0 - [337] *((const void()**) HARDWARE_IRQ#0) ← &interrupt(HARDWARE_CLOBBER)(void()) irq() + [335] *((const byte*) PROCPORT_DDR#0) ← (const byte) PROCPORT_DDR_MEMORY_MASK#0 + [336] *((const byte*) PROCPORT#0) ← (const byte) PROCPORT_RAM_IO#0 + [337] *((const byte*) CIA1_INTERRUPT#0) ← (const byte) CIA_INTERRUPT_CLEAR#0 + [338] *((const byte*) VIC_CONTROL#0) ← *((const byte*) VIC_CONTROL#0) & (byte/signed byte/word/signed word/dword/signed dword) 127 + [339] *((const byte*) RASTER#0) ← (const byte) IRQ_RASTER_FIRST#0 + [340] *((const byte*) IRQ_ENABLE#0) ← (const byte) IRQ_RASTER#0 + [341] *((const void()**) HARDWARE_IRQ#0) ← &interrupt(HARDWARE_CLOBBER)(void()) irq() asm { cli } to:sprites_irq_init::@return sprites_irq_init::@return: scope:[sprites_irq_init] from sprites_irq_init - [339] return + [343] return to:@return sprites_init: scope:[sprites_init] from main::@22 - [340] *((const byte*) SPRITES_ENABLE#0) ← (byte/signed byte/word/signed word/dword/signed dword) 15 - [341] *((const byte*) SPRITES_MC#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 - [342] *((const byte*) SPRITES_EXPAND_Y#0) ← *((const byte*) SPRITES_MC#0) - [343] *((const byte*) SPRITES_EXPAND_X#0) ← *((const byte*) SPRITES_EXPAND_Y#0) + [344] *((const byte*) SPRITES_ENABLE#0) ← (byte/signed byte/word/signed word/dword/signed dword) 15 + [345] *((const byte*) SPRITES_MC#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 + [346] *((const byte*) SPRITES_EXPAND_Y#0) ← *((const byte*) SPRITES_MC#0) + [347] *((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 - [344] (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 ) - [344] (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 ) - [345] (byte) sprites_init::s2#0 ← (byte) sprites_init::s#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 - [346] *((const byte*) SPRITES_XPOS#0 + (byte) sprites_init::s2#0) ← (byte) sprites_init::xpos#2 - [347] *((const byte*) SPRITES_COLS#0 + (byte) sprites_init::s#2) ← (const byte) BLACK#0 - [348] (byte) sprites_init::xpos#1 ← (byte) sprites_init::xpos#2 + (byte/signed byte/word/signed word/dword/signed dword) 24 - [349] (byte) sprites_init::s#1 ← ++ (byte) sprites_init::s#2 - [350] if((byte) sprites_init::s#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto sprites_init::@1 + [348] (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 ) + [348] (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 ) + [349] (byte) sprites_init::s2#0 ← (byte) sprites_init::s#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 + [350] *((const byte*) SPRITES_XPOS#0 + (byte) sprites_init::s2#0) ← (byte) sprites_init::xpos#2 + [351] *((const byte*) SPRITES_COLS#0 + (byte) sprites_init::s#2) ← (const byte) BLACK#0 + [352] (byte) sprites_init::xpos#1 ← (byte) sprites_init::xpos#2 + (byte/signed byte/word/signed word/dword/signed dword) 24 + [353] (byte) sprites_init::s#1 ← ++ (byte) sprites_init::s#2 + [354] 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 - [351] return + [355] return to:@return render_init: scope:[render_init] from main::@21 - [352] phi() + [356] phi() to:render_init::vicSelectGfxBank1 render_init::vicSelectGfxBank1: scope:[render_init] from render_init - [353] *((const byte*) CIA2_PORT_A_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3 + [357] *((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 - [354] phi() + [358] phi() to:render_init::vicSelectGfxBank1_@1 render_init::vicSelectGfxBank1_@1: scope:[render_init] from render_init::vicSelectGfxBank1_toDd001 - [355] *((const byte*) CIA2_PORT_A#0) ← (const byte) render_init::vicSelectGfxBank1_toDd001_return#0 + [359] *((const byte*) CIA2_PORT_A#0) ← (const byte) render_init::vicSelectGfxBank1_toDd001_return#0 to:render_init::toD0181 render_init::toD0181: scope:[render_init] from render_init::vicSelectGfxBank1_@1 - [356] phi() + [360] phi() to:render_init::@8 render_init::@8: scope:[render_init] from render_init::toD0181 - [357] *((const byte*) D018#0) ← (const byte) render_init::toD0181_return#0 - [358] *((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 - [359] *((const byte*) BGCOL1#0) ← (const byte) BLACK#0 - [360] *((const byte*) BGCOL2#0) ← (const byte) BLUE#0 - [361] *((const byte*) BGCOL3#0) ← (const byte) CYAN#0 - [362] *((const byte*) BGCOL4#0) ← (const byte) GREY#0 - [363] call fill + [361] *((const byte*) D018#0) ← (const byte) render_init::toD0181_return#0 + [362] *((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 + [363] *((const byte*) BGCOL1#0) ← (const byte) BLACK#0 + [364] *((const byte*) BGCOL2#0) ← (const byte) BLUE#0 + [365] *((const byte*) BGCOL3#0) ← (const byte) CYAN#0 + [366] *((const byte*) BGCOL4#0) ← (const byte) GREY#0 + [367] call fill to:render_init::@9 render_init::@9: scope:[render_init] from render_init::@8 - [364] phi() - [365] call render_screen_original + [368] phi() + [369] call render_screen_original to:render_init::@1 render_init::@1: scope:[render_init] from render_init::@1 render_init::@9 - [366] (byte*) render_init::li#2 ← phi( render_init::@1/(byte*) render_init::li#1 render_init::@9/(const byte*) PLAYFIELD_SCREEN#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 ) - [366] (byte) render_init::i#2 ← phi( render_init::@1/(byte) render_init::i#1 render_init::@9/(byte/signed byte/word/signed word/dword/signed dword) 0 ) - [367] (byte~) render_init::$11 ← (byte) render_init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 - [368] *((const byte*[PLAYFIELD_LINES#0]) screen_lines#0 + (byte~) render_init::$11) ← (byte*) render_init::li#2 - [369] (byte*) render_init::li#1 ← (byte*) render_init::li#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 - [370] (byte) render_init::i#1 ← ++ (byte) render_init::i#2 - [371] 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 + [370] (byte*) render_init::li#2 ← phi( render_init::@1/(byte*) render_init::li#1 render_init::@9/(const byte*) PLAYFIELD_SCREEN#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 ) + [370] (byte) render_init::i#2 ← phi( render_init::@1/(byte) render_init::i#1 render_init::@9/(byte/signed byte/word/signed word/dword/signed dword) 0 ) + [371] (byte~) render_init::$11 ← (byte) render_init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 + [372] *((const byte*[PLAYFIELD_LINES#0]) screen_lines#0 + (byte~) render_init::$11) ← (byte*) render_init::li#2 + [373] (byte*) render_init::li#1 ← (byte*) render_init::li#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 + [374] (byte) render_init::i#1 ← ++ (byte) render_init::i#2 + [375] 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::@2 render_init::@2: scope:[render_init] from render_init::@1 render_init::@5 - [372] (byte) render_init::l#4 ← phi( render_init::@1/(byte/signed byte/word/signed word/dword/signed dword) 2 render_init::@5/(byte) render_init::l#1 ) - [372] (byte*) render_init::line#4 ← phi( render_init::@1/(const byte*) COLS#0+(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 16 render_init::@5/(byte*) render_init::line#1 ) + [376] (byte) render_init::l#4 ← phi( render_init::@1/(byte/signed byte/word/signed word/dword/signed dword) 2 render_init::@5/(byte) render_init::l#1 ) + [376] (byte*) render_init::line#4 ← phi( render_init::@1/(const byte*) COLS#0+(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 16 render_init::@5/(byte*) render_init::line#1 ) to:render_init::@3 render_init::@3: scope:[render_init] from render_init::@2 render_init::@3 - [373] (byte) render_init::c#2 ← phi( render_init::@2/(byte/signed byte/word/signed word/dword/signed dword) 0 render_init::@3/(byte) render_init::c#1 ) - [374] (byte*~) render_init::$18 ← (byte*) render_init::line#4 + (byte) render_init::c#2 - [375] *((byte*~) render_init::$18) ← (const byte) WHITE#0 - [376] (byte) render_init::c#1 ← ++ (byte) render_init::c#2 - [377] if((byte) render_init::c#1!=(const byte) PLAYFIELD_COLS#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_init::@3 + [377] (byte) render_init::c#2 ← phi( render_init::@2/(byte/signed byte/word/signed word/dword/signed dword) 0 render_init::@3/(byte) render_init::c#1 ) + [378] (byte*~) render_init::$18 ← (byte*) render_init::line#4 + (byte) render_init::c#2 + [379] *((byte*~) render_init::$18) ← (const byte) WHITE#0 + [380] (byte) render_init::c#1 ← ++ (byte) render_init::c#2 + [381] if((byte) render_init::c#1!=(const byte) PLAYFIELD_COLS#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_init::@3 to:render_init::@5 render_init::@5: scope:[render_init] from render_init::@3 - [378] (byte*) render_init::line#1 ← (byte*) render_init::line#4 + (byte/signed byte/word/signed word/dword/signed dword) 40 - [379] (byte) render_init::l#1 ← ++ (byte) render_init::l#4 - [380] if((byte) render_init::l#1!=(const byte) PLAYFIELD_LINES#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_init::@2 + [382] (byte*) render_init::line#1 ← (byte*) render_init::line#4 + (byte/signed byte/word/signed word/dword/signed dword) 40 + [383] (byte) render_init::l#1 ← ++ (byte) render_init::l#4 + [384] if((byte) render_init::l#1!=(const byte) PLAYFIELD_LINES#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_init::@2 to:render_init::@return render_init::@return: scope:[render_init] from render_init::@5 - [381] return + [385] return to:@return render_screen_original: scope:[render_screen_original] from render_init::@9 - [382] phi() + [386] phi() to:render_screen_original::@1 render_screen_original::@1: scope:[render_screen_original] from render_screen_original render_screen_original::@7 - [383] (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 ) - [383] (byte*) render_screen_original::orig#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::orig#1 ) - [383] (byte*) render_screen_original::screen#7 ← phi( render_screen_original/(const byte*) PLAYFIELD_SCREEN#0 render_screen_original::@7/(byte*) render_screen_original::screen#3 ) + [387] (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 ) + [387] (byte*) render_screen_original::orig#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::orig#1 ) + [387] (byte*) render_screen_original::screen#7 ← phi( render_screen_original/(const byte*) PLAYFIELD_SCREEN#0 render_screen_original::@7/(byte*) render_screen_original::screen#3 ) to:render_screen_original::@2 render_screen_original::@2: scope:[render_screen_original] from render_screen_original::@1 render_screen_original::@2 - [384] (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 ) - [384] (byte*) render_screen_original::screen#4 ← phi( render_screen_original::@1/(byte*) render_screen_original::screen#7 render_screen_original::@2/(byte*) render_screen_original::screen#1 ) - [385] *((byte*) render_screen_original::screen#4) ← (const byte) render_screen_original::SPACE#0 - [386] (byte*) render_screen_original::screen#1 ← ++ (byte*) render_screen_original::screen#4 - [387] (byte) render_screen_original::x#1 ← ++ (byte) render_screen_original::x#4 - [388] if((byte) render_screen_original::x#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_screen_original::@2 + [388] (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 ) + [388] (byte*) render_screen_original::screen#4 ← phi( render_screen_original::@1/(byte*) render_screen_original::screen#7 render_screen_original::@2/(byte*) render_screen_original::screen#1 ) + [389] *((byte*) render_screen_original::screen#4) ← (const byte) render_screen_original::SPACE#0 + [390] (byte*) render_screen_original::screen#1 ← ++ (byte*) render_screen_original::screen#4 + [391] (byte) render_screen_original::x#1 ← ++ (byte) render_screen_original::x#4 + [392] 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 - [389] (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 ) - [389] (byte*) render_screen_original::screen#5 ← phi( render_screen_original::@2/(byte*) render_screen_original::screen#1 render_screen_original::@3/(byte*) render_screen_original::screen#2 ) - [389] (byte*) render_screen_original::orig#2 ← phi( render_screen_original::@2/(byte*) render_screen_original::orig#4 render_screen_original::@3/(byte*) render_screen_original::orig#1 ) - [390] (byte/signed word/word/dword/signed dword~) render_screen_original::$3 ← *((byte*) render_screen_original::orig#2) + (byte/signed byte/word/signed word/dword/signed dword) 1 - [391] *((byte*) render_screen_original::screen#5) ← (byte/signed word/word/dword/signed dword~) render_screen_original::$3 - [392] (byte*) render_screen_original::screen#2 ← ++ (byte*) render_screen_original::screen#5 - [393] (byte*) render_screen_original::orig#1 ← ++ (byte*) render_screen_original::orig#2 - [394] (byte) render_screen_original::x#2 ← ++ (byte) render_screen_original::x#5 - [395] if((byte) render_screen_original::x#2!=(byte/signed byte/word/signed word/dword/signed dword) 36) goto render_screen_original::@3 + [393] (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 ) + [393] (byte*) render_screen_original::screen#5 ← phi( render_screen_original::@2/(byte*) render_screen_original::screen#1 render_screen_original::@3/(byte*) render_screen_original::screen#2 ) + [393] (byte*) render_screen_original::orig#2 ← phi( render_screen_original::@2/(byte*) render_screen_original::orig#4 render_screen_original::@3/(byte*) render_screen_original::orig#1 ) + [394] (byte/signed word/word/dword/signed dword~) render_screen_original::$3 ← *((byte*) render_screen_original::orig#2) + (byte/signed byte/word/signed word/dword/signed dword) 1 + [395] *((byte*) render_screen_original::screen#5) ← (byte/signed word/word/dword/signed dword~) render_screen_original::$3 + [396] (byte*) render_screen_original::screen#2 ← ++ (byte*) render_screen_original::screen#5 + [397] (byte*) render_screen_original::orig#1 ← ++ (byte*) render_screen_original::orig#2 + [398] (byte) render_screen_original::x#2 ← ++ (byte) render_screen_original::x#5 + [399] 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 - [396] (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 ) - [396] (byte*) render_screen_original::screen#6 ← phi( render_screen_original::@3/(byte*) render_screen_original::screen#2 render_screen_original::@4/(byte*) render_screen_original::screen#3 ) - [397] *((byte*) render_screen_original::screen#6) ← (const byte) render_screen_original::SPACE#0 - [398] (byte*) render_screen_original::screen#3 ← ++ (byte*) render_screen_original::screen#6 - [399] (byte) render_screen_original::x#3 ← ++ (byte) render_screen_original::x#6 - [400] if((byte) render_screen_original::x#3!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto render_screen_original::@4 + [400] (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 ) + [400] (byte*) render_screen_original::screen#6 ← phi( render_screen_original::@3/(byte*) render_screen_original::screen#2 render_screen_original::@4/(byte*) render_screen_original::screen#3 ) + [401] *((byte*) render_screen_original::screen#6) ← (const byte) render_screen_original::SPACE#0 + [402] (byte*) render_screen_original::screen#3 ← ++ (byte*) render_screen_original::screen#6 + [403] (byte) render_screen_original::x#3 ← ++ (byte) render_screen_original::x#6 + [404] 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 - [401] (byte) render_screen_original::y#1 ← ++ (byte) render_screen_original::y#6 - [402] if((byte) render_screen_original::y#1!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto render_screen_original::@1 + [405] (byte) render_screen_original::y#1 ← ++ (byte) render_screen_original::y#6 + [406] 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 - [403] return + [407] return to:@return fill: scope:[fill] from render_init::@8 - [404] phi() + [408] phi() to:fill::@1 fill::@1: scope:[fill] from fill fill::@1 - [405] (byte*) fill::addr#2 ← phi( fill/(const byte*) COLS#0 fill::@1/(byte*) fill::addr#1 ) - [406] *((byte*) fill::addr#2) ← (const byte) DARK_GREY#0 - [407] (byte*) fill::addr#1 ← ++ (byte*) fill::addr#2 - [408] if((byte*) fill::addr#1!=(const byte*) fill::end#0) goto fill::@1 + [409] (byte*) fill::addr#2 ← phi( fill/(const byte*) COLS#0 fill::@1/(byte*) fill::addr#1 ) + [410] *((byte*) fill::addr#2) ← (const byte) DARK_GREY#0 + [411] (byte*) fill::addr#1 ← ++ (byte*) fill::addr#2 + [412] if((byte*) fill::addr#1!=(const byte*) fill::end#0) goto fill::@1 to:fill::@return fill::@return: scope:[fill] from fill::@1 - [409] return + [413] return to:@return sid_rnd_init: scope:[sid_rnd_init] from main - [410] *((const word*) SID_VOICE3_FREQ#0) ← (word/dword/signed dword) 65535 - [411] *((const byte*) SID_VOICE3_CONTROL#0) ← (const byte) SID_CONTROL_NOISE#0 + [414] *((const word*) SID_VOICE3_FREQ#0) ← (word/dword/signed dword) 65535 + [415] *((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 - [412] return + [416] return to:@return irq: scope:[irq] from - [413] *((const byte*) BORDERCOL#0) ← (const byte) DARK_GREY#0 - [414] (byte) irq::ypos#0 ← (byte) irq_sprite_ypos#0 - [415] *((const byte*) SPRITES_YPOS#0) ← (byte) irq::ypos#0 - [416] *((const byte*) SPRITES_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte) irq::ypos#0 - [417] *((const byte*) SPRITES_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte) irq::ypos#0 - [418] *((const byte*) SPRITES_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte) irq::ypos#0 + [417] *((const byte*) BORDERCOL#0) ← (const byte) DARK_GREY#0 + [418] (byte) irq::ypos#0 ← (byte) irq_sprite_ypos#0 + [419] *((const byte*) SPRITES_YPOS#0) ← (byte) irq::ypos#0 + [420] *((const byte*) SPRITES_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte) irq::ypos#0 + [421] *((const byte*) SPRITES_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte) irq::ypos#0 + [422] *((const byte*) SPRITES_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte) irq::ypos#0 to:irq::@1 irq::@1: scope:[irq] from irq irq::@1 - [419] if(*((const byte*) RASTER#0)!=(byte) irq_sprite_ypos#0) goto irq::@1 + [423] if(*((const byte*) RASTER#0)!=(byte) irq_sprite_ypos#0) goto irq::@1 to:irq::@5 irq::@5: scope:[irq] from irq::@1 - [420] (byte) irq::ptr#0 ← (byte) irq_sprite_ptr#0 - [421] *((const byte*) PLAYFIELD_SPRITE_PTRS#0) ← (byte) irq::ptr#0 - [422] (byte) irq::ptr#1 ← ++ (byte) irq::ptr#0 - [423] *((const byte*) PLAYFIELD_SPRITE_PTRS#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte) irq::ptr#1 - [424] *((const byte*) PLAYFIELD_SPRITE_PTRS#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte) irq::ptr#1 - [425] (byte) irq::ptr#2 ← ++ (byte) irq::ptr#1 - [426] *((const byte*) PLAYFIELD_SPRITE_PTRS#0+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte) irq::ptr#2 - [427] (byte) irq_cnt#1 ← ++ (byte) irq_cnt#0 - [428] if((byte) irq_cnt#1==(byte/signed byte/word/signed word/dword/signed dword) 10) goto irq::@2 + [424] (byte) irq::ptr#0 ← (byte) irq_sprite_ptr#0 + [425] *((const byte*) PLAYFIELD_SPRITE_PTRS#0) ← (byte) irq::ptr#0 + [426] (byte) irq::ptr#1 ← ++ (byte) irq::ptr#0 + [427] *((const byte*) PLAYFIELD_SPRITE_PTRS#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte) irq::ptr#1 + [428] *((const byte*) PLAYFIELD_SPRITE_PTRS#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte) irq::ptr#1 + [429] (byte) irq::ptr#2 ← ++ (byte) irq::ptr#1 + [430] *((const byte*) PLAYFIELD_SPRITE_PTRS#0+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte) irq::ptr#2 + [431] (byte) irq_cnt#1 ← ++ (byte) irq_cnt#0 + [432] if((byte) irq_cnt#1==(byte/signed byte/word/signed word/dword/signed dword) 10) goto irq::@2 to:irq::@6 irq::@6: scope:[irq] from irq::@5 - [429] (byte) irq_raster_next#2 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 - [430] (byte) irq_sprite_ypos#2 ← (byte) irq_sprite_ypos#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 - [431] (byte) irq_sprite_ptr#2 ← (byte) irq_sprite_ptr#0 + (byte/signed byte/word/signed word/dword/signed dword) 3 + [433] (byte) irq_raster_next#2 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 + [434] (byte) irq_sprite_ypos#2 ← (byte) irq_sprite_ypos#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 + [435] (byte) irq_sprite_ptr#2 ← (byte) irq_sprite_ptr#0 + (byte/signed byte/word/signed word/dword/signed dword) 3 to:irq::@3 irq::@3: scope:[irq] from irq::@6 irq::@9 - [432] (byte) irq_raster_next#12 ← phi( irq::@6/(byte) irq_raster_next#2 irq::@9/(byte) irq_raster_next#1 ) - [433] (byte) irq::raster_next#0 ← (byte) irq_raster_next#12 - [434] (byte~) irq::$3 ← (byte) irq::raster_next#0 & (byte/signed byte/word/signed word/dword/signed dword) 7 - [435] if((byte~) irq::$3!=(byte/signed byte/word/signed word/dword/signed dword) 3) goto irq::@4 + [436] (byte) irq_raster_next#12 ← phi( irq::@6/(byte) irq_raster_next#2 irq::@9/(byte) irq_raster_next#1 ) + [437] (byte) irq::raster_next#0 ← (byte) irq_raster_next#12 + [438] (byte~) irq::$3 ← (byte) irq::raster_next#0 & (byte/signed byte/word/signed word/dword/signed dword) 7 + [439] if((byte~) irq::$3!=(byte/signed byte/word/signed word/dword/signed dword) 3) goto irq::@4 to:irq::@8 irq::@8: scope:[irq] from irq::@3 - [436] (byte) irq::raster_next#1 ← (byte) irq::raster_next#0 - (byte/signed byte/word/signed word/dword/signed dword) 1 + [440] (byte) irq::raster_next#1 ← (byte) irq::raster_next#0 - (byte/signed byte/word/signed word/dword/signed dword) 1 to:irq::@4 irq::@4: scope:[irq] from irq::@3 irq::@8 - [437] (byte) irq::raster_next#2 ← phi( irq::@3/(byte) irq::raster_next#0 irq::@8/(byte) irq::raster_next#1 ) - [438] *((const byte*) RASTER#0) ← (byte) irq::raster_next#2 - [439] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0 - [440] *((const byte*) BORDERCOL#0) ← (const byte) BLACK#0 + [441] (byte) irq::raster_next#2 ← phi( irq::@3/(byte) irq::raster_next#0 irq::@8/(byte) irq::raster_next#1 ) + [442] *((const byte*) RASTER#0) ← (byte) irq::raster_next#2 + [443] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0 + [444] *((const byte*) BORDERCOL#0) ← (const byte) BLACK#0 to:irq::@return irq::@return: scope:[irq] from irq::@4 - [441] return + [445] return to:@return irq::@2: scope:[irq] from irq::@5 - [442] (byte) irq_cnt#13 ← (byte/signed byte/word/signed word/dword/signed dword) 0 - [443] (byte) irq_raster_next#1 ← (const byte) IRQ_RASTER_FIRST#0 - [444] (byte) irq_sprite_ypos#1 ← (byte/signed byte/word/signed word/dword/signed dword) 50 + [446] (byte) irq_cnt#13 ← (byte/signed byte/word/signed word/dword/signed dword) 0 + [447] (byte) irq_raster_next#1 ← (const byte) IRQ_RASTER_FIRST#0 + [448] (byte) irq_sprite_ypos#1 ← (byte/signed byte/word/signed word/dword/signed dword) 50 to:irq::toSpritePtr2 irq::toSpritePtr2: scope:[irq] from irq::@2 - [445] phi() + [449] phi() to:irq::@9 irq::@9: scope:[irq] from irq::toSpritePtr2 - [446] (byte) irq_sprite_ptr#1 ← (const byte) irq::toSpritePtr2_return#0 + [450] (byte) irq_sprite_ptr#1 ← (const byte) irq::toSpritePtr2_return#0 to:irq::@3 @@ -7387,6 +7399,8 @@ VARIABLE REGISTER WEIGHTS (byte) ORANGE (word[]) PIECES (byte[]) PIECES_CHARS +(byte[]) PIECES_START_X +(byte[]) PIECES_START_Y (byte[4*4*4]) PIECE_I (byte[4*4*4]) PIECE_J (byte[4*4*4]) PIECE_L @@ -7476,7 +7490,7 @@ VARIABLE REGISTER WEIGHTS (byte*~) current_piece#77 4.0 (byte) current_piece_char (byte) current_piece_char#11 1.04 -(byte) current_piece_char#13 0.7272727272727273 +(byte) current_piece_char#13 0.6153846153846154 (byte) current_piece_char#16 19.96078431372549 (byte) current_piece_char#21 6.0 (byte) current_piece_char#63 48.285714285714285 @@ -7486,28 +7500,32 @@ VARIABLE REGISTER WEIGHTS (byte*) current_piece_gfx#10 19.96078431372549 (byte*) current_piece_gfx#14 0.2962962962962963 (byte*) current_piece_gfx#15 1.8666666666666665 -(byte*) current_piece_gfx#17 0.6666666666666666 +(byte*) current_piece_gfx#17 0.5 (byte*) current_piece_gfx#27 6.0 (byte*) current_piece_gfx#4 4.0 (byte*) current_piece_gfx#53 48.285714285714285 (byte*~) current_piece_gfx#95 2.0 (byte*~) current_piece_gfx#96 11.0 (byte) current_xpos -(byte~) current_xpos#104 7.333333333333333 -(byte) current_xpos#11 2.313725490196078 +(byte~) current_xpos#105 1.3333333333333333 +(byte~) current_xpos#106 7.333333333333333 +(byte) current_xpos#11 2.3529411764705883 (byte) current_xpos#16 0.72 (byte) current_xpos#20 0.871794871794872 +(byte) current_xpos#24 0.5333333333333333 (byte) current_xpos#3 4.0 -(byte) current_xpos#34 4.0 -(byte) current_xpos#48 5.333333333333333 +(byte) current_xpos#34 6.0 +(byte) current_xpos#48 5.428571428571429 (byte) current_xpos#5 4.0 (byte) current_ypos (byte) current_ypos#1 4.0 -(byte) current_ypos#10 13.0 +(byte) current_ypos#10 15.0 (byte) current_ypos#14 0.48484848484848475 -(byte) current_ypos#22 0.5588235294117647 -(byte) current_ypos#30 4.0 -(byte~) current_ypos#78 5.5 +(byte) current_ypos#19 0.5714285714285714 +(byte) current_ypos#22 0.6176470588235294 +(byte) current_ypos#30 6.0 +(byte~) current_ypos#79 1.0 +(byte~) current_ypos#80 5.5 (void()) fill((byte*) fill::start , (word) fill::size , (byte) fill::val) (byte*) fill::addr (byte*) fill::addr#1 16.5 @@ -7777,10 +7795,10 @@ interrupt(HARDWARE_CLOBBER)(void()) irq() (byte) play_remove_lines::y#8 14.428571428571429 (void()) play_spawn_current() (byte~) play_spawn_current::$1 202.0 -(byte~) play_spawn_current::$3 0.18181818181818182 +(byte~) play_spawn_current::$3 0.13333333333333333 (byte) play_spawn_current::piece_idx (byte) play_spawn_current::piece_idx#1 202.0 -(byte) play_spawn_current::piece_idx#2 51.5 +(byte) play_spawn_current::piece_idx#2 35.00000000000001 (byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield (byte*[PLAYFIELD_LINES#0]) playfield_lines (byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx @@ -7911,10 +7929,9 @@ interrupt(HARDWARE_CLOBBER)(void()) irq() (byte*) toSpritePtr1_sprite Initial phi equivalence classes -[ current_ypos#22 current_ypos#14 current_ypos#30 current_ypos#1 ] [ current_movedown_counter#12 current_movedown_counter#10 current_movedown_counter#1 ] -[ current_ypos#10 current_ypos#78 ] -[ current_xpos#48 current_xpos#104 ] +[ current_ypos#10 current_ypos#79 current_ypos#80 ] +[ current_xpos#48 current_xpos#105 current_xpos#106 ] [ current_piece_gfx#53 current_piece_gfx#95 current_piece_gfx#96 ] [ current_piece_char#63 current_piece_char#83 current_piece_char#84 ] [ render_current::ypos2#2 render_current::ypos2#0 render_current::ypos2#1 ] @@ -7940,10 +7957,11 @@ Initial phi equivalence classes [ play_collision::return#14 ] [ play_move_leftright::return#1 ] [ play_move_down::movedown#6 play_move_down::movedown#3 play_move_down::movedown#7 play_move_down::movedown#2 play_move_down::movedown#10 ] +[ current_ypos#30 current_ypos#22 current_ypos#14 current_ypos#19 current_ypos#1 ] [ current_piece#20 current_piece#77 current_piece#16 current_piece#10 current_piece#72 ] [ current_orientation#29 current_orientation#10 current_orientation#19 current_orientation#4 current_orientation#14 ] [ current_piece_gfx#27 current_piece_gfx#10 current_piece_gfx#15 current_piece_gfx#17 current_piece_gfx#4 current_piece_gfx#14 ] -[ current_xpos#34 current_xpos#11 current_xpos#20 current_xpos#5 current_xpos#16 current_xpos#3 ] +[ current_xpos#34 current_xpos#11 current_xpos#20 current_xpos#24 current_xpos#5 current_xpos#16 current_xpos#3 ] [ current_piece_char#21 current_piece_char#16 current_piece_char#11 current_piece_char#13 ] [ play_move_down::return#2 ] [ play_spawn_current::piece_idx#2 play_spawn_current::piece_idx#1 ] @@ -8063,10 +8081,9 @@ Added variable irq_cnt#13 to zero page equivalence class [ irq_cnt#13 ] Added variable irq_sprite_ypos#1 to zero page equivalence class [ irq_sprite_ypos#1 ] Added variable irq_sprite_ptr#1 to zero page equivalence class [ irq_sprite_ptr#1 ] Complete equivalence classes -[ current_ypos#22 current_ypos#14 current_ypos#30 current_ypos#1 ] [ current_movedown_counter#12 current_movedown_counter#10 current_movedown_counter#1 ] -[ current_ypos#10 current_ypos#78 ] -[ current_xpos#48 current_xpos#104 ] +[ current_ypos#10 current_ypos#79 current_ypos#80 ] +[ current_xpos#48 current_xpos#105 current_xpos#106 ] [ current_piece_gfx#53 current_piece_gfx#95 current_piece_gfx#96 ] [ current_piece_char#63 current_piece_char#83 current_piece_char#84 ] [ render_current::ypos2#2 render_current::ypos2#0 render_current::ypos2#1 ] @@ -8092,10 +8109,11 @@ Complete equivalence classes [ play_collision::return#14 ] [ play_move_leftright::return#1 ] [ play_move_down::movedown#6 play_move_down::movedown#3 play_move_down::movedown#7 play_move_down::movedown#2 play_move_down::movedown#10 ] +[ current_ypos#30 current_ypos#22 current_ypos#14 current_ypos#19 current_ypos#1 ] [ current_piece#20 current_piece#77 current_piece#16 current_piece#10 current_piece#72 ] [ current_orientation#29 current_orientation#10 current_orientation#19 current_orientation#4 current_orientation#14 ] [ current_piece_gfx#27 current_piece_gfx#10 current_piece_gfx#15 current_piece_gfx#17 current_piece_gfx#4 current_piece_gfx#14 ] -[ current_xpos#34 current_xpos#11 current_xpos#20 current_xpos#5 current_xpos#16 current_xpos#3 ] +[ current_xpos#34 current_xpos#11 current_xpos#20 current_xpos#24 current_xpos#5 current_xpos#16 current_xpos#3 ] [ current_piece_char#21 current_piece_char#16 current_piece_char#11 current_piece_char#13 ] [ play_move_down::return#2 ] [ play_spawn_current::piece_idx#2 play_spawn_current::piece_idx#1 ] @@ -8214,39 +8232,39 @@ Complete equivalence classes [ irq_cnt#13 ] [ irq_sprite_ypos#1 ] [ irq_sprite_ptr#1 ] -Allocated zp ZP_BYTE:2 [ current_ypos#22 current_ypos#14 current_ypos#30 current_ypos#1 ] -Allocated zp ZP_BYTE:3 [ current_movedown_counter#12 current_movedown_counter#10 current_movedown_counter#1 ] -Allocated zp ZP_BYTE:4 [ current_ypos#10 current_ypos#78 ] -Allocated zp ZP_BYTE:5 [ current_xpos#48 current_xpos#104 ] -Allocated zp ZP_WORD:6 [ current_piece_gfx#53 current_piece_gfx#95 current_piece_gfx#96 ] -Allocated zp ZP_BYTE:8 [ current_piece_char#63 current_piece_char#83 current_piece_char#84 ] -Allocated zp ZP_BYTE:9 [ render_current::ypos2#2 render_current::ypos2#0 render_current::ypos2#1 ] -Allocated zp ZP_BYTE:10 [ render_current::l#4 render_current::l#1 ] -Allocated zp ZP_BYTE:11 [ render_current::i#4 render_current::i#3 render_current::i#8 render_current::i#10 render_current::i#1 ] -Allocated zp ZP_BYTE:12 [ render_current::xpos#2 render_current::xpos#0 render_current::xpos#1 ] -Allocated zp ZP_BYTE:13 [ render_current::c#2 render_current::c#1 ] -Allocated zp ZP_BYTE:14 [ render_playfield::l#2 render_playfield::l#1 ] -Allocated zp ZP_BYTE:15 [ render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 ] -Allocated zp ZP_WORD:16 [ render_playfield::screen_line#2 render_playfield::screen_line#0 render_playfield::screen_line#1 ] -Allocated zp ZP_BYTE:18 [ render_playfield::c#2 render_playfield::c#1 ] -Allocated zp ZP_BYTE:19 [ play_move_rotate::return#1 ] -Allocated zp ZP_BYTE:20 [ play_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#2 ] -Allocated zp ZP_WORD:21 [ current_piece#12 current_piece#73 current_piece#74 current_piece#75 current_piece#76 ] -Allocated zp ZP_BYTE:23 [ play_collision::orientation#4 play_collision::orientation#0 play_collision::orientation#1 play_collision::orientation#2 play_collision::orientation#3 ] -Allocated zp ZP_BYTE:24 [ play_collision::ypos#4 play_collision::ypos#0 play_collision::ypos#1 play_collision::ypos#2 play_collision::ypos#3 ] -Allocated zp ZP_BYTE:25 [ play_collision::xpos#5 play_collision::xpos#0 play_collision::xpos#1 play_collision::xpos#2 play_collision::xpos#3 ] -Allocated zp ZP_BYTE:26 [ play_collision::ypos2#2 play_collision::ypos2#0 play_collision::ypos2#1 ] -Allocated zp ZP_BYTE:27 [ play_collision::l#6 play_collision::l#1 ] -Allocated zp ZP_BYTE:28 [ play_collision::i#2 play_collision::i#3 play_collision::i#11 play_collision::i#13 ] -Allocated zp ZP_BYTE:29 [ play_collision::col#2 play_collision::col#9 play_collision::col#1 ] -Allocated zp ZP_BYTE:30 [ play_collision::c#2 play_collision::c#1 ] -Allocated zp ZP_BYTE:31 [ play_collision::return#14 ] -Allocated zp ZP_BYTE:32 [ play_move_leftright::return#1 ] -Allocated zp ZP_BYTE:33 [ play_move_down::movedown#6 play_move_down::movedown#3 play_move_down::movedown#7 play_move_down::movedown#2 play_move_down::movedown#10 ] +Allocated zp ZP_BYTE:2 [ current_movedown_counter#12 current_movedown_counter#10 current_movedown_counter#1 ] +Allocated zp ZP_BYTE:3 [ current_ypos#10 current_ypos#79 current_ypos#80 ] +Allocated zp ZP_BYTE:4 [ current_xpos#48 current_xpos#105 current_xpos#106 ] +Allocated zp ZP_WORD:5 [ current_piece_gfx#53 current_piece_gfx#95 current_piece_gfx#96 ] +Allocated zp ZP_BYTE:7 [ current_piece_char#63 current_piece_char#83 current_piece_char#84 ] +Allocated zp ZP_BYTE:8 [ render_current::ypos2#2 render_current::ypos2#0 render_current::ypos2#1 ] +Allocated zp ZP_BYTE:9 [ render_current::l#4 render_current::l#1 ] +Allocated zp ZP_BYTE:10 [ render_current::i#4 render_current::i#3 render_current::i#8 render_current::i#10 render_current::i#1 ] +Allocated zp ZP_BYTE:11 [ render_current::xpos#2 render_current::xpos#0 render_current::xpos#1 ] +Allocated zp ZP_BYTE:12 [ render_current::c#2 render_current::c#1 ] +Allocated zp ZP_BYTE:13 [ render_playfield::l#2 render_playfield::l#1 ] +Allocated zp ZP_BYTE:14 [ render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 ] +Allocated zp ZP_WORD:15 [ render_playfield::screen_line#2 render_playfield::screen_line#0 render_playfield::screen_line#1 ] +Allocated zp ZP_BYTE:17 [ render_playfield::c#2 render_playfield::c#1 ] +Allocated zp ZP_BYTE:18 [ play_move_rotate::return#1 ] +Allocated zp ZP_BYTE:19 [ play_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#2 ] +Allocated zp ZP_WORD:20 [ current_piece#12 current_piece#73 current_piece#74 current_piece#75 current_piece#76 ] +Allocated zp ZP_BYTE:22 [ play_collision::orientation#4 play_collision::orientation#0 play_collision::orientation#1 play_collision::orientation#2 play_collision::orientation#3 ] +Allocated zp ZP_BYTE:23 [ play_collision::ypos#4 play_collision::ypos#0 play_collision::ypos#1 play_collision::ypos#2 play_collision::ypos#3 ] +Allocated zp ZP_BYTE:24 [ play_collision::xpos#5 play_collision::xpos#0 play_collision::xpos#1 play_collision::xpos#2 play_collision::xpos#3 ] +Allocated zp ZP_BYTE:25 [ play_collision::ypos2#2 play_collision::ypos2#0 play_collision::ypos2#1 ] +Allocated zp ZP_BYTE:26 [ play_collision::l#6 play_collision::l#1 ] +Allocated zp ZP_BYTE:27 [ play_collision::i#2 play_collision::i#3 play_collision::i#11 play_collision::i#13 ] +Allocated zp ZP_BYTE:28 [ play_collision::col#2 play_collision::col#9 play_collision::col#1 ] +Allocated zp ZP_BYTE:29 [ play_collision::c#2 play_collision::c#1 ] +Allocated zp ZP_BYTE:30 [ play_collision::return#14 ] +Allocated zp ZP_BYTE:31 [ play_move_leftright::return#1 ] +Allocated zp ZP_BYTE:32 [ play_move_down::movedown#6 play_move_down::movedown#3 play_move_down::movedown#7 play_move_down::movedown#2 play_move_down::movedown#10 ] +Allocated zp ZP_BYTE:33 [ current_ypos#30 current_ypos#22 current_ypos#14 current_ypos#19 current_ypos#1 ] Allocated zp ZP_WORD:34 [ current_piece#20 current_piece#77 current_piece#16 current_piece#10 current_piece#72 ] Allocated zp ZP_BYTE:36 [ current_orientation#29 current_orientation#10 current_orientation#19 current_orientation#4 current_orientation#14 ] Allocated zp ZP_WORD:37 [ current_piece_gfx#27 current_piece_gfx#10 current_piece_gfx#15 current_piece_gfx#17 current_piece_gfx#4 current_piece_gfx#14 ] -Allocated zp ZP_BYTE:39 [ current_xpos#34 current_xpos#11 current_xpos#20 current_xpos#5 current_xpos#16 current_xpos#3 ] +Allocated zp ZP_BYTE:39 [ current_xpos#34 current_xpos#11 current_xpos#20 current_xpos#24 current_xpos#5 current_xpos#16 current_xpos#3 ] Allocated zp ZP_BYTE:40 [ current_piece_char#21 current_piece_char#16 current_piece_char#11 current_piece_char#13 ] Allocated zp ZP_BYTE:41 [ play_move_down::return#2 ] Allocated zp ZP_BYTE:42 [ play_spawn_current::piece_idx#2 play_spawn_current::piece_idx#1 ] @@ -8460,30 +8478,32 @@ INITIAL ASM .label irq_raster_next_2 = $51 .label irq_sprite_ypos_2 = $a3 .label irq_sprite_ptr_2 = $a4 - .label current_movedown_counter = 3 - .label current_ypos = 2 + .label current_movedown_counter = 2 + .label current_ypos = $21 .label current_xpos = $27 .label current_orientation = $24 .label current_piece_gfx = $25 - .label current_ypos_10 = 4 + .label current_ypos_10 = 3 .label current_piece = $22 .label current_piece_char = $28 - .label current_piece_12 = $15 - .label current_xpos_48 = 5 + .label current_piece_12 = $14 + .label current_xpos_48 = 4 .label irq_raster_next_12 = $51 - .label current_piece_gfx_53 = 6 + .label current_piece_gfx_53 = 5 .label irq_cnt_13 = $a6 - .label current_piece_char_63 = 8 - .label current_ypos_78 = 4 - .label current_xpos_104 = 5 - .label current_piece_gfx_95 = 6 - .label current_piece_gfx_96 = 6 - .label current_piece_char_83 = 8 - .label current_piece_char_84 = 8 - .label current_piece_73 = $15 - .label current_piece_74 = $15 - .label current_piece_75 = $15 - .label current_piece_76 = $15 + .label current_piece_char_63 = 7 + .label current_ypos_79 = 3 + .label current_ypos_80 = 3 + .label current_xpos_105 = 4 + .label current_xpos_106 = 4 + .label current_piece_gfx_95 = 5 + .label current_piece_gfx_96 = 5 + .label current_piece_char_83 = 7 + .label current_piece_char_84 = 7 + .label current_piece_73 = $14 + .label current_piece_74 = $14 + .label current_piece_75 = $14 + .label current_piece_76 = $14 //SEG2 @begin bbegin: jmp b14 @@ -8549,7 +8569,7 @@ main: { //SEG25 asm { sei } sei //SEG26 [15] call render_init - //SEG27 [352] phi from main::@21 to render_init [phi:main::@21->render_init] + //SEG27 [356] phi from main::@21 to render_init [phi:main::@21->render_init] render_init_from_b21: jsr render_init //SEG28 [16] phi from main::@21 to main::@22 [phi:main::@21->main::@22] @@ -8572,7 +8592,7 @@ main: { //SEG35 main::@24 b24: //SEG36 [21] call play_init - //SEG37 [317] phi from main::@24 to play_init [phi:main::@24->play_init] + //SEG37 [321] phi from main::@24 to play_init [phi:main::@24->play_init] play_init_from_b24: jsr play_init //SEG38 [22] phi from main::@24 to main::@25 [phi:main::@24->main::@25] @@ -8581,7 +8601,7 @@ main: { //SEG39 main::@25 b25: //SEG40 [23] call play_spawn_current - //SEG41 [197] phi from main::@25 to play_spawn_current [phi:main::@25->play_spawn_current] + //SEG41 [199] phi from main::@25 to play_spawn_current [phi:main::@25->play_spawn_current] play_spawn_current_from_b25: jsr play_spawn_current //SEG42 [24] phi from main::@25 to main::@26 [phi:main::@25->main::@26] @@ -8590,526 +8610,524 @@ main: { //SEG43 main::@26 b26: //SEG44 [25] call render_playfield - //SEG45 [85] phi from main::@26 to render_playfield [phi:main::@26->render_playfield] + //SEG45 [87] phi from main::@26 to render_playfield [phi:main::@26->render_playfield] render_playfield_from_b26: jsr render_playfield jmp b27 //SEG46 main::@27 b27: - //SEG47 [26] (byte*~) current_piece_gfx#95 ← (byte*) current_piece_gfx#17 -- pbuz1=pbuz2 + //SEG47 [26] (byte~) current_ypos#79 ← (byte) current_ypos#19 -- vbuz1=vbuz2 + lda current_ypos + sta current_ypos_79 + //SEG48 [27] (byte~) current_xpos#105 ← (byte) current_xpos#24 -- vbuz1=vbuz2 + lda current_xpos + sta current_xpos_105 + //SEG49 [28] (byte*~) current_piece_gfx#95 ← (byte*) current_piece_gfx#17 -- pbuz1=pbuz2 lda current_piece_gfx sta current_piece_gfx_95 lda current_piece_gfx+1 sta current_piece_gfx_95+1 - //SEG48 [27] (byte~) current_piece_char#83 ← (byte) current_piece_char#13 -- vbuz1=vbuz2 + //SEG50 [29] (byte~) current_piece_char#83 ← (byte) current_piece_char#13 -- vbuz1=vbuz2 lda current_piece_char sta current_piece_char_83 - //SEG49 [28] call render_current - //SEG50 [63] phi from main::@27 to render_current [phi:main::@27->render_current] + //SEG51 [30] call render_current + //SEG52 [65] phi from main::@27 to render_current [phi:main::@27->render_current] render_current_from_b27: - //SEG51 [63] phi (byte) current_piece_char#63 = (byte~) current_piece_char#83 [phi:main::@27->render_current#0] -- register_copy - //SEG52 [63] phi (byte*) current_piece_gfx#53 = (byte*~) current_piece_gfx#95 [phi:main::@27->render_current#1] -- register_copy - //SEG53 [63] phi (byte) current_xpos#48 = (byte/signed byte/word/signed word/dword/signed dword) 3 [phi:main::@27->render_current#2] -- vbuz1=vbuc1 - lda #3 - sta current_xpos_48 - //SEG54 [63] phi (byte) current_ypos#10 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@27->render_current#3] -- vbuz1=vbuc1 - lda #0 - sta current_ypos_10 + //SEG53 [65] phi (byte) current_piece_char#63 = (byte~) current_piece_char#83 [phi:main::@27->render_current#0] -- register_copy + //SEG54 [65] phi (byte*) current_piece_gfx#53 = (byte*~) current_piece_gfx#95 [phi:main::@27->render_current#1] -- register_copy + //SEG55 [65] phi (byte) current_xpos#48 = (byte~) current_xpos#105 [phi:main::@27->render_current#2] -- register_copy + //SEG56 [65] phi (byte) current_ypos#10 = (byte~) current_ypos#79 [phi:main::@27->render_current#3] -- register_copy jsr render_current - //SEG55 [29] (byte*~) current_piece#72 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) -- pbuz1=pptc1_derefidx_vbuz2 + //SEG57 [31] (byte*~) current_piece#72 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) -- pbuz1=pptc1_derefidx_vbuz2 ldy play_spawn_current._3 lda PIECES,y sta current_piece lda PIECES+1,y sta current_piece+1 - //SEG56 [30] phi from main::@27 to main::@1 [phi:main::@27->main::@1] + //SEG58 [32] phi from main::@27 to main::@1 [phi:main::@27->main::@1] b1_from_b27: - //SEG57 [30] phi (byte) current_movedown_counter#12 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@27->main::@1#0] -- vbuz1=vbuc1 + //SEG59 [32] phi (byte) current_movedown_counter#12 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@27->main::@1#0] -- vbuz1=vbuc1 lda #0 sta current_movedown_counter - //SEG58 [30] phi (byte) keyboard_events_size#19 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@27->main::@1#1] -- vbuz1=vbuc1 + //SEG60 [32] phi (byte) keyboard_events_size#19 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@27->main::@1#1] -- vbuz1=vbuc1 lda #0 sta keyboard_events_size - //SEG59 [30] phi (byte) current_piece_char#16 = (byte) current_piece_char#13 [phi:main::@27->main::@1#2] -- register_copy - //SEG60 [30] phi (byte) current_ypos#22 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@27->main::@1#3] -- vbuz1=vbuc1 - lda #0 - sta current_ypos - //SEG61 [30] phi (byte) current_xpos#11 = (byte/signed byte/word/signed word/dword/signed dword) 3 [phi:main::@27->main::@1#4] -- vbuz1=vbuc1 - lda #3 - sta current_xpos - //SEG62 [30] phi (byte*) current_piece_gfx#10 = (byte*) current_piece_gfx#17 [phi:main::@27->main::@1#5] -- register_copy - //SEG63 [30] phi (byte) current_orientation#10 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@27->main::@1#6] -- vbuz1=vbuc1 + //SEG61 [32] phi (byte) current_piece_char#16 = (byte) current_piece_char#13 [phi:main::@27->main::@1#2] -- register_copy + //SEG62 [32] phi (byte) current_ypos#22 = (byte) current_ypos#19 [phi:main::@27->main::@1#3] -- register_copy + //SEG63 [32] phi (byte) current_xpos#11 = (byte) current_xpos#24 [phi:main::@27->main::@1#4] -- register_copy + //SEG64 [32] phi (byte*) current_piece_gfx#10 = (byte*) current_piece_gfx#17 [phi:main::@27->main::@1#5] -- register_copy + //SEG65 [32] phi (byte) current_orientation#10 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@27->main::@1#6] -- vbuz1=vbuc1 lda #0 sta current_orientation - //SEG64 [30] phi (byte*) current_piece#16 = (byte*~) current_piece#72 [phi:main::@27->main::@1#7] -- register_copy + //SEG66 [32] phi (byte*) current_piece#16 = (byte*~) current_piece#72 [phi:main::@27->main::@1#7] -- register_copy jmp b1 - //SEG65 main::@1 + //SEG67 main::@1 b1: jmp b4 - //SEG66 main::@4 + //SEG68 main::@4 b4: - //SEG67 [31] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@4 -- _deref_pbuc1_neq_vbuc2_then_la1 + //SEG69 [33] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@4 -- _deref_pbuc1_neq_vbuc2_then_la1 lda RASTER cmp #$ff bne b4 jmp b7 - //SEG68 main::@7 + //SEG70 main::@7 b7: - //SEG69 [32] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 254) goto main::@7 -- _deref_pbuc1_neq_vbuc2_then_la1 + //SEG71 [34] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 254) goto main::@7 -- _deref_pbuc1_neq_vbuc2_then_la1 lda RASTER cmp #$fe bne b7 jmp b9 - //SEG70 main::@9 + //SEG72 main::@9 b9: - //SEG71 [33] *((const byte*) BORDERCOL#0) ← ++ *((const byte*) BORDERCOL#0) -- _deref_pbuc1=_inc__deref_pbuc1 + //SEG73 [35] *((const byte*) BORDERCOL#0) ← ++ *((const byte*) BORDERCOL#0) -- _deref_pbuc1=_inc__deref_pbuc1 inc BORDERCOL - //SEG72 [34] call keyboard_event_scan - //SEG73 [261] phi from main::@9 to keyboard_event_scan [phi:main::@9->keyboard_event_scan] + //SEG74 [36] call keyboard_event_scan + //SEG75 [265] phi from main::@9 to keyboard_event_scan [phi:main::@9->keyboard_event_scan] keyboard_event_scan_from_b9: jsr keyboard_event_scan - //SEG74 [35] phi from main::@9 to main::@29 [phi:main::@9->main::@29] + //SEG76 [37] phi from main::@9 to main::@29 [phi:main::@9->main::@29] b29_from_b9: jmp b29 - //SEG75 main::@29 + //SEG77 main::@29 b29: - //SEG76 [36] call keyboard_event_get + //SEG78 [38] call keyboard_event_get jsr keyboard_event_get - //SEG77 [37] (byte) keyboard_event_get::return#3 ← (byte) keyboard_event_get::return#2 -- vbuz1=vbuz2 + //SEG79 [39] (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 b30 - //SEG78 main::@30 + //SEG80 main::@30 b30: - //SEG79 [38] (byte) main::key_event#0 ← (byte) keyboard_event_get::return#3 -- vbuz1=vbuz2 + //SEG81 [40] (byte) main::key_event#0 ← (byte) keyboard_event_get::return#3 -- vbuz1=vbuz2 lda keyboard_event_get.return_3 sta key_event - //SEG80 [39] (byte) play_move_down::key_event#0 ← (byte) main::key_event#0 -- vbuz1=vbuz2 + //SEG82 [41] (byte) play_move_down::key_event#0 ← (byte) main::key_event#0 -- vbuz1=vbuz2 lda key_event sta play_move_down.key_event - //SEG81 [40] call play_move_down + //SEG83 [42] call play_move_down jsr play_move_down - //SEG82 [41] (byte) play_move_down::return#3 ← (byte) play_move_down::return#2 -- vbuz1=vbuz2 + //SEG84 [43] (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 b31 - //SEG83 main::@31 + //SEG85 main::@31 b31: - //SEG84 [42] (byte~) main::$12 ← (byte) play_move_down::return#3 -- vbuz1=vbuz2 + //SEG86 [44] (byte~) main::$12 ← (byte) play_move_down::return#3 -- vbuz1=vbuz2 lda play_move_down.return_3 sta _12 - //SEG85 [43] (byte) main::render#1 ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte~) main::$12 -- vbuz1=vbuc1_plus_vbuz2 + //SEG87 [45] (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 - //SEG86 [44] (byte) play_move_leftright::key_event#0 ← (byte) main::key_event#0 -- vbuz1=vbuz2 + //SEG88 [46] (byte) play_move_leftright::key_event#0 ← (byte) main::key_event#0 -- vbuz1=vbuz2 lda key_event sta play_move_leftright.key_event - //SEG87 [45] call play_move_leftright + //SEG89 [47] call play_move_leftright jsr play_move_leftright - //SEG88 [46] (byte) play_move_leftright::return#4 ← (byte) play_move_leftright::return#1 -- vbuz1=vbuz2 + //SEG90 [48] (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 b32 - //SEG89 main::@32 + //SEG91 main::@32 b32: - //SEG90 [47] (byte~) main::$13 ← (byte) play_move_leftright::return#4 -- vbuz1=vbuz2 + //SEG92 [49] (byte~) main::$13 ← (byte) play_move_leftright::return#4 -- vbuz1=vbuz2 lda play_move_leftright.return_4 sta _13 - //SEG91 [48] (byte) main::render#2 ← (byte) main::render#1 + (byte~) main::$13 -- vbuz1=vbuz2_plus_vbuz3 + //SEG93 [50] (byte) main::render#2 ← (byte) main::render#1 + (byte~) main::$13 -- vbuz1=vbuz2_plus_vbuz3 lda render clc adc _13 sta render_2 - //SEG92 [49] (byte) play_move_rotate::key_event#0 ← (byte) main::key_event#0 -- vbuz1=vbuz2 + //SEG94 [51] (byte) play_move_rotate::key_event#0 ← (byte) main::key_event#0 -- vbuz1=vbuz2 lda key_event sta play_move_rotate.key_event - //SEG93 [50] call play_move_rotate + //SEG95 [52] call play_move_rotate jsr play_move_rotate - //SEG94 [51] (byte) play_move_rotate::return#4 ← (byte) play_move_rotate::return#1 -- vbuz1=vbuz2 + //SEG96 [53] (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 b33 - //SEG95 main::@33 + //SEG97 main::@33 b33: - //SEG96 [52] (byte~) main::$14 ← (byte) play_move_rotate::return#4 -- vbuz1=vbuz2 + //SEG98 [54] (byte~) main::$14 ← (byte) play_move_rotate::return#4 -- vbuz1=vbuz2 lda play_move_rotate.return_4 sta _14 - //SEG97 [53] (byte) main::render#3 ← (byte) main::render#2 + (byte~) main::$14 -- vbuz1=vbuz2_plus_vbuz3 + //SEG99 [55] (byte) main::render#3 ← (byte) main::render#2 + (byte~) main::$14 -- vbuz1=vbuz2_plus_vbuz3 lda render_2 clc adc _14 sta render_3 - //SEG98 [54] if((byte) main::render#3==(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@10 -- vbuz1_eq_0_then_la1 + //SEG100 [56] if((byte) main::render#3==(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@10 -- vbuz1_eq_0_then_la1 lda render_3 cmp #0 beq b10 - //SEG99 [55] phi from main::@33 to main::@19 [phi:main::@33->main::@19] + //SEG101 [57] phi from main::@33 to main::@19 [phi:main::@33->main::@19] b19_from_b33: jmp b19 - //SEG100 main::@19 + //SEG102 main::@19 b19: - //SEG101 [56] call render_playfield - //SEG102 [85] phi from main::@19 to render_playfield [phi:main::@19->render_playfield] + //SEG103 [58] call render_playfield + //SEG104 [87] phi from main::@19 to render_playfield [phi:main::@19->render_playfield] render_playfield_from_b19: jsr render_playfield jmp b34 - //SEG103 main::@34 + //SEG105 main::@34 b34: - //SEG104 [57] (byte~) current_ypos#78 ← (byte) current_ypos#14 -- vbuz1=vbuz2 + //SEG106 [59] (byte~) current_ypos#80 ← (byte) current_ypos#14 -- vbuz1=vbuz2 lda current_ypos - sta current_ypos_78 - //SEG105 [58] (byte~) current_xpos#104 ← (byte) current_xpos#20 -- vbuz1=vbuz2 + sta current_ypos_80 + //SEG107 [60] (byte~) current_xpos#106 ← (byte) current_xpos#20 -- vbuz1=vbuz2 lda current_xpos - sta current_xpos_104 - //SEG106 [59] (byte*~) current_piece_gfx#96 ← (byte*) current_piece_gfx#15 -- pbuz1=pbuz2 + sta current_xpos_106 + //SEG108 [61] (byte*~) current_piece_gfx#96 ← (byte*) current_piece_gfx#15 -- pbuz1=pbuz2 lda current_piece_gfx sta current_piece_gfx_96 lda current_piece_gfx+1 sta current_piece_gfx_96+1 - //SEG107 [60] (byte~) current_piece_char#84 ← (byte) current_piece_char#11 -- vbuz1=vbuz2 + //SEG109 [62] (byte~) current_piece_char#84 ← (byte) current_piece_char#11 -- vbuz1=vbuz2 lda current_piece_char sta current_piece_char_84 - //SEG108 [61] call render_current - //SEG109 [63] phi from main::@34 to render_current [phi:main::@34->render_current] + //SEG110 [63] call render_current + //SEG111 [65] phi from main::@34 to render_current [phi:main::@34->render_current] render_current_from_b34: - //SEG110 [63] phi (byte) current_piece_char#63 = (byte~) current_piece_char#84 [phi:main::@34->render_current#0] -- register_copy - //SEG111 [63] phi (byte*) current_piece_gfx#53 = (byte*~) current_piece_gfx#96 [phi:main::@34->render_current#1] -- register_copy - //SEG112 [63] phi (byte) current_xpos#48 = (byte~) current_xpos#104 [phi:main::@34->render_current#2] -- register_copy - //SEG113 [63] phi (byte) current_ypos#10 = (byte~) current_ypos#78 [phi:main::@34->render_current#3] -- register_copy + //SEG112 [65] phi (byte) current_piece_char#63 = (byte~) current_piece_char#84 [phi:main::@34->render_current#0] -- register_copy + //SEG113 [65] phi (byte*) current_piece_gfx#53 = (byte*~) current_piece_gfx#96 [phi:main::@34->render_current#1] -- register_copy + //SEG114 [65] phi (byte) current_xpos#48 = (byte~) current_xpos#106 [phi:main::@34->render_current#2] -- register_copy + //SEG115 [65] phi (byte) current_ypos#10 = (byte~) current_ypos#80 [phi:main::@34->render_current#3] -- register_copy jsr render_current jmp b10 - //SEG114 main::@10 + //SEG116 main::@10 b10: - //SEG115 [62] *((const byte*) BORDERCOL#0) ← -- *((const byte*) BORDERCOL#0) -- _deref_pbuc1=_dec__deref_pbuc1 + //SEG117 [64] *((const byte*) BORDERCOL#0) ← -- *((const byte*) BORDERCOL#0) -- _deref_pbuc1=_dec__deref_pbuc1 dec BORDERCOL - //SEG116 [30] phi from main::@10 to main::@1 [phi:main::@10->main::@1] + //SEG118 [32] phi from main::@10 to main::@1 [phi:main::@10->main::@1] b1_from_b10: - //SEG117 [30] phi (byte) current_movedown_counter#12 = (byte) current_movedown_counter#10 [phi:main::@10->main::@1#0] -- register_copy - //SEG118 [30] phi (byte) keyboard_events_size#19 = (byte) keyboard_events_size#16 [phi:main::@10->main::@1#1] -- register_copy - //SEG119 [30] phi (byte) current_piece_char#16 = (byte) current_piece_char#11 [phi:main::@10->main::@1#2] -- register_copy - //SEG120 [30] phi (byte) current_ypos#22 = (byte) current_ypos#14 [phi:main::@10->main::@1#3] -- register_copy - //SEG121 [30] phi (byte) current_xpos#11 = (byte) current_xpos#20 [phi:main::@10->main::@1#4] -- register_copy - //SEG122 [30] phi (byte*) current_piece_gfx#10 = (byte*) current_piece_gfx#15 [phi:main::@10->main::@1#5] -- register_copy - //SEG123 [30] phi (byte) current_orientation#10 = (byte) current_orientation#19 [phi:main::@10->main::@1#6] -- register_copy - //SEG124 [30] phi (byte*) current_piece#16 = (byte*) current_piece#10 [phi:main::@10->main::@1#7] -- register_copy + //SEG119 [32] phi (byte) current_movedown_counter#12 = (byte) current_movedown_counter#10 [phi:main::@10->main::@1#0] -- register_copy + //SEG120 [32] phi (byte) keyboard_events_size#19 = (byte) keyboard_events_size#16 [phi:main::@10->main::@1#1] -- register_copy + //SEG121 [32] phi (byte) current_piece_char#16 = (byte) current_piece_char#11 [phi:main::@10->main::@1#2] -- register_copy + //SEG122 [32] phi (byte) current_ypos#22 = (byte) current_ypos#14 [phi:main::@10->main::@1#3] -- register_copy + //SEG123 [32] phi (byte) current_xpos#11 = (byte) current_xpos#20 [phi:main::@10->main::@1#4] -- register_copy + //SEG124 [32] phi (byte*) current_piece_gfx#10 = (byte*) current_piece_gfx#15 [phi:main::@10->main::@1#5] -- register_copy + //SEG125 [32] phi (byte) current_orientation#10 = (byte) current_orientation#19 [phi:main::@10->main::@1#6] -- register_copy + //SEG126 [32] phi (byte*) current_piece#16 = (byte*) current_piece#10 [phi:main::@10->main::@1#7] -- register_copy jmp b1 } -//SEG125 render_current +//SEG127 render_current render_current: { - .label ypos2 = 9 + .label ypos2 = 8 .label screen_line = $65 - .label xpos = $c - .label i = $b - .label l = $a + .label xpos = $b + .label i = $a + .label l = 9 .label current_cell = $67 - .label c = $d - //SEG126 [64] (byte) render_current::ypos2#0 ← (byte) current_ypos#10 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_rol_1 + .label c = $c + //SEG128 [66] (byte) render_current::ypos2#0 ← (byte) current_ypos#10 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_rol_1 lda current_ypos_10 asl sta ypos2 - //SEG127 [65] phi from render_current to render_current::@1 [phi:render_current->render_current::@1] + //SEG129 [67] phi from render_current to render_current::@1 [phi:render_current->render_current::@1] b1_from_render_current: - //SEG128 [65] 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 + //SEG130 [67] 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 - //SEG129 [65] 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 + //SEG131 [67] 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 - //SEG130 [65] phi (byte) render_current::ypos2#2 = (byte) render_current::ypos2#0 [phi:render_current->render_current::@1#2] -- register_copy + //SEG132 [67] phi (byte) render_current::ypos2#2 = (byte) render_current::ypos2#0 [phi:render_current->render_current::@1#2] -- register_copy jmp b1 - //SEG131 [65] phi from render_current::@3 to render_current::@1 [phi:render_current::@3->render_current::@1] + //SEG133 [67] phi from render_current::@3 to render_current::@1 [phi:render_current::@3->render_current::@1] b1_from_b3: - //SEG132 [65] phi (byte) render_current::l#4 = (byte) render_current::l#1 [phi:render_current::@3->render_current::@1#0] -- register_copy - //SEG133 [65] phi (byte) render_current::i#3 = (byte) render_current::i#8 [phi:render_current::@3->render_current::@1#1] -- register_copy - //SEG134 [65] phi (byte) render_current::ypos2#2 = (byte) render_current::ypos2#1 [phi:render_current::@3->render_current::@1#2] -- register_copy + //SEG134 [67] phi (byte) render_current::l#4 = (byte) render_current::l#1 [phi:render_current::@3->render_current::@1#0] -- register_copy + //SEG135 [67] phi (byte) render_current::i#3 = (byte) render_current::i#8 [phi:render_current::@3->render_current::@1#1] -- register_copy + //SEG136 [67] phi (byte) render_current::ypos2#2 = (byte) render_current::ypos2#1 [phi:render_current::@3->render_current::@1#2] -- register_copy jmp b1 - //SEG135 render_current::@1 + //SEG137 render_current::@1 b1: - //SEG136 [66] 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 + //SEG138 [68] 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 - //SEG137 render_current::@7 + //SEG139 render_current::@7 b7: - //SEG138 [67] (byte) render_current::i#1 ← (byte) render_current::i#3 + (byte/signed byte/word/signed word/dword/signed dword) 4 -- vbuz1=vbuz1_plus_vbuc1 + //SEG140 [69] (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 - //SEG139 [68] phi from render_current::@5 render_current::@7 to render_current::@3 [phi:render_current::@5/render_current::@7->render_current::@3] + //SEG141 [70] 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: - //SEG140 [68] phi (byte) render_current::i#8 = (byte) render_current::i#10 [phi:render_current::@5/render_current::@7->render_current::@3#0] -- register_copy + //SEG142 [70] 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 - //SEG141 render_current::@3 + //SEG143 render_current::@3 b3: - //SEG142 [69] (byte) render_current::ypos2#1 ← (byte) render_current::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 -- vbuz1=vbuz1_plus_2 + //SEG144 [71] (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 - //SEG143 [70] (byte) render_current::l#1 ← ++ (byte) render_current::l#4 -- vbuz1=_inc_vbuz1 + //SEG145 [72] (byte) render_current::l#1 ← ++ (byte) render_current::l#4 -- vbuz1=_inc_vbuz1 inc l - //SEG144 [71] if((byte) render_current::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_current::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG146 [73] 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 - //SEG145 render_current::@return + //SEG147 render_current::@return breturn: - //SEG146 [72] return + //SEG148 [74] return rts - //SEG147 render_current::@13 + //SEG149 render_current::@13 b13: - //SEG148 [73] 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 + //SEG150 [75] 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 - //SEG149 render_current::@2 + //SEG151 render_current::@2 b2: - //SEG150 [74] (byte*) render_current::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) screen_lines#0 + (byte) render_current::ypos2#2) -- pbuz1=pptc1_derefidx_vbuz2 + //SEG152 [76] (byte*) render_current::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) screen_lines#0 + (byte) render_current::ypos2#2) -- pbuz1=pptc1_derefidx_vbuz2 ldy ypos2 lda screen_lines,y sta screen_line lda screen_lines+1,y sta screen_line+1 - //SEG151 [75] (byte) render_current::xpos#0 ← (byte) current_xpos#48 -- vbuz1=vbuz2 + //SEG153 [77] (byte) render_current::xpos#0 ← (byte) current_xpos#48 -- vbuz1=vbuz2 lda current_xpos_48 sta xpos - //SEG152 [76] phi from render_current::@2 to render_current::@4 [phi:render_current::@2->render_current::@4] + //SEG154 [78] phi from render_current::@2 to render_current::@4 [phi:render_current::@2->render_current::@4] b4_from_b2: - //SEG153 [76] 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 + //SEG155 [78] phi (byte) render_current::c#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_current::@2->render_current::@4#0] -- vbuz1=vbuc1 lda #0 sta c - //SEG154 [76] phi (byte) render_current::xpos#2 = (byte) render_current::xpos#0 [phi:render_current::@2->render_current::@4#1] -- register_copy - //SEG155 [76] phi (byte) render_current::i#4 = (byte) render_current::i#3 [phi:render_current::@2->render_current::@4#2] -- register_copy + //SEG156 [78] phi (byte) render_current::xpos#2 = (byte) render_current::xpos#0 [phi:render_current::@2->render_current::@4#1] -- register_copy + //SEG157 [78] phi (byte) render_current::i#4 = (byte) render_current::i#3 [phi:render_current::@2->render_current::@4#2] -- register_copy jmp b4 - //SEG156 [76] phi from render_current::@5 to render_current::@4 [phi:render_current::@5->render_current::@4] + //SEG158 [78] phi from render_current::@5 to render_current::@4 [phi:render_current::@5->render_current::@4] b4_from_b5: - //SEG157 [76] phi (byte) render_current::c#2 = (byte) render_current::c#1 [phi:render_current::@5->render_current::@4#0] -- register_copy - //SEG158 [76] phi (byte) render_current::xpos#2 = (byte) render_current::xpos#1 [phi:render_current::@5->render_current::@4#1] -- register_copy - //SEG159 [76] phi (byte) render_current::i#4 = (byte) render_current::i#10 [phi:render_current::@5->render_current::@4#2] -- register_copy + //SEG159 [78] phi (byte) render_current::c#2 = (byte) render_current::c#1 [phi:render_current::@5->render_current::@4#0] -- register_copy + //SEG160 [78] phi (byte) render_current::xpos#2 = (byte) render_current::xpos#1 [phi:render_current::@5->render_current::@4#1] -- register_copy + //SEG161 [78] phi (byte) render_current::i#4 = (byte) render_current::i#10 [phi:render_current::@5->render_current::@4#2] -- register_copy jmp b4 - //SEG160 render_current::@4 + //SEG162 render_current::@4 b4: - //SEG161 [77] (byte) render_current::current_cell#0 ← *((byte*) current_piece_gfx#53 + (byte) render_current::i#4) -- vbuz1=pbuz2_derefidx_vbuz3 + //SEG163 [79] (byte) render_current::current_cell#0 ← *((byte*) current_piece_gfx#53 + (byte) render_current::i#4) -- vbuz1=pbuz2_derefidx_vbuz3 ldy i lda (current_piece_gfx_53),y sta current_cell - //SEG162 [78] (byte) render_current::i#10 ← ++ (byte) render_current::i#4 -- vbuz1=_inc_vbuz1 + //SEG164 [80] (byte) render_current::i#10 ← ++ (byte) render_current::i#4 -- vbuz1=_inc_vbuz1 inc i - //SEG163 [79] 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 + //SEG165 [81] 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 - //SEG164 render_current::@9 + //SEG166 render_current::@9 b9: - //SEG165 [80] if((byte) render_current::xpos#2>=(const byte) PLAYFIELD_COLS#0) goto render_current::@5 -- vbuz1_ge_vbuc1_then_la1 + //SEG167 [82] 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 - //SEG166 render_current::@10 + //SEG168 render_current::@10 b10: - //SEG167 [81] *((byte*) render_current::screen_line#0 + (byte) render_current::xpos#2) ← (byte) current_piece_char#63 -- pbuz1_derefidx_vbuz2=vbuz3 + //SEG169 [83] *((byte*) render_current::screen_line#0 + (byte) render_current::xpos#2) ← (byte) current_piece_char#63 -- pbuz1_derefidx_vbuz2=vbuz3 lda current_piece_char_63 ldy xpos sta (screen_line),y jmp b5 - //SEG168 render_current::@5 + //SEG170 render_current::@5 b5: - //SEG169 [82] (byte) render_current::xpos#1 ← ++ (byte) render_current::xpos#2 -- vbuz1=_inc_vbuz1 + //SEG171 [84] (byte) render_current::xpos#1 ← ++ (byte) render_current::xpos#2 -- vbuz1=_inc_vbuz1 inc xpos - //SEG170 [83] (byte) render_current::c#1 ← ++ (byte) render_current::c#2 -- vbuz1=_inc_vbuz1 + //SEG172 [85] (byte) render_current::c#1 ← ++ (byte) render_current::c#2 -- vbuz1=_inc_vbuz1 inc c - //SEG171 [84] 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 + //SEG173 [86] 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 } -//SEG172 render_playfield +//SEG174 render_playfield render_playfield: { .label _2 = $68 - .label screen_line = $10 - .label i = $f - .label c = $12 - .label l = $e - //SEG173 [86] phi from render_playfield to render_playfield::@1 [phi:render_playfield->render_playfield::@1] + .label screen_line = $f + .label i = $e + .label c = $11 + .label l = $d + //SEG175 [88] phi from render_playfield to render_playfield::@1 [phi:render_playfield->render_playfield::@1] b1_from_render_playfield: - //SEG174 [86] 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 + //SEG176 [88] 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 - //SEG175 [86] 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 + //SEG177 [88] 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 - //SEG176 [86] phi from render_playfield::@3 to render_playfield::@1 [phi:render_playfield::@3->render_playfield::@1] + //SEG178 [88] phi from render_playfield::@3 to render_playfield::@1 [phi:render_playfield::@3->render_playfield::@1] b1_from_b3: - //SEG177 [86] phi (byte) render_playfield::i#3 = (byte) render_playfield::i#1 [phi:render_playfield::@3->render_playfield::@1#0] -- register_copy - //SEG178 [86] phi (byte) render_playfield::l#2 = (byte) render_playfield::l#1 [phi:render_playfield::@3->render_playfield::@1#1] -- register_copy + //SEG179 [88] phi (byte) render_playfield::i#3 = (byte) render_playfield::i#1 [phi:render_playfield::@3->render_playfield::@1#0] -- register_copy + //SEG180 [88] phi (byte) render_playfield::l#2 = (byte) render_playfield::l#1 [phi:render_playfield::@3->render_playfield::@1#1] -- register_copy jmp b1 - //SEG179 render_playfield::@1 + //SEG181 render_playfield::@1 b1: - //SEG180 [87] (byte~) render_playfield::$2 ← (byte) render_playfield::l#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_rol_1 + //SEG182 [89] (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 - //SEG181 [88] (byte*) render_playfield::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) screen_lines#0 + (byte~) render_playfield::$2) -- pbuz1=pptc1_derefidx_vbuz2 + //SEG183 [90] (byte*) render_playfield::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) screen_lines#0 + (byte~) render_playfield::$2) -- pbuz1=pptc1_derefidx_vbuz2 ldy _2 lda screen_lines,y sta screen_line lda screen_lines+1,y sta screen_line+1 - //SEG182 [89] phi from render_playfield::@1 to render_playfield::@2 [phi:render_playfield::@1->render_playfield::@2] + //SEG184 [91] phi from render_playfield::@1 to render_playfield::@2 [phi:render_playfield::@1->render_playfield::@2] b2_from_b1: - //SEG183 [89] 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 + //SEG185 [91] 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 - //SEG184 [89] phi (byte*) render_playfield::screen_line#2 = (byte*) render_playfield::screen_line#0 [phi:render_playfield::@1->render_playfield::@2#1] -- register_copy - //SEG185 [89] phi (byte) render_playfield::i#2 = (byte) render_playfield::i#3 [phi:render_playfield::@1->render_playfield::@2#2] -- register_copy + //SEG186 [91] phi (byte*) render_playfield::screen_line#2 = (byte*) render_playfield::screen_line#0 [phi:render_playfield::@1->render_playfield::@2#1] -- register_copy + //SEG187 [91] phi (byte) render_playfield::i#2 = (byte) render_playfield::i#3 [phi:render_playfield::@1->render_playfield::@2#2] -- register_copy jmp b2 - //SEG186 [89] phi from render_playfield::@2 to render_playfield::@2 [phi:render_playfield::@2->render_playfield::@2] + //SEG188 [91] phi from render_playfield::@2 to render_playfield::@2 [phi:render_playfield::@2->render_playfield::@2] b2_from_b2: - //SEG187 [89] phi (byte) render_playfield::c#2 = (byte) render_playfield::c#1 [phi:render_playfield::@2->render_playfield::@2#0] -- register_copy - //SEG188 [89] phi (byte*) render_playfield::screen_line#2 = (byte*) render_playfield::screen_line#1 [phi:render_playfield::@2->render_playfield::@2#1] -- register_copy - //SEG189 [89] phi (byte) render_playfield::i#2 = (byte) render_playfield::i#1 [phi:render_playfield::@2->render_playfield::@2#2] -- register_copy + //SEG189 [91] phi (byte) render_playfield::c#2 = (byte) render_playfield::c#1 [phi:render_playfield::@2->render_playfield::@2#0] -- register_copy + //SEG190 [91] phi (byte*) render_playfield::screen_line#2 = (byte*) render_playfield::screen_line#1 [phi:render_playfield::@2->render_playfield::@2#1] -- register_copy + //SEG191 [91] phi (byte) render_playfield::i#2 = (byte) render_playfield::i#1 [phi:render_playfield::@2->render_playfield::@2#2] -- register_copy jmp b2 - //SEG190 render_playfield::@2 + //SEG192 render_playfield::@2 b2: - //SEG191 [90] *((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 + //SEG193 [92] *((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 - //SEG192 [91] (byte*) render_playfield::screen_line#1 ← ++ (byte*) render_playfield::screen_line#2 -- pbuz1=_inc_pbuz1 + //SEG194 [93] (byte*) render_playfield::screen_line#1 ← ++ (byte*) render_playfield::screen_line#2 -- pbuz1=_inc_pbuz1 inc screen_line bne !+ inc screen_line+1 !: - //SEG193 [92] (byte) render_playfield::i#1 ← ++ (byte) render_playfield::i#2 -- vbuz1=_inc_vbuz1 + //SEG195 [94] (byte) render_playfield::i#1 ← ++ (byte) render_playfield::i#2 -- vbuz1=_inc_vbuz1 inc i - //SEG194 [93] (byte) render_playfield::c#1 ← ++ (byte) render_playfield::c#2 -- vbuz1=_inc_vbuz1 + //SEG196 [95] (byte) render_playfield::c#1 ← ++ (byte) render_playfield::c#2 -- vbuz1=_inc_vbuz1 inc c - //SEG195 [94] 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 + //SEG197 [96] 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 - //SEG196 render_playfield::@3 + //SEG198 render_playfield::@3 b3: - //SEG197 [95] (byte) render_playfield::l#1 ← ++ (byte) render_playfield::l#2 -- vbuz1=_inc_vbuz1 + //SEG199 [97] (byte) render_playfield::l#1 ← ++ (byte) render_playfield::l#2 -- vbuz1=_inc_vbuz1 inc l - //SEG198 [96] 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 + //SEG200 [98] 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 - //SEG199 render_playfield::@return + //SEG201 render_playfield::@return breturn: - //SEG200 [97] return + //SEG202 [99] return rts } -//SEG201 play_move_rotate +//SEG203 play_move_rotate play_move_rotate: { .label _2 = $69 .label _4 = $6c .label _6 = $6b - .label orientation = $14 - .label return = $13 + .label orientation = $13 + .label return = $12 .label key_event = $61 .label return_4 = $62 - //SEG202 [98] if((byte) play_move_rotate::key_event#0==(const byte) KEY_Z#0) goto play_move_rotate::@1 -- vbuz1_eq_vbuc1_then_la1 + //SEG204 [100] 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 - //SEG203 play_move_rotate::@6 + //SEG205 play_move_rotate::@6 b6: - //SEG204 [99] if((byte) play_move_rotate::key_event#0==(const byte) KEY_X#0) goto play_move_rotate::@2 -- vbuz1_eq_vbuc1_then_la1 + //SEG206 [101] 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 - //SEG205 [100] 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] + //SEG207 [102] phi from play_move_rotate::@14 play_move_rotate::@6 to play_move_rotate::@return [phi:play_move_rotate::@14/play_move_rotate::@6->play_move_rotate::@return] breturn_from_b14: breturn_from_b6: - //SEG206 [100] phi (byte*) current_piece_gfx#15 = (byte*) current_piece_gfx#14 [phi:play_move_rotate::@14/play_move_rotate::@6->play_move_rotate::@return#0] -- register_copy - //SEG207 [100] 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 - //SEG208 [100] 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 + //SEG208 [102] phi (byte*) current_piece_gfx#15 = (byte*) current_piece_gfx#14 [phi:play_move_rotate::@14/play_move_rotate::@6->play_move_rotate::@return#0] -- register_copy + //SEG209 [102] phi (byte) current_orientation#19 = (byte) current_orientation#14 [phi:play_move_rotate::@14/play_move_rotate::@6->play_move_rotate::@return#1] -- register_copy + //SEG210 [102] phi (byte) play_move_rotate::return#1 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_rotate::@14/play_move_rotate::@6->play_move_rotate::@return#2] -- vbuz1=vbuc1 lda #0 sta return jmp breturn - //SEG209 play_move_rotate::@return + //SEG211 play_move_rotate::@return breturn: - //SEG210 [101] return + //SEG212 [103] return rts - //SEG211 play_move_rotate::@2 + //SEG213 play_move_rotate::@2 b2: - //SEG212 [102] (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 + //SEG214 [104] (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 ← (byte) current_orientation#14 + (byte/signed byte/word/signed word/dword/signed dword) 16 -- vbuz1=vbuz2_plus_vbuc1 lda #$10 clc adc current_orientation sta _2 - //SEG213 [103] (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 + //SEG215 [105] (byte) play_move_rotate::orientation#2 ← (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 & (byte/signed byte/word/signed word/dword/signed dword) 63 -- vbuz1=vbuz2_band_vbuc1 lda #$3f and _2 sta orientation - //SEG214 [104] 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] + //SEG216 [106] 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: - //SEG215 [104] 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 + //SEG217 [106] phi (byte) play_move_rotate::orientation#3 = (byte) play_move_rotate::orientation#1 [phi:play_move_rotate::@1/play_move_rotate::@2->play_move_rotate::@4#0] -- register_copy jmp b4 - //SEG216 play_move_rotate::@4 + //SEG218 play_move_rotate::@4 b4: - //SEG217 [105] (byte) play_collision::xpos#3 ← (byte) current_xpos#20 -- vbuz1=vbuz2 + //SEG219 [107] (byte) play_collision::xpos#3 ← (byte) current_xpos#20 -- vbuz1=vbuz2 lda current_xpos sta play_collision.xpos - //SEG218 [106] (byte) play_collision::ypos#3 ← (byte) current_ypos#14 -- vbuz1=vbuz2 + //SEG220 [108] (byte) play_collision::ypos#3 ← (byte) current_ypos#14 -- vbuz1=vbuz2 lda current_ypos sta play_collision.ypos - //SEG219 [107] (byte) play_collision::orientation#3 ← (byte) play_move_rotate::orientation#3 -- vbuz1=vbuz2 + //SEG221 [109] (byte) play_collision::orientation#3 ← (byte) play_move_rotate::orientation#3 -- vbuz1=vbuz2 lda orientation sta play_collision.orientation - //SEG220 [108] (byte*~) current_piece#76 ← (byte*) current_piece#10 -- pbuz1=pbuz2 + //SEG222 [110] (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 - //SEG221 [109] call play_collision - //SEG222 [117] phi from play_move_rotate::@4 to play_collision [phi:play_move_rotate::@4->play_collision] + //SEG223 [111] call play_collision + //SEG224 [119] phi from play_move_rotate::@4 to play_collision [phi:play_move_rotate::@4->play_collision] play_collision_from_b4: - //SEG223 [117] phi (byte) play_collision::xpos#5 = (byte) play_collision::xpos#3 [phi:play_move_rotate::@4->play_collision#0] -- register_copy - //SEG224 [117] phi (byte) play_collision::ypos#4 = (byte) play_collision::ypos#3 [phi:play_move_rotate::@4->play_collision#1] -- register_copy - //SEG225 [117] phi (byte) play_collision::orientation#4 = (byte) play_collision::orientation#3 [phi:play_move_rotate::@4->play_collision#2] -- register_copy - //SEG226 [117] phi (byte*) current_piece#12 = (byte*~) current_piece#76 [phi:play_move_rotate::@4->play_collision#3] -- register_copy + //SEG225 [119] phi (byte) play_collision::xpos#5 = (byte) play_collision::xpos#3 [phi:play_move_rotate::@4->play_collision#0] -- register_copy + //SEG226 [119] phi (byte) play_collision::ypos#4 = (byte) play_collision::ypos#3 [phi:play_move_rotate::@4->play_collision#1] -- register_copy + //SEG227 [119] phi (byte) play_collision::orientation#4 = (byte) play_collision::orientation#3 [phi:play_move_rotate::@4->play_collision#2] -- register_copy + //SEG228 [119] phi (byte*) current_piece#12 = (byte*~) current_piece#76 [phi:play_move_rotate::@4->play_collision#3] -- register_copy jsr play_collision - //SEG227 [110] (byte) play_collision::return#13 ← (byte) play_collision::return#14 -- vbuz1=vbuz2 + //SEG229 [112] (byte) play_collision::return#13 ← (byte) play_collision::return#14 -- vbuz1=vbuz2 lda play_collision.return_14 sta play_collision.return_13 jmp b14 - //SEG228 play_move_rotate::@14 + //SEG230 play_move_rotate::@14 b14: - //SEG229 [111] (byte~) play_move_rotate::$6 ← (byte) play_collision::return#13 -- vbuz1=vbuz2 + //SEG231 [113] (byte~) play_move_rotate::$6 ← (byte) play_collision::return#13 -- vbuz1=vbuz2 lda play_collision.return_13 sta _6 - //SEG230 [112] if((byte~) play_move_rotate::$6!=(const byte) COLLISION_NONE#0) goto play_move_rotate::@return -- vbuz1_neq_vbuc1_then_la1 + //SEG232 [114] 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 - //SEG231 play_move_rotate::@11 + //SEG233 play_move_rotate::@11 b11: - //SEG232 [113] (byte) current_orientation#4 ← (byte) play_move_rotate::orientation#3 -- vbuz1=vbuz2 + //SEG234 [115] (byte) current_orientation#4 ← (byte) play_move_rotate::orientation#3 -- vbuz1=vbuz2 lda orientation sta current_orientation - //SEG233 [114] (byte*) current_piece_gfx#4 ← (byte*) current_piece#10 + (byte) current_orientation#4 -- pbuz1=pbuz2_plus_vbuz3 + //SEG235 [116] (byte*) current_piece_gfx#4 ← (byte*) current_piece#10 + (byte) current_orientation#4 -- pbuz1=pbuz2_plus_vbuz3 lda current_orientation clc adc current_piece @@ -9117,50 +9135,50 @@ play_move_rotate: { lda #0 adc current_piece+1 sta current_piece_gfx+1 - //SEG234 [100] phi from play_move_rotate::@11 to play_move_rotate::@return [phi:play_move_rotate::@11->play_move_rotate::@return] + //SEG236 [102] phi from play_move_rotate::@11 to play_move_rotate::@return [phi:play_move_rotate::@11->play_move_rotate::@return] breturn_from_b11: - //SEG235 [100] phi (byte*) current_piece_gfx#15 = (byte*) current_piece_gfx#4 [phi:play_move_rotate::@11->play_move_rotate::@return#0] -- register_copy - //SEG236 [100] phi (byte) current_orientation#19 = (byte) current_orientation#4 [phi:play_move_rotate::@11->play_move_rotate::@return#1] -- register_copy - //SEG237 [100] 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 + //SEG237 [102] phi (byte*) current_piece_gfx#15 = (byte*) current_piece_gfx#4 [phi:play_move_rotate::@11->play_move_rotate::@return#0] -- register_copy + //SEG238 [102] phi (byte) current_orientation#19 = (byte) current_orientation#4 [phi:play_move_rotate::@11->play_move_rotate::@return#1] -- register_copy + //SEG239 [102] phi (byte) play_move_rotate::return#1 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_move_rotate::@11->play_move_rotate::@return#2] -- vbuz1=vbuc1 lda #1 sta return jmp breturn - //SEG238 play_move_rotate::@1 + //SEG240 play_move_rotate::@1 b1: - //SEG239 [115] (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 + //SEG241 [117] (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 ← (byte) current_orientation#14 - (byte/signed byte/word/signed word/dword/signed dword) 16 -- vbuz1=vbuz2_minus_vbuc1 lda current_orientation sec sbc #$10 sta _4 - //SEG240 [116] (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 + //SEG242 [118] (byte) play_move_rotate::orientation#1 ← (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 & (byte/signed byte/word/signed word/dword/signed dword) 63 -- vbuz1=vbuz2_band_vbuc1 lda #$3f and _4 sta orientation jmp b4_from_b1 } -//SEG241 play_collision +//SEG243 play_collision play_collision: { .label _7 = $72 - .label xpos = $19 - .label ypos = $18 - .label orientation = $17 + .label xpos = $18 + .label ypos = $17 + .label orientation = $16 .label return = $79 .label return_1 = $75 .label piece_gfx = $6d - .label ypos2 = $1a + .label ypos2 = $19 .label playfield_line = $6f .label i = $71 - .label col = $1d - .label c = $1e - .label l = $1b + .label col = $1c + .label c = $1d + .label l = $1a .label return_12 = $73 .label return_13 = $6a - .label i_2 = $1c - .label return_14 = $1f - .label i_3 = $1c - .label i_11 = $1c - .label i_13 = $1c - //SEG242 [118] (byte*) play_collision::piece_gfx#0 ← (byte*) current_piece#12 + (byte) play_collision::orientation#4 -- pbuz1=pbuz2_plus_vbuz3 + .label i_2 = $1b + .label return_14 = $1e + .label i_3 = $1b + .label i_11 = $1b + .label i_13 = $1b + //SEG244 [120] (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 @@ -9168,593 +9186,597 @@ play_collision: { lda #0 adc current_piece_12+1 sta piece_gfx+1 - //SEG243 [119] (byte) play_collision::ypos2#0 ← (byte) play_collision::ypos#4 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_rol_1 + //SEG245 [121] (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 - //SEG244 [120] phi from play_collision to play_collision::@1 [phi:play_collision->play_collision::@1] + //SEG246 [122] phi from play_collision to play_collision::@1 [phi:play_collision->play_collision::@1] b1_from_play_collision: - //SEG245 [120] 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 + //SEG247 [122] 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 - //SEG246 [120] 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 + //SEG248 [122] 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 - //SEG247 [120] phi (byte) play_collision::ypos2#2 = (byte) play_collision::ypos2#0 [phi:play_collision->play_collision::@1#2] -- register_copy + //SEG249 [122] phi (byte) play_collision::ypos2#2 = (byte) play_collision::ypos2#0 [phi:play_collision->play_collision::@1#2] -- register_copy jmp b1 - //SEG248 play_collision::@1 + //SEG250 play_collision::@1 b1: - //SEG249 [121] (byte*) play_collision::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) play_collision::ypos2#2) -- pbuz1=pptc1_derefidx_vbuz2 + //SEG251 [123] (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 - //SEG250 [122] (byte~) play_collision::col#9 ← (byte) play_collision::xpos#5 -- vbuz1=vbuz2 + //SEG252 [124] (byte~) play_collision::col#9 ← (byte) play_collision::xpos#5 -- vbuz1=vbuz2 lda xpos sta col - //SEG251 [123] phi from play_collision::@1 to play_collision::@2 [phi:play_collision::@1->play_collision::@2] + //SEG253 [125] phi from play_collision::@1 to play_collision::@2 [phi:play_collision::@1->play_collision::@2] b2_from_b1: - //SEG252 [123] 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 + //SEG254 [125] 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 - //SEG253 [123] phi (byte) play_collision::col#2 = (byte~) play_collision::col#9 [phi:play_collision::@1->play_collision::@2#1] -- register_copy - //SEG254 [123] phi (byte) play_collision::i#2 = (byte) play_collision::i#3 [phi:play_collision::@1->play_collision::@2#2] -- register_copy + //SEG255 [125] phi (byte) play_collision::col#2 = (byte~) play_collision::col#9 [phi:play_collision::@1->play_collision::@2#1] -- register_copy + //SEG256 [125] phi (byte) play_collision::i#2 = (byte) play_collision::i#3 [phi:play_collision::@1->play_collision::@2#2] -- register_copy jmp b2 - //SEG255 play_collision::@2 + //SEG257 play_collision::@2 b2: - //SEG256 [124] (byte) play_collision::i#1 ← ++ (byte) play_collision::i#2 -- vbuz1=_inc_vbuz2 + //SEG258 [126] (byte) play_collision::i#1 ← ++ (byte) play_collision::i#2 -- vbuz1=_inc_vbuz2 ldy i_2 iny sty i - //SEG257 [125] 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 + //SEG259 [127] if(*((byte*) play_collision::piece_gfx#0 + (byte) play_collision::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_collision::@3 -- pbuz1_derefidx_vbuz2_eq_0_then_la1 ldy i_2 lda (piece_gfx),y cmp #0 beq b3 jmp b8 - //SEG258 play_collision::@8 + //SEG260 play_collision::@8 b8: - //SEG259 [126] 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 + //SEG261 [128] 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 - //SEG260 [127] phi from play_collision::@8 to play_collision::@return [phi:play_collision::@8->play_collision::@return] + //SEG262 [129] phi from play_collision::@8 to play_collision::@return [phi:play_collision::@8->play_collision::@return] breturn_from_b8: - //SEG261 [127] phi (byte) play_collision::return#14 = (const byte) COLLISION_BOTTOM#0 [phi:play_collision::@8->play_collision::@return#0] -- vbuz1=vbuc1 + //SEG263 [129] 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 - //SEG262 play_collision::@return + //SEG264 play_collision::@return breturn: - //SEG263 [128] return + //SEG265 [130] return rts - //SEG264 play_collision::@4 + //SEG266 play_collision::@4 b4: - //SEG265 [129] (byte~) play_collision::$7 ← (byte) play_collision::col#2 & (byte/word/signed word/dword/signed dword) 128 -- vbuz1=vbuz2_band_vbuc1 + //SEG267 [131] (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 - //SEG266 [130] if((byte~) play_collision::$7==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_collision::@5 -- vbuz1_eq_0_then_la1 + //SEG268 [132] 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 - //SEG267 [127] phi from play_collision::@4 to play_collision::@return [phi:play_collision::@4->play_collision::@return] + //SEG269 [129] phi from play_collision::@4 to play_collision::@return [phi:play_collision::@4->play_collision::@return] breturn_from_b4: - //SEG268 [127] phi (byte) play_collision::return#14 = (const byte) COLLISION_LEFT#0 [phi:play_collision::@4->play_collision::@return#0] -- vbuz1=vbuc1 + //SEG270 [129] 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 - //SEG269 play_collision::@5 + //SEG271 play_collision::@5 b5: - //SEG270 [131] if((byte) play_collision::col#2<(const byte) PLAYFIELD_COLS#0) goto play_collision::@6 -- vbuz1_lt_vbuc1_then_la1 + //SEG272 [133] 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 - //SEG271 [127] phi from play_collision::@5 to play_collision::@return [phi:play_collision::@5->play_collision::@return] + //SEG273 [129] phi from play_collision::@5 to play_collision::@return [phi:play_collision::@5->play_collision::@return] breturn_from_b5: - //SEG272 [127] phi (byte) play_collision::return#14 = (const byte) COLLISION_RIGHT#0 [phi:play_collision::@5->play_collision::@return#0] -- vbuz1=vbuc1 + //SEG274 [129] 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 - //SEG273 play_collision::@6 + //SEG275 play_collision::@6 b6: - //SEG274 [132] 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 + //SEG276 [134] if(*((byte*) play_collision::playfield_line#0 + (byte) play_collision::col#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_collision::@3 -- pbuz1_derefidx_vbuz2_eq_0_then_la1 ldy col lda (playfield_line),y cmp #0 beq b3 - //SEG275 [127] phi from play_collision::@6 to play_collision::@return [phi:play_collision::@6->play_collision::@return] + //SEG277 [129] phi from play_collision::@6 to play_collision::@return [phi:play_collision::@6->play_collision::@return] breturn_from_b6: - //SEG276 [127] phi (byte) play_collision::return#14 = (const byte) COLLISION_PLAYFIELD#0 [phi:play_collision::@6->play_collision::@return#0] -- vbuz1=vbuc1 + //SEG278 [129] 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 - //SEG277 play_collision::@3 + //SEG279 play_collision::@3 b3: - //SEG278 [133] (byte) play_collision::col#1 ← ++ (byte) play_collision::col#2 -- vbuz1=_inc_vbuz1 + //SEG280 [135] (byte) play_collision::col#1 ← ++ (byte) play_collision::col#2 -- vbuz1=_inc_vbuz1 inc col - //SEG279 [134] (byte) play_collision::c#1 ← ++ (byte) play_collision::c#2 -- vbuz1=_inc_vbuz1 + //SEG281 [136] (byte) play_collision::c#1 ← ++ (byte) play_collision::c#2 -- vbuz1=_inc_vbuz1 inc c - //SEG280 [135] 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 + //SEG282 [137] 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 - //SEG281 play_collision::@17 + //SEG283 play_collision::@17 b17: - //SEG282 [136] (byte) play_collision::ypos2#1 ← (byte) play_collision::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 -- vbuz1=vbuz1_plus_2 + //SEG284 [138] (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 - //SEG283 [137] (byte) play_collision::l#1 ← ++ (byte) play_collision::l#6 -- vbuz1=_inc_vbuz1 + //SEG285 [139] (byte) play_collision::l#1 ← ++ (byte) play_collision::l#6 -- vbuz1=_inc_vbuz1 inc l - //SEG284 [138] 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 + //SEG286 [140] 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 - //SEG285 [127] phi from play_collision::@17 to play_collision::@return [phi:play_collision::@17->play_collision::@return] + //SEG287 [129] phi from play_collision::@17 to play_collision::@return [phi:play_collision::@17->play_collision::@return] breturn_from_b17: - //SEG286 [127] phi (byte) play_collision::return#14 = (const byte) COLLISION_NONE#0 [phi:play_collision::@17->play_collision::@return#0] -- vbuz1=vbuc1 + //SEG288 [129] 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 - //SEG287 play_collision::@20 + //SEG289 play_collision::@20 b20: - //SEG288 [139] (byte~) play_collision::i#11 ← (byte) play_collision::i#1 -- vbuz1=vbuz2 + //SEG290 [141] (byte~) play_collision::i#11 ← (byte) play_collision::i#1 -- vbuz1=vbuz2 lda i sta i_11 - //SEG289 [120] phi from play_collision::@20 to play_collision::@1 [phi:play_collision::@20->play_collision::@1] + //SEG291 [122] phi from play_collision::@20 to play_collision::@1 [phi:play_collision::@20->play_collision::@1] b1_from_b20: - //SEG290 [120] phi (byte) play_collision::l#6 = (byte) play_collision::l#1 [phi:play_collision::@20->play_collision::@1#0] -- register_copy - //SEG291 [120] phi (byte) play_collision::i#3 = (byte~) play_collision::i#11 [phi:play_collision::@20->play_collision::@1#1] -- register_copy - //SEG292 [120] phi (byte) play_collision::ypos2#2 = (byte) play_collision::ypos2#1 [phi:play_collision::@20->play_collision::@1#2] -- register_copy + //SEG292 [122] phi (byte) play_collision::l#6 = (byte) play_collision::l#1 [phi:play_collision::@20->play_collision::@1#0] -- register_copy + //SEG293 [122] phi (byte) play_collision::i#3 = (byte~) play_collision::i#11 [phi:play_collision::@20->play_collision::@1#1] -- register_copy + //SEG294 [122] phi (byte) play_collision::ypos2#2 = (byte) play_collision::ypos2#1 [phi:play_collision::@20->play_collision::@1#2] -- register_copy jmp b1 - //SEG293 play_collision::@21 + //SEG295 play_collision::@21 b21: - //SEG294 [140] (byte~) play_collision::i#13 ← (byte) play_collision::i#1 -- vbuz1=vbuz2 + //SEG296 [142] (byte~) play_collision::i#13 ← (byte) play_collision::i#1 -- vbuz1=vbuz2 lda i sta i_13 - //SEG295 [123] phi from play_collision::@21 to play_collision::@2 [phi:play_collision::@21->play_collision::@2] + //SEG297 [125] phi from play_collision::@21 to play_collision::@2 [phi:play_collision::@21->play_collision::@2] b2_from_b21: - //SEG296 [123] phi (byte) play_collision::c#2 = (byte) play_collision::c#1 [phi:play_collision::@21->play_collision::@2#0] -- register_copy - //SEG297 [123] phi (byte) play_collision::col#2 = (byte) play_collision::col#1 [phi:play_collision::@21->play_collision::@2#1] -- register_copy - //SEG298 [123] phi (byte) play_collision::i#2 = (byte~) play_collision::i#13 [phi:play_collision::@21->play_collision::@2#2] -- register_copy + //SEG298 [125] phi (byte) play_collision::c#2 = (byte) play_collision::c#1 [phi:play_collision::@21->play_collision::@2#0] -- register_copy + //SEG299 [125] phi (byte) play_collision::col#2 = (byte) play_collision::col#1 [phi:play_collision::@21->play_collision::@2#1] -- register_copy + //SEG300 [125] phi (byte) play_collision::i#2 = (byte~) play_collision::i#13 [phi:play_collision::@21->play_collision::@2#2] -- register_copy jmp b2 } -//SEG299 play_move_leftright +//SEG301 play_move_leftright play_move_leftright: { .label _4 = $74 .label _8 = $76 - .label return = $20 + .label return = $1f .label key_event = $5d .label return_4 = $5e - //SEG300 [141] if((byte) play_move_leftright::key_event#0==(const byte) KEY_COMMA#0) goto play_move_leftright::@1 -- vbuz1_eq_vbuc1_then_la1 + //SEG302 [143] 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 - //SEG301 play_move_leftright::@6 + //SEG303 play_move_leftright::@6 b6: - //SEG302 [142] if((byte) play_move_leftright::key_event#0!=(const byte) KEY_DOT#0) goto play_move_leftright::@return -- vbuz1_neq_vbuc1_then_la1 + //SEG304 [144] 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 - //SEG303 play_move_leftright::@7 + //SEG305 play_move_leftright::@7 b7: - //SEG304 [143] (byte) play_collision::xpos#2 ← (byte) current_xpos#16 + (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_plus_1 + //SEG306 [145] (byte) play_collision::xpos#2 ← (byte) current_xpos#16 + (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_plus_1 ldy current_xpos iny sty play_collision.xpos - //SEG305 [144] (byte) play_collision::ypos#2 ← (byte) current_ypos#14 -- vbuz1=vbuz2 + //SEG307 [146] (byte) play_collision::ypos#2 ← (byte) current_ypos#14 -- vbuz1=vbuz2 lda current_ypos sta play_collision.ypos - //SEG306 [145] (byte) play_collision::orientation#2 ← (byte) current_orientation#14 -- vbuz1=vbuz2 + //SEG308 [147] (byte) play_collision::orientation#2 ← (byte) current_orientation#14 -- vbuz1=vbuz2 lda current_orientation sta play_collision.orientation - //SEG307 [146] (byte*~) current_piece#75 ← (byte*) current_piece#10 -- pbuz1=pbuz2 + //SEG309 [148] (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 - //SEG308 [147] call play_collision - //SEG309 [117] phi from play_move_leftright::@7 to play_collision [phi:play_move_leftright::@7->play_collision] + //SEG310 [149] call play_collision + //SEG311 [119] phi from play_move_leftright::@7 to play_collision [phi:play_move_leftright::@7->play_collision] play_collision_from_b7: - //SEG310 [117] phi (byte) play_collision::xpos#5 = (byte) play_collision::xpos#2 [phi:play_move_leftright::@7->play_collision#0] -- register_copy - //SEG311 [117] phi (byte) play_collision::ypos#4 = (byte) play_collision::ypos#2 [phi:play_move_leftright::@7->play_collision#1] -- register_copy - //SEG312 [117] phi (byte) play_collision::orientation#4 = (byte) play_collision::orientation#2 [phi:play_move_leftright::@7->play_collision#2] -- register_copy - //SEG313 [117] phi (byte*) current_piece#12 = (byte*~) current_piece#75 [phi:play_move_leftright::@7->play_collision#3] -- register_copy + //SEG312 [119] phi (byte) play_collision::xpos#5 = (byte) play_collision::xpos#2 [phi:play_move_leftright::@7->play_collision#0] -- register_copy + //SEG313 [119] phi (byte) play_collision::ypos#4 = (byte) play_collision::ypos#2 [phi:play_move_leftright::@7->play_collision#1] -- register_copy + //SEG314 [119] phi (byte) play_collision::orientation#4 = (byte) play_collision::orientation#2 [phi:play_move_leftright::@7->play_collision#2] -- register_copy + //SEG315 [119] phi (byte*) current_piece#12 = (byte*~) current_piece#75 [phi:play_move_leftright::@7->play_collision#3] -- register_copy jsr play_collision - //SEG314 [148] (byte) play_collision::return#12 ← (byte) play_collision::return#14 -- vbuz1=vbuz2 + //SEG316 [150] (byte) play_collision::return#12 ← (byte) play_collision::return#14 -- vbuz1=vbuz2 lda play_collision.return_14 sta play_collision.return_12 jmp b15 - //SEG315 play_move_leftright::@15 + //SEG317 play_move_leftright::@15 b15: - //SEG316 [149] (byte~) play_move_leftright::$4 ← (byte) play_collision::return#12 -- vbuz1=vbuz2 + //SEG318 [151] (byte~) play_move_leftright::$4 ← (byte) play_collision::return#12 -- vbuz1=vbuz2 lda play_collision.return_12 sta _4 - //SEG317 [150] if((byte~) play_move_leftright::$4!=(const byte) COLLISION_NONE#0) goto play_move_leftright::@return -- vbuz1_neq_vbuc1_then_la1 + //SEG319 [152] 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 - //SEG318 play_move_leftright::@8 + //SEG320 play_move_leftright::@8 b8: - //SEG319 [151] (byte) current_xpos#3 ← ++ (byte) current_xpos#16 -- vbuz1=_inc_vbuz1 + //SEG321 [153] (byte) current_xpos#3 ← ++ (byte) current_xpos#16 -- vbuz1=_inc_vbuz1 inc current_xpos - //SEG320 [152] 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] + //SEG322 [154] phi from play_move_leftright::@11 play_move_leftright::@8 to play_move_leftright::@return [phi:play_move_leftright::@11/play_move_leftright::@8->play_move_leftright::@return] breturn_from_b11: breturn_from_b8: - //SEG321 [152] phi (byte) current_xpos#20 = (byte) current_xpos#5 [phi:play_move_leftright::@11/play_move_leftright::@8->play_move_leftright::@return#0] -- register_copy - //SEG322 [152] 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 + //SEG323 [154] phi (byte) current_xpos#20 = (byte) current_xpos#5 [phi:play_move_leftright::@11/play_move_leftright::@8->play_move_leftright::@return#0] -- register_copy + //SEG324 [154] phi (byte) play_move_leftright::return#1 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_move_leftright::@11/play_move_leftright::@8->play_move_leftright::@return#1] -- vbuz1=vbuc1 lda #1 sta return jmp breturn - //SEG323 [152] 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] + //SEG325 [154] phi from play_move_leftright::@14 play_move_leftright::@15 play_move_leftright::@6 to play_move_leftright::@return [phi:play_move_leftright::@14/play_move_leftright::@15/play_move_leftright::@6->play_move_leftright::@return] breturn_from_b14: breturn_from_b15: breturn_from_b6: - //SEG324 [152] phi (byte) current_xpos#20 = (byte) current_xpos#16 [phi:play_move_leftright::@14/play_move_leftright::@15/play_move_leftright::@6->play_move_leftright::@return#0] -- register_copy - //SEG325 [152] 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 + //SEG326 [154] phi (byte) current_xpos#20 = (byte) current_xpos#16 [phi:play_move_leftright::@14/play_move_leftright::@15/play_move_leftright::@6->play_move_leftright::@return#0] -- register_copy + //SEG327 [154] phi (byte) play_move_leftright::return#1 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_leftright::@14/play_move_leftright::@15/play_move_leftright::@6->play_move_leftright::@return#1] -- vbuz1=vbuc1 lda #0 sta return jmp breturn - //SEG326 play_move_leftright::@return + //SEG328 play_move_leftright::@return breturn: - //SEG327 [153] return + //SEG329 [155] return rts - //SEG328 play_move_leftright::@1 + //SEG330 play_move_leftright::@1 b1: - //SEG329 [154] (byte) play_collision::xpos#1 ← (byte) current_xpos#16 - (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_minus_1 + //SEG331 [156] (byte) play_collision::xpos#1 ← (byte) current_xpos#16 - (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_minus_1 ldx current_xpos dex stx play_collision.xpos - //SEG330 [155] (byte) play_collision::ypos#1 ← (byte) current_ypos#14 -- vbuz1=vbuz2 + //SEG332 [157] (byte) play_collision::ypos#1 ← (byte) current_ypos#14 -- vbuz1=vbuz2 lda current_ypos sta play_collision.ypos - //SEG331 [156] (byte) play_collision::orientation#1 ← (byte) current_orientation#14 -- vbuz1=vbuz2 + //SEG333 [158] (byte) play_collision::orientation#1 ← (byte) current_orientation#14 -- vbuz1=vbuz2 lda current_orientation sta play_collision.orientation - //SEG332 [157] (byte*~) current_piece#74 ← (byte*) current_piece#10 -- pbuz1=pbuz2 + //SEG334 [159] (byte*~) current_piece#74 ← (byte*) current_piece#10 -- pbuz1=pbuz2 lda current_piece sta current_piece_74 lda current_piece+1 sta current_piece_74+1 - //SEG333 [158] call play_collision - //SEG334 [117] phi from play_move_leftright::@1 to play_collision [phi:play_move_leftright::@1->play_collision] + //SEG335 [160] call play_collision + //SEG336 [119] phi from play_move_leftright::@1 to play_collision [phi:play_move_leftright::@1->play_collision] play_collision_from_b1: - //SEG335 [117] phi (byte) play_collision::xpos#5 = (byte) play_collision::xpos#1 [phi:play_move_leftright::@1->play_collision#0] -- register_copy - //SEG336 [117] phi (byte) play_collision::ypos#4 = (byte) play_collision::ypos#1 [phi:play_move_leftright::@1->play_collision#1] -- register_copy - //SEG337 [117] phi (byte) play_collision::orientation#4 = (byte) play_collision::orientation#1 [phi:play_move_leftright::@1->play_collision#2] -- register_copy - //SEG338 [117] phi (byte*) current_piece#12 = (byte*~) current_piece#74 [phi:play_move_leftright::@1->play_collision#3] -- register_copy + //SEG337 [119] phi (byte) play_collision::xpos#5 = (byte) play_collision::xpos#1 [phi:play_move_leftright::@1->play_collision#0] -- register_copy + //SEG338 [119] phi (byte) play_collision::ypos#4 = (byte) play_collision::ypos#1 [phi:play_move_leftright::@1->play_collision#1] -- register_copy + //SEG339 [119] phi (byte) play_collision::orientation#4 = (byte) play_collision::orientation#1 [phi:play_move_leftright::@1->play_collision#2] -- register_copy + //SEG340 [119] phi (byte*) current_piece#12 = (byte*~) current_piece#74 [phi:play_move_leftright::@1->play_collision#3] -- register_copy jsr play_collision - //SEG339 [159] (byte) play_collision::return#1 ← (byte) play_collision::return#14 -- vbuz1=vbuz2 + //SEG341 [161] (byte) play_collision::return#1 ← (byte) play_collision::return#14 -- vbuz1=vbuz2 lda play_collision.return_14 sta play_collision.return_1 jmp b14 - //SEG340 play_move_leftright::@14 + //SEG342 play_move_leftright::@14 b14: - //SEG341 [160] (byte~) play_move_leftright::$8 ← (byte) play_collision::return#1 -- vbuz1=vbuz2 + //SEG343 [162] (byte~) play_move_leftright::$8 ← (byte) play_collision::return#1 -- vbuz1=vbuz2 lda play_collision.return_1 sta _8 - //SEG342 [161] if((byte~) play_move_leftright::$8!=(const byte) COLLISION_NONE#0) goto play_move_leftright::@return -- vbuz1_neq_vbuc1_then_la1 + //SEG344 [163] 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 - //SEG343 play_move_leftright::@11 + //SEG345 play_move_leftright::@11 b11: - //SEG344 [162] (byte) current_xpos#5 ← -- (byte) current_xpos#16 -- vbuz1=_dec_vbuz1 + //SEG346 [164] (byte) current_xpos#5 ← -- (byte) current_xpos#16 -- vbuz1=_dec_vbuz1 dec current_xpos jmp breturn_from_b11 } -//SEG345 play_move_down +//SEG347 play_move_down play_move_down: { .label _2 = $78 .label _12 = $7a - .label movedown = $21 + .label movedown = $20 .label return = $29 .label key_event = $59 .label return_3 = $5a - //SEG346 [163] (byte) current_movedown_counter#1 ← ++ (byte) current_movedown_counter#12 -- vbuz1=_inc_vbuz1 + //SEG348 [165] (byte) current_movedown_counter#1 ← ++ (byte) current_movedown_counter#12 -- vbuz1=_inc_vbuz1 inc current_movedown_counter - //SEG347 [164] if((byte) play_move_down::key_event#0!=(const byte) KEY_SPACE#0) goto play_move_down::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG349 [166] 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 - //SEG348 [165] phi from play_move_down to play_move_down::@8 [phi:play_move_down->play_move_down::@8] + //SEG350 [167] 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 - //SEG349 play_move_down::@8 + //SEG351 play_move_down::@8 b8: - //SEG350 [166] phi from play_move_down::@8 to play_move_down::@1 [phi:play_move_down::@8->play_move_down::@1] + //SEG352 [168] phi from play_move_down::@8 to play_move_down::@1 [phi:play_move_down::@8->play_move_down::@1] b1_from_b8: - //SEG351 [166] 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 + //SEG353 [168] 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 - //SEG352 [166] phi from play_move_down to play_move_down::@1 [phi:play_move_down->play_move_down::@1] + //SEG354 [168] phi from play_move_down to play_move_down::@1 [phi:play_move_down->play_move_down::@1] b1_from_play_move_down: - //SEG353 [166] 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 + //SEG355 [168] 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 - //SEG354 play_move_down::@1 + //SEG356 play_move_down::@1 b1: - //SEG355 [167] call keyboard_event_pressed - //SEG356 [250] phi from play_move_down::@1 to keyboard_event_pressed [phi:play_move_down::@1->keyboard_event_pressed] + //SEG357 [169] call keyboard_event_pressed + //SEG358 [254] phi from play_move_down::@1 to keyboard_event_pressed [phi:play_move_down::@1->keyboard_event_pressed] keyboard_event_pressed_from_b1: - //SEG357 [250] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_SPACE#0 [phi:play_move_down::@1->keyboard_event_pressed#0] -- vbuz1=vbuc1 + //SEG359 [254] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_SPACE#0 [phi:play_move_down::@1->keyboard_event_pressed#0] -- vbuz1=vbuc1 lda #KEY_SPACE sta keyboard_event_pressed.keycode jsr keyboard_event_pressed - //SEG358 [168] (byte) keyboard_event_pressed::return#12 ← (byte) keyboard_event_pressed::return#11 -- vbuz1=vbuz2 + //SEG360 [170] (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 - //SEG359 play_move_down::@17 + //SEG361 play_move_down::@17 b17: - //SEG360 [169] (byte~) play_move_down::$2 ← (byte) keyboard_event_pressed::return#12 -- vbuz1=vbuz2 + //SEG362 [171] (byte~) play_move_down::$2 ← (byte) keyboard_event_pressed::return#12 -- vbuz1=vbuz2 lda keyboard_event_pressed.return_12 sta _2 - //SEG361 [170] 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 + //SEG363 [172] 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 - //SEG362 play_move_down::@9 + //SEG364 play_move_down::@9 b9: - //SEG363 [171] if((byte) current_movedown_counter#1<(const byte) current_movedown_fast#0) goto play_move_down::@2 -- vbuz1_lt_vbuc1_then_la1 + //SEG365 [173] 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 - //SEG364 play_move_down::@10 + //SEG366 play_move_down::@10 b10: - //SEG365 [172] (byte) play_move_down::movedown#2 ← ++ (byte) play_move_down::movedown#10 -- vbuz1=_inc_vbuz1 + //SEG367 [174] (byte) play_move_down::movedown#2 ← ++ (byte) play_move_down::movedown#10 -- vbuz1=_inc_vbuz1 inc movedown - //SEG366 [173] 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] + //SEG368 [175] 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: - //SEG367 [173] 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 + //SEG369 [175] 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 - //SEG368 play_move_down::@2 + //SEG370 play_move_down::@2 b2: - //SEG369 [174] if((byte) current_movedown_counter#1<(const byte) current_movedown_slow#0) goto play_move_down::@4 -- vbuz1_lt_vbuc1_then_la1 + //SEG371 [176] 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 - //SEG370 play_move_down::@11 + //SEG372 play_move_down::@11 b11: - //SEG371 [175] (byte) play_move_down::movedown#3 ← ++ (byte) play_move_down::movedown#7 -- vbuz1=_inc_vbuz1 + //SEG373 [177] (byte) play_move_down::movedown#3 ← ++ (byte) play_move_down::movedown#7 -- vbuz1=_inc_vbuz1 inc movedown - //SEG372 [176] 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] + //SEG374 [178] 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: - //SEG373 [176] 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 + //SEG375 [178] 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 - //SEG374 play_move_down::@4 + //SEG376 play_move_down::@4 b4: - //SEG375 [177] 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 + //SEG377 [179] 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 - //SEG376 play_move_down::@12 + //SEG378 play_move_down::@12 b12: - //SEG377 [178] (byte) play_collision::ypos#0 ← (byte) current_ypos#22 + (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_plus_1 + //SEG379 [180] (byte) play_collision::ypos#0 ← (byte) current_ypos#22 + (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_plus_1 ldy current_ypos iny sty play_collision.ypos - //SEG378 [179] (byte) play_collision::xpos#0 ← (byte) current_xpos#11 -- vbuz1=vbuz2 + //SEG380 [181] (byte) play_collision::xpos#0 ← (byte) current_xpos#11 -- vbuz1=vbuz2 lda current_xpos sta play_collision.xpos - //SEG379 [180] (byte) play_collision::orientation#0 ← (byte) current_orientation#10 -- vbuz1=vbuz2 + //SEG381 [182] (byte) play_collision::orientation#0 ← (byte) current_orientation#10 -- vbuz1=vbuz2 lda current_orientation sta play_collision.orientation - //SEG380 [181] (byte*~) current_piece#73 ← (byte*) current_piece#16 -- pbuz1=pbuz2 + //SEG382 [183] (byte*~) current_piece#73 ← (byte*) current_piece#16 -- pbuz1=pbuz2 lda current_piece sta current_piece_73 lda current_piece+1 sta current_piece_73+1 - //SEG381 [182] call play_collision - //SEG382 [117] phi from play_move_down::@12 to play_collision [phi:play_move_down::@12->play_collision] + //SEG383 [184] call play_collision + //SEG384 [119] phi from play_move_down::@12 to play_collision [phi:play_move_down::@12->play_collision] play_collision_from_b12: - //SEG383 [117] phi (byte) play_collision::xpos#5 = (byte) play_collision::xpos#0 [phi:play_move_down::@12->play_collision#0] -- register_copy - //SEG384 [117] phi (byte) play_collision::ypos#4 = (byte) play_collision::ypos#0 [phi:play_move_down::@12->play_collision#1] -- register_copy - //SEG385 [117] phi (byte) play_collision::orientation#4 = (byte) play_collision::orientation#0 [phi:play_move_down::@12->play_collision#2] -- register_copy - //SEG386 [117] phi (byte*) current_piece#12 = (byte*~) current_piece#73 [phi:play_move_down::@12->play_collision#3] -- register_copy + //SEG385 [119] phi (byte) play_collision::xpos#5 = (byte) play_collision::xpos#0 [phi:play_move_down::@12->play_collision#0] -- register_copy + //SEG386 [119] phi (byte) play_collision::ypos#4 = (byte) play_collision::ypos#0 [phi:play_move_down::@12->play_collision#1] -- register_copy + //SEG387 [119] phi (byte) play_collision::orientation#4 = (byte) play_collision::orientation#0 [phi:play_move_down::@12->play_collision#2] -- register_copy + //SEG388 [119] phi (byte*) current_piece#12 = (byte*~) current_piece#73 [phi:play_move_down::@12->play_collision#3] -- register_copy jsr play_collision - //SEG387 [183] (byte) play_collision::return#0 ← (byte) play_collision::return#14 -- vbuz1=vbuz2 + //SEG389 [185] (byte) play_collision::return#0 ← (byte) play_collision::return#14 -- vbuz1=vbuz2 lda play_collision.return_14 sta play_collision.return jmp b18 - //SEG388 play_move_down::@18 + //SEG390 play_move_down::@18 b18: - //SEG389 [184] (byte~) play_move_down::$12 ← (byte) play_collision::return#0 -- vbuz1=vbuz2 + //SEG391 [186] (byte~) play_move_down::$12 ← (byte) play_collision::return#0 -- vbuz1=vbuz2 lda play_collision.return sta _12 - //SEG390 [185] if((byte~) play_move_down::$12==(const byte) COLLISION_NONE#0) goto play_move_down::@6 -- vbuz1_eq_vbuc1_then_la1 + //SEG392 [187] 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 - //SEG391 [186] phi from play_move_down::@18 to play_move_down::@13 [phi:play_move_down::@18->play_move_down::@13] + //SEG393 [188] 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 - //SEG392 play_move_down::@13 + //SEG394 play_move_down::@13 b13: - //SEG393 [187] call play_lock_current + //SEG395 [189] call play_lock_current jsr play_lock_current - //SEG394 [188] phi from play_move_down::@13 to play_move_down::@19 [phi:play_move_down::@13->play_move_down::@19] + //SEG396 [190] 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 - //SEG395 play_move_down::@19 + //SEG397 play_move_down::@19 b19: - //SEG396 [189] call play_remove_lines - //SEG397 [211] phi from play_move_down::@19 to play_remove_lines [phi:play_move_down::@19->play_remove_lines] + //SEG398 [191] call play_remove_lines + //SEG399 [215] 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 - //SEG398 [190] phi from play_move_down::@19 to play_move_down::@20 [phi:play_move_down::@19->play_move_down::@20] + //SEG400 [192] 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 - //SEG399 play_move_down::@20 + //SEG401 play_move_down::@20 b20: - //SEG400 [191] call play_spawn_current - //SEG401 [197] phi from play_move_down::@20 to play_spawn_current [phi:play_move_down::@20->play_spawn_current] + //SEG402 [193] call play_spawn_current + //SEG403 [199] 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 - //SEG402 [192] (byte*~) current_piece#77 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) -- pbuz1=pptc1_derefidx_vbuz2 + //SEG404 [194] (byte*~) current_piece#77 ← (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 - //SEG403 [193] phi from play_move_down::@20 to play_move_down::@7 [phi:play_move_down::@20->play_move_down::@7] + //SEG405 [195] phi from play_move_down::@20 to play_move_down::@7 [phi:play_move_down::@20->play_move_down::@7] b7_from_b20: - //SEG404 [193] phi (byte) current_piece_char#21 = (byte) current_piece_char#13 [phi:play_move_down::@20->play_move_down::@7#0] -- register_copy - //SEG405 [193] phi (byte) current_xpos#34 = (byte/signed byte/word/signed word/dword/signed dword) 3 [phi:play_move_down::@20->play_move_down::@7#1] -- vbuz1=vbuc1 - lda #3 - sta current_xpos - //SEG406 [193] phi (byte*) current_piece_gfx#27 = (byte*) current_piece_gfx#17 [phi:play_move_down::@20->play_move_down::@7#2] -- register_copy - //SEG407 [193] 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 + //SEG406 [195] phi (byte) current_piece_char#21 = (byte) current_piece_char#13 [phi:play_move_down::@20->play_move_down::@7#0] -- register_copy + //SEG407 [195] phi (byte) current_xpos#34 = (byte) current_xpos#24 [phi:play_move_down::@20->play_move_down::@7#1] -- register_copy + //SEG408 [195] phi (byte*) current_piece_gfx#27 = (byte*) current_piece_gfx#17 [phi:play_move_down::@20->play_move_down::@7#2] -- register_copy + //SEG409 [195] phi (byte) current_orientation#29 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_down::@20->play_move_down::@7#3] -- vbuz1=vbuc1 lda #0 sta current_orientation - //SEG408 [193] phi (byte*) current_piece#20 = (byte*~) current_piece#77 [phi:play_move_down::@20->play_move_down::@7#4] -- register_copy - //SEG409 [193] phi (byte) current_ypos#30 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_down::@20->play_move_down::@7#5] -- vbuz1=vbuc1 - lda #0 - sta current_ypos + //SEG410 [195] phi (byte*) current_piece#20 = (byte*~) current_piece#77 [phi:play_move_down::@20->play_move_down::@7#4] -- register_copy + //SEG411 [195] phi (byte) current_ypos#30 = (byte) current_ypos#19 [phi:play_move_down::@20->play_move_down::@7#5] -- register_copy jmp b7 - //SEG410 play_move_down::@7 + //SEG412 play_move_down::@7 b7: - //SEG411 [194] phi from play_move_down::@7 to play_move_down::@return [phi:play_move_down::@7->play_move_down::@return] + //SEG413 [196] phi from play_move_down::@7 to play_move_down::@return [phi:play_move_down::@7->play_move_down::@return] breturn_from_b7: - //SEG412 [194] phi (byte) current_piece_char#11 = (byte) current_piece_char#21 [phi:play_move_down::@7->play_move_down::@return#0] -- register_copy - //SEG413 [194] phi (byte) current_xpos#16 = (byte) current_xpos#34 [phi:play_move_down::@7->play_move_down::@return#1] -- register_copy - //SEG414 [194] phi (byte*) current_piece_gfx#14 = (byte*) current_piece_gfx#27 [phi:play_move_down::@7->play_move_down::@return#2] -- register_copy - //SEG415 [194] phi (byte) current_orientation#14 = (byte) current_orientation#29 [phi:play_move_down::@7->play_move_down::@return#3] -- register_copy - //SEG416 [194] phi (byte*) current_piece#10 = (byte*) current_piece#20 [phi:play_move_down::@7->play_move_down::@return#4] -- register_copy - //SEG417 [194] phi (byte) current_ypos#14 = (byte) current_ypos#30 [phi:play_move_down::@7->play_move_down::@return#5] -- register_copy - //SEG418 [194] 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 + //SEG414 [196] phi (byte) current_piece_char#11 = (byte) current_piece_char#21 [phi:play_move_down::@7->play_move_down::@return#0] -- register_copy + //SEG415 [196] phi (byte) current_xpos#16 = (byte) current_xpos#34 [phi:play_move_down::@7->play_move_down::@return#1] -- register_copy + //SEG416 [196] phi (byte*) current_piece_gfx#14 = (byte*) current_piece_gfx#27 [phi:play_move_down::@7->play_move_down::@return#2] -- register_copy + //SEG417 [196] phi (byte) current_orientation#14 = (byte) current_orientation#29 [phi:play_move_down::@7->play_move_down::@return#3] -- register_copy + //SEG418 [196] phi (byte*) current_piece#10 = (byte*) current_piece#20 [phi:play_move_down::@7->play_move_down::@return#4] -- register_copy + //SEG419 [196] phi (byte) current_ypos#14 = (byte) current_ypos#30 [phi:play_move_down::@7->play_move_down::@return#5] -- register_copy + //SEG420 [196] phi (byte) current_movedown_counter#10 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_down::@7->play_move_down::@return#6] -- vbuz1=vbuc1 lda #0 sta current_movedown_counter - //SEG419 [194] 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 + //SEG421 [196] 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 - //SEG420 [194] phi from play_move_down::@4 to play_move_down::@return [phi:play_move_down::@4->play_move_down::@return] + //SEG422 [196] phi from play_move_down::@4 to play_move_down::@return [phi:play_move_down::@4->play_move_down::@return] breturn_from_b4: - //SEG421 [194] phi (byte) current_piece_char#11 = (byte) current_piece_char#16 [phi:play_move_down::@4->play_move_down::@return#0] -- register_copy - //SEG422 [194] phi (byte) current_xpos#16 = (byte) current_xpos#11 [phi:play_move_down::@4->play_move_down::@return#1] -- register_copy - //SEG423 [194] phi (byte*) current_piece_gfx#14 = (byte*) current_piece_gfx#10 [phi:play_move_down::@4->play_move_down::@return#2] -- register_copy - //SEG424 [194] phi (byte) current_orientation#14 = (byte) current_orientation#10 [phi:play_move_down::@4->play_move_down::@return#3] -- register_copy - //SEG425 [194] phi (byte*) current_piece#10 = (byte*) current_piece#16 [phi:play_move_down::@4->play_move_down::@return#4] -- register_copy - //SEG426 [194] phi (byte) current_ypos#14 = (byte) current_ypos#22 [phi:play_move_down::@4->play_move_down::@return#5] -- register_copy - //SEG427 [194] phi (byte) current_movedown_counter#10 = (byte) current_movedown_counter#1 [phi:play_move_down::@4->play_move_down::@return#6] -- register_copy - //SEG428 [194] 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 + //SEG423 [196] phi (byte) current_piece_char#11 = (byte) current_piece_char#16 [phi:play_move_down::@4->play_move_down::@return#0] -- register_copy + //SEG424 [196] phi (byte) current_xpos#16 = (byte) current_xpos#11 [phi:play_move_down::@4->play_move_down::@return#1] -- register_copy + //SEG425 [196] phi (byte*) current_piece_gfx#14 = (byte*) current_piece_gfx#10 [phi:play_move_down::@4->play_move_down::@return#2] -- register_copy + //SEG426 [196] phi (byte) current_orientation#14 = (byte) current_orientation#10 [phi:play_move_down::@4->play_move_down::@return#3] -- register_copy + //SEG427 [196] phi (byte*) current_piece#10 = (byte*) current_piece#16 [phi:play_move_down::@4->play_move_down::@return#4] -- register_copy + //SEG428 [196] phi (byte) current_ypos#14 = (byte) current_ypos#22 [phi:play_move_down::@4->play_move_down::@return#5] -- register_copy + //SEG429 [196] phi (byte) current_movedown_counter#10 = (byte) current_movedown_counter#1 [phi:play_move_down::@4->play_move_down::@return#6] -- register_copy + //SEG430 [196] phi (byte) play_move_down::return#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_down::@4->play_move_down::@return#7] -- vbuz1=vbuc1 lda #0 sta return jmp breturn - //SEG429 play_move_down::@return + //SEG431 play_move_down::@return breturn: - //SEG430 [195] return + //SEG432 [197] return rts - //SEG431 play_move_down::@6 + //SEG433 play_move_down::@6 b6: - //SEG432 [196] (byte) current_ypos#1 ← ++ (byte) current_ypos#22 -- vbuz1=_inc_vbuz1 + //SEG434 [198] (byte) current_ypos#1 ← ++ (byte) current_ypos#22 -- vbuz1=_inc_vbuz1 inc current_ypos - //SEG433 [193] phi from play_move_down::@6 to play_move_down::@7 [phi:play_move_down::@6->play_move_down::@7] + //SEG435 [195] phi from play_move_down::@6 to play_move_down::@7 [phi:play_move_down::@6->play_move_down::@7] b7_from_b6: - //SEG434 [193] phi (byte) current_piece_char#21 = (byte) current_piece_char#16 [phi:play_move_down::@6->play_move_down::@7#0] -- register_copy - //SEG435 [193] phi (byte) current_xpos#34 = (byte) current_xpos#11 [phi:play_move_down::@6->play_move_down::@7#1] -- register_copy - //SEG436 [193] phi (byte*) current_piece_gfx#27 = (byte*) current_piece_gfx#10 [phi:play_move_down::@6->play_move_down::@7#2] -- register_copy - //SEG437 [193] phi (byte) current_orientation#29 = (byte) current_orientation#10 [phi:play_move_down::@6->play_move_down::@7#3] -- register_copy - //SEG438 [193] phi (byte*) current_piece#20 = (byte*) current_piece#16 [phi:play_move_down::@6->play_move_down::@7#4] -- register_copy - //SEG439 [193] phi (byte) current_ypos#30 = (byte) current_ypos#1 [phi:play_move_down::@6->play_move_down::@7#5] -- register_copy + //SEG436 [195] phi (byte) current_piece_char#21 = (byte) current_piece_char#16 [phi:play_move_down::@6->play_move_down::@7#0] -- register_copy + //SEG437 [195] phi (byte) current_xpos#34 = (byte) current_xpos#11 [phi:play_move_down::@6->play_move_down::@7#1] -- register_copy + //SEG438 [195] phi (byte*) current_piece_gfx#27 = (byte*) current_piece_gfx#10 [phi:play_move_down::@6->play_move_down::@7#2] -- register_copy + //SEG439 [195] phi (byte) current_orientation#29 = (byte) current_orientation#10 [phi:play_move_down::@6->play_move_down::@7#3] -- register_copy + //SEG440 [195] phi (byte*) current_piece#20 = (byte*) current_piece#16 [phi:play_move_down::@6->play_move_down::@7#4] -- register_copy + //SEG441 [195] phi (byte) current_ypos#30 = (byte) current_ypos#1 [phi:play_move_down::@6->play_move_down::@7#5] -- register_copy jmp b7 } -//SEG440 play_spawn_current +//SEG442 play_spawn_current play_spawn_current: { .label _1 = $7d .label _3 = $7b .label piece_idx = $2a - //SEG441 [198] phi from play_spawn_current to play_spawn_current::@1 [phi:play_spawn_current->play_spawn_current::@1] + //SEG443 [200] phi from play_spawn_current to play_spawn_current::@1 [phi:play_spawn_current->play_spawn_current::@1] b1_from_play_spawn_current: - //SEG442 [198] 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 + //SEG444 [200] 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 - //SEG443 play_spawn_current::@1 + //SEG445 play_spawn_current::@1 b1: - //SEG444 [199] 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 + //SEG446 [201] 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 - //SEG445 play_spawn_current::@3 + //SEG447 play_spawn_current::@3 b3: - //SEG446 [200] (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 + //SEG448 [202] (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 - //SEG447 [201] (byte*) current_piece_gfx#17 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) + (byte/signed byte/word/signed word/dword/signed dword) 0 -- pbuz1=pptc1_derefidx_vbuz2_plus_0 + //SEG449 [203] (byte*) current_piece_gfx#17 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) + (byte/signed byte/word/signed word/dword/signed dword) 0 -- pbuz1=pptc1_derefidx_vbuz2_plus_0 ldy _3 lda PIECES,y sta current_piece_gfx lda PIECES+1,y sta current_piece_gfx+1 - //SEG448 [202] (byte) current_piece_char#13 ← *((const byte[]) PIECES_CHARS#0 + (byte) play_spawn_current::piece_idx#2) -- vbuz1=pbuc1_derefidx_vbuz2 + //SEG450 [204] (byte) current_xpos#24 ← *((const byte[]) PIECES_START_X#0 + (byte) play_spawn_current::piece_idx#2) -- vbuz1=pbuc1_derefidx_vbuz2 + ldy piece_idx + lda PIECES_START_X,y + sta current_xpos + //SEG451 [205] (byte) current_ypos#19 ← *((const byte[]) PIECES_START_Y#0 + (byte) play_spawn_current::piece_idx#2) -- vbuz1=pbuc1_derefidx_vbuz2 + ldy piece_idx + lda PIECES_START_Y,y + sta current_ypos + //SEG452 [206] (byte) current_piece_char#13 ← *((const byte[]) PIECES_CHARS#0 + (byte) play_spawn_current::piece_idx#2) -- vbuz1=pbuc1_derefidx_vbuz2 ldy piece_idx lda PIECES_CHARS,y sta current_piece_char jmp breturn - //SEG449 play_spawn_current::@return + //SEG453 play_spawn_current::@return breturn: - //SEG450 [203] return + //SEG454 [207] return rts - //SEG451 [204] phi from play_spawn_current::@1 to play_spawn_current::@2 [phi:play_spawn_current::@1->play_spawn_current::@2] + //SEG455 [208] 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 - //SEG452 play_spawn_current::@2 + //SEG456 play_spawn_current::@2 b2: - //SEG453 [205] call sid_rnd + //SEG457 [209] call sid_rnd jsr sid_rnd - //SEG454 [206] (byte) sid_rnd::return#2 ← (byte) sid_rnd::return#0 -- vbuz1=vbuz2 + //SEG458 [210] (byte) sid_rnd::return#2 ← (byte) sid_rnd::return#0 -- vbuz1=vbuz2 lda sid_rnd.return sta sid_rnd.return_2 jmp b7 - //SEG455 play_spawn_current::@7 + //SEG459 play_spawn_current::@7 b7: - //SEG456 [207] (byte~) play_spawn_current::$1 ← (byte) sid_rnd::return#2 -- vbuz1=vbuz2 + //SEG460 [211] (byte~) play_spawn_current::$1 ← (byte) sid_rnd::return#2 -- vbuz1=vbuz2 lda sid_rnd.return_2 sta _1 - //SEG457 [208] (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 + //SEG461 [212] (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 - //SEG458 [198] phi from play_spawn_current::@7 to play_spawn_current::@1 [phi:play_spawn_current::@7->play_spawn_current::@1] + //SEG462 [200] phi from play_spawn_current::@7 to play_spawn_current::@1 [phi:play_spawn_current::@7->play_spawn_current::@1] b1_from_b7: - //SEG459 [198] 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 + //SEG463 [200] 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 } -//SEG460 sid_rnd +//SEG464 sid_rnd sid_rnd: { .label return = $7e .label return_2 = $7c - //SEG461 [209] (byte) sid_rnd::return#0 ← *((const byte*) SID_VOICE3_OSC#0) -- vbuz1=_deref_pbuc1 + //SEG465 [213] (byte) sid_rnd::return#0 ← *((const byte*) SID_VOICE3_OSC#0) -- vbuz1=_deref_pbuc1 lda SID_VOICE3_OSC sta return jmp breturn - //SEG462 sid_rnd::@return + //SEG466 sid_rnd::@return breturn: - //SEG463 [210] return + //SEG467 [214] return rts } -//SEG464 play_remove_lines +//SEG468 play_remove_lines play_remove_lines: { .label c = $7f .label r = $2c @@ -9762,140 +9784,140 @@ play_remove_lines: { .label x = $2d .label y = $2b .label full = $2e - //SEG465 [212] phi from play_remove_lines to play_remove_lines::@1 [phi:play_remove_lines->play_remove_lines::@1] + //SEG469 [216] phi from play_remove_lines to play_remove_lines::@1 [phi:play_remove_lines->play_remove_lines::@1] b1_from_play_remove_lines: - //SEG466 [212] 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 + //SEG470 [216] 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 - //SEG467 [212] 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 + //SEG471 [216] 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 - //SEG468 [212] 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 + //SEG472 [216] 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 - //SEG469 [212] phi from play_remove_lines::@4 to play_remove_lines::@1 [phi:play_remove_lines::@4->play_remove_lines::@1] + //SEG473 [216] phi from play_remove_lines::@4 to play_remove_lines::@1 [phi:play_remove_lines::@4->play_remove_lines::@1] b1_from_b4: - //SEG470 [212] 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 - //SEG471 [212] 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 - //SEG472 [212] 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 + //SEG474 [216] 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 + //SEG475 [216] 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 + //SEG476 [216] 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 - //SEG473 play_remove_lines::@1 + //SEG477 play_remove_lines::@1 b1: - //SEG474 [213] phi from play_remove_lines::@1 to play_remove_lines::@2 [phi:play_remove_lines::@1->play_remove_lines::@2] + //SEG478 [217] phi from play_remove_lines::@1 to play_remove_lines::@2 [phi:play_remove_lines::@1->play_remove_lines::@2] b2_from_b1: - //SEG475 [213] 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 + //SEG479 [217] 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 - //SEG476 [213] 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 + //SEG480 [217] 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 - //SEG477 [213] 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 - //SEG478 [213] 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 + //SEG481 [217] 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 + //SEG482 [217] 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 - //SEG479 [213] phi from play_remove_lines::@3 to play_remove_lines::@2 [phi:play_remove_lines::@3->play_remove_lines::@2] + //SEG483 [217] phi from play_remove_lines::@3 to play_remove_lines::@2 [phi:play_remove_lines::@3->play_remove_lines::@2] b2_from_b3: - //SEG480 [213] 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 - //SEG481 [213] 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 - //SEG482 [213] 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 - //SEG483 [213] 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 + //SEG484 [217] 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 + //SEG485 [217] 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 + //SEG486 [217] 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 + //SEG487 [217] 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 - //SEG484 play_remove_lines::@2 + //SEG488 play_remove_lines::@2 b2: - //SEG485 [214] (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 + //SEG489 [218] (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 - //SEG486 [215] (byte) play_remove_lines::r#1 ← -- (byte) play_remove_lines::r#2 -- vbuz1=_dec_vbuz1 + //SEG490 [219] (byte) play_remove_lines::r#1 ← -- (byte) play_remove_lines::r#2 -- vbuz1=_dec_vbuz1 dec r - //SEG487 [216] 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 + //SEG491 [220] 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 - //SEG488 [217] phi from play_remove_lines::@2 to play_remove_lines::@3 [phi:play_remove_lines::@2->play_remove_lines::@3] + //SEG492 [221] phi from play_remove_lines::@2 to play_remove_lines::@3 [phi:play_remove_lines::@2->play_remove_lines::@3] b3_from_b2: - //SEG489 [217] 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 + //SEG493 [221] 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 - //SEG490 play_remove_lines::@3 + //SEG494 play_remove_lines::@3 b3: - //SEG491 [218] *((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 + //SEG495 [222] *((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 - //SEG492 [219] (byte) play_remove_lines::w#1 ← -- (byte) play_remove_lines::w#4 -- vbuz1=_dec_vbuz1 + //SEG496 [223] (byte) play_remove_lines::w#1 ← -- (byte) play_remove_lines::w#4 -- vbuz1=_dec_vbuz1 dec w - //SEG493 [220] (byte) play_remove_lines::x#1 ← ++ (byte) play_remove_lines::x#2 -- vbuz1=_inc_vbuz1 + //SEG497 [224] (byte) play_remove_lines::x#1 ← ++ (byte) play_remove_lines::x#2 -- vbuz1=_inc_vbuz1 inc x - //SEG494 [221] 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 + //SEG498 [225] 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 - //SEG495 play_remove_lines::@9 + //SEG499 play_remove_lines::@9 b9: - //SEG496 [222] 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 + //SEG500 [226] 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 - //SEG497 play_remove_lines::@10 + //SEG501 play_remove_lines::@10 b10: - //SEG498 [223] (byte) play_remove_lines::w#2 ← (byte) play_remove_lines::w#1 + (const byte) PLAYFIELD_COLS#0 -- vbuz1=vbuz1_plus_vbuc1 + //SEG502 [227] (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 - //SEG499 [224] 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] + //SEG503 [228] 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: - //SEG500 [224] 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 + //SEG504 [228] 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 - //SEG501 play_remove_lines::@4 + //SEG505 play_remove_lines::@4 b4: - //SEG502 [225] (byte) play_remove_lines::y#1 ← ++ (byte) play_remove_lines::y#8 -- vbuz1=_inc_vbuz1 + //SEG506 [229] (byte) play_remove_lines::y#1 ← ++ (byte) play_remove_lines::y#8 -- vbuz1=_inc_vbuz1 inc y - //SEG503 [226] 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 + //SEG507 [230] 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 - //SEG504 [227] 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] + //SEG508 [231] 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: - //SEG505 [227] 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 + //SEG509 [231] 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 - //SEG506 play_remove_lines::@5 + //SEG510 play_remove_lines::@5 b5: - //SEG507 [228] 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 + //SEG511 [232] 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 - //SEG508 play_remove_lines::@return + //SEG512 play_remove_lines::@return breturn: - //SEG509 [229] return + //SEG513 [233] return rts - //SEG510 play_remove_lines::@6 + //SEG514 play_remove_lines::@6 b6: - //SEG511 [230] *((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 + //SEG515 [234] *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) play_remove_lines::w#6) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- pbuc1_derefidx_vbuz1=vbuc2 ldy w lda #0 sta playfield,y - //SEG512 [231] (byte) play_remove_lines::w#3 ← -- (byte) play_remove_lines::w#6 -- vbuz1=_dec_vbuz1 + //SEG516 [235] (byte) play_remove_lines::w#3 ← -- (byte) play_remove_lines::w#6 -- vbuz1=_dec_vbuz1 dec w jmp b5_from_b6 - //SEG513 [232] phi from play_remove_lines::@2 to play_remove_lines::@17 [phi:play_remove_lines::@2->play_remove_lines::@17] + //SEG517 [236] 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 - //SEG514 play_remove_lines::@17 + //SEG518 play_remove_lines::@17 b17: - //SEG515 [217] phi from play_remove_lines::@17 to play_remove_lines::@3 [phi:play_remove_lines::@17->play_remove_lines::@3] + //SEG519 [221] phi from play_remove_lines::@17 to play_remove_lines::@3 [phi:play_remove_lines::@17->play_remove_lines::@3] b3_from_b17: - //SEG516 [217] 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 + //SEG520 [221] 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 } -//SEG517 play_lock_current +//SEG521 play_lock_current play_lock_current: { .label ypos2 = $30 .label playfield_line = $80 @@ -9907,111 +9929,111 @@ play_lock_current: { .label i_3 = $32 .label i_7 = $32 .label i_9 = $32 - //SEG518 [233] (byte) play_lock_current::ypos2#0 ← (byte) current_ypos#22 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_rol_1 + //SEG522 [237] (byte) play_lock_current::ypos2#0 ← (byte) current_ypos#22 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_rol_1 lda current_ypos asl sta ypos2 - //SEG519 [234] phi from play_lock_current to play_lock_current::@1 [phi:play_lock_current->play_lock_current::@1] + //SEG523 [238] phi from play_lock_current to play_lock_current::@1 [phi:play_lock_current->play_lock_current::@1] b1_from_play_lock_current: - //SEG520 [234] 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 + //SEG524 [238] phi (byte) play_lock_current::l#6 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_lock_current->play_lock_current::@1#0] -- vbuz1=vbuc1 lda #0 sta l - //SEG521 [234] 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 + //SEG525 [238] 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 - //SEG522 [234] phi (byte) play_lock_current::ypos2#2 = (byte) play_lock_current::ypos2#0 [phi:play_lock_current->play_lock_current::@1#2] -- register_copy + //SEG526 [238] 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 - //SEG523 play_lock_current::@1 + //SEG527 play_lock_current::@1 b1: - //SEG524 [235] (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 + //SEG528 [239] (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 - //SEG525 [236] (byte) play_lock_current::col#0 ← (byte) current_xpos#11 -- vbuz1=vbuz2 + //SEG529 [240] (byte) play_lock_current::col#0 ← (byte) current_xpos#11 -- vbuz1=vbuz2 lda current_xpos sta col - //SEG526 [237] phi from play_lock_current::@1 to play_lock_current::@2 [phi:play_lock_current::@1->play_lock_current::@2] + //SEG530 [241] phi from play_lock_current::@1 to play_lock_current::@2 [phi:play_lock_current::@1->play_lock_current::@2] b2_from_b1: - //SEG527 [237] 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 + //SEG531 [241] 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 - //SEG528 [237] 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 - //SEG529 [237] 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 + //SEG532 [241] 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 + //SEG533 [241] 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 - //SEG530 play_lock_current::@2 + //SEG534 play_lock_current::@2 b2: - //SEG531 [238] (byte) play_lock_current::i#1 ← ++ (byte) play_lock_current::i#2 -- vbuz1=_inc_vbuz2 + //SEG535 [242] (byte) play_lock_current::i#1 ← ++ (byte) play_lock_current::i#2 -- vbuz1=_inc_vbuz2 ldy i_2 iny sty i - //SEG532 [239] if(*((byte*) current_piece_gfx#10 + (byte) play_lock_current::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_lock_current::@3 -- pbuz1_derefidx_vbuz2_eq_0_then_la1 + //SEG536 [243] if(*((byte*) current_piece_gfx#10 + (byte) play_lock_current::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_lock_current::@3 -- pbuz1_derefidx_vbuz2_eq_0_then_la1 ldy i_2 lda (current_piece_gfx),y cmp #0 beq b3 jmp b4 - //SEG533 play_lock_current::@4 + //SEG537 play_lock_current::@4 b4: - //SEG534 [240] *((byte*) play_lock_current::playfield_line#0 + (byte) play_lock_current::col#2) ← (byte) current_piece_char#16 -- pbuz1_derefidx_vbuz2=vbuz3 + //SEG538 [244] *((byte*) play_lock_current::playfield_line#0 + (byte) play_lock_current::col#2) ← (byte) current_piece_char#16 -- pbuz1_derefidx_vbuz2=vbuz3 lda current_piece_char ldy col sta (playfield_line),y jmp b3 - //SEG535 play_lock_current::@3 + //SEG539 play_lock_current::@3 b3: - //SEG536 [241] (byte) play_lock_current::col#1 ← ++ (byte) play_lock_current::col#2 -- vbuz1=_inc_vbuz1 + //SEG540 [245] (byte) play_lock_current::col#1 ← ++ (byte) play_lock_current::col#2 -- vbuz1=_inc_vbuz1 inc col - //SEG537 [242] (byte) play_lock_current::c#1 ← ++ (byte) play_lock_current::c#2 -- vbuz1=_inc_vbuz1 + //SEG541 [246] (byte) play_lock_current::c#1 ← ++ (byte) play_lock_current::c#2 -- vbuz1=_inc_vbuz1 inc c - //SEG538 [243] 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 + //SEG542 [247] 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 - //SEG539 play_lock_current::@5 + //SEG543 play_lock_current::@5 b5: - //SEG540 [244] (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 + //SEG544 [248] (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 - //SEG541 [245] (byte) play_lock_current::l#1 ← ++ (byte) play_lock_current::l#6 -- vbuz1=_inc_vbuz1 + //SEG545 [249] (byte) play_lock_current::l#1 ← ++ (byte) play_lock_current::l#6 -- vbuz1=_inc_vbuz1 inc l - //SEG542 [246] 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 + //SEG546 [250] 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 - //SEG543 play_lock_current::@return + //SEG547 play_lock_current::@return breturn: - //SEG544 [247] return + //SEG548 [251] return rts - //SEG545 play_lock_current::@7 + //SEG549 play_lock_current::@7 b7: - //SEG546 [248] (byte~) play_lock_current::i#7 ← (byte) play_lock_current::i#1 -- vbuz1=vbuz2 + //SEG550 [252] (byte~) play_lock_current::i#7 ← (byte) play_lock_current::i#1 -- vbuz1=vbuz2 lda i sta i_7 - //SEG547 [234] phi from play_lock_current::@7 to play_lock_current::@1 [phi:play_lock_current::@7->play_lock_current::@1] + //SEG551 [238] phi from play_lock_current::@7 to play_lock_current::@1 [phi:play_lock_current::@7->play_lock_current::@1] b1_from_b7: - //SEG548 [234] 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 - //SEG549 [234] 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 - //SEG550 [234] 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 + //SEG552 [238] 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 + //SEG553 [238] 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 + //SEG554 [238] 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 - //SEG551 play_lock_current::@8 + //SEG555 play_lock_current::@8 b8: - //SEG552 [249] (byte~) play_lock_current::i#9 ← (byte) play_lock_current::i#1 -- vbuz1=vbuz2 + //SEG556 [253] (byte~) play_lock_current::i#9 ← (byte) play_lock_current::i#1 -- vbuz1=vbuz2 lda i sta i_9 - //SEG553 [237] phi from play_lock_current::@8 to play_lock_current::@2 [phi:play_lock_current::@8->play_lock_current::@2] + //SEG557 [241] phi from play_lock_current::@8 to play_lock_current::@2 [phi:play_lock_current::@8->play_lock_current::@2] b2_from_b8: - //SEG554 [237] 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 - //SEG555 [237] 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 - //SEG556 [237] 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 + //SEG558 [241] 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 + //SEG559 [241] 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 + //SEG560 [241] 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 } -//SEG557 keyboard_event_pressed +//SEG561 keyboard_event_pressed keyboard_event_pressed: { .label _0 = $83 .label _1 = $85 @@ -10023,66 +10045,66 @@ keyboard_event_pressed: { .label keycode = $35 .label return_11 = $86 .label return_12 = $77 - //SEG558 [251] (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 + //SEG562 [255] (byte~) keyboard_event_pressed::$0 ← (byte) keyboard_event_pressed::keycode#5 >> (byte/signed byte/word/signed word/dword/signed dword) 3 -- vbuz1=vbuz2_ror_3 lda keycode lsr lsr lsr sta _0 - //SEG559 [252] (byte) keyboard_event_pressed::row_bits#0 ← *((const byte[8]) keyboard_scan_values#0 + (byte~) keyboard_event_pressed::$0) -- vbuz1=pbuc1_derefidx_vbuz2 + //SEG563 [256] (byte) keyboard_event_pressed::row_bits#0 ← *((const byte[8]) keyboard_scan_values#0 + (byte~) keyboard_event_pressed::$0) -- vbuz1=pbuc1_derefidx_vbuz2 ldy _0 lda keyboard_scan_values,y sta row_bits - //SEG560 [253] (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 + //SEG564 [257] (byte~) keyboard_event_pressed::$1 ← (byte) keyboard_event_pressed::keycode#5 & (byte/signed byte/word/signed word/dword/signed dword) 7 -- vbuz1=vbuz2_band_vbuc1 lda #7 and keycode sta _1 - //SEG561 [254] (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 + //SEG565 [258] (byte) keyboard_event_pressed::return#11 ← (byte) keyboard_event_pressed::row_bits#0 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte~) keyboard_event_pressed::$1) -- vbuz1=vbuz2_band_pbuc1_derefidx_vbuz3 lda row_bits ldy _1 and keyboard_matrix_col_bitmask,y sta return_11 jmp breturn - //SEG562 keyboard_event_pressed::@return + //SEG566 keyboard_event_pressed::@return breturn: - //SEG563 [255] return + //SEG567 [259] return rts } -//SEG564 keyboard_event_get +//SEG568 keyboard_event_get keyboard_event_get: { .label return = $36 .label return_3 = $57 - //SEG565 [256] 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 + //SEG569 [260] if((byte) keyboard_events_size#13==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_get::@return -- vbuz1_eq_0_then_la1 lda keyboard_events_size cmp #0 beq breturn_from_keyboard_event_get jmp b3 - //SEG566 keyboard_event_get::@3 + //SEG570 keyboard_event_get::@3 b3: - //SEG567 [257] (byte) keyboard_events_size#4 ← -- (byte) keyboard_events_size#13 -- vbuz1=_dec_vbuz1 + //SEG571 [261] (byte) keyboard_events_size#4 ← -- (byte) keyboard_events_size#13 -- vbuz1=_dec_vbuz1 dec keyboard_events_size - //SEG568 [258] (byte) keyboard_event_get::return#1 ← *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#4) -- vbuz1=pbuc1_derefidx_vbuz2 + //SEG572 [262] (byte) keyboard_event_get::return#1 ← *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#4) -- vbuz1=pbuc1_derefidx_vbuz2 ldy keyboard_events_size lda keyboard_events,y sta return - //SEG569 [259] phi from keyboard_event_get::@3 to keyboard_event_get::@return [phi:keyboard_event_get::@3->keyboard_event_get::@return] + //SEG573 [263] phi from keyboard_event_get::@3 to keyboard_event_get::@return [phi:keyboard_event_get::@3->keyboard_event_get::@return] breturn_from_b3: - //SEG570 [259] phi (byte) keyboard_events_size#16 = (byte) keyboard_events_size#4 [phi:keyboard_event_get::@3->keyboard_event_get::@return#0] -- register_copy - //SEG571 [259] 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 + //SEG574 [263] phi (byte) keyboard_events_size#16 = (byte) keyboard_events_size#4 [phi:keyboard_event_get::@3->keyboard_event_get::@return#0] -- register_copy + //SEG575 [263] phi (byte) keyboard_event_get::return#2 = (byte) keyboard_event_get::return#1 [phi:keyboard_event_get::@3->keyboard_event_get::@return#1] -- register_copy jmp breturn - //SEG572 [259] phi from keyboard_event_get to keyboard_event_get::@return [phi:keyboard_event_get->keyboard_event_get::@return] + //SEG576 [263] phi from keyboard_event_get to keyboard_event_get::@return [phi:keyboard_event_get->keyboard_event_get::@return] breturn_from_keyboard_event_get: - //SEG573 [259] phi (byte) keyboard_events_size#16 = (byte) keyboard_events_size#13 [phi:keyboard_event_get->keyboard_event_get::@return#0] -- register_copy - //SEG574 [259] 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 + //SEG577 [263] phi (byte) keyboard_events_size#16 = (byte) keyboard_events_size#13 [phi:keyboard_event_get->keyboard_event_get::@return#0] -- register_copy + //SEG578 [263] phi (byte) keyboard_event_get::return#2 = (byte/word/signed word/dword/signed dword) 255 [phi:keyboard_event_get->keyboard_event_get::@return#1] -- vbuz1=vbuc1 lda #$ff sta return jmp breturn - //SEG575 keyboard_event_get::@return + //SEG579 keyboard_event_get::@return breturn: - //SEG576 [260] return + //SEG580 [264] return rts } -//SEG577 keyboard_event_scan +//SEG581 keyboard_event_scan keyboard_event_scan: { .label _3 = $93 .label _4 = $94 @@ -10096,368 +10118,368 @@ keyboard_event_scan: { .label row = $37 .label col = $39 .label event_type = $95 - //SEG578 [262] phi from keyboard_event_scan to keyboard_event_scan::@1 [phi:keyboard_event_scan->keyboard_event_scan::@1] + //SEG582 [266] phi from keyboard_event_scan to keyboard_event_scan::@1 [phi:keyboard_event_scan->keyboard_event_scan::@1] b1_from_keyboard_event_scan: - //SEG579 [262] phi (byte) keyboard_events_size#29 = (byte) keyboard_events_size#19 [phi:keyboard_event_scan->keyboard_event_scan::@1#0] -- register_copy - //SEG580 [262] 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 + //SEG583 [266] phi (byte) keyboard_events_size#29 = (byte) keyboard_events_size#19 [phi:keyboard_event_scan->keyboard_event_scan::@1#0] -- register_copy + //SEG584 [266] phi (byte) keyboard_event_scan::keycode#11 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:keyboard_event_scan->keyboard_event_scan::@1#1] -- vbuz1=vbuc1 lda #0 sta keycode - //SEG581 [262] 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 + //SEG585 [266] phi (byte) keyboard_event_scan::row#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:keyboard_event_scan->keyboard_event_scan::@1#2] -- vbuz1=vbuc1 lda #0 sta row jmp b1 - //SEG582 [262] phi from keyboard_event_scan::@3 to keyboard_event_scan::@1 [phi:keyboard_event_scan::@3->keyboard_event_scan::@1] + //SEG586 [266] phi from keyboard_event_scan::@3 to keyboard_event_scan::@1 [phi:keyboard_event_scan::@3->keyboard_event_scan::@1] b1_from_b3: - //SEG583 [262] phi (byte) keyboard_events_size#29 = (byte) keyboard_events_size#13 [phi:keyboard_event_scan::@3->keyboard_event_scan::@1#0] -- register_copy - //SEG584 [262] 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 - //SEG585 [262] 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 + //SEG587 [266] phi (byte) keyboard_events_size#29 = (byte) keyboard_events_size#13 [phi:keyboard_event_scan::@3->keyboard_event_scan::@1#0] -- register_copy + //SEG588 [266] phi (byte) keyboard_event_scan::keycode#11 = (byte) keyboard_event_scan::keycode#14 [phi:keyboard_event_scan::@3->keyboard_event_scan::@1#1] -- register_copy + //SEG589 [266] phi (byte) keyboard_event_scan::row#2 = (byte) keyboard_event_scan::row#1 [phi:keyboard_event_scan::@3->keyboard_event_scan::@1#2] -- register_copy jmp b1 - //SEG586 keyboard_event_scan::@1 + //SEG590 keyboard_event_scan::@1 b1: - //SEG587 [263] (byte) keyboard_matrix_read::rowid#0 ← (byte) keyboard_event_scan::row#2 -- vbuz1=vbuz2 + //SEG591 [267] (byte) keyboard_matrix_read::rowid#0 ← (byte) keyboard_event_scan::row#2 -- vbuz1=vbuz2 lda row sta keyboard_matrix_read.rowid - //SEG588 [264] call keyboard_matrix_read + //SEG592 [268] call keyboard_matrix_read jsr keyboard_matrix_read - //SEG589 [265] (byte) keyboard_matrix_read::return#2 ← (byte) keyboard_matrix_read::return#0 -- vbuz1=vbuz2 + //SEG593 [269] (byte) keyboard_matrix_read::return#2 ← (byte) keyboard_matrix_read::return#0 -- vbuz1=vbuz2 lda keyboard_matrix_read.return sta keyboard_matrix_read.return_2 jmp b25 - //SEG590 keyboard_event_scan::@25 + //SEG594 keyboard_event_scan::@25 b25: - //SEG591 [266] (byte) keyboard_event_scan::row_scan#0 ← (byte) keyboard_matrix_read::return#2 -- vbuz1=vbuz2 + //SEG595 [270] (byte) keyboard_event_scan::row_scan#0 ← (byte) keyboard_matrix_read::return#2 -- vbuz1=vbuz2 lda keyboard_matrix_read.return_2 sta row_scan - //SEG592 [267] 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 + //SEG596 [271] if((byte) keyboard_event_scan::row_scan#0!=*((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2)) goto keyboard_event_scan::@4 -- vbuz1_neq_pbuc1_derefidx_vbuz2_then_la1 lda row_scan ldy row cmp keyboard_scan_values,y bne b4_from_b25 jmp b13 - //SEG593 keyboard_event_scan::@13 + //SEG597 keyboard_event_scan::@13 b13: - //SEG594 [268] (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 + //SEG598 [272] (byte) keyboard_event_scan::keycode#1 ← (byte) keyboard_event_scan::keycode#11 + (byte/signed byte/word/signed word/dword/signed dword) 8 -- vbuz1=vbuz1_plus_vbuc1 lda #8 clc adc keycode sta keycode - //SEG595 [269] 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] + //SEG599 [273] phi from keyboard_event_scan::@13 keyboard_event_scan::@19 to keyboard_event_scan::@3 [phi:keyboard_event_scan::@13/keyboard_event_scan::@19->keyboard_event_scan::@3] b3_from_b13: b3_from_b19: - //SEG596 [269] 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 - //SEG597 [269] 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 + //SEG600 [273] phi (byte) keyboard_events_size#13 = (byte) keyboard_events_size#29 [phi:keyboard_event_scan::@13/keyboard_event_scan::@19->keyboard_event_scan::@3#0] -- register_copy + //SEG601 [273] phi (byte) keyboard_event_scan::keycode#14 = (byte) keyboard_event_scan::keycode#1 [phi:keyboard_event_scan::@13/keyboard_event_scan::@19->keyboard_event_scan::@3#1] -- register_copy jmp b3 - //SEG598 keyboard_event_scan::@3 + //SEG602 keyboard_event_scan::@3 b3: - //SEG599 [270] (byte) keyboard_event_scan::row#1 ← ++ (byte) keyboard_event_scan::row#2 -- vbuz1=_inc_vbuz1 + //SEG603 [274] (byte) keyboard_event_scan::row#1 ← ++ (byte) keyboard_event_scan::row#2 -- vbuz1=_inc_vbuz1 inc row - //SEG600 [271] 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 + //SEG604 [275] if((byte) keyboard_event_scan::row#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto keyboard_event_scan::@1 -- vbuz1_neq_vbuc1_then_la1 lda row cmp #8 bne b1_from_b3 - //SEG601 [272] phi from keyboard_event_scan::@3 to keyboard_event_scan::@20 [phi:keyboard_event_scan::@3->keyboard_event_scan::@20] + //SEG605 [276] phi from keyboard_event_scan::@3 to keyboard_event_scan::@20 [phi:keyboard_event_scan::@3->keyboard_event_scan::@20] b20_from_b3: jmp b20 - //SEG602 keyboard_event_scan::@20 + //SEG606 keyboard_event_scan::@20 b20: - //SEG603 [273] call keyboard_event_pressed - //SEG604 [250] phi from keyboard_event_scan::@20 to keyboard_event_pressed [phi:keyboard_event_scan::@20->keyboard_event_pressed] + //SEG607 [277] call keyboard_event_pressed + //SEG608 [254] phi from keyboard_event_scan::@20 to keyboard_event_pressed [phi:keyboard_event_scan::@20->keyboard_event_pressed] keyboard_event_pressed_from_b20: - //SEG605 [250] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_LSHIFT#0 [phi:keyboard_event_scan::@20->keyboard_event_pressed#0] -- vbuz1=vbuc1 + //SEG609 [254] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_LSHIFT#0 [phi:keyboard_event_scan::@20->keyboard_event_pressed#0] -- vbuz1=vbuc1 lda #KEY_LSHIFT sta keyboard_event_pressed.keycode jsr keyboard_event_pressed - //SEG606 [274] (byte) keyboard_event_pressed::return#0 ← (byte) keyboard_event_pressed::return#11 -- vbuz1=vbuz2 + //SEG610 [278] (byte) keyboard_event_pressed::return#0 ← (byte) keyboard_event_pressed::return#11 -- vbuz1=vbuz2 lda keyboard_event_pressed.return_11 sta keyboard_event_pressed.return jmp b26 - //SEG607 keyboard_event_scan::@26 + //SEG611 keyboard_event_scan::@26 b26: - //SEG608 [275] (byte~) keyboard_event_scan::$14 ← (byte) keyboard_event_pressed::return#0 -- vbuz1=vbuz2 + //SEG612 [279] (byte~) keyboard_event_scan::$14 ← (byte) keyboard_event_pressed::return#0 -- vbuz1=vbuz2 lda keyboard_event_pressed.return sta _14 - //SEG609 [276] 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 + //SEG613 [280] if((byte~) keyboard_event_scan::$14==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@9 -- vbuz1_eq_0_then_la1 lda _14 cmp #0 beq b9_from_b26 - //SEG610 [277] phi from keyboard_event_scan::@26 to keyboard_event_scan::@21 [phi:keyboard_event_scan::@26->keyboard_event_scan::@21] + //SEG614 [281] phi from keyboard_event_scan::@26 to keyboard_event_scan::@21 [phi:keyboard_event_scan::@26->keyboard_event_scan::@21] b21_from_b26: jmp b21 - //SEG611 keyboard_event_scan::@21 + //SEG615 keyboard_event_scan::@21 b21: - //SEG612 [278] phi from keyboard_event_scan::@21 to keyboard_event_scan::@9 [phi:keyboard_event_scan::@21->keyboard_event_scan::@9] + //SEG616 [282] phi from keyboard_event_scan::@21 to keyboard_event_scan::@9 [phi:keyboard_event_scan::@21->keyboard_event_scan::@9] b9_from_b21: - //SEG613 [278] 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 + //SEG617 [282] 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 - //SEG614 [278] phi from keyboard_event_scan::@26 to keyboard_event_scan::@9 [phi:keyboard_event_scan::@26->keyboard_event_scan::@9] + //SEG618 [282] phi from keyboard_event_scan::@26 to keyboard_event_scan::@9 [phi:keyboard_event_scan::@26->keyboard_event_scan::@9] b9_from_b26: - //SEG615 [278] 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 + //SEG619 [282] 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 - //SEG616 keyboard_event_scan::@9 + //SEG620 keyboard_event_scan::@9 b9: - //SEG617 [279] call keyboard_event_pressed - //SEG618 [250] phi from keyboard_event_scan::@9 to keyboard_event_pressed [phi:keyboard_event_scan::@9->keyboard_event_pressed] + //SEG621 [283] call keyboard_event_pressed + //SEG622 [254] phi from keyboard_event_scan::@9 to keyboard_event_pressed [phi:keyboard_event_scan::@9->keyboard_event_pressed] keyboard_event_pressed_from_b9: - //SEG619 [250] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_RSHIFT#0 [phi:keyboard_event_scan::@9->keyboard_event_pressed#0] -- vbuz1=vbuc1 + //SEG623 [254] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_RSHIFT#0 [phi:keyboard_event_scan::@9->keyboard_event_pressed#0] -- vbuz1=vbuc1 lda #KEY_RSHIFT sta keyboard_event_pressed.keycode jsr keyboard_event_pressed - //SEG620 [280] (byte) keyboard_event_pressed::return#1 ← (byte) keyboard_event_pressed::return#11 -- vbuz1=vbuz2 + //SEG624 [284] (byte) keyboard_event_pressed::return#1 ← (byte) keyboard_event_pressed::return#11 -- vbuz1=vbuz2 lda keyboard_event_pressed.return_11 sta keyboard_event_pressed.return_1 jmp b27 - //SEG621 keyboard_event_scan::@27 + //SEG625 keyboard_event_scan::@27 b27: - //SEG622 [281] (byte~) keyboard_event_scan::$18 ← (byte) keyboard_event_pressed::return#1 -- vbuz1=vbuz2 + //SEG626 [285] (byte~) keyboard_event_scan::$18 ← (byte) keyboard_event_pressed::return#1 -- vbuz1=vbuz2 lda keyboard_event_pressed.return_1 sta _18 - //SEG623 [282] 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 + //SEG627 [286] if((byte~) keyboard_event_scan::$18==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@10 -- vbuz1_eq_0_then_la1 lda _18 cmp #0 beq b10_from_b27 jmp b22 - //SEG624 keyboard_event_scan::@22 + //SEG628 keyboard_event_scan::@22 b22: - //SEG625 [283] (byte) keyboard_modifiers#3 ← (byte) keyboard_modifiers#11 | (const byte) KEY_MODIFIER_RSHIFT#0 -- vbuz1=vbuz1_bor_vbuc1 + //SEG629 [287] (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 - //SEG626 [284] 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] + //SEG630 [288] phi from keyboard_event_scan::@22 keyboard_event_scan::@27 to keyboard_event_scan::@10 [phi:keyboard_event_scan::@22/keyboard_event_scan::@27->keyboard_event_scan::@10] b10_from_b22: b10_from_b27: - //SEG627 [284] 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 + //SEG631 [288] 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 - //SEG628 keyboard_event_scan::@10 + //SEG632 keyboard_event_scan::@10 b10: - //SEG629 [285] call keyboard_event_pressed - //SEG630 [250] phi from keyboard_event_scan::@10 to keyboard_event_pressed [phi:keyboard_event_scan::@10->keyboard_event_pressed] + //SEG633 [289] call keyboard_event_pressed + //SEG634 [254] phi from keyboard_event_scan::@10 to keyboard_event_pressed [phi:keyboard_event_scan::@10->keyboard_event_pressed] keyboard_event_pressed_from_b10: - //SEG631 [250] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_CTRL#0 [phi:keyboard_event_scan::@10->keyboard_event_pressed#0] -- vbuz1=vbuc1 + //SEG635 [254] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_CTRL#0 [phi:keyboard_event_scan::@10->keyboard_event_pressed#0] -- vbuz1=vbuc1 lda #KEY_CTRL sta keyboard_event_pressed.keycode jsr keyboard_event_pressed - //SEG632 [286] (byte) keyboard_event_pressed::return#2 ← (byte) keyboard_event_pressed::return#11 -- vbuz1=vbuz2 + //SEG636 [290] (byte) keyboard_event_pressed::return#2 ← (byte) keyboard_event_pressed::return#11 -- vbuz1=vbuz2 lda keyboard_event_pressed.return_11 sta keyboard_event_pressed.return_2 jmp b28 - //SEG633 keyboard_event_scan::@28 + //SEG637 keyboard_event_scan::@28 b28: - //SEG634 [287] (byte~) keyboard_event_scan::$22 ← (byte) keyboard_event_pressed::return#2 -- vbuz1=vbuz2 + //SEG638 [291] (byte~) keyboard_event_scan::$22 ← (byte) keyboard_event_pressed::return#2 -- vbuz1=vbuz2 lda keyboard_event_pressed.return_2 sta _22 - //SEG635 [288] 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 + //SEG639 [292] if((byte~) keyboard_event_scan::$22==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@11 -- vbuz1_eq_0_then_la1 lda _22 cmp #0 beq b11_from_b28 jmp b23 - //SEG636 keyboard_event_scan::@23 + //SEG640 keyboard_event_scan::@23 b23: - //SEG637 [289] (byte) keyboard_modifiers#4 ← (byte) keyboard_modifiers#12 | (const byte) KEY_MODIFIER_CTRL#0 -- vbuz1=vbuz1_bor_vbuc1 + //SEG641 [293] (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 - //SEG638 [290] 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] + //SEG642 [294] phi from keyboard_event_scan::@23 keyboard_event_scan::@28 to keyboard_event_scan::@11 [phi:keyboard_event_scan::@23/keyboard_event_scan::@28->keyboard_event_scan::@11] b11_from_b23: b11_from_b28: - //SEG639 [290] 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 + //SEG643 [294] 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 - //SEG640 keyboard_event_scan::@11 + //SEG644 keyboard_event_scan::@11 b11: - //SEG641 [291] call keyboard_event_pressed - //SEG642 [250] phi from keyboard_event_scan::@11 to keyboard_event_pressed [phi:keyboard_event_scan::@11->keyboard_event_pressed] + //SEG645 [295] call keyboard_event_pressed + //SEG646 [254] phi from keyboard_event_scan::@11 to keyboard_event_pressed [phi:keyboard_event_scan::@11->keyboard_event_pressed] keyboard_event_pressed_from_b11: - //SEG643 [250] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_COMMODORE#0 [phi:keyboard_event_scan::@11->keyboard_event_pressed#0] -- vbuz1=vbuc1 + //SEG647 [254] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_COMMODORE#0 [phi:keyboard_event_scan::@11->keyboard_event_pressed#0] -- vbuz1=vbuc1 lda #KEY_COMMODORE sta keyboard_event_pressed.keycode jsr keyboard_event_pressed - //SEG644 [292] (byte) keyboard_event_pressed::return#10 ← (byte) keyboard_event_pressed::return#11 -- vbuz1=vbuz2 + //SEG648 [296] (byte) keyboard_event_pressed::return#10 ← (byte) keyboard_event_pressed::return#11 -- vbuz1=vbuz2 lda keyboard_event_pressed.return_11 sta keyboard_event_pressed.return_10 jmp b29 - //SEG645 keyboard_event_scan::@29 + //SEG649 keyboard_event_scan::@29 b29: - //SEG646 [293] (byte~) keyboard_event_scan::$26 ← (byte) keyboard_event_pressed::return#10 -- vbuz1=vbuz2 + //SEG650 [297] (byte~) keyboard_event_scan::$26 ← (byte) keyboard_event_pressed::return#10 -- vbuz1=vbuz2 lda keyboard_event_pressed.return_10 sta _26 - //SEG647 [294] 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 + //SEG651 [298] if((byte~) keyboard_event_scan::$26==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@return -- vbuz1_eq_0_then_la1 lda _26 cmp #0 beq breturn jmp b24 - //SEG648 keyboard_event_scan::@24 + //SEG652 keyboard_event_scan::@24 b24: - //SEG649 [295] (byte) keyboard_modifiers#5 ← (byte) keyboard_modifiers#13 | (const byte) KEY_MODIFIER_COMMODORE#0 -- vbuz1=vbuz2_bor_vbuc1 + //SEG653 [299] (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 - //SEG650 keyboard_event_scan::@return + //SEG654 keyboard_event_scan::@return breturn: - //SEG651 [296] return + //SEG655 [300] return rts - //SEG652 [297] phi from keyboard_event_scan::@25 to keyboard_event_scan::@4 [phi:keyboard_event_scan::@25->keyboard_event_scan::@4] + //SEG656 [301] phi from keyboard_event_scan::@25 to keyboard_event_scan::@4 [phi:keyboard_event_scan::@25->keyboard_event_scan::@4] b4_from_b25: - //SEG653 [297] phi (byte) keyboard_events_size#10 = (byte) keyboard_events_size#29 [phi:keyboard_event_scan::@25->keyboard_event_scan::@4#0] -- register_copy - //SEG654 [297] 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 - //SEG655 [297] 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 + //SEG657 [301] phi (byte) keyboard_events_size#10 = (byte) keyboard_events_size#29 [phi:keyboard_event_scan::@25->keyboard_event_scan::@4#0] -- register_copy + //SEG658 [301] phi (byte) keyboard_event_scan::keycode#10 = (byte) keyboard_event_scan::keycode#11 [phi:keyboard_event_scan::@25->keyboard_event_scan::@4#1] -- register_copy + //SEG659 [301] phi (byte) keyboard_event_scan::col#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:keyboard_event_scan::@25->keyboard_event_scan::@4#2] -- vbuz1=vbuc1 lda #0 sta col jmp b4 - //SEG656 [297] phi from keyboard_event_scan::@5 to keyboard_event_scan::@4 [phi:keyboard_event_scan::@5->keyboard_event_scan::@4] + //SEG660 [301] phi from keyboard_event_scan::@5 to keyboard_event_scan::@4 [phi:keyboard_event_scan::@5->keyboard_event_scan::@4] b4_from_b5: - //SEG657 [297] phi (byte) keyboard_events_size#10 = (byte) keyboard_events_size#30 [phi:keyboard_event_scan::@5->keyboard_event_scan::@4#0] -- register_copy - //SEG658 [297] 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 - //SEG659 [297] 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 + //SEG661 [301] phi (byte) keyboard_events_size#10 = (byte) keyboard_events_size#30 [phi:keyboard_event_scan::@5->keyboard_event_scan::@4#0] -- register_copy + //SEG662 [301] phi (byte) keyboard_event_scan::keycode#10 = (byte) keyboard_event_scan::keycode#15 [phi:keyboard_event_scan::@5->keyboard_event_scan::@4#1] -- register_copy + //SEG663 [301] phi (byte) keyboard_event_scan::col#2 = (byte) keyboard_event_scan::col#1 [phi:keyboard_event_scan::@5->keyboard_event_scan::@4#2] -- register_copy jmp b4 - //SEG660 keyboard_event_scan::@4 + //SEG664 keyboard_event_scan::@4 b4: - //SEG661 [298] (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 + //SEG665 [302] (byte~) keyboard_event_scan::$3 ← (byte) keyboard_event_scan::row_scan#0 ^ *((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2) -- vbuz1=vbuz2_bxor_pbuc1_derefidx_vbuz3 lda row_scan ldy row eor keyboard_scan_values,y sta _3 - //SEG662 [299] (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 + //SEG666 [303] (byte~) keyboard_event_scan::$4 ← (byte~) keyboard_event_scan::$3 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_event_scan::col#2) -- vbuz1=vbuz2_band_pbuc1_derefidx_vbuz3 lda _3 ldy col and keyboard_matrix_col_bitmask,y sta _4 - //SEG663 [300] 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 + //SEG667 [304] if((byte~) keyboard_event_scan::$4==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@5 -- vbuz1_eq_0_then_la1 lda _4 cmp #0 beq b5_from_b4 jmp b15 - //SEG664 keyboard_event_scan::@15 + //SEG668 keyboard_event_scan::@15 b15: - //SEG665 [301] 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 + //SEG669 [305] if((byte) keyboard_events_size#10==(byte/signed byte/word/signed word/dword/signed dword) 8) goto keyboard_event_scan::@5 -- vbuz1_eq_vbuc1_then_la1 lda keyboard_events_size cmp #8 beq b5_from_b15 jmp b16 - //SEG666 keyboard_event_scan::@16 + //SEG670 keyboard_event_scan::@16 b16: - //SEG667 [302] (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 + //SEG671 [306] (byte) keyboard_event_scan::event_type#0 ← (byte) keyboard_event_scan::row_scan#0 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_event_scan::col#2) -- vbuz1=vbuz2_band_pbuc1_derefidx_vbuz3 lda row_scan ldy col and keyboard_matrix_col_bitmask,y sta event_type - //SEG668 [303] 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 + //SEG672 [307] if((byte) keyboard_event_scan::event_type#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@7 -- vbuz1_eq_0_then_la1 lda event_type cmp #0 beq b7 jmp b17 - //SEG669 keyboard_event_scan::@17 + //SEG673 keyboard_event_scan::@17 b17: - //SEG670 [304] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte) keyboard_event_scan::keycode#10 -- pbuc1_derefidx_vbuz1=vbuz2 + //SEG674 [308] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte) keyboard_event_scan::keycode#10 -- pbuc1_derefidx_vbuz1=vbuz2 lda keycode ldy keyboard_events_size sta keyboard_events,y - //SEG671 [305] (byte) keyboard_events_size#2 ← ++ (byte) keyboard_events_size#10 -- vbuz1=_inc_vbuz1 + //SEG675 [309] (byte) keyboard_events_size#2 ← ++ (byte) keyboard_events_size#10 -- vbuz1=_inc_vbuz1 inc keyboard_events_size - //SEG672 [306] 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] + //SEG676 [310] phi from keyboard_event_scan::@15 keyboard_event_scan::@17 keyboard_event_scan::@4 keyboard_event_scan::@7 to keyboard_event_scan::@5 [phi:keyboard_event_scan::@15/keyboard_event_scan::@17/keyboard_event_scan::@4/keyboard_event_scan::@7->keyboard_event_scan::@5] b5_from_b15: b5_from_b17: b5_from_b4: b5_from_b7: - //SEG673 [306] 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 + //SEG677 [310] phi (byte) keyboard_events_size#30 = (byte) keyboard_events_size#10 [phi:keyboard_event_scan::@15/keyboard_event_scan::@17/keyboard_event_scan::@4/keyboard_event_scan::@7->keyboard_event_scan::@5#0] -- register_copy jmp b5 - //SEG674 keyboard_event_scan::@5 + //SEG678 keyboard_event_scan::@5 b5: - //SEG675 [307] (byte) keyboard_event_scan::keycode#15 ← ++ (byte) keyboard_event_scan::keycode#10 -- vbuz1=_inc_vbuz1 + //SEG679 [311] (byte) keyboard_event_scan::keycode#15 ← ++ (byte) keyboard_event_scan::keycode#10 -- vbuz1=_inc_vbuz1 inc keycode - //SEG676 [308] (byte) keyboard_event_scan::col#1 ← ++ (byte) keyboard_event_scan::col#2 -- vbuz1=_inc_vbuz1 + //SEG680 [312] (byte) keyboard_event_scan::col#1 ← ++ (byte) keyboard_event_scan::col#2 -- vbuz1=_inc_vbuz1 inc col - //SEG677 [309] 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 + //SEG681 [313] if((byte) keyboard_event_scan::col#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto keyboard_event_scan::@4 -- vbuz1_neq_vbuc1_then_la1 lda col cmp #8 bne b4_from_b5 jmp b19 - //SEG678 keyboard_event_scan::@19 + //SEG682 keyboard_event_scan::@19 b19: - //SEG679 [310] *((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2) ← (byte) keyboard_event_scan::row_scan#0 -- pbuc1_derefidx_vbuz1=vbuz2 + //SEG683 [314] *((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2) ← (byte) keyboard_event_scan::row_scan#0 -- pbuc1_derefidx_vbuz1=vbuz2 lda row_scan ldy row sta keyboard_scan_values,y jmp b3_from_b19 - //SEG680 keyboard_event_scan::@7 + //SEG684 keyboard_event_scan::@7 b7: - //SEG681 [311] (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 + //SEG685 [315] (byte/word/dword~) keyboard_event_scan::$11 ← (byte) keyboard_event_scan::keycode#10 | (byte/signed byte/word/signed word/dword/signed dword) 64 -- vbuz1=vbuz2_bor_vbuc1 lda #$40 ora keycode sta _11 - //SEG682 [312] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte/word/dword~) keyboard_event_scan::$11 -- pbuc1_derefidx_vbuz1=vbuz2 + //SEG686 [316] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte/word/dword~) keyboard_event_scan::$11 -- pbuc1_derefidx_vbuz1=vbuz2 lda _11 ldy keyboard_events_size sta keyboard_events,y - //SEG683 [313] (byte) keyboard_events_size#1 ← ++ (byte) keyboard_events_size#10 -- vbuz1=_inc_vbuz1 + //SEG687 [317] (byte) keyboard_events_size#1 ← ++ (byte) keyboard_events_size#10 -- vbuz1=_inc_vbuz1 inc keyboard_events_size jmp b5_from_b7 } -//SEG684 keyboard_matrix_read +//SEG688 keyboard_matrix_read keyboard_matrix_read: { .label return = $97 .label rowid = $87 .label return_2 = $88 - //SEG685 [314] *((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 + //SEG689 [318] *((const byte*) CIA1_PORT_A#0) ← *((const byte[8]) keyboard_matrix_row_bitmask#0 + (byte) keyboard_matrix_read::rowid#0) -- _deref_pbuc1=pbuc2_derefidx_vbuz1 ldy rowid lda keyboard_matrix_row_bitmask,y sta CIA1_PORT_A - //SEG686 [315] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) -- vbuz1=_bnot__deref_pbuc1 + //SEG690 [319] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) -- vbuz1=_bnot__deref_pbuc1 lda CIA1_PORT_B eor #$ff sta return jmp breturn - //SEG687 keyboard_matrix_read::@return + //SEG691 keyboard_matrix_read::@return breturn: - //SEG688 [316] return + //SEG692 [320] return rts } -//SEG689 play_init +//SEG693 play_init play_init: { .label _1 = $98 .label pli = $3d .label idx = $3f .label j = $3c - //SEG690 [318] phi from play_init to play_init::@1 [phi:play_init->play_init::@1] + //SEG694 [322] phi from play_init to play_init::@1 [phi:play_init->play_init::@1] b1_from_play_init: - //SEG691 [318] 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 + //SEG695 [322] 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 - //SEG692 [318] 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 + //SEG696 [322] 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 - //SEG693 [318] 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 + //SEG697 [322] 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 - //SEG694 [318] phi from play_init::@1 to play_init::@1 [phi:play_init::@1->play_init::@1] + //SEG698 [322] phi from play_init::@1 to play_init::@1 [phi:play_init::@1->play_init::@1] b1_from_b1: - //SEG695 [318] phi (byte) play_init::idx#2 = (byte) play_init::idx#1 [phi:play_init::@1->play_init::@1#0] -- register_copy - //SEG696 [318] phi (byte*) play_init::pli#2 = (byte*) play_init::pli#1 [phi:play_init::@1->play_init::@1#1] -- register_copy - //SEG697 [318] phi (byte) play_init::j#2 = (byte) play_init::j#1 [phi:play_init::@1->play_init::@1#2] -- register_copy + //SEG699 [322] phi (byte) play_init::idx#2 = (byte) play_init::idx#1 [phi:play_init::@1->play_init::@1#0] -- register_copy + //SEG700 [322] phi (byte*) play_init::pli#2 = (byte*) play_init::pli#1 [phi:play_init::@1->play_init::@1#1] -- register_copy + //SEG701 [322] phi (byte) play_init::j#2 = (byte) play_init::j#1 [phi:play_init::@1->play_init::@1#2] -- register_copy jmp b1 - //SEG698 play_init::@1 + //SEG702 play_init::@1 b1: - //SEG699 [319] (byte~) play_init::$1 ← (byte) play_init::j#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_rol_1 + //SEG703 [323] (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 - //SEG700 [320] *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte~) play_init::$1) ← (byte*) play_init::pli#2 -- pptc1_derefidx_vbuz1=pbuz2 + //SEG704 [324] *((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 - //SEG701 [321] *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0 + (byte) play_init::j#2) ← (byte) play_init::idx#2 -- pbuc1_derefidx_vbuz1=vbuz2 + //SEG705 [325] *((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 - //SEG702 [322] (byte*) play_init::pli#1 ← (byte*) play_init::pli#2 + (const byte) PLAYFIELD_COLS#0 -- pbuz1=pbuz1_plus_vbuc1 + //SEG706 [326] (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 @@ -10465,133 +10487,133 @@ play_init: { bcc !+ inc pli+1 !: - //SEG703 [323] (byte) play_init::idx#1 ← (byte) play_init::idx#2 + (const byte) PLAYFIELD_COLS#0 -- vbuz1=vbuz1_plus_vbuc1 + //SEG707 [327] (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 - //SEG704 [324] (byte) play_init::j#1 ← ++ (byte) play_init::j#2 -- vbuz1=_inc_vbuz1 + //SEG708 [328] (byte) play_init::j#1 ← ++ (byte) play_init::j#2 -- vbuz1=_inc_vbuz1 inc j - //SEG705 [325] 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 + //SEG709 [329] 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 - //SEG706 play_init::@2 + //SEG710 play_init::@2 b2: - //SEG707 [326] *((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 + //SEG711 [330] *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0+(const byte) PLAYFIELD_LINES#0) ← (const byte) PLAYFIELD_COLS#0*(const byte) PLAYFIELD_LINES#0 -- _deref_pbuc1=vbuc2 lda #PLAYFIELD_COLS*PLAYFIELD_LINES sta playfield_lines_idx+PLAYFIELD_LINES jmp breturn - //SEG708 play_init::@return + //SEG712 play_init::@return breturn: - //SEG709 [327] return + //SEG713 [331] return rts } -//SEG710 sprites_irq_init +//SEG714 sprites_irq_init sprites_irq_init: { - //SEG711 asm { sei } + //SEG715 asm { sei } sei - //SEG712 [329] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0 -- _deref_pbuc1=vbuc2 + //SEG716 [333] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0 -- _deref_pbuc1=vbuc2 lda #IRQ_RASTER sta IRQ_STATUS - //SEG713 asm { ldaCIA1_INTERRUPT } + //SEG717 asm { ldaCIA1_INTERRUPT } lda CIA1_INTERRUPT - //SEG714 [331] *((const byte*) PROCPORT_DDR#0) ← (const byte) PROCPORT_DDR_MEMORY_MASK#0 -- _deref_pbuc1=vbuc2 + //SEG718 [335] *((const byte*) PROCPORT_DDR#0) ← (const byte) PROCPORT_DDR_MEMORY_MASK#0 -- _deref_pbuc1=vbuc2 lda #PROCPORT_DDR_MEMORY_MASK sta PROCPORT_DDR - //SEG715 [332] *((const byte*) PROCPORT#0) ← (const byte) PROCPORT_RAM_IO#0 -- _deref_pbuc1=vbuc2 + //SEG719 [336] *((const byte*) PROCPORT#0) ← (const byte) PROCPORT_RAM_IO#0 -- _deref_pbuc1=vbuc2 lda #PROCPORT_RAM_IO sta PROCPORT - //SEG716 [333] *((const byte*) CIA1_INTERRUPT#0) ← (const byte) CIA_INTERRUPT_CLEAR#0 -- _deref_pbuc1=vbuc2 + //SEG720 [337] *((const byte*) CIA1_INTERRUPT#0) ← (const byte) CIA_INTERRUPT_CLEAR#0 -- _deref_pbuc1=vbuc2 lda #CIA_INTERRUPT_CLEAR sta CIA1_INTERRUPT - //SEG717 [334] *((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 + //SEG721 [338] *((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 - //SEG718 [335] *((const byte*) RASTER#0) ← (const byte) IRQ_RASTER_FIRST#0 -- _deref_pbuc1=vbuc2 + //SEG722 [339] *((const byte*) RASTER#0) ← (const byte) IRQ_RASTER_FIRST#0 -- _deref_pbuc1=vbuc2 lda #IRQ_RASTER_FIRST sta RASTER - //SEG719 [336] *((const byte*) IRQ_ENABLE#0) ← (const byte) IRQ_RASTER#0 -- _deref_pbuc1=vbuc2 + //SEG723 [340] *((const byte*) IRQ_ENABLE#0) ← (const byte) IRQ_RASTER#0 -- _deref_pbuc1=vbuc2 lda #IRQ_RASTER sta IRQ_ENABLE - //SEG720 [337] *((const void()**) HARDWARE_IRQ#0) ← &interrupt(HARDWARE_CLOBBER)(void()) irq() -- _deref_pptc1=pprc2 + //SEG724 [341] *((const void()**) HARDWARE_IRQ#0) ← &interrupt(HARDWARE_CLOBBER)(void()) irq() -- _deref_pptc1=pprc2 lda #irq sta HARDWARE_IRQ+1 - //SEG721 asm { cli } + //SEG725 asm { cli } cli jmp breturn - //SEG722 sprites_irq_init::@return + //SEG726 sprites_irq_init::@return breturn: - //SEG723 [339] return + //SEG727 [343] return rts } -//SEG724 sprites_init +//SEG728 sprites_init sprites_init: { .label s2 = $99 .label xpos = $41 .label s = $40 - //SEG725 [340] *((const byte*) SPRITES_ENABLE#0) ← (byte/signed byte/word/signed word/dword/signed dword) 15 -- _deref_pbuc1=vbuc2 + //SEG729 [344] *((const byte*) SPRITES_ENABLE#0) ← (byte/signed byte/word/signed word/dword/signed dword) 15 -- _deref_pbuc1=vbuc2 lda #$f sta SPRITES_ENABLE - //SEG726 [341] *((const byte*) SPRITES_MC#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2 + //SEG730 [345] *((const byte*) SPRITES_MC#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2 lda #0 sta SPRITES_MC - //SEG727 [342] *((const byte*) SPRITES_EXPAND_Y#0) ← *((const byte*) SPRITES_MC#0) -- _deref_pbuc1=_deref_pbuc2 + //SEG731 [346] *((const byte*) SPRITES_EXPAND_Y#0) ← *((const byte*) SPRITES_MC#0) -- _deref_pbuc1=_deref_pbuc2 lda SPRITES_MC sta SPRITES_EXPAND_Y - //SEG728 [343] *((const byte*) SPRITES_EXPAND_X#0) ← *((const byte*) SPRITES_EXPAND_Y#0) -- _deref_pbuc1=_deref_pbuc2 + //SEG732 [347] *((const byte*) SPRITES_EXPAND_X#0) ← *((const byte*) SPRITES_EXPAND_Y#0) -- _deref_pbuc1=_deref_pbuc2 lda SPRITES_EXPAND_Y sta SPRITES_EXPAND_X - //SEG729 [344] phi from sprites_init to sprites_init::@1 [phi:sprites_init->sprites_init::@1] + //SEG733 [348] phi from sprites_init to sprites_init::@1 [phi:sprites_init->sprites_init::@1] b1_from_sprites_init: - //SEG730 [344] 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 + //SEG734 [348] 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 - //SEG731 [344] 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 + //SEG735 [348] 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 - //SEG732 [344] phi from sprites_init::@1 to sprites_init::@1 [phi:sprites_init::@1->sprites_init::@1] + //SEG736 [348] phi from sprites_init::@1 to sprites_init::@1 [phi:sprites_init::@1->sprites_init::@1] b1_from_b1: - //SEG733 [344] phi (byte) sprites_init::xpos#2 = (byte) sprites_init::xpos#1 [phi:sprites_init::@1->sprites_init::@1#0] -- register_copy - //SEG734 [344] phi (byte) sprites_init::s#2 = (byte) sprites_init::s#1 [phi:sprites_init::@1->sprites_init::@1#1] -- register_copy + //SEG737 [348] phi (byte) sprites_init::xpos#2 = (byte) sprites_init::xpos#1 [phi:sprites_init::@1->sprites_init::@1#0] -- register_copy + //SEG738 [348] phi (byte) sprites_init::s#2 = (byte) sprites_init::s#1 [phi:sprites_init::@1->sprites_init::@1#1] -- register_copy jmp b1 - //SEG735 sprites_init::@1 + //SEG739 sprites_init::@1 b1: - //SEG736 [345] (byte) sprites_init::s2#0 ← (byte) sprites_init::s#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_rol_1 + //SEG740 [349] (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 - //SEG737 [346] *((const byte*) SPRITES_XPOS#0 + (byte) sprites_init::s2#0) ← (byte) sprites_init::xpos#2 -- pbuc1_derefidx_vbuz1=vbuz2 + //SEG741 [350] *((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 - //SEG738 [347] *((const byte*) SPRITES_COLS#0 + (byte) sprites_init::s#2) ← (const byte) BLACK#0 -- pbuc1_derefidx_vbuz1=vbuc2 + //SEG742 [351] *((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 - //SEG739 [348] (byte) sprites_init::xpos#1 ← (byte) sprites_init::xpos#2 + (byte/signed byte/word/signed word/dword/signed dword) 24 -- vbuz1=vbuz1_plus_vbuc1 + //SEG743 [352] (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 - //SEG740 [349] (byte) sprites_init::s#1 ← ++ (byte) sprites_init::s#2 -- vbuz1=_inc_vbuz1 + //SEG744 [353] (byte) sprites_init::s#1 ← ++ (byte) sprites_init::s#2 -- vbuz1=_inc_vbuz1 inc s - //SEG741 [350] 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 + //SEG745 [354] 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 - //SEG742 sprites_init::@return + //SEG746 sprites_init::@return breturn: - //SEG743 [351] return + //SEG747 [355] return rts } -//SEG744 render_init +//SEG748 render_init render_init: { .const vicSelectGfxBank1_toDd001_return = 3^(>PLAYFIELD_SCREEN)>>6 .const toD0181_return = (>(PLAYFIELD_SCREEN&$3fff)<<2)|(>PLAYFIELD_CHARSET)>>2&$f @@ -10603,90 +10625,90 @@ render_init: { .label line = $45 .label l = $47 jmp vicSelectGfxBank1 - //SEG745 render_init::vicSelectGfxBank1 + //SEG749 render_init::vicSelectGfxBank1 vicSelectGfxBank1: - //SEG746 [353] *((const byte*) CIA2_PORT_A_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3 -- _deref_pbuc1=vbuc2 + //SEG750 [357] *((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 - //SEG747 [354] phi from render_init::vicSelectGfxBank1 to render_init::vicSelectGfxBank1_toDd001 [phi:render_init::vicSelectGfxBank1->render_init::vicSelectGfxBank1_toDd001] + //SEG751 [358] 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 - //SEG748 render_init::vicSelectGfxBank1_toDd001 + //SEG752 render_init::vicSelectGfxBank1_toDd001 vicSelectGfxBank1_toDd001: jmp vicSelectGfxBank1_b1 - //SEG749 render_init::vicSelectGfxBank1_@1 + //SEG753 render_init::vicSelectGfxBank1_@1 vicSelectGfxBank1_b1: - //SEG750 [355] *((const byte*) CIA2_PORT_A#0) ← (const byte) render_init::vicSelectGfxBank1_toDd001_return#0 -- _deref_pbuc1=vbuc2 + //SEG754 [359] *((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 - //SEG751 [356] phi from render_init::vicSelectGfxBank1_@1 to render_init::toD0181 [phi:render_init::vicSelectGfxBank1_@1->render_init::toD0181] + //SEG755 [360] phi from render_init::vicSelectGfxBank1_@1 to render_init::toD0181 [phi:render_init::vicSelectGfxBank1_@1->render_init::toD0181] toD0181_from_vicSelectGfxBank1_b1: jmp toD0181 - //SEG752 render_init::toD0181 + //SEG756 render_init::toD0181 toD0181: jmp b8 - //SEG753 render_init::@8 + //SEG757 render_init::@8 b8: - //SEG754 [357] *((const byte*) D018#0) ← (const byte) render_init::toD0181_return#0 -- _deref_pbuc1=vbuc2 + //SEG758 [361] *((const byte*) D018#0) ← (const byte) render_init::toD0181_return#0 -- _deref_pbuc1=vbuc2 lda #toD0181_return sta D018 - //SEG755 [358] *((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 + //SEG759 [362] *((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 - //SEG756 [359] *((const byte*) BGCOL1#0) ← (const byte) BLACK#0 -- _deref_pbuc1=vbuc2 + //SEG760 [363] *((const byte*) BGCOL1#0) ← (const byte) BLACK#0 -- _deref_pbuc1=vbuc2 lda #BLACK sta BGCOL1 - //SEG757 [360] *((const byte*) BGCOL2#0) ← (const byte) BLUE#0 -- _deref_pbuc1=vbuc2 + //SEG761 [364] *((const byte*) BGCOL2#0) ← (const byte) BLUE#0 -- _deref_pbuc1=vbuc2 lda #BLUE sta BGCOL2 - //SEG758 [361] *((const byte*) BGCOL3#0) ← (const byte) CYAN#0 -- _deref_pbuc1=vbuc2 + //SEG762 [365] *((const byte*) BGCOL3#0) ← (const byte) CYAN#0 -- _deref_pbuc1=vbuc2 lda #CYAN sta BGCOL3 - //SEG759 [362] *((const byte*) BGCOL4#0) ← (const byte) GREY#0 -- _deref_pbuc1=vbuc2 + //SEG763 [366] *((const byte*) BGCOL4#0) ← (const byte) GREY#0 -- _deref_pbuc1=vbuc2 lda #GREY sta BGCOL4 - //SEG760 [363] call fill - //SEG761 [404] phi from render_init::@8 to fill [phi:render_init::@8->fill] + //SEG764 [367] call fill + //SEG765 [408] phi from render_init::@8 to fill [phi:render_init::@8->fill] fill_from_b8: jsr fill - //SEG762 [364] phi from render_init::@8 to render_init::@9 [phi:render_init::@8->render_init::@9] + //SEG766 [368] phi from render_init::@8 to render_init::@9 [phi:render_init::@8->render_init::@9] b9_from_b8: jmp b9 - //SEG763 render_init::@9 + //SEG767 render_init::@9 b9: - //SEG764 [365] call render_screen_original - //SEG765 [382] phi from render_init::@9 to render_screen_original [phi:render_init::@9->render_screen_original] + //SEG768 [369] call render_screen_original + //SEG769 [386] phi from render_init::@9 to render_screen_original [phi:render_init::@9->render_screen_original] render_screen_original_from_b9: jsr render_screen_original - //SEG766 [366] phi from render_init::@9 to render_init::@1 [phi:render_init::@9->render_init::@1] + //SEG770 [370] phi from render_init::@9 to render_init::@1 [phi:render_init::@9->render_init::@1] b1_from_b9: - //SEG767 [366] phi (byte*) render_init::li#2 = (const byte*) PLAYFIELD_SCREEN#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::@9->render_init::@1#0] -- pbuz1=pbuc1 + //SEG771 [370] phi (byte*) render_init::li#2 = (const byte*) PLAYFIELD_SCREEN#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::@9->render_init::@1#0] -- pbuz1=pbuc1 lda #PLAYFIELD_SCREEN+2*$28+$10 sta li+1 - //SEG768 [366] phi (byte) render_init::i#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_init::@9->render_init::@1#1] -- vbuz1=vbuc1 + //SEG772 [370] phi (byte) render_init::i#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_init::@9->render_init::@1#1] -- vbuz1=vbuc1 lda #0 sta i jmp b1 - //SEG769 [366] phi from render_init::@1 to render_init::@1 [phi:render_init::@1->render_init::@1] + //SEG773 [370] phi from render_init::@1 to render_init::@1 [phi:render_init::@1->render_init::@1] b1_from_b1: - //SEG770 [366] phi (byte*) render_init::li#2 = (byte*) render_init::li#1 [phi:render_init::@1->render_init::@1#0] -- register_copy - //SEG771 [366] phi (byte) render_init::i#2 = (byte) render_init::i#1 [phi:render_init::@1->render_init::@1#1] -- register_copy + //SEG774 [370] phi (byte*) render_init::li#2 = (byte*) render_init::li#1 [phi:render_init::@1->render_init::@1#0] -- register_copy + //SEG775 [370] phi (byte) render_init::i#2 = (byte) render_init::i#1 [phi:render_init::@1->render_init::@1#1] -- register_copy jmp b1 - //SEG772 render_init::@1 + //SEG776 render_init::@1 b1: - //SEG773 [367] (byte~) render_init::$11 ← (byte) render_init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_rol_1 + //SEG777 [371] (byte~) render_init::$11 ← (byte) render_init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_rol_1 lda i asl sta _11 - //SEG774 [368] *((const byte*[PLAYFIELD_LINES#0]) screen_lines#0 + (byte~) render_init::$11) ← (byte*) render_init::li#2 -- pptc1_derefidx_vbuz1=pbuz2 + //SEG778 [372] *((const byte*[PLAYFIELD_LINES#0]) screen_lines#0 + (byte~) render_init::$11) ← (byte*) render_init::li#2 -- pptc1_derefidx_vbuz1=pbuz2 ldy _11 lda li sta screen_lines,y lda li+1 sta screen_lines+1,y - //SEG775 [369] (byte*) render_init::li#1 ← (byte*) render_init::li#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 -- pbuz1=pbuz1_plus_vbuc1 + //SEG779 [373] (byte*) render_init::li#1 ← (byte*) render_init::li#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 -- pbuz1=pbuz1_plus_vbuc1 lda li clc adc #$28 @@ -10694,43 +10716,43 @@ render_init: { bcc !+ inc li+1 !: - //SEG776 [370] (byte) render_init::i#1 ← ++ (byte) render_init::i#2 -- vbuz1=_inc_vbuz1 + //SEG780 [374] (byte) render_init::i#1 ← ++ (byte) render_init::i#2 -- vbuz1=_inc_vbuz1 inc i - //SEG777 [371] 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 + //SEG781 [375] 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 - //SEG778 [372] phi from render_init::@1 to render_init::@2 [phi:render_init::@1->render_init::@2] + //SEG782 [376] phi from render_init::@1 to render_init::@2 [phi:render_init::@1->render_init::@2] b2_from_b1: - //SEG779 [372] phi (byte) render_init::l#4 = (byte/signed byte/word/signed word/dword/signed dword) 2 [phi:render_init::@1->render_init::@2#0] -- vbuz1=vbuc1 + //SEG783 [376] phi (byte) render_init::l#4 = (byte/signed byte/word/signed word/dword/signed dword) 2 [phi:render_init::@1->render_init::@2#0] -- vbuz1=vbuc1 lda #2 sta l - //SEG780 [372] phi (byte*) render_init::line#4 = (const byte*) COLS#0+(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 16 [phi:render_init::@1->render_init::@2#1] -- pbuz1=pbuc1 + //SEG784 [376] phi (byte*) render_init::line#4 = (const byte*) COLS#0+(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 16 [phi:render_init::@1->render_init::@2#1] -- pbuz1=pbuc1 lda #COLS+4*$28+$10 sta line+1 jmp b2 - //SEG781 [372] phi from render_init::@5 to render_init::@2 [phi:render_init::@5->render_init::@2] + //SEG785 [376] phi from render_init::@5 to render_init::@2 [phi:render_init::@5->render_init::@2] b2_from_b5: - //SEG782 [372] phi (byte) render_init::l#4 = (byte) render_init::l#1 [phi:render_init::@5->render_init::@2#0] -- register_copy - //SEG783 [372] phi (byte*) render_init::line#4 = (byte*) render_init::line#1 [phi:render_init::@5->render_init::@2#1] -- register_copy + //SEG786 [376] phi (byte) render_init::l#4 = (byte) render_init::l#1 [phi:render_init::@5->render_init::@2#0] -- register_copy + //SEG787 [376] phi (byte*) render_init::line#4 = (byte*) render_init::line#1 [phi:render_init::@5->render_init::@2#1] -- register_copy jmp b2 - //SEG784 render_init::@2 + //SEG788 render_init::@2 b2: - //SEG785 [373] phi from render_init::@2 to render_init::@3 [phi:render_init::@2->render_init::@3] + //SEG789 [377] phi from render_init::@2 to render_init::@3 [phi:render_init::@2->render_init::@3] b3_from_b2: - //SEG786 [373] phi (byte) render_init::c#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_init::@2->render_init::@3#0] -- vbuz1=vbuc1 + //SEG790 [377] phi (byte) render_init::c#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_init::@2->render_init::@3#0] -- vbuz1=vbuc1 lda #0 sta c jmp b3 - //SEG787 [373] phi from render_init::@3 to render_init::@3 [phi:render_init::@3->render_init::@3] + //SEG791 [377] phi from render_init::@3 to render_init::@3 [phi:render_init::@3->render_init::@3] b3_from_b3: - //SEG788 [373] phi (byte) render_init::c#2 = (byte) render_init::c#1 [phi:render_init::@3->render_init::@3#0] -- register_copy + //SEG792 [377] phi (byte) render_init::c#2 = (byte) render_init::c#1 [phi:render_init::@3->render_init::@3#0] -- register_copy jmp b3 - //SEG789 render_init::@3 + //SEG793 render_init::@3 b3: - //SEG790 [374] (byte*~) render_init::$18 ← (byte*) render_init::line#4 + (byte) render_init::c#2 -- pbuz1=pbuz2_plus_vbuz3 + //SEG794 [378] (byte*~) render_init::$18 ← (byte*) render_init::line#4 + (byte) render_init::c#2 -- pbuz1=pbuz2_plus_vbuz3 lda c clc adc line @@ -10738,20 +10760,20 @@ render_init: { lda #0 adc line+1 sta _18+1 - //SEG791 [375] *((byte*~) render_init::$18) ← (const byte) WHITE#0 -- _deref_pbuz1=vbuc1 + //SEG795 [379] *((byte*~) render_init::$18) ← (const byte) WHITE#0 -- _deref_pbuz1=vbuc1 lda #WHITE ldy #0 sta (_18),y - //SEG792 [376] (byte) render_init::c#1 ← ++ (byte) render_init::c#2 -- vbuz1=_inc_vbuz1 + //SEG796 [380] (byte) render_init::c#1 ← ++ (byte) render_init::c#2 -- vbuz1=_inc_vbuz1 inc c - //SEG793 [377] if((byte) render_init::c#1!=(const byte) PLAYFIELD_COLS#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_init::@3 -- vbuz1_neq_vbuc1_then_la1 + //SEG797 [381] if((byte) render_init::c#1!=(const byte) PLAYFIELD_COLS#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_init::@3 -- vbuz1_neq_vbuc1_then_la1 lda c cmp #PLAYFIELD_COLS-1+1 bne b3_from_b3 jmp b5 - //SEG794 render_init::@5 + //SEG798 render_init::@5 b5: - //SEG795 [378] (byte*) render_init::line#1 ← (byte*) render_init::line#4 + (byte/signed byte/word/signed word/dword/signed dword) 40 -- pbuz1=pbuz1_plus_vbuc1 + //SEG799 [382] (byte*) render_init::line#1 ← (byte*) render_init::line#4 + (byte/signed byte/word/signed word/dword/signed dword) 40 -- pbuz1=pbuz1_plus_vbuc1 lda line clc adc #$28 @@ -10759,19 +10781,19 @@ render_init: { bcc !+ inc line+1 !: - //SEG796 [379] (byte) render_init::l#1 ← ++ (byte) render_init::l#4 -- vbuz1=_inc_vbuz1 + //SEG800 [383] (byte) render_init::l#1 ← ++ (byte) render_init::l#4 -- vbuz1=_inc_vbuz1 inc l - //SEG797 [380] if((byte) render_init::l#1!=(const byte) PLAYFIELD_LINES#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_init::@2 -- vbuz1_neq_vbuc1_then_la1 + //SEG801 [384] if((byte) render_init::l#1!=(const byte) PLAYFIELD_LINES#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_init::@2 -- vbuz1_neq_vbuc1_then_la1 lda l cmp #PLAYFIELD_LINES-1+1 bne b2_from_b5 jmp breturn - //SEG798 render_init::@return + //SEG802 render_init::@return breturn: - //SEG799 [381] return + //SEG803 [385] return rts } -//SEG800 render_screen_original +//SEG804 render_screen_original render_screen_original: { .const SPACE = 0 .label _3 = $9d @@ -10779,161 +10801,161 @@ render_screen_original: { .label x = $4e .label orig = $4a .label y = $49 - //SEG801 [383] phi from render_screen_original to render_screen_original::@1 [phi:render_screen_original->render_screen_original::@1] + //SEG805 [387] phi from render_screen_original to render_screen_original::@1 [phi:render_screen_original->render_screen_original::@1] b1_from_render_screen_original: - //SEG802 [383] 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 + //SEG806 [387] 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 - //SEG803 [383] phi (byte*) render_screen_original::orig#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#1] -- pbuz1=pbuc1 + //SEG807 [387] phi (byte*) render_screen_original::orig#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#1] -- pbuz1=pbuc1 lda #PLAYFIELD_SCREEN_ORIGINAL+$20*2 sta orig+1 - //SEG804 [383] phi (byte*) render_screen_original::screen#7 = (const byte*) PLAYFIELD_SCREEN#0 [phi:render_screen_original->render_screen_original::@1#2] -- pbuz1=pbuc1 + //SEG808 [387] phi (byte*) render_screen_original::screen#7 = (const byte*) PLAYFIELD_SCREEN#0 [phi:render_screen_original->render_screen_original::@1#2] -- pbuz1=pbuc1 lda #PLAYFIELD_SCREEN sta screen+1 jmp b1 - //SEG805 [383] phi from render_screen_original::@7 to render_screen_original::@1 [phi:render_screen_original::@7->render_screen_original::@1] + //SEG809 [387] phi from render_screen_original::@7 to render_screen_original::@1 [phi:render_screen_original::@7->render_screen_original::@1] b1_from_b7: - //SEG806 [383] 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 - //SEG807 [383] phi (byte*) render_screen_original::orig#4 = (byte*) render_screen_original::orig#1 [phi:render_screen_original::@7->render_screen_original::@1#1] -- register_copy - //SEG808 [383] phi (byte*) render_screen_original::screen#7 = (byte*) render_screen_original::screen#3 [phi:render_screen_original::@7->render_screen_original::@1#2] -- register_copy + //SEG810 [387] 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 + //SEG811 [387] phi (byte*) render_screen_original::orig#4 = (byte*) render_screen_original::orig#1 [phi:render_screen_original::@7->render_screen_original::@1#1] -- register_copy + //SEG812 [387] phi (byte*) render_screen_original::screen#7 = (byte*) render_screen_original::screen#3 [phi:render_screen_original::@7->render_screen_original::@1#2] -- register_copy jmp b1 - //SEG809 render_screen_original::@1 + //SEG813 render_screen_original::@1 b1: - //SEG810 [384] phi from render_screen_original::@1 to render_screen_original::@2 [phi:render_screen_original::@1->render_screen_original::@2] + //SEG814 [388] phi from render_screen_original::@1 to render_screen_original::@2 [phi:render_screen_original::@1->render_screen_original::@2] b2_from_b1: - //SEG811 [384] 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 + //SEG815 [388] 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 - //SEG812 [384] phi (byte*) render_screen_original::screen#4 = (byte*) render_screen_original::screen#7 [phi:render_screen_original::@1->render_screen_original::@2#1] -- register_copy + //SEG816 [388] phi (byte*) render_screen_original::screen#4 = (byte*) render_screen_original::screen#7 [phi:render_screen_original::@1->render_screen_original::@2#1] -- register_copy jmp b2 - //SEG813 [384] phi from render_screen_original::@2 to render_screen_original::@2 [phi:render_screen_original::@2->render_screen_original::@2] + //SEG817 [388] phi from render_screen_original::@2 to render_screen_original::@2 [phi:render_screen_original::@2->render_screen_original::@2] b2_from_b2: - //SEG814 [384] 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 - //SEG815 [384] phi (byte*) render_screen_original::screen#4 = (byte*) render_screen_original::screen#1 [phi:render_screen_original::@2->render_screen_original::@2#1] -- register_copy + //SEG818 [388] 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 + //SEG819 [388] phi (byte*) render_screen_original::screen#4 = (byte*) render_screen_original::screen#1 [phi:render_screen_original::@2->render_screen_original::@2#1] -- register_copy jmp b2 - //SEG816 render_screen_original::@2 + //SEG820 render_screen_original::@2 b2: - //SEG817 [385] *((byte*) render_screen_original::screen#4) ← (const byte) render_screen_original::SPACE#0 -- _deref_pbuz1=vbuc1 + //SEG821 [389] *((byte*) render_screen_original::screen#4) ← (const byte) render_screen_original::SPACE#0 -- _deref_pbuz1=vbuc1 lda #SPACE ldy #0 sta (screen),y - //SEG818 [386] (byte*) render_screen_original::screen#1 ← ++ (byte*) render_screen_original::screen#4 -- pbuz1=_inc_pbuz1 + //SEG822 [390] (byte*) render_screen_original::screen#1 ← ++ (byte*) render_screen_original::screen#4 -- pbuz1=_inc_pbuz1 inc screen bne !+ inc screen+1 !: - //SEG819 [387] (byte) render_screen_original::x#1 ← ++ (byte) render_screen_original::x#4 -- vbuz1=_inc_vbuz1 + //SEG823 [391] (byte) render_screen_original::x#1 ← ++ (byte) render_screen_original::x#4 -- vbuz1=_inc_vbuz1 inc x - //SEG820 [388] 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 + //SEG824 [392] 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 - //SEG821 [389] 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] + //SEG825 [393] 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: - //SEG822 [389] 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 - //SEG823 [389] phi (byte*) render_screen_original::screen#5 = (byte*) render_screen_original::screen#1 [phi:render_screen_original::@2/render_screen_original::@3->render_screen_original::@3#1] -- register_copy - //SEG824 [389] phi (byte*) render_screen_original::orig#2 = (byte*) render_screen_original::orig#4 [phi:render_screen_original::@2/render_screen_original::@3->render_screen_original::@3#2] -- register_copy + //SEG826 [393] 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 + //SEG827 [393] phi (byte*) render_screen_original::screen#5 = (byte*) render_screen_original::screen#1 [phi:render_screen_original::@2/render_screen_original::@3->render_screen_original::@3#1] -- register_copy + //SEG828 [393] phi (byte*) render_screen_original::orig#2 = (byte*) render_screen_original::orig#4 [phi:render_screen_original::@2/render_screen_original::@3->render_screen_original::@3#2] -- register_copy jmp b3 - //SEG825 render_screen_original::@3 + //SEG829 render_screen_original::@3 b3: - //SEG826 [390] (byte/signed word/word/dword/signed dword~) render_screen_original::$3 ← *((byte*) render_screen_original::orig#2) + (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=_deref_pbuz2_plus_1 + //SEG830 [394] (byte/signed word/word/dword/signed dword~) render_screen_original::$3 ← *((byte*) render_screen_original::orig#2) + (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=_deref_pbuz2_plus_1 ldy #0 lda (orig),y clc adc #1 sta _3 - //SEG827 [391] *((byte*) render_screen_original::screen#5) ← (byte/signed word/word/dword/signed dword~) render_screen_original::$3 -- _deref_pbuz1=vbuz2 + //SEG831 [395] *((byte*) render_screen_original::screen#5) ← (byte/signed word/word/dword/signed dword~) render_screen_original::$3 -- _deref_pbuz1=vbuz2 lda _3 ldy #0 sta (screen),y - //SEG828 [392] (byte*) render_screen_original::screen#2 ← ++ (byte*) render_screen_original::screen#5 -- pbuz1=_inc_pbuz1 + //SEG832 [396] (byte*) render_screen_original::screen#2 ← ++ (byte*) render_screen_original::screen#5 -- pbuz1=_inc_pbuz1 inc screen bne !+ inc screen+1 !: - //SEG829 [393] (byte*) render_screen_original::orig#1 ← ++ (byte*) render_screen_original::orig#2 -- pbuz1=_inc_pbuz1 + //SEG833 [397] (byte*) render_screen_original::orig#1 ← ++ (byte*) render_screen_original::orig#2 -- pbuz1=_inc_pbuz1 inc orig bne !+ inc orig+1 !: - //SEG830 [394] (byte) render_screen_original::x#2 ← ++ (byte) render_screen_original::x#5 -- vbuz1=_inc_vbuz1 + //SEG834 [398] (byte) render_screen_original::x#2 ← ++ (byte) render_screen_original::x#5 -- vbuz1=_inc_vbuz1 inc x - //SEG831 [395] 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 + //SEG835 [399] 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 - //SEG832 [396] 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] + //SEG836 [400] 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: - //SEG833 [396] 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 - //SEG834 [396] phi (byte*) render_screen_original::screen#6 = (byte*) render_screen_original::screen#2 [phi:render_screen_original::@3/render_screen_original::@4->render_screen_original::@4#1] -- register_copy + //SEG837 [400] 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 + //SEG838 [400] phi (byte*) render_screen_original::screen#6 = (byte*) render_screen_original::screen#2 [phi:render_screen_original::@3/render_screen_original::@4->render_screen_original::@4#1] -- register_copy jmp b4 - //SEG835 render_screen_original::@4 + //SEG839 render_screen_original::@4 b4: - //SEG836 [397] *((byte*) render_screen_original::screen#6) ← (const byte) render_screen_original::SPACE#0 -- _deref_pbuz1=vbuc1 + //SEG840 [401] *((byte*) render_screen_original::screen#6) ← (const byte) render_screen_original::SPACE#0 -- _deref_pbuz1=vbuc1 lda #SPACE ldy #0 sta (screen),y - //SEG837 [398] (byte*) render_screen_original::screen#3 ← ++ (byte*) render_screen_original::screen#6 -- pbuz1=_inc_pbuz1 + //SEG841 [402] (byte*) render_screen_original::screen#3 ← ++ (byte*) render_screen_original::screen#6 -- pbuz1=_inc_pbuz1 inc screen bne !+ inc screen+1 !: - //SEG838 [399] (byte) render_screen_original::x#3 ← ++ (byte) render_screen_original::x#6 -- vbuz1=_inc_vbuz1 + //SEG842 [403] (byte) render_screen_original::x#3 ← ++ (byte) render_screen_original::x#6 -- vbuz1=_inc_vbuz1 inc x - //SEG839 [400] 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 + //SEG843 [404] 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 - //SEG840 render_screen_original::@7 + //SEG844 render_screen_original::@7 b7: - //SEG841 [401] (byte) render_screen_original::y#1 ← ++ (byte) render_screen_original::y#6 -- vbuz1=_inc_vbuz1 + //SEG845 [405] (byte) render_screen_original::y#1 ← ++ (byte) render_screen_original::y#6 -- vbuz1=_inc_vbuz1 inc y - //SEG842 [402] 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 + //SEG846 [406] 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 - //SEG843 render_screen_original::@return + //SEG847 render_screen_original::@return breturn: - //SEG844 [403] return + //SEG848 [407] return rts } -//SEG845 fill +//SEG849 fill fill: { .const size = $3e8 .label end = COLS+size .label addr = $4f - //SEG846 [405] phi from fill to fill::@1 [phi:fill->fill::@1] + //SEG850 [409] phi from fill to fill::@1 [phi:fill->fill::@1] b1_from_fill: - //SEG847 [405] phi (byte*) fill::addr#2 = (const byte*) COLS#0 [phi:fill->fill::@1#0] -- pbuz1=pbuc1 + //SEG851 [409] phi (byte*) fill::addr#2 = (const byte*) COLS#0 [phi:fill->fill::@1#0] -- pbuz1=pbuc1 lda #COLS sta addr+1 jmp b1 - //SEG848 [405] phi from fill::@1 to fill::@1 [phi:fill::@1->fill::@1] + //SEG852 [409] phi from fill::@1 to fill::@1 [phi:fill::@1->fill::@1] b1_from_b1: - //SEG849 [405] phi (byte*) fill::addr#2 = (byte*) fill::addr#1 [phi:fill::@1->fill::@1#0] -- register_copy + //SEG853 [409] phi (byte*) fill::addr#2 = (byte*) fill::addr#1 [phi:fill::@1->fill::@1#0] -- register_copy jmp b1 - //SEG850 fill::@1 + //SEG854 fill::@1 b1: - //SEG851 [406] *((byte*) fill::addr#2) ← (const byte) DARK_GREY#0 -- _deref_pbuz1=vbuc1 + //SEG855 [410] *((byte*) fill::addr#2) ← (const byte) DARK_GREY#0 -- _deref_pbuz1=vbuc1 lda #DARK_GREY ldy #0 sta (addr),y - //SEG852 [407] (byte*) fill::addr#1 ← ++ (byte*) fill::addr#2 -- pbuz1=_inc_pbuz1 + //SEG856 [411] (byte*) fill::addr#1 ← ++ (byte*) fill::addr#2 -- pbuz1=_inc_pbuz1 inc addr bne !+ inc addr+1 !: - //SEG853 [408] if((byte*) fill::addr#1!=(const byte*) fill::end#0) goto fill::@1 -- pbuz1_neq_pbuc1_then_la1 + //SEG857 [412] if((byte*) fill::addr#1!=(const byte*) fill::end#0) goto fill::@1 -- pbuz1_neq_pbuc1_then_la1 lda addr+1 cmp #>end bne b1_from_b1 @@ -10941,28 +10963,28 @@ fill: { cmp #$ffff sta SID_VOICE3_FREQ+1 - //SEG858 [411] *((const byte*) SID_VOICE3_CONTROL#0) ← (const byte) SID_CONTROL_NOISE#0 -- _deref_pbuc1=vbuc2 + //SEG862 [415] *((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 - //SEG859 sid_rnd_init::@return + //SEG863 sid_rnd_init::@return breturn: - //SEG860 [412] return + //SEG864 [416] return rts } -//SEG861 irq +//SEG865 irq irq: { .const toSpritePtr2_return = PLAYFIELD_SPRITES>>6 .label _3 = $a5 @@ -10971,130 +10993,130 @@ irq: { .label ptr_1 = $a0 .label ptr_2 = $a1 .label raster_next = $52 - //SEG862 entry interrupt(HARDWARE_CLOBBER) + //SEG866 entry interrupt(HARDWARE_CLOBBER) sta rega+1 stx regx+1 sty regy+1 - //SEG863 [413] *((const byte*) BORDERCOL#0) ← (const byte) DARK_GREY#0 -- _deref_pbuc1=vbuc2 + //SEG867 [417] *((const byte*) BORDERCOL#0) ← (const byte) DARK_GREY#0 -- _deref_pbuc1=vbuc2 lda #DARK_GREY sta BORDERCOL - //SEG864 [414] (byte) irq::ypos#0 ← (byte) irq_sprite_ypos#0 -- vbuz1=vbuz2 + //SEG868 [418] (byte) irq::ypos#0 ← (byte) irq_sprite_ypos#0 -- vbuz1=vbuz2 lda irq_sprite_ypos sta ypos - //SEG865 [415] *((const byte*) SPRITES_YPOS#0) ← (byte) irq::ypos#0 -- _deref_pbuc1=vbuz1 + //SEG869 [419] *((const byte*) SPRITES_YPOS#0) ← (byte) irq::ypos#0 -- _deref_pbuc1=vbuz1 lda ypos sta SPRITES_YPOS - //SEG866 [416] *((const byte*) SPRITES_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte) irq::ypos#0 -- _deref_pbuc1=vbuz1 + //SEG870 [420] *((const byte*) SPRITES_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte) irq::ypos#0 -- _deref_pbuc1=vbuz1 lda ypos sta SPRITES_YPOS+2 - //SEG867 [417] *((const byte*) SPRITES_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte) irq::ypos#0 -- _deref_pbuc1=vbuz1 + //SEG871 [421] *((const byte*) SPRITES_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte) irq::ypos#0 -- _deref_pbuc1=vbuz1 lda ypos sta SPRITES_YPOS+4 - //SEG868 [418] *((const byte*) SPRITES_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte) irq::ypos#0 -- _deref_pbuc1=vbuz1 + //SEG872 [422] *((const byte*) SPRITES_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte) irq::ypos#0 -- _deref_pbuc1=vbuz1 lda ypos sta SPRITES_YPOS+6 jmp b1 - //SEG869 irq::@1 + //SEG873 irq::@1 b1: - //SEG870 [419] if(*((const byte*) RASTER#0)!=(byte) irq_sprite_ypos#0) goto irq::@1 -- _deref_pbuc1_neq_vbuz1_then_la1 + //SEG874 [423] if(*((const byte*) RASTER#0)!=(byte) irq_sprite_ypos#0) goto irq::@1 -- _deref_pbuc1_neq_vbuz1_then_la1 lda RASTER cmp irq_sprite_ypos bne b1 jmp b5 - //SEG871 irq::@5 + //SEG875 irq::@5 b5: - //SEG872 [420] (byte) irq::ptr#0 ← (byte) irq_sprite_ptr#0 -- vbuz1=vbuz2 + //SEG876 [424] (byte) irq::ptr#0 ← (byte) irq_sprite_ptr#0 -- vbuz1=vbuz2 lda irq_sprite_ptr sta ptr - //SEG873 [421] *((const byte*) PLAYFIELD_SPRITE_PTRS#0) ← (byte) irq::ptr#0 -- _deref_pbuc1=vbuz1 + //SEG877 [425] *((const byte*) PLAYFIELD_SPRITE_PTRS#0) ← (byte) irq::ptr#0 -- _deref_pbuc1=vbuz1 lda ptr sta PLAYFIELD_SPRITE_PTRS - //SEG874 [422] (byte) irq::ptr#1 ← ++ (byte) irq::ptr#0 -- vbuz1=_inc_vbuz2 + //SEG878 [426] (byte) irq::ptr#1 ← ++ (byte) irq::ptr#0 -- vbuz1=_inc_vbuz2 ldy ptr iny sty ptr_1 - //SEG875 [423] *((const byte*) PLAYFIELD_SPRITE_PTRS#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte) irq::ptr#1 -- _deref_pbuc1=vbuz1 + //SEG879 [427] *((const byte*) PLAYFIELD_SPRITE_PTRS#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte) irq::ptr#1 -- _deref_pbuc1=vbuz1 lda ptr_1 sta PLAYFIELD_SPRITE_PTRS+1 - //SEG876 [424] *((const byte*) PLAYFIELD_SPRITE_PTRS#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte) irq::ptr#1 -- _deref_pbuc1=vbuz1 + //SEG880 [428] *((const byte*) PLAYFIELD_SPRITE_PTRS#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte) irq::ptr#1 -- _deref_pbuc1=vbuz1 lda ptr_1 sta PLAYFIELD_SPRITE_PTRS+2 - //SEG877 [425] (byte) irq::ptr#2 ← ++ (byte) irq::ptr#1 -- vbuz1=_inc_vbuz2 + //SEG881 [429] (byte) irq::ptr#2 ← ++ (byte) irq::ptr#1 -- vbuz1=_inc_vbuz2 ldy ptr_1 iny sty ptr_2 - //SEG878 [426] *((const byte*) PLAYFIELD_SPRITE_PTRS#0+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte) irq::ptr#2 -- _deref_pbuc1=vbuz1 + //SEG882 [430] *((const byte*) PLAYFIELD_SPRITE_PTRS#0+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte) irq::ptr#2 -- _deref_pbuc1=vbuz1 lda ptr_2 sta PLAYFIELD_SPRITE_PTRS+3 - //SEG879 [427] (byte) irq_cnt#1 ← ++ (byte) irq_cnt#0 -- vbuz1=_inc_vbuz2 + //SEG883 [431] (byte) irq_cnt#1 ← ++ (byte) irq_cnt#0 -- vbuz1=_inc_vbuz2 ldy irq_cnt iny sty irq_cnt_1 - //SEG880 [428] if((byte) irq_cnt#1==(byte/signed byte/word/signed word/dword/signed dword) 10) goto irq::@2 -- vbuz1_eq_vbuc1_then_la1 + //SEG884 [432] if((byte) irq_cnt#1==(byte/signed byte/word/signed word/dword/signed dword) 10) goto irq::@2 -- vbuz1_eq_vbuc1_then_la1 lda irq_cnt_1 cmp #$a beq b2 jmp b6 - //SEG881 irq::@6 + //SEG885 irq::@6 b6: - //SEG882 [429] (byte) irq_raster_next#2 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 -- vbuz1=vbuz2_plus_vbuc1 + //SEG886 [433] (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 - //SEG883 [430] (byte) irq_sprite_ypos#2 ← (byte) irq_sprite_ypos#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 -- vbuz1=vbuz2_plus_vbuc1 + //SEG887 [434] (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 - //SEG884 [431] (byte) irq_sprite_ptr#2 ← (byte) irq_sprite_ptr#0 + (byte/signed byte/word/signed word/dword/signed dword) 3 -- vbuz1=vbuz2_plus_vbuc1 + //SEG888 [435] (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 - //SEG885 [432] phi from irq::@6 irq::@9 to irq::@3 [phi:irq::@6/irq::@9->irq::@3] + //SEG889 [436] phi from irq::@6 irq::@9 to irq::@3 [phi:irq::@6/irq::@9->irq::@3] b3_from_b6: b3_from_b9: - //SEG886 [432] phi (byte) irq_raster_next#12 = (byte) irq_raster_next#2 [phi:irq::@6/irq::@9->irq::@3#0] -- register_copy + //SEG890 [436] phi (byte) irq_raster_next#12 = (byte) irq_raster_next#2 [phi:irq::@6/irq::@9->irq::@3#0] -- register_copy jmp b3 - //SEG887 irq::@3 + //SEG891 irq::@3 b3: - //SEG888 [433] (byte) irq::raster_next#0 ← (byte) irq_raster_next#12 -- vbuz1=vbuz2 + //SEG892 [437] (byte) irq::raster_next#0 ← (byte) irq_raster_next#12 -- vbuz1=vbuz2 lda irq_raster_next_12 sta raster_next - //SEG889 [434] (byte~) irq::$3 ← (byte) irq::raster_next#0 & (byte/signed byte/word/signed word/dword/signed dword) 7 -- vbuz1=vbuz2_band_vbuc1 + //SEG893 [438] (byte~) irq::$3 ← (byte) irq::raster_next#0 & (byte/signed byte/word/signed word/dword/signed dword) 7 -- vbuz1=vbuz2_band_vbuc1 lda #7 and raster_next sta _3 - //SEG890 [435] if((byte~) irq::$3!=(byte/signed byte/word/signed word/dword/signed dword) 3) goto irq::@4 -- vbuz1_neq_vbuc1_then_la1 + //SEG894 [439] if((byte~) irq::$3!=(byte/signed byte/word/signed word/dword/signed dword) 3) goto irq::@4 -- vbuz1_neq_vbuc1_then_la1 lda _3 cmp #3 bne b4_from_b3 jmp b8 - //SEG891 irq::@8 + //SEG895 irq::@8 b8: - //SEG892 [436] (byte) irq::raster_next#1 ← (byte) irq::raster_next#0 - (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz1_minus_1 + //SEG896 [440] (byte) irq::raster_next#1 ← (byte) irq::raster_next#0 - (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz1_minus_1 dec raster_next - //SEG893 [437] phi from irq::@3 irq::@8 to irq::@4 [phi:irq::@3/irq::@8->irq::@4] + //SEG897 [441] phi from irq::@3 irq::@8 to irq::@4 [phi:irq::@3/irq::@8->irq::@4] b4_from_b3: b4_from_b8: - //SEG894 [437] phi (byte) irq::raster_next#2 = (byte) irq::raster_next#0 [phi:irq::@3/irq::@8->irq::@4#0] -- register_copy + //SEG898 [441] phi (byte) irq::raster_next#2 = (byte) irq::raster_next#0 [phi:irq::@3/irq::@8->irq::@4#0] -- register_copy jmp b4 - //SEG895 irq::@4 + //SEG899 irq::@4 b4: - //SEG896 [438] *((const byte*) RASTER#0) ← (byte) irq::raster_next#2 -- _deref_pbuc1=vbuz1 + //SEG900 [442] *((const byte*) RASTER#0) ← (byte) irq::raster_next#2 -- _deref_pbuc1=vbuz1 lda raster_next sta RASTER - //SEG897 [439] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0 -- _deref_pbuc1=vbuc2 + //SEG901 [443] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0 -- _deref_pbuc1=vbuc2 lda #IRQ_RASTER sta IRQ_STATUS - //SEG898 [440] *((const byte*) BORDERCOL#0) ← (const byte) BLACK#0 -- _deref_pbuc1=vbuc2 + //SEG902 [444] *((const byte*) BORDERCOL#0) ← (const byte) BLACK#0 -- _deref_pbuc1=vbuc2 lda #BLACK sta BORDERCOL jmp breturn - //SEG899 irq::@return + //SEG903 irq::@return breturn: - //SEG900 [441] return - exit interrupt(HARDWARE_CLOBBER) + //SEG904 [445] return - exit interrupt(HARDWARE_CLOBBER) rega: lda #00 regx: @@ -11102,26 +11124,26 @@ irq: { regy: ldy #00 rti - //SEG901 irq::@2 + //SEG905 irq::@2 b2: - //SEG902 [442] (byte) irq_cnt#13 ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- vbuz1=vbuc1 + //SEG906 [446] (byte) irq_cnt#13 ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- vbuz1=vbuc1 lda #0 sta irq_cnt_13 - //SEG903 [443] (byte) irq_raster_next#1 ← (const byte) IRQ_RASTER_FIRST#0 -- vbuz1=vbuc1 + //SEG907 [447] (byte) irq_raster_next#1 ← (const byte) IRQ_RASTER_FIRST#0 -- vbuz1=vbuc1 lda #IRQ_RASTER_FIRST sta irq_raster_next_1 - //SEG904 [444] (byte) irq_sprite_ypos#1 ← (byte/signed byte/word/signed word/dword/signed dword) 50 -- vbuz1=vbuc1 + //SEG908 [448] (byte) irq_sprite_ypos#1 ← (byte/signed byte/word/signed word/dword/signed dword) 50 -- vbuz1=vbuc1 lda #$32 sta irq_sprite_ypos_1 - //SEG905 [445] phi from irq::@2 to irq::toSpritePtr2 [phi:irq::@2->irq::toSpritePtr2] + //SEG909 [449] phi from irq::@2 to irq::toSpritePtr2 [phi:irq::@2->irq::toSpritePtr2] toSpritePtr2_from_b2: jmp toSpritePtr2 - //SEG906 irq::toSpritePtr2 + //SEG910 irq::toSpritePtr2 toSpritePtr2: jmp b9 - //SEG907 irq::@9 + //SEG911 irq::@9 b9: - //SEG908 [446] (byte) irq_sprite_ptr#1 ← (const byte) irq::toSpritePtr2_return#0 -- vbuz1=vbuc1 + //SEG912 [450] (byte) irq_sprite_ptr#1 ← (const byte) irq::toSpritePtr2_return#0 -- vbuz1=vbuc1 lda #toSpritePtr2_return sta irq_sprite_ptr_1 jmp b3_from_b9 @@ -11139,12 +11161,14 @@ irq: { .align $40 PIECE_L: .byte 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0 .align $40 - PIECE_J: .byte 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0 + PIECE_J: .byte 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 .align $40 PIECE_O: .byte 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .align $40 PIECE_I: .byte 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0 PIECES_CHARS: .byte $57, $58, $98, $58, $57, $57, $98 + PIECES_START_X: .byte 4, 4, 4, 4, 4, 3, 4 + PIECES_START_Y: .byte 2, 1, 1, 1, 2, 0, 1 screen_lines: .fill 2*PLAYFIELD_LINES, 0 playfield_lines: .fill 2*PLAYFIELD_LINES, 0 playfield: .fill PLAYFIELD_LINES*PLAYFIELD_COLS, 0 @@ -11176,352 +11200,356 @@ Statement [4] (byte) irq_raster_next#0 ← (const byte) IRQ_RASTER_FIRST#0 [ ] ( Statement [5] (byte) irq_sprite_ypos#0 ← (byte/signed byte/word/signed word/dword/signed dword) 50 [ ] ( ) always clobbers reg byte a Statement [7] (byte) irq_sprite_ptr#0 ← (const byte) toSpritePtr1_return#0 [ ] ( ) always clobbers reg byte a Statement [8] (byte) irq_cnt#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( ) always clobbers reg byte a -Statement [26] (byte*~) current_piece_gfx#95 ← (byte*) current_piece_gfx#17 [ current_piece_gfx#95 current_piece_gfx#17 current_piece_char#13 play_spawn_current::$3 ] ( main:10 [ current_piece_gfx#95 current_piece_gfx#17 current_piece_char#13 play_spawn_current::$3 ] ) always clobbers reg byte a +Statement [28] (byte*~) current_piece_gfx#95 ← (byte*) current_piece_gfx#17 [ current_ypos#79 current_ypos#19 current_xpos#105 current_xpos#24 current_piece_gfx#95 current_piece_gfx#17 current_piece_char#13 play_spawn_current::$3 ] ( main:10 [ current_ypos#79 current_ypos#19 current_xpos#105 current_xpos#24 current_piece_gfx#95 current_piece_gfx#17 current_piece_char#13 play_spawn_current::$3 ] ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:3 [ current_ypos#10 current_ypos#79 current_ypos#80 ] +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:33 [ current_ypos#30 current_ypos#22 current_ypos#14 current_ypos#19 current_ypos#1 ] +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:4 [ current_xpos#48 current_xpos#105 current_xpos#106 ] +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:39 [ current_xpos#34 current_xpos#11 current_xpos#20 current_xpos#24 current_xpos#5 current_xpos#16 current_xpos#3 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:40 [ current_piece_char#21 current_piece_char#16 current_piece_char#11 current_piece_char#13 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:123 [ play_spawn_current::$3 ] -Statement [29] (byte*~) current_piece#72 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) [ current_piece_gfx#17 current_piece_char#13 current_piece#72 ] ( main:10 [ current_piece_gfx#17 current_piece_char#13 current_piece#72 ] ) always clobbers reg byte a -Statement [31] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@4 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 keyboard_events_size#19 current_movedown_counter#12 ] ( main:10 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 keyboard_events_size#19 current_movedown_counter#12 ] ) always clobbers reg byte a +Statement [31] (byte*~) current_piece#72 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) [ current_ypos#19 current_xpos#24 current_piece_gfx#17 current_piece_char#13 current_piece#72 ] ( main:10 [ current_ypos#19 current_xpos#24 current_piece_gfx#17 current_piece_char#13 current_piece#72 ] ) always clobbers reg byte a +Statement [33] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@4 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 keyboard_events_size#19 current_movedown_counter#12 ] ( main:10 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 keyboard_events_size#19 current_movedown_counter#12 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:36 [ current_orientation#29 current_orientation#10 current_orientation#19 current_orientation#4 current_orientation#14 ] -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:39 [ current_xpos#34 current_xpos#11 current_xpos#20 current_xpos#5 current_xpos#16 current_xpos#3 ] -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:2 [ current_ypos#22 current_ypos#14 current_ypos#30 current_ypos#1 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:59 [ keyboard_events_size#10 keyboard_events_size#29 keyboard_events_size#19 keyboard_events_size#16 keyboard_events_size#13 keyboard_events_size#4 keyboard_events_size#30 keyboard_events_size#2 keyboard_events_size#1 ] -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:3 [ current_movedown_counter#12 current_movedown_counter#10 current_movedown_counter#1 ] -Statement [32] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 254) goto main::@7 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 keyboard_events_size#19 current_movedown_counter#12 ] ( main:10 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 keyboard_events_size#19 current_movedown_counter#12 ] ) always clobbers reg byte a -Statement [43] (byte) main::render#1 ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte~) main::$12 [ current_piece#10 current_ypos#14 current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_orientation#14 current_piece_gfx#14 current_xpos#16 ] ( main:10 [ current_piece#10 current_ypos#14 current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_orientation#14 current_piece_gfx#14 current_xpos#16 ] ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:2 [ current_movedown_counter#12 current_movedown_counter#10 current_movedown_counter#1 ] +Statement [34] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 254) goto main::@7 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 keyboard_events_size#19 current_movedown_counter#12 ] ( main:10 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 keyboard_events_size#19 current_movedown_counter#12 ] ) always clobbers reg byte a +Statement [45] (byte) main::render#1 ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte~) main::$12 [ current_piece#10 current_ypos#14 current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_orientation#14 current_piece_gfx#14 current_xpos#16 ] ( main:10 [ current_piece#10 current_ypos#14 current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_orientation#14 current_piece_gfx#14 current_xpos#16 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:88 [ main::key_event#0 ] -Statement [48] (byte) main::render#2 ← (byte) main::render#1 + (byte~) main::$13 [ current_piece#10 current_xpos#20 current_ypos#14 current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#2 current_orientation#14 current_piece_gfx#14 ] ( main:10 [ current_piece#10 current_xpos#20 current_ypos#14 current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#2 current_orientation#14 current_piece_gfx#14 ] ) always clobbers reg byte a -Statement [53] (byte) main::render#3 ← (byte) main::render#2 + (byte~) main::$14 [ current_piece#10 current_orientation#19 current_piece_gfx#15 current_xpos#20 current_ypos#14 current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::render#3 ] ( main:10 [ current_piece#10 current_orientation#19 current_piece_gfx#15 current_xpos#20 current_ypos#14 current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::render#3 ] ) always clobbers reg byte a -Statement [59] (byte*~) current_piece_gfx#96 ← (byte*) current_piece_gfx#15 [ current_piece#10 current_orientation#19 current_piece_gfx#15 current_xpos#20 current_ypos#14 current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 current_ypos#78 current_xpos#104 current_piece_gfx#96 ] ( main:10 [ current_piece#10 current_orientation#19 current_piece_gfx#15 current_xpos#20 current_ypos#14 current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 current_ypos#78 current_xpos#104 current_piece_gfx#96 ] ) always clobbers reg byte a -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:4 [ current_ypos#10 current_ypos#78 ] -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:5 [ current_xpos#48 current_xpos#104 ] -Statement [64] (byte) render_current::ypos2#0 ← (byte) current_ypos#10 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ current_xpos#48 current_piece_gfx#53 current_piece_char#63 render_current::ypos2#0 ] ( main:10::render_current:28 [ current_piece_gfx#17 current_piece_char#13 play_spawn_current::$3 current_xpos#48 current_piece_gfx#53 current_piece_char#63 render_current::ypos2#0 ] main:10::render_current:61 [ current_piece#10 current_orientation#19 current_piece_gfx#15 current_xpos#20 current_ypos#14 current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 current_xpos#48 current_piece_gfx#53 current_piece_char#63 render_current::ypos2#0 ] ) always clobbers reg byte a -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:8 [ current_piece_char#63 current_piece_char#83 current_piece_char#84 ] -Statement [67] (byte) render_current::i#1 ← (byte) render_current::i#3 + (byte/signed byte/word/signed word/dword/signed dword) 4 [ current_xpos#48 current_piece_gfx#53 current_piece_char#63 render_current::ypos2#2 render_current::l#4 render_current::i#1 ] ( main:10::render_current:28 [ current_piece_gfx#17 current_piece_char#13 play_spawn_current::$3 current_xpos#48 current_piece_gfx#53 current_piece_char#63 render_current::ypos2#2 render_current::l#4 render_current::i#1 ] main:10::render_current:61 [ current_piece#10 current_orientation#19 current_piece_gfx#15 current_xpos#20 current_ypos#14 current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 current_xpos#48 current_piece_gfx#53 current_piece_char#63 render_current::ypos2#2 render_current::l#4 render_current::i#1 ] ) always clobbers reg byte a -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:9 [ render_current::ypos2#2 render_current::ypos2#0 render_current::ypos2#1 ] -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:10 [ render_current::l#4 render_current::l#1 ] -Statement [74] (byte*) render_current::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) screen_lines#0 + (byte) render_current::ypos2#2) [ current_xpos#48 current_piece_gfx#53 current_piece_char#63 render_current::ypos2#2 render_current::i#3 render_current::l#4 render_current::screen_line#0 ] ( main:10::render_current:28 [ current_piece_gfx#17 current_piece_char#13 play_spawn_current::$3 current_xpos#48 current_piece_gfx#53 current_piece_char#63 render_current::ypos2#2 render_current::i#3 render_current::l#4 render_current::screen_line#0 ] main:10::render_current:61 [ current_piece#10 current_orientation#19 current_piece_gfx#15 current_xpos#20 current_ypos#14 current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 current_xpos#48 current_piece_gfx#53 current_piece_char#63 render_current::ypos2#2 render_current::i#3 render_current::l#4 render_current::screen_line#0 ] ) always clobbers reg byte a -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:11 [ render_current::i#4 render_current::i#3 render_current::i#8 render_current::i#10 render_current::i#1 ] -Statement [77] (byte) render_current::current_cell#0 ← *((byte*) current_piece_gfx#53 + (byte) render_current::i#4) [ current_xpos#48 current_piece_gfx#53 current_piece_char#63 render_current::ypos2#2 render_current::l#4 render_current::screen_line#0 render_current::i#4 render_current::xpos#2 render_current::c#2 render_current::current_cell#0 ] ( main:10::render_current:28 [ current_piece_gfx#17 current_piece_char#13 play_spawn_current::$3 current_xpos#48 current_piece_gfx#53 current_piece_char#63 render_current::ypos2#2 render_current::l#4 render_current::screen_line#0 render_current::i#4 render_current::xpos#2 render_current::c#2 render_current::current_cell#0 ] main:10::render_current:61 [ current_piece#10 current_orientation#19 current_piece_gfx#15 current_xpos#20 current_ypos#14 current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 current_xpos#48 current_piece_gfx#53 current_piece_char#63 render_current::ypos2#2 render_current::l#4 render_current::screen_line#0 render_current::i#4 render_current::xpos#2 render_current::c#2 render_current::current_cell#0 ] ) always clobbers reg byte a -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:12 [ 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:13 [ render_current::c#2 render_current::c#1 ] -Statement [81] *((byte*) render_current::screen_line#0 + (byte) render_current::xpos#2) ← (byte) current_piece_char#63 [ current_xpos#48 current_piece_gfx#53 current_piece_char#63 render_current::ypos2#2 render_current::l#4 render_current::i#10 render_current::screen_line#0 render_current::xpos#2 render_current::c#2 ] ( main:10::render_current:28 [ current_piece_gfx#17 current_piece_char#13 play_spawn_current::$3 current_xpos#48 current_piece_gfx#53 current_piece_char#63 render_current::ypos2#2 render_current::l#4 render_current::i#10 render_current::screen_line#0 render_current::xpos#2 render_current::c#2 ] main:10::render_current:61 [ current_piece#10 current_orientation#19 current_piece_gfx#15 current_xpos#20 current_ypos#14 current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 current_xpos#48 current_piece_gfx#53 current_piece_char#63 render_current::ypos2#2 render_current::l#4 render_current::i#10 render_current::screen_line#0 render_current::xpos#2 render_current::c#2 ] ) always clobbers reg byte a -Statement [87] (byte~) render_playfield::$2 ← (byte) render_playfield::l#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ render_playfield::l#2 render_playfield::i#3 render_playfield::$2 ] ( main:10::render_playfield:25 [ current_piece_gfx#17 current_piece_char#13 play_spawn_current::$3 render_playfield::l#2 render_playfield::i#3 render_playfield::$2 ] main:10::render_playfield:56 [ current_piece#10 current_orientation#19 current_piece_gfx#15 current_xpos#20 current_ypos#14 current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 render_playfield::l#2 render_playfield::i#3 render_playfield::$2 ] ) always clobbers reg byte a -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:14 [ render_playfield::l#2 render_playfield::l#1 ] -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:15 [ render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 ] -Statement [88] (byte*) render_playfield::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) screen_lines#0 + (byte~) render_playfield::$2) [ render_playfield::l#2 render_playfield::i#3 render_playfield::screen_line#0 ] ( main:10::render_playfield:25 [ current_piece_gfx#17 current_piece_char#13 play_spawn_current::$3 render_playfield::l#2 render_playfield::i#3 render_playfield::screen_line#0 ] main:10::render_playfield:56 [ current_piece#10 current_orientation#19 current_piece_gfx#15 current_xpos#20 current_ypos#14 current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 render_playfield::l#2 render_playfield::i#3 render_playfield::screen_line#0 ] ) always clobbers reg byte a -Statement [90] *((byte*) render_playfield::screen_line#2) ← *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) render_playfield::i#2) [ render_playfield::l#2 render_playfield::i#2 render_playfield::screen_line#2 render_playfield::c#2 ] ( main:10::render_playfield:25 [ current_piece_gfx#17 current_piece_char#13 play_spawn_current::$3 render_playfield::l#2 render_playfield::i#2 render_playfield::screen_line#2 render_playfield::c#2 ] main:10::render_playfield:56 [ current_piece#10 current_orientation#19 current_piece_gfx#15 current_xpos#20 current_ypos#14 current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 render_playfield::l#2 render_playfield::i#2 render_playfield::screen_line#2 render_playfield::c#2 ] ) always clobbers reg byte a reg byte y +Statement [50] (byte) main::render#2 ← (byte) main::render#1 + (byte~) main::$13 [ current_piece#10 current_xpos#20 current_ypos#14 current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#2 current_orientation#14 current_piece_gfx#14 ] ( main:10 [ current_piece#10 current_xpos#20 current_ypos#14 current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#2 current_orientation#14 current_piece_gfx#14 ] ) always clobbers reg byte a +Statement [55] (byte) main::render#3 ← (byte) main::render#2 + (byte~) main::$14 [ current_piece#10 current_orientation#19 current_piece_gfx#15 current_xpos#20 current_ypos#14 current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::render#3 ] ( main:10 [ current_piece#10 current_orientation#19 current_piece_gfx#15 current_xpos#20 current_ypos#14 current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::render#3 ] ) always clobbers reg byte a +Statement [61] (byte*~) current_piece_gfx#96 ← (byte*) current_piece_gfx#15 [ current_piece#10 current_orientation#19 current_piece_gfx#15 current_xpos#20 current_ypos#14 current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 current_ypos#80 current_xpos#106 current_piece_gfx#96 ] ( main:10 [ current_piece#10 current_orientation#19 current_piece_gfx#15 current_xpos#20 current_ypos#14 current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 current_ypos#80 current_xpos#106 current_piece_gfx#96 ] ) always clobbers reg byte a +Statement [66] (byte) render_current::ypos2#0 ← (byte) current_ypos#10 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ current_xpos#48 current_piece_gfx#53 current_piece_char#63 render_current::ypos2#0 ] ( main:10::render_current:30 [ current_ypos#19 current_xpos#24 current_piece_gfx#17 current_piece_char#13 play_spawn_current::$3 current_xpos#48 current_piece_gfx#53 current_piece_char#63 render_current::ypos2#0 ] main:10::render_current:63 [ current_piece#10 current_orientation#19 current_piece_gfx#15 current_xpos#20 current_ypos#14 current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 current_xpos#48 current_piece_gfx#53 current_piece_char#63 render_current::ypos2#0 ] ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:7 [ current_piece_char#63 current_piece_char#83 current_piece_char#84 ] +Statement [69] (byte) render_current::i#1 ← (byte) render_current::i#3 + (byte/signed byte/word/signed word/dword/signed dword) 4 [ current_xpos#48 current_piece_gfx#53 current_piece_char#63 render_current::ypos2#2 render_current::l#4 render_current::i#1 ] ( main:10::render_current:30 [ current_ypos#19 current_xpos#24 current_piece_gfx#17 current_piece_char#13 play_spawn_current::$3 current_xpos#48 current_piece_gfx#53 current_piece_char#63 render_current::ypos2#2 render_current::l#4 render_current::i#1 ] main:10::render_current:63 [ current_piece#10 current_orientation#19 current_piece_gfx#15 current_xpos#20 current_ypos#14 current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 current_xpos#48 current_piece_gfx#53 current_piece_char#63 render_current::ypos2#2 render_current::l#4 render_current::i#1 ] ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:8 [ render_current::ypos2#2 render_current::ypos2#0 render_current::ypos2#1 ] +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:9 [ render_current::l#4 render_current::l#1 ] +Statement [76] (byte*) render_current::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) screen_lines#0 + (byte) render_current::ypos2#2) [ current_xpos#48 current_piece_gfx#53 current_piece_char#63 render_current::ypos2#2 render_current::i#3 render_current::l#4 render_current::screen_line#0 ] ( main:10::render_current:30 [ current_ypos#19 current_xpos#24 current_piece_gfx#17 current_piece_char#13 play_spawn_current::$3 current_xpos#48 current_piece_gfx#53 current_piece_char#63 render_current::ypos2#2 render_current::i#3 render_current::l#4 render_current::screen_line#0 ] main:10::render_current:63 [ current_piece#10 current_orientation#19 current_piece_gfx#15 current_xpos#20 current_ypos#14 current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 current_xpos#48 current_piece_gfx#53 current_piece_char#63 render_current::ypos2#2 render_current::i#3 render_current::l#4 render_current::screen_line#0 ] ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:10 [ render_current::i#4 render_current::i#3 render_current::i#8 render_current::i#10 render_current::i#1 ] +Statement [79] (byte) render_current::current_cell#0 ← *((byte*) current_piece_gfx#53 + (byte) render_current::i#4) [ current_xpos#48 current_piece_gfx#53 current_piece_char#63 render_current::ypos2#2 render_current::l#4 render_current::screen_line#0 render_current::i#4 render_current::xpos#2 render_current::c#2 render_current::current_cell#0 ] ( main:10::render_current:30 [ current_ypos#19 current_xpos#24 current_piece_gfx#17 current_piece_char#13 play_spawn_current::$3 current_xpos#48 current_piece_gfx#53 current_piece_char#63 render_current::ypos2#2 render_current::l#4 render_current::screen_line#0 render_current::i#4 render_current::xpos#2 render_current::c#2 render_current::current_cell#0 ] main:10::render_current:63 [ current_piece#10 current_orientation#19 current_piece_gfx#15 current_xpos#20 current_ypos#14 current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 current_xpos#48 current_piece_gfx#53 current_piece_char#63 render_current::ypos2#2 render_current::l#4 render_current::screen_line#0 render_current::i#4 render_current::xpos#2 render_current::c#2 render_current::current_cell#0 ] ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:11 [ render_current::xpos#2 render_current::xpos#0 render_current::xpos#1 ] +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:12 [ render_current::c#2 render_current::c#1 ] +Statement [83] *((byte*) render_current::screen_line#0 + (byte) render_current::xpos#2) ← (byte) current_piece_char#63 [ current_xpos#48 current_piece_gfx#53 current_piece_char#63 render_current::ypos2#2 render_current::l#4 render_current::i#10 render_current::screen_line#0 render_current::xpos#2 render_current::c#2 ] ( main:10::render_current:30 [ current_ypos#19 current_xpos#24 current_piece_gfx#17 current_piece_char#13 play_spawn_current::$3 current_xpos#48 current_piece_gfx#53 current_piece_char#63 render_current::ypos2#2 render_current::l#4 render_current::i#10 render_current::screen_line#0 render_current::xpos#2 render_current::c#2 ] main:10::render_current:63 [ current_piece#10 current_orientation#19 current_piece_gfx#15 current_xpos#20 current_ypos#14 current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 current_xpos#48 current_piece_gfx#53 current_piece_char#63 render_current::ypos2#2 render_current::l#4 render_current::i#10 render_current::screen_line#0 render_current::xpos#2 render_current::c#2 ] ) always clobbers reg byte a +Statement [89] (byte~) render_playfield::$2 ← (byte) render_playfield::l#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ render_playfield::l#2 render_playfield::i#3 render_playfield::$2 ] ( main:10::render_playfield:25 [ current_ypos#19 current_xpos#24 current_piece_gfx#17 current_piece_char#13 play_spawn_current::$3 render_playfield::l#2 render_playfield::i#3 render_playfield::$2 ] main:10::render_playfield:58 [ current_piece#10 current_orientation#19 current_piece_gfx#15 current_xpos#20 current_ypos#14 current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 render_playfield::l#2 render_playfield::i#3 render_playfield::$2 ] ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:13 [ render_playfield::l#2 render_playfield::l#1 ] +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:14 [ render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 ] +Statement [90] (byte*) render_playfield::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) screen_lines#0 + (byte~) render_playfield::$2) [ render_playfield::l#2 render_playfield::i#3 render_playfield::screen_line#0 ] ( main:10::render_playfield:25 [ current_ypos#19 current_xpos#24 current_piece_gfx#17 current_piece_char#13 play_spawn_current::$3 render_playfield::l#2 render_playfield::i#3 render_playfield::screen_line#0 ] main:10::render_playfield:58 [ current_piece#10 current_orientation#19 current_piece_gfx#15 current_xpos#20 current_ypos#14 current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 render_playfield::l#2 render_playfield::i#3 render_playfield::screen_line#0 ] ) always clobbers reg byte a +Statement [92] *((byte*) render_playfield::screen_line#2) ← *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) render_playfield::i#2) [ render_playfield::l#2 render_playfield::i#2 render_playfield::screen_line#2 render_playfield::c#2 ] ( main:10::render_playfield:25 [ current_ypos#19 current_xpos#24 current_piece_gfx#17 current_piece_char#13 play_spawn_current::$3 render_playfield::l#2 render_playfield::i#2 render_playfield::screen_line#2 render_playfield::c#2 ] main:10::render_playfield:58 [ current_piece#10 current_orientation#19 current_piece_gfx#15 current_xpos#20 current_ypos#14 current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 render_playfield::l#2 render_playfield::i#2 render_playfield::screen_line#2 render_playfield::c#2 ] ) always clobbers reg byte a reg byte y +Removing always clobbered register reg byte y as potential for zp ZP_BYTE:33 [ current_ypos#30 current_ypos#22 current_ypos#14 current_ypos#19 current_ypos#1 ] +Removing always clobbered register reg byte y as potential for zp ZP_BYTE:39 [ current_xpos#34 current_xpos#11 current_xpos#20 current_xpos#24 current_xpos#5 current_xpos#16 current_xpos#3 ] Removing always clobbered register reg byte y as potential for zp ZP_BYTE:40 [ current_piece_char#21 current_piece_char#16 current_piece_char#11 current_piece_char#13 ] Removing always clobbered register reg byte y as potential for zp ZP_BYTE:123 [ play_spawn_current::$3 ] -Removing always clobbered register reg byte y as potential for zp ZP_BYTE:14 [ render_playfield::l#2 render_playfield::l#1 ] -Removing always clobbered register reg byte y as potential for zp ZP_BYTE:15 [ render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 ] -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:18 [ render_playfield::c#2 render_playfield::c#1 ] -Removing always clobbered register reg byte y as potential for zp ZP_BYTE:18 [ render_playfield::c#2 render_playfield::c#1 ] +Removing always clobbered register reg byte y as potential for zp ZP_BYTE:13 [ render_playfield::l#2 render_playfield::l#1 ] +Removing always clobbered register reg byte y as potential for zp ZP_BYTE:14 [ render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 ] +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:17 [ render_playfield::c#2 render_playfield::c#1 ] +Removing always clobbered register reg byte y as potential for zp ZP_BYTE:17 [ render_playfield::c#2 render_playfield::c#1 ] Removing always clobbered register reg byte y as potential for zp ZP_BYTE:36 [ current_orientation#29 current_orientation#10 current_orientation#19 current_orientation#4 current_orientation#14 ] -Removing always clobbered register reg byte y as potential for zp ZP_BYTE:39 [ current_xpos#34 current_xpos#11 current_xpos#20 current_xpos#5 current_xpos#16 current_xpos#3 ] -Removing always clobbered register reg byte y as potential for zp ZP_BYTE:2 [ current_ypos#22 current_ypos#14 current_ypos#30 current_ypos#1 ] Removing always clobbered register reg byte y as potential for zp ZP_BYTE:59 [ keyboard_events_size#10 keyboard_events_size#29 keyboard_events_size#19 keyboard_events_size#16 keyboard_events_size#13 keyboard_events_size#4 keyboard_events_size#30 keyboard_events_size#2 keyboard_events_size#1 ] -Removing always clobbered register reg byte y as potential for zp ZP_BYTE:3 [ current_movedown_counter#12 current_movedown_counter#10 current_movedown_counter#1 ] -Statement [102] (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 ← (byte) current_orientation#14 + (byte/signed byte/word/signed word/dword/signed dword) 16 [ current_piece#10 current_xpos#20 current_ypos#14 current_orientation#14 current_piece_gfx#14 play_move_rotate::$2 ] ( main:10::play_move_rotate:50 [ current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::render#2 current_piece#10 current_xpos#20 current_ypos#14 current_orientation#14 current_piece_gfx#14 play_move_rotate::$2 ] ) always clobbers reg byte a +Removing always clobbered register reg byte y as potential for zp ZP_BYTE:2 [ current_movedown_counter#12 current_movedown_counter#10 current_movedown_counter#1 ] +Statement [104] (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 ← (byte) current_orientation#14 + (byte/signed byte/word/signed word/dword/signed dword) 16 [ current_piece#10 current_xpos#20 current_ypos#14 current_orientation#14 current_piece_gfx#14 play_move_rotate::$2 ] ( main:10::play_move_rotate:52 [ current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::render#2 current_piece#10 current_xpos#20 current_ypos#14 current_orientation#14 current_piece_gfx#14 play_move_rotate::$2 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:96 [ main::render#2 ] -Statement [103] (byte) play_move_rotate::orientation#2 ← (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 & (byte/signed byte/word/signed word/dword/signed dword) 63 [ current_piece#10 current_xpos#20 current_ypos#14 current_orientation#14 current_piece_gfx#14 play_move_rotate::orientation#2 ] ( main:10::play_move_rotate:50 [ current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::render#2 current_piece#10 current_xpos#20 current_ypos#14 current_orientation#14 current_piece_gfx#14 play_move_rotate::orientation#2 ] ) always clobbers reg byte a -Statement [108] (byte*~) current_piece#76 ← (byte*) current_piece#10 [ current_piece#10 current_xpos#20 current_ypos#14 current_orientation#14 current_piece_gfx#14 play_move_rotate::orientation#3 play_collision::xpos#3 play_collision::ypos#3 play_collision::orientation#3 current_piece#76 ] ( main:10::play_move_rotate:50 [ current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::render#2 current_piece#10 current_xpos#20 current_ypos#14 current_orientation#14 current_piece_gfx#14 play_move_rotate::orientation#3 play_collision::xpos#3 play_collision::ypos#3 play_collision::orientation#3 current_piece#76 ] ) always clobbers reg byte a -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:20 [ play_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#2 ] -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:25 [ 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:24 [ 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:23 [ play_collision::orientation#4 play_collision::orientation#0 play_collision::orientation#1 play_collision::orientation#2 play_collision::orientation#3 ] -Statement [114] (byte*) current_piece_gfx#4 ← (byte*) current_piece#10 + (byte) current_orientation#4 [ current_piece#10 current_xpos#20 current_ypos#14 current_orientation#4 current_piece_gfx#4 ] ( main:10::play_move_rotate:50 [ current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::render#2 current_piece#10 current_xpos#20 current_ypos#14 current_orientation#4 current_piece_gfx#4 ] ) always clobbers reg byte a -Statement [115] (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 ← (byte) current_orientation#14 - (byte/signed byte/word/signed word/dword/signed dword) 16 [ current_piece#10 current_xpos#20 current_ypos#14 current_orientation#14 current_piece_gfx#14 play_move_rotate::$4 ] ( main:10::play_move_rotate:50 [ current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::render#2 current_piece#10 current_xpos#20 current_ypos#14 current_orientation#14 current_piece_gfx#14 play_move_rotate::$4 ] ) always clobbers reg byte a -Statement [116] (byte) play_move_rotate::orientation#1 ← (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 & (byte/signed byte/word/signed word/dword/signed dword) 63 [ current_piece#10 current_xpos#20 current_ypos#14 current_orientation#14 current_piece_gfx#14 play_move_rotate::orientation#1 ] ( main:10::play_move_rotate:50 [ current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::render#2 current_piece#10 current_xpos#20 current_ypos#14 current_orientation#14 current_piece_gfx#14 play_move_rotate::orientation#1 ] ) always clobbers reg byte a -Statement [118] (byte*) play_collision::piece_gfx#0 ← (byte*) current_piece#12 + (byte) play_collision::orientation#4 [ play_collision::ypos#4 play_collision::xpos#5 play_collision::piece_gfx#0 ] ( main:10::play_move_rotate:50::play_collision:109 [ current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::render#2 current_piece#10 current_xpos#20 current_ypos#14 current_orientation#14 current_piece_gfx#14 play_move_rotate::orientation#3 play_collision::ypos#4 play_collision::xpos#5 play_collision::piece_gfx#0 ] main:10::play_move_leftright:45::play_collision:147 [ current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_piece_gfx#14 current_piece#10 current_ypos#14 current_orientation#14 current_xpos#16 play_collision::ypos#4 play_collision::xpos#5 play_collision::piece_gfx#0 ] main:10::play_move_leftright:45::play_collision:158 [ current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_piece_gfx#14 current_piece#10 current_ypos#14 current_orientation#14 current_xpos#16 play_collision::ypos#4 play_collision::xpos#5 play_collision::piece_gfx#0 ] main:10::play_move_down:40::play_collision:182 [ keyboard_events_size#16 main::key_event#0 current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 play_collision::ypos#4 play_collision::xpos#5 play_collision::piece_gfx#0 ] ) always clobbers reg byte a +Statement [105] (byte) play_move_rotate::orientation#2 ← (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 & (byte/signed byte/word/signed word/dword/signed dword) 63 [ current_piece#10 current_xpos#20 current_ypos#14 current_orientation#14 current_piece_gfx#14 play_move_rotate::orientation#2 ] ( main:10::play_move_rotate:52 [ current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::render#2 current_piece#10 current_xpos#20 current_ypos#14 current_orientation#14 current_piece_gfx#14 play_move_rotate::orientation#2 ] ) always clobbers reg byte a +Statement [110] (byte*~) current_piece#76 ← (byte*) current_piece#10 [ current_piece#10 current_xpos#20 current_ypos#14 current_orientation#14 current_piece_gfx#14 play_move_rotate::orientation#3 play_collision::xpos#3 play_collision::ypos#3 play_collision::orientation#3 current_piece#76 ] ( main:10::play_move_rotate:52 [ current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::render#2 current_piece#10 current_xpos#20 current_ypos#14 current_orientation#14 current_piece_gfx#14 play_move_rotate::orientation#3 play_collision::xpos#3 play_collision::ypos#3 play_collision::orientation#3 current_piece#76 ] ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:19 [ play_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#2 ] +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:24 [ play_collision::xpos#5 play_collision::xpos#0 play_collision::xpos#1 play_collision::xpos#2 play_collision::xpos#3 ] +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:23 [ play_collision::ypos#4 play_collision::ypos#0 play_collision::ypos#1 play_collision::ypos#2 play_collision::ypos#3 ] +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:22 [ play_collision::orientation#4 play_collision::orientation#0 play_collision::orientation#1 play_collision::orientation#2 play_collision::orientation#3 ] +Statement [116] (byte*) current_piece_gfx#4 ← (byte*) current_piece#10 + (byte) current_orientation#4 [ current_piece#10 current_xpos#20 current_ypos#14 current_orientation#4 current_piece_gfx#4 ] ( main:10::play_move_rotate:52 [ current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::render#2 current_piece#10 current_xpos#20 current_ypos#14 current_orientation#4 current_piece_gfx#4 ] ) always clobbers reg byte a +Statement [117] (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 ← (byte) current_orientation#14 - (byte/signed byte/word/signed word/dword/signed dword) 16 [ current_piece#10 current_xpos#20 current_ypos#14 current_orientation#14 current_piece_gfx#14 play_move_rotate::$4 ] ( main:10::play_move_rotate:52 [ current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::render#2 current_piece#10 current_xpos#20 current_ypos#14 current_orientation#14 current_piece_gfx#14 play_move_rotate::$4 ] ) always clobbers reg byte a +Statement [118] (byte) play_move_rotate::orientation#1 ← (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 & (byte/signed byte/word/signed word/dword/signed dword) 63 [ current_piece#10 current_xpos#20 current_ypos#14 current_orientation#14 current_piece_gfx#14 play_move_rotate::orientation#1 ] ( main:10::play_move_rotate:52 [ current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::render#2 current_piece#10 current_xpos#20 current_ypos#14 current_orientation#14 current_piece_gfx#14 play_move_rotate::orientation#1 ] ) always clobbers reg byte a +Statement [120] (byte*) play_collision::piece_gfx#0 ← (byte*) current_piece#12 + (byte) play_collision::orientation#4 [ play_collision::ypos#4 play_collision::xpos#5 play_collision::piece_gfx#0 ] ( main:10::play_move_rotate:52::play_collision:111 [ current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::render#2 current_piece#10 current_xpos#20 current_ypos#14 current_orientation#14 current_piece_gfx#14 play_move_rotate::orientation#3 play_collision::ypos#4 play_collision::xpos#5 play_collision::piece_gfx#0 ] main:10::play_move_leftright:47::play_collision:149 [ current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_piece_gfx#14 current_piece#10 current_ypos#14 current_orientation#14 current_xpos#16 play_collision::ypos#4 play_collision::xpos#5 play_collision::piece_gfx#0 ] main:10::play_move_leftright:47::play_collision:160 [ current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_piece_gfx#14 current_piece#10 current_ypos#14 current_orientation#14 current_xpos#16 play_collision::ypos#4 play_collision::xpos#5 play_collision::piece_gfx#0 ] main:10::play_move_down:42::play_collision:184 [ keyboard_events_size#16 main::key_event#0 current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 play_collision::ypos#4 play_collision::xpos#5 play_collision::piece_gfx#0 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:92 [ main::render#1 ] -Statement [119] (byte) play_collision::ypos2#0 ← (byte) play_collision::ypos#4 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#0 ] ( main:10::play_move_rotate:50::play_collision:109 [ current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::render#2 current_piece#10 current_xpos#20 current_ypos#14 current_orientation#14 current_piece_gfx#14 play_move_rotate::orientation#3 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#0 ] main:10::play_move_leftright:45::play_collision:147 [ current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_piece_gfx#14 current_piece#10 current_ypos#14 current_orientation#14 current_xpos#16 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#0 ] main:10::play_move_leftright:45::play_collision:158 [ current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_piece_gfx#14 current_piece#10 current_ypos#14 current_orientation#14 current_xpos#16 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#0 ] main:10::play_move_down:40::play_collision:182 [ keyboard_events_size#16 main::key_event#0 current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#0 ] ) always clobbers reg byte a -Statement [121] (byte*) play_collision::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) play_collision::ypos2#2) [ play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] ( main:10::play_move_rotate:50::play_collision:109 [ current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::render#2 current_piece#10 current_xpos#20 current_ypos#14 current_orientation#14 current_piece_gfx#14 play_move_rotate::orientation#3 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] main:10::play_move_leftright:45::play_collision:147 [ current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_piece_gfx#14 current_piece#10 current_ypos#14 current_orientation#14 current_xpos#16 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] main:10::play_move_leftright:45::play_collision:158 [ current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_piece_gfx#14 current_piece#10 current_ypos#14 current_orientation#14 current_xpos#16 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] main:10::play_move_down:40::play_collision:182 [ keyboard_events_size#16 main::key_event#0 current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] ) always clobbers reg byte a -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:26 [ 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:28 [ 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:27 [ play_collision::l#6 play_collision::l#1 ] -Statement [125] if(*((byte*) play_collision::piece_gfx#0 + (byte) play_collision::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_collision::@3 [ play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] ( main:10::play_move_rotate:50::play_collision:109 [ current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::render#2 current_piece#10 current_xpos#20 current_ypos#14 current_orientation#14 current_piece_gfx#14 play_move_rotate::orientation#3 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:10::play_move_leftright:45::play_collision:147 [ current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_piece_gfx#14 current_piece#10 current_ypos#14 current_orientation#14 current_xpos#16 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:10::play_move_leftright:45::play_collision:158 [ current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_piece_gfx#14 current_piece#10 current_ypos#14 current_orientation#14 current_xpos#16 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:10::play_move_down:40::play_collision:182 [ keyboard_events_size#16 main::key_event#0 current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] ) always clobbers reg byte a -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:29 [ 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:30 [ play_collision::c#2 play_collision::c#1 ] +Statement [121] (byte) play_collision::ypos2#0 ← (byte) play_collision::ypos#4 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#0 ] ( main:10::play_move_rotate:52::play_collision:111 [ current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::render#2 current_piece#10 current_xpos#20 current_ypos#14 current_orientation#14 current_piece_gfx#14 play_move_rotate::orientation#3 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#0 ] main:10::play_move_leftright:47::play_collision:149 [ current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_piece_gfx#14 current_piece#10 current_ypos#14 current_orientation#14 current_xpos#16 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#0 ] main:10::play_move_leftright:47::play_collision:160 [ current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_piece_gfx#14 current_piece#10 current_ypos#14 current_orientation#14 current_xpos#16 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#0 ] main:10::play_move_down:42::play_collision:184 [ keyboard_events_size#16 main::key_event#0 current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#0 ] ) always clobbers reg byte a +Statement [123] (byte*) play_collision::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) play_collision::ypos2#2) [ play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] ( main:10::play_move_rotate:52::play_collision:111 [ current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::render#2 current_piece#10 current_xpos#20 current_ypos#14 current_orientation#14 current_piece_gfx#14 play_move_rotate::orientation#3 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] main:10::play_move_leftright:47::play_collision:149 [ current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_piece_gfx#14 current_piece#10 current_ypos#14 current_orientation#14 current_xpos#16 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] main:10::play_move_leftright:47::play_collision:160 [ current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_piece_gfx#14 current_piece#10 current_ypos#14 current_orientation#14 current_xpos#16 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] main:10::play_move_down:42::play_collision:184 [ keyboard_events_size#16 main::key_event#0 current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:25 [ play_collision::ypos2#2 play_collision::ypos2#0 play_collision::ypos2#1 ] +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:27 [ play_collision::i#2 play_collision::i#3 play_collision::i#11 play_collision::i#13 ] +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:26 [ play_collision::l#6 play_collision::l#1 ] +Statement [127] if(*((byte*) play_collision::piece_gfx#0 + (byte) play_collision::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_collision::@3 [ play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] ( main:10::play_move_rotate:52::play_collision:111 [ current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::render#2 current_piece#10 current_xpos#20 current_ypos#14 current_orientation#14 current_piece_gfx#14 play_move_rotate::orientation#3 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:10::play_move_leftright:47::play_collision:149 [ current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_piece_gfx#14 current_piece#10 current_ypos#14 current_orientation#14 current_xpos#16 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:10::play_move_leftright:47::play_collision:160 [ current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_piece_gfx#14 current_piece#10 current_ypos#14 current_orientation#14 current_xpos#16 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:10::play_move_down:42::play_collision:184 [ keyboard_events_size#16 main::key_event#0 current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:28 [ play_collision::col#2 play_collision::col#9 play_collision::col#1 ] +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:29 [ play_collision::c#2 play_collision::c#1 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:113 [ play_collision::i#1 ] -Statement [129] (byte~) play_collision::$7 ← (byte) play_collision::col#2 & (byte/word/signed word/dword/signed dword) 128 [ play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] ( main:10::play_move_rotate:50::play_collision:109 [ current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::render#2 current_piece#10 current_xpos#20 current_ypos#14 current_orientation#14 current_piece_gfx#14 play_move_rotate::orientation#3 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] main:10::play_move_leftright:45::play_collision:147 [ current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_piece_gfx#14 current_piece#10 current_ypos#14 current_orientation#14 current_xpos#16 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] main:10::play_move_leftright:45::play_collision:158 [ current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_piece_gfx#14 current_piece#10 current_ypos#14 current_orientation#14 current_xpos#16 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] main:10::play_move_down:40::play_collision:182 [ keyboard_events_size#16 main::key_event#0 current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] ) always clobbers reg byte a -Statement [132] if(*((byte*) play_collision::playfield_line#0 + (byte) play_collision::col#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_collision::@3 [ play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] ( main:10::play_move_rotate:50::play_collision:109 [ current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::render#2 current_piece#10 current_xpos#20 current_ypos#14 current_orientation#14 current_piece_gfx#14 play_move_rotate::orientation#3 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:10::play_move_leftright:45::play_collision:147 [ current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_piece_gfx#14 current_piece#10 current_ypos#14 current_orientation#14 current_xpos#16 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:10::play_move_leftright:45::play_collision:158 [ current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_piece_gfx#14 current_piece#10 current_ypos#14 current_orientation#14 current_xpos#16 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:10::play_move_down:40::play_collision:182 [ keyboard_events_size#16 main::key_event#0 current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] ) always clobbers reg byte a -Statement [146] (byte*~) current_piece#75 ← (byte*) current_piece#10 [ current_piece#10 current_ypos#14 current_orientation#14 current_piece#75 play_collision::orientation#2 play_collision::ypos#2 play_collision::xpos#2 current_xpos#16 ] ( main:10::play_move_leftright:45 [ current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_piece_gfx#14 current_piece#10 current_ypos#14 current_orientation#14 current_piece#75 play_collision::orientation#2 play_collision::ypos#2 play_collision::xpos#2 current_xpos#16 ] ) always clobbers reg byte a -Statement [157] (byte*~) current_piece#74 ← (byte*) current_piece#10 [ current_piece#10 current_ypos#14 current_orientation#14 current_piece#74 play_collision::orientation#1 play_collision::ypos#1 play_collision::xpos#1 current_xpos#16 ] ( main:10::play_move_leftright:45 [ current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_piece_gfx#14 current_piece#10 current_ypos#14 current_orientation#14 current_piece#74 play_collision::orientation#1 play_collision::ypos#1 play_collision::xpos#1 current_xpos#16 ] ) always clobbers reg byte a -Statement [181] (byte*~) current_piece#73 ← (byte*) current_piece#16 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 current_piece#73 play_collision::orientation#0 play_collision::ypos#0 play_collision::xpos#0 ] ( main:10::play_move_down:40 [ keyboard_events_size#16 main::key_event#0 current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 current_piece#73 play_collision::orientation#0 play_collision::ypos#0 play_collision::xpos#0 ] ) always clobbers reg byte a -Statement [192] (byte*~) current_piece#77 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) [ current_piece_gfx#17 current_piece_char#13 current_piece#77 ] ( main:10::play_move_down:40 [ keyboard_events_size#16 main::key_event#0 current_piece_gfx#17 current_piece_char#13 current_piece#77 ] ) always clobbers reg byte a -Statement [200] (byte~) play_spawn_current::$3 ← (byte) play_spawn_current::piece_idx#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ play_spawn_current::$3 play_spawn_current::piece_idx#2 ] ( main:10::play_spawn_current:23 [ play_spawn_current::$3 play_spawn_current::piece_idx#2 ] main:10::play_move_down:40::play_spawn_current:191 [ keyboard_events_size#16 main::key_event#0 play_spawn_current::$3 play_spawn_current::piece_idx#2 ] ) always clobbers reg byte a +Statement [131] (byte~) play_collision::$7 ← (byte) play_collision::col#2 & (byte/word/signed word/dword/signed dword) 128 [ play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] ( main:10::play_move_rotate:52::play_collision:111 [ current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::render#2 current_piece#10 current_xpos#20 current_ypos#14 current_orientation#14 current_piece_gfx#14 play_move_rotate::orientation#3 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] main:10::play_move_leftright:47::play_collision:149 [ current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_piece_gfx#14 current_piece#10 current_ypos#14 current_orientation#14 current_xpos#16 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] main:10::play_move_leftright:47::play_collision:160 [ current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_piece_gfx#14 current_piece#10 current_ypos#14 current_orientation#14 current_xpos#16 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] main:10::play_move_down:42::play_collision:184 [ keyboard_events_size#16 main::key_event#0 current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] ) always clobbers reg byte a +Statement [134] if(*((byte*) play_collision::playfield_line#0 + (byte) play_collision::col#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_collision::@3 [ play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] ( main:10::play_move_rotate:52::play_collision:111 [ current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::render#2 current_piece#10 current_xpos#20 current_ypos#14 current_orientation#14 current_piece_gfx#14 play_move_rotate::orientation#3 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:10::play_move_leftright:47::play_collision:149 [ current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_piece_gfx#14 current_piece#10 current_ypos#14 current_orientation#14 current_xpos#16 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:10::play_move_leftright:47::play_collision:160 [ current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_piece_gfx#14 current_piece#10 current_ypos#14 current_orientation#14 current_xpos#16 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:10::play_move_down:42::play_collision:184 [ keyboard_events_size#16 main::key_event#0 current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] ) always clobbers reg byte a +Statement [148] (byte*~) current_piece#75 ← (byte*) current_piece#10 [ current_piece#10 current_ypos#14 current_orientation#14 current_piece#75 play_collision::orientation#2 play_collision::ypos#2 play_collision::xpos#2 current_xpos#16 ] ( main:10::play_move_leftright:47 [ current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_piece_gfx#14 current_piece#10 current_ypos#14 current_orientation#14 current_piece#75 play_collision::orientation#2 play_collision::ypos#2 play_collision::xpos#2 current_xpos#16 ] ) always clobbers reg byte a +Statement [159] (byte*~) current_piece#74 ← (byte*) current_piece#10 [ current_piece#10 current_ypos#14 current_orientation#14 current_piece#74 play_collision::orientation#1 play_collision::ypos#1 play_collision::xpos#1 current_xpos#16 ] ( main:10::play_move_leftright:47 [ current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_piece_gfx#14 current_piece#10 current_ypos#14 current_orientation#14 current_piece#74 play_collision::orientation#1 play_collision::ypos#1 play_collision::xpos#1 current_xpos#16 ] ) always clobbers reg byte a +Statement [183] (byte*~) current_piece#73 ← (byte*) current_piece#16 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 current_piece#73 play_collision::orientation#0 play_collision::ypos#0 play_collision::xpos#0 ] ( main:10::play_move_down:42 [ keyboard_events_size#16 main::key_event#0 current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 current_piece#73 play_collision::orientation#0 play_collision::ypos#0 play_collision::xpos#0 ] ) always clobbers reg byte a +Statement [194] (byte*~) current_piece#77 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) [ current_ypos#19 current_xpos#24 current_piece_gfx#17 current_piece_char#13 current_piece#77 ] ( main:10::play_move_down:42 [ keyboard_events_size#16 main::key_event#0 current_ypos#19 current_xpos#24 current_piece_gfx#17 current_piece_char#13 current_piece#77 ] ) always clobbers reg byte a +Statement [202] (byte~) play_spawn_current::$3 ← (byte) play_spawn_current::piece_idx#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ play_spawn_current::$3 play_spawn_current::piece_idx#2 ] ( main:10::play_spawn_current:23 [ play_spawn_current::$3 play_spawn_current::piece_idx#2 ] main:10::play_move_down:42::play_spawn_current:193 [ keyboard_events_size#16 main::key_event#0 play_spawn_current::$3 play_spawn_current::piece_idx#2 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:42 [ play_spawn_current::piece_idx#2 play_spawn_current::piece_idx#1 ] -Statement [201] (byte*) current_piece_gfx#17 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) + (byte/signed byte/word/signed word/dword/signed dword) 0 [ current_piece_gfx#17 play_spawn_current::$3 play_spawn_current::piece_idx#2 ] ( main:10::play_spawn_current:23 [ current_piece_gfx#17 play_spawn_current::$3 play_spawn_current::piece_idx#2 ] main:10::play_move_down:40::play_spawn_current:191 [ keyboard_events_size#16 main::key_event#0 current_piece_gfx#17 play_spawn_current::$3 play_spawn_current::piece_idx#2 ] ) always clobbers reg byte a -Statement [202] (byte) current_piece_char#13 ← *((const byte[]) PIECES_CHARS#0 + (byte) play_spawn_current::piece_idx#2) [ current_piece_gfx#17 current_piece_char#13 play_spawn_current::$3 ] ( main:10::play_spawn_current:23 [ current_piece_gfx#17 current_piece_char#13 play_spawn_current::$3 ] main:10::play_move_down:40::play_spawn_current:191 [ keyboard_events_size#16 main::key_event#0 current_piece_gfx#17 current_piece_char#13 play_spawn_current::$3 ] ) always clobbers reg byte a -Statement [208] (byte) play_spawn_current::piece_idx#1 ← (byte~) play_spawn_current::$1 & (byte/signed byte/word/signed word/dword/signed dword) 7 [ play_spawn_current::piece_idx#1 ] ( main:10::play_spawn_current:23 [ play_spawn_current::piece_idx#1 ] main:10::play_move_down:40::play_spawn_current:191 [ keyboard_events_size#16 main::key_event#0 play_spawn_current::piece_idx#1 ] ) always clobbers reg byte a -Statement [223] (byte) play_remove_lines::w#2 ← (byte) play_remove_lines::w#1 + (const byte) PLAYFIELD_COLS#0 [ play_remove_lines::y#8 play_remove_lines::r#1 play_remove_lines::w#2 ] ( main:10::play_move_down:40::play_remove_lines:189 [ 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 [203] (byte*) current_piece_gfx#17 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) + (byte/signed byte/word/signed word/dword/signed dword) 0 [ current_piece_gfx#17 play_spawn_current::$3 play_spawn_current::piece_idx#2 ] ( main:10::play_spawn_current:23 [ current_piece_gfx#17 play_spawn_current::$3 play_spawn_current::piece_idx#2 ] main:10::play_move_down:42::play_spawn_current:193 [ keyboard_events_size#16 main::key_event#0 current_piece_gfx#17 play_spawn_current::$3 play_spawn_current::piece_idx#2 ] ) always clobbers reg byte a +Statement [204] (byte) current_xpos#24 ← *((const byte[]) PIECES_START_X#0 + (byte) play_spawn_current::piece_idx#2) [ current_xpos#24 current_piece_gfx#17 play_spawn_current::$3 play_spawn_current::piece_idx#2 ] ( main:10::play_spawn_current:23 [ current_xpos#24 current_piece_gfx#17 play_spawn_current::$3 play_spawn_current::piece_idx#2 ] main:10::play_move_down:42::play_spawn_current:193 [ keyboard_events_size#16 main::key_event#0 current_xpos#24 current_piece_gfx#17 play_spawn_current::$3 play_spawn_current::piece_idx#2 ] ) always clobbers reg byte a +Statement [205] (byte) current_ypos#19 ← *((const byte[]) PIECES_START_Y#0 + (byte) play_spawn_current::piece_idx#2) [ current_ypos#19 current_xpos#24 current_piece_gfx#17 play_spawn_current::$3 play_spawn_current::piece_idx#2 ] ( main:10::play_spawn_current:23 [ current_ypos#19 current_xpos#24 current_piece_gfx#17 play_spawn_current::$3 play_spawn_current::piece_idx#2 ] main:10::play_move_down:42::play_spawn_current:193 [ keyboard_events_size#16 main::key_event#0 current_ypos#19 current_xpos#24 current_piece_gfx#17 play_spawn_current::$3 play_spawn_current::piece_idx#2 ] ) always clobbers reg byte a +Statement [206] (byte) current_piece_char#13 ← *((const byte[]) PIECES_CHARS#0 + (byte) play_spawn_current::piece_idx#2) [ current_ypos#19 current_xpos#24 current_piece_gfx#17 current_piece_char#13 play_spawn_current::$3 ] ( main:10::play_spawn_current:23 [ current_ypos#19 current_xpos#24 current_piece_gfx#17 current_piece_char#13 play_spawn_current::$3 ] main:10::play_move_down:42::play_spawn_current:193 [ keyboard_events_size#16 main::key_event#0 current_ypos#19 current_xpos#24 current_piece_gfx#17 current_piece_char#13 play_spawn_current::$3 ] ) always clobbers reg byte a +Statement [212] (byte) play_spawn_current::piece_idx#1 ← (byte~) play_spawn_current::$1 & (byte/signed byte/word/signed word/dword/signed dword) 7 [ play_spawn_current::piece_idx#1 ] ( main:10::play_spawn_current:23 [ play_spawn_current::piece_idx#1 ] main:10::play_move_down:42::play_spawn_current:193 [ keyboard_events_size#16 main::key_event#0 play_spawn_current::piece_idx#1 ] ) always clobbers reg byte a +Statement [227] (byte) play_remove_lines::w#2 ← (byte) play_remove_lines::w#1 + (const byte) PLAYFIELD_COLS#0 [ play_remove_lines::y#8 play_remove_lines::r#1 play_remove_lines::w#2 ] ( main:10::play_move_down:42::play_remove_lines:191 [ keyboard_events_size#16 main::key_event#0 play_remove_lines::y#8 play_remove_lines::r#1 play_remove_lines::w#2 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:43 [ play_remove_lines::y#8 play_remove_lines::y#1 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:44 [ play_remove_lines::r#2 play_remove_lines::r#3 play_remove_lines::r#1 ] -Statement [230] *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) play_remove_lines::w#6) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ play_remove_lines::w#6 ] ( main:10::play_move_down:40::play_remove_lines:189 [ keyboard_events_size#16 main::key_event#0 play_remove_lines::w#6 ] ) always clobbers reg byte a +Statement [234] *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) play_remove_lines::w#6) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ play_remove_lines::w#6 ] ( main:10::play_move_down:42::play_remove_lines:191 [ keyboard_events_size#16 main::key_event#0 play_remove_lines::w#6 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:47 [ play_remove_lines::w#6 play_remove_lines::w#4 play_remove_lines::w#12 play_remove_lines::w#11 play_remove_lines::w#1 play_remove_lines::w#2 play_remove_lines::w#3 ] -Statement [233] (byte) play_lock_current::ypos2#0 ← (byte) current_ypos#22 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ current_piece_gfx#10 current_xpos#11 current_piece_char#16 play_lock_current::ypos2#0 ] ( main:10::play_move_down:40::play_lock_current:187 [ keyboard_events_size#16 main::key_event#0 current_piece_gfx#10 current_xpos#11 current_piece_char#16 play_lock_current::ypos2#0 ] ) always clobbers reg byte a -Statement [235] (byte*) play_lock_current::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) play_lock_current::ypos2#2) [ current_piece_gfx#10 current_xpos#11 current_piece_char#16 play_lock_current::ypos2#2 play_lock_current::i#3 play_lock_current::l#6 play_lock_current::playfield_line#0 ] ( main:10::play_move_down:40::play_lock_current:187 [ keyboard_events_size#16 main::key_event#0 current_piece_gfx#10 current_xpos#11 current_piece_char#16 play_lock_current::ypos2#2 play_lock_current::i#3 play_lock_current::l#6 play_lock_current::playfield_line#0 ] ) always clobbers reg byte a +Statement [237] (byte) play_lock_current::ypos2#0 ← (byte) current_ypos#22 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ current_piece_gfx#10 current_xpos#11 current_piece_char#16 play_lock_current::ypos2#0 ] ( main:10::play_move_down:42::play_lock_current:189 [ keyboard_events_size#16 main::key_event#0 current_piece_gfx#10 current_xpos#11 current_piece_char#16 play_lock_current::ypos2#0 ] ) always clobbers reg byte a +Statement [239] (byte*) play_lock_current::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) play_lock_current::ypos2#2) [ current_piece_gfx#10 current_xpos#11 current_piece_char#16 play_lock_current::ypos2#2 play_lock_current::i#3 play_lock_current::l#6 play_lock_current::playfield_line#0 ] ( main:10::play_move_down:42::play_lock_current:189 [ keyboard_events_size#16 main::key_event#0 current_piece_gfx#10 current_xpos#11 current_piece_char#16 play_lock_current::ypos2#2 play_lock_current::i#3 play_lock_current::l#6 play_lock_current::playfield_line#0 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:48 [ play_lock_current::ypos2#2 play_lock_current::ypos2#0 play_lock_current::ypos2#1 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:50 [ play_lock_current::i#2 play_lock_current::i#3 play_lock_current::i#7 play_lock_current::i#9 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:49 [ play_lock_current::l#6 play_lock_current::l#1 ] -Statement [239] if(*((byte*) current_piece_gfx#10 + (byte) play_lock_current::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_lock_current::@3 [ current_piece_gfx#10 current_xpos#11 current_piece_char#16 play_lock_current::ypos2#2 play_lock_current::l#6 play_lock_current::playfield_line#0 play_lock_current::col#2 play_lock_current::c#2 play_lock_current::i#1 ] ( main:10::play_move_down:40::play_lock_current:187 [ keyboard_events_size#16 main::key_event#0 current_piece_gfx#10 current_xpos#11 current_piece_char#16 play_lock_current::ypos2#2 play_lock_current::l#6 play_lock_current::playfield_line#0 play_lock_current::col#2 play_lock_current::c#2 play_lock_current::i#1 ] ) always clobbers reg byte a +Statement [243] if(*((byte*) current_piece_gfx#10 + (byte) play_lock_current::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_lock_current::@3 [ current_piece_gfx#10 current_xpos#11 current_piece_char#16 play_lock_current::ypos2#2 play_lock_current::l#6 play_lock_current::playfield_line#0 play_lock_current::col#2 play_lock_current::c#2 play_lock_current::i#1 ] ( main:10::play_move_down:42::play_lock_current:189 [ keyboard_events_size#16 main::key_event#0 current_piece_gfx#10 current_xpos#11 current_piece_char#16 play_lock_current::ypos2#2 play_lock_current::l#6 play_lock_current::playfield_line#0 play_lock_current::col#2 play_lock_current::c#2 play_lock_current::i#1 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:51 [ play_lock_current::col#2 play_lock_current::col#0 play_lock_current::col#1 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:52 [ play_lock_current::c#2 play_lock_current::c#1 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:130 [ play_lock_current::i#1 ] -Statement [240] *((byte*) play_lock_current::playfield_line#0 + (byte) play_lock_current::col#2) ← (byte) current_piece_char#16 [ current_piece_gfx#10 current_xpos#11 current_piece_char#16 play_lock_current::ypos2#2 play_lock_current::l#6 play_lock_current::playfield_line#0 play_lock_current::col#2 play_lock_current::c#2 play_lock_current::i#1 ] ( main:10::play_move_down:40::play_lock_current:187 [ keyboard_events_size#16 main::key_event#0 current_piece_gfx#10 current_xpos#11 current_piece_char#16 play_lock_current::ypos2#2 play_lock_current::l#6 play_lock_current::playfield_line#0 play_lock_current::col#2 play_lock_current::c#2 play_lock_current::i#1 ] ) always clobbers reg byte a -Statement [251] (byte~) keyboard_event_pressed::$0 ← (byte) keyboard_event_pressed::keycode#5 >> (byte/signed byte/word/signed word/dword/signed dword) 3 [ keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] ( main:10::play_move_down:40::keyboard_event_pressed:167 [ keyboard_events_size#16 main::key_event#0 current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 current_movedown_counter#1 play_move_down::movedown#10 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] main:10::keyboard_event_scan:34::keyboard_event_pressed:273 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 current_movedown_counter#12 keyboard_events_size#13 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] main:10::keyboard_event_scan:34::keyboard_event_pressed:279 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 current_movedown_counter#12 keyboard_events_size#13 keyboard_modifiers#11 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] main:10::keyboard_event_scan:34::keyboard_event_pressed:285 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 current_movedown_counter#12 keyboard_events_size#13 keyboard_modifiers#12 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] main:10::keyboard_event_scan:34::keyboard_event_pressed:291 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 current_movedown_counter#12 keyboard_events_size#13 keyboard_modifiers#13 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] ) always clobbers reg byte a -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:33 [ play_move_down::movedown#6 play_move_down::movedown#3 play_move_down::movedown#7 play_move_down::movedown#2 play_move_down::movedown#10 ] +Statement [244] *((byte*) play_lock_current::playfield_line#0 + (byte) play_lock_current::col#2) ← (byte) current_piece_char#16 [ current_piece_gfx#10 current_xpos#11 current_piece_char#16 play_lock_current::ypos2#2 play_lock_current::l#6 play_lock_current::playfield_line#0 play_lock_current::col#2 play_lock_current::c#2 play_lock_current::i#1 ] ( main:10::play_move_down:42::play_lock_current:189 [ keyboard_events_size#16 main::key_event#0 current_piece_gfx#10 current_xpos#11 current_piece_char#16 play_lock_current::ypos2#2 play_lock_current::l#6 play_lock_current::playfield_line#0 play_lock_current::col#2 play_lock_current::c#2 play_lock_current::i#1 ] ) always clobbers reg byte a +Statement [255] (byte~) keyboard_event_pressed::$0 ← (byte) keyboard_event_pressed::keycode#5 >> (byte/signed byte/word/signed word/dword/signed dword) 3 [ keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] ( main:10::play_move_down:42::keyboard_event_pressed:169 [ keyboard_events_size#16 main::key_event#0 current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 current_movedown_counter#1 play_move_down::movedown#10 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] main:10::keyboard_event_scan:36::keyboard_event_pressed:277 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 current_movedown_counter#12 keyboard_events_size#13 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] main:10::keyboard_event_scan:36::keyboard_event_pressed:283 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 current_movedown_counter#12 keyboard_events_size#13 keyboard_modifiers#11 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] main:10::keyboard_event_scan:36::keyboard_event_pressed:289 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 current_movedown_counter#12 keyboard_events_size#13 keyboard_modifiers#12 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] main:10::keyboard_event_scan:36::keyboard_event_pressed:295 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 current_movedown_counter#12 keyboard_events_size#13 keyboard_modifiers#13 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:32 [ play_move_down::movedown#6 play_move_down::movedown#3 play_move_down::movedown#7 play_move_down::movedown#2 play_move_down::movedown#10 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:53 [ keyboard_event_pressed::keycode#5 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:56 [ keyboard_modifiers#13 keyboard_modifiers#4 keyboard_modifiers#12 keyboard_modifiers#3 keyboard_modifiers#11 ] -Statement [253] (byte~) keyboard_event_pressed::$1 ← (byte) keyboard_event_pressed::keycode#5 & (byte/signed byte/word/signed word/dword/signed dword) 7 [ keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] ( main:10::play_move_down:40::keyboard_event_pressed:167 [ keyboard_events_size#16 main::key_event#0 current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 current_movedown_counter#1 play_move_down::movedown#10 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:10::keyboard_event_scan:34::keyboard_event_pressed:273 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 current_movedown_counter#12 keyboard_events_size#13 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:10::keyboard_event_scan:34::keyboard_event_pressed:279 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 current_movedown_counter#12 keyboard_events_size#13 keyboard_modifiers#11 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:10::keyboard_event_scan:34::keyboard_event_pressed:285 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 current_movedown_counter#12 keyboard_events_size#13 keyboard_modifiers#12 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:10::keyboard_event_scan:34::keyboard_event_pressed:291 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 current_movedown_counter#12 keyboard_events_size#13 keyboard_modifiers#13 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] ) always clobbers reg byte a +Statement [257] (byte~) keyboard_event_pressed::$1 ← (byte) keyboard_event_pressed::keycode#5 & (byte/signed byte/word/signed word/dword/signed dword) 7 [ keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] ( main:10::play_move_down:42::keyboard_event_pressed:169 [ keyboard_events_size#16 main::key_event#0 current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 current_movedown_counter#1 play_move_down::movedown#10 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:10::keyboard_event_scan:36::keyboard_event_pressed:277 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 current_movedown_counter#12 keyboard_events_size#13 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:10::keyboard_event_scan:36::keyboard_event_pressed:283 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 current_movedown_counter#12 keyboard_events_size#13 keyboard_modifiers#11 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:10::keyboard_event_scan:36::keyboard_event_pressed:289 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 current_movedown_counter#12 keyboard_events_size#13 keyboard_modifiers#12 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:10::keyboard_event_scan:36::keyboard_event_pressed:295 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 current_movedown_counter#12 keyboard_events_size#13 keyboard_modifiers#13 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:132 [ keyboard_event_pressed::row_bits#0 ] -Statement [254] (byte) keyboard_event_pressed::return#11 ← (byte) keyboard_event_pressed::row_bits#0 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte~) keyboard_event_pressed::$1) [ keyboard_event_pressed::return#11 ] ( main:10::play_move_down:40::keyboard_event_pressed:167 [ keyboard_events_size#16 main::key_event#0 current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 current_movedown_counter#1 play_move_down::movedown#10 keyboard_event_pressed::return#11 ] main:10::keyboard_event_scan:34::keyboard_event_pressed:273 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 current_movedown_counter#12 keyboard_events_size#13 keyboard_event_pressed::return#11 ] main:10::keyboard_event_scan:34::keyboard_event_pressed:279 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 current_movedown_counter#12 keyboard_events_size#13 keyboard_modifiers#11 keyboard_event_pressed::return#11 ] main:10::keyboard_event_scan:34::keyboard_event_pressed:285 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 current_movedown_counter#12 keyboard_events_size#13 keyboard_modifiers#12 keyboard_event_pressed::return#11 ] main:10::keyboard_event_scan:34::keyboard_event_pressed:291 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 current_movedown_counter#12 keyboard_events_size#13 keyboard_modifiers#13 keyboard_event_pressed::return#11 ] ) always clobbers reg byte a -Statement [268] (byte) keyboard_event_scan::keycode#1 ← (byte) keyboard_event_scan::keycode#11 + (byte/signed byte/word/signed word/dword/signed dword) 8 [ keyboard_event_scan::row#2 keyboard_events_size#29 keyboard_event_scan::keycode#1 ] ( main:10::keyboard_event_scan:34 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 current_movedown_counter#12 keyboard_event_scan::row#2 keyboard_events_size#29 keyboard_event_scan::keycode#1 ] ) always clobbers reg byte a +Statement [258] (byte) keyboard_event_pressed::return#11 ← (byte) keyboard_event_pressed::row_bits#0 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte~) keyboard_event_pressed::$1) [ keyboard_event_pressed::return#11 ] ( main:10::play_move_down:42::keyboard_event_pressed:169 [ keyboard_events_size#16 main::key_event#0 current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 current_movedown_counter#1 play_move_down::movedown#10 keyboard_event_pressed::return#11 ] main:10::keyboard_event_scan:36::keyboard_event_pressed:277 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 current_movedown_counter#12 keyboard_events_size#13 keyboard_event_pressed::return#11 ] main:10::keyboard_event_scan:36::keyboard_event_pressed:283 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 current_movedown_counter#12 keyboard_events_size#13 keyboard_modifiers#11 keyboard_event_pressed::return#11 ] main:10::keyboard_event_scan:36::keyboard_event_pressed:289 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 current_movedown_counter#12 keyboard_events_size#13 keyboard_modifiers#12 keyboard_event_pressed::return#11 ] main:10::keyboard_event_scan:36::keyboard_event_pressed:295 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 current_movedown_counter#12 keyboard_events_size#13 keyboard_modifiers#13 keyboard_event_pressed::return#11 ] ) always clobbers reg byte a +Statement [272] (byte) keyboard_event_scan::keycode#1 ← (byte) keyboard_event_scan::keycode#11 + (byte/signed byte/word/signed word/dword/signed dword) 8 [ keyboard_event_scan::row#2 keyboard_events_size#29 keyboard_event_scan::keycode#1 ] ( main:10::keyboard_event_scan:36 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 current_movedown_counter#12 keyboard_event_scan::row#2 keyboard_events_size#29 keyboard_event_scan::keycode#1 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:55 [ keyboard_event_scan::row#2 keyboard_event_scan::row#1 ] -Statement [283] (byte) keyboard_modifiers#3 ← (byte) keyboard_modifiers#11 | (const byte) KEY_MODIFIER_RSHIFT#0 [ keyboard_events_size#13 keyboard_modifiers#3 ] ( main:10::keyboard_event_scan:34 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 current_movedown_counter#12 keyboard_events_size#13 keyboard_modifiers#3 ] ) always clobbers reg byte a -Statement [289] (byte) keyboard_modifiers#4 ← (byte) keyboard_modifiers#12 | (const byte) KEY_MODIFIER_CTRL#0 [ keyboard_events_size#13 keyboard_modifiers#4 ] ( main:10::keyboard_event_scan:34 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 current_movedown_counter#12 keyboard_events_size#13 keyboard_modifiers#4 ] ) always clobbers reg byte a -Statement [295] (byte) keyboard_modifiers#5 ← (byte) keyboard_modifiers#13 | (const byte) KEY_MODIFIER_COMMODORE#0 [ keyboard_events_size#13 ] ( main:10::keyboard_event_scan:34 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 current_movedown_counter#12 keyboard_events_size#13 ] ) always clobbers reg byte a -Statement [298] (byte~) keyboard_event_scan::$3 ← (byte) keyboard_event_scan::row_scan#0 ^ *((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2) [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::$3 ] ( main:10::keyboard_event_scan:34 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 current_movedown_counter#12 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::$3 ] ) always clobbers reg byte a +Statement [287] (byte) keyboard_modifiers#3 ← (byte) keyboard_modifiers#11 | (const byte) KEY_MODIFIER_RSHIFT#0 [ keyboard_events_size#13 keyboard_modifiers#3 ] ( main:10::keyboard_event_scan:36 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 current_movedown_counter#12 keyboard_events_size#13 keyboard_modifiers#3 ] ) always clobbers reg byte a +Statement [293] (byte) keyboard_modifiers#4 ← (byte) keyboard_modifiers#12 | (const byte) KEY_MODIFIER_CTRL#0 [ keyboard_events_size#13 keyboard_modifiers#4 ] ( main:10::keyboard_event_scan:36 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 current_movedown_counter#12 keyboard_events_size#13 keyboard_modifiers#4 ] ) always clobbers reg byte a +Statement [299] (byte) keyboard_modifiers#5 ← (byte) keyboard_modifiers#13 | (const byte) KEY_MODIFIER_COMMODORE#0 [ keyboard_events_size#13 ] ( main:10::keyboard_event_scan:36 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 current_movedown_counter#12 keyboard_events_size#13 ] ) always clobbers reg byte a +Statement [302] (byte~) keyboard_event_scan::$3 ← (byte) keyboard_event_scan::row_scan#0 ^ *((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2) [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::$3 ] ( main:10::keyboard_event_scan:36 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 current_movedown_counter#12 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::$3 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:137 [ keyboard_event_scan::row_scan#0 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:57 [ keyboard_event_scan::col#2 keyboard_event_scan::col#1 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:58 [ keyboard_event_scan::keycode#10 keyboard_event_scan::keycode#11 keyboard_event_scan::keycode#14 keyboard_event_scan::keycode#1 keyboard_event_scan::keycode#15 ] -Statement [299] (byte~) keyboard_event_scan::$4 ← (byte~) keyboard_event_scan::$3 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_event_scan::col#2) [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::$4 ] ( main:10::keyboard_event_scan:34 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 current_movedown_counter#12 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::$4 ] ) always clobbers reg byte a -Statement [302] (byte) keyboard_event_scan::event_type#0 ← (byte) keyboard_event_scan::row_scan#0 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_event_scan::col#2) [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::event_type#0 ] ( main:10::keyboard_event_scan:34 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 current_movedown_counter#12 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::event_type#0 ] ) always clobbers reg byte a -Statement [304] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte) keyboard_event_scan::keycode#10 [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 ] ( main:10::keyboard_event_scan:34 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 current_movedown_counter#12 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 ] ) always clobbers reg byte a -Statement [310] *((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2) ← (byte) keyboard_event_scan::row_scan#0 [ keyboard_event_scan::row#2 keyboard_event_scan::keycode#15 keyboard_events_size#30 ] ( main:10::keyboard_event_scan:34 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 current_movedown_counter#12 keyboard_event_scan::row#2 keyboard_event_scan::keycode#15 keyboard_events_size#30 ] ) always clobbers reg byte a -Statement [311] (byte/word/dword~) keyboard_event_scan::$11 ← (byte) keyboard_event_scan::keycode#10 | (byte/signed byte/word/signed word/dword/signed dword) 64 [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::$11 ] ( main:10::keyboard_event_scan:34 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 current_movedown_counter#12 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::$11 ] ) always clobbers reg byte a -Statement [314] *((const byte*) CIA1_PORT_A#0) ← *((const byte[8]) keyboard_matrix_row_bitmask#0 + (byte) keyboard_matrix_read::rowid#0) [ ] ( main:10::keyboard_event_scan:34::keyboard_matrix_read:264 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 current_movedown_counter#12 keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#29 ] ) always clobbers reg byte a -Statement [315] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) [ keyboard_matrix_read::return#0 ] ( main:10::keyboard_event_scan:34::keyboard_matrix_read:264 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 current_movedown_counter#12 keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#29 keyboard_matrix_read::return#0 ] ) always clobbers reg byte a -Statement [319] (byte~) play_init::$1 ← (byte) play_init::j#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ play_init::j#2 play_init::pli#2 play_init::idx#2 play_init::$1 ] ( main:10::play_init:21 [ play_init::j#2 play_init::pli#2 play_init::idx#2 play_init::$1 ] ) always clobbers reg byte a +Statement [303] (byte~) keyboard_event_scan::$4 ← (byte~) keyboard_event_scan::$3 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_event_scan::col#2) [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::$4 ] ( main:10::keyboard_event_scan:36 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 current_movedown_counter#12 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::$4 ] ) always clobbers reg byte a +Statement [306] (byte) keyboard_event_scan::event_type#0 ← (byte) keyboard_event_scan::row_scan#0 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_event_scan::col#2) [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::event_type#0 ] ( main:10::keyboard_event_scan:36 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 current_movedown_counter#12 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::event_type#0 ] ) always clobbers reg byte a +Statement [308] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte) keyboard_event_scan::keycode#10 [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 ] ( main:10::keyboard_event_scan:36 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 current_movedown_counter#12 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 ] ) always clobbers reg byte a +Statement [314] *((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2) ← (byte) keyboard_event_scan::row_scan#0 [ keyboard_event_scan::row#2 keyboard_event_scan::keycode#15 keyboard_events_size#30 ] ( main:10::keyboard_event_scan:36 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 current_movedown_counter#12 keyboard_event_scan::row#2 keyboard_event_scan::keycode#15 keyboard_events_size#30 ] ) always clobbers reg byte a +Statement [315] (byte/word/dword~) keyboard_event_scan::$11 ← (byte) keyboard_event_scan::keycode#10 | (byte/signed byte/word/signed word/dword/signed dword) 64 [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::$11 ] ( main:10::keyboard_event_scan:36 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 current_movedown_counter#12 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::$11 ] ) always clobbers reg byte a +Statement [318] *((const byte*) CIA1_PORT_A#0) ← *((const byte[8]) keyboard_matrix_row_bitmask#0 + (byte) keyboard_matrix_read::rowid#0) [ ] ( main:10::keyboard_event_scan:36::keyboard_matrix_read:268 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 current_movedown_counter#12 keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#29 ] ) always clobbers reg byte a +Statement [319] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) [ keyboard_matrix_read::return#0 ] ( main:10::keyboard_event_scan:36::keyboard_matrix_read:268 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 current_movedown_counter#12 keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#29 keyboard_matrix_read::return#0 ] ) always clobbers reg byte a +Statement [323] (byte~) play_init::$1 ← (byte) play_init::j#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ play_init::j#2 play_init::pli#2 play_init::idx#2 play_init::$1 ] ( main:10::play_init:21 [ play_init::j#2 play_init::pli#2 play_init::idx#2 play_init::$1 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:60 [ play_init::j#2 play_init::j#1 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:63 [ play_init::idx#2 play_init::idx#1 ] -Statement [320] *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte~) play_init::$1) ← (byte*) play_init::pli#2 [ play_init::j#2 play_init::pli#2 play_init::idx#2 ] ( main:10::play_init:21 [ play_init::j#2 play_init::pli#2 play_init::idx#2 ] ) always clobbers reg byte a -Statement [321] *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0 + (byte) play_init::j#2) ← (byte) play_init::idx#2 [ play_init::j#2 play_init::pli#2 play_init::idx#2 ] ( main:10::play_init:21 [ play_init::j#2 play_init::pli#2 play_init::idx#2 ] ) always clobbers reg byte a -Statement [322] (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:10::play_init:21 [ play_init::j#2 play_init::idx#2 play_init::pli#1 ] ) always clobbers reg byte a -Statement [323] (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:10::play_init:21 [ play_init::j#2 play_init::pli#1 play_init::idx#1 ] ) always clobbers reg byte a -Statement [326] *((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:10::play_init:21 [ ] ) always clobbers reg byte a -Statement [329] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0 [ ] ( main:10::sprites_irq_init:19 [ ] ) always clobbers reg byte a +Statement [324] *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte~) play_init::$1) ← (byte*) play_init::pli#2 [ play_init::j#2 play_init::pli#2 play_init::idx#2 ] ( main:10::play_init:21 [ play_init::j#2 play_init::pli#2 play_init::idx#2 ] ) always clobbers reg byte a +Statement [325] *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0 + (byte) play_init::j#2) ← (byte) play_init::idx#2 [ play_init::j#2 play_init::pli#2 play_init::idx#2 ] ( main:10::play_init:21 [ play_init::j#2 play_init::pli#2 play_init::idx#2 ] ) always clobbers reg byte a +Statement [326] (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:10::play_init:21 [ play_init::j#2 play_init::idx#2 play_init::pli#1 ] ) always clobbers reg byte a +Statement [327] (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:10::play_init:21 [ play_init::j#2 play_init::pli#1 play_init::idx#1 ] ) always clobbers reg byte a +Statement [330] *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0+(const byte) PLAYFIELD_LINES#0) ← (const byte) PLAYFIELD_COLS#0*(const byte) PLAYFIELD_LINES#0 [ ] ( main:10::play_init:21 [ ] ) always clobbers reg byte a +Statement [333] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0 [ ] ( main:10::sprites_irq_init:19 [ ] ) always clobbers reg byte a Statement asm { ldaCIA1_INTERRUPT } always clobbers reg byte a -Statement [331] *((const byte*) PROCPORT_DDR#0) ← (const byte) PROCPORT_DDR_MEMORY_MASK#0 [ ] ( main:10::sprites_irq_init:19 [ ] ) always clobbers reg byte a -Statement [332] *((const byte*) PROCPORT#0) ← (const byte) PROCPORT_RAM_IO#0 [ ] ( main:10::sprites_irq_init:19 [ ] ) always clobbers reg byte a -Statement [333] *((const byte*) CIA1_INTERRUPT#0) ← (const byte) CIA_INTERRUPT_CLEAR#0 [ ] ( main:10::sprites_irq_init:19 [ ] ) always clobbers reg byte a -Statement [334] *((const byte*) VIC_CONTROL#0) ← *((const byte*) VIC_CONTROL#0) & (byte/signed byte/word/signed word/dword/signed dword) 127 [ ] ( main:10::sprites_irq_init:19 [ ] ) always clobbers reg byte a -Statement [335] *((const byte*) RASTER#0) ← (const byte) IRQ_RASTER_FIRST#0 [ ] ( main:10::sprites_irq_init:19 [ ] ) always clobbers reg byte a -Statement [336] *((const byte*) IRQ_ENABLE#0) ← (const byte) IRQ_RASTER#0 [ ] ( main:10::sprites_irq_init:19 [ ] ) always clobbers reg byte a -Statement [337] *((const void()**) HARDWARE_IRQ#0) ← &interrupt(HARDWARE_CLOBBER)(void()) irq() [ ] ( main:10::sprites_irq_init:19 [ ] ) always clobbers reg byte a -Statement [340] *((const byte*) SPRITES_ENABLE#0) ← (byte/signed byte/word/signed word/dword/signed dword) 15 [ ] ( main:10::sprites_init:17 [ ] ) always clobbers reg byte a -Statement [341] *((const byte*) SPRITES_MC#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:10::sprites_init:17 [ ] ) always clobbers reg byte a -Statement [342] *((const byte*) SPRITES_EXPAND_Y#0) ← *((const byte*) SPRITES_MC#0) [ ] ( main:10::sprites_init:17 [ ] ) always clobbers reg byte a -Statement [343] *((const byte*) SPRITES_EXPAND_X#0) ← *((const byte*) SPRITES_EXPAND_Y#0) [ ] ( main:10::sprites_init:17 [ ] ) always clobbers reg byte a -Statement [345] (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:10::sprites_init:17 [ sprites_init::s#2 sprites_init::xpos#2 sprites_init::s2#0 ] ) always clobbers reg byte a +Statement [335] *((const byte*) PROCPORT_DDR#0) ← (const byte) PROCPORT_DDR_MEMORY_MASK#0 [ ] ( main:10::sprites_irq_init:19 [ ] ) always clobbers reg byte a +Statement [336] *((const byte*) PROCPORT#0) ← (const byte) PROCPORT_RAM_IO#0 [ ] ( main:10::sprites_irq_init:19 [ ] ) always clobbers reg byte a +Statement [337] *((const byte*) CIA1_INTERRUPT#0) ← (const byte) CIA_INTERRUPT_CLEAR#0 [ ] ( main:10::sprites_irq_init:19 [ ] ) always clobbers reg byte a +Statement [338] *((const byte*) VIC_CONTROL#0) ← *((const byte*) VIC_CONTROL#0) & (byte/signed byte/word/signed word/dword/signed dword) 127 [ ] ( main:10::sprites_irq_init:19 [ ] ) always clobbers reg byte a +Statement [339] *((const byte*) RASTER#0) ← (const byte) IRQ_RASTER_FIRST#0 [ ] ( main:10::sprites_irq_init:19 [ ] ) always clobbers reg byte a +Statement [340] *((const byte*) IRQ_ENABLE#0) ← (const byte) IRQ_RASTER#0 [ ] ( main:10::sprites_irq_init:19 [ ] ) always clobbers reg byte a +Statement [341] *((const void()**) HARDWARE_IRQ#0) ← &interrupt(HARDWARE_CLOBBER)(void()) irq() [ ] ( main:10::sprites_irq_init:19 [ ] ) always clobbers reg byte a +Statement [344] *((const byte*) SPRITES_ENABLE#0) ← (byte/signed byte/word/signed word/dword/signed dword) 15 [ ] ( main:10::sprites_init:17 [ ] ) always clobbers reg byte a +Statement [345] *((const byte*) SPRITES_MC#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:10::sprites_init:17 [ ] ) always clobbers reg byte a +Statement [346] *((const byte*) SPRITES_EXPAND_Y#0) ← *((const byte*) SPRITES_MC#0) [ ] ( main:10::sprites_init:17 [ ] ) always clobbers reg byte a +Statement [347] *((const byte*) SPRITES_EXPAND_X#0) ← *((const byte*) SPRITES_EXPAND_Y#0) [ ] ( main:10::sprites_init:17 [ ] ) always clobbers reg byte a +Statement [349] (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:10::sprites_init:17 [ 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:64 [ sprites_init::s#2 sprites_init::s#1 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:65 [ sprites_init::xpos#2 sprites_init::xpos#1 ] -Statement [346] *((const byte*) SPRITES_XPOS#0 + (byte) sprites_init::s2#0) ← (byte) sprites_init::xpos#2 [ sprites_init::s#2 sprites_init::xpos#2 ] ( main:10::sprites_init:17 [ sprites_init::s#2 sprites_init::xpos#2 ] ) always clobbers reg byte a -Statement [347] *((const byte*) SPRITES_COLS#0 + (byte) sprites_init::s#2) ← (const byte) BLACK#0 [ sprites_init::s#2 sprites_init::xpos#2 ] ( main:10::sprites_init:17 [ sprites_init::s#2 sprites_init::xpos#2 ] ) always clobbers reg byte a -Statement [348] (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:10::sprites_init:17 [ sprites_init::s#2 sprites_init::xpos#1 ] ) always clobbers reg byte a -Statement [353] *((const byte*) CIA2_PORT_A_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3 [ ] ( main:10::render_init:15 [ ] ) always clobbers reg byte a -Statement [355] *((const byte*) CIA2_PORT_A#0) ← (const byte) render_init::vicSelectGfxBank1_toDd001_return#0 [ ] ( main:10::render_init:15 [ ] ) always clobbers reg byte a -Statement [357] *((const byte*) D018#0) ← (const byte) render_init::toD0181_return#0 [ ] ( main:10::render_init:15 [ ] ) always clobbers reg byte a -Statement [358] *((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:10::render_init:15 [ ] ) always clobbers reg byte a -Statement [359] *((const byte*) BGCOL1#0) ← (const byte) BLACK#0 [ ] ( main:10::render_init:15 [ ] ) always clobbers reg byte a -Statement [360] *((const byte*) BGCOL2#0) ← (const byte) BLUE#0 [ ] ( main:10::render_init:15 [ ] ) always clobbers reg byte a -Statement [361] *((const byte*) BGCOL3#0) ← (const byte) CYAN#0 [ ] ( main:10::render_init:15 [ ] ) always clobbers reg byte a -Statement [362] *((const byte*) BGCOL4#0) ← (const byte) GREY#0 [ ] ( main:10::render_init:15 [ ] ) always clobbers reg byte a -Statement [367] (byte~) render_init::$11 ← (byte) render_init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ render_init::i#2 render_init::li#2 render_init::$11 ] ( main:10::render_init:15 [ render_init::i#2 render_init::li#2 render_init::$11 ] ) always clobbers reg byte a +Statement [350] *((const byte*) SPRITES_XPOS#0 + (byte) sprites_init::s2#0) ← (byte) sprites_init::xpos#2 [ sprites_init::s#2 sprites_init::xpos#2 ] ( main:10::sprites_init:17 [ sprites_init::s#2 sprites_init::xpos#2 ] ) always clobbers reg byte a +Statement [351] *((const byte*) SPRITES_COLS#0 + (byte) sprites_init::s#2) ← (const byte) BLACK#0 [ sprites_init::s#2 sprites_init::xpos#2 ] ( main:10::sprites_init:17 [ sprites_init::s#2 sprites_init::xpos#2 ] ) always clobbers reg byte a +Statement [352] (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:10::sprites_init:17 [ sprites_init::s#2 sprites_init::xpos#1 ] ) always clobbers reg byte a +Statement [357] *((const byte*) CIA2_PORT_A_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3 [ ] ( main:10::render_init:15 [ ] ) always clobbers reg byte a +Statement [359] *((const byte*) CIA2_PORT_A#0) ← (const byte) render_init::vicSelectGfxBank1_toDd001_return#0 [ ] ( main:10::render_init:15 [ ] ) always clobbers reg byte a +Statement [361] *((const byte*) D018#0) ← (const byte) render_init::toD0181_return#0 [ ] ( main:10::render_init:15 [ ] ) always clobbers reg byte a +Statement [362] *((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:10::render_init:15 [ ] ) always clobbers reg byte a +Statement [363] *((const byte*) BGCOL1#0) ← (const byte) BLACK#0 [ ] ( main:10::render_init:15 [ ] ) always clobbers reg byte a +Statement [364] *((const byte*) BGCOL2#0) ← (const byte) BLUE#0 [ ] ( main:10::render_init:15 [ ] ) always clobbers reg byte a +Statement [365] *((const byte*) BGCOL3#0) ← (const byte) CYAN#0 [ ] ( main:10::render_init:15 [ ] ) always clobbers reg byte a +Statement [366] *((const byte*) BGCOL4#0) ← (const byte) GREY#0 [ ] ( main:10::render_init:15 [ ] ) always clobbers reg byte a +Statement [371] (byte~) render_init::$11 ← (byte) render_init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ render_init::i#2 render_init::li#2 render_init::$11 ] ( main:10::render_init:15 [ render_init::i#2 render_init::li#2 render_init::$11 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:66 [ render_init::i#2 render_init::i#1 ] -Statement [368] *((const byte*[PLAYFIELD_LINES#0]) screen_lines#0 + (byte~) render_init::$11) ← (byte*) render_init::li#2 [ render_init::i#2 render_init::li#2 ] ( main:10::render_init:15 [ render_init::i#2 render_init::li#2 ] ) always clobbers reg byte a -Statement [369] (byte*) render_init::li#1 ← (byte*) render_init::li#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ render_init::i#2 render_init::li#1 ] ( main:10::render_init:15 [ render_init::i#2 render_init::li#1 ] ) always clobbers reg byte a -Statement [374] (byte*~) render_init::$18 ← (byte*) render_init::line#4 + (byte) render_init::c#2 [ render_init::line#4 render_init::l#4 render_init::c#2 render_init::$18 ] ( main:10::render_init:15 [ render_init::line#4 render_init::l#4 render_init::c#2 render_init::$18 ] ) always clobbers reg byte a +Statement [372] *((const byte*[PLAYFIELD_LINES#0]) screen_lines#0 + (byte~) render_init::$11) ← (byte*) render_init::li#2 [ render_init::i#2 render_init::li#2 ] ( main:10::render_init:15 [ render_init::i#2 render_init::li#2 ] ) always clobbers reg byte a +Statement [373] (byte*) render_init::li#1 ← (byte*) render_init::li#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ render_init::i#2 render_init::li#1 ] ( main:10::render_init:15 [ render_init::i#2 render_init::li#1 ] ) always clobbers reg byte a +Statement [378] (byte*~) render_init::$18 ← (byte*) render_init::line#4 + (byte) render_init::c#2 [ render_init::line#4 render_init::l#4 render_init::c#2 render_init::$18 ] ( main:10::render_init:15 [ render_init::line#4 render_init::l#4 render_init::c#2 render_init::$18 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:71 [ render_init::l#4 render_init::l#1 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:72 [ render_init::c#2 render_init::c#1 ] -Statement [375] *((byte*~) render_init::$18) ← (const byte) WHITE#0 [ render_init::line#4 render_init::l#4 render_init::c#2 ] ( main:10::render_init:15 [ render_init::line#4 render_init::l#4 render_init::c#2 ] ) always clobbers reg byte a reg byte y +Statement [379] *((byte*~) render_init::$18) ← (const byte) WHITE#0 [ render_init::line#4 render_init::l#4 render_init::c#2 ] ( main:10::render_init:15 [ render_init::line#4 render_init::l#4 render_init::c#2 ] ) always clobbers reg byte a reg byte y Removing always clobbered register reg byte y as potential for zp ZP_BYTE:71 [ render_init::l#4 render_init::l#1 ] Removing always clobbered register reg byte y as potential for zp ZP_BYTE:72 [ render_init::c#2 render_init::c#1 ] -Statement [378] (byte*) render_init::line#1 ← (byte*) render_init::line#4 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ render_init::l#4 render_init::line#1 ] ( main:10::render_init:15 [ render_init::l#4 render_init::line#1 ] ) always clobbers reg byte a -Statement [385] *((byte*) render_screen_original::screen#4) ← (const byte) render_screen_original::SPACE#0 [ render_screen_original::orig#4 render_screen_original::y#6 render_screen_original::screen#4 render_screen_original::x#4 ] ( main:10::render_init:15::render_screen_original:365 [ render_screen_original::orig#4 render_screen_original::y#6 render_screen_original::screen#4 render_screen_original::x#4 ] ) always clobbers reg byte a reg byte y +Statement [382] (byte*) render_init::line#1 ← (byte*) render_init::line#4 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ render_init::l#4 render_init::line#1 ] ( main:10::render_init:15 [ render_init::l#4 render_init::line#1 ] ) always clobbers reg byte a +Statement [389] *((byte*) render_screen_original::screen#4) ← (const byte) render_screen_original::SPACE#0 [ render_screen_original::orig#4 render_screen_original::y#6 render_screen_original::screen#4 render_screen_original::x#4 ] ( main:10::render_init:15::render_screen_original:369 [ render_screen_original::orig#4 render_screen_original::y#6 render_screen_original::screen#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:73 [ render_screen_original::y#6 render_screen_original::y#1 ] Removing always clobbered register reg byte y as potential for zp ZP_BYTE:73 [ render_screen_original::y#6 render_screen_original::y#1 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:78 [ 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:78 [ 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 [390] (byte/signed word/word/dword/signed dword~) render_screen_original::$3 ← *((byte*) render_screen_original::orig#2) + (byte/signed byte/word/signed word/dword/signed dword) 1 [ render_screen_original::y#6 render_screen_original::orig#2 render_screen_original::screen#5 render_screen_original::x#5 render_screen_original::$3 ] ( main:10::render_init:15::render_screen_original:365 [ render_screen_original::y#6 render_screen_original::orig#2 render_screen_original::screen#5 render_screen_original::x#5 render_screen_original::$3 ] ) always clobbers reg byte a reg byte y -Statement [391] *((byte*) render_screen_original::screen#5) ← (byte/signed word/word/dword/signed dword~) render_screen_original::$3 [ render_screen_original::y#6 render_screen_original::orig#2 render_screen_original::screen#5 render_screen_original::x#5 ] ( main:10::render_init:15::render_screen_original:365 [ render_screen_original::y#6 render_screen_original::orig#2 render_screen_original::screen#5 render_screen_original::x#5 ] ) always clobbers reg byte y -Statement [397] *((byte*) render_screen_original::screen#6) ← (const byte) render_screen_original::SPACE#0 [ render_screen_original::y#6 render_screen_original::orig#1 render_screen_original::screen#6 render_screen_original::x#6 ] ( main:10::render_init:15::render_screen_original:365 [ render_screen_original::y#6 render_screen_original::orig#1 render_screen_original::screen#6 render_screen_original::x#6 ] ) always clobbers reg byte a reg byte y -Statement [406] *((byte*) fill::addr#2) ← (const byte) DARK_GREY#0 [ fill::addr#2 ] ( main:10::render_init:15::fill:363 [ fill::addr#2 ] ) always clobbers reg byte a reg byte y -Statement [408] if((byte*) fill::addr#1!=(const byte*) fill::end#0) goto fill::@1 [ fill::addr#1 ] ( main:10::render_init:15::fill:363 [ fill::addr#1 ] ) always clobbers reg byte a -Statement [410] *((const word*) SID_VOICE3_FREQ#0) ← (word/dword/signed dword) 65535 [ ] ( main:10::sid_rnd_init:13 [ ] ) always clobbers reg byte a -Statement [411] *((const byte*) SID_VOICE3_CONTROL#0) ← (const byte) SID_CONTROL_NOISE#0 [ ] ( main:10::sid_rnd_init:13 [ ] ) always clobbers reg byte a -Statement [413] *((const byte*) BORDERCOL#0) ← (const byte) DARK_GREY#0 [ irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 irq_cnt#0 ] ( [ irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 irq_cnt#0 ] ) always clobbers reg byte a -Statement [419] if(*((const byte*) RASTER#0)!=(byte) irq_sprite_ypos#0) goto irq::@1 [ irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 irq_cnt#0 ] ( [ irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 irq_cnt#0 ] ) always clobbers reg byte a -Statement [427] (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 [428] if((byte) irq_cnt#1==(byte/signed byte/word/signed word/dword/signed dword) 10) goto irq::@2 [ 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 [429] (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 [430] (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 [431] (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 [434] (byte~) irq::$3 ← (byte) irq::raster_next#0 & (byte/signed byte/word/signed word/dword/signed dword) 7 [ irq::raster_next#0 irq::$3 ] ( [ irq::raster_next#0 irq::$3 ] ) always clobbers reg byte a +Statement [394] (byte/signed word/word/dword/signed dword~) render_screen_original::$3 ← *((byte*) render_screen_original::orig#2) + (byte/signed byte/word/signed word/dword/signed dword) 1 [ render_screen_original::y#6 render_screen_original::orig#2 render_screen_original::screen#5 render_screen_original::x#5 render_screen_original::$3 ] ( main:10::render_init:15::render_screen_original:369 [ render_screen_original::y#6 render_screen_original::orig#2 render_screen_original::screen#5 render_screen_original::x#5 render_screen_original::$3 ] ) always clobbers reg byte a reg byte y +Statement [395] *((byte*) render_screen_original::screen#5) ← (byte/signed word/word/dword/signed dword~) render_screen_original::$3 [ render_screen_original::y#6 render_screen_original::orig#2 render_screen_original::screen#5 render_screen_original::x#5 ] ( main:10::render_init:15::render_screen_original:369 [ render_screen_original::y#6 render_screen_original::orig#2 render_screen_original::screen#5 render_screen_original::x#5 ] ) always clobbers reg byte y +Statement [401] *((byte*) render_screen_original::screen#6) ← (const byte) render_screen_original::SPACE#0 [ render_screen_original::y#6 render_screen_original::orig#1 render_screen_original::screen#6 render_screen_original::x#6 ] ( main:10::render_init:15::render_screen_original:369 [ render_screen_original::y#6 render_screen_original::orig#1 render_screen_original::screen#6 render_screen_original::x#6 ] ) always clobbers reg byte a reg byte y +Statement [410] *((byte*) fill::addr#2) ← (const byte) DARK_GREY#0 [ fill::addr#2 ] ( main:10::render_init:15::fill:367 [ fill::addr#2 ] ) always clobbers reg byte a reg byte y +Statement [412] if((byte*) fill::addr#1!=(const byte*) fill::end#0) goto fill::@1 [ fill::addr#1 ] ( main:10::render_init:15::fill:367 [ fill::addr#1 ] ) always clobbers reg byte a +Statement [414] *((const word*) SID_VOICE3_FREQ#0) ← (word/dword/signed dword) 65535 [ ] ( main:10::sid_rnd_init:13 [ ] ) always clobbers reg byte a +Statement [415] *((const byte*) SID_VOICE3_CONTROL#0) ← (const byte) SID_CONTROL_NOISE#0 [ ] ( main:10::sid_rnd_init:13 [ ] ) always clobbers reg byte a +Statement [417] *((const byte*) BORDERCOL#0) ← (const byte) DARK_GREY#0 [ irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 irq_cnt#0 ] ( [ irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 irq_cnt#0 ] ) always clobbers reg byte a +Statement [423] if(*((const byte*) RASTER#0)!=(byte) irq_sprite_ypos#0) goto irq::@1 [ irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 irq_cnt#0 ] ( [ irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 irq_cnt#0 ] ) always clobbers reg byte a +Statement [431] (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 [432] if((byte) irq_cnt#1==(byte/signed byte/word/signed word/dword/signed dword) 10) goto irq::@2 [ 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 [433] (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 [434] (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 [435] (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 [438] (byte~) irq::$3 ← (byte) irq::raster_next#0 & (byte/signed byte/word/signed word/dword/signed dword) 7 [ irq::raster_next#0 irq::$3 ] ( [ irq::raster_next#0 irq::$3 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:82 [ irq::raster_next#2 irq::raster_next#0 irq::raster_next#1 ] -Statement [439] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0 [ ] ( [ ] ) always clobbers reg byte a -Statement [440] *((const byte*) BORDERCOL#0) ← (const byte) BLACK#0 [ ] ( [ ] ) always clobbers reg byte a -Statement [441] return [ ] ( [ ] ) always clobbers reg byte a reg byte x reg byte y -Statement [442] (byte) irq_cnt#13 ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( [ ] ) always clobbers reg byte a -Statement [443] (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 [444] (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 [446] (byte) irq_sprite_ptr#1 ← (const byte) irq::toSpritePtr2_return#0 [ irq_raster_next#1 ] ( [ irq_raster_next#1 ] ) always clobbers reg byte a +Statement [443] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0 [ ] ( [ ] ) always clobbers reg byte a +Statement [444] *((const byte*) BORDERCOL#0) ← (const byte) BLACK#0 [ ] ( [ ] ) always clobbers reg byte a +Statement [445] return [ ] ( [ ] ) always clobbers reg byte a reg byte x reg byte y +Statement [446] (byte) irq_cnt#13 ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( [ ] ) always clobbers reg byte a +Statement [447] (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 [448] (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 [450] (byte) irq_sprite_ptr#1 ← (const byte) irq::toSpritePtr2_return#0 [ irq_raster_next#1 ] ( [ irq_raster_next#1 ] ) always clobbers reg byte a Statement [4] (byte) irq_raster_next#0 ← (const byte) IRQ_RASTER_FIRST#0 [ ] ( ) always clobbers reg byte a Statement [5] (byte) irq_sprite_ypos#0 ← (byte/signed byte/word/signed word/dword/signed dword) 50 [ ] ( ) always clobbers reg byte a Statement [7] (byte) irq_sprite_ptr#0 ← (const byte) toSpritePtr1_return#0 [ ] ( ) always clobbers reg byte a Statement [8] (byte) irq_cnt#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( ) always clobbers reg byte a -Statement [26] (byte*~) current_piece_gfx#95 ← (byte*) current_piece_gfx#17 [ current_piece_gfx#95 current_piece_gfx#17 current_piece_char#13 play_spawn_current::$3 ] ( main:10 [ current_piece_gfx#95 current_piece_gfx#17 current_piece_char#13 play_spawn_current::$3 ] ) always clobbers reg byte a -Statement [29] (byte*~) current_piece#72 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) [ current_piece_gfx#17 current_piece_char#13 current_piece#72 ] ( main:10 [ current_piece_gfx#17 current_piece_char#13 current_piece#72 ] ) always clobbers reg byte a -Statement [31] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@4 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 keyboard_events_size#19 current_movedown_counter#12 ] ( main:10 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 keyboard_events_size#19 current_movedown_counter#12 ] ) always clobbers reg byte a -Statement [32] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 254) goto main::@7 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 keyboard_events_size#19 current_movedown_counter#12 ] ( main:10 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 keyboard_events_size#19 current_movedown_counter#12 ] ) always clobbers reg byte a -Statement [43] (byte) main::render#1 ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte~) main::$12 [ current_piece#10 current_ypos#14 current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_orientation#14 current_piece_gfx#14 current_xpos#16 ] ( main:10 [ current_piece#10 current_ypos#14 current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_orientation#14 current_piece_gfx#14 current_xpos#16 ] ) always clobbers reg byte a -Statement [48] (byte) main::render#2 ← (byte) main::render#1 + (byte~) main::$13 [ current_piece#10 current_xpos#20 current_ypos#14 current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#2 current_orientation#14 current_piece_gfx#14 ] ( main:10 [ current_piece#10 current_xpos#20 current_ypos#14 current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#2 current_orientation#14 current_piece_gfx#14 ] ) always clobbers reg byte a -Statement [53] (byte) main::render#3 ← (byte) main::render#2 + (byte~) main::$14 [ current_piece#10 current_orientation#19 current_piece_gfx#15 current_xpos#20 current_ypos#14 current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::render#3 ] ( main:10 [ current_piece#10 current_orientation#19 current_piece_gfx#15 current_xpos#20 current_ypos#14 current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::render#3 ] ) always clobbers reg byte a -Statement [59] (byte*~) current_piece_gfx#96 ← (byte*) current_piece_gfx#15 [ current_piece#10 current_orientation#19 current_piece_gfx#15 current_xpos#20 current_ypos#14 current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 current_ypos#78 current_xpos#104 current_piece_gfx#96 ] ( main:10 [ current_piece#10 current_orientation#19 current_piece_gfx#15 current_xpos#20 current_ypos#14 current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 current_ypos#78 current_xpos#104 current_piece_gfx#96 ] ) always clobbers reg byte a -Statement [64] (byte) render_current::ypos2#0 ← (byte) current_ypos#10 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ current_xpos#48 current_piece_gfx#53 current_piece_char#63 render_current::ypos2#0 ] ( main:10::render_current:28 [ current_piece_gfx#17 current_piece_char#13 play_spawn_current::$3 current_xpos#48 current_piece_gfx#53 current_piece_char#63 render_current::ypos2#0 ] main:10::render_current:61 [ current_piece#10 current_orientation#19 current_piece_gfx#15 current_xpos#20 current_ypos#14 current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 current_xpos#48 current_piece_gfx#53 current_piece_char#63 render_current::ypos2#0 ] ) always clobbers reg byte a -Statement [66] if((byte) render_current::ypos2#2>(byte/signed byte/word/signed word/dword/signed dword) 2) goto render_current::@13 [ current_xpos#48 current_piece_gfx#53 current_piece_char#63 render_current::ypos2#2 render_current::i#3 render_current::l#4 ] ( main:10::render_current:28 [ current_piece_gfx#17 current_piece_char#13 play_spawn_current::$3 current_xpos#48 current_piece_gfx#53 current_piece_char#63 render_current::ypos2#2 render_current::i#3 render_current::l#4 ] main:10::render_current:61 [ current_piece#10 current_orientation#19 current_piece_gfx#15 current_xpos#20 current_ypos#14 current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 current_xpos#48 current_piece_gfx#53 current_piece_char#63 render_current::ypos2#2 render_current::i#3 render_current::l#4 ] ) always clobbers reg byte a -Statement [67] (byte) render_current::i#1 ← (byte) render_current::i#3 + (byte/signed byte/word/signed word/dword/signed dword) 4 [ current_xpos#48 current_piece_gfx#53 current_piece_char#63 render_current::ypos2#2 render_current::l#4 render_current::i#1 ] ( main:10::render_current:28 [ current_piece_gfx#17 current_piece_char#13 play_spawn_current::$3 current_xpos#48 current_piece_gfx#53 current_piece_char#63 render_current::ypos2#2 render_current::l#4 render_current::i#1 ] main:10::render_current:61 [ current_piece#10 current_orientation#19 current_piece_gfx#15 current_xpos#20 current_ypos#14 current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 current_xpos#48 current_piece_gfx#53 current_piece_char#63 render_current::ypos2#2 render_current::l#4 render_current::i#1 ] ) always clobbers reg byte a -Statement [74] (byte*) render_current::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) screen_lines#0 + (byte) render_current::ypos2#2) [ current_xpos#48 current_piece_gfx#53 current_piece_char#63 render_current::ypos2#2 render_current::i#3 render_current::l#4 render_current::screen_line#0 ] ( main:10::render_current:28 [ current_piece_gfx#17 current_piece_char#13 play_spawn_current::$3 current_xpos#48 current_piece_gfx#53 current_piece_char#63 render_current::ypos2#2 render_current::i#3 render_current::l#4 render_current::screen_line#0 ] main:10::render_current:61 [ current_piece#10 current_orientation#19 current_piece_gfx#15 current_xpos#20 current_ypos#14 current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 current_xpos#48 current_piece_gfx#53 current_piece_char#63 render_current::ypos2#2 render_current::i#3 render_current::l#4 render_current::screen_line#0 ] ) always clobbers reg byte a -Statement [77] (byte) render_current::current_cell#0 ← *((byte*) current_piece_gfx#53 + (byte) render_current::i#4) [ current_xpos#48 current_piece_gfx#53 current_piece_char#63 render_current::ypos2#2 render_current::l#4 render_current::screen_line#0 render_current::i#4 render_current::xpos#2 render_current::c#2 render_current::current_cell#0 ] ( main:10::render_current:28 [ current_piece_gfx#17 current_piece_char#13 play_spawn_current::$3 current_xpos#48 current_piece_gfx#53 current_piece_char#63 render_current::ypos2#2 render_current::l#4 render_current::screen_line#0 render_current::i#4 render_current::xpos#2 render_current::c#2 render_current::current_cell#0 ] main:10::render_current:61 [ current_piece#10 current_orientation#19 current_piece_gfx#15 current_xpos#20 current_ypos#14 current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 current_xpos#48 current_piece_gfx#53 current_piece_char#63 render_current::ypos2#2 render_current::l#4 render_current::screen_line#0 render_current::i#4 render_current::xpos#2 render_current::c#2 render_current::current_cell#0 ] ) always clobbers reg byte a -Statement [81] *((byte*) render_current::screen_line#0 + (byte) render_current::xpos#2) ← (byte) current_piece_char#63 [ current_xpos#48 current_piece_gfx#53 current_piece_char#63 render_current::ypos2#2 render_current::l#4 render_current::i#10 render_current::screen_line#0 render_current::xpos#2 render_current::c#2 ] ( main:10::render_current:28 [ current_piece_gfx#17 current_piece_char#13 play_spawn_current::$3 current_xpos#48 current_piece_gfx#53 current_piece_char#63 render_current::ypos2#2 render_current::l#4 render_current::i#10 render_current::screen_line#0 render_current::xpos#2 render_current::c#2 ] main:10::render_current:61 [ current_piece#10 current_orientation#19 current_piece_gfx#15 current_xpos#20 current_ypos#14 current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 current_xpos#48 current_piece_gfx#53 current_piece_char#63 render_current::ypos2#2 render_current::l#4 render_current::i#10 render_current::screen_line#0 render_current::xpos#2 render_current::c#2 ] ) always clobbers reg byte a -Statement [87] (byte~) render_playfield::$2 ← (byte) render_playfield::l#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ render_playfield::l#2 render_playfield::i#3 render_playfield::$2 ] ( main:10::render_playfield:25 [ current_piece_gfx#17 current_piece_char#13 play_spawn_current::$3 render_playfield::l#2 render_playfield::i#3 render_playfield::$2 ] main:10::render_playfield:56 [ current_piece#10 current_orientation#19 current_piece_gfx#15 current_xpos#20 current_ypos#14 current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 render_playfield::l#2 render_playfield::i#3 render_playfield::$2 ] ) always clobbers reg byte a -Statement [88] (byte*) render_playfield::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) screen_lines#0 + (byte~) render_playfield::$2) [ render_playfield::l#2 render_playfield::i#3 render_playfield::screen_line#0 ] ( main:10::render_playfield:25 [ current_piece_gfx#17 current_piece_char#13 play_spawn_current::$3 render_playfield::l#2 render_playfield::i#3 render_playfield::screen_line#0 ] main:10::render_playfield:56 [ current_piece#10 current_orientation#19 current_piece_gfx#15 current_xpos#20 current_ypos#14 current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 render_playfield::l#2 render_playfield::i#3 render_playfield::screen_line#0 ] ) always clobbers reg byte a -Statement [90] *((byte*) render_playfield::screen_line#2) ← *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) render_playfield::i#2) [ render_playfield::l#2 render_playfield::i#2 render_playfield::screen_line#2 render_playfield::c#2 ] ( main:10::render_playfield:25 [ current_piece_gfx#17 current_piece_char#13 play_spawn_current::$3 render_playfield::l#2 render_playfield::i#2 render_playfield::screen_line#2 render_playfield::c#2 ] main:10::render_playfield:56 [ current_piece#10 current_orientation#19 current_piece_gfx#15 current_xpos#20 current_ypos#14 current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 render_playfield::l#2 render_playfield::i#2 render_playfield::screen_line#2 render_playfield::c#2 ] ) always clobbers reg byte a reg byte y -Statement [102] (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 ← (byte) current_orientation#14 + (byte/signed byte/word/signed word/dword/signed dword) 16 [ current_piece#10 current_xpos#20 current_ypos#14 current_orientation#14 current_piece_gfx#14 play_move_rotate::$2 ] ( main:10::play_move_rotate:50 [ current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::render#2 current_piece#10 current_xpos#20 current_ypos#14 current_orientation#14 current_piece_gfx#14 play_move_rotate::$2 ] ) always clobbers reg byte a -Statement [103] (byte) play_move_rotate::orientation#2 ← (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 & (byte/signed byte/word/signed word/dword/signed dword) 63 [ current_piece#10 current_xpos#20 current_ypos#14 current_orientation#14 current_piece_gfx#14 play_move_rotate::orientation#2 ] ( main:10::play_move_rotate:50 [ current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::render#2 current_piece#10 current_xpos#20 current_ypos#14 current_orientation#14 current_piece_gfx#14 play_move_rotate::orientation#2 ] ) always clobbers reg byte a -Statement [108] (byte*~) current_piece#76 ← (byte*) current_piece#10 [ current_piece#10 current_xpos#20 current_ypos#14 current_orientation#14 current_piece_gfx#14 play_move_rotate::orientation#3 play_collision::xpos#3 play_collision::ypos#3 play_collision::orientation#3 current_piece#76 ] ( main:10::play_move_rotate:50 [ current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::render#2 current_piece#10 current_xpos#20 current_ypos#14 current_orientation#14 current_piece_gfx#14 play_move_rotate::orientation#3 play_collision::xpos#3 play_collision::ypos#3 play_collision::orientation#3 current_piece#76 ] ) always clobbers reg byte a -Statement [114] (byte*) current_piece_gfx#4 ← (byte*) current_piece#10 + (byte) current_orientation#4 [ current_piece#10 current_xpos#20 current_ypos#14 current_orientation#4 current_piece_gfx#4 ] ( main:10::play_move_rotate:50 [ current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::render#2 current_piece#10 current_xpos#20 current_ypos#14 current_orientation#4 current_piece_gfx#4 ] ) always clobbers reg byte a -Statement [115] (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 ← (byte) current_orientation#14 - (byte/signed byte/word/signed word/dword/signed dword) 16 [ current_piece#10 current_xpos#20 current_ypos#14 current_orientation#14 current_piece_gfx#14 play_move_rotate::$4 ] ( main:10::play_move_rotate:50 [ current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::render#2 current_piece#10 current_xpos#20 current_ypos#14 current_orientation#14 current_piece_gfx#14 play_move_rotate::$4 ] ) always clobbers reg byte a -Statement [116] (byte) play_move_rotate::orientation#1 ← (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 & (byte/signed byte/word/signed word/dword/signed dword) 63 [ current_piece#10 current_xpos#20 current_ypos#14 current_orientation#14 current_piece_gfx#14 play_move_rotate::orientation#1 ] ( main:10::play_move_rotate:50 [ current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::render#2 current_piece#10 current_xpos#20 current_ypos#14 current_orientation#14 current_piece_gfx#14 play_move_rotate::orientation#1 ] ) always clobbers reg byte a -Statement [118] (byte*) play_collision::piece_gfx#0 ← (byte*) current_piece#12 + (byte) play_collision::orientation#4 [ play_collision::ypos#4 play_collision::xpos#5 play_collision::piece_gfx#0 ] ( main:10::play_move_rotate:50::play_collision:109 [ current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::render#2 current_piece#10 current_xpos#20 current_ypos#14 current_orientation#14 current_piece_gfx#14 play_move_rotate::orientation#3 play_collision::ypos#4 play_collision::xpos#5 play_collision::piece_gfx#0 ] main:10::play_move_leftright:45::play_collision:147 [ current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_piece_gfx#14 current_piece#10 current_ypos#14 current_orientation#14 current_xpos#16 play_collision::ypos#4 play_collision::xpos#5 play_collision::piece_gfx#0 ] main:10::play_move_leftright:45::play_collision:158 [ current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_piece_gfx#14 current_piece#10 current_ypos#14 current_orientation#14 current_xpos#16 play_collision::ypos#4 play_collision::xpos#5 play_collision::piece_gfx#0 ] main:10::play_move_down:40::play_collision:182 [ keyboard_events_size#16 main::key_event#0 current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 play_collision::ypos#4 play_collision::xpos#5 play_collision::piece_gfx#0 ] ) always clobbers reg byte a -Statement [119] (byte) play_collision::ypos2#0 ← (byte) play_collision::ypos#4 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#0 ] ( main:10::play_move_rotate:50::play_collision:109 [ current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::render#2 current_piece#10 current_xpos#20 current_ypos#14 current_orientation#14 current_piece_gfx#14 play_move_rotate::orientation#3 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#0 ] main:10::play_move_leftright:45::play_collision:147 [ current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_piece_gfx#14 current_piece#10 current_ypos#14 current_orientation#14 current_xpos#16 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#0 ] main:10::play_move_leftright:45::play_collision:158 [ current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_piece_gfx#14 current_piece#10 current_ypos#14 current_orientation#14 current_xpos#16 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#0 ] main:10::play_move_down:40::play_collision:182 [ keyboard_events_size#16 main::key_event#0 current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#0 ] ) always clobbers reg byte a -Statement [121] (byte*) play_collision::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) play_collision::ypos2#2) [ play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] ( main:10::play_move_rotate:50::play_collision:109 [ current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::render#2 current_piece#10 current_xpos#20 current_ypos#14 current_orientation#14 current_piece_gfx#14 play_move_rotate::orientation#3 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] main:10::play_move_leftright:45::play_collision:147 [ current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_piece_gfx#14 current_piece#10 current_ypos#14 current_orientation#14 current_xpos#16 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] main:10::play_move_leftright:45::play_collision:158 [ current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_piece_gfx#14 current_piece#10 current_ypos#14 current_orientation#14 current_xpos#16 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] main:10::play_move_down:40::play_collision:182 [ keyboard_events_size#16 main::key_event#0 current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] ) always clobbers reg byte a -Statement [125] if(*((byte*) play_collision::piece_gfx#0 + (byte) play_collision::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_collision::@3 [ play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] ( main:10::play_move_rotate:50::play_collision:109 [ current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::render#2 current_piece#10 current_xpos#20 current_ypos#14 current_orientation#14 current_piece_gfx#14 play_move_rotate::orientation#3 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:10::play_move_leftright:45::play_collision:147 [ current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_piece_gfx#14 current_piece#10 current_ypos#14 current_orientation#14 current_xpos#16 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:10::play_move_leftright:45::play_collision:158 [ current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_piece_gfx#14 current_piece#10 current_ypos#14 current_orientation#14 current_xpos#16 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:10::play_move_down:40::play_collision:182 [ keyboard_events_size#16 main::key_event#0 current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] ) always clobbers reg byte a -Statement [129] (byte~) play_collision::$7 ← (byte) play_collision::col#2 & (byte/word/signed word/dword/signed dword) 128 [ play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] ( main:10::play_move_rotate:50::play_collision:109 [ current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::render#2 current_piece#10 current_xpos#20 current_ypos#14 current_orientation#14 current_piece_gfx#14 play_move_rotate::orientation#3 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] main:10::play_move_leftright:45::play_collision:147 [ current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_piece_gfx#14 current_piece#10 current_ypos#14 current_orientation#14 current_xpos#16 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] main:10::play_move_leftright:45::play_collision:158 [ current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_piece_gfx#14 current_piece#10 current_ypos#14 current_orientation#14 current_xpos#16 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] main:10::play_move_down:40::play_collision:182 [ keyboard_events_size#16 main::key_event#0 current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] ) always clobbers reg byte a -Statement [132] if(*((byte*) play_collision::playfield_line#0 + (byte) play_collision::col#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_collision::@3 [ play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] ( main:10::play_move_rotate:50::play_collision:109 [ current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::render#2 current_piece#10 current_xpos#20 current_ypos#14 current_orientation#14 current_piece_gfx#14 play_move_rotate::orientation#3 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:10::play_move_leftright:45::play_collision:147 [ current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_piece_gfx#14 current_piece#10 current_ypos#14 current_orientation#14 current_xpos#16 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:10::play_move_leftright:45::play_collision:158 [ current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_piece_gfx#14 current_piece#10 current_ypos#14 current_orientation#14 current_xpos#16 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:10::play_move_down:40::play_collision:182 [ keyboard_events_size#16 main::key_event#0 current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] ) always clobbers reg byte a -Statement [146] (byte*~) current_piece#75 ← (byte*) current_piece#10 [ current_piece#10 current_ypos#14 current_orientation#14 current_piece#75 play_collision::orientation#2 play_collision::ypos#2 play_collision::xpos#2 current_xpos#16 ] ( main:10::play_move_leftright:45 [ current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_piece_gfx#14 current_piece#10 current_ypos#14 current_orientation#14 current_piece#75 play_collision::orientation#2 play_collision::ypos#2 play_collision::xpos#2 current_xpos#16 ] ) always clobbers reg byte a -Statement [157] (byte*~) current_piece#74 ← (byte*) current_piece#10 [ current_piece#10 current_ypos#14 current_orientation#14 current_piece#74 play_collision::orientation#1 play_collision::ypos#1 play_collision::xpos#1 current_xpos#16 ] ( main:10::play_move_leftright:45 [ current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_piece_gfx#14 current_piece#10 current_ypos#14 current_orientation#14 current_piece#74 play_collision::orientation#1 play_collision::ypos#1 play_collision::xpos#1 current_xpos#16 ] ) always clobbers reg byte a -Statement [181] (byte*~) current_piece#73 ← (byte*) current_piece#16 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 current_piece#73 play_collision::orientation#0 play_collision::ypos#0 play_collision::xpos#0 ] ( main:10::play_move_down:40 [ keyboard_events_size#16 main::key_event#0 current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 current_piece#73 play_collision::orientation#0 play_collision::ypos#0 play_collision::xpos#0 ] ) always clobbers reg byte a -Statement [192] (byte*~) current_piece#77 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) [ current_piece_gfx#17 current_piece_char#13 current_piece#77 ] ( main:10::play_move_down:40 [ keyboard_events_size#16 main::key_event#0 current_piece_gfx#17 current_piece_char#13 current_piece#77 ] ) always clobbers reg byte a -Statement [200] (byte~) play_spawn_current::$3 ← (byte) play_spawn_current::piece_idx#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ play_spawn_current::$3 play_spawn_current::piece_idx#2 ] ( main:10::play_spawn_current:23 [ play_spawn_current::$3 play_spawn_current::piece_idx#2 ] main:10::play_move_down:40::play_spawn_current:191 [ keyboard_events_size#16 main::key_event#0 play_spawn_current::$3 play_spawn_current::piece_idx#2 ] ) always clobbers reg byte a -Statement [201] (byte*) current_piece_gfx#17 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) + (byte/signed byte/word/signed word/dword/signed dword) 0 [ current_piece_gfx#17 play_spawn_current::$3 play_spawn_current::piece_idx#2 ] ( main:10::play_spawn_current:23 [ current_piece_gfx#17 play_spawn_current::$3 play_spawn_current::piece_idx#2 ] main:10::play_move_down:40::play_spawn_current:191 [ keyboard_events_size#16 main::key_event#0 current_piece_gfx#17 play_spawn_current::$3 play_spawn_current::piece_idx#2 ] ) always clobbers reg byte a -Statement [202] (byte) current_piece_char#13 ← *((const byte[]) PIECES_CHARS#0 + (byte) play_spawn_current::piece_idx#2) [ current_piece_gfx#17 current_piece_char#13 play_spawn_current::$3 ] ( main:10::play_spawn_current:23 [ current_piece_gfx#17 current_piece_char#13 play_spawn_current::$3 ] main:10::play_move_down:40::play_spawn_current:191 [ keyboard_events_size#16 main::key_event#0 current_piece_gfx#17 current_piece_char#13 play_spawn_current::$3 ] ) always clobbers reg byte a -Statement [208] (byte) play_spawn_current::piece_idx#1 ← (byte~) play_spawn_current::$1 & (byte/signed byte/word/signed word/dword/signed dword) 7 [ play_spawn_current::piece_idx#1 ] ( main:10::play_spawn_current:23 [ play_spawn_current::piece_idx#1 ] main:10::play_move_down:40::play_spawn_current:191 [ keyboard_events_size#16 main::key_event#0 play_spawn_current::piece_idx#1 ] ) always clobbers reg byte a -Statement [223] (byte) play_remove_lines::w#2 ← (byte) play_remove_lines::w#1 + (const byte) PLAYFIELD_COLS#0 [ play_remove_lines::y#8 play_remove_lines::r#1 play_remove_lines::w#2 ] ( main:10::play_move_down:40::play_remove_lines:189 [ 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 [230] *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) play_remove_lines::w#6) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ play_remove_lines::w#6 ] ( main:10::play_move_down:40::play_remove_lines:189 [ keyboard_events_size#16 main::key_event#0 play_remove_lines::w#6 ] ) always clobbers reg byte a -Statement [233] (byte) play_lock_current::ypos2#0 ← (byte) current_ypos#22 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ current_piece_gfx#10 current_xpos#11 current_piece_char#16 play_lock_current::ypos2#0 ] ( main:10::play_move_down:40::play_lock_current:187 [ keyboard_events_size#16 main::key_event#0 current_piece_gfx#10 current_xpos#11 current_piece_char#16 play_lock_current::ypos2#0 ] ) always clobbers reg byte a -Statement [235] (byte*) play_lock_current::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) play_lock_current::ypos2#2) [ current_piece_gfx#10 current_xpos#11 current_piece_char#16 play_lock_current::ypos2#2 play_lock_current::i#3 play_lock_current::l#6 play_lock_current::playfield_line#0 ] ( main:10::play_move_down:40::play_lock_current:187 [ keyboard_events_size#16 main::key_event#0 current_piece_gfx#10 current_xpos#11 current_piece_char#16 play_lock_current::ypos2#2 play_lock_current::i#3 play_lock_current::l#6 play_lock_current::playfield_line#0 ] ) always clobbers reg byte a -Statement [239] if(*((byte*) current_piece_gfx#10 + (byte) play_lock_current::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_lock_current::@3 [ current_piece_gfx#10 current_xpos#11 current_piece_char#16 play_lock_current::ypos2#2 play_lock_current::l#6 play_lock_current::playfield_line#0 play_lock_current::col#2 play_lock_current::c#2 play_lock_current::i#1 ] ( main:10::play_move_down:40::play_lock_current:187 [ keyboard_events_size#16 main::key_event#0 current_piece_gfx#10 current_xpos#11 current_piece_char#16 play_lock_current::ypos2#2 play_lock_current::l#6 play_lock_current::playfield_line#0 play_lock_current::col#2 play_lock_current::c#2 play_lock_current::i#1 ] ) always clobbers reg byte a -Statement [240] *((byte*) play_lock_current::playfield_line#0 + (byte) play_lock_current::col#2) ← (byte) current_piece_char#16 [ current_piece_gfx#10 current_xpos#11 current_piece_char#16 play_lock_current::ypos2#2 play_lock_current::l#6 play_lock_current::playfield_line#0 play_lock_current::col#2 play_lock_current::c#2 play_lock_current::i#1 ] ( main:10::play_move_down:40::play_lock_current:187 [ keyboard_events_size#16 main::key_event#0 current_piece_gfx#10 current_xpos#11 current_piece_char#16 play_lock_current::ypos2#2 play_lock_current::l#6 play_lock_current::playfield_line#0 play_lock_current::col#2 play_lock_current::c#2 play_lock_current::i#1 ] ) always clobbers reg byte a -Statement [251] (byte~) keyboard_event_pressed::$0 ← (byte) keyboard_event_pressed::keycode#5 >> (byte/signed byte/word/signed word/dword/signed dword) 3 [ keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] ( main:10::play_move_down:40::keyboard_event_pressed:167 [ keyboard_events_size#16 main::key_event#0 current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 current_movedown_counter#1 play_move_down::movedown#10 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] main:10::keyboard_event_scan:34::keyboard_event_pressed:273 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 current_movedown_counter#12 keyboard_events_size#13 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] main:10::keyboard_event_scan:34::keyboard_event_pressed:279 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 current_movedown_counter#12 keyboard_events_size#13 keyboard_modifiers#11 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] main:10::keyboard_event_scan:34::keyboard_event_pressed:285 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 current_movedown_counter#12 keyboard_events_size#13 keyboard_modifiers#12 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] main:10::keyboard_event_scan:34::keyboard_event_pressed:291 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 current_movedown_counter#12 keyboard_events_size#13 keyboard_modifiers#13 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] ) always clobbers reg byte a -Statement [253] (byte~) keyboard_event_pressed::$1 ← (byte) keyboard_event_pressed::keycode#5 & (byte/signed byte/word/signed word/dword/signed dword) 7 [ keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] ( main:10::play_move_down:40::keyboard_event_pressed:167 [ keyboard_events_size#16 main::key_event#0 current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 current_movedown_counter#1 play_move_down::movedown#10 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:10::keyboard_event_scan:34::keyboard_event_pressed:273 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 current_movedown_counter#12 keyboard_events_size#13 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:10::keyboard_event_scan:34::keyboard_event_pressed:279 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 current_movedown_counter#12 keyboard_events_size#13 keyboard_modifiers#11 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:10::keyboard_event_scan:34::keyboard_event_pressed:285 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 current_movedown_counter#12 keyboard_events_size#13 keyboard_modifiers#12 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:10::keyboard_event_scan:34::keyboard_event_pressed:291 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 current_movedown_counter#12 keyboard_events_size#13 keyboard_modifiers#13 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] ) always clobbers reg byte a -Statement [254] (byte) keyboard_event_pressed::return#11 ← (byte) keyboard_event_pressed::row_bits#0 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte~) keyboard_event_pressed::$1) [ keyboard_event_pressed::return#11 ] ( main:10::play_move_down:40::keyboard_event_pressed:167 [ keyboard_events_size#16 main::key_event#0 current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 current_movedown_counter#1 play_move_down::movedown#10 keyboard_event_pressed::return#11 ] main:10::keyboard_event_scan:34::keyboard_event_pressed:273 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 current_movedown_counter#12 keyboard_events_size#13 keyboard_event_pressed::return#11 ] main:10::keyboard_event_scan:34::keyboard_event_pressed:279 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 current_movedown_counter#12 keyboard_events_size#13 keyboard_modifiers#11 keyboard_event_pressed::return#11 ] main:10::keyboard_event_scan:34::keyboard_event_pressed:285 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 current_movedown_counter#12 keyboard_events_size#13 keyboard_modifiers#12 keyboard_event_pressed::return#11 ] main:10::keyboard_event_scan:34::keyboard_event_pressed:291 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 current_movedown_counter#12 keyboard_events_size#13 keyboard_modifiers#13 keyboard_event_pressed::return#11 ] ) always clobbers reg byte a -Statement [267] if((byte) keyboard_event_scan::row_scan#0!=*((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2)) goto keyboard_event_scan::@4 [ keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#29 keyboard_event_scan::row_scan#0 ] ( main:10::keyboard_event_scan:34 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 current_movedown_counter#12 keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#29 keyboard_event_scan::row_scan#0 ] ) always clobbers reg byte a -Statement [268] (byte) keyboard_event_scan::keycode#1 ← (byte) keyboard_event_scan::keycode#11 + (byte/signed byte/word/signed word/dword/signed dword) 8 [ keyboard_event_scan::row#2 keyboard_events_size#29 keyboard_event_scan::keycode#1 ] ( main:10::keyboard_event_scan:34 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 current_movedown_counter#12 keyboard_event_scan::row#2 keyboard_events_size#29 keyboard_event_scan::keycode#1 ] ) always clobbers reg byte a -Statement [283] (byte) keyboard_modifiers#3 ← (byte) keyboard_modifiers#11 | (const byte) KEY_MODIFIER_RSHIFT#0 [ keyboard_events_size#13 keyboard_modifiers#3 ] ( main:10::keyboard_event_scan:34 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 current_movedown_counter#12 keyboard_events_size#13 keyboard_modifiers#3 ] ) always clobbers reg byte a -Statement [289] (byte) keyboard_modifiers#4 ← (byte) keyboard_modifiers#12 | (const byte) KEY_MODIFIER_CTRL#0 [ keyboard_events_size#13 keyboard_modifiers#4 ] ( main:10::keyboard_event_scan:34 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 current_movedown_counter#12 keyboard_events_size#13 keyboard_modifiers#4 ] ) always clobbers reg byte a -Statement [295] (byte) keyboard_modifiers#5 ← (byte) keyboard_modifiers#13 | (const byte) KEY_MODIFIER_COMMODORE#0 [ keyboard_events_size#13 ] ( main:10::keyboard_event_scan:34 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 current_movedown_counter#12 keyboard_events_size#13 ] ) always clobbers reg byte a -Statement [298] (byte~) keyboard_event_scan::$3 ← (byte) keyboard_event_scan::row_scan#0 ^ *((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2) [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::$3 ] ( main:10::keyboard_event_scan:34 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 current_movedown_counter#12 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::$3 ] ) always clobbers reg byte a -Statement [299] (byte~) keyboard_event_scan::$4 ← (byte~) keyboard_event_scan::$3 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_event_scan::col#2) [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::$4 ] ( main:10::keyboard_event_scan:34 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 current_movedown_counter#12 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::$4 ] ) always clobbers reg byte a -Statement [302] (byte) keyboard_event_scan::event_type#0 ← (byte) keyboard_event_scan::row_scan#0 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_event_scan::col#2) [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::event_type#0 ] ( main:10::keyboard_event_scan:34 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 current_movedown_counter#12 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::event_type#0 ] ) always clobbers reg byte a -Statement [304] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte) keyboard_event_scan::keycode#10 [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 ] ( main:10::keyboard_event_scan:34 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 current_movedown_counter#12 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 ] ) always clobbers reg byte a -Statement [310] *((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2) ← (byte) keyboard_event_scan::row_scan#0 [ keyboard_event_scan::row#2 keyboard_event_scan::keycode#15 keyboard_events_size#30 ] ( main:10::keyboard_event_scan:34 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 current_movedown_counter#12 keyboard_event_scan::row#2 keyboard_event_scan::keycode#15 keyboard_events_size#30 ] ) always clobbers reg byte a -Statement [311] (byte/word/dword~) keyboard_event_scan::$11 ← (byte) keyboard_event_scan::keycode#10 | (byte/signed byte/word/signed word/dword/signed dword) 64 [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::$11 ] ( main:10::keyboard_event_scan:34 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 current_movedown_counter#12 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::$11 ] ) always clobbers reg byte a -Statement [314] *((const byte*) CIA1_PORT_A#0) ← *((const byte[8]) keyboard_matrix_row_bitmask#0 + (byte) keyboard_matrix_read::rowid#0) [ ] ( main:10::keyboard_event_scan:34::keyboard_matrix_read:264 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 current_movedown_counter#12 keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#29 ] ) always clobbers reg byte a -Statement [315] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) [ keyboard_matrix_read::return#0 ] ( main:10::keyboard_event_scan:34::keyboard_matrix_read:264 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 current_movedown_counter#12 keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#29 keyboard_matrix_read::return#0 ] ) always clobbers reg byte a -Statement [319] (byte~) play_init::$1 ← (byte) play_init::j#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ play_init::j#2 play_init::pli#2 play_init::idx#2 play_init::$1 ] ( main:10::play_init:21 [ play_init::j#2 play_init::pli#2 play_init::idx#2 play_init::$1 ] ) always clobbers reg byte a -Statement [320] *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte~) play_init::$1) ← (byte*) play_init::pli#2 [ play_init::j#2 play_init::pli#2 play_init::idx#2 ] ( main:10::play_init:21 [ play_init::j#2 play_init::pli#2 play_init::idx#2 ] ) always clobbers reg byte a -Statement [321] *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0 + (byte) play_init::j#2) ← (byte) play_init::idx#2 [ play_init::j#2 play_init::pli#2 play_init::idx#2 ] ( main:10::play_init:21 [ play_init::j#2 play_init::pli#2 play_init::idx#2 ] ) always clobbers reg byte a -Statement [322] (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:10::play_init:21 [ play_init::j#2 play_init::idx#2 play_init::pli#1 ] ) always clobbers reg byte a -Statement [323] (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:10::play_init:21 [ play_init::j#2 play_init::pli#1 play_init::idx#1 ] ) always clobbers reg byte a -Statement [326] *((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:10::play_init:21 [ ] ) always clobbers reg byte a -Statement [329] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0 [ ] ( main:10::sprites_irq_init:19 [ ] ) always clobbers reg byte a +Statement [28] (byte*~) current_piece_gfx#95 ← (byte*) current_piece_gfx#17 [ current_ypos#79 current_ypos#19 current_xpos#105 current_xpos#24 current_piece_gfx#95 current_piece_gfx#17 current_piece_char#13 play_spawn_current::$3 ] ( main:10 [ current_ypos#79 current_ypos#19 current_xpos#105 current_xpos#24 current_piece_gfx#95 current_piece_gfx#17 current_piece_char#13 play_spawn_current::$3 ] ) always clobbers reg byte a +Statement [31] (byte*~) current_piece#72 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) [ current_ypos#19 current_xpos#24 current_piece_gfx#17 current_piece_char#13 current_piece#72 ] ( main:10 [ current_ypos#19 current_xpos#24 current_piece_gfx#17 current_piece_char#13 current_piece#72 ] ) always clobbers reg byte a +Statement [33] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@4 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 keyboard_events_size#19 current_movedown_counter#12 ] ( main:10 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 keyboard_events_size#19 current_movedown_counter#12 ] ) always clobbers reg byte a +Statement [34] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 254) goto main::@7 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 keyboard_events_size#19 current_movedown_counter#12 ] ( main:10 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 keyboard_events_size#19 current_movedown_counter#12 ] ) always clobbers reg byte a +Statement [45] (byte) main::render#1 ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte~) main::$12 [ current_piece#10 current_ypos#14 current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_orientation#14 current_piece_gfx#14 current_xpos#16 ] ( main:10 [ current_piece#10 current_ypos#14 current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_orientation#14 current_piece_gfx#14 current_xpos#16 ] ) always clobbers reg byte a +Statement [50] (byte) main::render#2 ← (byte) main::render#1 + (byte~) main::$13 [ current_piece#10 current_xpos#20 current_ypos#14 current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#2 current_orientation#14 current_piece_gfx#14 ] ( main:10 [ current_piece#10 current_xpos#20 current_ypos#14 current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#2 current_orientation#14 current_piece_gfx#14 ] ) always clobbers reg byte a +Statement [55] (byte) main::render#3 ← (byte) main::render#2 + (byte~) main::$14 [ current_piece#10 current_orientation#19 current_piece_gfx#15 current_xpos#20 current_ypos#14 current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::render#3 ] ( main:10 [ current_piece#10 current_orientation#19 current_piece_gfx#15 current_xpos#20 current_ypos#14 current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::render#3 ] ) always clobbers reg byte a +Statement [61] (byte*~) current_piece_gfx#96 ← (byte*) current_piece_gfx#15 [ current_piece#10 current_orientation#19 current_piece_gfx#15 current_xpos#20 current_ypos#14 current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 current_ypos#80 current_xpos#106 current_piece_gfx#96 ] ( main:10 [ current_piece#10 current_orientation#19 current_piece_gfx#15 current_xpos#20 current_ypos#14 current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 current_ypos#80 current_xpos#106 current_piece_gfx#96 ] ) always clobbers reg byte a +Statement [66] (byte) render_current::ypos2#0 ← (byte) current_ypos#10 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ current_xpos#48 current_piece_gfx#53 current_piece_char#63 render_current::ypos2#0 ] ( main:10::render_current:30 [ current_ypos#19 current_xpos#24 current_piece_gfx#17 current_piece_char#13 play_spawn_current::$3 current_xpos#48 current_piece_gfx#53 current_piece_char#63 render_current::ypos2#0 ] main:10::render_current:63 [ current_piece#10 current_orientation#19 current_piece_gfx#15 current_xpos#20 current_ypos#14 current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 current_xpos#48 current_piece_gfx#53 current_piece_char#63 render_current::ypos2#0 ] ) always clobbers reg byte a +Statement [68] if((byte) render_current::ypos2#2>(byte/signed byte/word/signed word/dword/signed dword) 2) goto render_current::@13 [ current_xpos#48 current_piece_gfx#53 current_piece_char#63 render_current::ypos2#2 render_current::i#3 render_current::l#4 ] ( main:10::render_current:30 [ current_ypos#19 current_xpos#24 current_piece_gfx#17 current_piece_char#13 play_spawn_current::$3 current_xpos#48 current_piece_gfx#53 current_piece_char#63 render_current::ypos2#2 render_current::i#3 render_current::l#4 ] main:10::render_current:63 [ current_piece#10 current_orientation#19 current_piece_gfx#15 current_xpos#20 current_ypos#14 current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 current_xpos#48 current_piece_gfx#53 current_piece_char#63 render_current::ypos2#2 render_current::i#3 render_current::l#4 ] ) always clobbers reg byte a +Statement [69] (byte) render_current::i#1 ← (byte) render_current::i#3 + (byte/signed byte/word/signed word/dword/signed dword) 4 [ current_xpos#48 current_piece_gfx#53 current_piece_char#63 render_current::ypos2#2 render_current::l#4 render_current::i#1 ] ( main:10::render_current:30 [ current_ypos#19 current_xpos#24 current_piece_gfx#17 current_piece_char#13 play_spawn_current::$3 current_xpos#48 current_piece_gfx#53 current_piece_char#63 render_current::ypos2#2 render_current::l#4 render_current::i#1 ] main:10::render_current:63 [ current_piece#10 current_orientation#19 current_piece_gfx#15 current_xpos#20 current_ypos#14 current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 current_xpos#48 current_piece_gfx#53 current_piece_char#63 render_current::ypos2#2 render_current::l#4 render_current::i#1 ] ) always clobbers reg byte a +Statement [76] (byte*) render_current::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) screen_lines#0 + (byte) render_current::ypos2#2) [ current_xpos#48 current_piece_gfx#53 current_piece_char#63 render_current::ypos2#2 render_current::i#3 render_current::l#4 render_current::screen_line#0 ] ( main:10::render_current:30 [ current_ypos#19 current_xpos#24 current_piece_gfx#17 current_piece_char#13 play_spawn_current::$3 current_xpos#48 current_piece_gfx#53 current_piece_char#63 render_current::ypos2#2 render_current::i#3 render_current::l#4 render_current::screen_line#0 ] main:10::render_current:63 [ current_piece#10 current_orientation#19 current_piece_gfx#15 current_xpos#20 current_ypos#14 current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 current_xpos#48 current_piece_gfx#53 current_piece_char#63 render_current::ypos2#2 render_current::i#3 render_current::l#4 render_current::screen_line#0 ] ) always clobbers reg byte a +Statement [79] (byte) render_current::current_cell#0 ← *((byte*) current_piece_gfx#53 + (byte) render_current::i#4) [ current_xpos#48 current_piece_gfx#53 current_piece_char#63 render_current::ypos2#2 render_current::l#4 render_current::screen_line#0 render_current::i#4 render_current::xpos#2 render_current::c#2 render_current::current_cell#0 ] ( main:10::render_current:30 [ current_ypos#19 current_xpos#24 current_piece_gfx#17 current_piece_char#13 play_spawn_current::$3 current_xpos#48 current_piece_gfx#53 current_piece_char#63 render_current::ypos2#2 render_current::l#4 render_current::screen_line#0 render_current::i#4 render_current::xpos#2 render_current::c#2 render_current::current_cell#0 ] main:10::render_current:63 [ current_piece#10 current_orientation#19 current_piece_gfx#15 current_xpos#20 current_ypos#14 current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 current_xpos#48 current_piece_gfx#53 current_piece_char#63 render_current::ypos2#2 render_current::l#4 render_current::screen_line#0 render_current::i#4 render_current::xpos#2 render_current::c#2 render_current::current_cell#0 ] ) always clobbers reg byte a +Statement [83] *((byte*) render_current::screen_line#0 + (byte) render_current::xpos#2) ← (byte) current_piece_char#63 [ current_xpos#48 current_piece_gfx#53 current_piece_char#63 render_current::ypos2#2 render_current::l#4 render_current::i#10 render_current::screen_line#0 render_current::xpos#2 render_current::c#2 ] ( main:10::render_current:30 [ current_ypos#19 current_xpos#24 current_piece_gfx#17 current_piece_char#13 play_spawn_current::$3 current_xpos#48 current_piece_gfx#53 current_piece_char#63 render_current::ypos2#2 render_current::l#4 render_current::i#10 render_current::screen_line#0 render_current::xpos#2 render_current::c#2 ] main:10::render_current:63 [ current_piece#10 current_orientation#19 current_piece_gfx#15 current_xpos#20 current_ypos#14 current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 current_xpos#48 current_piece_gfx#53 current_piece_char#63 render_current::ypos2#2 render_current::l#4 render_current::i#10 render_current::screen_line#0 render_current::xpos#2 render_current::c#2 ] ) always clobbers reg byte a +Statement [89] (byte~) render_playfield::$2 ← (byte) render_playfield::l#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ render_playfield::l#2 render_playfield::i#3 render_playfield::$2 ] ( main:10::render_playfield:25 [ current_ypos#19 current_xpos#24 current_piece_gfx#17 current_piece_char#13 play_spawn_current::$3 render_playfield::l#2 render_playfield::i#3 render_playfield::$2 ] main:10::render_playfield:58 [ current_piece#10 current_orientation#19 current_piece_gfx#15 current_xpos#20 current_ypos#14 current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 render_playfield::l#2 render_playfield::i#3 render_playfield::$2 ] ) always clobbers reg byte a +Statement [90] (byte*) render_playfield::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) screen_lines#0 + (byte~) render_playfield::$2) [ render_playfield::l#2 render_playfield::i#3 render_playfield::screen_line#0 ] ( main:10::render_playfield:25 [ current_ypos#19 current_xpos#24 current_piece_gfx#17 current_piece_char#13 play_spawn_current::$3 render_playfield::l#2 render_playfield::i#3 render_playfield::screen_line#0 ] main:10::render_playfield:58 [ current_piece#10 current_orientation#19 current_piece_gfx#15 current_xpos#20 current_ypos#14 current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 render_playfield::l#2 render_playfield::i#3 render_playfield::screen_line#0 ] ) always clobbers reg byte a +Statement [92] *((byte*) render_playfield::screen_line#2) ← *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) render_playfield::i#2) [ render_playfield::l#2 render_playfield::i#2 render_playfield::screen_line#2 render_playfield::c#2 ] ( main:10::render_playfield:25 [ current_ypos#19 current_xpos#24 current_piece_gfx#17 current_piece_char#13 play_spawn_current::$3 render_playfield::l#2 render_playfield::i#2 render_playfield::screen_line#2 render_playfield::c#2 ] main:10::render_playfield:58 [ current_piece#10 current_orientation#19 current_piece_gfx#15 current_xpos#20 current_ypos#14 current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 render_playfield::l#2 render_playfield::i#2 render_playfield::screen_line#2 render_playfield::c#2 ] ) always clobbers reg byte a reg byte y +Statement [104] (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 ← (byte) current_orientation#14 + (byte/signed byte/word/signed word/dword/signed dword) 16 [ current_piece#10 current_xpos#20 current_ypos#14 current_orientation#14 current_piece_gfx#14 play_move_rotate::$2 ] ( main:10::play_move_rotate:52 [ current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::render#2 current_piece#10 current_xpos#20 current_ypos#14 current_orientation#14 current_piece_gfx#14 play_move_rotate::$2 ] ) always clobbers reg byte a +Statement [105] (byte) play_move_rotate::orientation#2 ← (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 & (byte/signed byte/word/signed word/dword/signed dword) 63 [ current_piece#10 current_xpos#20 current_ypos#14 current_orientation#14 current_piece_gfx#14 play_move_rotate::orientation#2 ] ( main:10::play_move_rotate:52 [ current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::render#2 current_piece#10 current_xpos#20 current_ypos#14 current_orientation#14 current_piece_gfx#14 play_move_rotate::orientation#2 ] ) always clobbers reg byte a +Statement [110] (byte*~) current_piece#76 ← (byte*) current_piece#10 [ current_piece#10 current_xpos#20 current_ypos#14 current_orientation#14 current_piece_gfx#14 play_move_rotate::orientation#3 play_collision::xpos#3 play_collision::ypos#3 play_collision::orientation#3 current_piece#76 ] ( main:10::play_move_rotate:52 [ current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::render#2 current_piece#10 current_xpos#20 current_ypos#14 current_orientation#14 current_piece_gfx#14 play_move_rotate::orientation#3 play_collision::xpos#3 play_collision::ypos#3 play_collision::orientation#3 current_piece#76 ] ) always clobbers reg byte a +Statement [116] (byte*) current_piece_gfx#4 ← (byte*) current_piece#10 + (byte) current_orientation#4 [ current_piece#10 current_xpos#20 current_ypos#14 current_orientation#4 current_piece_gfx#4 ] ( main:10::play_move_rotate:52 [ current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::render#2 current_piece#10 current_xpos#20 current_ypos#14 current_orientation#4 current_piece_gfx#4 ] ) always clobbers reg byte a +Statement [117] (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 ← (byte) current_orientation#14 - (byte/signed byte/word/signed word/dword/signed dword) 16 [ current_piece#10 current_xpos#20 current_ypos#14 current_orientation#14 current_piece_gfx#14 play_move_rotate::$4 ] ( main:10::play_move_rotate:52 [ current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::render#2 current_piece#10 current_xpos#20 current_ypos#14 current_orientation#14 current_piece_gfx#14 play_move_rotate::$4 ] ) always clobbers reg byte a +Statement [118] (byte) play_move_rotate::orientation#1 ← (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 & (byte/signed byte/word/signed word/dword/signed dword) 63 [ current_piece#10 current_xpos#20 current_ypos#14 current_orientation#14 current_piece_gfx#14 play_move_rotate::orientation#1 ] ( main:10::play_move_rotate:52 [ current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::render#2 current_piece#10 current_xpos#20 current_ypos#14 current_orientation#14 current_piece_gfx#14 play_move_rotate::orientation#1 ] ) always clobbers reg byte a +Statement [120] (byte*) play_collision::piece_gfx#0 ← (byte*) current_piece#12 + (byte) play_collision::orientation#4 [ play_collision::ypos#4 play_collision::xpos#5 play_collision::piece_gfx#0 ] ( main:10::play_move_rotate:52::play_collision:111 [ current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::render#2 current_piece#10 current_xpos#20 current_ypos#14 current_orientation#14 current_piece_gfx#14 play_move_rotate::orientation#3 play_collision::ypos#4 play_collision::xpos#5 play_collision::piece_gfx#0 ] main:10::play_move_leftright:47::play_collision:149 [ current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_piece_gfx#14 current_piece#10 current_ypos#14 current_orientation#14 current_xpos#16 play_collision::ypos#4 play_collision::xpos#5 play_collision::piece_gfx#0 ] main:10::play_move_leftright:47::play_collision:160 [ current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_piece_gfx#14 current_piece#10 current_ypos#14 current_orientation#14 current_xpos#16 play_collision::ypos#4 play_collision::xpos#5 play_collision::piece_gfx#0 ] main:10::play_move_down:42::play_collision:184 [ keyboard_events_size#16 main::key_event#0 current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 play_collision::ypos#4 play_collision::xpos#5 play_collision::piece_gfx#0 ] ) always clobbers reg byte a +Statement [121] (byte) play_collision::ypos2#0 ← (byte) play_collision::ypos#4 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#0 ] ( main:10::play_move_rotate:52::play_collision:111 [ current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::render#2 current_piece#10 current_xpos#20 current_ypos#14 current_orientation#14 current_piece_gfx#14 play_move_rotate::orientation#3 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#0 ] main:10::play_move_leftright:47::play_collision:149 [ current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_piece_gfx#14 current_piece#10 current_ypos#14 current_orientation#14 current_xpos#16 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#0 ] main:10::play_move_leftright:47::play_collision:160 [ current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_piece_gfx#14 current_piece#10 current_ypos#14 current_orientation#14 current_xpos#16 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#0 ] main:10::play_move_down:42::play_collision:184 [ keyboard_events_size#16 main::key_event#0 current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#0 ] ) always clobbers reg byte a +Statement [123] (byte*) play_collision::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) play_collision::ypos2#2) [ play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] ( main:10::play_move_rotate:52::play_collision:111 [ current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::render#2 current_piece#10 current_xpos#20 current_ypos#14 current_orientation#14 current_piece_gfx#14 play_move_rotate::orientation#3 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] main:10::play_move_leftright:47::play_collision:149 [ current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_piece_gfx#14 current_piece#10 current_ypos#14 current_orientation#14 current_xpos#16 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] main:10::play_move_leftright:47::play_collision:160 [ current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_piece_gfx#14 current_piece#10 current_ypos#14 current_orientation#14 current_xpos#16 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] main:10::play_move_down:42::play_collision:184 [ keyboard_events_size#16 main::key_event#0 current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] ) always clobbers reg byte a +Statement [127] if(*((byte*) play_collision::piece_gfx#0 + (byte) play_collision::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_collision::@3 [ play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] ( main:10::play_move_rotate:52::play_collision:111 [ current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::render#2 current_piece#10 current_xpos#20 current_ypos#14 current_orientation#14 current_piece_gfx#14 play_move_rotate::orientation#3 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:10::play_move_leftright:47::play_collision:149 [ current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_piece_gfx#14 current_piece#10 current_ypos#14 current_orientation#14 current_xpos#16 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:10::play_move_leftright:47::play_collision:160 [ current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_piece_gfx#14 current_piece#10 current_ypos#14 current_orientation#14 current_xpos#16 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:10::play_move_down:42::play_collision:184 [ keyboard_events_size#16 main::key_event#0 current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] ) always clobbers reg byte a +Statement [131] (byte~) play_collision::$7 ← (byte) play_collision::col#2 & (byte/word/signed word/dword/signed dword) 128 [ play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] ( main:10::play_move_rotate:52::play_collision:111 [ current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::render#2 current_piece#10 current_xpos#20 current_ypos#14 current_orientation#14 current_piece_gfx#14 play_move_rotate::orientation#3 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] main:10::play_move_leftright:47::play_collision:149 [ current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_piece_gfx#14 current_piece#10 current_ypos#14 current_orientation#14 current_xpos#16 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] main:10::play_move_leftright:47::play_collision:160 [ current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_piece_gfx#14 current_piece#10 current_ypos#14 current_orientation#14 current_xpos#16 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] main:10::play_move_down:42::play_collision:184 [ keyboard_events_size#16 main::key_event#0 current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] ) always clobbers reg byte a +Statement [134] if(*((byte*) play_collision::playfield_line#0 + (byte) play_collision::col#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_collision::@3 [ play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] ( main:10::play_move_rotate:52::play_collision:111 [ current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::render#2 current_piece#10 current_xpos#20 current_ypos#14 current_orientation#14 current_piece_gfx#14 play_move_rotate::orientation#3 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:10::play_move_leftright:47::play_collision:149 [ current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_piece_gfx#14 current_piece#10 current_ypos#14 current_orientation#14 current_xpos#16 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:10::play_move_leftright:47::play_collision:160 [ current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_piece_gfx#14 current_piece#10 current_ypos#14 current_orientation#14 current_xpos#16 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:10::play_move_down:42::play_collision:184 [ keyboard_events_size#16 main::key_event#0 current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] ) always clobbers reg byte a +Statement [148] (byte*~) current_piece#75 ← (byte*) current_piece#10 [ current_piece#10 current_ypos#14 current_orientation#14 current_piece#75 play_collision::orientation#2 play_collision::ypos#2 play_collision::xpos#2 current_xpos#16 ] ( main:10::play_move_leftright:47 [ current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_piece_gfx#14 current_piece#10 current_ypos#14 current_orientation#14 current_piece#75 play_collision::orientation#2 play_collision::ypos#2 play_collision::xpos#2 current_xpos#16 ] ) always clobbers reg byte a +Statement [159] (byte*~) current_piece#74 ← (byte*) current_piece#10 [ current_piece#10 current_ypos#14 current_orientation#14 current_piece#74 play_collision::orientation#1 play_collision::ypos#1 play_collision::xpos#1 current_xpos#16 ] ( main:10::play_move_leftright:47 [ current_piece_char#11 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#1 current_piece_gfx#14 current_piece#10 current_ypos#14 current_orientation#14 current_piece#74 play_collision::orientation#1 play_collision::ypos#1 play_collision::xpos#1 current_xpos#16 ] ) always clobbers reg byte a +Statement [183] (byte*~) current_piece#73 ← (byte*) current_piece#16 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 current_piece#73 play_collision::orientation#0 play_collision::ypos#0 play_collision::xpos#0 ] ( main:10::play_move_down:42 [ keyboard_events_size#16 main::key_event#0 current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 current_piece#73 play_collision::orientation#0 play_collision::ypos#0 play_collision::xpos#0 ] ) always clobbers reg byte a +Statement [194] (byte*~) current_piece#77 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) [ current_ypos#19 current_xpos#24 current_piece_gfx#17 current_piece_char#13 current_piece#77 ] ( main:10::play_move_down:42 [ keyboard_events_size#16 main::key_event#0 current_ypos#19 current_xpos#24 current_piece_gfx#17 current_piece_char#13 current_piece#77 ] ) always clobbers reg byte a +Statement [202] (byte~) play_spawn_current::$3 ← (byte) play_spawn_current::piece_idx#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ play_spawn_current::$3 play_spawn_current::piece_idx#2 ] ( main:10::play_spawn_current:23 [ play_spawn_current::$3 play_spawn_current::piece_idx#2 ] main:10::play_move_down:42::play_spawn_current:193 [ keyboard_events_size#16 main::key_event#0 play_spawn_current::$3 play_spawn_current::piece_idx#2 ] ) always clobbers reg byte a +Statement [203] (byte*) current_piece_gfx#17 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) + (byte/signed byte/word/signed word/dword/signed dword) 0 [ current_piece_gfx#17 play_spawn_current::$3 play_spawn_current::piece_idx#2 ] ( main:10::play_spawn_current:23 [ current_piece_gfx#17 play_spawn_current::$3 play_spawn_current::piece_idx#2 ] main:10::play_move_down:42::play_spawn_current:193 [ keyboard_events_size#16 main::key_event#0 current_piece_gfx#17 play_spawn_current::$3 play_spawn_current::piece_idx#2 ] ) always clobbers reg byte a +Statement [204] (byte) current_xpos#24 ← *((const byte[]) PIECES_START_X#0 + (byte) play_spawn_current::piece_idx#2) [ current_xpos#24 current_piece_gfx#17 play_spawn_current::$3 play_spawn_current::piece_idx#2 ] ( main:10::play_spawn_current:23 [ current_xpos#24 current_piece_gfx#17 play_spawn_current::$3 play_spawn_current::piece_idx#2 ] main:10::play_move_down:42::play_spawn_current:193 [ keyboard_events_size#16 main::key_event#0 current_xpos#24 current_piece_gfx#17 play_spawn_current::$3 play_spawn_current::piece_idx#2 ] ) always clobbers reg byte a +Statement [205] (byte) current_ypos#19 ← *((const byte[]) PIECES_START_Y#0 + (byte) play_spawn_current::piece_idx#2) [ current_ypos#19 current_xpos#24 current_piece_gfx#17 play_spawn_current::$3 play_spawn_current::piece_idx#2 ] ( main:10::play_spawn_current:23 [ current_ypos#19 current_xpos#24 current_piece_gfx#17 play_spawn_current::$3 play_spawn_current::piece_idx#2 ] main:10::play_move_down:42::play_spawn_current:193 [ keyboard_events_size#16 main::key_event#0 current_ypos#19 current_xpos#24 current_piece_gfx#17 play_spawn_current::$3 play_spawn_current::piece_idx#2 ] ) always clobbers reg byte a +Statement [206] (byte) current_piece_char#13 ← *((const byte[]) PIECES_CHARS#0 + (byte) play_spawn_current::piece_idx#2) [ current_ypos#19 current_xpos#24 current_piece_gfx#17 current_piece_char#13 play_spawn_current::$3 ] ( main:10::play_spawn_current:23 [ current_ypos#19 current_xpos#24 current_piece_gfx#17 current_piece_char#13 play_spawn_current::$3 ] main:10::play_move_down:42::play_spawn_current:193 [ keyboard_events_size#16 main::key_event#0 current_ypos#19 current_xpos#24 current_piece_gfx#17 current_piece_char#13 play_spawn_current::$3 ] ) always clobbers reg byte a +Statement [212] (byte) play_spawn_current::piece_idx#1 ← (byte~) play_spawn_current::$1 & (byte/signed byte/word/signed word/dword/signed dword) 7 [ play_spawn_current::piece_idx#1 ] ( main:10::play_spawn_current:23 [ play_spawn_current::piece_idx#1 ] main:10::play_move_down:42::play_spawn_current:193 [ keyboard_events_size#16 main::key_event#0 play_spawn_current::piece_idx#1 ] ) always clobbers reg byte a +Statement [227] (byte) play_remove_lines::w#2 ← (byte) play_remove_lines::w#1 + (const byte) PLAYFIELD_COLS#0 [ play_remove_lines::y#8 play_remove_lines::r#1 play_remove_lines::w#2 ] ( main:10::play_move_down:42::play_remove_lines:191 [ keyboard_events_size#16 main::key_event#0 play_remove_lines::y#8 play_remove_lines::r#1 play_remove_lines::w#2 ] ) always clobbers reg byte a +Statement [234] *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) play_remove_lines::w#6) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ play_remove_lines::w#6 ] ( main:10::play_move_down:42::play_remove_lines:191 [ keyboard_events_size#16 main::key_event#0 play_remove_lines::w#6 ] ) always clobbers reg byte a +Statement [237] (byte) play_lock_current::ypos2#0 ← (byte) current_ypos#22 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ current_piece_gfx#10 current_xpos#11 current_piece_char#16 play_lock_current::ypos2#0 ] ( main:10::play_move_down:42::play_lock_current:189 [ keyboard_events_size#16 main::key_event#0 current_piece_gfx#10 current_xpos#11 current_piece_char#16 play_lock_current::ypos2#0 ] ) always clobbers reg byte a +Statement [239] (byte*) play_lock_current::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) play_lock_current::ypos2#2) [ current_piece_gfx#10 current_xpos#11 current_piece_char#16 play_lock_current::ypos2#2 play_lock_current::i#3 play_lock_current::l#6 play_lock_current::playfield_line#0 ] ( main:10::play_move_down:42::play_lock_current:189 [ keyboard_events_size#16 main::key_event#0 current_piece_gfx#10 current_xpos#11 current_piece_char#16 play_lock_current::ypos2#2 play_lock_current::i#3 play_lock_current::l#6 play_lock_current::playfield_line#0 ] ) always clobbers reg byte a +Statement [243] if(*((byte*) current_piece_gfx#10 + (byte) play_lock_current::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_lock_current::@3 [ current_piece_gfx#10 current_xpos#11 current_piece_char#16 play_lock_current::ypos2#2 play_lock_current::l#6 play_lock_current::playfield_line#0 play_lock_current::col#2 play_lock_current::c#2 play_lock_current::i#1 ] ( main:10::play_move_down:42::play_lock_current:189 [ keyboard_events_size#16 main::key_event#0 current_piece_gfx#10 current_xpos#11 current_piece_char#16 play_lock_current::ypos2#2 play_lock_current::l#6 play_lock_current::playfield_line#0 play_lock_current::col#2 play_lock_current::c#2 play_lock_current::i#1 ] ) always clobbers reg byte a +Statement [244] *((byte*) play_lock_current::playfield_line#0 + (byte) play_lock_current::col#2) ← (byte) current_piece_char#16 [ current_piece_gfx#10 current_xpos#11 current_piece_char#16 play_lock_current::ypos2#2 play_lock_current::l#6 play_lock_current::playfield_line#0 play_lock_current::col#2 play_lock_current::c#2 play_lock_current::i#1 ] ( main:10::play_move_down:42::play_lock_current:189 [ keyboard_events_size#16 main::key_event#0 current_piece_gfx#10 current_xpos#11 current_piece_char#16 play_lock_current::ypos2#2 play_lock_current::l#6 play_lock_current::playfield_line#0 play_lock_current::col#2 play_lock_current::c#2 play_lock_current::i#1 ] ) always clobbers reg byte a +Statement [255] (byte~) keyboard_event_pressed::$0 ← (byte) keyboard_event_pressed::keycode#5 >> (byte/signed byte/word/signed word/dword/signed dword) 3 [ keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] ( main:10::play_move_down:42::keyboard_event_pressed:169 [ keyboard_events_size#16 main::key_event#0 current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 current_movedown_counter#1 play_move_down::movedown#10 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] main:10::keyboard_event_scan:36::keyboard_event_pressed:277 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 current_movedown_counter#12 keyboard_events_size#13 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] main:10::keyboard_event_scan:36::keyboard_event_pressed:283 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 current_movedown_counter#12 keyboard_events_size#13 keyboard_modifiers#11 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] main:10::keyboard_event_scan:36::keyboard_event_pressed:289 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 current_movedown_counter#12 keyboard_events_size#13 keyboard_modifiers#12 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] main:10::keyboard_event_scan:36::keyboard_event_pressed:295 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 current_movedown_counter#12 keyboard_events_size#13 keyboard_modifiers#13 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] ) always clobbers reg byte a +Statement [257] (byte~) keyboard_event_pressed::$1 ← (byte) keyboard_event_pressed::keycode#5 & (byte/signed byte/word/signed word/dword/signed dword) 7 [ keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] ( main:10::play_move_down:42::keyboard_event_pressed:169 [ keyboard_events_size#16 main::key_event#0 current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 current_movedown_counter#1 play_move_down::movedown#10 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:10::keyboard_event_scan:36::keyboard_event_pressed:277 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 current_movedown_counter#12 keyboard_events_size#13 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:10::keyboard_event_scan:36::keyboard_event_pressed:283 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 current_movedown_counter#12 keyboard_events_size#13 keyboard_modifiers#11 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:10::keyboard_event_scan:36::keyboard_event_pressed:289 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 current_movedown_counter#12 keyboard_events_size#13 keyboard_modifiers#12 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:10::keyboard_event_scan:36::keyboard_event_pressed:295 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 current_movedown_counter#12 keyboard_events_size#13 keyboard_modifiers#13 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] ) always clobbers reg byte a +Statement [258] (byte) keyboard_event_pressed::return#11 ← (byte) keyboard_event_pressed::row_bits#0 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte~) keyboard_event_pressed::$1) [ keyboard_event_pressed::return#11 ] ( main:10::play_move_down:42::keyboard_event_pressed:169 [ keyboard_events_size#16 main::key_event#0 current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 current_movedown_counter#1 play_move_down::movedown#10 keyboard_event_pressed::return#11 ] main:10::keyboard_event_scan:36::keyboard_event_pressed:277 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 current_movedown_counter#12 keyboard_events_size#13 keyboard_event_pressed::return#11 ] main:10::keyboard_event_scan:36::keyboard_event_pressed:283 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 current_movedown_counter#12 keyboard_events_size#13 keyboard_modifiers#11 keyboard_event_pressed::return#11 ] main:10::keyboard_event_scan:36::keyboard_event_pressed:289 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 current_movedown_counter#12 keyboard_events_size#13 keyboard_modifiers#12 keyboard_event_pressed::return#11 ] main:10::keyboard_event_scan:36::keyboard_event_pressed:295 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 current_movedown_counter#12 keyboard_events_size#13 keyboard_modifiers#13 keyboard_event_pressed::return#11 ] ) always clobbers reg byte a +Statement [271] if((byte) keyboard_event_scan::row_scan#0!=*((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2)) goto keyboard_event_scan::@4 [ keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#29 keyboard_event_scan::row_scan#0 ] ( main:10::keyboard_event_scan:36 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 current_movedown_counter#12 keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#29 keyboard_event_scan::row_scan#0 ] ) always clobbers reg byte a +Statement [272] (byte) keyboard_event_scan::keycode#1 ← (byte) keyboard_event_scan::keycode#11 + (byte/signed byte/word/signed word/dword/signed dword) 8 [ keyboard_event_scan::row#2 keyboard_events_size#29 keyboard_event_scan::keycode#1 ] ( main:10::keyboard_event_scan:36 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 current_movedown_counter#12 keyboard_event_scan::row#2 keyboard_events_size#29 keyboard_event_scan::keycode#1 ] ) always clobbers reg byte a +Statement [287] (byte) keyboard_modifiers#3 ← (byte) keyboard_modifiers#11 | (const byte) KEY_MODIFIER_RSHIFT#0 [ keyboard_events_size#13 keyboard_modifiers#3 ] ( main:10::keyboard_event_scan:36 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 current_movedown_counter#12 keyboard_events_size#13 keyboard_modifiers#3 ] ) always clobbers reg byte a +Statement [293] (byte) keyboard_modifiers#4 ← (byte) keyboard_modifiers#12 | (const byte) KEY_MODIFIER_CTRL#0 [ keyboard_events_size#13 keyboard_modifiers#4 ] ( main:10::keyboard_event_scan:36 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 current_movedown_counter#12 keyboard_events_size#13 keyboard_modifiers#4 ] ) always clobbers reg byte a +Statement [299] (byte) keyboard_modifiers#5 ← (byte) keyboard_modifiers#13 | (const byte) KEY_MODIFIER_COMMODORE#0 [ keyboard_events_size#13 ] ( main:10::keyboard_event_scan:36 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 current_movedown_counter#12 keyboard_events_size#13 ] ) always clobbers reg byte a +Statement [302] (byte~) keyboard_event_scan::$3 ← (byte) keyboard_event_scan::row_scan#0 ^ *((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2) [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::$3 ] ( main:10::keyboard_event_scan:36 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 current_movedown_counter#12 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::$3 ] ) always clobbers reg byte a +Statement [303] (byte~) keyboard_event_scan::$4 ← (byte~) keyboard_event_scan::$3 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_event_scan::col#2) [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::$4 ] ( main:10::keyboard_event_scan:36 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 current_movedown_counter#12 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::$4 ] ) always clobbers reg byte a +Statement [306] (byte) keyboard_event_scan::event_type#0 ← (byte) keyboard_event_scan::row_scan#0 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_event_scan::col#2) [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::event_type#0 ] ( main:10::keyboard_event_scan:36 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 current_movedown_counter#12 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::event_type#0 ] ) always clobbers reg byte a +Statement [308] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte) keyboard_event_scan::keycode#10 [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 ] ( main:10::keyboard_event_scan:36 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 current_movedown_counter#12 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 ] ) always clobbers reg byte a +Statement [314] *((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2) ← (byte) keyboard_event_scan::row_scan#0 [ keyboard_event_scan::row#2 keyboard_event_scan::keycode#15 keyboard_events_size#30 ] ( main:10::keyboard_event_scan:36 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 current_movedown_counter#12 keyboard_event_scan::row#2 keyboard_event_scan::keycode#15 keyboard_events_size#30 ] ) always clobbers reg byte a +Statement [315] (byte/word/dword~) keyboard_event_scan::$11 ← (byte) keyboard_event_scan::keycode#10 | (byte/signed byte/word/signed word/dword/signed dword) 64 [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::$11 ] ( main:10::keyboard_event_scan:36 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 current_movedown_counter#12 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::$11 ] ) always clobbers reg byte a +Statement [318] *((const byte*) CIA1_PORT_A#0) ← *((const byte[8]) keyboard_matrix_row_bitmask#0 + (byte) keyboard_matrix_read::rowid#0) [ ] ( main:10::keyboard_event_scan:36::keyboard_matrix_read:268 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 current_movedown_counter#12 keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#29 ] ) always clobbers reg byte a +Statement [319] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) [ keyboard_matrix_read::return#0 ] ( main:10::keyboard_event_scan:36::keyboard_matrix_read:268 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_char#16 current_movedown_counter#12 keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#29 keyboard_matrix_read::return#0 ] ) always clobbers reg byte a +Statement [323] (byte~) play_init::$1 ← (byte) play_init::j#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ play_init::j#2 play_init::pli#2 play_init::idx#2 play_init::$1 ] ( main:10::play_init:21 [ play_init::j#2 play_init::pli#2 play_init::idx#2 play_init::$1 ] ) always clobbers reg byte a +Statement [324] *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte~) play_init::$1) ← (byte*) play_init::pli#2 [ play_init::j#2 play_init::pli#2 play_init::idx#2 ] ( main:10::play_init:21 [ play_init::j#2 play_init::pli#2 play_init::idx#2 ] ) always clobbers reg byte a +Statement [325] *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0 + (byte) play_init::j#2) ← (byte) play_init::idx#2 [ play_init::j#2 play_init::pli#2 play_init::idx#2 ] ( main:10::play_init:21 [ play_init::j#2 play_init::pli#2 play_init::idx#2 ] ) always clobbers reg byte a +Statement [326] (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:10::play_init:21 [ play_init::j#2 play_init::idx#2 play_init::pli#1 ] ) always clobbers reg byte a +Statement [327] (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:10::play_init:21 [ play_init::j#2 play_init::pli#1 play_init::idx#1 ] ) always clobbers reg byte a +Statement [330] *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0+(const byte) PLAYFIELD_LINES#0) ← (const byte) PLAYFIELD_COLS#0*(const byte) PLAYFIELD_LINES#0 [ ] ( main:10::play_init:21 [ ] ) always clobbers reg byte a +Statement [333] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0 [ ] ( main:10::sprites_irq_init:19 [ ] ) always clobbers reg byte a Statement asm { ldaCIA1_INTERRUPT } always clobbers reg byte a -Statement [331] *((const byte*) PROCPORT_DDR#0) ← (const byte) PROCPORT_DDR_MEMORY_MASK#0 [ ] ( main:10::sprites_irq_init:19 [ ] ) always clobbers reg byte a -Statement [332] *((const byte*) PROCPORT#0) ← (const byte) PROCPORT_RAM_IO#0 [ ] ( main:10::sprites_irq_init:19 [ ] ) always clobbers reg byte a -Statement [333] *((const byte*) CIA1_INTERRUPT#0) ← (const byte) CIA_INTERRUPT_CLEAR#0 [ ] ( main:10::sprites_irq_init:19 [ ] ) always clobbers reg byte a -Statement [334] *((const byte*) VIC_CONTROL#0) ← *((const byte*) VIC_CONTROL#0) & (byte/signed byte/word/signed word/dword/signed dword) 127 [ ] ( main:10::sprites_irq_init:19 [ ] ) always clobbers reg byte a -Statement [335] *((const byte*) RASTER#0) ← (const byte) IRQ_RASTER_FIRST#0 [ ] ( main:10::sprites_irq_init:19 [ ] ) always clobbers reg byte a -Statement [336] *((const byte*) IRQ_ENABLE#0) ← (const byte) IRQ_RASTER#0 [ ] ( main:10::sprites_irq_init:19 [ ] ) always clobbers reg byte a -Statement [337] *((const void()**) HARDWARE_IRQ#0) ← &interrupt(HARDWARE_CLOBBER)(void()) irq() [ ] ( main:10::sprites_irq_init:19 [ ] ) always clobbers reg byte a -Statement [340] *((const byte*) SPRITES_ENABLE#0) ← (byte/signed byte/word/signed word/dword/signed dword) 15 [ ] ( main:10::sprites_init:17 [ ] ) always clobbers reg byte a -Statement [341] *((const byte*) SPRITES_MC#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:10::sprites_init:17 [ ] ) always clobbers reg byte a -Statement [342] *((const byte*) SPRITES_EXPAND_Y#0) ← *((const byte*) SPRITES_MC#0) [ ] ( main:10::sprites_init:17 [ ] ) always clobbers reg byte a -Statement [343] *((const byte*) SPRITES_EXPAND_X#0) ← *((const byte*) SPRITES_EXPAND_Y#0) [ ] ( main:10::sprites_init:17 [ ] ) always clobbers reg byte a -Statement [345] (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:10::sprites_init:17 [ sprites_init::s#2 sprites_init::xpos#2 sprites_init::s2#0 ] ) always clobbers reg byte a -Statement [346] *((const byte*) SPRITES_XPOS#0 + (byte) sprites_init::s2#0) ← (byte) sprites_init::xpos#2 [ sprites_init::s#2 sprites_init::xpos#2 ] ( main:10::sprites_init:17 [ sprites_init::s#2 sprites_init::xpos#2 ] ) always clobbers reg byte a -Statement [347] *((const byte*) SPRITES_COLS#0 + (byte) sprites_init::s#2) ← (const byte) BLACK#0 [ sprites_init::s#2 sprites_init::xpos#2 ] ( main:10::sprites_init:17 [ sprites_init::s#2 sprites_init::xpos#2 ] ) always clobbers reg byte a -Statement [348] (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:10::sprites_init:17 [ sprites_init::s#2 sprites_init::xpos#1 ] ) always clobbers reg byte a -Statement [353] *((const byte*) CIA2_PORT_A_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3 [ ] ( main:10::render_init:15 [ ] ) always clobbers reg byte a -Statement [355] *((const byte*) CIA2_PORT_A#0) ← (const byte) render_init::vicSelectGfxBank1_toDd001_return#0 [ ] ( main:10::render_init:15 [ ] ) always clobbers reg byte a -Statement [357] *((const byte*) D018#0) ← (const byte) render_init::toD0181_return#0 [ ] ( main:10::render_init:15 [ ] ) always clobbers reg byte a -Statement [358] *((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:10::render_init:15 [ ] ) always clobbers reg byte a -Statement [359] *((const byte*) BGCOL1#0) ← (const byte) BLACK#0 [ ] ( main:10::render_init:15 [ ] ) always clobbers reg byte a -Statement [360] *((const byte*) BGCOL2#0) ← (const byte) BLUE#0 [ ] ( main:10::render_init:15 [ ] ) always clobbers reg byte a -Statement [361] *((const byte*) BGCOL3#0) ← (const byte) CYAN#0 [ ] ( main:10::render_init:15 [ ] ) always clobbers reg byte a -Statement [362] *((const byte*) BGCOL4#0) ← (const byte) GREY#0 [ ] ( main:10::render_init:15 [ ] ) always clobbers reg byte a -Statement [367] (byte~) render_init::$11 ← (byte) render_init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ render_init::i#2 render_init::li#2 render_init::$11 ] ( main:10::render_init:15 [ render_init::i#2 render_init::li#2 render_init::$11 ] ) always clobbers reg byte a -Statement [368] *((const byte*[PLAYFIELD_LINES#0]) screen_lines#0 + (byte~) render_init::$11) ← (byte*) render_init::li#2 [ render_init::i#2 render_init::li#2 ] ( main:10::render_init:15 [ render_init::i#2 render_init::li#2 ] ) always clobbers reg byte a -Statement [369] (byte*) render_init::li#1 ← (byte*) render_init::li#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ render_init::i#2 render_init::li#1 ] ( main:10::render_init:15 [ render_init::i#2 render_init::li#1 ] ) always clobbers reg byte a -Statement [374] (byte*~) render_init::$18 ← (byte*) render_init::line#4 + (byte) render_init::c#2 [ render_init::line#4 render_init::l#4 render_init::c#2 render_init::$18 ] ( main:10::render_init:15 [ render_init::line#4 render_init::l#4 render_init::c#2 render_init::$18 ] ) always clobbers reg byte a -Statement [375] *((byte*~) render_init::$18) ← (const byte) WHITE#0 [ render_init::line#4 render_init::l#4 render_init::c#2 ] ( main:10::render_init:15 [ render_init::line#4 render_init::l#4 render_init::c#2 ] ) always clobbers reg byte a reg byte y -Statement [378] (byte*) render_init::line#1 ← (byte*) render_init::line#4 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ render_init::l#4 render_init::line#1 ] ( main:10::render_init:15 [ render_init::l#4 render_init::line#1 ] ) always clobbers reg byte a -Statement [385] *((byte*) render_screen_original::screen#4) ← (const byte) render_screen_original::SPACE#0 [ render_screen_original::orig#4 render_screen_original::y#6 render_screen_original::screen#4 render_screen_original::x#4 ] ( main:10::render_init:15::render_screen_original:365 [ render_screen_original::orig#4 render_screen_original::y#6 render_screen_original::screen#4 render_screen_original::x#4 ] ) always clobbers reg byte a reg byte y -Statement [390] (byte/signed word/word/dword/signed dword~) render_screen_original::$3 ← *((byte*) render_screen_original::orig#2) + (byte/signed byte/word/signed word/dword/signed dword) 1 [ render_screen_original::y#6 render_screen_original::orig#2 render_screen_original::screen#5 render_screen_original::x#5 render_screen_original::$3 ] ( main:10::render_init:15::render_screen_original:365 [ render_screen_original::y#6 render_screen_original::orig#2 render_screen_original::screen#5 render_screen_original::x#5 render_screen_original::$3 ] ) always clobbers reg byte a reg byte y -Statement [391] *((byte*) render_screen_original::screen#5) ← (byte/signed word/word/dword/signed dword~) render_screen_original::$3 [ render_screen_original::y#6 render_screen_original::orig#2 render_screen_original::screen#5 render_screen_original::x#5 ] ( main:10::render_init:15::render_screen_original:365 [ render_screen_original::y#6 render_screen_original::orig#2 render_screen_original::screen#5 render_screen_original::x#5 ] ) always clobbers reg byte y -Statement [397] *((byte*) render_screen_original::screen#6) ← (const byte) render_screen_original::SPACE#0 [ render_screen_original::y#6 render_screen_original::orig#1 render_screen_original::screen#6 render_screen_original::x#6 ] ( main:10::render_init:15::render_screen_original:365 [ render_screen_original::y#6 render_screen_original::orig#1 render_screen_original::screen#6 render_screen_original::x#6 ] ) always clobbers reg byte a reg byte y -Statement [406] *((byte*) fill::addr#2) ← (const byte) DARK_GREY#0 [ fill::addr#2 ] ( main:10::render_init:15::fill:363 [ fill::addr#2 ] ) always clobbers reg byte a reg byte y -Statement [408] if((byte*) fill::addr#1!=(const byte*) fill::end#0) goto fill::@1 [ fill::addr#1 ] ( main:10::render_init:15::fill:363 [ fill::addr#1 ] ) always clobbers reg byte a -Statement [410] *((const word*) SID_VOICE3_FREQ#0) ← (word/dword/signed dword) 65535 [ ] ( main:10::sid_rnd_init:13 [ ] ) always clobbers reg byte a -Statement [411] *((const byte*) SID_VOICE3_CONTROL#0) ← (const byte) SID_CONTROL_NOISE#0 [ ] ( main:10::sid_rnd_init:13 [ ] ) always clobbers reg byte a -Statement [413] *((const byte*) BORDERCOL#0) ← (const byte) DARK_GREY#0 [ irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 irq_cnt#0 ] ( [ irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 irq_cnt#0 ] ) always clobbers reg byte a -Statement [419] if(*((const byte*) RASTER#0)!=(byte) irq_sprite_ypos#0) goto irq::@1 [ irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 irq_cnt#0 ] ( [ irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 irq_cnt#0 ] ) always clobbers reg byte a -Statement [427] (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 [428] if((byte) irq_cnt#1==(byte/signed byte/word/signed word/dword/signed dword) 10) goto irq::@2 [ 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 [429] (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 [430] (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 [431] (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 [434] (byte~) irq::$3 ← (byte) irq::raster_next#0 & (byte/signed byte/word/signed word/dword/signed dword) 7 [ irq::raster_next#0 irq::$3 ] ( [ irq::raster_next#0 irq::$3 ] ) always clobbers reg byte a -Statement [439] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0 [ ] ( [ ] ) always clobbers reg byte a -Statement [440] *((const byte*) BORDERCOL#0) ← (const byte) BLACK#0 [ ] ( [ ] ) always clobbers reg byte a -Statement [441] return [ ] ( [ ] ) always clobbers reg byte a reg byte x reg byte y -Statement [442] (byte) irq_cnt#13 ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( [ ] ) always clobbers reg byte a -Statement [443] (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 [444] (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 [446] (byte) irq_sprite_ptr#1 ← (const byte) irq::toSpritePtr2_return#0 [ irq_raster_next#1 ] ( [ irq_raster_next#1 ] ) always clobbers reg byte a -Potential registers zp ZP_BYTE:2 [ current_ypos#22 current_ypos#14 current_ypos#30 current_ypos#1 ] : zp ZP_BYTE:2 , reg byte x , -Potential registers zp ZP_BYTE:3 [ current_movedown_counter#12 current_movedown_counter#10 current_movedown_counter#1 ] : zp ZP_BYTE:3 , reg byte x , -Potential registers zp ZP_BYTE:4 [ current_ypos#10 current_ypos#78 ] : zp ZP_BYTE:4 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:5 [ current_xpos#48 current_xpos#104 ] : zp ZP_BYTE:5 , reg byte x , reg byte y , -Potential registers zp ZP_WORD:6 [ current_piece_gfx#53 current_piece_gfx#95 current_piece_gfx#96 ] : zp ZP_WORD:6 , -Potential registers zp ZP_BYTE:8 [ current_piece_char#63 current_piece_char#83 current_piece_char#84 ] : zp ZP_BYTE:8 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:9 [ render_current::ypos2#2 render_current::ypos2#0 render_current::ypos2#1 ] : zp ZP_BYTE:9 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:10 [ render_current::l#4 render_current::l#1 ] : zp ZP_BYTE:10 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:11 [ render_current::i#4 render_current::i#3 render_current::i#8 render_current::i#10 render_current::i#1 ] : zp ZP_BYTE:11 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:12 [ render_current::xpos#2 render_current::xpos#0 render_current::xpos#1 ] : zp ZP_BYTE:12 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:13 [ render_current::c#2 render_current::c#1 ] : zp ZP_BYTE:13 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:14 [ render_playfield::l#2 render_playfield::l#1 ] : zp ZP_BYTE:14 , reg byte x , -Potential registers zp ZP_BYTE:15 [ render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 ] : zp ZP_BYTE:15 , reg byte x , -Potential registers zp ZP_WORD:16 [ render_playfield::screen_line#2 render_playfield::screen_line#0 render_playfield::screen_line#1 ] : zp ZP_WORD:16 , -Potential registers zp ZP_BYTE:18 [ render_playfield::c#2 render_playfield::c#1 ] : zp ZP_BYTE:18 , reg byte x , -Potential registers zp ZP_BYTE:19 [ play_move_rotate::return#1 ] : zp ZP_BYTE:19 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:20 [ play_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#2 ] : zp ZP_BYTE:20 , reg byte x , reg byte y , -Potential registers zp ZP_WORD:21 [ current_piece#12 current_piece#73 current_piece#74 current_piece#75 current_piece#76 ] : zp ZP_WORD:21 , -Potential registers zp ZP_BYTE:23 [ play_collision::orientation#4 play_collision::orientation#0 play_collision::orientation#1 play_collision::orientation#2 play_collision::orientation#3 ] : zp ZP_BYTE:23 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:24 [ play_collision::ypos#4 play_collision::ypos#0 play_collision::ypos#1 play_collision::ypos#2 play_collision::ypos#3 ] : zp ZP_BYTE:24 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:25 [ play_collision::xpos#5 play_collision::xpos#0 play_collision::xpos#1 play_collision::xpos#2 play_collision::xpos#3 ] : zp ZP_BYTE:25 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:26 [ play_collision::ypos2#2 play_collision::ypos2#0 play_collision::ypos2#1 ] : zp ZP_BYTE:26 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:27 [ play_collision::l#6 play_collision::l#1 ] : zp ZP_BYTE:27 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:28 [ play_collision::i#2 play_collision::i#3 play_collision::i#11 play_collision::i#13 ] : zp ZP_BYTE:28 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:29 [ play_collision::col#2 play_collision::col#9 play_collision::col#1 ] : zp ZP_BYTE:29 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:30 [ play_collision::c#2 play_collision::c#1 ] : zp ZP_BYTE:30 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:31 [ play_collision::return#14 ] : zp ZP_BYTE:31 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:32 [ play_move_leftright::return#1 ] : zp ZP_BYTE:32 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:33 [ play_move_down::movedown#6 play_move_down::movedown#3 play_move_down::movedown#7 play_move_down::movedown#2 play_move_down::movedown#10 ] : zp ZP_BYTE:33 , reg byte x , reg byte y , +Statement [335] *((const byte*) PROCPORT_DDR#0) ← (const byte) PROCPORT_DDR_MEMORY_MASK#0 [ ] ( main:10::sprites_irq_init:19 [ ] ) always clobbers reg byte a +Statement [336] *((const byte*) PROCPORT#0) ← (const byte) PROCPORT_RAM_IO#0 [ ] ( main:10::sprites_irq_init:19 [ ] ) always clobbers reg byte a +Statement [337] *((const byte*) CIA1_INTERRUPT#0) ← (const byte) CIA_INTERRUPT_CLEAR#0 [ ] ( main:10::sprites_irq_init:19 [ ] ) always clobbers reg byte a +Statement [338] *((const byte*) VIC_CONTROL#0) ← *((const byte*) VIC_CONTROL#0) & (byte/signed byte/word/signed word/dword/signed dword) 127 [ ] ( main:10::sprites_irq_init:19 [ ] ) always clobbers reg byte a +Statement [339] *((const byte*) RASTER#0) ← (const byte) IRQ_RASTER_FIRST#0 [ ] ( main:10::sprites_irq_init:19 [ ] ) always clobbers reg byte a +Statement [340] *((const byte*) IRQ_ENABLE#0) ← (const byte) IRQ_RASTER#0 [ ] ( main:10::sprites_irq_init:19 [ ] ) always clobbers reg byte a +Statement [341] *((const void()**) HARDWARE_IRQ#0) ← &interrupt(HARDWARE_CLOBBER)(void()) irq() [ ] ( main:10::sprites_irq_init:19 [ ] ) always clobbers reg byte a +Statement [344] *((const byte*) SPRITES_ENABLE#0) ← (byte/signed byte/word/signed word/dword/signed dword) 15 [ ] ( main:10::sprites_init:17 [ ] ) always clobbers reg byte a +Statement [345] *((const byte*) SPRITES_MC#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:10::sprites_init:17 [ ] ) always clobbers reg byte a +Statement [346] *((const byte*) SPRITES_EXPAND_Y#0) ← *((const byte*) SPRITES_MC#0) [ ] ( main:10::sprites_init:17 [ ] ) always clobbers reg byte a +Statement [347] *((const byte*) SPRITES_EXPAND_X#0) ← *((const byte*) SPRITES_EXPAND_Y#0) [ ] ( main:10::sprites_init:17 [ ] ) always clobbers reg byte a +Statement [349] (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:10::sprites_init:17 [ sprites_init::s#2 sprites_init::xpos#2 sprites_init::s2#0 ] ) always clobbers reg byte a +Statement [350] *((const byte*) SPRITES_XPOS#0 + (byte) sprites_init::s2#0) ← (byte) sprites_init::xpos#2 [ sprites_init::s#2 sprites_init::xpos#2 ] ( main:10::sprites_init:17 [ sprites_init::s#2 sprites_init::xpos#2 ] ) always clobbers reg byte a +Statement [351] *((const byte*) SPRITES_COLS#0 + (byte) sprites_init::s#2) ← (const byte) BLACK#0 [ sprites_init::s#2 sprites_init::xpos#2 ] ( main:10::sprites_init:17 [ sprites_init::s#2 sprites_init::xpos#2 ] ) always clobbers reg byte a +Statement [352] (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:10::sprites_init:17 [ sprites_init::s#2 sprites_init::xpos#1 ] ) always clobbers reg byte a +Statement [357] *((const byte*) CIA2_PORT_A_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3 [ ] ( main:10::render_init:15 [ ] ) always clobbers reg byte a +Statement [359] *((const byte*) CIA2_PORT_A#0) ← (const byte) render_init::vicSelectGfxBank1_toDd001_return#0 [ ] ( main:10::render_init:15 [ ] ) always clobbers reg byte a +Statement [361] *((const byte*) D018#0) ← (const byte) render_init::toD0181_return#0 [ ] ( main:10::render_init:15 [ ] ) always clobbers reg byte a +Statement [362] *((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:10::render_init:15 [ ] ) always clobbers reg byte a +Statement [363] *((const byte*) BGCOL1#0) ← (const byte) BLACK#0 [ ] ( main:10::render_init:15 [ ] ) always clobbers reg byte a +Statement [364] *((const byte*) BGCOL2#0) ← (const byte) BLUE#0 [ ] ( main:10::render_init:15 [ ] ) always clobbers reg byte a +Statement [365] *((const byte*) BGCOL3#0) ← (const byte) CYAN#0 [ ] ( main:10::render_init:15 [ ] ) always clobbers reg byte a +Statement [366] *((const byte*) BGCOL4#0) ← (const byte) GREY#0 [ ] ( main:10::render_init:15 [ ] ) always clobbers reg byte a +Statement [371] (byte~) render_init::$11 ← (byte) render_init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ render_init::i#2 render_init::li#2 render_init::$11 ] ( main:10::render_init:15 [ render_init::i#2 render_init::li#2 render_init::$11 ] ) always clobbers reg byte a +Statement [372] *((const byte*[PLAYFIELD_LINES#0]) screen_lines#0 + (byte~) render_init::$11) ← (byte*) render_init::li#2 [ render_init::i#2 render_init::li#2 ] ( main:10::render_init:15 [ render_init::i#2 render_init::li#2 ] ) always clobbers reg byte a +Statement [373] (byte*) render_init::li#1 ← (byte*) render_init::li#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ render_init::i#2 render_init::li#1 ] ( main:10::render_init:15 [ render_init::i#2 render_init::li#1 ] ) always clobbers reg byte a +Statement [378] (byte*~) render_init::$18 ← (byte*) render_init::line#4 + (byte) render_init::c#2 [ render_init::line#4 render_init::l#4 render_init::c#2 render_init::$18 ] ( main:10::render_init:15 [ render_init::line#4 render_init::l#4 render_init::c#2 render_init::$18 ] ) always clobbers reg byte a +Statement [379] *((byte*~) render_init::$18) ← (const byte) WHITE#0 [ render_init::line#4 render_init::l#4 render_init::c#2 ] ( main:10::render_init:15 [ render_init::line#4 render_init::l#4 render_init::c#2 ] ) always clobbers reg byte a reg byte y +Statement [382] (byte*) render_init::line#1 ← (byte*) render_init::line#4 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ render_init::l#4 render_init::line#1 ] ( main:10::render_init:15 [ render_init::l#4 render_init::line#1 ] ) always clobbers reg byte a +Statement [389] *((byte*) render_screen_original::screen#4) ← (const byte) render_screen_original::SPACE#0 [ render_screen_original::orig#4 render_screen_original::y#6 render_screen_original::screen#4 render_screen_original::x#4 ] ( main:10::render_init:15::render_screen_original:369 [ render_screen_original::orig#4 render_screen_original::y#6 render_screen_original::screen#4 render_screen_original::x#4 ] ) always clobbers reg byte a reg byte y +Statement [394] (byte/signed word/word/dword/signed dword~) render_screen_original::$3 ← *((byte*) render_screen_original::orig#2) + (byte/signed byte/word/signed word/dword/signed dword) 1 [ render_screen_original::y#6 render_screen_original::orig#2 render_screen_original::screen#5 render_screen_original::x#5 render_screen_original::$3 ] ( main:10::render_init:15::render_screen_original:369 [ render_screen_original::y#6 render_screen_original::orig#2 render_screen_original::screen#5 render_screen_original::x#5 render_screen_original::$3 ] ) always clobbers reg byte a reg byte y +Statement [395] *((byte*) render_screen_original::screen#5) ← (byte/signed word/word/dword/signed dword~) render_screen_original::$3 [ render_screen_original::y#6 render_screen_original::orig#2 render_screen_original::screen#5 render_screen_original::x#5 ] ( main:10::render_init:15::render_screen_original:369 [ render_screen_original::y#6 render_screen_original::orig#2 render_screen_original::screen#5 render_screen_original::x#5 ] ) always clobbers reg byte y +Statement [401] *((byte*) render_screen_original::screen#6) ← (const byte) render_screen_original::SPACE#0 [ render_screen_original::y#6 render_screen_original::orig#1 render_screen_original::screen#6 render_screen_original::x#6 ] ( main:10::render_init:15::render_screen_original:369 [ render_screen_original::y#6 render_screen_original::orig#1 render_screen_original::screen#6 render_screen_original::x#6 ] ) always clobbers reg byte a reg byte y +Statement [410] *((byte*) fill::addr#2) ← (const byte) DARK_GREY#0 [ fill::addr#2 ] ( main:10::render_init:15::fill:367 [ fill::addr#2 ] ) always clobbers reg byte a reg byte y +Statement [412] if((byte*) fill::addr#1!=(const byte*) fill::end#0) goto fill::@1 [ fill::addr#1 ] ( main:10::render_init:15::fill:367 [ fill::addr#1 ] ) always clobbers reg byte a +Statement [414] *((const word*) SID_VOICE3_FREQ#0) ← (word/dword/signed dword) 65535 [ ] ( main:10::sid_rnd_init:13 [ ] ) always clobbers reg byte a +Statement [415] *((const byte*) SID_VOICE3_CONTROL#0) ← (const byte) SID_CONTROL_NOISE#0 [ ] ( main:10::sid_rnd_init:13 [ ] ) always clobbers reg byte a +Statement [417] *((const byte*) BORDERCOL#0) ← (const byte) DARK_GREY#0 [ irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 irq_cnt#0 ] ( [ irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 irq_cnt#0 ] ) always clobbers reg byte a +Statement [423] if(*((const byte*) RASTER#0)!=(byte) irq_sprite_ypos#0) goto irq::@1 [ irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 irq_cnt#0 ] ( [ irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 irq_cnt#0 ] ) always clobbers reg byte a +Statement [431] (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 [432] if((byte) irq_cnt#1==(byte/signed byte/word/signed word/dword/signed dword) 10) goto irq::@2 [ 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 [433] (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 [434] (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 [435] (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 [438] (byte~) irq::$3 ← (byte) irq::raster_next#0 & (byte/signed byte/word/signed word/dword/signed dword) 7 [ irq::raster_next#0 irq::$3 ] ( [ irq::raster_next#0 irq::$3 ] ) always clobbers reg byte a +Statement [443] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0 [ ] ( [ ] ) always clobbers reg byte a +Statement [444] *((const byte*) BORDERCOL#0) ← (const byte) BLACK#0 [ ] ( [ ] ) always clobbers reg byte a +Statement [445] return [ ] ( [ ] ) always clobbers reg byte a reg byte x reg byte y +Statement [446] (byte) irq_cnt#13 ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( [ ] ) always clobbers reg byte a +Statement [447] (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 [448] (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 [450] (byte) irq_sprite_ptr#1 ← (const byte) irq::toSpritePtr2_return#0 [ irq_raster_next#1 ] ( [ irq_raster_next#1 ] ) always clobbers reg byte a +Potential registers zp ZP_BYTE:2 [ current_movedown_counter#12 current_movedown_counter#10 current_movedown_counter#1 ] : zp ZP_BYTE:2 , reg byte x , +Potential registers zp ZP_BYTE:3 [ current_ypos#10 current_ypos#79 current_ypos#80 ] : zp ZP_BYTE:3 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:4 [ current_xpos#48 current_xpos#105 current_xpos#106 ] : zp ZP_BYTE:4 , reg byte x , reg byte y , +Potential registers zp ZP_WORD:5 [ current_piece_gfx#53 current_piece_gfx#95 current_piece_gfx#96 ] : zp ZP_WORD:5 , +Potential registers zp ZP_BYTE:7 [ current_piece_char#63 current_piece_char#83 current_piece_char#84 ] : zp ZP_BYTE:7 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:8 [ render_current::ypos2#2 render_current::ypos2#0 render_current::ypos2#1 ] : zp ZP_BYTE:8 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:9 [ render_current::l#4 render_current::l#1 ] : zp ZP_BYTE:9 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:10 [ render_current::i#4 render_current::i#3 render_current::i#8 render_current::i#10 render_current::i#1 ] : zp ZP_BYTE:10 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:11 [ render_current::xpos#2 render_current::xpos#0 render_current::xpos#1 ] : zp ZP_BYTE:11 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:12 [ render_current::c#2 render_current::c#1 ] : zp ZP_BYTE:12 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:13 [ render_playfield::l#2 render_playfield::l#1 ] : zp ZP_BYTE:13 , reg byte x , +Potential registers zp ZP_BYTE:14 [ render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 ] : zp ZP_BYTE:14 , reg byte x , +Potential registers zp ZP_WORD:15 [ render_playfield::screen_line#2 render_playfield::screen_line#0 render_playfield::screen_line#1 ] : zp ZP_WORD:15 , +Potential registers zp ZP_BYTE:17 [ render_playfield::c#2 render_playfield::c#1 ] : zp ZP_BYTE:17 , reg byte x , +Potential registers zp ZP_BYTE:18 [ play_move_rotate::return#1 ] : zp ZP_BYTE:18 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:19 [ play_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#2 ] : zp ZP_BYTE:19 , reg byte x , reg byte y , +Potential registers zp ZP_WORD:20 [ current_piece#12 current_piece#73 current_piece#74 current_piece#75 current_piece#76 ] : zp ZP_WORD:20 , +Potential registers zp ZP_BYTE:22 [ play_collision::orientation#4 play_collision::orientation#0 play_collision::orientation#1 play_collision::orientation#2 play_collision::orientation#3 ] : zp ZP_BYTE:22 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:23 [ play_collision::ypos#4 play_collision::ypos#0 play_collision::ypos#1 play_collision::ypos#2 play_collision::ypos#3 ] : zp ZP_BYTE:23 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:24 [ play_collision::xpos#5 play_collision::xpos#0 play_collision::xpos#1 play_collision::xpos#2 play_collision::xpos#3 ] : zp ZP_BYTE:24 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:25 [ play_collision::ypos2#2 play_collision::ypos2#0 play_collision::ypos2#1 ] : zp ZP_BYTE:25 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:26 [ play_collision::l#6 play_collision::l#1 ] : zp ZP_BYTE:26 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:27 [ play_collision::i#2 play_collision::i#3 play_collision::i#11 play_collision::i#13 ] : zp ZP_BYTE:27 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:28 [ play_collision::col#2 play_collision::col#9 play_collision::col#1 ] : zp ZP_BYTE:28 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:29 [ play_collision::c#2 play_collision::c#1 ] : zp ZP_BYTE:29 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:30 [ play_collision::return#14 ] : zp ZP_BYTE:30 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:31 [ play_move_leftright::return#1 ] : zp ZP_BYTE:31 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:32 [ play_move_down::movedown#6 play_move_down::movedown#3 play_move_down::movedown#7 play_move_down::movedown#2 play_move_down::movedown#10 ] : zp ZP_BYTE:32 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:33 [ current_ypos#30 current_ypos#22 current_ypos#14 current_ypos#19 current_ypos#1 ] : zp ZP_BYTE:33 , reg byte x , Potential registers zp ZP_WORD:34 [ current_piece#20 current_piece#77 current_piece#16 current_piece#10 current_piece#72 ] : zp ZP_WORD:34 , Potential registers zp ZP_BYTE:36 [ current_orientation#29 current_orientation#10 current_orientation#19 current_orientation#4 current_orientation#14 ] : zp ZP_BYTE:36 , reg byte x , Potential registers zp ZP_WORD:37 [ current_piece_gfx#27 current_piece_gfx#10 current_piece_gfx#15 current_piece_gfx#17 current_piece_gfx#4 current_piece_gfx#14 ] : zp ZP_WORD:37 , -Potential registers zp ZP_BYTE:39 [ current_xpos#34 current_xpos#11 current_xpos#20 current_xpos#5 current_xpos#16 current_xpos#3 ] : zp ZP_BYTE:39 , reg byte x , +Potential registers zp ZP_BYTE:39 [ current_xpos#34 current_xpos#11 current_xpos#20 current_xpos#24 current_xpos#5 current_xpos#16 current_xpos#3 ] : zp ZP_BYTE:39 , reg byte x , Potential registers zp ZP_BYTE:40 [ current_piece_char#21 current_piece_char#16 current_piece_char#11 current_piece_char#13 ] : zp ZP_BYTE:40 , reg byte x , Potential registers zp ZP_BYTE:41 [ play_move_down::return#2 ] : zp ZP_BYTE:41 , reg byte a , reg byte x , reg byte y , Potential registers zp ZP_BYTE:42 [ play_spawn_current::piece_idx#2 play_spawn_current::piece_idx#1 ] : zp ZP_BYTE:42 , reg byte x , reg byte y , @@ -11643,23 +11671,23 @@ Potential registers zp ZP_BYTE:168 [ irq_sprite_ptr#1 ] : zp ZP_BYTE:168 , REGISTER UPLIFT SCOPES Uplift Scope [keyboard_event_scan] 2,002: zp ZP_BYTE:147 [ keyboard_event_scan::$3 ] 2,002: zp ZP_BYTE:148 [ keyboard_event_scan::$4 ] 2,002: zp ZP_BYTE:149 [ keyboard_event_scan::event_type#0 ] 2,002: zp ZP_BYTE:150 [ keyboard_event_scan::$11 ] 1,787.5: zp ZP_BYTE:57 [ keyboard_event_scan::col#2 keyboard_event_scan::col#1 ] 1,195.02: zp ZP_BYTE:58 [ keyboard_event_scan::keycode#10 keyboard_event_scan::keycode#11 keyboard_event_scan::keycode#14 keyboard_event_scan::keycode#1 keyboard_event_scan::keycode#15 ] 211.74: zp ZP_BYTE:55 [ keyboard_event_scan::row#2 keyboard_event_scan::row#1 ] 128.06: zp ZP_BYTE:137 [ keyboard_event_scan::row_scan#0 ] 4: zp ZP_BYTE:139 [ keyboard_event_scan::$14 ] 4: zp ZP_BYTE:141 [ keyboard_event_scan::$18 ] 4: zp ZP_BYTE:143 [ keyboard_event_scan::$22 ] 4: zp ZP_BYTE:145 [ keyboard_event_scan::$26 ] -Uplift Scope [play_collision] 3,823.33: zp ZP_BYTE:28 [ play_collision::i#2 play_collision::i#3 play_collision::i#11 play_collision::i#13 ] 2,002: zp ZP_BYTE:114 [ play_collision::$7 ] 1,340.75: zp ZP_BYTE:29 [ play_collision::col#2 play_collision::col#9 play_collision::col#1 ] 1,223.44: zp ZP_BYTE:30 [ play_collision::c#2 play_collision::c#1 ] 161.77: zp ZP_BYTE:113 [ play_collision::i#1 ] 141.57: zp ZP_BYTE:26 [ play_collision::ypos2#2 play_collision::ypos2#0 play_collision::ypos2#1 ] 113.62: zp ZP_BYTE:27 [ play_collision::l#6 play_collision::l#1 ] 78.71: zp ZP_WORD:111 [ play_collision::playfield_line#0 ] 47.76: zp ZP_WORD:109 [ play_collision::piece_gfx#0 ] 18: zp ZP_BYTE:23 [ play_collision::orientation#4 play_collision::orientation#0 play_collision::orientation#1 play_collision::orientation#2 play_collision::orientation#3 ] 10: zp ZP_BYTE:24 [ play_collision::ypos#4 play_collision::ypos#0 play_collision::ypos#1 play_collision::ypos#2 play_collision::ypos#3 ] 9.29: zp ZP_BYTE:25 [ play_collision::xpos#5 play_collision::xpos#0 play_collision::xpos#1 play_collision::xpos#2 play_collision::xpos#3 ] 4: zp ZP_BYTE:106 [ play_collision::return#13 ] 4: zp ZP_BYTE:115 [ play_collision::return#12 ] 4: zp ZP_BYTE:117 [ play_collision::return#1 ] 4: zp ZP_BYTE:121 [ play_collision::return#0 ] 1.33: zp ZP_BYTE:31 [ play_collision::return#14 ] -Uplift Scope [render_current] 2,544.35: zp ZP_BYTE:11 [ 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:13 [ render_current::c#2 render_current::c#1 ] 1,553.5: zp ZP_BYTE:12 [ render_current::xpos#2 render_current::xpos#0 render_current::xpos#1 ] 1,001: zp ZP_BYTE:103 [ render_current::current_cell#0 ] 163.38: zp ZP_BYTE:10 [ render_current::l#4 render_current::l#1 ] 103.02: zp ZP_BYTE:9 [ render_current::ypos2#2 render_current::ypos2#0 render_current::ypos2#1 ] 100.18: zp ZP_WORD:101 [ render_current::screen_line#0 ] +Uplift Scope [play_collision] 3,823.33: zp ZP_BYTE:27 [ play_collision::i#2 play_collision::i#3 play_collision::i#11 play_collision::i#13 ] 2,002: zp ZP_BYTE:114 [ play_collision::$7 ] 1,340.75: zp ZP_BYTE:28 [ play_collision::col#2 play_collision::col#9 play_collision::col#1 ] 1,223.44: zp ZP_BYTE:29 [ play_collision::c#2 play_collision::c#1 ] 161.77: zp ZP_BYTE:113 [ play_collision::i#1 ] 141.57: zp ZP_BYTE:25 [ play_collision::ypos2#2 play_collision::ypos2#0 play_collision::ypos2#1 ] 113.62: zp ZP_BYTE:26 [ play_collision::l#6 play_collision::l#1 ] 78.71: zp ZP_WORD:111 [ play_collision::playfield_line#0 ] 47.76: zp ZP_WORD:109 [ play_collision::piece_gfx#0 ] 18: zp ZP_BYTE:22 [ play_collision::orientation#4 play_collision::orientation#0 play_collision::orientation#1 play_collision::orientation#2 play_collision::orientation#3 ] 10: zp ZP_BYTE:23 [ play_collision::ypos#4 play_collision::ypos#0 play_collision::ypos#1 play_collision::ypos#2 play_collision::ypos#3 ] 9.29: zp ZP_BYTE:24 [ play_collision::xpos#5 play_collision::xpos#0 play_collision::xpos#1 play_collision::xpos#2 play_collision::xpos#3 ] 4: zp ZP_BYTE:106 [ play_collision::return#13 ] 4: zp ZP_BYTE:115 [ play_collision::return#12 ] 4: zp ZP_BYTE:117 [ play_collision::return#1 ] 4: zp ZP_BYTE:121 [ play_collision::return#0 ] 1.33: zp ZP_BYTE:30 [ play_collision::return#14 ] +Uplift Scope [render_current] 2,544.35: zp ZP_BYTE:10 [ render_current::i#4 render_current::i#3 render_current::i#8 render_current::i#10 render_current::i#1 ] 1,787.5: zp ZP_BYTE:12 [ render_current::c#2 render_current::c#1 ] 1,553.5: zp ZP_BYTE:11 [ render_current::xpos#2 render_current::xpos#0 render_current::xpos#1 ] 1,001: zp ZP_BYTE:103 [ render_current::current_cell#0 ] 163.38: zp ZP_BYTE:9 [ render_current::l#4 render_current::l#1 ] 103.02: zp ZP_BYTE:8 [ render_current::ypos2#2 render_current::ypos2#0 render_current::ypos2#1 ] 100.18: zp ZP_WORD:101 [ render_current::screen_line#0 ] Uplift Scope [play_lock_current] 3,823.33: zp ZP_BYTE:50 [ play_lock_current::i#2 play_lock_current::i#3 play_lock_current::i#7 play_lock_current::i#9 ] 1,478.5: zp ZP_BYTE:51 [ play_lock_current::col#2 play_lock_current::col#0 play_lock_current::col#1 ] 1,401.4: zp ZP_BYTE:52 [ play_lock_current::c#2 play_lock_current::c#1 ] 233.67: zp ZP_BYTE:130 [ play_lock_current::i#1 ] 117.83: zp ZP_BYTE:49 [ play_lock_current::l#6 play_lock_current::l#1 ] 110.2: zp ZP_WORD:128 [ play_lock_current::playfield_line#0 ] 82.23: zp ZP_BYTE:48 [ play_lock_current::ypos2#2 play_lock_current::ypos2#0 play_lock_current::ypos2#1 ] Uplift Scope [play_remove_lines] 1,915.77: zp ZP_BYTE:44 [ play_remove_lines::r#2 play_remove_lines::r#3 play_remove_lines::r#1 ] 1,903.43: zp ZP_BYTE:47 [ play_remove_lines::w#6 play_remove_lines::w#4 play_remove_lines::w#12 play_remove_lines::w#11 play_remove_lines::w#1 play_remove_lines::w#2 play_remove_lines::w#3 ] 1,751.75: zp ZP_BYTE:45 [ play_remove_lines::x#2 play_remove_lines::x#1 ] 821: zp ZP_BYTE:46 [ play_remove_lines::full#4 play_remove_lines::full#2 ] 600.6: zp ZP_BYTE:127 [ play_remove_lines::c#0 ] 165.93: zp ZP_BYTE:43 [ play_remove_lines::y#8 play_remove_lines::y#1 ] -Uplift Scope [] 5,895.76: zp ZP_BYTE:59 [ keyboard_events_size#10 keyboard_events_size#29 keyboard_events_size#19 keyboard_events_size#16 keyboard_events_size#13 keyboard_events_size#4 keyboard_events_size#30 keyboard_events_size#2 keyboard_events_size#1 ] 74.29: zp ZP_BYTE:8 [ current_piece_char#63 current_piece_char#83 current_piece_char#84 ] 61.29: zp ZP_WORD:6 [ current_piece_gfx#53 current_piece_gfx#95 current_piece_gfx#96 ] 32.79: zp ZP_WORD:37 [ current_piece_gfx#27 current_piece_gfx#10 current_piece_gfx#15 current_piece_gfx#17 current_piece_gfx#4 current_piece_gfx#14 ] 27.73: zp ZP_BYTE:40 [ current_piece_char#21 current_piece_char#16 current_piece_char#11 current_piece_char#13 ] 26: zp ZP_WORD:21 [ current_piece#12 current_piece#73 current_piece#74 current_piece#75 current_piece#76 ] 20: zp ZP_BYTE:146 [ keyboard_modifiers#5 ] 20: zp ZP_BYTE:163 [ irq_sprite_ypos#2 ] 20: zp ZP_BYTE:164 [ irq_sprite_ptr#2 ] 20: zp ZP_BYTE:166 [ irq_cnt#13 ] 20: zp ZP_BYTE:167 [ irq_sprite_ypos#1 ] 20: zp ZP_BYTE:168 [ irq_sprite_ptr#1 ] 18.5: zp ZP_BYTE:4 [ current_ypos#10 current_ypos#78 ] 15.91: zp ZP_BYTE:39 [ current_xpos#34 current_xpos#11 current_xpos#20 current_xpos#5 current_xpos#16 current_xpos#3 ] 14.91: zp ZP_WORD:34 [ current_piece#20 current_piece#77 current_piece#16 current_piece#10 current_piece#72 ] 12.67: zp ZP_BYTE:5 [ current_xpos#48 current_xpos#104 ] 11.6: zp ZP_BYTE:56 [ keyboard_modifiers#13 keyboard_modifiers#4 keyboard_modifiers#12 keyboard_modifiers#3 keyboard_modifiers#11 ] 9.04: zp ZP_BYTE:2 [ current_ypos#22 current_ypos#14 current_ypos#30 current_ypos#1 ] 8.96: zp ZP_BYTE:36 [ current_orientation#29 current_orientation#10 current_orientation#19 current_orientation#4 current_orientation#14 ] 8.33: zp ZP_BYTE:81 [ irq_raster_next#12 irq_raster_next#2 irq_raster_next#1 ] 4: zp ZP_BYTE:162 [ irq_cnt#1 ] 2.35: zp ZP_BYTE:3 [ current_movedown_counter#12 current_movedown_counter#10 current_movedown_counter#1 ] 1: zp ZP_BYTE:84 [ irq_sprite_ypos#0 ] 0.33: zp ZP_BYTE:85 [ irq_sprite_ptr#0 ] 0.29: zp ZP_BYTE:86 [ irq_cnt#0 ] 0.25: zp ZP_BYTE:83 [ irq_raster_next#0 ] -Uplift Scope [render_playfield] 2,254.5: zp ZP_WORD:16 [ render_playfield::screen_line#2 render_playfield::screen_line#0 render_playfield::screen_line#1 ] 2,002: zp ZP_BYTE:18 [ render_playfield::c#2 render_playfield::c#1 ] 1,522.6: zp ZP_BYTE:15 [ render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 ] 202: zp ZP_BYTE:104 [ render_playfield::$2 ] 185.17: zp ZP_BYTE:14 [ render_playfield::l#2 render_playfield::l#1 ] +Uplift Scope [] 5,895.76: zp ZP_BYTE:59 [ keyboard_events_size#10 keyboard_events_size#29 keyboard_events_size#19 keyboard_events_size#16 keyboard_events_size#13 keyboard_events_size#4 keyboard_events_size#30 keyboard_events_size#2 keyboard_events_size#1 ] 74.29: zp ZP_BYTE:7 [ current_piece_char#63 current_piece_char#83 current_piece_char#84 ] 61.29: zp ZP_WORD:5 [ current_piece_gfx#53 current_piece_gfx#95 current_piece_gfx#96 ] 32.62: zp ZP_WORD:37 [ current_piece_gfx#27 current_piece_gfx#10 current_piece_gfx#15 current_piece_gfx#17 current_piece_gfx#4 current_piece_gfx#14 ] 27.62: zp ZP_BYTE:40 [ current_piece_char#21 current_piece_char#16 current_piece_char#11 current_piece_char#13 ] 26: zp ZP_WORD:20 [ current_piece#12 current_piece#73 current_piece#74 current_piece#75 current_piece#76 ] 21.5: zp ZP_BYTE:3 [ current_ypos#10 current_ypos#79 current_ypos#80 ] 20: zp ZP_BYTE:146 [ keyboard_modifiers#5 ] 20: zp ZP_BYTE:163 [ irq_sprite_ypos#2 ] 20: zp ZP_BYTE:164 [ irq_sprite_ptr#2 ] 20: zp ZP_BYTE:166 [ irq_cnt#13 ] 20: zp ZP_BYTE:167 [ irq_sprite_ypos#1 ] 20: zp ZP_BYTE:168 [ irq_sprite_ptr#1 ] 18.48: zp ZP_BYTE:39 [ current_xpos#34 current_xpos#11 current_xpos#20 current_xpos#24 current_xpos#5 current_xpos#16 current_xpos#3 ] 14.91: zp ZP_WORD:34 [ current_piece#20 current_piece#77 current_piece#16 current_piece#10 current_piece#72 ] 14.1: zp ZP_BYTE:4 [ current_xpos#48 current_xpos#105 current_xpos#106 ] 11.67: zp ZP_BYTE:33 [ current_ypos#30 current_ypos#22 current_ypos#14 current_ypos#19 current_ypos#1 ] 11.6: zp ZP_BYTE:56 [ keyboard_modifiers#13 keyboard_modifiers#4 keyboard_modifiers#12 keyboard_modifiers#3 keyboard_modifiers#11 ] 8.96: zp ZP_BYTE:36 [ current_orientation#29 current_orientation#10 current_orientation#19 current_orientation#4 current_orientation#14 ] 8.33: zp ZP_BYTE:81 [ irq_raster_next#12 irq_raster_next#2 irq_raster_next#1 ] 4: zp ZP_BYTE:162 [ irq_cnt#1 ] 2.35: zp ZP_BYTE:2 [ current_movedown_counter#12 current_movedown_counter#10 current_movedown_counter#1 ] 1: zp ZP_BYTE:84 [ irq_sprite_ypos#0 ] 0.33: zp ZP_BYTE:85 [ irq_sprite_ptr#0 ] 0.29: zp ZP_BYTE:86 [ irq_cnt#0 ] 0.25: zp ZP_BYTE:83 [ irq_raster_next#0 ] +Uplift Scope [render_playfield] 2,254.5: zp ZP_WORD:15 [ render_playfield::screen_line#2 render_playfield::screen_line#0 render_playfield::screen_line#1 ] 2,002: zp ZP_BYTE:17 [ render_playfield::c#2 render_playfield::c#1 ] 1,522.6: zp ZP_BYTE:14 [ render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 ] 202: zp ZP_BYTE:104 [ render_playfield::$2 ] 185.17: zp ZP_BYTE:13 [ render_playfield::l#2 render_playfield::l#1 ] Uplift Scope [render_screen_original] 784.43: zp ZP_BYTE:78 [ 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 ] 735.02: zp ZP_WORD:76 [ render_screen_original::screen#6 render_screen_original::screen#5 render_screen_original::screen#4 render_screen_original::screen#7 render_screen_original::screen#3 render_screen_original::screen#1 render_screen_original::screen#2 ] 202: zp ZP_BYTE:157 [ render_screen_original::$3 ] 140.97: zp ZP_WORD:74 [ render_screen_original::orig#2 render_screen_original::orig#4 render_screen_original::orig#1 ] 17.72: zp ZP_BYTE:73 [ render_screen_original::y#6 render_screen_original::y#1 ] Uplift Scope [render_init] 252.5: zp ZP_BYTE:72 [ render_init::c#2 render_init::c#1 ] 202: zp ZP_WORD:155 [ render_init::$18 ] 27.83: zp ZP_WORD:69 [ render_init::line#4 render_init::line#1 ] 24.75: zp ZP_BYTE:66 [ render_init::i#2 render_init::i#1 ] 22: zp ZP_BYTE:154 [ render_init::$11 ] 19.64: zp ZP_BYTE:71 [ render_init::l#4 render_init::l#1 ] 18.33: zp ZP_WORD:67 [ render_init::li#2 render_init::li#1 ] -Uplift Scope [play_spawn_current] 253.5: zp ZP_BYTE:42 [ play_spawn_current::piece_idx#2 play_spawn_current::piece_idx#1 ] 202: zp ZP_BYTE:125 [ play_spawn_current::$1 ] 0.18: zp ZP_BYTE:123 [ play_spawn_current::$3 ] +Uplift Scope [play_spawn_current] 237: zp ZP_BYTE:42 [ play_spawn_current::piece_idx#2 play_spawn_current::piece_idx#1 ] 202: zp ZP_BYTE:125 [ play_spawn_current::$1 ] 0.13: zp ZP_BYTE:123 [ play_spawn_current::$3 ] Uplift Scope [keyboard_matrix_read] 202: zp ZP_BYTE:136 [ keyboard_matrix_read::return#2 ] 103: zp ZP_BYTE:135 [ keyboard_matrix_read::rowid#0 ] 34.33: zp ZP_BYTE:151 [ keyboard_matrix_read::return#0 ] Uplift Scope [sid_rnd] 202: zp ZP_BYTE:124 [ sid_rnd::return#2 ] 34.33: zp ZP_BYTE:126 [ sid_rnd::return#0 ] Uplift Scope [main] 22: zp ZP_BYTE:91 [ main::$12 ] 22: zp ZP_BYTE:95 [ main::$13 ] 22: zp ZP_BYTE:99 [ main::$14 ] 22: zp ZP_BYTE:100 [ main::render#3 ] 4.4: zp ZP_BYTE:92 [ main::render#1 ] 4.4: zp ZP_BYTE:96 [ main::render#2 ] 4: zp ZP_BYTE:88 [ main::key_event#0 ] Uplift Scope [play_init] 23.83: zp ZP_BYTE:60 [ play_init::j#2 play_init::j#1 ] 22: zp ZP_BYTE:152 [ play_init::$1 ] 13.93: zp ZP_BYTE:63 [ play_init::idx#2 play_init::idx#1 ] 13.75: zp ZP_WORD:61 [ play_init::pli#2 play_init::pli#1 ] Uplift Scope [sprites_init] 25.3: zp ZP_BYTE:64 [ sprites_init::s#2 sprites_init::s#1 ] 22: zp ZP_BYTE:153 [ sprites_init::s2#0 ] 15.58: zp ZP_BYTE:65 [ sprites_init::xpos#2 sprites_init::xpos#1 ] -Uplift Scope [play_move_down] 22: zp ZP_BYTE:90 [ play_move_down::return#3 ] 20: zp ZP_BYTE:33 [ play_move_down::movedown#6 play_move_down::movedown#3 play_move_down::movedown#7 play_move_down::movedown#2 play_move_down::movedown#10 ] 6.5: zp ZP_BYTE:89 [ play_move_down::key_event#0 ] 4: zp ZP_BYTE:120 [ play_move_down::$2 ] 4: zp ZP_BYTE:122 [ play_move_down::$12 ] 3.67: zp ZP_BYTE:41 [ play_move_down::return#2 ] -Uplift Scope [play_move_rotate] 22: zp ZP_BYTE:98 [ play_move_rotate::return#4 ] 8.89: zp ZP_BYTE:20 [ play_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#2 ] 7.5: zp ZP_BYTE:97 [ play_move_rotate::key_event#0 ] 4: zp ZP_BYTE:105 [ play_move_rotate::$2 ] 4: zp ZP_BYTE:107 [ play_move_rotate::$6 ] 4: zp ZP_BYTE:108 [ play_move_rotate::$4 ] 3.67: zp ZP_BYTE:19 [ play_move_rotate::return#1 ] -Uplift Scope [play_move_leftright] 22: zp ZP_BYTE:94 [ play_move_leftright::return#4 ] 7.5: zp ZP_BYTE:93 [ play_move_leftright::key_event#0 ] 4: zp ZP_BYTE:116 [ play_move_leftright::$4 ] 4: zp ZP_BYTE:118 [ play_move_leftright::$8 ] 3.67: zp ZP_BYTE:32 [ play_move_leftright::return#1 ] +Uplift Scope [play_move_down] 22: zp ZP_BYTE:90 [ play_move_down::return#3 ] 20: zp ZP_BYTE:32 [ play_move_down::movedown#6 play_move_down::movedown#3 play_move_down::movedown#7 play_move_down::movedown#2 play_move_down::movedown#10 ] 6.5: zp ZP_BYTE:89 [ play_move_down::key_event#0 ] 4: zp ZP_BYTE:120 [ play_move_down::$2 ] 4: zp ZP_BYTE:122 [ play_move_down::$12 ] 3.67: zp ZP_BYTE:41 [ play_move_down::return#2 ] +Uplift Scope [play_move_rotate] 22: zp ZP_BYTE:98 [ play_move_rotate::return#4 ] 8.89: zp ZP_BYTE:19 [ play_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#2 ] 7.5: zp ZP_BYTE:97 [ play_move_rotate::key_event#0 ] 4: zp ZP_BYTE:105 [ play_move_rotate::$2 ] 4: zp ZP_BYTE:107 [ play_move_rotate::$6 ] 4: zp ZP_BYTE:108 [ play_move_rotate::$4 ] 3.67: zp ZP_BYTE:18 [ play_move_rotate::return#1 ] +Uplift Scope [play_move_leftright] 22: zp ZP_BYTE:94 [ play_move_leftright::return#4 ] 7.5: zp ZP_BYTE:93 [ play_move_leftright::key_event#0 ] 4: zp ZP_BYTE:116 [ play_move_leftright::$4 ] 4: zp ZP_BYTE:118 [ play_move_leftright::$8 ] 3.67: zp ZP_BYTE:31 [ play_move_leftright::return#1 ] Uplift Scope [keyboard_event_pressed] 4: zp ZP_BYTE:119 [ keyboard_event_pressed::return#12 ] 4: zp ZP_BYTE:131 [ keyboard_event_pressed::$0 ] 4: zp ZP_BYTE:133 [ keyboard_event_pressed::$1 ] 4: zp ZP_BYTE:138 [ keyboard_event_pressed::return#0 ] 4: zp ZP_BYTE:140 [ keyboard_event_pressed::return#1 ] 4: zp ZP_BYTE:142 [ keyboard_event_pressed::return#2 ] 4: zp ZP_BYTE:144 [ keyboard_event_pressed::return#10 ] 2: zp ZP_BYTE:132 [ keyboard_event_pressed::row_bits#0 ] 1.71: zp ZP_BYTE:134 [ keyboard_event_pressed::return#11 ] 1.33: zp ZP_BYTE:53 [ keyboard_event_pressed::keycode#5 ] Uplift Scope [fill] 33: zp ZP_WORD:79 [ fill::addr#2 fill::addr#1 ] Uplift Scope [keyboard_event_get] 22: zp ZP_BYTE:87 [ keyboard_event_get::return#3 ] 8.33: zp ZP_BYTE:54 [ keyboard_event_get::return#2 keyboard_event_get::return#1 ] @@ -11667,258 +11695,259 @@ Uplift Scope [irq] 12.67: zp ZP_BYTE:82 [ irq::raster_next#2 irq::raster_next#0 Uplift Scope [sid_rnd_init] Uplift Scope [sprites_irq_init] -Uplifting [keyboard_event_scan] best 621477 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:57 [ keyboard_event_scan::col#2 keyboard_event_scan::col#1 ] zp ZP_BYTE:58 [ keyboard_event_scan::keycode#10 keyboard_event_scan::keycode#11 keyboard_event_scan::keycode#14 keyboard_event_scan::keycode#1 keyboard_event_scan::keycode#15 ] zp ZP_BYTE:55 [ keyboard_event_scan::row#2 keyboard_event_scan::row#1 ] zp ZP_BYTE:137 [ keyboard_event_scan::row_scan#0 ] zp ZP_BYTE:139 [ keyboard_event_scan::$14 ] zp ZP_BYTE:141 [ keyboard_event_scan::$18 ] zp ZP_BYTE:143 [ keyboard_event_scan::$22 ] zp ZP_BYTE:145 [ keyboard_event_scan::$26 ] +Uplifting [keyboard_event_scan] best 621389 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:57 [ keyboard_event_scan::col#2 keyboard_event_scan::col#1 ] zp ZP_BYTE:58 [ keyboard_event_scan::keycode#10 keyboard_event_scan::keycode#11 keyboard_event_scan::keycode#14 keyboard_event_scan::keycode#1 keyboard_event_scan::keycode#15 ] zp ZP_BYTE:55 [ keyboard_event_scan::row#2 keyboard_event_scan::row#1 ] zp ZP_BYTE:137 [ keyboard_event_scan::row_scan#0 ] zp ZP_BYTE:139 [ keyboard_event_scan::$14 ] zp ZP_BYTE:141 [ keyboard_event_scan::$18 ] zp ZP_BYTE:143 [ keyboard_event_scan::$22 ] zp ZP_BYTE:145 [ keyboard_event_scan::$26 ] Limited combination testing to 100 combinations of 5308416 possible. -Uplifting [play_collision] best 606477 combination zp ZP_BYTE:28 [ 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:29 [ 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:113 [ play_collision::i#1 ] zp ZP_BYTE:26 [ play_collision::ypos2#2 play_collision::ypos2#0 play_collision::ypos2#1 ] zp ZP_BYTE:27 [ play_collision::l#6 play_collision::l#1 ] zp ZP_WORD:111 [ play_collision::playfield_line#0 ] zp ZP_WORD:109 [ play_collision::piece_gfx#0 ] zp ZP_BYTE:23 [ play_collision::orientation#4 play_collision::orientation#0 play_collision::orientation#1 play_collision::orientation#2 play_collision::orientation#3 ] zp ZP_BYTE:24 [ play_collision::ypos#4 play_collision::ypos#0 play_collision::ypos#1 play_collision::ypos#2 play_collision::ypos#3 ] zp ZP_BYTE:25 [ play_collision::xpos#5 play_collision::xpos#0 play_collision::xpos#1 play_collision::xpos#2 play_collision::xpos#3 ] zp ZP_BYTE:106 [ play_collision::return#13 ] zp ZP_BYTE:115 [ play_collision::return#12 ] zp ZP_BYTE:117 [ play_collision::return#1 ] zp ZP_BYTE:121 [ play_collision::return#0 ] zp ZP_BYTE:31 [ play_collision::return#14 ] +Uplifting [play_collision] best 606389 combination zp ZP_BYTE:27 [ 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:28 [ 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:113 [ play_collision::i#1 ] zp ZP_BYTE:25 [ play_collision::ypos2#2 play_collision::ypos2#0 play_collision::ypos2#1 ] zp ZP_BYTE:26 [ play_collision::l#6 play_collision::l#1 ] zp ZP_WORD:111 [ play_collision::playfield_line#0 ] zp ZP_WORD:109 [ play_collision::piece_gfx#0 ] zp ZP_BYTE:22 [ play_collision::orientation#4 play_collision::orientation#0 play_collision::orientation#1 play_collision::orientation#2 play_collision::orientation#3 ] zp ZP_BYTE:23 [ play_collision::ypos#4 play_collision::ypos#0 play_collision::ypos#1 play_collision::ypos#2 play_collision::ypos#3 ] zp ZP_BYTE:24 [ play_collision::xpos#5 play_collision::xpos#0 play_collision::xpos#1 play_collision::xpos#2 play_collision::xpos#3 ] zp ZP_BYTE:106 [ play_collision::return#13 ] zp ZP_BYTE:115 [ play_collision::return#12 ] zp ZP_BYTE:117 [ play_collision::return#1 ] zp ZP_BYTE:121 [ play_collision::return#0 ] zp ZP_BYTE:30 [ play_collision::return#14 ] Limited combination testing to 100 combinations of 80621568 possible. -Uplifting [render_current] best 591477 combination zp ZP_BYTE:11 [ render_current::i#4 render_current::i#3 render_current::i#8 render_current::i#10 render_current::i#1 ] reg byte x [ render_current::c#2 render_current::c#1 ] zp ZP_BYTE:12 [ render_current::xpos#2 render_current::xpos#0 render_current::xpos#1 ] reg byte a [ render_current::current_cell#0 ] zp ZP_BYTE:10 [ render_current::l#4 render_current::l#1 ] zp ZP_BYTE:9 [ render_current::ypos2#2 render_current::ypos2#0 render_current::ypos2#1 ] zp ZP_WORD:101 [ render_current::screen_line#0 ] +Uplifting [render_current] best 591389 combination zp ZP_BYTE:10 [ render_current::i#4 render_current::i#3 render_current::i#8 render_current::i#10 render_current::i#1 ] reg byte x [ render_current::c#2 render_current::c#1 ] zp ZP_BYTE:11 [ render_current::xpos#2 render_current::xpos#0 render_current::xpos#1 ] reg byte a [ render_current::current_cell#0 ] zp ZP_BYTE:9 [ render_current::l#4 render_current::l#1 ] zp ZP_BYTE:8 [ render_current::ypos2#2 render_current::ypos2#0 render_current::ypos2#1 ] zp ZP_WORD:101 [ render_current::screen_line#0 ] Limited combination testing to 100 combinations of 972 possible. -Uplifting [play_lock_current] best 582477 combination zp ZP_BYTE:50 [ play_lock_current::i#2 play_lock_current::i#3 play_lock_current::i#7 play_lock_current::i#9 ] zp ZP_BYTE:51 [ 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:130 [ play_lock_current::i#1 ] zp ZP_BYTE:49 [ play_lock_current::l#6 play_lock_current::l#1 ] zp ZP_WORD:128 [ play_lock_current::playfield_line#0 ] zp ZP_BYTE:48 [ play_lock_current::ypos2#2 play_lock_current::ypos2#0 play_lock_current::ypos2#1 ] +Uplifting [play_lock_current] best 582389 combination zp ZP_BYTE:50 [ play_lock_current::i#2 play_lock_current::i#3 play_lock_current::i#7 play_lock_current::i#9 ] zp ZP_BYTE:51 [ 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:130 [ play_lock_current::i#1 ] zp ZP_BYTE:49 [ play_lock_current::l#6 play_lock_current::l#1 ] zp ZP_WORD:128 [ play_lock_current::playfield_line#0 ] zp ZP_BYTE:48 [ 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 568777 combination reg byte y [ play_remove_lines::r#2 play_remove_lines::r#3 play_remove_lines::r#1 ] reg byte x [ play_remove_lines::w#6 play_remove_lines::w#4 play_remove_lines::w#12 play_remove_lines::w#11 play_remove_lines::w#1 play_remove_lines::w#2 play_remove_lines::w#3 ] zp ZP_BYTE:45 [ play_remove_lines::x#2 play_remove_lines::x#1 ] zp ZP_BYTE:46 [ play_remove_lines::full#4 play_remove_lines::full#2 ] zp ZP_BYTE:127 [ play_remove_lines::c#0 ] zp ZP_BYTE:43 [ play_remove_lines::y#8 play_remove_lines::y#1 ] +Uplifting [play_remove_lines] best 568689 combination reg byte y [ play_remove_lines::r#2 play_remove_lines::r#3 play_remove_lines::r#1 ] reg byte x [ play_remove_lines::w#6 play_remove_lines::w#4 play_remove_lines::w#12 play_remove_lines::w#11 play_remove_lines::w#1 play_remove_lines::w#2 play_remove_lines::w#3 ] zp ZP_BYTE:45 [ play_remove_lines::x#2 play_remove_lines::x#1 ] zp ZP_BYTE:46 [ play_remove_lines::full#4 play_remove_lines::full#2 ] zp ZP_BYTE:127 [ play_remove_lines::c#0 ] zp ZP_BYTE:43 [ play_remove_lines::y#8 play_remove_lines::y#1 ] Limited combination testing to 100 combinations of 1728 possible. -Uplifting [] best 568740 combination zp ZP_BYTE:59 [ keyboard_events_size#10 keyboard_events_size#29 keyboard_events_size#19 keyboard_events_size#16 keyboard_events_size#13 keyboard_events_size#4 keyboard_events_size#30 keyboard_events_size#2 keyboard_events_size#1 ] zp ZP_BYTE:8 [ current_piece_char#63 current_piece_char#83 current_piece_char#84 ] zp ZP_WORD:6 [ current_piece_gfx#53 current_piece_gfx#95 current_piece_gfx#96 ] zp ZP_WORD:37 [ current_piece_gfx#27 current_piece_gfx#10 current_piece_gfx#15 current_piece_gfx#17 current_piece_gfx#4 current_piece_gfx#14 ] zp ZP_BYTE:40 [ current_piece_char#21 current_piece_char#16 current_piece_char#11 current_piece_char#13 ] zp ZP_WORD:21 [ current_piece#12 current_piece#73 current_piece#74 current_piece#75 current_piece#76 ] reg byte a [ keyboard_modifiers#5 ] zp ZP_BYTE:163 [ irq_sprite_ypos#2 ] zp ZP_BYTE:164 [ irq_sprite_ptr#2 ] zp ZP_BYTE:166 [ irq_cnt#13 ] zp ZP_BYTE:167 [ irq_sprite_ypos#1 ] zp ZP_BYTE:168 [ irq_sprite_ptr#1 ] reg byte x [ current_ypos#10 current_ypos#78 ] zp ZP_BYTE:39 [ current_xpos#34 current_xpos#11 current_xpos#20 current_xpos#5 current_xpos#16 current_xpos#3 ] zp ZP_WORD:34 [ current_piece#20 current_piece#77 current_piece#16 current_piece#10 current_piece#72 ] zp ZP_BYTE:5 [ current_xpos#48 current_xpos#104 ] zp ZP_BYTE:56 [ keyboard_modifiers#13 keyboard_modifiers#4 keyboard_modifiers#12 keyboard_modifiers#3 keyboard_modifiers#11 ] zp ZP_BYTE:2 [ current_ypos#22 current_ypos#14 current_ypos#30 current_ypos#1 ] zp ZP_BYTE:36 [ current_orientation#29 current_orientation#10 current_orientation#19 current_orientation#4 current_orientation#14 ] zp ZP_BYTE:81 [ irq_raster_next#12 irq_raster_next#2 irq_raster_next#1 ] zp ZP_BYTE:162 [ irq_cnt#1 ] zp ZP_BYTE:3 [ current_movedown_counter#12 current_movedown_counter#10 current_movedown_counter#1 ] zp ZP_BYTE:84 [ irq_sprite_ypos#0 ] zp ZP_BYTE:85 [ irq_sprite_ptr#0 ] zp ZP_BYTE:86 [ irq_cnt#0 ] zp ZP_BYTE:83 [ irq_raster_next#0 ] +Uplifting [] best 568652 combination zp ZP_BYTE:59 [ keyboard_events_size#10 keyboard_events_size#29 keyboard_events_size#19 keyboard_events_size#16 keyboard_events_size#13 keyboard_events_size#4 keyboard_events_size#30 keyboard_events_size#2 keyboard_events_size#1 ] zp ZP_BYTE:7 [ current_piece_char#63 current_piece_char#83 current_piece_char#84 ] zp ZP_WORD:5 [ current_piece_gfx#53 current_piece_gfx#95 current_piece_gfx#96 ] zp ZP_WORD:37 [ current_piece_gfx#27 current_piece_gfx#10 current_piece_gfx#15 current_piece_gfx#17 current_piece_gfx#4 current_piece_gfx#14 ] zp ZP_BYTE:40 [ current_piece_char#21 current_piece_char#16 current_piece_char#11 current_piece_char#13 ] zp ZP_WORD:20 [ current_piece#12 current_piece#73 current_piece#74 current_piece#75 current_piece#76 ] reg byte x [ current_ypos#10 current_ypos#79 current_ypos#80 ] reg byte a [ keyboard_modifiers#5 ] zp ZP_BYTE:163 [ irq_sprite_ypos#2 ] zp ZP_BYTE:164 [ irq_sprite_ptr#2 ] zp ZP_BYTE:166 [ irq_cnt#13 ] zp ZP_BYTE:167 [ irq_sprite_ypos#1 ] zp ZP_BYTE:168 [ irq_sprite_ptr#1 ] zp ZP_BYTE:39 [ current_xpos#34 current_xpos#11 current_xpos#20 current_xpos#24 current_xpos#5 current_xpos#16 current_xpos#3 ] zp ZP_WORD:34 [ current_piece#20 current_piece#77 current_piece#16 current_piece#10 current_piece#72 ] zp ZP_BYTE:4 [ current_xpos#48 current_xpos#105 current_xpos#106 ] zp ZP_BYTE:33 [ current_ypos#30 current_ypos#22 current_ypos#14 current_ypos#19 current_ypos#1 ] zp ZP_BYTE:56 [ keyboard_modifiers#13 keyboard_modifiers#4 keyboard_modifiers#12 keyboard_modifiers#3 keyboard_modifiers#11 ] zp ZP_BYTE:36 [ current_orientation#29 current_orientation#10 current_orientation#19 current_orientation#4 current_orientation#14 ] zp ZP_BYTE:81 [ irq_raster_next#12 irq_raster_next#2 irq_raster_next#1 ] zp ZP_BYTE:162 [ irq_cnt#1 ] zp ZP_BYTE:2 [ current_movedown_counter#12 current_movedown_counter#10 current_movedown_counter#1 ] zp ZP_BYTE:84 [ irq_sprite_ypos#0 ] zp ZP_BYTE:85 [ irq_sprite_ptr#0 ] zp ZP_BYTE:86 [ irq_cnt#0 ] zp ZP_BYTE:83 [ irq_raster_next#0 ] Limited combination testing to 100 combinations of 20736 possible. -Uplifting [render_playfield] best 559340 combination zp ZP_WORD:16 [ render_playfield::screen_line#2 render_playfield::screen_line#0 render_playfield::screen_line#1 ] reg byte x [ render_playfield::c#2 render_playfield::c#1 ] zp ZP_BYTE:15 [ render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 ] reg byte a [ render_playfield::$2 ] zp ZP_BYTE:14 [ render_playfield::l#2 render_playfield::l#1 ] -Uplifting [render_screen_original] best 556640 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:76 [ render_screen_original::screen#6 render_screen_original::screen#5 render_screen_original::screen#4 render_screen_original::screen#7 render_screen_original::screen#3 render_screen_original::screen#1 render_screen_original::screen#2 ] reg byte a [ render_screen_original::$3 ] zp ZP_WORD:74 [ render_screen_original::orig#2 render_screen_original::orig#4 render_screen_original::orig#1 ] zp ZP_BYTE:73 [ render_screen_original::y#6 render_screen_original::y#1 ] -Uplifting [render_init] best 555500 combination reg byte x [ render_init::c#2 render_init::c#1 ] zp ZP_WORD:155 [ render_init::$18 ] zp ZP_WORD:69 [ render_init::line#4 render_init::line#1 ] reg byte x [ render_init::i#2 render_init::i#1 ] reg byte a [ render_init::$11 ] zp ZP_BYTE:71 [ render_init::l#4 render_init::l#1 ] zp ZP_WORD:67 [ render_init::li#2 render_init::li#1 ] -Uplifting [play_spawn_current] best 554196 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:123 [ play_spawn_current::$3 ] -Uplifting [keyboard_matrix_read] best 552990 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 552087 combination reg byte a [ sid_rnd::return#2 ] reg byte a [ sid_rnd::return#0 ] -Uplifting [main] best 551847 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:92 [ main::render#1 ] zp ZP_BYTE:96 [ main::render#2 ] zp ZP_BYTE:88 [ main::key_event#0 ] +Uplifting [render_playfield] best 559252 combination zp ZP_WORD:15 [ render_playfield::screen_line#2 render_playfield::screen_line#0 render_playfield::screen_line#1 ] reg byte x [ render_playfield::c#2 render_playfield::c#1 ] zp ZP_BYTE:14 [ render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 ] reg byte a [ render_playfield::$2 ] zp ZP_BYTE:13 [ render_playfield::l#2 render_playfield::l#1 ] +Uplifting [render_screen_original] best 556552 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:76 [ render_screen_original::screen#6 render_screen_original::screen#5 render_screen_original::screen#4 render_screen_original::screen#7 render_screen_original::screen#3 render_screen_original::screen#1 render_screen_original::screen#2 ] reg byte a [ render_screen_original::$3 ] zp ZP_WORD:74 [ render_screen_original::orig#2 render_screen_original::orig#4 render_screen_original::orig#1 ] zp ZP_BYTE:73 [ render_screen_original::y#6 render_screen_original::y#1 ] +Uplifting [render_init] best 555412 combination reg byte x [ render_init::c#2 render_init::c#1 ] zp ZP_WORD:155 [ render_init::$18 ] zp ZP_WORD:69 [ render_init::line#4 render_init::line#1 ] reg byte x [ render_init::i#2 render_init::i#1 ] reg byte a [ render_init::$11 ] zp ZP_BYTE:71 [ render_init::l#4 render_init::l#1 ] zp ZP_WORD:67 [ render_init::li#2 render_init::li#1 ] +Uplifting [play_spawn_current] best 554102 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:123 [ play_spawn_current::$3 ] +Uplifting [keyboard_matrix_read] best 552896 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 551993 combination reg byte a [ sid_rnd::return#2 ] reg byte a [ sid_rnd::return#0 ] +Uplifting [main] best 551753 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:92 [ main::render#1 ] zp ZP_BYTE:96 [ main::render#2 ] zp ZP_BYTE:88 [ main::key_event#0 ] Limited combination testing to 100 combinations of 6912 possible. -Uplifting [play_init] best 551677 combination reg byte x [ play_init::j#2 play_init::j#1 ] reg byte a [ play_init::$1 ] zp ZP_BYTE:63 [ play_init::idx#2 play_init::idx#1 ] zp ZP_WORD:61 [ play_init::pli#2 play_init::pli#1 ] -Uplifting [sprites_init] best 551507 combination reg byte x [ sprites_init::s#2 sprites_init::s#1 ] reg byte a [ sprites_init::s2#0 ] zp ZP_BYTE:65 [ sprites_init::xpos#2 sprites_init::xpos#1 ] -Uplifting [play_move_down] best 551393 combination reg byte a [ play_move_down::return#3 ] reg byte x [ play_move_down::movedown#6 play_move_down::movedown#3 play_move_down::movedown#7 play_move_down::movedown#2 play_move_down::movedown#10 ] reg byte a [ play_move_down::key_event#0 ] reg byte a [ play_move_down::$2 ] zp ZP_BYTE:122 [ play_move_down::$12 ] zp ZP_BYTE:41 [ play_move_down::return#2 ] +Uplifting [play_init] best 551583 combination reg byte x [ play_init::j#2 play_init::j#1 ] reg byte a [ play_init::$1 ] zp ZP_BYTE:63 [ play_init::idx#2 play_init::idx#1 ] zp ZP_WORD:61 [ play_init::pli#2 play_init::pli#1 ] +Uplifting [sprites_init] best 551413 combination reg byte x [ sprites_init::s#2 sprites_init::s#1 ] reg byte a [ sprites_init::s2#0 ] zp ZP_BYTE:65 [ sprites_init::xpos#2 sprites_init::xpos#1 ] +Uplifting [play_move_down] best 551299 combination reg byte a [ play_move_down::return#3 ] reg byte x [ play_move_down::movedown#6 play_move_down::movedown#3 play_move_down::movedown#7 play_move_down::movedown#2 play_move_down::movedown#10 ] reg byte a [ play_move_down::key_event#0 ] reg byte a [ play_move_down::$2 ] zp ZP_BYTE:122 [ play_move_down::$12 ] zp ZP_BYTE:41 [ play_move_down::return#2 ] Limited combination testing to 100 combinations of 3072 possible. -Uplifting [play_move_rotate] best 551291 combination reg byte a [ play_move_rotate::return#4 ] zp ZP_BYTE:20 [ play_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#2 ] reg byte a [ play_move_rotate::key_event#0 ] reg byte a [ play_move_rotate::$2 ] zp ZP_BYTE:107 [ play_move_rotate::$6 ] zp ZP_BYTE:108 [ play_move_rotate::$4 ] zp ZP_BYTE:19 [ play_move_rotate::return#1 ] +Uplifting [play_move_rotate] best 551197 combination reg byte a [ play_move_rotate::return#4 ] zp ZP_BYTE:19 [ play_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#2 ] reg byte a [ play_move_rotate::key_event#0 ] reg byte a [ play_move_rotate::$2 ] zp ZP_BYTE:107 [ play_move_rotate::$6 ] zp ZP_BYTE:108 [ play_move_rotate::$4 ] zp ZP_BYTE:18 [ play_move_rotate::return#1 ] Limited combination testing to 100 combinations of 12288 possible. -Uplifting [play_move_leftright] best 551183 combination reg byte a [ play_move_leftright::return#4 ] reg byte a [ play_move_leftright::key_event#0 ] reg byte a [ play_move_leftright::$4 ] reg byte a [ play_move_leftright::$8 ] zp ZP_BYTE:32 [ play_move_leftright::return#1 ] +Uplifting [play_move_leftright] best 551089 combination reg byte a [ play_move_leftright::return#4 ] reg byte a [ play_move_leftright::key_event#0 ] reg byte a [ play_move_leftright::$4 ] reg byte a [ play_move_leftright::$8 ] zp ZP_BYTE:31 [ play_move_leftright::return#1 ] Limited combination testing to 100 combinations of 1024 possible. -Uplifting [keyboard_event_pressed] best 551163 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:140 [ keyboard_event_pressed::return#1 ] zp ZP_BYTE:142 [ keyboard_event_pressed::return#2 ] zp ZP_BYTE:144 [ keyboard_event_pressed::return#10 ] zp ZP_BYTE:132 [ keyboard_event_pressed::row_bits#0 ] zp ZP_BYTE:134 [ keyboard_event_pressed::return#11 ] zp ZP_BYTE:53 [ keyboard_event_pressed::keycode#5 ] +Uplifting [keyboard_event_pressed] best 551069 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:140 [ keyboard_event_pressed::return#1 ] zp ZP_BYTE:142 [ keyboard_event_pressed::return#2 ] zp ZP_BYTE:144 [ keyboard_event_pressed::return#10 ] zp ZP_BYTE:132 [ keyboard_event_pressed::row_bits#0 ] zp ZP_BYTE:134 [ keyboard_event_pressed::return#11 ] zp ZP_BYTE:53 [ keyboard_event_pressed::keycode#5 ] Limited combination testing to 100 combinations of 589824 possible. -Uplifting [fill] best 551163 combination zp ZP_WORD:79 [ fill::addr#2 fill::addr#1 ] -Uplifting [keyboard_event_get] best 551067 combination reg byte a [ keyboard_event_get::return#3 ] reg byte a [ keyboard_event_get::return#2 keyboard_event_get::return#1 ] -Uplifting [irq] best 551038 combination reg byte x [ irq::raster_next#2 irq::raster_next#0 irq::raster_next#1 ] reg byte x [ irq::ptr#2 ] reg byte a [ irq::$3 ] reg byte a [ irq::ptr#0 ] zp ZP_BYTE:160 [ irq::ptr#1 ] zp ZP_BYTE:158 [ irq::ypos#0 ] +Uplifting [fill] best 551069 combination zp ZP_WORD:79 [ fill::addr#2 fill::addr#1 ] +Uplifting [keyboard_event_get] best 550973 combination reg byte a [ keyboard_event_get::return#3 ] reg byte a [ keyboard_event_get::return#2 keyboard_event_get::return#1 ] +Uplifting [irq] best 550944 combination reg byte x [ irq::raster_next#2 irq::raster_next#0 irq::raster_next#1 ] reg byte x [ irq::ptr#2 ] reg byte a [ irq::$3 ] reg byte a [ irq::ptr#0 ] zp ZP_BYTE:160 [ irq::ptr#1 ] zp ZP_BYTE:158 [ irq::ypos#0 ] Limited combination testing to 100 combinations of 3072 possible. -Uplifting [sid_rnd_init] best 551038 combination -Uplifting [sprites_irq_init] best 551038 combination +Uplifting [sid_rnd_init] best 550944 combination +Uplifting [sprites_irq_init] best 550944 combination Attempting to uplift remaining variables inzp ZP_BYTE:59 [ keyboard_events_size#10 keyboard_events_size#29 keyboard_events_size#19 keyboard_events_size#16 keyboard_events_size#13 keyboard_events_size#4 keyboard_events_size#30 keyboard_events_size#2 keyboard_events_size#1 ] -Uplifting [] best 551038 combination zp ZP_BYTE:59 [ keyboard_events_size#10 keyboard_events_size#29 keyboard_events_size#19 keyboard_events_size#16 keyboard_events_size#13 keyboard_events_size#4 keyboard_events_size#30 keyboard_events_size#2 keyboard_events_size#1 ] -Attempting to uplift remaining variables inzp ZP_BYTE:28 [ play_collision::i#2 play_collision::i#3 play_collision::i#11 play_collision::i#13 ] -Uplifting [play_collision] best 551038 combination zp ZP_BYTE:28 [ play_collision::i#2 play_collision::i#3 play_collision::i#11 play_collision::i#13 ] +Uplifting [] best 550944 combination zp ZP_BYTE:59 [ keyboard_events_size#10 keyboard_events_size#29 keyboard_events_size#19 keyboard_events_size#16 keyboard_events_size#13 keyboard_events_size#4 keyboard_events_size#30 keyboard_events_size#2 keyboard_events_size#1 ] +Attempting to uplift remaining variables inzp ZP_BYTE:27 [ play_collision::i#2 play_collision::i#3 play_collision::i#11 play_collision::i#13 ] +Uplifting [play_collision] best 550944 combination zp ZP_BYTE:27 [ play_collision::i#2 play_collision::i#3 play_collision::i#11 play_collision::i#13 ] Attempting to uplift remaining variables inzp ZP_BYTE:50 [ 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 551038 combination zp ZP_BYTE:50 [ 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:11 [ render_current::i#4 render_current::i#3 render_current::i#8 render_current::i#10 render_current::i#1 ] -Uplifting [render_current] best 551038 combination zp ZP_BYTE:11 [ render_current::i#4 render_current::i#3 render_current::i#8 render_current::i#10 render_current::i#1 ] +Uplifting [play_lock_current] best 550944 combination zp ZP_BYTE:50 [ 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:10 [ render_current::i#4 render_current::i#3 render_current::i#8 render_current::i#10 render_current::i#1 ] +Uplifting [render_current] best 550944 combination zp ZP_BYTE:10 [ 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:57 [ keyboard_event_scan::col#2 keyboard_event_scan::col#1 ] -Uplifting [keyboard_event_scan] best 536038 combination reg byte x [ keyboard_event_scan::col#2 keyboard_event_scan::col#1 ] +Uplifting [keyboard_event_scan] best 535944 combination reg byte x [ keyboard_event_scan::col#2 keyboard_event_scan::col#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:45 [ play_remove_lines::x#2 play_remove_lines::x#1 ] -Uplifting [play_remove_lines] best 536038 combination zp ZP_BYTE:45 [ play_remove_lines::x#2 play_remove_lines::x#1 ] -Attempting to uplift remaining variables inzp ZP_BYTE:12 [ render_current::xpos#2 render_current::xpos#0 render_current::xpos#1 ] -Uplifting [render_current] best 536038 combination zp ZP_BYTE:12 [ render_current::xpos#2 render_current::xpos#0 render_current::xpos#1 ] -Attempting to uplift remaining variables inzp ZP_BYTE:15 [ render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 ] -Uplifting [render_playfield] best 536038 combination zp ZP_BYTE:15 [ render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 ] +Uplifting [play_remove_lines] best 535944 combination zp ZP_BYTE:45 [ play_remove_lines::x#2 play_remove_lines::x#1 ] +Attempting to uplift remaining variables inzp ZP_BYTE:11 [ render_current::xpos#2 render_current::xpos#0 render_current::xpos#1 ] +Uplifting [render_current] best 535944 combination zp ZP_BYTE:11 [ render_current::xpos#2 render_current::xpos#0 render_current::xpos#1 ] +Attempting to uplift remaining variables inzp ZP_BYTE:14 [ render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 ] +Uplifting [render_playfield] best 535944 combination zp ZP_BYTE:14 [ render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:51 [ play_lock_current::col#2 play_lock_current::col#0 play_lock_current::col#1 ] -Uplifting [play_lock_current] best 536038 combination zp ZP_BYTE:51 [ play_lock_current::col#2 play_lock_current::col#0 play_lock_current::col#1 ] -Attempting to uplift remaining variables inzp ZP_BYTE:29 [ play_collision::col#2 play_collision::col#9 play_collision::col#1 ] -Uplifting [play_collision] best 536038 combination zp ZP_BYTE:29 [ play_collision::col#2 play_collision::col#9 play_collision::col#1 ] +Uplifting [play_lock_current] best 535944 combination zp ZP_BYTE:51 [ play_lock_current::col#2 play_lock_current::col#0 play_lock_current::col#1 ] +Attempting to uplift remaining variables inzp ZP_BYTE:28 [ play_collision::col#2 play_collision::col#9 play_collision::col#1 ] +Uplifting [play_collision] best 535944 combination zp ZP_BYTE:28 [ play_collision::col#2 play_collision::col#9 play_collision::col#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:58 [ keyboard_event_scan::keycode#10 keyboard_event_scan::keycode#11 keyboard_event_scan::keycode#14 keyboard_event_scan::keycode#1 keyboard_event_scan::keycode#15 ] -Uplifting [keyboard_event_scan] best 536038 combination zp ZP_BYTE:58 [ keyboard_event_scan::keycode#10 keyboard_event_scan::keycode#11 keyboard_event_scan::keycode#14 keyboard_event_scan::keycode#1 keyboard_event_scan::keycode#15 ] +Uplifting [keyboard_event_scan] best 535944 combination zp ZP_BYTE:58 [ keyboard_event_scan::keycode#10 keyboard_event_scan::keycode#11 keyboard_event_scan::keycode#14 keyboard_event_scan::keycode#1 keyboard_event_scan::keycode#15 ] Attempting to uplift remaining variables inzp ZP_BYTE:46 [ play_remove_lines::full#4 play_remove_lines::full#2 ] -Uplifting [play_remove_lines] best 536038 combination zp ZP_BYTE:46 [ play_remove_lines::full#4 play_remove_lines::full#2 ] +Uplifting [play_remove_lines] best 535944 combination zp ZP_BYTE:46 [ play_remove_lines::full#4 play_remove_lines::full#2 ] Attempting to uplift remaining variables inzp ZP_BYTE:127 [ play_remove_lines::c#0 ] -Uplifting [play_remove_lines] best 536038 combination zp ZP_BYTE:127 [ play_remove_lines::c#0 ] +Uplifting [play_remove_lines] best 535944 combination zp ZP_BYTE:127 [ play_remove_lines::c#0 ] Attempting to uplift remaining variables inzp ZP_BYTE:130 [ play_lock_current::i#1 ] -Uplifting [play_lock_current] best 536038 combination zp ZP_BYTE:130 [ play_lock_current::i#1 ] +Uplifting [play_lock_current] best 535944 combination zp ZP_BYTE:130 [ play_lock_current::i#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:55 [ keyboard_event_scan::row#2 keyboard_event_scan::row#1 ] -Uplifting [keyboard_event_scan] best 536038 combination zp ZP_BYTE:55 [ keyboard_event_scan::row#2 keyboard_event_scan::row#1 ] -Attempting to uplift remaining variables inzp ZP_BYTE:14 [ render_playfield::l#2 render_playfield::l#1 ] -Uplifting [render_playfield] best 536038 combination zp ZP_BYTE:14 [ render_playfield::l#2 render_playfield::l#1 ] +Uplifting [keyboard_event_scan] best 535944 combination zp ZP_BYTE:55 [ keyboard_event_scan::row#2 keyboard_event_scan::row#1 ] +Attempting to uplift remaining variables inzp ZP_BYTE:13 [ render_playfield::l#2 render_playfield::l#1 ] +Uplifting [render_playfield] best 535944 combination zp ZP_BYTE:13 [ render_playfield::l#2 render_playfield::l#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:43 [ play_remove_lines::y#8 play_remove_lines::y#1 ] -Uplifting [play_remove_lines] best 536038 combination zp ZP_BYTE:43 [ play_remove_lines::y#8 play_remove_lines::y#1 ] -Attempting to uplift remaining variables inzp ZP_BYTE:10 [ render_current::l#4 render_current::l#1 ] -Uplifting [render_current] best 536038 combination zp ZP_BYTE:10 [ render_current::l#4 render_current::l#1 ] +Uplifting [play_remove_lines] best 535944 combination zp ZP_BYTE:43 [ play_remove_lines::y#8 play_remove_lines::y#1 ] +Attempting to uplift remaining variables inzp ZP_BYTE:9 [ render_current::l#4 render_current::l#1 ] +Uplifting [render_current] best 535944 combination zp ZP_BYTE:9 [ render_current::l#4 render_current::l#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:113 [ play_collision::i#1 ] -Uplifting [play_collision] best 536038 combination zp ZP_BYTE:113 [ play_collision::i#1 ] -Attempting to uplift remaining variables inzp ZP_BYTE:26 [ play_collision::ypos2#2 play_collision::ypos2#0 play_collision::ypos2#1 ] -Uplifting [play_collision] best 536038 combination zp ZP_BYTE:26 [ play_collision::ypos2#2 play_collision::ypos2#0 play_collision::ypos2#1 ] +Uplifting [play_collision] best 535944 combination zp ZP_BYTE:113 [ play_collision::i#1 ] +Attempting to uplift remaining variables inzp ZP_BYTE:25 [ play_collision::ypos2#2 play_collision::ypos2#0 play_collision::ypos2#1 ] +Uplifting [play_collision] best 535944 combination zp ZP_BYTE:25 [ play_collision::ypos2#2 play_collision::ypos2#0 play_collision::ypos2#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:137 [ keyboard_event_scan::row_scan#0 ] -Uplifting [keyboard_event_scan] best 536038 combination zp ZP_BYTE:137 [ keyboard_event_scan::row_scan#0 ] +Uplifting [keyboard_event_scan] best 535944 combination zp ZP_BYTE:137 [ keyboard_event_scan::row_scan#0 ] Attempting to uplift remaining variables inzp ZP_BYTE:49 [ play_lock_current::l#6 play_lock_current::l#1 ] -Uplifting [play_lock_current] best 536038 combination zp ZP_BYTE:49 [ play_lock_current::l#6 play_lock_current::l#1 ] -Attempting to uplift remaining variables inzp ZP_BYTE:27 [ play_collision::l#6 play_collision::l#1 ] -Uplifting [play_collision] best 536038 combination zp ZP_BYTE:27 [ play_collision::l#6 play_collision::l#1 ] -Attempting to uplift remaining variables inzp ZP_BYTE:9 [ render_current::ypos2#2 render_current::ypos2#0 render_current::ypos2#1 ] -Uplifting [render_current] best 536038 combination zp ZP_BYTE:9 [ render_current::ypos2#2 render_current::ypos2#0 render_current::ypos2#1 ] +Uplifting [play_lock_current] best 535944 combination zp ZP_BYTE:49 [ play_lock_current::l#6 play_lock_current::l#1 ] +Attempting to uplift remaining variables inzp ZP_BYTE:26 [ play_collision::l#6 play_collision::l#1 ] +Uplifting [play_collision] best 535944 combination zp ZP_BYTE:26 [ play_collision::l#6 play_collision::l#1 ] +Attempting to uplift remaining variables inzp ZP_BYTE:8 [ render_current::ypos2#2 render_current::ypos2#0 render_current::ypos2#1 ] +Uplifting [render_current] best 535944 combination zp ZP_BYTE:8 [ render_current::ypos2#2 render_current::ypos2#0 render_current::ypos2#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:48 [ play_lock_current::ypos2#2 play_lock_current::ypos2#0 play_lock_current::ypos2#1 ] -Uplifting [play_lock_current] best 536038 combination zp ZP_BYTE:48 [ play_lock_current::ypos2#2 play_lock_current::ypos2#0 play_lock_current::ypos2#1 ] -Attempting to uplift remaining variables inzp ZP_BYTE:8 [ current_piece_char#63 current_piece_char#83 current_piece_char#84 ] -Uplifting [] best 536038 combination zp ZP_BYTE:8 [ current_piece_char#63 current_piece_char#83 current_piece_char#84 ] +Uplifting [play_lock_current] best 535944 combination zp ZP_BYTE:48 [ play_lock_current::ypos2#2 play_lock_current::ypos2#0 play_lock_current::ypos2#1 ] +Attempting to uplift remaining variables inzp ZP_BYTE:7 [ current_piece_char#63 current_piece_char#83 current_piece_char#84 ] +Uplifting [] best 535944 combination zp ZP_BYTE:7 [ current_piece_char#63 current_piece_char#83 current_piece_char#84 ] Attempting to uplift remaining variables inzp ZP_BYTE:40 [ current_piece_char#21 current_piece_char#16 current_piece_char#11 current_piece_char#13 ] -Uplifting [] best 536038 combination zp ZP_BYTE:40 [ current_piece_char#21 current_piece_char#16 current_piece_char#11 current_piece_char#13 ] +Uplifting [] best 535944 combination zp ZP_BYTE:40 [ current_piece_char#21 current_piece_char#16 current_piece_char#11 current_piece_char#13 ] Attempting to uplift remaining variables inzp ZP_BYTE:163 [ irq_sprite_ypos#2 ] -Uplifting [] best 536038 combination zp ZP_BYTE:163 [ irq_sprite_ypos#2 ] +Uplifting [] best 535944 combination zp ZP_BYTE:163 [ irq_sprite_ypos#2 ] Attempting to uplift remaining variables inzp ZP_BYTE:164 [ irq_sprite_ptr#2 ] -Uplifting [] best 536038 combination zp ZP_BYTE:164 [ irq_sprite_ptr#2 ] +Uplifting [] best 535944 combination zp ZP_BYTE:164 [ irq_sprite_ptr#2 ] Attempting to uplift remaining variables inzp ZP_BYTE:166 [ irq_cnt#13 ] -Uplifting [] best 536038 combination zp ZP_BYTE:166 [ irq_cnt#13 ] +Uplifting [] best 535944 combination zp ZP_BYTE:166 [ irq_cnt#13 ] Attempting to uplift remaining variables inzp ZP_BYTE:167 [ irq_sprite_ypos#1 ] -Uplifting [] best 536038 combination zp ZP_BYTE:167 [ irq_sprite_ypos#1 ] +Uplifting [] best 535944 combination zp ZP_BYTE:167 [ irq_sprite_ypos#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:168 [ irq_sprite_ptr#1 ] -Uplifting [] best 536038 combination zp ZP_BYTE:168 [ irq_sprite_ptr#1 ] +Uplifting [] best 535944 combination zp ZP_BYTE:168 [ irq_sprite_ptr#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:71 [ render_init::l#4 render_init::l#1 ] -Uplifting [render_init] best 536038 combination zp ZP_BYTE:71 [ render_init::l#4 render_init::l#1 ] -Attempting to uplift remaining variables inzp ZP_BYTE:23 [ play_collision::orientation#4 play_collision::orientation#0 play_collision::orientation#1 play_collision::orientation#2 play_collision::orientation#3 ] -Uplifting [play_collision] best 536025 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 [render_init] best 535944 combination zp ZP_BYTE:71 [ render_init::l#4 render_init::l#1 ] +Attempting to uplift remaining variables inzp ZP_BYTE:39 [ current_xpos#34 current_xpos#11 current_xpos#20 current_xpos#24 current_xpos#5 current_xpos#16 current_xpos#3 ] +Uplifting [] best 535944 combination zp ZP_BYTE:39 [ current_xpos#34 current_xpos#11 current_xpos#20 current_xpos#24 current_xpos#5 current_xpos#16 current_xpos#3 ] +Attempting to uplift remaining variables inzp ZP_BYTE:22 [ play_collision::orientation#4 play_collision::orientation#0 play_collision::orientation#1 play_collision::orientation#2 play_collision::orientation#3 ] +Uplifting [play_collision] best 535931 combination reg byte x [ play_collision::orientation#4 play_collision::orientation#0 play_collision::orientation#1 play_collision::orientation#2 play_collision::orientation#3 ] Attempting to uplift remaining variables inzp ZP_BYTE:73 [ render_screen_original::y#6 render_screen_original::y#1 ] -Uplifting [render_screen_original] best 536025 combination zp ZP_BYTE:73 [ render_screen_original::y#6 render_screen_original::y#1 ] -Attempting to uplift remaining variables inzp ZP_BYTE:39 [ current_xpos#34 current_xpos#11 current_xpos#20 current_xpos#5 current_xpos#16 current_xpos#3 ] -Uplifting [] best 536025 combination zp ZP_BYTE:39 [ current_xpos#34 current_xpos#11 current_xpos#20 current_xpos#5 current_xpos#16 current_xpos#3 ] +Uplifting [render_screen_original] best 535931 combination zp ZP_BYTE:73 [ render_screen_original::y#6 render_screen_original::y#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:65 [ sprites_init::xpos#2 sprites_init::xpos#1 ] -Uplifting [sprites_init] best 536025 combination zp ZP_BYTE:65 [ sprites_init::xpos#2 sprites_init::xpos#1 ] +Uplifting [sprites_init] best 535931 combination zp ZP_BYTE:65 [ sprites_init::xpos#2 sprites_init::xpos#1 ] +Attempting to uplift remaining variables inzp ZP_BYTE:4 [ current_xpos#48 current_xpos#105 current_xpos#106 ] +Uplifting [] best 535931 combination zp ZP_BYTE:4 [ current_xpos#48 current_xpos#105 current_xpos#106 ] Attempting to uplift remaining variables inzp ZP_BYTE:63 [ play_init::idx#2 play_init::idx#1 ] -Uplifting [play_init] best 536025 combination zp ZP_BYTE:63 [ play_init::idx#2 play_init::idx#1 ] -Attempting to uplift remaining variables inzp ZP_BYTE:5 [ current_xpos#48 current_xpos#104 ] -Uplifting [] best 536025 combination zp ZP_BYTE:5 [ current_xpos#48 current_xpos#104 ] +Uplifting [play_init] best 535931 combination zp ZP_BYTE:63 [ play_init::idx#2 play_init::idx#1 ] +Attempting to uplift remaining variables inzp ZP_BYTE:33 [ current_ypos#30 current_ypos#22 current_ypos#14 current_ypos#19 current_ypos#1 ] +Uplifting [] best 535931 combination zp ZP_BYTE:33 [ current_ypos#30 current_ypos#22 current_ypos#14 current_ypos#19 current_ypos#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:56 [ keyboard_modifiers#13 keyboard_modifiers#4 keyboard_modifiers#12 keyboard_modifiers#3 keyboard_modifiers#11 ] -Uplifting [] best 536014 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:24 [ play_collision::ypos#4 play_collision::ypos#0 play_collision::ypos#1 play_collision::ypos#2 play_collision::ypos#3 ] -Uplifting [play_collision] best 536001 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:25 [ play_collision::xpos#5 play_collision::xpos#0 play_collision::xpos#1 play_collision::xpos#2 play_collision::xpos#3 ] -Uplifting [play_collision] best 536001 combination zp ZP_BYTE:25 [ 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:2 [ current_ypos#22 current_ypos#14 current_ypos#30 current_ypos#1 ] -Uplifting [] best 536001 combination zp ZP_BYTE:2 [ current_ypos#22 current_ypos#14 current_ypos#30 current_ypos#1 ] +Uplifting [] best 535920 combination reg byte x [ keyboard_modifiers#13 keyboard_modifiers#4 keyboard_modifiers#12 keyboard_modifiers#3 keyboard_modifiers#11 ] +Attempting to uplift remaining variables inzp ZP_BYTE:23 [ play_collision::ypos#4 play_collision::ypos#0 play_collision::ypos#1 play_collision::ypos#2 play_collision::ypos#3 ] +Uplifting [play_collision] best 535907 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:24 [ play_collision::xpos#5 play_collision::xpos#0 play_collision::xpos#1 play_collision::xpos#2 play_collision::xpos#3 ] +Uplifting [play_collision] best 535907 combination zp ZP_BYTE:24 [ 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:36 [ current_orientation#29 current_orientation#10 current_orientation#19 current_orientation#4 current_orientation#14 ] -Uplifting [] best 536001 combination zp ZP_BYTE:36 [ current_orientation#29 current_orientation#10 current_orientation#19 current_orientation#4 current_orientation#14 ] -Attempting to uplift remaining variables inzp ZP_BYTE:20 [ play_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#2 ] -Uplifting [play_move_rotate] best 536001 combination zp ZP_BYTE:20 [ play_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#2 ] +Uplifting [] best 535907 combination zp ZP_BYTE:36 [ current_orientation#29 current_orientation#10 current_orientation#19 current_orientation#4 current_orientation#14 ] +Attempting to uplift remaining variables inzp ZP_BYTE:19 [ play_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#2 ] +Uplifting [play_move_rotate] best 535907 combination zp ZP_BYTE:19 [ play_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#2 ] Attempting to uplift remaining variables inzp ZP_BYTE:81 [ irq_raster_next#12 irq_raster_next#2 irq_raster_next#1 ] -Uplifting [] best 536001 combination zp ZP_BYTE:81 [ irq_raster_next#12 irq_raster_next#2 irq_raster_next#1 ] +Uplifting [] best 535907 combination zp ZP_BYTE:81 [ irq_raster_next#12 irq_raster_next#2 irq_raster_next#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:92 [ main::render#1 ] -Uplifting [main] best 536001 combination zp ZP_BYTE:92 [ main::render#1 ] +Uplifting [main] best 535907 combination zp ZP_BYTE:92 [ main::render#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:96 [ main::render#2 ] -Uplifting [main] best 536001 combination zp ZP_BYTE:96 [ main::render#2 ] +Uplifting [main] best 535907 combination zp ZP_BYTE:96 [ main::render#2 ] Attempting to uplift remaining variables inzp ZP_BYTE:88 [ main::key_event#0 ] -Uplifting [main] best 536001 combination zp ZP_BYTE:88 [ main::key_event#0 ] +Uplifting [main] best 535907 combination zp ZP_BYTE:88 [ main::key_event#0 ] Attempting to uplift remaining variables inzp ZP_BYTE:106 [ play_collision::return#13 ] -Uplifting [play_collision] best 535995 combination reg byte a [ play_collision::return#13 ] +Uplifting [play_collision] best 535901 combination reg byte a [ play_collision::return#13 ] Attempting to uplift remaining variables inzp ZP_BYTE:107 [ play_move_rotate::$6 ] -Uplifting [play_move_rotate] best 535989 combination reg byte a [ play_move_rotate::$6 ] +Uplifting [play_move_rotate] best 535895 combination reg byte a [ play_move_rotate::$6 ] Attempting to uplift remaining variables inzp ZP_BYTE:108 [ play_move_rotate::$4 ] -Uplifting [play_move_rotate] best 535983 combination reg byte a [ play_move_rotate::$4 ] +Uplifting [play_move_rotate] best 535889 combination reg byte a [ play_move_rotate::$4 ] Attempting to uplift remaining variables inzp ZP_BYTE:115 [ play_collision::return#12 ] -Uplifting [play_collision] best 535977 combination reg byte a [ play_collision::return#12 ] +Uplifting [play_collision] best 535883 combination reg byte a [ play_collision::return#12 ] Attempting to uplift remaining variables inzp ZP_BYTE:117 [ play_collision::return#1 ] -Uplifting [play_collision] best 535971 combination reg byte a [ play_collision::return#1 ] +Uplifting [play_collision] best 535877 combination reg byte a [ play_collision::return#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:121 [ play_collision::return#0 ] -Uplifting [play_collision] best 535965 combination reg byte a [ play_collision::return#0 ] +Uplifting [play_collision] best 535871 combination reg byte a [ play_collision::return#0 ] Attempting to uplift remaining variables inzp ZP_BYTE:122 [ play_move_down::$12 ] -Uplifting [play_move_down] best 535959 combination reg byte a [ play_move_down::$12 ] +Uplifting [play_move_down] best 535865 combination reg byte a [ play_move_down::$12 ] Attempting to uplift remaining variables inzp ZP_BYTE:139 [ keyboard_event_scan::$14 ] -Uplifting [keyboard_event_scan] best 535953 combination reg byte a [ keyboard_event_scan::$14 ] +Uplifting [keyboard_event_scan] best 535859 combination reg byte a [ keyboard_event_scan::$14 ] Attempting to uplift remaining variables inzp ZP_BYTE:140 [ keyboard_event_pressed::return#1 ] -Uplifting [keyboard_event_pressed] best 535947 combination reg byte a [ keyboard_event_pressed::return#1 ] +Uplifting [keyboard_event_pressed] best 535853 combination reg byte a [ keyboard_event_pressed::return#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:141 [ keyboard_event_scan::$18 ] -Uplifting [keyboard_event_scan] best 535941 combination reg byte a [ keyboard_event_scan::$18 ] +Uplifting [keyboard_event_scan] best 535847 combination reg byte a [ keyboard_event_scan::$18 ] Attempting to uplift remaining variables inzp ZP_BYTE:142 [ keyboard_event_pressed::return#2 ] -Uplifting [keyboard_event_pressed] best 535935 combination reg byte a [ keyboard_event_pressed::return#2 ] +Uplifting [keyboard_event_pressed] best 535841 combination reg byte a [ keyboard_event_pressed::return#2 ] Attempting to uplift remaining variables inzp ZP_BYTE:143 [ keyboard_event_scan::$22 ] -Uplifting [keyboard_event_scan] best 535929 combination reg byte a [ keyboard_event_scan::$22 ] +Uplifting [keyboard_event_scan] best 535835 combination reg byte a [ keyboard_event_scan::$22 ] Attempting to uplift remaining variables inzp ZP_BYTE:144 [ keyboard_event_pressed::return#10 ] -Uplifting [keyboard_event_pressed] best 535923 combination reg byte a [ keyboard_event_pressed::return#10 ] +Uplifting [keyboard_event_pressed] best 535829 combination reg byte a [ keyboard_event_pressed::return#10 ] Attempting to uplift remaining variables inzp ZP_BYTE:145 [ keyboard_event_scan::$26 ] -Uplifting [keyboard_event_scan] best 535917 combination reg byte a [ keyboard_event_scan::$26 ] +Uplifting [keyboard_event_scan] best 535823 combination reg byte a [ keyboard_event_scan::$26 ] Attempting to uplift remaining variables inzp ZP_BYTE:162 [ irq_cnt#1 ] -Uplifting [] best 535917 combination zp ZP_BYTE:162 [ irq_cnt#1 ] -Attempting to uplift remaining variables inzp ZP_BYTE:19 [ play_move_rotate::return#1 ] -Uplifting [play_move_rotate] best 535881 combination reg byte a [ play_move_rotate::return#1 ] -Attempting to uplift remaining variables inzp ZP_BYTE:32 [ play_move_leftright::return#1 ] -Uplifting [play_move_leftright] best 535845 combination reg byte a [ play_move_leftright::return#1 ] +Uplifting [] best 535823 combination zp ZP_BYTE:162 [ irq_cnt#1 ] +Attempting to uplift remaining variables inzp ZP_BYTE:18 [ play_move_rotate::return#1 ] +Uplifting [play_move_rotate] best 535787 combination reg byte a [ play_move_rotate::return#1 ] +Attempting to uplift remaining variables inzp ZP_BYTE:31 [ play_move_leftright::return#1 ] +Uplifting [play_move_leftright] best 535751 combination reg byte a [ play_move_leftright::return#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:41 [ play_move_down::return#2 ] -Uplifting [play_move_down] best 535829 combination reg byte x [ play_move_down::return#2 ] +Uplifting [play_move_down] best 535735 combination reg byte x [ play_move_down::return#2 ] Attempting to uplift remaining variables inzp ZP_BYTE:160 [ irq::ptr#1 ] -Uplifting [irq] best 535817 combination reg byte x [ irq::ptr#1 ] +Uplifting [irq] best 535723 combination reg byte x [ irq::ptr#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:158 [ irq::ypos#0 ] -Uplifting [irq] best 535802 combination reg byte a [ irq::ypos#0 ] -Attempting to uplift remaining variables inzp ZP_BYTE:3 [ current_movedown_counter#12 current_movedown_counter#10 current_movedown_counter#1 ] -Uplifting [] best 535802 combination zp ZP_BYTE:3 [ current_movedown_counter#12 current_movedown_counter#10 current_movedown_counter#1 ] +Uplifting [irq] best 535708 combination reg byte a [ irq::ypos#0 ] +Attempting to uplift remaining variables inzp ZP_BYTE:2 [ current_movedown_counter#12 current_movedown_counter#10 current_movedown_counter#1 ] +Uplifting [] best 535708 combination zp ZP_BYTE:2 [ current_movedown_counter#12 current_movedown_counter#10 current_movedown_counter#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:132 [ keyboard_event_pressed::row_bits#0 ] -Uplifting [keyboard_event_pressed] best 535802 combination zp ZP_BYTE:132 [ keyboard_event_pressed::row_bits#0 ] +Uplifting [keyboard_event_pressed] best 535708 combination zp ZP_BYTE:132 [ keyboard_event_pressed::row_bits#0 ] Attempting to uplift remaining variables inzp ZP_BYTE:134 [ keyboard_event_pressed::return#11 ] -Uplifting [keyboard_event_pressed] best 535784 combination reg byte a [ keyboard_event_pressed::return#11 ] -Attempting to uplift remaining variables inzp ZP_BYTE:31 [ play_collision::return#14 ] -Uplifting [play_collision] best 535757 combination reg byte a [ play_collision::return#14 ] +Uplifting [keyboard_event_pressed] best 535690 combination reg byte a [ keyboard_event_pressed::return#11 ] +Attempting to uplift remaining variables inzp ZP_BYTE:30 [ play_collision::return#14 ] +Uplifting [play_collision] best 535663 combination reg byte a [ play_collision::return#14 ] Attempting to uplift remaining variables inzp ZP_BYTE:53 [ keyboard_event_pressed::keycode#5 ] -Uplifting [keyboard_event_pressed] best 535757 combination zp ZP_BYTE:53 [ keyboard_event_pressed::keycode#5 ] +Uplifting [keyboard_event_pressed] best 535663 combination zp ZP_BYTE:53 [ keyboard_event_pressed::keycode#5 ] Attempting to uplift remaining variables inzp ZP_BYTE:84 [ irq_sprite_ypos#0 ] -Uplifting [] best 535757 combination zp ZP_BYTE:84 [ irq_sprite_ypos#0 ] +Uplifting [] best 535663 combination zp ZP_BYTE:84 [ irq_sprite_ypos#0 ] Attempting to uplift remaining variables inzp ZP_BYTE:85 [ irq_sprite_ptr#0 ] -Uplifting [] best 535757 combination zp ZP_BYTE:85 [ irq_sprite_ptr#0 ] +Uplifting [] best 535663 combination zp ZP_BYTE:85 [ irq_sprite_ptr#0 ] Attempting to uplift remaining variables inzp ZP_BYTE:86 [ irq_cnt#0 ] -Uplifting [] best 535757 combination zp ZP_BYTE:86 [ irq_cnt#0 ] +Uplifting [] best 535663 combination zp ZP_BYTE:86 [ irq_cnt#0 ] Attempting to uplift remaining variables inzp ZP_BYTE:83 [ irq_raster_next#0 ] -Uplifting [] best 535757 combination zp ZP_BYTE:83 [ irq_raster_next#0 ] +Uplifting [] best 535663 combination zp ZP_BYTE:83 [ irq_raster_next#0 ] Attempting to uplift remaining variables inzp ZP_BYTE:123 [ play_spawn_current::$3 ] -Uplifting [play_spawn_current] best 535757 combination zp ZP_BYTE:123 [ play_spawn_current::$3 ] -Coalescing zero page register with common assignment [ zp ZP_BYTE:2 [ current_ypos#22 current_ypos#14 current_ypos#30 current_ypos#1 ] ] with [ zp ZP_BYTE:48 [ play_lock_current::ypos2#2 play_lock_current::ypos2#0 play_lock_current::ypos2#1 ] ] - score: 1 -Coalescing zero page register with common assignment [ zp ZP_WORD:21 [ current_piece#12 current_piece#73 current_piece#74 current_piece#75 current_piece#76 ] ] with [ zp ZP_WORD:109 [ play_collision::piece_gfx#0 ] ] - score: 1 +Uplifting [play_spawn_current] best 535663 combination zp ZP_BYTE:123 [ play_spawn_current::$3 ] +Coalescing zero page register with common assignment [ zp ZP_WORD:20 [ current_piece#12 current_piece#73 current_piece#74 current_piece#75 current_piece#76 ] ] with [ zp ZP_WORD:109 [ play_collision::piece_gfx#0 ] ] - score: 1 +Coalescing zero page register with common assignment [ zp ZP_BYTE:33 [ current_ypos#30 current_ypos#22 current_ypos#14 current_ypos#19 current_ypos#1 ] ] with [ zp ZP_BYTE:48 [ play_lock_current::ypos2#2 play_lock_current::ypos2#0 play_lock_current::ypos2#1 ] ] - score: 1 Coalescing zero page register with common assignment [ zp ZP_BYTE:81 [ irq_raster_next#12 irq_raster_next#2 irq_raster_next#1 ] ] with [ zp ZP_BYTE:83 [ irq_raster_next#0 ] ] - score: 1 Coalescing zero page register with common assignment [ zp ZP_BYTE:84 [ irq_sprite_ypos#0 ] ] with [ zp ZP_BYTE:163 [ irq_sprite_ypos#2 ] ] - score: 1 Coalescing zero page register with common assignment [ zp ZP_BYTE:85 [ irq_sprite_ptr#0 ] ] with [ zp ZP_BYTE:164 [ irq_sprite_ptr#2 ] ] - score: 1 Coalescing zero page register with common assignment [ zp ZP_BYTE:86 [ irq_cnt#0 ] ] with [ zp ZP_BYTE:162 [ irq_cnt#1 ] ] - score: 1 Coalescing zero page register with common assignment [ zp ZP_BYTE:92 [ main::render#1 ] ] with [ zp ZP_BYTE:96 [ main::render#2 ] ] - score: 1 -Coalescing zero page register [ zp ZP_BYTE:2 [ current_ypos#22 current_ypos#14 current_ypos#30 current_ypos#1 play_lock_current::ypos2#2 play_lock_current::ypos2#0 play_lock_current::ypos2#1 ] ] with [ zp ZP_BYTE:43 [ play_remove_lines::y#8 play_remove_lines::y#1 ] ] -Coalescing zero page register [ zp ZP_BYTE:2 [ current_ypos#22 current_ypos#14 current_ypos#30 current_ypos#1 play_lock_current::ypos2#2 play_lock_current::ypos2#0 play_lock_current::ypos2#1 play_remove_lines::y#8 play_remove_lines::y#1 ] ] with [ zp ZP_BYTE:63 [ play_init::idx#2 play_init::idx#1 ] ] -Coalescing zero page register [ zp ZP_BYTE:2 [ current_ypos#22 current_ypos#14 current_ypos#30 current_ypos#1 play_lock_current::ypos2#2 play_lock_current::ypos2#0 play_lock_current::ypos2#1 play_remove_lines::y#8 play_remove_lines::y#1 play_init::idx#2 play_init::idx#1 ] ] with [ zp ZP_BYTE:65 [ sprites_init::xpos#2 sprites_init::xpos#1 ] ] -Coalescing zero page register [ zp ZP_BYTE:2 [ current_ypos#22 current_ypos#14 current_ypos#30 current_ypos#1 play_lock_current::ypos2#2 play_lock_current::ypos2#0 play_lock_current::ypos2#1 play_remove_lines::y#8 play_remove_lines::y#1 play_init::idx#2 play_init::idx#1 sprites_init::xpos#2 sprites_init::xpos#1 ] ] with [ zp ZP_BYTE:71 [ render_init::l#4 render_init::l#1 ] ] -Coalescing zero page register [ zp ZP_BYTE:2 [ current_ypos#22 current_ypos#14 current_ypos#30 current_ypos#1 play_lock_current::ypos2#2 play_lock_current::ypos2#0 play_lock_current::ypos2#1 play_remove_lines::y#8 play_remove_lines::y#1 play_init::idx#2 play_init::idx#1 sprites_init::xpos#2 sprites_init::xpos#1 render_init::l#4 render_init::l#1 ] ] with [ zp ZP_BYTE:73 [ render_screen_original::y#6 render_screen_original::y#1 ] ] -Coalescing zero page register [ zp ZP_BYTE:2 [ current_ypos#22 current_ypos#14 current_ypos#30 current_ypos#1 play_lock_current::ypos2#2 play_lock_current::ypos2#0 play_lock_current::ypos2#1 play_remove_lines::y#8 play_remove_lines::y#1 play_init::idx#2 play_init::idx#1 sprites_init::xpos#2 sprites_init::xpos#1 render_init::l#4 render_init::l#1 render_screen_original::y#6 render_screen_original::y#1 ] ] with [ zp ZP_BYTE:123 [ play_spawn_current::$3 ] ] -Coalescing zero page register [ zp ZP_BYTE:3 [ current_movedown_counter#12 current_movedown_counter#10 current_movedown_counter#1 ] ] with [ zp ZP_BYTE:45 [ play_remove_lines::x#2 play_remove_lines::x#1 ] ] -Coalescing zero page register [ zp ZP_BYTE:3 [ current_movedown_counter#12 current_movedown_counter#10 current_movedown_counter#1 play_remove_lines::x#2 play_remove_lines::x#1 ] ] with [ zp ZP_BYTE:49 [ play_lock_current::l#6 play_lock_current::l#1 ] ] -Coalescing zero page register [ zp ZP_BYTE:5 [ current_xpos#48 current_xpos#104 ] ] with [ zp ZP_BYTE:14 [ render_playfield::l#2 render_playfield::l#1 ] ] -Coalescing zero page register [ zp ZP_BYTE:5 [ current_xpos#48 current_xpos#104 render_playfield::l#2 render_playfield::l#1 ] ] with [ zp ZP_BYTE:20 [ play_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#2 ] ] -Coalescing zero page register [ zp ZP_BYTE:5 [ current_xpos#48 current_xpos#104 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:46 [ play_remove_lines::full#4 play_remove_lines::full#2 ] ] -Coalescing zero page register [ zp ZP_BYTE:5 [ current_xpos#48 current_xpos#104 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::full#4 play_remove_lines::full#2 ] ] with [ zp ZP_BYTE:50 [ play_lock_current::i#2 play_lock_current::i#3 play_lock_current::i#7 play_lock_current::i#9 ] ] -Coalescing zero page register [ zp ZP_BYTE:5 [ current_xpos#48 current_xpos#104 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::full#4 play_remove_lines::full#2 play_lock_current::i#2 play_lock_current::i#3 play_lock_current::i#7 play_lock_current::i#9 ] ] with [ zp ZP_BYTE:53 [ keyboard_event_pressed::keycode#5 ] ] -Coalescing zero page register [ zp ZP_BYTE:5 [ current_xpos#48 current_xpos#104 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::full#4 play_remove_lines::full#2 play_lock_current::i#2 play_lock_current::i#3 play_lock_current::i#7 play_lock_current::i#9 keyboard_event_pressed::keycode#5 ] ] with [ zp ZP_BYTE:55 [ keyboard_event_scan::row#2 keyboard_event_scan::row#1 ] ] -Coalescing zero page register [ zp ZP_WORD:6 [ current_piece_gfx#53 current_piece_gfx#95 current_piece_gfx#96 ] ] with [ zp ZP_WORD:16 [ render_playfield::screen_line#2 render_playfield::screen_line#0 render_playfield::screen_line#1 ] ] -Coalescing zero page register [ zp ZP_WORD:6 [ current_piece_gfx#53 current_piece_gfx#95 current_piece_gfx#96 render_playfield::screen_line#2 render_playfield::screen_line#0 render_playfield::screen_line#1 ] ] with [ zp ZP_WORD:21 [ current_piece#12 current_piece#73 current_piece#74 current_piece#75 current_piece#76 play_collision::piece_gfx#0 ] ] -Coalescing zero page register [ zp ZP_WORD:6 [ current_piece_gfx#53 current_piece_gfx#95 current_piece_gfx#96 render_playfield::screen_line#2 render_playfield::screen_line#0 render_playfield::screen_line#1 current_piece#12 current_piece#73 current_piece#74 current_piece#75 current_piece#76 play_collision::piece_gfx#0 ] ] with [ zp ZP_WORD:61 [ play_init::pli#2 play_init::pli#1 ] ] -Coalescing zero page register [ zp ZP_WORD:6 [ current_piece_gfx#53 current_piece_gfx#95 current_piece_gfx#96 render_playfield::screen_line#2 render_playfield::screen_line#0 render_playfield::screen_line#1 current_piece#12 current_piece#73 current_piece#74 current_piece#75 current_piece#76 play_collision::piece_gfx#0 play_init::pli#2 play_init::pli#1 ] ] with [ zp ZP_WORD:67 [ render_init::li#2 render_init::li#1 ] ] -Coalescing zero page register [ zp ZP_WORD:6 [ current_piece_gfx#53 current_piece_gfx#95 current_piece_gfx#96 render_playfield::screen_line#2 render_playfield::screen_line#0 render_playfield::screen_line#1 current_piece#12 current_piece#73 current_piece#74 current_piece#75 current_piece#76 play_collision::piece_gfx#0 play_init::pli#2 play_init::pli#1 render_init::li#2 render_init::li#1 ] ] with [ zp ZP_WORD:69 [ render_init::line#4 render_init::line#1 ] ] -Coalescing zero page register [ zp ZP_WORD:6 [ current_piece_gfx#53 current_piece_gfx#95 current_piece_gfx#96 render_playfield::screen_line#2 render_playfield::screen_line#0 render_playfield::screen_line#1 current_piece#12 current_piece#73 current_piece#74 current_piece#75 current_piece#76 play_collision::piece_gfx#0 play_init::pli#2 play_init::pli#1 render_init::li#2 render_init::li#1 render_init::line#4 render_init::line#1 ] ] with [ zp ZP_WORD:74 [ render_screen_original::orig#2 render_screen_original::orig#4 render_screen_original::orig#1 ] ] -Coalescing zero page register [ zp ZP_WORD:6 [ current_piece_gfx#53 current_piece_gfx#95 current_piece_gfx#96 render_playfield::screen_line#2 render_playfield::screen_line#0 render_playfield::screen_line#1 current_piece#12 current_piece#73 current_piece#74 current_piece#75 current_piece#76 play_collision::piece_gfx#0 play_init::pli#2 play_init::pli#1 render_init::li#2 render_init::li#1 render_init::line#4 render_init::line#1 render_screen_original::orig#2 render_screen_original::orig#4 render_screen_original::orig#1 ] ] with [ zp ZP_WORD:79 [ fill::addr#2 fill::addr#1 ] ] -Coalescing zero page register [ zp ZP_WORD:6 [ current_piece_gfx#53 current_piece_gfx#95 current_piece_gfx#96 render_playfield::screen_line#2 render_playfield::screen_line#0 render_playfield::screen_line#1 current_piece#12 current_piece#73 current_piece#74 current_piece#75 current_piece#76 play_collision::piece_gfx#0 play_init::pli#2 play_init::pli#1 render_init::li#2 render_init::li#1 render_init::line#4 render_init::line#1 render_screen_original::orig#2 render_screen_original::orig#4 render_screen_original::orig#1 fill::addr#2 fill::addr#1 ] ] with [ zp ZP_WORD:128 [ play_lock_current::playfield_line#0 ] ] -Coalescing zero page register [ zp ZP_BYTE:8 [ current_piece_char#63 current_piece_char#83 current_piece_char#84 ] ] with [ zp ZP_BYTE:15 [ render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 ] ] -Coalescing zero page register [ zp ZP_BYTE:8 [ current_piece_char#63 current_piece_char#83 current_piece_char#84 render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 ] ] with [ zp ZP_BYTE:25 [ play_collision::xpos#5 play_collision::xpos#0 play_collision::xpos#1 play_collision::xpos#2 play_collision::xpos#3 ] ] -Coalescing zero page register [ zp ZP_BYTE:8 [ current_piece_char#63 current_piece_char#83 current_piece_char#84 render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 play_collision::xpos#5 play_collision::xpos#0 play_collision::xpos#1 play_collision::xpos#2 play_collision::xpos#3 ] ] with [ zp ZP_BYTE:51 [ play_lock_current::col#2 play_lock_current::col#0 play_lock_current::col#1 ] ] -Coalescing zero page register [ zp ZP_BYTE:8 [ current_piece_char#63 current_piece_char#83 current_piece_char#84 render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 play_collision::xpos#5 play_collision::xpos#0 play_collision::xpos#1 play_collision::xpos#2 play_collision::xpos#3 play_lock_current::col#2 play_lock_current::col#0 play_lock_current::col#1 ] ] with [ zp ZP_BYTE:58 [ keyboard_event_scan::keycode#10 keyboard_event_scan::keycode#11 keyboard_event_scan::keycode#14 keyboard_event_scan::keycode#1 keyboard_event_scan::keycode#15 ] ] -Coalescing zero page register [ zp ZP_BYTE:8 [ current_piece_char#63 current_piece_char#83 current_piece_char#84 render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 play_collision::xpos#5 play_collision::xpos#0 play_collision::xpos#1 play_collision::xpos#2 play_collision::xpos#3 play_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:127 [ play_remove_lines::c#0 ] ] -Coalescing zero page register [ zp ZP_BYTE:8 [ current_piece_char#63 current_piece_char#83 current_piece_char#84 render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 play_collision::xpos#5 play_collision::xpos#0 play_collision::xpos#1 play_collision::xpos#2 play_collision::xpos#3 play_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 play_remove_lines::c#0 ] ] with [ zp ZP_BYTE:132 [ keyboard_event_pressed::row_bits#0 ] ] -Coalescing zero page register [ zp ZP_BYTE:9 [ render_current::ypos2#2 render_current::ypos2#0 render_current::ypos2#1 ] ] with [ zp ZP_BYTE:26 [ play_collision::ypos2#2 play_collision::ypos2#0 play_collision::ypos2#1 ] ] -Coalescing zero page register [ zp ZP_BYTE:9 [ render_current::ypos2#2 render_current::ypos2#0 render_current::ypos2#1 play_collision::ypos2#2 play_collision::ypos2#0 play_collision::ypos2#1 ] ] with [ zp ZP_BYTE:130 [ play_lock_current::i#1 ] ] -Coalescing zero page register [ zp ZP_BYTE:9 [ render_current::ypos2#2 render_current::ypos2#0 render_current::ypos2#1 play_collision::ypos2#2 play_collision::ypos2#0 play_collision::ypos2#1 play_lock_current::i#1 ] ] with [ zp ZP_BYTE:137 [ keyboard_event_scan::row_scan#0 ] ] -Coalescing zero page register [ zp ZP_BYTE:10 [ render_current::l#4 render_current::l#1 ] ] with [ zp ZP_BYTE:27 [ play_collision::l#6 play_collision::l#1 ] ] -Coalescing zero page register [ zp ZP_BYTE:11 [ render_current::i#4 render_current::i#3 render_current::i#8 render_current::i#10 render_current::i#1 ] ] with [ zp ZP_BYTE:28 [ play_collision::i#2 play_collision::i#3 play_collision::i#11 play_collision::i#13 ] ] -Coalescing zero page register [ zp ZP_BYTE:12 [ render_current::xpos#2 render_current::xpos#0 render_current::xpos#1 ] ] with [ zp ZP_BYTE:29 [ play_collision::col#2 play_collision::col#9 play_collision::col#1 ] ] +Coalescing zero page register [ zp ZP_BYTE:2 [ current_movedown_counter#12 current_movedown_counter#10 current_movedown_counter#1 ] ] with [ zp ZP_BYTE:43 [ play_remove_lines::y#8 play_remove_lines::y#1 ] ] +Coalescing zero page register [ zp ZP_BYTE:2 [ current_movedown_counter#12 current_movedown_counter#10 current_movedown_counter#1 play_remove_lines::y#8 play_remove_lines::y#1 ] ] with [ zp ZP_BYTE:49 [ play_lock_current::l#6 play_lock_current::l#1 ] ] +Coalescing zero page register [ zp ZP_BYTE:2 [ current_movedown_counter#12 current_movedown_counter#10 current_movedown_counter#1 play_remove_lines::y#8 play_remove_lines::y#1 play_lock_current::l#6 play_lock_current::l#1 ] ] with [ zp ZP_BYTE:63 [ play_init::idx#2 play_init::idx#1 ] ] +Coalescing zero page register [ zp ZP_BYTE:2 [ current_movedown_counter#12 current_movedown_counter#10 current_movedown_counter#1 play_remove_lines::y#8 play_remove_lines::y#1 play_lock_current::l#6 play_lock_current::l#1 play_init::idx#2 play_init::idx#1 ] ] with [ zp ZP_BYTE:65 [ sprites_init::xpos#2 sprites_init::xpos#1 ] ] +Coalescing zero page register [ zp ZP_BYTE:2 [ current_movedown_counter#12 current_movedown_counter#10 current_movedown_counter#1 play_remove_lines::y#8 play_remove_lines::y#1 play_lock_current::l#6 play_lock_current::l#1 play_init::idx#2 play_init::idx#1 sprites_init::xpos#2 sprites_init::xpos#1 ] ] with [ zp ZP_BYTE:71 [ render_init::l#4 render_init::l#1 ] ] +Coalescing zero page register [ zp ZP_BYTE:2 [ current_movedown_counter#12 current_movedown_counter#10 current_movedown_counter#1 play_remove_lines::y#8 play_remove_lines::y#1 play_lock_current::l#6 play_lock_current::l#1 play_init::idx#2 play_init::idx#1 sprites_init::xpos#2 sprites_init::xpos#1 render_init::l#4 render_init::l#1 ] ] with [ zp ZP_BYTE:73 [ render_screen_original::y#6 render_screen_original::y#1 ] ] +Coalescing zero page register [ zp ZP_BYTE:2 [ current_movedown_counter#12 current_movedown_counter#10 current_movedown_counter#1 play_remove_lines::y#8 play_remove_lines::y#1 play_lock_current::l#6 play_lock_current::l#1 play_init::idx#2 play_init::idx#1 sprites_init::xpos#2 sprites_init::xpos#1 render_init::l#4 render_init::l#1 render_screen_original::y#6 render_screen_original::y#1 ] ] with [ zp ZP_BYTE:123 [ play_spawn_current::$3 ] ] +Coalescing zero page register [ zp ZP_BYTE:4 [ current_xpos#48 current_xpos#105 current_xpos#106 ] ] with [ zp ZP_BYTE:13 [ render_playfield::l#2 render_playfield::l#1 ] ] +Coalescing zero page register [ zp ZP_BYTE:4 [ current_xpos#48 current_xpos#105 current_xpos#106 render_playfield::l#2 render_playfield::l#1 ] ] with [ zp ZP_BYTE:19 [ play_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#2 ] ] +Coalescing zero page register [ zp ZP_BYTE:4 [ current_xpos#48 current_xpos#105 current_xpos#106 render_playfield::l#2 render_playfield::l#1 play_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#2 ] ] with [ zp ZP_BYTE:45 [ play_remove_lines::x#2 play_remove_lines::x#1 ] ] +Coalescing zero page register [ zp ZP_BYTE:4 [ current_xpos#48 current_xpos#105 current_xpos#106 render_playfield::l#2 render_playfield::l#1 play_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#2 play_remove_lines::x#2 play_remove_lines::x#1 ] ] with [ zp ZP_BYTE:50 [ play_lock_current::i#2 play_lock_current::i#3 play_lock_current::i#7 play_lock_current::i#9 ] ] +Coalescing zero page register [ zp ZP_BYTE:4 [ current_xpos#48 current_xpos#105 current_xpos#106 render_playfield::l#2 render_playfield::l#1 play_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#2 play_remove_lines::x#2 play_remove_lines::x#1 play_lock_current::i#2 play_lock_current::i#3 play_lock_current::i#7 play_lock_current::i#9 ] ] with [ zp ZP_BYTE:53 [ keyboard_event_pressed::keycode#5 ] ] +Coalescing zero page register [ zp ZP_BYTE:4 [ current_xpos#48 current_xpos#105 current_xpos#106 render_playfield::l#2 render_playfield::l#1 play_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#2 play_remove_lines::x#2 play_remove_lines::x#1 play_lock_current::i#2 play_lock_current::i#3 play_lock_current::i#7 play_lock_current::i#9 keyboard_event_pressed::keycode#5 ] ] with [ zp ZP_BYTE:55 [ keyboard_event_scan::row#2 keyboard_event_scan::row#1 ] ] +Coalescing zero page register [ zp ZP_WORD:5 [ current_piece_gfx#53 current_piece_gfx#95 current_piece_gfx#96 ] ] with [ zp ZP_WORD:15 [ render_playfield::screen_line#2 render_playfield::screen_line#0 render_playfield::screen_line#1 ] ] +Coalescing zero page register [ zp ZP_WORD:5 [ current_piece_gfx#53 current_piece_gfx#95 current_piece_gfx#96 render_playfield::screen_line#2 render_playfield::screen_line#0 render_playfield::screen_line#1 ] ] with [ zp ZP_WORD:20 [ current_piece#12 current_piece#73 current_piece#74 current_piece#75 current_piece#76 play_collision::piece_gfx#0 ] ] +Coalescing zero page register [ zp ZP_WORD:5 [ current_piece_gfx#53 current_piece_gfx#95 current_piece_gfx#96 render_playfield::screen_line#2 render_playfield::screen_line#0 render_playfield::screen_line#1 current_piece#12 current_piece#73 current_piece#74 current_piece#75 current_piece#76 play_collision::piece_gfx#0 ] ] with [ zp ZP_WORD:61 [ play_init::pli#2 play_init::pli#1 ] ] +Coalescing zero page register [ zp ZP_WORD:5 [ current_piece_gfx#53 current_piece_gfx#95 current_piece_gfx#96 render_playfield::screen_line#2 render_playfield::screen_line#0 render_playfield::screen_line#1 current_piece#12 current_piece#73 current_piece#74 current_piece#75 current_piece#76 play_collision::piece_gfx#0 play_init::pli#2 play_init::pli#1 ] ] with [ zp ZP_WORD:67 [ render_init::li#2 render_init::li#1 ] ] +Coalescing zero page register [ zp ZP_WORD:5 [ current_piece_gfx#53 current_piece_gfx#95 current_piece_gfx#96 render_playfield::screen_line#2 render_playfield::screen_line#0 render_playfield::screen_line#1 current_piece#12 current_piece#73 current_piece#74 current_piece#75 current_piece#76 play_collision::piece_gfx#0 play_init::pli#2 play_init::pli#1 render_init::li#2 render_init::li#1 ] ] with [ zp ZP_WORD:69 [ render_init::line#4 render_init::line#1 ] ] +Coalescing zero page register [ zp ZP_WORD:5 [ current_piece_gfx#53 current_piece_gfx#95 current_piece_gfx#96 render_playfield::screen_line#2 render_playfield::screen_line#0 render_playfield::screen_line#1 current_piece#12 current_piece#73 current_piece#74 current_piece#75 current_piece#76 play_collision::piece_gfx#0 play_init::pli#2 play_init::pli#1 render_init::li#2 render_init::li#1 render_init::line#4 render_init::line#1 ] ] with [ zp ZP_WORD:74 [ render_screen_original::orig#2 render_screen_original::orig#4 render_screen_original::orig#1 ] ] +Coalescing zero page register [ zp ZP_WORD:5 [ current_piece_gfx#53 current_piece_gfx#95 current_piece_gfx#96 render_playfield::screen_line#2 render_playfield::screen_line#0 render_playfield::screen_line#1 current_piece#12 current_piece#73 current_piece#74 current_piece#75 current_piece#76 play_collision::piece_gfx#0 play_init::pli#2 play_init::pli#1 render_init::li#2 render_init::li#1 render_init::line#4 render_init::line#1 render_screen_original::orig#2 render_screen_original::orig#4 render_screen_original::orig#1 ] ] with [ zp ZP_WORD:79 [ fill::addr#2 fill::addr#1 ] ] +Coalescing zero page register [ zp ZP_WORD:5 [ current_piece_gfx#53 current_piece_gfx#95 current_piece_gfx#96 render_playfield::screen_line#2 render_playfield::screen_line#0 render_playfield::screen_line#1 current_piece#12 current_piece#73 current_piece#74 current_piece#75 current_piece#76 play_collision::piece_gfx#0 play_init::pli#2 play_init::pli#1 render_init::li#2 render_init::li#1 render_init::line#4 render_init::line#1 render_screen_original::orig#2 render_screen_original::orig#4 render_screen_original::orig#1 fill::addr#2 fill::addr#1 ] ] with [ zp ZP_WORD:128 [ play_lock_current::playfield_line#0 ] ] +Coalescing zero page register [ zp ZP_BYTE:7 [ current_piece_char#63 current_piece_char#83 current_piece_char#84 ] ] with [ zp ZP_BYTE:14 [ render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 ] ] +Coalescing zero page register [ zp ZP_BYTE:7 [ current_piece_char#63 current_piece_char#83 current_piece_char#84 render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 ] ] with [ zp ZP_BYTE:24 [ play_collision::xpos#5 play_collision::xpos#0 play_collision::xpos#1 play_collision::xpos#2 play_collision::xpos#3 ] ] +Coalescing zero page register [ zp ZP_BYTE:7 [ current_piece_char#63 current_piece_char#83 current_piece_char#84 render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 play_collision::xpos#5 play_collision::xpos#0 play_collision::xpos#1 play_collision::xpos#2 play_collision::xpos#3 ] ] with [ zp ZP_BYTE:46 [ play_remove_lines::full#4 play_remove_lines::full#2 ] ] +Coalescing zero page register [ zp ZP_BYTE:7 [ current_piece_char#63 current_piece_char#83 current_piece_char#84 render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 play_collision::xpos#5 play_collision::xpos#0 play_collision::xpos#1 play_collision::xpos#2 play_collision::xpos#3 play_remove_lines::full#4 play_remove_lines::full#2 ] ] with [ zp ZP_BYTE:51 [ play_lock_current::col#2 play_lock_current::col#0 play_lock_current::col#1 ] ] +Coalescing zero page register [ zp ZP_BYTE:7 [ current_piece_char#63 current_piece_char#83 current_piece_char#84 render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 play_collision::xpos#5 play_collision::xpos#0 play_collision::xpos#1 play_collision::xpos#2 play_collision::xpos#3 play_remove_lines::full#4 play_remove_lines::full#2 play_lock_current::col#2 play_lock_current::col#0 play_lock_current::col#1 ] ] with [ zp ZP_BYTE:58 [ keyboard_event_scan::keycode#10 keyboard_event_scan::keycode#11 keyboard_event_scan::keycode#14 keyboard_event_scan::keycode#1 keyboard_event_scan::keycode#15 ] ] +Coalescing zero page register [ zp ZP_BYTE:7 [ current_piece_char#63 current_piece_char#83 current_piece_char#84 render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 play_collision::xpos#5 play_collision::xpos#0 play_collision::xpos#1 play_collision::xpos#2 play_collision::xpos#3 play_remove_lines::full#4 play_remove_lines::full#2 play_lock_current::col#2 play_lock_current::col#0 play_lock_current::col#1 keyboard_event_scan::keycode#10 keyboard_event_scan::keycode#11 keyboard_event_scan::keycode#14 keyboard_event_scan::keycode#1 keyboard_event_scan::keycode#15 ] ] with [ zp ZP_BYTE:132 [ keyboard_event_pressed::row_bits#0 ] ] +Coalescing zero page register [ zp ZP_BYTE:8 [ render_current::ypos2#2 render_current::ypos2#0 render_current::ypos2#1 ] ] with [ zp ZP_BYTE:25 [ play_collision::ypos2#2 play_collision::ypos2#0 play_collision::ypos2#1 ] ] +Coalescing zero page register [ zp ZP_BYTE:8 [ render_current::ypos2#2 render_current::ypos2#0 render_current::ypos2#1 play_collision::ypos2#2 play_collision::ypos2#0 play_collision::ypos2#1 ] ] with [ zp ZP_BYTE:127 [ play_remove_lines::c#0 ] ] +Coalescing zero page register [ zp ZP_BYTE:8 [ render_current::ypos2#2 render_current::ypos2#0 render_current::ypos2#1 play_collision::ypos2#2 play_collision::ypos2#0 play_collision::ypos2#1 play_remove_lines::c#0 ] ] with [ zp ZP_BYTE:130 [ play_lock_current::i#1 ] ] +Coalescing zero page register [ zp ZP_BYTE:8 [ render_current::ypos2#2 render_current::ypos2#0 render_current::ypos2#1 play_collision::ypos2#2 play_collision::ypos2#0 play_collision::ypos2#1 play_remove_lines::c#0 play_lock_current::i#1 ] ] with [ zp ZP_BYTE:137 [ keyboard_event_scan::row_scan#0 ] ] +Coalescing zero page register [ zp ZP_BYTE:9 [ render_current::l#4 render_current::l#1 ] ] with [ zp ZP_BYTE:26 [ play_collision::l#6 play_collision::l#1 ] ] +Coalescing zero page register [ zp ZP_BYTE:10 [ render_current::i#4 render_current::i#3 render_current::i#8 render_current::i#10 render_current::i#1 ] ] with [ zp ZP_BYTE:27 [ play_collision::i#2 play_collision::i#3 play_collision::i#11 play_collision::i#13 ] ] +Coalescing zero page register [ zp ZP_BYTE:11 [ render_current::xpos#2 render_current::xpos#0 render_current::xpos#1 ] ] with [ zp ZP_BYTE:28 [ play_collision::col#2 play_collision::col#9 play_collision::col#1 ] ] Coalescing zero page register [ zp ZP_WORD:34 [ current_piece#20 current_piece#77 current_piece#16 current_piece#10 current_piece#72 ] ] with [ zp ZP_WORD:76 [ render_screen_original::screen#6 render_screen_original::screen#5 render_screen_original::screen#4 render_screen_original::screen#7 render_screen_original::screen#3 render_screen_original::screen#1 render_screen_original::screen#2 ] ] Coalescing zero page register [ zp ZP_WORD:34 [ current_piece#20 current_piece#77 current_piece#16 current_piece#10 current_piece#72 render_screen_original::screen#6 render_screen_original::screen#5 render_screen_original::screen#4 render_screen_original::screen#7 render_screen_original::screen#3 render_screen_original::screen#1 render_screen_original::screen#2 ] ] with [ zp ZP_WORD:155 [ render_init::$18 ] ] Coalescing zero page register [ zp ZP_BYTE:84 [ irq_sprite_ypos#0 irq_sprite_ypos#2 ] ] with [ zp ZP_BYTE:167 [ irq_sprite_ypos#1 ] ] Coalescing zero page register [ zp ZP_BYTE:85 [ irq_sprite_ptr#0 irq_sprite_ptr#2 ] ] with [ zp ZP_BYTE:168 [ irq_sprite_ptr#1 ] ] Coalescing zero page register [ zp ZP_BYTE:86 [ irq_cnt#0 irq_cnt#1 ] ] with [ zp ZP_BYTE:166 [ irq_cnt#13 ] ] Coalescing zero page register [ zp ZP_WORD:101 [ render_current::screen_line#0 ] ] with [ zp ZP_WORD:111 [ play_collision::playfield_line#0 ] ] -Allocated (was zp ZP_BYTE:5) zp ZP_BYTE:4 [ current_xpos#48 current_xpos#104 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::full#4 play_remove_lines::full#2 play_lock_current::i#2 play_lock_current::i#3 play_lock_current::i#7 play_lock_current::i#9 keyboard_event_pressed::keycode#5 keyboard_event_scan::row#2 keyboard_event_scan::row#1 ] -Allocated (was zp ZP_WORD:6) zp ZP_WORD:5 [ current_piece_gfx#53 current_piece_gfx#95 current_piece_gfx#96 render_playfield::screen_line#2 render_playfield::screen_line#0 render_playfield::screen_line#1 current_piece#12 current_piece#73 current_piece#74 current_piece#75 current_piece#76 play_collision::piece_gfx#0 play_init::pli#2 play_init::pli#1 render_init::li#2 render_init::li#1 render_init::line#4 render_init::line#1 render_screen_original::orig#2 render_screen_original::orig#4 render_screen_original::orig#1 fill::addr#2 fill::addr#1 play_lock_current::playfield_line#0 ] -Allocated (was zp ZP_BYTE:8) zp ZP_BYTE:7 [ current_piece_char#63 current_piece_char#83 current_piece_char#84 render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 play_collision::xpos#5 play_collision::xpos#0 play_collision::xpos#1 play_collision::xpos#2 play_collision::xpos#3 play_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 play_remove_lines::c#0 keyboard_event_pressed::row_bits#0 ] -Allocated (was zp ZP_BYTE:9) zp ZP_BYTE:8 [ render_current::ypos2#2 render_current::ypos2#0 render_current::ypos2#1 play_collision::ypos2#2 play_collision::ypos2#0 play_collision::ypos2#1 play_lock_current::i#1 keyboard_event_scan::row_scan#0 ] -Allocated (was zp ZP_BYTE:10) zp ZP_BYTE:9 [ render_current::l#4 render_current::l#1 play_collision::l#6 play_collision::l#1 ] -Allocated (was zp ZP_BYTE:11) zp ZP_BYTE:10 [ render_current::i#4 render_current::i#3 render_current::i#8 render_current::i#10 render_current::i#1 play_collision::i#2 play_collision::i#3 play_collision::i#11 play_collision::i#13 ] -Allocated (was zp ZP_BYTE:12) zp ZP_BYTE:11 [ 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:4) zp ZP_BYTE:3 [ current_xpos#48 current_xpos#105 current_xpos#106 render_playfield::l#2 render_playfield::l#1 play_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#2 play_remove_lines::x#2 play_remove_lines::x#1 play_lock_current::i#2 play_lock_current::i#3 play_lock_current::i#7 play_lock_current::i#9 keyboard_event_pressed::keycode#5 keyboard_event_scan::row#2 keyboard_event_scan::row#1 ] +Allocated (was zp ZP_WORD:5) zp ZP_WORD:4 [ current_piece_gfx#53 current_piece_gfx#95 current_piece_gfx#96 render_playfield::screen_line#2 render_playfield::screen_line#0 render_playfield::screen_line#1 current_piece#12 current_piece#73 current_piece#74 current_piece#75 current_piece#76 play_collision::piece_gfx#0 play_init::pli#2 play_init::pli#1 render_init::li#2 render_init::li#1 render_init::line#4 render_init::line#1 render_screen_original::orig#2 render_screen_original::orig#4 render_screen_original::orig#1 fill::addr#2 fill::addr#1 play_lock_current::playfield_line#0 ] +Allocated (was zp ZP_BYTE:7) zp ZP_BYTE:6 [ current_piece_char#63 current_piece_char#83 current_piece_char#84 render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 play_collision::xpos#5 play_collision::xpos#0 play_collision::xpos#1 play_collision::xpos#2 play_collision::xpos#3 play_remove_lines::full#4 play_remove_lines::full#2 play_lock_current::col#2 play_lock_current::col#0 play_lock_current::col#1 keyboard_event_scan::keycode#10 keyboard_event_scan::keycode#11 keyboard_event_scan::keycode#14 keyboard_event_scan::keycode#1 keyboard_event_scan::keycode#15 keyboard_event_pressed::row_bits#0 ] +Allocated (was zp ZP_BYTE:8) zp ZP_BYTE:7 [ render_current::ypos2#2 render_current::ypos2#0 render_current::ypos2#1 play_collision::ypos2#2 play_collision::ypos2#0 play_collision::ypos2#1 play_remove_lines::c#0 play_lock_current::i#1 keyboard_event_scan::row_scan#0 ] +Allocated (was zp ZP_BYTE:9) zp ZP_BYTE:8 [ render_current::l#4 render_current::l#1 play_collision::l#6 play_collision::l#1 ] +Allocated (was zp ZP_BYTE:10) zp ZP_BYTE:9 [ render_current::i#4 render_current::i#3 render_current::i#8 render_current::i#10 render_current::i#1 play_collision::i#2 play_collision::i#3 play_collision::i#11 play_collision::i#13 ] +Allocated (was zp ZP_BYTE:11) zp ZP_BYTE:10 [ render_current::xpos#2 render_current::xpos#0 render_current::xpos#1 play_collision::col#2 play_collision::col#9 play_collision::col#1 ] +Allocated (was zp ZP_BYTE:33) zp ZP_BYTE:11 [ current_ypos#30 current_ypos#22 current_ypos#14 current_ypos#19 current_ypos#1 play_lock_current::ypos2#2 play_lock_current::ypos2#0 play_lock_current::ypos2#1 ] Allocated (was zp ZP_WORD:34) zp ZP_WORD:12 [ current_piece#20 current_piece#77 current_piece#16 current_piece#10 current_piece#72 render_screen_original::screen#6 render_screen_original::screen#5 render_screen_original::screen#4 render_screen_original::screen#7 render_screen_original::screen#3 render_screen_original::screen#1 render_screen_original::screen#2 render_init::$18 ] Allocated (was zp ZP_BYTE:36) zp ZP_BYTE:14 [ current_orientation#29 current_orientation#10 current_orientation#19 current_orientation#4 current_orientation#14 ] Allocated (was zp ZP_WORD:37) zp ZP_WORD:15 [ current_piece_gfx#27 current_piece_gfx#10 current_piece_gfx#15 current_piece_gfx#17 current_piece_gfx#4 current_piece_gfx#14 ] -Allocated (was zp ZP_BYTE:39) zp ZP_BYTE:17 [ current_xpos#34 current_xpos#11 current_xpos#20 current_xpos#5 current_xpos#16 current_xpos#3 ] +Allocated (was zp ZP_BYTE:39) zp ZP_BYTE:17 [ current_xpos#34 current_xpos#11 current_xpos#20 current_xpos#24 current_xpos#5 current_xpos#16 current_xpos#3 ] Allocated (was zp ZP_BYTE:40) zp ZP_BYTE:18 [ current_piece_char#21 current_piece_char#16 current_piece_char#11 current_piece_char#13 ] Allocated (was zp ZP_BYTE:59) zp ZP_BYTE:19 [ keyboard_events_size#10 keyboard_events_size#29 keyboard_events_size#19 keyboard_events_size#16 keyboard_events_size#13 keyboard_events_size#4 keyboard_events_size#30 keyboard_events_size#2 keyboard_events_size#1 ] Allocated (was zp ZP_BYTE:81) zp ZP_BYTE:20 [ irq_raster_next#12 irq_raster_next#2 irq_raster_next#1 irq_raster_next#0 ] @@ -11930,9 +11959,9 @@ Allocated (was zp ZP_BYTE:92) zp ZP_BYTE:25 [ main::render#1 main::render#2 ] Allocated (was zp ZP_WORD:101) zp ZP_WORD:26 [ render_current::screen_line#0 play_collision::playfield_line#0 ] Allocated (was zp ZP_BYTE:113) zp ZP_BYTE:28 [ play_collision::i#1 ] Interrupt procedure irq clobbers AXCNZV -Removing interrupt register storage sty regy+1 in SEG862 entry interrupt(HARDWARE_CLOBBER) -Removing interrupt register storage regy: in SEG900 [441] return - exit interrupt(HARDWARE_CLOBBER) -Removing interrupt register storage ldy #00 in SEG900 [441] return - exit interrupt(HARDWARE_CLOBBER) +Removing interrupt register storage sty regy+1 in SEG866 entry interrupt(HARDWARE_CLOBBER) +Removing interrupt register storage regy: in SEG904 [445] return - exit interrupt(HARDWARE_CLOBBER) +Removing interrupt register storage ldy #00 in SEG904 [445] return - exit interrupt(HARDWARE_CLOBBER) ASSEMBLER BEFORE OPTIMIZATION //SEG0 Basic Upstart @@ -12019,26 +12048,27 @@ ASSEMBLER BEFORE OPTIMIZATION .label irq_sprite_ypos = $15 .label irq_sprite_ptr = $16 .label irq_cnt = $17 - .label current_movedown_counter = 3 - .label current_ypos = 2 + .label current_movedown_counter = 2 + .label current_ypos = $b .label current_xpos = $11 .label current_orientation = $e .label current_piece_gfx = $f .label current_piece = $c .label current_piece_char = $12 - .label current_piece_12 = 5 - .label current_xpos_48 = 4 - .label current_piece_gfx_53 = 5 - .label current_piece_char_63 = 7 - .label current_xpos_104 = 4 - .label current_piece_gfx_95 = 5 - .label current_piece_gfx_96 = 5 - .label current_piece_char_83 = 7 - .label current_piece_char_84 = 7 - .label current_piece_73 = 5 - .label current_piece_74 = 5 - .label current_piece_75 = 5 - .label current_piece_76 = 5 + .label current_piece_12 = 4 + .label current_xpos_48 = 3 + .label current_piece_gfx_53 = 4 + .label current_piece_char_63 = 6 + .label current_xpos_105 = 3 + .label current_xpos_106 = 3 + .label current_piece_gfx_95 = 4 + .label current_piece_gfx_96 = 4 + .label current_piece_char_83 = 6 + .label current_piece_char_84 = 6 + .label current_piece_73 = 4 + .label current_piece_74 = 4 + .label current_piece_75 = 4 + .label current_piece_76 = 4 //SEG2 @begin bbegin: jmp b14 @@ -12099,7 +12129,7 @@ main: { //SEG25 asm { sei } sei //SEG26 [15] call render_init - //SEG27 [352] phi from main::@21 to render_init [phi:main::@21->render_init] + //SEG27 [356] phi from main::@21 to render_init [phi:main::@21->render_init] render_init_from_b21: jsr render_init //SEG28 [16] phi from main::@21 to main::@22 [phi:main::@21->main::@22] @@ -12122,7 +12152,7 @@ main: { //SEG35 main::@24 b24: //SEG36 [21] call play_init - //SEG37 [317] phi from main::@24 to play_init [phi:main::@24->play_init] + //SEG37 [321] phi from main::@24 to play_init [phi:main::@24->play_init] play_init_from_b24: jsr play_init //SEG38 [22] phi from main::@24 to main::@25 [phi:main::@24->main::@25] @@ -12131,7 +12161,7 @@ main: { //SEG39 main::@25 b25: //SEG40 [23] call play_spawn_current - //SEG41 [197] phi from main::@25 to play_spawn_current [phi:main::@25->play_spawn_current] + //SEG41 [199] phi from main::@25 to play_spawn_current [phi:main::@25->play_spawn_current] play_spawn_current_from_b25: jsr play_spawn_current //SEG42 [24] phi from main::@25 to main::@26 [phi:main::@25->main::@26] @@ -12140,481 +12170,479 @@ main: { //SEG43 main::@26 b26: //SEG44 [25] call render_playfield - //SEG45 [85] phi from main::@26 to render_playfield [phi:main::@26->render_playfield] + //SEG45 [87] phi from main::@26 to render_playfield [phi:main::@26->render_playfield] render_playfield_from_b26: jsr render_playfield jmp b27 //SEG46 main::@27 b27: - //SEG47 [26] (byte*~) current_piece_gfx#95 ← (byte*) current_piece_gfx#17 -- pbuz1=pbuz2 + //SEG47 [26] (byte~) current_ypos#79 ← (byte) current_ypos#19 -- vbuxx=vbuz1 + ldx current_ypos + //SEG48 [27] (byte~) current_xpos#105 ← (byte) current_xpos#24 -- vbuz1=vbuz2 + lda current_xpos + sta current_xpos_105 + //SEG49 [28] (byte*~) current_piece_gfx#95 ← (byte*) current_piece_gfx#17 -- pbuz1=pbuz2 lda current_piece_gfx sta current_piece_gfx_95 lda current_piece_gfx+1 sta current_piece_gfx_95+1 - //SEG48 [27] (byte~) current_piece_char#83 ← (byte) current_piece_char#13 -- vbuz1=vbuz2 + //SEG50 [29] (byte~) current_piece_char#83 ← (byte) current_piece_char#13 -- vbuz1=vbuz2 lda current_piece_char sta current_piece_char_83 - //SEG49 [28] call render_current - //SEG50 [63] phi from main::@27 to render_current [phi:main::@27->render_current] + //SEG51 [30] call render_current + //SEG52 [65] phi from main::@27 to render_current [phi:main::@27->render_current] render_current_from_b27: - //SEG51 [63] phi (byte) current_piece_char#63 = (byte~) current_piece_char#83 [phi:main::@27->render_current#0] -- register_copy - //SEG52 [63] phi (byte*) current_piece_gfx#53 = (byte*~) current_piece_gfx#95 [phi:main::@27->render_current#1] -- register_copy - //SEG53 [63] phi (byte) current_xpos#48 = (byte/signed byte/word/signed word/dword/signed dword) 3 [phi:main::@27->render_current#2] -- vbuz1=vbuc1 - lda #3 - sta current_xpos_48 - //SEG54 [63] phi (byte) current_ypos#10 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@27->render_current#3] -- vbuxx=vbuc1 - ldx #0 + //SEG53 [65] phi (byte) current_piece_char#63 = (byte~) current_piece_char#83 [phi:main::@27->render_current#0] -- register_copy + //SEG54 [65] phi (byte*) current_piece_gfx#53 = (byte*~) current_piece_gfx#95 [phi:main::@27->render_current#1] -- register_copy + //SEG55 [65] phi (byte) current_xpos#48 = (byte~) current_xpos#105 [phi:main::@27->render_current#2] -- register_copy + //SEG56 [65] phi (byte) current_ypos#10 = (byte~) current_ypos#79 [phi:main::@27->render_current#3] -- register_copy jsr render_current - //SEG55 [29] (byte*~) current_piece#72 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) -- pbuz1=pptc1_derefidx_vbuz2 + //SEG57 [31] (byte*~) current_piece#72 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) -- pbuz1=pptc1_derefidx_vbuz2 ldy play_spawn_current._3 lda PIECES,y sta current_piece lda PIECES+1,y sta current_piece+1 - //SEG56 [30] phi from main::@27 to main::@1 [phi:main::@27->main::@1] + //SEG58 [32] phi from main::@27 to main::@1 [phi:main::@27->main::@1] b1_from_b27: - //SEG57 [30] phi (byte) current_movedown_counter#12 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@27->main::@1#0] -- vbuz1=vbuc1 + //SEG59 [32] phi (byte) current_movedown_counter#12 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@27->main::@1#0] -- vbuz1=vbuc1 lda #0 sta current_movedown_counter - //SEG58 [30] phi (byte) keyboard_events_size#19 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@27->main::@1#1] -- vbuz1=vbuc1 + //SEG60 [32] phi (byte) keyboard_events_size#19 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@27->main::@1#1] -- vbuz1=vbuc1 lda #0 sta keyboard_events_size - //SEG59 [30] phi (byte) current_piece_char#16 = (byte) current_piece_char#13 [phi:main::@27->main::@1#2] -- register_copy - //SEG60 [30] phi (byte) current_ypos#22 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@27->main::@1#3] -- vbuz1=vbuc1 - lda #0 - sta current_ypos - //SEG61 [30] phi (byte) current_xpos#11 = (byte/signed byte/word/signed word/dword/signed dword) 3 [phi:main::@27->main::@1#4] -- vbuz1=vbuc1 - lda #3 - sta current_xpos - //SEG62 [30] phi (byte*) current_piece_gfx#10 = (byte*) current_piece_gfx#17 [phi:main::@27->main::@1#5] -- register_copy - //SEG63 [30] phi (byte) current_orientation#10 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@27->main::@1#6] -- vbuz1=vbuc1 + //SEG61 [32] phi (byte) current_piece_char#16 = (byte) current_piece_char#13 [phi:main::@27->main::@1#2] -- register_copy + //SEG62 [32] phi (byte) current_ypos#22 = (byte) current_ypos#19 [phi:main::@27->main::@1#3] -- register_copy + //SEG63 [32] phi (byte) current_xpos#11 = (byte) current_xpos#24 [phi:main::@27->main::@1#4] -- register_copy + //SEG64 [32] phi (byte*) current_piece_gfx#10 = (byte*) current_piece_gfx#17 [phi:main::@27->main::@1#5] -- register_copy + //SEG65 [32] phi (byte) current_orientation#10 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@27->main::@1#6] -- vbuz1=vbuc1 lda #0 sta current_orientation - //SEG64 [30] phi (byte*) current_piece#16 = (byte*~) current_piece#72 [phi:main::@27->main::@1#7] -- register_copy + //SEG66 [32] phi (byte*) current_piece#16 = (byte*~) current_piece#72 [phi:main::@27->main::@1#7] -- register_copy jmp b1 - //SEG65 main::@1 + //SEG67 main::@1 b1: jmp b4 - //SEG66 main::@4 + //SEG68 main::@4 b4: - //SEG67 [31] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@4 -- _deref_pbuc1_neq_vbuc2_then_la1 + //SEG69 [33] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@4 -- _deref_pbuc1_neq_vbuc2_then_la1 lda RASTER cmp #$ff bne b4 jmp b7 - //SEG68 main::@7 + //SEG70 main::@7 b7: - //SEG69 [32] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 254) goto main::@7 -- _deref_pbuc1_neq_vbuc2_then_la1 + //SEG71 [34] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 254) goto main::@7 -- _deref_pbuc1_neq_vbuc2_then_la1 lda RASTER cmp #$fe bne b7 jmp b9 - //SEG70 main::@9 + //SEG72 main::@9 b9: - //SEG71 [33] *((const byte*) BORDERCOL#0) ← ++ *((const byte*) BORDERCOL#0) -- _deref_pbuc1=_inc__deref_pbuc1 + //SEG73 [35] *((const byte*) BORDERCOL#0) ← ++ *((const byte*) BORDERCOL#0) -- _deref_pbuc1=_inc__deref_pbuc1 inc BORDERCOL - //SEG72 [34] call keyboard_event_scan - //SEG73 [261] phi from main::@9 to keyboard_event_scan [phi:main::@9->keyboard_event_scan] + //SEG74 [36] call keyboard_event_scan + //SEG75 [265] phi from main::@9 to keyboard_event_scan [phi:main::@9->keyboard_event_scan] keyboard_event_scan_from_b9: jsr keyboard_event_scan - //SEG74 [35] phi from main::@9 to main::@29 [phi:main::@9->main::@29] + //SEG76 [37] phi from main::@9 to main::@29 [phi:main::@9->main::@29] b29_from_b9: jmp b29 - //SEG75 main::@29 + //SEG77 main::@29 b29: - //SEG76 [36] call keyboard_event_get + //SEG78 [38] call keyboard_event_get jsr keyboard_event_get - //SEG77 [37] (byte) keyboard_event_get::return#3 ← (byte) keyboard_event_get::return#2 + //SEG79 [39] (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 b30 - //SEG78 main::@30 + //SEG80 main::@30 b30: - //SEG79 [38] (byte) main::key_event#0 ← (byte) keyboard_event_get::return#3 -- vbuz1=vbuaa + //SEG81 [40] (byte) main::key_event#0 ← (byte) keyboard_event_get::return#3 -- vbuz1=vbuaa sta key_event - //SEG80 [39] (byte) play_move_down::key_event#0 ← (byte) main::key_event#0 -- vbuaa=vbuz1 + //SEG82 [41] (byte) play_move_down::key_event#0 ← (byte) main::key_event#0 -- vbuaa=vbuz1 lda key_event - //SEG81 [40] call play_move_down + //SEG83 [42] call play_move_down jsr play_move_down - //SEG82 [41] (byte) play_move_down::return#3 ← (byte) play_move_down::return#2 -- vbuaa=vbuxx + //SEG84 [43] (byte) play_move_down::return#3 ← (byte) play_move_down::return#2 -- vbuaa=vbuxx txa jmp b31 - //SEG83 main::@31 + //SEG85 main::@31 b31: - //SEG84 [42] (byte~) main::$12 ← (byte) play_move_down::return#3 + //SEG86 [44] (byte~) main::$12 ← (byte) play_move_down::return#3 // (byte~) main::$12 = (byte) play_move_down::return#3 // register copy reg byte a - //SEG85 [43] (byte) main::render#1 ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte~) main::$12 -- vbuz1=vbuc1_plus_vbuaa + //SEG87 [45] (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 - //SEG86 [44] (byte) play_move_leftright::key_event#0 ← (byte) main::key_event#0 -- vbuaa=vbuz1 + //SEG88 [46] (byte) play_move_leftright::key_event#0 ← (byte) main::key_event#0 -- vbuaa=vbuz1 lda key_event - //SEG87 [45] call play_move_leftright + //SEG89 [47] call play_move_leftright jsr play_move_leftright - //SEG88 [46] (byte) play_move_leftright::return#4 ← (byte) play_move_leftright::return#1 + //SEG90 [48] (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 b32 - //SEG89 main::@32 + //SEG91 main::@32 b32: - //SEG90 [47] (byte~) main::$13 ← (byte) play_move_leftright::return#4 + //SEG92 [49] (byte~) main::$13 ← (byte) play_move_leftright::return#4 // (byte~) main::$13 = (byte) play_move_leftright::return#4 // register copy reg byte a - //SEG91 [48] (byte) main::render#2 ← (byte) main::render#1 + (byte~) main::$13 -- vbuz1=vbuz1_plus_vbuaa + //SEG93 [50] (byte) main::render#2 ← (byte) main::render#1 + (byte~) main::$13 -- vbuz1=vbuz1_plus_vbuaa clc adc render sta render - //SEG92 [49] (byte) play_move_rotate::key_event#0 ← (byte) main::key_event#0 -- vbuaa=vbuz1 + //SEG94 [51] (byte) play_move_rotate::key_event#0 ← (byte) main::key_event#0 -- vbuaa=vbuz1 lda key_event - //SEG93 [50] call play_move_rotate + //SEG95 [52] call play_move_rotate jsr play_move_rotate - //SEG94 [51] (byte) play_move_rotate::return#4 ← (byte) play_move_rotate::return#1 + //SEG96 [53] (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 b33 - //SEG95 main::@33 + //SEG97 main::@33 b33: - //SEG96 [52] (byte~) main::$14 ← (byte) play_move_rotate::return#4 + //SEG98 [54] (byte~) main::$14 ← (byte) play_move_rotate::return#4 // (byte~) main::$14 = (byte) play_move_rotate::return#4 // register copy reg byte a - //SEG97 [53] (byte) main::render#3 ← (byte) main::render#2 + (byte~) main::$14 -- vbuaa=vbuz1_plus_vbuaa + //SEG99 [55] (byte) main::render#3 ← (byte) main::render#2 + (byte~) main::$14 -- vbuaa=vbuz1_plus_vbuaa clc adc render - //SEG98 [54] if((byte) main::render#3==(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@10 -- vbuaa_eq_0_then_la1 + //SEG100 [56] if((byte) main::render#3==(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@10 -- vbuaa_eq_0_then_la1 cmp #0 beq b10 - //SEG99 [55] phi from main::@33 to main::@19 [phi:main::@33->main::@19] + //SEG101 [57] phi from main::@33 to main::@19 [phi:main::@33->main::@19] b19_from_b33: jmp b19 - //SEG100 main::@19 + //SEG102 main::@19 b19: - //SEG101 [56] call render_playfield - //SEG102 [85] phi from main::@19 to render_playfield [phi:main::@19->render_playfield] + //SEG103 [58] call render_playfield + //SEG104 [87] phi from main::@19 to render_playfield [phi:main::@19->render_playfield] render_playfield_from_b19: jsr render_playfield jmp b34 - //SEG103 main::@34 + //SEG105 main::@34 b34: - //SEG104 [57] (byte~) current_ypos#78 ← (byte) current_ypos#14 -- vbuxx=vbuz1 + //SEG106 [59] (byte~) current_ypos#80 ← (byte) current_ypos#14 -- vbuxx=vbuz1 ldx current_ypos - //SEG105 [58] (byte~) current_xpos#104 ← (byte) current_xpos#20 -- vbuz1=vbuz2 + //SEG107 [60] (byte~) current_xpos#106 ← (byte) current_xpos#20 -- vbuz1=vbuz2 lda current_xpos - sta current_xpos_104 - //SEG106 [59] (byte*~) current_piece_gfx#96 ← (byte*) current_piece_gfx#15 -- pbuz1=pbuz2 + sta current_xpos_106 + //SEG108 [61] (byte*~) current_piece_gfx#96 ← (byte*) current_piece_gfx#15 -- pbuz1=pbuz2 lda current_piece_gfx sta current_piece_gfx_96 lda current_piece_gfx+1 sta current_piece_gfx_96+1 - //SEG107 [60] (byte~) current_piece_char#84 ← (byte) current_piece_char#11 -- vbuz1=vbuz2 + //SEG109 [62] (byte~) current_piece_char#84 ← (byte) current_piece_char#11 -- vbuz1=vbuz2 lda current_piece_char sta current_piece_char_84 - //SEG108 [61] call render_current - //SEG109 [63] phi from main::@34 to render_current [phi:main::@34->render_current] + //SEG110 [63] call render_current + //SEG111 [65] phi from main::@34 to render_current [phi:main::@34->render_current] render_current_from_b34: - //SEG110 [63] phi (byte) current_piece_char#63 = (byte~) current_piece_char#84 [phi:main::@34->render_current#0] -- register_copy - //SEG111 [63] phi (byte*) current_piece_gfx#53 = (byte*~) current_piece_gfx#96 [phi:main::@34->render_current#1] -- register_copy - //SEG112 [63] phi (byte) current_xpos#48 = (byte~) current_xpos#104 [phi:main::@34->render_current#2] -- register_copy - //SEG113 [63] phi (byte) current_ypos#10 = (byte~) current_ypos#78 [phi:main::@34->render_current#3] -- register_copy + //SEG112 [65] phi (byte) current_piece_char#63 = (byte~) current_piece_char#84 [phi:main::@34->render_current#0] -- register_copy + //SEG113 [65] phi (byte*) current_piece_gfx#53 = (byte*~) current_piece_gfx#96 [phi:main::@34->render_current#1] -- register_copy + //SEG114 [65] phi (byte) current_xpos#48 = (byte~) current_xpos#106 [phi:main::@34->render_current#2] -- register_copy + //SEG115 [65] phi (byte) current_ypos#10 = (byte~) current_ypos#80 [phi:main::@34->render_current#3] -- register_copy jsr render_current jmp b10 - //SEG114 main::@10 + //SEG116 main::@10 b10: - //SEG115 [62] *((const byte*) BORDERCOL#0) ← -- *((const byte*) BORDERCOL#0) -- _deref_pbuc1=_dec__deref_pbuc1 + //SEG117 [64] *((const byte*) BORDERCOL#0) ← -- *((const byte*) BORDERCOL#0) -- _deref_pbuc1=_dec__deref_pbuc1 dec BORDERCOL - //SEG116 [30] phi from main::@10 to main::@1 [phi:main::@10->main::@1] + //SEG118 [32] phi from main::@10 to main::@1 [phi:main::@10->main::@1] b1_from_b10: - //SEG117 [30] phi (byte) current_movedown_counter#12 = (byte) current_movedown_counter#10 [phi:main::@10->main::@1#0] -- register_copy - //SEG118 [30] phi (byte) keyboard_events_size#19 = (byte) keyboard_events_size#16 [phi:main::@10->main::@1#1] -- register_copy - //SEG119 [30] phi (byte) current_piece_char#16 = (byte) current_piece_char#11 [phi:main::@10->main::@1#2] -- register_copy - //SEG120 [30] phi (byte) current_ypos#22 = (byte) current_ypos#14 [phi:main::@10->main::@1#3] -- register_copy - //SEG121 [30] phi (byte) current_xpos#11 = (byte) current_xpos#20 [phi:main::@10->main::@1#4] -- register_copy - //SEG122 [30] phi (byte*) current_piece_gfx#10 = (byte*) current_piece_gfx#15 [phi:main::@10->main::@1#5] -- register_copy - //SEG123 [30] phi (byte) current_orientation#10 = (byte) current_orientation#19 [phi:main::@10->main::@1#6] -- register_copy - //SEG124 [30] phi (byte*) current_piece#16 = (byte*) current_piece#10 [phi:main::@10->main::@1#7] -- register_copy + //SEG119 [32] phi (byte) current_movedown_counter#12 = (byte) current_movedown_counter#10 [phi:main::@10->main::@1#0] -- register_copy + //SEG120 [32] phi (byte) keyboard_events_size#19 = (byte) keyboard_events_size#16 [phi:main::@10->main::@1#1] -- register_copy + //SEG121 [32] phi (byte) current_piece_char#16 = (byte) current_piece_char#11 [phi:main::@10->main::@1#2] -- register_copy + //SEG122 [32] phi (byte) current_ypos#22 = (byte) current_ypos#14 [phi:main::@10->main::@1#3] -- register_copy + //SEG123 [32] phi (byte) current_xpos#11 = (byte) current_xpos#20 [phi:main::@10->main::@1#4] -- register_copy + //SEG124 [32] phi (byte*) current_piece_gfx#10 = (byte*) current_piece_gfx#15 [phi:main::@10->main::@1#5] -- register_copy + //SEG125 [32] phi (byte) current_orientation#10 = (byte) current_orientation#19 [phi:main::@10->main::@1#6] -- register_copy + //SEG126 [32] phi (byte*) current_piece#16 = (byte*) current_piece#10 [phi:main::@10->main::@1#7] -- register_copy jmp b1 } -//SEG125 render_current +//SEG127 render_current render_current: { - .label ypos2 = 8 + .label ypos2 = 7 .label screen_line = $1a - .label xpos = $b - .label i = $a - .label l = 9 - //SEG126 [64] (byte) render_current::ypos2#0 ← (byte) current_ypos#10 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuxx_rol_1 + .label xpos = $a + .label i = 9 + .label l = 8 + //SEG128 [66] (byte) render_current::ypos2#0 ← (byte) current_ypos#10 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuxx_rol_1 txa asl sta ypos2 - //SEG127 [65] phi from render_current to render_current::@1 [phi:render_current->render_current::@1] + //SEG129 [67] phi from render_current to render_current::@1 [phi:render_current->render_current::@1] b1_from_render_current: - //SEG128 [65] 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 + //SEG130 [67] 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 - //SEG129 [65] 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 + //SEG131 [67] 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 - //SEG130 [65] phi (byte) render_current::ypos2#2 = (byte) render_current::ypos2#0 [phi:render_current->render_current::@1#2] -- register_copy + //SEG132 [67] phi (byte) render_current::ypos2#2 = (byte) render_current::ypos2#0 [phi:render_current->render_current::@1#2] -- register_copy jmp b1 - //SEG131 [65] phi from render_current::@3 to render_current::@1 [phi:render_current::@3->render_current::@1] + //SEG133 [67] phi from render_current::@3 to render_current::@1 [phi:render_current::@3->render_current::@1] b1_from_b3: - //SEG132 [65] phi (byte) render_current::l#4 = (byte) render_current::l#1 [phi:render_current::@3->render_current::@1#0] -- register_copy - //SEG133 [65] phi (byte) render_current::i#3 = (byte) render_current::i#8 [phi:render_current::@3->render_current::@1#1] -- register_copy - //SEG134 [65] phi (byte) render_current::ypos2#2 = (byte) render_current::ypos2#1 [phi:render_current::@3->render_current::@1#2] -- register_copy + //SEG134 [67] phi (byte) render_current::l#4 = (byte) render_current::l#1 [phi:render_current::@3->render_current::@1#0] -- register_copy + //SEG135 [67] phi (byte) render_current::i#3 = (byte) render_current::i#8 [phi:render_current::@3->render_current::@1#1] -- register_copy + //SEG136 [67] phi (byte) render_current::ypos2#2 = (byte) render_current::ypos2#1 [phi:render_current::@3->render_current::@1#2] -- register_copy jmp b1 - //SEG135 render_current::@1 + //SEG137 render_current::@1 b1: - //SEG136 [66] 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 + //SEG138 [68] 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 - //SEG137 render_current::@7 + //SEG139 render_current::@7 b7: - //SEG138 [67] (byte) render_current::i#1 ← (byte) render_current::i#3 + (byte/signed byte/word/signed word/dword/signed dword) 4 -- vbuz1=vbuz1_plus_vbuc1 + //SEG140 [69] (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 - //SEG139 [68] phi from render_current::@5 render_current::@7 to render_current::@3 [phi:render_current::@5/render_current::@7->render_current::@3] + //SEG141 [70] 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: - //SEG140 [68] phi (byte) render_current::i#8 = (byte) render_current::i#10 [phi:render_current::@5/render_current::@7->render_current::@3#0] -- register_copy + //SEG142 [70] 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 - //SEG141 render_current::@3 + //SEG143 render_current::@3 b3: - //SEG142 [69] (byte) render_current::ypos2#1 ← (byte) render_current::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 -- vbuz1=vbuz1_plus_2 + //SEG144 [71] (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 - //SEG143 [70] (byte) render_current::l#1 ← ++ (byte) render_current::l#4 -- vbuz1=_inc_vbuz1 + //SEG145 [72] (byte) render_current::l#1 ← ++ (byte) render_current::l#4 -- vbuz1=_inc_vbuz1 inc l - //SEG144 [71] if((byte) render_current::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_current::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG146 [73] 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 - //SEG145 render_current::@return + //SEG147 render_current::@return breturn: - //SEG146 [72] return + //SEG148 [74] return rts - //SEG147 render_current::@13 + //SEG149 render_current::@13 b13: - //SEG148 [73] 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 + //SEG150 [75] 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 - //SEG149 render_current::@2 + //SEG151 render_current::@2 b2: - //SEG150 [74] (byte*) render_current::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) screen_lines#0 + (byte) render_current::ypos2#2) -- pbuz1=pptc1_derefidx_vbuz2 + //SEG152 [76] (byte*) render_current::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) screen_lines#0 + (byte) render_current::ypos2#2) -- pbuz1=pptc1_derefidx_vbuz2 ldy ypos2 lda screen_lines,y sta screen_line lda screen_lines+1,y sta screen_line+1 - //SEG151 [75] (byte) render_current::xpos#0 ← (byte) current_xpos#48 -- vbuz1=vbuz2 + //SEG153 [77] (byte) render_current::xpos#0 ← (byte) current_xpos#48 -- vbuz1=vbuz2 lda current_xpos_48 sta xpos - //SEG152 [76] phi from render_current::@2 to render_current::@4 [phi:render_current::@2->render_current::@4] + //SEG154 [78] phi from render_current::@2 to render_current::@4 [phi:render_current::@2->render_current::@4] b4_from_b2: - //SEG153 [76] phi (byte) render_current::c#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_current::@2->render_current::@4#0] -- vbuxx=vbuc1 + //SEG155 [78] phi (byte) render_current::c#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_current::@2->render_current::@4#0] -- vbuxx=vbuc1 ldx #0 - //SEG154 [76] phi (byte) render_current::xpos#2 = (byte) render_current::xpos#0 [phi:render_current::@2->render_current::@4#1] -- register_copy - //SEG155 [76] phi (byte) render_current::i#4 = (byte) render_current::i#3 [phi:render_current::@2->render_current::@4#2] -- register_copy + //SEG156 [78] phi (byte) render_current::xpos#2 = (byte) render_current::xpos#0 [phi:render_current::@2->render_current::@4#1] -- register_copy + //SEG157 [78] phi (byte) render_current::i#4 = (byte) render_current::i#3 [phi:render_current::@2->render_current::@4#2] -- register_copy jmp b4 - //SEG156 [76] phi from render_current::@5 to render_current::@4 [phi:render_current::@5->render_current::@4] + //SEG158 [78] phi from render_current::@5 to render_current::@4 [phi:render_current::@5->render_current::@4] b4_from_b5: - //SEG157 [76] phi (byte) render_current::c#2 = (byte) render_current::c#1 [phi:render_current::@5->render_current::@4#0] -- register_copy - //SEG158 [76] phi (byte) render_current::xpos#2 = (byte) render_current::xpos#1 [phi:render_current::@5->render_current::@4#1] -- register_copy - //SEG159 [76] phi (byte) render_current::i#4 = (byte) render_current::i#10 [phi:render_current::@5->render_current::@4#2] -- register_copy + //SEG159 [78] phi (byte) render_current::c#2 = (byte) render_current::c#1 [phi:render_current::@5->render_current::@4#0] -- register_copy + //SEG160 [78] phi (byte) render_current::xpos#2 = (byte) render_current::xpos#1 [phi:render_current::@5->render_current::@4#1] -- register_copy + //SEG161 [78] phi (byte) render_current::i#4 = (byte) render_current::i#10 [phi:render_current::@5->render_current::@4#2] -- register_copy jmp b4 - //SEG160 render_current::@4 + //SEG162 render_current::@4 b4: - //SEG161 [77] (byte) render_current::current_cell#0 ← *((byte*) current_piece_gfx#53 + (byte) render_current::i#4) -- vbuaa=pbuz1_derefidx_vbuz2 + //SEG163 [79] (byte) render_current::current_cell#0 ← *((byte*) current_piece_gfx#53 + (byte) render_current::i#4) -- vbuaa=pbuz1_derefidx_vbuz2 ldy i lda (current_piece_gfx_53),y - //SEG162 [78] (byte) render_current::i#10 ← ++ (byte) render_current::i#4 -- vbuz1=_inc_vbuz1 + //SEG164 [80] (byte) render_current::i#10 ← ++ (byte) render_current::i#4 -- vbuz1=_inc_vbuz1 inc i - //SEG163 [79] 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 + //SEG165 [81] if((byte) render_current::current_cell#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto render_current::@5 -- vbuaa_eq_0_then_la1 cmp #0 beq b5 jmp b9 - //SEG164 render_current::@9 + //SEG166 render_current::@9 b9: - //SEG165 [80] if((byte) render_current::xpos#2>=(const byte) PLAYFIELD_COLS#0) goto render_current::@5 -- vbuz1_ge_vbuc1_then_la1 + //SEG167 [82] 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 - //SEG166 render_current::@10 + //SEG168 render_current::@10 b10: - //SEG167 [81] *((byte*) render_current::screen_line#0 + (byte) render_current::xpos#2) ← (byte) current_piece_char#63 -- pbuz1_derefidx_vbuz2=vbuz3 + //SEG169 [83] *((byte*) render_current::screen_line#0 + (byte) render_current::xpos#2) ← (byte) current_piece_char#63 -- pbuz1_derefidx_vbuz2=vbuz3 lda current_piece_char_63 ldy xpos sta (screen_line),y jmp b5 - //SEG168 render_current::@5 + //SEG170 render_current::@5 b5: - //SEG169 [82] (byte) render_current::xpos#1 ← ++ (byte) render_current::xpos#2 -- vbuz1=_inc_vbuz1 + //SEG171 [84] (byte) render_current::xpos#1 ← ++ (byte) render_current::xpos#2 -- vbuz1=_inc_vbuz1 inc xpos - //SEG170 [83] (byte) render_current::c#1 ← ++ (byte) render_current::c#2 -- vbuxx=_inc_vbuxx + //SEG172 [85] (byte) render_current::c#1 ← ++ (byte) render_current::c#2 -- vbuxx=_inc_vbuxx inx - //SEG171 [84] if((byte) render_current::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_current::@4 -- vbuxx_neq_vbuc1_then_la1 + //SEG173 [86] if((byte) render_current::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_current::@4 -- vbuxx_neq_vbuc1_then_la1 cpx #4 bne b4_from_b5 jmp b3_from_b5 } -//SEG172 render_playfield +//SEG174 render_playfield render_playfield: { - .label screen_line = 5 - .label i = 7 - .label l = 4 - //SEG173 [86] phi from render_playfield to render_playfield::@1 [phi:render_playfield->render_playfield::@1] + .label screen_line = 4 + .label i = 6 + .label l = 3 + //SEG175 [88] phi from render_playfield to render_playfield::@1 [phi:render_playfield->render_playfield::@1] b1_from_render_playfield: - //SEG174 [86] 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 + //SEG176 [88] 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 - //SEG175 [86] 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 + //SEG177 [88] 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 - //SEG176 [86] phi from render_playfield::@3 to render_playfield::@1 [phi:render_playfield::@3->render_playfield::@1] + //SEG178 [88] phi from render_playfield::@3 to render_playfield::@1 [phi:render_playfield::@3->render_playfield::@1] b1_from_b3: - //SEG177 [86] phi (byte) render_playfield::i#3 = (byte) render_playfield::i#1 [phi:render_playfield::@3->render_playfield::@1#0] -- register_copy - //SEG178 [86] phi (byte) render_playfield::l#2 = (byte) render_playfield::l#1 [phi:render_playfield::@3->render_playfield::@1#1] -- register_copy + //SEG179 [88] phi (byte) render_playfield::i#3 = (byte) render_playfield::i#1 [phi:render_playfield::@3->render_playfield::@1#0] -- register_copy + //SEG180 [88] phi (byte) render_playfield::l#2 = (byte) render_playfield::l#1 [phi:render_playfield::@3->render_playfield::@1#1] -- register_copy jmp b1 - //SEG179 render_playfield::@1 + //SEG181 render_playfield::@1 b1: - //SEG180 [87] (byte~) render_playfield::$2 ← (byte) render_playfield::l#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuaa=vbuz1_rol_1 + //SEG182 [89] (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 - //SEG181 [88] (byte*) render_playfield::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) screen_lines#0 + (byte~) render_playfield::$2) -- pbuz1=pptc1_derefidx_vbuaa + //SEG183 [90] (byte*) render_playfield::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) screen_lines#0 + (byte~) render_playfield::$2) -- pbuz1=pptc1_derefidx_vbuaa tay lda screen_lines,y sta screen_line lda screen_lines+1,y sta screen_line+1 - //SEG182 [89] phi from render_playfield::@1 to render_playfield::@2 [phi:render_playfield::@1->render_playfield::@2] + //SEG184 [91] phi from render_playfield::@1 to render_playfield::@2 [phi:render_playfield::@1->render_playfield::@2] b2_from_b1: - //SEG183 [89] phi (byte) render_playfield::c#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_playfield::@1->render_playfield::@2#0] -- vbuxx=vbuc1 + //SEG185 [91] phi (byte) render_playfield::c#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_playfield::@1->render_playfield::@2#0] -- vbuxx=vbuc1 ldx #0 - //SEG184 [89] phi (byte*) render_playfield::screen_line#2 = (byte*) render_playfield::screen_line#0 [phi:render_playfield::@1->render_playfield::@2#1] -- register_copy - //SEG185 [89] phi (byte) render_playfield::i#2 = (byte) render_playfield::i#3 [phi:render_playfield::@1->render_playfield::@2#2] -- register_copy + //SEG186 [91] phi (byte*) render_playfield::screen_line#2 = (byte*) render_playfield::screen_line#0 [phi:render_playfield::@1->render_playfield::@2#1] -- register_copy + //SEG187 [91] phi (byte) render_playfield::i#2 = (byte) render_playfield::i#3 [phi:render_playfield::@1->render_playfield::@2#2] -- register_copy jmp b2 - //SEG186 [89] phi from render_playfield::@2 to render_playfield::@2 [phi:render_playfield::@2->render_playfield::@2] + //SEG188 [91] phi from render_playfield::@2 to render_playfield::@2 [phi:render_playfield::@2->render_playfield::@2] b2_from_b2: - //SEG187 [89] phi (byte) render_playfield::c#2 = (byte) render_playfield::c#1 [phi:render_playfield::@2->render_playfield::@2#0] -- register_copy - //SEG188 [89] phi (byte*) render_playfield::screen_line#2 = (byte*) render_playfield::screen_line#1 [phi:render_playfield::@2->render_playfield::@2#1] -- register_copy - //SEG189 [89] phi (byte) render_playfield::i#2 = (byte) render_playfield::i#1 [phi:render_playfield::@2->render_playfield::@2#2] -- register_copy + //SEG189 [91] phi (byte) render_playfield::c#2 = (byte) render_playfield::c#1 [phi:render_playfield::@2->render_playfield::@2#0] -- register_copy + //SEG190 [91] phi (byte*) render_playfield::screen_line#2 = (byte*) render_playfield::screen_line#1 [phi:render_playfield::@2->render_playfield::@2#1] -- register_copy + //SEG191 [91] phi (byte) render_playfield::i#2 = (byte) render_playfield::i#1 [phi:render_playfield::@2->render_playfield::@2#2] -- register_copy jmp b2 - //SEG190 render_playfield::@2 + //SEG192 render_playfield::@2 b2: - //SEG191 [90] *((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 + //SEG193 [92] *((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 - //SEG192 [91] (byte*) render_playfield::screen_line#1 ← ++ (byte*) render_playfield::screen_line#2 -- pbuz1=_inc_pbuz1 + //SEG194 [93] (byte*) render_playfield::screen_line#1 ← ++ (byte*) render_playfield::screen_line#2 -- pbuz1=_inc_pbuz1 inc screen_line bne !+ inc screen_line+1 !: - //SEG193 [92] (byte) render_playfield::i#1 ← ++ (byte) render_playfield::i#2 -- vbuz1=_inc_vbuz1 + //SEG195 [94] (byte) render_playfield::i#1 ← ++ (byte) render_playfield::i#2 -- vbuz1=_inc_vbuz1 inc i - //SEG194 [93] (byte) render_playfield::c#1 ← ++ (byte) render_playfield::c#2 -- vbuxx=_inc_vbuxx + //SEG196 [95] (byte) render_playfield::c#1 ← ++ (byte) render_playfield::c#2 -- vbuxx=_inc_vbuxx inx - //SEG195 [94] if((byte) render_playfield::c#1!=(const byte) PLAYFIELD_COLS#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_playfield::@2 -- vbuxx_neq_vbuc1_then_la1 + //SEG197 [96] if((byte) render_playfield::c#1!=(const byte) PLAYFIELD_COLS#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_playfield::@2 -- vbuxx_neq_vbuc1_then_la1 cpx #PLAYFIELD_COLS-1+1 bne b2_from_b2 jmp b3 - //SEG196 render_playfield::@3 + //SEG198 render_playfield::@3 b3: - //SEG197 [95] (byte) render_playfield::l#1 ← ++ (byte) render_playfield::l#2 -- vbuz1=_inc_vbuz1 + //SEG199 [97] (byte) render_playfield::l#1 ← ++ (byte) render_playfield::l#2 -- vbuz1=_inc_vbuz1 inc l - //SEG198 [96] 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 + //SEG200 [98] 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 - //SEG199 render_playfield::@return + //SEG201 render_playfield::@return breturn: - //SEG200 [97] return + //SEG202 [99] return rts } -//SEG201 play_move_rotate +//SEG203 play_move_rotate play_move_rotate: { - .label orientation = 4 - //SEG202 [98] if((byte) play_move_rotate::key_event#0==(const byte) KEY_Z#0) goto play_move_rotate::@1 -- vbuaa_eq_vbuc1_then_la1 + .label orientation = 3 + //SEG204 [100] 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 - //SEG203 play_move_rotate::@6 + //SEG205 play_move_rotate::@6 b6: - //SEG204 [99] if((byte) play_move_rotate::key_event#0==(const byte) KEY_X#0) goto play_move_rotate::@2 -- vbuaa_eq_vbuc1_then_la1 + //SEG206 [101] 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 - //SEG205 [100] 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] + //SEG207 [102] phi from play_move_rotate::@14 play_move_rotate::@6 to play_move_rotate::@return [phi:play_move_rotate::@14/play_move_rotate::@6->play_move_rotate::@return] breturn_from_b14: breturn_from_b6: - //SEG206 [100] phi (byte*) current_piece_gfx#15 = (byte*) current_piece_gfx#14 [phi:play_move_rotate::@14/play_move_rotate::@6->play_move_rotate::@return#0] -- register_copy - //SEG207 [100] 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 - //SEG208 [100] 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 + //SEG208 [102] phi (byte*) current_piece_gfx#15 = (byte*) current_piece_gfx#14 [phi:play_move_rotate::@14/play_move_rotate::@6->play_move_rotate::@return#0] -- register_copy + //SEG209 [102] phi (byte) current_orientation#19 = (byte) current_orientation#14 [phi:play_move_rotate::@14/play_move_rotate::@6->play_move_rotate::@return#1] -- register_copy + //SEG210 [102] phi (byte) play_move_rotate::return#1 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_rotate::@14/play_move_rotate::@6->play_move_rotate::@return#2] -- vbuaa=vbuc1 lda #0 jmp breturn - //SEG209 play_move_rotate::@return + //SEG211 play_move_rotate::@return breturn: - //SEG210 [101] return + //SEG212 [103] return rts - //SEG211 play_move_rotate::@2 + //SEG213 play_move_rotate::@2 b2: - //SEG212 [102] (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 + //SEG214 [104] (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 ← (byte) current_orientation#14 + (byte/signed byte/word/signed word/dword/signed dword) 16 -- vbuaa=vbuz1_plus_vbuc1 lda #$10 clc adc current_orientation - //SEG213 [103] (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 + //SEG215 [105] (byte) play_move_rotate::orientation#2 ← (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 & (byte/signed byte/word/signed word/dword/signed dword) 63 -- vbuz1=vbuaa_band_vbuc1 and #$3f sta orientation - //SEG214 [104] 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] + //SEG216 [106] 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: - //SEG215 [104] 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 + //SEG217 [106] phi (byte) play_move_rotate::orientation#3 = (byte) play_move_rotate::orientation#1 [phi:play_move_rotate::@1/play_move_rotate::@2->play_move_rotate::@4#0] -- register_copy jmp b4 - //SEG216 play_move_rotate::@4 + //SEG218 play_move_rotate::@4 b4: - //SEG217 [105] (byte) play_collision::xpos#3 ← (byte) current_xpos#20 -- vbuz1=vbuz2 + //SEG219 [107] (byte) play_collision::xpos#3 ← (byte) current_xpos#20 -- vbuz1=vbuz2 lda current_xpos sta play_collision.xpos - //SEG218 [106] (byte) play_collision::ypos#3 ← (byte) current_ypos#14 -- vbuyy=vbuz1 + //SEG220 [108] (byte) play_collision::ypos#3 ← (byte) current_ypos#14 -- vbuyy=vbuz1 ldy current_ypos - //SEG219 [107] (byte) play_collision::orientation#3 ← (byte) play_move_rotate::orientation#3 -- vbuxx=vbuz1 + //SEG221 [109] (byte) play_collision::orientation#3 ← (byte) play_move_rotate::orientation#3 -- vbuxx=vbuz1 ldx orientation - //SEG220 [108] (byte*~) current_piece#76 ← (byte*) current_piece#10 -- pbuz1=pbuz2 + //SEG222 [110] (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 - //SEG221 [109] call play_collision - //SEG222 [117] phi from play_move_rotate::@4 to play_collision [phi:play_move_rotate::@4->play_collision] + //SEG223 [111] call play_collision + //SEG224 [119] phi from play_move_rotate::@4 to play_collision [phi:play_move_rotate::@4->play_collision] play_collision_from_b4: - //SEG223 [117] phi (byte) play_collision::xpos#5 = (byte) play_collision::xpos#3 [phi:play_move_rotate::@4->play_collision#0] -- register_copy - //SEG224 [117] phi (byte) play_collision::ypos#4 = (byte) play_collision::ypos#3 [phi:play_move_rotate::@4->play_collision#1] -- register_copy - //SEG225 [117] phi (byte) play_collision::orientation#4 = (byte) play_collision::orientation#3 [phi:play_move_rotate::@4->play_collision#2] -- register_copy - //SEG226 [117] phi (byte*) current_piece#12 = (byte*~) current_piece#76 [phi:play_move_rotate::@4->play_collision#3] -- register_copy + //SEG225 [119] phi (byte) play_collision::xpos#5 = (byte) play_collision::xpos#3 [phi:play_move_rotate::@4->play_collision#0] -- register_copy + //SEG226 [119] phi (byte) play_collision::ypos#4 = (byte) play_collision::ypos#3 [phi:play_move_rotate::@4->play_collision#1] -- register_copy + //SEG227 [119] phi (byte) play_collision::orientation#4 = (byte) play_collision::orientation#3 [phi:play_move_rotate::@4->play_collision#2] -- register_copy + //SEG228 [119] phi (byte*) current_piece#12 = (byte*~) current_piece#76 [phi:play_move_rotate::@4->play_collision#3] -- register_copy jsr play_collision - //SEG227 [110] (byte) play_collision::return#13 ← (byte) play_collision::return#14 + //SEG229 [112] (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 - //SEG228 play_move_rotate::@14 + //SEG230 play_move_rotate::@14 b14: - //SEG229 [111] (byte~) play_move_rotate::$6 ← (byte) play_collision::return#13 + //SEG231 [113] (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 - //SEG230 [112] if((byte~) play_move_rotate::$6!=(const byte) COLLISION_NONE#0) goto play_move_rotate::@return -- vbuaa_neq_vbuc1_then_la1 + //SEG232 [114] 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 - //SEG231 play_move_rotate::@11 + //SEG233 play_move_rotate::@11 b11: - //SEG232 [113] (byte) current_orientation#4 ← (byte) play_move_rotate::orientation#3 -- vbuz1=vbuz2 + //SEG234 [115] (byte) current_orientation#4 ← (byte) play_move_rotate::orientation#3 -- vbuz1=vbuz2 lda orientation sta current_orientation - //SEG233 [114] (byte*) current_piece_gfx#4 ← (byte*) current_piece#10 + (byte) current_orientation#4 -- pbuz1=pbuz2_plus_vbuz3 + //SEG235 [116] (byte*) current_piece_gfx#4 ← (byte*) current_piece#10 + (byte) current_orientation#4 -- pbuz1=pbuz2_plus_vbuz3 lda current_orientation clc adc current_piece @@ -12622,38 +12650,38 @@ play_move_rotate: { lda #0 adc current_piece+1 sta current_piece_gfx+1 - //SEG234 [100] phi from play_move_rotate::@11 to play_move_rotate::@return [phi:play_move_rotate::@11->play_move_rotate::@return] + //SEG236 [102] phi from play_move_rotate::@11 to play_move_rotate::@return [phi:play_move_rotate::@11->play_move_rotate::@return] breturn_from_b11: - //SEG235 [100] phi (byte*) current_piece_gfx#15 = (byte*) current_piece_gfx#4 [phi:play_move_rotate::@11->play_move_rotate::@return#0] -- register_copy - //SEG236 [100] phi (byte) current_orientation#19 = (byte) current_orientation#4 [phi:play_move_rotate::@11->play_move_rotate::@return#1] -- register_copy - //SEG237 [100] 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 + //SEG237 [102] phi (byte*) current_piece_gfx#15 = (byte*) current_piece_gfx#4 [phi:play_move_rotate::@11->play_move_rotate::@return#0] -- register_copy + //SEG238 [102] phi (byte) current_orientation#19 = (byte) current_orientation#4 [phi:play_move_rotate::@11->play_move_rotate::@return#1] -- register_copy + //SEG239 [102] phi (byte) play_move_rotate::return#1 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_move_rotate::@11->play_move_rotate::@return#2] -- vbuaa=vbuc1 lda #1 jmp breturn - //SEG238 play_move_rotate::@1 + //SEG240 play_move_rotate::@1 b1: - //SEG239 [115] (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 + //SEG241 [117] (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 ← (byte) current_orientation#14 - (byte/signed byte/word/signed word/dword/signed dword) 16 -- vbuaa=vbuz1_minus_vbuc1 lda current_orientation sec sbc #$10 - //SEG240 [116] (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 + //SEG242 [118] (byte) play_move_rotate::orientation#1 ← (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 & (byte/signed byte/word/signed word/dword/signed dword) 63 -- vbuz1=vbuaa_band_vbuc1 and #$3f sta orientation jmp b4_from_b1 } -//SEG241 play_collision +//SEG243 play_collision play_collision: { - .label xpos = 7 - .label piece_gfx = 5 - .label ypos2 = 8 + .label xpos = 6 + .label piece_gfx = 4 + .label ypos2 = 7 .label playfield_line = $1a .label i = $1c - .label col = $b - .label l = 9 - .label i_2 = $a - .label i_3 = $a - .label i_11 = $a - .label i_13 = $a - //SEG242 [118] (byte*) play_collision::piece_gfx#0 ← (byte*) current_piece#12 + (byte) play_collision::orientation#4 -- pbuz1=pbuz1_plus_vbuxx + .label col = $a + .label l = 8 + .label i_2 = 9 + .label i_3 = 9 + .label i_11 = 9 + .label i_13 = 9 + //SEG244 [120] (byte*) play_collision::piece_gfx#0 ← (byte*) current_piece#12 + (byte) play_collision::orientation#4 -- pbuz1=pbuz1_plus_vbuxx txa clc adc piece_gfx @@ -12661,1160 +12689,1162 @@ play_collision: { lda #0 adc piece_gfx+1 sta piece_gfx+1 - //SEG243 [119] (byte) play_collision::ypos2#0 ← (byte) play_collision::ypos#4 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuyy_rol_1 + //SEG245 [121] (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 - //SEG244 [120] phi from play_collision to play_collision::@1 [phi:play_collision->play_collision::@1] + //SEG246 [122] phi from play_collision to play_collision::@1 [phi:play_collision->play_collision::@1] b1_from_play_collision: - //SEG245 [120] 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 + //SEG247 [122] 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 - //SEG246 [120] 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 + //SEG248 [122] 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 - //SEG247 [120] phi (byte) play_collision::ypos2#2 = (byte) play_collision::ypos2#0 [phi:play_collision->play_collision::@1#2] -- register_copy + //SEG249 [122] phi (byte) play_collision::ypos2#2 = (byte) play_collision::ypos2#0 [phi:play_collision->play_collision::@1#2] -- register_copy jmp b1 - //SEG248 play_collision::@1 + //SEG250 play_collision::@1 b1: - //SEG249 [121] (byte*) play_collision::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) play_collision::ypos2#2) -- pbuz1=pptc1_derefidx_vbuz2 + //SEG251 [123] (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 - //SEG250 [122] (byte~) play_collision::col#9 ← (byte) play_collision::xpos#5 -- vbuz1=vbuz2 + //SEG252 [124] (byte~) play_collision::col#9 ← (byte) play_collision::xpos#5 -- vbuz1=vbuz2 lda xpos sta col - //SEG251 [123] phi from play_collision::@1 to play_collision::@2 [phi:play_collision::@1->play_collision::@2] + //SEG253 [125] phi from play_collision::@1 to play_collision::@2 [phi:play_collision::@1->play_collision::@2] b2_from_b1: - //SEG252 [123] 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 + //SEG254 [125] 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 - //SEG253 [123] phi (byte) play_collision::col#2 = (byte~) play_collision::col#9 [phi:play_collision::@1->play_collision::@2#1] -- register_copy - //SEG254 [123] phi (byte) play_collision::i#2 = (byte) play_collision::i#3 [phi:play_collision::@1->play_collision::@2#2] -- register_copy + //SEG255 [125] phi (byte) play_collision::col#2 = (byte~) play_collision::col#9 [phi:play_collision::@1->play_collision::@2#1] -- register_copy + //SEG256 [125] phi (byte) play_collision::i#2 = (byte) play_collision::i#3 [phi:play_collision::@1->play_collision::@2#2] -- register_copy jmp b2 - //SEG255 play_collision::@2 + //SEG257 play_collision::@2 b2: - //SEG256 [124] (byte) play_collision::i#1 ← ++ (byte) play_collision::i#2 -- vbuz1=_inc_vbuz2 + //SEG258 [126] (byte) play_collision::i#1 ← ++ (byte) play_collision::i#2 -- vbuz1=_inc_vbuz2 ldy i_2 iny sty i - //SEG257 [125] 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 + //SEG259 [127] if(*((byte*) play_collision::piece_gfx#0 + (byte) play_collision::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_collision::@3 -- pbuz1_derefidx_vbuz2_eq_0_then_la1 ldy i_2 lda (piece_gfx),y cmp #0 beq b3 jmp b8 - //SEG258 play_collision::@8 + //SEG260 play_collision::@8 b8: - //SEG259 [126] 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 + //SEG261 [128] 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 - //SEG260 [127] phi from play_collision::@8 to play_collision::@return [phi:play_collision::@8->play_collision::@return] + //SEG262 [129] phi from play_collision::@8 to play_collision::@return [phi:play_collision::@8->play_collision::@return] breturn_from_b8: - //SEG261 [127] phi (byte) play_collision::return#14 = (const byte) COLLISION_BOTTOM#0 [phi:play_collision::@8->play_collision::@return#0] -- vbuaa=vbuc1 + //SEG263 [129] 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 - //SEG262 play_collision::@return + //SEG264 play_collision::@return breturn: - //SEG263 [128] return + //SEG265 [130] return rts - //SEG264 play_collision::@4 + //SEG266 play_collision::@4 b4: - //SEG265 [129] (byte~) play_collision::$7 ← (byte) play_collision::col#2 & (byte/word/signed word/dword/signed dword) 128 -- vbuaa=vbuz1_band_vbuc1 + //SEG267 [131] (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 - //SEG266 [130] if((byte~) play_collision::$7==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_collision::@5 -- vbuaa_eq_0_then_la1 + //SEG268 [132] 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 - //SEG267 [127] phi from play_collision::@4 to play_collision::@return [phi:play_collision::@4->play_collision::@return] + //SEG269 [129] phi from play_collision::@4 to play_collision::@return [phi:play_collision::@4->play_collision::@return] breturn_from_b4: - //SEG268 [127] phi (byte) play_collision::return#14 = (const byte) COLLISION_LEFT#0 [phi:play_collision::@4->play_collision::@return#0] -- vbuaa=vbuc1 + //SEG270 [129] 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 - //SEG269 play_collision::@5 + //SEG271 play_collision::@5 b5: - //SEG270 [131] if((byte) play_collision::col#2<(const byte) PLAYFIELD_COLS#0) goto play_collision::@6 -- vbuz1_lt_vbuc1_then_la1 + //SEG272 [133] 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 - //SEG271 [127] phi from play_collision::@5 to play_collision::@return [phi:play_collision::@5->play_collision::@return] + //SEG273 [129] phi from play_collision::@5 to play_collision::@return [phi:play_collision::@5->play_collision::@return] breturn_from_b5: - //SEG272 [127] phi (byte) play_collision::return#14 = (const byte) COLLISION_RIGHT#0 [phi:play_collision::@5->play_collision::@return#0] -- vbuaa=vbuc1 + //SEG274 [129] 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 - //SEG273 play_collision::@6 + //SEG275 play_collision::@6 b6: - //SEG274 [132] 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 + //SEG276 [134] if(*((byte*) play_collision::playfield_line#0 + (byte) play_collision::col#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_collision::@3 -- pbuz1_derefidx_vbuz2_eq_0_then_la1 ldy col lda (playfield_line),y cmp #0 beq b3 - //SEG275 [127] phi from play_collision::@6 to play_collision::@return [phi:play_collision::@6->play_collision::@return] + //SEG277 [129] phi from play_collision::@6 to play_collision::@return [phi:play_collision::@6->play_collision::@return] breturn_from_b6: - //SEG276 [127] phi (byte) play_collision::return#14 = (const byte) COLLISION_PLAYFIELD#0 [phi:play_collision::@6->play_collision::@return#0] -- vbuaa=vbuc1 + //SEG278 [129] 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 - //SEG277 play_collision::@3 + //SEG279 play_collision::@3 b3: - //SEG278 [133] (byte) play_collision::col#1 ← ++ (byte) play_collision::col#2 -- vbuz1=_inc_vbuz1 + //SEG280 [135] (byte) play_collision::col#1 ← ++ (byte) play_collision::col#2 -- vbuz1=_inc_vbuz1 inc col - //SEG279 [134] (byte) play_collision::c#1 ← ++ (byte) play_collision::c#2 -- vbuxx=_inc_vbuxx + //SEG281 [136] (byte) play_collision::c#1 ← ++ (byte) play_collision::c#2 -- vbuxx=_inc_vbuxx inx - //SEG280 [135] 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 + //SEG282 [137] 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 - //SEG281 play_collision::@17 + //SEG283 play_collision::@17 b17: - //SEG282 [136] (byte) play_collision::ypos2#1 ← (byte) play_collision::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 -- vbuz1=vbuz1_plus_2 + //SEG284 [138] (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 - //SEG283 [137] (byte) play_collision::l#1 ← ++ (byte) play_collision::l#6 -- vbuz1=_inc_vbuz1 + //SEG285 [139] (byte) play_collision::l#1 ← ++ (byte) play_collision::l#6 -- vbuz1=_inc_vbuz1 inc l - //SEG284 [138] 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 + //SEG286 [140] 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 - //SEG285 [127] phi from play_collision::@17 to play_collision::@return [phi:play_collision::@17->play_collision::@return] + //SEG287 [129] phi from play_collision::@17 to play_collision::@return [phi:play_collision::@17->play_collision::@return] breturn_from_b17: - //SEG286 [127] phi (byte) play_collision::return#14 = (const byte) COLLISION_NONE#0 [phi:play_collision::@17->play_collision::@return#0] -- vbuaa=vbuc1 + //SEG288 [129] 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 - //SEG287 play_collision::@20 + //SEG289 play_collision::@20 b20: - //SEG288 [139] (byte~) play_collision::i#11 ← (byte) play_collision::i#1 -- vbuz1=vbuz2 + //SEG290 [141] (byte~) play_collision::i#11 ← (byte) play_collision::i#1 -- vbuz1=vbuz2 lda i sta i_11 - //SEG289 [120] phi from play_collision::@20 to play_collision::@1 [phi:play_collision::@20->play_collision::@1] + //SEG291 [122] phi from play_collision::@20 to play_collision::@1 [phi:play_collision::@20->play_collision::@1] b1_from_b20: - //SEG290 [120] phi (byte) play_collision::l#6 = (byte) play_collision::l#1 [phi:play_collision::@20->play_collision::@1#0] -- register_copy - //SEG291 [120] phi (byte) play_collision::i#3 = (byte~) play_collision::i#11 [phi:play_collision::@20->play_collision::@1#1] -- register_copy - //SEG292 [120] phi (byte) play_collision::ypos2#2 = (byte) play_collision::ypos2#1 [phi:play_collision::@20->play_collision::@1#2] -- register_copy + //SEG292 [122] phi (byte) play_collision::l#6 = (byte) play_collision::l#1 [phi:play_collision::@20->play_collision::@1#0] -- register_copy + //SEG293 [122] phi (byte) play_collision::i#3 = (byte~) play_collision::i#11 [phi:play_collision::@20->play_collision::@1#1] -- register_copy + //SEG294 [122] phi (byte) play_collision::ypos2#2 = (byte) play_collision::ypos2#1 [phi:play_collision::@20->play_collision::@1#2] -- register_copy jmp b1 - //SEG293 play_collision::@21 + //SEG295 play_collision::@21 b21: - //SEG294 [140] (byte~) play_collision::i#13 ← (byte) play_collision::i#1 -- vbuz1=vbuz2 + //SEG296 [142] (byte~) play_collision::i#13 ← (byte) play_collision::i#1 -- vbuz1=vbuz2 lda i sta i_13 - //SEG295 [123] phi from play_collision::@21 to play_collision::@2 [phi:play_collision::@21->play_collision::@2] + //SEG297 [125] phi from play_collision::@21 to play_collision::@2 [phi:play_collision::@21->play_collision::@2] b2_from_b21: - //SEG296 [123] phi (byte) play_collision::c#2 = (byte) play_collision::c#1 [phi:play_collision::@21->play_collision::@2#0] -- register_copy - //SEG297 [123] phi (byte) play_collision::col#2 = (byte) play_collision::col#1 [phi:play_collision::@21->play_collision::@2#1] -- register_copy - //SEG298 [123] phi (byte) play_collision::i#2 = (byte~) play_collision::i#13 [phi:play_collision::@21->play_collision::@2#2] -- register_copy + //SEG298 [125] phi (byte) play_collision::c#2 = (byte) play_collision::c#1 [phi:play_collision::@21->play_collision::@2#0] -- register_copy + //SEG299 [125] phi (byte) play_collision::col#2 = (byte) play_collision::col#1 [phi:play_collision::@21->play_collision::@2#1] -- register_copy + //SEG300 [125] phi (byte) play_collision::i#2 = (byte~) play_collision::i#13 [phi:play_collision::@21->play_collision::@2#2] -- register_copy jmp b2 } -//SEG299 play_move_leftright +//SEG301 play_move_leftright play_move_leftright: { - //SEG300 [141] if((byte) play_move_leftright::key_event#0==(const byte) KEY_COMMA#0) goto play_move_leftright::@1 -- vbuaa_eq_vbuc1_then_la1 + //SEG302 [143] 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 - //SEG301 play_move_leftright::@6 + //SEG303 play_move_leftright::@6 b6: - //SEG302 [142] if((byte) play_move_leftright::key_event#0!=(const byte) KEY_DOT#0) goto play_move_leftright::@return -- vbuaa_neq_vbuc1_then_la1 + //SEG304 [144] 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 - //SEG303 play_move_leftright::@7 + //SEG305 play_move_leftright::@7 b7: - //SEG304 [143] (byte) play_collision::xpos#2 ← (byte) current_xpos#16 + (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_plus_1 + //SEG306 [145] (byte) play_collision::xpos#2 ← (byte) current_xpos#16 + (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_plus_1 ldy current_xpos iny sty play_collision.xpos - //SEG305 [144] (byte) play_collision::ypos#2 ← (byte) current_ypos#14 -- vbuyy=vbuz1 + //SEG307 [146] (byte) play_collision::ypos#2 ← (byte) current_ypos#14 -- vbuyy=vbuz1 ldy current_ypos - //SEG306 [145] (byte) play_collision::orientation#2 ← (byte) current_orientation#14 -- vbuxx=vbuz1 + //SEG308 [147] (byte) play_collision::orientation#2 ← (byte) current_orientation#14 -- vbuxx=vbuz1 ldx current_orientation - //SEG307 [146] (byte*~) current_piece#75 ← (byte*) current_piece#10 -- pbuz1=pbuz2 + //SEG309 [148] (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 - //SEG308 [147] call play_collision - //SEG309 [117] phi from play_move_leftright::@7 to play_collision [phi:play_move_leftright::@7->play_collision] + //SEG310 [149] call play_collision + //SEG311 [119] phi from play_move_leftright::@7 to play_collision [phi:play_move_leftright::@7->play_collision] play_collision_from_b7: - //SEG310 [117] phi (byte) play_collision::xpos#5 = (byte) play_collision::xpos#2 [phi:play_move_leftright::@7->play_collision#0] -- register_copy - //SEG311 [117] phi (byte) play_collision::ypos#4 = (byte) play_collision::ypos#2 [phi:play_move_leftright::@7->play_collision#1] -- register_copy - //SEG312 [117] phi (byte) play_collision::orientation#4 = (byte) play_collision::orientation#2 [phi:play_move_leftright::@7->play_collision#2] -- register_copy - //SEG313 [117] phi (byte*) current_piece#12 = (byte*~) current_piece#75 [phi:play_move_leftright::@7->play_collision#3] -- register_copy + //SEG312 [119] phi (byte) play_collision::xpos#5 = (byte) play_collision::xpos#2 [phi:play_move_leftright::@7->play_collision#0] -- register_copy + //SEG313 [119] phi (byte) play_collision::ypos#4 = (byte) play_collision::ypos#2 [phi:play_move_leftright::@7->play_collision#1] -- register_copy + //SEG314 [119] phi (byte) play_collision::orientation#4 = (byte) play_collision::orientation#2 [phi:play_move_leftright::@7->play_collision#2] -- register_copy + //SEG315 [119] phi (byte*) current_piece#12 = (byte*~) current_piece#75 [phi:play_move_leftright::@7->play_collision#3] -- register_copy jsr play_collision - //SEG314 [148] (byte) play_collision::return#12 ← (byte) play_collision::return#14 + //SEG316 [150] (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 - //SEG315 play_move_leftright::@15 + //SEG317 play_move_leftright::@15 b15: - //SEG316 [149] (byte~) play_move_leftright::$4 ← (byte) play_collision::return#12 + //SEG318 [151] (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 - //SEG317 [150] if((byte~) play_move_leftright::$4!=(const byte) COLLISION_NONE#0) goto play_move_leftright::@return -- vbuaa_neq_vbuc1_then_la1 + //SEG319 [152] 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 - //SEG318 play_move_leftright::@8 + //SEG320 play_move_leftright::@8 b8: - //SEG319 [151] (byte) current_xpos#3 ← ++ (byte) current_xpos#16 -- vbuz1=_inc_vbuz1 + //SEG321 [153] (byte) current_xpos#3 ← ++ (byte) current_xpos#16 -- vbuz1=_inc_vbuz1 inc current_xpos - //SEG320 [152] 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] + //SEG322 [154] phi from play_move_leftright::@11 play_move_leftright::@8 to play_move_leftright::@return [phi:play_move_leftright::@11/play_move_leftright::@8->play_move_leftright::@return] breturn_from_b11: breturn_from_b8: - //SEG321 [152] phi (byte) current_xpos#20 = (byte) current_xpos#5 [phi:play_move_leftright::@11/play_move_leftright::@8->play_move_leftright::@return#0] -- register_copy - //SEG322 [152] 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 + //SEG323 [154] phi (byte) current_xpos#20 = (byte) current_xpos#5 [phi:play_move_leftright::@11/play_move_leftright::@8->play_move_leftright::@return#0] -- register_copy + //SEG324 [154] phi (byte) play_move_leftright::return#1 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_move_leftright::@11/play_move_leftright::@8->play_move_leftright::@return#1] -- vbuaa=vbuc1 lda #1 jmp breturn - //SEG323 [152] 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] + //SEG325 [154] phi from play_move_leftright::@14 play_move_leftright::@15 play_move_leftright::@6 to play_move_leftright::@return [phi:play_move_leftright::@14/play_move_leftright::@15/play_move_leftright::@6->play_move_leftright::@return] breturn_from_b14: breturn_from_b15: breturn_from_b6: - //SEG324 [152] phi (byte) current_xpos#20 = (byte) current_xpos#16 [phi:play_move_leftright::@14/play_move_leftright::@15/play_move_leftright::@6->play_move_leftright::@return#0] -- register_copy - //SEG325 [152] 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 + //SEG326 [154] phi (byte) current_xpos#20 = (byte) current_xpos#16 [phi:play_move_leftright::@14/play_move_leftright::@15/play_move_leftright::@6->play_move_leftright::@return#0] -- register_copy + //SEG327 [154] phi (byte) play_move_leftright::return#1 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_leftright::@14/play_move_leftright::@15/play_move_leftright::@6->play_move_leftright::@return#1] -- vbuaa=vbuc1 lda #0 jmp breturn - //SEG326 play_move_leftright::@return + //SEG328 play_move_leftright::@return breturn: - //SEG327 [153] return + //SEG329 [155] return rts - //SEG328 play_move_leftright::@1 + //SEG330 play_move_leftright::@1 b1: - //SEG329 [154] (byte) play_collision::xpos#1 ← (byte) current_xpos#16 - (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_minus_1 + //SEG331 [156] (byte) play_collision::xpos#1 ← (byte) current_xpos#16 - (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_minus_1 ldx current_xpos dex stx play_collision.xpos - //SEG330 [155] (byte) play_collision::ypos#1 ← (byte) current_ypos#14 -- vbuyy=vbuz1 + //SEG332 [157] (byte) play_collision::ypos#1 ← (byte) current_ypos#14 -- vbuyy=vbuz1 ldy current_ypos - //SEG331 [156] (byte) play_collision::orientation#1 ← (byte) current_orientation#14 -- vbuxx=vbuz1 + //SEG333 [158] (byte) play_collision::orientation#1 ← (byte) current_orientation#14 -- vbuxx=vbuz1 ldx current_orientation - //SEG332 [157] (byte*~) current_piece#74 ← (byte*) current_piece#10 -- pbuz1=pbuz2 + //SEG334 [159] (byte*~) current_piece#74 ← (byte*) current_piece#10 -- pbuz1=pbuz2 lda current_piece sta current_piece_74 lda current_piece+1 sta current_piece_74+1 - //SEG333 [158] call play_collision - //SEG334 [117] phi from play_move_leftright::@1 to play_collision [phi:play_move_leftright::@1->play_collision] + //SEG335 [160] call play_collision + //SEG336 [119] phi from play_move_leftright::@1 to play_collision [phi:play_move_leftright::@1->play_collision] play_collision_from_b1: - //SEG335 [117] phi (byte) play_collision::xpos#5 = (byte) play_collision::xpos#1 [phi:play_move_leftright::@1->play_collision#0] -- register_copy - //SEG336 [117] phi (byte) play_collision::ypos#4 = (byte) play_collision::ypos#1 [phi:play_move_leftright::@1->play_collision#1] -- register_copy - //SEG337 [117] phi (byte) play_collision::orientation#4 = (byte) play_collision::orientation#1 [phi:play_move_leftright::@1->play_collision#2] -- register_copy - //SEG338 [117] phi (byte*) current_piece#12 = (byte*~) current_piece#74 [phi:play_move_leftright::@1->play_collision#3] -- register_copy + //SEG337 [119] phi (byte) play_collision::xpos#5 = (byte) play_collision::xpos#1 [phi:play_move_leftright::@1->play_collision#0] -- register_copy + //SEG338 [119] phi (byte) play_collision::ypos#4 = (byte) play_collision::ypos#1 [phi:play_move_leftright::@1->play_collision#1] -- register_copy + //SEG339 [119] phi (byte) play_collision::orientation#4 = (byte) play_collision::orientation#1 [phi:play_move_leftright::@1->play_collision#2] -- register_copy + //SEG340 [119] phi (byte*) current_piece#12 = (byte*~) current_piece#74 [phi:play_move_leftright::@1->play_collision#3] -- register_copy jsr play_collision - //SEG339 [159] (byte) play_collision::return#1 ← (byte) play_collision::return#14 + //SEG341 [161] (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 - //SEG340 play_move_leftright::@14 + //SEG342 play_move_leftright::@14 b14: - //SEG341 [160] (byte~) play_move_leftright::$8 ← (byte) play_collision::return#1 + //SEG343 [162] (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 - //SEG342 [161] if((byte~) play_move_leftright::$8!=(const byte) COLLISION_NONE#0) goto play_move_leftright::@return -- vbuaa_neq_vbuc1_then_la1 + //SEG344 [163] 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 - //SEG343 play_move_leftright::@11 + //SEG345 play_move_leftright::@11 b11: - //SEG344 [162] (byte) current_xpos#5 ← -- (byte) current_xpos#16 -- vbuz1=_dec_vbuz1 + //SEG346 [164] (byte) current_xpos#5 ← -- (byte) current_xpos#16 -- vbuz1=_dec_vbuz1 dec current_xpos jmp breturn_from_b11 } -//SEG345 play_move_down +//SEG347 play_move_down play_move_down: { - //SEG346 [163] (byte) current_movedown_counter#1 ← ++ (byte) current_movedown_counter#12 -- vbuz1=_inc_vbuz1 + //SEG348 [165] (byte) current_movedown_counter#1 ← ++ (byte) current_movedown_counter#12 -- vbuz1=_inc_vbuz1 inc current_movedown_counter - //SEG347 [164] if((byte) play_move_down::key_event#0!=(const byte) KEY_SPACE#0) goto play_move_down::@1 -- vbuaa_neq_vbuc1_then_la1 + //SEG349 [166] 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 - //SEG348 [165] phi from play_move_down to play_move_down::@8 [phi:play_move_down->play_move_down::@8] + //SEG350 [167] 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 - //SEG349 play_move_down::@8 + //SEG351 play_move_down::@8 b8: - //SEG350 [166] phi from play_move_down::@8 to play_move_down::@1 [phi:play_move_down::@8->play_move_down::@1] + //SEG352 [168] phi from play_move_down::@8 to play_move_down::@1 [phi:play_move_down::@8->play_move_down::@1] b1_from_b8: - //SEG351 [166] 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 + //SEG353 [168] 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 - //SEG352 [166] phi from play_move_down to play_move_down::@1 [phi:play_move_down->play_move_down::@1] + //SEG354 [168] phi from play_move_down to play_move_down::@1 [phi:play_move_down->play_move_down::@1] b1_from_play_move_down: - //SEG353 [166] 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 + //SEG355 [168] 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 - //SEG354 play_move_down::@1 + //SEG356 play_move_down::@1 b1: - //SEG355 [167] call keyboard_event_pressed - //SEG356 [250] phi from play_move_down::@1 to keyboard_event_pressed [phi:play_move_down::@1->keyboard_event_pressed] + //SEG357 [169] call keyboard_event_pressed + //SEG358 [254] phi from play_move_down::@1 to keyboard_event_pressed [phi:play_move_down::@1->keyboard_event_pressed] keyboard_event_pressed_from_b1: - //SEG357 [250] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_SPACE#0 [phi:play_move_down::@1->keyboard_event_pressed#0] -- vbuz1=vbuc1 + //SEG359 [254] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_SPACE#0 [phi:play_move_down::@1->keyboard_event_pressed#0] -- vbuz1=vbuc1 lda #KEY_SPACE sta keyboard_event_pressed.keycode jsr keyboard_event_pressed - //SEG358 [168] (byte) keyboard_event_pressed::return#12 ← (byte) keyboard_event_pressed::return#11 + //SEG360 [170] (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 - //SEG359 play_move_down::@17 + //SEG361 play_move_down::@17 b17: - //SEG360 [169] (byte~) play_move_down::$2 ← (byte) keyboard_event_pressed::return#12 + //SEG362 [171] (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 - //SEG361 [170] 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 + //SEG363 [172] 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 - //SEG362 play_move_down::@9 + //SEG364 play_move_down::@9 b9: - //SEG363 [171] if((byte) current_movedown_counter#1<(const byte) current_movedown_fast#0) goto play_move_down::@2 -- vbuz1_lt_vbuc1_then_la1 + //SEG365 [173] 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 - //SEG364 play_move_down::@10 + //SEG366 play_move_down::@10 b10: - //SEG365 [172] (byte) play_move_down::movedown#2 ← ++ (byte) play_move_down::movedown#10 -- vbuxx=_inc_vbuxx + //SEG367 [174] (byte) play_move_down::movedown#2 ← ++ (byte) play_move_down::movedown#10 -- vbuxx=_inc_vbuxx inx - //SEG366 [173] 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] + //SEG368 [175] 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: - //SEG367 [173] 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 + //SEG369 [175] 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 - //SEG368 play_move_down::@2 + //SEG370 play_move_down::@2 b2: - //SEG369 [174] if((byte) current_movedown_counter#1<(const byte) current_movedown_slow#0) goto play_move_down::@4 -- vbuz1_lt_vbuc1_then_la1 + //SEG371 [176] 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 - //SEG370 play_move_down::@11 + //SEG372 play_move_down::@11 b11: - //SEG371 [175] (byte) play_move_down::movedown#3 ← ++ (byte) play_move_down::movedown#7 -- vbuxx=_inc_vbuxx + //SEG373 [177] (byte) play_move_down::movedown#3 ← ++ (byte) play_move_down::movedown#7 -- vbuxx=_inc_vbuxx inx - //SEG372 [176] 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] + //SEG374 [178] 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: - //SEG373 [176] 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 + //SEG375 [178] 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 - //SEG374 play_move_down::@4 + //SEG376 play_move_down::@4 b4: - //SEG375 [177] 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 + //SEG377 [179] 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 - //SEG376 play_move_down::@12 + //SEG378 play_move_down::@12 b12: - //SEG377 [178] (byte) play_collision::ypos#0 ← (byte) current_ypos#22 + (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuyy=vbuz1_plus_1 + //SEG379 [180] (byte) play_collision::ypos#0 ← (byte) current_ypos#22 + (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuyy=vbuz1_plus_1 ldy current_ypos iny - //SEG378 [179] (byte) play_collision::xpos#0 ← (byte) current_xpos#11 -- vbuz1=vbuz2 + //SEG380 [181] (byte) play_collision::xpos#0 ← (byte) current_xpos#11 -- vbuz1=vbuz2 lda current_xpos sta play_collision.xpos - //SEG379 [180] (byte) play_collision::orientation#0 ← (byte) current_orientation#10 -- vbuxx=vbuz1 + //SEG381 [182] (byte) play_collision::orientation#0 ← (byte) current_orientation#10 -- vbuxx=vbuz1 ldx current_orientation - //SEG380 [181] (byte*~) current_piece#73 ← (byte*) current_piece#16 -- pbuz1=pbuz2 + //SEG382 [183] (byte*~) current_piece#73 ← (byte*) current_piece#16 -- pbuz1=pbuz2 lda current_piece sta current_piece_73 lda current_piece+1 sta current_piece_73+1 - //SEG381 [182] call play_collision - //SEG382 [117] phi from play_move_down::@12 to play_collision [phi:play_move_down::@12->play_collision] + //SEG383 [184] call play_collision + //SEG384 [119] phi from play_move_down::@12 to play_collision [phi:play_move_down::@12->play_collision] play_collision_from_b12: - //SEG383 [117] phi (byte) play_collision::xpos#5 = (byte) play_collision::xpos#0 [phi:play_move_down::@12->play_collision#0] -- register_copy - //SEG384 [117] phi (byte) play_collision::ypos#4 = (byte) play_collision::ypos#0 [phi:play_move_down::@12->play_collision#1] -- register_copy - //SEG385 [117] phi (byte) play_collision::orientation#4 = (byte) play_collision::orientation#0 [phi:play_move_down::@12->play_collision#2] -- register_copy - //SEG386 [117] phi (byte*) current_piece#12 = (byte*~) current_piece#73 [phi:play_move_down::@12->play_collision#3] -- register_copy + //SEG385 [119] phi (byte) play_collision::xpos#5 = (byte) play_collision::xpos#0 [phi:play_move_down::@12->play_collision#0] -- register_copy + //SEG386 [119] phi (byte) play_collision::ypos#4 = (byte) play_collision::ypos#0 [phi:play_move_down::@12->play_collision#1] -- register_copy + //SEG387 [119] phi (byte) play_collision::orientation#4 = (byte) play_collision::orientation#0 [phi:play_move_down::@12->play_collision#2] -- register_copy + //SEG388 [119] phi (byte*) current_piece#12 = (byte*~) current_piece#73 [phi:play_move_down::@12->play_collision#3] -- register_copy jsr play_collision - //SEG387 [183] (byte) play_collision::return#0 ← (byte) play_collision::return#14 + //SEG389 [185] (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 - //SEG388 play_move_down::@18 + //SEG390 play_move_down::@18 b18: - //SEG389 [184] (byte~) play_move_down::$12 ← (byte) play_collision::return#0 + //SEG391 [186] (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 - //SEG390 [185] if((byte~) play_move_down::$12==(const byte) COLLISION_NONE#0) goto play_move_down::@6 -- vbuaa_eq_vbuc1_then_la1 + //SEG392 [187] 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 - //SEG391 [186] phi from play_move_down::@18 to play_move_down::@13 [phi:play_move_down::@18->play_move_down::@13] + //SEG393 [188] 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 - //SEG392 play_move_down::@13 + //SEG394 play_move_down::@13 b13: - //SEG393 [187] call play_lock_current + //SEG395 [189] call play_lock_current jsr play_lock_current - //SEG394 [188] phi from play_move_down::@13 to play_move_down::@19 [phi:play_move_down::@13->play_move_down::@19] + //SEG396 [190] 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 - //SEG395 play_move_down::@19 + //SEG397 play_move_down::@19 b19: - //SEG396 [189] call play_remove_lines - //SEG397 [211] phi from play_move_down::@19 to play_remove_lines [phi:play_move_down::@19->play_remove_lines] + //SEG398 [191] call play_remove_lines + //SEG399 [215] 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 - //SEG398 [190] phi from play_move_down::@19 to play_move_down::@20 [phi:play_move_down::@19->play_move_down::@20] + //SEG400 [192] 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 - //SEG399 play_move_down::@20 + //SEG401 play_move_down::@20 b20: - //SEG400 [191] call play_spawn_current - //SEG401 [197] phi from play_move_down::@20 to play_spawn_current [phi:play_move_down::@20->play_spawn_current] + //SEG402 [193] call play_spawn_current + //SEG403 [199] 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 - //SEG402 [192] (byte*~) current_piece#77 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) -- pbuz1=pptc1_derefidx_vbuz2 + //SEG404 [194] (byte*~) current_piece#77 ← (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 - //SEG403 [193] phi from play_move_down::@20 to play_move_down::@7 [phi:play_move_down::@20->play_move_down::@7] + //SEG405 [195] phi from play_move_down::@20 to play_move_down::@7 [phi:play_move_down::@20->play_move_down::@7] b7_from_b20: - //SEG404 [193] phi (byte) current_piece_char#21 = (byte) current_piece_char#13 [phi:play_move_down::@20->play_move_down::@7#0] -- register_copy - //SEG405 [193] phi (byte) current_xpos#34 = (byte/signed byte/word/signed word/dword/signed dword) 3 [phi:play_move_down::@20->play_move_down::@7#1] -- vbuz1=vbuc1 - lda #3 - sta current_xpos - //SEG406 [193] phi (byte*) current_piece_gfx#27 = (byte*) current_piece_gfx#17 [phi:play_move_down::@20->play_move_down::@7#2] -- register_copy - //SEG407 [193] 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 + //SEG406 [195] phi (byte) current_piece_char#21 = (byte) current_piece_char#13 [phi:play_move_down::@20->play_move_down::@7#0] -- register_copy + //SEG407 [195] phi (byte) current_xpos#34 = (byte) current_xpos#24 [phi:play_move_down::@20->play_move_down::@7#1] -- register_copy + //SEG408 [195] phi (byte*) current_piece_gfx#27 = (byte*) current_piece_gfx#17 [phi:play_move_down::@20->play_move_down::@7#2] -- register_copy + //SEG409 [195] phi (byte) current_orientation#29 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_down::@20->play_move_down::@7#3] -- vbuz1=vbuc1 lda #0 sta current_orientation - //SEG408 [193] phi (byte*) current_piece#20 = (byte*~) current_piece#77 [phi:play_move_down::@20->play_move_down::@7#4] -- register_copy - //SEG409 [193] phi (byte) current_ypos#30 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_down::@20->play_move_down::@7#5] -- vbuz1=vbuc1 - lda #0 - sta current_ypos + //SEG410 [195] phi (byte*) current_piece#20 = (byte*~) current_piece#77 [phi:play_move_down::@20->play_move_down::@7#4] -- register_copy + //SEG411 [195] phi (byte) current_ypos#30 = (byte) current_ypos#19 [phi:play_move_down::@20->play_move_down::@7#5] -- register_copy jmp b7 - //SEG410 play_move_down::@7 + //SEG412 play_move_down::@7 b7: - //SEG411 [194] phi from play_move_down::@7 to play_move_down::@return [phi:play_move_down::@7->play_move_down::@return] + //SEG413 [196] phi from play_move_down::@7 to play_move_down::@return [phi:play_move_down::@7->play_move_down::@return] breturn_from_b7: - //SEG412 [194] phi (byte) current_piece_char#11 = (byte) current_piece_char#21 [phi:play_move_down::@7->play_move_down::@return#0] -- register_copy - //SEG413 [194] phi (byte) current_xpos#16 = (byte) current_xpos#34 [phi:play_move_down::@7->play_move_down::@return#1] -- register_copy - //SEG414 [194] phi (byte*) current_piece_gfx#14 = (byte*) current_piece_gfx#27 [phi:play_move_down::@7->play_move_down::@return#2] -- register_copy - //SEG415 [194] phi (byte) current_orientation#14 = (byte) current_orientation#29 [phi:play_move_down::@7->play_move_down::@return#3] -- register_copy - //SEG416 [194] phi (byte*) current_piece#10 = (byte*) current_piece#20 [phi:play_move_down::@7->play_move_down::@return#4] -- register_copy - //SEG417 [194] phi (byte) current_ypos#14 = (byte) current_ypos#30 [phi:play_move_down::@7->play_move_down::@return#5] -- register_copy - //SEG418 [194] 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 + //SEG414 [196] phi (byte) current_piece_char#11 = (byte) current_piece_char#21 [phi:play_move_down::@7->play_move_down::@return#0] -- register_copy + //SEG415 [196] phi (byte) current_xpos#16 = (byte) current_xpos#34 [phi:play_move_down::@7->play_move_down::@return#1] -- register_copy + //SEG416 [196] phi (byte*) current_piece_gfx#14 = (byte*) current_piece_gfx#27 [phi:play_move_down::@7->play_move_down::@return#2] -- register_copy + //SEG417 [196] phi (byte) current_orientation#14 = (byte) current_orientation#29 [phi:play_move_down::@7->play_move_down::@return#3] -- register_copy + //SEG418 [196] phi (byte*) current_piece#10 = (byte*) current_piece#20 [phi:play_move_down::@7->play_move_down::@return#4] -- register_copy + //SEG419 [196] phi (byte) current_ypos#14 = (byte) current_ypos#30 [phi:play_move_down::@7->play_move_down::@return#5] -- register_copy + //SEG420 [196] phi (byte) current_movedown_counter#10 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_down::@7->play_move_down::@return#6] -- vbuz1=vbuc1 lda #0 sta current_movedown_counter - //SEG419 [194] 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 + //SEG421 [196] 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 - //SEG420 [194] phi from play_move_down::@4 to play_move_down::@return [phi:play_move_down::@4->play_move_down::@return] + //SEG422 [196] phi from play_move_down::@4 to play_move_down::@return [phi:play_move_down::@4->play_move_down::@return] breturn_from_b4: - //SEG421 [194] phi (byte) current_piece_char#11 = (byte) current_piece_char#16 [phi:play_move_down::@4->play_move_down::@return#0] -- register_copy - //SEG422 [194] phi (byte) current_xpos#16 = (byte) current_xpos#11 [phi:play_move_down::@4->play_move_down::@return#1] -- register_copy - //SEG423 [194] phi (byte*) current_piece_gfx#14 = (byte*) current_piece_gfx#10 [phi:play_move_down::@4->play_move_down::@return#2] -- register_copy - //SEG424 [194] phi (byte) current_orientation#14 = (byte) current_orientation#10 [phi:play_move_down::@4->play_move_down::@return#3] -- register_copy - //SEG425 [194] phi (byte*) current_piece#10 = (byte*) current_piece#16 [phi:play_move_down::@4->play_move_down::@return#4] -- register_copy - //SEG426 [194] phi (byte) current_ypos#14 = (byte) current_ypos#22 [phi:play_move_down::@4->play_move_down::@return#5] -- register_copy - //SEG427 [194] phi (byte) current_movedown_counter#10 = (byte) current_movedown_counter#1 [phi:play_move_down::@4->play_move_down::@return#6] -- register_copy - //SEG428 [194] 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 + //SEG423 [196] phi (byte) current_piece_char#11 = (byte) current_piece_char#16 [phi:play_move_down::@4->play_move_down::@return#0] -- register_copy + //SEG424 [196] phi (byte) current_xpos#16 = (byte) current_xpos#11 [phi:play_move_down::@4->play_move_down::@return#1] -- register_copy + //SEG425 [196] phi (byte*) current_piece_gfx#14 = (byte*) current_piece_gfx#10 [phi:play_move_down::@4->play_move_down::@return#2] -- register_copy + //SEG426 [196] phi (byte) current_orientation#14 = (byte) current_orientation#10 [phi:play_move_down::@4->play_move_down::@return#3] -- register_copy + //SEG427 [196] phi (byte*) current_piece#10 = (byte*) current_piece#16 [phi:play_move_down::@4->play_move_down::@return#4] -- register_copy + //SEG428 [196] phi (byte) current_ypos#14 = (byte) current_ypos#22 [phi:play_move_down::@4->play_move_down::@return#5] -- register_copy + //SEG429 [196] phi (byte) current_movedown_counter#10 = (byte) current_movedown_counter#1 [phi:play_move_down::@4->play_move_down::@return#6] -- register_copy + //SEG430 [196] phi (byte) play_move_down::return#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_down::@4->play_move_down::@return#7] -- vbuxx=vbuc1 ldx #0 jmp breturn - //SEG429 play_move_down::@return + //SEG431 play_move_down::@return breturn: - //SEG430 [195] return + //SEG432 [197] return rts - //SEG431 play_move_down::@6 + //SEG433 play_move_down::@6 b6: - //SEG432 [196] (byte) current_ypos#1 ← ++ (byte) current_ypos#22 -- vbuz1=_inc_vbuz1 + //SEG434 [198] (byte) current_ypos#1 ← ++ (byte) current_ypos#22 -- vbuz1=_inc_vbuz1 inc current_ypos - //SEG433 [193] phi from play_move_down::@6 to play_move_down::@7 [phi:play_move_down::@6->play_move_down::@7] + //SEG435 [195] phi from play_move_down::@6 to play_move_down::@7 [phi:play_move_down::@6->play_move_down::@7] b7_from_b6: - //SEG434 [193] phi (byte) current_piece_char#21 = (byte) current_piece_char#16 [phi:play_move_down::@6->play_move_down::@7#0] -- register_copy - //SEG435 [193] phi (byte) current_xpos#34 = (byte) current_xpos#11 [phi:play_move_down::@6->play_move_down::@7#1] -- register_copy - //SEG436 [193] phi (byte*) current_piece_gfx#27 = (byte*) current_piece_gfx#10 [phi:play_move_down::@6->play_move_down::@7#2] -- register_copy - //SEG437 [193] phi (byte) current_orientation#29 = (byte) current_orientation#10 [phi:play_move_down::@6->play_move_down::@7#3] -- register_copy - //SEG438 [193] phi (byte*) current_piece#20 = (byte*) current_piece#16 [phi:play_move_down::@6->play_move_down::@7#4] -- register_copy - //SEG439 [193] phi (byte) current_ypos#30 = (byte) current_ypos#1 [phi:play_move_down::@6->play_move_down::@7#5] -- register_copy + //SEG436 [195] phi (byte) current_piece_char#21 = (byte) current_piece_char#16 [phi:play_move_down::@6->play_move_down::@7#0] -- register_copy + //SEG437 [195] phi (byte) current_xpos#34 = (byte) current_xpos#11 [phi:play_move_down::@6->play_move_down::@7#1] -- register_copy + //SEG438 [195] phi (byte*) current_piece_gfx#27 = (byte*) current_piece_gfx#10 [phi:play_move_down::@6->play_move_down::@7#2] -- register_copy + //SEG439 [195] phi (byte) current_orientation#29 = (byte) current_orientation#10 [phi:play_move_down::@6->play_move_down::@7#3] -- register_copy + //SEG440 [195] phi (byte*) current_piece#20 = (byte*) current_piece#16 [phi:play_move_down::@6->play_move_down::@7#4] -- register_copy + //SEG441 [195] phi (byte) current_ypos#30 = (byte) current_ypos#1 [phi:play_move_down::@6->play_move_down::@7#5] -- register_copy jmp b7 } -//SEG440 play_spawn_current +//SEG442 play_spawn_current play_spawn_current: { .label _3 = 2 - //SEG441 [198] phi from play_spawn_current to play_spawn_current::@1 [phi:play_spawn_current->play_spawn_current::@1] + //SEG443 [200] phi from play_spawn_current to play_spawn_current::@1 [phi:play_spawn_current->play_spawn_current::@1] b1_from_play_spawn_current: - //SEG442 [198] 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 + //SEG444 [200] 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 - //SEG443 play_spawn_current::@1 + //SEG445 play_spawn_current::@1 b1: - //SEG444 [199] 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 + //SEG446 [201] 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 - //SEG445 play_spawn_current::@3 + //SEG447 play_spawn_current::@3 b3: - //SEG446 [200] (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 + //SEG448 [202] (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 - //SEG447 [201] (byte*) current_piece_gfx#17 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) + (byte/signed byte/word/signed word/dword/signed dword) 0 -- pbuz1=pptc1_derefidx_vbuz2_plus_0 + //SEG449 [203] (byte*) current_piece_gfx#17 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) + (byte/signed byte/word/signed word/dword/signed dword) 0 -- pbuz1=pptc1_derefidx_vbuz2_plus_0 ldy _3 lda PIECES,y sta current_piece_gfx lda PIECES+1,y sta current_piece_gfx+1 - //SEG448 [202] (byte) current_piece_char#13 ← *((const byte[]) PIECES_CHARS#0 + (byte) play_spawn_current::piece_idx#2) -- vbuz1=pbuc1_derefidx_vbuxx + //SEG450 [204] (byte) current_xpos#24 ← *((const byte[]) PIECES_START_X#0 + (byte) play_spawn_current::piece_idx#2) -- vbuz1=pbuc1_derefidx_vbuxx + lda PIECES_START_X,x + sta current_xpos + //SEG451 [205] (byte) current_ypos#19 ← *((const byte[]) PIECES_START_Y#0 + (byte) play_spawn_current::piece_idx#2) -- vbuz1=pbuc1_derefidx_vbuxx + lda PIECES_START_Y,x + sta current_ypos + //SEG452 [206] (byte) current_piece_char#13 ← *((const byte[]) PIECES_CHARS#0 + (byte) play_spawn_current::piece_idx#2) -- vbuz1=pbuc1_derefidx_vbuxx lda PIECES_CHARS,x sta current_piece_char jmp breturn - //SEG449 play_spawn_current::@return + //SEG453 play_spawn_current::@return breturn: - //SEG450 [203] return + //SEG454 [207] return rts - //SEG451 [204] phi from play_spawn_current::@1 to play_spawn_current::@2 [phi:play_spawn_current::@1->play_spawn_current::@2] + //SEG455 [208] 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 - //SEG452 play_spawn_current::@2 + //SEG456 play_spawn_current::@2 b2: - //SEG453 [205] call sid_rnd + //SEG457 [209] call sid_rnd jsr sid_rnd - //SEG454 [206] (byte) sid_rnd::return#2 ← (byte) sid_rnd::return#0 + //SEG458 [210] (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 - //SEG455 play_spawn_current::@7 + //SEG459 play_spawn_current::@7 b7: - //SEG456 [207] (byte~) play_spawn_current::$1 ← (byte) sid_rnd::return#2 + //SEG460 [211] (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 - //SEG457 [208] (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 + //SEG461 [212] (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 - //SEG458 [198] phi from play_spawn_current::@7 to play_spawn_current::@1 [phi:play_spawn_current::@7->play_spawn_current::@1] + //SEG462 [200] phi from play_spawn_current::@7 to play_spawn_current::@1 [phi:play_spawn_current::@7->play_spawn_current::@1] b1_from_b7: - //SEG459 [198] 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 + //SEG463 [200] 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 } -//SEG460 sid_rnd +//SEG464 sid_rnd sid_rnd: { - //SEG461 [209] (byte) sid_rnd::return#0 ← *((const byte*) SID_VOICE3_OSC#0) -- vbuaa=_deref_pbuc1 + //SEG465 [213] (byte) sid_rnd::return#0 ← *((const byte*) SID_VOICE3_OSC#0) -- vbuaa=_deref_pbuc1 lda SID_VOICE3_OSC jmp breturn - //SEG462 sid_rnd::@return + //SEG466 sid_rnd::@return breturn: - //SEG463 [210] return + //SEG467 [214] return rts } -//SEG464 play_remove_lines +//SEG468 play_remove_lines play_remove_lines: { .label c = 7 .label x = 3 .label y = 2 - .label full = 4 - //SEG465 [212] phi from play_remove_lines to play_remove_lines::@1 [phi:play_remove_lines->play_remove_lines::@1] + .label full = 6 + //SEG469 [216] phi from play_remove_lines to play_remove_lines::@1 [phi:play_remove_lines->play_remove_lines::@1] b1_from_play_remove_lines: - //SEG466 [212] 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 + //SEG470 [216] 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 - //SEG467 [212] 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 + //SEG471 [216] 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 - //SEG468 [212] 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 + //SEG472 [216] 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 - //SEG469 [212] phi from play_remove_lines::@4 to play_remove_lines::@1 [phi:play_remove_lines::@4->play_remove_lines::@1] + //SEG473 [216] phi from play_remove_lines::@4 to play_remove_lines::@1 [phi:play_remove_lines::@4->play_remove_lines::@1] b1_from_b4: - //SEG470 [212] 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 - //SEG471 [212] 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 - //SEG472 [212] 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 + //SEG474 [216] 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 + //SEG475 [216] 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 + //SEG476 [216] 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 - //SEG473 play_remove_lines::@1 + //SEG477 play_remove_lines::@1 b1: - //SEG474 [213] phi from play_remove_lines::@1 to play_remove_lines::@2 [phi:play_remove_lines::@1->play_remove_lines::@2] + //SEG478 [217] phi from play_remove_lines::@1 to play_remove_lines::@2 [phi:play_remove_lines::@1->play_remove_lines::@2] b2_from_b1: - //SEG475 [213] 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 + //SEG479 [217] 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 - //SEG476 [213] 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 + //SEG480 [217] 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 - //SEG477 [213] 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 - //SEG478 [213] 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 + //SEG481 [217] 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 + //SEG482 [217] 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 - //SEG479 [213] phi from play_remove_lines::@3 to play_remove_lines::@2 [phi:play_remove_lines::@3->play_remove_lines::@2] + //SEG483 [217] phi from play_remove_lines::@3 to play_remove_lines::@2 [phi:play_remove_lines::@3->play_remove_lines::@2] b2_from_b3: - //SEG480 [213] 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 - //SEG481 [213] 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 - //SEG482 [213] 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 - //SEG483 [213] 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 + //SEG484 [217] 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 + //SEG485 [217] 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 + //SEG486 [217] 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 + //SEG487 [217] 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 - //SEG484 play_remove_lines::@2 + //SEG488 play_remove_lines::@2 b2: - //SEG485 [214] (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 + //SEG489 [218] (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 - //SEG486 [215] (byte) play_remove_lines::r#1 ← -- (byte) play_remove_lines::r#2 -- vbuyy=_dec_vbuyy + //SEG490 [219] (byte) play_remove_lines::r#1 ← -- (byte) play_remove_lines::r#2 -- vbuyy=_dec_vbuyy dey - //SEG487 [216] 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 + //SEG491 [220] 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 - //SEG488 [217] phi from play_remove_lines::@2 to play_remove_lines::@3 [phi:play_remove_lines::@2->play_remove_lines::@3] + //SEG492 [221] phi from play_remove_lines::@2 to play_remove_lines::@3 [phi:play_remove_lines::@2->play_remove_lines::@3] b3_from_b2: - //SEG489 [217] 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 + //SEG493 [221] 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 - //SEG490 play_remove_lines::@3 + //SEG494 play_remove_lines::@3 b3: - //SEG491 [218] *((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 + //SEG495 [222] *((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 - //SEG492 [219] (byte) play_remove_lines::w#1 ← -- (byte) play_remove_lines::w#4 -- vbuxx=_dec_vbuxx + //SEG496 [223] (byte) play_remove_lines::w#1 ← -- (byte) play_remove_lines::w#4 -- vbuxx=_dec_vbuxx dex - //SEG493 [220] (byte) play_remove_lines::x#1 ← ++ (byte) play_remove_lines::x#2 -- vbuz1=_inc_vbuz1 + //SEG497 [224] (byte) play_remove_lines::x#1 ← ++ (byte) play_remove_lines::x#2 -- vbuz1=_inc_vbuz1 inc x - //SEG494 [221] 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 + //SEG498 [225] 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 - //SEG495 play_remove_lines::@9 + //SEG499 play_remove_lines::@9 b9: - //SEG496 [222] 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 + //SEG500 [226] 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 - //SEG497 play_remove_lines::@10 + //SEG501 play_remove_lines::@10 b10: - //SEG498 [223] (byte) play_remove_lines::w#2 ← (byte) play_remove_lines::w#1 + (const byte) PLAYFIELD_COLS#0 -- vbuxx=vbuxx_plus_vbuc1 + //SEG502 [227] (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 - //SEG499 [224] 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] + //SEG503 [228] 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: - //SEG500 [224] 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 + //SEG504 [228] 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 - //SEG501 play_remove_lines::@4 + //SEG505 play_remove_lines::@4 b4: - //SEG502 [225] (byte) play_remove_lines::y#1 ← ++ (byte) play_remove_lines::y#8 -- vbuz1=_inc_vbuz1 + //SEG506 [229] (byte) play_remove_lines::y#1 ← ++ (byte) play_remove_lines::y#8 -- vbuz1=_inc_vbuz1 inc y - //SEG503 [226] 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 + //SEG507 [230] 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 - //SEG504 [227] 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] + //SEG508 [231] 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: - //SEG505 [227] 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 + //SEG509 [231] 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 - //SEG506 play_remove_lines::@5 + //SEG510 play_remove_lines::@5 b5: - //SEG507 [228] 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 + //SEG511 [232] 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 - //SEG508 play_remove_lines::@return + //SEG512 play_remove_lines::@return breturn: - //SEG509 [229] return + //SEG513 [233] return rts - //SEG510 play_remove_lines::@6 + //SEG514 play_remove_lines::@6 b6: - //SEG511 [230] *((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 + //SEG515 [234] *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) play_remove_lines::w#6) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- pbuc1_derefidx_vbuxx=vbuc2 lda #0 sta playfield,x - //SEG512 [231] (byte) play_remove_lines::w#3 ← -- (byte) play_remove_lines::w#6 -- vbuxx=_dec_vbuxx + //SEG516 [235] (byte) play_remove_lines::w#3 ← -- (byte) play_remove_lines::w#6 -- vbuxx=_dec_vbuxx dex jmp b5_from_b6 - //SEG513 [232] phi from play_remove_lines::@2 to play_remove_lines::@17 [phi:play_remove_lines::@2->play_remove_lines::@17] + //SEG517 [236] 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 - //SEG514 play_remove_lines::@17 + //SEG518 play_remove_lines::@17 b17: - //SEG515 [217] phi from play_remove_lines::@17 to play_remove_lines::@3 [phi:play_remove_lines::@17->play_remove_lines::@3] + //SEG519 [221] phi from play_remove_lines::@17 to play_remove_lines::@3 [phi:play_remove_lines::@17->play_remove_lines::@3] b3_from_b17: - //SEG516 [217] 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 + //SEG520 [221] 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 } -//SEG517 play_lock_current +//SEG521 play_lock_current play_lock_current: { - .label ypos2 = 2 - .label playfield_line = 5 - .label col = 7 - .label i = 8 - .label l = 3 - .label i_2 = 4 - .label i_3 = 4 - .label i_7 = 4 - .label i_9 = 4 - //SEG518 [233] (byte) play_lock_current::ypos2#0 ← (byte) current_ypos#22 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz1_rol_1 + .label ypos2 = $b + .label playfield_line = 4 + .label col = 6 + .label i = 7 + .label l = 2 + .label i_2 = 3 + .label i_3 = 3 + .label i_7 = 3 + .label i_9 = 3 + //SEG522 [237] (byte) play_lock_current::ypos2#0 ← (byte) current_ypos#22 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz1_rol_1 asl ypos2 - //SEG519 [234] phi from play_lock_current to play_lock_current::@1 [phi:play_lock_current->play_lock_current::@1] + //SEG523 [238] phi from play_lock_current to play_lock_current::@1 [phi:play_lock_current->play_lock_current::@1] b1_from_play_lock_current: - //SEG520 [234] 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 + //SEG524 [238] phi (byte) play_lock_current::l#6 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_lock_current->play_lock_current::@1#0] -- vbuz1=vbuc1 lda #0 sta l - //SEG521 [234] 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 + //SEG525 [238] 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 - //SEG522 [234] phi (byte) play_lock_current::ypos2#2 = (byte) play_lock_current::ypos2#0 [phi:play_lock_current->play_lock_current::@1#2] -- register_copy + //SEG526 [238] 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 - //SEG523 play_lock_current::@1 + //SEG527 play_lock_current::@1 b1: - //SEG524 [235] (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 + //SEG528 [239] (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 - //SEG525 [236] (byte) play_lock_current::col#0 ← (byte) current_xpos#11 -- vbuz1=vbuz2 + //SEG529 [240] (byte) play_lock_current::col#0 ← (byte) current_xpos#11 -- vbuz1=vbuz2 lda current_xpos sta col - //SEG526 [237] phi from play_lock_current::@1 to play_lock_current::@2 [phi:play_lock_current::@1->play_lock_current::@2] + //SEG530 [241] phi from play_lock_current::@1 to play_lock_current::@2 [phi:play_lock_current::@1->play_lock_current::@2] b2_from_b1: - //SEG527 [237] 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 + //SEG531 [241] 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 - //SEG528 [237] 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 - //SEG529 [237] 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 + //SEG532 [241] 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 + //SEG533 [241] 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 - //SEG530 play_lock_current::@2 + //SEG534 play_lock_current::@2 b2: - //SEG531 [238] (byte) play_lock_current::i#1 ← ++ (byte) play_lock_current::i#2 -- vbuz1=_inc_vbuz2 + //SEG535 [242] (byte) play_lock_current::i#1 ← ++ (byte) play_lock_current::i#2 -- vbuz1=_inc_vbuz2 ldy i_2 iny sty i - //SEG532 [239] if(*((byte*) current_piece_gfx#10 + (byte) play_lock_current::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_lock_current::@3 -- pbuz1_derefidx_vbuz2_eq_0_then_la1 + //SEG536 [243] if(*((byte*) current_piece_gfx#10 + (byte) play_lock_current::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_lock_current::@3 -- pbuz1_derefidx_vbuz2_eq_0_then_la1 ldy i_2 lda (current_piece_gfx),y cmp #0 beq b3 jmp b4 - //SEG533 play_lock_current::@4 + //SEG537 play_lock_current::@4 b4: - //SEG534 [240] *((byte*) play_lock_current::playfield_line#0 + (byte) play_lock_current::col#2) ← (byte) current_piece_char#16 -- pbuz1_derefidx_vbuz2=vbuz3 + //SEG538 [244] *((byte*) play_lock_current::playfield_line#0 + (byte) play_lock_current::col#2) ← (byte) current_piece_char#16 -- pbuz1_derefidx_vbuz2=vbuz3 lda current_piece_char ldy col sta (playfield_line),y jmp b3 - //SEG535 play_lock_current::@3 + //SEG539 play_lock_current::@3 b3: - //SEG536 [241] (byte) play_lock_current::col#1 ← ++ (byte) play_lock_current::col#2 -- vbuz1=_inc_vbuz1 + //SEG540 [245] (byte) play_lock_current::col#1 ← ++ (byte) play_lock_current::col#2 -- vbuz1=_inc_vbuz1 inc col - //SEG537 [242] (byte) play_lock_current::c#1 ← ++ (byte) play_lock_current::c#2 -- vbuxx=_inc_vbuxx + //SEG541 [246] (byte) play_lock_current::c#1 ← ++ (byte) play_lock_current::c#2 -- vbuxx=_inc_vbuxx inx - //SEG538 [243] 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 + //SEG542 [247] 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 - //SEG539 play_lock_current::@5 + //SEG543 play_lock_current::@5 b5: - //SEG540 [244] (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 + //SEG544 [248] (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 - //SEG541 [245] (byte) play_lock_current::l#1 ← ++ (byte) play_lock_current::l#6 -- vbuz1=_inc_vbuz1 + //SEG545 [249] (byte) play_lock_current::l#1 ← ++ (byte) play_lock_current::l#6 -- vbuz1=_inc_vbuz1 inc l - //SEG542 [246] 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 + //SEG546 [250] 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 - //SEG543 play_lock_current::@return + //SEG547 play_lock_current::@return breturn: - //SEG544 [247] return + //SEG548 [251] return rts - //SEG545 play_lock_current::@7 + //SEG549 play_lock_current::@7 b7: - //SEG546 [248] (byte~) play_lock_current::i#7 ← (byte) play_lock_current::i#1 -- vbuz1=vbuz2 + //SEG550 [252] (byte~) play_lock_current::i#7 ← (byte) play_lock_current::i#1 -- vbuz1=vbuz2 lda i sta i_7 - //SEG547 [234] phi from play_lock_current::@7 to play_lock_current::@1 [phi:play_lock_current::@7->play_lock_current::@1] + //SEG551 [238] phi from play_lock_current::@7 to play_lock_current::@1 [phi:play_lock_current::@7->play_lock_current::@1] b1_from_b7: - //SEG548 [234] 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 - //SEG549 [234] 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 - //SEG550 [234] 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 + //SEG552 [238] 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 + //SEG553 [238] 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 + //SEG554 [238] 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 - //SEG551 play_lock_current::@8 + //SEG555 play_lock_current::@8 b8: - //SEG552 [249] (byte~) play_lock_current::i#9 ← (byte) play_lock_current::i#1 -- vbuz1=vbuz2 + //SEG556 [253] (byte~) play_lock_current::i#9 ← (byte) play_lock_current::i#1 -- vbuz1=vbuz2 lda i sta i_9 - //SEG553 [237] phi from play_lock_current::@8 to play_lock_current::@2 [phi:play_lock_current::@8->play_lock_current::@2] + //SEG557 [241] phi from play_lock_current::@8 to play_lock_current::@2 [phi:play_lock_current::@8->play_lock_current::@2] b2_from_b8: - //SEG554 [237] 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 - //SEG555 [237] 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 - //SEG556 [237] 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 + //SEG558 [241] 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 + //SEG559 [241] 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 + //SEG560 [241] 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 } -//SEG557 keyboard_event_pressed +//SEG561 keyboard_event_pressed keyboard_event_pressed: { - .label row_bits = 7 - .label keycode = 4 - //SEG558 [251] (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 + .label row_bits = 6 + .label keycode = 3 + //SEG562 [255] (byte~) keyboard_event_pressed::$0 ← (byte) keyboard_event_pressed::keycode#5 >> (byte/signed byte/word/signed word/dword/signed dword) 3 -- vbuaa=vbuz1_ror_3 lda keycode lsr lsr lsr - //SEG559 [252] (byte) keyboard_event_pressed::row_bits#0 ← *((const byte[8]) keyboard_scan_values#0 + (byte~) keyboard_event_pressed::$0) -- vbuz1=pbuc1_derefidx_vbuaa + //SEG563 [256] (byte) keyboard_event_pressed::row_bits#0 ← *((const byte[8]) keyboard_scan_values#0 + (byte~) keyboard_event_pressed::$0) -- vbuz1=pbuc1_derefidx_vbuaa tay lda keyboard_scan_values,y sta row_bits - //SEG560 [253] (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 + //SEG564 [257] (byte~) keyboard_event_pressed::$1 ← (byte) keyboard_event_pressed::keycode#5 & (byte/signed byte/word/signed word/dword/signed dword) 7 -- vbuaa=vbuz1_band_vbuc1 lda #7 and keycode - //SEG561 [254] (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 + //SEG565 [258] (byte) keyboard_event_pressed::return#11 ← (byte) keyboard_event_pressed::row_bits#0 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte~) keyboard_event_pressed::$1) -- vbuaa=vbuz1_band_pbuc1_derefidx_vbuaa tay lda keyboard_matrix_col_bitmask,y and row_bits jmp breturn - //SEG562 keyboard_event_pressed::@return + //SEG566 keyboard_event_pressed::@return breturn: - //SEG563 [255] return + //SEG567 [259] return rts } -//SEG564 keyboard_event_get +//SEG568 keyboard_event_get keyboard_event_get: { - //SEG565 [256] 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 + //SEG569 [260] if((byte) keyboard_events_size#13==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_get::@return -- vbuz1_eq_0_then_la1 lda keyboard_events_size cmp #0 beq breturn_from_keyboard_event_get jmp b3 - //SEG566 keyboard_event_get::@3 + //SEG570 keyboard_event_get::@3 b3: - //SEG567 [257] (byte) keyboard_events_size#4 ← -- (byte) keyboard_events_size#13 -- vbuz1=_dec_vbuz1 + //SEG571 [261] (byte) keyboard_events_size#4 ← -- (byte) keyboard_events_size#13 -- vbuz1=_dec_vbuz1 dec keyboard_events_size - //SEG568 [258] (byte) keyboard_event_get::return#1 ← *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#4) -- vbuaa=pbuc1_derefidx_vbuz1 + //SEG572 [262] (byte) keyboard_event_get::return#1 ← *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#4) -- vbuaa=pbuc1_derefidx_vbuz1 ldy keyboard_events_size lda keyboard_events,y - //SEG569 [259] phi from keyboard_event_get::@3 to keyboard_event_get::@return [phi:keyboard_event_get::@3->keyboard_event_get::@return] + //SEG573 [263] phi from keyboard_event_get::@3 to keyboard_event_get::@return [phi:keyboard_event_get::@3->keyboard_event_get::@return] breturn_from_b3: - //SEG570 [259] phi (byte) keyboard_events_size#16 = (byte) keyboard_events_size#4 [phi:keyboard_event_get::@3->keyboard_event_get::@return#0] -- register_copy - //SEG571 [259] 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 + //SEG574 [263] phi (byte) keyboard_events_size#16 = (byte) keyboard_events_size#4 [phi:keyboard_event_get::@3->keyboard_event_get::@return#0] -- register_copy + //SEG575 [263] phi (byte) keyboard_event_get::return#2 = (byte) keyboard_event_get::return#1 [phi:keyboard_event_get::@3->keyboard_event_get::@return#1] -- register_copy jmp breturn - //SEG572 [259] phi from keyboard_event_get to keyboard_event_get::@return [phi:keyboard_event_get->keyboard_event_get::@return] + //SEG576 [263] phi from keyboard_event_get to keyboard_event_get::@return [phi:keyboard_event_get->keyboard_event_get::@return] breturn_from_keyboard_event_get: - //SEG573 [259] phi (byte) keyboard_events_size#16 = (byte) keyboard_events_size#13 [phi:keyboard_event_get->keyboard_event_get::@return#0] -- register_copy - //SEG574 [259] 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 + //SEG577 [263] phi (byte) keyboard_events_size#16 = (byte) keyboard_events_size#13 [phi:keyboard_event_get->keyboard_event_get::@return#0] -- register_copy + //SEG578 [263] phi (byte) keyboard_event_get::return#2 = (byte/word/signed word/dword/signed dword) 255 [phi:keyboard_event_get->keyboard_event_get::@return#1] -- vbuaa=vbuc1 lda #$ff jmp breturn - //SEG575 keyboard_event_get::@return + //SEG579 keyboard_event_get::@return breturn: - //SEG576 [260] return + //SEG580 [264] return rts } -//SEG577 keyboard_event_scan +//SEG581 keyboard_event_scan keyboard_event_scan: { - .label row_scan = 8 - .label keycode = 7 - .label row = 4 - //SEG578 [262] phi from keyboard_event_scan to keyboard_event_scan::@1 [phi:keyboard_event_scan->keyboard_event_scan::@1] + .label row_scan = 7 + .label keycode = 6 + .label row = 3 + //SEG582 [266] phi from keyboard_event_scan to keyboard_event_scan::@1 [phi:keyboard_event_scan->keyboard_event_scan::@1] b1_from_keyboard_event_scan: - //SEG579 [262] phi (byte) keyboard_events_size#29 = (byte) keyboard_events_size#19 [phi:keyboard_event_scan->keyboard_event_scan::@1#0] -- register_copy - //SEG580 [262] 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 + //SEG583 [266] phi (byte) keyboard_events_size#29 = (byte) keyboard_events_size#19 [phi:keyboard_event_scan->keyboard_event_scan::@1#0] -- register_copy + //SEG584 [266] phi (byte) keyboard_event_scan::keycode#11 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:keyboard_event_scan->keyboard_event_scan::@1#1] -- vbuz1=vbuc1 lda #0 sta keycode - //SEG581 [262] 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 + //SEG585 [266] phi (byte) keyboard_event_scan::row#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:keyboard_event_scan->keyboard_event_scan::@1#2] -- vbuz1=vbuc1 lda #0 sta row jmp b1 - //SEG582 [262] phi from keyboard_event_scan::@3 to keyboard_event_scan::@1 [phi:keyboard_event_scan::@3->keyboard_event_scan::@1] + //SEG586 [266] phi from keyboard_event_scan::@3 to keyboard_event_scan::@1 [phi:keyboard_event_scan::@3->keyboard_event_scan::@1] b1_from_b3: - //SEG583 [262] phi (byte) keyboard_events_size#29 = (byte) keyboard_events_size#13 [phi:keyboard_event_scan::@3->keyboard_event_scan::@1#0] -- register_copy - //SEG584 [262] 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 - //SEG585 [262] 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 + //SEG587 [266] phi (byte) keyboard_events_size#29 = (byte) keyboard_events_size#13 [phi:keyboard_event_scan::@3->keyboard_event_scan::@1#0] -- register_copy + //SEG588 [266] phi (byte) keyboard_event_scan::keycode#11 = (byte) keyboard_event_scan::keycode#14 [phi:keyboard_event_scan::@3->keyboard_event_scan::@1#1] -- register_copy + //SEG589 [266] phi (byte) keyboard_event_scan::row#2 = (byte) keyboard_event_scan::row#1 [phi:keyboard_event_scan::@3->keyboard_event_scan::@1#2] -- register_copy jmp b1 - //SEG586 keyboard_event_scan::@1 + //SEG590 keyboard_event_scan::@1 b1: - //SEG587 [263] (byte) keyboard_matrix_read::rowid#0 ← (byte) keyboard_event_scan::row#2 -- vbuxx=vbuz1 + //SEG591 [267] (byte) keyboard_matrix_read::rowid#0 ← (byte) keyboard_event_scan::row#2 -- vbuxx=vbuz1 ldx row - //SEG588 [264] call keyboard_matrix_read + //SEG592 [268] call keyboard_matrix_read jsr keyboard_matrix_read - //SEG589 [265] (byte) keyboard_matrix_read::return#2 ← (byte) keyboard_matrix_read::return#0 + //SEG593 [269] (byte) keyboard_matrix_read::return#2 ← (byte) keyboard_matrix_read::return#0 // (byte) keyboard_matrix_read::return#2 = (byte) keyboard_matrix_read::return#0 // register copy reg byte a jmp b25 - //SEG590 keyboard_event_scan::@25 + //SEG594 keyboard_event_scan::@25 b25: - //SEG591 [266] (byte) keyboard_event_scan::row_scan#0 ← (byte) keyboard_matrix_read::return#2 -- vbuz1=vbuaa + //SEG595 [270] (byte) keyboard_event_scan::row_scan#0 ← (byte) keyboard_matrix_read::return#2 -- vbuz1=vbuaa sta row_scan - //SEG592 [267] 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 + //SEG596 [271] if((byte) keyboard_event_scan::row_scan#0!=*((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2)) goto keyboard_event_scan::@4 -- vbuz1_neq_pbuc1_derefidx_vbuz2_then_la1 lda row_scan ldy row cmp keyboard_scan_values,y bne b4_from_b25 jmp b13 - //SEG593 keyboard_event_scan::@13 + //SEG597 keyboard_event_scan::@13 b13: - //SEG594 [268] (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 + //SEG598 [272] (byte) keyboard_event_scan::keycode#1 ← (byte) keyboard_event_scan::keycode#11 + (byte/signed byte/word/signed word/dword/signed dword) 8 -- vbuz1=vbuz1_plus_vbuc1 lda #8 clc adc keycode sta keycode - //SEG595 [269] 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] + //SEG599 [273] phi from keyboard_event_scan::@13 keyboard_event_scan::@19 to keyboard_event_scan::@3 [phi:keyboard_event_scan::@13/keyboard_event_scan::@19->keyboard_event_scan::@3] b3_from_b13: b3_from_b19: - //SEG596 [269] 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 - //SEG597 [269] 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 + //SEG600 [273] phi (byte) keyboard_events_size#13 = (byte) keyboard_events_size#29 [phi:keyboard_event_scan::@13/keyboard_event_scan::@19->keyboard_event_scan::@3#0] -- register_copy + //SEG601 [273] phi (byte) keyboard_event_scan::keycode#14 = (byte) keyboard_event_scan::keycode#1 [phi:keyboard_event_scan::@13/keyboard_event_scan::@19->keyboard_event_scan::@3#1] -- register_copy jmp b3 - //SEG598 keyboard_event_scan::@3 + //SEG602 keyboard_event_scan::@3 b3: - //SEG599 [270] (byte) keyboard_event_scan::row#1 ← ++ (byte) keyboard_event_scan::row#2 -- vbuz1=_inc_vbuz1 + //SEG603 [274] (byte) keyboard_event_scan::row#1 ← ++ (byte) keyboard_event_scan::row#2 -- vbuz1=_inc_vbuz1 inc row - //SEG600 [271] 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 + //SEG604 [275] if((byte) keyboard_event_scan::row#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto keyboard_event_scan::@1 -- vbuz1_neq_vbuc1_then_la1 lda row cmp #8 bne b1_from_b3 - //SEG601 [272] phi from keyboard_event_scan::@3 to keyboard_event_scan::@20 [phi:keyboard_event_scan::@3->keyboard_event_scan::@20] + //SEG605 [276] phi from keyboard_event_scan::@3 to keyboard_event_scan::@20 [phi:keyboard_event_scan::@3->keyboard_event_scan::@20] b20_from_b3: jmp b20 - //SEG602 keyboard_event_scan::@20 + //SEG606 keyboard_event_scan::@20 b20: - //SEG603 [273] call keyboard_event_pressed - //SEG604 [250] phi from keyboard_event_scan::@20 to keyboard_event_pressed [phi:keyboard_event_scan::@20->keyboard_event_pressed] + //SEG607 [277] call keyboard_event_pressed + //SEG608 [254] phi from keyboard_event_scan::@20 to keyboard_event_pressed [phi:keyboard_event_scan::@20->keyboard_event_pressed] keyboard_event_pressed_from_b20: - //SEG605 [250] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_LSHIFT#0 [phi:keyboard_event_scan::@20->keyboard_event_pressed#0] -- vbuz1=vbuc1 + //SEG609 [254] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_LSHIFT#0 [phi:keyboard_event_scan::@20->keyboard_event_pressed#0] -- vbuz1=vbuc1 lda #KEY_LSHIFT sta keyboard_event_pressed.keycode jsr keyboard_event_pressed - //SEG606 [274] (byte) keyboard_event_pressed::return#0 ← (byte) keyboard_event_pressed::return#11 + //SEG610 [278] (byte) keyboard_event_pressed::return#0 ← (byte) keyboard_event_pressed::return#11 // (byte) keyboard_event_pressed::return#0 = (byte) keyboard_event_pressed::return#11 // register copy reg byte a jmp b26 - //SEG607 keyboard_event_scan::@26 + //SEG611 keyboard_event_scan::@26 b26: - //SEG608 [275] (byte~) keyboard_event_scan::$14 ← (byte) keyboard_event_pressed::return#0 + //SEG612 [279] (byte~) keyboard_event_scan::$14 ← (byte) keyboard_event_pressed::return#0 // (byte~) keyboard_event_scan::$14 = (byte) keyboard_event_pressed::return#0 // register copy reg byte a - //SEG609 [276] 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 + //SEG613 [280] if((byte~) keyboard_event_scan::$14==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@9 -- vbuaa_eq_0_then_la1 cmp #0 beq b9_from_b26 - //SEG610 [277] phi from keyboard_event_scan::@26 to keyboard_event_scan::@21 [phi:keyboard_event_scan::@26->keyboard_event_scan::@21] + //SEG614 [281] phi from keyboard_event_scan::@26 to keyboard_event_scan::@21 [phi:keyboard_event_scan::@26->keyboard_event_scan::@21] b21_from_b26: jmp b21 - //SEG611 keyboard_event_scan::@21 + //SEG615 keyboard_event_scan::@21 b21: - //SEG612 [278] phi from keyboard_event_scan::@21 to keyboard_event_scan::@9 [phi:keyboard_event_scan::@21->keyboard_event_scan::@9] + //SEG616 [282] phi from keyboard_event_scan::@21 to keyboard_event_scan::@9 [phi:keyboard_event_scan::@21->keyboard_event_scan::@9] b9_from_b21: - //SEG613 [278] 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 + //SEG617 [282] 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 - //SEG614 [278] phi from keyboard_event_scan::@26 to keyboard_event_scan::@9 [phi:keyboard_event_scan::@26->keyboard_event_scan::@9] + //SEG618 [282] phi from keyboard_event_scan::@26 to keyboard_event_scan::@9 [phi:keyboard_event_scan::@26->keyboard_event_scan::@9] b9_from_b26: - //SEG615 [278] 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 + //SEG619 [282] 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 - //SEG616 keyboard_event_scan::@9 + //SEG620 keyboard_event_scan::@9 b9: - //SEG617 [279] call keyboard_event_pressed - //SEG618 [250] phi from keyboard_event_scan::@9 to keyboard_event_pressed [phi:keyboard_event_scan::@9->keyboard_event_pressed] + //SEG621 [283] call keyboard_event_pressed + //SEG622 [254] phi from keyboard_event_scan::@9 to keyboard_event_pressed [phi:keyboard_event_scan::@9->keyboard_event_pressed] keyboard_event_pressed_from_b9: - //SEG619 [250] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_RSHIFT#0 [phi:keyboard_event_scan::@9->keyboard_event_pressed#0] -- vbuz1=vbuc1 + //SEG623 [254] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_RSHIFT#0 [phi:keyboard_event_scan::@9->keyboard_event_pressed#0] -- vbuz1=vbuc1 lda #KEY_RSHIFT sta keyboard_event_pressed.keycode jsr keyboard_event_pressed - //SEG620 [280] (byte) keyboard_event_pressed::return#1 ← (byte) keyboard_event_pressed::return#11 + //SEG624 [284] (byte) keyboard_event_pressed::return#1 ← (byte) keyboard_event_pressed::return#11 // (byte) keyboard_event_pressed::return#1 = (byte) keyboard_event_pressed::return#11 // register copy reg byte a jmp b27 - //SEG621 keyboard_event_scan::@27 + //SEG625 keyboard_event_scan::@27 b27: - //SEG622 [281] (byte~) keyboard_event_scan::$18 ← (byte) keyboard_event_pressed::return#1 + //SEG626 [285] (byte~) keyboard_event_scan::$18 ← (byte) keyboard_event_pressed::return#1 // (byte~) keyboard_event_scan::$18 = (byte) keyboard_event_pressed::return#1 // register copy reg byte a - //SEG623 [282] 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 + //SEG627 [286] if((byte~) keyboard_event_scan::$18==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@10 -- vbuaa_eq_0_then_la1 cmp #0 beq b10_from_b27 jmp b22 - //SEG624 keyboard_event_scan::@22 + //SEG628 keyboard_event_scan::@22 b22: - //SEG625 [283] (byte) keyboard_modifiers#3 ← (byte) keyboard_modifiers#11 | (const byte) KEY_MODIFIER_RSHIFT#0 -- vbuxx=vbuxx_bor_vbuc1 + //SEG629 [287] (byte) keyboard_modifiers#3 ← (byte) keyboard_modifiers#11 | (const byte) KEY_MODIFIER_RSHIFT#0 -- vbuxx=vbuxx_bor_vbuc1 txa ora #KEY_MODIFIER_RSHIFT tax - //SEG626 [284] 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] + //SEG630 [288] phi from keyboard_event_scan::@22 keyboard_event_scan::@27 to keyboard_event_scan::@10 [phi:keyboard_event_scan::@22/keyboard_event_scan::@27->keyboard_event_scan::@10] b10_from_b22: b10_from_b27: - //SEG627 [284] 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 + //SEG631 [288] 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 - //SEG628 keyboard_event_scan::@10 + //SEG632 keyboard_event_scan::@10 b10: - //SEG629 [285] call keyboard_event_pressed - //SEG630 [250] phi from keyboard_event_scan::@10 to keyboard_event_pressed [phi:keyboard_event_scan::@10->keyboard_event_pressed] + //SEG633 [289] call keyboard_event_pressed + //SEG634 [254] phi from keyboard_event_scan::@10 to keyboard_event_pressed [phi:keyboard_event_scan::@10->keyboard_event_pressed] keyboard_event_pressed_from_b10: - //SEG631 [250] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_CTRL#0 [phi:keyboard_event_scan::@10->keyboard_event_pressed#0] -- vbuz1=vbuc1 + //SEG635 [254] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_CTRL#0 [phi:keyboard_event_scan::@10->keyboard_event_pressed#0] -- vbuz1=vbuc1 lda #KEY_CTRL sta keyboard_event_pressed.keycode jsr keyboard_event_pressed - //SEG632 [286] (byte) keyboard_event_pressed::return#2 ← (byte) keyboard_event_pressed::return#11 + //SEG636 [290] (byte) keyboard_event_pressed::return#2 ← (byte) keyboard_event_pressed::return#11 // (byte) keyboard_event_pressed::return#2 = (byte) keyboard_event_pressed::return#11 // register copy reg byte a jmp b28 - //SEG633 keyboard_event_scan::@28 + //SEG637 keyboard_event_scan::@28 b28: - //SEG634 [287] (byte~) keyboard_event_scan::$22 ← (byte) keyboard_event_pressed::return#2 + //SEG638 [291] (byte~) keyboard_event_scan::$22 ← (byte) keyboard_event_pressed::return#2 // (byte~) keyboard_event_scan::$22 = (byte) keyboard_event_pressed::return#2 // register copy reg byte a - //SEG635 [288] 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 + //SEG639 [292] if((byte~) keyboard_event_scan::$22==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@11 -- vbuaa_eq_0_then_la1 cmp #0 beq b11_from_b28 jmp b23 - //SEG636 keyboard_event_scan::@23 + //SEG640 keyboard_event_scan::@23 b23: - //SEG637 [289] (byte) keyboard_modifiers#4 ← (byte) keyboard_modifiers#12 | (const byte) KEY_MODIFIER_CTRL#0 -- vbuxx=vbuxx_bor_vbuc1 + //SEG641 [293] (byte) keyboard_modifiers#4 ← (byte) keyboard_modifiers#12 | (const byte) KEY_MODIFIER_CTRL#0 -- vbuxx=vbuxx_bor_vbuc1 txa ora #KEY_MODIFIER_CTRL tax - //SEG638 [290] 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] + //SEG642 [294] phi from keyboard_event_scan::@23 keyboard_event_scan::@28 to keyboard_event_scan::@11 [phi:keyboard_event_scan::@23/keyboard_event_scan::@28->keyboard_event_scan::@11] b11_from_b23: b11_from_b28: - //SEG639 [290] 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 + //SEG643 [294] 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 - //SEG640 keyboard_event_scan::@11 + //SEG644 keyboard_event_scan::@11 b11: - //SEG641 [291] call keyboard_event_pressed - //SEG642 [250] phi from keyboard_event_scan::@11 to keyboard_event_pressed [phi:keyboard_event_scan::@11->keyboard_event_pressed] + //SEG645 [295] call keyboard_event_pressed + //SEG646 [254] phi from keyboard_event_scan::@11 to keyboard_event_pressed [phi:keyboard_event_scan::@11->keyboard_event_pressed] keyboard_event_pressed_from_b11: - //SEG643 [250] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_COMMODORE#0 [phi:keyboard_event_scan::@11->keyboard_event_pressed#0] -- vbuz1=vbuc1 + //SEG647 [254] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_COMMODORE#0 [phi:keyboard_event_scan::@11->keyboard_event_pressed#0] -- vbuz1=vbuc1 lda #KEY_COMMODORE sta keyboard_event_pressed.keycode jsr keyboard_event_pressed - //SEG644 [292] (byte) keyboard_event_pressed::return#10 ← (byte) keyboard_event_pressed::return#11 + //SEG648 [296] (byte) keyboard_event_pressed::return#10 ← (byte) keyboard_event_pressed::return#11 // (byte) keyboard_event_pressed::return#10 = (byte) keyboard_event_pressed::return#11 // register copy reg byte a jmp b29 - //SEG645 keyboard_event_scan::@29 + //SEG649 keyboard_event_scan::@29 b29: - //SEG646 [293] (byte~) keyboard_event_scan::$26 ← (byte) keyboard_event_pressed::return#10 + //SEG650 [297] (byte~) keyboard_event_scan::$26 ← (byte) keyboard_event_pressed::return#10 // (byte~) keyboard_event_scan::$26 = (byte) keyboard_event_pressed::return#10 // register copy reg byte a - //SEG647 [294] 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 + //SEG651 [298] if((byte~) keyboard_event_scan::$26==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@return -- vbuaa_eq_0_then_la1 cmp #0 beq breturn jmp b24 - //SEG648 keyboard_event_scan::@24 + //SEG652 keyboard_event_scan::@24 b24: - //SEG649 [295] (byte) keyboard_modifiers#5 ← (byte) keyboard_modifiers#13 | (const byte) KEY_MODIFIER_COMMODORE#0 -- vbuaa=vbuxx_bor_vbuc1 + //SEG653 [299] (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 - //SEG650 keyboard_event_scan::@return + //SEG654 keyboard_event_scan::@return breturn: - //SEG651 [296] return + //SEG655 [300] return rts - //SEG652 [297] phi from keyboard_event_scan::@25 to keyboard_event_scan::@4 [phi:keyboard_event_scan::@25->keyboard_event_scan::@4] + //SEG656 [301] phi from keyboard_event_scan::@25 to keyboard_event_scan::@4 [phi:keyboard_event_scan::@25->keyboard_event_scan::@4] b4_from_b25: - //SEG653 [297] phi (byte) keyboard_events_size#10 = (byte) keyboard_events_size#29 [phi:keyboard_event_scan::@25->keyboard_event_scan::@4#0] -- register_copy - //SEG654 [297] 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 - //SEG655 [297] 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 + //SEG657 [301] phi (byte) keyboard_events_size#10 = (byte) keyboard_events_size#29 [phi:keyboard_event_scan::@25->keyboard_event_scan::@4#0] -- register_copy + //SEG658 [301] phi (byte) keyboard_event_scan::keycode#10 = (byte) keyboard_event_scan::keycode#11 [phi:keyboard_event_scan::@25->keyboard_event_scan::@4#1] -- register_copy + //SEG659 [301] phi (byte) keyboard_event_scan::col#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:keyboard_event_scan::@25->keyboard_event_scan::@4#2] -- vbuxx=vbuc1 ldx #0 jmp b4 - //SEG656 [297] phi from keyboard_event_scan::@5 to keyboard_event_scan::@4 [phi:keyboard_event_scan::@5->keyboard_event_scan::@4] + //SEG660 [301] phi from keyboard_event_scan::@5 to keyboard_event_scan::@4 [phi:keyboard_event_scan::@5->keyboard_event_scan::@4] b4_from_b5: - //SEG657 [297] phi (byte) keyboard_events_size#10 = (byte) keyboard_events_size#30 [phi:keyboard_event_scan::@5->keyboard_event_scan::@4#0] -- register_copy - //SEG658 [297] 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 - //SEG659 [297] 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 + //SEG661 [301] phi (byte) keyboard_events_size#10 = (byte) keyboard_events_size#30 [phi:keyboard_event_scan::@5->keyboard_event_scan::@4#0] -- register_copy + //SEG662 [301] phi (byte) keyboard_event_scan::keycode#10 = (byte) keyboard_event_scan::keycode#15 [phi:keyboard_event_scan::@5->keyboard_event_scan::@4#1] -- register_copy + //SEG663 [301] phi (byte) keyboard_event_scan::col#2 = (byte) keyboard_event_scan::col#1 [phi:keyboard_event_scan::@5->keyboard_event_scan::@4#2] -- register_copy jmp b4 - //SEG660 keyboard_event_scan::@4 + //SEG664 keyboard_event_scan::@4 b4: - //SEG661 [298] (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 + //SEG665 [302] (byte~) keyboard_event_scan::$3 ← (byte) keyboard_event_scan::row_scan#0 ^ *((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2) -- vbuaa=vbuz1_bxor_pbuc1_derefidx_vbuz2 lda row_scan ldy row eor keyboard_scan_values,y - //SEG662 [299] (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 + //SEG666 [303] (byte~) keyboard_event_scan::$4 ← (byte~) keyboard_event_scan::$3 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_event_scan::col#2) -- vbuaa=vbuaa_band_pbuc1_derefidx_vbuxx and keyboard_matrix_col_bitmask,x - //SEG663 [300] 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 + //SEG667 [304] if((byte~) keyboard_event_scan::$4==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@5 -- vbuaa_eq_0_then_la1 cmp #0 beq b5_from_b4 jmp b15 - //SEG664 keyboard_event_scan::@15 + //SEG668 keyboard_event_scan::@15 b15: - //SEG665 [301] 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 + //SEG669 [305] if((byte) keyboard_events_size#10==(byte/signed byte/word/signed word/dword/signed dword) 8) goto keyboard_event_scan::@5 -- vbuz1_eq_vbuc1_then_la1 lda keyboard_events_size cmp #8 beq b5_from_b15 jmp b16 - //SEG666 keyboard_event_scan::@16 + //SEG670 keyboard_event_scan::@16 b16: - //SEG667 [302] (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 + //SEG671 [306] (byte) keyboard_event_scan::event_type#0 ← (byte) keyboard_event_scan::row_scan#0 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_event_scan::col#2) -- vbuaa=vbuz1_band_pbuc1_derefidx_vbuxx lda keyboard_matrix_col_bitmask,x and row_scan - //SEG668 [303] 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 + //SEG672 [307] if((byte) keyboard_event_scan::event_type#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@7 -- vbuaa_eq_0_then_la1 cmp #0 beq b7 jmp b17 - //SEG669 keyboard_event_scan::@17 + //SEG673 keyboard_event_scan::@17 b17: - //SEG670 [304] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte) keyboard_event_scan::keycode#10 -- pbuc1_derefidx_vbuz1=vbuz2 + //SEG674 [308] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte) keyboard_event_scan::keycode#10 -- pbuc1_derefidx_vbuz1=vbuz2 lda keycode ldy keyboard_events_size sta keyboard_events,y - //SEG671 [305] (byte) keyboard_events_size#2 ← ++ (byte) keyboard_events_size#10 -- vbuz1=_inc_vbuz1 + //SEG675 [309] (byte) keyboard_events_size#2 ← ++ (byte) keyboard_events_size#10 -- vbuz1=_inc_vbuz1 inc keyboard_events_size - //SEG672 [306] 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] + //SEG676 [310] phi from keyboard_event_scan::@15 keyboard_event_scan::@17 keyboard_event_scan::@4 keyboard_event_scan::@7 to keyboard_event_scan::@5 [phi:keyboard_event_scan::@15/keyboard_event_scan::@17/keyboard_event_scan::@4/keyboard_event_scan::@7->keyboard_event_scan::@5] b5_from_b15: b5_from_b17: b5_from_b4: b5_from_b7: - //SEG673 [306] 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 + //SEG677 [310] phi (byte) keyboard_events_size#30 = (byte) keyboard_events_size#10 [phi:keyboard_event_scan::@15/keyboard_event_scan::@17/keyboard_event_scan::@4/keyboard_event_scan::@7->keyboard_event_scan::@5#0] -- register_copy jmp b5 - //SEG674 keyboard_event_scan::@5 + //SEG678 keyboard_event_scan::@5 b5: - //SEG675 [307] (byte) keyboard_event_scan::keycode#15 ← ++ (byte) keyboard_event_scan::keycode#10 -- vbuz1=_inc_vbuz1 + //SEG679 [311] (byte) keyboard_event_scan::keycode#15 ← ++ (byte) keyboard_event_scan::keycode#10 -- vbuz1=_inc_vbuz1 inc keycode - //SEG676 [308] (byte) keyboard_event_scan::col#1 ← ++ (byte) keyboard_event_scan::col#2 -- vbuxx=_inc_vbuxx + //SEG680 [312] (byte) keyboard_event_scan::col#1 ← ++ (byte) keyboard_event_scan::col#2 -- vbuxx=_inc_vbuxx inx - //SEG677 [309] 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 + //SEG681 [313] if((byte) keyboard_event_scan::col#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto keyboard_event_scan::@4 -- vbuxx_neq_vbuc1_then_la1 cpx #8 bne b4_from_b5 jmp b19 - //SEG678 keyboard_event_scan::@19 + //SEG682 keyboard_event_scan::@19 b19: - //SEG679 [310] *((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2) ← (byte) keyboard_event_scan::row_scan#0 -- pbuc1_derefidx_vbuz1=vbuz2 + //SEG683 [314] *((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2) ← (byte) keyboard_event_scan::row_scan#0 -- pbuc1_derefidx_vbuz1=vbuz2 lda row_scan ldy row sta keyboard_scan_values,y jmp b3_from_b19 - //SEG680 keyboard_event_scan::@7 + //SEG684 keyboard_event_scan::@7 b7: - //SEG681 [311] (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 + //SEG685 [315] (byte/word/dword~) keyboard_event_scan::$11 ← (byte) keyboard_event_scan::keycode#10 | (byte/signed byte/word/signed word/dword/signed dword) 64 -- vbuaa=vbuz1_bor_vbuc1 lda #$40 ora keycode - //SEG682 [312] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte/word/dword~) keyboard_event_scan::$11 -- pbuc1_derefidx_vbuz1=vbuaa + //SEG686 [316] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte/word/dword~) keyboard_event_scan::$11 -- pbuc1_derefidx_vbuz1=vbuaa ldy keyboard_events_size sta keyboard_events,y - //SEG683 [313] (byte) keyboard_events_size#1 ← ++ (byte) keyboard_events_size#10 -- vbuz1=_inc_vbuz1 + //SEG687 [317] (byte) keyboard_events_size#1 ← ++ (byte) keyboard_events_size#10 -- vbuz1=_inc_vbuz1 inc keyboard_events_size jmp b5_from_b7 } -//SEG684 keyboard_matrix_read +//SEG688 keyboard_matrix_read keyboard_matrix_read: { - //SEG685 [314] *((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 + //SEG689 [318] *((const byte*) CIA1_PORT_A#0) ← *((const byte[8]) keyboard_matrix_row_bitmask#0 + (byte) keyboard_matrix_read::rowid#0) -- _deref_pbuc1=pbuc2_derefidx_vbuxx lda keyboard_matrix_row_bitmask,x sta CIA1_PORT_A - //SEG686 [315] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) -- vbuaa=_bnot__deref_pbuc1 + //SEG690 [319] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) -- vbuaa=_bnot__deref_pbuc1 lda CIA1_PORT_B eor #$ff jmp breturn - //SEG687 keyboard_matrix_read::@return + //SEG691 keyboard_matrix_read::@return breturn: - //SEG688 [316] return + //SEG692 [320] return rts } -//SEG689 play_init +//SEG693 play_init play_init: { - .label pli = 5 + .label pli = 4 .label idx = 2 - //SEG690 [318] phi from play_init to play_init::@1 [phi:play_init->play_init::@1] + //SEG694 [322] phi from play_init to play_init::@1 [phi:play_init->play_init::@1] b1_from_play_init: - //SEG691 [318] 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 + //SEG695 [322] 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 - //SEG692 [318] 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 + //SEG696 [322] 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 - //SEG693 [318] 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 + //SEG697 [322] 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 - //SEG694 [318] phi from play_init::@1 to play_init::@1 [phi:play_init::@1->play_init::@1] + //SEG698 [322] phi from play_init::@1 to play_init::@1 [phi:play_init::@1->play_init::@1] b1_from_b1: - //SEG695 [318] phi (byte) play_init::idx#2 = (byte) play_init::idx#1 [phi:play_init::@1->play_init::@1#0] -- register_copy - //SEG696 [318] phi (byte*) play_init::pli#2 = (byte*) play_init::pli#1 [phi:play_init::@1->play_init::@1#1] -- register_copy - //SEG697 [318] phi (byte) play_init::j#2 = (byte) play_init::j#1 [phi:play_init::@1->play_init::@1#2] -- register_copy + //SEG699 [322] phi (byte) play_init::idx#2 = (byte) play_init::idx#1 [phi:play_init::@1->play_init::@1#0] -- register_copy + //SEG700 [322] phi (byte*) play_init::pli#2 = (byte*) play_init::pli#1 [phi:play_init::@1->play_init::@1#1] -- register_copy + //SEG701 [322] phi (byte) play_init::j#2 = (byte) play_init::j#1 [phi:play_init::@1->play_init::@1#2] -- register_copy jmp b1 - //SEG698 play_init::@1 + //SEG702 play_init::@1 b1: - //SEG699 [319] (byte~) play_init::$1 ← (byte) play_init::j#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuaa=vbuxx_rol_1 + //SEG703 [323] (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 - //SEG700 [320] *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte~) play_init::$1) ← (byte*) play_init::pli#2 -- pptc1_derefidx_vbuaa=pbuz1 + //SEG704 [324] *((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 - //SEG701 [321] *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0 + (byte) play_init::j#2) ← (byte) play_init::idx#2 -- pbuc1_derefidx_vbuxx=vbuz1 + //SEG705 [325] *((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 - //SEG702 [322] (byte*) play_init::pli#1 ← (byte*) play_init::pli#2 + (const byte) PLAYFIELD_COLS#0 -- pbuz1=pbuz1_plus_vbuc1 + //SEG706 [326] (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 @@ -13822,216 +13852,216 @@ play_init: { bcc !+ inc pli+1 !: - //SEG703 [323] (byte) play_init::idx#1 ← (byte) play_init::idx#2 + (const byte) PLAYFIELD_COLS#0 -- vbuz1=vbuz1_plus_vbuc1 + //SEG707 [327] (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 - //SEG704 [324] (byte) play_init::j#1 ← ++ (byte) play_init::j#2 -- vbuxx=_inc_vbuxx + //SEG708 [328] (byte) play_init::j#1 ← ++ (byte) play_init::j#2 -- vbuxx=_inc_vbuxx inx - //SEG705 [325] 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 + //SEG709 [329] 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 - //SEG706 play_init::@2 + //SEG710 play_init::@2 b2: - //SEG707 [326] *((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 + //SEG711 [330] *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0+(const byte) PLAYFIELD_LINES#0) ← (const byte) PLAYFIELD_COLS#0*(const byte) PLAYFIELD_LINES#0 -- _deref_pbuc1=vbuc2 lda #PLAYFIELD_COLS*PLAYFIELD_LINES sta playfield_lines_idx+PLAYFIELD_LINES jmp breturn - //SEG708 play_init::@return + //SEG712 play_init::@return breturn: - //SEG709 [327] return + //SEG713 [331] return rts } -//SEG710 sprites_irq_init +//SEG714 sprites_irq_init sprites_irq_init: { - //SEG711 asm { sei } + //SEG715 asm { sei } sei - //SEG712 [329] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0 -- _deref_pbuc1=vbuc2 + //SEG716 [333] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0 -- _deref_pbuc1=vbuc2 lda #IRQ_RASTER sta IRQ_STATUS - //SEG713 asm { ldaCIA1_INTERRUPT } + //SEG717 asm { ldaCIA1_INTERRUPT } lda CIA1_INTERRUPT - //SEG714 [331] *((const byte*) PROCPORT_DDR#0) ← (const byte) PROCPORT_DDR_MEMORY_MASK#0 -- _deref_pbuc1=vbuc2 + //SEG718 [335] *((const byte*) PROCPORT_DDR#0) ← (const byte) PROCPORT_DDR_MEMORY_MASK#0 -- _deref_pbuc1=vbuc2 lda #PROCPORT_DDR_MEMORY_MASK sta PROCPORT_DDR - //SEG715 [332] *((const byte*) PROCPORT#0) ← (const byte) PROCPORT_RAM_IO#0 -- _deref_pbuc1=vbuc2 + //SEG719 [336] *((const byte*) PROCPORT#0) ← (const byte) PROCPORT_RAM_IO#0 -- _deref_pbuc1=vbuc2 lda #PROCPORT_RAM_IO sta PROCPORT - //SEG716 [333] *((const byte*) CIA1_INTERRUPT#0) ← (const byte) CIA_INTERRUPT_CLEAR#0 -- _deref_pbuc1=vbuc2 + //SEG720 [337] *((const byte*) CIA1_INTERRUPT#0) ← (const byte) CIA_INTERRUPT_CLEAR#0 -- _deref_pbuc1=vbuc2 lda #CIA_INTERRUPT_CLEAR sta CIA1_INTERRUPT - //SEG717 [334] *((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 + //SEG721 [338] *((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 - //SEG718 [335] *((const byte*) RASTER#0) ← (const byte) IRQ_RASTER_FIRST#0 -- _deref_pbuc1=vbuc2 + //SEG722 [339] *((const byte*) RASTER#0) ← (const byte) IRQ_RASTER_FIRST#0 -- _deref_pbuc1=vbuc2 lda #IRQ_RASTER_FIRST sta RASTER - //SEG719 [336] *((const byte*) IRQ_ENABLE#0) ← (const byte) IRQ_RASTER#0 -- _deref_pbuc1=vbuc2 + //SEG723 [340] *((const byte*) IRQ_ENABLE#0) ← (const byte) IRQ_RASTER#0 -- _deref_pbuc1=vbuc2 lda #IRQ_RASTER sta IRQ_ENABLE - //SEG720 [337] *((const void()**) HARDWARE_IRQ#0) ← &interrupt(HARDWARE_CLOBBER)(void()) irq() -- _deref_pptc1=pprc2 + //SEG724 [341] *((const void()**) HARDWARE_IRQ#0) ← &interrupt(HARDWARE_CLOBBER)(void()) irq() -- _deref_pptc1=pprc2 lda #irq sta HARDWARE_IRQ+1 - //SEG721 asm { cli } + //SEG725 asm { cli } cli jmp breturn - //SEG722 sprites_irq_init::@return + //SEG726 sprites_irq_init::@return breturn: - //SEG723 [339] return + //SEG727 [343] return rts } -//SEG724 sprites_init +//SEG728 sprites_init sprites_init: { .label xpos = 2 - //SEG725 [340] *((const byte*) SPRITES_ENABLE#0) ← (byte/signed byte/word/signed word/dword/signed dword) 15 -- _deref_pbuc1=vbuc2 + //SEG729 [344] *((const byte*) SPRITES_ENABLE#0) ← (byte/signed byte/word/signed word/dword/signed dword) 15 -- _deref_pbuc1=vbuc2 lda #$f sta SPRITES_ENABLE - //SEG726 [341] *((const byte*) SPRITES_MC#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2 + //SEG730 [345] *((const byte*) SPRITES_MC#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2 lda #0 sta SPRITES_MC - //SEG727 [342] *((const byte*) SPRITES_EXPAND_Y#0) ← *((const byte*) SPRITES_MC#0) -- _deref_pbuc1=_deref_pbuc2 + //SEG731 [346] *((const byte*) SPRITES_EXPAND_Y#0) ← *((const byte*) SPRITES_MC#0) -- _deref_pbuc1=_deref_pbuc2 lda SPRITES_MC sta SPRITES_EXPAND_Y - //SEG728 [343] *((const byte*) SPRITES_EXPAND_X#0) ← *((const byte*) SPRITES_EXPAND_Y#0) -- _deref_pbuc1=_deref_pbuc2 + //SEG732 [347] *((const byte*) SPRITES_EXPAND_X#0) ← *((const byte*) SPRITES_EXPAND_Y#0) -- _deref_pbuc1=_deref_pbuc2 lda SPRITES_EXPAND_Y sta SPRITES_EXPAND_X - //SEG729 [344] phi from sprites_init to sprites_init::@1 [phi:sprites_init->sprites_init::@1] + //SEG733 [348] phi from sprites_init to sprites_init::@1 [phi:sprites_init->sprites_init::@1] b1_from_sprites_init: - //SEG730 [344] 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 + //SEG734 [348] 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 - //SEG731 [344] 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 + //SEG735 [348] 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 - //SEG732 [344] phi from sprites_init::@1 to sprites_init::@1 [phi:sprites_init::@1->sprites_init::@1] + //SEG736 [348] phi from sprites_init::@1 to sprites_init::@1 [phi:sprites_init::@1->sprites_init::@1] b1_from_b1: - //SEG733 [344] phi (byte) sprites_init::xpos#2 = (byte) sprites_init::xpos#1 [phi:sprites_init::@1->sprites_init::@1#0] -- register_copy - //SEG734 [344] phi (byte) sprites_init::s#2 = (byte) sprites_init::s#1 [phi:sprites_init::@1->sprites_init::@1#1] -- register_copy + //SEG737 [348] phi (byte) sprites_init::xpos#2 = (byte) sprites_init::xpos#1 [phi:sprites_init::@1->sprites_init::@1#0] -- register_copy + //SEG738 [348] phi (byte) sprites_init::s#2 = (byte) sprites_init::s#1 [phi:sprites_init::@1->sprites_init::@1#1] -- register_copy jmp b1 - //SEG735 sprites_init::@1 + //SEG739 sprites_init::@1 b1: - //SEG736 [345] (byte) sprites_init::s2#0 ← (byte) sprites_init::s#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuaa=vbuxx_rol_1 + //SEG740 [349] (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 - //SEG737 [346] *((const byte*) SPRITES_XPOS#0 + (byte) sprites_init::s2#0) ← (byte) sprites_init::xpos#2 -- pbuc1_derefidx_vbuaa=vbuz1 + //SEG741 [350] *((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 - //SEG738 [347] *((const byte*) SPRITES_COLS#0 + (byte) sprites_init::s#2) ← (const byte) BLACK#0 -- pbuc1_derefidx_vbuxx=vbuc2 + //SEG742 [351] *((const byte*) SPRITES_COLS#0 + (byte) sprites_init::s#2) ← (const byte) BLACK#0 -- pbuc1_derefidx_vbuxx=vbuc2 lda #BLACK sta SPRITES_COLS,x - //SEG739 [348] (byte) sprites_init::xpos#1 ← (byte) sprites_init::xpos#2 + (byte/signed byte/word/signed word/dword/signed dword) 24 -- vbuz1=vbuz1_plus_vbuc1 + //SEG743 [352] (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 - //SEG740 [349] (byte) sprites_init::s#1 ← ++ (byte) sprites_init::s#2 -- vbuxx=_inc_vbuxx + //SEG744 [353] (byte) sprites_init::s#1 ← ++ (byte) sprites_init::s#2 -- vbuxx=_inc_vbuxx inx - //SEG741 [350] 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 + //SEG745 [354] 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 - //SEG742 sprites_init::@return + //SEG746 sprites_init::@return breturn: - //SEG743 [351] return + //SEG747 [355] return rts } -//SEG744 render_init +//SEG748 render_init render_init: { .const vicSelectGfxBank1_toDd001_return = 3^(>PLAYFIELD_SCREEN)>>6 .const toD0181_return = (>(PLAYFIELD_SCREEN&$3fff)<<2)|(>PLAYFIELD_CHARSET)>>2&$f .label _18 = $c - .label li = 5 - .label line = 5 + .label li = 4 + .label line = 4 .label l = 2 jmp vicSelectGfxBank1 - //SEG745 render_init::vicSelectGfxBank1 + //SEG749 render_init::vicSelectGfxBank1 vicSelectGfxBank1: - //SEG746 [353] *((const byte*) CIA2_PORT_A_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3 -- _deref_pbuc1=vbuc2 + //SEG750 [357] *((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 - //SEG747 [354] phi from render_init::vicSelectGfxBank1 to render_init::vicSelectGfxBank1_toDd001 [phi:render_init::vicSelectGfxBank1->render_init::vicSelectGfxBank1_toDd001] + //SEG751 [358] 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 - //SEG748 render_init::vicSelectGfxBank1_toDd001 + //SEG752 render_init::vicSelectGfxBank1_toDd001 vicSelectGfxBank1_toDd001: jmp vicSelectGfxBank1_b1 - //SEG749 render_init::vicSelectGfxBank1_@1 + //SEG753 render_init::vicSelectGfxBank1_@1 vicSelectGfxBank1_b1: - //SEG750 [355] *((const byte*) CIA2_PORT_A#0) ← (const byte) render_init::vicSelectGfxBank1_toDd001_return#0 -- _deref_pbuc1=vbuc2 + //SEG754 [359] *((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 - //SEG751 [356] phi from render_init::vicSelectGfxBank1_@1 to render_init::toD0181 [phi:render_init::vicSelectGfxBank1_@1->render_init::toD0181] + //SEG755 [360] phi from render_init::vicSelectGfxBank1_@1 to render_init::toD0181 [phi:render_init::vicSelectGfxBank1_@1->render_init::toD0181] toD0181_from_vicSelectGfxBank1_b1: jmp toD0181 - //SEG752 render_init::toD0181 + //SEG756 render_init::toD0181 toD0181: jmp b8 - //SEG753 render_init::@8 + //SEG757 render_init::@8 b8: - //SEG754 [357] *((const byte*) D018#0) ← (const byte) render_init::toD0181_return#0 -- _deref_pbuc1=vbuc2 + //SEG758 [361] *((const byte*) D018#0) ← (const byte) render_init::toD0181_return#0 -- _deref_pbuc1=vbuc2 lda #toD0181_return sta D018 - //SEG755 [358] *((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 + //SEG759 [362] *((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 - //SEG756 [359] *((const byte*) BGCOL1#0) ← (const byte) BLACK#0 -- _deref_pbuc1=vbuc2 + //SEG760 [363] *((const byte*) BGCOL1#0) ← (const byte) BLACK#0 -- _deref_pbuc1=vbuc2 lda #BLACK sta BGCOL1 - //SEG757 [360] *((const byte*) BGCOL2#0) ← (const byte) BLUE#0 -- _deref_pbuc1=vbuc2 + //SEG761 [364] *((const byte*) BGCOL2#0) ← (const byte) BLUE#0 -- _deref_pbuc1=vbuc2 lda #BLUE sta BGCOL2 - //SEG758 [361] *((const byte*) BGCOL3#0) ← (const byte) CYAN#0 -- _deref_pbuc1=vbuc2 + //SEG762 [365] *((const byte*) BGCOL3#0) ← (const byte) CYAN#0 -- _deref_pbuc1=vbuc2 lda #CYAN sta BGCOL3 - //SEG759 [362] *((const byte*) BGCOL4#0) ← (const byte) GREY#0 -- _deref_pbuc1=vbuc2 + //SEG763 [366] *((const byte*) BGCOL4#0) ← (const byte) GREY#0 -- _deref_pbuc1=vbuc2 lda #GREY sta BGCOL4 - //SEG760 [363] call fill - //SEG761 [404] phi from render_init::@8 to fill [phi:render_init::@8->fill] + //SEG764 [367] call fill + //SEG765 [408] phi from render_init::@8 to fill [phi:render_init::@8->fill] fill_from_b8: jsr fill - //SEG762 [364] phi from render_init::@8 to render_init::@9 [phi:render_init::@8->render_init::@9] + //SEG766 [368] phi from render_init::@8 to render_init::@9 [phi:render_init::@8->render_init::@9] b9_from_b8: jmp b9 - //SEG763 render_init::@9 + //SEG767 render_init::@9 b9: - //SEG764 [365] call render_screen_original - //SEG765 [382] phi from render_init::@9 to render_screen_original [phi:render_init::@9->render_screen_original] + //SEG768 [369] call render_screen_original + //SEG769 [386] phi from render_init::@9 to render_screen_original [phi:render_init::@9->render_screen_original] render_screen_original_from_b9: jsr render_screen_original - //SEG766 [366] phi from render_init::@9 to render_init::@1 [phi:render_init::@9->render_init::@1] + //SEG770 [370] phi from render_init::@9 to render_init::@1 [phi:render_init::@9->render_init::@1] b1_from_b9: - //SEG767 [366] phi (byte*) render_init::li#2 = (const byte*) PLAYFIELD_SCREEN#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::@9->render_init::@1#0] -- pbuz1=pbuc1 + //SEG771 [370] phi (byte*) render_init::li#2 = (const byte*) PLAYFIELD_SCREEN#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::@9->render_init::@1#0] -- pbuz1=pbuc1 lda #PLAYFIELD_SCREEN+2*$28+$10 sta li+1 - //SEG768 [366] phi (byte) render_init::i#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_init::@9->render_init::@1#1] -- vbuxx=vbuc1 + //SEG772 [370] phi (byte) render_init::i#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_init::@9->render_init::@1#1] -- vbuxx=vbuc1 ldx #0 jmp b1 - //SEG769 [366] phi from render_init::@1 to render_init::@1 [phi:render_init::@1->render_init::@1] + //SEG773 [370] phi from render_init::@1 to render_init::@1 [phi:render_init::@1->render_init::@1] b1_from_b1: - //SEG770 [366] phi (byte*) render_init::li#2 = (byte*) render_init::li#1 [phi:render_init::@1->render_init::@1#0] -- register_copy - //SEG771 [366] phi (byte) render_init::i#2 = (byte) render_init::i#1 [phi:render_init::@1->render_init::@1#1] -- register_copy + //SEG774 [370] phi (byte*) render_init::li#2 = (byte*) render_init::li#1 [phi:render_init::@1->render_init::@1#0] -- register_copy + //SEG775 [370] phi (byte) render_init::i#2 = (byte) render_init::i#1 [phi:render_init::@1->render_init::@1#1] -- register_copy jmp b1 - //SEG772 render_init::@1 + //SEG776 render_init::@1 b1: - //SEG773 [367] (byte~) render_init::$11 ← (byte) render_init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuaa=vbuxx_rol_1 + //SEG777 [371] (byte~) render_init::$11 ← (byte) render_init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuaa=vbuxx_rol_1 txa asl - //SEG774 [368] *((const byte*[PLAYFIELD_LINES#0]) screen_lines#0 + (byte~) render_init::$11) ← (byte*) render_init::li#2 -- pptc1_derefidx_vbuaa=pbuz1 + //SEG778 [372] *((const byte*[PLAYFIELD_LINES#0]) screen_lines#0 + (byte~) render_init::$11) ← (byte*) render_init::li#2 -- pptc1_derefidx_vbuaa=pbuz1 tay lda li sta screen_lines,y lda li+1 sta screen_lines+1,y - //SEG775 [369] (byte*) render_init::li#1 ← (byte*) render_init::li#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 -- pbuz1=pbuz1_plus_vbuc1 + //SEG779 [373] (byte*) render_init::li#1 ← (byte*) render_init::li#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 -- pbuz1=pbuz1_plus_vbuc1 lda li clc adc #$28 @@ -14039,41 +14069,41 @@ render_init: { bcc !+ inc li+1 !: - //SEG776 [370] (byte) render_init::i#1 ← ++ (byte) render_init::i#2 -- vbuxx=_inc_vbuxx + //SEG780 [374] (byte) render_init::i#1 ← ++ (byte) render_init::i#2 -- vbuxx=_inc_vbuxx inx - //SEG777 [371] 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 + //SEG781 [375] 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 - //SEG778 [372] phi from render_init::@1 to render_init::@2 [phi:render_init::@1->render_init::@2] + //SEG782 [376] phi from render_init::@1 to render_init::@2 [phi:render_init::@1->render_init::@2] b2_from_b1: - //SEG779 [372] phi (byte) render_init::l#4 = (byte/signed byte/word/signed word/dword/signed dword) 2 [phi:render_init::@1->render_init::@2#0] -- vbuz1=vbuc1 + //SEG783 [376] phi (byte) render_init::l#4 = (byte/signed byte/word/signed word/dword/signed dword) 2 [phi:render_init::@1->render_init::@2#0] -- vbuz1=vbuc1 lda #2 sta l - //SEG780 [372] phi (byte*) render_init::line#4 = (const byte*) COLS#0+(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 16 [phi:render_init::@1->render_init::@2#1] -- pbuz1=pbuc1 + //SEG784 [376] phi (byte*) render_init::line#4 = (const byte*) COLS#0+(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 16 [phi:render_init::@1->render_init::@2#1] -- pbuz1=pbuc1 lda #COLS+4*$28+$10 sta line+1 jmp b2 - //SEG781 [372] phi from render_init::@5 to render_init::@2 [phi:render_init::@5->render_init::@2] + //SEG785 [376] phi from render_init::@5 to render_init::@2 [phi:render_init::@5->render_init::@2] b2_from_b5: - //SEG782 [372] phi (byte) render_init::l#4 = (byte) render_init::l#1 [phi:render_init::@5->render_init::@2#0] -- register_copy - //SEG783 [372] phi (byte*) render_init::line#4 = (byte*) render_init::line#1 [phi:render_init::@5->render_init::@2#1] -- register_copy + //SEG786 [376] phi (byte) render_init::l#4 = (byte) render_init::l#1 [phi:render_init::@5->render_init::@2#0] -- register_copy + //SEG787 [376] phi (byte*) render_init::line#4 = (byte*) render_init::line#1 [phi:render_init::@5->render_init::@2#1] -- register_copy jmp b2 - //SEG784 render_init::@2 + //SEG788 render_init::@2 b2: - //SEG785 [373] phi from render_init::@2 to render_init::@3 [phi:render_init::@2->render_init::@3] + //SEG789 [377] phi from render_init::@2 to render_init::@3 [phi:render_init::@2->render_init::@3] b3_from_b2: - //SEG786 [373] phi (byte) render_init::c#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_init::@2->render_init::@3#0] -- vbuxx=vbuc1 + //SEG790 [377] phi (byte) render_init::c#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_init::@2->render_init::@3#0] -- vbuxx=vbuc1 ldx #0 jmp b3 - //SEG787 [373] phi from render_init::@3 to render_init::@3 [phi:render_init::@3->render_init::@3] + //SEG791 [377] phi from render_init::@3 to render_init::@3 [phi:render_init::@3->render_init::@3] b3_from_b3: - //SEG788 [373] phi (byte) render_init::c#2 = (byte) render_init::c#1 [phi:render_init::@3->render_init::@3#0] -- register_copy + //SEG792 [377] phi (byte) render_init::c#2 = (byte) render_init::c#1 [phi:render_init::@3->render_init::@3#0] -- register_copy jmp b3 - //SEG789 render_init::@3 + //SEG793 render_init::@3 b3: - //SEG790 [374] (byte*~) render_init::$18 ← (byte*) render_init::line#4 + (byte) render_init::c#2 -- pbuz1=pbuz2_plus_vbuxx + //SEG794 [378] (byte*~) render_init::$18 ← (byte*) render_init::line#4 + (byte) render_init::c#2 -- pbuz1=pbuz2_plus_vbuxx txa clc adc line @@ -14081,19 +14111,19 @@ render_init: { lda #0 adc line+1 sta _18+1 - //SEG791 [375] *((byte*~) render_init::$18) ← (const byte) WHITE#0 -- _deref_pbuz1=vbuc1 + //SEG795 [379] *((byte*~) render_init::$18) ← (const byte) WHITE#0 -- _deref_pbuz1=vbuc1 lda #WHITE ldy #0 sta (_18),y - //SEG792 [376] (byte) render_init::c#1 ← ++ (byte) render_init::c#2 -- vbuxx=_inc_vbuxx + //SEG796 [380] (byte) render_init::c#1 ← ++ (byte) render_init::c#2 -- vbuxx=_inc_vbuxx inx - //SEG793 [377] if((byte) render_init::c#1!=(const byte) PLAYFIELD_COLS#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_init::@3 -- vbuxx_neq_vbuc1_then_la1 + //SEG797 [381] if((byte) render_init::c#1!=(const byte) PLAYFIELD_COLS#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_init::@3 -- vbuxx_neq_vbuc1_then_la1 cpx #PLAYFIELD_COLS-1+1 bne b3_from_b3 jmp b5 - //SEG794 render_init::@5 + //SEG798 render_init::@5 b5: - //SEG795 [378] (byte*) render_init::line#1 ← (byte*) render_init::line#4 + (byte/signed byte/word/signed word/dword/signed dword) 40 -- pbuz1=pbuz1_plus_vbuc1 + //SEG799 [382] (byte*) render_init::line#1 ← (byte*) render_init::line#4 + (byte/signed byte/word/signed word/dword/signed dword) 40 -- pbuz1=pbuz1_plus_vbuc1 lda line clc adc #$28 @@ -14101,173 +14131,173 @@ render_init: { bcc !+ inc line+1 !: - //SEG796 [379] (byte) render_init::l#1 ← ++ (byte) render_init::l#4 -- vbuz1=_inc_vbuz1 + //SEG800 [383] (byte) render_init::l#1 ← ++ (byte) render_init::l#4 -- vbuz1=_inc_vbuz1 inc l - //SEG797 [380] if((byte) render_init::l#1!=(const byte) PLAYFIELD_LINES#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_init::@2 -- vbuz1_neq_vbuc1_then_la1 + //SEG801 [384] if((byte) render_init::l#1!=(const byte) PLAYFIELD_LINES#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_init::@2 -- vbuz1_neq_vbuc1_then_la1 lda l cmp #PLAYFIELD_LINES-1+1 bne b2_from_b5 jmp breturn - //SEG798 render_init::@return + //SEG802 render_init::@return breturn: - //SEG799 [381] return + //SEG803 [385] return rts } -//SEG800 render_screen_original +//SEG804 render_screen_original render_screen_original: { .const SPACE = 0 .label screen = $c - .label orig = 5 + .label orig = 4 .label y = 2 - //SEG801 [383] phi from render_screen_original to render_screen_original::@1 [phi:render_screen_original->render_screen_original::@1] + //SEG805 [387] phi from render_screen_original to render_screen_original::@1 [phi:render_screen_original->render_screen_original::@1] b1_from_render_screen_original: - //SEG802 [383] 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 + //SEG806 [387] 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 - //SEG803 [383] phi (byte*) render_screen_original::orig#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#1] -- pbuz1=pbuc1 + //SEG807 [387] phi (byte*) render_screen_original::orig#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#1] -- pbuz1=pbuc1 lda #PLAYFIELD_SCREEN_ORIGINAL+$20*2 sta orig+1 - //SEG804 [383] phi (byte*) render_screen_original::screen#7 = (const byte*) PLAYFIELD_SCREEN#0 [phi:render_screen_original->render_screen_original::@1#2] -- pbuz1=pbuc1 + //SEG808 [387] phi (byte*) render_screen_original::screen#7 = (const byte*) PLAYFIELD_SCREEN#0 [phi:render_screen_original->render_screen_original::@1#2] -- pbuz1=pbuc1 lda #PLAYFIELD_SCREEN sta screen+1 jmp b1 - //SEG805 [383] phi from render_screen_original::@7 to render_screen_original::@1 [phi:render_screen_original::@7->render_screen_original::@1] + //SEG809 [387] phi from render_screen_original::@7 to render_screen_original::@1 [phi:render_screen_original::@7->render_screen_original::@1] b1_from_b7: - //SEG806 [383] 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 - //SEG807 [383] phi (byte*) render_screen_original::orig#4 = (byte*) render_screen_original::orig#1 [phi:render_screen_original::@7->render_screen_original::@1#1] -- register_copy - //SEG808 [383] phi (byte*) render_screen_original::screen#7 = (byte*) render_screen_original::screen#3 [phi:render_screen_original::@7->render_screen_original::@1#2] -- register_copy + //SEG810 [387] 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 + //SEG811 [387] phi (byte*) render_screen_original::orig#4 = (byte*) render_screen_original::orig#1 [phi:render_screen_original::@7->render_screen_original::@1#1] -- register_copy + //SEG812 [387] phi (byte*) render_screen_original::screen#7 = (byte*) render_screen_original::screen#3 [phi:render_screen_original::@7->render_screen_original::@1#2] -- register_copy jmp b1 - //SEG809 render_screen_original::@1 + //SEG813 render_screen_original::@1 b1: - //SEG810 [384] phi from render_screen_original::@1 to render_screen_original::@2 [phi:render_screen_original::@1->render_screen_original::@2] + //SEG814 [388] phi from render_screen_original::@1 to render_screen_original::@2 [phi:render_screen_original::@1->render_screen_original::@2] b2_from_b1: - //SEG811 [384] 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 + //SEG815 [388] 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 - //SEG812 [384] phi (byte*) render_screen_original::screen#4 = (byte*) render_screen_original::screen#7 [phi:render_screen_original::@1->render_screen_original::@2#1] -- register_copy + //SEG816 [388] phi (byte*) render_screen_original::screen#4 = (byte*) render_screen_original::screen#7 [phi:render_screen_original::@1->render_screen_original::@2#1] -- register_copy jmp b2 - //SEG813 [384] phi from render_screen_original::@2 to render_screen_original::@2 [phi:render_screen_original::@2->render_screen_original::@2] + //SEG817 [388] phi from render_screen_original::@2 to render_screen_original::@2 [phi:render_screen_original::@2->render_screen_original::@2] b2_from_b2: - //SEG814 [384] 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 - //SEG815 [384] phi (byte*) render_screen_original::screen#4 = (byte*) render_screen_original::screen#1 [phi:render_screen_original::@2->render_screen_original::@2#1] -- register_copy + //SEG818 [388] 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 + //SEG819 [388] phi (byte*) render_screen_original::screen#4 = (byte*) render_screen_original::screen#1 [phi:render_screen_original::@2->render_screen_original::@2#1] -- register_copy jmp b2 - //SEG816 render_screen_original::@2 + //SEG820 render_screen_original::@2 b2: - //SEG817 [385] *((byte*) render_screen_original::screen#4) ← (const byte) render_screen_original::SPACE#0 -- _deref_pbuz1=vbuc1 + //SEG821 [389] *((byte*) render_screen_original::screen#4) ← (const byte) render_screen_original::SPACE#0 -- _deref_pbuz1=vbuc1 lda #SPACE ldy #0 sta (screen),y - //SEG818 [386] (byte*) render_screen_original::screen#1 ← ++ (byte*) render_screen_original::screen#4 -- pbuz1=_inc_pbuz1 + //SEG822 [390] (byte*) render_screen_original::screen#1 ← ++ (byte*) render_screen_original::screen#4 -- pbuz1=_inc_pbuz1 inc screen bne !+ inc screen+1 !: - //SEG819 [387] (byte) render_screen_original::x#1 ← ++ (byte) render_screen_original::x#4 -- vbuxx=_inc_vbuxx + //SEG823 [391] (byte) render_screen_original::x#1 ← ++ (byte) render_screen_original::x#4 -- vbuxx=_inc_vbuxx inx - //SEG820 [388] 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 + //SEG824 [392] 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 - //SEG821 [389] 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] + //SEG825 [393] 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: - //SEG822 [389] 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 - //SEG823 [389] phi (byte*) render_screen_original::screen#5 = (byte*) render_screen_original::screen#1 [phi:render_screen_original::@2/render_screen_original::@3->render_screen_original::@3#1] -- register_copy - //SEG824 [389] phi (byte*) render_screen_original::orig#2 = (byte*) render_screen_original::orig#4 [phi:render_screen_original::@2/render_screen_original::@3->render_screen_original::@3#2] -- register_copy + //SEG826 [393] 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 + //SEG827 [393] phi (byte*) render_screen_original::screen#5 = (byte*) render_screen_original::screen#1 [phi:render_screen_original::@2/render_screen_original::@3->render_screen_original::@3#1] -- register_copy + //SEG828 [393] phi (byte*) render_screen_original::orig#2 = (byte*) render_screen_original::orig#4 [phi:render_screen_original::@2/render_screen_original::@3->render_screen_original::@3#2] -- register_copy jmp b3 - //SEG825 render_screen_original::@3 + //SEG829 render_screen_original::@3 b3: - //SEG826 [390] (byte/signed word/word/dword/signed dword~) render_screen_original::$3 ← *((byte*) render_screen_original::orig#2) + (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuaa=_deref_pbuz1_plus_1 + //SEG830 [394] (byte/signed word/word/dword/signed dword~) render_screen_original::$3 ← *((byte*) render_screen_original::orig#2) + (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuaa=_deref_pbuz1_plus_1 ldy #0 lda (orig),y clc adc #1 - //SEG827 [391] *((byte*) render_screen_original::screen#5) ← (byte/signed word/word/dword/signed dword~) render_screen_original::$3 -- _deref_pbuz1=vbuaa + //SEG831 [395] *((byte*) render_screen_original::screen#5) ← (byte/signed word/word/dword/signed dword~) render_screen_original::$3 -- _deref_pbuz1=vbuaa ldy #0 sta (screen),y - //SEG828 [392] (byte*) render_screen_original::screen#2 ← ++ (byte*) render_screen_original::screen#5 -- pbuz1=_inc_pbuz1 + //SEG832 [396] (byte*) render_screen_original::screen#2 ← ++ (byte*) render_screen_original::screen#5 -- pbuz1=_inc_pbuz1 inc screen bne !+ inc screen+1 !: - //SEG829 [393] (byte*) render_screen_original::orig#1 ← ++ (byte*) render_screen_original::orig#2 -- pbuz1=_inc_pbuz1 + //SEG833 [397] (byte*) render_screen_original::orig#1 ← ++ (byte*) render_screen_original::orig#2 -- pbuz1=_inc_pbuz1 inc orig bne !+ inc orig+1 !: - //SEG830 [394] (byte) render_screen_original::x#2 ← ++ (byte) render_screen_original::x#5 -- vbuxx=_inc_vbuxx + //SEG834 [398] (byte) render_screen_original::x#2 ← ++ (byte) render_screen_original::x#5 -- vbuxx=_inc_vbuxx inx - //SEG831 [395] 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 + //SEG835 [399] 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 - //SEG832 [396] 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] + //SEG836 [400] 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: - //SEG833 [396] 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 - //SEG834 [396] phi (byte*) render_screen_original::screen#6 = (byte*) render_screen_original::screen#2 [phi:render_screen_original::@3/render_screen_original::@4->render_screen_original::@4#1] -- register_copy + //SEG837 [400] 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 + //SEG838 [400] phi (byte*) render_screen_original::screen#6 = (byte*) render_screen_original::screen#2 [phi:render_screen_original::@3/render_screen_original::@4->render_screen_original::@4#1] -- register_copy jmp b4 - //SEG835 render_screen_original::@4 + //SEG839 render_screen_original::@4 b4: - //SEG836 [397] *((byte*) render_screen_original::screen#6) ← (const byte) render_screen_original::SPACE#0 -- _deref_pbuz1=vbuc1 + //SEG840 [401] *((byte*) render_screen_original::screen#6) ← (const byte) render_screen_original::SPACE#0 -- _deref_pbuz1=vbuc1 lda #SPACE ldy #0 sta (screen),y - //SEG837 [398] (byte*) render_screen_original::screen#3 ← ++ (byte*) render_screen_original::screen#6 -- pbuz1=_inc_pbuz1 + //SEG841 [402] (byte*) render_screen_original::screen#3 ← ++ (byte*) render_screen_original::screen#6 -- pbuz1=_inc_pbuz1 inc screen bne !+ inc screen+1 !: - //SEG838 [399] (byte) render_screen_original::x#3 ← ++ (byte) render_screen_original::x#6 -- vbuxx=_inc_vbuxx + //SEG842 [403] (byte) render_screen_original::x#3 ← ++ (byte) render_screen_original::x#6 -- vbuxx=_inc_vbuxx inx - //SEG839 [400] 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 + //SEG843 [404] 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 - //SEG840 render_screen_original::@7 + //SEG844 render_screen_original::@7 b7: - //SEG841 [401] (byte) render_screen_original::y#1 ← ++ (byte) render_screen_original::y#6 -- vbuz1=_inc_vbuz1 + //SEG845 [405] (byte) render_screen_original::y#1 ← ++ (byte) render_screen_original::y#6 -- vbuz1=_inc_vbuz1 inc y - //SEG842 [402] 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 + //SEG846 [406] 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 - //SEG843 render_screen_original::@return + //SEG847 render_screen_original::@return breturn: - //SEG844 [403] return + //SEG848 [407] return rts } -//SEG845 fill +//SEG849 fill fill: { .const size = $3e8 .label end = COLS+size - .label addr = 5 - //SEG846 [405] phi from fill to fill::@1 [phi:fill->fill::@1] + .label addr = 4 + //SEG850 [409] phi from fill to fill::@1 [phi:fill->fill::@1] b1_from_fill: - //SEG847 [405] phi (byte*) fill::addr#2 = (const byte*) COLS#0 [phi:fill->fill::@1#0] -- pbuz1=pbuc1 + //SEG851 [409] phi (byte*) fill::addr#2 = (const byte*) COLS#0 [phi:fill->fill::@1#0] -- pbuz1=pbuc1 lda #COLS sta addr+1 jmp b1 - //SEG848 [405] phi from fill::@1 to fill::@1 [phi:fill::@1->fill::@1] + //SEG852 [409] phi from fill::@1 to fill::@1 [phi:fill::@1->fill::@1] b1_from_b1: - //SEG849 [405] phi (byte*) fill::addr#2 = (byte*) fill::addr#1 [phi:fill::@1->fill::@1#0] -- register_copy + //SEG853 [409] phi (byte*) fill::addr#2 = (byte*) fill::addr#1 [phi:fill::@1->fill::@1#0] -- register_copy jmp b1 - //SEG850 fill::@1 + //SEG854 fill::@1 b1: - //SEG851 [406] *((byte*) fill::addr#2) ← (const byte) DARK_GREY#0 -- _deref_pbuz1=vbuc1 + //SEG855 [410] *((byte*) fill::addr#2) ← (const byte) DARK_GREY#0 -- _deref_pbuz1=vbuc1 lda #DARK_GREY ldy #0 sta (addr),y - //SEG852 [407] (byte*) fill::addr#1 ← ++ (byte*) fill::addr#2 -- pbuz1=_inc_pbuz1 + //SEG856 [411] (byte*) fill::addr#1 ← ++ (byte*) fill::addr#2 -- pbuz1=_inc_pbuz1 inc addr bne !+ inc addr+1 !: - //SEG853 [408] if((byte*) fill::addr#1!=(const byte*) fill::end#0) goto fill::@1 -- pbuz1_neq_pbuc1_then_la1 + //SEG857 [412] if((byte*) fill::addr#1!=(const byte*) fill::end#0) goto fill::@1 -- pbuz1_neq_pbuc1_then_la1 lda addr+1 cmp #>end bne b1_from_b1 @@ -14275,159 +14305,159 @@ fill: { cmp #$ffff sta SID_VOICE3_FREQ+1 - //SEG858 [411] *((const byte*) SID_VOICE3_CONTROL#0) ← (const byte) SID_CONTROL_NOISE#0 -- _deref_pbuc1=vbuc2 + //SEG862 [415] *((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 - //SEG859 sid_rnd_init::@return + //SEG863 sid_rnd_init::@return breturn: - //SEG860 [412] return + //SEG864 [416] return rts } -//SEG861 irq +//SEG865 irq irq: { .const toSpritePtr2_return = PLAYFIELD_SPRITES>>6 - //SEG862 entry interrupt(HARDWARE_CLOBBER) + //SEG866 entry interrupt(HARDWARE_CLOBBER) sta rega+1 stx regx+1 - //SEG863 [413] *((const byte*) BORDERCOL#0) ← (const byte) DARK_GREY#0 -- _deref_pbuc1=vbuc2 + //SEG867 [417] *((const byte*) BORDERCOL#0) ← (const byte) DARK_GREY#0 -- _deref_pbuc1=vbuc2 lda #DARK_GREY sta BORDERCOL - //SEG864 [414] (byte) irq::ypos#0 ← (byte) irq_sprite_ypos#0 -- vbuaa=vbuz1 + //SEG868 [418] (byte) irq::ypos#0 ← (byte) irq_sprite_ypos#0 -- vbuaa=vbuz1 lda irq_sprite_ypos - //SEG865 [415] *((const byte*) SPRITES_YPOS#0) ← (byte) irq::ypos#0 -- _deref_pbuc1=vbuaa + //SEG869 [419] *((const byte*) SPRITES_YPOS#0) ← (byte) irq::ypos#0 -- _deref_pbuc1=vbuaa sta SPRITES_YPOS - //SEG866 [416] *((const byte*) SPRITES_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte) irq::ypos#0 -- _deref_pbuc1=vbuaa + //SEG870 [420] *((const byte*) SPRITES_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte) irq::ypos#0 -- _deref_pbuc1=vbuaa sta SPRITES_YPOS+2 - //SEG867 [417] *((const byte*) SPRITES_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte) irq::ypos#0 -- _deref_pbuc1=vbuaa + //SEG871 [421] *((const byte*) SPRITES_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte) irq::ypos#0 -- _deref_pbuc1=vbuaa sta SPRITES_YPOS+4 - //SEG868 [418] *((const byte*) SPRITES_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte) irq::ypos#0 -- _deref_pbuc1=vbuaa + //SEG872 [422] *((const byte*) SPRITES_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte) irq::ypos#0 -- _deref_pbuc1=vbuaa sta SPRITES_YPOS+6 jmp b1 - //SEG869 irq::@1 + //SEG873 irq::@1 b1: - //SEG870 [419] if(*((const byte*) RASTER#0)!=(byte) irq_sprite_ypos#0) goto irq::@1 -- _deref_pbuc1_neq_vbuz1_then_la1 + //SEG874 [423] if(*((const byte*) RASTER#0)!=(byte) irq_sprite_ypos#0) goto irq::@1 -- _deref_pbuc1_neq_vbuz1_then_la1 lda RASTER cmp irq_sprite_ypos bne b1 jmp b5 - //SEG871 irq::@5 + //SEG875 irq::@5 b5: - //SEG872 [420] (byte) irq::ptr#0 ← (byte) irq_sprite_ptr#0 -- vbuaa=vbuz1 + //SEG876 [424] (byte) irq::ptr#0 ← (byte) irq_sprite_ptr#0 -- vbuaa=vbuz1 lda irq_sprite_ptr - //SEG873 [421] *((const byte*) PLAYFIELD_SPRITE_PTRS#0) ← (byte) irq::ptr#0 -- _deref_pbuc1=vbuaa + //SEG877 [425] *((const byte*) PLAYFIELD_SPRITE_PTRS#0) ← (byte) irq::ptr#0 -- _deref_pbuc1=vbuaa sta PLAYFIELD_SPRITE_PTRS - //SEG874 [422] (byte) irq::ptr#1 ← ++ (byte) irq::ptr#0 -- vbuxx=_inc_vbuaa + //SEG878 [426] (byte) irq::ptr#1 ← ++ (byte) irq::ptr#0 -- vbuxx=_inc_vbuaa tax inx - //SEG875 [423] *((const byte*) PLAYFIELD_SPRITE_PTRS#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte) irq::ptr#1 -- _deref_pbuc1=vbuxx + //SEG879 [427] *((const byte*) PLAYFIELD_SPRITE_PTRS#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte) irq::ptr#1 -- _deref_pbuc1=vbuxx stx PLAYFIELD_SPRITE_PTRS+1 - //SEG876 [424] *((const byte*) PLAYFIELD_SPRITE_PTRS#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte) irq::ptr#1 -- _deref_pbuc1=vbuxx + //SEG880 [428] *((const byte*) PLAYFIELD_SPRITE_PTRS#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte) irq::ptr#1 -- _deref_pbuc1=vbuxx stx PLAYFIELD_SPRITE_PTRS+2 - //SEG877 [425] (byte) irq::ptr#2 ← ++ (byte) irq::ptr#1 -- vbuxx=_inc_vbuxx + //SEG881 [429] (byte) irq::ptr#2 ← ++ (byte) irq::ptr#1 -- vbuxx=_inc_vbuxx inx - //SEG878 [426] *((const byte*) PLAYFIELD_SPRITE_PTRS#0+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte) irq::ptr#2 -- _deref_pbuc1=vbuxx + //SEG882 [430] *((const byte*) PLAYFIELD_SPRITE_PTRS#0+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte) irq::ptr#2 -- _deref_pbuc1=vbuxx stx PLAYFIELD_SPRITE_PTRS+3 - //SEG879 [427] (byte) irq_cnt#1 ← ++ (byte) irq_cnt#0 -- vbuz1=_inc_vbuz1 + //SEG883 [431] (byte) irq_cnt#1 ← ++ (byte) irq_cnt#0 -- vbuz1=_inc_vbuz1 inc irq_cnt - //SEG880 [428] if((byte) irq_cnt#1==(byte/signed byte/word/signed word/dword/signed dword) 10) goto irq::@2 -- vbuz1_eq_vbuc1_then_la1 + //SEG884 [432] if((byte) irq_cnt#1==(byte/signed byte/word/signed word/dword/signed dword) 10) goto irq::@2 -- vbuz1_eq_vbuc1_then_la1 lda irq_cnt cmp #$a beq b2 jmp b6 - //SEG881 irq::@6 + //SEG885 irq::@6 b6: - //SEG882 [429] (byte) irq_raster_next#2 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 -- vbuz1=vbuz1_plus_vbuc1 + //SEG886 [433] (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 - //SEG883 [430] (byte) irq_sprite_ypos#2 ← (byte) irq_sprite_ypos#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 -- vbuz1=vbuz1_plus_vbuc1 + //SEG887 [434] (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 - //SEG884 [431] (byte) irq_sprite_ptr#2 ← (byte) irq_sprite_ptr#0 + (byte/signed byte/word/signed word/dword/signed dword) 3 -- vbuz1=vbuz1_plus_vbuc1 + //SEG888 [435] (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 - //SEG885 [432] phi from irq::@6 irq::@9 to irq::@3 [phi:irq::@6/irq::@9->irq::@3] + //SEG889 [436] phi from irq::@6 irq::@9 to irq::@3 [phi:irq::@6/irq::@9->irq::@3] b3_from_b6: b3_from_b9: - //SEG886 [432] phi (byte) irq_raster_next#12 = (byte) irq_raster_next#2 [phi:irq::@6/irq::@9->irq::@3#0] -- register_copy + //SEG890 [436] phi (byte) irq_raster_next#12 = (byte) irq_raster_next#2 [phi:irq::@6/irq::@9->irq::@3#0] -- register_copy jmp b3 - //SEG887 irq::@3 + //SEG891 irq::@3 b3: - //SEG888 [433] (byte) irq::raster_next#0 ← (byte) irq_raster_next#12 -- vbuxx=vbuz1 + //SEG892 [437] (byte) irq::raster_next#0 ← (byte) irq_raster_next#12 -- vbuxx=vbuz1 ldx irq_raster_next - //SEG889 [434] (byte~) irq::$3 ← (byte) irq::raster_next#0 & (byte/signed byte/word/signed word/dword/signed dword) 7 -- vbuaa=vbuxx_band_vbuc1 + //SEG893 [438] (byte~) irq::$3 ← (byte) irq::raster_next#0 & (byte/signed byte/word/signed word/dword/signed dword) 7 -- vbuaa=vbuxx_band_vbuc1 txa and #7 - //SEG890 [435] if((byte~) irq::$3!=(byte/signed byte/word/signed word/dword/signed dword) 3) goto irq::@4 -- vbuaa_neq_vbuc1_then_la1 + //SEG894 [439] if((byte~) irq::$3!=(byte/signed byte/word/signed word/dword/signed dword) 3) goto irq::@4 -- vbuaa_neq_vbuc1_then_la1 cmp #3 bne b4_from_b3 jmp b8 - //SEG891 irq::@8 + //SEG895 irq::@8 b8: - //SEG892 [436] (byte) irq::raster_next#1 ← (byte) irq::raster_next#0 - (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuxx=vbuxx_minus_1 + //SEG896 [440] (byte) irq::raster_next#1 ← (byte) irq::raster_next#0 - (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuxx=vbuxx_minus_1 dex - //SEG893 [437] phi from irq::@3 irq::@8 to irq::@4 [phi:irq::@3/irq::@8->irq::@4] + //SEG897 [441] phi from irq::@3 irq::@8 to irq::@4 [phi:irq::@3/irq::@8->irq::@4] b4_from_b3: b4_from_b8: - //SEG894 [437] phi (byte) irq::raster_next#2 = (byte) irq::raster_next#0 [phi:irq::@3/irq::@8->irq::@4#0] -- register_copy + //SEG898 [441] phi (byte) irq::raster_next#2 = (byte) irq::raster_next#0 [phi:irq::@3/irq::@8->irq::@4#0] -- register_copy jmp b4 - //SEG895 irq::@4 + //SEG899 irq::@4 b4: - //SEG896 [438] *((const byte*) RASTER#0) ← (byte) irq::raster_next#2 -- _deref_pbuc1=vbuxx + //SEG900 [442] *((const byte*) RASTER#0) ← (byte) irq::raster_next#2 -- _deref_pbuc1=vbuxx stx RASTER - //SEG897 [439] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0 -- _deref_pbuc1=vbuc2 + //SEG901 [443] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0 -- _deref_pbuc1=vbuc2 lda #IRQ_RASTER sta IRQ_STATUS - //SEG898 [440] *((const byte*) BORDERCOL#0) ← (const byte) BLACK#0 -- _deref_pbuc1=vbuc2 + //SEG902 [444] *((const byte*) BORDERCOL#0) ← (const byte) BLACK#0 -- _deref_pbuc1=vbuc2 lda #BLACK sta BORDERCOL jmp breturn - //SEG899 irq::@return + //SEG903 irq::@return breturn: - //SEG900 [441] return - exit interrupt(HARDWARE_CLOBBER) + //SEG904 [445] return - exit interrupt(HARDWARE_CLOBBER) rega: lda #00 regx: ldx #00 rti - //SEG901 irq::@2 + //SEG905 irq::@2 b2: - //SEG902 [442] (byte) irq_cnt#13 ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- vbuz1=vbuc1 + //SEG906 [446] (byte) irq_cnt#13 ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- vbuz1=vbuc1 lda #0 sta irq_cnt - //SEG903 [443] (byte) irq_raster_next#1 ← (const byte) IRQ_RASTER_FIRST#0 -- vbuz1=vbuc1 + //SEG907 [447] (byte) irq_raster_next#1 ← (const byte) IRQ_RASTER_FIRST#0 -- vbuz1=vbuc1 lda #IRQ_RASTER_FIRST sta irq_raster_next - //SEG904 [444] (byte) irq_sprite_ypos#1 ← (byte/signed byte/word/signed word/dword/signed dword) 50 -- vbuz1=vbuc1 + //SEG908 [448] (byte) irq_sprite_ypos#1 ← (byte/signed byte/word/signed word/dword/signed dword) 50 -- vbuz1=vbuc1 lda #$32 sta irq_sprite_ypos - //SEG905 [445] phi from irq::@2 to irq::toSpritePtr2 [phi:irq::@2->irq::toSpritePtr2] + //SEG909 [449] phi from irq::@2 to irq::toSpritePtr2 [phi:irq::@2->irq::toSpritePtr2] toSpritePtr2_from_b2: jmp toSpritePtr2 - //SEG906 irq::toSpritePtr2 + //SEG910 irq::toSpritePtr2 toSpritePtr2: jmp b9 - //SEG907 irq::@9 + //SEG911 irq::@9 b9: - //SEG908 [446] (byte) irq_sprite_ptr#1 ← (const byte) irq::toSpritePtr2_return#0 -- vbuz1=vbuc1 + //SEG912 [450] (byte) irq_sprite_ptr#1 ← (const byte) irq::toSpritePtr2_return#0 -- vbuz1=vbuc1 lda #toSpritePtr2_return sta irq_sprite_ptr jmp b3_from_b9 @@ -14445,12 +14475,14 @@ irq: { .align $40 PIECE_L: .byte 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0 .align $40 - PIECE_J: .byte 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0 + PIECE_J: .byte 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 .align $40 PIECE_O: .byte 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .align $40 PIECE_I: .byte 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0 PIECES_CHARS: .byte $57, $58, $98, $58, $57, $57, $98 + PIECES_START_X: .byte 4, 4, 4, 4, 4, 3, 4 + PIECES_START_Y: .byte 2, 1, 1, 1, 2, 0, 1 screen_lines: .fill 2*PLAYFIELD_LINES, 0 playfield_lines: .fill 2*PLAYFIELD_LINES, 0 playfield: .fill PLAYFIELD_LINES*PLAYFIELD_COLS, 0 @@ -14638,7 +14670,6 @@ Removing instruction lda key_event Removing instruction lda #0 Removing instruction lda current_orientation Removing instruction lda #0 -Removing instruction lda #0 Replacing instruction ldy _3 with TAY Removing instruction lda c Removing instruction lda #0 @@ -15131,10 +15162,14 @@ FINAL SYMBOL TABLE (const word[]) PIECES#0 PIECES = { ((word))(const byte[4*4*4]) PIECE_T#0, ((word))(const byte[4*4*4]) PIECE_S#0, ((word))(const byte[4*4*4]) PIECE_Z#0, ((word))(const byte[4*4*4]) PIECE_J#0, ((word))(const byte[4*4*4]) PIECE_O#0, ((word))(const byte[4*4*4]) PIECE_I#0, ((word))(const byte[4*4*4]) PIECE_L#0 } (byte[]) PIECES_CHARS (const byte[]) PIECES_CHARS#0 PIECES_CHARS = { (byte/signed byte/word/signed word/dword/signed dword) 87, (byte/signed byte/word/signed word/dword/signed dword) 88, (byte/word/signed word/dword/signed dword) 152, (byte/signed byte/word/signed word/dword/signed dword) 88, (byte/signed byte/word/signed word/dword/signed dword) 87, (byte/signed byte/word/signed word/dword/signed dword) 87, (byte/word/signed word/dword/signed dword) 152 } +(byte[]) PIECES_START_X +(const byte[]) PIECES_START_X#0 PIECES_START_X = { (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 3, (byte/signed byte/word/signed word/dword/signed dword) 4 } +(byte[]) PIECES_START_Y +(const byte[]) PIECES_START_Y#0 PIECES_START_Y = { (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1 } (byte[4*4*4]) PIECE_I (const byte[4*4*4]) PIECE_I#0 PIECE_I = { (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0 } (byte[4*4*4]) PIECE_J -(const byte[4*4*4]) PIECE_J#0 PIECE_J = { (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0 } +(const byte[4*4*4]) PIECE_J#0 PIECE_J = { (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0 } (byte[4*4*4]) PIECE_L (const byte[4*4*4]) PIECE_L#0 PIECE_L = { (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0 } (byte[4*4*4]) PIECE_O @@ -15232,9 +15267,9 @@ FINAL SYMBOL TABLE (const byte) WHITE#0 WHITE = (byte/signed byte/word/signed word/dword/signed dword) 1 (byte) YELLOW (byte) current_movedown_counter -(byte) current_movedown_counter#1 current_movedown_counter zp ZP_BYTE:3 0.5333333333333333 -(byte) current_movedown_counter#10 current_movedown_counter zp ZP_BYTE:3 0.52 -(byte) current_movedown_counter#12 current_movedown_counter zp ZP_BYTE:3 1.3 +(byte) current_movedown_counter#1 current_movedown_counter zp ZP_BYTE:2 0.5333333333333333 +(byte) current_movedown_counter#10 current_movedown_counter zp ZP_BYTE:2 0.52 +(byte) current_movedown_counter#12 current_movedown_counter zp ZP_BYTE:2 1.3 (byte) current_movedown_fast (const byte) current_movedown_fast#0 current_movedown_fast = (byte/signed byte/word/signed word/dword/signed dword) 5 (byte) current_movedown_slow @@ -15247,55 +15282,59 @@ FINAL SYMBOL TABLE (byte) current_orientation#4 current_orientation zp ZP_BYTE:14 3.0 (byte*) current_piece (byte*) current_piece#10 current_piece zp ZP_WORD:12 0.3484848484848484 -(byte*) current_piece#12 current_piece#12 zp ZP_WORD:5 10.0 +(byte*) current_piece#12 current_piece#12 zp ZP_WORD:4 10.0 (byte*) current_piece#16 current_piece zp ZP_WORD:12 0.5588235294117647 (byte*) current_piece#20 current_piece zp ZP_WORD:12 6.0 (byte*~) current_piece#72 current_piece zp ZP_WORD:12 4.0 -(byte*~) current_piece#73 current_piece#73 zp ZP_WORD:5 4.0 -(byte*~) current_piece#74 current_piece#74 zp ZP_WORD:5 4.0 -(byte*~) current_piece#75 current_piece#75 zp ZP_WORD:5 4.0 -(byte*~) current_piece#76 current_piece#76 zp ZP_WORD:5 4.0 +(byte*~) current_piece#73 current_piece#73 zp ZP_WORD:4 4.0 +(byte*~) current_piece#74 current_piece#74 zp ZP_WORD:4 4.0 +(byte*~) current_piece#75 current_piece#75 zp ZP_WORD:4 4.0 +(byte*~) current_piece#76 current_piece#76 zp ZP_WORD:4 4.0 (byte*~) current_piece#77 current_piece zp ZP_WORD:12 4.0 (byte) current_piece_char (byte) current_piece_char#11 current_piece_char zp ZP_BYTE:18 1.04 -(byte) current_piece_char#13 current_piece_char zp ZP_BYTE:18 0.7272727272727273 +(byte) current_piece_char#13 current_piece_char zp ZP_BYTE:18 0.6153846153846154 (byte) current_piece_char#16 current_piece_char zp ZP_BYTE:18 19.96078431372549 (byte) current_piece_char#21 current_piece_char zp ZP_BYTE:18 6.0 -(byte) current_piece_char#63 current_piece_char#63 zp ZP_BYTE:7 48.285714285714285 -(byte~) current_piece_char#83 current_piece_char#83 zp ZP_BYTE:7 4.0 -(byte~) current_piece_char#84 current_piece_char#84 zp ZP_BYTE:7 22.0 +(byte) current_piece_char#63 current_piece_char#63 zp ZP_BYTE:6 48.285714285714285 +(byte~) current_piece_char#83 current_piece_char#83 zp ZP_BYTE:6 4.0 +(byte~) current_piece_char#84 current_piece_char#84 zp ZP_BYTE:6 22.0 (byte*) current_piece_gfx (byte*) current_piece_gfx#10 current_piece_gfx zp ZP_WORD:15 19.96078431372549 (byte*) current_piece_gfx#14 current_piece_gfx zp ZP_WORD:15 0.2962962962962963 (byte*) current_piece_gfx#15 current_piece_gfx zp ZP_WORD:15 1.8666666666666665 -(byte*) current_piece_gfx#17 current_piece_gfx zp ZP_WORD:15 0.6666666666666666 +(byte*) current_piece_gfx#17 current_piece_gfx zp ZP_WORD:15 0.5 (byte*) current_piece_gfx#27 current_piece_gfx zp ZP_WORD:15 6.0 (byte*) current_piece_gfx#4 current_piece_gfx zp ZP_WORD:15 4.0 -(byte*) current_piece_gfx#53 current_piece_gfx#53 zp ZP_WORD:5 48.285714285714285 -(byte*~) current_piece_gfx#95 current_piece_gfx#95 zp ZP_WORD:5 2.0 -(byte*~) current_piece_gfx#96 current_piece_gfx#96 zp ZP_WORD:5 11.0 +(byte*) current_piece_gfx#53 current_piece_gfx#53 zp ZP_WORD:4 48.285714285714285 +(byte*~) current_piece_gfx#95 current_piece_gfx#95 zp ZP_WORD:4 2.0 +(byte*~) current_piece_gfx#96 current_piece_gfx#96 zp ZP_WORD:4 11.0 (byte) current_xpos -(byte~) current_xpos#104 current_xpos#104 zp ZP_BYTE:4 7.333333333333333 -(byte) current_xpos#11 current_xpos zp ZP_BYTE:17 2.313725490196078 +(byte~) current_xpos#105 current_xpos#105 zp ZP_BYTE:3 1.3333333333333333 +(byte~) current_xpos#106 current_xpos#106 zp ZP_BYTE:3 7.333333333333333 +(byte) current_xpos#11 current_xpos zp ZP_BYTE:17 2.3529411764705883 (byte) current_xpos#16 current_xpos zp ZP_BYTE:17 0.72 (byte) current_xpos#20 current_xpos zp ZP_BYTE:17 0.871794871794872 +(byte) current_xpos#24 current_xpos zp ZP_BYTE:17 0.5333333333333333 (byte) current_xpos#3 current_xpos zp ZP_BYTE:17 4.0 -(byte) current_xpos#34 current_xpos zp ZP_BYTE:17 4.0 -(byte) current_xpos#48 current_xpos#48 zp ZP_BYTE:4 5.333333333333333 +(byte) current_xpos#34 current_xpos zp ZP_BYTE:17 6.0 +(byte) current_xpos#48 current_xpos#48 zp ZP_BYTE:3 5.428571428571429 (byte) current_xpos#5 current_xpos zp ZP_BYTE:17 4.0 (byte) current_ypos -(byte) current_ypos#1 current_ypos zp ZP_BYTE:2 4.0 -(byte) current_ypos#10 reg byte x 13.0 -(byte) current_ypos#14 current_ypos zp ZP_BYTE:2 0.48484848484848475 -(byte) current_ypos#22 current_ypos zp ZP_BYTE:2 0.5588235294117647 -(byte) current_ypos#30 current_ypos zp ZP_BYTE:2 4.0 -(byte~) current_ypos#78 reg byte x 5.5 +(byte) current_ypos#1 current_ypos zp ZP_BYTE:11 4.0 +(byte) current_ypos#10 reg byte x 15.0 +(byte) current_ypos#14 current_ypos zp ZP_BYTE:11 0.48484848484848475 +(byte) current_ypos#19 current_ypos zp ZP_BYTE:11 0.5714285714285714 +(byte) current_ypos#22 current_ypos zp ZP_BYTE:11 0.6176470588235294 +(byte) current_ypos#30 current_ypos zp ZP_BYTE:11 6.0 +(byte~) current_ypos#79 reg byte x 1.0 +(byte~) current_ypos#80 reg byte x 5.5 (void()) fill((byte*) fill::start , (word) fill::size , (byte) fill::val) (label) fill::@1 (label) fill::@return (byte*) fill::addr -(byte*) fill::addr#1 addr zp ZP_WORD:5 16.5 -(byte*) fill::addr#2 addr zp ZP_WORD:5 16.5 +(byte*) fill::addr#1 addr zp ZP_WORD:4 16.5 +(byte*) fill::addr#2 addr zp ZP_WORD:4 16.5 (byte*) fill::end (const byte*) fill::end#0 end = (const byte*) COLS#0+(const word) fill::size#0 (word) fill::size @@ -15360,7 +15399,7 @@ interrupt(HARDWARE_CLOBBER)(void()) irq() (byte~) keyboard_event_pressed::$1 reg byte a 4.0 (label) keyboard_event_pressed::@return (byte) keyboard_event_pressed::keycode -(byte) keyboard_event_pressed::keycode#5 keycode zp ZP_BYTE:4 1.3333333333333333 +(byte) keyboard_event_pressed::keycode#5 keycode zp ZP_BYTE:3 1.3333333333333333 (byte) keyboard_event_pressed::return (byte) keyboard_event_pressed::return#0 reg byte a 4.0 (byte) keyboard_event_pressed::return#1 reg byte a 4.0 @@ -15369,7 +15408,7 @@ interrupt(HARDWARE_CLOBBER)(void()) irq() (byte) keyboard_event_pressed::return#12 reg byte a 4.0 (byte) keyboard_event_pressed::return#2 reg byte a 4.0 (byte) keyboard_event_pressed::row_bits -(byte) keyboard_event_pressed::row_bits#0 row_bits zp ZP_BYTE:7 2.0 +(byte) keyboard_event_pressed::row_bits#0 row_bits zp ZP_BYTE:6 2.0 (void()) keyboard_event_scan() (byte/word/dword~) keyboard_event_scan::$11 reg byte a 2002.0 (byte~) keyboard_event_scan::$14 reg byte a 4.0 @@ -15408,16 +15447,16 @@ interrupt(HARDWARE_CLOBBER)(void()) irq() (byte) keyboard_event_scan::event_type (byte) keyboard_event_scan::event_type#0 reg byte a 2002.0 (byte) keyboard_event_scan::keycode -(byte) keyboard_event_scan::keycode#1 keycode zp ZP_BYTE:7 202.0 -(byte) keyboard_event_scan::keycode#10 keycode zp ZP_BYTE:7 315.7692307692308 -(byte) keyboard_event_scan::keycode#11 keycode zp ZP_BYTE:7 50.5 -(byte) keyboard_event_scan::keycode#14 keycode zp ZP_BYTE:7 101.0 -(byte) keyboard_event_scan::keycode#15 keycode zp ZP_BYTE:7 525.75 +(byte) keyboard_event_scan::keycode#1 keycode zp ZP_BYTE:6 202.0 +(byte) keyboard_event_scan::keycode#10 keycode zp ZP_BYTE:6 315.7692307692308 +(byte) keyboard_event_scan::keycode#11 keycode zp ZP_BYTE:6 50.5 +(byte) keyboard_event_scan::keycode#14 keycode zp ZP_BYTE:6 101.0 +(byte) keyboard_event_scan::keycode#15 keycode zp ZP_BYTE:6 525.75 (byte) keyboard_event_scan::row -(byte) keyboard_event_scan::row#1 row zp ZP_BYTE:4 151.5 -(byte) keyboard_event_scan::row#2 row zp ZP_BYTE:4 60.24 +(byte) keyboard_event_scan::row#1 row zp ZP_BYTE:3 151.5 +(byte) keyboard_event_scan::row#2 row zp ZP_BYTE:3 60.24 (byte) keyboard_event_scan::row_scan -(byte) keyboard_event_scan::row_scan#0 row_scan zp ZP_BYTE:8 128.05555555555557 +(byte) keyboard_event_scan::row_scan#0 row_scan zp ZP_BYTE:7 128.05555555555557 (byte[8]) keyboard_events (const byte[8]) keyboard_events#0 keyboard_events = { fill( 8, 0) } (byte) keyboard_events_size @@ -15497,18 +15536,18 @@ interrupt(HARDWARE_CLOBBER)(void()) irq() (byte) play_collision::c#1 reg byte x 1001.0 (byte) play_collision::c#2 reg byte x 222.44444444444446 (byte) play_collision::col -(byte) play_collision::col#1 col zp ZP_BYTE:11 500.5 -(byte) play_collision::col#2 col zp ZP_BYTE:11 638.25 -(byte~) play_collision::col#9 col zp ZP_BYTE:11 202.0 +(byte) play_collision::col#1 col zp ZP_BYTE:10 500.5 +(byte) play_collision::col#2 col zp ZP_BYTE:10 638.25 +(byte~) play_collision::col#9 col zp ZP_BYTE:10 202.0 (byte) play_collision::i (byte) play_collision::i#1 i zp ZP_BYTE:28 161.76923076923077 -(byte~) play_collision::i#11 i#11 zp ZP_BYTE:10 202.0 -(byte~) play_collision::i#13 i#13 zp ZP_BYTE:10 2002.0 -(byte) play_collision::i#2 i#2 zp ZP_BYTE:10 1552.0 -(byte) play_collision::i#3 i#3 zp ZP_BYTE:10 67.33333333333333 +(byte~) play_collision::i#11 i#11 zp ZP_BYTE:9 202.0 +(byte~) play_collision::i#13 i#13 zp ZP_BYTE:9 2002.0 +(byte) play_collision::i#2 i#2 zp ZP_BYTE:9 1552.0 +(byte) play_collision::i#3 i#3 zp ZP_BYTE:9 67.33333333333333 (byte) play_collision::l -(byte) play_collision::l#1 l zp ZP_BYTE:9 101.0 -(byte) play_collision::l#6 l zp ZP_BYTE:9 12.625 +(byte) play_collision::l#1 l zp ZP_BYTE:8 101.0 +(byte) play_collision::l#6 l zp ZP_BYTE:8 12.625 (byte) play_collision::orientation (byte) play_collision::orientation#0 reg byte x 2.0 (byte) play_collision::orientation#1 reg byte x 2.0 @@ -15516,7 +15555,7 @@ interrupt(HARDWARE_CLOBBER)(void()) irq() (byte) play_collision::orientation#3 reg byte x 2.0 (byte) play_collision::orientation#4 reg byte x 10.0 (byte*) play_collision::piece_gfx -(byte*) play_collision::piece_gfx#0 piece_gfx zp ZP_WORD:5 47.76190476190476 +(byte*) play_collision::piece_gfx#0 piece_gfx zp ZP_WORD:4 47.76190476190476 (byte*) play_collision::playfield_line (byte*) play_collision::playfield_line#0 playfield_line zp ZP_WORD:26 78.71428571428571 (byte) play_collision::return @@ -15526,11 +15565,11 @@ interrupt(HARDWARE_CLOBBER)(void()) irq() (byte) play_collision::return#13 reg byte a 4.0 (byte) play_collision::return#14 reg byte a 1.3333333333333333 (byte) play_collision::xpos -(byte) play_collision::xpos#0 xpos zp ZP_BYTE:7 1.3333333333333333 -(byte) play_collision::xpos#1 xpos zp ZP_BYTE:7 1.0 -(byte) play_collision::xpos#2 xpos zp ZP_BYTE:7 1.0 -(byte) play_collision::xpos#3 xpos zp ZP_BYTE:7 1.0 -(byte) play_collision::xpos#5 xpos zp ZP_BYTE:7 4.954545454545454 +(byte) play_collision::xpos#0 xpos zp ZP_BYTE:6 1.3333333333333333 +(byte) play_collision::xpos#1 xpos zp ZP_BYTE:6 1.0 +(byte) play_collision::xpos#2 xpos zp ZP_BYTE:6 1.0 +(byte) play_collision::xpos#3 xpos zp ZP_BYTE:6 1.0 +(byte) play_collision::xpos#5 xpos zp ZP_BYTE:6 4.954545454545454 (byte) play_collision::ypos (byte) play_collision::ypos#0 reg byte y 1.0 (byte) play_collision::ypos#1 reg byte y 1.3333333333333333 @@ -15538,9 +15577,9 @@ interrupt(HARDWARE_CLOBBER)(void()) irq() (byte) play_collision::ypos#3 reg byte y 1.3333333333333333 (byte) play_collision::ypos#4 reg byte y 5.0 (byte) play_collision::ypos2 -(byte) play_collision::ypos2#0 ypos2 zp ZP_BYTE:8 4.0 -(byte) play_collision::ypos2#1 ypos2 zp ZP_BYTE:8 50.5 -(byte) play_collision::ypos2#2 ypos2 zp ZP_BYTE:8 87.06666666666668 +(byte) play_collision::ypos2#0 ypos2 zp ZP_BYTE:7 4.0 +(byte) play_collision::ypos2#1 ypos2 zp ZP_BYTE:7 50.5 +(byte) play_collision::ypos2#2 ypos2 zp ZP_BYTE:7 87.06666666666668 (void()) play_init() (byte~) play_init::$1 reg byte a 22.0 (label) play_init::@1 @@ -15553,8 +15592,8 @@ interrupt(HARDWARE_CLOBBER)(void()) irq() (byte) play_init::j#1 reg byte x 16.5 (byte) play_init::j#2 reg byte x 7.333333333333333 (byte*) play_init::pli -(byte*) play_init::pli#1 pli zp ZP_WORD:5 5.5 -(byte*) play_init::pli#2 pli zp ZP_WORD:5 8.25 +(byte*) play_init::pli#1 pli zp ZP_WORD:4 5.5 +(byte*) play_init::pli#2 pli zp ZP_WORD:4 8.25 (void()) play_lock_current() (label) play_lock_current::@1 (label) play_lock_current::@2 @@ -15568,24 +15607,24 @@ interrupt(HARDWARE_CLOBBER)(void()) irq() (byte) play_lock_current::c#1 reg byte x 1001.0 (byte) play_lock_current::c#2 reg byte x 400.4 (byte) play_lock_current::col -(byte) play_lock_current::col#0 col zp ZP_BYTE:7 202.0 -(byte) play_lock_current::col#1 col zp ZP_BYTE:7 500.5 -(byte) play_lock_current::col#2 col zp ZP_BYTE:7 776.0 +(byte) play_lock_current::col#0 col zp ZP_BYTE:6 202.0 +(byte) play_lock_current::col#1 col zp ZP_BYTE:6 500.5 +(byte) play_lock_current::col#2 col zp ZP_BYTE:6 776.0 (byte) play_lock_current::i -(byte) play_lock_current::i#1 i zp ZP_BYTE:8 233.66666666666669 -(byte) play_lock_current::i#2 i#2 zp ZP_BYTE:4 1552.0 -(byte) play_lock_current::i#3 i#3 zp ZP_BYTE:4 67.33333333333333 -(byte~) play_lock_current::i#7 i#7 zp ZP_BYTE:4 202.0 -(byte~) play_lock_current::i#9 i#9 zp ZP_BYTE:4 2002.0 +(byte) play_lock_current::i#1 i zp ZP_BYTE:7 233.66666666666669 +(byte) play_lock_current::i#2 i#2 zp ZP_BYTE:3 1552.0 +(byte) play_lock_current::i#3 i#3 zp ZP_BYTE:3 67.33333333333333 +(byte~) play_lock_current::i#7 i#7 zp ZP_BYTE:3 202.0 +(byte~) play_lock_current::i#9 i#9 zp ZP_BYTE:3 2002.0 (byte) play_lock_current::l -(byte) play_lock_current::l#1 l zp ZP_BYTE:3 101.0 -(byte) play_lock_current::l#6 l zp ZP_BYTE:3 16.833333333333332 +(byte) play_lock_current::l#1 l zp ZP_BYTE:2 101.0 +(byte) play_lock_current::l#6 l zp ZP_BYTE:2 16.833333333333332 (byte*) play_lock_current::playfield_line -(byte*) play_lock_current::playfield_line#0 playfield_line zp ZP_WORD:5 110.19999999999999 +(byte*) play_lock_current::playfield_line#0 playfield_line zp ZP_WORD:4 110.19999999999999 (byte) play_lock_current::ypos2 -(byte) play_lock_current::ypos2#0 ypos2 zp ZP_BYTE:2 4.0 -(byte) play_lock_current::ypos2#1 ypos2 zp ZP_BYTE:2 50.5 -(byte) play_lock_current::ypos2#2 ypos2 zp ZP_BYTE:2 27.727272727272727 +(byte) play_lock_current::ypos2#0 ypos2 zp ZP_BYTE:11 4.0 +(byte) play_lock_current::ypos2#1 ypos2 zp ZP_BYTE:11 50.5 +(byte) play_lock_current::ypos2#2 ypos2 zp ZP_BYTE:11 27.727272727272727 (byte()) play_move_down((byte) play_move_down::key_event) (byte~) play_move_down::$12 reg byte a 4.0 (byte~) play_move_down::$2 reg byte a 4.0 @@ -15646,9 +15685,9 @@ interrupt(HARDWARE_CLOBBER)(void()) irq() (byte) play_move_rotate::key_event (byte) play_move_rotate::key_event#0 reg byte a 7.5 (byte) play_move_rotate::orientation -(byte) play_move_rotate::orientation#1 orientation zp ZP_BYTE:4 4.0 -(byte) play_move_rotate::orientation#2 orientation zp ZP_BYTE:4 4.0 -(byte) play_move_rotate::orientation#3 orientation zp ZP_BYTE:4 0.8888888888888888 +(byte) play_move_rotate::orientation#1 orientation zp ZP_BYTE:3 4.0 +(byte) play_move_rotate::orientation#2 orientation zp ZP_BYTE:3 4.0 +(byte) play_move_rotate::orientation#3 orientation zp ZP_BYTE:3 0.8888888888888888 (byte) play_move_rotate::return (byte) play_move_rotate::return#1 reg byte a 3.6666666666666665 (byte) play_move_rotate::return#4 reg byte a 22.0 @@ -15666,8 +15705,8 @@ interrupt(HARDWARE_CLOBBER)(void()) irq() (byte) play_remove_lines::c (byte) play_remove_lines::c#0 c zp ZP_BYTE:7 600.5999999999999 (byte) play_remove_lines::full -(byte) play_remove_lines::full#2 full zp ZP_BYTE:4 420.59999999999997 -(byte) play_remove_lines::full#4 full zp ZP_BYTE:4 400.4 +(byte) play_remove_lines::full#2 full zp ZP_BYTE:6 420.59999999999997 +(byte) play_remove_lines::full#4 full zp ZP_BYTE:6 400.4 (byte) play_remove_lines::r (byte) play_remove_lines::r#1 reg byte y 161.76923076923077 (byte) play_remove_lines::r#2 reg byte y 1552.0 @@ -15688,7 +15727,7 @@ interrupt(HARDWARE_CLOBBER)(void()) irq() (byte) play_remove_lines::y#8 y zp ZP_BYTE:2 14.428571428571429 (void()) play_spawn_current() (byte~) play_spawn_current::$1 reg byte a 202.0 -(byte~) play_spawn_current::$3 $3 zp ZP_BYTE:2 0.18181818181818182 +(byte~) play_spawn_current::$3 $3 zp ZP_BYTE:2 0.13333333333333333 (label) play_spawn_current::@1 (label) play_spawn_current::@2 (label) play_spawn_current::@3 @@ -15696,7 +15735,7 @@ interrupt(HARDWARE_CLOBBER)(void()) irq() (label) play_spawn_current::@return (byte) play_spawn_current::piece_idx (byte) play_spawn_current::piece_idx#1 reg byte x 202.0 -(byte) play_spawn_current::piece_idx#2 reg byte x 51.5 +(byte) play_spawn_current::piece_idx#2 reg byte x 35.00000000000001 (byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield (const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 playfield = { fill( PLAYFIELD_LINES#0*PLAYFIELD_COLS#0, 0) } (byte*[PLAYFIELD_LINES#0]) playfield_lines @@ -15720,24 +15759,24 @@ interrupt(HARDWARE_CLOBBER)(void()) irq() (byte) render_current::current_cell (byte) render_current::current_cell#0 reg byte a 1001.0 (byte) render_current::i -(byte) render_current::i#1 i zp ZP_BYTE:10 202.0 -(byte) render_current::i#10 i zp ZP_BYTE:10 429.0 -(byte) render_current::i#3 i zp ZP_BYTE:10 60.599999999999994 -(byte) render_current::i#4 i zp ZP_BYTE:10 1552.0 -(byte) render_current::i#8 i zp ZP_BYTE:10 300.75 +(byte) render_current::i#1 i zp ZP_BYTE:9 202.0 +(byte) render_current::i#10 i zp ZP_BYTE:9 429.0 +(byte) render_current::i#3 i zp ZP_BYTE:9 60.599999999999994 +(byte) render_current::i#4 i zp ZP_BYTE:9 1552.0 +(byte) render_current::i#8 i zp ZP_BYTE:9 300.75 (byte) render_current::l -(byte) render_current::l#1 l zp ZP_BYTE:9 151.5 -(byte) render_current::l#4 l zp ZP_BYTE:9 11.882352941176471 +(byte) render_current::l#1 l zp ZP_BYTE:8 151.5 +(byte) render_current::l#4 l zp ZP_BYTE:8 11.882352941176471 (byte*) render_current::screen_line (byte*) render_current::screen_line#0 screen_line zp ZP_WORD:26 100.18181818181819 (byte) render_current::xpos -(byte) render_current::xpos#0 xpos zp ZP_BYTE:11 202.0 -(byte) render_current::xpos#1 xpos zp ZP_BYTE:11 667.3333333333334 -(byte) render_current::xpos#2 xpos zp ZP_BYTE:11 684.1666666666667 +(byte) render_current::xpos#0 xpos zp ZP_BYTE:10 202.0 +(byte) render_current::xpos#1 xpos zp ZP_BYTE:10 667.3333333333334 +(byte) render_current::xpos#2 xpos zp ZP_BYTE:10 684.1666666666667 (byte) render_current::ypos2 -(byte) render_current::ypos2#0 ypos2 zp ZP_BYTE:8 4.0 -(byte) render_current::ypos2#1 ypos2 zp ZP_BYTE:8 67.33333333333333 -(byte) render_current::ypos2#2 ypos2 zp ZP_BYTE:8 31.6875 +(byte) render_current::ypos2#0 ypos2 zp ZP_BYTE:7 4.0 +(byte) render_current::ypos2#1 ypos2 zp ZP_BYTE:7 67.33333333333333 +(byte) render_current::ypos2#2 ypos2 zp ZP_BYTE:7 31.6875 (void()) render_init() (byte~) render_init::$11 reg byte a 22.0 (byte*~) render_init::$18 $18 zp ZP_WORD:12 202.0 @@ -15758,11 +15797,11 @@ interrupt(HARDWARE_CLOBBER)(void()) irq() (byte) render_init::l#1 l zp ZP_BYTE:2 16.5 (byte) render_init::l#4 l zp ZP_BYTE:2 3.142857142857143 (byte*) render_init::li -(byte*) render_init::li#1 li zp ZP_WORD:5 7.333333333333333 -(byte*) render_init::li#2 li zp ZP_WORD:5 11.0 +(byte*) render_init::li#1 li zp ZP_WORD:4 7.333333333333333 +(byte*) render_init::li#2 li zp ZP_WORD:4 11.0 (byte*) render_init::line -(byte*) render_init::line#1 line zp ZP_WORD:5 7.333333333333333 -(byte*) render_init::line#4 line zp ZP_WORD:5 20.499999999999996 +(byte*) render_init::line#1 line zp ZP_WORD:4 7.333333333333333 +(byte*) render_init::line#4 line zp ZP_WORD:4 20.499999999999996 (label) render_init::toD0181 (word~) render_init::toD0181_$0 (word~) render_init::toD0181_$1 @@ -15799,16 +15838,16 @@ interrupt(HARDWARE_CLOBBER)(void()) irq() (byte) render_playfield::c#1 reg byte x 1501.5 (byte) render_playfield::c#2 reg byte x 500.5 (byte) render_playfield::i -(byte) render_playfield::i#1 i zp ZP_BYTE:7 420.59999999999997 -(byte) render_playfield::i#2 i zp ZP_BYTE:7 1034.6666666666667 -(byte) render_playfield::i#3 i zp ZP_BYTE:7 67.33333333333333 +(byte) render_playfield::i#1 i zp ZP_BYTE:6 420.59999999999997 +(byte) render_playfield::i#2 i zp ZP_BYTE:6 1034.6666666666667 +(byte) render_playfield::i#3 i zp ZP_BYTE:6 67.33333333333333 (byte) render_playfield::l -(byte) render_playfield::l#1 l zp ZP_BYTE:4 151.5 -(byte) render_playfield::l#2 l zp ZP_BYTE:4 33.666666666666664 +(byte) render_playfield::l#1 l zp ZP_BYTE:3 151.5 +(byte) render_playfield::l#2 l zp ZP_BYTE:3 33.666666666666664 (byte*) render_playfield::screen_line -(byte*) render_playfield::screen_line#0 screen_line zp ZP_WORD:5 202.0 -(byte*) render_playfield::screen_line#1 screen_line zp ZP_WORD:5 500.5 -(byte*) render_playfield::screen_line#2 screen_line zp ZP_WORD:5 1552.0 +(byte*) render_playfield::screen_line#0 screen_line zp ZP_WORD:4 202.0 +(byte*) render_playfield::screen_line#1 screen_line zp ZP_WORD:4 500.5 +(byte*) render_playfield::screen_line#2 screen_line zp ZP_WORD:4 1552.0 (void()) render_screen_original((byte*) render_screen_original::screen) (byte/signed word/word/dword/signed dword~) render_screen_original::$3 reg byte a 202.0 (label) render_screen_original::@1 @@ -15820,9 +15859,9 @@ interrupt(HARDWARE_CLOBBER)(void()) irq() (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::orig -(byte*) render_screen_original::orig#1 orig zp ZP_WORD:5 21.299999999999997 -(byte*) render_screen_original::orig#2 orig zp ZP_WORD:5 101.0 -(byte*) render_screen_original::orig#4 orig zp ZP_WORD:5 18.666666666666664 +(byte*) render_screen_original::orig#1 orig zp ZP_WORD:4 21.299999999999997 +(byte*) render_screen_original::orig#2 orig zp ZP_WORD:4 101.0 +(byte*) render_screen_original::orig#4 orig zp ZP_WORD:4 18.666666666666664 (byte*) render_screen_original::screen (byte*) render_screen_original::screen#1 screen zp ZP_WORD:12 101.0 (byte*) render_screen_original::screen#2 screen zp ZP_WORD:12 75.75 @@ -15871,16 +15910,15 @@ interrupt(HARDWARE_CLOBBER)(void()) irq() (const byte) toSpritePtr1_return#0 toSpritePtr1_return = ((byte))((word))(const byte*) PLAYFIELD_SPRITES#0>>(byte/signed byte/word/signed word/dword/signed dword) 6 (byte*) toSpritePtr1_sprite -zp ZP_BYTE:2 [ current_ypos#22 current_ypos#14 current_ypos#30 current_ypos#1 play_lock_current::ypos2#2 play_lock_current::ypos2#0 play_lock_current::ypos2#1 play_remove_lines::y#8 play_remove_lines::y#1 play_init::idx#2 play_init::idx#1 sprites_init::xpos#2 sprites_init::xpos#1 render_init::l#4 render_init::l#1 render_screen_original::y#6 render_screen_original::y#1 play_spawn_current::$3 ] -zp ZP_BYTE:3 [ current_movedown_counter#12 current_movedown_counter#10 current_movedown_counter#1 play_remove_lines::x#2 play_remove_lines::x#1 play_lock_current::l#6 play_lock_current::l#1 ] -reg byte x [ current_ypos#10 current_ypos#78 ] -zp ZP_BYTE:4 [ current_xpos#48 current_xpos#104 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::full#4 play_remove_lines::full#2 play_lock_current::i#2 play_lock_current::i#3 play_lock_current::i#7 play_lock_current::i#9 keyboard_event_pressed::keycode#5 keyboard_event_scan::row#2 keyboard_event_scan::row#1 ] -zp ZP_WORD:5 [ current_piece_gfx#53 current_piece_gfx#95 current_piece_gfx#96 render_playfield::screen_line#2 render_playfield::screen_line#0 render_playfield::screen_line#1 current_piece#12 current_piece#73 current_piece#74 current_piece#75 current_piece#76 play_collision::piece_gfx#0 play_init::pli#2 play_init::pli#1 render_init::li#2 render_init::li#1 render_init::line#4 render_init::line#1 render_screen_original::orig#2 render_screen_original::orig#4 render_screen_original::orig#1 fill::addr#2 fill::addr#1 play_lock_current::playfield_line#0 ] -zp ZP_BYTE:7 [ current_piece_char#63 current_piece_char#83 current_piece_char#84 render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 play_collision::xpos#5 play_collision::xpos#0 play_collision::xpos#1 play_collision::xpos#2 play_collision::xpos#3 play_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 play_remove_lines::c#0 keyboard_event_pressed::row_bits#0 ] -zp ZP_BYTE:8 [ render_current::ypos2#2 render_current::ypos2#0 render_current::ypos2#1 play_collision::ypos2#2 play_collision::ypos2#0 play_collision::ypos2#1 play_lock_current::i#1 keyboard_event_scan::row_scan#0 ] -zp ZP_BYTE:9 [ render_current::l#4 render_current::l#1 play_collision::l#6 play_collision::l#1 ] -zp ZP_BYTE:10 [ render_current::i#4 render_current::i#3 render_current::i#8 render_current::i#10 render_current::i#1 play_collision::i#2 play_collision::i#3 play_collision::i#11 play_collision::i#13 ] -zp ZP_BYTE:11 [ render_current::xpos#2 render_current::xpos#0 render_current::xpos#1 play_collision::col#2 play_collision::col#9 play_collision::col#1 ] +zp ZP_BYTE:2 [ current_movedown_counter#12 current_movedown_counter#10 current_movedown_counter#1 play_remove_lines::y#8 play_remove_lines::y#1 play_lock_current::l#6 play_lock_current::l#1 play_init::idx#2 play_init::idx#1 sprites_init::xpos#2 sprites_init::xpos#1 render_init::l#4 render_init::l#1 render_screen_original::y#6 render_screen_original::y#1 play_spawn_current::$3 ] +reg byte x [ current_ypos#10 current_ypos#79 current_ypos#80 ] +zp ZP_BYTE:3 [ current_xpos#48 current_xpos#105 current_xpos#106 render_playfield::l#2 render_playfield::l#1 play_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#2 play_remove_lines::x#2 play_remove_lines::x#1 play_lock_current::i#2 play_lock_current::i#3 play_lock_current::i#7 play_lock_current::i#9 keyboard_event_pressed::keycode#5 keyboard_event_scan::row#2 keyboard_event_scan::row#1 ] +zp ZP_WORD:4 [ current_piece_gfx#53 current_piece_gfx#95 current_piece_gfx#96 render_playfield::screen_line#2 render_playfield::screen_line#0 render_playfield::screen_line#1 current_piece#12 current_piece#73 current_piece#74 current_piece#75 current_piece#76 play_collision::piece_gfx#0 play_init::pli#2 play_init::pli#1 render_init::li#2 render_init::li#1 render_init::line#4 render_init::line#1 render_screen_original::orig#2 render_screen_original::orig#4 render_screen_original::orig#1 fill::addr#2 fill::addr#1 play_lock_current::playfield_line#0 ] +zp ZP_BYTE:6 [ current_piece_char#63 current_piece_char#83 current_piece_char#84 render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 play_collision::xpos#5 play_collision::xpos#0 play_collision::xpos#1 play_collision::xpos#2 play_collision::xpos#3 play_remove_lines::full#4 play_remove_lines::full#2 play_lock_current::col#2 play_lock_current::col#0 play_lock_current::col#1 keyboard_event_scan::keycode#10 keyboard_event_scan::keycode#11 keyboard_event_scan::keycode#14 keyboard_event_scan::keycode#1 keyboard_event_scan::keycode#15 keyboard_event_pressed::row_bits#0 ] +zp ZP_BYTE:7 [ render_current::ypos2#2 render_current::ypos2#0 render_current::ypos2#1 play_collision::ypos2#2 play_collision::ypos2#0 play_collision::ypos2#1 play_remove_lines::c#0 play_lock_current::i#1 keyboard_event_scan::row_scan#0 ] +zp ZP_BYTE:8 [ render_current::l#4 render_current::l#1 play_collision::l#6 play_collision::l#1 ] +zp ZP_BYTE:9 [ render_current::i#4 render_current::i#3 render_current::i#8 render_current::i#10 render_current::i#1 play_collision::i#2 play_collision::i#3 play_collision::i#11 play_collision::i#13 ] +zp ZP_BYTE:10 [ render_current::xpos#2 render_current::xpos#0 render_current::xpos#1 play_collision::col#2 play_collision::col#9 play_collision::col#1 ] reg byte x [ render_current::c#2 render_current::c#1 ] reg byte x [ render_playfield::c#2 render_playfield::c#1 ] reg byte a [ play_move_rotate::return#1 ] @@ -15890,10 +15928,11 @@ reg byte x [ play_collision::c#2 play_collision::c#1 ] reg byte a [ play_collision::return#14 ] reg byte a [ play_move_leftright::return#1 ] reg byte x [ play_move_down::movedown#6 play_move_down::movedown#3 play_move_down::movedown#7 play_move_down::movedown#2 play_move_down::movedown#10 ] +zp ZP_BYTE:11 [ current_ypos#30 current_ypos#22 current_ypos#14 current_ypos#19 current_ypos#1 play_lock_current::ypos2#2 play_lock_current::ypos2#0 play_lock_current::ypos2#1 ] zp ZP_WORD:12 [ current_piece#20 current_piece#77 current_piece#16 current_piece#10 current_piece#72 render_screen_original::screen#6 render_screen_original::screen#5 render_screen_original::screen#4 render_screen_original::screen#7 render_screen_original::screen#3 render_screen_original::screen#1 render_screen_original::screen#2 render_init::$18 ] zp ZP_BYTE:14 [ current_orientation#29 current_orientation#10 current_orientation#19 current_orientation#4 current_orientation#14 ] zp ZP_WORD:15 [ current_piece_gfx#27 current_piece_gfx#10 current_piece_gfx#15 current_piece_gfx#17 current_piece_gfx#4 current_piece_gfx#14 ] -zp ZP_BYTE:17 [ current_xpos#34 current_xpos#11 current_xpos#20 current_xpos#5 current_xpos#16 current_xpos#3 ] +zp ZP_BYTE:17 [ current_xpos#34 current_xpos#11 current_xpos#20 current_xpos#24 current_xpos#5 current_xpos#16 current_xpos#3 ] zp ZP_BYTE:18 [ current_piece_char#21 current_piece_char#16 current_piece_char#11 current_piece_char#13 ] reg byte x [ play_move_down::return#2 ] reg byte x [ play_spawn_current::piece_idx#2 play_spawn_current::piece_idx#1 ] @@ -15978,7 +16017,7 @@ reg byte a [ irq::$3 ] FINAL ASSEMBLER -Score: 435343 +Score: 435251 //SEG0 Basic Upstart .pc = $801 "Basic" @@ -16064,26 +16103,27 @@ Score: 435343 .label irq_sprite_ypos = $15 .label irq_sprite_ptr = $16 .label irq_cnt = $17 - .label current_movedown_counter = 3 - .label current_ypos = 2 + .label current_movedown_counter = 2 + .label current_ypos = $b .label current_xpos = $11 .label current_orientation = $e .label current_piece_gfx = $f .label current_piece = $c .label current_piece_char = $12 - .label current_piece_12 = 5 - .label current_xpos_48 = 4 - .label current_piece_gfx_53 = 5 - .label current_piece_char_63 = 7 - .label current_xpos_104 = 4 - .label current_piece_gfx_95 = 5 - .label current_piece_gfx_96 = 5 - .label current_piece_char_83 = 7 - .label current_piece_char_84 = 7 - .label current_piece_73 = 5 - .label current_piece_74 = 5 - .label current_piece_75 = 5 - .label current_piece_76 = 5 + .label current_piece_12 = 4 + .label current_xpos_48 = 3 + .label current_piece_gfx_53 = 4 + .label current_piece_char_63 = 6 + .label current_xpos_105 = 3 + .label current_xpos_106 = 3 + .label current_piece_gfx_95 = 4 + .label current_piece_gfx_96 = 4 + .label current_piece_char_83 = 6 + .label current_piece_char_84 = 6 + .label current_piece_73 = 4 + .label current_piece_74 = 4 + .label current_piece_75 = 4 + .label current_piece_76 = 4 //SEG2 @begin bbegin: //SEG3 @14 @@ -16124,7 +16164,7 @@ main: { //SEG25 asm { sei } sei //SEG26 [15] call render_init - //SEG27 [352] phi from main::@21 to render_init [phi:main::@21->render_init] + //SEG27 [356] phi from main::@21 to render_init [phi:main::@21->render_init] jsr render_init //SEG28 [16] phi from main::@21 to main::@22 [phi:main::@21->main::@22] //SEG29 main::@22 @@ -16137,449 +16177,447 @@ main: { //SEG34 [20] phi from main::@23 to main::@24 [phi:main::@23->main::@24] //SEG35 main::@24 //SEG36 [21] call play_init - //SEG37 [317] phi from main::@24 to play_init [phi:main::@24->play_init] + //SEG37 [321] phi from main::@24 to play_init [phi:main::@24->play_init] jsr play_init //SEG38 [22] phi from main::@24 to main::@25 [phi:main::@24->main::@25] //SEG39 main::@25 //SEG40 [23] call play_spawn_current - //SEG41 [197] phi from main::@25 to play_spawn_current [phi:main::@25->play_spawn_current] + //SEG41 [199] phi from main::@25 to play_spawn_current [phi:main::@25->play_spawn_current] jsr play_spawn_current //SEG42 [24] phi from main::@25 to main::@26 [phi:main::@25->main::@26] //SEG43 main::@26 //SEG44 [25] call render_playfield - //SEG45 [85] phi from main::@26 to render_playfield [phi:main::@26->render_playfield] + //SEG45 [87] phi from main::@26 to render_playfield [phi:main::@26->render_playfield] jsr render_playfield //SEG46 main::@27 - //SEG47 [26] (byte*~) current_piece_gfx#95 ← (byte*) current_piece_gfx#17 -- pbuz1=pbuz2 + //SEG47 [26] (byte~) current_ypos#79 ← (byte) current_ypos#19 -- vbuxx=vbuz1 + ldx current_ypos + //SEG48 [27] (byte~) current_xpos#105 ← (byte) current_xpos#24 -- vbuz1=vbuz2 + lda current_xpos + sta current_xpos_105 + //SEG49 [28] (byte*~) current_piece_gfx#95 ← (byte*) current_piece_gfx#17 -- pbuz1=pbuz2 lda current_piece_gfx sta current_piece_gfx_95 lda current_piece_gfx+1 sta current_piece_gfx_95+1 - //SEG48 [27] (byte~) current_piece_char#83 ← (byte) current_piece_char#13 -- vbuz1=vbuz2 + //SEG50 [29] (byte~) current_piece_char#83 ← (byte) current_piece_char#13 -- vbuz1=vbuz2 lda current_piece_char sta current_piece_char_83 - //SEG49 [28] call render_current - //SEG50 [63] phi from main::@27 to render_current [phi:main::@27->render_current] - //SEG51 [63] phi (byte) current_piece_char#63 = (byte~) current_piece_char#83 [phi:main::@27->render_current#0] -- register_copy - //SEG52 [63] phi (byte*) current_piece_gfx#53 = (byte*~) current_piece_gfx#95 [phi:main::@27->render_current#1] -- register_copy - //SEG53 [63] phi (byte) current_xpos#48 = (byte/signed byte/word/signed word/dword/signed dword) 3 [phi:main::@27->render_current#2] -- vbuz1=vbuc1 - lda #3 - sta current_xpos_48 - //SEG54 [63] phi (byte) current_ypos#10 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@27->render_current#3] -- vbuxx=vbuc1 - ldx #0 + //SEG51 [30] call render_current + //SEG52 [65] phi from main::@27 to render_current [phi:main::@27->render_current] + //SEG53 [65] phi (byte) current_piece_char#63 = (byte~) current_piece_char#83 [phi:main::@27->render_current#0] -- register_copy + //SEG54 [65] phi (byte*) current_piece_gfx#53 = (byte*~) current_piece_gfx#95 [phi:main::@27->render_current#1] -- register_copy + //SEG55 [65] phi (byte) current_xpos#48 = (byte~) current_xpos#105 [phi:main::@27->render_current#2] -- register_copy + //SEG56 [65] phi (byte) current_ypos#10 = (byte~) current_ypos#79 [phi:main::@27->render_current#3] -- register_copy jsr render_current - //SEG55 [29] (byte*~) current_piece#72 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) -- pbuz1=pptc1_derefidx_vbuz2 + //SEG57 [31] (byte*~) current_piece#72 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) -- pbuz1=pptc1_derefidx_vbuz2 ldy play_spawn_current._3 lda PIECES,y sta current_piece lda PIECES+1,y sta current_piece+1 - //SEG56 [30] phi from main::@27 to main::@1 [phi:main::@27->main::@1] - //SEG57 [30] phi (byte) current_movedown_counter#12 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@27->main::@1#0] -- vbuz1=vbuc1 + //SEG58 [32] phi from main::@27 to main::@1 [phi:main::@27->main::@1] + //SEG59 [32] phi (byte) current_movedown_counter#12 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@27->main::@1#0] -- vbuz1=vbuc1 lda #0 sta current_movedown_counter - //SEG58 [30] phi (byte) keyboard_events_size#19 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@27->main::@1#1] -- vbuz1=vbuc1 + //SEG60 [32] phi (byte) keyboard_events_size#19 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@27->main::@1#1] -- vbuz1=vbuc1 sta keyboard_events_size - //SEG59 [30] phi (byte) current_piece_char#16 = (byte) current_piece_char#13 [phi:main::@27->main::@1#2] -- register_copy - //SEG60 [30] phi (byte) current_ypos#22 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@27->main::@1#3] -- vbuz1=vbuc1 - sta current_ypos - //SEG61 [30] phi (byte) current_xpos#11 = (byte/signed byte/word/signed word/dword/signed dword) 3 [phi:main::@27->main::@1#4] -- vbuz1=vbuc1 - lda #3 - sta current_xpos - //SEG62 [30] phi (byte*) current_piece_gfx#10 = (byte*) current_piece_gfx#17 [phi:main::@27->main::@1#5] -- register_copy - //SEG63 [30] phi (byte) current_orientation#10 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@27->main::@1#6] -- vbuz1=vbuc1 - lda #0 + //SEG61 [32] phi (byte) current_piece_char#16 = (byte) current_piece_char#13 [phi:main::@27->main::@1#2] -- register_copy + //SEG62 [32] phi (byte) current_ypos#22 = (byte) current_ypos#19 [phi:main::@27->main::@1#3] -- register_copy + //SEG63 [32] phi (byte) current_xpos#11 = (byte) current_xpos#24 [phi:main::@27->main::@1#4] -- register_copy + //SEG64 [32] phi (byte*) current_piece_gfx#10 = (byte*) current_piece_gfx#17 [phi:main::@27->main::@1#5] -- register_copy + //SEG65 [32] phi (byte) current_orientation#10 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@27->main::@1#6] -- vbuz1=vbuc1 sta current_orientation - //SEG64 [30] phi (byte*) current_piece#16 = (byte*~) current_piece#72 [phi:main::@27->main::@1#7] -- register_copy - //SEG65 main::@1 - //SEG66 main::@4 + //SEG66 [32] phi (byte*) current_piece#16 = (byte*~) current_piece#72 [phi:main::@27->main::@1#7] -- register_copy + //SEG67 main::@1 + //SEG68 main::@4 b4: - //SEG67 [31] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@4 -- _deref_pbuc1_neq_vbuc2_then_la1 + //SEG69 [33] 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 - //SEG68 main::@7 + //SEG70 main::@7 b7: - //SEG69 [32] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 254) goto main::@7 -- _deref_pbuc1_neq_vbuc2_then_la1 + //SEG71 [34] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 254) goto main::@7 -- _deref_pbuc1_neq_vbuc2_then_la1 lda RASTER cmp #$fe bne b7 - //SEG70 main::@9 - //SEG71 [33] *((const byte*) BORDERCOL#0) ← ++ *((const byte*) BORDERCOL#0) -- _deref_pbuc1=_inc__deref_pbuc1 + //SEG72 main::@9 + //SEG73 [35] *((const byte*) BORDERCOL#0) ← ++ *((const byte*) BORDERCOL#0) -- _deref_pbuc1=_inc__deref_pbuc1 inc BORDERCOL - //SEG72 [34] call keyboard_event_scan - //SEG73 [261] phi from main::@9 to keyboard_event_scan [phi:main::@9->keyboard_event_scan] + //SEG74 [36] call keyboard_event_scan + //SEG75 [265] phi from main::@9 to keyboard_event_scan [phi:main::@9->keyboard_event_scan] jsr keyboard_event_scan - //SEG74 [35] phi from main::@9 to main::@29 [phi:main::@9->main::@29] - //SEG75 main::@29 - //SEG76 [36] call keyboard_event_get + //SEG76 [37] phi from main::@9 to main::@29 [phi:main::@9->main::@29] + //SEG77 main::@29 + //SEG78 [38] call keyboard_event_get jsr keyboard_event_get - //SEG77 [37] (byte) keyboard_event_get::return#3 ← (byte) keyboard_event_get::return#2 + //SEG79 [39] (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 - //SEG78 main::@30 - //SEG79 [38] (byte) main::key_event#0 ← (byte) keyboard_event_get::return#3 -- vbuz1=vbuaa + //SEG80 main::@30 + //SEG81 [40] (byte) main::key_event#0 ← (byte) keyboard_event_get::return#3 -- vbuz1=vbuaa sta key_event - //SEG80 [39] (byte) play_move_down::key_event#0 ← (byte) main::key_event#0 -- vbuaa=vbuz1 - //SEG81 [40] call play_move_down + //SEG82 [41] (byte) play_move_down::key_event#0 ← (byte) main::key_event#0 -- vbuaa=vbuz1 + //SEG83 [42] call play_move_down jsr play_move_down - //SEG82 [41] (byte) play_move_down::return#3 ← (byte) play_move_down::return#2 -- vbuaa=vbuxx + //SEG84 [43] (byte) play_move_down::return#3 ← (byte) play_move_down::return#2 -- vbuaa=vbuxx txa - //SEG83 main::@31 - //SEG84 [42] (byte~) main::$12 ← (byte) play_move_down::return#3 + //SEG85 main::@31 + //SEG86 [44] (byte~) main::$12 ← (byte) play_move_down::return#3 // (byte~) main::$12 = (byte) play_move_down::return#3 // register copy reg byte a - //SEG85 [43] (byte) main::render#1 ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte~) main::$12 -- vbuz1=vbuc1_plus_vbuaa + //SEG87 [45] (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 - //SEG86 [44] (byte) play_move_leftright::key_event#0 ← (byte) main::key_event#0 -- vbuaa=vbuz1 + //SEG88 [46] (byte) play_move_leftright::key_event#0 ← (byte) main::key_event#0 -- vbuaa=vbuz1 lda key_event - //SEG87 [45] call play_move_leftright + //SEG89 [47] call play_move_leftright jsr play_move_leftright - //SEG88 [46] (byte) play_move_leftright::return#4 ← (byte) play_move_leftright::return#1 + //SEG90 [48] (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 - //SEG89 main::@32 - //SEG90 [47] (byte~) main::$13 ← (byte) play_move_leftright::return#4 + //SEG91 main::@32 + //SEG92 [49] (byte~) main::$13 ← (byte) play_move_leftright::return#4 // (byte~) main::$13 = (byte) play_move_leftright::return#4 // register copy reg byte a - //SEG91 [48] (byte) main::render#2 ← (byte) main::render#1 + (byte~) main::$13 -- vbuz1=vbuz1_plus_vbuaa + //SEG93 [50] (byte) main::render#2 ← (byte) main::render#1 + (byte~) main::$13 -- vbuz1=vbuz1_plus_vbuaa clc adc render sta render - //SEG92 [49] (byte) play_move_rotate::key_event#0 ← (byte) main::key_event#0 -- vbuaa=vbuz1 + //SEG94 [51] (byte) play_move_rotate::key_event#0 ← (byte) main::key_event#0 -- vbuaa=vbuz1 lda key_event - //SEG93 [50] call play_move_rotate + //SEG95 [52] call play_move_rotate jsr play_move_rotate - //SEG94 [51] (byte) play_move_rotate::return#4 ← (byte) play_move_rotate::return#1 + //SEG96 [53] (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 - //SEG95 main::@33 - //SEG96 [52] (byte~) main::$14 ← (byte) play_move_rotate::return#4 + //SEG97 main::@33 + //SEG98 [54] (byte~) main::$14 ← (byte) play_move_rotate::return#4 // (byte~) main::$14 = (byte) play_move_rotate::return#4 // register copy reg byte a - //SEG97 [53] (byte) main::render#3 ← (byte) main::render#2 + (byte~) main::$14 -- vbuaa=vbuz1_plus_vbuaa + //SEG99 [55] (byte) main::render#3 ← (byte) main::render#2 + (byte~) main::$14 -- vbuaa=vbuz1_plus_vbuaa clc adc render - //SEG98 [54] if((byte) main::render#3==(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@10 -- vbuaa_eq_0_then_la1 + //SEG100 [56] if((byte) main::render#3==(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@10 -- vbuaa_eq_0_then_la1 cmp #0 beq b10 - //SEG99 [55] phi from main::@33 to main::@19 [phi:main::@33->main::@19] - //SEG100 main::@19 - //SEG101 [56] call render_playfield - //SEG102 [85] phi from main::@19 to render_playfield [phi:main::@19->render_playfield] + //SEG101 [57] phi from main::@33 to main::@19 [phi:main::@33->main::@19] + //SEG102 main::@19 + //SEG103 [58] call render_playfield + //SEG104 [87] phi from main::@19 to render_playfield [phi:main::@19->render_playfield] jsr render_playfield - //SEG103 main::@34 - //SEG104 [57] (byte~) current_ypos#78 ← (byte) current_ypos#14 -- vbuxx=vbuz1 + //SEG105 main::@34 + //SEG106 [59] (byte~) current_ypos#80 ← (byte) current_ypos#14 -- vbuxx=vbuz1 ldx current_ypos - //SEG105 [58] (byte~) current_xpos#104 ← (byte) current_xpos#20 -- vbuz1=vbuz2 + //SEG107 [60] (byte~) current_xpos#106 ← (byte) current_xpos#20 -- vbuz1=vbuz2 lda current_xpos - sta current_xpos_104 - //SEG106 [59] (byte*~) current_piece_gfx#96 ← (byte*) current_piece_gfx#15 -- pbuz1=pbuz2 + sta current_xpos_106 + //SEG108 [61] (byte*~) current_piece_gfx#96 ← (byte*) current_piece_gfx#15 -- pbuz1=pbuz2 lda current_piece_gfx sta current_piece_gfx_96 lda current_piece_gfx+1 sta current_piece_gfx_96+1 - //SEG107 [60] (byte~) current_piece_char#84 ← (byte) current_piece_char#11 -- vbuz1=vbuz2 + //SEG109 [62] (byte~) current_piece_char#84 ← (byte) current_piece_char#11 -- vbuz1=vbuz2 lda current_piece_char sta current_piece_char_84 - //SEG108 [61] call render_current - //SEG109 [63] phi from main::@34 to render_current [phi:main::@34->render_current] - //SEG110 [63] phi (byte) current_piece_char#63 = (byte~) current_piece_char#84 [phi:main::@34->render_current#0] -- register_copy - //SEG111 [63] phi (byte*) current_piece_gfx#53 = (byte*~) current_piece_gfx#96 [phi:main::@34->render_current#1] -- register_copy - //SEG112 [63] phi (byte) current_xpos#48 = (byte~) current_xpos#104 [phi:main::@34->render_current#2] -- register_copy - //SEG113 [63] phi (byte) current_ypos#10 = (byte~) current_ypos#78 [phi:main::@34->render_current#3] -- register_copy + //SEG110 [63] call render_current + //SEG111 [65] phi from main::@34 to render_current [phi:main::@34->render_current] + //SEG112 [65] phi (byte) current_piece_char#63 = (byte~) current_piece_char#84 [phi:main::@34->render_current#0] -- register_copy + //SEG113 [65] phi (byte*) current_piece_gfx#53 = (byte*~) current_piece_gfx#96 [phi:main::@34->render_current#1] -- register_copy + //SEG114 [65] phi (byte) current_xpos#48 = (byte~) current_xpos#106 [phi:main::@34->render_current#2] -- register_copy + //SEG115 [65] phi (byte) current_ypos#10 = (byte~) current_ypos#80 [phi:main::@34->render_current#3] -- register_copy jsr render_current - //SEG114 main::@10 + //SEG116 main::@10 b10: - //SEG115 [62] *((const byte*) BORDERCOL#0) ← -- *((const byte*) BORDERCOL#0) -- _deref_pbuc1=_dec__deref_pbuc1 + //SEG117 [64] *((const byte*) BORDERCOL#0) ← -- *((const byte*) BORDERCOL#0) -- _deref_pbuc1=_dec__deref_pbuc1 dec BORDERCOL - //SEG116 [30] phi from main::@10 to main::@1 [phi:main::@10->main::@1] - //SEG117 [30] phi (byte) current_movedown_counter#12 = (byte) current_movedown_counter#10 [phi:main::@10->main::@1#0] -- register_copy - //SEG118 [30] phi (byte) keyboard_events_size#19 = (byte) keyboard_events_size#16 [phi:main::@10->main::@1#1] -- register_copy - //SEG119 [30] phi (byte) current_piece_char#16 = (byte) current_piece_char#11 [phi:main::@10->main::@1#2] -- register_copy - //SEG120 [30] phi (byte) current_ypos#22 = (byte) current_ypos#14 [phi:main::@10->main::@1#3] -- register_copy - //SEG121 [30] phi (byte) current_xpos#11 = (byte) current_xpos#20 [phi:main::@10->main::@1#4] -- register_copy - //SEG122 [30] phi (byte*) current_piece_gfx#10 = (byte*) current_piece_gfx#15 [phi:main::@10->main::@1#5] -- register_copy - //SEG123 [30] phi (byte) current_orientation#10 = (byte) current_orientation#19 [phi:main::@10->main::@1#6] -- register_copy - //SEG124 [30] phi (byte*) current_piece#16 = (byte*) current_piece#10 [phi:main::@10->main::@1#7] -- register_copy + //SEG118 [32] phi from main::@10 to main::@1 [phi:main::@10->main::@1] + //SEG119 [32] phi (byte) current_movedown_counter#12 = (byte) current_movedown_counter#10 [phi:main::@10->main::@1#0] -- register_copy + //SEG120 [32] phi (byte) keyboard_events_size#19 = (byte) keyboard_events_size#16 [phi:main::@10->main::@1#1] -- register_copy + //SEG121 [32] phi (byte) current_piece_char#16 = (byte) current_piece_char#11 [phi:main::@10->main::@1#2] -- register_copy + //SEG122 [32] phi (byte) current_ypos#22 = (byte) current_ypos#14 [phi:main::@10->main::@1#3] -- register_copy + //SEG123 [32] phi (byte) current_xpos#11 = (byte) current_xpos#20 [phi:main::@10->main::@1#4] -- register_copy + //SEG124 [32] phi (byte*) current_piece_gfx#10 = (byte*) current_piece_gfx#15 [phi:main::@10->main::@1#5] -- register_copy + //SEG125 [32] phi (byte) current_orientation#10 = (byte) current_orientation#19 [phi:main::@10->main::@1#6] -- register_copy + //SEG126 [32] phi (byte*) current_piece#16 = (byte*) current_piece#10 [phi:main::@10->main::@1#7] -- register_copy jmp b4 } -//SEG125 render_current +//SEG127 render_current render_current: { - .label ypos2 = 8 + .label ypos2 = 7 .label screen_line = $1a - .label xpos = $b - .label i = $a - .label l = 9 - //SEG126 [64] (byte) render_current::ypos2#0 ← (byte) current_ypos#10 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuxx_rol_1 + .label xpos = $a + .label i = 9 + .label l = 8 + //SEG128 [66] (byte) render_current::ypos2#0 ← (byte) current_ypos#10 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuxx_rol_1 txa asl sta ypos2 - //SEG127 [65] phi from render_current to render_current::@1 [phi:render_current->render_current::@1] - //SEG128 [65] 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 + //SEG129 [67] phi from render_current to render_current::@1 [phi:render_current->render_current::@1] + //SEG130 [67] 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 - //SEG129 [65] 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 + //SEG131 [67] 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 - //SEG130 [65] phi (byte) render_current::ypos2#2 = (byte) render_current::ypos2#0 [phi:render_current->render_current::@1#2] -- register_copy - //SEG131 [65] phi from render_current::@3 to render_current::@1 [phi:render_current::@3->render_current::@1] - //SEG132 [65] phi (byte) render_current::l#4 = (byte) render_current::l#1 [phi:render_current::@3->render_current::@1#0] -- register_copy - //SEG133 [65] phi (byte) render_current::i#3 = (byte) render_current::i#8 [phi:render_current::@3->render_current::@1#1] -- register_copy - //SEG134 [65] phi (byte) render_current::ypos2#2 = (byte) render_current::ypos2#1 [phi:render_current::@3->render_current::@1#2] -- register_copy - //SEG135 render_current::@1 + //SEG132 [67] phi (byte) render_current::ypos2#2 = (byte) render_current::ypos2#0 [phi:render_current->render_current::@1#2] -- register_copy + //SEG133 [67] phi from render_current::@3 to render_current::@1 [phi:render_current::@3->render_current::@1] + //SEG134 [67] phi (byte) render_current::l#4 = (byte) render_current::l#1 [phi:render_current::@3->render_current::@1#0] -- register_copy + //SEG135 [67] phi (byte) render_current::i#3 = (byte) render_current::i#8 [phi:render_current::@3->render_current::@1#1] -- register_copy + //SEG136 [67] phi (byte) render_current::ypos2#2 = (byte) render_current::ypos2#1 [phi:render_current::@3->render_current::@1#2] -- register_copy + //SEG137 render_current::@1 b1: - //SEG136 [66] 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 + //SEG138 [68] 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 !: - //SEG137 render_current::@7 + //SEG139 render_current::@7 b7: - //SEG138 [67] (byte) render_current::i#1 ← (byte) render_current::i#3 + (byte/signed byte/word/signed word/dword/signed dword) 4 -- vbuz1=vbuz1_plus_vbuc1 + //SEG140 [69] (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 - //SEG139 [68] phi from render_current::@5 render_current::@7 to render_current::@3 [phi:render_current::@5/render_current::@7->render_current::@3] - //SEG140 [68] phi (byte) render_current::i#8 = (byte) render_current::i#10 [phi:render_current::@5/render_current::@7->render_current::@3#0] -- register_copy - //SEG141 render_current::@3 + //SEG141 [70] phi from render_current::@5 render_current::@7 to render_current::@3 [phi:render_current::@5/render_current::@7->render_current::@3] + //SEG142 [70] phi (byte) render_current::i#8 = (byte) render_current::i#10 [phi:render_current::@5/render_current::@7->render_current::@3#0] -- register_copy + //SEG143 render_current::@3 b3: - //SEG142 [69] (byte) render_current::ypos2#1 ← (byte) render_current::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 -- vbuz1=vbuz1_plus_2 + //SEG144 [71] (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 - //SEG143 [70] (byte) render_current::l#1 ← ++ (byte) render_current::l#4 -- vbuz1=_inc_vbuz1 + //SEG145 [72] (byte) render_current::l#1 ← ++ (byte) render_current::l#4 -- vbuz1=_inc_vbuz1 inc l - //SEG144 [71] if((byte) render_current::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_current::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG146 [73] 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 - //SEG145 render_current::@return - //SEG146 [72] return + //SEG147 render_current::@return + //SEG148 [74] return rts - //SEG147 render_current::@13 + //SEG149 render_current::@13 b13: - //SEG148 [73] 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 + //SEG150 [75] 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 - //SEG149 render_current::@2 + //SEG151 render_current::@2 b2: - //SEG150 [74] (byte*) render_current::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) screen_lines#0 + (byte) render_current::ypos2#2) -- pbuz1=pptc1_derefidx_vbuz2 + //SEG152 [76] (byte*) render_current::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) screen_lines#0 + (byte) render_current::ypos2#2) -- pbuz1=pptc1_derefidx_vbuz2 ldy ypos2 lda screen_lines,y sta screen_line lda screen_lines+1,y sta screen_line+1 - //SEG151 [75] (byte) render_current::xpos#0 ← (byte) current_xpos#48 -- vbuz1=vbuz2 + //SEG153 [77] (byte) render_current::xpos#0 ← (byte) current_xpos#48 -- vbuz1=vbuz2 lda current_xpos_48 sta xpos - //SEG152 [76] phi from render_current::@2 to render_current::@4 [phi:render_current::@2->render_current::@4] - //SEG153 [76] phi (byte) render_current::c#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_current::@2->render_current::@4#0] -- vbuxx=vbuc1 + //SEG154 [78] phi from render_current::@2 to render_current::@4 [phi:render_current::@2->render_current::@4] + //SEG155 [78] phi (byte) render_current::c#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_current::@2->render_current::@4#0] -- vbuxx=vbuc1 ldx #0 - //SEG154 [76] phi (byte) render_current::xpos#2 = (byte) render_current::xpos#0 [phi:render_current::@2->render_current::@4#1] -- register_copy - //SEG155 [76] phi (byte) render_current::i#4 = (byte) render_current::i#3 [phi:render_current::@2->render_current::@4#2] -- register_copy - //SEG156 [76] phi from render_current::@5 to render_current::@4 [phi:render_current::@5->render_current::@4] - //SEG157 [76] phi (byte) render_current::c#2 = (byte) render_current::c#1 [phi:render_current::@5->render_current::@4#0] -- register_copy - //SEG158 [76] phi (byte) render_current::xpos#2 = (byte) render_current::xpos#1 [phi:render_current::@5->render_current::@4#1] -- register_copy - //SEG159 [76] phi (byte) render_current::i#4 = (byte) render_current::i#10 [phi:render_current::@5->render_current::@4#2] -- register_copy - //SEG160 render_current::@4 + //SEG156 [78] phi (byte) render_current::xpos#2 = (byte) render_current::xpos#0 [phi:render_current::@2->render_current::@4#1] -- register_copy + //SEG157 [78] phi (byte) render_current::i#4 = (byte) render_current::i#3 [phi:render_current::@2->render_current::@4#2] -- register_copy + //SEG158 [78] phi from render_current::@5 to render_current::@4 [phi:render_current::@5->render_current::@4] + //SEG159 [78] phi (byte) render_current::c#2 = (byte) render_current::c#1 [phi:render_current::@5->render_current::@4#0] -- register_copy + //SEG160 [78] phi (byte) render_current::xpos#2 = (byte) render_current::xpos#1 [phi:render_current::@5->render_current::@4#1] -- register_copy + //SEG161 [78] phi (byte) render_current::i#4 = (byte) render_current::i#10 [phi:render_current::@5->render_current::@4#2] -- register_copy + //SEG162 render_current::@4 b4: - //SEG161 [77] (byte) render_current::current_cell#0 ← *((byte*) current_piece_gfx#53 + (byte) render_current::i#4) -- vbuaa=pbuz1_derefidx_vbuz2 + //SEG163 [79] (byte) render_current::current_cell#0 ← *((byte*) current_piece_gfx#53 + (byte) render_current::i#4) -- vbuaa=pbuz1_derefidx_vbuz2 ldy i lda (current_piece_gfx_53),y - //SEG162 [78] (byte) render_current::i#10 ← ++ (byte) render_current::i#4 -- vbuz1=_inc_vbuz1 + //SEG164 [80] (byte) render_current::i#10 ← ++ (byte) render_current::i#4 -- vbuz1=_inc_vbuz1 inc i - //SEG163 [79] 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 + //SEG165 [81] if((byte) render_current::current_cell#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto render_current::@5 -- vbuaa_eq_0_then_la1 cmp #0 beq b5 - //SEG164 render_current::@9 - //SEG165 [80] if((byte) render_current::xpos#2>=(const byte) PLAYFIELD_COLS#0) goto render_current::@5 -- vbuz1_ge_vbuc1_then_la1 + //SEG166 render_current::@9 + //SEG167 [82] 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 - //SEG166 render_current::@10 - //SEG167 [81] *((byte*) render_current::screen_line#0 + (byte) render_current::xpos#2) ← (byte) current_piece_char#63 -- pbuz1_derefidx_vbuz2=vbuz3 + //SEG168 render_current::@10 + //SEG169 [83] *((byte*) render_current::screen_line#0 + (byte) render_current::xpos#2) ← (byte) current_piece_char#63 -- pbuz1_derefidx_vbuz2=vbuz3 lda current_piece_char_63 ldy xpos sta (screen_line),y - //SEG168 render_current::@5 + //SEG170 render_current::@5 b5: - //SEG169 [82] (byte) render_current::xpos#1 ← ++ (byte) render_current::xpos#2 -- vbuz1=_inc_vbuz1 + //SEG171 [84] (byte) render_current::xpos#1 ← ++ (byte) render_current::xpos#2 -- vbuz1=_inc_vbuz1 inc xpos - //SEG170 [83] (byte) render_current::c#1 ← ++ (byte) render_current::c#2 -- vbuxx=_inc_vbuxx + //SEG172 [85] (byte) render_current::c#1 ← ++ (byte) render_current::c#2 -- vbuxx=_inc_vbuxx inx - //SEG171 [84] if((byte) render_current::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_current::@4 -- vbuxx_neq_vbuc1_then_la1 + //SEG173 [86] if((byte) render_current::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_current::@4 -- vbuxx_neq_vbuc1_then_la1 cpx #4 bne b4 jmp b3 } -//SEG172 render_playfield +//SEG174 render_playfield render_playfield: { - .label screen_line = 5 - .label i = 7 - .label l = 4 - //SEG173 [86] phi from render_playfield to render_playfield::@1 [phi:render_playfield->render_playfield::@1] - //SEG174 [86] 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 + .label screen_line = 4 + .label i = 6 + .label l = 3 + //SEG175 [88] phi from render_playfield to render_playfield::@1 [phi:render_playfield->render_playfield::@1] + //SEG176 [88] 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 - //SEG175 [86] 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 + //SEG177 [88] 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 - //SEG176 [86] phi from render_playfield::@3 to render_playfield::@1 [phi:render_playfield::@3->render_playfield::@1] - //SEG177 [86] phi (byte) render_playfield::i#3 = (byte) render_playfield::i#1 [phi:render_playfield::@3->render_playfield::@1#0] -- register_copy - //SEG178 [86] phi (byte) render_playfield::l#2 = (byte) render_playfield::l#1 [phi:render_playfield::@3->render_playfield::@1#1] -- register_copy - //SEG179 render_playfield::@1 + //SEG178 [88] phi from render_playfield::@3 to render_playfield::@1 [phi:render_playfield::@3->render_playfield::@1] + //SEG179 [88] phi (byte) render_playfield::i#3 = (byte) render_playfield::i#1 [phi:render_playfield::@3->render_playfield::@1#0] -- register_copy + //SEG180 [88] phi (byte) render_playfield::l#2 = (byte) render_playfield::l#1 [phi:render_playfield::@3->render_playfield::@1#1] -- register_copy + //SEG181 render_playfield::@1 b1: - //SEG180 [87] (byte~) render_playfield::$2 ← (byte) render_playfield::l#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuaa=vbuz1_rol_1 + //SEG182 [89] (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 - //SEG181 [88] (byte*) render_playfield::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) screen_lines#0 + (byte~) render_playfield::$2) -- pbuz1=pptc1_derefidx_vbuaa + //SEG183 [90] (byte*) render_playfield::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) screen_lines#0 + (byte~) render_playfield::$2) -- pbuz1=pptc1_derefidx_vbuaa tay lda screen_lines,y sta screen_line lda screen_lines+1,y sta screen_line+1 - //SEG182 [89] phi from render_playfield::@1 to render_playfield::@2 [phi:render_playfield::@1->render_playfield::@2] - //SEG183 [89] phi (byte) render_playfield::c#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_playfield::@1->render_playfield::@2#0] -- vbuxx=vbuc1 + //SEG184 [91] phi from render_playfield::@1 to render_playfield::@2 [phi:render_playfield::@1->render_playfield::@2] + //SEG185 [91] phi (byte) render_playfield::c#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_playfield::@1->render_playfield::@2#0] -- vbuxx=vbuc1 ldx #0 - //SEG184 [89] phi (byte*) render_playfield::screen_line#2 = (byte*) render_playfield::screen_line#0 [phi:render_playfield::@1->render_playfield::@2#1] -- register_copy - //SEG185 [89] phi (byte) render_playfield::i#2 = (byte) render_playfield::i#3 [phi:render_playfield::@1->render_playfield::@2#2] -- register_copy - //SEG186 [89] phi from render_playfield::@2 to render_playfield::@2 [phi:render_playfield::@2->render_playfield::@2] - //SEG187 [89] phi (byte) render_playfield::c#2 = (byte) render_playfield::c#1 [phi:render_playfield::@2->render_playfield::@2#0] -- register_copy - //SEG188 [89] phi (byte*) render_playfield::screen_line#2 = (byte*) render_playfield::screen_line#1 [phi:render_playfield::@2->render_playfield::@2#1] -- register_copy - //SEG189 [89] phi (byte) render_playfield::i#2 = (byte) render_playfield::i#1 [phi:render_playfield::@2->render_playfield::@2#2] -- register_copy - //SEG190 render_playfield::@2 + //SEG186 [91] phi (byte*) render_playfield::screen_line#2 = (byte*) render_playfield::screen_line#0 [phi:render_playfield::@1->render_playfield::@2#1] -- register_copy + //SEG187 [91] phi (byte) render_playfield::i#2 = (byte) render_playfield::i#3 [phi:render_playfield::@1->render_playfield::@2#2] -- register_copy + //SEG188 [91] phi from render_playfield::@2 to render_playfield::@2 [phi:render_playfield::@2->render_playfield::@2] + //SEG189 [91] phi (byte) render_playfield::c#2 = (byte) render_playfield::c#1 [phi:render_playfield::@2->render_playfield::@2#0] -- register_copy + //SEG190 [91] phi (byte*) render_playfield::screen_line#2 = (byte*) render_playfield::screen_line#1 [phi:render_playfield::@2->render_playfield::@2#1] -- register_copy + //SEG191 [91] phi (byte) render_playfield::i#2 = (byte) render_playfield::i#1 [phi:render_playfield::@2->render_playfield::@2#2] -- register_copy + //SEG192 render_playfield::@2 b2: - //SEG191 [90] *((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 + //SEG193 [92] *((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 - //SEG192 [91] (byte*) render_playfield::screen_line#1 ← ++ (byte*) render_playfield::screen_line#2 -- pbuz1=_inc_pbuz1 + //SEG194 [93] (byte*) render_playfield::screen_line#1 ← ++ (byte*) render_playfield::screen_line#2 -- pbuz1=_inc_pbuz1 inc screen_line bne !+ inc screen_line+1 !: - //SEG193 [92] (byte) render_playfield::i#1 ← ++ (byte) render_playfield::i#2 -- vbuz1=_inc_vbuz1 + //SEG195 [94] (byte) render_playfield::i#1 ← ++ (byte) render_playfield::i#2 -- vbuz1=_inc_vbuz1 inc i - //SEG194 [93] (byte) render_playfield::c#1 ← ++ (byte) render_playfield::c#2 -- vbuxx=_inc_vbuxx + //SEG196 [95] (byte) render_playfield::c#1 ← ++ (byte) render_playfield::c#2 -- vbuxx=_inc_vbuxx inx - //SEG195 [94] if((byte) render_playfield::c#1!=(const byte) PLAYFIELD_COLS#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_playfield::@2 -- vbuxx_neq_vbuc1_then_la1 + //SEG197 [96] if((byte) render_playfield::c#1!=(const byte) PLAYFIELD_COLS#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_playfield::@2 -- vbuxx_neq_vbuc1_then_la1 cpx #PLAYFIELD_COLS-1+1 bne b2 - //SEG196 render_playfield::@3 - //SEG197 [95] (byte) render_playfield::l#1 ← ++ (byte) render_playfield::l#2 -- vbuz1=_inc_vbuz1 + //SEG198 render_playfield::@3 + //SEG199 [97] (byte) render_playfield::l#1 ← ++ (byte) render_playfield::l#2 -- vbuz1=_inc_vbuz1 inc l - //SEG198 [96] 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 + //SEG200 [98] 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 - //SEG199 render_playfield::@return - //SEG200 [97] return + //SEG201 render_playfield::@return + //SEG202 [99] return rts } -//SEG201 play_move_rotate +//SEG203 play_move_rotate play_move_rotate: { - .label orientation = 4 - //SEG202 [98] if((byte) play_move_rotate::key_event#0==(const byte) KEY_Z#0) goto play_move_rotate::@1 -- vbuaa_eq_vbuc1_then_la1 + .label orientation = 3 + //SEG204 [100] 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 - //SEG203 play_move_rotate::@6 - //SEG204 [99] if((byte) play_move_rotate::key_event#0==(const byte) KEY_X#0) goto play_move_rotate::@2 -- vbuaa_eq_vbuc1_then_la1 + //SEG205 play_move_rotate::@6 + //SEG206 [101] 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 - //SEG205 [100] 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] + //SEG207 [102] phi from play_move_rotate::@14 play_move_rotate::@6 to play_move_rotate::@return [phi:play_move_rotate::@14/play_move_rotate::@6->play_move_rotate::@return] b3: - //SEG206 [100] phi (byte*) current_piece_gfx#15 = (byte*) current_piece_gfx#14 [phi:play_move_rotate::@14/play_move_rotate::@6->play_move_rotate::@return#0] -- register_copy - //SEG207 [100] 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 - //SEG208 [100] 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 + //SEG208 [102] phi (byte*) current_piece_gfx#15 = (byte*) current_piece_gfx#14 [phi:play_move_rotate::@14/play_move_rotate::@6->play_move_rotate::@return#0] -- register_copy + //SEG209 [102] phi (byte) current_orientation#19 = (byte) current_orientation#14 [phi:play_move_rotate::@14/play_move_rotate::@6->play_move_rotate::@return#1] -- register_copy + //SEG210 [102] phi (byte) play_move_rotate::return#1 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_rotate::@14/play_move_rotate::@6->play_move_rotate::@return#2] -- vbuaa=vbuc1 lda #0 - //SEG209 play_move_rotate::@return + //SEG211 play_move_rotate::@return breturn: - //SEG210 [101] return + //SEG212 [103] return rts - //SEG211 play_move_rotate::@2 + //SEG213 play_move_rotate::@2 b2: - //SEG212 [102] (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 + //SEG214 [104] (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 ← (byte) current_orientation#14 + (byte/signed byte/word/signed word/dword/signed dword) 16 -- vbuaa=vbuz1_plus_vbuc1 lda #$10 clc adc current_orientation - //SEG213 [103] (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 + //SEG215 [105] (byte) play_move_rotate::orientation#2 ← (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 & (byte/signed byte/word/signed word/dword/signed dword) 63 -- vbuz1=vbuaa_band_vbuc1 and #$3f sta orientation - //SEG214 [104] 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] - //SEG215 [104] 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 - //SEG216 play_move_rotate::@4 + //SEG216 [106] 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] + //SEG217 [106] phi (byte) play_move_rotate::orientation#3 = (byte) play_move_rotate::orientation#1 [phi:play_move_rotate::@1/play_move_rotate::@2->play_move_rotate::@4#0] -- register_copy + //SEG218 play_move_rotate::@4 b4: - //SEG217 [105] (byte) play_collision::xpos#3 ← (byte) current_xpos#20 -- vbuz1=vbuz2 + //SEG219 [107] (byte) play_collision::xpos#3 ← (byte) current_xpos#20 -- vbuz1=vbuz2 lda current_xpos sta play_collision.xpos - //SEG218 [106] (byte) play_collision::ypos#3 ← (byte) current_ypos#14 -- vbuyy=vbuz1 + //SEG220 [108] (byte) play_collision::ypos#3 ← (byte) current_ypos#14 -- vbuyy=vbuz1 ldy current_ypos - //SEG219 [107] (byte) play_collision::orientation#3 ← (byte) play_move_rotate::orientation#3 -- vbuxx=vbuz1 + //SEG221 [109] (byte) play_collision::orientation#3 ← (byte) play_move_rotate::orientation#3 -- vbuxx=vbuz1 ldx orientation - //SEG220 [108] (byte*~) current_piece#76 ← (byte*) current_piece#10 -- pbuz1=pbuz2 + //SEG222 [110] (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 - //SEG221 [109] call play_collision - //SEG222 [117] phi from play_move_rotate::@4 to play_collision [phi:play_move_rotate::@4->play_collision] - //SEG223 [117] phi (byte) play_collision::xpos#5 = (byte) play_collision::xpos#3 [phi:play_move_rotate::@4->play_collision#0] -- register_copy - //SEG224 [117] phi (byte) play_collision::ypos#4 = (byte) play_collision::ypos#3 [phi:play_move_rotate::@4->play_collision#1] -- register_copy - //SEG225 [117] phi (byte) play_collision::orientation#4 = (byte) play_collision::orientation#3 [phi:play_move_rotate::@4->play_collision#2] -- register_copy - //SEG226 [117] phi (byte*) current_piece#12 = (byte*~) current_piece#76 [phi:play_move_rotate::@4->play_collision#3] -- register_copy + //SEG223 [111] call play_collision + //SEG224 [119] phi from play_move_rotate::@4 to play_collision [phi:play_move_rotate::@4->play_collision] + //SEG225 [119] phi (byte) play_collision::xpos#5 = (byte) play_collision::xpos#3 [phi:play_move_rotate::@4->play_collision#0] -- register_copy + //SEG226 [119] phi (byte) play_collision::ypos#4 = (byte) play_collision::ypos#3 [phi:play_move_rotate::@4->play_collision#1] -- register_copy + //SEG227 [119] phi (byte) play_collision::orientation#4 = (byte) play_collision::orientation#3 [phi:play_move_rotate::@4->play_collision#2] -- register_copy + //SEG228 [119] phi (byte*) current_piece#12 = (byte*~) current_piece#76 [phi:play_move_rotate::@4->play_collision#3] -- register_copy jsr play_collision - //SEG227 [110] (byte) play_collision::return#13 ← (byte) play_collision::return#14 + //SEG229 [112] (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 - //SEG228 play_move_rotate::@14 - //SEG229 [111] (byte~) play_move_rotate::$6 ← (byte) play_collision::return#13 + //SEG230 play_move_rotate::@14 + //SEG231 [113] (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 - //SEG230 [112] if((byte~) play_move_rotate::$6!=(const byte) COLLISION_NONE#0) goto play_move_rotate::@return -- vbuaa_neq_vbuc1_then_la1 + //SEG232 [114] 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 - //SEG231 play_move_rotate::@11 - //SEG232 [113] (byte) current_orientation#4 ← (byte) play_move_rotate::orientation#3 -- vbuz1=vbuz2 + //SEG233 play_move_rotate::@11 + //SEG234 [115] (byte) current_orientation#4 ← (byte) play_move_rotate::orientation#3 -- vbuz1=vbuz2 lda orientation sta current_orientation - //SEG233 [114] (byte*) current_piece_gfx#4 ← (byte*) current_piece#10 + (byte) current_orientation#4 -- pbuz1=pbuz2_plus_vbuz3 + //SEG235 [116] (byte*) current_piece_gfx#4 ← (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 - //SEG234 [100] phi from play_move_rotate::@11 to play_move_rotate::@return [phi:play_move_rotate::@11->play_move_rotate::@return] - //SEG235 [100] phi (byte*) current_piece_gfx#15 = (byte*) current_piece_gfx#4 [phi:play_move_rotate::@11->play_move_rotate::@return#0] -- register_copy - //SEG236 [100] phi (byte) current_orientation#19 = (byte) current_orientation#4 [phi:play_move_rotate::@11->play_move_rotate::@return#1] -- register_copy - //SEG237 [100] 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 + //SEG236 [102] phi from play_move_rotate::@11 to play_move_rotate::@return [phi:play_move_rotate::@11->play_move_rotate::@return] + //SEG237 [102] phi (byte*) current_piece_gfx#15 = (byte*) current_piece_gfx#4 [phi:play_move_rotate::@11->play_move_rotate::@return#0] -- register_copy + //SEG238 [102] phi (byte) current_orientation#19 = (byte) current_orientation#4 [phi:play_move_rotate::@11->play_move_rotate::@return#1] -- register_copy + //SEG239 [102] phi (byte) play_move_rotate::return#1 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_move_rotate::@11->play_move_rotate::@return#2] -- vbuaa=vbuc1 lda #1 jmp breturn - //SEG238 play_move_rotate::@1 + //SEG240 play_move_rotate::@1 b1: - //SEG239 [115] (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 + //SEG241 [117] (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 ← (byte) current_orientation#14 - (byte/signed byte/word/signed word/dword/signed dword) 16 -- vbuaa=vbuz1_minus_vbuc1 lda current_orientation sec sbc #$10 - //SEG240 [116] (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 + //SEG242 [118] (byte) play_move_rotate::orientation#1 ← (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 & (byte/signed byte/word/signed word/dword/signed dword) 63 -- vbuz1=vbuaa_band_vbuc1 and #$3f sta orientation jmp b4 } -//SEG241 play_collision +//SEG243 play_collision play_collision: { - .label xpos = 7 - .label piece_gfx = 5 - .label ypos2 = 8 + .label xpos = 6 + .label piece_gfx = 4 + .label ypos2 = 7 .label playfield_line = $1a .label i = $1c - .label col = $b - .label l = 9 - .label i_2 = $a - .label i_3 = $a - .label i_11 = $a - .label i_13 = $a - //SEG242 [118] (byte*) play_collision::piece_gfx#0 ← (byte*) current_piece#12 + (byte) play_collision::orientation#4 -- pbuz1=pbuz1_plus_vbuxx + .label col = $a + .label l = 8 + .label i_2 = 9 + .label i_3 = 9 + .label i_11 = 9 + .label i_13 = 9 + //SEG244 [120] (byte*) play_collision::piece_gfx#0 ← (byte*) current_piece#12 + (byte) play_collision::orientation#4 -- pbuz1=pbuz1_plus_vbuxx txa clc adc piece_gfx @@ -16587,953 +16625,956 @@ play_collision: { lda #0 adc piece_gfx+1 sta piece_gfx+1 - //SEG243 [119] (byte) play_collision::ypos2#0 ← (byte) play_collision::ypos#4 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuyy_rol_1 + //SEG245 [121] (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 - //SEG244 [120] phi from play_collision to play_collision::@1 [phi:play_collision->play_collision::@1] - //SEG245 [120] 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 + //SEG246 [122] phi from play_collision to play_collision::@1 [phi:play_collision->play_collision::@1] + //SEG247 [122] 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 - //SEG246 [120] 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 + //SEG248 [122] 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 - //SEG247 [120] phi (byte) play_collision::ypos2#2 = (byte) play_collision::ypos2#0 [phi:play_collision->play_collision::@1#2] -- register_copy - //SEG248 play_collision::@1 + //SEG249 [122] phi (byte) play_collision::ypos2#2 = (byte) play_collision::ypos2#0 [phi:play_collision->play_collision::@1#2] -- register_copy + //SEG250 play_collision::@1 b1: - //SEG249 [121] (byte*) play_collision::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) play_collision::ypos2#2) -- pbuz1=pptc1_derefidx_vbuz2 + //SEG251 [123] (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 - //SEG250 [122] (byte~) play_collision::col#9 ← (byte) play_collision::xpos#5 -- vbuz1=vbuz2 + //SEG252 [124] (byte~) play_collision::col#9 ← (byte) play_collision::xpos#5 -- vbuz1=vbuz2 lda xpos sta col - //SEG251 [123] phi from play_collision::@1 to play_collision::@2 [phi:play_collision::@1->play_collision::@2] - //SEG252 [123] 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 + //SEG253 [125] phi from play_collision::@1 to play_collision::@2 [phi:play_collision::@1->play_collision::@2] + //SEG254 [125] 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 - //SEG253 [123] phi (byte) play_collision::col#2 = (byte~) play_collision::col#9 [phi:play_collision::@1->play_collision::@2#1] -- register_copy - //SEG254 [123] phi (byte) play_collision::i#2 = (byte) play_collision::i#3 [phi:play_collision::@1->play_collision::@2#2] -- register_copy - //SEG255 play_collision::@2 + //SEG255 [125] phi (byte) play_collision::col#2 = (byte~) play_collision::col#9 [phi:play_collision::@1->play_collision::@2#1] -- register_copy + //SEG256 [125] phi (byte) play_collision::i#2 = (byte) play_collision::i#3 [phi:play_collision::@1->play_collision::@2#2] -- register_copy + //SEG257 play_collision::@2 b2: - //SEG256 [124] (byte) play_collision::i#1 ← ++ (byte) play_collision::i#2 -- vbuz1=_inc_vbuz2 + //SEG258 [126] (byte) play_collision::i#1 ← ++ (byte) play_collision::i#2 -- vbuz1=_inc_vbuz2 ldy i_2 iny sty i - //SEG257 [125] 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 + //SEG259 [127] if(*((byte*) play_collision::piece_gfx#0 + (byte) play_collision::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_collision::@3 -- pbuz1_derefidx_vbuz2_eq_0_then_la1 ldy i_2 lda (piece_gfx),y cmp #0 beq b3 - //SEG258 play_collision::@8 - //SEG259 [126] 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 + //SEG260 play_collision::@8 + //SEG261 [128] 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 - //SEG260 [127] phi from play_collision::@8 to play_collision::@return [phi:play_collision::@8->play_collision::@return] - //SEG261 [127] phi (byte) play_collision::return#14 = (const byte) COLLISION_BOTTOM#0 [phi:play_collision::@8->play_collision::@return#0] -- vbuaa=vbuc1 + //SEG262 [129] phi from play_collision::@8 to play_collision::@return [phi:play_collision::@8->play_collision::@return] + //SEG263 [129] phi (byte) play_collision::return#14 = (const byte) COLLISION_BOTTOM#0 [phi:play_collision::@8->play_collision::@return#0] -- vbuaa=vbuc1 lda #COLLISION_BOTTOM - //SEG262 play_collision::@return + //SEG264 play_collision::@return breturn: - //SEG263 [128] return + //SEG265 [130] return rts - //SEG264 play_collision::@4 + //SEG266 play_collision::@4 b4: - //SEG265 [129] (byte~) play_collision::$7 ← (byte) play_collision::col#2 & (byte/word/signed word/dword/signed dword) 128 -- vbuaa=vbuz1_band_vbuc1 + //SEG267 [131] (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 - //SEG266 [130] if((byte~) play_collision::$7==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_collision::@5 -- vbuaa_eq_0_then_la1 + //SEG268 [132] 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 - //SEG267 [127] phi from play_collision::@4 to play_collision::@return [phi:play_collision::@4->play_collision::@return] - //SEG268 [127] phi (byte) play_collision::return#14 = (const byte) COLLISION_LEFT#0 [phi:play_collision::@4->play_collision::@return#0] -- vbuaa=vbuc1 + //SEG269 [129] phi from play_collision::@4 to play_collision::@return [phi:play_collision::@4->play_collision::@return] + //SEG270 [129] 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 - //SEG269 play_collision::@5 + //SEG271 play_collision::@5 b5: - //SEG270 [131] if((byte) play_collision::col#2<(const byte) PLAYFIELD_COLS#0) goto play_collision::@6 -- vbuz1_lt_vbuc1_then_la1 + //SEG272 [133] 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 - //SEG271 [127] phi from play_collision::@5 to play_collision::@return [phi:play_collision::@5->play_collision::@return] - //SEG272 [127] phi (byte) play_collision::return#14 = (const byte) COLLISION_RIGHT#0 [phi:play_collision::@5->play_collision::@return#0] -- vbuaa=vbuc1 + //SEG273 [129] phi from play_collision::@5 to play_collision::@return [phi:play_collision::@5->play_collision::@return] + //SEG274 [129] 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 - //SEG273 play_collision::@6 + //SEG275 play_collision::@6 b6: - //SEG274 [132] 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 + //SEG276 [134] if(*((byte*) play_collision::playfield_line#0 + (byte) play_collision::col#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_collision::@3 -- pbuz1_derefidx_vbuz2_eq_0_then_la1 ldy col lda (playfield_line),y cmp #0 beq b3 - //SEG275 [127] phi from play_collision::@6 to play_collision::@return [phi:play_collision::@6->play_collision::@return] - //SEG276 [127] phi (byte) play_collision::return#14 = (const byte) COLLISION_PLAYFIELD#0 [phi:play_collision::@6->play_collision::@return#0] -- vbuaa=vbuc1 + //SEG277 [129] phi from play_collision::@6 to play_collision::@return [phi:play_collision::@6->play_collision::@return] + //SEG278 [129] 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 - //SEG277 play_collision::@3 + //SEG279 play_collision::@3 b3: - //SEG278 [133] (byte) play_collision::col#1 ← ++ (byte) play_collision::col#2 -- vbuz1=_inc_vbuz1 + //SEG280 [135] (byte) play_collision::col#1 ← ++ (byte) play_collision::col#2 -- vbuz1=_inc_vbuz1 inc col - //SEG279 [134] (byte) play_collision::c#1 ← ++ (byte) play_collision::c#2 -- vbuxx=_inc_vbuxx + //SEG281 [136] (byte) play_collision::c#1 ← ++ (byte) play_collision::c#2 -- vbuxx=_inc_vbuxx inx - //SEG280 [135] 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 + //SEG282 [137] 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 - //SEG281 play_collision::@17 - //SEG282 [136] (byte) play_collision::ypos2#1 ← (byte) play_collision::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 -- vbuz1=vbuz1_plus_2 + //SEG283 play_collision::@17 + //SEG284 [138] (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 - //SEG283 [137] (byte) play_collision::l#1 ← ++ (byte) play_collision::l#6 -- vbuz1=_inc_vbuz1 + //SEG285 [139] (byte) play_collision::l#1 ← ++ (byte) play_collision::l#6 -- vbuz1=_inc_vbuz1 inc l - //SEG284 [138] 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 + //SEG286 [140] 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 - //SEG285 [127] phi from play_collision::@17 to play_collision::@return [phi:play_collision::@17->play_collision::@return] - //SEG286 [127] phi (byte) play_collision::return#14 = (const byte) COLLISION_NONE#0 [phi:play_collision::@17->play_collision::@return#0] -- vbuaa=vbuc1 + //SEG287 [129] phi from play_collision::@17 to play_collision::@return [phi:play_collision::@17->play_collision::@return] + //SEG288 [129] 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 - //SEG287 play_collision::@20 + //SEG289 play_collision::@20 b20: - //SEG288 [139] (byte~) play_collision::i#11 ← (byte) play_collision::i#1 -- vbuz1=vbuz2 + //SEG290 [141] (byte~) play_collision::i#11 ← (byte) play_collision::i#1 -- vbuz1=vbuz2 lda i sta i_11 - //SEG289 [120] phi from play_collision::@20 to play_collision::@1 [phi:play_collision::@20->play_collision::@1] - //SEG290 [120] phi (byte) play_collision::l#6 = (byte) play_collision::l#1 [phi:play_collision::@20->play_collision::@1#0] -- register_copy - //SEG291 [120] phi (byte) play_collision::i#3 = (byte~) play_collision::i#11 [phi:play_collision::@20->play_collision::@1#1] -- register_copy - //SEG292 [120] phi (byte) play_collision::ypos2#2 = (byte) play_collision::ypos2#1 [phi:play_collision::@20->play_collision::@1#2] -- register_copy + //SEG291 [122] phi from play_collision::@20 to play_collision::@1 [phi:play_collision::@20->play_collision::@1] + //SEG292 [122] phi (byte) play_collision::l#6 = (byte) play_collision::l#1 [phi:play_collision::@20->play_collision::@1#0] -- register_copy + //SEG293 [122] phi (byte) play_collision::i#3 = (byte~) play_collision::i#11 [phi:play_collision::@20->play_collision::@1#1] -- register_copy + //SEG294 [122] phi (byte) play_collision::ypos2#2 = (byte) play_collision::ypos2#1 [phi:play_collision::@20->play_collision::@1#2] -- register_copy jmp b1 - //SEG293 play_collision::@21 + //SEG295 play_collision::@21 b21: - //SEG294 [140] (byte~) play_collision::i#13 ← (byte) play_collision::i#1 -- vbuz1=vbuz2 + //SEG296 [142] (byte~) play_collision::i#13 ← (byte) play_collision::i#1 -- vbuz1=vbuz2 lda i sta i_13 - //SEG295 [123] phi from play_collision::@21 to play_collision::@2 [phi:play_collision::@21->play_collision::@2] - //SEG296 [123] phi (byte) play_collision::c#2 = (byte) play_collision::c#1 [phi:play_collision::@21->play_collision::@2#0] -- register_copy - //SEG297 [123] phi (byte) play_collision::col#2 = (byte) play_collision::col#1 [phi:play_collision::@21->play_collision::@2#1] -- register_copy - //SEG298 [123] phi (byte) play_collision::i#2 = (byte~) play_collision::i#13 [phi:play_collision::@21->play_collision::@2#2] -- register_copy + //SEG297 [125] phi from play_collision::@21 to play_collision::@2 [phi:play_collision::@21->play_collision::@2] + //SEG298 [125] phi (byte) play_collision::c#2 = (byte) play_collision::c#1 [phi:play_collision::@21->play_collision::@2#0] -- register_copy + //SEG299 [125] phi (byte) play_collision::col#2 = (byte) play_collision::col#1 [phi:play_collision::@21->play_collision::@2#1] -- register_copy + //SEG300 [125] phi (byte) play_collision::i#2 = (byte~) play_collision::i#13 [phi:play_collision::@21->play_collision::@2#2] -- register_copy jmp b2 } -//SEG299 play_move_leftright +//SEG301 play_move_leftright play_move_leftright: { - //SEG300 [141] if((byte) play_move_leftright::key_event#0==(const byte) KEY_COMMA#0) goto play_move_leftright::@1 -- vbuaa_eq_vbuc1_then_la1 + //SEG302 [143] 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 - //SEG301 play_move_leftright::@6 - //SEG302 [142] if((byte) play_move_leftright::key_event#0!=(const byte) KEY_DOT#0) goto play_move_leftright::@return -- vbuaa_neq_vbuc1_then_la1 + //SEG303 play_move_leftright::@6 + //SEG304 [144] 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 - //SEG303 play_move_leftright::@7 - //SEG304 [143] (byte) play_collision::xpos#2 ← (byte) current_xpos#16 + (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_plus_1 + //SEG305 play_move_leftright::@7 + //SEG306 [145] (byte) play_collision::xpos#2 ← (byte) current_xpos#16 + (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_plus_1 ldy current_xpos iny sty play_collision.xpos - //SEG305 [144] (byte) play_collision::ypos#2 ← (byte) current_ypos#14 -- vbuyy=vbuz1 + //SEG307 [146] (byte) play_collision::ypos#2 ← (byte) current_ypos#14 -- vbuyy=vbuz1 ldy current_ypos - //SEG306 [145] (byte) play_collision::orientation#2 ← (byte) current_orientation#14 -- vbuxx=vbuz1 + //SEG308 [147] (byte) play_collision::orientation#2 ← (byte) current_orientation#14 -- vbuxx=vbuz1 ldx current_orientation - //SEG307 [146] (byte*~) current_piece#75 ← (byte*) current_piece#10 -- pbuz1=pbuz2 + //SEG309 [148] (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 - //SEG308 [147] call play_collision - //SEG309 [117] phi from play_move_leftright::@7 to play_collision [phi:play_move_leftright::@7->play_collision] - //SEG310 [117] phi (byte) play_collision::xpos#5 = (byte) play_collision::xpos#2 [phi:play_move_leftright::@7->play_collision#0] -- register_copy - //SEG311 [117] phi (byte) play_collision::ypos#4 = (byte) play_collision::ypos#2 [phi:play_move_leftright::@7->play_collision#1] -- register_copy - //SEG312 [117] phi (byte) play_collision::orientation#4 = (byte) play_collision::orientation#2 [phi:play_move_leftright::@7->play_collision#2] -- register_copy - //SEG313 [117] phi (byte*) current_piece#12 = (byte*~) current_piece#75 [phi:play_move_leftright::@7->play_collision#3] -- register_copy + //SEG310 [149] call play_collision + //SEG311 [119] phi from play_move_leftright::@7 to play_collision [phi:play_move_leftright::@7->play_collision] + //SEG312 [119] phi (byte) play_collision::xpos#5 = (byte) play_collision::xpos#2 [phi:play_move_leftright::@7->play_collision#0] -- register_copy + //SEG313 [119] phi (byte) play_collision::ypos#4 = (byte) play_collision::ypos#2 [phi:play_move_leftright::@7->play_collision#1] -- register_copy + //SEG314 [119] phi (byte) play_collision::orientation#4 = (byte) play_collision::orientation#2 [phi:play_move_leftright::@7->play_collision#2] -- register_copy + //SEG315 [119] phi (byte*) current_piece#12 = (byte*~) current_piece#75 [phi:play_move_leftright::@7->play_collision#3] -- register_copy jsr play_collision - //SEG314 [148] (byte) play_collision::return#12 ← (byte) play_collision::return#14 + //SEG316 [150] (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 - //SEG315 play_move_leftright::@15 - //SEG316 [149] (byte~) play_move_leftright::$4 ← (byte) play_collision::return#12 + //SEG317 play_move_leftright::@15 + //SEG318 [151] (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 - //SEG317 [150] if((byte~) play_move_leftright::$4!=(const byte) COLLISION_NONE#0) goto play_move_leftright::@return -- vbuaa_neq_vbuc1_then_la1 + //SEG319 [152] 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 - //SEG318 play_move_leftright::@8 - //SEG319 [151] (byte) current_xpos#3 ← ++ (byte) current_xpos#16 -- vbuz1=_inc_vbuz1 + //SEG320 play_move_leftright::@8 + //SEG321 [153] (byte) current_xpos#3 ← ++ (byte) current_xpos#16 -- vbuz1=_inc_vbuz1 inc current_xpos - //SEG320 [152] 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] + //SEG322 [154] phi from play_move_leftright::@11 play_move_leftright::@8 to play_move_leftright::@return [phi:play_move_leftright::@11/play_move_leftright::@8->play_move_leftright::@return] b2: - //SEG321 [152] phi (byte) current_xpos#20 = (byte) current_xpos#5 [phi:play_move_leftright::@11/play_move_leftright::@8->play_move_leftright::@return#0] -- register_copy - //SEG322 [152] 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 + //SEG323 [154] phi (byte) current_xpos#20 = (byte) current_xpos#5 [phi:play_move_leftright::@11/play_move_leftright::@8->play_move_leftright::@return#0] -- register_copy + //SEG324 [154] phi (byte) play_move_leftright::return#1 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_move_leftright::@11/play_move_leftright::@8->play_move_leftright::@return#1] -- vbuaa=vbuc1 lda #1 jmp breturn - //SEG323 [152] 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] + //SEG325 [154] phi from play_move_leftright::@14 play_move_leftright::@15 play_move_leftright::@6 to play_move_leftright::@return [phi:play_move_leftright::@14/play_move_leftright::@15/play_move_leftright::@6->play_move_leftright::@return] b3: - //SEG324 [152] phi (byte) current_xpos#20 = (byte) current_xpos#16 [phi:play_move_leftright::@14/play_move_leftright::@15/play_move_leftright::@6->play_move_leftright::@return#0] -- register_copy - //SEG325 [152] 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 + //SEG326 [154] phi (byte) current_xpos#20 = (byte) current_xpos#16 [phi:play_move_leftright::@14/play_move_leftright::@15/play_move_leftright::@6->play_move_leftright::@return#0] -- register_copy + //SEG327 [154] phi (byte) play_move_leftright::return#1 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_leftright::@14/play_move_leftright::@15/play_move_leftright::@6->play_move_leftright::@return#1] -- vbuaa=vbuc1 lda #0 - //SEG326 play_move_leftright::@return + //SEG328 play_move_leftright::@return breturn: - //SEG327 [153] return + //SEG329 [155] return rts - //SEG328 play_move_leftright::@1 + //SEG330 play_move_leftright::@1 b1: - //SEG329 [154] (byte) play_collision::xpos#1 ← (byte) current_xpos#16 - (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_minus_1 + //SEG331 [156] (byte) play_collision::xpos#1 ← (byte) current_xpos#16 - (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_minus_1 ldx current_xpos dex stx play_collision.xpos - //SEG330 [155] (byte) play_collision::ypos#1 ← (byte) current_ypos#14 -- vbuyy=vbuz1 + //SEG332 [157] (byte) play_collision::ypos#1 ← (byte) current_ypos#14 -- vbuyy=vbuz1 ldy current_ypos - //SEG331 [156] (byte) play_collision::orientation#1 ← (byte) current_orientation#14 -- vbuxx=vbuz1 + //SEG333 [158] (byte) play_collision::orientation#1 ← (byte) current_orientation#14 -- vbuxx=vbuz1 ldx current_orientation - //SEG332 [157] (byte*~) current_piece#74 ← (byte*) current_piece#10 -- pbuz1=pbuz2 + //SEG334 [159] (byte*~) current_piece#74 ← (byte*) current_piece#10 -- pbuz1=pbuz2 lda current_piece sta current_piece_74 lda current_piece+1 sta current_piece_74+1 - //SEG333 [158] call play_collision - //SEG334 [117] phi from play_move_leftright::@1 to play_collision [phi:play_move_leftright::@1->play_collision] - //SEG335 [117] phi (byte) play_collision::xpos#5 = (byte) play_collision::xpos#1 [phi:play_move_leftright::@1->play_collision#0] -- register_copy - //SEG336 [117] phi (byte) play_collision::ypos#4 = (byte) play_collision::ypos#1 [phi:play_move_leftright::@1->play_collision#1] -- register_copy - //SEG337 [117] phi (byte) play_collision::orientation#4 = (byte) play_collision::orientation#1 [phi:play_move_leftright::@1->play_collision#2] -- register_copy - //SEG338 [117] phi (byte*) current_piece#12 = (byte*~) current_piece#74 [phi:play_move_leftright::@1->play_collision#3] -- register_copy + //SEG335 [160] call play_collision + //SEG336 [119] phi from play_move_leftright::@1 to play_collision [phi:play_move_leftright::@1->play_collision] + //SEG337 [119] phi (byte) play_collision::xpos#5 = (byte) play_collision::xpos#1 [phi:play_move_leftright::@1->play_collision#0] -- register_copy + //SEG338 [119] phi (byte) play_collision::ypos#4 = (byte) play_collision::ypos#1 [phi:play_move_leftright::@1->play_collision#1] -- register_copy + //SEG339 [119] phi (byte) play_collision::orientation#4 = (byte) play_collision::orientation#1 [phi:play_move_leftright::@1->play_collision#2] -- register_copy + //SEG340 [119] phi (byte*) current_piece#12 = (byte*~) current_piece#74 [phi:play_move_leftright::@1->play_collision#3] -- register_copy jsr play_collision - //SEG339 [159] (byte) play_collision::return#1 ← (byte) play_collision::return#14 + //SEG341 [161] (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 - //SEG340 play_move_leftright::@14 - //SEG341 [160] (byte~) play_move_leftright::$8 ← (byte) play_collision::return#1 + //SEG342 play_move_leftright::@14 + //SEG343 [162] (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 - //SEG342 [161] if((byte~) play_move_leftright::$8!=(const byte) COLLISION_NONE#0) goto play_move_leftright::@return -- vbuaa_neq_vbuc1_then_la1 + //SEG344 [163] 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 - //SEG343 play_move_leftright::@11 - //SEG344 [162] (byte) current_xpos#5 ← -- (byte) current_xpos#16 -- vbuz1=_dec_vbuz1 + //SEG345 play_move_leftright::@11 + //SEG346 [164] (byte) current_xpos#5 ← -- (byte) current_xpos#16 -- vbuz1=_dec_vbuz1 dec current_xpos jmp b2 } -//SEG345 play_move_down +//SEG347 play_move_down play_move_down: { - //SEG346 [163] (byte) current_movedown_counter#1 ← ++ (byte) current_movedown_counter#12 -- vbuz1=_inc_vbuz1 + //SEG348 [165] (byte) current_movedown_counter#1 ← ++ (byte) current_movedown_counter#12 -- vbuz1=_inc_vbuz1 inc current_movedown_counter - //SEG347 [164] if((byte) play_move_down::key_event#0!=(const byte) KEY_SPACE#0) goto play_move_down::@1 -- vbuaa_neq_vbuc1_then_la1 + //SEG349 [166] 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 - //SEG348 [165] phi from play_move_down to play_move_down::@8 [phi:play_move_down->play_move_down::@8] - //SEG349 play_move_down::@8 - //SEG350 [166] phi from play_move_down::@8 to play_move_down::@1 [phi:play_move_down::@8->play_move_down::@1] - //SEG351 [166] 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 + //SEG350 [167] phi from play_move_down to play_move_down::@8 [phi:play_move_down->play_move_down::@8] + //SEG351 play_move_down::@8 + //SEG352 [168] phi from play_move_down::@8 to play_move_down::@1 [phi:play_move_down::@8->play_move_down::@1] + //SEG353 [168] 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 - //SEG352 [166] phi from play_move_down to play_move_down::@1 [phi:play_move_down->play_move_down::@1] + //SEG354 [168] phi from play_move_down to play_move_down::@1 [phi:play_move_down->play_move_down::@1] b3: - //SEG353 [166] 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 + //SEG355 [168] 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 - //SEG354 play_move_down::@1 + //SEG356 play_move_down::@1 b1: - //SEG355 [167] call keyboard_event_pressed - //SEG356 [250] phi from play_move_down::@1 to keyboard_event_pressed [phi:play_move_down::@1->keyboard_event_pressed] - //SEG357 [250] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_SPACE#0 [phi:play_move_down::@1->keyboard_event_pressed#0] -- vbuz1=vbuc1 + //SEG357 [169] call keyboard_event_pressed + //SEG358 [254] phi from play_move_down::@1 to keyboard_event_pressed [phi:play_move_down::@1->keyboard_event_pressed] + //SEG359 [254] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_SPACE#0 [phi:play_move_down::@1->keyboard_event_pressed#0] -- vbuz1=vbuc1 lda #KEY_SPACE sta keyboard_event_pressed.keycode jsr keyboard_event_pressed - //SEG358 [168] (byte) keyboard_event_pressed::return#12 ← (byte) keyboard_event_pressed::return#11 + //SEG360 [170] (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 - //SEG359 play_move_down::@17 - //SEG360 [169] (byte~) play_move_down::$2 ← (byte) keyboard_event_pressed::return#12 + //SEG361 play_move_down::@17 + //SEG362 [171] (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 - //SEG361 [170] 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 + //SEG363 [172] 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 - //SEG362 play_move_down::@9 - //SEG363 [171] if((byte) current_movedown_counter#1<(const byte) current_movedown_fast#0) goto play_move_down::@2 -- vbuz1_lt_vbuc1_then_la1 + //SEG364 play_move_down::@9 + //SEG365 [173] 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 - //SEG364 play_move_down::@10 - //SEG365 [172] (byte) play_move_down::movedown#2 ← ++ (byte) play_move_down::movedown#10 -- vbuxx=_inc_vbuxx + //SEG366 play_move_down::@10 + //SEG367 [174] (byte) play_move_down::movedown#2 ← ++ (byte) play_move_down::movedown#10 -- vbuxx=_inc_vbuxx inx - //SEG366 [173] 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] - //SEG367 [173] 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 - //SEG368 play_move_down::@2 + //SEG368 [175] 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] + //SEG369 [175] 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 + //SEG370 play_move_down::@2 b2: - //SEG369 [174] if((byte) current_movedown_counter#1<(const byte) current_movedown_slow#0) goto play_move_down::@4 -- vbuz1_lt_vbuc1_then_la1 + //SEG371 [176] 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 - //SEG370 play_move_down::@11 - //SEG371 [175] (byte) play_move_down::movedown#3 ← ++ (byte) play_move_down::movedown#7 -- vbuxx=_inc_vbuxx + //SEG372 play_move_down::@11 + //SEG373 [177] (byte) play_move_down::movedown#3 ← ++ (byte) play_move_down::movedown#7 -- vbuxx=_inc_vbuxx inx - //SEG372 [176] 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] - //SEG373 [176] 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 - //SEG374 play_move_down::@4 + //SEG374 [178] 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] + //SEG375 [178] 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 + //SEG376 play_move_down::@4 b4: - //SEG375 [177] 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 + //SEG377 [179] 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 - //SEG376 play_move_down::@12 - //SEG377 [178] (byte) play_collision::ypos#0 ← (byte) current_ypos#22 + (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuyy=vbuz1_plus_1 + //SEG378 play_move_down::@12 + //SEG379 [180] (byte) play_collision::ypos#0 ← (byte) current_ypos#22 + (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuyy=vbuz1_plus_1 ldy current_ypos iny - //SEG378 [179] (byte) play_collision::xpos#0 ← (byte) current_xpos#11 -- vbuz1=vbuz2 + //SEG380 [181] (byte) play_collision::xpos#0 ← (byte) current_xpos#11 -- vbuz1=vbuz2 lda current_xpos sta play_collision.xpos - //SEG379 [180] (byte) play_collision::orientation#0 ← (byte) current_orientation#10 -- vbuxx=vbuz1 + //SEG381 [182] (byte) play_collision::orientation#0 ← (byte) current_orientation#10 -- vbuxx=vbuz1 ldx current_orientation - //SEG380 [181] (byte*~) current_piece#73 ← (byte*) current_piece#16 -- pbuz1=pbuz2 + //SEG382 [183] (byte*~) current_piece#73 ← (byte*) current_piece#16 -- pbuz1=pbuz2 lda current_piece sta current_piece_73 lda current_piece+1 sta current_piece_73+1 - //SEG381 [182] call play_collision - //SEG382 [117] phi from play_move_down::@12 to play_collision [phi:play_move_down::@12->play_collision] - //SEG383 [117] phi (byte) play_collision::xpos#5 = (byte) play_collision::xpos#0 [phi:play_move_down::@12->play_collision#0] -- register_copy - //SEG384 [117] phi (byte) play_collision::ypos#4 = (byte) play_collision::ypos#0 [phi:play_move_down::@12->play_collision#1] -- register_copy - //SEG385 [117] phi (byte) play_collision::orientation#4 = (byte) play_collision::orientation#0 [phi:play_move_down::@12->play_collision#2] -- register_copy - //SEG386 [117] phi (byte*) current_piece#12 = (byte*~) current_piece#73 [phi:play_move_down::@12->play_collision#3] -- register_copy + //SEG383 [184] call play_collision + //SEG384 [119] phi from play_move_down::@12 to play_collision [phi:play_move_down::@12->play_collision] + //SEG385 [119] phi (byte) play_collision::xpos#5 = (byte) play_collision::xpos#0 [phi:play_move_down::@12->play_collision#0] -- register_copy + //SEG386 [119] phi (byte) play_collision::ypos#4 = (byte) play_collision::ypos#0 [phi:play_move_down::@12->play_collision#1] -- register_copy + //SEG387 [119] phi (byte) play_collision::orientation#4 = (byte) play_collision::orientation#0 [phi:play_move_down::@12->play_collision#2] -- register_copy + //SEG388 [119] phi (byte*) current_piece#12 = (byte*~) current_piece#73 [phi:play_move_down::@12->play_collision#3] -- register_copy jsr play_collision - //SEG387 [183] (byte) play_collision::return#0 ← (byte) play_collision::return#14 + //SEG389 [185] (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 - //SEG388 play_move_down::@18 - //SEG389 [184] (byte~) play_move_down::$12 ← (byte) play_collision::return#0 + //SEG390 play_move_down::@18 + //SEG391 [186] (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 - //SEG390 [185] if((byte~) play_move_down::$12==(const byte) COLLISION_NONE#0) goto play_move_down::@6 -- vbuaa_eq_vbuc1_then_la1 + //SEG392 [187] 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 - //SEG391 [186] phi from play_move_down::@18 to play_move_down::@13 [phi:play_move_down::@18->play_move_down::@13] - //SEG392 play_move_down::@13 - //SEG393 [187] call play_lock_current + //SEG393 [188] phi from play_move_down::@18 to play_move_down::@13 [phi:play_move_down::@18->play_move_down::@13] + //SEG394 play_move_down::@13 + //SEG395 [189] call play_lock_current jsr play_lock_current - //SEG394 [188] phi from play_move_down::@13 to play_move_down::@19 [phi:play_move_down::@13->play_move_down::@19] - //SEG395 play_move_down::@19 - //SEG396 [189] call play_remove_lines - //SEG397 [211] phi from play_move_down::@19 to play_remove_lines [phi:play_move_down::@19->play_remove_lines] + //SEG396 [190] phi from play_move_down::@13 to play_move_down::@19 [phi:play_move_down::@13->play_move_down::@19] + //SEG397 play_move_down::@19 + //SEG398 [191] call play_remove_lines + //SEG399 [215] phi from play_move_down::@19 to play_remove_lines [phi:play_move_down::@19->play_remove_lines] jsr play_remove_lines - //SEG398 [190] phi from play_move_down::@19 to play_move_down::@20 [phi:play_move_down::@19->play_move_down::@20] - //SEG399 play_move_down::@20 - //SEG400 [191] call play_spawn_current - //SEG401 [197] phi from play_move_down::@20 to play_spawn_current [phi:play_move_down::@20->play_spawn_current] + //SEG400 [192] phi from play_move_down::@19 to play_move_down::@20 [phi:play_move_down::@19->play_move_down::@20] + //SEG401 play_move_down::@20 + //SEG402 [193] call play_spawn_current + //SEG403 [199] phi from play_move_down::@20 to play_spawn_current [phi:play_move_down::@20->play_spawn_current] jsr play_spawn_current - //SEG402 [192] (byte*~) current_piece#77 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) -- pbuz1=pptc1_derefidx_vbuz2 + //SEG404 [194] (byte*~) current_piece#77 ← (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 - //SEG403 [193] phi from play_move_down::@20 to play_move_down::@7 [phi:play_move_down::@20->play_move_down::@7] - //SEG404 [193] phi (byte) current_piece_char#21 = (byte) current_piece_char#13 [phi:play_move_down::@20->play_move_down::@7#0] -- register_copy - //SEG405 [193] phi (byte) current_xpos#34 = (byte/signed byte/word/signed word/dword/signed dword) 3 [phi:play_move_down::@20->play_move_down::@7#1] -- vbuz1=vbuc1 - lda #3 - sta current_xpos - //SEG406 [193] phi (byte*) current_piece_gfx#27 = (byte*) current_piece_gfx#17 [phi:play_move_down::@20->play_move_down::@7#2] -- register_copy - //SEG407 [193] 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 + //SEG405 [195] phi from play_move_down::@20 to play_move_down::@7 [phi:play_move_down::@20->play_move_down::@7] + //SEG406 [195] phi (byte) current_piece_char#21 = (byte) current_piece_char#13 [phi:play_move_down::@20->play_move_down::@7#0] -- register_copy + //SEG407 [195] phi (byte) current_xpos#34 = (byte) current_xpos#24 [phi:play_move_down::@20->play_move_down::@7#1] -- register_copy + //SEG408 [195] phi (byte*) current_piece_gfx#27 = (byte*) current_piece_gfx#17 [phi:play_move_down::@20->play_move_down::@7#2] -- register_copy + //SEG409 [195] phi (byte) current_orientation#29 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_down::@20->play_move_down::@7#3] -- vbuz1=vbuc1 lda #0 sta current_orientation - //SEG408 [193] phi (byte*) current_piece#20 = (byte*~) current_piece#77 [phi:play_move_down::@20->play_move_down::@7#4] -- register_copy - //SEG409 [193] phi (byte) current_ypos#30 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_down::@20->play_move_down::@7#5] -- vbuz1=vbuc1 - sta current_ypos - //SEG410 play_move_down::@7 + //SEG410 [195] phi (byte*) current_piece#20 = (byte*~) current_piece#77 [phi:play_move_down::@20->play_move_down::@7#4] -- register_copy + //SEG411 [195] phi (byte) current_ypos#30 = (byte) current_ypos#19 [phi:play_move_down::@20->play_move_down::@7#5] -- register_copy + //SEG412 play_move_down::@7 b7: - //SEG411 [194] phi from play_move_down::@7 to play_move_down::@return [phi:play_move_down::@7->play_move_down::@return] - //SEG412 [194] phi (byte) current_piece_char#11 = (byte) current_piece_char#21 [phi:play_move_down::@7->play_move_down::@return#0] -- register_copy - //SEG413 [194] phi (byte) current_xpos#16 = (byte) current_xpos#34 [phi:play_move_down::@7->play_move_down::@return#1] -- register_copy - //SEG414 [194] phi (byte*) current_piece_gfx#14 = (byte*) current_piece_gfx#27 [phi:play_move_down::@7->play_move_down::@return#2] -- register_copy - //SEG415 [194] phi (byte) current_orientation#14 = (byte) current_orientation#29 [phi:play_move_down::@7->play_move_down::@return#3] -- register_copy - //SEG416 [194] phi (byte*) current_piece#10 = (byte*) current_piece#20 [phi:play_move_down::@7->play_move_down::@return#4] -- register_copy - //SEG417 [194] phi (byte) current_ypos#14 = (byte) current_ypos#30 [phi:play_move_down::@7->play_move_down::@return#5] -- register_copy - //SEG418 [194] 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 + //SEG413 [196] phi from play_move_down::@7 to play_move_down::@return [phi:play_move_down::@7->play_move_down::@return] + //SEG414 [196] phi (byte) current_piece_char#11 = (byte) current_piece_char#21 [phi:play_move_down::@7->play_move_down::@return#0] -- register_copy + //SEG415 [196] phi (byte) current_xpos#16 = (byte) current_xpos#34 [phi:play_move_down::@7->play_move_down::@return#1] -- register_copy + //SEG416 [196] phi (byte*) current_piece_gfx#14 = (byte*) current_piece_gfx#27 [phi:play_move_down::@7->play_move_down::@return#2] -- register_copy + //SEG417 [196] phi (byte) current_orientation#14 = (byte) current_orientation#29 [phi:play_move_down::@7->play_move_down::@return#3] -- register_copy + //SEG418 [196] phi (byte*) current_piece#10 = (byte*) current_piece#20 [phi:play_move_down::@7->play_move_down::@return#4] -- register_copy + //SEG419 [196] phi (byte) current_ypos#14 = (byte) current_ypos#30 [phi:play_move_down::@7->play_move_down::@return#5] -- register_copy + //SEG420 [196] phi (byte) current_movedown_counter#10 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_down::@7->play_move_down::@return#6] -- vbuz1=vbuc1 lda #0 sta current_movedown_counter - //SEG419 [194] 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 + //SEG421 [196] 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 - //SEG420 [194] phi from play_move_down::@4 to play_move_down::@return [phi:play_move_down::@4->play_move_down::@return] + //SEG422 [196] phi from play_move_down::@4 to play_move_down::@return [phi:play_move_down::@4->play_move_down::@return] b5: - //SEG421 [194] phi (byte) current_piece_char#11 = (byte) current_piece_char#16 [phi:play_move_down::@4->play_move_down::@return#0] -- register_copy - //SEG422 [194] phi (byte) current_xpos#16 = (byte) current_xpos#11 [phi:play_move_down::@4->play_move_down::@return#1] -- register_copy - //SEG423 [194] phi (byte*) current_piece_gfx#14 = (byte*) current_piece_gfx#10 [phi:play_move_down::@4->play_move_down::@return#2] -- register_copy - //SEG424 [194] phi (byte) current_orientation#14 = (byte) current_orientation#10 [phi:play_move_down::@4->play_move_down::@return#3] -- register_copy - //SEG425 [194] phi (byte*) current_piece#10 = (byte*) current_piece#16 [phi:play_move_down::@4->play_move_down::@return#4] -- register_copy - //SEG426 [194] phi (byte) current_ypos#14 = (byte) current_ypos#22 [phi:play_move_down::@4->play_move_down::@return#5] -- register_copy - //SEG427 [194] phi (byte) current_movedown_counter#10 = (byte) current_movedown_counter#1 [phi:play_move_down::@4->play_move_down::@return#6] -- register_copy - //SEG428 [194] 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 + //SEG423 [196] phi (byte) current_piece_char#11 = (byte) current_piece_char#16 [phi:play_move_down::@4->play_move_down::@return#0] -- register_copy + //SEG424 [196] phi (byte) current_xpos#16 = (byte) current_xpos#11 [phi:play_move_down::@4->play_move_down::@return#1] -- register_copy + //SEG425 [196] phi (byte*) current_piece_gfx#14 = (byte*) current_piece_gfx#10 [phi:play_move_down::@4->play_move_down::@return#2] -- register_copy + //SEG426 [196] phi (byte) current_orientation#14 = (byte) current_orientation#10 [phi:play_move_down::@4->play_move_down::@return#3] -- register_copy + //SEG427 [196] phi (byte*) current_piece#10 = (byte*) current_piece#16 [phi:play_move_down::@4->play_move_down::@return#4] -- register_copy + //SEG428 [196] phi (byte) current_ypos#14 = (byte) current_ypos#22 [phi:play_move_down::@4->play_move_down::@return#5] -- register_copy + //SEG429 [196] phi (byte) current_movedown_counter#10 = (byte) current_movedown_counter#1 [phi:play_move_down::@4->play_move_down::@return#6] -- register_copy + //SEG430 [196] phi (byte) play_move_down::return#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_down::@4->play_move_down::@return#7] -- vbuxx=vbuc1 ldx #0 - //SEG429 play_move_down::@return + //SEG431 play_move_down::@return breturn: - //SEG430 [195] return + //SEG432 [197] return rts - //SEG431 play_move_down::@6 + //SEG433 play_move_down::@6 b6: - //SEG432 [196] (byte) current_ypos#1 ← ++ (byte) current_ypos#22 -- vbuz1=_inc_vbuz1 + //SEG434 [198] (byte) current_ypos#1 ← ++ (byte) current_ypos#22 -- vbuz1=_inc_vbuz1 inc current_ypos - //SEG433 [193] phi from play_move_down::@6 to play_move_down::@7 [phi:play_move_down::@6->play_move_down::@7] - //SEG434 [193] phi (byte) current_piece_char#21 = (byte) current_piece_char#16 [phi:play_move_down::@6->play_move_down::@7#0] -- register_copy - //SEG435 [193] phi (byte) current_xpos#34 = (byte) current_xpos#11 [phi:play_move_down::@6->play_move_down::@7#1] -- register_copy - //SEG436 [193] phi (byte*) current_piece_gfx#27 = (byte*) current_piece_gfx#10 [phi:play_move_down::@6->play_move_down::@7#2] -- register_copy - //SEG437 [193] phi (byte) current_orientation#29 = (byte) current_orientation#10 [phi:play_move_down::@6->play_move_down::@7#3] -- register_copy - //SEG438 [193] phi (byte*) current_piece#20 = (byte*) current_piece#16 [phi:play_move_down::@6->play_move_down::@7#4] -- register_copy - //SEG439 [193] phi (byte) current_ypos#30 = (byte) current_ypos#1 [phi:play_move_down::@6->play_move_down::@7#5] -- register_copy + //SEG435 [195] phi from play_move_down::@6 to play_move_down::@7 [phi:play_move_down::@6->play_move_down::@7] + //SEG436 [195] phi (byte) current_piece_char#21 = (byte) current_piece_char#16 [phi:play_move_down::@6->play_move_down::@7#0] -- register_copy + //SEG437 [195] phi (byte) current_xpos#34 = (byte) current_xpos#11 [phi:play_move_down::@6->play_move_down::@7#1] -- register_copy + //SEG438 [195] phi (byte*) current_piece_gfx#27 = (byte*) current_piece_gfx#10 [phi:play_move_down::@6->play_move_down::@7#2] -- register_copy + //SEG439 [195] phi (byte) current_orientation#29 = (byte) current_orientation#10 [phi:play_move_down::@6->play_move_down::@7#3] -- register_copy + //SEG440 [195] phi (byte*) current_piece#20 = (byte*) current_piece#16 [phi:play_move_down::@6->play_move_down::@7#4] -- register_copy + //SEG441 [195] phi (byte) current_ypos#30 = (byte) current_ypos#1 [phi:play_move_down::@6->play_move_down::@7#5] -- register_copy jmp b7 } -//SEG440 play_spawn_current +//SEG442 play_spawn_current play_spawn_current: { .label _3 = 2 - //SEG441 [198] phi from play_spawn_current to play_spawn_current::@1 [phi:play_spawn_current->play_spawn_current::@1] - //SEG442 [198] 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 + //SEG443 [200] phi from play_spawn_current to play_spawn_current::@1 [phi:play_spawn_current->play_spawn_current::@1] + //SEG444 [200] 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 - //SEG443 play_spawn_current::@1 + //SEG445 play_spawn_current::@1 b1: - //SEG444 [199] 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 + //SEG446 [201] 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 - //SEG445 play_spawn_current::@3 - //SEG446 [200] (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 + //SEG447 play_spawn_current::@3 + //SEG448 [202] (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 - //SEG447 [201] (byte*) current_piece_gfx#17 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) + (byte/signed byte/word/signed word/dword/signed dword) 0 -- pbuz1=pptc1_derefidx_vbuz2_plus_0 + //SEG449 [203] (byte*) current_piece_gfx#17 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) + (byte/signed byte/word/signed word/dword/signed dword) 0 -- pbuz1=pptc1_derefidx_vbuz2_plus_0 tay lda PIECES,y sta current_piece_gfx lda PIECES+1,y sta current_piece_gfx+1 - //SEG448 [202] (byte) current_piece_char#13 ← *((const byte[]) PIECES_CHARS#0 + (byte) play_spawn_current::piece_idx#2) -- vbuz1=pbuc1_derefidx_vbuxx + //SEG450 [204] (byte) current_xpos#24 ← *((const byte[]) PIECES_START_X#0 + (byte) play_spawn_current::piece_idx#2) -- vbuz1=pbuc1_derefidx_vbuxx + lda PIECES_START_X,x + sta current_xpos + //SEG451 [205] (byte) current_ypos#19 ← *((const byte[]) PIECES_START_Y#0 + (byte) play_spawn_current::piece_idx#2) -- vbuz1=pbuc1_derefidx_vbuxx + lda PIECES_START_Y,x + sta current_ypos + //SEG452 [206] (byte) current_piece_char#13 ← *((const byte[]) PIECES_CHARS#0 + (byte) play_spawn_current::piece_idx#2) -- vbuz1=pbuc1_derefidx_vbuxx lda PIECES_CHARS,x sta current_piece_char - //SEG449 play_spawn_current::@return - //SEG450 [203] return + //SEG453 play_spawn_current::@return + //SEG454 [207] return rts - //SEG451 [204] phi from play_spawn_current::@1 to play_spawn_current::@2 [phi:play_spawn_current::@1->play_spawn_current::@2] - //SEG452 play_spawn_current::@2 + //SEG455 [208] phi from play_spawn_current::@1 to play_spawn_current::@2 [phi:play_spawn_current::@1->play_spawn_current::@2] + //SEG456 play_spawn_current::@2 b2: - //SEG453 [205] call sid_rnd + //SEG457 [209] call sid_rnd jsr sid_rnd - //SEG454 [206] (byte) sid_rnd::return#2 ← (byte) sid_rnd::return#0 + //SEG458 [210] (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 - //SEG455 play_spawn_current::@7 - //SEG456 [207] (byte~) play_spawn_current::$1 ← (byte) sid_rnd::return#2 + //SEG459 play_spawn_current::@7 + //SEG460 [211] (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 - //SEG457 [208] (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 + //SEG461 [212] (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 - //SEG458 [198] phi from play_spawn_current::@7 to play_spawn_current::@1 [phi:play_spawn_current::@7->play_spawn_current::@1] - //SEG459 [198] 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 + //SEG462 [200] phi from play_spawn_current::@7 to play_spawn_current::@1 [phi:play_spawn_current::@7->play_spawn_current::@1] + //SEG463 [200] 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 } -//SEG460 sid_rnd +//SEG464 sid_rnd sid_rnd: { - //SEG461 [209] (byte) sid_rnd::return#0 ← *((const byte*) SID_VOICE3_OSC#0) -- vbuaa=_deref_pbuc1 + //SEG465 [213] (byte) sid_rnd::return#0 ← *((const byte*) SID_VOICE3_OSC#0) -- vbuaa=_deref_pbuc1 lda SID_VOICE3_OSC - //SEG462 sid_rnd::@return - //SEG463 [210] return + //SEG466 sid_rnd::@return + //SEG467 [214] return rts } -//SEG464 play_remove_lines +//SEG468 play_remove_lines play_remove_lines: { .label c = 7 .label x = 3 .label y = 2 - .label full = 4 - //SEG465 [212] phi from play_remove_lines to play_remove_lines::@1 [phi:play_remove_lines->play_remove_lines::@1] - //SEG466 [212] 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 + .label full = 6 + //SEG469 [216] phi from play_remove_lines to play_remove_lines::@1 [phi:play_remove_lines->play_remove_lines::@1] + //SEG470 [216] 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 - //SEG467 [212] 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 + //SEG471 [216] 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 - //SEG468 [212] 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 + //SEG472 [216] 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 - //SEG469 [212] phi from play_remove_lines::@4 to play_remove_lines::@1 [phi:play_remove_lines::@4->play_remove_lines::@1] - //SEG470 [212] 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 - //SEG471 [212] 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 - //SEG472 [212] 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 - //SEG473 play_remove_lines::@1 + //SEG473 [216] phi from play_remove_lines::@4 to play_remove_lines::@1 [phi:play_remove_lines::@4->play_remove_lines::@1] + //SEG474 [216] 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 + //SEG475 [216] 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 + //SEG476 [216] 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 + //SEG477 play_remove_lines::@1 b1: - //SEG474 [213] phi from play_remove_lines::@1 to play_remove_lines::@2 [phi:play_remove_lines::@1->play_remove_lines::@2] - //SEG475 [213] 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 + //SEG478 [217] phi from play_remove_lines::@1 to play_remove_lines::@2 [phi:play_remove_lines::@1->play_remove_lines::@2] + //SEG479 [217] 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 - //SEG476 [213] 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 + //SEG480 [217] 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 - //SEG477 [213] 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 - //SEG478 [213] 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 - //SEG479 [213] phi from play_remove_lines::@3 to play_remove_lines::@2 [phi:play_remove_lines::@3->play_remove_lines::@2] - //SEG480 [213] 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 - //SEG481 [213] 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 - //SEG482 [213] 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 - //SEG483 [213] 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 - //SEG484 play_remove_lines::@2 + //SEG481 [217] 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 + //SEG482 [217] 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 + //SEG483 [217] phi from play_remove_lines::@3 to play_remove_lines::@2 [phi:play_remove_lines::@3->play_remove_lines::@2] + //SEG484 [217] 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 + //SEG485 [217] 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 + //SEG486 [217] 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 + //SEG487 [217] 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 + //SEG488 play_remove_lines::@2 b2: - //SEG485 [214] (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 + //SEG489 [218] (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 - //SEG486 [215] (byte) play_remove_lines::r#1 ← -- (byte) play_remove_lines::r#2 -- vbuyy=_dec_vbuyy + //SEG490 [219] (byte) play_remove_lines::r#1 ← -- (byte) play_remove_lines::r#2 -- vbuyy=_dec_vbuyy dey - //SEG487 [216] 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 + //SEG491 [220] 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 - //SEG488 [217] phi from play_remove_lines::@2 to play_remove_lines::@3 [phi:play_remove_lines::@2->play_remove_lines::@3] - //SEG489 [217] 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 + //SEG492 [221] phi from play_remove_lines::@2 to play_remove_lines::@3 [phi:play_remove_lines::@2->play_remove_lines::@3] + //SEG493 [221] 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 - //SEG490 play_remove_lines::@3 + //SEG494 play_remove_lines::@3 b3: - //SEG491 [218] *((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 + //SEG495 [222] *((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 - //SEG492 [219] (byte) play_remove_lines::w#1 ← -- (byte) play_remove_lines::w#4 -- vbuxx=_dec_vbuxx + //SEG496 [223] (byte) play_remove_lines::w#1 ← -- (byte) play_remove_lines::w#4 -- vbuxx=_dec_vbuxx dex - //SEG493 [220] (byte) play_remove_lines::x#1 ← ++ (byte) play_remove_lines::x#2 -- vbuz1=_inc_vbuz1 + //SEG497 [224] (byte) play_remove_lines::x#1 ← ++ (byte) play_remove_lines::x#2 -- vbuz1=_inc_vbuz1 inc x - //SEG494 [221] 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 + //SEG498 [225] 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 - //SEG495 play_remove_lines::@9 - //SEG496 [222] 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 + //SEG499 play_remove_lines::@9 + //SEG500 [226] 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 - //SEG497 play_remove_lines::@10 - //SEG498 [223] (byte) play_remove_lines::w#2 ← (byte) play_remove_lines::w#1 + (const byte) PLAYFIELD_COLS#0 -- vbuxx=vbuxx_plus_vbuc1 + //SEG501 play_remove_lines::@10 + //SEG502 [227] (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 - //SEG499 [224] 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] - //SEG500 [224] 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 - //SEG501 play_remove_lines::@4 + //SEG503 [228] 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] + //SEG504 [228] 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 + //SEG505 play_remove_lines::@4 b4: - //SEG502 [225] (byte) play_remove_lines::y#1 ← ++ (byte) play_remove_lines::y#8 -- vbuz1=_inc_vbuz1 + //SEG506 [229] (byte) play_remove_lines::y#1 ← ++ (byte) play_remove_lines::y#8 -- vbuz1=_inc_vbuz1 inc y - //SEG503 [226] 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 + //SEG507 [230] 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 - //SEG504 [227] 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] - //SEG505 [227] 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 - //SEG506 play_remove_lines::@5 + //SEG508 [231] 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] + //SEG509 [231] 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 + //SEG510 play_remove_lines::@5 b5: - //SEG507 [228] 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 + //SEG511 [232] 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 - //SEG508 play_remove_lines::@return - //SEG509 [229] return + //SEG512 play_remove_lines::@return + //SEG513 [233] return rts - //SEG510 play_remove_lines::@6 + //SEG514 play_remove_lines::@6 b6: - //SEG511 [230] *((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 + //SEG515 [234] *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) play_remove_lines::w#6) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- pbuc1_derefidx_vbuxx=vbuc2 lda #0 sta playfield,x - //SEG512 [231] (byte) play_remove_lines::w#3 ← -- (byte) play_remove_lines::w#6 -- vbuxx=_dec_vbuxx + //SEG516 [235] (byte) play_remove_lines::w#3 ← -- (byte) play_remove_lines::w#6 -- vbuxx=_dec_vbuxx dex jmp b5 - //SEG513 [232] phi from play_remove_lines::@2 to play_remove_lines::@17 [phi:play_remove_lines::@2->play_remove_lines::@17] - //SEG514 play_remove_lines::@17 - //SEG515 [217] phi from play_remove_lines::@17 to play_remove_lines::@3 [phi:play_remove_lines::@17->play_remove_lines::@3] - //SEG516 [217] 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 + //SEG517 [236] phi from play_remove_lines::@2 to play_remove_lines::@17 [phi:play_remove_lines::@2->play_remove_lines::@17] + //SEG518 play_remove_lines::@17 + //SEG519 [221] phi from play_remove_lines::@17 to play_remove_lines::@3 [phi:play_remove_lines::@17->play_remove_lines::@3] + //SEG520 [221] 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 } -//SEG517 play_lock_current +//SEG521 play_lock_current play_lock_current: { - .label ypos2 = 2 - .label playfield_line = 5 - .label col = 7 - .label i = 8 - .label l = 3 - .label i_2 = 4 - .label i_3 = 4 - .label i_7 = 4 - .label i_9 = 4 - //SEG518 [233] (byte) play_lock_current::ypos2#0 ← (byte) current_ypos#22 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz1_rol_1 + .label ypos2 = $b + .label playfield_line = 4 + .label col = 6 + .label i = 7 + .label l = 2 + .label i_2 = 3 + .label i_3 = 3 + .label i_7 = 3 + .label i_9 = 3 + //SEG522 [237] (byte) play_lock_current::ypos2#0 ← (byte) current_ypos#22 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz1_rol_1 asl ypos2 - //SEG519 [234] phi from play_lock_current to play_lock_current::@1 [phi:play_lock_current->play_lock_current::@1] - //SEG520 [234] 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 + //SEG523 [238] phi from play_lock_current to play_lock_current::@1 [phi:play_lock_current->play_lock_current::@1] + //SEG524 [238] phi (byte) play_lock_current::l#6 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_lock_current->play_lock_current::@1#0] -- vbuz1=vbuc1 lda #0 sta l - //SEG521 [234] 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 + //SEG525 [238] 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 - //SEG522 [234] phi (byte) play_lock_current::ypos2#2 = (byte) play_lock_current::ypos2#0 [phi:play_lock_current->play_lock_current::@1#2] -- register_copy - //SEG523 play_lock_current::@1 + //SEG526 [238] phi (byte) play_lock_current::ypos2#2 = (byte) play_lock_current::ypos2#0 [phi:play_lock_current->play_lock_current::@1#2] -- register_copy + //SEG527 play_lock_current::@1 b1: - //SEG524 [235] (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 + //SEG528 [239] (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 - //SEG525 [236] (byte) play_lock_current::col#0 ← (byte) current_xpos#11 -- vbuz1=vbuz2 + //SEG529 [240] (byte) play_lock_current::col#0 ← (byte) current_xpos#11 -- vbuz1=vbuz2 lda current_xpos sta col - //SEG526 [237] phi from play_lock_current::@1 to play_lock_current::@2 [phi:play_lock_current::@1->play_lock_current::@2] - //SEG527 [237] 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 + //SEG530 [241] phi from play_lock_current::@1 to play_lock_current::@2 [phi:play_lock_current::@1->play_lock_current::@2] + //SEG531 [241] 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 - //SEG528 [237] 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 - //SEG529 [237] 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 - //SEG530 play_lock_current::@2 + //SEG532 [241] 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 + //SEG533 [241] 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 + //SEG534 play_lock_current::@2 b2: - //SEG531 [238] (byte) play_lock_current::i#1 ← ++ (byte) play_lock_current::i#2 -- vbuz1=_inc_vbuz2 + //SEG535 [242] (byte) play_lock_current::i#1 ← ++ (byte) play_lock_current::i#2 -- vbuz1=_inc_vbuz2 ldy i_2 iny sty i - //SEG532 [239] if(*((byte*) current_piece_gfx#10 + (byte) play_lock_current::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_lock_current::@3 -- pbuz1_derefidx_vbuz2_eq_0_then_la1 + //SEG536 [243] if(*((byte*) current_piece_gfx#10 + (byte) play_lock_current::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_lock_current::@3 -- pbuz1_derefidx_vbuz2_eq_0_then_la1 ldy i_2 lda (current_piece_gfx),y cmp #0 beq b3 - //SEG533 play_lock_current::@4 - //SEG534 [240] *((byte*) play_lock_current::playfield_line#0 + (byte) play_lock_current::col#2) ← (byte) current_piece_char#16 -- pbuz1_derefidx_vbuz2=vbuz3 + //SEG537 play_lock_current::@4 + //SEG538 [244] *((byte*) play_lock_current::playfield_line#0 + (byte) play_lock_current::col#2) ← (byte) current_piece_char#16 -- pbuz1_derefidx_vbuz2=vbuz3 lda current_piece_char ldy col sta (playfield_line),y - //SEG535 play_lock_current::@3 + //SEG539 play_lock_current::@3 b3: - //SEG536 [241] (byte) play_lock_current::col#1 ← ++ (byte) play_lock_current::col#2 -- vbuz1=_inc_vbuz1 + //SEG540 [245] (byte) play_lock_current::col#1 ← ++ (byte) play_lock_current::col#2 -- vbuz1=_inc_vbuz1 inc col - //SEG537 [242] (byte) play_lock_current::c#1 ← ++ (byte) play_lock_current::c#2 -- vbuxx=_inc_vbuxx + //SEG541 [246] (byte) play_lock_current::c#1 ← ++ (byte) play_lock_current::c#2 -- vbuxx=_inc_vbuxx inx - //SEG538 [243] 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 + //SEG542 [247] 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 - //SEG539 play_lock_current::@5 - //SEG540 [244] (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 + //SEG543 play_lock_current::@5 + //SEG544 [248] (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 - //SEG541 [245] (byte) play_lock_current::l#1 ← ++ (byte) play_lock_current::l#6 -- vbuz1=_inc_vbuz1 + //SEG545 [249] (byte) play_lock_current::l#1 ← ++ (byte) play_lock_current::l#6 -- vbuz1=_inc_vbuz1 inc l - //SEG542 [246] 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 + //SEG546 [250] 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 - //SEG543 play_lock_current::@return - //SEG544 [247] return + //SEG547 play_lock_current::@return + //SEG548 [251] return rts - //SEG545 play_lock_current::@7 + //SEG549 play_lock_current::@7 b7: - //SEG546 [248] (byte~) play_lock_current::i#7 ← (byte) play_lock_current::i#1 -- vbuz1=vbuz2 + //SEG550 [252] (byte~) play_lock_current::i#7 ← (byte) play_lock_current::i#1 -- vbuz1=vbuz2 lda i sta i_7 - //SEG547 [234] phi from play_lock_current::@7 to play_lock_current::@1 [phi:play_lock_current::@7->play_lock_current::@1] - //SEG548 [234] 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 - //SEG549 [234] 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 - //SEG550 [234] 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 + //SEG551 [238] phi from play_lock_current::@7 to play_lock_current::@1 [phi:play_lock_current::@7->play_lock_current::@1] + //SEG552 [238] 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 + //SEG553 [238] 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 + //SEG554 [238] 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 - //SEG551 play_lock_current::@8 + //SEG555 play_lock_current::@8 b8: - //SEG552 [249] (byte~) play_lock_current::i#9 ← (byte) play_lock_current::i#1 -- vbuz1=vbuz2 + //SEG556 [253] (byte~) play_lock_current::i#9 ← (byte) play_lock_current::i#1 -- vbuz1=vbuz2 lda i sta i_9 - //SEG553 [237] phi from play_lock_current::@8 to play_lock_current::@2 [phi:play_lock_current::@8->play_lock_current::@2] - //SEG554 [237] 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 - //SEG555 [237] 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 - //SEG556 [237] 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 + //SEG557 [241] phi from play_lock_current::@8 to play_lock_current::@2 [phi:play_lock_current::@8->play_lock_current::@2] + //SEG558 [241] 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 + //SEG559 [241] 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 + //SEG560 [241] 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 } -//SEG557 keyboard_event_pressed +//SEG561 keyboard_event_pressed keyboard_event_pressed: { - .label row_bits = 7 - .label keycode = 4 - //SEG558 [251] (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 + .label row_bits = 6 + .label keycode = 3 + //SEG562 [255] (byte~) keyboard_event_pressed::$0 ← (byte) keyboard_event_pressed::keycode#5 >> (byte/signed byte/word/signed word/dword/signed dword) 3 -- vbuaa=vbuz1_ror_3 lda keycode lsr lsr lsr - //SEG559 [252] (byte) keyboard_event_pressed::row_bits#0 ← *((const byte[8]) keyboard_scan_values#0 + (byte~) keyboard_event_pressed::$0) -- vbuz1=pbuc1_derefidx_vbuaa + //SEG563 [256] (byte) keyboard_event_pressed::row_bits#0 ← *((const byte[8]) keyboard_scan_values#0 + (byte~) keyboard_event_pressed::$0) -- vbuz1=pbuc1_derefidx_vbuaa tay lda keyboard_scan_values,y sta row_bits - //SEG560 [253] (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 + //SEG564 [257] (byte~) keyboard_event_pressed::$1 ← (byte) keyboard_event_pressed::keycode#5 & (byte/signed byte/word/signed word/dword/signed dword) 7 -- vbuaa=vbuz1_band_vbuc1 lda #7 and keycode - //SEG561 [254] (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 + //SEG565 [258] (byte) keyboard_event_pressed::return#11 ← (byte) keyboard_event_pressed::row_bits#0 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte~) keyboard_event_pressed::$1) -- vbuaa=vbuz1_band_pbuc1_derefidx_vbuaa tay lda keyboard_matrix_col_bitmask,y and row_bits - //SEG562 keyboard_event_pressed::@return - //SEG563 [255] return + //SEG566 keyboard_event_pressed::@return + //SEG567 [259] return rts } -//SEG564 keyboard_event_get +//SEG568 keyboard_event_get keyboard_event_get: { - //SEG565 [256] 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 + //SEG569 [260] if((byte) keyboard_events_size#13==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_get::@return -- vbuz1_eq_0_then_la1 lda keyboard_events_size cmp #0 beq b1 - //SEG566 keyboard_event_get::@3 - //SEG567 [257] (byte) keyboard_events_size#4 ← -- (byte) keyboard_events_size#13 -- vbuz1=_dec_vbuz1 + //SEG570 keyboard_event_get::@3 + //SEG571 [261] (byte) keyboard_events_size#4 ← -- (byte) keyboard_events_size#13 -- vbuz1=_dec_vbuz1 dec keyboard_events_size - //SEG568 [258] (byte) keyboard_event_get::return#1 ← *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#4) -- vbuaa=pbuc1_derefidx_vbuz1 + //SEG572 [262] (byte) keyboard_event_get::return#1 ← *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#4) -- vbuaa=pbuc1_derefidx_vbuz1 ldy keyboard_events_size lda keyboard_events,y - //SEG569 [259] phi from keyboard_event_get::@3 to keyboard_event_get::@return [phi:keyboard_event_get::@3->keyboard_event_get::@return] - //SEG570 [259] phi (byte) keyboard_events_size#16 = (byte) keyboard_events_size#4 [phi:keyboard_event_get::@3->keyboard_event_get::@return#0] -- register_copy - //SEG571 [259] 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 + //SEG573 [263] phi from keyboard_event_get::@3 to keyboard_event_get::@return [phi:keyboard_event_get::@3->keyboard_event_get::@return] + //SEG574 [263] phi (byte) keyboard_events_size#16 = (byte) keyboard_events_size#4 [phi:keyboard_event_get::@3->keyboard_event_get::@return#0] -- register_copy + //SEG575 [263] phi (byte) keyboard_event_get::return#2 = (byte) keyboard_event_get::return#1 [phi:keyboard_event_get::@3->keyboard_event_get::@return#1] -- register_copy jmp breturn - //SEG572 [259] phi from keyboard_event_get to keyboard_event_get::@return [phi:keyboard_event_get->keyboard_event_get::@return] + //SEG576 [263] phi from keyboard_event_get to keyboard_event_get::@return [phi:keyboard_event_get->keyboard_event_get::@return] b1: - //SEG573 [259] phi (byte) keyboard_events_size#16 = (byte) keyboard_events_size#13 [phi:keyboard_event_get->keyboard_event_get::@return#0] -- register_copy - //SEG574 [259] 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 + //SEG577 [263] phi (byte) keyboard_events_size#16 = (byte) keyboard_events_size#13 [phi:keyboard_event_get->keyboard_event_get::@return#0] -- register_copy + //SEG578 [263] phi (byte) keyboard_event_get::return#2 = (byte/word/signed word/dword/signed dword) 255 [phi:keyboard_event_get->keyboard_event_get::@return#1] -- vbuaa=vbuc1 lda #$ff - //SEG575 keyboard_event_get::@return + //SEG579 keyboard_event_get::@return breturn: - //SEG576 [260] return + //SEG580 [264] return rts } -//SEG577 keyboard_event_scan +//SEG581 keyboard_event_scan keyboard_event_scan: { - .label row_scan = 8 - .label keycode = 7 - .label row = 4 - //SEG578 [262] phi from keyboard_event_scan to keyboard_event_scan::@1 [phi:keyboard_event_scan->keyboard_event_scan::@1] - //SEG579 [262] phi (byte) keyboard_events_size#29 = (byte) keyboard_events_size#19 [phi:keyboard_event_scan->keyboard_event_scan::@1#0] -- register_copy - //SEG580 [262] 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 + .label row_scan = 7 + .label keycode = 6 + .label row = 3 + //SEG582 [266] phi from keyboard_event_scan to keyboard_event_scan::@1 [phi:keyboard_event_scan->keyboard_event_scan::@1] + //SEG583 [266] phi (byte) keyboard_events_size#29 = (byte) keyboard_events_size#19 [phi:keyboard_event_scan->keyboard_event_scan::@1#0] -- register_copy + //SEG584 [266] phi (byte) keyboard_event_scan::keycode#11 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:keyboard_event_scan->keyboard_event_scan::@1#1] -- vbuz1=vbuc1 lda #0 sta keycode - //SEG581 [262] 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 + //SEG585 [266] phi (byte) keyboard_event_scan::row#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:keyboard_event_scan->keyboard_event_scan::@1#2] -- vbuz1=vbuc1 sta row - //SEG582 [262] phi from keyboard_event_scan::@3 to keyboard_event_scan::@1 [phi:keyboard_event_scan::@3->keyboard_event_scan::@1] - //SEG583 [262] phi (byte) keyboard_events_size#29 = (byte) keyboard_events_size#13 [phi:keyboard_event_scan::@3->keyboard_event_scan::@1#0] -- register_copy - //SEG584 [262] 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 - //SEG585 [262] 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 - //SEG586 keyboard_event_scan::@1 + //SEG586 [266] phi from keyboard_event_scan::@3 to keyboard_event_scan::@1 [phi:keyboard_event_scan::@3->keyboard_event_scan::@1] + //SEG587 [266] phi (byte) keyboard_events_size#29 = (byte) keyboard_events_size#13 [phi:keyboard_event_scan::@3->keyboard_event_scan::@1#0] -- register_copy + //SEG588 [266] phi (byte) keyboard_event_scan::keycode#11 = (byte) keyboard_event_scan::keycode#14 [phi:keyboard_event_scan::@3->keyboard_event_scan::@1#1] -- register_copy + //SEG589 [266] phi (byte) keyboard_event_scan::row#2 = (byte) keyboard_event_scan::row#1 [phi:keyboard_event_scan::@3->keyboard_event_scan::@1#2] -- register_copy + //SEG590 keyboard_event_scan::@1 b1: - //SEG587 [263] (byte) keyboard_matrix_read::rowid#0 ← (byte) keyboard_event_scan::row#2 -- vbuxx=vbuz1 + //SEG591 [267] (byte) keyboard_matrix_read::rowid#0 ← (byte) keyboard_event_scan::row#2 -- vbuxx=vbuz1 ldx row - //SEG588 [264] call keyboard_matrix_read + //SEG592 [268] call keyboard_matrix_read jsr keyboard_matrix_read - //SEG589 [265] (byte) keyboard_matrix_read::return#2 ← (byte) keyboard_matrix_read::return#0 + //SEG593 [269] (byte) keyboard_matrix_read::return#2 ← (byte) keyboard_matrix_read::return#0 // (byte) keyboard_matrix_read::return#2 = (byte) keyboard_matrix_read::return#0 // register copy reg byte a - //SEG590 keyboard_event_scan::@25 - //SEG591 [266] (byte) keyboard_event_scan::row_scan#0 ← (byte) keyboard_matrix_read::return#2 -- vbuz1=vbuaa + //SEG594 keyboard_event_scan::@25 + //SEG595 [270] (byte) keyboard_event_scan::row_scan#0 ← (byte) keyboard_matrix_read::return#2 -- vbuz1=vbuaa sta row_scan - //SEG592 [267] 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 + //SEG596 [271] if((byte) keyboard_event_scan::row_scan#0!=*((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2)) goto keyboard_event_scan::@4 -- vbuz1_neq_pbuc1_derefidx_vbuz2_then_la1 ldy row cmp keyboard_scan_values,y bne b6 - //SEG593 keyboard_event_scan::@13 - //SEG594 [268] (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 + //SEG597 keyboard_event_scan::@13 + //SEG598 [272] (byte) keyboard_event_scan::keycode#1 ← (byte) keyboard_event_scan::keycode#11 + (byte/signed byte/word/signed word/dword/signed dword) 8 -- vbuz1=vbuz1_plus_vbuc1 lda #8 clc adc keycode sta keycode - //SEG595 [269] 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] - //SEG596 [269] 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 - //SEG597 [269] 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 - //SEG598 keyboard_event_scan::@3 + //SEG599 [273] phi from keyboard_event_scan::@13 keyboard_event_scan::@19 to keyboard_event_scan::@3 [phi:keyboard_event_scan::@13/keyboard_event_scan::@19->keyboard_event_scan::@3] + //SEG600 [273] phi (byte) keyboard_events_size#13 = (byte) keyboard_events_size#29 [phi:keyboard_event_scan::@13/keyboard_event_scan::@19->keyboard_event_scan::@3#0] -- register_copy + //SEG601 [273] phi (byte) keyboard_event_scan::keycode#14 = (byte) keyboard_event_scan::keycode#1 [phi:keyboard_event_scan::@13/keyboard_event_scan::@19->keyboard_event_scan::@3#1] -- register_copy + //SEG602 keyboard_event_scan::@3 b3: - //SEG599 [270] (byte) keyboard_event_scan::row#1 ← ++ (byte) keyboard_event_scan::row#2 -- vbuz1=_inc_vbuz1 + //SEG603 [274] (byte) keyboard_event_scan::row#1 ← ++ (byte) keyboard_event_scan::row#2 -- vbuz1=_inc_vbuz1 inc row - //SEG600 [271] 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 + //SEG604 [275] if((byte) keyboard_event_scan::row#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto keyboard_event_scan::@1 -- vbuz1_neq_vbuc1_then_la1 lda row cmp #8 bne b1 - //SEG601 [272] phi from keyboard_event_scan::@3 to keyboard_event_scan::@20 [phi:keyboard_event_scan::@3->keyboard_event_scan::@20] - //SEG602 keyboard_event_scan::@20 - //SEG603 [273] call keyboard_event_pressed - //SEG604 [250] phi from keyboard_event_scan::@20 to keyboard_event_pressed [phi:keyboard_event_scan::@20->keyboard_event_pressed] - //SEG605 [250] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_LSHIFT#0 [phi:keyboard_event_scan::@20->keyboard_event_pressed#0] -- vbuz1=vbuc1 + //SEG605 [276] phi from keyboard_event_scan::@3 to keyboard_event_scan::@20 [phi:keyboard_event_scan::@3->keyboard_event_scan::@20] + //SEG606 keyboard_event_scan::@20 + //SEG607 [277] call keyboard_event_pressed + //SEG608 [254] phi from keyboard_event_scan::@20 to keyboard_event_pressed [phi:keyboard_event_scan::@20->keyboard_event_pressed] + //SEG609 [254] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_LSHIFT#0 [phi:keyboard_event_scan::@20->keyboard_event_pressed#0] -- vbuz1=vbuc1 lda #KEY_LSHIFT sta keyboard_event_pressed.keycode jsr keyboard_event_pressed - //SEG606 [274] (byte) keyboard_event_pressed::return#0 ← (byte) keyboard_event_pressed::return#11 + //SEG610 [278] (byte) keyboard_event_pressed::return#0 ← (byte) keyboard_event_pressed::return#11 // (byte) keyboard_event_pressed::return#0 = (byte) keyboard_event_pressed::return#11 // register copy reg byte a - //SEG607 keyboard_event_scan::@26 - //SEG608 [275] (byte~) keyboard_event_scan::$14 ← (byte) keyboard_event_pressed::return#0 + //SEG611 keyboard_event_scan::@26 + //SEG612 [279] (byte~) keyboard_event_scan::$14 ← (byte) keyboard_event_pressed::return#0 // (byte~) keyboard_event_scan::$14 = (byte) keyboard_event_pressed::return#0 // register copy reg byte a - //SEG609 [276] 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 + //SEG613 [280] if((byte~) keyboard_event_scan::$14==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@9 -- vbuaa_eq_0_then_la1 cmp #0 beq b2 - //SEG610 [277] phi from keyboard_event_scan::@26 to keyboard_event_scan::@21 [phi:keyboard_event_scan::@26->keyboard_event_scan::@21] - //SEG611 keyboard_event_scan::@21 - //SEG612 [278] phi from keyboard_event_scan::@21 to keyboard_event_scan::@9 [phi:keyboard_event_scan::@21->keyboard_event_scan::@9] - //SEG613 [278] 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 + //SEG614 [281] phi from keyboard_event_scan::@26 to keyboard_event_scan::@21 [phi:keyboard_event_scan::@26->keyboard_event_scan::@21] + //SEG615 keyboard_event_scan::@21 + //SEG616 [282] phi from keyboard_event_scan::@21 to keyboard_event_scan::@9 [phi:keyboard_event_scan::@21->keyboard_event_scan::@9] + //SEG617 [282] 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 - //SEG614 [278] phi from keyboard_event_scan::@26 to keyboard_event_scan::@9 [phi:keyboard_event_scan::@26->keyboard_event_scan::@9] + //SEG618 [282] phi from keyboard_event_scan::@26 to keyboard_event_scan::@9 [phi:keyboard_event_scan::@26->keyboard_event_scan::@9] b2: - //SEG615 [278] 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 + //SEG619 [282] 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 - //SEG616 keyboard_event_scan::@9 + //SEG620 keyboard_event_scan::@9 b9: - //SEG617 [279] call keyboard_event_pressed - //SEG618 [250] phi from keyboard_event_scan::@9 to keyboard_event_pressed [phi:keyboard_event_scan::@9->keyboard_event_pressed] - //SEG619 [250] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_RSHIFT#0 [phi:keyboard_event_scan::@9->keyboard_event_pressed#0] -- vbuz1=vbuc1 + //SEG621 [283] call keyboard_event_pressed + //SEG622 [254] phi from keyboard_event_scan::@9 to keyboard_event_pressed [phi:keyboard_event_scan::@9->keyboard_event_pressed] + //SEG623 [254] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_RSHIFT#0 [phi:keyboard_event_scan::@9->keyboard_event_pressed#0] -- vbuz1=vbuc1 lda #KEY_RSHIFT sta keyboard_event_pressed.keycode jsr keyboard_event_pressed - //SEG620 [280] (byte) keyboard_event_pressed::return#1 ← (byte) keyboard_event_pressed::return#11 + //SEG624 [284] (byte) keyboard_event_pressed::return#1 ← (byte) keyboard_event_pressed::return#11 // (byte) keyboard_event_pressed::return#1 = (byte) keyboard_event_pressed::return#11 // register copy reg byte a - //SEG621 keyboard_event_scan::@27 - //SEG622 [281] (byte~) keyboard_event_scan::$18 ← (byte) keyboard_event_pressed::return#1 + //SEG625 keyboard_event_scan::@27 + //SEG626 [285] (byte~) keyboard_event_scan::$18 ← (byte) keyboard_event_pressed::return#1 // (byte~) keyboard_event_scan::$18 = (byte) keyboard_event_pressed::return#1 // register copy reg byte a - //SEG623 [282] 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 + //SEG627 [286] if((byte~) keyboard_event_scan::$18==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@10 -- vbuaa_eq_0_then_la1 cmp #0 beq b10 - //SEG624 keyboard_event_scan::@22 - //SEG625 [283] (byte) keyboard_modifiers#3 ← (byte) keyboard_modifiers#11 | (const byte) KEY_MODIFIER_RSHIFT#0 -- vbuxx=vbuxx_bor_vbuc1 + //SEG628 keyboard_event_scan::@22 + //SEG629 [287] (byte) keyboard_modifiers#3 ← (byte) keyboard_modifiers#11 | (const byte) KEY_MODIFIER_RSHIFT#0 -- vbuxx=vbuxx_bor_vbuc1 txa ora #KEY_MODIFIER_RSHIFT tax - //SEG626 [284] 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] - //SEG627 [284] 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 - //SEG628 keyboard_event_scan::@10 + //SEG630 [288] phi from keyboard_event_scan::@22 keyboard_event_scan::@27 to keyboard_event_scan::@10 [phi:keyboard_event_scan::@22/keyboard_event_scan::@27->keyboard_event_scan::@10] + //SEG631 [288] 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 + //SEG632 keyboard_event_scan::@10 b10: - //SEG629 [285] call keyboard_event_pressed - //SEG630 [250] phi from keyboard_event_scan::@10 to keyboard_event_pressed [phi:keyboard_event_scan::@10->keyboard_event_pressed] - //SEG631 [250] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_CTRL#0 [phi:keyboard_event_scan::@10->keyboard_event_pressed#0] -- vbuz1=vbuc1 + //SEG633 [289] call keyboard_event_pressed + //SEG634 [254] phi from keyboard_event_scan::@10 to keyboard_event_pressed [phi:keyboard_event_scan::@10->keyboard_event_pressed] + //SEG635 [254] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_CTRL#0 [phi:keyboard_event_scan::@10->keyboard_event_pressed#0] -- vbuz1=vbuc1 lda #KEY_CTRL sta keyboard_event_pressed.keycode jsr keyboard_event_pressed - //SEG632 [286] (byte) keyboard_event_pressed::return#2 ← (byte) keyboard_event_pressed::return#11 + //SEG636 [290] (byte) keyboard_event_pressed::return#2 ← (byte) keyboard_event_pressed::return#11 // (byte) keyboard_event_pressed::return#2 = (byte) keyboard_event_pressed::return#11 // register copy reg byte a - //SEG633 keyboard_event_scan::@28 - //SEG634 [287] (byte~) keyboard_event_scan::$22 ← (byte) keyboard_event_pressed::return#2 + //SEG637 keyboard_event_scan::@28 + //SEG638 [291] (byte~) keyboard_event_scan::$22 ← (byte) keyboard_event_pressed::return#2 // (byte~) keyboard_event_scan::$22 = (byte) keyboard_event_pressed::return#2 // register copy reg byte a - //SEG635 [288] 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 + //SEG639 [292] if((byte~) keyboard_event_scan::$22==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@11 -- vbuaa_eq_0_then_la1 cmp #0 beq b11 - //SEG636 keyboard_event_scan::@23 - //SEG637 [289] (byte) keyboard_modifiers#4 ← (byte) keyboard_modifiers#12 | (const byte) KEY_MODIFIER_CTRL#0 -- vbuxx=vbuxx_bor_vbuc1 + //SEG640 keyboard_event_scan::@23 + //SEG641 [293] (byte) keyboard_modifiers#4 ← (byte) keyboard_modifiers#12 | (const byte) KEY_MODIFIER_CTRL#0 -- vbuxx=vbuxx_bor_vbuc1 txa ora #KEY_MODIFIER_CTRL tax - //SEG638 [290] 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] - //SEG639 [290] 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 - //SEG640 keyboard_event_scan::@11 + //SEG642 [294] phi from keyboard_event_scan::@23 keyboard_event_scan::@28 to keyboard_event_scan::@11 [phi:keyboard_event_scan::@23/keyboard_event_scan::@28->keyboard_event_scan::@11] + //SEG643 [294] 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 + //SEG644 keyboard_event_scan::@11 b11: - //SEG641 [291] call keyboard_event_pressed - //SEG642 [250] phi from keyboard_event_scan::@11 to keyboard_event_pressed [phi:keyboard_event_scan::@11->keyboard_event_pressed] - //SEG643 [250] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_COMMODORE#0 [phi:keyboard_event_scan::@11->keyboard_event_pressed#0] -- vbuz1=vbuc1 + //SEG645 [295] call keyboard_event_pressed + //SEG646 [254] phi from keyboard_event_scan::@11 to keyboard_event_pressed [phi:keyboard_event_scan::@11->keyboard_event_pressed] + //SEG647 [254] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_COMMODORE#0 [phi:keyboard_event_scan::@11->keyboard_event_pressed#0] -- vbuz1=vbuc1 lda #KEY_COMMODORE sta keyboard_event_pressed.keycode jsr keyboard_event_pressed - //SEG644 [292] (byte) keyboard_event_pressed::return#10 ← (byte) keyboard_event_pressed::return#11 + //SEG648 [296] (byte) keyboard_event_pressed::return#10 ← (byte) keyboard_event_pressed::return#11 // (byte) keyboard_event_pressed::return#10 = (byte) keyboard_event_pressed::return#11 // register copy reg byte a - //SEG645 keyboard_event_scan::@29 - //SEG646 [293] (byte~) keyboard_event_scan::$26 ← (byte) keyboard_event_pressed::return#10 + //SEG649 keyboard_event_scan::@29 + //SEG650 [297] (byte~) keyboard_event_scan::$26 ← (byte) keyboard_event_pressed::return#10 // (byte~) keyboard_event_scan::$26 = (byte) keyboard_event_pressed::return#10 // register copy reg byte a - //SEG647 [294] 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 + //SEG651 [298] if((byte~) keyboard_event_scan::$26==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@return -- vbuaa_eq_0_then_la1 cmp #0 beq breturn - //SEG648 keyboard_event_scan::@24 - //SEG649 [295] (byte) keyboard_modifiers#5 ← (byte) keyboard_modifiers#13 | (const byte) KEY_MODIFIER_COMMODORE#0 -- vbuaa=vbuxx_bor_vbuc1 + //SEG652 keyboard_event_scan::@24 + //SEG653 [299] (byte) keyboard_modifiers#5 ← (byte) keyboard_modifiers#13 | (const byte) KEY_MODIFIER_COMMODORE#0 -- vbuaa=vbuxx_bor_vbuc1 txa ora #KEY_MODIFIER_COMMODORE - //SEG650 keyboard_event_scan::@return + //SEG654 keyboard_event_scan::@return breturn: - //SEG651 [296] return + //SEG655 [300] return rts - //SEG652 [297] phi from keyboard_event_scan::@25 to keyboard_event_scan::@4 [phi:keyboard_event_scan::@25->keyboard_event_scan::@4] + //SEG656 [301] phi from keyboard_event_scan::@25 to keyboard_event_scan::@4 [phi:keyboard_event_scan::@25->keyboard_event_scan::@4] b6: - //SEG653 [297] phi (byte) keyboard_events_size#10 = (byte) keyboard_events_size#29 [phi:keyboard_event_scan::@25->keyboard_event_scan::@4#0] -- register_copy - //SEG654 [297] 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 - //SEG655 [297] 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 + //SEG657 [301] phi (byte) keyboard_events_size#10 = (byte) keyboard_events_size#29 [phi:keyboard_event_scan::@25->keyboard_event_scan::@4#0] -- register_copy + //SEG658 [301] phi (byte) keyboard_event_scan::keycode#10 = (byte) keyboard_event_scan::keycode#11 [phi:keyboard_event_scan::@25->keyboard_event_scan::@4#1] -- register_copy + //SEG659 [301] phi (byte) keyboard_event_scan::col#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:keyboard_event_scan::@25->keyboard_event_scan::@4#2] -- vbuxx=vbuc1 ldx #0 - //SEG656 [297] phi from keyboard_event_scan::@5 to keyboard_event_scan::@4 [phi:keyboard_event_scan::@5->keyboard_event_scan::@4] - //SEG657 [297] phi (byte) keyboard_events_size#10 = (byte) keyboard_events_size#30 [phi:keyboard_event_scan::@5->keyboard_event_scan::@4#0] -- register_copy - //SEG658 [297] 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 - //SEG659 [297] 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 - //SEG660 keyboard_event_scan::@4 + //SEG660 [301] phi from keyboard_event_scan::@5 to keyboard_event_scan::@4 [phi:keyboard_event_scan::@5->keyboard_event_scan::@4] + //SEG661 [301] phi (byte) keyboard_events_size#10 = (byte) keyboard_events_size#30 [phi:keyboard_event_scan::@5->keyboard_event_scan::@4#0] -- register_copy + //SEG662 [301] phi (byte) keyboard_event_scan::keycode#10 = (byte) keyboard_event_scan::keycode#15 [phi:keyboard_event_scan::@5->keyboard_event_scan::@4#1] -- register_copy + //SEG663 [301] phi (byte) keyboard_event_scan::col#2 = (byte) keyboard_event_scan::col#1 [phi:keyboard_event_scan::@5->keyboard_event_scan::@4#2] -- register_copy + //SEG664 keyboard_event_scan::@4 b4: - //SEG661 [298] (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 + //SEG665 [302] (byte~) keyboard_event_scan::$3 ← (byte) keyboard_event_scan::row_scan#0 ^ *((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2) -- vbuaa=vbuz1_bxor_pbuc1_derefidx_vbuz2 lda row_scan ldy row eor keyboard_scan_values,y - //SEG662 [299] (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 + //SEG666 [303] (byte~) keyboard_event_scan::$4 ← (byte~) keyboard_event_scan::$3 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_event_scan::col#2) -- vbuaa=vbuaa_band_pbuc1_derefidx_vbuxx and keyboard_matrix_col_bitmask,x - //SEG663 [300] 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 + //SEG667 [304] if((byte~) keyboard_event_scan::$4==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@5 -- vbuaa_eq_0_then_la1 cmp #0 beq b5 - //SEG664 keyboard_event_scan::@15 - //SEG665 [301] 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 + //SEG668 keyboard_event_scan::@15 + //SEG669 [305] if((byte) keyboard_events_size#10==(byte/signed byte/word/signed word/dword/signed dword) 8) goto keyboard_event_scan::@5 -- vbuz1_eq_vbuc1_then_la1 lda keyboard_events_size cmp #8 beq b5 - //SEG666 keyboard_event_scan::@16 - //SEG667 [302] (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 + //SEG670 keyboard_event_scan::@16 + //SEG671 [306] (byte) keyboard_event_scan::event_type#0 ← (byte) keyboard_event_scan::row_scan#0 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_event_scan::col#2) -- vbuaa=vbuz1_band_pbuc1_derefidx_vbuxx lda keyboard_matrix_col_bitmask,x and row_scan - //SEG668 [303] 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 + //SEG672 [307] if((byte) keyboard_event_scan::event_type#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@7 -- vbuaa_eq_0_then_la1 cmp #0 beq b7 - //SEG669 keyboard_event_scan::@17 - //SEG670 [304] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte) keyboard_event_scan::keycode#10 -- pbuc1_derefidx_vbuz1=vbuz2 + //SEG673 keyboard_event_scan::@17 + //SEG674 [308] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte) keyboard_event_scan::keycode#10 -- pbuc1_derefidx_vbuz1=vbuz2 lda keycode ldy keyboard_events_size sta keyboard_events,y - //SEG671 [305] (byte) keyboard_events_size#2 ← ++ (byte) keyboard_events_size#10 -- vbuz1=_inc_vbuz1 + //SEG675 [309] (byte) keyboard_events_size#2 ← ++ (byte) keyboard_events_size#10 -- vbuz1=_inc_vbuz1 inc keyboard_events_size - //SEG672 [306] 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] - //SEG673 [306] 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 - //SEG674 keyboard_event_scan::@5 + //SEG676 [310] phi from keyboard_event_scan::@15 keyboard_event_scan::@17 keyboard_event_scan::@4 keyboard_event_scan::@7 to keyboard_event_scan::@5 [phi:keyboard_event_scan::@15/keyboard_event_scan::@17/keyboard_event_scan::@4/keyboard_event_scan::@7->keyboard_event_scan::@5] + //SEG677 [310] phi (byte) keyboard_events_size#30 = (byte) keyboard_events_size#10 [phi:keyboard_event_scan::@15/keyboard_event_scan::@17/keyboard_event_scan::@4/keyboard_event_scan::@7->keyboard_event_scan::@5#0] -- register_copy + //SEG678 keyboard_event_scan::@5 b5: - //SEG675 [307] (byte) keyboard_event_scan::keycode#15 ← ++ (byte) keyboard_event_scan::keycode#10 -- vbuz1=_inc_vbuz1 + //SEG679 [311] (byte) keyboard_event_scan::keycode#15 ← ++ (byte) keyboard_event_scan::keycode#10 -- vbuz1=_inc_vbuz1 inc keycode - //SEG676 [308] (byte) keyboard_event_scan::col#1 ← ++ (byte) keyboard_event_scan::col#2 -- vbuxx=_inc_vbuxx + //SEG680 [312] (byte) keyboard_event_scan::col#1 ← ++ (byte) keyboard_event_scan::col#2 -- vbuxx=_inc_vbuxx inx - //SEG677 [309] 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 + //SEG681 [313] if((byte) keyboard_event_scan::col#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto keyboard_event_scan::@4 -- vbuxx_neq_vbuc1_then_la1 cpx #8 bne b4 - //SEG678 keyboard_event_scan::@19 - //SEG679 [310] *((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2) ← (byte) keyboard_event_scan::row_scan#0 -- pbuc1_derefidx_vbuz1=vbuz2 + //SEG682 keyboard_event_scan::@19 + //SEG683 [314] *((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2) ← (byte) keyboard_event_scan::row_scan#0 -- pbuc1_derefidx_vbuz1=vbuz2 lda row_scan ldy row sta keyboard_scan_values,y jmp b3 - //SEG680 keyboard_event_scan::@7 + //SEG684 keyboard_event_scan::@7 b7: - //SEG681 [311] (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 + //SEG685 [315] (byte/word/dword~) keyboard_event_scan::$11 ← (byte) keyboard_event_scan::keycode#10 | (byte/signed byte/word/signed word/dword/signed dword) 64 -- vbuaa=vbuz1_bor_vbuc1 lda #$40 ora keycode - //SEG682 [312] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte/word/dword~) keyboard_event_scan::$11 -- pbuc1_derefidx_vbuz1=vbuaa + //SEG686 [316] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte/word/dword~) keyboard_event_scan::$11 -- pbuc1_derefidx_vbuz1=vbuaa ldy keyboard_events_size sta keyboard_events,y - //SEG683 [313] (byte) keyboard_events_size#1 ← ++ (byte) keyboard_events_size#10 -- vbuz1=_inc_vbuz1 + //SEG687 [317] (byte) keyboard_events_size#1 ← ++ (byte) keyboard_events_size#10 -- vbuz1=_inc_vbuz1 inc keyboard_events_size jmp b5 } -//SEG684 keyboard_matrix_read +//SEG688 keyboard_matrix_read keyboard_matrix_read: { - //SEG685 [314] *((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 + //SEG689 [318] *((const byte*) CIA1_PORT_A#0) ← *((const byte[8]) keyboard_matrix_row_bitmask#0 + (byte) keyboard_matrix_read::rowid#0) -- _deref_pbuc1=pbuc2_derefidx_vbuxx lda keyboard_matrix_row_bitmask,x sta CIA1_PORT_A - //SEG686 [315] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) -- vbuaa=_bnot__deref_pbuc1 + //SEG690 [319] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) -- vbuaa=_bnot__deref_pbuc1 lda CIA1_PORT_B eor #$ff - //SEG687 keyboard_matrix_read::@return - //SEG688 [316] return + //SEG691 keyboard_matrix_read::@return + //SEG692 [320] return rts } -//SEG689 play_init +//SEG693 play_init play_init: { - .label pli = 5 + .label pli = 4 .label idx = 2 - //SEG690 [318] phi from play_init to play_init::@1 [phi:play_init->play_init::@1] - //SEG691 [318] 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 + //SEG694 [322] phi from play_init to play_init::@1 [phi:play_init->play_init::@1] + //SEG695 [322] 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 - //SEG692 [318] 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 + //SEG696 [322] 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 - //SEG693 [318] 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 + //SEG697 [322] 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 - //SEG694 [318] phi from play_init::@1 to play_init::@1 [phi:play_init::@1->play_init::@1] - //SEG695 [318] phi (byte) play_init::idx#2 = (byte) play_init::idx#1 [phi:play_init::@1->play_init::@1#0] -- register_copy - //SEG696 [318] phi (byte*) play_init::pli#2 = (byte*) play_init::pli#1 [phi:play_init::@1->play_init::@1#1] -- register_copy - //SEG697 [318] phi (byte) play_init::j#2 = (byte) play_init::j#1 [phi:play_init::@1->play_init::@1#2] -- register_copy - //SEG698 play_init::@1 + //SEG698 [322] phi from play_init::@1 to play_init::@1 [phi:play_init::@1->play_init::@1] + //SEG699 [322] phi (byte) play_init::idx#2 = (byte) play_init::idx#1 [phi:play_init::@1->play_init::@1#0] -- register_copy + //SEG700 [322] phi (byte*) play_init::pli#2 = (byte*) play_init::pli#1 [phi:play_init::@1->play_init::@1#1] -- register_copy + //SEG701 [322] phi (byte) play_init::j#2 = (byte) play_init::j#1 [phi:play_init::@1->play_init::@1#2] -- register_copy + //SEG702 play_init::@1 b1: - //SEG699 [319] (byte~) play_init::$1 ← (byte) play_init::j#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuaa=vbuxx_rol_1 + //SEG703 [323] (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 - //SEG700 [320] *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte~) play_init::$1) ← (byte*) play_init::pli#2 -- pptc1_derefidx_vbuaa=pbuz1 + //SEG704 [324] *((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 - //SEG701 [321] *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0 + (byte) play_init::j#2) ← (byte) play_init::idx#2 -- pbuc1_derefidx_vbuxx=vbuz1 + //SEG705 [325] *((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 - //SEG702 [322] (byte*) play_init::pli#1 ← (byte*) play_init::pli#2 + (const byte) PLAYFIELD_COLS#0 -- pbuz1=pbuz1_plus_vbuc1 + //SEG706 [326] (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 @@ -17541,181 +17582,181 @@ play_init: { bcc !+ inc pli+1 !: - //SEG703 [323] (byte) play_init::idx#1 ← (byte) play_init::idx#2 + (const byte) PLAYFIELD_COLS#0 -- vbuz1=vbuz1_plus_vbuc1 + //SEG707 [327] (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 - //SEG704 [324] (byte) play_init::j#1 ← ++ (byte) play_init::j#2 -- vbuxx=_inc_vbuxx + //SEG708 [328] (byte) play_init::j#1 ← ++ (byte) play_init::j#2 -- vbuxx=_inc_vbuxx inx - //SEG705 [325] 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 + //SEG709 [329] 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 - //SEG706 play_init::@2 - //SEG707 [326] *((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 + //SEG710 play_init::@2 + //SEG711 [330] *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0+(const byte) PLAYFIELD_LINES#0) ← (const byte) PLAYFIELD_COLS#0*(const byte) PLAYFIELD_LINES#0 -- _deref_pbuc1=vbuc2 lda #PLAYFIELD_COLS*PLAYFIELD_LINES sta playfield_lines_idx+PLAYFIELD_LINES - //SEG708 play_init::@return - //SEG709 [327] return + //SEG712 play_init::@return + //SEG713 [331] return rts } -//SEG710 sprites_irq_init +//SEG714 sprites_irq_init sprites_irq_init: { - //SEG711 asm { sei } + //SEG715 asm { sei } sei - //SEG712 [329] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0 -- _deref_pbuc1=vbuc2 + //SEG716 [333] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0 -- _deref_pbuc1=vbuc2 lda #IRQ_RASTER sta IRQ_STATUS - //SEG713 asm { ldaCIA1_INTERRUPT } + //SEG717 asm { ldaCIA1_INTERRUPT } lda CIA1_INTERRUPT - //SEG714 [331] *((const byte*) PROCPORT_DDR#0) ← (const byte) PROCPORT_DDR_MEMORY_MASK#0 -- _deref_pbuc1=vbuc2 + //SEG718 [335] *((const byte*) PROCPORT_DDR#0) ← (const byte) PROCPORT_DDR_MEMORY_MASK#0 -- _deref_pbuc1=vbuc2 lda #PROCPORT_DDR_MEMORY_MASK sta PROCPORT_DDR - //SEG715 [332] *((const byte*) PROCPORT#0) ← (const byte) PROCPORT_RAM_IO#0 -- _deref_pbuc1=vbuc2 + //SEG719 [336] *((const byte*) PROCPORT#0) ← (const byte) PROCPORT_RAM_IO#0 -- _deref_pbuc1=vbuc2 lda #PROCPORT_RAM_IO sta PROCPORT - //SEG716 [333] *((const byte*) CIA1_INTERRUPT#0) ← (const byte) CIA_INTERRUPT_CLEAR#0 -- _deref_pbuc1=vbuc2 + //SEG720 [337] *((const byte*) CIA1_INTERRUPT#0) ← (const byte) CIA_INTERRUPT_CLEAR#0 -- _deref_pbuc1=vbuc2 lda #CIA_INTERRUPT_CLEAR sta CIA1_INTERRUPT - //SEG717 [334] *((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 + //SEG721 [338] *((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 - //SEG718 [335] *((const byte*) RASTER#0) ← (const byte) IRQ_RASTER_FIRST#0 -- _deref_pbuc1=vbuc2 + //SEG722 [339] *((const byte*) RASTER#0) ← (const byte) IRQ_RASTER_FIRST#0 -- _deref_pbuc1=vbuc2 lda #IRQ_RASTER_FIRST sta RASTER - //SEG719 [336] *((const byte*) IRQ_ENABLE#0) ← (const byte) IRQ_RASTER#0 -- _deref_pbuc1=vbuc2 + //SEG723 [340] *((const byte*) IRQ_ENABLE#0) ← (const byte) IRQ_RASTER#0 -- _deref_pbuc1=vbuc2 lda #IRQ_RASTER sta IRQ_ENABLE - //SEG720 [337] *((const void()**) HARDWARE_IRQ#0) ← &interrupt(HARDWARE_CLOBBER)(void()) irq() -- _deref_pptc1=pprc2 + //SEG724 [341] *((const void()**) HARDWARE_IRQ#0) ← &interrupt(HARDWARE_CLOBBER)(void()) irq() -- _deref_pptc1=pprc2 lda #irq sta HARDWARE_IRQ+1 - //SEG721 asm { cli } + //SEG725 asm { cli } cli - //SEG722 sprites_irq_init::@return - //SEG723 [339] return + //SEG726 sprites_irq_init::@return + //SEG727 [343] return rts } -//SEG724 sprites_init +//SEG728 sprites_init sprites_init: { .label xpos = 2 - //SEG725 [340] *((const byte*) SPRITES_ENABLE#0) ← (byte/signed byte/word/signed word/dword/signed dword) 15 -- _deref_pbuc1=vbuc2 + //SEG729 [344] *((const byte*) SPRITES_ENABLE#0) ← (byte/signed byte/word/signed word/dword/signed dword) 15 -- _deref_pbuc1=vbuc2 lda #$f sta SPRITES_ENABLE - //SEG726 [341] *((const byte*) SPRITES_MC#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2 + //SEG730 [345] *((const byte*) SPRITES_MC#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2 lda #0 sta SPRITES_MC - //SEG727 [342] *((const byte*) SPRITES_EXPAND_Y#0) ← *((const byte*) SPRITES_MC#0) -- _deref_pbuc1=_deref_pbuc2 + //SEG731 [346] *((const byte*) SPRITES_EXPAND_Y#0) ← *((const byte*) SPRITES_MC#0) -- _deref_pbuc1=_deref_pbuc2 sta SPRITES_EXPAND_Y - //SEG728 [343] *((const byte*) SPRITES_EXPAND_X#0) ← *((const byte*) SPRITES_EXPAND_Y#0) -- _deref_pbuc1=_deref_pbuc2 + //SEG732 [347] *((const byte*) SPRITES_EXPAND_X#0) ← *((const byte*) SPRITES_EXPAND_Y#0) -- _deref_pbuc1=_deref_pbuc2 sta SPRITES_EXPAND_X - //SEG729 [344] phi from sprites_init to sprites_init::@1 [phi:sprites_init->sprites_init::@1] - //SEG730 [344] 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 + //SEG733 [348] phi from sprites_init to sprites_init::@1 [phi:sprites_init->sprites_init::@1] + //SEG734 [348] 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 - //SEG731 [344] 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 + //SEG735 [348] 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 - //SEG732 [344] phi from sprites_init::@1 to sprites_init::@1 [phi:sprites_init::@1->sprites_init::@1] - //SEG733 [344] phi (byte) sprites_init::xpos#2 = (byte) sprites_init::xpos#1 [phi:sprites_init::@1->sprites_init::@1#0] -- register_copy - //SEG734 [344] phi (byte) sprites_init::s#2 = (byte) sprites_init::s#1 [phi:sprites_init::@1->sprites_init::@1#1] -- register_copy - //SEG735 sprites_init::@1 + //SEG736 [348] phi from sprites_init::@1 to sprites_init::@1 [phi:sprites_init::@1->sprites_init::@1] + //SEG737 [348] phi (byte) sprites_init::xpos#2 = (byte) sprites_init::xpos#1 [phi:sprites_init::@1->sprites_init::@1#0] -- register_copy + //SEG738 [348] phi (byte) sprites_init::s#2 = (byte) sprites_init::s#1 [phi:sprites_init::@1->sprites_init::@1#1] -- register_copy + //SEG739 sprites_init::@1 b1: - //SEG736 [345] (byte) sprites_init::s2#0 ← (byte) sprites_init::s#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuaa=vbuxx_rol_1 + //SEG740 [349] (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 - //SEG737 [346] *((const byte*) SPRITES_XPOS#0 + (byte) sprites_init::s2#0) ← (byte) sprites_init::xpos#2 -- pbuc1_derefidx_vbuaa=vbuz1 + //SEG741 [350] *((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 - //SEG738 [347] *((const byte*) SPRITES_COLS#0 + (byte) sprites_init::s#2) ← (const byte) BLACK#0 -- pbuc1_derefidx_vbuxx=vbuc2 + //SEG742 [351] *((const byte*) SPRITES_COLS#0 + (byte) sprites_init::s#2) ← (const byte) BLACK#0 -- pbuc1_derefidx_vbuxx=vbuc2 lda #BLACK sta SPRITES_COLS,x - //SEG739 [348] (byte) sprites_init::xpos#1 ← (byte) sprites_init::xpos#2 + (byte/signed byte/word/signed word/dword/signed dword) 24 -- vbuz1=vbuz1_plus_vbuc1 + //SEG743 [352] (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 - //SEG740 [349] (byte) sprites_init::s#1 ← ++ (byte) sprites_init::s#2 -- vbuxx=_inc_vbuxx + //SEG744 [353] (byte) sprites_init::s#1 ← ++ (byte) sprites_init::s#2 -- vbuxx=_inc_vbuxx inx - //SEG741 [350] 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 + //SEG745 [354] 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 - //SEG742 sprites_init::@return - //SEG743 [351] return + //SEG746 sprites_init::@return + //SEG747 [355] return rts } -//SEG744 render_init +//SEG748 render_init render_init: { .const vicSelectGfxBank1_toDd001_return = 3^(>PLAYFIELD_SCREEN)>>6 .const toD0181_return = (>(PLAYFIELD_SCREEN&$3fff)<<2)|(>PLAYFIELD_CHARSET)>>2&$f .label _18 = $c - .label li = 5 - .label line = 5 + .label li = 4 + .label line = 4 .label l = 2 - //SEG745 render_init::vicSelectGfxBank1 - //SEG746 [353] *((const byte*) CIA2_PORT_A_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3 -- _deref_pbuc1=vbuc2 + //SEG749 render_init::vicSelectGfxBank1 + //SEG750 [357] *((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 - //SEG747 [354] phi from render_init::vicSelectGfxBank1 to render_init::vicSelectGfxBank1_toDd001 [phi:render_init::vicSelectGfxBank1->render_init::vicSelectGfxBank1_toDd001] - //SEG748 render_init::vicSelectGfxBank1_toDd001 - //SEG749 render_init::vicSelectGfxBank1_@1 - //SEG750 [355] *((const byte*) CIA2_PORT_A#0) ← (const byte) render_init::vicSelectGfxBank1_toDd001_return#0 -- _deref_pbuc1=vbuc2 + //SEG751 [358] phi from render_init::vicSelectGfxBank1 to render_init::vicSelectGfxBank1_toDd001 [phi:render_init::vicSelectGfxBank1->render_init::vicSelectGfxBank1_toDd001] + //SEG752 render_init::vicSelectGfxBank1_toDd001 + //SEG753 render_init::vicSelectGfxBank1_@1 + //SEG754 [359] *((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 - //SEG751 [356] phi from render_init::vicSelectGfxBank1_@1 to render_init::toD0181 [phi:render_init::vicSelectGfxBank1_@1->render_init::toD0181] - //SEG752 render_init::toD0181 - //SEG753 render_init::@8 - //SEG754 [357] *((const byte*) D018#0) ← (const byte) render_init::toD0181_return#0 -- _deref_pbuc1=vbuc2 + //SEG755 [360] phi from render_init::vicSelectGfxBank1_@1 to render_init::toD0181 [phi:render_init::vicSelectGfxBank1_@1->render_init::toD0181] + //SEG756 render_init::toD0181 + //SEG757 render_init::@8 + //SEG758 [361] *((const byte*) D018#0) ← (const byte) render_init::toD0181_return#0 -- _deref_pbuc1=vbuc2 lda #toD0181_return sta D018 - //SEG755 [358] *((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 + //SEG759 [362] *((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 - //SEG756 [359] *((const byte*) BGCOL1#0) ← (const byte) BLACK#0 -- _deref_pbuc1=vbuc2 + //SEG760 [363] *((const byte*) BGCOL1#0) ← (const byte) BLACK#0 -- _deref_pbuc1=vbuc2 lda #BLACK sta BGCOL1 - //SEG757 [360] *((const byte*) BGCOL2#0) ← (const byte) BLUE#0 -- _deref_pbuc1=vbuc2 + //SEG761 [364] *((const byte*) BGCOL2#0) ← (const byte) BLUE#0 -- _deref_pbuc1=vbuc2 lda #BLUE sta BGCOL2 - //SEG758 [361] *((const byte*) BGCOL3#0) ← (const byte) CYAN#0 -- _deref_pbuc1=vbuc2 + //SEG762 [365] *((const byte*) BGCOL3#0) ← (const byte) CYAN#0 -- _deref_pbuc1=vbuc2 lda #CYAN sta BGCOL3 - //SEG759 [362] *((const byte*) BGCOL4#0) ← (const byte) GREY#0 -- _deref_pbuc1=vbuc2 + //SEG763 [366] *((const byte*) BGCOL4#0) ← (const byte) GREY#0 -- _deref_pbuc1=vbuc2 lda #GREY sta BGCOL4 - //SEG760 [363] call fill - //SEG761 [404] phi from render_init::@8 to fill [phi:render_init::@8->fill] + //SEG764 [367] call fill + //SEG765 [408] phi from render_init::@8 to fill [phi:render_init::@8->fill] jsr fill - //SEG762 [364] phi from render_init::@8 to render_init::@9 [phi:render_init::@8->render_init::@9] - //SEG763 render_init::@9 - //SEG764 [365] call render_screen_original - //SEG765 [382] phi from render_init::@9 to render_screen_original [phi:render_init::@9->render_screen_original] + //SEG766 [368] phi from render_init::@8 to render_init::@9 [phi:render_init::@8->render_init::@9] + //SEG767 render_init::@9 + //SEG768 [369] call render_screen_original + //SEG769 [386] phi from render_init::@9 to render_screen_original [phi:render_init::@9->render_screen_original] jsr render_screen_original - //SEG766 [366] phi from render_init::@9 to render_init::@1 [phi:render_init::@9->render_init::@1] - //SEG767 [366] phi (byte*) render_init::li#2 = (const byte*) PLAYFIELD_SCREEN#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::@9->render_init::@1#0] -- pbuz1=pbuc1 + //SEG770 [370] phi from render_init::@9 to render_init::@1 [phi:render_init::@9->render_init::@1] + //SEG771 [370] phi (byte*) render_init::li#2 = (const byte*) PLAYFIELD_SCREEN#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::@9->render_init::@1#0] -- pbuz1=pbuc1 lda #PLAYFIELD_SCREEN+2*$28+$10 sta li+1 - //SEG768 [366] phi (byte) render_init::i#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_init::@9->render_init::@1#1] -- vbuxx=vbuc1 + //SEG772 [370] phi (byte) render_init::i#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_init::@9->render_init::@1#1] -- vbuxx=vbuc1 ldx #0 - //SEG769 [366] phi from render_init::@1 to render_init::@1 [phi:render_init::@1->render_init::@1] - //SEG770 [366] phi (byte*) render_init::li#2 = (byte*) render_init::li#1 [phi:render_init::@1->render_init::@1#0] -- register_copy - //SEG771 [366] phi (byte) render_init::i#2 = (byte) render_init::i#1 [phi:render_init::@1->render_init::@1#1] -- register_copy - //SEG772 render_init::@1 + //SEG773 [370] phi from render_init::@1 to render_init::@1 [phi:render_init::@1->render_init::@1] + //SEG774 [370] phi (byte*) render_init::li#2 = (byte*) render_init::li#1 [phi:render_init::@1->render_init::@1#0] -- register_copy + //SEG775 [370] phi (byte) render_init::i#2 = (byte) render_init::i#1 [phi:render_init::@1->render_init::@1#1] -- register_copy + //SEG776 render_init::@1 b1: - //SEG773 [367] (byte~) render_init::$11 ← (byte) render_init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuaa=vbuxx_rol_1 + //SEG777 [371] (byte~) render_init::$11 ← (byte) render_init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuaa=vbuxx_rol_1 txa asl - //SEG774 [368] *((const byte*[PLAYFIELD_LINES#0]) screen_lines#0 + (byte~) render_init::$11) ← (byte*) render_init::li#2 -- pptc1_derefidx_vbuaa=pbuz1 + //SEG778 [372] *((const byte*[PLAYFIELD_LINES#0]) screen_lines#0 + (byte~) render_init::$11) ← (byte*) render_init::li#2 -- pptc1_derefidx_vbuaa=pbuz1 tay lda li sta screen_lines,y lda li+1 sta screen_lines+1,y - //SEG775 [369] (byte*) render_init::li#1 ← (byte*) render_init::li#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 -- pbuz1=pbuz1_plus_vbuc1 + //SEG779 [373] (byte*) render_init::li#1 ← (byte*) render_init::li#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 -- pbuz1=pbuz1_plus_vbuc1 lda li clc adc #$28 @@ -17723,33 +17764,33 @@ render_init: { bcc !+ inc li+1 !: - //SEG776 [370] (byte) render_init::i#1 ← ++ (byte) render_init::i#2 -- vbuxx=_inc_vbuxx + //SEG780 [374] (byte) render_init::i#1 ← ++ (byte) render_init::i#2 -- vbuxx=_inc_vbuxx inx - //SEG777 [371] 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 + //SEG781 [375] 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 - //SEG778 [372] phi from render_init::@1 to render_init::@2 [phi:render_init::@1->render_init::@2] - //SEG779 [372] phi (byte) render_init::l#4 = (byte/signed byte/word/signed word/dword/signed dword) 2 [phi:render_init::@1->render_init::@2#0] -- vbuz1=vbuc1 + //SEG782 [376] phi from render_init::@1 to render_init::@2 [phi:render_init::@1->render_init::@2] + //SEG783 [376] phi (byte) render_init::l#4 = (byte/signed byte/word/signed word/dword/signed dword) 2 [phi:render_init::@1->render_init::@2#0] -- vbuz1=vbuc1 lda #2 sta l - //SEG780 [372] phi (byte*) render_init::line#4 = (const byte*) COLS#0+(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 16 [phi:render_init::@1->render_init::@2#1] -- pbuz1=pbuc1 + //SEG784 [376] phi (byte*) render_init::line#4 = (const byte*) COLS#0+(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 16 [phi:render_init::@1->render_init::@2#1] -- pbuz1=pbuc1 lda #COLS+4*$28+$10 sta line+1 - //SEG781 [372] phi from render_init::@5 to render_init::@2 [phi:render_init::@5->render_init::@2] - //SEG782 [372] phi (byte) render_init::l#4 = (byte) render_init::l#1 [phi:render_init::@5->render_init::@2#0] -- register_copy - //SEG783 [372] phi (byte*) render_init::line#4 = (byte*) render_init::line#1 [phi:render_init::@5->render_init::@2#1] -- register_copy - //SEG784 render_init::@2 + //SEG785 [376] phi from render_init::@5 to render_init::@2 [phi:render_init::@5->render_init::@2] + //SEG786 [376] phi (byte) render_init::l#4 = (byte) render_init::l#1 [phi:render_init::@5->render_init::@2#0] -- register_copy + //SEG787 [376] phi (byte*) render_init::line#4 = (byte*) render_init::line#1 [phi:render_init::@5->render_init::@2#1] -- register_copy + //SEG788 render_init::@2 b2: - //SEG785 [373] phi from render_init::@2 to render_init::@3 [phi:render_init::@2->render_init::@3] - //SEG786 [373] phi (byte) render_init::c#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_init::@2->render_init::@3#0] -- vbuxx=vbuc1 + //SEG789 [377] phi from render_init::@2 to render_init::@3 [phi:render_init::@2->render_init::@3] + //SEG790 [377] phi (byte) render_init::c#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_init::@2->render_init::@3#0] -- vbuxx=vbuc1 ldx #0 - //SEG787 [373] phi from render_init::@3 to render_init::@3 [phi:render_init::@3->render_init::@3] - //SEG788 [373] phi (byte) render_init::c#2 = (byte) render_init::c#1 [phi:render_init::@3->render_init::@3#0] -- register_copy - //SEG789 render_init::@3 + //SEG791 [377] phi from render_init::@3 to render_init::@3 [phi:render_init::@3->render_init::@3] + //SEG792 [377] phi (byte) render_init::c#2 = (byte) render_init::c#1 [phi:render_init::@3->render_init::@3#0] -- register_copy + //SEG793 render_init::@3 b3: - //SEG790 [374] (byte*~) render_init::$18 ← (byte*) render_init::line#4 + (byte) render_init::c#2 -- pbuz1=pbuz2_plus_vbuxx + //SEG794 [378] (byte*~) render_init::$18 ← (byte*) render_init::line#4 + (byte) render_init::c#2 -- pbuz1=pbuz2_plus_vbuxx txa clc adc line @@ -17757,17 +17798,17 @@ render_init: { lda #0 adc line+1 sta _18+1 - //SEG791 [375] *((byte*~) render_init::$18) ← (const byte) WHITE#0 -- _deref_pbuz1=vbuc1 + //SEG795 [379] *((byte*~) render_init::$18) ← (const byte) WHITE#0 -- _deref_pbuz1=vbuc1 lda #WHITE ldy #0 sta (_18),y - //SEG792 [376] (byte) render_init::c#1 ← ++ (byte) render_init::c#2 -- vbuxx=_inc_vbuxx + //SEG796 [380] (byte) render_init::c#1 ← ++ (byte) render_init::c#2 -- vbuxx=_inc_vbuxx inx - //SEG793 [377] if((byte) render_init::c#1!=(const byte) PLAYFIELD_COLS#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_init::@3 -- vbuxx_neq_vbuc1_then_la1 + //SEG797 [381] if((byte) render_init::c#1!=(const byte) PLAYFIELD_COLS#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_init::@3 -- vbuxx_neq_vbuc1_then_la1 cpx #PLAYFIELD_COLS-1+1 bne b3 - //SEG794 render_init::@5 - //SEG795 [378] (byte*) render_init::line#1 ← (byte*) render_init::line#4 + (byte/signed byte/word/signed word/dword/signed dword) 40 -- pbuz1=pbuz1_plus_vbuc1 + //SEG798 render_init::@5 + //SEG799 [382] (byte*) render_init::line#1 ← (byte*) render_init::line#4 + (byte/signed byte/word/signed word/dword/signed dword) 40 -- pbuz1=pbuz1_plus_vbuc1 lda line clc adc #$28 @@ -17775,284 +17816,284 @@ render_init: { bcc !+ inc line+1 !: - //SEG796 [379] (byte) render_init::l#1 ← ++ (byte) render_init::l#4 -- vbuz1=_inc_vbuz1 + //SEG800 [383] (byte) render_init::l#1 ← ++ (byte) render_init::l#4 -- vbuz1=_inc_vbuz1 inc l - //SEG797 [380] if((byte) render_init::l#1!=(const byte) PLAYFIELD_LINES#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_init::@2 -- vbuz1_neq_vbuc1_then_la1 + //SEG801 [384] if((byte) render_init::l#1!=(const byte) PLAYFIELD_LINES#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_init::@2 -- vbuz1_neq_vbuc1_then_la1 lda l cmp #PLAYFIELD_LINES-1+1 bne b2 - //SEG798 render_init::@return - //SEG799 [381] return + //SEG802 render_init::@return + //SEG803 [385] return rts } -//SEG800 render_screen_original +//SEG804 render_screen_original render_screen_original: { .const SPACE = 0 .label screen = $c - .label orig = 5 + .label orig = 4 .label y = 2 - //SEG801 [383] phi from render_screen_original to render_screen_original::@1 [phi:render_screen_original->render_screen_original::@1] - //SEG802 [383] 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 + //SEG805 [387] phi from render_screen_original to render_screen_original::@1 [phi:render_screen_original->render_screen_original::@1] + //SEG806 [387] 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 - //SEG803 [383] phi (byte*) render_screen_original::orig#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#1] -- pbuz1=pbuc1 + //SEG807 [387] phi (byte*) render_screen_original::orig#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#1] -- pbuz1=pbuc1 lda #PLAYFIELD_SCREEN_ORIGINAL+$20*2 sta orig+1 - //SEG804 [383] phi (byte*) render_screen_original::screen#7 = (const byte*) PLAYFIELD_SCREEN#0 [phi:render_screen_original->render_screen_original::@1#2] -- pbuz1=pbuc1 + //SEG808 [387] phi (byte*) render_screen_original::screen#7 = (const byte*) PLAYFIELD_SCREEN#0 [phi:render_screen_original->render_screen_original::@1#2] -- pbuz1=pbuc1 lda #PLAYFIELD_SCREEN sta screen+1 - //SEG805 [383] phi from render_screen_original::@7 to render_screen_original::@1 [phi:render_screen_original::@7->render_screen_original::@1] - //SEG806 [383] 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 - //SEG807 [383] phi (byte*) render_screen_original::orig#4 = (byte*) render_screen_original::orig#1 [phi:render_screen_original::@7->render_screen_original::@1#1] -- register_copy - //SEG808 [383] phi (byte*) render_screen_original::screen#7 = (byte*) render_screen_original::screen#3 [phi:render_screen_original::@7->render_screen_original::@1#2] -- register_copy - //SEG809 render_screen_original::@1 + //SEG809 [387] phi from render_screen_original::@7 to render_screen_original::@1 [phi:render_screen_original::@7->render_screen_original::@1] + //SEG810 [387] 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 + //SEG811 [387] phi (byte*) render_screen_original::orig#4 = (byte*) render_screen_original::orig#1 [phi:render_screen_original::@7->render_screen_original::@1#1] -- register_copy + //SEG812 [387] phi (byte*) render_screen_original::screen#7 = (byte*) render_screen_original::screen#3 [phi:render_screen_original::@7->render_screen_original::@1#2] -- register_copy + //SEG813 render_screen_original::@1 b1: - //SEG810 [384] phi from render_screen_original::@1 to render_screen_original::@2 [phi:render_screen_original::@1->render_screen_original::@2] - //SEG811 [384] 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 + //SEG814 [388] phi from render_screen_original::@1 to render_screen_original::@2 [phi:render_screen_original::@1->render_screen_original::@2] + //SEG815 [388] 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 - //SEG812 [384] phi (byte*) render_screen_original::screen#4 = (byte*) render_screen_original::screen#7 [phi:render_screen_original::@1->render_screen_original::@2#1] -- register_copy - //SEG813 [384] phi from render_screen_original::@2 to render_screen_original::@2 [phi:render_screen_original::@2->render_screen_original::@2] - //SEG814 [384] 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 - //SEG815 [384] phi (byte*) render_screen_original::screen#4 = (byte*) render_screen_original::screen#1 [phi:render_screen_original::@2->render_screen_original::@2#1] -- register_copy - //SEG816 render_screen_original::@2 + //SEG816 [388] phi (byte*) render_screen_original::screen#4 = (byte*) render_screen_original::screen#7 [phi:render_screen_original::@1->render_screen_original::@2#1] -- register_copy + //SEG817 [388] phi from render_screen_original::@2 to render_screen_original::@2 [phi:render_screen_original::@2->render_screen_original::@2] + //SEG818 [388] 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 + //SEG819 [388] phi (byte*) render_screen_original::screen#4 = (byte*) render_screen_original::screen#1 [phi:render_screen_original::@2->render_screen_original::@2#1] -- register_copy + //SEG820 render_screen_original::@2 b2: - //SEG817 [385] *((byte*) render_screen_original::screen#4) ← (const byte) render_screen_original::SPACE#0 -- _deref_pbuz1=vbuc1 + //SEG821 [389] *((byte*) render_screen_original::screen#4) ← (const byte) render_screen_original::SPACE#0 -- _deref_pbuz1=vbuc1 lda #SPACE ldy #0 sta (screen),y - //SEG818 [386] (byte*) render_screen_original::screen#1 ← ++ (byte*) render_screen_original::screen#4 -- pbuz1=_inc_pbuz1 + //SEG822 [390] (byte*) render_screen_original::screen#1 ← ++ (byte*) render_screen_original::screen#4 -- pbuz1=_inc_pbuz1 inc screen bne !+ inc screen+1 !: - //SEG819 [387] (byte) render_screen_original::x#1 ← ++ (byte) render_screen_original::x#4 -- vbuxx=_inc_vbuxx + //SEG823 [391] (byte) render_screen_original::x#1 ← ++ (byte) render_screen_original::x#4 -- vbuxx=_inc_vbuxx inx - //SEG820 [388] 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 + //SEG824 [392] 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 - //SEG821 [389] 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] - //SEG822 [389] 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 - //SEG823 [389] phi (byte*) render_screen_original::screen#5 = (byte*) render_screen_original::screen#1 [phi:render_screen_original::@2/render_screen_original::@3->render_screen_original::@3#1] -- register_copy - //SEG824 [389] phi (byte*) render_screen_original::orig#2 = (byte*) render_screen_original::orig#4 [phi:render_screen_original::@2/render_screen_original::@3->render_screen_original::@3#2] -- register_copy - //SEG825 render_screen_original::@3 + //SEG825 [393] 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] + //SEG826 [393] 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 + //SEG827 [393] phi (byte*) render_screen_original::screen#5 = (byte*) render_screen_original::screen#1 [phi:render_screen_original::@2/render_screen_original::@3->render_screen_original::@3#1] -- register_copy + //SEG828 [393] phi (byte*) render_screen_original::orig#2 = (byte*) render_screen_original::orig#4 [phi:render_screen_original::@2/render_screen_original::@3->render_screen_original::@3#2] -- register_copy + //SEG829 render_screen_original::@3 b3: - //SEG826 [390] (byte/signed word/word/dword/signed dword~) render_screen_original::$3 ← *((byte*) render_screen_original::orig#2) + (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuaa=_deref_pbuz1_plus_1 + //SEG830 [394] (byte/signed word/word/dword/signed dword~) render_screen_original::$3 ← *((byte*) render_screen_original::orig#2) + (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuaa=_deref_pbuz1_plus_1 ldy #0 lda (orig),y clc adc #1 - //SEG827 [391] *((byte*) render_screen_original::screen#5) ← (byte/signed word/word/dword/signed dword~) render_screen_original::$3 -- _deref_pbuz1=vbuaa + //SEG831 [395] *((byte*) render_screen_original::screen#5) ← (byte/signed word/word/dword/signed dword~) render_screen_original::$3 -- _deref_pbuz1=vbuaa sta (screen),y - //SEG828 [392] (byte*) render_screen_original::screen#2 ← ++ (byte*) render_screen_original::screen#5 -- pbuz1=_inc_pbuz1 + //SEG832 [396] (byte*) render_screen_original::screen#2 ← ++ (byte*) render_screen_original::screen#5 -- pbuz1=_inc_pbuz1 inc screen bne !+ inc screen+1 !: - //SEG829 [393] (byte*) render_screen_original::orig#1 ← ++ (byte*) render_screen_original::orig#2 -- pbuz1=_inc_pbuz1 + //SEG833 [397] (byte*) render_screen_original::orig#1 ← ++ (byte*) render_screen_original::orig#2 -- pbuz1=_inc_pbuz1 inc orig bne !+ inc orig+1 !: - //SEG830 [394] (byte) render_screen_original::x#2 ← ++ (byte) render_screen_original::x#5 -- vbuxx=_inc_vbuxx + //SEG834 [398] (byte) render_screen_original::x#2 ← ++ (byte) render_screen_original::x#5 -- vbuxx=_inc_vbuxx inx - //SEG831 [395] 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 + //SEG835 [399] 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 - //SEG832 [396] 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] - //SEG833 [396] 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 - //SEG834 [396] phi (byte*) render_screen_original::screen#6 = (byte*) render_screen_original::screen#2 [phi:render_screen_original::@3/render_screen_original::@4->render_screen_original::@4#1] -- register_copy - //SEG835 render_screen_original::@4 + //SEG836 [400] 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] + //SEG837 [400] 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 + //SEG838 [400] phi (byte*) render_screen_original::screen#6 = (byte*) render_screen_original::screen#2 [phi:render_screen_original::@3/render_screen_original::@4->render_screen_original::@4#1] -- register_copy + //SEG839 render_screen_original::@4 b4: - //SEG836 [397] *((byte*) render_screen_original::screen#6) ← (const byte) render_screen_original::SPACE#0 -- _deref_pbuz1=vbuc1 + //SEG840 [401] *((byte*) render_screen_original::screen#6) ← (const byte) render_screen_original::SPACE#0 -- _deref_pbuz1=vbuc1 lda #SPACE ldy #0 sta (screen),y - //SEG837 [398] (byte*) render_screen_original::screen#3 ← ++ (byte*) render_screen_original::screen#6 -- pbuz1=_inc_pbuz1 + //SEG841 [402] (byte*) render_screen_original::screen#3 ← ++ (byte*) render_screen_original::screen#6 -- pbuz1=_inc_pbuz1 inc screen bne !+ inc screen+1 !: - //SEG838 [399] (byte) render_screen_original::x#3 ← ++ (byte) render_screen_original::x#6 -- vbuxx=_inc_vbuxx + //SEG842 [403] (byte) render_screen_original::x#3 ← ++ (byte) render_screen_original::x#6 -- vbuxx=_inc_vbuxx inx - //SEG839 [400] 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 + //SEG843 [404] 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 - //SEG840 render_screen_original::@7 - //SEG841 [401] (byte) render_screen_original::y#1 ← ++ (byte) render_screen_original::y#6 -- vbuz1=_inc_vbuz1 + //SEG844 render_screen_original::@7 + //SEG845 [405] (byte) render_screen_original::y#1 ← ++ (byte) render_screen_original::y#6 -- vbuz1=_inc_vbuz1 inc y - //SEG842 [402] 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 + //SEG846 [406] 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 - //SEG843 render_screen_original::@return - //SEG844 [403] return + //SEG847 render_screen_original::@return + //SEG848 [407] return rts } -//SEG845 fill +//SEG849 fill fill: { .const size = $3e8 .label end = COLS+size - .label addr = 5 - //SEG846 [405] phi from fill to fill::@1 [phi:fill->fill::@1] - //SEG847 [405] phi (byte*) fill::addr#2 = (const byte*) COLS#0 [phi:fill->fill::@1#0] -- pbuz1=pbuc1 + .label addr = 4 + //SEG850 [409] phi from fill to fill::@1 [phi:fill->fill::@1] + //SEG851 [409] phi (byte*) fill::addr#2 = (const byte*) COLS#0 [phi:fill->fill::@1#0] -- pbuz1=pbuc1 lda #COLS sta addr+1 - //SEG848 [405] phi from fill::@1 to fill::@1 [phi:fill::@1->fill::@1] - //SEG849 [405] phi (byte*) fill::addr#2 = (byte*) fill::addr#1 [phi:fill::@1->fill::@1#0] -- register_copy - //SEG850 fill::@1 + //SEG852 [409] phi from fill::@1 to fill::@1 [phi:fill::@1->fill::@1] + //SEG853 [409] phi (byte*) fill::addr#2 = (byte*) fill::addr#1 [phi:fill::@1->fill::@1#0] -- register_copy + //SEG854 fill::@1 b1: - //SEG851 [406] *((byte*) fill::addr#2) ← (const byte) DARK_GREY#0 -- _deref_pbuz1=vbuc1 + //SEG855 [410] *((byte*) fill::addr#2) ← (const byte) DARK_GREY#0 -- _deref_pbuz1=vbuc1 lda #DARK_GREY ldy #0 sta (addr),y - //SEG852 [407] (byte*) fill::addr#1 ← ++ (byte*) fill::addr#2 -- pbuz1=_inc_pbuz1 + //SEG856 [411] (byte*) fill::addr#1 ← ++ (byte*) fill::addr#2 -- pbuz1=_inc_pbuz1 inc addr bne !+ inc addr+1 !: - //SEG853 [408] if((byte*) fill::addr#1!=(const byte*) fill::end#0) goto fill::@1 -- pbuz1_neq_pbuc1_then_la1 + //SEG857 [412] if((byte*) fill::addr#1!=(const byte*) fill::end#0) goto fill::@1 -- pbuz1_neq_pbuc1_then_la1 lda addr+1 cmp #>end bne b1 lda addr cmp #$ffff sta SID_VOICE3_FREQ+1 - //SEG858 [411] *((const byte*) SID_VOICE3_CONTROL#0) ← (const byte) SID_CONTROL_NOISE#0 -- _deref_pbuc1=vbuc2 + //SEG862 [415] *((const byte*) SID_VOICE3_CONTROL#0) ← (const byte) SID_CONTROL_NOISE#0 -- _deref_pbuc1=vbuc2 lda #SID_CONTROL_NOISE sta SID_VOICE3_CONTROL - //SEG859 sid_rnd_init::@return - //SEG860 [412] return + //SEG863 sid_rnd_init::@return + //SEG864 [416] return rts } -//SEG861 irq +//SEG865 irq irq: { .const toSpritePtr2_return = PLAYFIELD_SPRITES>>6 - //SEG862 entry interrupt(HARDWARE_CLOBBER) + //SEG866 entry interrupt(HARDWARE_CLOBBER) sta rega+1 stx regx+1 - //SEG863 [413] *((const byte*) BORDERCOL#0) ← (const byte) DARK_GREY#0 -- _deref_pbuc1=vbuc2 + //SEG867 [417] *((const byte*) BORDERCOL#0) ← (const byte) DARK_GREY#0 -- _deref_pbuc1=vbuc2 lda #DARK_GREY sta BORDERCOL - //SEG864 [414] (byte) irq::ypos#0 ← (byte) irq_sprite_ypos#0 -- vbuaa=vbuz1 + //SEG868 [418] (byte) irq::ypos#0 ← (byte) irq_sprite_ypos#0 -- vbuaa=vbuz1 lda irq_sprite_ypos - //SEG865 [415] *((const byte*) SPRITES_YPOS#0) ← (byte) irq::ypos#0 -- _deref_pbuc1=vbuaa + //SEG869 [419] *((const byte*) SPRITES_YPOS#0) ← (byte) irq::ypos#0 -- _deref_pbuc1=vbuaa sta SPRITES_YPOS - //SEG866 [416] *((const byte*) SPRITES_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte) irq::ypos#0 -- _deref_pbuc1=vbuaa + //SEG870 [420] *((const byte*) SPRITES_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte) irq::ypos#0 -- _deref_pbuc1=vbuaa sta SPRITES_YPOS+2 - //SEG867 [417] *((const byte*) SPRITES_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte) irq::ypos#0 -- _deref_pbuc1=vbuaa + //SEG871 [421] *((const byte*) SPRITES_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte) irq::ypos#0 -- _deref_pbuc1=vbuaa sta SPRITES_YPOS+4 - //SEG868 [418] *((const byte*) SPRITES_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte) irq::ypos#0 -- _deref_pbuc1=vbuaa + //SEG872 [422] *((const byte*) SPRITES_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte) irq::ypos#0 -- _deref_pbuc1=vbuaa sta SPRITES_YPOS+6 - //SEG869 irq::@1 + //SEG873 irq::@1 b1: - //SEG870 [419] if(*((const byte*) RASTER#0)!=(byte) irq_sprite_ypos#0) goto irq::@1 -- _deref_pbuc1_neq_vbuz1_then_la1 + //SEG874 [423] if(*((const byte*) RASTER#0)!=(byte) irq_sprite_ypos#0) goto irq::@1 -- _deref_pbuc1_neq_vbuz1_then_la1 lda RASTER cmp irq_sprite_ypos bne b1 - //SEG871 irq::@5 - //SEG872 [420] (byte) irq::ptr#0 ← (byte) irq_sprite_ptr#0 -- vbuaa=vbuz1 + //SEG875 irq::@5 + //SEG876 [424] (byte) irq::ptr#0 ← (byte) irq_sprite_ptr#0 -- vbuaa=vbuz1 lda irq_sprite_ptr - //SEG873 [421] *((const byte*) PLAYFIELD_SPRITE_PTRS#0) ← (byte) irq::ptr#0 -- _deref_pbuc1=vbuaa + //SEG877 [425] *((const byte*) PLAYFIELD_SPRITE_PTRS#0) ← (byte) irq::ptr#0 -- _deref_pbuc1=vbuaa sta PLAYFIELD_SPRITE_PTRS - //SEG874 [422] (byte) irq::ptr#1 ← ++ (byte) irq::ptr#0 -- vbuxx=_inc_vbuaa + //SEG878 [426] (byte) irq::ptr#1 ← ++ (byte) irq::ptr#0 -- vbuxx=_inc_vbuaa tax inx - //SEG875 [423] *((const byte*) PLAYFIELD_SPRITE_PTRS#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte) irq::ptr#1 -- _deref_pbuc1=vbuxx + //SEG879 [427] *((const byte*) PLAYFIELD_SPRITE_PTRS#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte) irq::ptr#1 -- _deref_pbuc1=vbuxx stx PLAYFIELD_SPRITE_PTRS+1 - //SEG876 [424] *((const byte*) PLAYFIELD_SPRITE_PTRS#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte) irq::ptr#1 -- _deref_pbuc1=vbuxx + //SEG880 [428] *((const byte*) PLAYFIELD_SPRITE_PTRS#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte) irq::ptr#1 -- _deref_pbuc1=vbuxx stx PLAYFIELD_SPRITE_PTRS+2 - //SEG877 [425] (byte) irq::ptr#2 ← ++ (byte) irq::ptr#1 -- vbuxx=_inc_vbuxx + //SEG881 [429] (byte) irq::ptr#2 ← ++ (byte) irq::ptr#1 -- vbuxx=_inc_vbuxx inx - //SEG878 [426] *((const byte*) PLAYFIELD_SPRITE_PTRS#0+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte) irq::ptr#2 -- _deref_pbuc1=vbuxx + //SEG882 [430] *((const byte*) PLAYFIELD_SPRITE_PTRS#0+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte) irq::ptr#2 -- _deref_pbuc1=vbuxx stx PLAYFIELD_SPRITE_PTRS+3 - //SEG879 [427] (byte) irq_cnt#1 ← ++ (byte) irq_cnt#0 -- vbuz1=_inc_vbuz1 + //SEG883 [431] (byte) irq_cnt#1 ← ++ (byte) irq_cnt#0 -- vbuz1=_inc_vbuz1 inc irq_cnt - //SEG880 [428] if((byte) irq_cnt#1==(byte/signed byte/word/signed word/dword/signed dword) 10) goto irq::@2 -- vbuz1_eq_vbuc1_then_la1 + //SEG884 [432] if((byte) irq_cnt#1==(byte/signed byte/word/signed word/dword/signed dword) 10) goto irq::@2 -- vbuz1_eq_vbuc1_then_la1 lda irq_cnt cmp #$a beq b2 - //SEG881 irq::@6 - //SEG882 [429] (byte) irq_raster_next#2 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 -- vbuz1=vbuz1_plus_vbuc1 + //SEG885 irq::@6 + //SEG886 [433] (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 - //SEG883 [430] (byte) irq_sprite_ypos#2 ← (byte) irq_sprite_ypos#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 -- vbuz1=vbuz1_plus_vbuc1 + //SEG887 [434] (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 - //SEG884 [431] (byte) irq_sprite_ptr#2 ← (byte) irq_sprite_ptr#0 + (byte/signed byte/word/signed word/dword/signed dword) 3 -- vbuz1=vbuz1_plus_vbuc1 + //SEG888 [435] (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 - //SEG885 [432] phi from irq::@6 irq::@9 to irq::@3 [phi:irq::@6/irq::@9->irq::@3] - //SEG886 [432] phi (byte) irq_raster_next#12 = (byte) irq_raster_next#2 [phi:irq::@6/irq::@9->irq::@3#0] -- register_copy - //SEG887 irq::@3 + //SEG889 [436] phi from irq::@6 irq::@9 to irq::@3 [phi:irq::@6/irq::@9->irq::@3] + //SEG890 [436] phi (byte) irq_raster_next#12 = (byte) irq_raster_next#2 [phi:irq::@6/irq::@9->irq::@3#0] -- register_copy + //SEG891 irq::@3 b3: - //SEG888 [433] (byte) irq::raster_next#0 ← (byte) irq_raster_next#12 -- vbuxx=vbuz1 + //SEG892 [437] (byte) irq::raster_next#0 ← (byte) irq_raster_next#12 -- vbuxx=vbuz1 ldx irq_raster_next - //SEG889 [434] (byte~) irq::$3 ← (byte) irq::raster_next#0 & (byte/signed byte/word/signed word/dword/signed dword) 7 -- vbuaa=vbuxx_band_vbuc1 + //SEG893 [438] (byte~) irq::$3 ← (byte) irq::raster_next#0 & (byte/signed byte/word/signed word/dword/signed dword) 7 -- vbuaa=vbuxx_band_vbuc1 txa and #7 - //SEG890 [435] if((byte~) irq::$3!=(byte/signed byte/word/signed word/dword/signed dword) 3) goto irq::@4 -- vbuaa_neq_vbuc1_then_la1 + //SEG894 [439] if((byte~) irq::$3!=(byte/signed byte/word/signed word/dword/signed dword) 3) goto irq::@4 -- vbuaa_neq_vbuc1_then_la1 cmp #3 bne b4 - //SEG891 irq::@8 - //SEG892 [436] (byte) irq::raster_next#1 ← (byte) irq::raster_next#0 - (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuxx=vbuxx_minus_1 + //SEG895 irq::@8 + //SEG896 [440] (byte) irq::raster_next#1 ← (byte) irq::raster_next#0 - (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuxx=vbuxx_minus_1 dex - //SEG893 [437] phi from irq::@3 irq::@8 to irq::@4 [phi:irq::@3/irq::@8->irq::@4] - //SEG894 [437] phi (byte) irq::raster_next#2 = (byte) irq::raster_next#0 [phi:irq::@3/irq::@8->irq::@4#0] -- register_copy - //SEG895 irq::@4 + //SEG897 [441] phi from irq::@3 irq::@8 to irq::@4 [phi:irq::@3/irq::@8->irq::@4] + //SEG898 [441] phi (byte) irq::raster_next#2 = (byte) irq::raster_next#0 [phi:irq::@3/irq::@8->irq::@4#0] -- register_copy + //SEG899 irq::@4 b4: - //SEG896 [438] *((const byte*) RASTER#0) ← (byte) irq::raster_next#2 -- _deref_pbuc1=vbuxx + //SEG900 [442] *((const byte*) RASTER#0) ← (byte) irq::raster_next#2 -- _deref_pbuc1=vbuxx stx RASTER - //SEG897 [439] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0 -- _deref_pbuc1=vbuc2 + //SEG901 [443] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0 -- _deref_pbuc1=vbuc2 lda #IRQ_RASTER sta IRQ_STATUS - //SEG898 [440] *((const byte*) BORDERCOL#0) ← (const byte) BLACK#0 -- _deref_pbuc1=vbuc2 + //SEG902 [444] *((const byte*) BORDERCOL#0) ← (const byte) BLACK#0 -- _deref_pbuc1=vbuc2 lda #BLACK sta BORDERCOL - //SEG899 irq::@return - //SEG900 [441] return - exit interrupt(HARDWARE_CLOBBER) + //SEG903 irq::@return + //SEG904 [445] return - exit interrupt(HARDWARE_CLOBBER) rega: lda #00 regx: ldx #00 rti - //SEG901 irq::@2 + //SEG905 irq::@2 b2: - //SEG902 [442] (byte) irq_cnt#13 ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- vbuz1=vbuc1 + //SEG906 [446] (byte) irq_cnt#13 ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- vbuz1=vbuc1 lda #0 sta irq_cnt - //SEG903 [443] (byte) irq_raster_next#1 ← (const byte) IRQ_RASTER_FIRST#0 -- vbuz1=vbuc1 + //SEG907 [447] (byte) irq_raster_next#1 ← (const byte) IRQ_RASTER_FIRST#0 -- vbuz1=vbuc1 lda #IRQ_RASTER_FIRST sta irq_raster_next - //SEG904 [444] (byte) irq_sprite_ypos#1 ← (byte/signed byte/word/signed word/dword/signed dword) 50 -- vbuz1=vbuc1 + //SEG908 [448] (byte) irq_sprite_ypos#1 ← (byte/signed byte/word/signed word/dword/signed dword) 50 -- vbuz1=vbuc1 lda #$32 sta irq_sprite_ypos - //SEG905 [445] phi from irq::@2 to irq::toSpritePtr2 [phi:irq::@2->irq::toSpritePtr2] - //SEG906 irq::toSpritePtr2 - //SEG907 irq::@9 - //SEG908 [446] (byte) irq_sprite_ptr#1 ← (const byte) irq::toSpritePtr2_return#0 -- vbuz1=vbuc1 + //SEG909 [449] phi from irq::@2 to irq::toSpritePtr2 [phi:irq::@2->irq::toSpritePtr2] + //SEG910 irq::toSpritePtr2 + //SEG911 irq::@9 + //SEG912 [450] (byte) irq_sprite_ptr#1 ← (const byte) irq::toSpritePtr2_return#0 -- vbuz1=vbuc1 lda #toSpritePtr2_return sta irq_sprite_ptr jmp b3 @@ -18070,12 +18111,14 @@ irq: { .align $40 PIECE_L: .byte 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0 .align $40 - PIECE_J: .byte 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0 + PIECE_J: .byte 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 .align $40 PIECE_O: .byte 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .align $40 PIECE_I: .byte 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0 PIECES_CHARS: .byte $57, $58, $98, $58, $57, $57, $98 + PIECES_START_X: .byte 4, 4, 4, 4, 4, 3, 4 + PIECES_START_Y: .byte 2, 1, 1, 1, 2, 0, 1 screen_lines: .fill 2*PLAYFIELD_LINES, 0 playfield_lines: .fill 2*PLAYFIELD_LINES, 0 playfield: .fill PLAYFIELD_LINES*PLAYFIELD_COLS, 0 diff --git a/src/test/ref/examples/tetris/tetris.sym b/src/test/ref/examples/tetris/tetris.sym index 6ea5a996a..2520244e2 100644 --- a/src/test/ref/examples/tetris/tetris.sym +++ b/src/test/ref/examples/tetris/tetris.sym @@ -169,10 +169,14 @@ (const word[]) PIECES#0 PIECES = { ((word))(const byte[4*4*4]) PIECE_T#0, ((word))(const byte[4*4*4]) PIECE_S#0, ((word))(const byte[4*4*4]) PIECE_Z#0, ((word))(const byte[4*4*4]) PIECE_J#0, ((word))(const byte[4*4*4]) PIECE_O#0, ((word))(const byte[4*4*4]) PIECE_I#0, ((word))(const byte[4*4*4]) PIECE_L#0 } (byte[]) PIECES_CHARS (const byte[]) PIECES_CHARS#0 PIECES_CHARS = { (byte/signed byte/word/signed word/dword/signed dword) 87, (byte/signed byte/word/signed word/dword/signed dword) 88, (byte/word/signed word/dword/signed dword) 152, (byte/signed byte/word/signed word/dword/signed dword) 88, (byte/signed byte/word/signed word/dword/signed dword) 87, (byte/signed byte/word/signed word/dword/signed dword) 87, (byte/word/signed word/dword/signed dword) 152 } +(byte[]) PIECES_START_X +(const byte[]) PIECES_START_X#0 PIECES_START_X = { (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 3, (byte/signed byte/word/signed word/dword/signed dword) 4 } +(byte[]) PIECES_START_Y +(const byte[]) PIECES_START_Y#0 PIECES_START_Y = { (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1 } (byte[4*4*4]) PIECE_I (const byte[4*4*4]) PIECE_I#0 PIECE_I = { (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0 } (byte[4*4*4]) PIECE_J -(const byte[4*4*4]) PIECE_J#0 PIECE_J = { (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0 } +(const byte[4*4*4]) PIECE_J#0 PIECE_J = { (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0 } (byte[4*4*4]) PIECE_L (const byte[4*4*4]) PIECE_L#0 PIECE_L = { (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0 } (byte[4*4*4]) PIECE_O @@ -270,9 +274,9 @@ (const byte) WHITE#0 WHITE = (byte/signed byte/word/signed word/dword/signed dword) 1 (byte) YELLOW (byte) current_movedown_counter -(byte) current_movedown_counter#1 current_movedown_counter zp ZP_BYTE:3 0.5333333333333333 -(byte) current_movedown_counter#10 current_movedown_counter zp ZP_BYTE:3 0.52 -(byte) current_movedown_counter#12 current_movedown_counter zp ZP_BYTE:3 1.3 +(byte) current_movedown_counter#1 current_movedown_counter zp ZP_BYTE:2 0.5333333333333333 +(byte) current_movedown_counter#10 current_movedown_counter zp ZP_BYTE:2 0.52 +(byte) current_movedown_counter#12 current_movedown_counter zp ZP_BYTE:2 1.3 (byte) current_movedown_fast (const byte) current_movedown_fast#0 current_movedown_fast = (byte/signed byte/word/signed word/dword/signed dword) 5 (byte) current_movedown_slow @@ -285,55 +289,59 @@ (byte) current_orientation#4 current_orientation zp ZP_BYTE:14 3.0 (byte*) current_piece (byte*) current_piece#10 current_piece zp ZP_WORD:12 0.3484848484848484 -(byte*) current_piece#12 current_piece#12 zp ZP_WORD:5 10.0 +(byte*) current_piece#12 current_piece#12 zp ZP_WORD:4 10.0 (byte*) current_piece#16 current_piece zp ZP_WORD:12 0.5588235294117647 (byte*) current_piece#20 current_piece zp ZP_WORD:12 6.0 (byte*~) current_piece#72 current_piece zp ZP_WORD:12 4.0 -(byte*~) current_piece#73 current_piece#73 zp ZP_WORD:5 4.0 -(byte*~) current_piece#74 current_piece#74 zp ZP_WORD:5 4.0 -(byte*~) current_piece#75 current_piece#75 zp ZP_WORD:5 4.0 -(byte*~) current_piece#76 current_piece#76 zp ZP_WORD:5 4.0 +(byte*~) current_piece#73 current_piece#73 zp ZP_WORD:4 4.0 +(byte*~) current_piece#74 current_piece#74 zp ZP_WORD:4 4.0 +(byte*~) current_piece#75 current_piece#75 zp ZP_WORD:4 4.0 +(byte*~) current_piece#76 current_piece#76 zp ZP_WORD:4 4.0 (byte*~) current_piece#77 current_piece zp ZP_WORD:12 4.0 (byte) current_piece_char (byte) current_piece_char#11 current_piece_char zp ZP_BYTE:18 1.04 -(byte) current_piece_char#13 current_piece_char zp ZP_BYTE:18 0.7272727272727273 +(byte) current_piece_char#13 current_piece_char zp ZP_BYTE:18 0.6153846153846154 (byte) current_piece_char#16 current_piece_char zp ZP_BYTE:18 19.96078431372549 (byte) current_piece_char#21 current_piece_char zp ZP_BYTE:18 6.0 -(byte) current_piece_char#63 current_piece_char#63 zp ZP_BYTE:7 48.285714285714285 -(byte~) current_piece_char#83 current_piece_char#83 zp ZP_BYTE:7 4.0 -(byte~) current_piece_char#84 current_piece_char#84 zp ZP_BYTE:7 22.0 +(byte) current_piece_char#63 current_piece_char#63 zp ZP_BYTE:6 48.285714285714285 +(byte~) current_piece_char#83 current_piece_char#83 zp ZP_BYTE:6 4.0 +(byte~) current_piece_char#84 current_piece_char#84 zp ZP_BYTE:6 22.0 (byte*) current_piece_gfx (byte*) current_piece_gfx#10 current_piece_gfx zp ZP_WORD:15 19.96078431372549 (byte*) current_piece_gfx#14 current_piece_gfx zp ZP_WORD:15 0.2962962962962963 (byte*) current_piece_gfx#15 current_piece_gfx zp ZP_WORD:15 1.8666666666666665 -(byte*) current_piece_gfx#17 current_piece_gfx zp ZP_WORD:15 0.6666666666666666 +(byte*) current_piece_gfx#17 current_piece_gfx zp ZP_WORD:15 0.5 (byte*) current_piece_gfx#27 current_piece_gfx zp ZP_WORD:15 6.0 (byte*) current_piece_gfx#4 current_piece_gfx zp ZP_WORD:15 4.0 -(byte*) current_piece_gfx#53 current_piece_gfx#53 zp ZP_WORD:5 48.285714285714285 -(byte*~) current_piece_gfx#95 current_piece_gfx#95 zp ZP_WORD:5 2.0 -(byte*~) current_piece_gfx#96 current_piece_gfx#96 zp ZP_WORD:5 11.0 +(byte*) current_piece_gfx#53 current_piece_gfx#53 zp ZP_WORD:4 48.285714285714285 +(byte*~) current_piece_gfx#95 current_piece_gfx#95 zp ZP_WORD:4 2.0 +(byte*~) current_piece_gfx#96 current_piece_gfx#96 zp ZP_WORD:4 11.0 (byte) current_xpos -(byte~) current_xpos#104 current_xpos#104 zp ZP_BYTE:4 7.333333333333333 -(byte) current_xpos#11 current_xpos zp ZP_BYTE:17 2.313725490196078 +(byte~) current_xpos#105 current_xpos#105 zp ZP_BYTE:3 1.3333333333333333 +(byte~) current_xpos#106 current_xpos#106 zp ZP_BYTE:3 7.333333333333333 +(byte) current_xpos#11 current_xpos zp ZP_BYTE:17 2.3529411764705883 (byte) current_xpos#16 current_xpos zp ZP_BYTE:17 0.72 (byte) current_xpos#20 current_xpos zp ZP_BYTE:17 0.871794871794872 +(byte) current_xpos#24 current_xpos zp ZP_BYTE:17 0.5333333333333333 (byte) current_xpos#3 current_xpos zp ZP_BYTE:17 4.0 -(byte) current_xpos#34 current_xpos zp ZP_BYTE:17 4.0 -(byte) current_xpos#48 current_xpos#48 zp ZP_BYTE:4 5.333333333333333 +(byte) current_xpos#34 current_xpos zp ZP_BYTE:17 6.0 +(byte) current_xpos#48 current_xpos#48 zp ZP_BYTE:3 5.428571428571429 (byte) current_xpos#5 current_xpos zp ZP_BYTE:17 4.0 (byte) current_ypos -(byte) current_ypos#1 current_ypos zp ZP_BYTE:2 4.0 -(byte) current_ypos#10 reg byte x 13.0 -(byte) current_ypos#14 current_ypos zp ZP_BYTE:2 0.48484848484848475 -(byte) current_ypos#22 current_ypos zp ZP_BYTE:2 0.5588235294117647 -(byte) current_ypos#30 current_ypos zp ZP_BYTE:2 4.0 -(byte~) current_ypos#78 reg byte x 5.5 +(byte) current_ypos#1 current_ypos zp ZP_BYTE:11 4.0 +(byte) current_ypos#10 reg byte x 15.0 +(byte) current_ypos#14 current_ypos zp ZP_BYTE:11 0.48484848484848475 +(byte) current_ypos#19 current_ypos zp ZP_BYTE:11 0.5714285714285714 +(byte) current_ypos#22 current_ypos zp ZP_BYTE:11 0.6176470588235294 +(byte) current_ypos#30 current_ypos zp ZP_BYTE:11 6.0 +(byte~) current_ypos#79 reg byte x 1.0 +(byte~) current_ypos#80 reg byte x 5.5 (void()) fill((byte*) fill::start , (word) fill::size , (byte) fill::val) (label) fill::@1 (label) fill::@return (byte*) fill::addr -(byte*) fill::addr#1 addr zp ZP_WORD:5 16.5 -(byte*) fill::addr#2 addr zp ZP_WORD:5 16.5 +(byte*) fill::addr#1 addr zp ZP_WORD:4 16.5 +(byte*) fill::addr#2 addr zp ZP_WORD:4 16.5 (byte*) fill::end (const byte*) fill::end#0 end = (const byte*) COLS#0+(const word) fill::size#0 (word) fill::size @@ -398,7 +406,7 @@ interrupt(HARDWARE_CLOBBER)(void()) irq() (byte~) keyboard_event_pressed::$1 reg byte a 4.0 (label) keyboard_event_pressed::@return (byte) keyboard_event_pressed::keycode -(byte) keyboard_event_pressed::keycode#5 keycode zp ZP_BYTE:4 1.3333333333333333 +(byte) keyboard_event_pressed::keycode#5 keycode zp ZP_BYTE:3 1.3333333333333333 (byte) keyboard_event_pressed::return (byte) keyboard_event_pressed::return#0 reg byte a 4.0 (byte) keyboard_event_pressed::return#1 reg byte a 4.0 @@ -407,7 +415,7 @@ interrupt(HARDWARE_CLOBBER)(void()) irq() (byte) keyboard_event_pressed::return#12 reg byte a 4.0 (byte) keyboard_event_pressed::return#2 reg byte a 4.0 (byte) keyboard_event_pressed::row_bits -(byte) keyboard_event_pressed::row_bits#0 row_bits zp ZP_BYTE:7 2.0 +(byte) keyboard_event_pressed::row_bits#0 row_bits zp ZP_BYTE:6 2.0 (void()) keyboard_event_scan() (byte/word/dword~) keyboard_event_scan::$11 reg byte a 2002.0 (byte~) keyboard_event_scan::$14 reg byte a 4.0 @@ -446,16 +454,16 @@ interrupt(HARDWARE_CLOBBER)(void()) irq() (byte) keyboard_event_scan::event_type (byte) keyboard_event_scan::event_type#0 reg byte a 2002.0 (byte) keyboard_event_scan::keycode -(byte) keyboard_event_scan::keycode#1 keycode zp ZP_BYTE:7 202.0 -(byte) keyboard_event_scan::keycode#10 keycode zp ZP_BYTE:7 315.7692307692308 -(byte) keyboard_event_scan::keycode#11 keycode zp ZP_BYTE:7 50.5 -(byte) keyboard_event_scan::keycode#14 keycode zp ZP_BYTE:7 101.0 -(byte) keyboard_event_scan::keycode#15 keycode zp ZP_BYTE:7 525.75 +(byte) keyboard_event_scan::keycode#1 keycode zp ZP_BYTE:6 202.0 +(byte) keyboard_event_scan::keycode#10 keycode zp ZP_BYTE:6 315.7692307692308 +(byte) keyboard_event_scan::keycode#11 keycode zp ZP_BYTE:6 50.5 +(byte) keyboard_event_scan::keycode#14 keycode zp ZP_BYTE:6 101.0 +(byte) keyboard_event_scan::keycode#15 keycode zp ZP_BYTE:6 525.75 (byte) keyboard_event_scan::row -(byte) keyboard_event_scan::row#1 row zp ZP_BYTE:4 151.5 -(byte) keyboard_event_scan::row#2 row zp ZP_BYTE:4 60.24 +(byte) keyboard_event_scan::row#1 row zp ZP_BYTE:3 151.5 +(byte) keyboard_event_scan::row#2 row zp ZP_BYTE:3 60.24 (byte) keyboard_event_scan::row_scan -(byte) keyboard_event_scan::row_scan#0 row_scan zp ZP_BYTE:8 128.05555555555557 +(byte) keyboard_event_scan::row_scan#0 row_scan zp ZP_BYTE:7 128.05555555555557 (byte[8]) keyboard_events (const byte[8]) keyboard_events#0 keyboard_events = { fill( 8, 0) } (byte) keyboard_events_size @@ -535,18 +543,18 @@ interrupt(HARDWARE_CLOBBER)(void()) irq() (byte) play_collision::c#1 reg byte x 1001.0 (byte) play_collision::c#2 reg byte x 222.44444444444446 (byte) play_collision::col -(byte) play_collision::col#1 col zp ZP_BYTE:11 500.5 -(byte) play_collision::col#2 col zp ZP_BYTE:11 638.25 -(byte~) play_collision::col#9 col zp ZP_BYTE:11 202.0 +(byte) play_collision::col#1 col zp ZP_BYTE:10 500.5 +(byte) play_collision::col#2 col zp ZP_BYTE:10 638.25 +(byte~) play_collision::col#9 col zp ZP_BYTE:10 202.0 (byte) play_collision::i (byte) play_collision::i#1 i zp ZP_BYTE:28 161.76923076923077 -(byte~) play_collision::i#11 i#11 zp ZP_BYTE:10 202.0 -(byte~) play_collision::i#13 i#13 zp ZP_BYTE:10 2002.0 -(byte) play_collision::i#2 i#2 zp ZP_BYTE:10 1552.0 -(byte) play_collision::i#3 i#3 zp ZP_BYTE:10 67.33333333333333 +(byte~) play_collision::i#11 i#11 zp ZP_BYTE:9 202.0 +(byte~) play_collision::i#13 i#13 zp ZP_BYTE:9 2002.0 +(byte) play_collision::i#2 i#2 zp ZP_BYTE:9 1552.0 +(byte) play_collision::i#3 i#3 zp ZP_BYTE:9 67.33333333333333 (byte) play_collision::l -(byte) play_collision::l#1 l zp ZP_BYTE:9 101.0 -(byte) play_collision::l#6 l zp ZP_BYTE:9 12.625 +(byte) play_collision::l#1 l zp ZP_BYTE:8 101.0 +(byte) play_collision::l#6 l zp ZP_BYTE:8 12.625 (byte) play_collision::orientation (byte) play_collision::orientation#0 reg byte x 2.0 (byte) play_collision::orientation#1 reg byte x 2.0 @@ -554,7 +562,7 @@ interrupt(HARDWARE_CLOBBER)(void()) irq() (byte) play_collision::orientation#3 reg byte x 2.0 (byte) play_collision::orientation#4 reg byte x 10.0 (byte*) play_collision::piece_gfx -(byte*) play_collision::piece_gfx#0 piece_gfx zp ZP_WORD:5 47.76190476190476 +(byte*) play_collision::piece_gfx#0 piece_gfx zp ZP_WORD:4 47.76190476190476 (byte*) play_collision::playfield_line (byte*) play_collision::playfield_line#0 playfield_line zp ZP_WORD:26 78.71428571428571 (byte) play_collision::return @@ -564,11 +572,11 @@ interrupt(HARDWARE_CLOBBER)(void()) irq() (byte) play_collision::return#13 reg byte a 4.0 (byte) play_collision::return#14 reg byte a 1.3333333333333333 (byte) play_collision::xpos -(byte) play_collision::xpos#0 xpos zp ZP_BYTE:7 1.3333333333333333 -(byte) play_collision::xpos#1 xpos zp ZP_BYTE:7 1.0 -(byte) play_collision::xpos#2 xpos zp ZP_BYTE:7 1.0 -(byte) play_collision::xpos#3 xpos zp ZP_BYTE:7 1.0 -(byte) play_collision::xpos#5 xpos zp ZP_BYTE:7 4.954545454545454 +(byte) play_collision::xpos#0 xpos zp ZP_BYTE:6 1.3333333333333333 +(byte) play_collision::xpos#1 xpos zp ZP_BYTE:6 1.0 +(byte) play_collision::xpos#2 xpos zp ZP_BYTE:6 1.0 +(byte) play_collision::xpos#3 xpos zp ZP_BYTE:6 1.0 +(byte) play_collision::xpos#5 xpos zp ZP_BYTE:6 4.954545454545454 (byte) play_collision::ypos (byte) play_collision::ypos#0 reg byte y 1.0 (byte) play_collision::ypos#1 reg byte y 1.3333333333333333 @@ -576,9 +584,9 @@ interrupt(HARDWARE_CLOBBER)(void()) irq() (byte) play_collision::ypos#3 reg byte y 1.3333333333333333 (byte) play_collision::ypos#4 reg byte y 5.0 (byte) play_collision::ypos2 -(byte) play_collision::ypos2#0 ypos2 zp ZP_BYTE:8 4.0 -(byte) play_collision::ypos2#1 ypos2 zp ZP_BYTE:8 50.5 -(byte) play_collision::ypos2#2 ypos2 zp ZP_BYTE:8 87.06666666666668 +(byte) play_collision::ypos2#0 ypos2 zp ZP_BYTE:7 4.0 +(byte) play_collision::ypos2#1 ypos2 zp ZP_BYTE:7 50.5 +(byte) play_collision::ypos2#2 ypos2 zp ZP_BYTE:7 87.06666666666668 (void()) play_init() (byte~) play_init::$1 reg byte a 22.0 (label) play_init::@1 @@ -591,8 +599,8 @@ interrupt(HARDWARE_CLOBBER)(void()) irq() (byte) play_init::j#1 reg byte x 16.5 (byte) play_init::j#2 reg byte x 7.333333333333333 (byte*) play_init::pli -(byte*) play_init::pli#1 pli zp ZP_WORD:5 5.5 -(byte*) play_init::pli#2 pli zp ZP_WORD:5 8.25 +(byte*) play_init::pli#1 pli zp ZP_WORD:4 5.5 +(byte*) play_init::pli#2 pli zp ZP_WORD:4 8.25 (void()) play_lock_current() (label) play_lock_current::@1 (label) play_lock_current::@2 @@ -606,24 +614,24 @@ interrupt(HARDWARE_CLOBBER)(void()) irq() (byte) play_lock_current::c#1 reg byte x 1001.0 (byte) play_lock_current::c#2 reg byte x 400.4 (byte) play_lock_current::col -(byte) play_lock_current::col#0 col zp ZP_BYTE:7 202.0 -(byte) play_lock_current::col#1 col zp ZP_BYTE:7 500.5 -(byte) play_lock_current::col#2 col zp ZP_BYTE:7 776.0 +(byte) play_lock_current::col#0 col zp ZP_BYTE:6 202.0 +(byte) play_lock_current::col#1 col zp ZP_BYTE:6 500.5 +(byte) play_lock_current::col#2 col zp ZP_BYTE:6 776.0 (byte) play_lock_current::i -(byte) play_lock_current::i#1 i zp ZP_BYTE:8 233.66666666666669 -(byte) play_lock_current::i#2 i#2 zp ZP_BYTE:4 1552.0 -(byte) play_lock_current::i#3 i#3 zp ZP_BYTE:4 67.33333333333333 -(byte~) play_lock_current::i#7 i#7 zp ZP_BYTE:4 202.0 -(byte~) play_lock_current::i#9 i#9 zp ZP_BYTE:4 2002.0 +(byte) play_lock_current::i#1 i zp ZP_BYTE:7 233.66666666666669 +(byte) play_lock_current::i#2 i#2 zp ZP_BYTE:3 1552.0 +(byte) play_lock_current::i#3 i#3 zp ZP_BYTE:3 67.33333333333333 +(byte~) play_lock_current::i#7 i#7 zp ZP_BYTE:3 202.0 +(byte~) play_lock_current::i#9 i#9 zp ZP_BYTE:3 2002.0 (byte) play_lock_current::l -(byte) play_lock_current::l#1 l zp ZP_BYTE:3 101.0 -(byte) play_lock_current::l#6 l zp ZP_BYTE:3 16.833333333333332 +(byte) play_lock_current::l#1 l zp ZP_BYTE:2 101.0 +(byte) play_lock_current::l#6 l zp ZP_BYTE:2 16.833333333333332 (byte*) play_lock_current::playfield_line -(byte*) play_lock_current::playfield_line#0 playfield_line zp ZP_WORD:5 110.19999999999999 +(byte*) play_lock_current::playfield_line#0 playfield_line zp ZP_WORD:4 110.19999999999999 (byte) play_lock_current::ypos2 -(byte) play_lock_current::ypos2#0 ypos2 zp ZP_BYTE:2 4.0 -(byte) play_lock_current::ypos2#1 ypos2 zp ZP_BYTE:2 50.5 -(byte) play_lock_current::ypos2#2 ypos2 zp ZP_BYTE:2 27.727272727272727 +(byte) play_lock_current::ypos2#0 ypos2 zp ZP_BYTE:11 4.0 +(byte) play_lock_current::ypos2#1 ypos2 zp ZP_BYTE:11 50.5 +(byte) play_lock_current::ypos2#2 ypos2 zp ZP_BYTE:11 27.727272727272727 (byte()) play_move_down((byte) play_move_down::key_event) (byte~) play_move_down::$12 reg byte a 4.0 (byte~) play_move_down::$2 reg byte a 4.0 @@ -684,9 +692,9 @@ interrupt(HARDWARE_CLOBBER)(void()) irq() (byte) play_move_rotate::key_event (byte) play_move_rotate::key_event#0 reg byte a 7.5 (byte) play_move_rotate::orientation -(byte) play_move_rotate::orientation#1 orientation zp ZP_BYTE:4 4.0 -(byte) play_move_rotate::orientation#2 orientation zp ZP_BYTE:4 4.0 -(byte) play_move_rotate::orientation#3 orientation zp ZP_BYTE:4 0.8888888888888888 +(byte) play_move_rotate::orientation#1 orientation zp ZP_BYTE:3 4.0 +(byte) play_move_rotate::orientation#2 orientation zp ZP_BYTE:3 4.0 +(byte) play_move_rotate::orientation#3 orientation zp ZP_BYTE:3 0.8888888888888888 (byte) play_move_rotate::return (byte) play_move_rotate::return#1 reg byte a 3.6666666666666665 (byte) play_move_rotate::return#4 reg byte a 22.0 @@ -704,8 +712,8 @@ interrupt(HARDWARE_CLOBBER)(void()) irq() (byte) play_remove_lines::c (byte) play_remove_lines::c#0 c zp ZP_BYTE:7 600.5999999999999 (byte) play_remove_lines::full -(byte) play_remove_lines::full#2 full zp ZP_BYTE:4 420.59999999999997 -(byte) play_remove_lines::full#4 full zp ZP_BYTE:4 400.4 +(byte) play_remove_lines::full#2 full zp ZP_BYTE:6 420.59999999999997 +(byte) play_remove_lines::full#4 full zp ZP_BYTE:6 400.4 (byte) play_remove_lines::r (byte) play_remove_lines::r#1 reg byte y 161.76923076923077 (byte) play_remove_lines::r#2 reg byte y 1552.0 @@ -726,7 +734,7 @@ interrupt(HARDWARE_CLOBBER)(void()) irq() (byte) play_remove_lines::y#8 y zp ZP_BYTE:2 14.428571428571429 (void()) play_spawn_current() (byte~) play_spawn_current::$1 reg byte a 202.0 -(byte~) play_spawn_current::$3 $3 zp ZP_BYTE:2 0.18181818181818182 +(byte~) play_spawn_current::$3 $3 zp ZP_BYTE:2 0.13333333333333333 (label) play_spawn_current::@1 (label) play_spawn_current::@2 (label) play_spawn_current::@3 @@ -734,7 +742,7 @@ interrupt(HARDWARE_CLOBBER)(void()) irq() (label) play_spawn_current::@return (byte) play_spawn_current::piece_idx (byte) play_spawn_current::piece_idx#1 reg byte x 202.0 -(byte) play_spawn_current::piece_idx#2 reg byte x 51.5 +(byte) play_spawn_current::piece_idx#2 reg byte x 35.00000000000001 (byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield (const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 playfield = { fill( PLAYFIELD_LINES#0*PLAYFIELD_COLS#0, 0) } (byte*[PLAYFIELD_LINES#0]) playfield_lines @@ -758,24 +766,24 @@ interrupt(HARDWARE_CLOBBER)(void()) irq() (byte) render_current::current_cell (byte) render_current::current_cell#0 reg byte a 1001.0 (byte) render_current::i -(byte) render_current::i#1 i zp ZP_BYTE:10 202.0 -(byte) render_current::i#10 i zp ZP_BYTE:10 429.0 -(byte) render_current::i#3 i zp ZP_BYTE:10 60.599999999999994 -(byte) render_current::i#4 i zp ZP_BYTE:10 1552.0 -(byte) render_current::i#8 i zp ZP_BYTE:10 300.75 +(byte) render_current::i#1 i zp ZP_BYTE:9 202.0 +(byte) render_current::i#10 i zp ZP_BYTE:9 429.0 +(byte) render_current::i#3 i zp ZP_BYTE:9 60.599999999999994 +(byte) render_current::i#4 i zp ZP_BYTE:9 1552.0 +(byte) render_current::i#8 i zp ZP_BYTE:9 300.75 (byte) render_current::l -(byte) render_current::l#1 l zp ZP_BYTE:9 151.5 -(byte) render_current::l#4 l zp ZP_BYTE:9 11.882352941176471 +(byte) render_current::l#1 l zp ZP_BYTE:8 151.5 +(byte) render_current::l#4 l zp ZP_BYTE:8 11.882352941176471 (byte*) render_current::screen_line (byte*) render_current::screen_line#0 screen_line zp ZP_WORD:26 100.18181818181819 (byte) render_current::xpos -(byte) render_current::xpos#0 xpos zp ZP_BYTE:11 202.0 -(byte) render_current::xpos#1 xpos zp ZP_BYTE:11 667.3333333333334 -(byte) render_current::xpos#2 xpos zp ZP_BYTE:11 684.1666666666667 +(byte) render_current::xpos#0 xpos zp ZP_BYTE:10 202.0 +(byte) render_current::xpos#1 xpos zp ZP_BYTE:10 667.3333333333334 +(byte) render_current::xpos#2 xpos zp ZP_BYTE:10 684.1666666666667 (byte) render_current::ypos2 -(byte) render_current::ypos2#0 ypos2 zp ZP_BYTE:8 4.0 -(byte) render_current::ypos2#1 ypos2 zp ZP_BYTE:8 67.33333333333333 -(byte) render_current::ypos2#2 ypos2 zp ZP_BYTE:8 31.6875 +(byte) render_current::ypos2#0 ypos2 zp ZP_BYTE:7 4.0 +(byte) render_current::ypos2#1 ypos2 zp ZP_BYTE:7 67.33333333333333 +(byte) render_current::ypos2#2 ypos2 zp ZP_BYTE:7 31.6875 (void()) render_init() (byte~) render_init::$11 reg byte a 22.0 (byte*~) render_init::$18 $18 zp ZP_WORD:12 202.0 @@ -796,11 +804,11 @@ interrupt(HARDWARE_CLOBBER)(void()) irq() (byte) render_init::l#1 l zp ZP_BYTE:2 16.5 (byte) render_init::l#4 l zp ZP_BYTE:2 3.142857142857143 (byte*) render_init::li -(byte*) render_init::li#1 li zp ZP_WORD:5 7.333333333333333 -(byte*) render_init::li#2 li zp ZP_WORD:5 11.0 +(byte*) render_init::li#1 li zp ZP_WORD:4 7.333333333333333 +(byte*) render_init::li#2 li zp ZP_WORD:4 11.0 (byte*) render_init::line -(byte*) render_init::line#1 line zp ZP_WORD:5 7.333333333333333 -(byte*) render_init::line#4 line zp ZP_WORD:5 20.499999999999996 +(byte*) render_init::line#1 line zp ZP_WORD:4 7.333333333333333 +(byte*) render_init::line#4 line zp ZP_WORD:4 20.499999999999996 (label) render_init::toD0181 (word~) render_init::toD0181_$0 (word~) render_init::toD0181_$1 @@ -837,16 +845,16 @@ interrupt(HARDWARE_CLOBBER)(void()) irq() (byte) render_playfield::c#1 reg byte x 1501.5 (byte) render_playfield::c#2 reg byte x 500.5 (byte) render_playfield::i -(byte) render_playfield::i#1 i zp ZP_BYTE:7 420.59999999999997 -(byte) render_playfield::i#2 i zp ZP_BYTE:7 1034.6666666666667 -(byte) render_playfield::i#3 i zp ZP_BYTE:7 67.33333333333333 +(byte) render_playfield::i#1 i zp ZP_BYTE:6 420.59999999999997 +(byte) render_playfield::i#2 i zp ZP_BYTE:6 1034.6666666666667 +(byte) render_playfield::i#3 i zp ZP_BYTE:6 67.33333333333333 (byte) render_playfield::l -(byte) render_playfield::l#1 l zp ZP_BYTE:4 151.5 -(byte) render_playfield::l#2 l zp ZP_BYTE:4 33.666666666666664 +(byte) render_playfield::l#1 l zp ZP_BYTE:3 151.5 +(byte) render_playfield::l#2 l zp ZP_BYTE:3 33.666666666666664 (byte*) render_playfield::screen_line -(byte*) render_playfield::screen_line#0 screen_line zp ZP_WORD:5 202.0 -(byte*) render_playfield::screen_line#1 screen_line zp ZP_WORD:5 500.5 -(byte*) render_playfield::screen_line#2 screen_line zp ZP_WORD:5 1552.0 +(byte*) render_playfield::screen_line#0 screen_line zp ZP_WORD:4 202.0 +(byte*) render_playfield::screen_line#1 screen_line zp ZP_WORD:4 500.5 +(byte*) render_playfield::screen_line#2 screen_line zp ZP_WORD:4 1552.0 (void()) render_screen_original((byte*) render_screen_original::screen) (byte/signed word/word/dword/signed dword~) render_screen_original::$3 reg byte a 202.0 (label) render_screen_original::@1 @@ -858,9 +866,9 @@ interrupt(HARDWARE_CLOBBER)(void()) irq() (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::orig -(byte*) render_screen_original::orig#1 orig zp ZP_WORD:5 21.299999999999997 -(byte*) render_screen_original::orig#2 orig zp ZP_WORD:5 101.0 -(byte*) render_screen_original::orig#4 orig zp ZP_WORD:5 18.666666666666664 +(byte*) render_screen_original::orig#1 orig zp ZP_WORD:4 21.299999999999997 +(byte*) render_screen_original::orig#2 orig zp ZP_WORD:4 101.0 +(byte*) render_screen_original::orig#4 orig zp ZP_WORD:4 18.666666666666664 (byte*) render_screen_original::screen (byte*) render_screen_original::screen#1 screen zp ZP_WORD:12 101.0 (byte*) render_screen_original::screen#2 screen zp ZP_WORD:12 75.75 @@ -909,16 +917,15 @@ interrupt(HARDWARE_CLOBBER)(void()) irq() (const byte) toSpritePtr1_return#0 toSpritePtr1_return = ((byte))((word))(const byte*) PLAYFIELD_SPRITES#0>>(byte/signed byte/word/signed word/dword/signed dword) 6 (byte*) toSpritePtr1_sprite -zp ZP_BYTE:2 [ current_ypos#22 current_ypos#14 current_ypos#30 current_ypos#1 play_lock_current::ypos2#2 play_lock_current::ypos2#0 play_lock_current::ypos2#1 play_remove_lines::y#8 play_remove_lines::y#1 play_init::idx#2 play_init::idx#1 sprites_init::xpos#2 sprites_init::xpos#1 render_init::l#4 render_init::l#1 render_screen_original::y#6 render_screen_original::y#1 play_spawn_current::$3 ] -zp ZP_BYTE:3 [ current_movedown_counter#12 current_movedown_counter#10 current_movedown_counter#1 play_remove_lines::x#2 play_remove_lines::x#1 play_lock_current::l#6 play_lock_current::l#1 ] -reg byte x [ current_ypos#10 current_ypos#78 ] -zp ZP_BYTE:4 [ current_xpos#48 current_xpos#104 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::full#4 play_remove_lines::full#2 play_lock_current::i#2 play_lock_current::i#3 play_lock_current::i#7 play_lock_current::i#9 keyboard_event_pressed::keycode#5 keyboard_event_scan::row#2 keyboard_event_scan::row#1 ] -zp ZP_WORD:5 [ current_piece_gfx#53 current_piece_gfx#95 current_piece_gfx#96 render_playfield::screen_line#2 render_playfield::screen_line#0 render_playfield::screen_line#1 current_piece#12 current_piece#73 current_piece#74 current_piece#75 current_piece#76 play_collision::piece_gfx#0 play_init::pli#2 play_init::pli#1 render_init::li#2 render_init::li#1 render_init::line#4 render_init::line#1 render_screen_original::orig#2 render_screen_original::orig#4 render_screen_original::orig#1 fill::addr#2 fill::addr#1 play_lock_current::playfield_line#0 ] -zp ZP_BYTE:7 [ current_piece_char#63 current_piece_char#83 current_piece_char#84 render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 play_collision::xpos#5 play_collision::xpos#0 play_collision::xpos#1 play_collision::xpos#2 play_collision::xpos#3 play_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 play_remove_lines::c#0 keyboard_event_pressed::row_bits#0 ] -zp ZP_BYTE:8 [ render_current::ypos2#2 render_current::ypos2#0 render_current::ypos2#1 play_collision::ypos2#2 play_collision::ypos2#0 play_collision::ypos2#1 play_lock_current::i#1 keyboard_event_scan::row_scan#0 ] -zp ZP_BYTE:9 [ render_current::l#4 render_current::l#1 play_collision::l#6 play_collision::l#1 ] -zp ZP_BYTE:10 [ render_current::i#4 render_current::i#3 render_current::i#8 render_current::i#10 render_current::i#1 play_collision::i#2 play_collision::i#3 play_collision::i#11 play_collision::i#13 ] -zp ZP_BYTE:11 [ render_current::xpos#2 render_current::xpos#0 render_current::xpos#1 play_collision::col#2 play_collision::col#9 play_collision::col#1 ] +zp ZP_BYTE:2 [ current_movedown_counter#12 current_movedown_counter#10 current_movedown_counter#1 play_remove_lines::y#8 play_remove_lines::y#1 play_lock_current::l#6 play_lock_current::l#1 play_init::idx#2 play_init::idx#1 sprites_init::xpos#2 sprites_init::xpos#1 render_init::l#4 render_init::l#1 render_screen_original::y#6 render_screen_original::y#1 play_spawn_current::$3 ] +reg byte x [ current_ypos#10 current_ypos#79 current_ypos#80 ] +zp ZP_BYTE:3 [ current_xpos#48 current_xpos#105 current_xpos#106 render_playfield::l#2 render_playfield::l#1 play_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#2 play_remove_lines::x#2 play_remove_lines::x#1 play_lock_current::i#2 play_lock_current::i#3 play_lock_current::i#7 play_lock_current::i#9 keyboard_event_pressed::keycode#5 keyboard_event_scan::row#2 keyboard_event_scan::row#1 ] +zp ZP_WORD:4 [ current_piece_gfx#53 current_piece_gfx#95 current_piece_gfx#96 render_playfield::screen_line#2 render_playfield::screen_line#0 render_playfield::screen_line#1 current_piece#12 current_piece#73 current_piece#74 current_piece#75 current_piece#76 play_collision::piece_gfx#0 play_init::pli#2 play_init::pli#1 render_init::li#2 render_init::li#1 render_init::line#4 render_init::line#1 render_screen_original::orig#2 render_screen_original::orig#4 render_screen_original::orig#1 fill::addr#2 fill::addr#1 play_lock_current::playfield_line#0 ] +zp ZP_BYTE:6 [ current_piece_char#63 current_piece_char#83 current_piece_char#84 render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 play_collision::xpos#5 play_collision::xpos#0 play_collision::xpos#1 play_collision::xpos#2 play_collision::xpos#3 play_remove_lines::full#4 play_remove_lines::full#2 play_lock_current::col#2 play_lock_current::col#0 play_lock_current::col#1 keyboard_event_scan::keycode#10 keyboard_event_scan::keycode#11 keyboard_event_scan::keycode#14 keyboard_event_scan::keycode#1 keyboard_event_scan::keycode#15 keyboard_event_pressed::row_bits#0 ] +zp ZP_BYTE:7 [ render_current::ypos2#2 render_current::ypos2#0 render_current::ypos2#1 play_collision::ypos2#2 play_collision::ypos2#0 play_collision::ypos2#1 play_remove_lines::c#0 play_lock_current::i#1 keyboard_event_scan::row_scan#0 ] +zp ZP_BYTE:8 [ render_current::l#4 render_current::l#1 play_collision::l#6 play_collision::l#1 ] +zp ZP_BYTE:9 [ render_current::i#4 render_current::i#3 render_current::i#8 render_current::i#10 render_current::i#1 play_collision::i#2 play_collision::i#3 play_collision::i#11 play_collision::i#13 ] +zp ZP_BYTE:10 [ render_current::xpos#2 render_current::xpos#0 render_current::xpos#1 play_collision::col#2 play_collision::col#9 play_collision::col#1 ] reg byte x [ render_current::c#2 render_current::c#1 ] reg byte x [ render_playfield::c#2 render_playfield::c#1 ] reg byte a [ play_move_rotate::return#1 ] @@ -928,10 +935,11 @@ reg byte x [ play_collision::c#2 play_collision::c#1 ] reg byte a [ play_collision::return#14 ] reg byte a [ play_move_leftright::return#1 ] reg byte x [ play_move_down::movedown#6 play_move_down::movedown#3 play_move_down::movedown#7 play_move_down::movedown#2 play_move_down::movedown#10 ] +zp ZP_BYTE:11 [ current_ypos#30 current_ypos#22 current_ypos#14 current_ypos#19 current_ypos#1 play_lock_current::ypos2#2 play_lock_current::ypos2#0 play_lock_current::ypos2#1 ] zp ZP_WORD:12 [ current_piece#20 current_piece#77 current_piece#16 current_piece#10 current_piece#72 render_screen_original::screen#6 render_screen_original::screen#5 render_screen_original::screen#4 render_screen_original::screen#7 render_screen_original::screen#3 render_screen_original::screen#1 render_screen_original::screen#2 render_init::$18 ] zp ZP_BYTE:14 [ current_orientation#29 current_orientation#10 current_orientation#19 current_orientation#4 current_orientation#14 ] zp ZP_WORD:15 [ current_piece_gfx#27 current_piece_gfx#10 current_piece_gfx#15 current_piece_gfx#17 current_piece_gfx#4 current_piece_gfx#14 ] -zp ZP_BYTE:17 [ current_xpos#34 current_xpos#11 current_xpos#20 current_xpos#5 current_xpos#16 current_xpos#3 ] +zp ZP_BYTE:17 [ current_xpos#34 current_xpos#11 current_xpos#20 current_xpos#24 current_xpos#5 current_xpos#16 current_xpos#3 ] zp ZP_BYTE:18 [ current_piece_char#21 current_piece_char#16 current_piece_char#11 current_piece_char#13 ] reg byte x [ play_move_down::return#2 ] reg byte x [ play_spawn_current::piece_idx#2 play_spawn_current::piece_idx#1 ]