diff --git a/src/test/kc/examples/tetris/nes-screen.gpx b/src/test/kc/examples/tetris/nes-screen.gpx new file mode 100644 index 000000000..764209fa9 Binary files /dev/null and b/src/test/kc/examples/tetris/nes-screen.gpx differ diff --git a/src/test/kc/examples/tetris/nes-screen.imap b/src/test/kc/examples/tetris/nes-screen.imap new file mode 100644 index 000000000..08b52ba8a Binary files /dev/null and b/src/test/kc/examples/tetris/nes-screen.imap differ diff --git a/src/test/kc/examples/tetris/nes-screen.iscr b/src/test/kc/examples/tetris/nes-screen.iscr new file mode 100644 index 000000000..c4dbe4062 Binary files /dev/null and b/src/test/kc/examples/tetris/nes-screen.iscr differ diff --git a/src/test/kc/examples/tetris/tetris-data.kc b/src/test/kc/examples/tetris/tetris-data.kc index 320dc1af0..0cfc0ef96 100644 --- a/src/test/kc/examples/tetris/tetris-data.kc +++ b/src/test/kc/examples/tetris/tetris-data.kc @@ -7,7 +7,7 @@ const byte* PLAYFIELD_SPRITE_PTRS = (PLAYFIELD_SCREEN+SPRITE_PTRS); // Address of the sprites covering the playfield const byte* PLAYFIELD_SPRITES = $2000; // Address of the charset -byte* PLAYFIELD_CHARSET = $2800; +const byte* PLAYFIELD_CHARSET = $2800; // The size of the playfield const byte PLAYFIELD_LINES = 22; @@ -20,8 +20,8 @@ byte[PLAYFIELD_LINES*PLAYFIELD_COLS] playfield; // Pointer to the current piece in the current orientation. Updated each time current_orientation is updated. byte* current_piece_gfx = 0; -// The color of the current piece -byte current_piece_color = 0; +// The char of the current piece +byte current_piece_char = 0; // Position of top left corner of current moving piece on the playfield byte current_xpos = 3; diff --git a/src/test/kc/examples/tetris/tetris-pieces.kc b/src/test/kc/examples/tetris/tetris-pieces.kc index d065eef5a..462391c7c 100644 --- a/src/test/kc/examples/tetris/tetris-pieces.kc +++ b/src/test/kc/examples/tetris/tetris-pieces.kc @@ -170,5 +170,5 @@ align($40) byte[4*4*4] PIECE_I = { // The different pieces word[] PIECES = { (word)PIECE_T, (word)PIECE_S, (word)PIECE_Z, (word)PIECE_J, (word)PIECE_O, (word)PIECE_I, (word)PIECE_L }; -// The colors to use for the pieces -byte[] PIECES_COLORS = { WHITE, LIGHT_GREY, GREEN, LIGHT_GREY, WHITE, WHITE, GREEN }; \ No newline at end of file +// The chars to use for the different pieces +byte[] PIECES_CHARS = { $57, $58, $98, $58, $57, $57, $98 }; \ 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 3288f3c59..40fe902b5 100644 --- a/src/test/kc/examples/tetris/tetris-play.kc +++ b/src/test/kc/examples/tetris/tetris-play.kc @@ -157,7 +157,7 @@ void play_lock_current() { byte col = current_xpos; for(byte c:0..3) { if(current_piece_gfx[i++]!=0) { - playfield_line[col] = current_piece_color; + playfield_line[col] = current_piece_char; } col++; } @@ -177,7 +177,7 @@ void play_spawn_current() { current_piece_gfx = current_piece + current_orientation; current_xpos = 3; current_ypos = 0; - current_piece_color = PIECES_COLORS[piece_idx]; + current_piece_char = PIECES_CHARS[piece_idx]; } // Look through the playfield for lines - and remove any lines found diff --git a/src/test/kc/examples/tetris/tetris-render.kc b/src/test/kc/examples/tetris/tetris-render.kc index 27900ba68..42399e278 100644 --- a/src/test/kc/examples/tetris/tetris-render.kc +++ b/src/test/kc/examples/tetris/tetris-render.kc @@ -1,10 +1,15 @@ import "tetris-data" -kickasm(pc PLAYFIELD_CHARSET, resource "nes-charset.png") {{ - .var charset = LoadPicture("nes-charset.png", List().add($000000, $ffffff)) - .for (var c=0; c<32; c++) - .for (var y=0;y<8; y++) - .byte charset.getSinglecolorByte(c,y) +kickasm(pc PLAYFIELD_CHARSET, resource "nes-screen.imap") {{ + .fill 8,$00 // Place a filled char at the start of the charset + .import binary "nes-screen.imap" +}} + +const byte PLAYFIELD_SCREEN_ORIGINAL_WIDTH=32; +const byte* PLAYFIELD_SCREEN_ORIGINAL = $2c00; +// Address of the screen data original +kickasm(pc PLAYFIELD_SCREEN_ORIGINAL, resource "nes-screen.iscr") {{ + .import binary "nes-screen.iscr" }} // Pointers to the screen address for rendering each playfield line @@ -12,27 +17,52 @@ byte*[PLAYFIELD_LINES+3] screen_lines; // Initialize rendering void render_init() { - *BGCOL = BLACK; - // Clear the screen - fill(PLAYFIELD_SCREEN,1000,$d0); - fill(COLS,1000,BLACK); + vicSelectGfxBank(PLAYFIELD_SCREEN); + *D018 = toD018(PLAYFIELD_SCREEN, PLAYFIELD_CHARSET); + // Enable Extended Background Color Mode + *D011 = VIC_ECM | VIC_DEN | VIC_RSEL | 3; + *BGCOL1 = BLACK; + *BGCOL2 = BLUE; + *BGCOL3 = CYAN; + *BGCOL4 = GREY; + fill(COLS,1000,DARK_GREY); + render_screen_original(PLAYFIELD_SCREEN); + // Initialize the screen line pointers; - byte* li = COLS + 40 + 15; + byte* li = PLAYFIELD_SCREEN + 40 + 16; for(byte i:0..PLAYFIELD_LINES+2) { screen_lines[i<<1] = li; li += 40; } // Prepare the playfield frame - byte* line = COLS + 14; + byte* line = COLS + 15; for(byte l:0..PLAYFIELD_LINES+1) { for(byte c:0..PLAYFIELD_COLS+1) { - *(line+c) = DARK_GREY; + *(line+c) = WHITE; } line +=40; } } +// Copy the original screen data to the passed screen +void render_screen_original(byte* screen) { + byte SPACE = 0; + byte* orig = PLAYFIELD_SCREEN_ORIGINAL+32*2; + for(byte y:0..24) { + byte x=0; + do { + *screen++ = SPACE; + } while(++x!=4); + do { + *screen++ = (*orig++)+1; // +$c0 to get grey background, +1 because the charset is loaded to PLAYFIELD_CHARSET+8 + } while(++x!=36); + do { + *screen++ = SPACE; + } while(++x!=40); + } +} + // Render the static playfield on the screen void render_playfield() { byte i = 0; @@ -56,7 +86,7 @@ void render_current() { byte current_cell = current_piece_gfx[i++]; if(current_cell!=0) { if(xposPLAYFIELD_SCREEN)>>6 + .const toD0181_return = (>(PLAYFIELD_SCREEN&$3fff)<<2)|(>PLAYFIELD_CHARSET)>>2&$f + .label _15 = $c .label li = 5 .label line = 5 .label l = 2 + lda #3 + sta CIA2_PORT_A_DDR + lda #vicSelectGfxBank1_toDd001_return + sta CIA2_PORT_A + lda #toD0181_return + sta D018 + lda #VIC_ECM|VIC_DEN|VIC_RSEL|3 + sta D011 lda #BLACK - sta BGCOL - ldx #$d0 - lda #PLAYFIELD_SCREEN - sta fill.addr+1 + sta BGCOL1 + lda #BLUE + sta BGCOL2 + lda #CYAN + sta BGCOL3 + lda #GREY + sta BGCOL4 jsr fill - ldx #BLACK - lda #COLS - sta fill.addr+1 - jsr fill - lda #COLS+$28+$f + lda #>PLAYFIELD_SCREEN+$28+$10 sta li+1 ldx #0 b1: @@ -818,9 +836,9 @@ render_init: { bne b1 lda #0 sta l - lda #COLS+$e + lda #>COLS+$f sta line+1 b2: ldx #0 @@ -828,13 +846,13 @@ render_init: { txa clc adc line - sta _10 + sta _15 lda #0 adc line+1 - sta _10+1 - lda #DARK_GREY + sta _15+1 + lda #WHITE ldy #0 - sta (_10),y + sta (_15),y inx cpx #PLAYFIELD_COLS+1+1 bne b3 @@ -851,18 +869,78 @@ render_init: { bne b2 rts } -fill: { - .label end = $c - .label addr = 5 - lda addr - clc - adc #<$3e8 - sta end - lda addr+1 - adc #>$3e8 - sta end+1 +render_screen_original: { + .const SPACE = 0 + .label screen = $c + .label orig = 5 + .label y = 2 + lda #0 + sta y + lda #PLAYFIELD_SCREEN_ORIGINAL+$20*2 + sta orig+1 + lda #PLAYFIELD_SCREEN + sta screen+1 b1: - txa + ldx #0 + b2: + lda #SPACE + ldy #0 + sta (screen),y + inc screen + bne !+ + inc screen+1 + !: + inx + cpx #4 + bne b2 + b3: + ldy #0 + lda (orig),y + clc + adc #1 + sta (screen),y + inc screen + bne !+ + inc screen+1 + !: + inc orig + bne !+ + inc orig+1 + !: + inx + cpx #$24 + bne b3 + b4: + lda #SPACE + ldy #0 + sta (screen),y + inc screen + bne !+ + inc screen+1 + !: + inx + cpx #$28 + bne b4 + inc y + lda y + cmp #$19 + bne b1 + rts +} +fill: { + .const size = $3e8 + .label end = COLS+size + .label addr = 5 + lda #COLS + sta addr+1 + b1: + lda #DARK_GREY ldy #0 sta (addr),y inc addr @@ -870,10 +948,10 @@ fill: { inc addr+1 !: lda addr+1 - cmp end+1 + cmp #>end bne b1 lda addr - cmp end + cmp #=(byte/signed byte/word/signed word/dword/signed dword) 2*(const byte) PLAYFIELD_LINES#0) goto render_current::@2 + [55] (byte) render_current::i#4 ← phi( render_current/(byte/signed byte/word/signed word/dword/signed dword) 0 render_current::@2/(byte) render_current::i#8 ) + [55] (byte) render_current::l#3 ← phi( render_current/(byte/signed byte/word/signed word/dword/signed dword) 0 render_current::@2/(byte) render_current::l#1 ) + [55] (byte) render_current::ypos2#2 ← phi( render_current/(byte) render_current::ypos2#0 render_current::@2/(byte) render_current::ypos2#1 ) + [56] if((byte) render_current::ypos2#2>=(byte/signed byte/word/signed word/dword/signed dword) 2*(const byte) PLAYFIELD_LINES#0) goto render_current::@2 to:render_current::@6 render_current::@6: scope:[render_current] from render_current::@1 - [56] (byte*) render_current::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0+3]) screen_lines#0 + (byte) render_current::ypos2#2) - [57] (byte) render_current::xpos#0 ← (byte) current_xpos#48 + [57] (byte*) render_current::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0+3]) screen_lines#0 + (byte) render_current::ypos2#2) + [58] (byte) render_current::xpos#0 ← (byte) current_xpos#48 to:render_current::@3 render_current::@3: scope:[render_current] from render_current::@4 render_current::@6 - [58] (byte) render_current::c#2 ← phi( render_current::@4/(byte) render_current::c#1 render_current::@6/(byte/signed byte/word/signed word/dword/signed dword) 0 ) - [58] (byte) render_current::xpos#2 ← phi( render_current::@4/(byte) render_current::xpos#1 render_current::@6/(byte) render_current::xpos#0 ) - [58] (byte) render_current::i#2 ← phi( render_current::@4/(byte) render_current::i#1 render_current::@6/(byte) render_current::i#4 ) - [59] (byte) render_current::current_cell#0 ← *((byte*) current_piece_gfx#53 + (byte) render_current::i#2) - [60] (byte) render_current::i#1 ← ++ (byte) render_current::i#2 - [61] if((byte) render_current::current_cell#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto render_current::@4 + [59] (byte) render_current::c#2 ← phi( render_current::@4/(byte) render_current::c#1 render_current::@6/(byte/signed byte/word/signed word/dword/signed dword) 0 ) + [59] (byte) render_current::xpos#2 ← phi( render_current::@4/(byte) render_current::xpos#1 render_current::@6/(byte) render_current::xpos#0 ) + [59] (byte) render_current::i#2 ← phi( render_current::@4/(byte) render_current::i#1 render_current::@6/(byte) render_current::i#4 ) + [60] (byte) render_current::current_cell#0 ← *((byte*) current_piece_gfx#53 + (byte) render_current::i#2) + [61] (byte) render_current::i#1 ← ++ (byte) render_current::i#2 + [62] if((byte) render_current::current_cell#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto render_current::@4 to:render_current::@7 render_current::@7: scope:[render_current] from render_current::@3 - [62] if((byte) render_current::xpos#2>=(const byte) PLAYFIELD_COLS#0) goto render_current::@4 + [63] if((byte) render_current::xpos#2>=(const byte) PLAYFIELD_COLS#0) goto render_current::@4 to:render_current::@8 render_current::@8: scope:[render_current] from render_current::@7 - [63] *((byte*) render_current::screen_line#0 + (byte) render_current::xpos#2) ← (byte) current_piece_color#62 + [64] *((byte*) render_current::screen_line#0 + (byte) render_current::xpos#2) ← (byte) current_piece_char#62 to:render_current::@4 render_current::@4: scope:[render_current] from render_current::@3 render_current::@7 render_current::@8 - [64] (byte) render_current::xpos#1 ← ++ (byte) render_current::xpos#2 - [65] (byte) render_current::c#1 ← ++ (byte) render_current::c#2 - [66] if((byte) render_current::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_current::@3 + [65] (byte) render_current::xpos#1 ← ++ (byte) render_current::xpos#2 + [66] (byte) render_current::c#1 ← ++ (byte) render_current::c#2 + [67] if((byte) render_current::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_current::@3 to:render_current::@2 render_current::@2: scope:[render_current] from render_current::@1 render_current::@4 - [67] (byte) render_current::i#8 ← phi( render_current::@1/(byte) render_current::i#4 render_current::@4/(byte) render_current::i#1 ) - [68] (byte) render_current::ypos2#1 ← (byte) render_current::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 - [69] (byte) render_current::l#1 ← ++ (byte) render_current::l#3 - [70] if((byte) render_current::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_current::@1 + [68] (byte) render_current::i#8 ← phi( render_current::@1/(byte) render_current::i#4 render_current::@4/(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#3 + [71] if((byte) render_current::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_current::@1 to:render_current::@return render_current::@return: scope:[render_current] from render_current::@2 - [71] return + [72] return to:@return render_playfield: scope:[render_playfield] from main::@19 main::@24 - [72] phi() + [73] phi() to:render_playfield::@1 render_playfield::@1: scope:[render_playfield] from render_playfield render_playfield::@3 - [73] (byte) render_playfield::i#3 ← phi( render_playfield/(byte/signed byte/word/signed word/dword/signed dword) 0 render_playfield::@3/(byte) render_playfield::i#1 ) - [73] (byte) render_playfield::l#2 ← phi( render_playfield/(byte/signed byte/word/signed word/dword/signed dword) 0 render_playfield::@3/(byte) render_playfield::l#1 ) - [74] (byte~) render_playfield::$1 ← (byte) render_playfield::l#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 - [75] (byte*) render_playfield::line#0 ← *((const byte*[PLAYFIELD_LINES#0+3]) screen_lines#0 + (byte~) render_playfield::$1) + [74] (byte) render_playfield::i#3 ← phi( render_playfield/(byte/signed byte/word/signed word/dword/signed dword) 0 render_playfield::@3/(byte) render_playfield::i#1 ) + [74] (byte) render_playfield::l#2 ← phi( render_playfield/(byte/signed byte/word/signed word/dword/signed dword) 0 render_playfield::@3/(byte) render_playfield::l#1 ) + [75] (byte~) render_playfield::$1 ← (byte) render_playfield::l#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 + [76] (byte*) render_playfield::line#0 ← *((const byte*[PLAYFIELD_LINES#0+3]) screen_lines#0 + (byte~) render_playfield::$1) to:render_playfield::@2 render_playfield::@2: scope:[render_playfield] from render_playfield::@1 render_playfield::@2 - [76] (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 ) - [76] (byte*) render_playfield::line#2 ← phi( render_playfield::@1/(byte*) render_playfield::line#0 render_playfield::@2/(byte*) render_playfield::line#1 ) - [76] (byte) render_playfield::i#2 ← phi( render_playfield::@1/(byte) render_playfield::i#3 render_playfield::@2/(byte) render_playfield::i#1 ) - [77] *((byte*) render_playfield::line#2) ← *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) render_playfield::i#2) - [78] (byte*) render_playfield::line#1 ← ++ (byte*) render_playfield::line#2 - [79] (byte) render_playfield::i#1 ← ++ (byte) render_playfield::i#2 - [80] (byte) render_playfield::c#1 ← ++ (byte) render_playfield::c#2 - [81] 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 + [77] (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 ) + [77] (byte*) render_playfield::line#2 ← phi( render_playfield::@1/(byte*) render_playfield::line#0 render_playfield::@2/(byte*) render_playfield::line#1 ) + [77] (byte) render_playfield::i#2 ← phi( render_playfield::@1/(byte) render_playfield::i#3 render_playfield::@2/(byte) render_playfield::i#1 ) + [78] *((byte*) render_playfield::line#2) ← *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) render_playfield::i#2) + [79] (byte*) render_playfield::line#1 ← ++ (byte*) render_playfield::line#2 + [80] (byte) render_playfield::i#1 ← ++ (byte) render_playfield::i#2 + [81] (byte) render_playfield::c#1 ← ++ (byte) render_playfield::c#2 + [82] 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 - [82] (byte) render_playfield::l#1 ← ++ (byte) render_playfield::l#2 - [83] 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 + [83] (byte) render_playfield::l#1 ← ++ (byte) render_playfield::l#2 + [84] 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 - [84] return + [85] return to:@return play_move_rotate: scope:[play_move_rotate] from main::@30 - [85] if((byte) play_move_rotate::key_event#0==(const byte) KEY_Z#0) goto play_move_rotate::@1 + [86] 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 - [86] if((byte) play_move_rotate::key_event#0==(const byte) KEY_X#0) goto play_move_rotate::@2 + [87] 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 - [87] (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 ) - [87] (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 ) - [87] (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 ) - [88] return + [88] (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 ) + [88] (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 ) + [88] (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 ) + [89] return to:@return play_move_rotate::@2: scope:[play_move_rotate] from play_move_rotate::@6 - [89] (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 - [90] (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 + [90] (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 + [91] (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 - [91] (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 ) - [92] (byte) play_collision::xpos#3 ← (byte) current_xpos#20 - [93] (byte) play_collision::ypos#3 ← (byte) current_ypos#14 - [94] (byte) play_collision::orientation#3 ← (byte) play_move_rotate::orientation#3 - [95] (byte*~) current_piece#74 ← (byte*) current_piece#10 - [96] call play_collision - [97] (byte) play_collision::return#13 ← (byte) play_collision::return#14 + [92] (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 ) + [93] (byte) play_collision::xpos#3 ← (byte) current_xpos#20 + [94] (byte) play_collision::ypos#3 ← (byte) current_ypos#14 + [95] (byte) play_collision::orientation#3 ← (byte) play_move_rotate::orientation#3 + [96] (byte*~) current_piece#74 ← (byte*) current_piece#10 + [97] call play_collision + [98] (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 - [98] (byte~) play_move_rotate::$6 ← (byte) play_collision::return#13 - [99] if((byte~) play_move_rotate::$6!=(const byte) COLLISION_NONE#0) goto play_move_rotate::@return + [99] (byte~) play_move_rotate::$6 ← (byte) play_collision::return#13 + [100] 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 - [100] (byte) current_orientation#4 ← (byte) play_move_rotate::orientation#3 - [101] (byte*) current_piece_gfx#4 ← (byte*) current_piece#10 + (byte) current_orientation#4 + [101] (byte) current_orientation#4 ← (byte) play_move_rotate::orientation#3 + [102] (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 - [102] (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 - [103] (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 + [103] (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 + [104] (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 - [104] (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 ) - [104] (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 ) - [104] (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 ) - [104] (byte*) current_piece#12 ← phi( play_move_down::@12/(byte*~) current_piece#71 play_move_leftright::@1/(byte*~) current_piece#72 play_move_leftright::@7/(byte*~) current_piece#73 play_move_rotate::@4/(byte*~) current_piece#74 ) - [105] (byte*) play_collision::piece_gfx#0 ← (byte*) current_piece#12 + (byte) play_collision::orientation#4 - [106] (byte) play_collision::ypos2#0 ← (byte) play_collision::ypos#4 << (byte/signed byte/word/signed word/dword/signed dword) 1 + [105] (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 ) + [105] (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 ) + [105] (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 ) + [105] (byte*) current_piece#12 ← phi( play_move_down::@12/(byte*~) current_piece#71 play_move_leftright::@1/(byte*~) current_piece#72 play_move_leftright::@7/(byte*~) current_piece#73 play_move_rotate::@4/(byte*~) current_piece#74 ) + [106] (byte*) play_collision::piece_gfx#0 ← (byte*) current_piece#12 + (byte) play_collision::orientation#4 + [107] (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 - [107] (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 ) - [107] (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 ) - [107] (byte) play_collision::ypos2#2 ← phi( play_collision/(byte) play_collision::ypos2#0 play_collision::@20/(byte) play_collision::ypos2#1 ) - [108] (byte*) play_collision::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) play_collision::ypos2#2) - [109] (byte~) play_collision::col#9 ← (byte) play_collision::xpos#5 + [108] (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 ) + [108] (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 ) + [108] (byte) play_collision::ypos2#2 ← phi( play_collision/(byte) play_collision::ypos2#0 play_collision::@20/(byte) play_collision::ypos2#1 ) + [109] (byte*) play_collision::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) play_collision::ypos2#2) + [110] (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 - [110] (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 ) - [110] (byte) play_collision::col#2 ← phi( play_collision::@1/(byte~) play_collision::col#9 play_collision::@21/(byte) play_collision::col#1 ) - [110] (byte) play_collision::i#2 ← phi( play_collision::@1/(byte) play_collision::i#3 play_collision::@21/(byte~) play_collision::i#13 ) - [111] (byte) play_collision::i#1 ← ++ (byte) play_collision::i#2 - [112] 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 + [111] (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 ) + [111] (byte) play_collision::col#2 ← phi( play_collision::@1/(byte~) play_collision::col#9 play_collision::@21/(byte) play_collision::col#1 ) + [111] (byte) play_collision::i#2 ← phi( play_collision::@1/(byte) play_collision::i#3 play_collision::@21/(byte~) play_collision::i#13 ) + [112] (byte) play_collision::i#1 ← ++ (byte) play_collision::i#2 + [113] 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 - [113] 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 + [114] 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 - [114] (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 ) - [115] return + [115] (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 ) + [116] return to:@return play_collision::@4: scope:[play_collision] from play_collision::@8 - [116] (byte~) play_collision::$7 ← (byte) play_collision::col#2 & (byte/word/signed word/dword/signed dword) 128 - [117] if((byte~) play_collision::$7==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_collision::@5 + [117] (byte~) play_collision::$7 ← (byte) play_collision::col#2 & (byte/word/signed word/dword/signed dword) 128 + [118] 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 - [118] if((byte) play_collision::col#2<(const byte) PLAYFIELD_COLS#0) goto play_collision::@6 + [119] 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 - [119] 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 + [120] 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 - [120] (byte) play_collision::col#1 ← ++ (byte) play_collision::col#2 - [121] (byte) play_collision::c#1 ← ++ (byte) play_collision::c#2 - [122] if((byte) play_collision::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto play_collision::@21 + [121] (byte) play_collision::col#1 ← ++ (byte) play_collision::col#2 + [122] (byte) play_collision::c#1 ← ++ (byte) play_collision::c#2 + [123] 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 - [123] (byte) play_collision::ypos2#1 ← (byte) play_collision::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 - [124] (byte) play_collision::l#1 ← ++ (byte) play_collision::l#6 - [125] if((byte) play_collision::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto play_collision::@20 + [124] (byte) play_collision::ypos2#1 ← (byte) play_collision::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 + [125] (byte) play_collision::l#1 ← ++ (byte) play_collision::l#6 + [126] 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 - [126] (byte~) play_collision::i#11 ← (byte) play_collision::i#1 + [127] (byte~) play_collision::i#11 ← (byte) play_collision::i#1 to:play_collision::@1 play_collision::@21: scope:[play_collision] from play_collision::@3 - [127] (byte~) play_collision::i#13 ← (byte) play_collision::i#1 + [128] (byte~) play_collision::i#13 ← (byte) play_collision::i#1 to:play_collision::@2 play_move_leftright: scope:[play_move_leftright] from main::@29 - [128] if((byte) play_move_leftright::key_event#0==(const byte) KEY_COMMA#0) goto play_move_leftright::@1 + [129] 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 - [129] if((byte) play_move_leftright::key_event#0!=(const byte) KEY_DOT#0) goto play_move_leftright::@return + [130] 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 - [130] (byte) play_collision::xpos#2 ← (byte) current_xpos#16 + (byte/signed byte/word/signed word/dword/signed dword) 1 - [131] (byte) play_collision::ypos#2 ← (byte) current_ypos#14 - [132] (byte) play_collision::orientation#2 ← (byte) current_orientation#14 - [133] (byte*~) current_piece#73 ← (byte*) current_piece#10 - [134] call play_collision - [135] (byte) play_collision::return#12 ← (byte) play_collision::return#14 + [131] (byte) play_collision::xpos#2 ← (byte) current_xpos#16 + (byte/signed byte/word/signed word/dword/signed dword) 1 + [132] (byte) play_collision::ypos#2 ← (byte) current_ypos#14 + [133] (byte) play_collision::orientation#2 ← (byte) current_orientation#14 + [134] (byte*~) current_piece#73 ← (byte*) current_piece#10 + [135] call play_collision + [136] (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 - [136] (byte~) play_move_leftright::$4 ← (byte) play_collision::return#12 - [137] if((byte~) play_move_leftright::$4!=(const byte) COLLISION_NONE#0) goto play_move_leftright::@return + [137] (byte~) play_move_leftright::$4 ← (byte) play_collision::return#12 + [138] 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 - [138] (byte) current_xpos#3 ← ++ (byte) current_xpos#16 + [139] (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 - [139] (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 ) - [139] (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 ) - [140] return + [140] (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 ) + [140] (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 ) + [141] return to:@return play_move_leftright::@1: scope:[play_move_leftright] from play_move_leftright - [141] (byte) play_collision::xpos#1 ← (byte) current_xpos#16 - (byte/signed byte/word/signed word/dword/signed dword) 1 - [142] (byte) play_collision::ypos#1 ← (byte) current_ypos#14 - [143] (byte) play_collision::orientation#1 ← (byte) current_orientation#14 - [144] (byte*~) current_piece#72 ← (byte*) current_piece#10 - [145] call play_collision - [146] (byte) play_collision::return#1 ← (byte) play_collision::return#14 + [142] (byte) play_collision::xpos#1 ← (byte) current_xpos#16 - (byte/signed byte/word/signed word/dword/signed dword) 1 + [143] (byte) play_collision::ypos#1 ← (byte) current_ypos#14 + [144] (byte) play_collision::orientation#1 ← (byte) current_orientation#14 + [145] (byte*~) current_piece#72 ← (byte*) current_piece#10 + [146] call play_collision + [147] (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 - [147] (byte~) play_move_leftright::$8 ← (byte) play_collision::return#1 - [148] if((byte~) play_move_leftright::$8!=(const byte) COLLISION_NONE#0) goto play_move_leftright::@return + [148] (byte~) play_move_leftright::$8 ← (byte) play_collision::return#1 + [149] 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 - [149] (byte) current_xpos#5 ← -- (byte) current_xpos#16 + [150] (byte) current_xpos#5 ← -- (byte) current_xpos#16 to:play_move_leftright::@return play_move_down: scope:[play_move_down] from main::@28 - [150] (byte) current_movedown_counter#1 ← ++ (byte) current_movedown_counter#12 - [151] if((byte) play_move_down::key_event#0!=(const byte) KEY_SPACE#0) goto play_move_down::@1 + [151] (byte) current_movedown_counter#1 ← ++ (byte) current_movedown_counter#12 + [152] 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 - [152] phi() + [153] phi() to:play_move_down::@1 play_move_down::@1: scope:[play_move_down] from play_move_down play_move_down::@8 - [153] (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 ) - [154] call keyboard_event_pressed - [155] (byte) keyboard_event_pressed::return#12 ← (byte) keyboard_event_pressed::return#11 + [154] (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 ) + [155] call keyboard_event_pressed + [156] (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 - [156] (byte~) play_move_down::$2 ← (byte) keyboard_event_pressed::return#12 - [157] if((byte~) play_move_down::$2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_move_down::@2 + [157] (byte~) play_move_down::$2 ← (byte) keyboard_event_pressed::return#12 + [158] 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 - [158] if((byte) current_movedown_counter#1<(const byte) current_movedown_fast#0) goto play_move_down::@2 + [159] 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 - [159] (byte) play_move_down::movedown#2 ← ++ (byte) play_move_down::movedown#10 + [160] (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 - [160] (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 ) - [161] if((byte) current_movedown_counter#1<(const byte) current_movedown_slow#0) goto play_move_down::@4 + [161] (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 ) + [162] 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 - [162] (byte) play_move_down::movedown#3 ← ++ (byte) play_move_down::movedown#7 + [163] (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 - [163] (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 ) - [164] if((byte) play_move_down::movedown#6==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_move_down::@return + [164] (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 ) + [165] 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 - [165] (byte) play_collision::ypos#0 ← (byte) current_ypos#22 + (byte/signed byte/word/signed word/dword/signed dword) 1 - [166] (byte) play_collision::xpos#0 ← (byte) current_xpos#11 - [167] (byte) play_collision::orientation#0 ← (byte) current_orientation#10 - [168] (byte*~) current_piece#71 ← (byte*) current_piece#16 - [169] call play_collision - [170] (byte) play_collision::return#0 ← (byte) play_collision::return#14 + [166] (byte) play_collision::ypos#0 ← (byte) current_ypos#22 + (byte/signed byte/word/signed word/dword/signed dword) 1 + [167] (byte) play_collision::xpos#0 ← (byte) current_xpos#11 + [168] (byte) play_collision::orientation#0 ← (byte) current_orientation#10 + [169] (byte*~) current_piece#71 ← (byte*) current_piece#16 + [170] call play_collision + [171] (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 - [171] (byte~) play_move_down::$12 ← (byte) play_collision::return#0 - [172] if((byte~) play_move_down::$12==(const byte) COLLISION_NONE#0) goto play_move_down::@6 + [172] (byte~) play_move_down::$12 ← (byte) play_collision::return#0 + [173] 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 - [173] phi() - [174] call play_lock_current + [174] phi() + [175] call play_lock_current to:play_move_down::@19 play_move_down::@19: scope:[play_move_down] from play_move_down::@13 - [175] phi() - [176] call play_remove_lines + [176] phi() + [177] call play_remove_lines to:play_move_down::@20 play_move_down::@20: scope:[play_move_down] from play_move_down::@19 - [177] phi() - [178] call play_spawn_current - [179] (byte*~) current_piece#75 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) + [178] phi() + [179] call play_spawn_current + [180] (byte*~) current_piece#75 ← (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 - [180] (byte) current_piece_color#21 ← phi( play_move_down::@20/(byte) current_piece_color#13 play_move_down::@6/(byte) current_piece_color#16 ) - [180] (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 ) - [180] (byte*) current_piece_gfx#27 ← phi( play_move_down::@20/(byte*) current_piece_gfx#17 play_move_down::@6/(byte*) current_piece_gfx#10 ) - [180] (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 ) - [180] (byte*) current_piece#20 ← phi( play_move_down::@20/(byte*~) current_piece#75 play_move_down::@6/(byte*) current_piece#16 ) - [180] (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 ) + [181] (byte) current_piece_char#21 ← phi( play_move_down::@20/(byte) current_piece_char#13 play_move_down::@6/(byte) current_piece_char#16 ) + [181] (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 ) + [181] (byte*) current_piece_gfx#27 ← phi( play_move_down::@20/(byte*) current_piece_gfx#17 play_move_down::@6/(byte*) current_piece_gfx#10 ) + [181] (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 ) + [181] (byte*) current_piece#20 ← phi( play_move_down::@20/(byte*~) current_piece#75 play_move_down::@6/(byte*) current_piece#16 ) + [181] (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 ) to:play_move_down::@return play_move_down::@return: scope:[play_move_down] from play_move_down::@4 play_move_down::@7 - [181] (byte) current_piece_color#11 ← phi( play_move_down::@4/(byte) current_piece_color#16 play_move_down::@7/(byte) current_piece_color#21 ) - [181] (byte) current_xpos#16 ← phi( play_move_down::@4/(byte) current_xpos#11 play_move_down::@7/(byte) current_xpos#34 ) - [181] (byte*) current_piece_gfx#14 ← phi( play_move_down::@4/(byte*) current_piece_gfx#10 play_move_down::@7/(byte*) current_piece_gfx#27 ) - [181] (byte) current_orientation#14 ← phi( play_move_down::@4/(byte) current_orientation#10 play_move_down::@7/(byte) current_orientation#29 ) - [181] (byte*) current_piece#10 ← phi( play_move_down::@4/(byte*) current_piece#16 play_move_down::@7/(byte*) current_piece#20 ) - [181] (byte) current_ypos#14 ← phi( play_move_down::@4/(byte) current_ypos#22 play_move_down::@7/(byte) current_ypos#30 ) - [181] (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 ) - [181] (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 ) - [182] return + [182] (byte) current_piece_char#11 ← phi( play_move_down::@4/(byte) current_piece_char#16 play_move_down::@7/(byte) current_piece_char#21 ) + [182] (byte) current_xpos#16 ← phi( play_move_down::@4/(byte) current_xpos#11 play_move_down::@7/(byte) current_xpos#34 ) + [182] (byte*) current_piece_gfx#14 ← phi( play_move_down::@4/(byte*) current_piece_gfx#10 play_move_down::@7/(byte*) current_piece_gfx#27 ) + [182] (byte) current_orientation#14 ← phi( play_move_down::@4/(byte) current_orientation#10 play_move_down::@7/(byte) current_orientation#29 ) + [182] (byte*) current_piece#10 ← phi( play_move_down::@4/(byte*) current_piece#16 play_move_down::@7/(byte*) current_piece#20 ) + [182] (byte) current_ypos#14 ← phi( play_move_down::@4/(byte) current_ypos#22 play_move_down::@7/(byte) current_ypos#30 ) + [182] (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 ) + [182] (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 ) + [183] return to:@return play_move_down::@6: scope:[play_move_down] from play_move_down::@18 - [183] (byte) current_ypos#1 ← ++ (byte) current_ypos#22 + [184] (byte) current_ypos#1 ← ++ (byte) current_ypos#22 to:play_move_down::@7 play_spawn_current: scope:[play_spawn_current] from main::@23 play_move_down::@20 - [184] phi() + [185] phi() to:play_spawn_current::@1 play_spawn_current::@1: scope:[play_spawn_current] from play_spawn_current play_spawn_current::@7 - [185] (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 ) - [186] if((byte) play_spawn_current::piece_idx#2==(byte/signed byte/word/signed word/dword/signed dword) 7) goto play_spawn_current::@2 + [186] (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 ) + [187] 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 - [187] (byte~) play_spawn_current::$3 ← (byte) play_spawn_current::piece_idx#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 - [188] (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 - [189] (byte) current_piece_color#13 ← *((const byte[]) PIECES_COLORS#0 + (byte) play_spawn_current::piece_idx#2) + [188] (byte~) play_spawn_current::$3 ← (byte) play_spawn_current::piece_idx#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 + [189] (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 + [190] (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 - [190] return + [191] return to:@return play_spawn_current::@2: scope:[play_spawn_current] from play_spawn_current::@1 - [191] phi() - [192] call sid_rnd - [193] (byte) sid_rnd::return#2 ← (byte) sid_rnd::return#0 + [192] phi() + [193] call sid_rnd + [194] (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 - [194] (byte~) play_spawn_current::$1 ← (byte) sid_rnd::return#2 - [195] (byte) play_spawn_current::piece_idx#1 ← (byte~) play_spawn_current::$1 & (byte/signed byte/word/signed word/dword/signed dword) 7 + [195] (byte~) play_spawn_current::$1 ← (byte) sid_rnd::return#2 + [196] (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 - [196] (byte) sid_rnd::return#0 ← *((const byte*) SID_VOICE3_OSC#0) + [197] (byte) sid_rnd::return#0 ← *((const byte*) SID_VOICE3_OSC#0) to:sid_rnd::@return sid_rnd::@return: scope:[sid_rnd] from sid_rnd - [197] return + [198] return to:@return play_remove_lines: scope:[play_remove_lines] from play_move_down::@19 - [198] phi() + [199] phi() to:play_remove_lines::@1 play_remove_lines::@1: scope:[play_remove_lines] from play_remove_lines play_remove_lines::@4 - [199] (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 ) - [199] (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 ) - [199] (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 ) + [200] (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 ) + [200] (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 ) + [200] (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 - [200] (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 ) - [200] (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 ) - [200] (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 ) - [200] (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 ) - [201] (byte) play_remove_lines::c#0 ← *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) play_remove_lines::r#2) - [202] (byte) play_remove_lines::r#1 ← -- (byte) play_remove_lines::r#2 - [203] if((byte) play_remove_lines::c#0!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_remove_lines::@17 + [201] (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 ) + [201] (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 ) + [201] (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 ) + [201] (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 ) + [202] (byte) play_remove_lines::c#0 ← *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) play_remove_lines::r#2) + [203] (byte) play_remove_lines::r#1 ← -- (byte) play_remove_lines::r#2 + [204] 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 - [204] (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 ) - [205] *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) play_remove_lines::w#4) ← (byte) play_remove_lines::c#0 - [206] (byte) play_remove_lines::w#1 ← -- (byte) play_remove_lines::w#4 - [207] (byte) play_remove_lines::x#1 ← ++ (byte) play_remove_lines::x#2 - [208] 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 + [205] (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 ) + [206] *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) play_remove_lines::w#4) ← (byte) play_remove_lines::c#0 + [207] (byte) play_remove_lines::w#1 ← -- (byte) play_remove_lines::w#4 + [208] (byte) play_remove_lines::x#1 ← ++ (byte) play_remove_lines::x#2 + [209] 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 - [209] if((byte) play_remove_lines::full#2!=(byte/signed byte/word/signed word/dword/signed dword) 1) goto play_remove_lines::@4 + [210] 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 - [210] (byte) play_remove_lines::w#2 ← (byte) play_remove_lines::w#1 + (const byte) PLAYFIELD_COLS#0 + [211] (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 - [211] (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 ) - [212] (byte) play_remove_lines::y#1 ← ++ (byte) play_remove_lines::y#8 - [213] 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 + [212] (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 ) + [213] (byte) play_remove_lines::y#1 ← ++ (byte) play_remove_lines::y#8 + [214] 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 - [214] (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 ) - [215] if((byte) play_remove_lines::w#6!=(byte/word/signed word/dword/signed dword) 255) goto play_remove_lines::@6 + [215] (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 ) + [216] 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 - [216] return + [217] return to:@return play_remove_lines::@6: scope:[play_remove_lines] from play_remove_lines::@5 - [217] *((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 - [218] (byte) play_remove_lines::w#3 ← -- (byte) play_remove_lines::w#6 + [218] *((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 + [219] (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 - [219] phi() + [220] phi() to:play_remove_lines::@3 play_lock_current: scope:[play_lock_current] from play_move_down::@13 - [220] (byte) play_lock_current::ypos2#0 ← (byte) current_ypos#22 << (byte/signed byte/word/signed word/dword/signed dword) 1 + [221] (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 - [221] (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 ) - [221] (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 ) - [221] (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 ) - [222] (byte*) play_lock_current::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) play_lock_current::ypos2#2) - [223] (byte) play_lock_current::col#0 ← (byte) current_xpos#11 + [222] (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 ) + [222] (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 ) + [222] (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 ) + [223] (byte*) play_lock_current::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) play_lock_current::ypos2#2) + [224] (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 - [224] (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 ) - [224] (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 ) - [224] (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 ) - [225] (byte) play_lock_current::i#1 ← ++ (byte) play_lock_current::i#2 - [226] 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 + [225] (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 ) + [225] (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 ) + [225] (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 ) + [226] (byte) play_lock_current::i#1 ← ++ (byte) play_lock_current::i#2 + [227] 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 - [227] *((byte*) play_lock_current::playfield_line#0 + (byte) play_lock_current::col#2) ← (byte) current_piece_color#16 + [228] *((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 - [228] (byte) play_lock_current::col#1 ← ++ (byte) play_lock_current::col#2 - [229] (byte) play_lock_current::c#1 ← ++ (byte) play_lock_current::c#2 - [230] if((byte) play_lock_current::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto play_lock_current::@8 + [229] (byte) play_lock_current::col#1 ← ++ (byte) play_lock_current::col#2 + [230] (byte) play_lock_current::c#1 ← ++ (byte) play_lock_current::c#2 + [231] 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 - [231] (byte) play_lock_current::ypos2#1 ← (byte) play_lock_current::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 - [232] (byte) play_lock_current::l#1 ← ++ (byte) play_lock_current::l#6 - [233] if((byte) play_lock_current::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto play_lock_current::@7 + [232] (byte) play_lock_current::ypos2#1 ← (byte) play_lock_current::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 + [233] (byte) play_lock_current::l#1 ← ++ (byte) play_lock_current::l#6 + [234] 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 - [234] return + [235] return to:@return play_lock_current::@7: scope:[play_lock_current] from play_lock_current::@5 - [235] (byte~) play_lock_current::i#7 ← (byte) play_lock_current::i#1 + [236] (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 - [236] (byte~) play_lock_current::i#9 ← (byte) play_lock_current::i#1 + [237] (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 - [237] (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 ) - [238] (byte~) keyboard_event_pressed::$0 ← (byte) keyboard_event_pressed::keycode#5 >> (byte/signed byte/word/signed word/dword/signed dword) 3 - [239] (byte) keyboard_event_pressed::row_bits#0 ← *((const byte[8]) keyboard_scan_values#0 + (byte~) keyboard_event_pressed::$0) - [240] (byte~) keyboard_event_pressed::$1 ← (byte) keyboard_event_pressed::keycode#5 & (byte/signed byte/word/signed word/dword/signed dword) 7 - [241] (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) + [238] (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 ) + [239] (byte~) keyboard_event_pressed::$0 ← (byte) keyboard_event_pressed::keycode#5 >> (byte/signed byte/word/signed word/dword/signed dword) 3 + [240] (byte) keyboard_event_pressed::row_bits#0 ← *((const byte[8]) keyboard_scan_values#0 + (byte~) keyboard_event_pressed::$0) + [241] (byte~) keyboard_event_pressed::$1 ← (byte) keyboard_event_pressed::keycode#5 & (byte/signed byte/word/signed word/dword/signed dword) 7 + [242] (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 - [242] return + [243] return to:@return keyboard_event_get: scope:[keyboard_event_get] from main::@27 - [243] if((byte) keyboard_events_size#13==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_get::@return + [244] 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 - [244] (byte) keyboard_events_size#4 ← -- (byte) keyboard_events_size#13 - [245] (byte) keyboard_event_get::return#1 ← *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#4) + [245] (byte) keyboard_events_size#4 ← -- (byte) keyboard_events_size#13 + [246] (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 - [246] (byte) keyboard_events_size#16 ← phi( keyboard_event_get/(byte) keyboard_events_size#13 keyboard_event_get::@3/(byte) keyboard_events_size#4 ) - [246] (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 ) - [247] return + [247] (byte) keyboard_events_size#16 ← phi( keyboard_event_get/(byte) keyboard_events_size#13 keyboard_event_get::@3/(byte) keyboard_events_size#4 ) + [247] (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 ) + [248] return to:@return keyboard_event_scan: scope:[keyboard_event_scan] from main::@9 - [248] phi() + [249] phi() to:keyboard_event_scan::@1 keyboard_event_scan::@1: scope:[keyboard_event_scan] from keyboard_event_scan keyboard_event_scan::@3 - [249] (byte) keyboard_events_size#29 ← phi( keyboard_event_scan/(byte) keyboard_events_size#19 keyboard_event_scan::@3/(byte) keyboard_events_size#13 ) - [249] (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 ) - [249] (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 ) - [250] (byte) keyboard_matrix_read::rowid#0 ← (byte) keyboard_event_scan::row#2 - [251] call keyboard_matrix_read - [252] (byte) keyboard_matrix_read::return#2 ← (byte) keyboard_matrix_read::return#0 + [250] (byte) keyboard_events_size#29 ← phi( keyboard_event_scan/(byte) keyboard_events_size#19 keyboard_event_scan::@3/(byte) keyboard_events_size#13 ) + [250] (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 ) + [250] (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 ) + [251] (byte) keyboard_matrix_read::rowid#0 ← (byte) keyboard_event_scan::row#2 + [252] call keyboard_matrix_read + [253] (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 - [253] (byte) keyboard_event_scan::row_scan#0 ← (byte) keyboard_matrix_read::return#2 - [254] 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 + [254] (byte) keyboard_event_scan::row_scan#0 ← (byte) keyboard_matrix_read::return#2 + [255] 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 - [255] (byte) keyboard_event_scan::keycode#1 ← (byte) keyboard_event_scan::keycode#11 + (byte/signed byte/word/signed word/dword/signed dword) 8 + [256] (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 - [256] (byte) keyboard_events_size#13 ← phi( keyboard_event_scan::@13/(byte) keyboard_events_size#29 keyboard_event_scan::@19/(byte) keyboard_events_size#30 ) - [256] (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 ) - [257] (byte) keyboard_event_scan::row#1 ← ++ (byte) keyboard_event_scan::row#2 - [258] if((byte) keyboard_event_scan::row#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto keyboard_event_scan::@1 + [257] (byte) keyboard_events_size#13 ← phi( keyboard_event_scan::@13/(byte) keyboard_events_size#29 keyboard_event_scan::@19/(byte) keyboard_events_size#30 ) + [257] (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 ) + [258] (byte) keyboard_event_scan::row#1 ← ++ (byte) keyboard_event_scan::row#2 + [259] 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 - [259] phi() - [260] call keyboard_event_pressed - [261] (byte) keyboard_event_pressed::return#0 ← (byte) keyboard_event_pressed::return#11 + [260] phi() + [261] call keyboard_event_pressed + [262] (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 - [262] (byte~) keyboard_event_scan::$14 ← (byte) keyboard_event_pressed::return#0 - [263] if((byte~) keyboard_event_scan::$14==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@9 + [263] (byte~) keyboard_event_scan::$14 ← (byte) keyboard_event_pressed::return#0 + [264] 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 - [264] phi() + [265] phi() to:keyboard_event_scan::@9 keyboard_event_scan::@9: scope:[keyboard_event_scan] from keyboard_event_scan::@21 keyboard_event_scan::@26 - [265] (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 ) - [266] call keyboard_event_pressed - [267] (byte) keyboard_event_pressed::return#1 ← (byte) keyboard_event_pressed::return#11 + [266] (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 ) + [267] call keyboard_event_pressed + [268] (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 - [268] (byte~) keyboard_event_scan::$18 ← (byte) keyboard_event_pressed::return#1 - [269] if((byte~) keyboard_event_scan::$18==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@10 + [269] (byte~) keyboard_event_scan::$18 ← (byte) keyboard_event_pressed::return#1 + [270] 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 - [270] (byte) keyboard_modifiers#3 ← (byte) keyboard_modifiers#11 | (const byte) KEY_MODIFIER_RSHIFT#0 + [271] (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 - [271] (byte) keyboard_modifiers#12 ← phi( keyboard_event_scan::@22/(byte) keyboard_modifiers#3 keyboard_event_scan::@27/(byte) keyboard_modifiers#11 ) - [272] call keyboard_event_pressed - [273] (byte) keyboard_event_pressed::return#2 ← (byte) keyboard_event_pressed::return#11 + [272] (byte) keyboard_modifiers#12 ← phi( keyboard_event_scan::@22/(byte) keyboard_modifiers#3 keyboard_event_scan::@27/(byte) keyboard_modifiers#11 ) + [273] call keyboard_event_pressed + [274] (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 - [274] (byte~) keyboard_event_scan::$22 ← (byte) keyboard_event_pressed::return#2 - [275] if((byte~) keyboard_event_scan::$22==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@11 + [275] (byte~) keyboard_event_scan::$22 ← (byte) keyboard_event_pressed::return#2 + [276] 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 - [276] (byte) keyboard_modifiers#4 ← (byte) keyboard_modifiers#12 | (const byte) KEY_MODIFIER_CTRL#0 + [277] (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 - [277] (byte) keyboard_modifiers#13 ← phi( keyboard_event_scan::@23/(byte) keyboard_modifiers#4 keyboard_event_scan::@28/(byte) keyboard_modifiers#12 ) - [278] call keyboard_event_pressed - [279] (byte) keyboard_event_pressed::return#10 ← (byte) keyboard_event_pressed::return#11 + [278] (byte) keyboard_modifiers#13 ← phi( keyboard_event_scan::@23/(byte) keyboard_modifiers#4 keyboard_event_scan::@28/(byte) keyboard_modifiers#12 ) + [279] call keyboard_event_pressed + [280] (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 - [280] (byte~) keyboard_event_scan::$26 ← (byte) keyboard_event_pressed::return#10 - [281] if((byte~) keyboard_event_scan::$26==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@return + [281] (byte~) keyboard_event_scan::$26 ← (byte) keyboard_event_pressed::return#10 + [282] 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 - [282] (byte) keyboard_modifiers#5 ← (byte) keyboard_modifiers#13 | (const byte) KEY_MODIFIER_COMMODORE#0 + [283] (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 - [283] return + [284] return to:@return keyboard_event_scan::@4: scope:[keyboard_event_scan] from keyboard_event_scan::@25 keyboard_event_scan::@5 - [284] (byte) keyboard_events_size#10 ← phi( keyboard_event_scan::@25/(byte) keyboard_events_size#29 keyboard_event_scan::@5/(byte) keyboard_events_size#30 ) - [284] (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 ) - [284] (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 ) - [285] (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) - [286] (byte~) keyboard_event_scan::$4 ← (byte~) keyboard_event_scan::$3 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_event_scan::col#2) - [287] if((byte~) keyboard_event_scan::$4==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@5 + [285] (byte) keyboard_events_size#10 ← phi( keyboard_event_scan::@25/(byte) keyboard_events_size#29 keyboard_event_scan::@5/(byte) keyboard_events_size#30 ) + [285] (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 ) + [285] (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 ) + [286] (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) + [287] (byte~) keyboard_event_scan::$4 ← (byte~) keyboard_event_scan::$3 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_event_scan::col#2) + [288] 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 - [288] if((byte) keyboard_events_size#10==(byte/signed byte/word/signed word/dword/signed dword) 8) goto keyboard_event_scan::@5 + [289] 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 - [289] (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) - [290] if((byte) keyboard_event_scan::event_type#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@7 + [290] (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) + [291] 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 - [291] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte) keyboard_event_scan::keycode#10 - [292] (byte) keyboard_events_size#2 ← ++ (byte) keyboard_events_size#10 + [292] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte) keyboard_event_scan::keycode#10 + [293] (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 - [293] (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 ) - [294] (byte) keyboard_event_scan::keycode#15 ← ++ (byte) keyboard_event_scan::keycode#10 - [295] (byte) keyboard_event_scan::col#1 ← ++ (byte) keyboard_event_scan::col#2 - [296] if((byte) keyboard_event_scan::col#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto keyboard_event_scan::@4 + [294] (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 ) + [295] (byte) keyboard_event_scan::keycode#15 ← ++ (byte) keyboard_event_scan::keycode#10 + [296] (byte) keyboard_event_scan::col#1 ← ++ (byte) keyboard_event_scan::col#2 + [297] 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 - [297] *((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2) ← (byte) keyboard_event_scan::row_scan#0 + [298] *((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 - [298] (byte/word/dword~) keyboard_event_scan::$11 ← (byte) keyboard_event_scan::keycode#10 | (byte/signed byte/word/signed word/dword/signed dword) 64 - [299] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte/word/dword~) keyboard_event_scan::$11 - [300] (byte) keyboard_events_size#1 ← ++ (byte) keyboard_events_size#10 + [299] (byte/word/dword~) keyboard_event_scan::$11 ← (byte) keyboard_event_scan::keycode#10 | (byte/signed byte/word/signed word/dword/signed dword) 64 + [300] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte/word/dword~) keyboard_event_scan::$11 + [301] (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 - [301] *((const byte*) CIA1_PORT_A#0) ← *((const byte[8]) keyboard_matrix_row_bitmask#0 + (byte) keyboard_matrix_read::rowid#0) - [302] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) + [302] *((const byte*) CIA1_PORT_A#0) ← *((const byte[8]) keyboard_matrix_row_bitmask#0 + (byte) keyboard_matrix_read::rowid#0) + [303] (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 - [303] return + [304] return to:@return play_init: scope:[play_init] from main::@22 - [304] phi() + [305] phi() to:play_init::@1 play_init::@1: scope:[play_init] from play_init play_init::@1 - [305] (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 ) - [305] (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 ) - [305] (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 ) - [306] (byte~) play_init::$1 ← (byte) play_init::j#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 - [307] *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte~) play_init::$1) ← (byte*) play_init::pli#2 - [308] *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0 + (byte) play_init::j#2) ← (byte) play_init::idx#2 - [309] (byte*) play_init::pli#1 ← (byte*) play_init::pli#2 + (const byte) PLAYFIELD_COLS#0 - [310] (byte) play_init::idx#1 ← (byte) play_init::idx#2 + (const byte) PLAYFIELD_COLS#0 - [311] (byte) play_init::j#1 ← ++ (byte) play_init::j#2 - [312] 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 + [306] (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 ) + [306] (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 ) + [306] (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 ) + [307] (byte~) play_init::$1 ← (byte) play_init::j#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 + [308] *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte~) play_init::$1) ← (byte*) play_init::pli#2 + [309] *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0 + (byte) play_init::j#2) ← (byte) play_init::idx#2 + [310] (byte*) play_init::pli#1 ← (byte*) play_init::pli#2 + (const byte) PLAYFIELD_COLS#0 + [311] (byte) play_init::idx#1 ← (byte) play_init::idx#2 + (const byte) PLAYFIELD_COLS#0 + [312] (byte) play_init::j#1 ← ++ (byte) play_init::j#2 + [313] 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 - [313] *((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 + [314] *((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 - [314] return + [315] return to:@return render_init: scope:[render_init] from main::@21 - [315] *((const byte*) BGCOL#0) ← (const byte) BLACK#0 - [316] call fill - to:render_init::@7 -render_init::@7: scope:[render_init] from render_init - [317] phi() - [318] call fill + [316] phi() + to:render_init::vicSelectGfxBank1 +render_init::vicSelectGfxBank1: scope:[render_init] from render_init + [317] *((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 + [318] phi() + to:render_init::vicSelectGfxBank1_@1 +render_init::vicSelectGfxBank1_@1: scope:[render_init] from render_init::vicSelectGfxBank1_toDd001 + [319] *((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 + [320] phi() + to:render_init::@8 +render_init::@8: scope:[render_init] from render_init::toD0181 + [321] *((const byte*) D018#0) ← (const byte) render_init::toD0181_return#0 + [322] *((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 + [323] *((const byte*) BGCOL1#0) ← (const byte) BLACK#0 + [324] *((const byte*) BGCOL2#0) ← (const byte) BLUE#0 + [325] *((const byte*) BGCOL3#0) ← (const byte) CYAN#0 + [326] *((const byte*) BGCOL4#0) ← (const byte) GREY#0 + [327] call fill + to:render_init::@9 +render_init::@9: scope:[render_init] from render_init::@8 + [328] phi() + [329] call render_screen_original to:render_init::@1 -render_init::@1: scope:[render_init] from render_init::@1 render_init::@7 - [319] (byte*) render_init::li#2 ← phi( render_init::@1/(byte*) render_init::li#1 render_init::@7/(const byte*) COLS#0+(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 15 ) - [319] (byte) render_init::i#2 ← phi( render_init::@1/(byte) render_init::i#1 render_init::@7/(byte/signed byte/word/signed word/dword/signed dword) 0 ) - [320] (byte~) render_init::$5 ← (byte) render_init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 - [321] *((const byte*[PLAYFIELD_LINES#0+3]) screen_lines#0 + (byte~) render_init::$5) ← (byte*) render_init::li#2 - [322] (byte*) render_init::li#1 ← (byte*) render_init::li#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 - [323] (byte) render_init::i#1 ← ++ (byte) render_init::i#2 - [324] if((byte) render_init::i#1!=(const byte) PLAYFIELD_LINES#0+(byte/signed byte/word/signed word/dword/signed dword) 2+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_init::@1 +render_init::@1: scope:[render_init] from render_init::@1 render_init::@9 + [330] (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) 40+(byte/signed byte/word/signed word/dword/signed dword) 16 ) + [330] (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 ) + [331] (byte~) render_init::$10 ← (byte) render_init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 + [332] *((const byte*[PLAYFIELD_LINES#0+3]) screen_lines#0 + (byte~) render_init::$10) ← (byte*) render_init::li#2 + [333] (byte*) render_init::li#1 ← (byte*) render_init::li#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 + [334] (byte) render_init::i#1 ← ++ (byte) render_init::i#2 + [335] if((byte) render_init::i#1!=(const byte) PLAYFIELD_LINES#0+(byte/signed byte/word/signed word/dword/signed dword) 2+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_init::@1 to:render_init::@2 render_init::@2: scope:[render_init] from render_init::@1 render_init::@5 - [325] (byte) render_init::l#4 ← phi( render_init::@1/(byte/signed byte/word/signed word/dword/signed dword) 0 render_init::@5/(byte) render_init::l#1 ) - [325] (byte*) render_init::line#4 ← phi( render_init::@1/(const byte*) COLS#0+(byte/signed byte/word/signed word/dword/signed dword) 14 render_init::@5/(byte*) render_init::line#1 ) + [336] (byte) render_init::l#4 ← phi( render_init::@1/(byte/signed byte/word/signed word/dword/signed dword) 0 render_init::@5/(byte) render_init::l#1 ) + [336] (byte*) render_init::line#4 ← phi( render_init::@1/(const byte*) COLS#0+(byte/signed byte/word/signed word/dword/signed dword) 15 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 - [326] (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 ) - [327] (byte*~) render_init::$10 ← (byte*) render_init::line#4 + (byte) render_init::c#2 - [328] *((byte*~) render_init::$10) ← (const byte) DARK_GREY#0 - [329] (byte) render_init::c#1 ← ++ (byte) render_init::c#2 - [330] 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 + [337] (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 ) + [338] (byte*~) render_init::$15 ← (byte*) render_init::line#4 + (byte) render_init::c#2 + [339] *((byte*~) render_init::$15) ← (const byte) WHITE#0 + [340] (byte) render_init::c#1 ← ++ (byte) render_init::c#2 + [341] 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 - [331] (byte*) render_init::line#1 ← (byte*) render_init::line#4 + (byte/signed byte/word/signed word/dword/signed dword) 40 - [332] (byte) render_init::l#1 ← ++ (byte) render_init::l#4 - [333] 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 + [342] (byte*) render_init::line#1 ← (byte*) render_init::line#4 + (byte/signed byte/word/signed word/dword/signed dword) 40 + [343] (byte) render_init::l#1 ← ++ (byte) render_init::l#4 + [344] 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 - [334] return + [345] return to:@return -fill: scope:[fill] from render_init render_init::@7 - [335] (byte) fill::val#3 ← phi( render_init/(byte/word/signed word/dword/signed dword) 208 render_init::@7/(const byte) BLACK#0 ) - [335] (byte*) fill::addr#0 ← phi( render_init/(const byte*) PLAYFIELD_SCREEN#0 render_init::@7/(const byte*) COLS#0 ) - [336] (byte*) fill::end#0 ← (byte*) fill::addr#0 + (word/signed word/dword/signed dword) 1000 +render_screen_original: scope:[render_screen_original] from render_init::@9 + [346] phi() + to:render_screen_original::@1 +render_screen_original::@1: scope:[render_screen_original] from render_screen_original render_screen_original::@7 + [347] (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 ) + [347] (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 ) + [347] (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 + [348] (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 ) + [348] (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 ) + [349] *((byte*) render_screen_original::screen#4) ← (const byte) render_screen_original::SPACE#0 + [350] (byte*) render_screen_original::screen#1 ← ++ (byte*) render_screen_original::screen#4 + [351] (byte) render_screen_original::x#1 ← ++ (byte) render_screen_original::x#4 + [352] 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 + [353] (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 ) + [353] (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 ) + [353] (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 ) + [354] (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 + [355] *((byte*) render_screen_original::screen#5) ← (byte/signed word/word/dword/signed dword~) render_screen_original::$3 + [356] (byte*) render_screen_original::screen#2 ← ++ (byte*) render_screen_original::screen#5 + [357] (byte*) render_screen_original::orig#1 ← ++ (byte*) render_screen_original::orig#2 + [358] (byte) render_screen_original::x#2 ← ++ (byte) render_screen_original::x#5 + [359] 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 + [360] (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 ) + [360] (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 ) + [361] *((byte*) render_screen_original::screen#6) ← (const byte) render_screen_original::SPACE#0 + [362] (byte*) render_screen_original::screen#3 ← ++ (byte*) render_screen_original::screen#6 + [363] (byte) render_screen_original::x#3 ← ++ (byte) render_screen_original::x#6 + [364] 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 + [365] (byte) render_screen_original::y#1 ← ++ (byte) render_screen_original::y#6 + [366] 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 + [367] return + to:@return +fill: scope:[fill] from render_init::@8 + [368] phi() to:fill::@1 fill::@1: scope:[fill] from fill fill::@1 - [337] (byte*) fill::addr#2 ← phi( fill/(byte*) fill::addr#0 fill::@1/(byte*) fill::addr#1 ) - [338] *((byte*) fill::addr#2) ← (byte) fill::val#3 - [339] (byte*) fill::addr#1 ← ++ (byte*) fill::addr#2 - [340] if((byte*) fill::addr#1!=(byte*) fill::end#0) goto fill::@1 + [369] (byte*) fill::addr#2 ← phi( fill/(const byte*) COLS#0 fill::@1/(byte*) fill::addr#1 ) + [370] *((byte*) fill::addr#2) ← (const byte) DARK_GREY#0 + [371] (byte*) fill::addr#1 ← ++ (byte*) fill::addr#2 + [372] if((byte*) fill::addr#1!=(const byte*) fill::end#0) goto fill::@1 to:fill::@return fill::@return: scope:[fill] from fill::@1 - [341] return + [373] return to:@return sid_rnd_init: scope:[sid_rnd_init] from main - [342] *((const word*) SID_VOICE3_FREQ#0) ← (word/dword/signed dword) 65535 - [343] *((const byte*) SID_VOICE3_CONTROL#0) ← (const byte) SID_CONTROL_NOISE#0 + [374] *((const word*) SID_VOICE3_FREQ#0) ← (word/dword/signed dword) 65535 + [375] *((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 - [344] return + [376] return to:@return diff --git a/src/test/ref/examples/tetris/tetris.log b/src/test/ref/examples/tetris/tetris.log index c3cee6426..1944165d2 100644 --- a/src/test/ref/examples/tetris/tetris.log +++ b/src/test/ref/examples/tetris/tetris.log @@ -3,6 +3,8 @@ Resolved forward reference COLLISION_NONE to (byte) COLLISION_NONE Resolved forward reference COLLISION_NONE to (byte) COLLISION_NONE Resolved forward reference COLLISION_NONE to (byte) COLLISION_NONE Inlined call (byte~) vicSelectGfxBank::$0 ← call toDd00 (byte*) vicSelectGfxBank::gfx +Inlined call call vicSelectGfxBank (byte*) PLAYFIELD_SCREEN +Inlined call (byte~) render_init::$1 ← call toD018 (byte*) PLAYFIELD_SCREEN (byte*) PLAYFIELD_CHARSET CONTROL FLOW GRAPH SSA @begin: scope:[] from @@ -86,19 +88,19 @@ CONTROL FLOW GRAPH SSA (byte) LIGHT_BLUE#0 ← (byte/signed byte/word/signed word/dword/signed dword) 14 (byte) LIGHT_GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) 15 to:@5 -fill: scope:[fill] from render_init render_init::@7 - (byte) fill::val#3 ← phi( render_init/(byte) fill::val#0 render_init::@7/(byte) fill::val#1 ) - (word) fill::size#2 ← phi( render_init/(word) fill::size#0 render_init::@7/(word) fill::size#1 ) - (byte*) fill::start#2 ← phi( render_init/(byte*) fill::start#0 render_init::@7/(byte*) fill::start#1 ) - (byte*~) fill::$0 ← (byte*) fill::start#2 + (word) fill::size#2 +fill: scope:[fill] from render_init::@8 + (byte) fill::val#2 ← phi( render_init::@8/(byte) fill::val#0 ) + (word) fill::size#1 ← phi( render_init::@8/(word) fill::size#0 ) + (byte*) fill::start#1 ← phi( render_init::@8/(byte*) fill::start#0 ) + (byte*~) fill::$0 ← (byte*) fill::start#1 + (word) fill::size#1 (byte*) fill::end#0 ← (byte*~) fill::$0 - (byte*) fill::addr#0 ← (byte*) fill::start#2 + (byte*) fill::addr#0 ← (byte*) fill::start#1 to:fill::@1 fill::@1: scope:[fill] from fill fill::@1 (byte*) fill::end#1 ← phi( fill/(byte*) fill::end#0 fill::@1/(byte*) fill::end#1 ) (byte*) fill::addr#2 ← phi( fill/(byte*) fill::addr#0 fill::@1/(byte*) fill::addr#1 ) - (byte) fill::val#2 ← phi( fill/(byte) fill::val#3 fill::@1/(byte) fill::val#2 ) - *((byte*) fill::addr#2) ← (byte) fill::val#2 + (byte) fill::val#1 ← phi( fill/(byte) fill::val#2 fill::@1/(byte) fill::val#1 ) + *((byte*) fill::addr#2) ← (byte) fill::val#1 (byte*) fill::addr#1 ← ++ (byte*) fill::addr#2 (bool~) fill::$1 ← (byte*) fill::addr#1 != (byte*) fill::end#1 if((bool~) fill::$1) goto fill::@1 @@ -499,80 +501,202 @@ sid_rnd::@return: scope:[sid_rnd] from sid_rnd (byte~) $2 ← (byte) PLAYFIELD_LINES#0 * (byte) PLAYFIELD_COLS#0 (byte[$2]) playfield#0 ← { fill( $2, 0) } (byte*) current_piece_gfx#0 ← ((byte*)) (byte/signed byte/word/signed word/dword/signed dword) 0 - (byte) current_piece_color#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte) current_piece_char#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 (byte) current_xpos#0 ← (byte/signed byte/word/signed word/dword/signed dword) 3 (byte) current_ypos#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 - kickasm(location (byte*) PLAYFIELD_CHARSET#0) {{ .var charset = LoadPicture("nes-charset.png", List().add($000000, $ffffff)) - .for (var c=0; c<32; c++) - .for (var y=0;y<8; y++) - .byte charset.getSinglecolorByte(c,y) + kickasm(location (byte*) PLAYFIELD_CHARSET#0) {{ .fill 8,$00 // Place a filled char at the start of the charset + .import binary "nes-screen.imap" + }} + (byte) PLAYFIELD_SCREEN_ORIGINAL_WIDTH#0 ← (byte/signed byte/word/signed word/dword/signed dword) 32 + (byte*) PLAYFIELD_SCREEN_ORIGINAL#0 ← ((byte*)) (word/signed word/dword/signed dword) 11264 + kickasm(location (byte*) PLAYFIELD_SCREEN_ORIGINAL#0) {{ .import binary "nes-screen.iscr" }} (byte/signed word/word/dword/signed dword~) $3 ← (byte) PLAYFIELD_LINES#0 + (byte/signed byte/word/signed word/dword/signed dword) 3 (byte*[$3]) screen_lines#0 ← { fill( $3, 0) } - to:@17 + to:@18 render_init: scope:[render_init] from main::@21 - *((byte*) BGCOL#0) ← (byte) BLACK#0 - (byte*) fill::start#0 ← (byte*) PLAYFIELD_SCREEN#0 - (word) fill::size#0 ← (word/signed word/dword/signed dword) 1000 - (byte) fill::val#0 ← (byte/word/signed word/dword/signed dword) 208 - call fill + (byte*) render_init::vicSelectGfxBank1_gfx#0 ← (byte*) PLAYFIELD_SCREEN#0 + to:render_init::vicSelectGfxBank1 +render_init::vicSelectGfxBank1: scope:[render_init] from render_init + (byte*) render_init::vicSelectGfxBank1_gfx#1 ← phi( render_init/(byte*) render_init::vicSelectGfxBank1_gfx#0 ) + *((byte*) CIA2_PORT_A_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3 + (byte*) render_init::vicSelectGfxBank1_toDd001_gfx#0 ← (byte*) render_init::vicSelectGfxBank1_gfx#1 + to:render_init::vicSelectGfxBank1_toDd001 +render_init::vicSelectGfxBank1_toDd001: scope:[render_init] from render_init::vicSelectGfxBank1 + (byte*) render_init::vicSelectGfxBank1_toDd001_gfx#1 ← phi( render_init::vicSelectGfxBank1/(byte*) render_init::vicSelectGfxBank1_toDd001_gfx#0 ) + (word) render_init::vicSelectGfxBank1_toDd001_$0#0 ← ((word)) (byte*) render_init::vicSelectGfxBank1_toDd001_gfx#1 + (byte) render_init::vicSelectGfxBank1_toDd001_$1#0 ← > (word) render_init::vicSelectGfxBank1_toDd001_$0#0 + (byte) render_init::vicSelectGfxBank1_toDd001_$2#0 ← (byte) render_init::vicSelectGfxBank1_toDd001_$1#0 >> (byte/signed byte/word/signed word/dword/signed dword) 6 + (byte/word/dword) render_init::vicSelectGfxBank1_toDd001_$3#0 ← (byte/signed byte/word/signed word/dword/signed dword) 3 ^ (byte) render_init::vicSelectGfxBank1_toDd001_$2#0 + (byte) render_init::vicSelectGfxBank1_toDd001_return#0 ← (byte/word/dword) render_init::vicSelectGfxBank1_toDd001_$3#0 + to:render_init::vicSelectGfxBank1_toDd001_@return +render_init::vicSelectGfxBank1_toDd001_@return: scope:[render_init] from render_init::vicSelectGfxBank1_toDd001 + (byte) render_init::vicSelectGfxBank1_toDd001_return#2 ← phi( render_init::vicSelectGfxBank1_toDd001/(byte) render_init::vicSelectGfxBank1_toDd001_return#0 ) + (byte) render_init::vicSelectGfxBank1_toDd001_return#1 ← (byte) render_init::vicSelectGfxBank1_toDd001_return#2 + to:render_init::vicSelectGfxBank1_@1 +render_init::vicSelectGfxBank1_@1: scope:[render_init] from render_init::vicSelectGfxBank1_toDd001_@return + (byte) render_init::vicSelectGfxBank1_toDd001_return#3 ← phi( render_init::vicSelectGfxBank1_toDd001_@return/(byte) render_init::vicSelectGfxBank1_toDd001_return#1 ) + (byte) render_init::vicSelectGfxBank1_$0#0 ← (byte) render_init::vicSelectGfxBank1_toDd001_return#3 + *((byte*) CIA2_PORT_A#0) ← (byte) render_init::vicSelectGfxBank1_$0#0 to:render_init::@7 -render_init::@7: scope:[render_init] from render_init - (byte*) fill::start#1 ← (byte*) COLS#0 - (word) fill::size#1 ← (word/signed word/dword/signed dword) 1000 - (byte) fill::val#1 ← (byte) BLACK#0 - call fill +render_init::@7: scope:[render_init] from render_init::vicSelectGfxBank1_@1 + (byte*) render_init::toD0181_screen#0 ← (byte*) PLAYFIELD_SCREEN#0 + (byte*) render_init::toD0181_gfx#0 ← (byte*) PLAYFIELD_CHARSET#0 + to:render_init::toD0181 +render_init::toD0181: scope:[render_init] from render_init::@7 + (byte*) render_init::toD0181_gfx#1 ← phi( render_init::@7/(byte*) render_init::toD0181_gfx#0 ) + (byte*) render_init::toD0181_screen#1 ← phi( render_init::@7/(byte*) render_init::toD0181_screen#0 ) + (word) render_init::toD0181_$0#0 ← ((word)) (byte*) render_init::toD0181_screen#1 + (word) render_init::toD0181_$1#0 ← (word) render_init::toD0181_$0#0 & (word/signed word/dword/signed dword) 16383 + (word) render_init::toD0181_$2#0 ← (word) render_init::toD0181_$1#0 << (byte/signed byte/word/signed word/dword/signed dword) 2 + (byte) render_init::toD0181_$3#0 ← > (word) render_init::toD0181_$2#0 + (word) render_init::toD0181_$4#0 ← ((word)) (byte*) render_init::toD0181_gfx#1 + (byte) render_init::toD0181_$5#0 ← > (word) render_init::toD0181_$4#0 + (byte) render_init::toD0181_$6#0 ← (byte) render_init::toD0181_$5#0 >> (byte/signed byte/word/signed word/dword/signed dword) 2 + (byte) render_init::toD0181_$7#0 ← (byte) render_init::toD0181_$6#0 & (byte/signed byte/word/signed word/dword/signed dword) 15 + (byte) render_init::toD0181_$8#0 ← (byte) render_init::toD0181_$3#0 | (byte) render_init::toD0181_$7#0 + (byte) render_init::toD0181_return#0 ← (byte) render_init::toD0181_$8#0 + to:render_init::toD0181_@return +render_init::toD0181_@return: scope:[render_init] from render_init::toD0181 + (byte) render_init::toD0181_return#2 ← phi( render_init::toD0181/(byte) render_init::toD0181_return#0 ) + (byte) render_init::toD0181_return#1 ← (byte) render_init::toD0181_return#2 to:render_init::@8 -render_init::@8: scope:[render_init] from render_init::@7 - (byte*~) render_init::$2 ← (byte*) COLS#0 + (byte/signed byte/word/signed word/dword/signed dword) 40 - (byte*~) render_init::$3 ← (byte*~) render_init::$2 + (byte/signed byte/word/signed word/dword/signed dword) 15 - (byte*) render_init::li#0 ← (byte*~) render_init::$3 - (byte/signed word/word/dword/signed dword~) render_init::$4 ← (byte) PLAYFIELD_LINES#0 + (byte/signed byte/word/signed word/dword/signed dword) 2 +render_init::@8: scope:[render_init] from render_init::toD0181_@return + (byte) render_init::toD0181_return#3 ← phi( render_init::toD0181_@return/(byte) render_init::toD0181_return#1 ) + (byte~) render_init::$1 ← (byte) render_init::toD0181_return#3 + *((byte*) D018#0) ← (byte~) render_init::$1 + (byte~) render_init::$2 ← (byte) VIC_ECM#0 | (byte) VIC_DEN#0 + (byte~) render_init::$3 ← (byte~) render_init::$2 | (byte) VIC_RSEL#0 + (byte/word/dword~) render_init::$4 ← (byte~) render_init::$3 | (byte/signed byte/word/signed word/dword/signed dword) 3 + *((byte*) D011#0) ← (byte/word/dword~) render_init::$4 + *((byte*) BGCOL1#0) ← (byte) BLACK#0 + *((byte*) BGCOL2#0) ← (byte) BLUE#0 + *((byte*) BGCOL3#0) ← (byte) CYAN#0 + *((byte*) BGCOL4#0) ← (byte) GREY#0 + (byte*) fill::start#0 ← (byte*) COLS#0 + (word) fill::size#0 ← (word/signed word/dword/signed dword) 1000 + (byte) fill::val#0 ← (byte) DARK_GREY#0 + call fill + to:render_init::@9 +render_init::@9: scope:[render_init] from render_init::@8 + (byte*) render_screen_original::screen#0 ← (byte*) PLAYFIELD_SCREEN#0 + call render_screen_original + to:render_init::@10 +render_init::@10: scope:[render_init] from render_init::@9 + (byte*~) render_init::$7 ← (byte*) PLAYFIELD_SCREEN#0 + (byte/signed byte/word/signed word/dword/signed dword) 40 + (byte*~) render_init::$8 ← (byte*~) render_init::$7 + (byte/signed byte/word/signed word/dword/signed dword) 16 + (byte*) render_init::li#0 ← (byte*~) render_init::$8 + (byte/signed word/word/dword/signed dword~) render_init::$9 ← (byte) PLAYFIELD_LINES#0 + (byte/signed byte/word/signed word/dword/signed dword) 2 (byte) render_init::i#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:render_init::@1 -render_init::@1: scope:[render_init] from render_init::@1 render_init::@8 - (byte*) render_init::li#2 ← phi( render_init::@1/(byte*) render_init::li#1 render_init::@8/(byte*) render_init::li#0 ) - (byte) render_init::i#2 ← phi( render_init::@1/(byte) render_init::i#1 render_init::@8/(byte) render_init::i#0 ) - (byte~) render_init::$5 ← (byte) render_init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 - *((byte*[$3]) screen_lines#0 + (byte~) render_init::$5) ← (byte*) render_init::li#2 +render_init::@1: scope:[render_init] from render_init::@1 render_init::@10 + (byte*) render_init::li#2 ← phi( render_init::@1/(byte*) render_init::li#1 render_init::@10/(byte*) render_init::li#0 ) + (byte) render_init::i#2 ← phi( render_init::@1/(byte) render_init::i#1 render_init::@10/(byte) render_init::i#0 ) + (byte~) render_init::$10 ← (byte) render_init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 + *((byte*[$3]) screen_lines#0 + (byte~) render_init::$10) ← (byte*) render_init::li#2 (byte*) render_init::li#1 ← (byte*) render_init::li#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 - (byte) render_init::i#1 ← (byte) render_init::i#2 + rangenext(0,render_init::$4) - (bool~) render_init::$6 ← (byte) render_init::i#1 != rangelast(0,render_init::$4) - if((bool~) render_init::$6) goto render_init::@1 + (byte) render_init::i#1 ← (byte) render_init::i#2 + rangenext(0,render_init::$9) + (bool~) render_init::$11 ← (byte) render_init::i#1 != rangelast(0,render_init::$9) + if((bool~) render_init::$11) goto render_init::@1 to:render_init::@4 render_init::@4: scope:[render_init] from render_init::@1 - (byte*~) render_init::$7 ← (byte*) COLS#0 + (byte/signed byte/word/signed word/dword/signed dword) 14 - (byte*) render_init::line#0 ← (byte*~) render_init::$7 - (byte/signed word/word/dword/signed dword~) render_init::$8 ← (byte) PLAYFIELD_LINES#0 + (byte/signed byte/word/signed word/dword/signed dword) 1 + (byte*~) render_init::$12 ← (byte*) COLS#0 + (byte/signed byte/word/signed word/dword/signed dword) 15 + (byte*) render_init::line#0 ← (byte*~) render_init::$12 + (byte/signed word/word/dword/signed dword~) render_init::$13 ← (byte) PLAYFIELD_LINES#0 + (byte/signed byte/word/signed word/dword/signed dword) 1 (byte) render_init::l#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:render_init::@2 render_init::@2: scope:[render_init] from render_init::@4 render_init::@5 (byte) render_init::l#4 ← phi( render_init::@4/(byte) render_init::l#0 render_init::@5/(byte) render_init::l#1 ) (byte*) render_init::line#4 ← phi( render_init::@4/(byte*) render_init::line#0 render_init::@5/(byte*) render_init::line#1 ) - (byte/signed word/word/dword/signed dword~) render_init::$9 ← (byte) PLAYFIELD_COLS#0 + (byte/signed byte/word/signed word/dword/signed dword) 1 + (byte/signed word/word/dword/signed dword~) render_init::$14 ← (byte) PLAYFIELD_COLS#0 + (byte/signed byte/word/signed word/dword/signed dword) 1 (byte) render_init::c#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:render_init::@3 render_init::@3: scope:[render_init] from render_init::@2 render_init::@3 (byte) render_init::l#3 ← phi( render_init::@2/(byte) render_init::l#4 render_init::@3/(byte) render_init::l#3 ) (byte) render_init::c#2 ← phi( render_init::@2/(byte) render_init::c#0 render_init::@3/(byte) render_init::c#1 ) (byte*) render_init::line#2 ← phi( render_init::@2/(byte*) render_init::line#4 render_init::@3/(byte*) render_init::line#2 ) - (byte*~) render_init::$10 ← (byte*) render_init::line#2 + (byte) render_init::c#2 - *((byte*~) render_init::$10) ← (byte) DARK_GREY#0 - (byte) render_init::c#1 ← (byte) render_init::c#2 + rangenext(0,render_init::$9) - (bool~) render_init::$11 ← (byte) render_init::c#1 != rangelast(0,render_init::$9) - if((bool~) render_init::$11) goto render_init::@3 + (byte*~) render_init::$15 ← (byte*) render_init::line#2 + (byte) render_init::c#2 + *((byte*~) render_init::$15) ← (byte) WHITE#0 + (byte) render_init::c#1 ← (byte) render_init::c#2 + rangenext(0,render_init::$14) + (bool~) render_init::$16 ← (byte) render_init::c#1 != rangelast(0,render_init::$14) + if((bool~) render_init::$16) goto render_init::@3 to:render_init::@5 render_init::@5: scope:[render_init] from render_init::@3 (byte) render_init::l#2 ← phi( render_init::@3/(byte) render_init::l#3 ) (byte*) render_init::line#3 ← phi( render_init::@3/(byte*) render_init::line#2 ) (byte*) render_init::line#1 ← (byte*) render_init::line#3 + (byte/signed byte/word/signed word/dword/signed dword) 40 - (byte) render_init::l#1 ← (byte) render_init::l#2 + rangenext(0,render_init::$8) - (bool~) render_init::$12 ← (byte) render_init::l#1 != rangelast(0,render_init::$8) - if((bool~) render_init::$12) goto render_init::@2 + (byte) render_init::l#1 ← (byte) render_init::l#2 + rangenext(0,render_init::$13) + (bool~) render_init::$17 ← (byte) render_init::l#1 != rangelast(0,render_init::$13) + if((bool~) render_init::$17) goto render_init::@2 to:render_init::@return render_init::@return: scope:[render_init] from render_init::@5 return to:@return +render_screen_original: scope:[render_screen_original] from render_init::@9 + (byte*) render_screen_original::screen#8 ← phi( render_init::@9/(byte*) render_screen_original::screen#0 ) + (byte) render_screen_original::SPACE#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte/signed byte/word/signed word/dword/signed dword~) render_screen_original::$0 ← (byte/signed byte/word/signed word/dword/signed dword) 32 * (byte/signed byte/word/signed word/dword/signed dword) 2 + (byte*~) render_screen_original::$1 ← (byte*) PLAYFIELD_SCREEN_ORIGINAL#0 + (byte/signed byte/word/signed word/dword/signed dword~) render_screen_original::$0 + (byte*) render_screen_original::orig#0 ← (byte*~) render_screen_original::$1 + (byte) render_screen_original::y#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 + to:render_screen_original::@1 +render_screen_original::@1: scope:[render_screen_original] from render_screen_original render_screen_original::@7 + (byte) render_screen_original::y#6 ← phi( render_screen_original/(byte) render_screen_original::y#0 render_screen_original::@7/(byte) render_screen_original::y#1 ) + (byte*) render_screen_original::orig#4 ← phi( render_screen_original/(byte*) render_screen_original::orig#0 render_screen_original::@7/(byte*) render_screen_original::orig#5 ) + (byte*) render_screen_original::screen#7 ← phi( render_screen_original/(byte*) render_screen_original::screen#8 render_screen_original::@7/(byte*) render_screen_original::screen#9 ) + (byte) render_screen_original::SPACE#3 ← phi( render_screen_original/(byte) render_screen_original::SPACE#0 render_screen_original::@7/(byte) render_screen_original::SPACE#5 ) + (byte) render_screen_original::x#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 + to:render_screen_original::@2 +render_screen_original::@2: scope:[render_screen_original] from render_screen_original::@1 render_screen_original::@2 + (byte) render_screen_original::y#5 ← phi( render_screen_original::@1/(byte) render_screen_original::y#6 render_screen_original::@2/(byte) render_screen_original::y#5 ) + (byte*) render_screen_original::orig#3 ← phi( render_screen_original::@1/(byte*) render_screen_original::orig#4 render_screen_original::@2/(byte*) render_screen_original::orig#3 ) + (byte) render_screen_original::x#4 ← phi( render_screen_original::@1/(byte) render_screen_original::x#0 render_screen_original::@2/(byte) render_screen_original::x#1 ) + (byte*) render_screen_original::screen#4 ← phi( render_screen_original::@1/(byte*) render_screen_original::screen#7 render_screen_original::@2/(byte*) render_screen_original::screen#1 ) + (byte) render_screen_original::SPACE#1 ← phi( render_screen_original::@1/(byte) render_screen_original::SPACE#3 render_screen_original::@2/(byte) render_screen_original::SPACE#1 ) + *((byte*) render_screen_original::screen#4) ← (byte) render_screen_original::SPACE#1 + (byte*) render_screen_original::screen#1 ← ++ (byte*) render_screen_original::screen#4 + (byte) render_screen_original::x#1 ← ++ (byte) render_screen_original::x#4 + (bool~) render_screen_original::$2 ← (byte) render_screen_original::x#1 != (byte/signed byte/word/signed word/dword/signed dword) 4 + if((bool~) render_screen_original::$2) goto render_screen_original::@2 + to:render_screen_original::@3 +render_screen_original::@3: scope:[render_screen_original] from render_screen_original::@2 render_screen_original::@3 + (byte) render_screen_original::y#4 ← phi( render_screen_original::@2/(byte) render_screen_original::y#5 render_screen_original::@3/(byte) render_screen_original::y#4 ) + (byte) render_screen_original::SPACE#4 ← phi( render_screen_original::@2/(byte) render_screen_original::SPACE#1 render_screen_original::@3/(byte) render_screen_original::SPACE#4 ) + (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 ) + (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 ) + (byte*) render_screen_original::orig#2 ← phi( render_screen_original::@2/(byte*) render_screen_original::orig#3 render_screen_original::@3/(byte*) render_screen_original::orig#1 ) + (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 + *((byte*) render_screen_original::screen#5) ← (byte/signed word/word/dword/signed dword~) render_screen_original::$3 + (byte*) render_screen_original::screen#2 ← ++ (byte*) render_screen_original::screen#5 + (byte*) render_screen_original::orig#1 ← ++ (byte*) render_screen_original::orig#2 + (byte) render_screen_original::x#2 ← ++ (byte) render_screen_original::x#5 + (bool~) render_screen_original::$4 ← (byte) render_screen_original::x#2 != (byte/signed byte/word/signed word/dword/signed dword) 36 + if((bool~) render_screen_original::$4) goto render_screen_original::@3 + to:render_screen_original::@4 +render_screen_original::@4: scope:[render_screen_original] from render_screen_original::@3 render_screen_original::@4 + (byte*) render_screen_original::orig#6 ← phi( render_screen_original::@3/(byte*) render_screen_original::orig#1 render_screen_original::@4/(byte*) render_screen_original::orig#6 ) + (byte) render_screen_original::y#3 ← phi( render_screen_original::@3/(byte) render_screen_original::y#4 render_screen_original::@4/(byte) render_screen_original::y#3 ) + (byte) render_screen_original::x#6 ← phi( render_screen_original::@3/(byte) render_screen_original::x#2 render_screen_original::@4/(byte) render_screen_original::x#3 ) + (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 ) + (byte) render_screen_original::SPACE#2 ← phi( render_screen_original::@3/(byte) render_screen_original::SPACE#4 render_screen_original::@4/(byte) render_screen_original::SPACE#2 ) + *((byte*) render_screen_original::screen#6) ← (byte) render_screen_original::SPACE#2 + (byte*) render_screen_original::screen#3 ← ++ (byte*) render_screen_original::screen#6 + (byte) render_screen_original::x#3 ← ++ (byte) render_screen_original::x#6 + (bool~) render_screen_original::$5 ← (byte) render_screen_original::x#3 != (byte/signed byte/word/signed word/dword/signed dword) 40 + if((bool~) render_screen_original::$5) goto render_screen_original::@4 + to:render_screen_original::@7 +render_screen_original::@7: scope:[render_screen_original] from render_screen_original::@4 + (byte*) render_screen_original::orig#5 ← phi( render_screen_original::@4/(byte*) render_screen_original::orig#6 ) + (byte*) render_screen_original::screen#9 ← phi( render_screen_original::@4/(byte*) render_screen_original::screen#3 ) + (byte) render_screen_original::SPACE#5 ← phi( render_screen_original::@4/(byte) render_screen_original::SPACE#2 ) + (byte) render_screen_original::y#2 ← phi( render_screen_original::@4/(byte) render_screen_original::y#3 ) + (byte) render_screen_original::y#1 ← (byte) render_screen_original::y#2 + rangenext(0,24) + (bool~) render_screen_original::$6 ← (byte) render_screen_original::y#1 != rangelast(0,24) + if((bool~) render_screen_original::$6) goto render_screen_original::@1 + to:render_screen_original::@return +render_screen_original::@return: scope:[render_screen_original] from render_screen_original::@7 + return + to:@return render_playfield: scope:[render_playfield] from main::@19 main::@24 (byte) render_playfield::i#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 (byte/signed word/word/dword/signed dword~) render_playfield::$0 ← (byte) PLAYFIELD_LINES#0 - (byte/signed byte/word/signed word/dword/signed dword) 1 @@ -609,7 +733,7 @@ render_playfield::@return: scope:[render_playfield] from render_playfield::@3 return to:@return render_current: scope:[render_current] from main::@25 main::@32 - (byte) current_piece_color#62 ← phi( main::@25/(byte) current_piece_color#48 main::@32/(byte) current_piece_color#61 ) + (byte) current_piece_char#62 ← phi( main::@25/(byte) current_piece_char#48 main::@32/(byte) current_piece_char#61 ) (byte*) current_piece_gfx#53 ← phi( main::@25/(byte*) current_piece_gfx#64 main::@32/(byte*) current_piece_gfx#67 ) (byte) current_xpos#48 ← phi( main::@25/(byte) current_xpos#66 main::@32/(byte) current_xpos#67 ) (byte) current_ypos#10 ← phi( main::@25/(byte) current_ypos#24 main::@32/(byte) current_ypos#25 ) @@ -619,7 +743,7 @@ render_current: scope:[render_current] from main::@25 main::@32 (byte) render_current::l#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:render_current::@1 render_current::@1: scope:[render_current] from render_current render_current::@2 - (byte) current_piece_color#52 ← phi( render_current/(byte) current_piece_color#62 render_current::@2/(byte) current_piece_color#63 ) + (byte) current_piece_char#52 ← phi( render_current/(byte) current_piece_char#62 render_current::@2/(byte) current_piece_char#63 ) (byte) render_current::i#5 ← phi( render_current/(byte) render_current::i#0 render_current::@2/(byte) render_current::i#8 ) (byte*) current_piece_gfx#37 ← phi( render_current/(byte*) current_piece_gfx#53 render_current::@2/(byte*) current_piece_gfx#54 ) (byte) current_xpos#30 ← phi( render_current/(byte) current_xpos#48 render_current::@2/(byte) current_xpos#49 ) @@ -631,7 +755,7 @@ render_current::@1: scope:[render_current] from render_current render_current:: if((bool~) render_current::$3) goto render_current::@2 to:render_current::@6 render_current::@2: scope:[render_current] from render_current::@1 render_current::@4 - (byte) current_piece_color#63 ← phi( render_current::@1/(byte) current_piece_color#52 render_current::@4/(byte) current_piece_color#38 ) + (byte) current_piece_char#63 ← phi( render_current::@1/(byte) current_piece_char#52 render_current::@4/(byte) current_piece_char#38 ) (byte) render_current::i#8 ← phi( render_current::@1/(byte) render_current::i#5 render_current::@4/(byte) render_current::i#3 ) (byte*) current_piece_gfx#54 ← phi( render_current::@1/(byte*) current_piece_gfx#37 render_current::@4/(byte*) current_piece_gfx#23 ) (byte) current_xpos#49 ← phi( render_current::@1/(byte) current_xpos#30 render_current::@4/(byte) current_xpos#68 ) @@ -643,7 +767,7 @@ render_current::@2: scope:[render_current] from render_current::@1 render_curre if((bool~) render_current::$9) goto render_current::@1 to:render_current::@return render_current::@6: scope:[render_current] from render_current::@1 - (byte) current_piece_color#39 ← phi( render_current::@1/(byte) current_piece_color#52 ) + (byte) current_piece_char#39 ← phi( render_current::@1/(byte) current_piece_char#52 ) (byte) render_current::l#8 ← phi( render_current::@1/(byte) render_current::l#3 ) (byte) render_current::i#4 ← phi( render_current::@1/(byte) render_current::i#5 ) (byte*) current_piece_gfx#24 ← phi( render_current::@1/(byte*) current_piece_gfx#37 ) @@ -656,7 +780,7 @@ render_current::@6: scope:[render_current] from render_current::@1 render_current::@3: scope:[render_current] from render_current::@4 render_current::@6 (byte) current_xpos#80 ← phi( render_current::@4/(byte) current_xpos#68 render_current::@6/(byte) current_xpos#13 ) (byte*) render_current::screen_line#3 ← phi( render_current::@4/(byte*) render_current::screen_line#4 render_current::@6/(byte*) render_current::screen_line#0 ) - (byte) current_piece_color#27 ← phi( render_current::@4/(byte) current_piece_color#38 render_current::@6/(byte) current_piece_color#39 ) + (byte) current_piece_char#27 ← phi( render_current::@4/(byte) current_piece_char#38 render_current::@6/(byte) current_piece_char#39 ) (byte) render_current::l#5 ← phi( render_current::@4/(byte) render_current::l#4 render_current::@6/(byte) render_current::l#8 ) (byte) render_current::ypos2#6 ← phi( render_current::@4/(byte) render_current::ypos2#5 render_current::@6/(byte) render_current::ypos2#4 ) (byte) render_current::c#3 ← phi( render_current::@4/(byte) render_current::c#1 render_current::@6/(byte) render_current::c#0 ) @@ -671,7 +795,7 @@ render_current::@3: scope:[render_current] from render_current::@4 render_curre to:render_current::@7 render_current::@4: scope:[render_current] from render_current::@3 render_current::@5 render_current::@8 (byte*) render_current::screen_line#4 ← phi( render_current::@3/(byte*) render_current::screen_line#3 render_current::@5/(byte*) render_current::screen_line#5 render_current::@8/(byte*) render_current::screen_line#1 ) - (byte) current_piece_color#38 ← phi( render_current::@3/(byte) current_piece_color#27 render_current::@5/(byte) current_piece_color#53 render_current::@8/(byte) current_piece_color#9 ) + (byte) current_piece_char#38 ← phi( render_current::@3/(byte) current_piece_char#27 render_current::@5/(byte) current_piece_char#53 render_current::@8/(byte) current_piece_char#9 ) (byte) current_xpos#68 ← phi( render_current::@3/(byte) current_xpos#80 render_current::@5/(byte) current_xpos#81 render_current::@8/(byte) current_xpos#82 ) (byte) render_current::i#3 ← phi( render_current::@3/(byte) render_current::i#1 render_current::@5/(byte) render_current::i#6 render_current::@8/(byte) render_current::i#7 ) (byte*) current_piece_gfx#23 ← phi( render_current::@3/(byte*) current_piece_gfx#12 render_current::@5/(byte*) current_piece_gfx#38 render_current::@8/(byte*) current_piece_gfx#39 ) @@ -692,7 +816,7 @@ render_current::@7: scope:[render_current] from render_current::@3 (byte) render_current::ypos2#9 ← phi( render_current::@3/(byte) render_current::ypos2#6 ) (byte) render_current::c#6 ← phi( render_current::@3/(byte) render_current::c#3 ) (byte*) render_current::screen_line#2 ← phi( render_current::@3/(byte*) render_current::screen_line#3 ) - (byte) current_piece_color#18 ← phi( render_current::@3/(byte) current_piece_color#27 ) + (byte) current_piece_char#18 ← phi( render_current::@3/(byte) current_piece_char#27 ) (byte) render_current::xpos#3 ← phi( render_current::@3/(byte) render_current::xpos#5 ) (bool~) render_current::$6 ← (byte) render_current::xpos#3 < (byte) PLAYFIELD_COLS#0 (bool~) render_current::$7 ← ! (bool~) render_current::$6 @@ -700,7 +824,7 @@ render_current::@7: scope:[render_current] from render_current::@3 to:render_current::@8 render_current::@5: scope:[render_current] from render_current::@7 (byte*) render_current::screen_line#5 ← phi( render_current::@7/(byte*) render_current::screen_line#2 ) - (byte) current_piece_color#53 ← phi( render_current::@7/(byte) current_piece_color#18 ) + (byte) current_piece_char#53 ← phi( render_current::@7/(byte) current_piece_char#18 ) (byte) current_xpos#81 ← phi( render_current::@7/(byte) current_xpos#88 ) (byte) render_current::i#6 ← phi( render_current::@7/(byte) render_current::i#9 ) (byte*) current_piece_gfx#38 ← phi( render_current::@7/(byte*) current_piece_gfx#55 ) @@ -718,16 +842,16 @@ render_current::@8: scope:[render_current] from render_current::@7 (byte) render_current::c#5 ← phi( render_current::@7/(byte) render_current::c#6 ) (byte) render_current::xpos#4 ← phi( render_current::@7/(byte) render_current::xpos#3 ) (byte*) render_current::screen_line#1 ← phi( render_current::@7/(byte*) render_current::screen_line#2 ) - (byte) current_piece_color#9 ← phi( render_current::@7/(byte) current_piece_color#18 ) - *((byte*) render_current::screen_line#1 + (byte) render_current::xpos#4) ← (byte) current_piece_color#9 + (byte) current_piece_char#9 ← phi( render_current::@7/(byte) current_piece_char#18 ) + *((byte*) render_current::screen_line#1 + (byte) render_current::xpos#4) ← (byte) current_piece_char#9 to:render_current::@4 render_current::@return: scope:[render_current] from render_current::@2 return to:@return -@17: scope:[] from @14 +@18: scope:[] from @14 (byte) keyboard_modifiers#33 ← phi( @14/(byte) keyboard_modifiers#39 ) (byte) keyboard_events_size#39 ← phi( @14/(byte) keyboard_events_size#48 ) - (byte) current_piece_color#44 ← phi( @14/(byte) current_piece_color#0 ) + (byte) current_piece_char#44 ← phi( @14/(byte) current_piece_char#0 ) (byte) current_ypos#55 ← phi( @14/(byte) current_ypos#0 ) (byte) current_xpos#73 ← phi( @14/(byte) current_xpos#0 ) (byte*) current_piece_gfx#62 ← phi( @14/(byte*) current_piece_gfx#0 ) @@ -760,7 +884,7 @@ render_current::@return: scope:[render_current] from render_current::@2 (word~) $23 ← ((word)) (byte[$17]) PIECE_I#0 (word~) $24 ← ((word)) (byte[$11]) PIECE_L#0 (word[]) PIECES#0 ← { (word~) $18, (word~) $19, (word~) $20, (word~) $21, (word~) $22, (word~) $23, (word~) $24 } - (byte[]) PIECES_COLORS#0 ← { (byte) WHITE#0, (byte) LIGHT_GREY#0, (byte) GREEN#0, (byte) LIGHT_GREY#0, (byte) WHITE#0, (byte) WHITE#0, (byte) GREEN#0 } + (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*[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) } @@ -769,9 +893,9 @@ render_current::@return: scope:[render_current] from render_current::@2 (byte) current_movedown_slow#0 ← (byte/signed byte/word/signed word/dword/signed dword) 50 (byte) current_movedown_fast#0 ← (byte/signed byte/word/signed word/dword/signed dword) 5 (byte) current_movedown_counter#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 - to:@20 + to:@21 play_move_down: scope:[play_move_down] from main::@28 - (byte) current_piece_color#69 ← phi( main::@28/(byte) current_piece_color#24 ) + (byte) current_piece_char#69 ← phi( main::@28/(byte) current_piece_char#24 ) (byte*) current_piece_gfx#81 ← phi( main::@28/(byte*) current_piece_gfx#33 ) (byte*) current_piece#65 ← phi( main::@28/(byte*) current_piece#27 ) (byte) current_orientation#66 ← phi( main::@28/(byte) current_orientation#37 ) @@ -786,7 +910,7 @@ play_move_down: scope:[play_move_down] from main::@28 if((bool~) play_move_down::$1) goto play_move_down::@1 to:play_move_down::@8 play_move_down::@1: scope:[play_move_down] from play_move_down play_move_down::@8 - (byte) current_piece_color#64 ← phi( play_move_down/(byte) current_piece_color#69 play_move_down::@8/(byte) current_piece_color#70 ) + (byte) current_piece_char#64 ← phi( play_move_down/(byte) current_piece_char#69 play_move_down::@8/(byte) current_piece_char#70 ) (byte*) current_piece_gfx#76 ← phi( play_move_down/(byte*) current_piece_gfx#81 play_move_down::@8/(byte*) current_piece_gfx#82 ) (byte*) current_piece#60 ← phi( play_move_down/(byte*) current_piece#65 play_move_down::@8/(byte*) current_piece#66 ) (byte) current_orientation#61 ← phi( play_move_down/(byte) current_orientation#66 play_move_down::@8/(byte) current_orientation#67 ) @@ -799,7 +923,7 @@ play_move_down::@1: scope:[play_move_down] from play_move_down play_move_down:: (byte) keyboard_event_pressed::return#6 ← (byte) keyboard_event_pressed::return#5 to:play_move_down::@17 play_move_down::@17: scope:[play_move_down] from play_move_down::@1 - (byte) current_piece_color#55 ← phi( play_move_down::@1/(byte) current_piece_color#64 ) + (byte) current_piece_char#55 ← phi( play_move_down::@1/(byte) current_piece_char#64 ) (byte*) current_piece_gfx#69 ← phi( play_move_down::@1/(byte*) current_piece_gfx#76 ) (byte*) current_piece#54 ← phi( play_move_down::@1/(byte*) current_piece#60 ) (byte) current_orientation#52 ← phi( play_move_down::@1/(byte) current_orientation#61 ) @@ -814,7 +938,7 @@ play_move_down::@17: scope:[play_move_down] from play_move_down::@1 if((bool~) play_move_down::$4) goto play_move_down::@2 to:play_move_down::@9 play_move_down::@8: scope:[play_move_down] from play_move_down - (byte) current_piece_color#70 ← phi( play_move_down/(byte) current_piece_color#69 ) + (byte) current_piece_char#70 ← phi( play_move_down/(byte) current_piece_char#69 ) (byte*) current_piece_gfx#82 ← phi( play_move_down/(byte*) current_piece_gfx#81 ) (byte*) current_piece#66 ← phi( play_move_down/(byte*) current_piece#65 ) (byte) current_orientation#67 ← phi( play_move_down/(byte) current_orientation#66 ) @@ -825,7 +949,7 @@ play_move_down::@8: scope:[play_move_down] from play_move_down (byte) play_move_down::movedown#1 ← ++ (byte) play_move_down::movedown#4 to:play_move_down::@1 play_move_down::@2: scope:[play_move_down] from play_move_down::@10 play_move_down::@17 play_move_down::@3 - (byte) current_piece_color#41 ← phi( play_move_down::@10/(byte) current_piece_color#54 play_move_down::@17/(byte) current_piece_color#55 play_move_down::@3/(byte) current_piece_color#56 ) + (byte) current_piece_char#41 ← phi( play_move_down::@10/(byte) current_piece_char#54 play_move_down::@17/(byte) current_piece_char#55 play_move_down::@3/(byte) current_piece_char#56 ) (byte*) current_piece_gfx#57 ← phi( play_move_down::@10/(byte*) current_piece_gfx#68 play_move_down::@17/(byte*) current_piece_gfx#69 play_move_down::@3/(byte*) current_piece_gfx#70 ) (byte*) current_piece#43 ← phi( play_move_down::@10/(byte*) current_piece#53 play_move_down::@17/(byte*) current_piece#54 play_move_down::@3/(byte*) current_piece#55 ) (byte) current_orientation#42 ← phi( play_move_down::@10/(byte) current_orientation#51 play_move_down::@17/(byte) current_orientation#52 play_move_down::@3/(byte) current_orientation#53 ) @@ -838,7 +962,7 @@ play_move_down::@2: scope:[play_move_down] from play_move_down::@10 play_move_d if((bool~) play_move_down::$8) goto play_move_down::@4 to:play_move_down::@11 play_move_down::@9: scope:[play_move_down] from play_move_down::@17 - (byte) current_piece_color#65 ← phi( play_move_down::@17/(byte) current_piece_color#55 ) + (byte) current_piece_char#65 ← phi( play_move_down::@17/(byte) current_piece_char#55 ) (byte*) current_piece_gfx#77 ← phi( play_move_down::@17/(byte*) current_piece_gfx#69 ) (byte*) current_piece#61 ← phi( play_move_down::@17/(byte*) current_piece#54 ) (byte) current_orientation#62 ← phi( play_move_down::@17/(byte) current_orientation#52 ) @@ -851,7 +975,7 @@ play_move_down::@9: scope:[play_move_down] from play_move_down::@17 if((bool~) play_move_down::$6) goto play_move_down::@3 to:play_move_down::@10 play_move_down::@3: scope:[play_move_down] from play_move_down::@9 - (byte) current_piece_color#56 ← phi( play_move_down::@9/(byte) current_piece_color#65 ) + (byte) current_piece_char#56 ← phi( play_move_down::@9/(byte) current_piece_char#65 ) (byte*) current_piece_gfx#70 ← phi( play_move_down::@9/(byte*) current_piece_gfx#77 ) (byte*) current_piece#55 ← phi( play_move_down::@9/(byte*) current_piece#61 ) (byte) current_orientation#53 ← phi( play_move_down::@9/(byte) current_orientation#62 ) @@ -861,7 +985,7 @@ play_move_down::@3: scope:[play_move_down] from play_move_down::@9 (byte) current_movedown_counter#17 ← phi( play_move_down::@9/(byte) current_movedown_counter#9 ) to:play_move_down::@2 play_move_down::@10: scope:[play_move_down] from play_move_down::@9 - (byte) current_piece_color#54 ← phi( play_move_down::@9/(byte) current_piece_color#65 ) + (byte) current_piece_char#54 ← phi( play_move_down::@9/(byte) current_piece_char#65 ) (byte*) current_piece_gfx#68 ← phi( play_move_down::@9/(byte*) current_piece_gfx#77 ) (byte*) current_piece#53 ← phi( play_move_down::@9/(byte*) current_piece#61 ) (byte) current_orientation#51 ← phi( play_move_down::@9/(byte) current_orientation#62 ) @@ -872,7 +996,7 @@ play_move_down::@10: scope:[play_move_down] from play_move_down::@9 (byte) play_move_down::movedown#2 ← ++ (byte) play_move_down::movedown#5 to:play_move_down::@2 play_move_down::@4: scope:[play_move_down] from play_move_down::@11 play_move_down::@2 - (byte) current_piece_color#28 ← phi( play_move_down::@11/(byte) current_piece_color#40 play_move_down::@2/(byte) current_piece_color#41 ) + (byte) current_piece_char#28 ← phi( play_move_down::@11/(byte) current_piece_char#40 play_move_down::@2/(byte) current_piece_char#41 ) (byte*) current_piece_gfx#40 ← phi( play_move_down::@11/(byte*) current_piece_gfx#56 play_move_down::@2/(byte*) current_piece_gfx#57 ) (byte*) current_piece#30 ← phi( play_move_down::@11/(byte*) current_piece#42 play_move_down::@2/(byte*) current_piece#43 ) (byte) current_movedown_counter#22 ← phi( play_move_down::@11/(byte) current_movedown_counter#28 play_move_down::@2/(byte) current_movedown_counter#8 ) @@ -885,7 +1009,7 @@ play_move_down::@4: scope:[play_move_down] from play_move_down::@11 play_move_d if((bool~) play_move_down::$10) goto play_move_down::@5 to:play_move_down::@12 play_move_down::@11: scope:[play_move_down] from play_move_down::@2 - (byte) current_piece_color#40 ← phi( play_move_down::@2/(byte) current_piece_color#41 ) + (byte) current_piece_char#40 ← phi( play_move_down::@2/(byte) current_piece_char#41 ) (byte*) current_piece_gfx#56 ← phi( play_move_down::@2/(byte*) current_piece_gfx#57 ) (byte*) current_piece#42 ← phi( play_move_down::@2/(byte*) current_piece#43 ) (byte) current_movedown_counter#28 ← phi( play_move_down::@2/(byte) current_movedown_counter#8 ) @@ -896,7 +1020,7 @@ play_move_down::@11: scope:[play_move_down] from play_move_down::@2 (byte) play_move_down::movedown#3 ← ++ (byte) play_move_down::movedown#7 to:play_move_down::@4 play_move_down::@5: scope:[play_move_down] from play_move_down::@4 - (byte) current_piece_color#20 ← phi( play_move_down::@4/(byte) current_piece_color#28 ) + (byte) current_piece_char#20 ← phi( play_move_down::@4/(byte) current_piece_char#28 ) (byte) current_xpos#33 ← phi( play_move_down::@4/(byte) current_xpos#31 ) (byte*) current_piece_gfx#26 ← phi( play_move_down::@4/(byte*) current_piece_gfx#40 ) (byte) current_orientation#28 ← phi( play_move_down::@4/(byte) current_orientation#26 ) @@ -906,7 +1030,7 @@ play_move_down::@5: scope:[play_move_down] from play_move_down::@4 (byte) play_move_down::return#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:play_move_down::@return play_move_down::@12: scope:[play_move_down] from play_move_down::@4 - (byte) current_piece_color#57 ← phi( play_move_down::@4/(byte) current_piece_color#28 ) + (byte) current_piece_char#57 ← phi( play_move_down::@4/(byte) current_piece_char#28 ) (byte*) current_piece_gfx#71 ← phi( play_move_down::@4/(byte*) current_piece_gfx#40 ) (byte*) current_piece#22 ← phi( play_move_down::@4/(byte*) current_piece#30 ) (byte) current_orientation#12 ← phi( play_move_down::@4/(byte) current_orientation#26 ) @@ -920,7 +1044,7 @@ play_move_down::@12: scope:[play_move_down] from play_move_down::@4 (byte) play_collision::return#0 ← (byte) play_collision::return#5 to:play_move_down::@18 play_move_down::@18: scope:[play_move_down] from play_move_down::@12 - (byte) current_piece_color#42 ← phi( play_move_down::@12/(byte) current_piece_color#57 ) + (byte) current_piece_char#42 ← phi( play_move_down::@12/(byte) current_piece_char#57 ) (byte) current_xpos#72 ← phi( play_move_down::@12/(byte) current_xpos#14 ) (byte*) current_piece_gfx#58 ← phi( play_move_down::@12/(byte*) current_piece_gfx#71 ) (byte) current_orientation#54 ← phi( play_move_down::@12/(byte) current_orientation#12 ) @@ -932,7 +1056,7 @@ play_move_down::@18: scope:[play_move_down] from play_move_down::@12 if((bool~) play_move_down::$13) goto play_move_down::@6 to:play_move_down::@13 play_move_down::@6: scope:[play_move_down] from play_move_down::@18 - (byte) current_piece_color#30 ← phi( play_move_down::@18/(byte) current_piece_color#42 ) + (byte) current_piece_char#30 ← phi( play_move_down::@18/(byte) current_piece_char#42 ) (byte) current_xpos#53 ← phi( play_move_down::@18/(byte) current_xpos#72 ) (byte*) current_piece_gfx#42 ← phi( play_move_down::@18/(byte*) current_piece_gfx#58 ) (byte) current_orientation#44 ← phi( play_move_down::@18/(byte) current_orientation#54 ) @@ -941,7 +1065,7 @@ play_move_down::@6: scope:[play_move_down] from play_move_down::@18 (byte) current_ypos#1 ← ++ (byte) current_ypos#12 to:play_move_down::@7 play_move_down::@13: scope:[play_move_down] from play_move_down::@18 - (byte) current_piece_color#43 ← phi( play_move_down::@18/(byte) current_piece_color#42 ) + (byte) current_piece_char#43 ← phi( play_move_down::@18/(byte) current_piece_char#42 ) (byte*) current_piece_gfx#59 ← phi( play_move_down::@18/(byte*) current_piece_gfx#58 ) (byte) current_orientation#55 ← phi( play_move_down::@18/(byte) current_orientation#54 ) (byte*) current_piece#45 ← phi( play_move_down::@18/(byte*) current_piece#44 ) @@ -950,7 +1074,7 @@ play_move_down::@13: scope:[play_move_down] from play_move_down::@18 call play_lock_current to:play_move_down::@19 play_move_down::@19: scope:[play_move_down] from play_move_down::@13 - (byte) current_piece_color#29 ← phi( play_move_down::@13/(byte) current_piece_color#43 ) + (byte) current_piece_char#29 ← phi( play_move_down::@13/(byte) current_piece_char#43 ) (byte) current_ypos#42 ← phi( play_move_down::@13/(byte) current_ypos#35 ) (byte) current_xpos#52 ← phi( play_move_down::@13/(byte) current_xpos#59 ) (byte*) current_piece_gfx#41 ← phi( play_move_down::@13/(byte*) current_piece_gfx#59 ) @@ -959,7 +1083,7 @@ play_move_down::@19: scope:[play_move_down] from play_move_down::@13 call play_remove_lines to:play_move_down::@20 play_move_down::@20: scope:[play_move_down] from play_move_down::@19 - (byte) current_piece_color#19 ← phi( play_move_down::@19/(byte) current_piece_color#29 ) + (byte) current_piece_char#19 ← phi( play_move_down::@19/(byte) current_piece_char#29 ) (byte) current_ypos#28 ← phi( play_move_down::@19/(byte) current_ypos#42 ) (byte) current_xpos#32 ← phi( play_move_down::@19/(byte) current_xpos#52 ) (byte*) current_piece_gfx#25 ← phi( play_move_down::@19/(byte*) current_piece_gfx#41 ) @@ -968,7 +1092,7 @@ play_move_down::@20: scope:[play_move_down] from play_move_down::@19 call play_spawn_current to:play_move_down::@21 play_move_down::@21: scope:[play_move_down] from play_move_down::@20 - (byte) current_piece_color#10 ← phi( play_move_down::@20/(byte) current_piece_color#4 ) + (byte) current_piece_char#10 ← phi( play_move_down::@20/(byte) current_piece_char#4 ) (byte) current_ypos#13 ← phi( play_move_down::@20/(byte) current_ypos#5 ) (byte) current_xpos#15 ← phi( play_move_down::@20/(byte) current_xpos#7 ) (byte*) current_piece_gfx#13 ← phi( play_move_down::@20/(byte*) current_piece_gfx#6 ) @@ -979,10 +1103,10 @@ play_move_down::@21: scope:[play_move_down] from play_move_down::@20 (byte*) current_piece_gfx#1 ← (byte*) current_piece_gfx#13 (byte) current_xpos#1 ← (byte) current_xpos#15 (byte) current_ypos#2 ← (byte) current_ypos#13 - (byte) current_piece_color#1 ← (byte) current_piece_color#10 + (byte) current_piece_char#1 ← (byte) current_piece_char#10 to:play_move_down::@7 play_move_down::@7: scope:[play_move_down] from play_move_down::@21 play_move_down::@6 - (byte) current_piece_color#21 ← phi( play_move_down::@21/(byte) current_piece_color#1 play_move_down::@6/(byte) current_piece_color#30 ) + (byte) current_piece_char#21 ← phi( play_move_down::@21/(byte) current_piece_char#1 play_move_down::@6/(byte) current_piece_char#30 ) (byte) current_xpos#34 ← phi( play_move_down::@21/(byte) current_xpos#1 play_move_down::@6/(byte) current_xpos#53 ) (byte*) current_piece_gfx#27 ← phi( play_move_down::@21/(byte*) current_piece_gfx#1 play_move_down::@6/(byte*) current_piece_gfx#42 ) (byte) current_orientation#29 ← phi( play_move_down::@21/(byte) current_orientation#1 play_move_down::@6/(byte) current_orientation#44 ) @@ -992,7 +1116,7 @@ play_move_down::@7: scope:[play_move_down] from play_move_down::@21 play_move_d (byte) play_move_down::return#1 ← (byte/signed byte/word/signed word/dword/signed dword) 1 to:play_move_down::@return play_move_down::@return: scope:[play_move_down] from play_move_down::@5 play_move_down::@7 - (byte) current_piece_color#11 ← phi( play_move_down::@5/(byte) current_piece_color#20 play_move_down::@7/(byte) current_piece_color#21 ) + (byte) current_piece_char#11 ← phi( play_move_down::@5/(byte) current_piece_char#20 play_move_down::@7/(byte) current_piece_char#21 ) (byte) current_xpos#16 ← phi( play_move_down::@5/(byte) current_xpos#33 play_move_down::@7/(byte) current_xpos#34 ) (byte*) current_piece_gfx#14 ← phi( play_move_down::@5/(byte*) current_piece_gfx#26 play_move_down::@7/(byte*) current_piece_gfx#27 ) (byte) current_orientation#14 ← phi( play_move_down::@5/(byte) current_orientation#28 play_move_down::@7/(byte) current_orientation#29 ) @@ -1007,7 +1131,7 @@ play_move_down::@return: scope:[play_move_down] from play_move_down::@5 play_mo (byte) current_orientation#2 ← (byte) current_orientation#14 (byte*) current_piece_gfx#2 ← (byte*) current_piece_gfx#14 (byte) current_xpos#2 ← (byte) current_xpos#16 - (byte) current_piece_color#2 ← (byte) current_piece_color#11 + (byte) current_piece_char#2 ← (byte) current_piece_char#11 return to:@return play_move_leftright: scope:[play_move_leftright] from main::@29 @@ -1191,22 +1315,22 @@ play_move_rotate::@11: scope:[play_move_rotate] from play_move_rotate::@14 (byte*) current_piece_gfx#4 ← (byte*~) play_move_rotate::$9 (byte) play_move_rotate::return#3 ← (byte/signed byte/word/signed word/dword/signed dword) 1 to:play_move_rotate::@return -@20: scope:[] from @17 - (byte) current_movedown_counter#26 ← phi( @17/(byte) current_movedown_counter#0 ) - (byte) keyboard_modifiers#32 ← phi( @17/(byte) keyboard_modifiers#33 ) - (byte) keyboard_events_size#35 ← phi( @17/(byte) keyboard_events_size#39 ) - (byte) current_piece_color#37 ← phi( @17/(byte) current_piece_color#44 ) - (byte) current_ypos#50 ← phi( @17/(byte) current_ypos#55 ) - (byte) current_xpos#65 ← phi( @17/(byte) current_xpos#73 ) - (byte*) current_piece_gfx#52 ← phi( @17/(byte*) current_piece_gfx#62 ) - (byte) current_orientation#50 ← phi( @17/(byte) current_orientation#0 ) - (byte*) current_piece#41 ← phi( @17/(byte*) current_piece#0 ) +@21: scope:[] from @18 + (byte) current_movedown_counter#26 ← phi( @18/(byte) current_movedown_counter#0 ) + (byte) keyboard_modifiers#32 ← phi( @18/(byte) keyboard_modifiers#33 ) + (byte) keyboard_events_size#35 ← phi( @18/(byte) keyboard_events_size#39 ) + (byte) current_piece_char#37 ← phi( @18/(byte) current_piece_char#44 ) + (byte) current_ypos#50 ← phi( @18/(byte) current_ypos#55 ) + (byte) current_xpos#65 ← phi( @18/(byte) current_xpos#73 ) + (byte*) current_piece_gfx#52 ← phi( @18/(byte*) current_piece_gfx#62 ) + (byte) current_orientation#50 ← phi( @18/(byte) current_orientation#0 ) + (byte*) current_piece#41 ← phi( @18/(byte*) current_piece#0 ) (byte) COLLISION_NONE#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 (byte) COLLISION_PLAYFIELD#0 ← (byte/signed byte/word/signed word/dword/signed dword) 1 (byte) COLLISION_BOTTOM#0 ← (byte/signed byte/word/signed word/dword/signed dword) 2 (byte) COLLISION_LEFT#0 ← (byte/signed byte/word/signed word/dword/signed dword) 4 (byte) COLLISION_RIGHT#0 ← (byte/signed byte/word/signed word/dword/signed dword) 8 - to:@26 + to:@27 play_collision: scope:[play_collision] from play_move_down::@12 play_move_leftright::@1 play_move_leftright::@7 play_move_rotate::@4 (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 ) (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 ) @@ -1353,7 +1477,7 @@ play_collision::@18: scope:[play_collision] from play_collision::@17 (byte) play_collision::return#9 ← (byte) COLLISION_NONE#0 to:play_collision::@return play_lock_current: scope:[play_lock_current] from play_move_down::@13 - (byte) current_piece_color#45 ← phi( play_move_down::@13/(byte) current_piece_color#43 ) + (byte) current_piece_char#45 ← phi( play_move_down::@13/(byte) current_piece_char#43 ) (byte*) current_piece_gfx#45 ← phi( play_move_down::@13/(byte*) current_piece_gfx#59 ) (byte) current_xpos#42 ← phi( play_move_down::@13/(byte) current_xpos#59 ) (byte) current_ypos#18 ← phi( play_move_down::@13/(byte) current_ypos#35 ) @@ -1364,7 +1488,7 @@ play_lock_current: scope:[play_lock_current] from play_move_down::@13 to:play_lock_current::@1 play_lock_current::@1: scope:[play_lock_current] from play_lock_current play_lock_current::@5 (byte) play_lock_current::l#6 ← phi( play_lock_current/(byte) play_lock_current::l#0 play_lock_current::@5/(byte) play_lock_current::l#1 ) - (byte) current_piece_color#31 ← phi( play_lock_current/(byte) current_piece_color#45 play_lock_current::@5/(byte) current_piece_color#46 ) + (byte) current_piece_char#31 ← phi( play_lock_current/(byte) current_piece_char#45 play_lock_current::@5/(byte) current_piece_char#46 ) (byte) play_lock_current::i#3 ← phi( play_lock_current/(byte) play_lock_current::i#0 play_lock_current::@5/(byte) play_lock_current::i#5 ) (byte*) current_piece_gfx#30 ← phi( play_lock_current/(byte*) current_piece_gfx#45 play_lock_current::@5/(byte*) current_piece_gfx#46 ) (byte) current_xpos#23 ← phi( play_lock_current/(byte) current_xpos#42 play_lock_current::@5/(byte) current_xpos#43 ) @@ -1378,7 +1502,7 @@ play_lock_current::@2: scope:[play_lock_current] from play_lock_current::@1 pla (byte) play_lock_current::l#4 ← phi( play_lock_current::@1/(byte) play_lock_current::l#6 play_lock_current::@3/(byte) play_lock_current::l#3 ) (byte) play_lock_current::ypos2#5 ← phi( play_lock_current::@1/(byte) play_lock_current::ypos2#2 play_lock_current::@3/(byte) play_lock_current::ypos2#4 ) (byte*) play_lock_current::playfield_line#2 ← phi( play_lock_current::@1/(byte*) play_lock_current::playfield_line#0 play_lock_current::@3/(byte*) play_lock_current::playfield_line#3 ) - (byte) current_piece_color#22 ← phi( play_lock_current::@1/(byte) current_piece_color#31 play_lock_current::@3/(byte) current_piece_color#32 ) + (byte) current_piece_char#22 ← phi( play_lock_current::@1/(byte) current_piece_char#31 play_lock_current::@3/(byte) current_piece_char#32 ) (byte) play_lock_current::c#3 ← phi( play_lock_current::@1/(byte) play_lock_current::c#0 play_lock_current::@3/(byte) play_lock_current::c#1 ) (byte) play_lock_current::col#4 ← phi( play_lock_current::@1/(byte) play_lock_current::col#0 play_lock_current::@3/(byte) play_lock_current::col#1 ) (byte) play_lock_current::i#2 ← phi( play_lock_current::@1/(byte) play_lock_current::i#3 play_lock_current::@3/(byte) play_lock_current::i#4 ) @@ -1391,7 +1515,7 @@ play_lock_current::@2: scope:[play_lock_current] from play_lock_current::@1 pla play_lock_current::@3: scope:[play_lock_current] from play_lock_current::@2 play_lock_current::@4 (byte) current_xpos#60 ← phi( play_lock_current::@2/(byte) current_xpos#74 play_lock_current::@4/(byte) current_xpos#75 ) (byte*) play_lock_current::playfield_line#3 ← phi( play_lock_current::@2/(byte*) play_lock_current::playfield_line#2 play_lock_current::@4/(byte*) play_lock_current::playfield_line#1 ) - (byte) current_piece_color#32 ← phi( play_lock_current::@2/(byte) current_piece_color#22 play_lock_current::@4/(byte) current_piece_color#12 ) + (byte) current_piece_char#32 ← phi( play_lock_current::@2/(byte) current_piece_char#22 play_lock_current::@4/(byte) current_piece_char#12 ) (byte) play_lock_current::l#3 ← phi( play_lock_current::@2/(byte) play_lock_current::l#4 play_lock_current::@4/(byte) play_lock_current::l#5 ) (byte) play_lock_current::ypos2#4 ← phi( play_lock_current::@2/(byte) play_lock_current::ypos2#5 play_lock_current::@4/(byte) play_lock_current::ypos2#6 ) (byte) play_lock_current::i#4 ← phi( play_lock_current::@2/(byte) play_lock_current::i#1 play_lock_current::@4/(byte) play_lock_current::i#6 ) @@ -1412,11 +1536,11 @@ play_lock_current::@4: scope:[play_lock_current] from play_lock_current::@2 (byte) play_lock_current::c#4 ← phi( play_lock_current::@2/(byte) play_lock_current::c#3 ) (byte) play_lock_current::col#3 ← phi( play_lock_current::@2/(byte) play_lock_current::col#4 ) (byte*) play_lock_current::playfield_line#1 ← phi( play_lock_current::@2/(byte*) play_lock_current::playfield_line#2 ) - (byte) current_piece_color#12 ← phi( play_lock_current::@2/(byte) current_piece_color#22 ) - *((byte*) play_lock_current::playfield_line#1 + (byte) play_lock_current::col#3) ← (byte) current_piece_color#12 + (byte) current_piece_char#12 ← phi( play_lock_current::@2/(byte) current_piece_char#22 ) + *((byte*) play_lock_current::playfield_line#1 + (byte) play_lock_current::col#3) ← (byte) current_piece_char#12 to:play_lock_current::@3 play_lock_current::@5: scope:[play_lock_current] from play_lock_current::@3 - (byte) current_piece_color#46 ← phi( play_lock_current::@3/(byte) current_piece_color#32 ) + (byte) current_piece_char#46 ← phi( play_lock_current::@3/(byte) current_piece_char#32 ) (byte) play_lock_current::i#5 ← phi( play_lock_current::@3/(byte) play_lock_current::i#4 ) (byte*) current_piece_gfx#46 ← phi( play_lock_current::@3/(byte*) current_piece_gfx#31 ) (byte) current_xpos#43 ← phi( play_lock_current::@3/(byte) current_xpos#60 ) @@ -1457,10 +1581,10 @@ play_spawn_current::@3: scope:[play_spawn_current] from play_spawn_current::@1 (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_piece_color#3 ← *((byte[]) PIECES_COLORS#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 - (byte) current_piece_color#13 ← phi( play_spawn_current::@3/(byte) current_piece_color#3 ) + (byte) current_piece_char#13 ← phi( play_spawn_current::@3/(byte) current_piece_char#3 ) (byte) current_ypos#19 ← phi( play_spawn_current::@3/(byte) current_ypos#4 ) (byte) current_xpos#24 ← phi( play_spawn_current::@3/(byte) current_xpos#6 ) (byte*) current_piece_gfx#17 ← phi( play_spawn_current::@3/(byte*) current_piece_gfx#5 ) @@ -1471,7 +1595,7 @@ play_spawn_current::@return: scope:[play_spawn_current] from play_spawn_current (byte*) current_piece_gfx#6 ← (byte*) current_piece_gfx#17 (byte) current_xpos#7 ← (byte) current_xpos#24 (byte) current_ypos#5 ← (byte) current_ypos#19 - (byte) current_piece_color#4 ← (byte) current_piece_color#13 + (byte) current_piece_char#4 ← (byte) current_piece_char#13 return to:@return play_remove_lines: scope:[play_remove_lines] from play_move_down::@19 @@ -1588,23 +1712,23 @@ play_init::@2: scope:[play_init] from play_init::@1 play_init::@return: scope:[play_init] from play_init::@2 return to:@return -main: scope:[main] from @26 - (byte) current_movedown_counter#45 ← phi( @26/(byte) current_movedown_counter#20 ) - (byte) keyboard_modifiers#52 ← phi( @26/(byte) keyboard_modifiers#25 ) - (byte) keyboard_events_size#70 ← phi( @26/(byte) keyboard_events_size#28 ) - (byte) current_piece_color#58 ← phi( @26/(byte) current_piece_color#26 ) - (byte) current_ypos#62 ← phi( @26/(byte) current_ypos#39 ) - (byte) current_xpos#85 ← phi( @26/(byte) current_xpos#47 ) - (byte*) current_piece_gfx#74 ← phi( @26/(byte*) current_piece_gfx#36 ) - (byte) current_orientation#63 ← phi( @26/(byte) current_orientation#40 ) - (byte*) current_piece#57 ← phi( @26/(byte*) current_piece#29 ) +main: scope:[main] from @27 + (byte) current_movedown_counter#45 ← phi( @27/(byte) current_movedown_counter#20 ) + (byte) keyboard_modifiers#52 ← phi( @27/(byte) keyboard_modifiers#25 ) + (byte) keyboard_events_size#70 ← phi( @27/(byte) keyboard_events_size#28 ) + (byte) current_piece_char#58 ← phi( @27/(byte) current_piece_char#26 ) + (byte) current_ypos#62 ← phi( @27/(byte) current_ypos#39 ) + (byte) current_xpos#85 ← phi( @27/(byte) current_xpos#47 ) + (byte*) current_piece_gfx#74 ← phi( @27/(byte*) current_piece_gfx#36 ) + (byte) current_orientation#63 ← phi( @27/(byte) current_orientation#40 ) + (byte*) current_piece#57 ← phi( @27/(byte*) current_piece#29 ) call sid_rnd_init to:main::@21 main::@21: scope:[main] from main (byte) current_movedown_counter#44 ← phi( main/(byte) current_movedown_counter#45 ) (byte) keyboard_modifiers#51 ← phi( main/(byte) keyboard_modifiers#52 ) (byte) keyboard_events_size#67 ← phi( main/(byte) keyboard_events_size#70 ) - (byte) current_piece_color#47 ← phi( main/(byte) current_piece_color#58 ) + (byte) current_piece_char#47 ← phi( main/(byte) current_piece_char#58 ) (byte) current_ypos#56 ← phi( main/(byte) current_ypos#62 ) (byte) current_xpos#76 ← phi( main/(byte) current_xpos#85 ) (byte*) current_piece_gfx#63 ← phi( main/(byte*) current_piece_gfx#74 ) @@ -1617,7 +1741,7 @@ main::@22: scope:[main] from main::@21 (byte) current_movedown_counter#41 ← phi( main::@21/(byte) current_movedown_counter#44 ) (byte) keyboard_modifiers#49 ← phi( main::@21/(byte) keyboard_modifiers#51 ) (byte) keyboard_events_size#65 ← phi( main::@21/(byte) keyboard_events_size#67 ) - (byte) current_piece_color#33 ← phi( main::@21/(byte) current_piece_color#47 ) + (byte) current_piece_char#33 ← phi( main::@21/(byte) current_piece_char#47 ) (byte) current_ypos#45 ← phi( main::@21/(byte) current_ypos#56 ) (byte) current_xpos#61 ← phi( main::@21/(byte) current_xpos#76 ) (byte*) current_piece_gfx#48 ← phi( main::@21/(byte*) current_piece_gfx#63 ) @@ -1629,7 +1753,7 @@ main::@23: scope:[main] from main::@22 (byte) current_movedown_counter#37 ← phi( main::@22/(byte) current_movedown_counter#41 ) (byte) keyboard_modifiers#46 ← phi( main::@22/(byte) keyboard_modifiers#49 ) (byte) keyboard_events_size#58 ← phi( main::@22/(byte) keyboard_events_size#65 ) - (byte) current_piece_color#23 ← phi( main::@22/(byte) current_piece_color#33 ) + (byte) current_piece_char#23 ← phi( main::@22/(byte) current_piece_char#33 ) (byte) current_ypos#36 ← phi( main::@22/(byte) current_ypos#45 ) (byte) current_xpos#44 ← phi( main::@22/(byte) current_xpos#61 ) (byte*) current_piece_gfx#32 ← phi( main::@22/(byte*) current_piece_gfx#48 ) @@ -1641,7 +1765,7 @@ main::@24: scope:[main] from main::@23 (byte) current_movedown_counter#33 ← phi( main::@23/(byte) current_movedown_counter#37 ) (byte) keyboard_modifiers#40 ← phi( main::@23/(byte) keyboard_modifiers#46 ) (byte) keyboard_events_size#49 ← phi( main::@23/(byte) keyboard_events_size#58 ) - (byte) current_piece_color#14 ← phi( main::@23/(byte) current_piece_color#4 ) + (byte) current_piece_char#14 ← phi( main::@23/(byte) current_piece_char#4 ) (byte) current_ypos#20 ← phi( main::@23/(byte) current_ypos#5 ) (byte) current_xpos#25 ← phi( main::@23/(byte) current_xpos#7 ) (byte*) current_piece_gfx#18 ← phi( main::@23/(byte*) current_piece_gfx#6 ) @@ -1652,14 +1776,14 @@ main::@24: scope:[main] from main::@23 (byte*) current_piece_gfx#7 ← (byte*) current_piece_gfx#18 (byte) current_xpos#8 ← (byte) current_xpos#25 (byte) current_ypos#6 ← (byte) current_ypos#20 - (byte) current_piece_color#5 ← (byte) current_piece_color#14 + (byte) current_piece_char#5 ← (byte) current_piece_char#14 call render_playfield to:main::@25 main::@25: scope:[main] from main::@24 (byte) current_movedown_counter#29 ← phi( main::@24/(byte) current_movedown_counter#33 ) (byte) keyboard_modifiers#34 ← phi( main::@24/(byte) keyboard_modifiers#40 ) (byte) keyboard_events_size#40 ← phi( main::@24/(byte) keyboard_events_size#49 ) - (byte) current_piece_color#48 ← phi( main::@24/(byte) current_piece_color#5 ) + (byte) current_piece_char#48 ← phi( main::@24/(byte) current_piece_char#5 ) (byte*) current_piece_gfx#64 ← phi( main::@24/(byte*) current_piece_gfx#7 ) (byte) current_orientation#58 ← phi( main::@24/(byte) current_orientation#7 ) (byte*) current_piece#49 ← phi( main::@24/(byte*) current_piece#5 ) @@ -1671,7 +1795,7 @@ main::@26: scope:[main] from main::@25 (byte) current_movedown_counter#24 ← phi( main::@25/(byte) current_movedown_counter#29 ) (byte) keyboard_modifiers#30 ← phi( main::@25/(byte) keyboard_modifiers#34 ) (byte) keyboard_events_size#33 ← phi( main::@25/(byte) keyboard_events_size#40 ) - (byte) current_piece_color#35 ← phi( main::@25/(byte) current_piece_color#48 ) + (byte) current_piece_char#35 ← phi( main::@25/(byte) current_piece_char#48 ) (byte) current_ypos#47 ← phi( main::@25/(byte) current_ypos#24 ) (byte) current_xpos#63 ← phi( main::@25/(byte) current_xpos#66 ) (byte*) current_piece_gfx#50 ← phi( main::@25/(byte*) current_piece_gfx#64 ) @@ -1682,7 +1806,7 @@ main::@1: scope:[main] from main::@10 main::@26 (byte) current_movedown_counter#19 ← phi( main::@10/(byte) current_movedown_counter#23 main::@26/(byte) current_movedown_counter#24 ) (byte) keyboard_modifiers#24 ← phi( main::@10/(byte) keyboard_modifiers#29 main::@26/(byte) keyboard_modifiers#30 ) (byte) keyboard_events_size#27 ← phi( main::@10/(byte) keyboard_events_size#32 main::@26/(byte) keyboard_events_size#33 ) - (byte) current_piece_color#25 ← phi( main::@10/(byte) current_piece_color#34 main::@26/(byte) current_piece_color#35 ) + (byte) current_piece_char#25 ← phi( main::@10/(byte) current_piece_char#34 main::@26/(byte) current_piece_char#35 ) (byte) current_ypos#38 ← phi( main::@10/(byte) current_ypos#46 main::@26/(byte) current_ypos#47 ) (byte) current_xpos#46 ← phi( main::@10/(byte) current_xpos#62 main::@26/(byte) current_xpos#63 ) (byte*) current_piece_gfx#35 ← phi( main::@10/(byte*) current_piece_gfx#49 main::@26/(byte*) current_piece_gfx#50 ) @@ -1691,7 +1815,7 @@ main::@1: scope:[main] from main::@10 main::@26 if(true) goto main::@2 to:main::@return main::@2: scope:[main] from main::@1 - (byte) current_piece_color#71 ← phi( main::@1/(byte) current_piece_color#25 ) + (byte) current_piece_char#71 ← phi( main::@1/(byte) current_piece_char#25 ) (byte) current_xpos#93 ← phi( main::@1/(byte) current_xpos#46 ) (byte*) current_piece_gfx#83 ← phi( main::@1/(byte*) current_piece_gfx#35 ) (byte) current_orientation#71 ← phi( main::@1/(byte) current_orientation#39 ) @@ -1702,7 +1826,7 @@ main::@2: scope:[main] from main::@1 (byte) keyboard_events_size#50 ← phi( main::@1/(byte) keyboard_events_size#27 ) to:main::@4 main::@4: scope:[main] from main::@2 main::@5 - (byte) current_piece_color#66 ← phi( main::@2/(byte) current_piece_color#71 main::@5/(byte) current_piece_color#72 ) + (byte) current_piece_char#66 ← phi( main::@2/(byte) current_piece_char#71 main::@5/(byte) current_piece_char#72 ) (byte) current_xpos#91 ← phi( main::@2/(byte) current_xpos#93 main::@5/(byte) current_xpos#94 ) (byte*) current_piece_gfx#78 ← phi( main::@2/(byte*) current_piece_gfx#83 main::@5/(byte*) current_piece_gfx#84 ) (byte) current_orientation#68 ← phi( main::@2/(byte) current_orientation#71 main::@5/(byte) current_orientation#72 ) @@ -1715,7 +1839,7 @@ main::@4: scope:[main] from main::@2 main::@5 if((bool~) main::$6) goto main::@5 to:main::@7 main::@5: scope:[main] from main::@4 - (byte) current_piece_color#72 ← phi( main::@4/(byte) current_piece_color#66 ) + (byte) current_piece_char#72 ← phi( main::@4/(byte) current_piece_char#66 ) (byte) current_xpos#94 ← phi( main::@4/(byte) current_xpos#91 ) (byte*) current_piece_gfx#84 ← phi( main::@4/(byte*) current_piece_gfx#78 ) (byte) current_orientation#72 ← phi( main::@4/(byte) current_orientation#68 ) @@ -1726,7 +1850,7 @@ main::@5: scope:[main] from main::@4 (byte) keyboard_events_size#51 ← phi( main::@4/(byte) keyboard_events_size#41 ) to:main::@4 main::@7: scope:[main] from main::@4 main::@8 - (byte) current_piece_color#59 ← phi( main::@4/(byte) current_piece_color#66 main::@8/(byte) current_piece_color#67 ) + (byte) current_piece_char#59 ← phi( main::@4/(byte) current_piece_char#66 main::@8/(byte) current_piece_char#67 ) (byte) current_xpos#86 ← phi( main::@4/(byte) current_xpos#91 main::@8/(byte) current_xpos#92 ) (byte*) current_piece_gfx#75 ← phi( main::@4/(byte*) current_piece_gfx#78 main::@8/(byte*) current_piece_gfx#79 ) (byte) current_orientation#64 ← phi( main::@4/(byte) current_orientation#68 main::@8/(byte) current_orientation#69 ) @@ -1739,7 +1863,7 @@ main::@7: scope:[main] from main::@4 main::@8 if((bool~) main::$7) goto main::@8 to:main::@9 main::@8: scope:[main] from main::@7 - (byte) current_piece_color#67 ← phi( main::@7/(byte) current_piece_color#59 ) + (byte) current_piece_char#67 ← phi( main::@7/(byte) current_piece_char#59 ) (byte) current_xpos#92 ← phi( main::@7/(byte) current_xpos#86 ) (byte*) current_piece_gfx#79 ← phi( main::@7/(byte*) current_piece_gfx#75 ) (byte) current_orientation#69 ← phi( main::@7/(byte) current_orientation#64 ) @@ -1750,7 +1874,7 @@ main::@8: scope:[main] from main::@7 (byte) keyboard_events_size#42 ← phi( main::@7/(byte) keyboard_events_size#34 ) to:main::@7 main::@9: scope:[main] from main::@7 - (byte) current_piece_color#49 ← phi( main::@7/(byte) current_piece_color#59 ) + (byte) current_piece_char#49 ← phi( main::@7/(byte) current_piece_char#59 ) (byte) current_xpos#77 ← phi( main::@7/(byte) current_xpos#86 ) (byte*) current_piece_gfx#65 ← phi( main::@7/(byte*) current_piece_gfx#75 ) (byte) current_orientation#59 ← phi( main::@7/(byte) current_orientation#64 ) @@ -1763,7 +1887,7 @@ main::@9: scope:[main] from main::@7 call keyboard_event_scan to:main::@27 main::@27: scope:[main] from main::@9 - (byte) current_piece_color#36 ← phi( main::@9/(byte) current_piece_color#49 ) + (byte) current_piece_char#36 ← phi( main::@9/(byte) current_piece_char#49 ) (byte) current_xpos#64 ← phi( main::@9/(byte) current_xpos#77 ) (byte*) current_piece_gfx#51 ← phi( main::@9/(byte*) current_piece_gfx#65 ) (byte) current_orientation#49 ← phi( main::@9/(byte) current_orientation#59 ) @@ -1779,7 +1903,7 @@ main::@27: scope:[main] from main::@9 to:main::@28 main::@28: scope:[main] from main::@27 (byte) keyboard_modifiers#50 ← phi( main::@27/(byte) keyboard_modifiers#7 ) - (byte) current_piece_color#24 ← phi( main::@27/(byte) current_piece_color#36 ) + (byte) current_piece_char#24 ← phi( main::@27/(byte) current_piece_char#36 ) (byte) current_xpos#45 ← phi( main::@27/(byte) current_xpos#64 ) (byte*) current_piece_gfx#33 ← phi( main::@27/(byte*) current_piece_gfx#51 ) (byte) current_orientation#37 ← phi( main::@27/(byte) current_orientation#49 ) @@ -1801,7 +1925,7 @@ main::@29: scope:[main] from main::@28 (byte) keyboard_events_size#59 ← phi( main::@28/(byte) keyboard_events_size#7 ) (byte) main::key_event#1 ← phi( main::@28/(byte) main::key_event#0 ) (byte) main::render#4 ← phi( main::@28/(byte) main::render#0 ) - (byte) current_piece_color#15 ← phi( main::@28/(byte) current_piece_color#2 ) + (byte) current_piece_char#15 ← phi( main::@28/(byte) current_piece_char#2 ) (byte) current_xpos#26 ← phi( main::@28/(byte) current_xpos#2 ) (byte*) current_piece_gfx#19 ← phi( main::@28/(byte*) current_piece_gfx#2 ) (byte) current_orientation#22 ← phi( main::@28/(byte) current_orientation#2 ) @@ -1816,7 +1940,7 @@ main::@29: scope:[main] from main::@28 (byte) current_orientation#8 ← (byte) current_orientation#22 (byte*) current_piece_gfx#8 ← (byte*) current_piece_gfx#19 (byte) current_xpos#9 ← (byte) current_xpos#26 - (byte) current_piece_color#6 ← (byte) current_piece_color#15 + (byte) current_piece_char#6 ← (byte) current_piece_char#15 (byte) main::render#1 ← (byte) main::render#4 + (byte~) main::$10 (byte) play_move_leftright::key_event#0 ← (byte) main::key_event#1 call play_move_leftright @@ -1826,7 +1950,7 @@ main::@30: scope:[main] from main::@29 (byte) current_movedown_counter#35 ← phi( main::@29/(byte) current_movedown_counter#4 ) (byte) keyboard_modifiers#43 ← phi( main::@29/(byte) keyboard_modifiers#47 ) (byte) keyboard_events_size#52 ← phi( main::@29/(byte) keyboard_events_size#59 ) - (byte) current_piece_color#60 ← phi( main::@29/(byte) current_piece_color#6 ) + (byte) current_piece_char#60 ← phi( main::@29/(byte) current_piece_char#6 ) (byte*) current_piece#56 ← phi( main::@29/(byte*) current_piece#6 ) (byte) current_ypos#54 ← phi( main::@29/(byte) current_ypos#7 ) (byte*) current_piece_gfx#34 ← phi( main::@29/(byte*) current_piece_gfx#8 ) @@ -1846,7 +1970,7 @@ main::@31: scope:[main] from main::@30 (byte) current_movedown_counter#31 ← phi( main::@30/(byte) current_movedown_counter#35 ) (byte) keyboard_modifiers#37 ← phi( main::@30/(byte) keyboard_modifiers#43 ) (byte) keyboard_events_size#43 ← phi( main::@30/(byte) keyboard_events_size#52 ) - (byte) current_piece_color#50 ← phi( main::@30/(byte) current_piece_color#60 ) + (byte) current_piece_char#50 ← phi( main::@30/(byte) current_piece_char#60 ) (byte) current_ypos#58 ← phi( main::@30/(byte) current_ypos#54 ) (byte) current_xpos#78 ← phi( main::@30/(byte) current_xpos#10 ) (byte*) current_piece#51 ← phi( main::@30/(byte*) current_piece#56 ) @@ -1866,7 +1990,7 @@ main::@10: scope:[main] from main::@31 main::@33 (byte) current_movedown_counter#23 ← phi( main::@31/(byte) current_movedown_counter#31 main::@33/(byte) current_movedown_counter#32 ) (byte) keyboard_modifiers#29 ← phi( main::@31/(byte) keyboard_modifiers#37 main::@33/(byte) keyboard_modifiers#38 ) (byte) keyboard_events_size#32 ← phi( main::@31/(byte) keyboard_events_size#43 main::@33/(byte) keyboard_events_size#44 ) - (byte) current_piece_color#34 ← phi( main::@31/(byte) current_piece_color#50 main::@33/(byte) current_piece_color#51 ) + (byte) current_piece_char#34 ← phi( main::@31/(byte) current_piece_char#50 main::@33/(byte) current_piece_char#51 ) (byte) current_ypos#46 ← phi( main::@31/(byte) current_ypos#58 main::@33/(byte) current_ypos#59 ) (byte) current_xpos#62 ← phi( main::@31/(byte) current_xpos#78 main::@33/(byte) current_xpos#79 ) (byte*) current_piece_gfx#49 ← phi( main::@31/(byte*) current_piece_gfx#9 main::@33/(byte*) current_piece_gfx#66 ) @@ -1878,7 +2002,7 @@ main::@19: scope:[main] from main::@31 (byte) current_movedown_counter#40 ← phi( main::@31/(byte) current_movedown_counter#31 ) (byte) keyboard_modifiers#48 ← phi( main::@31/(byte) keyboard_modifiers#37 ) (byte) keyboard_events_size#60 ← phi( main::@31/(byte) keyboard_events_size#43 ) - (byte) current_piece_color#68 ← phi( main::@31/(byte) current_piece_color#50 ) + (byte) current_piece_char#68 ← phi( main::@31/(byte) current_piece_char#50 ) (byte) current_orientation#70 ← phi( main::@31/(byte) current_orientation#9 ) (byte*) current_piece#64 ← phi( main::@31/(byte*) current_piece#51 ) (byte*) current_piece_gfx#80 ← phi( main::@31/(byte*) current_piece_gfx#9 ) @@ -1890,7 +2014,7 @@ main::@32: scope:[main] from main::@19 (byte) current_movedown_counter#36 ← phi( main::@19/(byte) current_movedown_counter#40 ) (byte) keyboard_modifiers#44 ← phi( main::@19/(byte) keyboard_modifiers#48 ) (byte) keyboard_events_size#53 ← phi( main::@19/(byte) keyboard_events_size#60 ) - (byte) current_piece_color#61 ← phi( main::@19/(byte) current_piece_color#68 ) + (byte) current_piece_char#61 ← phi( main::@19/(byte) current_piece_char#68 ) (byte) current_orientation#65 ← phi( main::@19/(byte) current_orientation#70 ) (byte*) current_piece#59 ← phi( main::@19/(byte*) current_piece#64 ) (byte*) current_piece_gfx#67 ← phi( main::@19/(byte*) current_piece_gfx#80 ) @@ -1902,7 +2026,7 @@ main::@33: scope:[main] from main::@32 (byte) current_movedown_counter#32 ← phi( main::@32/(byte) current_movedown_counter#36 ) (byte) keyboard_modifiers#38 ← phi( main::@32/(byte) keyboard_modifiers#44 ) (byte) keyboard_events_size#44 ← phi( main::@32/(byte) keyboard_events_size#53 ) - (byte) current_piece_color#51 ← phi( main::@32/(byte) current_piece_color#61 ) + (byte) current_piece_char#51 ← phi( main::@32/(byte) current_piece_char#61 ) (byte) current_ypos#59 ← phi( main::@32/(byte) current_ypos#25 ) (byte) current_xpos#79 ← phi( main::@32/(byte) current_xpos#67 ) (byte*) current_piece_gfx#66 ← phi( main::@32/(byte*) current_piece_gfx#67 ) @@ -1913,7 +2037,7 @@ main::@return: scope:[main] from main::@1 (byte) current_movedown_counter#12 ← phi( main::@1/(byte) current_movedown_counter#19 ) (byte) keyboard_modifiers#16 ← phi( main::@1/(byte) keyboard_modifiers#24 ) (byte) keyboard_events_size#19 ← phi( main::@1/(byte) keyboard_events_size#27 ) - (byte) current_piece_color#16 ← phi( main::@1/(byte) current_piece_color#25 ) + (byte) current_piece_char#16 ← phi( main::@1/(byte) current_piece_char#25 ) (byte) current_ypos#22 ← phi( main::@1/(byte) current_ypos#38 ) (byte) current_xpos#28 ← phi( main::@1/(byte) current_xpos#46 ) (byte*) current_piece_gfx#21 ← phi( main::@1/(byte*) current_piece_gfx#35 ) @@ -1924,45 +2048,45 @@ main::@return: scope:[main] from main::@1 (byte*) current_piece_gfx#10 ← (byte*) current_piece_gfx#21 (byte) current_xpos#11 ← (byte) current_xpos#28 (byte) current_ypos#8 ← (byte) current_ypos#22 - (byte) current_piece_color#7 ← (byte) current_piece_color#16 + (byte) current_piece_char#7 ← (byte) current_piece_char#16 (byte) keyboard_events_size#8 ← (byte) keyboard_events_size#19 (byte) keyboard_modifiers#8 ← (byte) keyboard_modifiers#16 (byte) current_movedown_counter#5 ← (byte) current_movedown_counter#12 return to:@return -@26: scope:[] from @20 - (byte) current_movedown_counter#20 ← phi( @20/(byte) current_movedown_counter#26 ) - (byte) keyboard_modifiers#25 ← phi( @20/(byte) keyboard_modifiers#32 ) - (byte) keyboard_events_size#28 ← phi( @20/(byte) keyboard_events_size#35 ) - (byte) current_piece_color#26 ← phi( @20/(byte) current_piece_color#37 ) - (byte) current_ypos#39 ← phi( @20/(byte) current_ypos#50 ) - (byte) current_xpos#47 ← phi( @20/(byte) current_xpos#65 ) - (byte*) current_piece_gfx#36 ← phi( @20/(byte*) current_piece_gfx#52 ) - (byte) current_orientation#40 ← phi( @20/(byte) current_orientation#50 ) - (byte*) current_piece#29 ← phi( @20/(byte*) current_piece#41 ) +@27: scope:[] from @21 + (byte) current_movedown_counter#20 ← phi( @21/(byte) current_movedown_counter#26 ) + (byte) keyboard_modifiers#25 ← phi( @21/(byte) keyboard_modifiers#32 ) + (byte) keyboard_events_size#28 ← phi( @21/(byte) keyboard_events_size#35 ) + (byte) current_piece_char#26 ← phi( @21/(byte) current_piece_char#37 ) + (byte) current_ypos#39 ← phi( @21/(byte) current_ypos#50 ) + (byte) current_xpos#47 ← phi( @21/(byte) current_xpos#65 ) + (byte*) current_piece_gfx#36 ← phi( @21/(byte*) current_piece_gfx#52 ) + (byte) current_orientation#40 ← phi( @21/(byte) current_orientation#50 ) + (byte*) current_piece#29 ← phi( @21/(byte*) current_piece#41 ) call main - to:@27 -@27: scope:[] from @26 - (byte) current_movedown_counter#13 ← phi( @26/(byte) current_movedown_counter#5 ) - (byte) keyboard_modifiers#17 ← phi( @26/(byte) keyboard_modifiers#8 ) - (byte) keyboard_events_size#20 ← phi( @26/(byte) keyboard_events_size#8 ) - (byte) current_piece_color#17 ← phi( @26/(byte) current_piece_color#7 ) - (byte) current_ypos#23 ← phi( @26/(byte) current_ypos#8 ) - (byte) current_xpos#29 ← phi( @26/(byte) current_xpos#11 ) - (byte*) current_piece_gfx#22 ← phi( @26/(byte*) current_piece_gfx#10 ) - (byte) current_orientation#25 ← phi( @26/(byte) current_orientation#10 ) - (byte*) current_piece#17 ← phi( @26/(byte*) current_piece#7 ) + to:@28 +@28: scope:[] from @27 + (byte) current_movedown_counter#13 ← phi( @27/(byte) current_movedown_counter#5 ) + (byte) keyboard_modifiers#17 ← phi( @27/(byte) keyboard_modifiers#8 ) + (byte) keyboard_events_size#20 ← phi( @27/(byte) keyboard_events_size#8 ) + (byte) current_piece_char#17 ← phi( @27/(byte) current_piece_char#7 ) + (byte) current_ypos#23 ← phi( @27/(byte) current_ypos#8 ) + (byte) current_xpos#29 ← phi( @27/(byte) current_xpos#11 ) + (byte*) current_piece_gfx#22 ← phi( @27/(byte*) current_piece_gfx#10 ) + (byte) current_orientation#25 ← phi( @27/(byte) current_orientation#10 ) + (byte*) current_piece#17 ← phi( @27/(byte*) current_piece#7 ) (byte*) current_piece#8 ← (byte*) current_piece#17 (byte) current_orientation#11 ← (byte) current_orientation#25 (byte*) current_piece_gfx#11 ← (byte*) current_piece_gfx#22 (byte) current_xpos#12 ← (byte) current_xpos#29 (byte) current_ypos#9 ← (byte) current_ypos#23 - (byte) current_piece_color#8 ← (byte) current_piece_color#17 + (byte) current_piece_char#8 ← (byte) current_piece_char#17 (byte) keyboard_events_size#9 ← (byte) keyboard_events_size#20 (byte) keyboard_modifiers#9 ← (byte) keyboard_modifiers#17 (byte) current_movedown_counter#6 ← (byte) current_movedown_counter#13 to:@end -@end: scope:[] from @27 +@end: scope:[] from @28 SYMBOL TABLE SSA (byte~) $0 @@ -1993,10 +2117,10 @@ SYMBOL TABLE SSA (byte/signed word/word/dword/signed dword/signed byte~) $9 (label) @12 (label) @14 -(label) @17 -(label) @20 -(label) @26 +(label) @18 +(label) @21 (label) @27 +(label) @28 (label) @5 (label) @9 (label) @begin @@ -2237,8 +2361,8 @@ SYMBOL TABLE SSA (byte) ORANGE#0 (word[]) PIECES (word[]) PIECES#0 -(byte[]) PIECES_COLORS -(byte[]) PIECES_COLORS#0 +(byte[]) PIECES_CHARS +(byte[]) PIECES_CHARS#0 (byte[$17]) PIECE_I (byte[$17]) PIECE_I#0 (byte[$13]) PIECE_J @@ -2263,6 +2387,10 @@ SYMBOL TABLE SSA (byte) PLAYFIELD_LINES#0 (byte*) PLAYFIELD_SCREEN (byte*) PLAYFIELD_SCREEN#0 +(byte*) PLAYFIELD_SCREEN_ORIGINAL +(byte*) PLAYFIELD_SCREEN_ORIGINAL#0 +(byte) PLAYFIELD_SCREEN_ORIGINAL_WIDTH +(byte) PLAYFIELD_SCREEN_ORIGINAL_WIDTH#0 (byte*) PLAYFIELD_SPRITES (byte*) PLAYFIELD_SPRITES#0 (byte*) PLAYFIELD_SPRITE_PTRS @@ -2558,80 +2686,80 @@ SYMBOL TABLE SSA (byte*) current_piece#7 (byte*) current_piece#8 (byte*) current_piece#9 -(byte) current_piece_color -(byte) current_piece_color#0 -(byte) current_piece_color#1 -(byte) current_piece_color#10 -(byte) current_piece_color#11 -(byte) current_piece_color#12 -(byte) current_piece_color#13 -(byte) current_piece_color#14 -(byte) current_piece_color#15 -(byte) current_piece_color#16 -(byte) current_piece_color#17 -(byte) current_piece_color#18 -(byte) current_piece_color#19 -(byte) current_piece_color#2 -(byte) current_piece_color#20 -(byte) current_piece_color#21 -(byte) current_piece_color#22 -(byte) current_piece_color#23 -(byte) current_piece_color#24 -(byte) current_piece_color#25 -(byte) current_piece_color#26 -(byte) current_piece_color#27 -(byte) current_piece_color#28 -(byte) current_piece_color#29 -(byte) current_piece_color#3 -(byte) current_piece_color#30 -(byte) current_piece_color#31 -(byte) current_piece_color#32 -(byte) current_piece_color#33 -(byte) current_piece_color#34 -(byte) current_piece_color#35 -(byte) current_piece_color#36 -(byte) current_piece_color#37 -(byte) current_piece_color#38 -(byte) current_piece_color#39 -(byte) current_piece_color#4 -(byte) current_piece_color#40 -(byte) current_piece_color#41 -(byte) current_piece_color#42 -(byte) current_piece_color#43 -(byte) current_piece_color#44 -(byte) current_piece_color#45 -(byte) current_piece_color#46 -(byte) current_piece_color#47 -(byte) current_piece_color#48 -(byte) current_piece_color#49 -(byte) current_piece_color#5 -(byte) current_piece_color#50 -(byte) current_piece_color#51 -(byte) current_piece_color#52 -(byte) current_piece_color#53 -(byte) current_piece_color#54 -(byte) current_piece_color#55 -(byte) current_piece_color#56 -(byte) current_piece_color#57 -(byte) current_piece_color#58 -(byte) current_piece_color#59 -(byte) current_piece_color#6 -(byte) current_piece_color#60 -(byte) current_piece_color#61 -(byte) current_piece_color#62 -(byte) current_piece_color#63 -(byte) current_piece_color#64 -(byte) current_piece_color#65 -(byte) current_piece_color#66 -(byte) current_piece_color#67 -(byte) current_piece_color#68 -(byte) current_piece_color#69 -(byte) current_piece_color#7 -(byte) current_piece_color#70 -(byte) current_piece_color#71 -(byte) current_piece_color#72 -(byte) current_piece_color#8 -(byte) current_piece_color#9 +(byte) current_piece_char +(byte) current_piece_char#0 +(byte) current_piece_char#1 +(byte) current_piece_char#10 +(byte) current_piece_char#11 +(byte) current_piece_char#12 +(byte) current_piece_char#13 +(byte) current_piece_char#14 +(byte) current_piece_char#15 +(byte) current_piece_char#16 +(byte) current_piece_char#17 +(byte) current_piece_char#18 +(byte) current_piece_char#19 +(byte) current_piece_char#2 +(byte) current_piece_char#20 +(byte) current_piece_char#21 +(byte) current_piece_char#22 +(byte) current_piece_char#23 +(byte) current_piece_char#24 +(byte) current_piece_char#25 +(byte) current_piece_char#26 +(byte) current_piece_char#27 +(byte) current_piece_char#28 +(byte) current_piece_char#29 +(byte) current_piece_char#3 +(byte) current_piece_char#30 +(byte) current_piece_char#31 +(byte) current_piece_char#32 +(byte) current_piece_char#33 +(byte) current_piece_char#34 +(byte) current_piece_char#35 +(byte) current_piece_char#36 +(byte) current_piece_char#37 +(byte) current_piece_char#38 +(byte) current_piece_char#39 +(byte) current_piece_char#4 +(byte) current_piece_char#40 +(byte) current_piece_char#41 +(byte) current_piece_char#42 +(byte) current_piece_char#43 +(byte) current_piece_char#44 +(byte) current_piece_char#45 +(byte) current_piece_char#46 +(byte) current_piece_char#47 +(byte) current_piece_char#48 +(byte) current_piece_char#49 +(byte) current_piece_char#5 +(byte) current_piece_char#50 +(byte) current_piece_char#51 +(byte) current_piece_char#52 +(byte) current_piece_char#53 +(byte) current_piece_char#54 +(byte) current_piece_char#55 +(byte) current_piece_char#56 +(byte) current_piece_char#57 +(byte) current_piece_char#58 +(byte) current_piece_char#59 +(byte) current_piece_char#6 +(byte) current_piece_char#60 +(byte) current_piece_char#61 +(byte) current_piece_char#62 +(byte) current_piece_char#63 +(byte) current_piece_char#64 +(byte) current_piece_char#65 +(byte) current_piece_char#66 +(byte) current_piece_char#67 +(byte) current_piece_char#68 +(byte) current_piece_char#69 +(byte) current_piece_char#7 +(byte) current_piece_char#70 +(byte) current_piece_char#71 +(byte) current_piece_char#72 +(byte) current_piece_char#8 +(byte) current_piece_char#9 (byte*) current_piece_gfx (byte*) current_piece_gfx#0 (byte*) current_piece_gfx#1 @@ -2900,16 +3028,13 @@ SYMBOL TABLE SSA (word) fill::size (word) fill::size#0 (word) fill::size#1 -(word) fill::size#2 (byte*) fill::start (byte*) fill::start#0 (byte*) fill::start#1 -(byte*) fill::start#2 (byte) fill::val (byte) fill::val#0 (byte) fill::val#1 (byte) fill::val#2 -(byte) fill::val#3 (byte[]) keyboard_char_keycodes (byte[]) keyboard_char_keycodes#0 (byte()) keyboard_event_get() @@ -3792,24 +3917,30 @@ SYMBOL TABLE SSA (byte) render_current::ypos2#8 (byte) render_current::ypos2#9 (void()) render_init() -(byte*~) render_init::$10 +(byte~) render_init::$1 +(byte~) render_init::$10 (bool~) render_init::$11 -(bool~) render_init::$12 -(byte*~) render_init::$2 -(byte*~) render_init::$3 -(byte/signed word/word/dword/signed dword~) render_init::$4 -(byte~) render_init::$5 -(bool~) render_init::$6 +(byte*~) render_init::$12 +(byte/signed word/word/dword/signed dword~) render_init::$13 +(byte/signed word/word/dword/signed dword~) render_init::$14 +(byte*~) render_init::$15 +(bool~) render_init::$16 +(bool~) render_init::$17 +(byte~) render_init::$2 +(byte~) render_init::$3 +(byte/word/dword~) render_init::$4 (byte*~) render_init::$7 -(byte/signed word/word/dword/signed dword~) render_init::$8 +(byte*~) render_init::$8 (byte/signed word/word/dword/signed dword~) render_init::$9 (label) render_init::@1 +(label) render_init::@10 (label) render_init::@2 (label) render_init::@3 (label) render_init::@4 (label) render_init::@5 (label) render_init::@7 (label) render_init::@8 +(label) render_init::@9 (label) render_init::@return (byte) render_init::c (byte) render_init::c#0 @@ -3835,6 +3966,62 @@ SYMBOL TABLE SSA (byte*) render_init::line#2 (byte*) render_init::line#3 (byte*) render_init::line#4 +(label) render_init::toD0181 +(word~) render_init::toD0181_$0 +(word) render_init::toD0181_$0#0 +(word~) render_init::toD0181_$1 +(word) render_init::toD0181_$1#0 +(word~) render_init::toD0181_$2 +(word) render_init::toD0181_$2#0 +(byte~) render_init::toD0181_$3 +(byte) render_init::toD0181_$3#0 +(word~) render_init::toD0181_$4 +(word) render_init::toD0181_$4#0 +(byte~) render_init::toD0181_$5 +(byte) render_init::toD0181_$5#0 +(byte~) render_init::toD0181_$6 +(byte) render_init::toD0181_$6#0 +(byte~) render_init::toD0181_$7 +(byte) render_init::toD0181_$7#0 +(byte~) render_init::toD0181_$8 +(byte) render_init::toD0181_$8#0 +(label) render_init::toD0181_@return +(byte*) render_init::toD0181_gfx +(byte*) render_init::toD0181_gfx#0 +(byte*) render_init::toD0181_gfx#1 +(byte) render_init::toD0181_return +(byte) render_init::toD0181_return#0 +(byte) render_init::toD0181_return#1 +(byte) render_init::toD0181_return#2 +(byte) render_init::toD0181_return#3 +(byte*) render_init::toD0181_screen +(byte*) render_init::toD0181_screen#0 +(byte*) render_init::toD0181_screen#1 +(label) render_init::vicSelectGfxBank1 +(byte~) render_init::vicSelectGfxBank1_$0 +(byte) render_init::vicSelectGfxBank1_$0#0 +(label) render_init::vicSelectGfxBank1_@1 +(byte*) render_init::vicSelectGfxBank1_gfx +(byte*) render_init::vicSelectGfxBank1_gfx#0 +(byte*) render_init::vicSelectGfxBank1_gfx#1 +(label) render_init::vicSelectGfxBank1_toDd001 +(word~) render_init::vicSelectGfxBank1_toDd001_$0 +(word) render_init::vicSelectGfxBank1_toDd001_$0#0 +(byte~) render_init::vicSelectGfxBank1_toDd001_$1 +(byte) render_init::vicSelectGfxBank1_toDd001_$1#0 +(byte~) render_init::vicSelectGfxBank1_toDd001_$2 +(byte) render_init::vicSelectGfxBank1_toDd001_$2#0 +(byte/word/dword~) render_init::vicSelectGfxBank1_toDd001_$3 +(byte/word/dword) render_init::vicSelectGfxBank1_toDd001_$3#0 +(label) render_init::vicSelectGfxBank1_toDd001_@return +(byte*) render_init::vicSelectGfxBank1_toDd001_gfx +(byte*) render_init::vicSelectGfxBank1_toDd001_gfx#0 +(byte*) render_init::vicSelectGfxBank1_toDd001_gfx#1 +(byte) render_init::vicSelectGfxBank1_toDd001_return +(byte) render_init::vicSelectGfxBank1_toDd001_return#0 +(byte) render_init::vicSelectGfxBank1_toDd001_return#1 +(byte) render_init::vicSelectGfxBank1_toDd001_return#2 +(byte) render_init::vicSelectGfxBank1_toDd001_return#3 (void()) render_playfield() (byte/signed word/word/dword/signed dword~) render_playfield::$0 (byte~) render_playfield::$1 @@ -3865,6 +4052,62 @@ SYMBOL TABLE SSA (byte*) render_playfield::line#0 (byte*) render_playfield::line#1 (byte*) render_playfield::line#2 +(void()) render_screen_original((byte*) render_screen_original::screen) +(byte/signed byte/word/signed word/dword/signed dword~) render_screen_original::$0 +(byte*~) render_screen_original::$1 +(bool~) render_screen_original::$2 +(byte/signed word/word/dword/signed dword~) render_screen_original::$3 +(bool~) render_screen_original::$4 +(bool~) render_screen_original::$5 +(bool~) render_screen_original::$6 +(label) render_screen_original::@1 +(label) render_screen_original::@2 +(label) render_screen_original::@3 +(label) render_screen_original::@4 +(label) render_screen_original::@7 +(label) render_screen_original::@return +(byte) render_screen_original::SPACE +(byte) render_screen_original::SPACE#0 +(byte) render_screen_original::SPACE#1 +(byte) render_screen_original::SPACE#2 +(byte) render_screen_original::SPACE#3 +(byte) render_screen_original::SPACE#4 +(byte) render_screen_original::SPACE#5 +(byte*) render_screen_original::orig +(byte*) render_screen_original::orig#0 +(byte*) render_screen_original::orig#1 +(byte*) render_screen_original::orig#2 +(byte*) render_screen_original::orig#3 +(byte*) render_screen_original::orig#4 +(byte*) render_screen_original::orig#5 +(byte*) render_screen_original::orig#6 +(byte*) render_screen_original::screen +(byte*) render_screen_original::screen#0 +(byte*) render_screen_original::screen#1 +(byte*) render_screen_original::screen#2 +(byte*) render_screen_original::screen#3 +(byte*) render_screen_original::screen#4 +(byte*) render_screen_original::screen#5 +(byte*) render_screen_original::screen#6 +(byte*) render_screen_original::screen#7 +(byte*) render_screen_original::screen#8 +(byte*) render_screen_original::screen#9 +(byte) render_screen_original::x +(byte) render_screen_original::x#0 +(byte) render_screen_original::x#1 +(byte) render_screen_original::x#2 +(byte) render_screen_original::x#3 +(byte) render_screen_original::x#4 +(byte) render_screen_original::x#5 +(byte) render_screen_original::x#6 +(byte) render_screen_original::y +(byte) render_screen_original::y#0 +(byte) render_screen_original::y#1 +(byte) render_screen_original::y#2 +(byte) render_screen_original::y#3 +(byte) render_screen_original::y#4 +(byte) render_screen_original::y#5 +(byte) render_screen_original::y#6 (byte*[$3]) screen_lines (byte*[$3]) screen_lines#0 (byte()) sid_rnd() @@ -3907,7 +4150,7 @@ Inversing boolean not (bool~) play_remove_lines::$10 ← (byte) play_remove_line Inversing boolean not (bool~) main::$14 ← (byte) main::render#3 == (byte/signed byte/word/signed word/dword/signed dword) 0 from (bool~) main::$13 ← (byte) main::render#3 != (byte/signed byte/word/signed word/dword/signed dword) 0 Successful SSA optimization Pass2UnaryNotSimplification Alias (byte*) fill::end#0 = (byte*~) fill::$0 -Alias (byte*) fill::addr#0 = (byte*) fill::start#2 +Alias (byte*) fill::addr#0 = (byte*) fill::start#1 Alias (byte) keyboard_matrix_read::return#0 = (byte) keyboard_matrix_read::row_pressed_bits#0 (byte~) keyboard_matrix_read::$0 (byte) keyboard_matrix_read::return#3 (byte) keyboard_matrix_read::return#1 Alias (byte) KEY_MODIFIER_SHIFT#0 = (byte~) $0 Alias (byte) keyboard_matrix_read::return#2 = (byte) keyboard_matrix_read::return#4 @@ -3952,10 +4195,20 @@ Alias (byte) keyboard_events_size#0 = (byte) keyboard_events_size#57 (byte) keyb Alias (byte) keyboard_modifiers#0 = (byte) keyboard_modifiers#45 (byte) keyboard_modifiers#39 (byte) keyboard_modifiers#33 (byte) keyboard_modifiers#32 (byte) keyboard_modifiers#25 Alias (byte) sid_rnd::return#0 = (byte) sid_rnd::return#3 (byte) sid_rnd::return#1 Alias (byte*) PLAYFIELD_SPRITE_PTRS#0 = (byte*~) $1 -Alias (byte*) render_init::li#0 = (byte*~) render_init::$3 -Alias (byte*) render_init::line#0 = (byte*~) render_init::$7 +Alias (byte*) render_init::vicSelectGfxBank1_gfx#0 = (byte*) render_init::vicSelectGfxBank1_gfx#1 (byte*) render_init::vicSelectGfxBank1_toDd001_gfx#0 (byte*) render_init::vicSelectGfxBank1_toDd001_gfx#1 +Alias (byte) render_init::vicSelectGfxBank1_toDd001_return#0 = (byte/word/dword) render_init::vicSelectGfxBank1_toDd001_$3#0 (byte) render_init::vicSelectGfxBank1_toDd001_return#2 (byte) render_init::vicSelectGfxBank1_toDd001_return#1 (byte) render_init::vicSelectGfxBank1_toDd001_return#3 (byte) render_init::vicSelectGfxBank1_$0#0 +Alias (byte*) render_init::toD0181_screen#0 = (byte*) render_init::toD0181_screen#1 +Alias (byte*) render_init::toD0181_gfx#0 = (byte*) render_init::toD0181_gfx#1 +Alias (byte) render_init::toD0181_return#0 = (byte) render_init::toD0181_$8#0 (byte) render_init::toD0181_return#2 (byte) render_init::toD0181_return#1 (byte) render_init::toD0181_return#3 (byte~) render_init::$1 +Alias (byte*) render_init::li#0 = (byte*~) render_init::$8 +Alias (byte*) render_init::line#0 = (byte*~) render_init::$12 Alias (byte*) render_init::line#2 = (byte*) render_init::line#3 Alias (byte) render_init::l#2 = (byte) render_init::l#3 +Alias (byte*) render_screen_original::orig#0 = (byte*~) render_screen_original::$1 +Alias (byte) render_screen_original::y#2 = (byte) render_screen_original::y#3 +Alias (byte) render_screen_original::SPACE#2 = (byte) render_screen_original::SPACE#5 +Alias (byte*) render_screen_original::screen#3 = (byte*) render_screen_original::screen#9 +Alias (byte*) render_screen_original::orig#5 = (byte*) render_screen_original::orig#6 Alias (byte) render_playfield::l#3 = (byte) render_playfield::l#4 Alias (byte) render_playfield::i#1 = (byte) render_playfield::i#4 Alias (byte) render_current::ypos2#0 = (byte~) render_current::$0 @@ -3964,9 +4217,9 @@ Alias (byte) current_xpos#13 = (byte) current_xpos#30 Alias (byte*) current_piece_gfx#24 = (byte*) current_piece_gfx#37 Alias (byte) render_current::i#4 = (byte) render_current::i#5 Alias (byte) render_current::l#3 = (byte) render_current::l#8 -Alias (byte) current_piece_color#39 = (byte) current_piece_color#52 +Alias (byte) current_piece_char#39 = (byte) current_piece_char#52 Alias (byte) render_current::xpos#3 = (byte) render_current::xpos#5 (byte) render_current::xpos#6 (byte) render_current::xpos#4 -Alias (byte) current_piece_color#18 = (byte) current_piece_color#27 (byte) current_piece_color#53 (byte) current_piece_color#9 +Alias (byte) current_piece_char#18 = (byte) current_piece_char#27 (byte) current_piece_char#53 (byte) current_piece_char#9 Alias (byte*) render_current::screen_line#1 = (byte*) render_current::screen_line#2 (byte*) render_current::screen_line#3 (byte*) render_current::screen_line#5 Alias (byte) render_current::c#3 = (byte) render_current::c#6 (byte) render_current::c#4 (byte) render_current::c#5 Alias (byte) render_current::ypos2#6 = (byte) render_current::ypos2#9 (byte) render_current::ypos2#7 (byte) render_current::ypos2#8 @@ -3977,7 +4230,7 @@ Alias (byte) current_xpos#80 = (byte) current_xpos#88 (byte) current_xpos#81 (by Alias (byte*) current_piece_gfx#0 = (byte*) current_piece_gfx#62 (byte*) current_piece_gfx#52 (byte*) current_piece_gfx#36 Alias (byte) current_xpos#0 = (byte) current_xpos#73 (byte) current_xpos#65 (byte) current_xpos#47 Alias (byte) current_ypos#0 = (byte) current_ypos#55 (byte) current_ypos#50 (byte) current_ypos#39 -Alias (byte) current_piece_color#0 = (byte) current_piece_color#44 (byte) current_piece_color#37 (byte) current_piece_color#26 +Alias (byte) current_piece_char#0 = (byte) current_piece_char#44 (byte) current_piece_char#37 (byte) current_piece_char#26 Alias (byte) keyboard_event_pressed::return#12 = (byte) keyboard_event_pressed::return#6 Alias (byte) current_movedown_counter#15 = (byte) current_movedown_counter#16 (byte) current_movedown_counter#21 (byte) current_movedown_counter#9 (byte) current_movedown_counter#17 Alias (byte) play_move_down::movedown#10 = (byte) play_move_down::movedown#12 (byte) play_move_down::movedown#8 (byte) play_move_down::movedown#11 (byte) play_move_down::movedown#5 @@ -3986,7 +4239,7 @@ Alias (byte) current_xpos#69 = (byte) current_xpos#70 (byte) current_xpos#83 (by Alias (byte) current_orientation#51 = (byte) current_orientation#52 (byte) current_orientation#61 (byte) current_orientation#62 (byte) current_orientation#53 Alias (byte*) current_piece#53 = (byte*) current_piece#54 (byte*) current_piece#60 (byte*) current_piece#61 (byte*) current_piece#55 Alias (byte*) current_piece_gfx#68 = (byte*) current_piece_gfx#69 (byte*) current_piece_gfx#76 (byte*) current_piece_gfx#77 (byte*) current_piece_gfx#70 -Alias (byte) current_piece_color#54 = (byte) current_piece_color#55 (byte) current_piece_color#64 (byte) current_piece_color#65 (byte) current_piece_color#56 +Alias (byte) current_piece_char#54 = (byte) current_piece_char#55 (byte) current_piece_char#64 (byte) current_piece_char#65 (byte) current_piece_char#56 Alias (byte) play_move_down::movedown#0 = (byte) play_move_down::movedown#4 Alias (byte) current_movedown_counter#1 = (byte) current_movedown_counter#27 Alias (byte) current_ypos#64 = (byte) current_ypos#65 @@ -3994,7 +4247,7 @@ Alias (byte) current_xpos#89 = (byte) current_xpos#90 Alias (byte) current_orientation#66 = (byte) current_orientation#67 Alias (byte*) current_piece#65 = (byte*) current_piece#66 Alias (byte*) current_piece_gfx#81 = (byte*) current_piece_gfx#82 -Alias (byte) current_piece_color#69 = (byte) current_piece_color#70 +Alias (byte) current_piece_char#69 = (byte) current_piece_char#70 Alias (byte) play_move_down::movedown#7 = (byte) play_move_down::movedown#9 Alias (byte) current_ypos#40 = (byte) current_ypos#41 Alias (byte) current_xpos#50 = (byte) current_xpos#51 @@ -4002,14 +4255,14 @@ Alias (byte) current_orientation#41 = (byte) current_orientation#42 Alias (byte) current_movedown_counter#28 = (byte) current_movedown_counter#8 Alias (byte*) current_piece#42 = (byte*) current_piece#43 Alias (byte*) current_piece_gfx#56 = (byte*) current_piece_gfx#57 -Alias (byte) current_piece_color#40 = (byte) current_piece_color#41 +Alias (byte) current_piece_char#40 = (byte) current_piece_char#41 Alias (byte) current_movedown_counter#18 = (byte) current_movedown_counter#22 Alias (byte) current_ypos#11 = (byte) current_ypos#29 (byte) current_ypos#26 (byte) current_ypos#27 (byte) current_ypos#12 (byte) current_ypos#35 (byte) current_ypos#42 (byte) current_ypos#28 Alias (byte*) current_piece#18 = (byte*) current_piece#19 (byte*) current_piece#30 (byte*) current_piece#22 (byte*) current_piece#44 (byte*) current_piece#32 (byte*) current_piece#45 (byte*) current_piece#31 Alias (byte) current_orientation#12 = (byte) current_orientation#28 (byte) current_orientation#26 (byte) current_orientation#54 (byte) current_orientation#44 (byte) current_orientation#55 (byte) current_orientation#43 (byte) current_orientation#27 Alias (byte*) current_piece_gfx#25 = (byte*) current_piece_gfx#26 (byte*) current_piece_gfx#40 (byte*) current_piece_gfx#71 (byte*) current_piece_gfx#58 (byte*) current_piece_gfx#42 (byte*) current_piece_gfx#59 (byte*) current_piece_gfx#41 Alias (byte) current_xpos#14 = (byte) current_xpos#33 (byte) current_xpos#31 (byte) current_xpos#72 (byte) current_xpos#53 (byte) current_xpos#59 (byte) current_xpos#52 (byte) current_xpos#32 -Alias (byte) current_piece_color#19 = (byte) current_piece_color#20 (byte) current_piece_color#28 (byte) current_piece_color#57 (byte) current_piece_color#42 (byte) current_piece_color#30 (byte) current_piece_color#43 (byte) current_piece_color#29 +Alias (byte) current_piece_char#19 = (byte) current_piece_char#20 (byte) current_piece_char#28 (byte) current_piece_char#57 (byte) current_piece_char#42 (byte) current_piece_char#30 (byte) current_piece_char#43 (byte) current_piece_char#29 Alias (byte) play_collision::ypos#0 = (byte/signed word/word/dword/signed dword~) play_move_down::$11 Alias (byte) play_collision::return#0 = (byte) play_collision::return#10 Alias (byte*) current_piece#1 = (byte*) current_piece#9 @@ -4017,7 +4270,7 @@ Alias (byte) current_orientation#1 = (byte) current_orientation#13 Alias (byte*) current_piece_gfx#1 = (byte*) current_piece_gfx#13 Alias (byte) current_xpos#1 = (byte) current_xpos#15 Alias (byte) current_ypos#13 = (byte) current_ypos#2 -Alias (byte) current_piece_color#1 = (byte) current_piece_color#10 +Alias (byte) current_piece_char#1 = (byte) current_piece_char#10 Alias (byte) play_move_down::return#2 = (byte) play_move_down::return#4 Alias (byte) current_movedown_counter#10 = (byte) current_movedown_counter#3 Alias (byte) current_ypos#14 = (byte) current_ypos#3 @@ -4025,7 +4278,7 @@ Alias (byte*) current_piece#10 = (byte*) current_piece#2 Alias (byte) current_orientation#14 = (byte) current_orientation#2 Alias (byte*) current_piece_gfx#14 = (byte*) current_piece_gfx#2 Alias (byte) current_xpos#16 = (byte) current_xpos#2 -Alias (byte) current_piece_color#11 = (byte) current_piece_color#2 +Alias (byte) current_piece_char#11 = (byte) current_piece_char#2 Alias (byte) current_xpos#17 = (byte) current_xpos#35 (byte) current_xpos#39 (byte) current_xpos#36 (byte) current_xpos#54 (byte) current_xpos#18 (byte) current_xpos#37 (byte) current_xpos#55 (byte) current_xpos#19 (byte) current_xpos#56 (byte) current_xpos#21 Alias (byte) current_ypos#15 = (byte) current_ypos#31 (byte) current_ypos#32 (byte) current_ypos#16 Alias (byte) current_orientation#15 = (byte) current_orientation#30 (byte) current_orientation#31 (byte) current_orientation#16 @@ -4075,7 +4328,7 @@ Alias (byte) play_collision::xpos#6 = (byte) play_collision::xpos#7 Alias (byte*) play_collision::piece_gfx#3 = (byte*) play_collision::piece_gfx#4 Alias (byte) play_collision::i#4 = (byte) play_collision::i#5 Alias (byte) play_lock_current::ypos2#0 = (byte~) play_lock_current::$0 -Alias (byte) current_piece_color#12 = (byte) current_piece_color#22 +Alias (byte) current_piece_char#12 = (byte) current_piece_char#22 Alias (byte*) play_lock_current::playfield_line#1 = (byte*) play_lock_current::playfield_line#2 Alias (byte) play_lock_current::col#3 = (byte) play_lock_current::col#4 Alias (byte) play_lock_current::c#3 = (byte) play_lock_current::c#4 @@ -4089,7 +4342,7 @@ Alias (byte) play_lock_current::l#2 = (byte) play_lock_current::l#3 Alias (byte) current_xpos#43 = (byte) current_xpos#60 Alias (byte*) current_piece_gfx#31 = (byte*) current_piece_gfx#46 Alias (byte) play_lock_current::i#4 = (byte) play_lock_current::i#5 -Alias (byte) current_piece_color#32 = (byte) current_piece_color#46 +Alias (byte) current_piece_char#32 = (byte) current_piece_char#46 Alias (byte) sid_rnd::return#2 = (byte) sid_rnd::return#4 Alias (byte) play_spawn_current::piece_idx#1 = (byte~) play_spawn_current::$2 Alias (byte) play_spawn_current::piece_idx#2 = (byte) play_spawn_current::piece_idx#3 @@ -4098,7 +4351,7 @@ Alias (byte*) current_piece#13 = (byte*) current_piece#3 (byte*) current_piece#4 Alias (byte) current_orientation#20 = (byte) current_orientation#5 (byte) current_orientation#6 Alias (byte) current_xpos#24 = (byte) current_xpos#6 (byte) current_xpos#7 Alias (byte) current_ypos#19 = (byte) current_ypos#4 (byte) current_ypos#5 -Alias (byte) current_piece_color#13 = (byte) current_piece_color#3 (byte) current_piece_color#4 +Alias (byte) current_piece_char#13 = (byte) current_piece_char#3 (byte) current_piece_char#4 Alias (byte) play_remove_lines::r#0 = (byte/signed word/word/dword/signed dword~) play_remove_lines::$1 Alias (byte) play_remove_lines::w#0 = (byte/signed word/word/dword/signed dword~) play_remove_lines::$3 Alias (byte) play_remove_lines::c#0 = (byte) play_remove_lines::c#2 @@ -4117,7 +4370,7 @@ Alias (byte) current_orientation#36 = (byte) current_orientation#57 (byte) curre Alias (byte*) current_piece_gfx#32 = (byte*) current_piece_gfx#63 (byte*) current_piece_gfx#74 (byte*) current_piece_gfx#48 Alias (byte) current_xpos#44 = (byte) current_xpos#76 (byte) current_xpos#85 (byte) current_xpos#61 Alias (byte) current_ypos#36 = (byte) current_ypos#56 (byte) current_ypos#62 (byte) current_ypos#45 -Alias (byte) current_piece_color#23 = (byte) current_piece_color#47 (byte) current_piece_color#58 (byte) current_piece_color#33 +Alias (byte) current_piece_char#23 = (byte) current_piece_char#47 (byte) current_piece_char#58 (byte) current_piece_char#33 Alias (byte) keyboard_events_size#33 = (byte) keyboard_events_size#67 (byte) keyboard_events_size#70 (byte) keyboard_events_size#65 (byte) keyboard_events_size#58 (byte) keyboard_events_size#49 (byte) keyboard_events_size#40 Alias (byte) keyboard_modifiers#30 = (byte) keyboard_modifiers#51 (byte) keyboard_modifiers#52 (byte) keyboard_modifiers#49 (byte) keyboard_modifiers#46 (byte) keyboard_modifiers#40 (byte) keyboard_modifiers#34 Alias (byte) current_movedown_counter#24 = (byte) current_movedown_counter#44 (byte) current_movedown_counter#45 (byte) current_movedown_counter#41 (byte) current_movedown_counter#37 (byte) current_movedown_counter#33 (byte) current_movedown_counter#29 @@ -4126,7 +4379,7 @@ Alias (byte) current_orientation#21 = (byte) current_orientation#7 (byte) curren Alias (byte*) current_piece_gfx#18 = (byte*) current_piece_gfx#7 (byte*) current_piece_gfx#64 (byte*) current_piece_gfx#50 Alias (byte) current_xpos#25 = (byte) current_xpos#8 (byte) current_xpos#66 (byte) current_xpos#63 Alias (byte) current_ypos#20 = (byte) current_ypos#6 (byte) current_ypos#24 (byte) current_ypos#47 -Alias (byte) current_piece_color#14 = (byte) current_piece_color#5 (byte) current_piece_color#48 (byte) current_piece_color#35 +Alias (byte) current_piece_char#14 = (byte) current_piece_char#5 (byte) current_piece_char#48 (byte) current_piece_char#35 Alias (byte) keyboard_events_size#19 = (byte) keyboard_events_size#50 (byte) keyboard_events_size#27 (byte) keyboard_events_size#8 Alias (byte) keyboard_modifiers#16 = (byte) keyboard_modifiers#41 (byte) keyboard_modifiers#24 (byte) keyboard_modifiers#8 Alias (byte) current_movedown_counter#12 = (byte) current_movedown_counter#42 (byte) current_movedown_counter#19 (byte) current_movedown_counter#5 @@ -4135,7 +4388,7 @@ Alias (byte*) current_piece#16 = (byte*) current_piece#67 (byte*) current_piece# Alias (byte) current_orientation#10 = (byte) current_orientation#71 (byte) current_orientation#39 (byte) current_orientation#24 Alias (byte*) current_piece_gfx#10 = (byte*) current_piece_gfx#83 (byte*) current_piece_gfx#35 (byte*) current_piece_gfx#21 Alias (byte) current_xpos#11 = (byte) current_xpos#93 (byte) current_xpos#46 (byte) current_xpos#28 -Alias (byte) current_piece_color#16 = (byte) current_piece_color#71 (byte) current_piece_color#25 (byte) current_piece_color#7 +Alias (byte) current_piece_char#16 = (byte) current_piece_char#71 (byte) current_piece_char#25 (byte) current_piece_char#7 Alias (byte) keyboard_events_size#41 = (byte) keyboard_events_size#51 Alias (byte) keyboard_modifiers#35 = (byte) keyboard_modifiers#42 Alias (byte) current_movedown_counter#38 = (byte) current_movedown_counter#43 @@ -4144,7 +4397,7 @@ Alias (byte*) current_piece#62 = (byte*) current_piece#68 Alias (byte) current_orientation#68 = (byte) current_orientation#72 Alias (byte*) current_piece_gfx#78 = (byte*) current_piece_gfx#84 Alias (byte) current_xpos#91 = (byte) current_xpos#94 -Alias (byte) current_piece_color#66 = (byte) current_piece_color#72 +Alias (byte) current_piece_char#66 = (byte) current_piece_char#72 Alias (byte) keyboard_events_size#26 = (byte) keyboard_events_size#42 (byte) keyboard_events_size#34 Alias (byte) keyboard_modifiers#23 = (byte) keyboard_modifiers#36 (byte) keyboard_modifiers#31 Alias (byte) current_movedown_counter#14 = (byte) current_movedown_counter#39 (byte) current_movedown_counter#34 (byte) current_movedown_counter#30 (byte) current_movedown_counter#25 @@ -4153,7 +4406,7 @@ Alias (byte*) current_piece#27 = (byte*) current_piece#63 (byte*) current_piece# Alias (byte) current_orientation#37 = (byte) current_orientation#69 (byte) current_orientation#64 (byte) current_orientation#59 (byte) current_orientation#49 Alias (byte*) current_piece_gfx#33 = (byte*) current_piece_gfx#79 (byte*) current_piece_gfx#75 (byte*) current_piece_gfx#65 (byte*) current_piece_gfx#51 Alias (byte) current_xpos#45 = (byte) current_xpos#92 (byte) current_xpos#86 (byte) current_xpos#77 (byte) current_xpos#64 -Alias (byte) current_piece_color#24 = (byte) current_piece_color#67 (byte) current_piece_color#59 (byte) current_piece_color#49 (byte) current_piece_color#36 +Alias (byte) current_piece_char#24 = (byte) current_piece_char#67 (byte) current_piece_char#59 (byte) current_piece_char#49 (byte) current_piece_char#36 Alias (byte) keyboard_events_size#17 = (byte) keyboard_events_size#6 Alias (byte) keyboard_modifiers#15 = (byte) keyboard_modifiers#7 (byte) keyboard_modifiers#50 (byte) keyboard_modifiers#47 (byte) keyboard_modifiers#43 (byte) keyboard_modifiers#37 (byte) keyboard_modifiers#48 (byte) keyboard_modifiers#44 (byte) keyboard_modifiers#38 Alias (byte) keyboard_event_get::return#3 = (byte) keyboard_event_get::return#5 @@ -4167,7 +4420,7 @@ Alias (byte*) current_piece#15 = (byte*) current_piece#6 (byte*) current_piece#5 Alias (byte) current_orientation#22 = (byte) current_orientation#8 (byte) current_orientation#38 Alias (byte*) current_piece_gfx#19 = (byte*) current_piece_gfx#8 (byte*) current_piece_gfx#34 Alias (byte) current_xpos#26 = (byte) current_xpos#9 -Alias (byte) current_piece_color#15 = (byte) current_piece_color#6 (byte) current_piece_color#60 (byte) current_piece_color#50 (byte) current_piece_color#68 (byte) current_piece_color#61 (byte) current_piece_color#51 +Alias (byte) current_piece_char#15 = (byte) current_piece_char#6 (byte) current_piece_char#60 (byte) current_piece_char#50 (byte) current_piece_char#68 (byte) current_piece_char#61 (byte) current_piece_char#51 Alias (byte) play_move_leftright::return#4 = (byte) play_move_leftright::return#6 Alias (byte) main::render#1 = (byte) main::render#5 Alias (byte) current_xpos#10 = (byte) current_xpos#27 (byte) current_xpos#78 (byte) current_xpos#87 (byte) current_xpos#67 (byte) current_xpos#79 @@ -4180,7 +4433,7 @@ Alias (byte) current_orientation#11 = (byte) current_orientation#25 Alias (byte*) current_piece_gfx#11 = (byte*) current_piece_gfx#22 Alias (byte) current_xpos#12 = (byte) current_xpos#29 Alias (byte) current_ypos#23 = (byte) current_ypos#9 -Alias (byte) current_piece_color#17 = (byte) current_piece_color#8 +Alias (byte) current_piece_char#17 = (byte) current_piece_char#8 Alias (byte) keyboard_events_size#20 = (byte) keyboard_events_size#9 Alias (byte) keyboard_modifiers#17 = (byte) keyboard_modifiers#9 Alias (byte) current_movedown_counter#13 = (byte) current_movedown_counter#6 @@ -4197,7 +4450,7 @@ Alias (byte) render_current::l#4 = (byte) render_current::l#5 Alias (byte*) current_piece_gfx#12 = (byte*) current_piece_gfx#23 Alias (byte) render_current::i#1 = (byte) render_current::i#3 Alias (byte) current_xpos#68 = (byte) current_xpos#80 -Alias (byte) current_piece_color#18 = (byte) current_piece_color#38 +Alias (byte) current_piece_char#18 = (byte) current_piece_char#38 Alias (byte*) render_current::screen_line#1 = (byte*) render_current::screen_line#4 Alias (byte) current_movedown_counter#1 = (byte) current_movedown_counter#15 (byte) current_movedown_counter#28 (byte) current_movedown_counter#18 Alias (byte) current_ypos#11 = (byte) current_ypos#51 (byte) current_ypos#64 (byte) current_ypos#40 @@ -4205,7 +4458,7 @@ Alias (byte) current_xpos#14 = (byte) current_xpos#69 (byte) current_xpos#89 (by Alias (byte) current_orientation#12 = (byte) current_orientation#51 (byte) current_orientation#66 (byte) current_orientation#41 Alias (byte*) current_piece#18 = (byte*) current_piece#53 (byte*) current_piece#65 (byte*) current_piece#42 Alias (byte*) current_piece_gfx#25 = (byte*) current_piece_gfx#68 (byte*) current_piece_gfx#81 (byte*) current_piece_gfx#56 -Alias (byte) current_piece_color#19 = (byte) current_piece_color#54 (byte) current_piece_color#69 (byte) current_piece_color#40 +Alias (byte) current_piece_char#19 = (byte) current_piece_char#54 (byte) current_piece_char#69 (byte) current_piece_char#40 Alias (byte) current_xpos#17 = (byte) current_xpos#38 Alias (byte) current_xpos#22 = (byte) current_xpos#40 Alias (byte) current_ypos#17 = (byte) current_ypos#33 @@ -4226,7 +4479,7 @@ Alias (byte*) current_piece_gfx#16 = (byte*) current_piece_gfx#31 Alias (byte) play_lock_current::i#1 = (byte) play_lock_current::i#4 Alias (byte) play_lock_current::ypos2#3 = (byte) play_lock_current::ypos2#5 Alias (byte) play_lock_current::l#2 = (byte) play_lock_current::l#4 -Alias (byte) current_piece_color#12 = (byte) current_piece_color#32 +Alias (byte) current_piece_char#12 = (byte) current_piece_char#32 Alias (byte*) play_lock_current::playfield_line#1 = (byte*) play_lock_current::playfield_line#3 Alias (byte) current_xpos#43 = (byte) current_xpos#74 Alias (byte) play_remove_lines::c#0 = (byte) play_remove_lines::c#1 @@ -4239,22 +4492,30 @@ Alias (byte) current_orientation#23 = (byte) current_orientation#47 Alias (byte*) current_piece_gfx#20 = (byte*) current_piece_gfx#49 Alias (byte) current_xpos#10 = (byte) current_xpos#62 Alias (byte) current_ypos#21 = (byte) current_ypos#46 -Alias (byte) current_piece_color#15 = (byte) current_piece_color#34 +Alias (byte) current_piece_char#15 = (byte) current_piece_char#34 Alias (byte) keyboard_events_size#18 = (byte) keyboard_events_size#32 Alias (byte) keyboard_modifiers#15 = (byte) keyboard_modifiers#29 Alias (byte) current_movedown_counter#11 = (byte) current_movedown_counter#23 Successful SSA optimization Pass2AliasElimination -Self Phi Eliminated (byte) fill::val#2 +Self Phi Eliminated (byte) fill::val#1 Self Phi Eliminated (byte*) fill::end#1 Self Phi Eliminated (byte) keyboard_event_scan::row_scan#1 Self Phi Eliminated (byte) keyboard_event_scan::row#10 Self Phi Eliminated (byte*) render_init::line#2 Self Phi Eliminated (byte) render_init::l#2 +Self Phi Eliminated (byte) render_screen_original::SPACE#1 +Self Phi Eliminated (byte*) render_screen_original::orig#3 +Self Phi Eliminated (byte) render_screen_original::y#5 +Self Phi Eliminated (byte) render_screen_original::SPACE#4 +Self Phi Eliminated (byte) render_screen_original::y#4 +Self Phi Eliminated (byte) render_screen_original::SPACE#2 +Self Phi Eliminated (byte) render_screen_original::y#2 +Self Phi Eliminated (byte*) render_screen_original::orig#5 Self Phi Eliminated (byte) render_playfield::l#3 Self Phi Eliminated (byte*) current_piece_gfx#12 Self Phi Eliminated (byte) render_current::ypos2#5 Self Phi Eliminated (byte) render_current::l#4 -Self Phi Eliminated (byte) current_piece_color#18 +Self Phi Eliminated (byte) current_piece_char#18 Self Phi Eliminated (byte*) render_current::screen_line#1 Self Phi Eliminated (byte) current_xpos#68 Self Phi Eliminated (byte*) play_collision::piece_gfx#1 @@ -4263,7 +4524,7 @@ Self Phi Eliminated (byte) play_collision::l#10 Self Phi Eliminated (byte) play_collision::xpos#10 Self Phi Eliminated (byte*) play_collision::playfield_line#1 Self Phi Eliminated (byte*) current_piece_gfx#16 -Self Phi Eliminated (byte) current_piece_color#12 +Self Phi Eliminated (byte) current_piece_char#12 Self Phi Eliminated (byte*) play_lock_current::playfield_line#1 Self Phi Eliminated (byte) play_lock_current::ypos2#3 Self Phi Eliminated (byte) play_lock_current::l#2 @@ -4277,7 +4538,7 @@ Self Phi Eliminated (byte*) current_piece#62 Self Phi Eliminated (byte) current_orientation#68 Self Phi Eliminated (byte*) current_piece_gfx#78 Self Phi Eliminated (byte) current_xpos#91 -Self Phi Eliminated (byte) current_piece_color#66 +Self Phi Eliminated (byte) current_piece_char#66 Self Phi Eliminated (byte) keyboard_events_size#26 Self Phi Eliminated (byte) keyboard_modifiers#23 Self Phi Eliminated (byte) current_movedown_counter#14 @@ -4286,9 +4547,12 @@ Self Phi Eliminated (byte*) current_piece#27 Self Phi Eliminated (byte) current_orientation#37 Self Phi Eliminated (byte*) current_piece_gfx#33 Self Phi Eliminated (byte) current_xpos#45 -Self Phi Eliminated (byte) current_piece_color#24 +Self Phi Eliminated (byte) current_piece_char#24 Successful SSA optimization Pass2SelfPhiElimination -Redundant Phi (byte) fill::val#2 (byte) fill::val#3 +Redundant Phi (byte*) fill::addr#0 (byte*) fill::start#0 +Redundant Phi (word) fill::size#1 (word) fill::size#0 +Redundant Phi (byte) fill::val#2 (byte) fill::val#0 +Redundant Phi (byte) fill::val#1 (byte) fill::val#2 Redundant Phi (byte*) fill::end#1 (byte*) fill::end#0 Redundant Phi (byte) keyboard_matrix_read::rowid#1 (byte) keyboard_matrix_read::rowid#0 Redundant Phi (byte) keyboard_events_size#54 (byte) keyboard_events_size#26 @@ -4297,11 +4561,20 @@ Redundant Phi (byte) keyboard_event_scan::row#10 (byte) keyboard_event_scan::row Redundant Phi (byte) keyboard_events_size#14 (byte) keyboard_events_size#17 Redundant Phi (byte*) render_init::line#2 (byte*) render_init::line#4 Redundant Phi (byte) render_init::l#2 (byte) render_init::l#4 +Redundant Phi (byte*) render_screen_original::screen#8 (byte*) render_screen_original::screen#0 +Redundant Phi (byte) render_screen_original::SPACE#1 (byte) render_screen_original::SPACE#3 +Redundant Phi (byte*) render_screen_original::orig#3 (byte*) render_screen_original::orig#4 +Redundant Phi (byte) render_screen_original::y#5 (byte) render_screen_original::y#6 +Redundant Phi (byte) render_screen_original::SPACE#4 (byte) render_screen_original::SPACE#1 +Redundant Phi (byte) render_screen_original::y#4 (byte) render_screen_original::y#5 +Redundant Phi (byte) render_screen_original::SPACE#2 (byte) render_screen_original::SPACE#4 +Redundant Phi (byte) render_screen_original::y#2 (byte) render_screen_original::y#4 +Redundant Phi (byte*) render_screen_original::orig#5 (byte*) render_screen_original::orig#1 Redundant Phi (byte) render_playfield::l#3 (byte) render_playfield::l#2 Redundant Phi (byte*) current_piece_gfx#12 (byte*) current_piece_gfx#24 Redundant Phi (byte) render_current::ypos2#5 (byte) render_current::ypos2#2 Redundant Phi (byte) render_current::l#4 (byte) render_current::l#3 -Redundant Phi (byte) current_piece_color#18 (byte) current_piece_color#39 +Redundant Phi (byte) current_piece_char#18 (byte) current_piece_char#39 Redundant Phi (byte*) render_current::screen_line#1 (byte*) render_current::screen_line#0 Redundant Phi (byte) current_xpos#68 (byte) current_xpos#13 Redundant Phi (byte) current_movedown_counter#7 (byte) current_movedown_counter#14 @@ -4311,13 +4584,13 @@ Redundant Phi (byte) current_xpos#14 (byte) current_xpos#45 Redundant Phi (byte) current_orientation#12 (byte) current_orientation#37 Redundant Phi (byte*) current_piece#18 (byte*) current_piece#27 Redundant Phi (byte*) current_piece_gfx#25 (byte*) current_piece_gfx#33 -Redundant Phi (byte) current_piece_color#19 (byte) current_piece_color#24 +Redundant Phi (byte) current_piece_char#19 (byte) current_piece_char#24 Redundant Phi (byte*) current_piece#1 (byte*) current_piece#13 Redundant Phi (byte) current_orientation#1 (byte) current_orientation#20 Redundant Phi (byte*) current_piece_gfx#1 (byte*) current_piece_gfx#17 Redundant Phi (byte) current_xpos#1 (byte) current_xpos#24 Redundant Phi (byte) current_ypos#13 (byte) current_ypos#19 -Redundant Phi (byte) current_piece_color#1 (byte) current_piece_color#13 +Redundant Phi (byte) current_piece_char#1 (byte) current_piece_char#13 Redundant Phi (byte) play_move_leftright::key_event#1 (byte) play_move_leftright::key_event#0 Redundant Phi (byte) current_xpos#17 (byte) current_xpos#26 Redundant Phi (byte) current_ypos#15 (byte) current_ypos#21 @@ -4337,9 +4610,9 @@ Redundant Phi (byte*) play_collision::playfield_line#1 (byte*) play_collision::p Redundant Phi (byte) current_ypos#18 (byte) current_ypos#11 Redundant Phi (byte) current_xpos#42 (byte) current_xpos#14 Redundant Phi (byte*) current_piece_gfx#45 (byte*) current_piece_gfx#25 -Redundant Phi (byte) current_piece_color#45 (byte) current_piece_color#19 +Redundant Phi (byte) current_piece_char#45 (byte) current_piece_char#19 Redundant Phi (byte*) current_piece_gfx#16 (byte*) current_piece_gfx#30 -Redundant Phi (byte) current_piece_color#12 (byte) current_piece_color#31 +Redundant Phi (byte) current_piece_char#12 (byte) current_piece_char#31 Redundant Phi (byte*) play_lock_current::playfield_line#1 (byte*) play_lock_current::playfield_line#0 Redundant Phi (byte) play_lock_current::ypos2#3 (byte) play_lock_current::ypos2#2 Redundant Phi (byte) play_lock_current::l#2 (byte) play_lock_current::l#6 @@ -4350,7 +4623,7 @@ Redundant Phi (byte) current_orientation#36 (byte) current_orientation#0 Redundant Phi (byte*) current_piece_gfx#32 (byte*) current_piece_gfx#0 Redundant Phi (byte) current_xpos#44 (byte) current_xpos#0 Redundant Phi (byte) current_ypos#36 (byte) current_ypos#0 -Redundant Phi (byte) current_piece_color#23 (byte) current_piece_color#0 +Redundant Phi (byte) current_piece_char#23 (byte) current_piece_char#0 Redundant Phi (byte) keyboard_events_size#33 (byte) keyboard_events_size#0 Redundant Phi (byte) keyboard_modifiers#30 (byte) keyboard_modifiers#0 Redundant Phi (byte) current_movedown_counter#24 (byte) current_movedown_counter#0 @@ -4359,7 +4632,7 @@ Redundant Phi (byte) current_orientation#21 (byte) current_orientation#20 Redundant Phi (byte*) current_piece_gfx#18 (byte*) current_piece_gfx#17 Redundant Phi (byte) current_xpos#25 (byte) current_xpos#24 Redundant Phi (byte) current_ypos#20 (byte) current_ypos#19 -Redundant Phi (byte) current_piece_color#14 (byte) current_piece_color#13 +Redundant Phi (byte) current_piece_char#14 (byte) current_piece_char#13 Redundant Phi (byte) keyboard_events_size#41 (byte) keyboard_events_size#19 Redundant Phi (byte) keyboard_modifiers#35 (byte) keyboard_modifiers#16 Redundant Phi (byte) current_movedown_counter#38 (byte) current_movedown_counter#12 @@ -4368,7 +4641,7 @@ Redundant Phi (byte*) current_piece#62 (byte*) current_piece#16 Redundant Phi (byte) current_orientation#68 (byte) current_orientation#10 Redundant Phi (byte*) current_piece_gfx#78 (byte*) current_piece_gfx#10 Redundant Phi (byte) current_xpos#91 (byte) current_xpos#11 -Redundant Phi (byte) current_piece_color#66 (byte) current_piece_color#16 +Redundant Phi (byte) current_piece_char#66 (byte) current_piece_char#16 Redundant Phi (byte) keyboard_events_size#26 (byte) keyboard_events_size#41 Redundant Phi (byte) keyboard_modifiers#23 (byte) keyboard_modifiers#35 Redundant Phi (byte) current_movedown_counter#14 (byte) current_movedown_counter#38 @@ -4377,7 +4650,7 @@ Redundant Phi (byte*) current_piece#27 (byte*) current_piece#62 Redundant Phi (byte) current_orientation#37 (byte) current_orientation#68 Redundant Phi (byte*) current_piece_gfx#33 (byte*) current_piece_gfx#78 Redundant Phi (byte) current_xpos#45 (byte) current_xpos#91 -Redundant Phi (byte) current_piece_color#24 (byte) current_piece_color#66 +Redundant Phi (byte) current_piece_char#24 (byte) current_piece_char#66 Redundant Phi (byte) keyboard_events_size#17 (byte) keyboard_events_size#13 Redundant Phi (byte) keyboard_modifiers#15 (byte) keyboard_modifiers#14 Redundant Phi (byte) keyboard_events_size#18 (byte) keyboard_events_size#16 @@ -4387,7 +4660,7 @@ Redundant Phi (byte*) current_piece#15 (byte*) current_piece#10 Redundant Phi (byte) current_orientation#22 (byte) current_orientation#14 Redundant Phi (byte*) current_piece_gfx#19 (byte*) current_piece_gfx#14 Redundant Phi (byte) current_xpos#26 (byte) current_xpos#16 -Redundant Phi (byte) current_piece_color#15 (byte) current_piece_color#11 +Redundant Phi (byte) current_piece_char#15 (byte) current_piece_char#11 Redundant Phi (byte) current_xpos#10 (byte) current_xpos#20 Redundant Phi (byte) current_orientation#23 (byte) current_orientation#19 Redundant Phi (byte*) current_piece_gfx#20 (byte*) current_piece_gfx#15 @@ -4396,7 +4669,7 @@ Redundant Phi (byte) current_orientation#11 (byte) current_orientation#10 Redundant Phi (byte*) current_piece_gfx#11 (byte*) current_piece_gfx#10 Redundant Phi (byte) current_xpos#12 (byte) current_xpos#11 Redundant Phi (byte) current_ypos#23 (byte) current_ypos#22 -Redundant Phi (byte) current_piece_color#17 (byte) current_piece_color#16 +Redundant Phi (byte) current_piece_char#17 (byte) current_piece_char#16 Redundant Phi (byte) keyboard_events_size#20 (byte) keyboard_events_size#19 Redundant Phi (byte) keyboard_modifiers#17 (byte) keyboard_modifiers#16 Redundant Phi (byte) current_movedown_counter#13 (byte) current_movedown_counter#12 @@ -4406,7 +4679,7 @@ Redundant Phi (byte) render_current::ypos2#3 (byte) render_current::ypos2#2 Redundant Phi (byte) render_current::l#2 (byte) render_current::l#3 Redundant Phi (byte) current_xpos#49 (byte) current_xpos#13 Redundant Phi (byte*) current_piece_gfx#54 (byte*) current_piece_gfx#24 -Redundant Phi (byte) current_piece_color#63 (byte) current_piece_color#39 +Redundant Phi (byte) current_piece_char#63 (byte) current_piece_char#39 Successful SSA optimization Pass2RedundantPhiElimination Simple Condition (bool~) fill::$1 if((byte*) fill::addr#1!=(byte*) fill::end#0) goto fill::@1 Simple Condition (bool~) keyboard_event_scan::$1 if((byte) keyboard_event_scan::row_scan#0!=*((byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2)) goto keyboard_event_scan::@2 @@ -4420,9 +4693,13 @@ Simple Condition (bool~) keyboard_event_scan::$20 if((byte~) keyboard_event_scan Simple Condition (bool~) keyboard_event_scan::$24 if((byte~) keyboard_event_scan::$22==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@11 Simple Condition (bool~) keyboard_event_scan::$28 if((byte~) keyboard_event_scan::$26==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@12 Simple Condition (bool~) keyboard_event_get::$0 if((byte) keyboard_events_size#13==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_get::@1 -Simple Condition (bool~) render_init::$6 if((byte) render_init::i#1!=rangelast(0,render_init::$4)) goto render_init::@1 -Simple Condition (bool~) render_init::$11 if((byte) render_init::c#1!=rangelast(0,render_init::$9)) goto render_init::@3 -Simple Condition (bool~) render_init::$12 if((byte) render_init::l#1!=rangelast(0,render_init::$8)) goto render_init::@2 +Simple Condition (bool~) render_init::$11 if((byte) render_init::i#1!=rangelast(0,render_init::$9)) goto render_init::@1 +Simple Condition (bool~) render_init::$16 if((byte) render_init::c#1!=rangelast(0,render_init::$14)) goto render_init::@3 +Simple Condition (bool~) render_init::$17 if((byte) render_init::l#1!=rangelast(0,render_init::$13)) goto render_init::@2 +Simple Condition (bool~) render_screen_original::$2 if((byte) render_screen_original::x#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_screen_original::@2 +Simple Condition (bool~) render_screen_original::$4 if((byte) render_screen_original::x#2!=(byte/signed byte/word/signed word/dword/signed dword) 36) goto render_screen_original::@3 +Simple Condition (bool~) render_screen_original::$5 if((byte) render_screen_original::x#3!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto render_screen_original::@4 +Simple Condition (bool~) render_screen_original::$6 if((byte) render_screen_original::y#1!=rangelast(0,24)) goto render_screen_original::@1 Simple Condition (bool~) render_playfield::$3 if((byte) render_playfield::c#1!=rangelast(0,render_playfield::$2)) goto render_playfield::@2 Simple Condition (bool~) render_playfield::$4 if((byte) render_playfield::l#1!=rangelast(0,render_playfield::$0)) goto render_playfield::@1 Simple Condition (bool~) render_current::$3 if((byte) render_current::ypos2#2>=(byte/signed word/word/dword/signed dword~) render_current::$1) goto render_current::@2 @@ -4641,15 +4918,19 @@ Constant (const byte*) PLAYFIELD_CHARSET#0 = ((byte*))10240 Constant (const byte) PLAYFIELD_LINES#0 = 22 Constant (const byte) PLAYFIELD_COLS#0 = 10 Constant (const byte*) current_piece_gfx#0 = ((byte*))0 -Constant (const byte) current_piece_color#0 = 0 +Constant (const byte) current_piece_char#0 = 0 Constant (const byte) current_xpos#0 = 3 Constant (const byte) current_ypos#0 = 0 +Constant (const byte) PLAYFIELD_SCREEN_ORIGINAL_WIDTH#0 = 32 +Constant (const byte*) PLAYFIELD_SCREEN_ORIGINAL#0 = ((byte*))11264 Constant (const word) fill::size#0 = 1000 -Constant (const byte) fill::val#0 = 208 -Constant (const word) fill::size#1 = 1000 Constant (const byte) render_init::i#0 = 0 Constant (const byte) render_init::l#0 = 0 Constant (const byte) render_init::c#0 = 0 +Constant (const byte) render_screen_original::SPACE#0 = 0 +Constant (const byte/signed byte/word/signed word/dword/signed dword) render_screen_original::$0 = 32*2 +Constant (const byte) render_screen_original::y#0 = 0 +Constant (const byte) render_screen_original::x#0 = 0 Constant (const byte) render_playfield::i#0 = 0 Constant (const byte) render_playfield::l#0 = 0 Constant (const byte) render_playfield::c#0 = 0 @@ -4670,6 +4951,7 @@ Constant (const byte/signed byte/word/signed word/dword/signed dword) $14 = 4*4 Constant (const byte[$15]) PIECE_O#0 = { 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } Constant (const byte/signed byte/word/signed word/dword/signed dword) $16 = 4*4 Constant (const byte[$17]) PIECE_I#0 = { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0 } +Constant (const byte[]) PIECES_CHARS#0 = { 87, 88, 152, 88, 87, 87, 152 } Constant (const byte*) current_piece#0 = ((byte*))0 Constant (const byte) current_orientation#0 = 0 Constant (const byte) current_movedown_slow#0 = 50 @@ -4719,14 +5001,19 @@ Constant (const byte) keyboard_event_pressed::keycode#3 = KEY_COMMODORE#0 Constant (const byte*) PLAYFIELD_SPRITE_PTRS#0 = PLAYFIELD_SCREEN#0+SPRITE_PTRS#0 Constant (const byte) $2 = PLAYFIELD_LINES#0*PLAYFIELD_COLS#0 Constant (const byte/signed word/word/dword/signed dword) $3 = PLAYFIELD_LINES#0+3 -Constant (const byte*) fill::start#0 = PLAYFIELD_SCREEN#0 -Constant (const byte*) fill::start#1 = COLS#0 -Constant (const byte) fill::val#1 = BLACK#0 -Constant (const byte*) render_init::$2 = COLS#0+40 -Constant (const byte/signed word/word/dword/signed dword) render_init::$4 = PLAYFIELD_LINES#0+2 -Constant (const byte*) render_init::line#0 = COLS#0+14 -Constant (const byte/signed word/word/dword/signed dword) render_init::$8 = PLAYFIELD_LINES#0+1 -Constant (const byte/signed word/word/dword/signed dword) render_init::$9 = PLAYFIELD_COLS#0+1 +Constant (const byte*) render_init::vicSelectGfxBank1_gfx#0 = PLAYFIELD_SCREEN#0 +Constant (const byte*) render_init::toD0181_screen#0 = PLAYFIELD_SCREEN#0 +Constant (const byte*) render_init::toD0181_gfx#0 = PLAYFIELD_CHARSET#0 +Constant (const byte) render_init::$2 = VIC_ECM#0|VIC_DEN#0 +Constant (const byte*) fill::start#0 = COLS#0 +Constant (const byte) fill::val#0 = DARK_GREY#0 +Constant (const byte*) render_screen_original::screen#0 = PLAYFIELD_SCREEN#0 +Constant (const byte*) render_init::$7 = PLAYFIELD_SCREEN#0+40 +Constant (const byte/signed word/word/dword/signed dword) render_init::$9 = PLAYFIELD_LINES#0+2 +Constant (const byte*) render_init::line#0 = COLS#0+15 +Constant (const byte/signed word/word/dword/signed dword) render_init::$13 = PLAYFIELD_LINES#0+1 +Constant (const byte/signed word/word/dword/signed dword) render_init::$14 = PLAYFIELD_COLS#0+1 +Constant (const byte*) render_screen_original::orig#0 = PLAYFIELD_SCREEN_ORIGINAL#0+render_screen_original::$0 Constant (const byte/signed word/word/dword/signed dword) render_playfield::$0 = PLAYFIELD_LINES#0-1 Constant (const byte/signed word/word/dword/signed dword) render_playfield::$2 = PLAYFIELD_COLS#0-1 Constant (const byte/signed word/word/dword/signed dword) render_current::$1 = 2*PLAYFIELD_LINES#0 @@ -4744,7 +5031,6 @@ Constant (const word) $21 = ((word))PIECE_J#0 Constant (const word) $22 = ((word))PIECE_O#0 Constant (const word) $23 = ((word))PIECE_I#0 Constant (const word) $24 = ((word))PIECE_L#0 -Constant (const byte[]) PIECES_COLORS#0 = { WHITE#0, LIGHT_GREY#0, GREEN#0, LIGHT_GREY#0, WHITE#0, WHITE#0, GREEN#0 } Constant (const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 = { fill( PLAYFIELD_LINES#0, 0) } Constant (const byte/signed word/word/dword/signed dword) $25 = PLAYFIELD_LINES#0+1 Constant (const byte) keyboard_event_pressed::keycode#4 = KEY_SPACE#0 @@ -4762,16 +5048,35 @@ Constant (const byte/signed word/word/dword/signed dword) play_remove_lines::$5 Constant (const byte/signed word/word/dword/signed dword) play_init::$0 = PLAYFIELD_LINES#0-1 Constant (const byte) play_init::$3 = PLAYFIELD_COLS#0*PLAYFIELD_LINES#0 Successful SSA optimization Pass2ConstantIdentification +Constant (const byte*) fill::end#0 = fill::start#0+fill::size#0 Constant (const byte[$2]) playfield#0 = { fill( $2, 0) } Constant (const byte*[$3]) screen_lines#0 = { fill( $3, 0) } -Constant (const byte*) render_init::li#0 = render_init::$2+15 +Constant (const word) render_init::vicSelectGfxBank1_toDd001_$0#0 = ((word))render_init::vicSelectGfxBank1_gfx#0 +Constant (const word) render_init::toD0181_$0#0 = ((word))render_init::toD0181_screen#0 +Constant (const word) render_init::toD0181_$4#0 = ((word))render_init::toD0181_gfx#0 +Constant (const byte) render_init::$3 = render_init::$2|VIC_RSEL#0 +Constant (const byte*) render_init::li#0 = render_init::$7+16 Constant (const word[]) PIECES#0 = { $18, $19, $20, $21, $22, $23, $24 } Constant (const byte[$25]) playfield_lines_idx#0 = { fill( $25, 0) } Constant (const byte) play_remove_lines::r#0 = play_remove_lines::$0-1 Constant (const byte) play_remove_lines::w#0 = play_remove_lines::$2-1 Successful SSA optimization Pass2ConstantIdentification +Constant (const byte) render_init::vicSelectGfxBank1_toDd001_$1#0 = >render_init::vicSelectGfxBank1_toDd001_$0#0 +Constant (const word) render_init::toD0181_$1#0 = render_init::toD0181_$0#0&16383 +Constant (const byte) render_init::toD0181_$5#0 = >render_init::toD0181_$4#0 +Constant (const byte/word/dword) render_init::$4 = render_init::$3|3 Constant (const byte*) play_init::pli#0 = playfield#0 Successful SSA optimization Pass2ConstantIdentification +Constant (const byte) render_init::vicSelectGfxBank1_toDd001_$2#0 = render_init::vicSelectGfxBank1_toDd001_$1#0>>6 +Constant (const word) render_init::toD0181_$2#0 = render_init::toD0181_$1#0<<2 +Constant (const byte) render_init::toD0181_$6#0 = render_init::toD0181_$5#0>>2 +Successful SSA optimization Pass2ConstantIdentification +Constant (const byte) render_init::vicSelectGfxBank1_toDd001_return#0 = 3^render_init::vicSelectGfxBank1_toDd001_$2#0 +Constant (const byte) render_init::toD0181_$3#0 = >render_init::toD0181_$2#0 +Constant (const byte) render_init::toD0181_$7#0 = render_init::toD0181_$6#0&15 +Successful SSA optimization Pass2ConstantIdentification +Constant (const byte) render_init::toD0181_return#0 = render_init::toD0181_$3#0|render_init::toD0181_$7#0 +Successful SSA optimization Pass2ConstantIdentification Consolidated array index constant in *(playfield_lines_idx#0+PLAYFIELD_LINES#0) Successful SSA optimization Pass2ConstantAdditionElimination if() condition always true - replacing block destination if(true) goto main::@2 @@ -4787,11 +5092,13 @@ Resolved ranged comparison value if(keyboard_event_scan::row#1!=rangelast(0,7)) Resolved ranged next value keyboard_event_scan::col#1 ← ++ keyboard_event_scan::col#2 to ++ Resolved ranged comparison value if(keyboard_event_scan::col#1!=rangelast(0,7)) goto keyboard_event_scan::@4 to (byte/signed byte/word/signed word/dword/signed dword) 8 Resolved ranged next value render_init::i#1 ← ++ render_init::i#2 to ++ -Resolved ranged comparison value if(render_init::i#1!=rangelast(0,render_init::$4)) goto render_init::@1 to (const byte/signed word/word/dword/signed dword) render_init::$4+(byte/signed byte/word/signed word/dword/signed dword) 1 +Resolved ranged comparison value if(render_init::i#1!=rangelast(0,render_init::$9)) goto render_init::@1 to (const byte/signed word/word/dword/signed dword) render_init::$9+(byte/signed byte/word/signed word/dword/signed dword) 1 Resolved ranged next value render_init::c#1 ← ++ render_init::c#2 to ++ -Resolved ranged comparison value if(render_init::c#1!=rangelast(0,render_init::$9)) goto render_init::@3 to (const byte/signed word/word/dword/signed dword) render_init::$9+(byte/signed byte/word/signed word/dword/signed dword) 1 +Resolved ranged comparison value if(render_init::c#1!=rangelast(0,render_init::$14)) goto render_init::@3 to (const byte/signed word/word/dword/signed dword) render_init::$14+(byte/signed byte/word/signed word/dword/signed dword) 1 Resolved ranged next value render_init::l#1 ← ++ render_init::l#4 to ++ -Resolved ranged comparison value if(render_init::l#1!=rangelast(0,render_init::$8)) goto render_init::@2 to (const byte/signed word/word/dword/signed dword) render_init::$8+(byte/signed byte/word/signed word/dword/signed dword) 1 +Resolved ranged comparison value if(render_init::l#1!=rangelast(0,render_init::$13)) goto render_init::@2 to (const byte/signed word/word/dword/signed dword) render_init::$13+(byte/signed byte/word/signed word/dword/signed dword) 1 +Resolved ranged next value render_screen_original::y#1 ← ++ render_screen_original::y#6 to ++ +Resolved ranged comparison value if(render_screen_original::y#1!=rangelast(0,24)) goto render_screen_original::@1 to (byte/signed byte/word/signed word/dword/signed dword) 25 Resolved ranged next value render_playfield::c#1 ← ++ render_playfield::c#2 to ++ Resolved ranged comparison value if(render_playfield::c#1!=rangelast(0,render_playfield::$2)) goto render_playfield::@2 to (const byte/signed word/word/dword/signed dword) render_playfield::$2+(byte/signed byte/word/signed word/dword/signed dword) 1 Resolved ranged next value render_playfield::l#1 ← ++ render_playfield::l#2 to ++ @@ -4821,10 +5128,13 @@ Culled Empty Block (label) keyboard_event_scan::@6 Culled Empty Block (label) keyboard_event_scan::@12 Culled Empty Block (label) keyboard_event_get::@1 Culled Empty Block (label) @12 -Culled Empty Block (label) render_init::@8 +Culled Empty Block (label) render_init::vicSelectGfxBank1_toDd001_@return +Culled Empty Block (label) render_init::@7 +Culled Empty Block (label) render_init::toD0181_@return +Culled Empty Block (label) render_init::@10 Culled Empty Block (label) render_init::@4 Culled Empty Block (label) render_current::@5 -Culled Empty Block (label) @17 +Culled Empty Block (label) @18 Culled Empty Block (label) play_move_down::@3 Culled Empty Block (label) play_move_down::@5 Culled Empty Block (label) play_move_down::@21 @@ -4834,7 +5144,7 @@ Culled Empty Block (label) play_move_leftright::@4 Culled Empty Block (label) play_move_leftright::@5 Culled Empty Block (label) play_move_rotate::@7 Culled Empty Block (label) play_move_rotate::@5 -Culled Empty Block (label) @20 +Culled Empty Block (label) @21 Culled Empty Block (label) play_collision::@9 Culled Empty Block (label) play_collision::@11 Culled Empty Block (label) play_collision::@13 @@ -4846,30 +5156,28 @@ Culled Empty Block (label) main::@2 Culled Empty Block (label) main::@5 Culled Empty Block (label) main::@8 Culled Empty Block (label) main::@33 -Culled Empty Block (label) @27 +Culled Empty Block (label) @28 Successful SSA optimization Pass2CullEmptyBlocks +Self Phi Eliminated (byte) render_screen_original::SPACE#3 Self Phi Eliminated (byte) current_xpos#13 Self Phi Eliminated (byte*) current_piece_gfx#24 -Self Phi Eliminated (byte) current_piece_color#39 +Self Phi Eliminated (byte) current_piece_char#39 Self Phi Eliminated (byte) play_collision::col#0 Self Phi Eliminated (byte*) play_collision::piece_gfx#2 Self Phi Eliminated (byte) current_xpos#23 Self Phi Eliminated (byte*) current_piece_gfx#30 -Self Phi Eliminated (byte) current_piece_color#31 +Self Phi Eliminated (byte) current_piece_char#31 Successful SSA optimization Pass2SelfPhiElimination +Redundant Phi (byte) render_screen_original::SPACE#3 (const byte) render_screen_original::SPACE#0 Redundant Phi (byte) current_xpos#13 (byte) current_xpos#48 Redundant Phi (byte*) current_piece_gfx#24 (byte*) current_piece_gfx#53 -Redundant Phi (byte) current_piece_color#39 (byte) current_piece_color#62 +Redundant Phi (byte) current_piece_char#39 (byte) current_piece_char#62 Redundant Phi (byte) play_collision::col#0 (byte) play_collision::xpos#5 Redundant Phi (byte*) play_collision::piece_gfx#2 (byte*) play_collision::piece_gfx#0 Redundant Phi (byte) current_xpos#23 (byte) current_xpos#11 Redundant Phi (byte*) current_piece_gfx#30 (byte*) current_piece_gfx#10 -Redundant Phi (byte) current_piece_color#31 (byte) current_piece_color#16 +Redundant Phi (byte) current_piece_char#31 (byte) current_piece_char#16 Successful SSA optimization Pass2RedundantPhiElimination -Inlining constant with var siblings (const word) fill::size#0 -Inlining constant with var siblings (const byte) fill::val#0 -Inlining constant with var siblings (const word) fill::size#1 -Inlining constant with var siblings (const byte) fill::val#1 Inlining constant with var siblings (const byte) keyboard_event_scan::keycode#0 Inlining constant with var siblings (const byte) keyboard_event_scan::row#0 Inlining constant with var siblings (const byte) keyboard_event_scan::col#0 @@ -4884,6 +5192,10 @@ Inlining constant with var siblings (const byte) render_init::l#0 Inlining constant with var siblings (const byte) render_init::c#0 Inlining constant with var siblings (const byte*) render_init::line#0 Inlining constant with var siblings (const byte*) render_init::li#0 +Inlining constant with var siblings (const byte) render_screen_original::y#0 +Inlining constant with var siblings (const byte) render_screen_original::x#0 +Inlining constant with var siblings (const byte*) render_screen_original::screen#0 +Inlining constant with var siblings (const byte*) render_screen_original::orig#0 Inlining constant with var siblings (const byte) render_playfield::i#0 Inlining constant with var siblings (const byte) render_playfield::l#0 Inlining constant with var siblings (const byte) render_playfield::c#0 @@ -4931,47 +5243,59 @@ 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 Constant inlined play_remove_lines::x#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 +Constant inlined render_init::toD0181_$5#0 = >((word))(const byte*) PLAYFIELD_CHARSET#0 Constant inlined play_move_rotate::return#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined play_move_rotate::return#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined play_init::pli#0 = (const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 +Constant inlined render_init::toD0181_screen#0 = (const byte*) PLAYFIELD_SCREEN#0 Constant inlined play_move_rotate::return#3 = (byte/signed byte/word/signed word/dword/signed dword) 1 Constant inlined render_current::l#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined current_movedown_counter#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined current_movedown_counter#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined fill::start#1 = (const byte*) COLS#0 -Constant inlined fill::start#0 = (const byte*) PLAYFIELD_SCREEN#0 -Constant inlined render_init::li#0 = (const byte*) COLS#0+(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 15 +Constant inlined fill::start#0 = (const byte*) COLS#0 +Constant inlined render_screen_original::screen#0 = (const byte*) PLAYFIELD_SCREEN#0 +Constant inlined render_init::li#0 = (const byte*) PLAYFIELD_SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 16 +Constant inlined render_screen_original::y#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 +Constant inlined render_init::toD0181_$1#0 = ((word))(const byte*) PLAYFIELD_SCREEN#0&(word/signed word/dword/signed dword) 16383 Constant inlined render_playfield::i#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined play_collision::$4 = (byte/signed byte/word/signed word/dword/signed dword) 2*(const byte) PLAYFIELD_LINES#0 -Constant inlined fill::size#1 = (word/signed word/dword/signed dword) 1000 +Constant inlined render_init::$14 = (const byte) PLAYFIELD_COLS#0+(byte/signed byte/word/signed word/dword/signed dword) 1 +Constant inlined render_init::$13 = (const byte) PLAYFIELD_LINES#0+(byte/signed byte/word/signed word/dword/signed dword) 1 +Constant inlined render_init::vicSelectGfxBank1_toDd001_$1#0 = >((word))(const byte*) PLAYFIELD_SCREEN#0 Constant inlined play_remove_lines::$0 = (const byte) PLAYFIELD_LINES#0*(const byte) PLAYFIELD_COLS#0 -Constant inlined fill::size#0 = (word/signed word/dword/signed dword) 1000 Constant inlined play_remove_lines::$2 = (const byte) PLAYFIELD_LINES#0*(const byte) PLAYFIELD_COLS#0 Constant inlined play_collision::i#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined play_remove_lines::$4 = (const byte) PLAYFIELD_LINES#0-(byte/signed byte/word/signed word/dword/signed dword) 1 -Constant inlined render_init::$9 = (const byte) PLAYFIELD_COLS#0+(byte/signed byte/word/signed word/dword/signed dword) 1 +Constant inlined render_screen_original::$0 = (byte/signed byte/word/signed word/dword/signed dword) 32*(byte/signed byte/word/signed word/dword/signed dword) 2 +Constant inlined render_init::toD0181_gfx#0 = (const byte*) PLAYFIELD_CHARSET#0 +Constant inlined render_init::$9 = (const byte) PLAYFIELD_LINES#0+(byte/signed byte/word/signed word/dword/signed dword) 2 +Constant inlined render_init::toD0181_$4#0 = ((word))(const byte*) PLAYFIELD_CHARSET#0 Constant inlined play_lock_current::i#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined play_remove_lines::y#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined render_init::$8 = (const byte) PLAYFIELD_LINES#0+(byte/signed byte/word/signed word/dword/signed dword) 1 +Constant inlined render_init::$7 = (const byte*) PLAYFIELD_SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40 Constant inlined $10 = (byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) 4 Constant inlined $11 = (byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) 4 Constant inlined $12 = (byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) 4 Constant inlined keyboard_event_scan::col#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined render_current::i#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 +Constant inlined render_init::$3 = (const byte) VIC_ECM#0|(const byte) VIC_DEN#0|(const byte) VIC_RSEL#0 Constant inlined $13 = (byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) 4 -Constant inlined render_init::$4 = (const byte) PLAYFIELD_LINES#0+(byte/signed byte/word/signed word/dword/signed dword) 2 +Constant inlined render_init::$4 = (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 Constant inlined $14 = (byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) 4 Constant inlined $15 = (byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) 4 -Constant inlined render_init::$2 = (const byte*) COLS#0+(byte/signed byte/word/signed word/dword/signed dword) 40 +Constant inlined render_init::$2 = (const byte) VIC_ECM#0|(const byte) VIC_DEN#0 Constant inlined $16 = (byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) 4 Constant inlined $17 = (byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) 4 Constant inlined $18 = ((word))(const byte[4*4*4]) PIECE_T#0 Constant inlined $19 = ((word))(const byte[4*4*4]) PIECE_S#0 Constant inlined render_playfield::l#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 +Constant inlined render_init::toD0181_$0#0 = ((word))(const byte*) PLAYFIELD_SCREEN#0 +Constant inlined render_screen_original::x#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined $20 = ((word))(const byte[4*4*4]) PIECE_Z#0 Constant inlined $21 = ((word))(const byte[4*4*4]) PIECE_J#0 Constant inlined keyboard_event_pressed::keycode#4 = (const byte) KEY_SPACE#0 Constant inlined $22 = ((word))(const byte[4*4*4]) PIECE_O#0 +Constant inlined render_init::vicSelectGfxBank1_toDd001_$2#0 = >((word))(const byte*) PLAYFIELD_SCREEN#0>>(byte/signed byte/word/signed word/dword/signed dword) 6 Constant inlined $23 = ((word))(const byte[4*4*4]) PIECE_I#0 Constant inlined $24 = ((word))(const byte[4*4*4]) PIECE_L#0 Constant inlined $25 = (const byte) PLAYFIELD_LINES#0+(byte/signed byte/word/signed word/dword/signed dword) 1 @@ -4979,6 +5303,7 @@ Constant inlined keyboard_event_pressed::keycode#3 = (const byte) KEY_COMMODORE# Constant inlined keyboard_event_pressed::keycode#2 = (const byte) KEY_CTRL#0 Constant inlined render_init::i#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined keyboard_event_pressed::keycode#1 = (const byte) KEY_RSHIFT#0 +Constant inlined render_screen_original::orig#0 = (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 Constant inlined keyboard_event_pressed::keycode#0 = (const byte) KEY_LSHIFT#0 Constant inlined render_current::$1 = (byte/signed byte/word/signed word/dword/signed dword) 2*(const byte) PLAYFIELD_LINES#0 Constant inlined play_collision::return#7 = (const byte) COLLISION_RIGHT#0 @@ -4987,12 +5312,15 @@ Constant inlined play_collision::return#6 = (const byte) COLLISION_LEFT#0 Constant inlined play_collision::return#4 = (const byte) COLLISION_BOTTOM#0 Constant inlined play_move_down::return#1 = (byte/signed byte/word/signed word/dword/signed dword) 1 Constant inlined play_move_down::return#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 +Constant inlined render_init::vicSelectGfxBank1_gfx#0 = (const byte*) PLAYFIELD_SCREEN#0 Constant inlined play_collision::return#9 = (const byte) COLLISION_NONE#0 Constant inlined play_collision::return#8 = (const byte) COLLISION_PLAYFIELD#0 Constant inlined play_init::$0 = (const byte) PLAYFIELD_LINES#0-(byte/signed byte/word/signed word/dword/signed dword) 1 Constant inlined keyboard_events_size#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 +Constant inlined render_init::toD0181_$3#0 = >((word))(const byte*) PLAYFIELD_SCREEN#0&(word/signed word/dword/signed dword) 16383<<(byte/signed byte/word/signed word/dword/signed dword) 2 Constant inlined play_remove_lines::r#0 = (const byte) PLAYFIELD_LINES#0*(const byte) PLAYFIELD_COLS#0-(byte/signed byte/word/signed word/dword/signed dword) 1 Constant inlined keyboard_modifiers#2 = (byte/signed byte/word/signed word/dword/signed dword) 0|(const byte) KEY_MODIFIER_LSHIFT#0 +Constant inlined render_init::toD0181_$7#0 = >((word))(const byte*) PLAYFIELD_CHARSET#0>>(byte/signed byte/word/signed word/dword/signed dword) 2&(byte/signed byte/word/signed word/dword/signed dword) 15 Constant inlined keyboard_modifiers#1 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined $2 = (const byte) PLAYFIELD_LINES#0*(const byte) PLAYFIELD_COLS#0 Constant inlined $3 = (const byte) PLAYFIELD_LINES#0+(byte/signed byte/word/signed word/dword/signed dword) 3 @@ -5011,18 +5339,19 @@ Constant inlined play_remove_lines::full#0 = (byte/signed byte/word/signed word/ Constant inlined play_move_leftright::return#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined play_move_leftright::return#3 = (byte/signed byte/word/signed word/dword/signed dword) 1 Constant inlined keyboard_event_scan::keycode#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined render_init::line#0 = (const byte*) COLS#0+(byte/signed byte/word/signed word/dword/signed dword) 14 +Constant inlined render_init::line#0 = (const byte*) COLS#0+(byte/signed byte/word/signed word/dword/signed dword) 15 Constant inlined play_collision::c#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined play_move_leftright::return#0 = (byte/signed byte/word/signed word/dword/signed dword) 1 Constant inlined current_orientation#20 = (byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined fill::val#0 = (byte/word/signed word/dword/signed dword) 208 +Constant inlined fill::val#0 = (const byte) DARK_GREY#0 Constant inlined play_move_down::movedown#1 = ++(byte/signed byte/word/signed word/dword/signed dword) 0 +Constant inlined render_init::toD0181_$2#0 = ((word))(const byte*) PLAYFIELD_SCREEN#0&(word/signed word/dword/signed dword) 16383<<(byte/signed byte/word/signed word/dword/signed dword) 2 Constant inlined play_move_down::movedown#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined render_current::c#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined play_remove_lines::w#0 = (const byte) PLAYFIELD_LINES#0*(const byte) PLAYFIELD_COLS#0-(byte/signed byte/word/signed word/dword/signed dword) 1 Constant inlined play_init::j#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 +Constant inlined render_init::toD0181_$6#0 = >((word))(const byte*) PLAYFIELD_CHARSET#0>>(byte/signed byte/word/signed word/dword/signed dword) 2 Constant inlined play_lock_current::c#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined fill::val#1 = (const byte) BLACK#0 Constant inlined keyboard_event_scan::row#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined render_playfield::$2 = (const byte) PLAYFIELD_COLS#0-(byte/signed byte/word/signed word/dword/signed dword) 1 Constant inlined render_playfield::$0 = (const byte) PLAYFIELD_LINES#0-(byte/signed byte/word/signed word/dword/signed dword) 1 @@ -5030,13 +5359,12 @@ Constant inlined play_remove_lines::$5 = (const byte) PLAYFIELD_COLS#0-(byte/sig 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 Constant inlined play_collision::l#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined keyboard_event_get::return#0 = (byte/word/signed word/dword/signed dword) 255 Successful SSA optimization Pass2ConstantInlining -Identical Phi Values (word) fill::size#2 (word/signed word/dword/signed dword) 1000 -Successful SSA optimization Pass2IdenticalPhiElimination Simplifying constant integer increment ++0 Successful SSA optimization Pass2ConstantSimplification Added new block during phi lifting render_current::@11(between render_current::@2 and render_current::@1) @@ -5080,12 +5408,18 @@ Fixing phi predecessor for keyboard_event_scan::col#2 to new block ( keyboard_ev Added new block during phi lifting keyboard_event_scan::@35(between keyboard_event_scan::@4 and keyboard_event_scan::@5) Added new block during phi lifting keyboard_event_scan::@36(between keyboard_event_scan::@15 and keyboard_event_scan::@5) Added new block during phi lifting play_init::@3(between play_init::@1 and play_init::@1) -Added new block during phi lifting render_init::@9(between render_init::@1 and render_init::@1) -Added new block during phi lifting render_init::@10(between render_init::@5 and render_init::@2) -Added new block during phi lifting render_init::@11(between render_init::@3 and render_init::@3) +Added new block during phi lifting render_init::@11(between render_init::@1 and render_init::@1) +Added new block during phi lifting render_init::@12(between render_init::@5 and render_init::@2) +Added new block during phi lifting render_init::@13(between render_init::@3 and render_init::@3) +Added new block during phi lifting render_screen_original::@9(between render_screen_original::@7 and render_screen_original::@1) +Added new block during phi lifting render_screen_original::@10(between render_screen_original::@2 and render_screen_original::@2) +Added new block during phi lifting render_screen_original::@11(between render_screen_original::@2 and render_screen_original::@3) +Added new block during phi lifting render_screen_original::@12(between render_screen_original::@3 and render_screen_original::@3) +Added new block during phi lifting render_screen_original::@13(between render_screen_original::@3 and render_screen_original::@4) +Added new block during phi lifting render_screen_original::@14(between render_screen_original::@4 and render_screen_original::@4) Added new block during phi lifting fill::@3(between fill::@1 and fill::@1) Adding NOP phi() at start of @begin -Adding NOP phi() at start of @26 +Adding NOP phi() at start of @27 Adding NOP phi() at start of @end Adding NOP phi() at start of main Adding NOP phi() at start of main::@22 @@ -5105,175 +5439,195 @@ Adding NOP phi() at start of play_remove_lines::@8 Adding NOP phi() at start of keyboard_event_scan::@20 Adding NOP phi() at start of keyboard_event_scan::@21 Adding NOP phi() at start of play_init -Adding NOP phi() at start of render_init::@7 +Adding NOP phi() at start of render_init +Adding NOP phi() at start of render_init::vicSelectGfxBank1_toDd001 +Adding NOP phi() at start of render_init::toD0181 +Adding NOP phi() at start of render_init::@9 +Adding NOP phi() at start of render_screen_original +Adding NOP phi() at start of fill CALL GRAPH -Calls in [] to main:3 -Calls in [main] to sid_rnd_init:6 render_init:8 play_init:10 play_spawn_current:12 render_playfield:14 render_current:17 keyboard_event_scan:25 keyboard_event_get:27 play_move_down:31 play_move_leftright:36 play_move_rotate:41 render_playfield:47 render_current:52 -Calls in [play_move_rotate] to play_collision:130 -Calls in [play_move_leftright] to play_collision:182 play_collision:199 -Calls in [play_move_down] to keyboard_event_pressed:210 play_collision:230 play_lock_current:235 play_remove_lines:237 play_spawn_current:239 -Calls in [play_spawn_current] to sid_rnd:277 -Calls in [keyboard_event_scan] to keyboard_matrix_read:361 keyboard_event_pressed:372 keyboard_event_pressed:378 keyboard_event_pressed:385 keyboard_event_pressed:392 -Calls in [render_init] to fill:449 fill:451 +Calls in [] to main:4 +Calls in [main] to sid_rnd_init:7 render_init:9 play_init:11 play_spawn_current:13 render_playfield:15 render_current:18 keyboard_event_scan:26 keyboard_event_get:28 play_move_down:32 play_move_leftright:37 play_move_rotate:42 render_playfield:48 render_current:53 +Calls in [play_move_rotate] to play_collision:131 +Calls in [play_move_leftright] to play_collision:183 play_collision:200 +Calls in [play_move_down] to keyboard_event_pressed:211 play_collision:231 play_lock_current:236 play_remove_lines:238 play_spawn_current:240 +Calls in [play_spawn_current] to sid_rnd:278 +Calls in [keyboard_event_scan] to keyboard_matrix_read:362 keyboard_event_pressed:373 keyboard_event_pressed:379 keyboard_event_pressed:386 keyboard_event_pressed:393 +Calls in [render_init] to fill:460 render_screen_original:462 -Created 101 initial phi equivalence classes -Not coalescing [15] current_piece_gfx#87 ← current_piece_gfx#17 -Not coalescing [16] current_piece_color#75 ← current_piece_color#13 -Coalesced [19] current_piece_gfx#86 ← current_piece_gfx#17 -Coalesced [20] current_piece_color#74 ← current_piece_color#13 -Not coalescing [48] current_ypos#71 ← current_ypos#14 -Not coalescing [49] current_xpos#96 ← current_xpos#20 -Not coalescing [50] current_piece_gfx#88 ← current_piece_gfx#15 -Not coalescing [51] current_piece_color#76 ← current_piece_color#11 -Coalesced [54] current_piece#69 ← current_piece#10 -Coalesced [55] current_orientation#73 ← current_orientation#19 -Coalesced [56] current_piece_gfx#85 ← current_piece_gfx#15 -Coalesced [57] current_xpos#95 ← current_xpos#20 -Coalesced [58] current_ypos#70 ← current_ypos#14 -Coalesced [59] current_piece_color#73 ← current_piece_color#11 -Coalesced [60] keyboard_events_size#72 ← keyboard_events_size#16 -Coalesced [61] current_movedown_counter#46 ← current_movedown_counter#10 -Coalesced [64] render_current::ypos2#10 ← render_current::ypos2#0 -Coalesced [69] render_current::i#12 ← render_current::i#4 -Coalesced [70] render_current::xpos#8 ← render_current::xpos#0 -Coalesced [80] render_current::i#14 ← render_current::i#1 -Coalesced [86] render_current::ypos2#11 ← render_current::ypos2#1 -Coalesced [87] render_current::l#10 ← render_current::l#1 -Coalesced [88] render_current::i#10 ← render_current::i#8 -Coalesced (already) [89] render_current::i#11 ← render_current::i#1 -Coalesced [90] render_current::xpos#7 ← render_current::xpos#1 -Coalesced [91] render_current::c#7 ← render_current::c#1 -Coalesced (already) [92] render_current::i#13 ← render_current::i#4 -Coalesced [97] render_playfield::i#6 ← render_playfield::i#3 -Coalesced [98] render_playfield::line#3 ← render_playfield::line#0 -Coalesced [108] render_playfield::l#5 ← render_playfield::l#1 -Coalesced [109] render_playfield::i#5 ← render_playfield::i#1 -Coalesced (already) [110] render_playfield::i#7 ← render_playfield::i#1 -Coalesced [111] render_playfield::line#4 ← render_playfield::line#1 -Coalesced [112] render_playfield::c#3 ← render_playfield::c#1 -Coalesced [115] current_orientation#76 ← current_orientation#14 -Coalesced [116] current_piece_gfx#91 ← current_piece_gfx#14 -Coalesced [121] play_move_rotate::orientation#7 ← play_move_rotate::orientation#2 -Not coalescing [126] current_piece#74 ← current_piece#10 -Coalesced [127] play_collision::orientation#8 ← play_collision::orientation#3 -Coalesced [128] play_collision::ypos#8 ← play_collision::ypos#3 -Coalesced [129] play_collision::xpos#17 ← play_collision::xpos#3 -Coalesced [136] current_orientation#74 ← current_orientation#4 -Coalesced [137] current_piece_gfx#89 ← current_piece_gfx#4 -Coalesced (already) [138] current_orientation#75 ← current_orientation#14 -Coalesced (already) [139] current_piece_gfx#90 ← current_piece_gfx#14 -Coalesced [142] play_move_rotate::orientation#6 ← play_move_rotate::orientation#1 -Coalesced [146] play_collision::ypos2#11 ← play_collision::ypos2#0 -Coalesced [149] play_collision::i#12 ← play_collision::i#3 -Not coalescing [150] play_collision::col#9 ← play_collision::xpos#5 -Coalesced [167] play_collision::ypos2#12 ← play_collision::ypos2#1 -Not coalescing [168] play_collision::i#11 ← play_collision::i#1 -Coalesced [169] play_collision::l#11 ← play_collision::l#1 -Not coalescing [170] play_collision::i#13 ← play_collision::i#1 -Coalesced [171] play_collision::col#10 ← play_collision::col#1 -Coalesced [172] play_collision::c#9 ← play_collision::c#1 -Not coalescing [178] current_piece#73 ← current_piece#10 -Coalesced [179] play_collision::orientation#7 ← play_collision::orientation#2 -Coalesced [180] play_collision::ypos#7 ← play_collision::ypos#2 -Coalesced [181] play_collision::xpos#16 ← play_collision::xpos#2 -Coalesced [187] current_xpos#99 ← current_xpos#3 -Coalesced [190] current_xpos#98 ← current_xpos#16 -Coalesced (already) [191] current_xpos#101 ← current_xpos#16 -Not coalescing [195] current_piece#72 ← current_piece#10 -Coalesced [196] play_collision::orientation#6 ← play_collision::orientation#1 -Coalesced [197] play_collision::ypos#6 ← play_collision::ypos#1 -Coalesced [198] play_collision::xpos#15 ← play_collision::xpos#1 -Coalesced [204] current_xpos#97 ← current_xpos#5 -Coalesced (already) [205] current_xpos#100 ← current_xpos#16 -Coalesced [216] play_move_down::movedown#13 ← play_move_down::movedown#2 -Coalesced [220] play_move_down::movedown#16 ← play_move_down::movedown#3 -Not coalescing [226] current_piece#71 ← current_piece#16 -Coalesced [227] play_collision::orientation#5 ← play_collision::orientation#0 -Coalesced [228] play_collision::ypos#5 ← play_collision::ypos#0 -Coalesced [229] play_collision::xpos#14 ← play_collision::xpos#0 -Coalesced [241] current_piece_gfx#92 ← current_piece_gfx#17 -Coalesced [242] current_piece_color#77 ← current_piece_color#13 -Coalesced [244] current_ypos#74 ← current_ypos#30 -Coalesced [245] current_piece#78 ← current_piece#20 -Coalesced [246] current_orientation#79 ← current_orientation#29 -Coalesced (already) [247] current_piece_gfx#95 ← current_piece_gfx#27 -Coalesced [248] current_xpos#104 ← current_xpos#34 -Coalesced (already) [249] current_piece_color#80 ← current_piece_color#21 -Coalesced [253] current_ypos#72 ← current_ypos#1 -Coalesced (already) [254] current_piece#76 ← current_piece#16 -Coalesced (already) [255] current_orientation#77 ← current_orientation#10 -Coalesced (already) [256] current_piece_gfx#93 ← current_piece_gfx#10 -Coalesced (already) [257] current_xpos#102 ← current_xpos#11 -Coalesced (already) [258] current_piece_color#78 ← current_piece_color#16 -Coalesced [259] current_movedown_counter#47 ← current_movedown_counter#1 -Coalesced (already) [260] current_ypos#73 ← current_ypos#22 -Coalesced (already) [261] current_piece#77 ← current_piece#16 -Coalesced (already) [262] current_orientation#78 ← current_orientation#10 -Coalesced (already) [263] current_piece_gfx#94 ← current_piece_gfx#10 -Coalesced (already) [264] current_xpos#103 ← current_xpos#11 -Coalesced (already) [265] current_piece_color#79 ← current_piece_color#16 -Coalesced [266] play_move_down::movedown#17 ← play_move_down::movedown#7 -Coalesced [267] play_move_down::movedown#15 ← play_move_down::movedown#10 -Coalesced (already) [268] play_move_down::movedown#14 ← play_move_down::movedown#10 -Coalesced [281] play_spawn_current::piece_idx#4 ← play_spawn_current::piece_idx#1 -Coalesced [286] play_remove_lines::r#10 ← play_remove_lines::r#3 -Coalesced [287] play_remove_lines::w#14 ← play_remove_lines::w#12 -Coalesced [300] play_remove_lines::w#16 ← play_remove_lines::w#2 -Coalesced [304] play_remove_lines::w#18 ← play_remove_lines::w#11 -Coalesced [310] play_remove_lines::w#19 ← play_remove_lines::w#3 -Coalesced [311] play_remove_lines::r#9 ← play_remove_lines::r#1 -Coalesced [312] play_remove_lines::w#13 ← play_remove_lines::w#11 -Coalesced [313] play_remove_lines::y#9 ← play_remove_lines::y#1 -Coalesced [314] play_remove_lines::w#17 ← play_remove_lines::w#1 -Coalesced (already) [315] play_remove_lines::r#11 ← play_remove_lines::r#1 -Coalesced (already) [316] play_remove_lines::w#15 ← play_remove_lines::w#1 -Coalesced [317] play_remove_lines::x#5 ← play_remove_lines::x#1 -Coalesced [318] play_remove_lines::full#5 ← play_remove_lines::full#2 -Coalesced (already) [319] play_remove_lines::full#6 ← play_remove_lines::full#4 -Coalesced [321] play_lock_current::ypos2#7 ← play_lock_current::ypos2#0 -Coalesced [325] play_lock_current::i#8 ← play_lock_current::i#3 -Coalesced [326] play_lock_current::col#5 ← play_lock_current::col#0 -Coalesced [338] play_lock_current::ypos2#8 ← play_lock_current::ypos2#1 -Not coalescing [339] play_lock_current::i#7 ← play_lock_current::i#1 -Coalesced [340] play_lock_current::l#7 ← play_lock_current::l#1 -Not coalescing [341] play_lock_current::i#9 ← play_lock_current::i#1 -Coalesced [342] play_lock_current::col#6 ← play_lock_current::col#1 -Coalesced [343] play_lock_current::c#5 ← play_lock_current::c#1 -Coalesced [353] keyboard_event_get::return#6 ← keyboard_event_get::return#1 -Coalesced [354] keyboard_events_size#74 ← keyboard_events_size#4 -Coalesced [357] keyboard_events_size#73 ← keyboard_events_size#13 -Coalesced [358] keyboard_events_size#75 ← keyboard_events_size#19 -Coalesced [366] keyboard_event_scan::keycode#17 ← keyboard_event_scan::keycode#1 -Coalesced (already) [367] keyboard_events_size#77 ← keyboard_events_size#29 -Coalesced [383] keyboard_modifiers#53 ← keyboard_modifiers#3 -Coalesced [390] keyboard_modifiers#55 ← keyboard_modifiers#4 -Coalesced [398] keyboard_modifiers#56 ← keyboard_modifiers#12 -Coalesced [399] keyboard_modifiers#54 ← keyboard_modifiers#11 -Coalesced [400] keyboard_event_scan::row#15 ← keyboard_event_scan::row#1 -Coalesced [401] keyboard_event_scan::keycode#16 ← keyboard_event_scan::keycode#14 -Coalesced (already) [402] keyboard_events_size#76 ← keyboard_events_size#13 -Coalesced [403] keyboard_event_scan::keycode#19 ← keyboard_event_scan::keycode#11 -Coalesced [404] keyboard_events_size#79 ← keyboard_events_size#29 -Coalesced [414] keyboard_events_size#81 ← keyboard_events_size#2 -Coalesced [420] keyboard_event_scan::keycode#18 ← keyboard_event_scan::keycode#15 -Coalesced [421] keyboard_events_size#78 ← keyboard_events_size#30 -Coalesced [422] keyboard_event_scan::col#9 ← keyboard_event_scan::col#1 -Coalesced (already) [423] keyboard_event_scan::keycode#20 ← keyboard_event_scan::keycode#15 -Coalesced (already) [424] keyboard_events_size#80 ← keyboard_events_size#30 -Coalesced [428] keyboard_events_size#84 ← keyboard_events_size#1 -Coalesced (already) [429] keyboard_events_size#83 ← keyboard_events_size#10 -Coalesced (already) [430] keyboard_events_size#82 ← keyboard_events_size#10 -Coalesced [445] play_init::j#3 ← play_init::j#1 -Coalesced [446] play_init::pli#3 ← play_init::pli#1 -Coalesced [447] play_init::idx#3 ← play_init::idx#1 -Coalesced [468] render_init::line#5 ← render_init::line#1 -Coalesced [469] render_init::l#5 ← render_init::l#1 -Coalesced [470] render_init::c#3 ← render_init::c#1 -Coalesced [471] render_init::i#3 ← render_init::i#1 -Coalesced [472] render_init::li#3 ← render_init::li#1 -Coalesced [475] fill::addr#3 ← fill::addr#0 -Coalesced [481] fill::addr#4 ← fill::addr#1 -Coalesced down to 65 phi equivalence classes +Created 109 initial phi equivalence classes +Not coalescing [16] current_piece_gfx#87 ← current_piece_gfx#17 +Not coalescing [17] current_piece_char#75 ← current_piece_char#13 +Coalesced [20] current_piece_gfx#86 ← current_piece_gfx#17 +Coalesced [21] current_piece_char#74 ← current_piece_char#13 +Not coalescing [49] current_ypos#71 ← current_ypos#14 +Not coalescing [50] current_xpos#96 ← current_xpos#20 +Not coalescing [51] current_piece_gfx#88 ← current_piece_gfx#15 +Not coalescing [52] current_piece_char#76 ← current_piece_char#11 +Coalesced [55] current_piece#69 ← current_piece#10 +Coalesced [56] current_orientation#73 ← current_orientation#19 +Coalesced [57] current_piece_gfx#85 ← current_piece_gfx#15 +Coalesced [58] current_xpos#95 ← current_xpos#20 +Coalesced [59] current_ypos#70 ← current_ypos#14 +Coalesced [60] current_piece_char#73 ← current_piece_char#11 +Coalesced [61] keyboard_events_size#72 ← keyboard_events_size#16 +Coalesced [62] current_movedown_counter#46 ← current_movedown_counter#10 +Coalesced [65] render_current::ypos2#10 ← render_current::ypos2#0 +Coalesced [70] render_current::i#12 ← render_current::i#4 +Coalesced [71] render_current::xpos#8 ← render_current::xpos#0 +Coalesced [81] render_current::i#14 ← render_current::i#1 +Coalesced [87] render_current::ypos2#11 ← render_current::ypos2#1 +Coalesced [88] render_current::l#10 ← render_current::l#1 +Coalesced [89] render_current::i#10 ← render_current::i#8 +Coalesced (already) [90] render_current::i#11 ← render_current::i#1 +Coalesced [91] render_current::xpos#7 ← render_current::xpos#1 +Coalesced [92] render_current::c#7 ← render_current::c#1 +Coalesced (already) [93] render_current::i#13 ← render_current::i#4 +Coalesced [98] render_playfield::i#6 ← render_playfield::i#3 +Coalesced [99] render_playfield::line#3 ← render_playfield::line#0 +Coalesced [109] render_playfield::l#5 ← render_playfield::l#1 +Coalesced [110] render_playfield::i#5 ← render_playfield::i#1 +Coalesced (already) [111] render_playfield::i#7 ← render_playfield::i#1 +Coalesced [112] render_playfield::line#4 ← render_playfield::line#1 +Coalesced [113] render_playfield::c#3 ← render_playfield::c#1 +Coalesced [116] current_orientation#76 ← current_orientation#14 +Coalesced [117] current_piece_gfx#91 ← current_piece_gfx#14 +Coalesced [122] play_move_rotate::orientation#7 ← play_move_rotate::orientation#2 +Not coalescing [127] current_piece#74 ← current_piece#10 +Coalesced [128] play_collision::orientation#8 ← play_collision::orientation#3 +Coalesced [129] play_collision::ypos#8 ← play_collision::ypos#3 +Coalesced [130] play_collision::xpos#17 ← play_collision::xpos#3 +Coalesced [137] current_orientation#74 ← current_orientation#4 +Coalesced [138] current_piece_gfx#89 ← current_piece_gfx#4 +Coalesced (already) [139] current_orientation#75 ← current_orientation#14 +Coalesced (already) [140] current_piece_gfx#90 ← current_piece_gfx#14 +Coalesced [143] play_move_rotate::orientation#6 ← play_move_rotate::orientation#1 +Coalesced [147] play_collision::ypos2#11 ← play_collision::ypos2#0 +Coalesced [150] play_collision::i#12 ← play_collision::i#3 +Not coalescing [151] play_collision::col#9 ← play_collision::xpos#5 +Coalesced [168] play_collision::ypos2#12 ← play_collision::ypos2#1 +Not coalescing [169] play_collision::i#11 ← play_collision::i#1 +Coalesced [170] play_collision::l#11 ← play_collision::l#1 +Not coalescing [171] play_collision::i#13 ← play_collision::i#1 +Coalesced [172] play_collision::col#10 ← play_collision::col#1 +Coalesced [173] play_collision::c#9 ← play_collision::c#1 +Not coalescing [179] current_piece#73 ← current_piece#10 +Coalesced [180] play_collision::orientation#7 ← play_collision::orientation#2 +Coalesced [181] play_collision::ypos#7 ← play_collision::ypos#2 +Coalesced [182] play_collision::xpos#16 ← play_collision::xpos#2 +Coalesced [188] current_xpos#99 ← current_xpos#3 +Coalesced [191] current_xpos#98 ← current_xpos#16 +Coalesced (already) [192] current_xpos#101 ← current_xpos#16 +Not coalescing [196] current_piece#72 ← current_piece#10 +Coalesced [197] play_collision::orientation#6 ← play_collision::orientation#1 +Coalesced [198] play_collision::ypos#6 ← play_collision::ypos#1 +Coalesced [199] play_collision::xpos#15 ← play_collision::xpos#1 +Coalesced [205] current_xpos#97 ← current_xpos#5 +Coalesced (already) [206] current_xpos#100 ← current_xpos#16 +Coalesced [217] play_move_down::movedown#13 ← play_move_down::movedown#2 +Coalesced [221] play_move_down::movedown#16 ← play_move_down::movedown#3 +Not coalescing [227] current_piece#71 ← current_piece#16 +Coalesced [228] play_collision::orientation#5 ← play_collision::orientation#0 +Coalesced [229] play_collision::ypos#5 ← play_collision::ypos#0 +Coalesced [230] play_collision::xpos#14 ← play_collision::xpos#0 +Coalesced [242] current_piece_gfx#92 ← current_piece_gfx#17 +Coalesced [243] current_piece_char#77 ← current_piece_char#13 +Coalesced [245] current_ypos#74 ← current_ypos#30 +Coalesced [246] current_piece#78 ← current_piece#20 +Coalesced [247] current_orientation#79 ← current_orientation#29 +Coalesced (already) [248] current_piece_gfx#95 ← current_piece_gfx#27 +Coalesced [249] current_xpos#104 ← current_xpos#34 +Coalesced (already) [250] current_piece_char#80 ← current_piece_char#21 +Coalesced [254] current_ypos#72 ← current_ypos#1 +Coalesced (already) [255] current_piece#76 ← current_piece#16 +Coalesced (already) [256] current_orientation#77 ← current_orientation#10 +Coalesced (already) [257] current_piece_gfx#93 ← current_piece_gfx#10 +Coalesced (already) [258] current_xpos#102 ← current_xpos#11 +Coalesced (already) [259] current_piece_char#78 ← current_piece_char#16 +Coalesced [260] current_movedown_counter#47 ← current_movedown_counter#1 +Coalesced (already) [261] current_ypos#73 ← current_ypos#22 +Coalesced (already) [262] current_piece#77 ← current_piece#16 +Coalesced (already) [263] current_orientation#78 ← current_orientation#10 +Coalesced (already) [264] current_piece_gfx#94 ← current_piece_gfx#10 +Coalesced (already) [265] current_xpos#103 ← current_xpos#11 +Coalesced (already) [266] current_piece_char#79 ← current_piece_char#16 +Coalesced [267] play_move_down::movedown#17 ← play_move_down::movedown#7 +Coalesced [268] play_move_down::movedown#15 ← play_move_down::movedown#10 +Coalesced (already) [269] play_move_down::movedown#14 ← play_move_down::movedown#10 +Coalesced [282] play_spawn_current::piece_idx#4 ← play_spawn_current::piece_idx#1 +Coalesced [287] play_remove_lines::r#10 ← play_remove_lines::r#3 +Coalesced [288] play_remove_lines::w#14 ← play_remove_lines::w#12 +Coalesced [301] play_remove_lines::w#16 ← play_remove_lines::w#2 +Coalesced [305] play_remove_lines::w#18 ← play_remove_lines::w#11 +Coalesced [311] play_remove_lines::w#19 ← play_remove_lines::w#3 +Coalesced [312] play_remove_lines::r#9 ← play_remove_lines::r#1 +Coalesced [313] play_remove_lines::w#13 ← play_remove_lines::w#11 +Coalesced [314] play_remove_lines::y#9 ← play_remove_lines::y#1 +Coalesced [315] play_remove_lines::w#17 ← play_remove_lines::w#1 +Coalesced (already) [316] play_remove_lines::r#11 ← play_remove_lines::r#1 +Coalesced (already) [317] play_remove_lines::w#15 ← play_remove_lines::w#1 +Coalesced [318] play_remove_lines::x#5 ← play_remove_lines::x#1 +Coalesced [319] play_remove_lines::full#5 ← play_remove_lines::full#2 +Coalesced (already) [320] play_remove_lines::full#6 ← play_remove_lines::full#4 +Coalesced [322] play_lock_current::ypos2#7 ← play_lock_current::ypos2#0 +Coalesced [326] play_lock_current::i#8 ← play_lock_current::i#3 +Coalesced [327] play_lock_current::col#5 ← play_lock_current::col#0 +Coalesced [339] play_lock_current::ypos2#8 ← play_lock_current::ypos2#1 +Not coalescing [340] play_lock_current::i#7 ← play_lock_current::i#1 +Coalesced [341] play_lock_current::l#7 ← play_lock_current::l#1 +Not coalescing [342] play_lock_current::i#9 ← play_lock_current::i#1 +Coalesced [343] play_lock_current::col#6 ← play_lock_current::col#1 +Coalesced [344] play_lock_current::c#5 ← play_lock_current::c#1 +Coalesced [354] keyboard_event_get::return#6 ← keyboard_event_get::return#1 +Coalesced [355] keyboard_events_size#74 ← keyboard_events_size#4 +Coalesced [358] keyboard_events_size#73 ← keyboard_events_size#13 +Coalesced [359] keyboard_events_size#75 ← keyboard_events_size#19 +Coalesced [367] keyboard_event_scan::keycode#17 ← keyboard_event_scan::keycode#1 +Coalesced (already) [368] keyboard_events_size#77 ← keyboard_events_size#29 +Coalesced [384] keyboard_modifiers#53 ← keyboard_modifiers#3 +Coalesced [391] keyboard_modifiers#55 ← keyboard_modifiers#4 +Coalesced [399] keyboard_modifiers#56 ← keyboard_modifiers#12 +Coalesced [400] keyboard_modifiers#54 ← keyboard_modifiers#11 +Coalesced [401] keyboard_event_scan::row#15 ← keyboard_event_scan::row#1 +Coalesced [402] keyboard_event_scan::keycode#16 ← keyboard_event_scan::keycode#14 +Coalesced (already) [403] keyboard_events_size#76 ← keyboard_events_size#13 +Coalesced [404] keyboard_event_scan::keycode#19 ← keyboard_event_scan::keycode#11 +Coalesced [405] keyboard_events_size#79 ← keyboard_events_size#29 +Coalesced [415] keyboard_events_size#81 ← keyboard_events_size#2 +Coalesced [421] keyboard_event_scan::keycode#18 ← keyboard_event_scan::keycode#15 +Coalesced [422] keyboard_events_size#78 ← keyboard_events_size#30 +Coalesced [423] keyboard_event_scan::col#9 ← keyboard_event_scan::col#1 +Coalesced (already) [424] keyboard_event_scan::keycode#20 ← keyboard_event_scan::keycode#15 +Coalesced (already) [425] keyboard_events_size#80 ← keyboard_events_size#30 +Coalesced [429] keyboard_events_size#84 ← keyboard_events_size#1 +Coalesced (already) [430] keyboard_events_size#83 ← keyboard_events_size#10 +Coalesced (already) [431] keyboard_events_size#82 ← keyboard_events_size#10 +Coalesced [446] play_init::j#3 ← play_init::j#1 +Coalesced [447] play_init::pli#3 ← play_init::pli#1 +Coalesced [448] play_init::idx#3 ← play_init::idx#1 +Coalesced [479] render_init::line#5 ← render_init::line#1 +Coalesced [480] render_init::l#5 ← render_init::l#1 +Coalesced [481] render_init::c#3 ← render_init::c#1 +Coalesced [482] render_init::i#3 ← render_init::i#1 +Coalesced [483] render_init::li#3 ← render_init::li#1 +Coalesced [486] render_screen_original::screen#11 ← render_screen_original::screen#7 +Coalesced [492] render_screen_original::orig#8 ← render_screen_original::orig#4 +Coalesced [493] render_screen_original::screen#13 ← render_screen_original::screen#1 +Coalesced [494] render_screen_original::x#8 ← render_screen_original::x#1 +Coalesced [502] render_screen_original::screen#15 ← render_screen_original::screen#2 +Coalesced [503] render_screen_original::x#10 ← render_screen_original::x#2 +Coalesced [512] render_screen_original::screen#10 ← render_screen_original::screen#3 +Coalesced [513] render_screen_original::orig#7 ← render_screen_original::orig#1 +Coalesced [514] render_screen_original::y#7 ← render_screen_original::y#1 +Coalesced [515] render_screen_original::screen#16 ← render_screen_original::screen#3 +Coalesced [516] render_screen_original::x#11 ← render_screen_original::x#3 +Coalesced (already) [517] render_screen_original::orig#9 ← render_screen_original::orig#1 +Coalesced [518] render_screen_original::screen#14 ← render_screen_original::screen#2 +Coalesced [519] render_screen_original::x#9 ← render_screen_original::x#2 +Coalesced (already) [520] render_screen_original::screen#12 ← render_screen_original::screen#1 +Coalesced [521] render_screen_original::x#7 ← render_screen_original::x#1 +Coalesced [528] fill::addr#3 ← fill::addr#1 +Coalesced down to 68 phi equivalence classes Culled Empty Block (label) render_current::@14 Culled Empty Block (label) render_current::@11 Culled Empty Block (label) render_current::@12 @@ -5303,12 +5657,18 @@ Culled Empty Block (label) keyboard_event_scan::@33 Culled Empty Block (label) keyboard_event_scan::@36 Culled Empty Block (label) keyboard_event_scan::@35 Culled Empty Block (label) play_init::@3 -Culled Empty Block (label) render_init::@10 +Culled Empty Block (label) render_init::@12 +Culled Empty Block (label) render_init::@13 Culled Empty Block (label) render_init::@11 -Culled Empty Block (label) render_init::@9 +Culled Empty Block (label) render_screen_original::@11 +Culled Empty Block (label) render_screen_original::@13 +Culled Empty Block (label) render_screen_original::@9 +Culled Empty Block (label) render_screen_original::@14 +Culled Empty Block (label) render_screen_original::@12 +Culled Empty Block (label) render_screen_original::@10 Culled Empty Block (label) fill::@3 Adding NOP phi() at start of @begin -Adding NOP phi() at start of @26 +Adding NOP phi() at start of @27 Adding NOP phi() at start of @end Adding NOP phi() at start of main Adding NOP phi() at start of main::@22 @@ -5329,731 +5689,796 @@ Adding NOP phi() at start of keyboard_event_scan Adding NOP phi() at start of keyboard_event_scan::@20 Adding NOP phi() at start of keyboard_event_scan::@21 Adding NOP phi() at start of play_init -Adding NOP phi() at start of render_init::@7 +Adding NOP phi() at start of render_init +Adding NOP phi() at start of render_init::vicSelectGfxBank1_toDd001 +Adding NOP phi() at start of render_init::toD0181 +Adding NOP phi() at start of render_init::@9 +Adding NOP phi() at start of render_screen_original +Adding NOP phi() at start of fill FINAL CONTROL FLOW GRAPH @begin: scope:[] from [0] phi() to:@14 @14: scope:[] from @begin - kickasm(location (const byte*) PLAYFIELD_CHARSET#0) {{ .var charset = LoadPicture("nes-charset.png", List().add($000000, $ffffff)) - .for (var c=0; c<32; c++) - .for (var y=0;y<8; y++) - .byte charset.getSinglecolorByte(c,y) + kickasm(location (const byte*) PLAYFIELD_CHARSET#0) {{ .fill 8,$00 // Place a filled char at the start of the charset + .import binary "nes-screen.imap" }} - to:@26 -@26: scope:[] from @14 - [2] phi() - [3] call main + kickasm(location (const byte*) PLAYFIELD_SCREEN_ORIGINAL#0) {{ .import binary "nes-screen.iscr" + }} + to:@27 +@27: scope:[] from @14 + [3] phi() + [4] call main to:@end -@end: scope:[] from @26 - [4] phi() -main: scope:[main] from @26 +@end: scope:[] from @27 [5] phi() - [6] call sid_rnd_init +main: scope:[main] from @27 + [6] phi() + [7] call sid_rnd_init to:main::@21 main::@21: scope:[main] from main asm { sei } - [8] call render_init + [9] call render_init to:main::@22 main::@22: scope:[main] from main::@21 - [9] phi() - [10] call play_init + [10] phi() + [11] call play_init to:main::@23 main::@23: scope:[main] from main::@22 - [11] phi() - [12] call play_spawn_current + [12] phi() + [13] call play_spawn_current to:main::@24 main::@24: scope:[main] from main::@23 - [13] phi() - [14] call render_playfield + [14] phi() + [15] call render_playfield to:main::@25 main::@25: scope:[main] from main::@24 - [15] (byte*~) current_piece_gfx#87 ← (byte*) current_piece_gfx#17 - [16] (byte~) current_piece_color#75 ← (byte) current_piece_color#13 - [17] call render_current - [18] (byte*~) current_piece#70 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) + [16] (byte*~) current_piece_gfx#87 ← (byte*) current_piece_gfx#17 + [17] (byte~) current_piece_char#75 ← (byte) current_piece_char#13 + [18] call render_current + [19] (byte*~) current_piece#70 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) to:main::@1 main::@1: scope:[main] from main::@10 main::@25 - [19] (byte) current_movedown_counter#12 ← phi( main::@10/(byte) current_movedown_counter#10 main::@25/(byte/signed byte/word/signed word/dword/signed dword) 0 ) - [19] (byte) keyboard_events_size#19 ← phi( main::@10/(byte) keyboard_events_size#16 main::@25/(byte/signed byte/word/signed word/dword/signed dword) 0 ) - [19] (byte) current_piece_color#16 ← phi( main::@10/(byte) current_piece_color#11 main::@25/(byte) current_piece_color#13 ) - [19] (byte) current_ypos#22 ← phi( main::@10/(byte) current_ypos#14 main::@25/(byte/signed byte/word/signed word/dword/signed dword) 0 ) - [19] (byte) current_xpos#11 ← phi( main::@10/(byte) current_xpos#20 main::@25/(byte/signed byte/word/signed word/dword/signed dword) 3 ) - [19] (byte*) current_piece_gfx#10 ← phi( main::@10/(byte*) current_piece_gfx#15 main::@25/(byte*) current_piece_gfx#17 ) - [19] (byte) current_orientation#10 ← phi( main::@10/(byte) current_orientation#19 main::@25/(byte/signed byte/word/signed word/dword/signed dword) 0 ) - [19] (byte*) current_piece#16 ← phi( main::@10/(byte*) current_piece#10 main::@25/(byte*~) current_piece#70 ) + [20] (byte) current_movedown_counter#12 ← phi( main::@10/(byte) current_movedown_counter#10 main::@25/(byte/signed byte/word/signed word/dword/signed dword) 0 ) + [20] (byte) keyboard_events_size#19 ← phi( main::@10/(byte) keyboard_events_size#16 main::@25/(byte/signed byte/word/signed word/dword/signed dword) 0 ) + [20] (byte) current_piece_char#16 ← phi( main::@10/(byte) current_piece_char#11 main::@25/(byte) current_piece_char#13 ) + [20] (byte) current_ypos#22 ← phi( main::@10/(byte) current_ypos#14 main::@25/(byte/signed byte/word/signed word/dword/signed dword) 0 ) + [20] (byte) current_xpos#11 ← phi( main::@10/(byte) current_xpos#20 main::@25/(byte/signed byte/word/signed word/dword/signed dword) 3 ) + [20] (byte*) current_piece_gfx#10 ← phi( main::@10/(byte*) current_piece_gfx#15 main::@25/(byte*) current_piece_gfx#17 ) + [20] (byte) current_orientation#10 ← phi( main::@10/(byte) current_orientation#19 main::@25/(byte/signed byte/word/signed word/dword/signed dword) 0 ) + [20] (byte*) current_piece#16 ← phi( main::@10/(byte*) current_piece#10 main::@25/(byte*~) current_piece#70 ) to:main::@4 main::@4: scope:[main] from main::@1 main::@4 - [20] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@4 + [21] 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 - [21] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 254) goto main::@7 + [22] 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 - [22] *((const byte*) BORDERCOL#0) ← ++ *((const byte*) BORDERCOL#0) - [23] call keyboard_event_scan + [23] *((const byte*) BORDERCOL#0) ← ++ *((const byte*) BORDERCOL#0) + [24] call keyboard_event_scan to:main::@27 main::@27: scope:[main] from main::@9 - [24] phi() - [25] call keyboard_event_get - [26] (byte) keyboard_event_get::return#3 ← (byte) keyboard_event_get::return#2 + [25] phi() + [26] call keyboard_event_get + [27] (byte) keyboard_event_get::return#3 ← (byte) keyboard_event_get::return#2 to:main::@28 main::@28: scope:[main] from main::@27 - [27] (byte) main::key_event#0 ← (byte) keyboard_event_get::return#3 - [28] (byte) play_move_down::key_event#0 ← (byte) main::key_event#0 - [29] call play_move_down - [30] (byte) play_move_down::return#3 ← (byte) play_move_down::return#2 + [28] (byte) main::key_event#0 ← (byte) keyboard_event_get::return#3 + [29] (byte) play_move_down::key_event#0 ← (byte) main::key_event#0 + [30] call play_move_down + [31] (byte) play_move_down::return#3 ← (byte) play_move_down::return#2 to:main::@29 main::@29: scope:[main] from main::@28 - [31] (byte~) main::$10 ← (byte) play_move_down::return#3 - [32] (byte) main::render#1 ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte~) main::$10 - [33] (byte) play_move_leftright::key_event#0 ← (byte) main::key_event#0 - [34] call play_move_leftright - [35] (byte) play_move_leftright::return#4 ← (byte) play_move_leftright::return#1 + [32] (byte~) main::$10 ← (byte) play_move_down::return#3 + [33] (byte) main::render#1 ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte~) main::$10 + [34] (byte) play_move_leftright::key_event#0 ← (byte) main::key_event#0 + [35] call play_move_leftright + [36] (byte) play_move_leftright::return#4 ← (byte) play_move_leftright::return#1 to:main::@30 main::@30: scope:[main] from main::@29 - [36] (byte~) main::$11 ← (byte) play_move_leftright::return#4 - [37] (byte) main::render#2 ← (byte) main::render#1 + (byte~) main::$11 - [38] (byte) play_move_rotate::key_event#0 ← (byte) main::key_event#0 - [39] call play_move_rotate - [40] (byte) play_move_rotate::return#4 ← (byte) play_move_rotate::return#1 + [37] (byte~) main::$11 ← (byte) play_move_leftright::return#4 + [38] (byte) main::render#2 ← (byte) main::render#1 + (byte~) main::$11 + [39] (byte) play_move_rotate::key_event#0 ← (byte) main::key_event#0 + [40] call play_move_rotate + [41] (byte) play_move_rotate::return#4 ← (byte) play_move_rotate::return#1 to:main::@31 main::@31: scope:[main] from main::@30 - [41] (byte~) main::$12 ← (byte) play_move_rotate::return#4 - [42] (byte) main::render#3 ← (byte) main::render#2 + (byte~) main::$12 - [43] if((byte) main::render#3==(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@10 + [42] (byte~) main::$12 ← (byte) play_move_rotate::return#4 + [43] (byte) main::render#3 ← (byte) main::render#2 + (byte~) main::$12 + [44] if((byte) main::render#3==(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@10 to:main::@19 main::@19: scope:[main] from main::@31 - [44] phi() - [45] call render_playfield + [45] phi() + [46] call render_playfield to:main::@32 main::@32: scope:[main] from main::@19 - [46] (byte~) current_ypos#71 ← (byte) current_ypos#14 - [47] (byte~) current_xpos#96 ← (byte) current_xpos#20 - [48] (byte*~) current_piece_gfx#88 ← (byte*) current_piece_gfx#15 - [49] (byte~) current_piece_color#76 ← (byte) current_piece_color#11 - [50] call render_current + [47] (byte~) current_ypos#71 ← (byte) current_ypos#14 + [48] (byte~) current_xpos#96 ← (byte) current_xpos#20 + [49] (byte*~) current_piece_gfx#88 ← (byte*) current_piece_gfx#15 + [50] (byte~) current_piece_char#76 ← (byte) current_piece_char#11 + [51] call render_current to:main::@10 main::@10: scope:[main] from main::@31 main::@32 - [51] *((const byte*) BORDERCOL#0) ← -- *((const byte*) BORDERCOL#0) + [52] *((const byte*) BORDERCOL#0) ← -- *((const byte*) BORDERCOL#0) to:main::@1 render_current: scope:[render_current] from main::@25 main::@32 - [52] (byte) current_piece_color#62 ← phi( main::@25/(byte~) current_piece_color#75 main::@32/(byte~) current_piece_color#76 ) - [52] (byte*) current_piece_gfx#53 ← phi( main::@25/(byte*~) current_piece_gfx#87 main::@32/(byte*~) current_piece_gfx#88 ) - [52] (byte) current_xpos#48 ← phi( main::@25/(byte/signed byte/word/signed word/dword/signed dword) 3 main::@32/(byte~) current_xpos#96 ) - [52] (byte) current_ypos#10 ← phi( main::@25/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@32/(byte~) current_ypos#71 ) - [53] (byte) render_current::ypos2#0 ← (byte) current_ypos#10 << (byte/signed byte/word/signed word/dword/signed dword) 1 + [53] (byte) current_piece_char#62 ← phi( main::@25/(byte~) current_piece_char#75 main::@32/(byte~) current_piece_char#76 ) + [53] (byte*) current_piece_gfx#53 ← phi( main::@25/(byte*~) current_piece_gfx#87 main::@32/(byte*~) current_piece_gfx#88 ) + [53] (byte) current_xpos#48 ← phi( main::@25/(byte/signed byte/word/signed word/dword/signed dword) 3 main::@32/(byte~) current_xpos#96 ) + [53] (byte) current_ypos#10 ← phi( main::@25/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@32/(byte~) current_ypos#71 ) + [54] (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::@2 - [54] (byte) render_current::i#4 ← phi( render_current/(byte/signed byte/word/signed word/dword/signed dword) 0 render_current::@2/(byte) render_current::i#8 ) - [54] (byte) render_current::l#3 ← phi( render_current/(byte/signed byte/word/signed word/dword/signed dword) 0 render_current::@2/(byte) render_current::l#1 ) - [54] (byte) render_current::ypos2#2 ← phi( render_current/(byte) render_current::ypos2#0 render_current::@2/(byte) render_current::ypos2#1 ) - [55] 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 + [55] (byte) render_current::i#4 ← phi( render_current/(byte/signed byte/word/signed word/dword/signed dword) 0 render_current::@2/(byte) render_current::i#8 ) + [55] (byte) render_current::l#3 ← phi( render_current/(byte/signed byte/word/signed word/dword/signed dword) 0 render_current::@2/(byte) render_current::l#1 ) + [55] (byte) render_current::ypos2#2 ← phi( render_current/(byte) render_current::ypos2#0 render_current::@2/(byte) render_current::ypos2#1 ) + [56] if((byte) render_current::ypos2#2>=(byte/signed byte/word/signed word/dword/signed dword) 2*(const byte) PLAYFIELD_LINES#0) goto render_current::@2 to:render_current::@6 render_current::@6: scope:[render_current] from render_current::@1 - [56] (byte*) render_current::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0+3]) screen_lines#0 + (byte) render_current::ypos2#2) - [57] (byte) render_current::xpos#0 ← (byte) current_xpos#48 + [57] (byte*) render_current::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0+3]) screen_lines#0 + (byte) render_current::ypos2#2) + [58] (byte) render_current::xpos#0 ← (byte) current_xpos#48 to:render_current::@3 render_current::@3: scope:[render_current] from render_current::@4 render_current::@6 - [58] (byte) render_current::c#2 ← phi( render_current::@4/(byte) render_current::c#1 render_current::@6/(byte/signed byte/word/signed word/dword/signed dword) 0 ) - [58] (byte) render_current::xpos#2 ← phi( render_current::@4/(byte) render_current::xpos#1 render_current::@6/(byte) render_current::xpos#0 ) - [58] (byte) render_current::i#2 ← phi( render_current::@4/(byte) render_current::i#1 render_current::@6/(byte) render_current::i#4 ) - [59] (byte) render_current::current_cell#0 ← *((byte*) current_piece_gfx#53 + (byte) render_current::i#2) - [60] (byte) render_current::i#1 ← ++ (byte) render_current::i#2 - [61] if((byte) render_current::current_cell#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto render_current::@4 + [59] (byte) render_current::c#2 ← phi( render_current::@4/(byte) render_current::c#1 render_current::@6/(byte/signed byte/word/signed word/dword/signed dword) 0 ) + [59] (byte) render_current::xpos#2 ← phi( render_current::@4/(byte) render_current::xpos#1 render_current::@6/(byte) render_current::xpos#0 ) + [59] (byte) render_current::i#2 ← phi( render_current::@4/(byte) render_current::i#1 render_current::@6/(byte) render_current::i#4 ) + [60] (byte) render_current::current_cell#0 ← *((byte*) current_piece_gfx#53 + (byte) render_current::i#2) + [61] (byte) render_current::i#1 ← ++ (byte) render_current::i#2 + [62] if((byte) render_current::current_cell#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto render_current::@4 to:render_current::@7 render_current::@7: scope:[render_current] from render_current::@3 - [62] if((byte) render_current::xpos#2>=(const byte) PLAYFIELD_COLS#0) goto render_current::@4 + [63] if((byte) render_current::xpos#2>=(const byte) PLAYFIELD_COLS#0) goto render_current::@4 to:render_current::@8 render_current::@8: scope:[render_current] from render_current::@7 - [63] *((byte*) render_current::screen_line#0 + (byte) render_current::xpos#2) ← (byte) current_piece_color#62 + [64] *((byte*) render_current::screen_line#0 + (byte) render_current::xpos#2) ← (byte) current_piece_char#62 to:render_current::@4 render_current::@4: scope:[render_current] from render_current::@3 render_current::@7 render_current::@8 - [64] (byte) render_current::xpos#1 ← ++ (byte) render_current::xpos#2 - [65] (byte) render_current::c#1 ← ++ (byte) render_current::c#2 - [66] if((byte) render_current::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_current::@3 + [65] (byte) render_current::xpos#1 ← ++ (byte) render_current::xpos#2 + [66] (byte) render_current::c#1 ← ++ (byte) render_current::c#2 + [67] if((byte) render_current::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_current::@3 to:render_current::@2 render_current::@2: scope:[render_current] from render_current::@1 render_current::@4 - [67] (byte) render_current::i#8 ← phi( render_current::@1/(byte) render_current::i#4 render_current::@4/(byte) render_current::i#1 ) - [68] (byte) render_current::ypos2#1 ← (byte) render_current::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 - [69] (byte) render_current::l#1 ← ++ (byte) render_current::l#3 - [70] if((byte) render_current::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_current::@1 + [68] (byte) render_current::i#8 ← phi( render_current::@1/(byte) render_current::i#4 render_current::@4/(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#3 + [71] if((byte) render_current::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_current::@1 to:render_current::@return render_current::@return: scope:[render_current] from render_current::@2 - [71] return + [72] return to:@return render_playfield: scope:[render_playfield] from main::@19 main::@24 - [72] phi() + [73] phi() to:render_playfield::@1 render_playfield::@1: scope:[render_playfield] from render_playfield render_playfield::@3 - [73] (byte) render_playfield::i#3 ← phi( render_playfield/(byte/signed byte/word/signed word/dword/signed dword) 0 render_playfield::@3/(byte) render_playfield::i#1 ) - [73] (byte) render_playfield::l#2 ← phi( render_playfield/(byte/signed byte/word/signed word/dword/signed dword) 0 render_playfield::@3/(byte) render_playfield::l#1 ) - [74] (byte~) render_playfield::$1 ← (byte) render_playfield::l#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 - [75] (byte*) render_playfield::line#0 ← *((const byte*[PLAYFIELD_LINES#0+3]) screen_lines#0 + (byte~) render_playfield::$1) + [74] (byte) render_playfield::i#3 ← phi( render_playfield/(byte/signed byte/word/signed word/dword/signed dword) 0 render_playfield::@3/(byte) render_playfield::i#1 ) + [74] (byte) render_playfield::l#2 ← phi( render_playfield/(byte/signed byte/word/signed word/dword/signed dword) 0 render_playfield::@3/(byte) render_playfield::l#1 ) + [75] (byte~) render_playfield::$1 ← (byte) render_playfield::l#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 + [76] (byte*) render_playfield::line#0 ← *((const byte*[PLAYFIELD_LINES#0+3]) screen_lines#0 + (byte~) render_playfield::$1) to:render_playfield::@2 render_playfield::@2: scope:[render_playfield] from render_playfield::@1 render_playfield::@2 - [76] (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 ) - [76] (byte*) render_playfield::line#2 ← phi( render_playfield::@1/(byte*) render_playfield::line#0 render_playfield::@2/(byte*) render_playfield::line#1 ) - [76] (byte) render_playfield::i#2 ← phi( render_playfield::@1/(byte) render_playfield::i#3 render_playfield::@2/(byte) render_playfield::i#1 ) - [77] *((byte*) render_playfield::line#2) ← *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) render_playfield::i#2) - [78] (byte*) render_playfield::line#1 ← ++ (byte*) render_playfield::line#2 - [79] (byte) render_playfield::i#1 ← ++ (byte) render_playfield::i#2 - [80] (byte) render_playfield::c#1 ← ++ (byte) render_playfield::c#2 - [81] 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 + [77] (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 ) + [77] (byte*) render_playfield::line#2 ← phi( render_playfield::@1/(byte*) render_playfield::line#0 render_playfield::@2/(byte*) render_playfield::line#1 ) + [77] (byte) render_playfield::i#2 ← phi( render_playfield::@1/(byte) render_playfield::i#3 render_playfield::@2/(byte) render_playfield::i#1 ) + [78] *((byte*) render_playfield::line#2) ← *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) render_playfield::i#2) + [79] (byte*) render_playfield::line#1 ← ++ (byte*) render_playfield::line#2 + [80] (byte) render_playfield::i#1 ← ++ (byte) render_playfield::i#2 + [81] (byte) render_playfield::c#1 ← ++ (byte) render_playfield::c#2 + [82] 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 - [82] (byte) render_playfield::l#1 ← ++ (byte) render_playfield::l#2 - [83] 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 + [83] (byte) render_playfield::l#1 ← ++ (byte) render_playfield::l#2 + [84] 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 - [84] return + [85] return to:@return play_move_rotate: scope:[play_move_rotate] from main::@30 - [85] if((byte) play_move_rotate::key_event#0==(const byte) KEY_Z#0) goto play_move_rotate::@1 + [86] 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 - [86] if((byte) play_move_rotate::key_event#0==(const byte) KEY_X#0) goto play_move_rotate::@2 + [87] 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 - [87] (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 ) - [87] (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 ) - [87] (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 ) - [88] return + [88] (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 ) + [88] (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 ) + [88] (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 ) + [89] return to:@return play_move_rotate::@2: scope:[play_move_rotate] from play_move_rotate::@6 - [89] (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 - [90] (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 + [90] (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 + [91] (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 - [91] (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 ) - [92] (byte) play_collision::xpos#3 ← (byte) current_xpos#20 - [93] (byte) play_collision::ypos#3 ← (byte) current_ypos#14 - [94] (byte) play_collision::orientation#3 ← (byte) play_move_rotate::orientation#3 - [95] (byte*~) current_piece#74 ← (byte*) current_piece#10 - [96] call play_collision - [97] (byte) play_collision::return#13 ← (byte) play_collision::return#14 + [92] (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 ) + [93] (byte) play_collision::xpos#3 ← (byte) current_xpos#20 + [94] (byte) play_collision::ypos#3 ← (byte) current_ypos#14 + [95] (byte) play_collision::orientation#3 ← (byte) play_move_rotate::orientation#3 + [96] (byte*~) current_piece#74 ← (byte*) current_piece#10 + [97] call play_collision + [98] (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 - [98] (byte~) play_move_rotate::$6 ← (byte) play_collision::return#13 - [99] if((byte~) play_move_rotate::$6!=(const byte) COLLISION_NONE#0) goto play_move_rotate::@return + [99] (byte~) play_move_rotate::$6 ← (byte) play_collision::return#13 + [100] 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 - [100] (byte) current_orientation#4 ← (byte) play_move_rotate::orientation#3 - [101] (byte*) current_piece_gfx#4 ← (byte*) current_piece#10 + (byte) current_orientation#4 + [101] (byte) current_orientation#4 ← (byte) play_move_rotate::orientation#3 + [102] (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 - [102] (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 - [103] (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 + [103] (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 + [104] (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 - [104] (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 ) - [104] (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 ) - [104] (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 ) - [104] (byte*) current_piece#12 ← phi( play_move_down::@12/(byte*~) current_piece#71 play_move_leftright::@1/(byte*~) current_piece#72 play_move_leftright::@7/(byte*~) current_piece#73 play_move_rotate::@4/(byte*~) current_piece#74 ) - [105] (byte*) play_collision::piece_gfx#0 ← (byte*) current_piece#12 + (byte) play_collision::orientation#4 - [106] (byte) play_collision::ypos2#0 ← (byte) play_collision::ypos#4 << (byte/signed byte/word/signed word/dword/signed dword) 1 + [105] (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 ) + [105] (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 ) + [105] (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 ) + [105] (byte*) current_piece#12 ← phi( play_move_down::@12/(byte*~) current_piece#71 play_move_leftright::@1/(byte*~) current_piece#72 play_move_leftright::@7/(byte*~) current_piece#73 play_move_rotate::@4/(byte*~) current_piece#74 ) + [106] (byte*) play_collision::piece_gfx#0 ← (byte*) current_piece#12 + (byte) play_collision::orientation#4 + [107] (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 - [107] (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 ) - [107] (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 ) - [107] (byte) play_collision::ypos2#2 ← phi( play_collision/(byte) play_collision::ypos2#0 play_collision::@20/(byte) play_collision::ypos2#1 ) - [108] (byte*) play_collision::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) play_collision::ypos2#2) - [109] (byte~) play_collision::col#9 ← (byte) play_collision::xpos#5 + [108] (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 ) + [108] (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 ) + [108] (byte) play_collision::ypos2#2 ← phi( play_collision/(byte) play_collision::ypos2#0 play_collision::@20/(byte) play_collision::ypos2#1 ) + [109] (byte*) play_collision::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) play_collision::ypos2#2) + [110] (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 - [110] (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 ) - [110] (byte) play_collision::col#2 ← phi( play_collision::@1/(byte~) play_collision::col#9 play_collision::@21/(byte) play_collision::col#1 ) - [110] (byte) play_collision::i#2 ← phi( play_collision::@1/(byte) play_collision::i#3 play_collision::@21/(byte~) play_collision::i#13 ) - [111] (byte) play_collision::i#1 ← ++ (byte) play_collision::i#2 - [112] 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 + [111] (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 ) + [111] (byte) play_collision::col#2 ← phi( play_collision::@1/(byte~) play_collision::col#9 play_collision::@21/(byte) play_collision::col#1 ) + [111] (byte) play_collision::i#2 ← phi( play_collision::@1/(byte) play_collision::i#3 play_collision::@21/(byte~) play_collision::i#13 ) + [112] (byte) play_collision::i#1 ← ++ (byte) play_collision::i#2 + [113] 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 - [113] 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 + [114] 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 - [114] (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 ) - [115] return + [115] (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 ) + [116] return to:@return play_collision::@4: scope:[play_collision] from play_collision::@8 - [116] (byte~) play_collision::$7 ← (byte) play_collision::col#2 & (byte/word/signed word/dword/signed dword) 128 - [117] if((byte~) play_collision::$7==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_collision::@5 + [117] (byte~) play_collision::$7 ← (byte) play_collision::col#2 & (byte/word/signed word/dword/signed dword) 128 + [118] 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 - [118] if((byte) play_collision::col#2<(const byte) PLAYFIELD_COLS#0) goto play_collision::@6 + [119] 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 - [119] 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 + [120] 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 - [120] (byte) play_collision::col#1 ← ++ (byte) play_collision::col#2 - [121] (byte) play_collision::c#1 ← ++ (byte) play_collision::c#2 - [122] if((byte) play_collision::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto play_collision::@21 + [121] (byte) play_collision::col#1 ← ++ (byte) play_collision::col#2 + [122] (byte) play_collision::c#1 ← ++ (byte) play_collision::c#2 + [123] 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 - [123] (byte) play_collision::ypos2#1 ← (byte) play_collision::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 - [124] (byte) play_collision::l#1 ← ++ (byte) play_collision::l#6 - [125] if((byte) play_collision::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto play_collision::@20 + [124] (byte) play_collision::ypos2#1 ← (byte) play_collision::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 + [125] (byte) play_collision::l#1 ← ++ (byte) play_collision::l#6 + [126] 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 - [126] (byte~) play_collision::i#11 ← (byte) play_collision::i#1 + [127] (byte~) play_collision::i#11 ← (byte) play_collision::i#1 to:play_collision::@1 play_collision::@21: scope:[play_collision] from play_collision::@3 - [127] (byte~) play_collision::i#13 ← (byte) play_collision::i#1 + [128] (byte~) play_collision::i#13 ← (byte) play_collision::i#1 to:play_collision::@2 play_move_leftright: scope:[play_move_leftright] from main::@29 - [128] if((byte) play_move_leftright::key_event#0==(const byte) KEY_COMMA#0) goto play_move_leftright::@1 + [129] 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 - [129] if((byte) play_move_leftright::key_event#0!=(const byte) KEY_DOT#0) goto play_move_leftright::@return + [130] 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 - [130] (byte) play_collision::xpos#2 ← (byte) current_xpos#16 + (byte/signed byte/word/signed word/dword/signed dword) 1 - [131] (byte) play_collision::ypos#2 ← (byte) current_ypos#14 - [132] (byte) play_collision::orientation#2 ← (byte) current_orientation#14 - [133] (byte*~) current_piece#73 ← (byte*) current_piece#10 - [134] call play_collision - [135] (byte) play_collision::return#12 ← (byte) play_collision::return#14 + [131] (byte) play_collision::xpos#2 ← (byte) current_xpos#16 + (byte/signed byte/word/signed word/dword/signed dword) 1 + [132] (byte) play_collision::ypos#2 ← (byte) current_ypos#14 + [133] (byte) play_collision::orientation#2 ← (byte) current_orientation#14 + [134] (byte*~) current_piece#73 ← (byte*) current_piece#10 + [135] call play_collision + [136] (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 - [136] (byte~) play_move_leftright::$4 ← (byte) play_collision::return#12 - [137] if((byte~) play_move_leftright::$4!=(const byte) COLLISION_NONE#0) goto play_move_leftright::@return + [137] (byte~) play_move_leftright::$4 ← (byte) play_collision::return#12 + [138] 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 - [138] (byte) current_xpos#3 ← ++ (byte) current_xpos#16 + [139] (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 - [139] (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 ) - [139] (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 ) - [140] return + [140] (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 ) + [140] (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 ) + [141] return to:@return play_move_leftright::@1: scope:[play_move_leftright] from play_move_leftright - [141] (byte) play_collision::xpos#1 ← (byte) current_xpos#16 - (byte/signed byte/word/signed word/dword/signed dword) 1 - [142] (byte) play_collision::ypos#1 ← (byte) current_ypos#14 - [143] (byte) play_collision::orientation#1 ← (byte) current_orientation#14 - [144] (byte*~) current_piece#72 ← (byte*) current_piece#10 - [145] call play_collision - [146] (byte) play_collision::return#1 ← (byte) play_collision::return#14 + [142] (byte) play_collision::xpos#1 ← (byte) current_xpos#16 - (byte/signed byte/word/signed word/dword/signed dword) 1 + [143] (byte) play_collision::ypos#1 ← (byte) current_ypos#14 + [144] (byte) play_collision::orientation#1 ← (byte) current_orientation#14 + [145] (byte*~) current_piece#72 ← (byte*) current_piece#10 + [146] call play_collision + [147] (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 - [147] (byte~) play_move_leftright::$8 ← (byte) play_collision::return#1 - [148] if((byte~) play_move_leftright::$8!=(const byte) COLLISION_NONE#0) goto play_move_leftright::@return + [148] (byte~) play_move_leftright::$8 ← (byte) play_collision::return#1 + [149] 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 - [149] (byte) current_xpos#5 ← -- (byte) current_xpos#16 + [150] (byte) current_xpos#5 ← -- (byte) current_xpos#16 to:play_move_leftright::@return play_move_down: scope:[play_move_down] from main::@28 - [150] (byte) current_movedown_counter#1 ← ++ (byte) current_movedown_counter#12 - [151] if((byte) play_move_down::key_event#0!=(const byte) KEY_SPACE#0) goto play_move_down::@1 + [151] (byte) current_movedown_counter#1 ← ++ (byte) current_movedown_counter#12 + [152] 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 - [152] phi() + [153] phi() to:play_move_down::@1 play_move_down::@1: scope:[play_move_down] from play_move_down play_move_down::@8 - [153] (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 ) - [154] call keyboard_event_pressed - [155] (byte) keyboard_event_pressed::return#12 ← (byte) keyboard_event_pressed::return#11 + [154] (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 ) + [155] call keyboard_event_pressed + [156] (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 - [156] (byte~) play_move_down::$2 ← (byte) keyboard_event_pressed::return#12 - [157] if((byte~) play_move_down::$2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_move_down::@2 + [157] (byte~) play_move_down::$2 ← (byte) keyboard_event_pressed::return#12 + [158] 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 - [158] if((byte) current_movedown_counter#1<(const byte) current_movedown_fast#0) goto play_move_down::@2 + [159] 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 - [159] (byte) play_move_down::movedown#2 ← ++ (byte) play_move_down::movedown#10 + [160] (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 - [160] (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 ) - [161] if((byte) current_movedown_counter#1<(const byte) current_movedown_slow#0) goto play_move_down::@4 + [161] (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 ) + [162] 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 - [162] (byte) play_move_down::movedown#3 ← ++ (byte) play_move_down::movedown#7 + [163] (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 - [163] (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 ) - [164] if((byte) play_move_down::movedown#6==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_move_down::@return + [164] (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 ) + [165] 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 - [165] (byte) play_collision::ypos#0 ← (byte) current_ypos#22 + (byte/signed byte/word/signed word/dword/signed dword) 1 - [166] (byte) play_collision::xpos#0 ← (byte) current_xpos#11 - [167] (byte) play_collision::orientation#0 ← (byte) current_orientation#10 - [168] (byte*~) current_piece#71 ← (byte*) current_piece#16 - [169] call play_collision - [170] (byte) play_collision::return#0 ← (byte) play_collision::return#14 + [166] (byte) play_collision::ypos#0 ← (byte) current_ypos#22 + (byte/signed byte/word/signed word/dword/signed dword) 1 + [167] (byte) play_collision::xpos#0 ← (byte) current_xpos#11 + [168] (byte) play_collision::orientation#0 ← (byte) current_orientation#10 + [169] (byte*~) current_piece#71 ← (byte*) current_piece#16 + [170] call play_collision + [171] (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 - [171] (byte~) play_move_down::$12 ← (byte) play_collision::return#0 - [172] if((byte~) play_move_down::$12==(const byte) COLLISION_NONE#0) goto play_move_down::@6 + [172] (byte~) play_move_down::$12 ← (byte) play_collision::return#0 + [173] 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 - [173] phi() - [174] call play_lock_current + [174] phi() + [175] call play_lock_current to:play_move_down::@19 play_move_down::@19: scope:[play_move_down] from play_move_down::@13 - [175] phi() - [176] call play_remove_lines + [176] phi() + [177] call play_remove_lines to:play_move_down::@20 play_move_down::@20: scope:[play_move_down] from play_move_down::@19 - [177] phi() - [178] call play_spawn_current - [179] (byte*~) current_piece#75 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) + [178] phi() + [179] call play_spawn_current + [180] (byte*~) current_piece#75 ← (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 - [180] (byte) current_piece_color#21 ← phi( play_move_down::@20/(byte) current_piece_color#13 play_move_down::@6/(byte) current_piece_color#16 ) - [180] (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 ) - [180] (byte*) current_piece_gfx#27 ← phi( play_move_down::@20/(byte*) current_piece_gfx#17 play_move_down::@6/(byte*) current_piece_gfx#10 ) - [180] (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 ) - [180] (byte*) current_piece#20 ← phi( play_move_down::@20/(byte*~) current_piece#75 play_move_down::@6/(byte*) current_piece#16 ) - [180] (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 ) + [181] (byte) current_piece_char#21 ← phi( play_move_down::@20/(byte) current_piece_char#13 play_move_down::@6/(byte) current_piece_char#16 ) + [181] (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 ) + [181] (byte*) current_piece_gfx#27 ← phi( play_move_down::@20/(byte*) current_piece_gfx#17 play_move_down::@6/(byte*) current_piece_gfx#10 ) + [181] (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 ) + [181] (byte*) current_piece#20 ← phi( play_move_down::@20/(byte*~) current_piece#75 play_move_down::@6/(byte*) current_piece#16 ) + [181] (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 ) to:play_move_down::@return play_move_down::@return: scope:[play_move_down] from play_move_down::@4 play_move_down::@7 - [181] (byte) current_piece_color#11 ← phi( play_move_down::@4/(byte) current_piece_color#16 play_move_down::@7/(byte) current_piece_color#21 ) - [181] (byte) current_xpos#16 ← phi( play_move_down::@4/(byte) current_xpos#11 play_move_down::@7/(byte) current_xpos#34 ) - [181] (byte*) current_piece_gfx#14 ← phi( play_move_down::@4/(byte*) current_piece_gfx#10 play_move_down::@7/(byte*) current_piece_gfx#27 ) - [181] (byte) current_orientation#14 ← phi( play_move_down::@4/(byte) current_orientation#10 play_move_down::@7/(byte) current_orientation#29 ) - [181] (byte*) current_piece#10 ← phi( play_move_down::@4/(byte*) current_piece#16 play_move_down::@7/(byte*) current_piece#20 ) - [181] (byte) current_ypos#14 ← phi( play_move_down::@4/(byte) current_ypos#22 play_move_down::@7/(byte) current_ypos#30 ) - [181] (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 ) - [181] (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 ) - [182] return + [182] (byte) current_piece_char#11 ← phi( play_move_down::@4/(byte) current_piece_char#16 play_move_down::@7/(byte) current_piece_char#21 ) + [182] (byte) current_xpos#16 ← phi( play_move_down::@4/(byte) current_xpos#11 play_move_down::@7/(byte) current_xpos#34 ) + [182] (byte*) current_piece_gfx#14 ← phi( play_move_down::@4/(byte*) current_piece_gfx#10 play_move_down::@7/(byte*) current_piece_gfx#27 ) + [182] (byte) current_orientation#14 ← phi( play_move_down::@4/(byte) current_orientation#10 play_move_down::@7/(byte) current_orientation#29 ) + [182] (byte*) current_piece#10 ← phi( play_move_down::@4/(byte*) current_piece#16 play_move_down::@7/(byte*) current_piece#20 ) + [182] (byte) current_ypos#14 ← phi( play_move_down::@4/(byte) current_ypos#22 play_move_down::@7/(byte) current_ypos#30 ) + [182] (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 ) + [182] (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 ) + [183] return to:@return play_move_down::@6: scope:[play_move_down] from play_move_down::@18 - [183] (byte) current_ypos#1 ← ++ (byte) current_ypos#22 + [184] (byte) current_ypos#1 ← ++ (byte) current_ypos#22 to:play_move_down::@7 play_spawn_current: scope:[play_spawn_current] from main::@23 play_move_down::@20 - [184] phi() + [185] phi() to:play_spawn_current::@1 play_spawn_current::@1: scope:[play_spawn_current] from play_spawn_current play_spawn_current::@7 - [185] (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 ) - [186] if((byte) play_spawn_current::piece_idx#2==(byte/signed byte/word/signed word/dword/signed dword) 7) goto play_spawn_current::@2 + [186] (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 ) + [187] 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 - [187] (byte~) play_spawn_current::$3 ← (byte) play_spawn_current::piece_idx#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 - [188] (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 - [189] (byte) current_piece_color#13 ← *((const byte[]) PIECES_COLORS#0 + (byte) play_spawn_current::piece_idx#2) + [188] (byte~) play_spawn_current::$3 ← (byte) play_spawn_current::piece_idx#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 + [189] (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 + [190] (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 - [190] return + [191] return to:@return play_spawn_current::@2: scope:[play_spawn_current] from play_spawn_current::@1 - [191] phi() - [192] call sid_rnd - [193] (byte) sid_rnd::return#2 ← (byte) sid_rnd::return#0 + [192] phi() + [193] call sid_rnd + [194] (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 - [194] (byte~) play_spawn_current::$1 ← (byte) sid_rnd::return#2 - [195] (byte) play_spawn_current::piece_idx#1 ← (byte~) play_spawn_current::$1 & (byte/signed byte/word/signed word/dword/signed dword) 7 + [195] (byte~) play_spawn_current::$1 ← (byte) sid_rnd::return#2 + [196] (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 - [196] (byte) sid_rnd::return#0 ← *((const byte*) SID_VOICE3_OSC#0) + [197] (byte) sid_rnd::return#0 ← *((const byte*) SID_VOICE3_OSC#0) to:sid_rnd::@return sid_rnd::@return: scope:[sid_rnd] from sid_rnd - [197] return + [198] return to:@return play_remove_lines: scope:[play_remove_lines] from play_move_down::@19 - [198] phi() + [199] phi() to:play_remove_lines::@1 play_remove_lines::@1: scope:[play_remove_lines] from play_remove_lines play_remove_lines::@4 - [199] (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 ) - [199] (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 ) - [199] (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 ) + [200] (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 ) + [200] (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 ) + [200] (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 - [200] (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 ) - [200] (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 ) - [200] (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 ) - [200] (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 ) - [201] (byte) play_remove_lines::c#0 ← *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) play_remove_lines::r#2) - [202] (byte) play_remove_lines::r#1 ← -- (byte) play_remove_lines::r#2 - [203] if((byte) play_remove_lines::c#0!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_remove_lines::@17 + [201] (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 ) + [201] (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 ) + [201] (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 ) + [201] (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 ) + [202] (byte) play_remove_lines::c#0 ← *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) play_remove_lines::r#2) + [203] (byte) play_remove_lines::r#1 ← -- (byte) play_remove_lines::r#2 + [204] 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 - [204] (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 ) - [205] *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) play_remove_lines::w#4) ← (byte) play_remove_lines::c#0 - [206] (byte) play_remove_lines::w#1 ← -- (byte) play_remove_lines::w#4 - [207] (byte) play_remove_lines::x#1 ← ++ (byte) play_remove_lines::x#2 - [208] 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 + [205] (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 ) + [206] *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) play_remove_lines::w#4) ← (byte) play_remove_lines::c#0 + [207] (byte) play_remove_lines::w#1 ← -- (byte) play_remove_lines::w#4 + [208] (byte) play_remove_lines::x#1 ← ++ (byte) play_remove_lines::x#2 + [209] 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 - [209] if((byte) play_remove_lines::full#2!=(byte/signed byte/word/signed word/dword/signed dword) 1) goto play_remove_lines::@4 + [210] 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 - [210] (byte) play_remove_lines::w#2 ← (byte) play_remove_lines::w#1 + (const byte) PLAYFIELD_COLS#0 + [211] (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 - [211] (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 ) - [212] (byte) play_remove_lines::y#1 ← ++ (byte) play_remove_lines::y#8 - [213] 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 + [212] (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 ) + [213] (byte) play_remove_lines::y#1 ← ++ (byte) play_remove_lines::y#8 + [214] 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 - [214] (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 ) - [215] if((byte) play_remove_lines::w#6!=(byte/word/signed word/dword/signed dword) 255) goto play_remove_lines::@6 + [215] (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 ) + [216] 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 - [216] return + [217] return to:@return play_remove_lines::@6: scope:[play_remove_lines] from play_remove_lines::@5 - [217] *((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 - [218] (byte) play_remove_lines::w#3 ← -- (byte) play_remove_lines::w#6 + [218] *((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 + [219] (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 - [219] phi() + [220] phi() to:play_remove_lines::@3 play_lock_current: scope:[play_lock_current] from play_move_down::@13 - [220] (byte) play_lock_current::ypos2#0 ← (byte) current_ypos#22 << (byte/signed byte/word/signed word/dword/signed dword) 1 + [221] (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 - [221] (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 ) - [221] (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 ) - [221] (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 ) - [222] (byte*) play_lock_current::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) play_lock_current::ypos2#2) - [223] (byte) play_lock_current::col#0 ← (byte) current_xpos#11 + [222] (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 ) + [222] (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 ) + [222] (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 ) + [223] (byte*) play_lock_current::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) play_lock_current::ypos2#2) + [224] (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 - [224] (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 ) - [224] (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 ) - [224] (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 ) - [225] (byte) play_lock_current::i#1 ← ++ (byte) play_lock_current::i#2 - [226] 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 + [225] (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 ) + [225] (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 ) + [225] (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 ) + [226] (byte) play_lock_current::i#1 ← ++ (byte) play_lock_current::i#2 + [227] 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 - [227] *((byte*) play_lock_current::playfield_line#0 + (byte) play_lock_current::col#2) ← (byte) current_piece_color#16 + [228] *((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 - [228] (byte) play_lock_current::col#1 ← ++ (byte) play_lock_current::col#2 - [229] (byte) play_lock_current::c#1 ← ++ (byte) play_lock_current::c#2 - [230] if((byte) play_lock_current::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto play_lock_current::@8 + [229] (byte) play_lock_current::col#1 ← ++ (byte) play_lock_current::col#2 + [230] (byte) play_lock_current::c#1 ← ++ (byte) play_lock_current::c#2 + [231] 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 - [231] (byte) play_lock_current::ypos2#1 ← (byte) play_lock_current::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 - [232] (byte) play_lock_current::l#1 ← ++ (byte) play_lock_current::l#6 - [233] if((byte) play_lock_current::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto play_lock_current::@7 + [232] (byte) play_lock_current::ypos2#1 ← (byte) play_lock_current::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 + [233] (byte) play_lock_current::l#1 ← ++ (byte) play_lock_current::l#6 + [234] 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 - [234] return + [235] return to:@return play_lock_current::@7: scope:[play_lock_current] from play_lock_current::@5 - [235] (byte~) play_lock_current::i#7 ← (byte) play_lock_current::i#1 + [236] (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 - [236] (byte~) play_lock_current::i#9 ← (byte) play_lock_current::i#1 + [237] (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 - [237] (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 ) - [238] (byte~) keyboard_event_pressed::$0 ← (byte) keyboard_event_pressed::keycode#5 >> (byte/signed byte/word/signed word/dword/signed dword) 3 - [239] (byte) keyboard_event_pressed::row_bits#0 ← *((const byte[8]) keyboard_scan_values#0 + (byte~) keyboard_event_pressed::$0) - [240] (byte~) keyboard_event_pressed::$1 ← (byte) keyboard_event_pressed::keycode#5 & (byte/signed byte/word/signed word/dword/signed dword) 7 - [241] (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) + [238] (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 ) + [239] (byte~) keyboard_event_pressed::$0 ← (byte) keyboard_event_pressed::keycode#5 >> (byte/signed byte/word/signed word/dword/signed dword) 3 + [240] (byte) keyboard_event_pressed::row_bits#0 ← *((const byte[8]) keyboard_scan_values#0 + (byte~) keyboard_event_pressed::$0) + [241] (byte~) keyboard_event_pressed::$1 ← (byte) keyboard_event_pressed::keycode#5 & (byte/signed byte/word/signed word/dword/signed dword) 7 + [242] (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 - [242] return + [243] return to:@return keyboard_event_get: scope:[keyboard_event_get] from main::@27 - [243] if((byte) keyboard_events_size#13==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_get::@return + [244] 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 - [244] (byte) keyboard_events_size#4 ← -- (byte) keyboard_events_size#13 - [245] (byte) keyboard_event_get::return#1 ← *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#4) + [245] (byte) keyboard_events_size#4 ← -- (byte) keyboard_events_size#13 + [246] (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 - [246] (byte) keyboard_events_size#16 ← phi( keyboard_event_get/(byte) keyboard_events_size#13 keyboard_event_get::@3/(byte) keyboard_events_size#4 ) - [246] (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 ) - [247] return + [247] (byte) keyboard_events_size#16 ← phi( keyboard_event_get/(byte) keyboard_events_size#13 keyboard_event_get::@3/(byte) keyboard_events_size#4 ) + [247] (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 ) + [248] return to:@return keyboard_event_scan: scope:[keyboard_event_scan] from main::@9 - [248] phi() + [249] phi() to:keyboard_event_scan::@1 keyboard_event_scan::@1: scope:[keyboard_event_scan] from keyboard_event_scan keyboard_event_scan::@3 - [249] (byte) keyboard_events_size#29 ← phi( keyboard_event_scan/(byte) keyboard_events_size#19 keyboard_event_scan::@3/(byte) keyboard_events_size#13 ) - [249] (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 ) - [249] (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 ) - [250] (byte) keyboard_matrix_read::rowid#0 ← (byte) keyboard_event_scan::row#2 - [251] call keyboard_matrix_read - [252] (byte) keyboard_matrix_read::return#2 ← (byte) keyboard_matrix_read::return#0 + [250] (byte) keyboard_events_size#29 ← phi( keyboard_event_scan/(byte) keyboard_events_size#19 keyboard_event_scan::@3/(byte) keyboard_events_size#13 ) + [250] (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 ) + [250] (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 ) + [251] (byte) keyboard_matrix_read::rowid#0 ← (byte) keyboard_event_scan::row#2 + [252] call keyboard_matrix_read + [253] (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 - [253] (byte) keyboard_event_scan::row_scan#0 ← (byte) keyboard_matrix_read::return#2 - [254] 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 + [254] (byte) keyboard_event_scan::row_scan#0 ← (byte) keyboard_matrix_read::return#2 + [255] 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 - [255] (byte) keyboard_event_scan::keycode#1 ← (byte) keyboard_event_scan::keycode#11 + (byte/signed byte/word/signed word/dword/signed dword) 8 + [256] (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 - [256] (byte) keyboard_events_size#13 ← phi( keyboard_event_scan::@13/(byte) keyboard_events_size#29 keyboard_event_scan::@19/(byte) keyboard_events_size#30 ) - [256] (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 ) - [257] (byte) keyboard_event_scan::row#1 ← ++ (byte) keyboard_event_scan::row#2 - [258] if((byte) keyboard_event_scan::row#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto keyboard_event_scan::@1 + [257] (byte) keyboard_events_size#13 ← phi( keyboard_event_scan::@13/(byte) keyboard_events_size#29 keyboard_event_scan::@19/(byte) keyboard_events_size#30 ) + [257] (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 ) + [258] (byte) keyboard_event_scan::row#1 ← ++ (byte) keyboard_event_scan::row#2 + [259] 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 - [259] phi() - [260] call keyboard_event_pressed - [261] (byte) keyboard_event_pressed::return#0 ← (byte) keyboard_event_pressed::return#11 + [260] phi() + [261] call keyboard_event_pressed + [262] (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 - [262] (byte~) keyboard_event_scan::$14 ← (byte) keyboard_event_pressed::return#0 - [263] if((byte~) keyboard_event_scan::$14==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@9 + [263] (byte~) keyboard_event_scan::$14 ← (byte) keyboard_event_pressed::return#0 + [264] 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 - [264] phi() + [265] phi() to:keyboard_event_scan::@9 keyboard_event_scan::@9: scope:[keyboard_event_scan] from keyboard_event_scan::@21 keyboard_event_scan::@26 - [265] (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 ) - [266] call keyboard_event_pressed - [267] (byte) keyboard_event_pressed::return#1 ← (byte) keyboard_event_pressed::return#11 + [266] (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 ) + [267] call keyboard_event_pressed + [268] (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 - [268] (byte~) keyboard_event_scan::$18 ← (byte) keyboard_event_pressed::return#1 - [269] if((byte~) keyboard_event_scan::$18==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@10 + [269] (byte~) keyboard_event_scan::$18 ← (byte) keyboard_event_pressed::return#1 + [270] 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 - [270] (byte) keyboard_modifiers#3 ← (byte) keyboard_modifiers#11 | (const byte) KEY_MODIFIER_RSHIFT#0 + [271] (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 - [271] (byte) keyboard_modifiers#12 ← phi( keyboard_event_scan::@22/(byte) keyboard_modifiers#3 keyboard_event_scan::@27/(byte) keyboard_modifiers#11 ) - [272] call keyboard_event_pressed - [273] (byte) keyboard_event_pressed::return#2 ← (byte) keyboard_event_pressed::return#11 + [272] (byte) keyboard_modifiers#12 ← phi( keyboard_event_scan::@22/(byte) keyboard_modifiers#3 keyboard_event_scan::@27/(byte) keyboard_modifiers#11 ) + [273] call keyboard_event_pressed + [274] (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 - [274] (byte~) keyboard_event_scan::$22 ← (byte) keyboard_event_pressed::return#2 - [275] if((byte~) keyboard_event_scan::$22==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@11 + [275] (byte~) keyboard_event_scan::$22 ← (byte) keyboard_event_pressed::return#2 + [276] 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 - [276] (byte) keyboard_modifiers#4 ← (byte) keyboard_modifiers#12 | (const byte) KEY_MODIFIER_CTRL#0 + [277] (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 - [277] (byte) keyboard_modifiers#13 ← phi( keyboard_event_scan::@23/(byte) keyboard_modifiers#4 keyboard_event_scan::@28/(byte) keyboard_modifiers#12 ) - [278] call keyboard_event_pressed - [279] (byte) keyboard_event_pressed::return#10 ← (byte) keyboard_event_pressed::return#11 + [278] (byte) keyboard_modifiers#13 ← phi( keyboard_event_scan::@23/(byte) keyboard_modifiers#4 keyboard_event_scan::@28/(byte) keyboard_modifiers#12 ) + [279] call keyboard_event_pressed + [280] (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 - [280] (byte~) keyboard_event_scan::$26 ← (byte) keyboard_event_pressed::return#10 - [281] if((byte~) keyboard_event_scan::$26==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@return + [281] (byte~) keyboard_event_scan::$26 ← (byte) keyboard_event_pressed::return#10 + [282] 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 - [282] (byte) keyboard_modifiers#5 ← (byte) keyboard_modifiers#13 | (const byte) KEY_MODIFIER_COMMODORE#0 + [283] (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 - [283] return + [284] return to:@return keyboard_event_scan::@4: scope:[keyboard_event_scan] from keyboard_event_scan::@25 keyboard_event_scan::@5 - [284] (byte) keyboard_events_size#10 ← phi( keyboard_event_scan::@25/(byte) keyboard_events_size#29 keyboard_event_scan::@5/(byte) keyboard_events_size#30 ) - [284] (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 ) - [284] (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 ) - [285] (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) - [286] (byte~) keyboard_event_scan::$4 ← (byte~) keyboard_event_scan::$3 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_event_scan::col#2) - [287] if((byte~) keyboard_event_scan::$4==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@5 + [285] (byte) keyboard_events_size#10 ← phi( keyboard_event_scan::@25/(byte) keyboard_events_size#29 keyboard_event_scan::@5/(byte) keyboard_events_size#30 ) + [285] (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 ) + [285] (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 ) + [286] (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) + [287] (byte~) keyboard_event_scan::$4 ← (byte~) keyboard_event_scan::$3 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_event_scan::col#2) + [288] 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 - [288] if((byte) keyboard_events_size#10==(byte/signed byte/word/signed word/dword/signed dword) 8) goto keyboard_event_scan::@5 + [289] 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 - [289] (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) - [290] if((byte) keyboard_event_scan::event_type#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@7 + [290] (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) + [291] 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 - [291] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte) keyboard_event_scan::keycode#10 - [292] (byte) keyboard_events_size#2 ← ++ (byte) keyboard_events_size#10 + [292] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte) keyboard_event_scan::keycode#10 + [293] (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 - [293] (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 ) - [294] (byte) keyboard_event_scan::keycode#15 ← ++ (byte) keyboard_event_scan::keycode#10 - [295] (byte) keyboard_event_scan::col#1 ← ++ (byte) keyboard_event_scan::col#2 - [296] if((byte) keyboard_event_scan::col#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto keyboard_event_scan::@4 + [294] (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 ) + [295] (byte) keyboard_event_scan::keycode#15 ← ++ (byte) keyboard_event_scan::keycode#10 + [296] (byte) keyboard_event_scan::col#1 ← ++ (byte) keyboard_event_scan::col#2 + [297] 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 - [297] *((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2) ← (byte) keyboard_event_scan::row_scan#0 + [298] *((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 - [298] (byte/word/dword~) keyboard_event_scan::$11 ← (byte) keyboard_event_scan::keycode#10 | (byte/signed byte/word/signed word/dword/signed dword) 64 - [299] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte/word/dword~) keyboard_event_scan::$11 - [300] (byte) keyboard_events_size#1 ← ++ (byte) keyboard_events_size#10 + [299] (byte/word/dword~) keyboard_event_scan::$11 ← (byte) keyboard_event_scan::keycode#10 | (byte/signed byte/word/signed word/dword/signed dword) 64 + [300] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte/word/dword~) keyboard_event_scan::$11 + [301] (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 - [301] *((const byte*) CIA1_PORT_A#0) ← *((const byte[8]) keyboard_matrix_row_bitmask#0 + (byte) keyboard_matrix_read::rowid#0) - [302] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) + [302] *((const byte*) CIA1_PORT_A#0) ← *((const byte[8]) keyboard_matrix_row_bitmask#0 + (byte) keyboard_matrix_read::rowid#0) + [303] (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 - [303] return + [304] return to:@return play_init: scope:[play_init] from main::@22 - [304] phi() + [305] phi() to:play_init::@1 play_init::@1: scope:[play_init] from play_init play_init::@1 - [305] (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 ) - [305] (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 ) - [305] (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 ) - [306] (byte~) play_init::$1 ← (byte) play_init::j#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 - [307] *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte~) play_init::$1) ← (byte*) play_init::pli#2 - [308] *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0 + (byte) play_init::j#2) ← (byte) play_init::idx#2 - [309] (byte*) play_init::pli#1 ← (byte*) play_init::pli#2 + (const byte) PLAYFIELD_COLS#0 - [310] (byte) play_init::idx#1 ← (byte) play_init::idx#2 + (const byte) PLAYFIELD_COLS#0 - [311] (byte) play_init::j#1 ← ++ (byte) play_init::j#2 - [312] 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 + [306] (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 ) + [306] (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 ) + [306] (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 ) + [307] (byte~) play_init::$1 ← (byte) play_init::j#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 + [308] *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte~) play_init::$1) ← (byte*) play_init::pli#2 + [309] *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0 + (byte) play_init::j#2) ← (byte) play_init::idx#2 + [310] (byte*) play_init::pli#1 ← (byte*) play_init::pli#2 + (const byte) PLAYFIELD_COLS#0 + [311] (byte) play_init::idx#1 ← (byte) play_init::idx#2 + (const byte) PLAYFIELD_COLS#0 + [312] (byte) play_init::j#1 ← ++ (byte) play_init::j#2 + [313] 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 - [313] *((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 + [314] *((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 - [314] return + [315] return to:@return render_init: scope:[render_init] from main::@21 - [315] *((const byte*) BGCOL#0) ← (const byte) BLACK#0 - [316] call fill - to:render_init::@7 -render_init::@7: scope:[render_init] from render_init - [317] phi() - [318] call fill + [316] phi() + to:render_init::vicSelectGfxBank1 +render_init::vicSelectGfxBank1: scope:[render_init] from render_init + [317] *((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 + [318] phi() + to:render_init::vicSelectGfxBank1_@1 +render_init::vicSelectGfxBank1_@1: scope:[render_init] from render_init::vicSelectGfxBank1_toDd001 + [319] *((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 + [320] phi() + to:render_init::@8 +render_init::@8: scope:[render_init] from render_init::toD0181 + [321] *((const byte*) D018#0) ← (const byte) render_init::toD0181_return#0 + [322] *((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 + [323] *((const byte*) BGCOL1#0) ← (const byte) BLACK#0 + [324] *((const byte*) BGCOL2#0) ← (const byte) BLUE#0 + [325] *((const byte*) BGCOL3#0) ← (const byte) CYAN#0 + [326] *((const byte*) BGCOL4#0) ← (const byte) GREY#0 + [327] call fill + to:render_init::@9 +render_init::@9: scope:[render_init] from render_init::@8 + [328] phi() + [329] call render_screen_original to:render_init::@1 -render_init::@1: scope:[render_init] from render_init::@1 render_init::@7 - [319] (byte*) render_init::li#2 ← phi( render_init::@1/(byte*) render_init::li#1 render_init::@7/(const byte*) COLS#0+(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 15 ) - [319] (byte) render_init::i#2 ← phi( render_init::@1/(byte) render_init::i#1 render_init::@7/(byte/signed byte/word/signed word/dword/signed dword) 0 ) - [320] (byte~) render_init::$5 ← (byte) render_init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 - [321] *((const byte*[PLAYFIELD_LINES#0+3]) screen_lines#0 + (byte~) render_init::$5) ← (byte*) render_init::li#2 - [322] (byte*) render_init::li#1 ← (byte*) render_init::li#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 - [323] (byte) render_init::i#1 ← ++ (byte) render_init::i#2 - [324] if((byte) render_init::i#1!=(const byte) PLAYFIELD_LINES#0+(byte/signed byte/word/signed word/dword/signed dword) 2+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_init::@1 +render_init::@1: scope:[render_init] from render_init::@1 render_init::@9 + [330] (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) 40+(byte/signed byte/word/signed word/dword/signed dword) 16 ) + [330] (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 ) + [331] (byte~) render_init::$10 ← (byte) render_init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 + [332] *((const byte*[PLAYFIELD_LINES#0+3]) screen_lines#0 + (byte~) render_init::$10) ← (byte*) render_init::li#2 + [333] (byte*) render_init::li#1 ← (byte*) render_init::li#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 + [334] (byte) render_init::i#1 ← ++ (byte) render_init::i#2 + [335] if((byte) render_init::i#1!=(const byte) PLAYFIELD_LINES#0+(byte/signed byte/word/signed word/dword/signed dword) 2+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_init::@1 to:render_init::@2 render_init::@2: scope:[render_init] from render_init::@1 render_init::@5 - [325] (byte) render_init::l#4 ← phi( render_init::@1/(byte/signed byte/word/signed word/dword/signed dword) 0 render_init::@5/(byte) render_init::l#1 ) - [325] (byte*) render_init::line#4 ← phi( render_init::@1/(const byte*) COLS#0+(byte/signed byte/word/signed word/dword/signed dword) 14 render_init::@5/(byte*) render_init::line#1 ) + [336] (byte) render_init::l#4 ← phi( render_init::@1/(byte/signed byte/word/signed word/dword/signed dword) 0 render_init::@5/(byte) render_init::l#1 ) + [336] (byte*) render_init::line#4 ← phi( render_init::@1/(const byte*) COLS#0+(byte/signed byte/word/signed word/dword/signed dword) 15 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 - [326] (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 ) - [327] (byte*~) render_init::$10 ← (byte*) render_init::line#4 + (byte) render_init::c#2 - [328] *((byte*~) render_init::$10) ← (const byte) DARK_GREY#0 - [329] (byte) render_init::c#1 ← ++ (byte) render_init::c#2 - [330] 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 + [337] (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 ) + [338] (byte*~) render_init::$15 ← (byte*) render_init::line#4 + (byte) render_init::c#2 + [339] *((byte*~) render_init::$15) ← (const byte) WHITE#0 + [340] (byte) render_init::c#1 ← ++ (byte) render_init::c#2 + [341] 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 - [331] (byte*) render_init::line#1 ← (byte*) render_init::line#4 + (byte/signed byte/word/signed word/dword/signed dword) 40 - [332] (byte) render_init::l#1 ← ++ (byte) render_init::l#4 - [333] 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 + [342] (byte*) render_init::line#1 ← (byte*) render_init::line#4 + (byte/signed byte/word/signed word/dword/signed dword) 40 + [343] (byte) render_init::l#1 ← ++ (byte) render_init::l#4 + [344] 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 - [334] return + [345] return to:@return -fill: scope:[fill] from render_init render_init::@7 - [335] (byte) fill::val#3 ← phi( render_init/(byte/word/signed word/dword/signed dword) 208 render_init::@7/(const byte) BLACK#0 ) - [335] (byte*) fill::addr#0 ← phi( render_init/(const byte*) PLAYFIELD_SCREEN#0 render_init::@7/(const byte*) COLS#0 ) - [336] (byte*) fill::end#0 ← (byte*) fill::addr#0 + (word/signed word/dword/signed dword) 1000 +render_screen_original: scope:[render_screen_original] from render_init::@9 + [346] phi() + to:render_screen_original::@1 +render_screen_original::@1: scope:[render_screen_original] from render_screen_original render_screen_original::@7 + [347] (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 ) + [347] (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 ) + [347] (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 + [348] (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 ) + [348] (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 ) + [349] *((byte*) render_screen_original::screen#4) ← (const byte) render_screen_original::SPACE#0 + [350] (byte*) render_screen_original::screen#1 ← ++ (byte*) render_screen_original::screen#4 + [351] (byte) render_screen_original::x#1 ← ++ (byte) render_screen_original::x#4 + [352] 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 + [353] (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 ) + [353] (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 ) + [353] (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 ) + [354] (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 + [355] *((byte*) render_screen_original::screen#5) ← (byte/signed word/word/dword/signed dword~) render_screen_original::$3 + [356] (byte*) render_screen_original::screen#2 ← ++ (byte*) render_screen_original::screen#5 + [357] (byte*) render_screen_original::orig#1 ← ++ (byte*) render_screen_original::orig#2 + [358] (byte) render_screen_original::x#2 ← ++ (byte) render_screen_original::x#5 + [359] 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 + [360] (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 ) + [360] (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 ) + [361] *((byte*) render_screen_original::screen#6) ← (const byte) render_screen_original::SPACE#0 + [362] (byte*) render_screen_original::screen#3 ← ++ (byte*) render_screen_original::screen#6 + [363] (byte) render_screen_original::x#3 ← ++ (byte) render_screen_original::x#6 + [364] 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 + [365] (byte) render_screen_original::y#1 ← ++ (byte) render_screen_original::y#6 + [366] 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 + [367] return + to:@return +fill: scope:[fill] from render_init::@8 + [368] phi() to:fill::@1 fill::@1: scope:[fill] from fill fill::@1 - [337] (byte*) fill::addr#2 ← phi( fill/(byte*) fill::addr#0 fill::@1/(byte*) fill::addr#1 ) - [338] *((byte*) fill::addr#2) ← (byte) fill::val#3 - [339] (byte*) fill::addr#1 ← ++ (byte*) fill::addr#2 - [340] if((byte*) fill::addr#1!=(byte*) fill::end#0) goto fill::@1 + [369] (byte*) fill::addr#2 ← phi( fill/(const byte*) COLS#0 fill::@1/(byte*) fill::addr#1 ) + [370] *((byte*) fill::addr#2) ← (const byte) DARK_GREY#0 + [371] (byte*) fill::addr#1 ← ++ (byte*) fill::addr#2 + [372] if((byte*) fill::addr#1!=(const byte*) fill::end#0) goto fill::@1 to:fill::@return fill::@return: scope:[fill] from fill::@1 - [341] return + [373] return to:@return sid_rnd_init: scope:[sid_rnd_init] from main - [342] *((const word*) SID_VOICE3_FREQ#0) ← (word/dword/signed dword) 65535 - [343] *((const byte*) SID_VOICE3_CONTROL#0) ← (const byte) SID_CONTROL_NOISE#0 + [374] *((const word*) SID_VOICE3_FREQ#0) ← (word/dword/signed dword) 65535 + [375] *((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 - [344] return + [376] return to:@return @@ -6176,7 +6601,7 @@ VARIABLE REGISTER WEIGHTS (byte) LIGHT_GREY (byte) ORANGE (word[]) PIECES -(byte[]) PIECES_COLORS +(byte[]) PIECES_CHARS (byte[4*4*4]) PIECE_I (byte[4*4*4]) PIECE_J (byte[4*4*4]) PIECE_L @@ -6189,6 +6614,8 @@ VARIABLE REGISTER WEIGHTS (byte) PLAYFIELD_COLS (byte) PLAYFIELD_LINES (byte*) PLAYFIELD_SCREEN +(byte*) PLAYFIELD_SCREEN_ORIGINAL +(byte) PLAYFIELD_SCREEN_ORIGINAL_WIDTH (byte*) PLAYFIELD_SPRITES (byte*) PLAYFIELD_SPRITE_PTRS (byte*) PROCPORT @@ -6262,14 +6689,14 @@ VARIABLE REGISTER WEIGHTS (byte*~) current_piece#73 4.0 (byte*~) current_piece#74 4.0 (byte*~) current_piece#75 4.0 -(byte) current_piece_color -(byte) current_piece_color#11 1.04 -(byte) current_piece_color#13 0.7272727272727273 -(byte) current_piece_color#16 19.96078431372549 -(byte) current_piece_color#21 6.0 -(byte) current_piece_color#62 53.368421052631575 -(byte~) current_piece_color#75 4.0 -(byte~) current_piece_color#76 22.0 +(byte) current_piece_char +(byte) current_piece_char#11 1.04 +(byte) current_piece_char#13 0.7272727272727273 +(byte) current_piece_char#16 19.96078431372549 +(byte) current_piece_char#21 6.0 +(byte) current_piece_char#62 53.368421052631575 +(byte~) current_piece_char#75 4.0 +(byte~) current_piece_char#76 22.0 (byte*) current_piece_gfx (byte*) current_piece_gfx#10 19.96078431372549 (byte*) current_piece_gfx#14 0.2962962962962963 @@ -6298,15 +6725,12 @@ VARIABLE REGISTER WEIGHTS (byte~) current_ypos#71 5.5 (void()) fill((byte*) fill::start , (word) fill::size , (byte) fill::val) (byte*) fill::addr -(byte*) fill::addr#0 2.0 (byte*) fill::addr#1 16.5 -(byte*) fill::addr#2 17.5 +(byte*) fill::addr#2 16.5 (byte*) fill::end -(byte*) fill::end#0 2.6 (word) fill::size (byte*) fill::start (byte) fill::val -(byte) fill::val#3 1.8333333333333333 (byte[]) keyboard_char_keycodes (byte()) keyboard_event_get() (byte) keyboard_event_get::return @@ -6566,8 +6990,8 @@ VARIABLE REGISTER WEIGHTS (byte) render_current::ypos2#1 67.33333333333333 (byte) render_current::ypos2#2 29.000000000000004 (void()) render_init() -(byte*~) render_init::$10 202.0 -(byte~) render_init::$5 22.0 +(byte~) render_init::$10 22.0 +(byte*~) render_init::$15 202.0 (byte) render_init::c (byte) render_init::c#1 151.5 (byte) render_init::c#2 101.0 @@ -6583,6 +7007,26 @@ VARIABLE REGISTER WEIGHTS (byte*) render_init::line (byte*) render_init::line#1 7.333333333333333 (byte*) render_init::line#4 20.499999999999996 +(word~) render_init::toD0181_$0 +(word~) render_init::toD0181_$1 +(word~) render_init::toD0181_$2 +(byte~) render_init::toD0181_$3 +(word~) render_init::toD0181_$4 +(byte~) render_init::toD0181_$5 +(byte~) render_init::toD0181_$6 +(byte~) render_init::toD0181_$7 +(byte~) render_init::toD0181_$8 +(byte*) render_init::toD0181_gfx +(byte) render_init::toD0181_return +(byte*) render_init::toD0181_screen +(byte~) render_init::vicSelectGfxBank1_$0 +(byte*) render_init::vicSelectGfxBank1_gfx +(word~) render_init::vicSelectGfxBank1_toDd001_$0 +(byte~) render_init::vicSelectGfxBank1_toDd001_$1 +(byte~) render_init::vicSelectGfxBank1_toDd001_$2 +(byte/word/dword~) render_init::vicSelectGfxBank1_toDd001_$3 +(byte*) render_init::vicSelectGfxBank1_toDd001_gfx +(byte) render_init::vicSelectGfxBank1_toDd001_return (void()) render_playfield() (byte~) render_playfield::$1 202.0 (byte) render_playfield::c @@ -6599,6 +7043,31 @@ VARIABLE REGISTER WEIGHTS (byte*) render_playfield::line#0 202.0 (byte*) render_playfield::line#1 500.5 (byte*) render_playfield::line#2 1552.0 +(void()) render_screen_original((byte*) render_screen_original::screen) +(byte/signed word/word/dword/signed dword~) render_screen_original::$3 202.0 +(byte) render_screen_original::SPACE +(byte*) render_screen_original::orig +(byte*) render_screen_original::orig#1 21.299999999999997 +(byte*) render_screen_original::orig#2 101.0 +(byte*) render_screen_original::orig#4 18.666666666666664 +(byte*) render_screen_original::screen +(byte*) render_screen_original::screen#1 101.0 +(byte*) render_screen_original::screen#2 75.75 +(byte*) render_screen_original::screen#3 42.599999999999994 +(byte*) render_screen_original::screen#4 157.0 +(byte*) render_screen_original::screen#5 134.66666666666666 +(byte*) render_screen_original::screen#6 202.0 +(byte*) render_screen_original::screen#7 22.0 +(byte) render_screen_original::x +(byte) render_screen_original::x#1 202.0 +(byte) render_screen_original::x#2 202.0 +(byte) render_screen_original::x#3 151.5 +(byte) render_screen_original::x#4 67.33333333333333 +(byte) render_screen_original::x#5 60.599999999999994 +(byte) render_screen_original::x#6 101.0 +(byte) render_screen_original::y +(byte) render_screen_original::y#1 16.5 +(byte) render_screen_original::y#6 1.2222222222222223 (byte*[PLAYFIELD_LINES#0+3]) screen_lines (byte()) sid_rnd() (byte) sid_rnd::return @@ -6612,7 +7081,7 @@ Initial phi equivalence classes [ current_ypos#10 current_ypos#71 ] [ current_xpos#48 current_xpos#96 ] [ current_piece_gfx#53 current_piece_gfx#87 current_piece_gfx#88 ] -[ current_piece_color#62 current_piece_color#75 current_piece_color#76 ] +[ current_piece_char#62 current_piece_char#75 current_piece_char#76 ] [ render_current::ypos2#2 render_current::ypos2#0 render_current::ypos2#1 ] [ render_current::l#3 render_current::l#1 ] [ render_current::i#2 render_current::i#1 render_current::i#4 render_current::i#8 ] @@ -6640,7 +7109,7 @@ Initial phi equivalence classes [ 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_piece_color#21 current_piece_color#16 current_piece_color#11 current_piece_color#13 ] +[ 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 ] [ play_remove_lines::y#8 play_remove_lines::y#1 ] @@ -6668,8 +7137,11 @@ Initial phi equivalence classes [ render_init::line#4 render_init::line#1 ] [ render_init::l#4 render_init::l#1 ] [ render_init::c#2 render_init::c#1 ] -[ fill::val#3 ] -[ fill::addr#2 fill::addr#0 fill::addr#1 ] +[ render_screen_original::y#6 render_screen_original::y#1 ] +[ render_screen_original::orig#2 render_screen_original::orig#4 render_screen_original::orig#1 ] +[ 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_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 ] +[ fill::addr#2 fill::addr#1 ] Added variable keyboard_event_get::return#3 to zero page equivalence class [ keyboard_event_get::return#3 ] Added variable main::key_event#0 to zero page equivalence class [ main::key_event#0 ] Added variable play_move_down::key_event#0 to zero page equivalence class [ play_move_down::key_event#0 ] @@ -6732,16 +7204,16 @@ Added variable keyboard_event_scan::event_type#0 to zero page equivalence class Added variable keyboard_event_scan::$11 to zero page equivalence class [ keyboard_event_scan::$11 ] Added variable keyboard_matrix_read::return#0 to zero page equivalence class [ keyboard_matrix_read::return#0 ] Added variable play_init::$1 to zero page equivalence class [ play_init::$1 ] -Added variable render_init::$5 to zero page equivalence class [ render_init::$5 ] Added variable render_init::$10 to zero page equivalence class [ render_init::$10 ] -Added variable fill::end#0 to zero page equivalence class [ fill::end#0 ] +Added variable render_init::$15 to zero page equivalence class [ render_init::$15 ] +Added variable render_screen_original::$3 to zero page equivalence class [ render_screen_original::$3 ] 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#71 ] [ current_xpos#48 current_xpos#96 ] [ current_piece_gfx#53 current_piece_gfx#87 current_piece_gfx#88 ] -[ current_piece_color#62 current_piece_color#75 current_piece_color#76 ] +[ current_piece_char#62 current_piece_char#75 current_piece_char#76 ] [ render_current::ypos2#2 render_current::ypos2#0 render_current::ypos2#1 ] [ render_current::l#3 render_current::l#1 ] [ render_current::i#2 render_current::i#1 render_current::i#4 render_current::i#8 ] @@ -6769,7 +7241,7 @@ Complete equivalence classes [ 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_piece_color#21 current_piece_color#16 current_piece_color#11 current_piece_color#13 ] +[ 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 ] [ play_remove_lines::y#8 play_remove_lines::y#1 ] @@ -6797,8 +7269,11 @@ Complete equivalence classes [ render_init::line#4 render_init::line#1 ] [ render_init::l#4 render_init::l#1 ] [ render_init::c#2 render_init::c#1 ] -[ fill::val#3 ] -[ fill::addr#2 fill::addr#0 fill::addr#1 ] +[ render_screen_original::y#6 render_screen_original::y#1 ] +[ render_screen_original::orig#2 render_screen_original::orig#4 render_screen_original::orig#1 ] +[ 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_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 ] +[ fill::addr#2 fill::addr#1 ] [ keyboard_event_get::return#3 ] [ main::key_event#0 ] [ play_move_down::key_event#0 ] @@ -6861,15 +7336,15 @@ Complete equivalence classes [ keyboard_event_scan::$11 ] [ keyboard_matrix_read::return#0 ] [ play_init::$1 ] -[ render_init::$5 ] [ render_init::$10 ] -[ fill::end#0 ] +[ render_init::$15 ] +[ render_screen_original::$3 ] 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#71 ] Allocated zp ZP_BYTE:5 [ current_xpos#48 current_xpos#96 ] Allocated zp ZP_WORD:6 [ current_piece_gfx#53 current_piece_gfx#87 current_piece_gfx#88 ] -Allocated zp ZP_BYTE:8 [ current_piece_color#62 current_piece_color#75 current_piece_color#76 ] +Allocated zp ZP_BYTE:8 [ current_piece_char#62 current_piece_char#75 current_piece_char#76 ] Allocated zp ZP_BYTE:9 [ render_current::ypos2#2 render_current::ypos2#0 render_current::ypos2#1 ] Allocated zp ZP_BYTE:10 [ render_current::l#3 render_current::l#1 ] Allocated zp ZP_BYTE:11 [ render_current::i#2 render_current::i#1 render_current::i#4 render_current::i#8 ] @@ -6897,7 +7372,7 @@ Allocated zp ZP_WORD:34 [ current_piece#20 current_piece#75 current_piece#16 cur 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:40 [ current_piece_color#21 current_piece_color#16 current_piece_color#11 current_piece_color#13 ] +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 ] Allocated zp ZP_BYTE:43 [ play_remove_lines::y#8 play_remove_lines::y#1 ] @@ -6925,73 +7400,76 @@ Allocated zp ZP_WORD:65 [ render_init::li#2 render_init::li#1 ] Allocated zp ZP_WORD:67 [ render_init::line#4 render_init::line#1 ] Allocated zp ZP_BYTE:69 [ render_init::l#4 render_init::l#1 ] Allocated zp ZP_BYTE:70 [ render_init::c#2 render_init::c#1 ] -Allocated zp ZP_BYTE:71 [ fill::val#3 ] -Allocated zp ZP_WORD:72 [ fill::addr#2 fill::addr#0 fill::addr#1 ] -Allocated zp ZP_BYTE:74 [ keyboard_event_get::return#3 ] -Allocated zp ZP_BYTE:75 [ main::key_event#0 ] -Allocated zp ZP_BYTE:76 [ play_move_down::key_event#0 ] -Allocated zp ZP_BYTE:77 [ play_move_down::return#3 ] -Allocated zp ZP_BYTE:78 [ main::$10 ] -Allocated zp ZP_BYTE:79 [ main::render#1 ] -Allocated zp ZP_BYTE:80 [ play_move_leftright::key_event#0 ] -Allocated zp ZP_BYTE:81 [ play_move_leftright::return#4 ] -Allocated zp ZP_BYTE:82 [ main::$11 ] -Allocated zp ZP_BYTE:83 [ main::render#2 ] -Allocated zp ZP_BYTE:84 [ play_move_rotate::key_event#0 ] -Allocated zp ZP_BYTE:85 [ play_move_rotate::return#4 ] -Allocated zp ZP_BYTE:86 [ main::$12 ] -Allocated zp ZP_BYTE:87 [ main::render#3 ] -Allocated zp ZP_WORD:88 [ render_current::screen_line#0 ] -Allocated zp ZP_BYTE:90 [ render_current::current_cell#0 ] -Allocated zp ZP_BYTE:91 [ render_playfield::$1 ] -Allocated zp ZP_BYTE:92 [ play_move_rotate::$2 ] -Allocated zp ZP_BYTE:93 [ play_collision::return#13 ] -Allocated zp ZP_BYTE:94 [ play_move_rotate::$6 ] -Allocated zp ZP_BYTE:95 [ play_move_rotate::$4 ] -Allocated zp ZP_WORD:96 [ play_collision::piece_gfx#0 ] -Allocated zp ZP_WORD:98 [ play_collision::playfield_line#0 ] -Allocated zp ZP_BYTE:100 [ play_collision::i#1 ] -Allocated zp ZP_BYTE:101 [ play_collision::$7 ] -Allocated zp ZP_BYTE:102 [ play_collision::return#12 ] -Allocated zp ZP_BYTE:103 [ play_move_leftright::$4 ] -Allocated zp ZP_BYTE:104 [ play_collision::return#1 ] -Allocated zp ZP_BYTE:105 [ play_move_leftright::$8 ] -Allocated zp ZP_BYTE:106 [ keyboard_event_pressed::return#12 ] -Allocated zp ZP_BYTE:107 [ play_move_down::$2 ] -Allocated zp ZP_BYTE:108 [ play_collision::return#0 ] -Allocated zp ZP_BYTE:109 [ play_move_down::$12 ] -Allocated zp ZP_BYTE:110 [ play_spawn_current::$3 ] -Allocated zp ZP_BYTE:111 [ sid_rnd::return#2 ] -Allocated zp ZP_BYTE:112 [ play_spawn_current::$1 ] -Allocated zp ZP_BYTE:113 [ sid_rnd::return#0 ] -Allocated zp ZP_BYTE:114 [ play_remove_lines::c#0 ] -Allocated zp ZP_WORD:115 [ play_lock_current::playfield_line#0 ] -Allocated zp ZP_BYTE:117 [ play_lock_current::i#1 ] -Allocated zp ZP_BYTE:118 [ keyboard_event_pressed::$0 ] -Allocated zp ZP_BYTE:119 [ keyboard_event_pressed::row_bits#0 ] -Allocated zp ZP_BYTE:120 [ keyboard_event_pressed::$1 ] -Allocated zp ZP_BYTE:121 [ keyboard_event_pressed::return#11 ] -Allocated zp ZP_BYTE:122 [ keyboard_matrix_read::rowid#0 ] -Allocated zp ZP_BYTE:123 [ keyboard_matrix_read::return#2 ] -Allocated zp ZP_BYTE:124 [ keyboard_event_scan::row_scan#0 ] -Allocated zp ZP_BYTE:125 [ keyboard_event_pressed::return#0 ] -Allocated zp ZP_BYTE:126 [ keyboard_event_scan::$14 ] -Allocated zp ZP_BYTE:127 [ keyboard_event_pressed::return#1 ] -Allocated zp ZP_BYTE:128 [ keyboard_event_scan::$18 ] -Allocated zp ZP_BYTE:129 [ keyboard_event_pressed::return#2 ] -Allocated zp ZP_BYTE:130 [ keyboard_event_scan::$22 ] -Allocated zp ZP_BYTE:131 [ keyboard_event_pressed::return#10 ] -Allocated zp ZP_BYTE:132 [ keyboard_event_scan::$26 ] -Allocated zp ZP_BYTE:133 [ keyboard_modifiers#5 ] -Allocated zp ZP_BYTE:134 [ keyboard_event_scan::$3 ] -Allocated zp ZP_BYTE:135 [ keyboard_event_scan::$4 ] -Allocated zp ZP_BYTE:136 [ keyboard_event_scan::event_type#0 ] -Allocated zp ZP_BYTE:137 [ keyboard_event_scan::$11 ] -Allocated zp ZP_BYTE:138 [ keyboard_matrix_read::return#0 ] -Allocated zp ZP_BYTE:139 [ play_init::$1 ] -Allocated zp ZP_BYTE:140 [ render_init::$5 ] -Allocated zp ZP_WORD:141 [ render_init::$10 ] -Allocated zp ZP_WORD:143 [ fill::end#0 ] +Allocated zp ZP_BYTE:71 [ render_screen_original::y#6 render_screen_original::y#1 ] +Allocated zp ZP_WORD:72 [ render_screen_original::orig#2 render_screen_original::orig#4 render_screen_original::orig#1 ] +Allocated zp ZP_WORD:74 [ 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 ] +Allocated zp ZP_BYTE:76 [ render_screen_original::x#6 render_screen_original::x#5 render_screen_original::x#4 render_screen_original::x#1 render_screen_original::x#2 render_screen_original::x#3 ] +Allocated zp ZP_WORD:77 [ fill::addr#2 fill::addr#1 ] +Allocated zp ZP_BYTE:79 [ keyboard_event_get::return#3 ] +Allocated zp ZP_BYTE:80 [ main::key_event#0 ] +Allocated zp ZP_BYTE:81 [ play_move_down::key_event#0 ] +Allocated zp ZP_BYTE:82 [ play_move_down::return#3 ] +Allocated zp ZP_BYTE:83 [ main::$10 ] +Allocated zp ZP_BYTE:84 [ main::render#1 ] +Allocated zp ZP_BYTE:85 [ play_move_leftright::key_event#0 ] +Allocated zp ZP_BYTE:86 [ play_move_leftright::return#4 ] +Allocated zp ZP_BYTE:87 [ main::$11 ] +Allocated zp ZP_BYTE:88 [ main::render#2 ] +Allocated zp ZP_BYTE:89 [ play_move_rotate::key_event#0 ] +Allocated zp ZP_BYTE:90 [ play_move_rotate::return#4 ] +Allocated zp ZP_BYTE:91 [ main::$12 ] +Allocated zp ZP_BYTE:92 [ main::render#3 ] +Allocated zp ZP_WORD:93 [ render_current::screen_line#0 ] +Allocated zp ZP_BYTE:95 [ render_current::current_cell#0 ] +Allocated zp ZP_BYTE:96 [ render_playfield::$1 ] +Allocated zp ZP_BYTE:97 [ play_move_rotate::$2 ] +Allocated zp ZP_BYTE:98 [ play_collision::return#13 ] +Allocated zp ZP_BYTE:99 [ play_move_rotate::$6 ] +Allocated zp ZP_BYTE:100 [ play_move_rotate::$4 ] +Allocated zp ZP_WORD:101 [ play_collision::piece_gfx#0 ] +Allocated zp ZP_WORD:103 [ play_collision::playfield_line#0 ] +Allocated zp ZP_BYTE:105 [ play_collision::i#1 ] +Allocated zp ZP_BYTE:106 [ play_collision::$7 ] +Allocated zp ZP_BYTE:107 [ play_collision::return#12 ] +Allocated zp ZP_BYTE:108 [ play_move_leftright::$4 ] +Allocated zp ZP_BYTE:109 [ play_collision::return#1 ] +Allocated zp ZP_BYTE:110 [ play_move_leftright::$8 ] +Allocated zp ZP_BYTE:111 [ keyboard_event_pressed::return#12 ] +Allocated zp ZP_BYTE:112 [ play_move_down::$2 ] +Allocated zp ZP_BYTE:113 [ play_collision::return#0 ] +Allocated zp ZP_BYTE:114 [ play_move_down::$12 ] +Allocated zp ZP_BYTE:115 [ play_spawn_current::$3 ] +Allocated zp ZP_BYTE:116 [ sid_rnd::return#2 ] +Allocated zp ZP_BYTE:117 [ play_spawn_current::$1 ] +Allocated zp ZP_BYTE:118 [ sid_rnd::return#0 ] +Allocated zp ZP_BYTE:119 [ play_remove_lines::c#0 ] +Allocated zp ZP_WORD:120 [ play_lock_current::playfield_line#0 ] +Allocated zp ZP_BYTE:122 [ play_lock_current::i#1 ] +Allocated zp ZP_BYTE:123 [ keyboard_event_pressed::$0 ] +Allocated zp ZP_BYTE:124 [ keyboard_event_pressed::row_bits#0 ] +Allocated zp ZP_BYTE:125 [ keyboard_event_pressed::$1 ] +Allocated zp ZP_BYTE:126 [ keyboard_event_pressed::return#11 ] +Allocated zp ZP_BYTE:127 [ keyboard_matrix_read::rowid#0 ] +Allocated zp ZP_BYTE:128 [ keyboard_matrix_read::return#2 ] +Allocated zp ZP_BYTE:129 [ keyboard_event_scan::row_scan#0 ] +Allocated zp ZP_BYTE:130 [ keyboard_event_pressed::return#0 ] +Allocated zp ZP_BYTE:131 [ keyboard_event_scan::$14 ] +Allocated zp ZP_BYTE:132 [ keyboard_event_pressed::return#1 ] +Allocated zp ZP_BYTE:133 [ keyboard_event_scan::$18 ] +Allocated zp ZP_BYTE:134 [ keyboard_event_pressed::return#2 ] +Allocated zp ZP_BYTE:135 [ keyboard_event_scan::$22 ] +Allocated zp ZP_BYTE:136 [ keyboard_event_pressed::return#10 ] +Allocated zp ZP_BYTE:137 [ keyboard_event_scan::$26 ] +Allocated zp ZP_BYTE:138 [ keyboard_modifiers#5 ] +Allocated zp ZP_BYTE:139 [ keyboard_event_scan::$3 ] +Allocated zp ZP_BYTE:140 [ keyboard_event_scan::$4 ] +Allocated zp ZP_BYTE:141 [ keyboard_event_scan::event_type#0 ] +Allocated zp ZP_BYTE:142 [ keyboard_event_scan::$11 ] +Allocated zp ZP_BYTE:143 [ keyboard_matrix_read::return#0 ] +Allocated zp ZP_BYTE:144 [ play_init::$1 ] +Allocated zp ZP_BYTE:145 [ render_init::$10 ] +Allocated zp ZP_WORD:146 [ render_init::$15 ] +Allocated zp ZP_BYTE:148 [ render_screen_original::$3 ] INITIAL ASM //SEG0 Basic Upstart @@ -7001,15 +7479,26 @@ INITIAL ASM //SEG1 Global Constants & labels .label RASTER = $d012 .label BORDERCOL = $d020 - .label BGCOL = $d021 + .label BGCOL1 = $d021 + .label BGCOL2 = $d022 + .label BGCOL3 = $d023 + .label BGCOL4 = $d024 + .label D011 = $d011 + .const VIC_ECM = $40 + .const VIC_DEN = $10 + .const VIC_RSEL = 8 + .label D018 = $d018 .label COLS = $d800 .label CIA1_PORT_A = $dc00 .label CIA1_PORT_B = $dc01 + .label CIA2_PORT_A = $dd00 + .label CIA2_PORT_A_DDR = $dd02 .const BLACK = 0 .const WHITE = 1 - .const GREEN = 5 + .const CYAN = 3 + .const BLUE = 6 .const DARK_GREY = $b - .const LIGHT_GREY = $f + .const GREY = $c .const KEY_Z = $c .const KEY_LSHIFT = $f .const KEY_X = $17 @@ -7031,6 +7520,7 @@ INITIAL ASM .label PLAYFIELD_CHARSET = $2800 .const PLAYFIELD_LINES = $16 .const PLAYFIELD_COLS = $a + .label PLAYFIELD_SCREEN_ORIGINAL = $2c00 .const current_movedown_slow = $32 .const current_movedown_fast = 5 .const COLLISION_NONE = 0 @@ -7040,7 +7530,7 @@ INITIAL ASM .const COLLISION_RIGHT = 8 .label keyboard_events_size = $3b .label keyboard_modifiers = $38 - .label keyboard_modifiers_5 = $85 + .label keyboard_modifiers_5 = $8a .label current_movedown_counter = 3 .label current_ypos = 2 .label current_xpos = $27 @@ -7048,17 +7538,17 @@ INITIAL ASM .label current_piece_gfx = $25 .label current_ypos_10 = 4 .label current_piece = $22 - .label current_piece_color = $28 + .label current_piece_char = $28 .label current_piece_12 = $15 .label current_xpos_48 = 5 .label current_piece_gfx_53 = 6 - .label current_piece_color_62 = 8 + .label current_piece_char_62 = 8 .label current_ypos_71 = 4 .label current_xpos_96 = 5 .label current_piece_gfx_87 = 6 .label current_piece_gfx_88 = 6 - .label current_piece_color_75 = 8 - .label current_piece_color_76 = 8 + .label current_piece_char_75 = 8 + .label current_piece_char_76 = 8 .label current_piece_71 = $15 .label current_piece_72 = $15 .label current_piece_73 = $15 @@ -7068,566 +7558,569 @@ bbegin: jmp b14 //SEG3 @14 b14: -//SEG4 kickasm(location (const byte*) PLAYFIELD_CHARSET#0) {{ .var charset = LoadPicture("nes-charset.png", List().add($000000, $ffffff)) .for (var c=0; c<32; c++) .for (var y=0;y<8; y++) .byte charset.getSinglecolorByte(c,y) }} -//SEG5 [2] phi from @14 to @26 [phi:@14->@26] -b26_from_b14: - jmp b26 -//SEG6 @26 -b26: -//SEG7 [3] call main -//SEG8 [5] phi from @26 to main [phi:@26->main] -main_from_b26: +//SEG4 kickasm(location (const byte*) PLAYFIELD_CHARSET#0) {{ .fill 8,$00 // Place a filled char at the start of the charset .import binary "nes-screen.imap" }} +//SEG5 kickasm(location (const byte*) PLAYFIELD_SCREEN_ORIGINAL#0) {{ .import binary "nes-screen.iscr" }} +//SEG6 [3] phi from @14 to @27 [phi:@14->@27] +b27_from_b14: + jmp b27 +//SEG7 @27 +b27: +//SEG8 [4] call main +//SEG9 [6] phi from @27 to main [phi:@27->main] +main_from_b27: jsr main -//SEG9 [4] phi from @26 to @end [phi:@26->@end] -bend_from_b26: +//SEG10 [5] phi from @27 to @end [phi:@27->@end] +bend_from_b27: jmp bend -//SEG10 @end +//SEG11 @end bend: -//SEG11 main +//SEG12 main main: { - .label _10 = $4e - .label _11 = $52 - .label _12 = $56 - .label key_event = $4b - .label render = $4f - .label render_2 = $53 - .label render_3 = $57 - //SEG12 [6] call sid_rnd_init + .label _10 = $53 + .label _11 = $57 + .label _12 = $5b + .label key_event = $50 + .label render = $54 + .label render_2 = $58 + .label render_3 = $5c + //SEG13 [7] call sid_rnd_init jsr sid_rnd_init jmp b21 - //SEG13 main::@21 + //SEG14 main::@21 b21: - //SEG14 asm { sei } + //SEG15 asm { sei } sei - //SEG15 [8] call render_init + //SEG16 [9] call render_init + //SEG17 [316] phi from main::@21 to render_init [phi:main::@21->render_init] + render_init_from_b21: jsr render_init - //SEG16 [9] phi from main::@21 to main::@22 [phi:main::@21->main::@22] + //SEG18 [10] phi from main::@21 to main::@22 [phi:main::@21->main::@22] b22_from_b21: jmp b22 - //SEG17 main::@22 + //SEG19 main::@22 b22: - //SEG18 [10] call play_init - //SEG19 [304] phi from main::@22 to play_init [phi:main::@22->play_init] + //SEG20 [11] call play_init + //SEG21 [305] phi from main::@22 to play_init [phi:main::@22->play_init] play_init_from_b22: jsr play_init - //SEG20 [11] phi from main::@22 to main::@23 [phi:main::@22->main::@23] + //SEG22 [12] phi from main::@22 to main::@23 [phi:main::@22->main::@23] b23_from_b22: jmp b23 - //SEG21 main::@23 + //SEG23 main::@23 b23: - //SEG22 [12] call play_spawn_current - //SEG23 [184] phi from main::@23 to play_spawn_current [phi:main::@23->play_spawn_current] + //SEG24 [13] call play_spawn_current + //SEG25 [185] phi from main::@23 to play_spawn_current [phi:main::@23->play_spawn_current] play_spawn_current_from_b23: jsr play_spawn_current - //SEG24 [13] phi from main::@23 to main::@24 [phi:main::@23->main::@24] + //SEG26 [14] phi from main::@23 to main::@24 [phi:main::@23->main::@24] b24_from_b23: jmp b24 - //SEG25 main::@24 + //SEG27 main::@24 b24: - //SEG26 [14] call render_playfield - //SEG27 [72] phi from main::@24 to render_playfield [phi:main::@24->render_playfield] + //SEG28 [15] call render_playfield + //SEG29 [73] phi from main::@24 to render_playfield [phi:main::@24->render_playfield] render_playfield_from_b24: jsr render_playfield jmp b25 - //SEG28 main::@25 + //SEG30 main::@25 b25: - //SEG29 [15] (byte*~) current_piece_gfx#87 ← (byte*) current_piece_gfx#17 -- pbuz1=pbuz2 + //SEG31 [16] (byte*~) current_piece_gfx#87 ← (byte*) current_piece_gfx#17 -- pbuz1=pbuz2 lda current_piece_gfx sta current_piece_gfx_87 lda current_piece_gfx+1 sta current_piece_gfx_87+1 - //SEG30 [16] (byte~) current_piece_color#75 ← (byte) current_piece_color#13 -- vbuz1=vbuz2 - lda current_piece_color - sta current_piece_color_75 - //SEG31 [17] call render_current - //SEG32 [52] phi from main::@25 to render_current [phi:main::@25->render_current] + //SEG32 [17] (byte~) current_piece_char#75 ← (byte) current_piece_char#13 -- vbuz1=vbuz2 + lda current_piece_char + sta current_piece_char_75 + //SEG33 [18] call render_current + //SEG34 [53] phi from main::@25 to render_current [phi:main::@25->render_current] render_current_from_b25: - //SEG33 [52] phi (byte) current_piece_color#62 = (byte~) current_piece_color#75 [phi:main::@25->render_current#0] -- register_copy - //SEG34 [52] phi (byte*) current_piece_gfx#53 = (byte*~) current_piece_gfx#87 [phi:main::@25->render_current#1] -- register_copy - //SEG35 [52] phi (byte) current_xpos#48 = (byte/signed byte/word/signed word/dword/signed dword) 3 [phi:main::@25->render_current#2] -- vbuz1=vbuc1 + //SEG35 [53] phi (byte) current_piece_char#62 = (byte~) current_piece_char#75 [phi:main::@25->render_current#0] -- register_copy + //SEG36 [53] phi (byte*) current_piece_gfx#53 = (byte*~) current_piece_gfx#87 [phi:main::@25->render_current#1] -- register_copy + //SEG37 [53] phi (byte) current_xpos#48 = (byte/signed byte/word/signed word/dword/signed dword) 3 [phi:main::@25->render_current#2] -- vbuz1=vbuc1 lda #3 sta current_xpos_48 - //SEG36 [52] phi (byte) current_ypos#10 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@25->render_current#3] -- vbuz1=vbuc1 + //SEG38 [53] phi (byte) current_ypos#10 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@25->render_current#3] -- vbuz1=vbuc1 lda #0 sta current_ypos_10 jsr render_current - //SEG37 [18] (byte*~) current_piece#70 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) -- pbuz1=pptc1_derefidx_vbuz2 + //SEG39 [19] (byte*~) current_piece#70 ← (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 - //SEG38 [19] phi from main::@25 to main::@1 [phi:main::@25->main::@1] + //SEG40 [20] phi from main::@25 to main::@1 [phi:main::@25->main::@1] b1_from_b25: - //SEG39 [19] phi (byte) current_movedown_counter#12 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@25->main::@1#0] -- vbuz1=vbuc1 + //SEG41 [20] phi (byte) current_movedown_counter#12 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@25->main::@1#0] -- vbuz1=vbuc1 lda #0 sta current_movedown_counter - //SEG40 [19] phi (byte) keyboard_events_size#19 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@25->main::@1#1] -- vbuz1=vbuc1 + //SEG42 [20] phi (byte) keyboard_events_size#19 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@25->main::@1#1] -- vbuz1=vbuc1 lda #0 sta keyboard_events_size - //SEG41 [19] phi (byte) current_piece_color#16 = (byte) current_piece_color#13 [phi:main::@25->main::@1#2] -- register_copy - //SEG42 [19] phi (byte) current_ypos#22 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@25->main::@1#3] -- vbuz1=vbuc1 + //SEG43 [20] phi (byte) current_piece_char#16 = (byte) current_piece_char#13 [phi:main::@25->main::@1#2] -- register_copy + //SEG44 [20] phi (byte) current_ypos#22 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@25->main::@1#3] -- vbuz1=vbuc1 lda #0 sta current_ypos - //SEG43 [19] phi (byte) current_xpos#11 = (byte/signed byte/word/signed word/dword/signed dword) 3 [phi:main::@25->main::@1#4] -- vbuz1=vbuc1 + //SEG45 [20] phi (byte) current_xpos#11 = (byte/signed byte/word/signed word/dword/signed dword) 3 [phi:main::@25->main::@1#4] -- vbuz1=vbuc1 lda #3 sta current_xpos - //SEG44 [19] phi (byte*) current_piece_gfx#10 = (byte*) current_piece_gfx#17 [phi:main::@25->main::@1#5] -- register_copy - //SEG45 [19] phi (byte) current_orientation#10 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@25->main::@1#6] -- vbuz1=vbuc1 + //SEG46 [20] phi (byte*) current_piece_gfx#10 = (byte*) current_piece_gfx#17 [phi:main::@25->main::@1#5] -- register_copy + //SEG47 [20] phi (byte) current_orientation#10 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@25->main::@1#6] -- vbuz1=vbuc1 lda #0 sta current_orientation - //SEG46 [19] phi (byte*) current_piece#16 = (byte*~) current_piece#70 [phi:main::@25->main::@1#7] -- register_copy + //SEG48 [20] phi (byte*) current_piece#16 = (byte*~) current_piece#70 [phi:main::@25->main::@1#7] -- register_copy jmp b1 - //SEG47 main::@1 + //SEG49 main::@1 b1: jmp b4 - //SEG48 main::@4 + //SEG50 main::@4 b4: - //SEG49 [20] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@4 -- _deref_pbuc1_neq_vbuc2_then_la1 + //SEG51 [21] 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 - //SEG50 main::@7 + //SEG52 main::@7 b7: - //SEG51 [21] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 254) goto main::@7 -- _deref_pbuc1_neq_vbuc2_then_la1 + //SEG53 [22] 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 - //SEG52 main::@9 + //SEG54 main::@9 b9: - //SEG53 [22] *((const byte*) BORDERCOL#0) ← ++ *((const byte*) BORDERCOL#0) -- _deref_pbuc1=_inc__deref_pbuc1 + //SEG55 [23] *((const byte*) BORDERCOL#0) ← ++ *((const byte*) BORDERCOL#0) -- _deref_pbuc1=_inc__deref_pbuc1 inc BORDERCOL - //SEG54 [23] call keyboard_event_scan - //SEG55 [248] phi from main::@9 to keyboard_event_scan [phi:main::@9->keyboard_event_scan] + //SEG56 [24] call keyboard_event_scan + //SEG57 [249] phi from main::@9 to keyboard_event_scan [phi:main::@9->keyboard_event_scan] keyboard_event_scan_from_b9: jsr keyboard_event_scan - //SEG56 [24] phi from main::@9 to main::@27 [phi:main::@9->main::@27] + //SEG58 [25] phi from main::@9 to main::@27 [phi:main::@9->main::@27] b27_from_b9: jmp b27 - //SEG57 main::@27 + //SEG59 main::@27 b27: - //SEG58 [25] call keyboard_event_get + //SEG60 [26] call keyboard_event_get jsr keyboard_event_get - //SEG59 [26] (byte) keyboard_event_get::return#3 ← (byte) keyboard_event_get::return#2 -- vbuz1=vbuz2 + //SEG61 [27] (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 b28 - //SEG60 main::@28 + //SEG62 main::@28 b28: - //SEG61 [27] (byte) main::key_event#0 ← (byte) keyboard_event_get::return#3 -- vbuz1=vbuz2 + //SEG63 [28] (byte) main::key_event#0 ← (byte) keyboard_event_get::return#3 -- vbuz1=vbuz2 lda keyboard_event_get.return_3 sta key_event - //SEG62 [28] (byte) play_move_down::key_event#0 ← (byte) main::key_event#0 -- vbuz1=vbuz2 + //SEG64 [29] (byte) play_move_down::key_event#0 ← (byte) main::key_event#0 -- vbuz1=vbuz2 lda key_event sta play_move_down.key_event - //SEG63 [29] call play_move_down + //SEG65 [30] call play_move_down jsr play_move_down - //SEG64 [30] (byte) play_move_down::return#3 ← (byte) play_move_down::return#2 -- vbuz1=vbuz2 + //SEG66 [31] (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 b29 - //SEG65 main::@29 + //SEG67 main::@29 b29: - //SEG66 [31] (byte~) main::$10 ← (byte) play_move_down::return#3 -- vbuz1=vbuz2 + //SEG68 [32] (byte~) main::$10 ← (byte) play_move_down::return#3 -- vbuz1=vbuz2 lda play_move_down.return_3 sta _10 - //SEG67 [32] (byte) main::render#1 ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte~) main::$10 -- vbuz1=vbuc1_plus_vbuz2 + //SEG69 [33] (byte) main::render#1 ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte~) main::$10 -- vbuz1=vbuc1_plus_vbuz2 lda #0 clc adc _10 sta render - //SEG68 [33] (byte) play_move_leftright::key_event#0 ← (byte) main::key_event#0 -- vbuz1=vbuz2 + //SEG70 [34] (byte) play_move_leftright::key_event#0 ← (byte) main::key_event#0 -- vbuz1=vbuz2 lda key_event sta play_move_leftright.key_event - //SEG69 [34] call play_move_leftright + //SEG71 [35] call play_move_leftright jsr play_move_leftright - //SEG70 [35] (byte) play_move_leftright::return#4 ← (byte) play_move_leftright::return#1 -- vbuz1=vbuz2 + //SEG72 [36] (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 b30 - //SEG71 main::@30 + //SEG73 main::@30 b30: - //SEG72 [36] (byte~) main::$11 ← (byte) play_move_leftright::return#4 -- vbuz1=vbuz2 + //SEG74 [37] (byte~) main::$11 ← (byte) play_move_leftright::return#4 -- vbuz1=vbuz2 lda play_move_leftright.return_4 sta _11 - //SEG73 [37] (byte) main::render#2 ← (byte) main::render#1 + (byte~) main::$11 -- vbuz1=vbuz2_plus_vbuz3 + //SEG75 [38] (byte) main::render#2 ← (byte) main::render#1 + (byte~) main::$11 -- vbuz1=vbuz2_plus_vbuz3 lda render clc adc _11 sta render_2 - //SEG74 [38] (byte) play_move_rotate::key_event#0 ← (byte) main::key_event#0 -- vbuz1=vbuz2 + //SEG76 [39] (byte) play_move_rotate::key_event#0 ← (byte) main::key_event#0 -- vbuz1=vbuz2 lda key_event sta play_move_rotate.key_event - //SEG75 [39] call play_move_rotate + //SEG77 [40] call play_move_rotate jsr play_move_rotate - //SEG76 [40] (byte) play_move_rotate::return#4 ← (byte) play_move_rotate::return#1 -- vbuz1=vbuz2 + //SEG78 [41] (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 b31 - //SEG77 main::@31 + //SEG79 main::@31 b31: - //SEG78 [41] (byte~) main::$12 ← (byte) play_move_rotate::return#4 -- vbuz1=vbuz2 + //SEG80 [42] (byte~) main::$12 ← (byte) play_move_rotate::return#4 -- vbuz1=vbuz2 lda play_move_rotate.return_4 sta _12 - //SEG79 [42] (byte) main::render#3 ← (byte) main::render#2 + (byte~) main::$12 -- vbuz1=vbuz2_plus_vbuz3 + //SEG81 [43] (byte) main::render#3 ← (byte) main::render#2 + (byte~) main::$12 -- vbuz1=vbuz2_plus_vbuz3 lda render_2 clc adc _12 sta render_3 - //SEG80 [43] if((byte) main::render#3==(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@10 -- vbuz1_eq_0_then_la1 + //SEG82 [44] 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 - //SEG81 [44] phi from main::@31 to main::@19 [phi:main::@31->main::@19] + //SEG83 [45] phi from main::@31 to main::@19 [phi:main::@31->main::@19] b19_from_b31: jmp b19 - //SEG82 main::@19 + //SEG84 main::@19 b19: - //SEG83 [45] call render_playfield - //SEG84 [72] phi from main::@19 to render_playfield [phi:main::@19->render_playfield] + //SEG85 [46] call render_playfield + //SEG86 [73] phi from main::@19 to render_playfield [phi:main::@19->render_playfield] render_playfield_from_b19: jsr render_playfield jmp b32 - //SEG85 main::@32 + //SEG87 main::@32 b32: - //SEG86 [46] (byte~) current_ypos#71 ← (byte) current_ypos#14 -- vbuz1=vbuz2 + //SEG88 [47] (byte~) current_ypos#71 ← (byte) current_ypos#14 -- vbuz1=vbuz2 lda current_ypos sta current_ypos_71 - //SEG87 [47] (byte~) current_xpos#96 ← (byte) current_xpos#20 -- vbuz1=vbuz2 + //SEG89 [48] (byte~) current_xpos#96 ← (byte) current_xpos#20 -- vbuz1=vbuz2 lda current_xpos sta current_xpos_96 - //SEG88 [48] (byte*~) current_piece_gfx#88 ← (byte*) current_piece_gfx#15 -- pbuz1=pbuz2 + //SEG90 [49] (byte*~) current_piece_gfx#88 ← (byte*) current_piece_gfx#15 -- pbuz1=pbuz2 lda current_piece_gfx sta current_piece_gfx_88 lda current_piece_gfx+1 sta current_piece_gfx_88+1 - //SEG89 [49] (byte~) current_piece_color#76 ← (byte) current_piece_color#11 -- vbuz1=vbuz2 - lda current_piece_color - sta current_piece_color_76 - //SEG90 [50] call render_current - //SEG91 [52] phi from main::@32 to render_current [phi:main::@32->render_current] + //SEG91 [50] (byte~) current_piece_char#76 ← (byte) current_piece_char#11 -- vbuz1=vbuz2 + lda current_piece_char + sta current_piece_char_76 + //SEG92 [51] call render_current + //SEG93 [53] phi from main::@32 to render_current [phi:main::@32->render_current] render_current_from_b32: - //SEG92 [52] phi (byte) current_piece_color#62 = (byte~) current_piece_color#76 [phi:main::@32->render_current#0] -- register_copy - //SEG93 [52] phi (byte*) current_piece_gfx#53 = (byte*~) current_piece_gfx#88 [phi:main::@32->render_current#1] -- register_copy - //SEG94 [52] phi (byte) current_xpos#48 = (byte~) current_xpos#96 [phi:main::@32->render_current#2] -- register_copy - //SEG95 [52] phi (byte) current_ypos#10 = (byte~) current_ypos#71 [phi:main::@32->render_current#3] -- register_copy + //SEG94 [53] phi (byte) current_piece_char#62 = (byte~) current_piece_char#76 [phi:main::@32->render_current#0] -- register_copy + //SEG95 [53] phi (byte*) current_piece_gfx#53 = (byte*~) current_piece_gfx#88 [phi:main::@32->render_current#1] -- register_copy + //SEG96 [53] phi (byte) current_xpos#48 = (byte~) current_xpos#96 [phi:main::@32->render_current#2] -- register_copy + //SEG97 [53] phi (byte) current_ypos#10 = (byte~) current_ypos#71 [phi:main::@32->render_current#3] -- register_copy jsr render_current jmp b10 - //SEG96 main::@10 + //SEG98 main::@10 b10: - //SEG97 [51] *((const byte*) BORDERCOL#0) ← -- *((const byte*) BORDERCOL#0) -- _deref_pbuc1=_dec__deref_pbuc1 + //SEG99 [52] *((const byte*) BORDERCOL#0) ← -- *((const byte*) BORDERCOL#0) -- _deref_pbuc1=_dec__deref_pbuc1 dec BORDERCOL - //SEG98 [19] phi from main::@10 to main::@1 [phi:main::@10->main::@1] + //SEG100 [20] phi from main::@10 to main::@1 [phi:main::@10->main::@1] b1_from_b10: - //SEG99 [19] phi (byte) current_movedown_counter#12 = (byte) current_movedown_counter#10 [phi:main::@10->main::@1#0] -- register_copy - //SEG100 [19] phi (byte) keyboard_events_size#19 = (byte) keyboard_events_size#16 [phi:main::@10->main::@1#1] -- register_copy - //SEG101 [19] phi (byte) current_piece_color#16 = (byte) current_piece_color#11 [phi:main::@10->main::@1#2] -- register_copy - //SEG102 [19] phi (byte) current_ypos#22 = (byte) current_ypos#14 [phi:main::@10->main::@1#3] -- register_copy - //SEG103 [19] phi (byte) current_xpos#11 = (byte) current_xpos#20 [phi:main::@10->main::@1#4] -- register_copy - //SEG104 [19] phi (byte*) current_piece_gfx#10 = (byte*) current_piece_gfx#15 [phi:main::@10->main::@1#5] -- register_copy - //SEG105 [19] phi (byte) current_orientation#10 = (byte) current_orientation#19 [phi:main::@10->main::@1#6] -- register_copy - //SEG106 [19] phi (byte*) current_piece#16 = (byte*) current_piece#10 [phi:main::@10->main::@1#7] -- register_copy + //SEG101 [20] phi (byte) current_movedown_counter#12 = (byte) current_movedown_counter#10 [phi:main::@10->main::@1#0] -- register_copy + //SEG102 [20] phi (byte) keyboard_events_size#19 = (byte) keyboard_events_size#16 [phi:main::@10->main::@1#1] -- register_copy + //SEG103 [20] phi (byte) current_piece_char#16 = (byte) current_piece_char#11 [phi:main::@10->main::@1#2] -- register_copy + //SEG104 [20] phi (byte) current_ypos#22 = (byte) current_ypos#14 [phi:main::@10->main::@1#3] -- register_copy + //SEG105 [20] phi (byte) current_xpos#11 = (byte) current_xpos#20 [phi:main::@10->main::@1#4] -- register_copy + //SEG106 [20] phi (byte*) current_piece_gfx#10 = (byte*) current_piece_gfx#15 [phi:main::@10->main::@1#5] -- register_copy + //SEG107 [20] phi (byte) current_orientation#10 = (byte) current_orientation#19 [phi:main::@10->main::@1#6] -- register_copy + //SEG108 [20] phi (byte*) current_piece#16 = (byte*) current_piece#10 [phi:main::@10->main::@1#7] -- register_copy jmp b1 } -//SEG107 render_current +//SEG109 render_current render_current: { .label ypos2 = 9 .label l = $a - .label screen_line = $58 + .label screen_line = $5d .label xpos = $c - .label current_cell = $5a + .label current_cell = $5f .label i = $b .label c = $d - //SEG108 [53] (byte) render_current::ypos2#0 ← (byte) current_ypos#10 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_rol_1 + //SEG110 [54] (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 - //SEG109 [54] phi from render_current to render_current::@1 [phi:render_current->render_current::@1] + //SEG111 [55] phi from render_current to render_current::@1 [phi:render_current->render_current::@1] b1_from_render_current: - //SEG110 [54] phi (byte) render_current::i#4 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_current->render_current::@1#0] -- vbuz1=vbuc1 + //SEG112 [55] phi (byte) render_current::i#4 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_current->render_current::@1#0] -- vbuz1=vbuc1 lda #0 sta i - //SEG111 [54] phi (byte) render_current::l#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_current->render_current::@1#1] -- vbuz1=vbuc1 + //SEG113 [55] phi (byte) render_current::l#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_current->render_current::@1#1] -- vbuz1=vbuc1 lda #0 sta l - //SEG112 [54] phi (byte) render_current::ypos2#2 = (byte) render_current::ypos2#0 [phi:render_current->render_current::@1#2] -- register_copy + //SEG114 [55] phi (byte) render_current::ypos2#2 = (byte) render_current::ypos2#0 [phi:render_current->render_current::@1#2] -- register_copy jmp b1 - //SEG113 [54] phi from render_current::@2 to render_current::@1 [phi:render_current::@2->render_current::@1] + //SEG115 [55] phi from render_current::@2 to render_current::@1 [phi:render_current::@2->render_current::@1] b1_from_b2: - //SEG114 [54] phi (byte) render_current::i#4 = (byte) render_current::i#8 [phi:render_current::@2->render_current::@1#0] -- register_copy - //SEG115 [54] phi (byte) render_current::l#3 = (byte) render_current::l#1 [phi:render_current::@2->render_current::@1#1] -- register_copy - //SEG116 [54] phi (byte) render_current::ypos2#2 = (byte) render_current::ypos2#1 [phi:render_current::@2->render_current::@1#2] -- register_copy + //SEG116 [55] phi (byte) render_current::i#4 = (byte) render_current::i#8 [phi:render_current::@2->render_current::@1#0] -- register_copy + //SEG117 [55] phi (byte) render_current::l#3 = (byte) render_current::l#1 [phi:render_current::@2->render_current::@1#1] -- register_copy + //SEG118 [55] phi (byte) render_current::ypos2#2 = (byte) render_current::ypos2#1 [phi:render_current::@2->render_current::@1#2] -- register_copy jmp b1 - //SEG117 render_current::@1 + //SEG119 render_current::@1 b1: - //SEG118 [55] if((byte) render_current::ypos2#2>=(byte/signed byte/word/signed word/dword/signed dword) 2*(const byte) PLAYFIELD_LINES#0) goto render_current::@2 -- vbuz1_ge_vbuc1_then_la1 + //SEG120 [56] if((byte) render_current::ypos2#2>=(byte/signed byte/word/signed word/dword/signed dword) 2*(const byte) PLAYFIELD_LINES#0) goto render_current::@2 -- vbuz1_ge_vbuc1_then_la1 lda ypos2 cmp #2*PLAYFIELD_LINES bcs b2_from_b1 jmp b6 - //SEG119 render_current::@6 + //SEG121 render_current::@6 b6: - //SEG120 [56] (byte*) render_current::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0+3]) screen_lines#0 + (byte) render_current::ypos2#2) -- pbuz1=pptc1_derefidx_vbuz2 + //SEG122 [57] (byte*) render_current::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0+3]) screen_lines#0 + (byte) render_current::ypos2#2) -- pbuz1=pptc1_derefidx_vbuz2 ldy ypos2 lda screen_lines,y sta screen_line lda screen_lines+1,y sta screen_line+1 - //SEG121 [57] (byte) render_current::xpos#0 ← (byte) current_xpos#48 -- vbuz1=vbuz2 + //SEG123 [58] (byte) render_current::xpos#0 ← (byte) current_xpos#48 -- vbuz1=vbuz2 lda current_xpos_48 sta xpos - //SEG122 [58] phi from render_current::@6 to render_current::@3 [phi:render_current::@6->render_current::@3] + //SEG124 [59] phi from render_current::@6 to render_current::@3 [phi:render_current::@6->render_current::@3] b3_from_b6: - //SEG123 [58] phi (byte) render_current::c#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_current::@6->render_current::@3#0] -- vbuz1=vbuc1 + //SEG125 [59] phi (byte) render_current::c#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_current::@6->render_current::@3#0] -- vbuz1=vbuc1 lda #0 sta c - //SEG124 [58] phi (byte) render_current::xpos#2 = (byte) render_current::xpos#0 [phi:render_current::@6->render_current::@3#1] -- register_copy - //SEG125 [58] phi (byte) render_current::i#2 = (byte) render_current::i#4 [phi:render_current::@6->render_current::@3#2] -- register_copy + //SEG126 [59] phi (byte) render_current::xpos#2 = (byte) render_current::xpos#0 [phi:render_current::@6->render_current::@3#1] -- register_copy + //SEG127 [59] phi (byte) render_current::i#2 = (byte) render_current::i#4 [phi:render_current::@6->render_current::@3#2] -- register_copy jmp b3 - //SEG126 [58] phi from render_current::@4 to render_current::@3 [phi:render_current::@4->render_current::@3] + //SEG128 [59] phi from render_current::@4 to render_current::@3 [phi:render_current::@4->render_current::@3] b3_from_b4: - //SEG127 [58] phi (byte) render_current::c#2 = (byte) render_current::c#1 [phi:render_current::@4->render_current::@3#0] -- register_copy - //SEG128 [58] phi (byte) render_current::xpos#2 = (byte) render_current::xpos#1 [phi:render_current::@4->render_current::@3#1] -- register_copy - //SEG129 [58] phi (byte) render_current::i#2 = (byte) render_current::i#1 [phi:render_current::@4->render_current::@3#2] -- register_copy + //SEG129 [59] phi (byte) render_current::c#2 = (byte) render_current::c#1 [phi:render_current::@4->render_current::@3#0] -- register_copy + //SEG130 [59] phi (byte) render_current::xpos#2 = (byte) render_current::xpos#1 [phi:render_current::@4->render_current::@3#1] -- register_copy + //SEG131 [59] phi (byte) render_current::i#2 = (byte) render_current::i#1 [phi:render_current::@4->render_current::@3#2] -- register_copy jmp b3 - //SEG130 render_current::@3 + //SEG132 render_current::@3 b3: - //SEG131 [59] (byte) render_current::current_cell#0 ← *((byte*) current_piece_gfx#53 + (byte) render_current::i#2) -- vbuz1=pbuz2_derefidx_vbuz3 + //SEG133 [60] (byte) render_current::current_cell#0 ← *((byte*) current_piece_gfx#53 + (byte) render_current::i#2) -- vbuz1=pbuz2_derefidx_vbuz3 ldy i lda (current_piece_gfx_53),y sta current_cell - //SEG132 [60] (byte) render_current::i#1 ← ++ (byte) render_current::i#2 -- vbuz1=_inc_vbuz1 + //SEG134 [61] (byte) render_current::i#1 ← ++ (byte) render_current::i#2 -- vbuz1=_inc_vbuz1 inc i - //SEG133 [61] if((byte) render_current::current_cell#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto render_current::@4 -- vbuz1_eq_0_then_la1 + //SEG135 [62] if((byte) render_current::current_cell#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto render_current::@4 -- vbuz1_eq_0_then_la1 lda current_cell cmp #0 beq b4 jmp b7 - //SEG134 render_current::@7 + //SEG136 render_current::@7 b7: - //SEG135 [62] if((byte) render_current::xpos#2>=(const byte) PLAYFIELD_COLS#0) goto render_current::@4 -- vbuz1_ge_vbuc1_then_la1 + //SEG137 [63] if((byte) render_current::xpos#2>=(const byte) PLAYFIELD_COLS#0) goto render_current::@4 -- vbuz1_ge_vbuc1_then_la1 lda xpos cmp #PLAYFIELD_COLS bcs b4 jmp b8 - //SEG136 render_current::@8 + //SEG138 render_current::@8 b8: - //SEG137 [63] *((byte*) render_current::screen_line#0 + (byte) render_current::xpos#2) ← (byte) current_piece_color#62 -- pbuz1_derefidx_vbuz2=vbuz3 - lda current_piece_color_62 + //SEG139 [64] *((byte*) render_current::screen_line#0 + (byte) render_current::xpos#2) ← (byte) current_piece_char#62 -- pbuz1_derefidx_vbuz2=vbuz3 + lda current_piece_char_62 ldy xpos sta (screen_line),y jmp b4 - //SEG138 render_current::@4 + //SEG140 render_current::@4 b4: - //SEG139 [64] (byte) render_current::xpos#1 ← ++ (byte) render_current::xpos#2 -- vbuz1=_inc_vbuz1 + //SEG141 [65] (byte) render_current::xpos#1 ← ++ (byte) render_current::xpos#2 -- vbuz1=_inc_vbuz1 inc xpos - //SEG140 [65] (byte) render_current::c#1 ← ++ (byte) render_current::c#2 -- vbuz1=_inc_vbuz1 + //SEG142 [66] (byte) render_current::c#1 ← ++ (byte) render_current::c#2 -- vbuz1=_inc_vbuz1 inc c - //SEG141 [66] if((byte) render_current::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_current::@3 -- vbuz1_neq_vbuc1_then_la1 + //SEG143 [67] if((byte) render_current::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_current::@3 -- vbuz1_neq_vbuc1_then_la1 lda c cmp #4 bne b3_from_b4 - //SEG142 [67] phi from render_current::@1 render_current::@4 to render_current::@2 [phi:render_current::@1/render_current::@4->render_current::@2] + //SEG144 [68] phi from render_current::@1 render_current::@4 to render_current::@2 [phi:render_current::@1/render_current::@4->render_current::@2] b2_from_b1: b2_from_b4: - //SEG143 [67] phi (byte) render_current::i#8 = (byte) render_current::i#4 [phi:render_current::@1/render_current::@4->render_current::@2#0] -- register_copy + //SEG145 [68] phi (byte) render_current::i#8 = (byte) render_current::i#4 [phi:render_current::@1/render_current::@4->render_current::@2#0] -- register_copy jmp b2 - //SEG144 render_current::@2 + //SEG146 render_current::@2 b2: - //SEG145 [68] (byte) render_current::ypos2#1 ← (byte) render_current::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 -- vbuz1=vbuz1_plus_2 + //SEG147 [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 lda ypos2 clc adc #2 sta ypos2 - //SEG146 [69] (byte) render_current::l#1 ← ++ (byte) render_current::l#3 -- vbuz1=_inc_vbuz1 + //SEG148 [70] (byte) render_current::l#1 ← ++ (byte) render_current::l#3 -- vbuz1=_inc_vbuz1 inc l - //SEG147 [70] 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 + //SEG149 [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 lda l cmp #4 bne b1_from_b2 jmp breturn - //SEG148 render_current::@return + //SEG150 render_current::@return breturn: - //SEG149 [71] return + //SEG151 [72] return rts } -//SEG150 render_playfield +//SEG152 render_playfield render_playfield: { - .label _1 = $5b + .label _1 = $60 .label line = $10 .label i = $f .label c = $12 .label l = $e - //SEG151 [73] phi from render_playfield to render_playfield::@1 [phi:render_playfield->render_playfield::@1] + //SEG153 [74] phi from render_playfield to render_playfield::@1 [phi:render_playfield->render_playfield::@1] b1_from_render_playfield: - //SEG152 [73] phi (byte) render_playfield::i#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_playfield->render_playfield::@1#0] -- vbuz1=vbuc1 + //SEG154 [74] phi (byte) render_playfield::i#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_playfield->render_playfield::@1#0] -- vbuz1=vbuc1 lda #0 sta i - //SEG153 [73] phi (byte) render_playfield::l#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_playfield->render_playfield::@1#1] -- vbuz1=vbuc1 + //SEG155 [74] phi (byte) render_playfield::l#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_playfield->render_playfield::@1#1] -- vbuz1=vbuc1 lda #0 sta l jmp b1 - //SEG154 [73] phi from render_playfield::@3 to render_playfield::@1 [phi:render_playfield::@3->render_playfield::@1] + //SEG156 [74] phi from render_playfield::@3 to render_playfield::@1 [phi:render_playfield::@3->render_playfield::@1] b1_from_b3: - //SEG155 [73] phi (byte) render_playfield::i#3 = (byte) render_playfield::i#1 [phi:render_playfield::@3->render_playfield::@1#0] -- register_copy - //SEG156 [73] phi (byte) render_playfield::l#2 = (byte) render_playfield::l#1 [phi:render_playfield::@3->render_playfield::@1#1] -- register_copy + //SEG157 [74] phi (byte) render_playfield::i#3 = (byte) render_playfield::i#1 [phi:render_playfield::@3->render_playfield::@1#0] -- register_copy + //SEG158 [74] phi (byte) render_playfield::l#2 = (byte) render_playfield::l#1 [phi:render_playfield::@3->render_playfield::@1#1] -- register_copy jmp b1 - //SEG157 render_playfield::@1 + //SEG159 render_playfield::@1 b1: - //SEG158 [74] (byte~) render_playfield::$1 ← (byte) render_playfield::l#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_rol_1 + //SEG160 [75] (byte~) render_playfield::$1 ← (byte) render_playfield::l#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_rol_1 lda l asl sta _1 - //SEG159 [75] (byte*) render_playfield::line#0 ← *((const byte*[PLAYFIELD_LINES#0+3]) screen_lines#0 + (byte~) render_playfield::$1) -- pbuz1=pptc1_derefidx_vbuz2 + //SEG161 [76] (byte*) render_playfield::line#0 ← *((const byte*[PLAYFIELD_LINES#0+3]) screen_lines#0 + (byte~) render_playfield::$1) -- pbuz1=pptc1_derefidx_vbuz2 ldy _1 lda screen_lines,y sta line lda screen_lines+1,y sta line+1 - //SEG160 [76] phi from render_playfield::@1 to render_playfield::@2 [phi:render_playfield::@1->render_playfield::@2] + //SEG162 [77] phi from render_playfield::@1 to render_playfield::@2 [phi:render_playfield::@1->render_playfield::@2] b2_from_b1: - //SEG161 [76] 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 + //SEG163 [77] 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 - //SEG162 [76] phi (byte*) render_playfield::line#2 = (byte*) render_playfield::line#0 [phi:render_playfield::@1->render_playfield::@2#1] -- register_copy - //SEG163 [76] phi (byte) render_playfield::i#2 = (byte) render_playfield::i#3 [phi:render_playfield::@1->render_playfield::@2#2] -- register_copy + //SEG164 [77] phi (byte*) render_playfield::line#2 = (byte*) render_playfield::line#0 [phi:render_playfield::@1->render_playfield::@2#1] -- register_copy + //SEG165 [77] phi (byte) render_playfield::i#2 = (byte) render_playfield::i#3 [phi:render_playfield::@1->render_playfield::@2#2] -- register_copy jmp b2 - //SEG164 [76] phi from render_playfield::@2 to render_playfield::@2 [phi:render_playfield::@2->render_playfield::@2] + //SEG166 [77] phi from render_playfield::@2 to render_playfield::@2 [phi:render_playfield::@2->render_playfield::@2] b2_from_b2: - //SEG165 [76] phi (byte) render_playfield::c#2 = (byte) render_playfield::c#1 [phi:render_playfield::@2->render_playfield::@2#0] -- register_copy - //SEG166 [76] phi (byte*) render_playfield::line#2 = (byte*) render_playfield::line#1 [phi:render_playfield::@2->render_playfield::@2#1] -- register_copy - //SEG167 [76] phi (byte) render_playfield::i#2 = (byte) render_playfield::i#1 [phi:render_playfield::@2->render_playfield::@2#2] -- register_copy + //SEG167 [77] phi (byte) render_playfield::c#2 = (byte) render_playfield::c#1 [phi:render_playfield::@2->render_playfield::@2#0] -- register_copy + //SEG168 [77] phi (byte*) render_playfield::line#2 = (byte*) render_playfield::line#1 [phi:render_playfield::@2->render_playfield::@2#1] -- register_copy + //SEG169 [77] phi (byte) render_playfield::i#2 = (byte) render_playfield::i#1 [phi:render_playfield::@2->render_playfield::@2#2] -- register_copy jmp b2 - //SEG168 render_playfield::@2 + //SEG170 render_playfield::@2 b2: - //SEG169 [77] *((byte*) render_playfield::line#2) ← *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) render_playfield::i#2) -- _deref_pbuz1=pbuc1_derefidx_vbuz2 + //SEG171 [78] *((byte*) render_playfield::line#2) ← *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) render_playfield::i#2) -- _deref_pbuz1=pbuc1_derefidx_vbuz2 ldy i lda playfield,y ldy #0 sta (line),y - //SEG170 [78] (byte*) render_playfield::line#1 ← ++ (byte*) render_playfield::line#2 -- pbuz1=_inc_pbuz1 + //SEG172 [79] (byte*) render_playfield::line#1 ← ++ (byte*) render_playfield::line#2 -- pbuz1=_inc_pbuz1 inc line bne !+ inc line+1 !: - //SEG171 [79] (byte) render_playfield::i#1 ← ++ (byte) render_playfield::i#2 -- vbuz1=_inc_vbuz1 + //SEG173 [80] (byte) render_playfield::i#1 ← ++ (byte) render_playfield::i#2 -- vbuz1=_inc_vbuz1 inc i - //SEG172 [80] (byte) render_playfield::c#1 ← ++ (byte) render_playfield::c#2 -- vbuz1=_inc_vbuz1 + //SEG174 [81] (byte) render_playfield::c#1 ← ++ (byte) render_playfield::c#2 -- vbuz1=_inc_vbuz1 inc c - //SEG173 [81] 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 + //SEG175 [82] 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 - //SEG174 render_playfield::@3 + //SEG176 render_playfield::@3 b3: - //SEG175 [82] (byte) render_playfield::l#1 ← ++ (byte) render_playfield::l#2 -- vbuz1=_inc_vbuz1 + //SEG177 [83] (byte) render_playfield::l#1 ← ++ (byte) render_playfield::l#2 -- vbuz1=_inc_vbuz1 inc l - //SEG176 [83] 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 + //SEG178 [84] 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 - //SEG177 render_playfield::@return + //SEG179 render_playfield::@return breturn: - //SEG178 [84] return + //SEG180 [85] return rts } -//SEG179 play_move_rotate +//SEG181 play_move_rotate play_move_rotate: { - .label _2 = $5c - .label _4 = $5f - .label _6 = $5e + .label _2 = $61 + .label _4 = $64 + .label _6 = $63 .label orientation = $14 .label return = $13 - .label key_event = $54 - .label return_4 = $55 - //SEG180 [85] if((byte) play_move_rotate::key_event#0==(const byte) KEY_Z#0) goto play_move_rotate::@1 -- vbuz1_eq_vbuc1_then_la1 + .label key_event = $59 + .label return_4 = $5a + //SEG182 [86] 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 - //SEG181 play_move_rotate::@6 + //SEG183 play_move_rotate::@6 b6: - //SEG182 [86] if((byte) play_move_rotate::key_event#0==(const byte) KEY_X#0) goto play_move_rotate::@2 -- vbuz1_eq_vbuc1_then_la1 + //SEG184 [87] 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 - //SEG183 [87] 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] + //SEG185 [88] 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: - //SEG184 [87] 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 - //SEG185 [87] 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 - //SEG186 [87] 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 + //SEG186 [88] 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 + //SEG187 [88] 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 + //SEG188 [88] 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 - //SEG187 play_move_rotate::@return + //SEG189 play_move_rotate::@return breturn: - //SEG188 [88] return + //SEG190 [89] return rts - //SEG189 play_move_rotate::@2 + //SEG191 play_move_rotate::@2 b2: - //SEG190 [89] (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 + //SEG192 [90] (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 - //SEG191 [90] (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 + //SEG193 [91] (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 - //SEG192 [91] 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] + //SEG194 [92] 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: - //SEG193 [91] 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 + //SEG195 [92] 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 - //SEG194 play_move_rotate::@4 + //SEG196 play_move_rotate::@4 b4: - //SEG195 [92] (byte) play_collision::xpos#3 ← (byte) current_xpos#20 -- vbuz1=vbuz2 + //SEG197 [93] (byte) play_collision::xpos#3 ← (byte) current_xpos#20 -- vbuz1=vbuz2 lda current_xpos sta play_collision.xpos - //SEG196 [93] (byte) play_collision::ypos#3 ← (byte) current_ypos#14 -- vbuz1=vbuz2 + //SEG198 [94] (byte) play_collision::ypos#3 ← (byte) current_ypos#14 -- vbuz1=vbuz2 lda current_ypos sta play_collision.ypos - //SEG197 [94] (byte) play_collision::orientation#3 ← (byte) play_move_rotate::orientation#3 -- vbuz1=vbuz2 + //SEG199 [95] (byte) play_collision::orientation#3 ← (byte) play_move_rotate::orientation#3 -- vbuz1=vbuz2 lda orientation sta play_collision.orientation - //SEG198 [95] (byte*~) current_piece#74 ← (byte*) current_piece#10 -- pbuz1=pbuz2 + //SEG200 [96] (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 - //SEG199 [96] call play_collision - //SEG200 [104] phi from play_move_rotate::@4 to play_collision [phi:play_move_rotate::@4->play_collision] + //SEG201 [97] call play_collision + //SEG202 [105] phi from play_move_rotate::@4 to play_collision [phi:play_move_rotate::@4->play_collision] play_collision_from_b4: - //SEG201 [104] phi (byte) play_collision::xpos#5 = (byte) play_collision::xpos#3 [phi:play_move_rotate::@4->play_collision#0] -- register_copy - //SEG202 [104] phi (byte) play_collision::ypos#4 = (byte) play_collision::ypos#3 [phi:play_move_rotate::@4->play_collision#1] -- register_copy - //SEG203 [104] phi (byte) play_collision::orientation#4 = (byte) play_collision::orientation#3 [phi:play_move_rotate::@4->play_collision#2] -- register_copy - //SEG204 [104] phi (byte*) current_piece#12 = (byte*~) current_piece#74 [phi:play_move_rotate::@4->play_collision#3] -- register_copy + //SEG203 [105] phi (byte) play_collision::xpos#5 = (byte) play_collision::xpos#3 [phi:play_move_rotate::@4->play_collision#0] -- register_copy + //SEG204 [105] phi (byte) play_collision::ypos#4 = (byte) play_collision::ypos#3 [phi:play_move_rotate::@4->play_collision#1] -- register_copy + //SEG205 [105] phi (byte) play_collision::orientation#4 = (byte) play_collision::orientation#3 [phi:play_move_rotate::@4->play_collision#2] -- register_copy + //SEG206 [105] phi (byte*) current_piece#12 = (byte*~) current_piece#74 [phi:play_move_rotate::@4->play_collision#3] -- register_copy jsr play_collision - //SEG205 [97] (byte) play_collision::return#13 ← (byte) play_collision::return#14 -- vbuz1=vbuz2 + //SEG207 [98] (byte) play_collision::return#13 ← (byte) play_collision::return#14 -- vbuz1=vbuz2 lda play_collision.return_14 sta play_collision.return_13 jmp b14 - //SEG206 play_move_rotate::@14 + //SEG208 play_move_rotate::@14 b14: - //SEG207 [98] (byte~) play_move_rotate::$6 ← (byte) play_collision::return#13 -- vbuz1=vbuz2 + //SEG209 [99] (byte~) play_move_rotate::$6 ← (byte) play_collision::return#13 -- vbuz1=vbuz2 lda play_collision.return_13 sta _6 - //SEG208 [99] if((byte~) play_move_rotate::$6!=(const byte) COLLISION_NONE#0) goto play_move_rotate::@return -- vbuz1_neq_vbuc1_then_la1 + //SEG210 [100] 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 - //SEG209 play_move_rotate::@11 + //SEG211 play_move_rotate::@11 b11: - //SEG210 [100] (byte) current_orientation#4 ← (byte) play_move_rotate::orientation#3 -- vbuz1=vbuz2 + //SEG212 [101] (byte) current_orientation#4 ← (byte) play_move_rotate::orientation#3 -- vbuz1=vbuz2 lda orientation sta current_orientation - //SEG211 [101] (byte*) current_piece_gfx#4 ← (byte*) current_piece#10 + (byte) current_orientation#4 -- pbuz1=pbuz2_plus_vbuz3 + //SEG213 [102] (byte*) current_piece_gfx#4 ← (byte*) current_piece#10 + (byte) current_orientation#4 -- pbuz1=pbuz2_plus_vbuz3 lda current_orientation clc adc current_piece @@ -7635,50 +8128,50 @@ play_move_rotate: { lda #0 adc current_piece+1 sta current_piece_gfx+1 - //SEG212 [87] phi from play_move_rotate::@11 to play_move_rotate::@return [phi:play_move_rotate::@11->play_move_rotate::@return] + //SEG214 [88] phi from play_move_rotate::@11 to play_move_rotate::@return [phi:play_move_rotate::@11->play_move_rotate::@return] breturn_from_b11: - //SEG213 [87] phi (byte*) current_piece_gfx#15 = (byte*) current_piece_gfx#4 [phi:play_move_rotate::@11->play_move_rotate::@return#0] -- register_copy - //SEG214 [87] phi (byte) current_orientation#19 = (byte) current_orientation#4 [phi:play_move_rotate::@11->play_move_rotate::@return#1] -- register_copy - //SEG215 [87] 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 + //SEG215 [88] phi (byte*) current_piece_gfx#15 = (byte*) current_piece_gfx#4 [phi:play_move_rotate::@11->play_move_rotate::@return#0] -- register_copy + //SEG216 [88] phi (byte) current_orientation#19 = (byte) current_orientation#4 [phi:play_move_rotate::@11->play_move_rotate::@return#1] -- register_copy + //SEG217 [88] 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 - //SEG216 play_move_rotate::@1 + //SEG218 play_move_rotate::@1 b1: - //SEG217 [102] (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 + //SEG219 [103] (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 - //SEG218 [103] (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 + //SEG220 [104] (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 } -//SEG219 play_collision +//SEG221 play_collision play_collision: { - .label _7 = $65 + .label _7 = $6a .label xpos = $19 .label ypos = $18 .label orientation = $17 - .label return = $6c - .label return_1 = $68 - .label piece_gfx = $60 + .label return = $71 + .label return_1 = $6d + .label piece_gfx = $65 .label ypos2 = $1a - .label playfield_line = $62 - .label i = $64 + .label playfield_line = $67 + .label i = $69 .label col = $1d .label c = $1e .label l = $1b - .label return_12 = $66 - .label return_13 = $5d + .label return_12 = $6b + .label return_13 = $62 .label i_2 = $1c .label return_14 = $1f .label i_3 = $1c .label i_11 = $1c .label i_13 = $1c - //SEG220 [105] (byte*) play_collision::piece_gfx#0 ← (byte*) current_piece#12 + (byte) play_collision::orientation#4 -- pbuz1=pbuz2_plus_vbuz3 + //SEG222 [106] (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 @@ -7686,1296 +8179,1296 @@ play_collision: { lda #0 adc current_piece_12+1 sta piece_gfx+1 - //SEG221 [106] (byte) play_collision::ypos2#0 ← (byte) play_collision::ypos#4 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_rol_1 + //SEG223 [107] (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 - //SEG222 [107] phi from play_collision to play_collision::@1 [phi:play_collision->play_collision::@1] + //SEG224 [108] phi from play_collision to play_collision::@1 [phi:play_collision->play_collision::@1] b1_from_play_collision: - //SEG223 [107] 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 + //SEG225 [108] 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 - //SEG224 [107] 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 + //SEG226 [108] 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 - //SEG225 [107] phi (byte) play_collision::ypos2#2 = (byte) play_collision::ypos2#0 [phi:play_collision->play_collision::@1#2] -- register_copy + //SEG227 [108] phi (byte) play_collision::ypos2#2 = (byte) play_collision::ypos2#0 [phi:play_collision->play_collision::@1#2] -- register_copy jmp b1 - //SEG226 play_collision::@1 + //SEG228 play_collision::@1 b1: - //SEG227 [108] (byte*) play_collision::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) play_collision::ypos2#2) -- pbuz1=pptc1_derefidx_vbuz2 + //SEG229 [109] (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 - //SEG228 [109] (byte~) play_collision::col#9 ← (byte) play_collision::xpos#5 -- vbuz1=vbuz2 + //SEG230 [110] (byte~) play_collision::col#9 ← (byte) play_collision::xpos#5 -- vbuz1=vbuz2 lda xpos sta col - //SEG229 [110] phi from play_collision::@1 to play_collision::@2 [phi:play_collision::@1->play_collision::@2] + //SEG231 [111] phi from play_collision::@1 to play_collision::@2 [phi:play_collision::@1->play_collision::@2] b2_from_b1: - //SEG230 [110] 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 + //SEG232 [111] 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 - //SEG231 [110] phi (byte) play_collision::col#2 = (byte~) play_collision::col#9 [phi:play_collision::@1->play_collision::@2#1] -- register_copy - //SEG232 [110] phi (byte) play_collision::i#2 = (byte) play_collision::i#3 [phi:play_collision::@1->play_collision::@2#2] -- register_copy + //SEG233 [111] phi (byte) play_collision::col#2 = (byte~) play_collision::col#9 [phi:play_collision::@1->play_collision::@2#1] -- register_copy + //SEG234 [111] phi (byte) play_collision::i#2 = (byte) play_collision::i#3 [phi:play_collision::@1->play_collision::@2#2] -- register_copy jmp b2 - //SEG233 play_collision::@2 + //SEG235 play_collision::@2 b2: - //SEG234 [111] (byte) play_collision::i#1 ← ++ (byte) play_collision::i#2 -- vbuz1=_inc_vbuz2 + //SEG236 [112] (byte) play_collision::i#1 ← ++ (byte) play_collision::i#2 -- vbuz1=_inc_vbuz2 ldy i_2 iny sty i - //SEG235 [112] 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 + //SEG237 [113] 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 - //SEG236 play_collision::@8 + //SEG238 play_collision::@8 b8: - //SEG237 [113] 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 + //SEG239 [114] 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 - //SEG238 [114] phi from play_collision::@8 to play_collision::@return [phi:play_collision::@8->play_collision::@return] + //SEG240 [115] phi from play_collision::@8 to play_collision::@return [phi:play_collision::@8->play_collision::@return] breturn_from_b8: - //SEG239 [114] phi (byte) play_collision::return#14 = (const byte) COLLISION_BOTTOM#0 [phi:play_collision::@8->play_collision::@return#0] -- vbuz1=vbuc1 + //SEG241 [115] 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 - //SEG240 play_collision::@return + //SEG242 play_collision::@return breturn: - //SEG241 [115] return + //SEG243 [116] return rts - //SEG242 play_collision::@4 + //SEG244 play_collision::@4 b4: - //SEG243 [116] (byte~) play_collision::$7 ← (byte) play_collision::col#2 & (byte/word/signed word/dword/signed dword) 128 -- vbuz1=vbuz2_band_vbuc1 + //SEG245 [117] (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 - //SEG244 [117] if((byte~) play_collision::$7==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_collision::@5 -- vbuz1_eq_0_then_la1 + //SEG246 [118] 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 - //SEG245 [114] phi from play_collision::@4 to play_collision::@return [phi:play_collision::@4->play_collision::@return] + //SEG247 [115] phi from play_collision::@4 to play_collision::@return [phi:play_collision::@4->play_collision::@return] breturn_from_b4: - //SEG246 [114] phi (byte) play_collision::return#14 = (const byte) COLLISION_LEFT#0 [phi:play_collision::@4->play_collision::@return#0] -- vbuz1=vbuc1 + //SEG248 [115] 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 - //SEG247 play_collision::@5 + //SEG249 play_collision::@5 b5: - //SEG248 [118] if((byte) play_collision::col#2<(const byte) PLAYFIELD_COLS#0) goto play_collision::@6 -- vbuz1_lt_vbuc1_then_la1 + //SEG250 [119] 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 - //SEG249 [114] phi from play_collision::@5 to play_collision::@return [phi:play_collision::@5->play_collision::@return] + //SEG251 [115] phi from play_collision::@5 to play_collision::@return [phi:play_collision::@5->play_collision::@return] breturn_from_b5: - //SEG250 [114] phi (byte) play_collision::return#14 = (const byte) COLLISION_RIGHT#0 [phi:play_collision::@5->play_collision::@return#0] -- vbuz1=vbuc1 + //SEG252 [115] 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 - //SEG251 play_collision::@6 + //SEG253 play_collision::@6 b6: - //SEG252 [119] 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 + //SEG254 [120] 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 - //SEG253 [114] phi from play_collision::@6 to play_collision::@return [phi:play_collision::@6->play_collision::@return] + //SEG255 [115] phi from play_collision::@6 to play_collision::@return [phi:play_collision::@6->play_collision::@return] breturn_from_b6: - //SEG254 [114] phi (byte) play_collision::return#14 = (const byte) COLLISION_PLAYFIELD#0 [phi:play_collision::@6->play_collision::@return#0] -- vbuz1=vbuc1 + //SEG256 [115] 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 - //SEG255 play_collision::@3 + //SEG257 play_collision::@3 b3: - //SEG256 [120] (byte) play_collision::col#1 ← ++ (byte) play_collision::col#2 -- vbuz1=_inc_vbuz1 + //SEG258 [121] (byte) play_collision::col#1 ← ++ (byte) play_collision::col#2 -- vbuz1=_inc_vbuz1 inc col - //SEG257 [121] (byte) play_collision::c#1 ← ++ (byte) play_collision::c#2 -- vbuz1=_inc_vbuz1 + //SEG259 [122] (byte) play_collision::c#1 ← ++ (byte) play_collision::c#2 -- vbuz1=_inc_vbuz1 inc c - //SEG258 [122] 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 + //SEG260 [123] 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 - //SEG259 play_collision::@17 + //SEG261 play_collision::@17 b17: - //SEG260 [123] (byte) play_collision::ypos2#1 ← (byte) play_collision::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 -- vbuz1=vbuz1_plus_2 + //SEG262 [124] (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 - //SEG261 [124] (byte) play_collision::l#1 ← ++ (byte) play_collision::l#6 -- vbuz1=_inc_vbuz1 + //SEG263 [125] (byte) play_collision::l#1 ← ++ (byte) play_collision::l#6 -- vbuz1=_inc_vbuz1 inc l - //SEG262 [125] 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 + //SEG264 [126] 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 - //SEG263 [114] phi from play_collision::@17 to play_collision::@return [phi:play_collision::@17->play_collision::@return] + //SEG265 [115] phi from play_collision::@17 to play_collision::@return [phi:play_collision::@17->play_collision::@return] breturn_from_b17: - //SEG264 [114] phi (byte) play_collision::return#14 = (const byte) COLLISION_NONE#0 [phi:play_collision::@17->play_collision::@return#0] -- vbuz1=vbuc1 + //SEG266 [115] 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 - //SEG265 play_collision::@20 + //SEG267 play_collision::@20 b20: - //SEG266 [126] (byte~) play_collision::i#11 ← (byte) play_collision::i#1 -- vbuz1=vbuz2 + //SEG268 [127] (byte~) play_collision::i#11 ← (byte) play_collision::i#1 -- vbuz1=vbuz2 lda i sta i_11 - //SEG267 [107] phi from play_collision::@20 to play_collision::@1 [phi:play_collision::@20->play_collision::@1] + //SEG269 [108] phi from play_collision::@20 to play_collision::@1 [phi:play_collision::@20->play_collision::@1] b1_from_b20: - //SEG268 [107] phi (byte) play_collision::l#6 = (byte) play_collision::l#1 [phi:play_collision::@20->play_collision::@1#0] -- register_copy - //SEG269 [107] phi (byte) play_collision::i#3 = (byte~) play_collision::i#11 [phi:play_collision::@20->play_collision::@1#1] -- register_copy - //SEG270 [107] phi (byte) play_collision::ypos2#2 = (byte) play_collision::ypos2#1 [phi:play_collision::@20->play_collision::@1#2] -- register_copy + //SEG270 [108] phi (byte) play_collision::l#6 = (byte) play_collision::l#1 [phi:play_collision::@20->play_collision::@1#0] -- register_copy + //SEG271 [108] phi (byte) play_collision::i#3 = (byte~) play_collision::i#11 [phi:play_collision::@20->play_collision::@1#1] -- register_copy + //SEG272 [108] phi (byte) play_collision::ypos2#2 = (byte) play_collision::ypos2#1 [phi:play_collision::@20->play_collision::@1#2] -- register_copy jmp b1 - //SEG271 play_collision::@21 + //SEG273 play_collision::@21 b21: - //SEG272 [127] (byte~) play_collision::i#13 ← (byte) play_collision::i#1 -- vbuz1=vbuz2 + //SEG274 [128] (byte~) play_collision::i#13 ← (byte) play_collision::i#1 -- vbuz1=vbuz2 lda i sta i_13 - //SEG273 [110] phi from play_collision::@21 to play_collision::@2 [phi:play_collision::@21->play_collision::@2] + //SEG275 [111] phi from play_collision::@21 to play_collision::@2 [phi:play_collision::@21->play_collision::@2] b2_from_b21: - //SEG274 [110] phi (byte) play_collision::c#2 = (byte) play_collision::c#1 [phi:play_collision::@21->play_collision::@2#0] -- register_copy - //SEG275 [110] phi (byte) play_collision::col#2 = (byte) play_collision::col#1 [phi:play_collision::@21->play_collision::@2#1] -- register_copy - //SEG276 [110] phi (byte) play_collision::i#2 = (byte~) play_collision::i#13 [phi:play_collision::@21->play_collision::@2#2] -- register_copy + //SEG276 [111] phi (byte) play_collision::c#2 = (byte) play_collision::c#1 [phi:play_collision::@21->play_collision::@2#0] -- register_copy + //SEG277 [111] phi (byte) play_collision::col#2 = (byte) play_collision::col#1 [phi:play_collision::@21->play_collision::@2#1] -- register_copy + //SEG278 [111] phi (byte) play_collision::i#2 = (byte~) play_collision::i#13 [phi:play_collision::@21->play_collision::@2#2] -- register_copy jmp b2 } -//SEG277 play_move_leftright +//SEG279 play_move_leftright play_move_leftright: { - .label _4 = $67 - .label _8 = $69 + .label _4 = $6c + .label _8 = $6e .label return = $20 - .label key_event = $50 - .label return_4 = $51 - //SEG278 [128] if((byte) play_move_leftright::key_event#0==(const byte) KEY_COMMA#0) goto play_move_leftright::@1 -- vbuz1_eq_vbuc1_then_la1 + .label key_event = $55 + .label return_4 = $56 + //SEG280 [129] 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 - //SEG279 play_move_leftright::@6 + //SEG281 play_move_leftright::@6 b6: - //SEG280 [129] if((byte) play_move_leftright::key_event#0!=(const byte) KEY_DOT#0) goto play_move_leftright::@return -- vbuz1_neq_vbuc1_then_la1 + //SEG282 [130] 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 - //SEG281 play_move_leftright::@7 + //SEG283 play_move_leftright::@7 b7: - //SEG282 [130] (byte) play_collision::xpos#2 ← (byte) current_xpos#16 + (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_plus_1 + //SEG284 [131] (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 - //SEG283 [131] (byte) play_collision::ypos#2 ← (byte) current_ypos#14 -- vbuz1=vbuz2 + //SEG285 [132] (byte) play_collision::ypos#2 ← (byte) current_ypos#14 -- vbuz1=vbuz2 lda current_ypos sta play_collision.ypos - //SEG284 [132] (byte) play_collision::orientation#2 ← (byte) current_orientation#14 -- vbuz1=vbuz2 + //SEG286 [133] (byte) play_collision::orientation#2 ← (byte) current_orientation#14 -- vbuz1=vbuz2 lda current_orientation sta play_collision.orientation - //SEG285 [133] (byte*~) current_piece#73 ← (byte*) current_piece#10 -- pbuz1=pbuz2 + //SEG287 [134] (byte*~) current_piece#73 ← (byte*) current_piece#10 -- pbuz1=pbuz2 lda current_piece sta current_piece_73 lda current_piece+1 sta current_piece_73+1 - //SEG286 [134] call play_collision - //SEG287 [104] phi from play_move_leftright::@7 to play_collision [phi:play_move_leftright::@7->play_collision] + //SEG288 [135] call play_collision + //SEG289 [105] phi from play_move_leftright::@7 to play_collision [phi:play_move_leftright::@7->play_collision] play_collision_from_b7: - //SEG288 [104] phi (byte) play_collision::xpos#5 = (byte) play_collision::xpos#2 [phi:play_move_leftright::@7->play_collision#0] -- register_copy - //SEG289 [104] phi (byte) play_collision::ypos#4 = (byte) play_collision::ypos#2 [phi:play_move_leftright::@7->play_collision#1] -- register_copy - //SEG290 [104] phi (byte) play_collision::orientation#4 = (byte) play_collision::orientation#2 [phi:play_move_leftright::@7->play_collision#2] -- register_copy - //SEG291 [104] phi (byte*) current_piece#12 = (byte*~) current_piece#73 [phi:play_move_leftright::@7->play_collision#3] -- register_copy + //SEG290 [105] phi (byte) play_collision::xpos#5 = (byte) play_collision::xpos#2 [phi:play_move_leftright::@7->play_collision#0] -- register_copy + //SEG291 [105] phi (byte) play_collision::ypos#4 = (byte) play_collision::ypos#2 [phi:play_move_leftright::@7->play_collision#1] -- register_copy + //SEG292 [105] phi (byte) play_collision::orientation#4 = (byte) play_collision::orientation#2 [phi:play_move_leftright::@7->play_collision#2] -- register_copy + //SEG293 [105] phi (byte*) current_piece#12 = (byte*~) current_piece#73 [phi:play_move_leftright::@7->play_collision#3] -- register_copy jsr play_collision - //SEG292 [135] (byte) play_collision::return#12 ← (byte) play_collision::return#14 -- vbuz1=vbuz2 + //SEG294 [136] (byte) play_collision::return#12 ← (byte) play_collision::return#14 -- vbuz1=vbuz2 lda play_collision.return_14 sta play_collision.return_12 jmp b15 - //SEG293 play_move_leftright::@15 + //SEG295 play_move_leftright::@15 b15: - //SEG294 [136] (byte~) play_move_leftright::$4 ← (byte) play_collision::return#12 -- vbuz1=vbuz2 + //SEG296 [137] (byte~) play_move_leftright::$4 ← (byte) play_collision::return#12 -- vbuz1=vbuz2 lda play_collision.return_12 sta _4 - //SEG295 [137] if((byte~) play_move_leftright::$4!=(const byte) COLLISION_NONE#0) goto play_move_leftright::@return -- vbuz1_neq_vbuc1_then_la1 + //SEG297 [138] 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 - //SEG296 play_move_leftright::@8 + //SEG298 play_move_leftright::@8 b8: - //SEG297 [138] (byte) current_xpos#3 ← ++ (byte) current_xpos#16 -- vbuz1=_inc_vbuz1 + //SEG299 [139] (byte) current_xpos#3 ← ++ (byte) current_xpos#16 -- vbuz1=_inc_vbuz1 inc current_xpos - //SEG298 [139] 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] + //SEG300 [140] 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: - //SEG299 [139] 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 - //SEG300 [139] 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 + //SEG301 [140] 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 + //SEG302 [140] 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 - //SEG301 [139] 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] + //SEG303 [140] 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: - //SEG302 [139] 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 - //SEG303 [139] 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 + //SEG304 [140] 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 + //SEG305 [140] 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 - //SEG304 play_move_leftright::@return + //SEG306 play_move_leftright::@return breturn: - //SEG305 [140] return + //SEG307 [141] return rts - //SEG306 play_move_leftright::@1 + //SEG308 play_move_leftright::@1 b1: - //SEG307 [141] (byte) play_collision::xpos#1 ← (byte) current_xpos#16 - (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_minus_1 + //SEG309 [142] (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 - //SEG308 [142] (byte) play_collision::ypos#1 ← (byte) current_ypos#14 -- vbuz1=vbuz2 + //SEG310 [143] (byte) play_collision::ypos#1 ← (byte) current_ypos#14 -- vbuz1=vbuz2 lda current_ypos sta play_collision.ypos - //SEG309 [143] (byte) play_collision::orientation#1 ← (byte) current_orientation#14 -- vbuz1=vbuz2 + //SEG311 [144] (byte) play_collision::orientation#1 ← (byte) current_orientation#14 -- vbuz1=vbuz2 lda current_orientation sta play_collision.orientation - //SEG310 [144] (byte*~) current_piece#72 ← (byte*) current_piece#10 -- pbuz1=pbuz2 + //SEG312 [145] (byte*~) current_piece#72 ← (byte*) current_piece#10 -- pbuz1=pbuz2 lda current_piece sta current_piece_72 lda current_piece+1 sta current_piece_72+1 - //SEG311 [145] call play_collision - //SEG312 [104] phi from play_move_leftright::@1 to play_collision [phi:play_move_leftright::@1->play_collision] + //SEG313 [146] call play_collision + //SEG314 [105] phi from play_move_leftright::@1 to play_collision [phi:play_move_leftright::@1->play_collision] play_collision_from_b1: - //SEG313 [104] phi (byte) play_collision::xpos#5 = (byte) play_collision::xpos#1 [phi:play_move_leftright::@1->play_collision#0] -- register_copy - //SEG314 [104] phi (byte) play_collision::ypos#4 = (byte) play_collision::ypos#1 [phi:play_move_leftright::@1->play_collision#1] -- register_copy - //SEG315 [104] phi (byte) play_collision::orientation#4 = (byte) play_collision::orientation#1 [phi:play_move_leftright::@1->play_collision#2] -- register_copy - //SEG316 [104] phi (byte*) current_piece#12 = (byte*~) current_piece#72 [phi:play_move_leftright::@1->play_collision#3] -- register_copy + //SEG315 [105] phi (byte) play_collision::xpos#5 = (byte) play_collision::xpos#1 [phi:play_move_leftright::@1->play_collision#0] -- register_copy + //SEG316 [105] phi (byte) play_collision::ypos#4 = (byte) play_collision::ypos#1 [phi:play_move_leftright::@1->play_collision#1] -- register_copy + //SEG317 [105] phi (byte) play_collision::orientation#4 = (byte) play_collision::orientation#1 [phi:play_move_leftright::@1->play_collision#2] -- register_copy + //SEG318 [105] phi (byte*) current_piece#12 = (byte*~) current_piece#72 [phi:play_move_leftright::@1->play_collision#3] -- register_copy jsr play_collision - //SEG317 [146] (byte) play_collision::return#1 ← (byte) play_collision::return#14 -- vbuz1=vbuz2 + //SEG319 [147] (byte) play_collision::return#1 ← (byte) play_collision::return#14 -- vbuz1=vbuz2 lda play_collision.return_14 sta play_collision.return_1 jmp b14 - //SEG318 play_move_leftright::@14 + //SEG320 play_move_leftright::@14 b14: - //SEG319 [147] (byte~) play_move_leftright::$8 ← (byte) play_collision::return#1 -- vbuz1=vbuz2 + //SEG321 [148] (byte~) play_move_leftright::$8 ← (byte) play_collision::return#1 -- vbuz1=vbuz2 lda play_collision.return_1 sta _8 - //SEG320 [148] if((byte~) play_move_leftright::$8!=(const byte) COLLISION_NONE#0) goto play_move_leftright::@return -- vbuz1_neq_vbuc1_then_la1 + //SEG322 [149] 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 - //SEG321 play_move_leftright::@11 + //SEG323 play_move_leftright::@11 b11: - //SEG322 [149] (byte) current_xpos#5 ← -- (byte) current_xpos#16 -- vbuz1=_dec_vbuz1 + //SEG324 [150] (byte) current_xpos#5 ← -- (byte) current_xpos#16 -- vbuz1=_dec_vbuz1 dec current_xpos jmp breturn_from_b11 } -//SEG323 play_move_down +//SEG325 play_move_down play_move_down: { - .label _2 = $6b - .label _12 = $6d + .label _2 = $70 + .label _12 = $72 .label movedown = $21 .label return = $29 - .label key_event = $4c - .label return_3 = $4d - //SEG324 [150] (byte) current_movedown_counter#1 ← ++ (byte) current_movedown_counter#12 -- vbuz1=_inc_vbuz1 + .label key_event = $51 + .label return_3 = $52 + //SEG326 [151] (byte) current_movedown_counter#1 ← ++ (byte) current_movedown_counter#12 -- vbuz1=_inc_vbuz1 inc current_movedown_counter - //SEG325 [151] if((byte) play_move_down::key_event#0!=(const byte) KEY_SPACE#0) goto play_move_down::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG327 [152] 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 - //SEG326 [152] phi from play_move_down to play_move_down::@8 [phi:play_move_down->play_move_down::@8] + //SEG328 [153] 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 - //SEG327 play_move_down::@8 + //SEG329 play_move_down::@8 b8: - //SEG328 [153] phi from play_move_down::@8 to play_move_down::@1 [phi:play_move_down::@8->play_move_down::@1] + //SEG330 [154] phi from play_move_down::@8 to play_move_down::@1 [phi:play_move_down::@8->play_move_down::@1] b1_from_b8: - //SEG329 [153] 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 + //SEG331 [154] 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 - //SEG330 [153] phi from play_move_down to play_move_down::@1 [phi:play_move_down->play_move_down::@1] + //SEG332 [154] phi from play_move_down to play_move_down::@1 [phi:play_move_down->play_move_down::@1] b1_from_play_move_down: - //SEG331 [153] 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 + //SEG333 [154] 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 - //SEG332 play_move_down::@1 + //SEG334 play_move_down::@1 b1: - //SEG333 [154] call keyboard_event_pressed - //SEG334 [237] phi from play_move_down::@1 to keyboard_event_pressed [phi:play_move_down::@1->keyboard_event_pressed] + //SEG335 [155] call keyboard_event_pressed + //SEG336 [238] phi from play_move_down::@1 to keyboard_event_pressed [phi:play_move_down::@1->keyboard_event_pressed] keyboard_event_pressed_from_b1: - //SEG335 [237] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_SPACE#0 [phi:play_move_down::@1->keyboard_event_pressed#0] -- vbuz1=vbuc1 + //SEG337 [238] 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 - //SEG336 [155] (byte) keyboard_event_pressed::return#12 ← (byte) keyboard_event_pressed::return#11 -- vbuz1=vbuz2 + //SEG338 [156] (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 - //SEG337 play_move_down::@17 + //SEG339 play_move_down::@17 b17: - //SEG338 [156] (byte~) play_move_down::$2 ← (byte) keyboard_event_pressed::return#12 -- vbuz1=vbuz2 + //SEG340 [157] (byte~) play_move_down::$2 ← (byte) keyboard_event_pressed::return#12 -- vbuz1=vbuz2 lda keyboard_event_pressed.return_12 sta _2 - //SEG339 [157] 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 + //SEG341 [158] 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 - //SEG340 play_move_down::@9 + //SEG342 play_move_down::@9 b9: - //SEG341 [158] if((byte) current_movedown_counter#1<(const byte) current_movedown_fast#0) goto play_move_down::@2 -- vbuz1_lt_vbuc1_then_la1 + //SEG343 [159] 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 - //SEG342 play_move_down::@10 + //SEG344 play_move_down::@10 b10: - //SEG343 [159] (byte) play_move_down::movedown#2 ← ++ (byte) play_move_down::movedown#10 -- vbuz1=_inc_vbuz1 + //SEG345 [160] (byte) play_move_down::movedown#2 ← ++ (byte) play_move_down::movedown#10 -- vbuz1=_inc_vbuz1 inc movedown - //SEG344 [160] 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] + //SEG346 [161] 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: - //SEG345 [160] 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 + //SEG347 [161] 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 - //SEG346 play_move_down::@2 + //SEG348 play_move_down::@2 b2: - //SEG347 [161] if((byte) current_movedown_counter#1<(const byte) current_movedown_slow#0) goto play_move_down::@4 -- vbuz1_lt_vbuc1_then_la1 + //SEG349 [162] 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 - //SEG348 play_move_down::@11 + //SEG350 play_move_down::@11 b11: - //SEG349 [162] (byte) play_move_down::movedown#3 ← ++ (byte) play_move_down::movedown#7 -- vbuz1=_inc_vbuz1 + //SEG351 [163] (byte) play_move_down::movedown#3 ← ++ (byte) play_move_down::movedown#7 -- vbuz1=_inc_vbuz1 inc movedown - //SEG350 [163] 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] + //SEG352 [164] 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: - //SEG351 [163] 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 + //SEG353 [164] 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 - //SEG352 play_move_down::@4 + //SEG354 play_move_down::@4 b4: - //SEG353 [164] 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 + //SEG355 [165] 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 - //SEG354 play_move_down::@12 + //SEG356 play_move_down::@12 b12: - //SEG355 [165] (byte) play_collision::ypos#0 ← (byte) current_ypos#22 + (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_plus_1 + //SEG357 [166] (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 - //SEG356 [166] (byte) play_collision::xpos#0 ← (byte) current_xpos#11 -- vbuz1=vbuz2 + //SEG358 [167] (byte) play_collision::xpos#0 ← (byte) current_xpos#11 -- vbuz1=vbuz2 lda current_xpos sta play_collision.xpos - //SEG357 [167] (byte) play_collision::orientation#0 ← (byte) current_orientation#10 -- vbuz1=vbuz2 + //SEG359 [168] (byte) play_collision::orientation#0 ← (byte) current_orientation#10 -- vbuz1=vbuz2 lda current_orientation sta play_collision.orientation - //SEG358 [168] (byte*~) current_piece#71 ← (byte*) current_piece#16 -- pbuz1=pbuz2 + //SEG360 [169] (byte*~) current_piece#71 ← (byte*) current_piece#16 -- pbuz1=pbuz2 lda current_piece sta current_piece_71 lda current_piece+1 sta current_piece_71+1 - //SEG359 [169] call play_collision - //SEG360 [104] phi from play_move_down::@12 to play_collision [phi:play_move_down::@12->play_collision] + //SEG361 [170] call play_collision + //SEG362 [105] phi from play_move_down::@12 to play_collision [phi:play_move_down::@12->play_collision] play_collision_from_b12: - //SEG361 [104] phi (byte) play_collision::xpos#5 = (byte) play_collision::xpos#0 [phi:play_move_down::@12->play_collision#0] -- register_copy - //SEG362 [104] phi (byte) play_collision::ypos#4 = (byte) play_collision::ypos#0 [phi:play_move_down::@12->play_collision#1] -- register_copy - //SEG363 [104] phi (byte) play_collision::orientation#4 = (byte) play_collision::orientation#0 [phi:play_move_down::@12->play_collision#2] -- register_copy - //SEG364 [104] phi (byte*) current_piece#12 = (byte*~) current_piece#71 [phi:play_move_down::@12->play_collision#3] -- register_copy + //SEG363 [105] phi (byte) play_collision::xpos#5 = (byte) play_collision::xpos#0 [phi:play_move_down::@12->play_collision#0] -- register_copy + //SEG364 [105] phi (byte) play_collision::ypos#4 = (byte) play_collision::ypos#0 [phi:play_move_down::@12->play_collision#1] -- register_copy + //SEG365 [105] phi (byte) play_collision::orientation#4 = (byte) play_collision::orientation#0 [phi:play_move_down::@12->play_collision#2] -- register_copy + //SEG366 [105] phi (byte*) current_piece#12 = (byte*~) current_piece#71 [phi:play_move_down::@12->play_collision#3] -- register_copy jsr play_collision - //SEG365 [170] (byte) play_collision::return#0 ← (byte) play_collision::return#14 -- vbuz1=vbuz2 + //SEG367 [171] (byte) play_collision::return#0 ← (byte) play_collision::return#14 -- vbuz1=vbuz2 lda play_collision.return_14 sta play_collision.return jmp b18 - //SEG366 play_move_down::@18 + //SEG368 play_move_down::@18 b18: - //SEG367 [171] (byte~) play_move_down::$12 ← (byte) play_collision::return#0 -- vbuz1=vbuz2 + //SEG369 [172] (byte~) play_move_down::$12 ← (byte) play_collision::return#0 -- vbuz1=vbuz2 lda play_collision.return sta _12 - //SEG368 [172] if((byte~) play_move_down::$12==(const byte) COLLISION_NONE#0) goto play_move_down::@6 -- vbuz1_eq_vbuc1_then_la1 + //SEG370 [173] 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 - //SEG369 [173] phi from play_move_down::@18 to play_move_down::@13 [phi:play_move_down::@18->play_move_down::@13] + //SEG371 [174] 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 - //SEG370 play_move_down::@13 + //SEG372 play_move_down::@13 b13: - //SEG371 [174] call play_lock_current + //SEG373 [175] call play_lock_current jsr play_lock_current - //SEG372 [175] phi from play_move_down::@13 to play_move_down::@19 [phi:play_move_down::@13->play_move_down::@19] + //SEG374 [176] 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 - //SEG373 play_move_down::@19 + //SEG375 play_move_down::@19 b19: - //SEG374 [176] call play_remove_lines - //SEG375 [198] phi from play_move_down::@19 to play_remove_lines [phi:play_move_down::@19->play_remove_lines] + //SEG376 [177] call play_remove_lines + //SEG377 [199] 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 - //SEG376 [177] phi from play_move_down::@19 to play_move_down::@20 [phi:play_move_down::@19->play_move_down::@20] + //SEG378 [178] 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 - //SEG377 play_move_down::@20 + //SEG379 play_move_down::@20 b20: - //SEG378 [178] call play_spawn_current - //SEG379 [184] phi from play_move_down::@20 to play_spawn_current [phi:play_move_down::@20->play_spawn_current] + //SEG380 [179] call play_spawn_current + //SEG381 [185] 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 - //SEG380 [179] (byte*~) current_piece#75 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) -- pbuz1=pptc1_derefidx_vbuz2 + //SEG382 [180] (byte*~) current_piece#75 ← (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 - //SEG381 [180] phi from play_move_down::@20 to play_move_down::@7 [phi:play_move_down::@20->play_move_down::@7] + //SEG383 [181] phi from play_move_down::@20 to play_move_down::@7 [phi:play_move_down::@20->play_move_down::@7] b7_from_b20: - //SEG382 [180] phi (byte) current_piece_color#21 = (byte) current_piece_color#13 [phi:play_move_down::@20->play_move_down::@7#0] -- register_copy - //SEG383 [180] 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 + //SEG384 [181] phi (byte) current_piece_char#21 = (byte) current_piece_char#13 [phi:play_move_down::@20->play_move_down::@7#0] -- register_copy + //SEG385 [181] 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 - //SEG384 [180] phi (byte*) current_piece_gfx#27 = (byte*) current_piece_gfx#17 [phi:play_move_down::@20->play_move_down::@7#2] -- register_copy - //SEG385 [180] 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 + //SEG386 [181] phi (byte*) current_piece_gfx#27 = (byte*) current_piece_gfx#17 [phi:play_move_down::@20->play_move_down::@7#2] -- register_copy + //SEG387 [181] 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 - //SEG386 [180] phi (byte*) current_piece#20 = (byte*~) current_piece#75 [phi:play_move_down::@20->play_move_down::@7#4] -- register_copy - //SEG387 [180] 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 + //SEG388 [181] phi (byte*) current_piece#20 = (byte*~) current_piece#75 [phi:play_move_down::@20->play_move_down::@7#4] -- register_copy + //SEG389 [181] 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 jmp b7 - //SEG388 play_move_down::@7 + //SEG390 play_move_down::@7 b7: - //SEG389 [181] phi from play_move_down::@7 to play_move_down::@return [phi:play_move_down::@7->play_move_down::@return] + //SEG391 [182] phi from play_move_down::@7 to play_move_down::@return [phi:play_move_down::@7->play_move_down::@return] breturn_from_b7: - //SEG390 [181] phi (byte) current_piece_color#11 = (byte) current_piece_color#21 [phi:play_move_down::@7->play_move_down::@return#0] -- register_copy - //SEG391 [181] phi (byte) current_xpos#16 = (byte) current_xpos#34 [phi:play_move_down::@7->play_move_down::@return#1] -- register_copy - //SEG392 [181] phi (byte*) current_piece_gfx#14 = (byte*) current_piece_gfx#27 [phi:play_move_down::@7->play_move_down::@return#2] -- register_copy - //SEG393 [181] phi (byte) current_orientation#14 = (byte) current_orientation#29 [phi:play_move_down::@7->play_move_down::@return#3] -- register_copy - //SEG394 [181] phi (byte*) current_piece#10 = (byte*) current_piece#20 [phi:play_move_down::@7->play_move_down::@return#4] -- register_copy - //SEG395 [181] phi (byte) current_ypos#14 = (byte) current_ypos#30 [phi:play_move_down::@7->play_move_down::@return#5] -- register_copy - //SEG396 [181] 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 + //SEG392 [182] phi (byte) current_piece_char#11 = (byte) current_piece_char#21 [phi:play_move_down::@7->play_move_down::@return#0] -- register_copy + //SEG393 [182] phi (byte) current_xpos#16 = (byte) current_xpos#34 [phi:play_move_down::@7->play_move_down::@return#1] -- register_copy + //SEG394 [182] phi (byte*) current_piece_gfx#14 = (byte*) current_piece_gfx#27 [phi:play_move_down::@7->play_move_down::@return#2] -- register_copy + //SEG395 [182] phi (byte) current_orientation#14 = (byte) current_orientation#29 [phi:play_move_down::@7->play_move_down::@return#3] -- register_copy + //SEG396 [182] phi (byte*) current_piece#10 = (byte*) current_piece#20 [phi:play_move_down::@7->play_move_down::@return#4] -- register_copy + //SEG397 [182] phi (byte) current_ypos#14 = (byte) current_ypos#30 [phi:play_move_down::@7->play_move_down::@return#5] -- register_copy + //SEG398 [182] 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 - //SEG397 [181] 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 + //SEG399 [182] 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 - //SEG398 [181] phi from play_move_down::@4 to play_move_down::@return [phi:play_move_down::@4->play_move_down::@return] + //SEG400 [182] phi from play_move_down::@4 to play_move_down::@return [phi:play_move_down::@4->play_move_down::@return] breturn_from_b4: - //SEG399 [181] phi (byte) current_piece_color#11 = (byte) current_piece_color#16 [phi:play_move_down::@4->play_move_down::@return#0] -- register_copy - //SEG400 [181] phi (byte) current_xpos#16 = (byte) current_xpos#11 [phi:play_move_down::@4->play_move_down::@return#1] -- register_copy - //SEG401 [181] phi (byte*) current_piece_gfx#14 = (byte*) current_piece_gfx#10 [phi:play_move_down::@4->play_move_down::@return#2] -- register_copy - //SEG402 [181] phi (byte) current_orientation#14 = (byte) current_orientation#10 [phi:play_move_down::@4->play_move_down::@return#3] -- register_copy - //SEG403 [181] phi (byte*) current_piece#10 = (byte*) current_piece#16 [phi:play_move_down::@4->play_move_down::@return#4] -- register_copy - //SEG404 [181] phi (byte) current_ypos#14 = (byte) current_ypos#22 [phi:play_move_down::@4->play_move_down::@return#5] -- register_copy - //SEG405 [181] phi (byte) current_movedown_counter#10 = (byte) current_movedown_counter#1 [phi:play_move_down::@4->play_move_down::@return#6] -- register_copy - //SEG406 [181] 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 + //SEG401 [182] phi (byte) current_piece_char#11 = (byte) current_piece_char#16 [phi:play_move_down::@4->play_move_down::@return#0] -- register_copy + //SEG402 [182] phi (byte) current_xpos#16 = (byte) current_xpos#11 [phi:play_move_down::@4->play_move_down::@return#1] -- register_copy + //SEG403 [182] phi (byte*) current_piece_gfx#14 = (byte*) current_piece_gfx#10 [phi:play_move_down::@4->play_move_down::@return#2] -- register_copy + //SEG404 [182] phi (byte) current_orientation#14 = (byte) current_orientation#10 [phi:play_move_down::@4->play_move_down::@return#3] -- register_copy + //SEG405 [182] phi (byte*) current_piece#10 = (byte*) current_piece#16 [phi:play_move_down::@4->play_move_down::@return#4] -- register_copy + //SEG406 [182] phi (byte) current_ypos#14 = (byte) current_ypos#22 [phi:play_move_down::@4->play_move_down::@return#5] -- register_copy + //SEG407 [182] phi (byte) current_movedown_counter#10 = (byte) current_movedown_counter#1 [phi:play_move_down::@4->play_move_down::@return#6] -- register_copy + //SEG408 [182] 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 - //SEG407 play_move_down::@return + //SEG409 play_move_down::@return breturn: - //SEG408 [182] return + //SEG410 [183] return rts - //SEG409 play_move_down::@6 + //SEG411 play_move_down::@6 b6: - //SEG410 [183] (byte) current_ypos#1 ← ++ (byte) current_ypos#22 -- vbuz1=_inc_vbuz1 + //SEG412 [184] (byte) current_ypos#1 ← ++ (byte) current_ypos#22 -- vbuz1=_inc_vbuz1 inc current_ypos - //SEG411 [180] phi from play_move_down::@6 to play_move_down::@7 [phi:play_move_down::@6->play_move_down::@7] + //SEG413 [181] phi from play_move_down::@6 to play_move_down::@7 [phi:play_move_down::@6->play_move_down::@7] b7_from_b6: - //SEG412 [180] phi (byte) current_piece_color#21 = (byte) current_piece_color#16 [phi:play_move_down::@6->play_move_down::@7#0] -- register_copy - //SEG413 [180] phi (byte) current_xpos#34 = (byte) current_xpos#11 [phi:play_move_down::@6->play_move_down::@7#1] -- register_copy - //SEG414 [180] phi (byte*) current_piece_gfx#27 = (byte*) current_piece_gfx#10 [phi:play_move_down::@6->play_move_down::@7#2] -- register_copy - //SEG415 [180] phi (byte) current_orientation#29 = (byte) current_orientation#10 [phi:play_move_down::@6->play_move_down::@7#3] -- register_copy - //SEG416 [180] phi (byte*) current_piece#20 = (byte*) current_piece#16 [phi:play_move_down::@6->play_move_down::@7#4] -- register_copy - //SEG417 [180] phi (byte) current_ypos#30 = (byte) current_ypos#1 [phi:play_move_down::@6->play_move_down::@7#5] -- register_copy + //SEG414 [181] phi (byte) current_piece_char#21 = (byte) current_piece_char#16 [phi:play_move_down::@6->play_move_down::@7#0] -- register_copy + //SEG415 [181] phi (byte) current_xpos#34 = (byte) current_xpos#11 [phi:play_move_down::@6->play_move_down::@7#1] -- register_copy + //SEG416 [181] phi (byte*) current_piece_gfx#27 = (byte*) current_piece_gfx#10 [phi:play_move_down::@6->play_move_down::@7#2] -- register_copy + //SEG417 [181] phi (byte) current_orientation#29 = (byte) current_orientation#10 [phi:play_move_down::@6->play_move_down::@7#3] -- register_copy + //SEG418 [181] phi (byte*) current_piece#20 = (byte*) current_piece#16 [phi:play_move_down::@6->play_move_down::@7#4] -- register_copy + //SEG419 [181] phi (byte) current_ypos#30 = (byte) current_ypos#1 [phi:play_move_down::@6->play_move_down::@7#5] -- register_copy jmp b7 } -//SEG418 play_spawn_current +//SEG420 play_spawn_current play_spawn_current: { - .label _1 = $70 - .label _3 = $6e + .label _1 = $75 + .label _3 = $73 .label piece_idx = $2a - //SEG419 [185] phi from play_spawn_current to play_spawn_current::@1 [phi:play_spawn_current->play_spawn_current::@1] + //SEG421 [186] phi from play_spawn_current to play_spawn_current::@1 [phi:play_spawn_current->play_spawn_current::@1] b1_from_play_spawn_current: - //SEG420 [185] 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 + //SEG422 [186] 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 - //SEG421 play_spawn_current::@1 + //SEG423 play_spawn_current::@1 b1: - //SEG422 [186] 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 + //SEG424 [187] 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 - //SEG423 play_spawn_current::@3 + //SEG425 play_spawn_current::@3 b3: - //SEG424 [187] (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 + //SEG426 [188] (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 - //SEG425 [188] (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 + //SEG427 [189] (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 - //SEG426 [189] (byte) current_piece_color#13 ← *((const byte[]) PIECES_COLORS#0 + (byte) play_spawn_current::piece_idx#2) -- vbuz1=pbuc1_derefidx_vbuz2 + //SEG428 [190] (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_COLORS,y - sta current_piece_color + lda PIECES_CHARS,y + sta current_piece_char jmp breturn - //SEG427 play_spawn_current::@return + //SEG429 play_spawn_current::@return breturn: - //SEG428 [190] return + //SEG430 [191] return rts - //SEG429 [191] phi from play_spawn_current::@1 to play_spawn_current::@2 [phi:play_spawn_current::@1->play_spawn_current::@2] + //SEG431 [192] 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 - //SEG430 play_spawn_current::@2 + //SEG432 play_spawn_current::@2 b2: - //SEG431 [192] call sid_rnd + //SEG433 [193] call sid_rnd jsr sid_rnd - //SEG432 [193] (byte) sid_rnd::return#2 ← (byte) sid_rnd::return#0 -- vbuz1=vbuz2 + //SEG434 [194] (byte) sid_rnd::return#2 ← (byte) sid_rnd::return#0 -- vbuz1=vbuz2 lda sid_rnd.return sta sid_rnd.return_2 jmp b7 - //SEG433 play_spawn_current::@7 + //SEG435 play_spawn_current::@7 b7: - //SEG434 [194] (byte~) play_spawn_current::$1 ← (byte) sid_rnd::return#2 -- vbuz1=vbuz2 + //SEG436 [195] (byte~) play_spawn_current::$1 ← (byte) sid_rnd::return#2 -- vbuz1=vbuz2 lda sid_rnd.return_2 sta _1 - //SEG435 [195] (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 + //SEG437 [196] (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 - //SEG436 [185] phi from play_spawn_current::@7 to play_spawn_current::@1 [phi:play_spawn_current::@7->play_spawn_current::@1] + //SEG438 [186] phi from play_spawn_current::@7 to play_spawn_current::@1 [phi:play_spawn_current::@7->play_spawn_current::@1] b1_from_b7: - //SEG437 [185] 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 + //SEG439 [186] 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 } -//SEG438 sid_rnd +//SEG440 sid_rnd sid_rnd: { - .label return = $71 - .label return_2 = $6f - //SEG439 [196] (byte) sid_rnd::return#0 ← *((const byte*) SID_VOICE3_OSC#0) -- vbuz1=_deref_pbuc1 + .label return = $76 + .label return_2 = $74 + //SEG441 [197] (byte) sid_rnd::return#0 ← *((const byte*) SID_VOICE3_OSC#0) -- vbuz1=_deref_pbuc1 lda SID_VOICE3_OSC sta return jmp breturn - //SEG440 sid_rnd::@return + //SEG442 sid_rnd::@return breturn: - //SEG441 [197] return + //SEG443 [198] return rts } -//SEG442 play_remove_lines +//SEG444 play_remove_lines play_remove_lines: { - .label c = $72 + .label c = $77 .label r = $2c .label w = $2f .label x = $2d .label y = $2b .label full = $2e - //SEG443 [199] phi from play_remove_lines to play_remove_lines::@1 [phi:play_remove_lines->play_remove_lines::@1] + //SEG445 [200] phi from play_remove_lines to play_remove_lines::@1 [phi:play_remove_lines->play_remove_lines::@1] b1_from_play_remove_lines: - //SEG444 [199] 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 + //SEG446 [200] 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 - //SEG445 [199] 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 + //SEG447 [200] 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 - //SEG446 [199] 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 + //SEG448 [200] 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 - //SEG447 [199] phi from play_remove_lines::@4 to play_remove_lines::@1 [phi:play_remove_lines::@4->play_remove_lines::@1] + //SEG449 [200] phi from play_remove_lines::@4 to play_remove_lines::@1 [phi:play_remove_lines::@4->play_remove_lines::@1] b1_from_b4: - //SEG448 [199] 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 - //SEG449 [199] 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 - //SEG450 [199] 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 + //SEG450 [200] 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 + //SEG451 [200] 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 + //SEG452 [200] 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 - //SEG451 play_remove_lines::@1 + //SEG453 play_remove_lines::@1 b1: - //SEG452 [200] phi from play_remove_lines::@1 to play_remove_lines::@2 [phi:play_remove_lines::@1->play_remove_lines::@2] + //SEG454 [201] phi from play_remove_lines::@1 to play_remove_lines::@2 [phi:play_remove_lines::@1->play_remove_lines::@2] b2_from_b1: - //SEG453 [200] 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 + //SEG455 [201] 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 - //SEG454 [200] 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 + //SEG456 [201] 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 - //SEG455 [200] 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 - //SEG456 [200] 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 + //SEG457 [201] 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 + //SEG458 [201] 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 - //SEG457 [200] phi from play_remove_lines::@3 to play_remove_lines::@2 [phi:play_remove_lines::@3->play_remove_lines::@2] + //SEG459 [201] phi from play_remove_lines::@3 to play_remove_lines::@2 [phi:play_remove_lines::@3->play_remove_lines::@2] b2_from_b3: - //SEG458 [200] 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 - //SEG459 [200] 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 - //SEG460 [200] 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 - //SEG461 [200] 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 + //SEG460 [201] 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 + //SEG461 [201] 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 + //SEG462 [201] 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 + //SEG463 [201] 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 - //SEG462 play_remove_lines::@2 + //SEG464 play_remove_lines::@2 b2: - //SEG463 [201] (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 + //SEG465 [202] (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 - //SEG464 [202] (byte) play_remove_lines::r#1 ← -- (byte) play_remove_lines::r#2 -- vbuz1=_dec_vbuz1 + //SEG466 [203] (byte) play_remove_lines::r#1 ← -- (byte) play_remove_lines::r#2 -- vbuz1=_dec_vbuz1 dec r - //SEG465 [203] 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 + //SEG467 [204] 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 - //SEG466 [204] phi from play_remove_lines::@2 to play_remove_lines::@3 [phi:play_remove_lines::@2->play_remove_lines::@3] + //SEG468 [205] phi from play_remove_lines::@2 to play_remove_lines::@3 [phi:play_remove_lines::@2->play_remove_lines::@3] b3_from_b2: - //SEG467 [204] 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 + //SEG469 [205] 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 - //SEG468 play_remove_lines::@3 + //SEG470 play_remove_lines::@3 b3: - //SEG469 [205] *((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 + //SEG471 [206] *((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 - //SEG470 [206] (byte) play_remove_lines::w#1 ← -- (byte) play_remove_lines::w#4 -- vbuz1=_dec_vbuz1 + //SEG472 [207] (byte) play_remove_lines::w#1 ← -- (byte) play_remove_lines::w#4 -- vbuz1=_dec_vbuz1 dec w - //SEG471 [207] (byte) play_remove_lines::x#1 ← ++ (byte) play_remove_lines::x#2 -- vbuz1=_inc_vbuz1 + //SEG473 [208] (byte) play_remove_lines::x#1 ← ++ (byte) play_remove_lines::x#2 -- vbuz1=_inc_vbuz1 inc x - //SEG472 [208] 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 + //SEG474 [209] 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 - //SEG473 play_remove_lines::@9 + //SEG475 play_remove_lines::@9 b9: - //SEG474 [209] 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 + //SEG476 [210] 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 - //SEG475 play_remove_lines::@10 + //SEG477 play_remove_lines::@10 b10: - //SEG476 [210] (byte) play_remove_lines::w#2 ← (byte) play_remove_lines::w#1 + (const byte) PLAYFIELD_COLS#0 -- vbuz1=vbuz1_plus_vbuc1 + //SEG478 [211] (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 - //SEG477 [211] 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] + //SEG479 [212] 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: - //SEG478 [211] 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 + //SEG480 [212] 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 - //SEG479 play_remove_lines::@4 + //SEG481 play_remove_lines::@4 b4: - //SEG480 [212] (byte) play_remove_lines::y#1 ← ++ (byte) play_remove_lines::y#8 -- vbuz1=_inc_vbuz1 + //SEG482 [213] (byte) play_remove_lines::y#1 ← ++ (byte) play_remove_lines::y#8 -- vbuz1=_inc_vbuz1 inc y - //SEG481 [213] 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 + //SEG483 [214] 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 - //SEG482 [214] 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] + //SEG484 [215] 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: - //SEG483 [214] 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 + //SEG485 [215] 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 - //SEG484 play_remove_lines::@5 + //SEG486 play_remove_lines::@5 b5: - //SEG485 [215] 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 + //SEG487 [216] 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 - //SEG486 play_remove_lines::@return + //SEG488 play_remove_lines::@return breturn: - //SEG487 [216] return + //SEG489 [217] return rts - //SEG488 play_remove_lines::@6 + //SEG490 play_remove_lines::@6 b6: - //SEG489 [217] *((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 + //SEG491 [218] *((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 - //SEG490 [218] (byte) play_remove_lines::w#3 ← -- (byte) play_remove_lines::w#6 -- vbuz1=_dec_vbuz1 + //SEG492 [219] (byte) play_remove_lines::w#3 ← -- (byte) play_remove_lines::w#6 -- vbuz1=_dec_vbuz1 dec w jmp b5_from_b6 - //SEG491 [219] phi from play_remove_lines::@2 to play_remove_lines::@17 [phi:play_remove_lines::@2->play_remove_lines::@17] + //SEG493 [220] 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 - //SEG492 play_remove_lines::@17 + //SEG494 play_remove_lines::@17 b17: - //SEG493 [204] phi from play_remove_lines::@17 to play_remove_lines::@3 [phi:play_remove_lines::@17->play_remove_lines::@3] + //SEG495 [205] phi from play_remove_lines::@17 to play_remove_lines::@3 [phi:play_remove_lines::@17->play_remove_lines::@3] b3_from_b17: - //SEG494 [204] 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 + //SEG496 [205] 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 } -//SEG495 play_lock_current +//SEG497 play_lock_current play_lock_current: { .label ypos2 = $30 - .label playfield_line = $73 + .label playfield_line = $78 .label col = $33 - .label i = $75 + .label i = $7a .label c = $34 .label l = $31 .label i_2 = $32 .label i_3 = $32 .label i_7 = $32 .label i_9 = $32 - //SEG496 [220] (byte) play_lock_current::ypos2#0 ← (byte) current_ypos#22 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_rol_1 + //SEG498 [221] (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 - //SEG497 [221] phi from play_lock_current to play_lock_current::@1 [phi:play_lock_current->play_lock_current::@1] + //SEG499 [222] phi from play_lock_current to play_lock_current::@1 [phi:play_lock_current->play_lock_current::@1] b1_from_play_lock_current: - //SEG498 [221] 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 + //SEG500 [222] 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 - //SEG499 [221] 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 + //SEG501 [222] 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 - //SEG500 [221] phi (byte) play_lock_current::ypos2#2 = (byte) play_lock_current::ypos2#0 [phi:play_lock_current->play_lock_current::@1#2] -- register_copy + //SEG502 [222] 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 - //SEG501 play_lock_current::@1 + //SEG503 play_lock_current::@1 b1: - //SEG502 [222] (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 + //SEG504 [223] (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 - //SEG503 [223] (byte) play_lock_current::col#0 ← (byte) current_xpos#11 -- vbuz1=vbuz2 + //SEG505 [224] (byte) play_lock_current::col#0 ← (byte) current_xpos#11 -- vbuz1=vbuz2 lda current_xpos sta col - //SEG504 [224] phi from play_lock_current::@1 to play_lock_current::@2 [phi:play_lock_current::@1->play_lock_current::@2] + //SEG506 [225] phi from play_lock_current::@1 to play_lock_current::@2 [phi:play_lock_current::@1->play_lock_current::@2] b2_from_b1: - //SEG505 [224] 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 + //SEG507 [225] 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 - //SEG506 [224] 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 - //SEG507 [224] 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 + //SEG508 [225] 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 + //SEG509 [225] 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 - //SEG508 play_lock_current::@2 + //SEG510 play_lock_current::@2 b2: - //SEG509 [225] (byte) play_lock_current::i#1 ← ++ (byte) play_lock_current::i#2 -- vbuz1=_inc_vbuz2 + //SEG511 [226] (byte) play_lock_current::i#1 ← ++ (byte) play_lock_current::i#2 -- vbuz1=_inc_vbuz2 ldy i_2 iny sty i - //SEG510 [226] 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 + //SEG512 [227] 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 - //SEG511 play_lock_current::@4 + //SEG513 play_lock_current::@4 b4: - //SEG512 [227] *((byte*) play_lock_current::playfield_line#0 + (byte) play_lock_current::col#2) ← (byte) current_piece_color#16 -- pbuz1_derefidx_vbuz2=vbuz3 - lda current_piece_color + //SEG514 [228] *((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 - //SEG513 play_lock_current::@3 + //SEG515 play_lock_current::@3 b3: - //SEG514 [228] (byte) play_lock_current::col#1 ← ++ (byte) play_lock_current::col#2 -- vbuz1=_inc_vbuz1 + //SEG516 [229] (byte) play_lock_current::col#1 ← ++ (byte) play_lock_current::col#2 -- vbuz1=_inc_vbuz1 inc col - //SEG515 [229] (byte) play_lock_current::c#1 ← ++ (byte) play_lock_current::c#2 -- vbuz1=_inc_vbuz1 + //SEG517 [230] (byte) play_lock_current::c#1 ← ++ (byte) play_lock_current::c#2 -- vbuz1=_inc_vbuz1 inc c - //SEG516 [230] 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 + //SEG518 [231] 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 - //SEG517 play_lock_current::@5 + //SEG519 play_lock_current::@5 b5: - //SEG518 [231] (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 + //SEG520 [232] (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 - //SEG519 [232] (byte) play_lock_current::l#1 ← ++ (byte) play_lock_current::l#6 -- vbuz1=_inc_vbuz1 + //SEG521 [233] (byte) play_lock_current::l#1 ← ++ (byte) play_lock_current::l#6 -- vbuz1=_inc_vbuz1 inc l - //SEG520 [233] 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 + //SEG522 [234] 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 - //SEG521 play_lock_current::@return + //SEG523 play_lock_current::@return breturn: - //SEG522 [234] return + //SEG524 [235] return rts - //SEG523 play_lock_current::@7 + //SEG525 play_lock_current::@7 b7: - //SEG524 [235] (byte~) play_lock_current::i#7 ← (byte) play_lock_current::i#1 -- vbuz1=vbuz2 + //SEG526 [236] (byte~) play_lock_current::i#7 ← (byte) play_lock_current::i#1 -- vbuz1=vbuz2 lda i sta i_7 - //SEG525 [221] phi from play_lock_current::@7 to play_lock_current::@1 [phi:play_lock_current::@7->play_lock_current::@1] + //SEG527 [222] phi from play_lock_current::@7 to play_lock_current::@1 [phi:play_lock_current::@7->play_lock_current::@1] b1_from_b7: - //SEG526 [221] 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 - //SEG527 [221] 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 - //SEG528 [221] 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 + //SEG528 [222] 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 + //SEG529 [222] 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 + //SEG530 [222] 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 - //SEG529 play_lock_current::@8 + //SEG531 play_lock_current::@8 b8: - //SEG530 [236] (byte~) play_lock_current::i#9 ← (byte) play_lock_current::i#1 -- vbuz1=vbuz2 + //SEG532 [237] (byte~) play_lock_current::i#9 ← (byte) play_lock_current::i#1 -- vbuz1=vbuz2 lda i sta i_9 - //SEG531 [224] phi from play_lock_current::@8 to play_lock_current::@2 [phi:play_lock_current::@8->play_lock_current::@2] + //SEG533 [225] phi from play_lock_current::@8 to play_lock_current::@2 [phi:play_lock_current::@8->play_lock_current::@2] b2_from_b8: - //SEG532 [224] 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 - //SEG533 [224] 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 - //SEG534 [224] 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 + //SEG534 [225] 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 + //SEG535 [225] 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 + //SEG536 [225] 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 } -//SEG535 keyboard_event_pressed +//SEG537 keyboard_event_pressed keyboard_event_pressed: { - .label _0 = $76 - .label _1 = $78 - .label return = $7d - .label return_1 = $7f - .label return_2 = $81 - .label row_bits = $77 - .label return_10 = $83 + .label _0 = $7b + .label _1 = $7d + .label return = $82 + .label return_1 = $84 + .label return_2 = $86 + .label row_bits = $7c + .label return_10 = $88 .label keycode = $35 - .label return_11 = $79 - .label return_12 = $6a - //SEG536 [238] (byte~) keyboard_event_pressed::$0 ← (byte) keyboard_event_pressed::keycode#5 >> (byte/signed byte/word/signed word/dword/signed dword) 3 -- vbuz1=vbuz2_ror_3 + .label return_11 = $7e + .label return_12 = $6f + //SEG538 [239] (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 - //SEG537 [239] (byte) keyboard_event_pressed::row_bits#0 ← *((const byte[8]) keyboard_scan_values#0 + (byte~) keyboard_event_pressed::$0) -- vbuz1=pbuc1_derefidx_vbuz2 + //SEG539 [240] (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 - //SEG538 [240] (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 + //SEG540 [241] (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 - //SEG539 [241] (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 + //SEG541 [242] (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 - //SEG540 keyboard_event_pressed::@return + //SEG542 keyboard_event_pressed::@return breturn: - //SEG541 [242] return + //SEG543 [243] return rts } -//SEG542 keyboard_event_get +//SEG544 keyboard_event_get keyboard_event_get: { .label return = $36 - .label return_3 = $4a - //SEG543 [243] if((byte) keyboard_events_size#13==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_get::@return -- vbuz1_eq_0_then_la1 + .label return_3 = $4f + //SEG545 [244] 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 - //SEG544 keyboard_event_get::@3 + //SEG546 keyboard_event_get::@3 b3: - //SEG545 [244] (byte) keyboard_events_size#4 ← -- (byte) keyboard_events_size#13 -- vbuz1=_dec_vbuz1 + //SEG547 [245] (byte) keyboard_events_size#4 ← -- (byte) keyboard_events_size#13 -- vbuz1=_dec_vbuz1 dec keyboard_events_size - //SEG546 [245] (byte) keyboard_event_get::return#1 ← *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#4) -- vbuz1=pbuc1_derefidx_vbuz2 + //SEG548 [246] (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 - //SEG547 [246] phi from keyboard_event_get::@3 to keyboard_event_get::@return [phi:keyboard_event_get::@3->keyboard_event_get::@return] + //SEG549 [247] phi from keyboard_event_get::@3 to keyboard_event_get::@return [phi:keyboard_event_get::@3->keyboard_event_get::@return] breturn_from_b3: - //SEG548 [246] phi (byte) keyboard_events_size#16 = (byte) keyboard_events_size#4 [phi:keyboard_event_get::@3->keyboard_event_get::@return#0] -- register_copy - //SEG549 [246] 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 + //SEG550 [247] phi (byte) keyboard_events_size#16 = (byte) keyboard_events_size#4 [phi:keyboard_event_get::@3->keyboard_event_get::@return#0] -- register_copy + //SEG551 [247] 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 - //SEG550 [246] phi from keyboard_event_get to keyboard_event_get::@return [phi:keyboard_event_get->keyboard_event_get::@return] + //SEG552 [247] phi from keyboard_event_get to keyboard_event_get::@return [phi:keyboard_event_get->keyboard_event_get::@return] breturn_from_keyboard_event_get: - //SEG551 [246] phi (byte) keyboard_events_size#16 = (byte) keyboard_events_size#13 [phi:keyboard_event_get->keyboard_event_get::@return#0] -- register_copy - //SEG552 [246] 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 + //SEG553 [247] phi (byte) keyboard_events_size#16 = (byte) keyboard_events_size#13 [phi:keyboard_event_get->keyboard_event_get::@return#0] -- register_copy + //SEG554 [247] 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 - //SEG553 keyboard_event_get::@return + //SEG555 keyboard_event_get::@return breturn: - //SEG554 [247] return + //SEG556 [248] return rts } -//SEG555 keyboard_event_scan +//SEG557 keyboard_event_scan keyboard_event_scan: { - .label _3 = $86 - .label _4 = $87 - .label _11 = $89 - .label _14 = $7e - .label _18 = $80 - .label _22 = $82 - .label _26 = $84 - .label row_scan = $7c + .label _3 = $8b + .label _4 = $8c + .label _11 = $8e + .label _14 = $83 + .label _18 = $85 + .label _22 = $87 + .label _26 = $89 + .label row_scan = $81 .label keycode = $3a .label row = $37 .label col = $39 - .label event_type = $88 - //SEG556 [249] phi from keyboard_event_scan to keyboard_event_scan::@1 [phi:keyboard_event_scan->keyboard_event_scan::@1] + .label event_type = $8d + //SEG558 [250] phi from keyboard_event_scan to keyboard_event_scan::@1 [phi:keyboard_event_scan->keyboard_event_scan::@1] b1_from_keyboard_event_scan: - //SEG557 [249] phi (byte) keyboard_events_size#29 = (byte) keyboard_events_size#19 [phi:keyboard_event_scan->keyboard_event_scan::@1#0] -- register_copy - //SEG558 [249] 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 + //SEG559 [250] phi (byte) keyboard_events_size#29 = (byte) keyboard_events_size#19 [phi:keyboard_event_scan->keyboard_event_scan::@1#0] -- register_copy + //SEG560 [250] 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 - //SEG559 [249] 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 + //SEG561 [250] 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 - //SEG560 [249] phi from keyboard_event_scan::@3 to keyboard_event_scan::@1 [phi:keyboard_event_scan::@3->keyboard_event_scan::@1] + //SEG562 [250] phi from keyboard_event_scan::@3 to keyboard_event_scan::@1 [phi:keyboard_event_scan::@3->keyboard_event_scan::@1] b1_from_b3: - //SEG561 [249] phi (byte) keyboard_events_size#29 = (byte) keyboard_events_size#13 [phi:keyboard_event_scan::@3->keyboard_event_scan::@1#0] -- register_copy - //SEG562 [249] 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 - //SEG563 [249] 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 + //SEG563 [250] phi (byte) keyboard_events_size#29 = (byte) keyboard_events_size#13 [phi:keyboard_event_scan::@3->keyboard_event_scan::@1#0] -- register_copy + //SEG564 [250] 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 + //SEG565 [250] 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 - //SEG564 keyboard_event_scan::@1 + //SEG566 keyboard_event_scan::@1 b1: - //SEG565 [250] (byte) keyboard_matrix_read::rowid#0 ← (byte) keyboard_event_scan::row#2 -- vbuz1=vbuz2 + //SEG567 [251] (byte) keyboard_matrix_read::rowid#0 ← (byte) keyboard_event_scan::row#2 -- vbuz1=vbuz2 lda row sta keyboard_matrix_read.rowid - //SEG566 [251] call keyboard_matrix_read + //SEG568 [252] call keyboard_matrix_read jsr keyboard_matrix_read - //SEG567 [252] (byte) keyboard_matrix_read::return#2 ← (byte) keyboard_matrix_read::return#0 -- vbuz1=vbuz2 + //SEG569 [253] (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 - //SEG568 keyboard_event_scan::@25 + //SEG570 keyboard_event_scan::@25 b25: - //SEG569 [253] (byte) keyboard_event_scan::row_scan#0 ← (byte) keyboard_matrix_read::return#2 -- vbuz1=vbuz2 + //SEG571 [254] (byte) keyboard_event_scan::row_scan#0 ← (byte) keyboard_matrix_read::return#2 -- vbuz1=vbuz2 lda keyboard_matrix_read.return_2 sta row_scan - //SEG570 [254] 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 + //SEG572 [255] 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 - //SEG571 keyboard_event_scan::@13 + //SEG573 keyboard_event_scan::@13 b13: - //SEG572 [255] (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 + //SEG574 [256] (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 - //SEG573 [256] 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] + //SEG575 [257] 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: - //SEG574 [256] 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 - //SEG575 [256] 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 + //SEG576 [257] 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 + //SEG577 [257] 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 - //SEG576 keyboard_event_scan::@3 + //SEG578 keyboard_event_scan::@3 b3: - //SEG577 [257] (byte) keyboard_event_scan::row#1 ← ++ (byte) keyboard_event_scan::row#2 -- vbuz1=_inc_vbuz1 + //SEG579 [258] (byte) keyboard_event_scan::row#1 ← ++ (byte) keyboard_event_scan::row#2 -- vbuz1=_inc_vbuz1 inc row - //SEG578 [258] 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 + //SEG580 [259] 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 - //SEG579 [259] phi from keyboard_event_scan::@3 to keyboard_event_scan::@20 [phi:keyboard_event_scan::@3->keyboard_event_scan::@20] + //SEG581 [260] 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 - //SEG580 keyboard_event_scan::@20 + //SEG582 keyboard_event_scan::@20 b20: - //SEG581 [260] call keyboard_event_pressed - //SEG582 [237] phi from keyboard_event_scan::@20 to keyboard_event_pressed [phi:keyboard_event_scan::@20->keyboard_event_pressed] + //SEG583 [261] call keyboard_event_pressed + //SEG584 [238] phi from keyboard_event_scan::@20 to keyboard_event_pressed [phi:keyboard_event_scan::@20->keyboard_event_pressed] keyboard_event_pressed_from_b20: - //SEG583 [237] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_LSHIFT#0 [phi:keyboard_event_scan::@20->keyboard_event_pressed#0] -- vbuz1=vbuc1 + //SEG585 [238] 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 - //SEG584 [261] (byte) keyboard_event_pressed::return#0 ← (byte) keyboard_event_pressed::return#11 -- vbuz1=vbuz2 + //SEG586 [262] (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 - //SEG585 keyboard_event_scan::@26 + //SEG587 keyboard_event_scan::@26 b26: - //SEG586 [262] (byte~) keyboard_event_scan::$14 ← (byte) keyboard_event_pressed::return#0 -- vbuz1=vbuz2 + //SEG588 [263] (byte~) keyboard_event_scan::$14 ← (byte) keyboard_event_pressed::return#0 -- vbuz1=vbuz2 lda keyboard_event_pressed.return sta _14 - //SEG587 [263] 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 + //SEG589 [264] 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 - //SEG588 [264] phi from keyboard_event_scan::@26 to keyboard_event_scan::@21 [phi:keyboard_event_scan::@26->keyboard_event_scan::@21] + //SEG590 [265] 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 - //SEG589 keyboard_event_scan::@21 + //SEG591 keyboard_event_scan::@21 b21: - //SEG590 [265] phi from keyboard_event_scan::@21 to keyboard_event_scan::@9 [phi:keyboard_event_scan::@21->keyboard_event_scan::@9] + //SEG592 [266] phi from keyboard_event_scan::@21 to keyboard_event_scan::@9 [phi:keyboard_event_scan::@21->keyboard_event_scan::@9] b9_from_b21: - //SEG591 [265] 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 + //SEG593 [266] 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 - //SEG592 [265] phi from keyboard_event_scan::@26 to keyboard_event_scan::@9 [phi:keyboard_event_scan::@26->keyboard_event_scan::@9] + //SEG594 [266] phi from keyboard_event_scan::@26 to keyboard_event_scan::@9 [phi:keyboard_event_scan::@26->keyboard_event_scan::@9] b9_from_b26: - //SEG593 [265] 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 + //SEG595 [266] 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 - //SEG594 keyboard_event_scan::@9 + //SEG596 keyboard_event_scan::@9 b9: - //SEG595 [266] call keyboard_event_pressed - //SEG596 [237] phi from keyboard_event_scan::@9 to keyboard_event_pressed [phi:keyboard_event_scan::@9->keyboard_event_pressed] + //SEG597 [267] call keyboard_event_pressed + //SEG598 [238] phi from keyboard_event_scan::@9 to keyboard_event_pressed [phi:keyboard_event_scan::@9->keyboard_event_pressed] keyboard_event_pressed_from_b9: - //SEG597 [237] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_RSHIFT#0 [phi:keyboard_event_scan::@9->keyboard_event_pressed#0] -- vbuz1=vbuc1 + //SEG599 [238] 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 - //SEG598 [267] (byte) keyboard_event_pressed::return#1 ← (byte) keyboard_event_pressed::return#11 -- vbuz1=vbuz2 + //SEG600 [268] (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 - //SEG599 keyboard_event_scan::@27 + //SEG601 keyboard_event_scan::@27 b27: - //SEG600 [268] (byte~) keyboard_event_scan::$18 ← (byte) keyboard_event_pressed::return#1 -- vbuz1=vbuz2 + //SEG602 [269] (byte~) keyboard_event_scan::$18 ← (byte) keyboard_event_pressed::return#1 -- vbuz1=vbuz2 lda keyboard_event_pressed.return_1 sta _18 - //SEG601 [269] 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 + //SEG603 [270] 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 - //SEG602 keyboard_event_scan::@22 + //SEG604 keyboard_event_scan::@22 b22: - //SEG603 [270] (byte) keyboard_modifiers#3 ← (byte) keyboard_modifiers#11 | (const byte) KEY_MODIFIER_RSHIFT#0 -- vbuz1=vbuz1_bor_vbuc1 + //SEG605 [271] (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 - //SEG604 [271] 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] + //SEG606 [272] 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: - //SEG605 [271] 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 + //SEG607 [272] 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 - //SEG606 keyboard_event_scan::@10 + //SEG608 keyboard_event_scan::@10 b10: - //SEG607 [272] call keyboard_event_pressed - //SEG608 [237] phi from keyboard_event_scan::@10 to keyboard_event_pressed [phi:keyboard_event_scan::@10->keyboard_event_pressed] + //SEG609 [273] call keyboard_event_pressed + //SEG610 [238] phi from keyboard_event_scan::@10 to keyboard_event_pressed [phi:keyboard_event_scan::@10->keyboard_event_pressed] keyboard_event_pressed_from_b10: - //SEG609 [237] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_CTRL#0 [phi:keyboard_event_scan::@10->keyboard_event_pressed#0] -- vbuz1=vbuc1 + //SEG611 [238] 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 - //SEG610 [273] (byte) keyboard_event_pressed::return#2 ← (byte) keyboard_event_pressed::return#11 -- vbuz1=vbuz2 + //SEG612 [274] (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 - //SEG611 keyboard_event_scan::@28 + //SEG613 keyboard_event_scan::@28 b28: - //SEG612 [274] (byte~) keyboard_event_scan::$22 ← (byte) keyboard_event_pressed::return#2 -- vbuz1=vbuz2 + //SEG614 [275] (byte~) keyboard_event_scan::$22 ← (byte) keyboard_event_pressed::return#2 -- vbuz1=vbuz2 lda keyboard_event_pressed.return_2 sta _22 - //SEG613 [275] 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 + //SEG615 [276] 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 - //SEG614 keyboard_event_scan::@23 + //SEG616 keyboard_event_scan::@23 b23: - //SEG615 [276] (byte) keyboard_modifiers#4 ← (byte) keyboard_modifiers#12 | (const byte) KEY_MODIFIER_CTRL#0 -- vbuz1=vbuz1_bor_vbuc1 + //SEG617 [277] (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 - //SEG616 [277] 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] + //SEG618 [278] 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: - //SEG617 [277] 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 + //SEG619 [278] 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 - //SEG618 keyboard_event_scan::@11 + //SEG620 keyboard_event_scan::@11 b11: - //SEG619 [278] call keyboard_event_pressed - //SEG620 [237] phi from keyboard_event_scan::@11 to keyboard_event_pressed [phi:keyboard_event_scan::@11->keyboard_event_pressed] + //SEG621 [279] call keyboard_event_pressed + //SEG622 [238] phi from keyboard_event_scan::@11 to keyboard_event_pressed [phi:keyboard_event_scan::@11->keyboard_event_pressed] keyboard_event_pressed_from_b11: - //SEG621 [237] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_COMMODORE#0 [phi:keyboard_event_scan::@11->keyboard_event_pressed#0] -- vbuz1=vbuc1 + //SEG623 [238] 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 - //SEG622 [279] (byte) keyboard_event_pressed::return#10 ← (byte) keyboard_event_pressed::return#11 -- vbuz1=vbuz2 + //SEG624 [280] (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 - //SEG623 keyboard_event_scan::@29 + //SEG625 keyboard_event_scan::@29 b29: - //SEG624 [280] (byte~) keyboard_event_scan::$26 ← (byte) keyboard_event_pressed::return#10 -- vbuz1=vbuz2 + //SEG626 [281] (byte~) keyboard_event_scan::$26 ← (byte) keyboard_event_pressed::return#10 -- vbuz1=vbuz2 lda keyboard_event_pressed.return_10 sta _26 - //SEG625 [281] 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 + //SEG627 [282] 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 - //SEG626 keyboard_event_scan::@24 + //SEG628 keyboard_event_scan::@24 b24: - //SEG627 [282] (byte) keyboard_modifiers#5 ← (byte) keyboard_modifiers#13 | (const byte) KEY_MODIFIER_COMMODORE#0 -- vbuz1=vbuz2_bor_vbuc1 + //SEG629 [283] (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 - //SEG628 keyboard_event_scan::@return + //SEG630 keyboard_event_scan::@return breturn: - //SEG629 [283] return + //SEG631 [284] return rts - //SEG630 [284] phi from keyboard_event_scan::@25 to keyboard_event_scan::@4 [phi:keyboard_event_scan::@25->keyboard_event_scan::@4] + //SEG632 [285] phi from keyboard_event_scan::@25 to keyboard_event_scan::@4 [phi:keyboard_event_scan::@25->keyboard_event_scan::@4] b4_from_b25: - //SEG631 [284] phi (byte) keyboard_events_size#10 = (byte) keyboard_events_size#29 [phi:keyboard_event_scan::@25->keyboard_event_scan::@4#0] -- register_copy - //SEG632 [284] 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 - //SEG633 [284] 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 + //SEG633 [285] phi (byte) keyboard_events_size#10 = (byte) keyboard_events_size#29 [phi:keyboard_event_scan::@25->keyboard_event_scan::@4#0] -- register_copy + //SEG634 [285] 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 + //SEG635 [285] 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 - //SEG634 [284] phi from keyboard_event_scan::@5 to keyboard_event_scan::@4 [phi:keyboard_event_scan::@5->keyboard_event_scan::@4] + //SEG636 [285] phi from keyboard_event_scan::@5 to keyboard_event_scan::@4 [phi:keyboard_event_scan::@5->keyboard_event_scan::@4] b4_from_b5: - //SEG635 [284] phi (byte) keyboard_events_size#10 = (byte) keyboard_events_size#30 [phi:keyboard_event_scan::@5->keyboard_event_scan::@4#0] -- register_copy - //SEG636 [284] 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 - //SEG637 [284] 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 + //SEG637 [285] phi (byte) keyboard_events_size#10 = (byte) keyboard_events_size#30 [phi:keyboard_event_scan::@5->keyboard_event_scan::@4#0] -- register_copy + //SEG638 [285] 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 + //SEG639 [285] 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 - //SEG638 keyboard_event_scan::@4 + //SEG640 keyboard_event_scan::@4 b4: - //SEG639 [285] (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 + //SEG641 [286] (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 - //SEG640 [286] (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 + //SEG642 [287] (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 - //SEG641 [287] 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 + //SEG643 [288] 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 - //SEG642 keyboard_event_scan::@15 + //SEG644 keyboard_event_scan::@15 b15: - //SEG643 [288] 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 + //SEG645 [289] 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 - //SEG644 keyboard_event_scan::@16 + //SEG646 keyboard_event_scan::@16 b16: - //SEG645 [289] (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 + //SEG647 [290] (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 - //SEG646 [290] 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 + //SEG648 [291] 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 - //SEG647 keyboard_event_scan::@17 + //SEG649 keyboard_event_scan::@17 b17: - //SEG648 [291] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte) keyboard_event_scan::keycode#10 -- pbuc1_derefidx_vbuz1=vbuz2 + //SEG650 [292] *((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 - //SEG649 [292] (byte) keyboard_events_size#2 ← ++ (byte) keyboard_events_size#10 -- vbuz1=_inc_vbuz1 + //SEG651 [293] (byte) keyboard_events_size#2 ← ++ (byte) keyboard_events_size#10 -- vbuz1=_inc_vbuz1 inc keyboard_events_size - //SEG650 [293] 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] + //SEG652 [294] 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: - //SEG651 [293] 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 + //SEG653 [294] 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 - //SEG652 keyboard_event_scan::@5 + //SEG654 keyboard_event_scan::@5 b5: - //SEG653 [294] (byte) keyboard_event_scan::keycode#15 ← ++ (byte) keyboard_event_scan::keycode#10 -- vbuz1=_inc_vbuz1 + //SEG655 [295] (byte) keyboard_event_scan::keycode#15 ← ++ (byte) keyboard_event_scan::keycode#10 -- vbuz1=_inc_vbuz1 inc keycode - //SEG654 [295] (byte) keyboard_event_scan::col#1 ← ++ (byte) keyboard_event_scan::col#2 -- vbuz1=_inc_vbuz1 + //SEG656 [296] (byte) keyboard_event_scan::col#1 ← ++ (byte) keyboard_event_scan::col#2 -- vbuz1=_inc_vbuz1 inc col - //SEG655 [296] 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 + //SEG657 [297] 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 - //SEG656 keyboard_event_scan::@19 + //SEG658 keyboard_event_scan::@19 b19: - //SEG657 [297] *((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2) ← (byte) keyboard_event_scan::row_scan#0 -- pbuc1_derefidx_vbuz1=vbuz2 + //SEG659 [298] *((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 - //SEG658 keyboard_event_scan::@7 + //SEG660 keyboard_event_scan::@7 b7: - //SEG659 [298] (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 + //SEG661 [299] (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 - //SEG660 [299] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte/word/dword~) keyboard_event_scan::$11 -- pbuc1_derefidx_vbuz1=vbuz2 + //SEG662 [300] *((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 - //SEG661 [300] (byte) keyboard_events_size#1 ← ++ (byte) keyboard_events_size#10 -- vbuz1=_inc_vbuz1 + //SEG663 [301] (byte) keyboard_events_size#1 ← ++ (byte) keyboard_events_size#10 -- vbuz1=_inc_vbuz1 inc keyboard_events_size jmp b5_from_b7 } -//SEG662 keyboard_matrix_read +//SEG664 keyboard_matrix_read keyboard_matrix_read: { - .label return = $8a - .label rowid = $7a - .label return_2 = $7b - //SEG663 [301] *((const byte*) CIA1_PORT_A#0) ← *((const byte[8]) keyboard_matrix_row_bitmask#0 + (byte) keyboard_matrix_read::rowid#0) -- _deref_pbuc1=pbuc2_derefidx_vbuz1 + .label return = $8f + .label rowid = $7f + .label return_2 = $80 + //SEG665 [302] *((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 - //SEG664 [302] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) -- vbuz1=_bnot__deref_pbuc1 + //SEG666 [303] (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 - //SEG665 keyboard_matrix_read::@return + //SEG667 keyboard_matrix_read::@return breturn: - //SEG666 [303] return + //SEG668 [304] return rts } -//SEG667 play_init +//SEG669 play_init play_init: { - .label _1 = $8b + .label _1 = $90 .label pli = $3d .label idx = $3f .label j = $3c - //SEG668 [305] phi from play_init to play_init::@1 [phi:play_init->play_init::@1] + //SEG670 [306] phi from play_init to play_init::@1 [phi:play_init->play_init::@1] b1_from_play_init: - //SEG669 [305] 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 + //SEG671 [306] 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 - //SEG670 [305] 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 + //SEG672 [306] 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 - //SEG671 [305] 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 + //SEG673 [306] 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 - //SEG672 [305] phi from play_init::@1 to play_init::@1 [phi:play_init::@1->play_init::@1] + //SEG674 [306] phi from play_init::@1 to play_init::@1 [phi:play_init::@1->play_init::@1] b1_from_b1: - //SEG673 [305] phi (byte) play_init::idx#2 = (byte) play_init::idx#1 [phi:play_init::@1->play_init::@1#0] -- register_copy - //SEG674 [305] phi (byte*) play_init::pli#2 = (byte*) play_init::pli#1 [phi:play_init::@1->play_init::@1#1] -- register_copy - //SEG675 [305] phi (byte) play_init::j#2 = (byte) play_init::j#1 [phi:play_init::@1->play_init::@1#2] -- register_copy + //SEG675 [306] phi (byte) play_init::idx#2 = (byte) play_init::idx#1 [phi:play_init::@1->play_init::@1#0] -- register_copy + //SEG676 [306] phi (byte*) play_init::pli#2 = (byte*) play_init::pli#1 [phi:play_init::@1->play_init::@1#1] -- register_copy + //SEG677 [306] phi (byte) play_init::j#2 = (byte) play_init::j#1 [phi:play_init::@1->play_init::@1#2] -- register_copy jmp b1 - //SEG676 play_init::@1 + //SEG678 play_init::@1 b1: - //SEG677 [306] (byte~) play_init::$1 ← (byte) play_init::j#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_rol_1 + //SEG679 [307] (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 - //SEG678 [307] *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte~) play_init::$1) ← (byte*) play_init::pli#2 -- pptc1_derefidx_vbuz1=pbuz2 + //SEG680 [308] *((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 - //SEG679 [308] *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0 + (byte) play_init::j#2) ← (byte) play_init::idx#2 -- pbuc1_derefidx_vbuz1=vbuz2 + //SEG681 [309] *((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 - //SEG680 [309] (byte*) play_init::pli#1 ← (byte*) play_init::pli#2 + (const byte) PLAYFIELD_COLS#0 -- pbuz1=pbuz1_plus_vbuc1 + //SEG682 [310] (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 @@ -8983,99 +9476,125 @@ play_init: { bcc !+ inc pli+1 !: - //SEG681 [310] (byte) play_init::idx#1 ← (byte) play_init::idx#2 + (const byte) PLAYFIELD_COLS#0 -- vbuz1=vbuz1_plus_vbuc1 + //SEG683 [311] (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 - //SEG682 [311] (byte) play_init::j#1 ← ++ (byte) play_init::j#2 -- vbuz1=_inc_vbuz1 + //SEG684 [312] (byte) play_init::j#1 ← ++ (byte) play_init::j#2 -- vbuz1=_inc_vbuz1 inc j - //SEG683 [312] 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 + //SEG685 [313] 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 - //SEG684 play_init::@2 + //SEG686 play_init::@2 b2: - //SEG685 [313] *((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 + //SEG687 [314] *((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 - //SEG686 play_init::@return + //SEG688 play_init::@return breturn: - //SEG687 [314] return + //SEG689 [315] return rts } -//SEG688 render_init +//SEG690 render_init render_init: { - .label _5 = $8c - .label _10 = $8d + .const vicSelectGfxBank1_toDd001_return = 3^(>PLAYFIELD_SCREEN)>>6 + .const toD0181_return = (>(PLAYFIELD_SCREEN&$3fff)<<2)|(>PLAYFIELD_CHARSET)>>2&$f + .label _10 = $91 + .label _15 = $92 .label li = $41 .label i = $40 .label c = $46 .label line = $43 .label l = $45 - //SEG689 [315] *((const byte*) BGCOL#0) ← (const byte) BLACK#0 -- _deref_pbuc1=vbuc2 + jmp vicSelectGfxBank1 + //SEG691 render_init::vicSelectGfxBank1 + vicSelectGfxBank1: + //SEG692 [317] *((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 + //SEG693 [318] 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 + //SEG694 render_init::vicSelectGfxBank1_toDd001 + vicSelectGfxBank1_toDd001: + jmp vicSelectGfxBank1_b1 + //SEG695 render_init::vicSelectGfxBank1_@1 + vicSelectGfxBank1_b1: + //SEG696 [319] *((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 + //SEG697 [320] phi from render_init::vicSelectGfxBank1_@1 to render_init::toD0181 [phi:render_init::vicSelectGfxBank1_@1->render_init::toD0181] + toD0181_from_vicSelectGfxBank1_b1: + jmp toD0181 + //SEG698 render_init::toD0181 + toD0181: + jmp b8 + //SEG699 render_init::@8 + b8: + //SEG700 [321] *((const byte*) D018#0) ← (const byte) render_init::toD0181_return#0 -- _deref_pbuc1=vbuc2 + lda #toD0181_return + sta D018 + //SEG701 [322] *((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 + //SEG702 [323] *((const byte*) BGCOL1#0) ← (const byte) BLACK#0 -- _deref_pbuc1=vbuc2 lda #BLACK - sta BGCOL - //SEG690 [316] call fill - //SEG691 [335] phi from render_init to fill [phi:render_init->fill] - fill_from_render_init: - //SEG692 [335] phi (byte) fill::val#3 = (byte/word/signed word/dword/signed dword) 208 [phi:render_init->fill#0] -- vbuz1=vbuc1 - lda #$d0 - sta fill.val - //SEG693 [335] phi (byte*) fill::addr#0 = (const byte*) PLAYFIELD_SCREEN#0 [phi:render_init->fill#1] -- pbuz1=pbuc1 - lda #PLAYFIELD_SCREEN - sta fill.addr+1 + sta BGCOL1 + //SEG703 [324] *((const byte*) BGCOL2#0) ← (const byte) BLUE#0 -- _deref_pbuc1=vbuc2 + lda #BLUE + sta BGCOL2 + //SEG704 [325] *((const byte*) BGCOL3#0) ← (const byte) CYAN#0 -- _deref_pbuc1=vbuc2 + lda #CYAN + sta BGCOL3 + //SEG705 [326] *((const byte*) BGCOL4#0) ← (const byte) GREY#0 -- _deref_pbuc1=vbuc2 + lda #GREY + sta BGCOL4 + //SEG706 [327] call fill + //SEG707 [368] phi from render_init::@8 to fill [phi:render_init::@8->fill] + fill_from_b8: jsr fill - //SEG694 [317] phi from render_init to render_init::@7 [phi:render_init->render_init::@7] - b7_from_render_init: - jmp b7 - //SEG695 render_init::@7 - b7: - //SEG696 [318] call fill - //SEG697 [335] phi from render_init::@7 to fill [phi:render_init::@7->fill] - fill_from_b7: - //SEG698 [335] phi (byte) fill::val#3 = (const byte) BLACK#0 [phi:render_init::@7->fill#0] -- vbuz1=vbuc1 - lda #BLACK - sta fill.val - //SEG699 [335] phi (byte*) fill::addr#0 = (const byte*) COLS#0 [phi:render_init::@7->fill#1] -- pbuz1=pbuc1 - lda #COLS - sta fill.addr+1 - jsr fill - //SEG700 [319] phi from render_init::@7 to render_init::@1 [phi:render_init::@7->render_init::@1] - b1_from_b7: - //SEG701 [319] phi (byte*) render_init::li#2 = (const byte*) COLS#0+(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 15 [phi:render_init::@7->render_init::@1#0] -- pbuz1=pbuc1 - lda #render_init::@9] + b9_from_b8: + jmp b9 + //SEG709 render_init::@9 + b9: + //SEG710 [329] call render_screen_original + //SEG711 [346] 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 + //SEG712 [330] phi from render_init::@9 to render_init::@1 [phi:render_init::@9->render_init::@1] + b1_from_b9: + //SEG713 [330] phi (byte*) render_init::li#2 = (const byte*) PLAYFIELD_SCREEN#0+(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 #COLS+$28+$f + lda #>PLAYFIELD_SCREEN+$28+$10 sta li+1 - //SEG702 [319] phi (byte) render_init::i#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_init::@7->render_init::@1#1] -- vbuz1=vbuc1 + //SEG714 [330] 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 - //SEG703 [319] phi from render_init::@1 to render_init::@1 [phi:render_init::@1->render_init::@1] + //SEG715 [330] phi from render_init::@1 to render_init::@1 [phi:render_init::@1->render_init::@1] b1_from_b1: - //SEG704 [319] phi (byte*) render_init::li#2 = (byte*) render_init::li#1 [phi:render_init::@1->render_init::@1#0] -- register_copy - //SEG705 [319] phi (byte) render_init::i#2 = (byte) render_init::i#1 [phi:render_init::@1->render_init::@1#1] -- register_copy + //SEG716 [330] phi (byte*) render_init::li#2 = (byte*) render_init::li#1 [phi:render_init::@1->render_init::@1#0] -- register_copy + //SEG717 [330] phi (byte) render_init::i#2 = (byte) render_init::i#1 [phi:render_init::@1->render_init::@1#1] -- register_copy jmp b1 - //SEG706 render_init::@1 + //SEG718 render_init::@1 b1: - //SEG707 [320] (byte~) render_init::$5 ← (byte) render_init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_rol_1 + //SEG719 [331] (byte~) render_init::$10 ← (byte) render_init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_rol_1 lda i asl - sta _5 - //SEG708 [321] *((const byte*[PLAYFIELD_LINES#0+3]) screen_lines#0 + (byte~) render_init::$5) ← (byte*) render_init::li#2 -- pptc1_derefidx_vbuz1=pbuz2 - ldy _5 + sta _10 + //SEG720 [332] *((const byte*[PLAYFIELD_LINES#0+3]) screen_lines#0 + (byte~) render_init::$10) ← (byte*) render_init::li#2 -- pptc1_derefidx_vbuz1=pbuz2 + ldy _10 lda li sta screen_lines,y lda li+1 sta screen_lines+1,y - //SEG709 [322] (byte*) render_init::li#1 ← (byte*) render_init::li#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 -- pbuz1=pbuz1_plus_vbuc1 + //SEG721 [333] (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 @@ -9083,64 +9602,64 @@ render_init: { bcc !+ inc li+1 !: - //SEG710 [323] (byte) render_init::i#1 ← ++ (byte) render_init::i#2 -- vbuz1=_inc_vbuz1 + //SEG722 [334] (byte) render_init::i#1 ← ++ (byte) render_init::i#2 -- vbuz1=_inc_vbuz1 inc i - //SEG711 [324] if((byte) render_init::i#1!=(const byte) PLAYFIELD_LINES#0+(byte/signed byte/word/signed word/dword/signed dword) 2+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_init::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG723 [335] if((byte) render_init::i#1!=(const byte) PLAYFIELD_LINES#0+(byte/signed byte/word/signed word/dword/signed dword) 2+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_init::@1 -- vbuz1_neq_vbuc1_then_la1 lda i cmp #PLAYFIELD_LINES+2+1 bne b1_from_b1 - //SEG712 [325] phi from render_init::@1 to render_init::@2 [phi:render_init::@1->render_init::@2] + //SEG724 [336] phi from render_init::@1 to render_init::@2 [phi:render_init::@1->render_init::@2] b2_from_b1: - //SEG713 [325] phi (byte) render_init::l#4 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_init::@1->render_init::@2#0] -- vbuz1=vbuc1 + //SEG725 [336] phi (byte) render_init::l#4 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_init::@1->render_init::@2#0] -- vbuz1=vbuc1 lda #0 sta l - //SEG714 [325] phi (byte*) render_init::line#4 = (const byte*) COLS#0+(byte/signed byte/word/signed word/dword/signed dword) 14 [phi:render_init::@1->render_init::@2#1] -- pbuz1=pbuc1 - lda #render_init::@2#1] -- pbuz1=pbuc1 + lda #COLS+$e + lda #>COLS+$f sta line+1 jmp b2 - //SEG715 [325] phi from render_init::@5 to render_init::@2 [phi:render_init::@5->render_init::@2] + //SEG727 [336] phi from render_init::@5 to render_init::@2 [phi:render_init::@5->render_init::@2] b2_from_b5: - //SEG716 [325] phi (byte) render_init::l#4 = (byte) render_init::l#1 [phi:render_init::@5->render_init::@2#0] -- register_copy - //SEG717 [325] phi (byte*) render_init::line#4 = (byte*) render_init::line#1 [phi:render_init::@5->render_init::@2#1] -- register_copy + //SEG728 [336] phi (byte) render_init::l#4 = (byte) render_init::l#1 [phi:render_init::@5->render_init::@2#0] -- register_copy + //SEG729 [336] phi (byte*) render_init::line#4 = (byte*) render_init::line#1 [phi:render_init::@5->render_init::@2#1] -- register_copy jmp b2 - //SEG718 render_init::@2 + //SEG730 render_init::@2 b2: - //SEG719 [326] phi from render_init::@2 to render_init::@3 [phi:render_init::@2->render_init::@3] + //SEG731 [337] phi from render_init::@2 to render_init::@3 [phi:render_init::@2->render_init::@3] b3_from_b2: - //SEG720 [326] 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 + //SEG732 [337] 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 - //SEG721 [326] phi from render_init::@3 to render_init::@3 [phi:render_init::@3->render_init::@3] + //SEG733 [337] phi from render_init::@3 to render_init::@3 [phi:render_init::@3->render_init::@3] b3_from_b3: - //SEG722 [326] phi (byte) render_init::c#2 = (byte) render_init::c#1 [phi:render_init::@3->render_init::@3#0] -- register_copy + //SEG734 [337] phi (byte) render_init::c#2 = (byte) render_init::c#1 [phi:render_init::@3->render_init::@3#0] -- register_copy jmp b3 - //SEG723 render_init::@3 + //SEG735 render_init::@3 b3: - //SEG724 [327] (byte*~) render_init::$10 ← (byte*) render_init::line#4 + (byte) render_init::c#2 -- pbuz1=pbuz2_plus_vbuz3 + //SEG736 [338] (byte*~) render_init::$15 ← (byte*) render_init::line#4 + (byte) render_init::c#2 -- pbuz1=pbuz2_plus_vbuz3 lda c clc adc line - sta _10 + sta _15 lda #0 adc line+1 - sta _10+1 - //SEG725 [328] *((byte*~) render_init::$10) ← (const byte) DARK_GREY#0 -- _deref_pbuz1=vbuc1 - lda #DARK_GREY + sta _15+1 + //SEG737 [339] *((byte*~) render_init::$15) ← (const byte) WHITE#0 -- _deref_pbuz1=vbuc1 + lda #WHITE ldy #0 - sta (_10),y - //SEG726 [329] (byte) render_init::c#1 ← ++ (byte) render_init::c#2 -- vbuz1=_inc_vbuz1 + sta (_15),y + //SEG738 [340] (byte) render_init::c#1 ← ++ (byte) render_init::c#2 -- vbuz1=_inc_vbuz1 inc c - //SEG727 [330] 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 + //SEG739 [341] 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 - //SEG728 render_init::@5 + //SEG740 render_init::@5 b5: - //SEG729 [331] (byte*) render_init::line#1 ← (byte*) render_init::line#4 + (byte/signed byte/word/signed word/dword/signed dword) 40 -- pbuz1=pbuz1_plus_vbuc1 + //SEG741 [342] (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 @@ -9148,74 +9667,207 @@ render_init: { bcc !+ inc line+1 !: - //SEG730 [332] (byte) render_init::l#1 ← ++ (byte) render_init::l#4 -- vbuz1=_inc_vbuz1 + //SEG742 [343] (byte) render_init::l#1 ← ++ (byte) render_init::l#4 -- vbuz1=_inc_vbuz1 inc l - //SEG731 [333] 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 + //SEG743 [344] 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 - //SEG732 render_init::@return + //SEG744 render_init::@return breturn: - //SEG733 [334] return + //SEG745 [345] return rts } -//SEG734 fill -fill: { - .label end = $8f - .label addr = $48 - .label val = $47 - //SEG735 [336] (byte*) fill::end#0 ← (byte*) fill::addr#0 + (word/signed word/dword/signed dword) 1000 -- pbuz1=pbuz2_plus_vwuc1 - lda addr - clc - adc #<$3e8 - sta end - lda addr+1 - adc #>$3e8 - sta end+1 - //SEG736 [337] phi from fill fill::@1 to fill::@1 [phi:fill/fill::@1->fill::@1] - b1_from_fill: - b1_from_b1: - //SEG737 [337] phi (byte*) fill::addr#2 = (byte*) fill::addr#0 [phi:fill/fill::@1->fill::@1#0] -- register_copy +//SEG746 render_screen_original +render_screen_original: { + .const SPACE = 0 + .label _3 = $94 + .label screen = $4a + .label x = $4c + .label orig = $48 + .label y = $47 + //SEG747 [347] phi from render_screen_original to render_screen_original::@1 [phi:render_screen_original->render_screen_original::@1] + b1_from_render_screen_original: + //SEG748 [347] 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 + //SEG749 [347] 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 + //SEG750 [347] 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 - //SEG738 fill::@1 + //SEG751 [347] phi from render_screen_original::@7 to render_screen_original::@1 [phi:render_screen_original::@7->render_screen_original::@1] + b1_from_b7: + //SEG752 [347] 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 + //SEG753 [347] 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 + //SEG754 [347] 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 + //SEG755 render_screen_original::@1 b1: - //SEG739 [338] *((byte*) fill::addr#2) ← (byte) fill::val#3 -- _deref_pbuz1=vbuz2 - lda val + //SEG756 [348] phi from render_screen_original::@1 to render_screen_original::@2 [phi:render_screen_original::@1->render_screen_original::@2] + b2_from_b1: + //SEG757 [348] 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 + //SEG758 [348] 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 + //SEG759 [348] phi from render_screen_original::@2 to render_screen_original::@2 [phi:render_screen_original::@2->render_screen_original::@2] + b2_from_b2: + //SEG760 [348] 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 + //SEG761 [348] 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 + //SEG762 render_screen_original::@2 + b2: + //SEG763 [349] *((byte*) render_screen_original::screen#4) ← (const byte) render_screen_original::SPACE#0 -- _deref_pbuz1=vbuc1 + lda #SPACE + ldy #0 + sta (screen),y + //SEG764 [350] (byte*) render_screen_original::screen#1 ← ++ (byte*) render_screen_original::screen#4 -- pbuz1=_inc_pbuz1 + inc screen + bne !+ + inc screen+1 + !: + //SEG765 [351] (byte) render_screen_original::x#1 ← ++ (byte) render_screen_original::x#4 -- vbuz1=_inc_vbuz1 + inc x + //SEG766 [352] 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 + //SEG767 [353] 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: + //SEG768 [353] 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 + //SEG769 [353] 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 + //SEG770 [353] 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 + //SEG771 render_screen_original::@3 + b3: + //SEG772 [354] (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 + //SEG773 [355] *((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 + //SEG774 [356] (byte*) render_screen_original::screen#2 ← ++ (byte*) render_screen_original::screen#5 -- pbuz1=_inc_pbuz1 + inc screen + bne !+ + inc screen+1 + !: + //SEG775 [357] (byte*) render_screen_original::orig#1 ← ++ (byte*) render_screen_original::orig#2 -- pbuz1=_inc_pbuz1 + inc orig + bne !+ + inc orig+1 + !: + //SEG776 [358] (byte) render_screen_original::x#2 ← ++ (byte) render_screen_original::x#5 -- vbuz1=_inc_vbuz1 + inc x + //SEG777 [359] 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 + //SEG778 [360] 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: + //SEG779 [360] 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 + //SEG780 [360] 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 + //SEG781 render_screen_original::@4 + b4: + //SEG782 [361] *((byte*) render_screen_original::screen#6) ← (const byte) render_screen_original::SPACE#0 -- _deref_pbuz1=vbuc1 + lda #SPACE + ldy #0 + sta (screen),y + //SEG783 [362] (byte*) render_screen_original::screen#3 ← ++ (byte*) render_screen_original::screen#6 -- pbuz1=_inc_pbuz1 + inc screen + bne !+ + inc screen+1 + !: + //SEG784 [363] (byte) render_screen_original::x#3 ← ++ (byte) render_screen_original::x#6 -- vbuz1=_inc_vbuz1 + inc x + //SEG785 [364] 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 + //SEG786 render_screen_original::@7 + b7: + //SEG787 [365] (byte) render_screen_original::y#1 ← ++ (byte) render_screen_original::y#6 -- vbuz1=_inc_vbuz1 + inc y + //SEG788 [366] 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 + //SEG789 render_screen_original::@return + breturn: + //SEG790 [367] return + rts +} +//SEG791 fill +fill: { + .const size = $3e8 + .label end = COLS+size + .label addr = $4d + //SEG792 [369] phi from fill to fill::@1 [phi:fill->fill::@1] + b1_from_fill: + //SEG793 [369] phi (byte*) fill::addr#2 = (const byte*) COLS#0 [phi:fill->fill::@1#0] -- pbuz1=pbuc1 + lda #COLS + sta addr+1 + jmp b1 + //SEG794 [369] phi from fill::@1 to fill::@1 [phi:fill::@1->fill::@1] + b1_from_b1: + //SEG795 [369] phi (byte*) fill::addr#2 = (byte*) fill::addr#1 [phi:fill::@1->fill::@1#0] -- register_copy + jmp b1 + //SEG796 fill::@1 + b1: + //SEG797 [370] *((byte*) fill::addr#2) ← (const byte) DARK_GREY#0 -- _deref_pbuz1=vbuc1 + lda #DARK_GREY ldy #0 sta (addr),y - //SEG740 [339] (byte*) fill::addr#1 ← ++ (byte*) fill::addr#2 -- pbuz1=_inc_pbuz1 + //SEG798 [371] (byte*) fill::addr#1 ← ++ (byte*) fill::addr#2 -- pbuz1=_inc_pbuz1 inc addr bne !+ inc addr+1 !: - //SEG741 [340] if((byte*) fill::addr#1!=(byte*) fill::end#0) goto fill::@1 -- pbuz1_neq_pbuz2_then_la1 + //SEG799 [372] if((byte*) fill::addr#1!=(const byte*) fill::end#0) goto fill::@1 -- pbuz1_neq_pbuc1_then_la1 lda addr+1 - cmp end+1 + cmp #>end bne b1_from_b1 lda addr - cmp end + cmp #$ffff sta SID_VOICE3_FREQ+1 - //SEG746 [343] *((const byte*) SID_VOICE3_CONTROL#0) ← (const byte) SID_CONTROL_NOISE#0 -- _deref_pbuc1=vbuc2 + //SEG804 [375] *((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 - //SEG747 sid_rnd_init::@return + //SEG805 sid_rnd_init::@return breturn: - //SEG748 [344] return + //SEG806 [376] return rts } keyboard_matrix_row_bitmask: .byte $fe, $fd, $fb, $f7, $ef, $df, $bf, $7f @@ -9236,55 +9888,56 @@ sid_rnd_init: { 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_COLORS: .byte WHITE, LIGHT_GREY, GREEN, LIGHT_GREY, WHITE, WHITE, GREEN + PIECES_CHARS: .byte $57, $58, $98, $58, $57, $57, $98 playfield_lines: .fill 2*PLAYFIELD_LINES, 0 playfield: .fill PLAYFIELD_LINES*PLAYFIELD_COLS, 0 screen_lines: .fill 2*(PLAYFIELD_LINES+3), 0 PIECES: .word PIECE_T, PIECE_S, PIECE_Z, PIECE_J, PIECE_O, PIECE_I, PIECE_L playfield_lines_idx: .fill PLAYFIELD_LINES+1, 0 .pc = PLAYFIELD_CHARSET "Inline" - .var charset = LoadPicture("nes-charset.png", List().add($000000, $ffffff)) - .for (var c=0; c<32; c++) - .for (var y=0;y<8; y++) - .byte charset.getSinglecolorByte(c,y) + .fill 8,$00 // Place a filled char at the start of the charset + .import binary "nes-screen.imap" + +.pc = PLAYFIELD_SCREEN_ORIGINAL "Inline" + .import binary "nes-screen.iscr" REGISTER UPLIFT POTENTIAL REGISTERS -Statement [15] (byte*~) current_piece_gfx#87 ← (byte*) current_piece_gfx#17 [ current_piece_gfx#87 current_piece_gfx#17 current_piece_color#13 play_spawn_current::$3 ] ( main:3 [ current_piece_gfx#87 current_piece_gfx#17 current_piece_color#13 play_spawn_current::$3 ] ) always clobbers reg byte a -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:40 [ current_piece_color#21 current_piece_color#16 current_piece_color#11 current_piece_color#13 ] -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:110 [ play_spawn_current::$3 ] -Statement [18] (byte*~) current_piece#70 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) [ current_piece_gfx#17 current_piece_color#13 current_piece#70 ] ( main:3 [ current_piece_gfx#17 current_piece_color#13 current_piece#70 ] ) always clobbers reg byte a -Statement [20] 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_color#16 keyboard_events_size#19 current_movedown_counter#12 ] ( main:3 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_color#16 keyboard_events_size#19 current_movedown_counter#12 ] ) always clobbers reg byte a +Statement [16] (byte*~) current_piece_gfx#87 ← (byte*) current_piece_gfx#17 [ current_piece_gfx#87 current_piece_gfx#17 current_piece_char#13 play_spawn_current::$3 ] ( main:4 [ current_piece_gfx#87 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: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:115 [ play_spawn_current::$3 ] +Statement [19] (byte*~) current_piece#70 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) [ current_piece_gfx#17 current_piece_char#13 current_piece#70 ] ( main:4 [ current_piece_gfx#17 current_piece_char#13 current_piece#70 ] ) always clobbers reg byte a +Statement [21] 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: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 ] ) 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 [21] 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_color#16 keyboard_events_size#19 current_movedown_counter#12 ] ( main:3 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_color#16 keyboard_events_size#19 current_movedown_counter#12 ] ) always clobbers reg byte a -Statement [32] (byte) main::render#1 ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte~) main::$10 [ current_piece#10 current_ypos#14 current_piece_color#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:3 [ current_piece#10 current_ypos#14 current_piece_color#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:75 [ main::key_event#0 ] -Statement [37] (byte) main::render#2 ← (byte) main::render#1 + (byte~) main::$11 [ current_piece#10 current_xpos#20 current_ypos#14 current_piece_color#11 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#2 current_orientation#14 current_piece_gfx#14 ] ( main:3 [ current_piece#10 current_xpos#20 current_ypos#14 current_piece_color#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 [42] (byte) main::render#3 ← (byte) main::render#2 + (byte~) main::$12 [ current_piece#10 current_orientation#19 current_piece_gfx#15 current_xpos#20 current_ypos#14 current_piece_color#11 keyboard_events_size#16 current_movedown_counter#10 main::render#3 ] ( main:3 [ current_piece#10 current_orientation#19 current_piece_gfx#15 current_xpos#20 current_ypos#14 current_piece_color#11 keyboard_events_size#16 current_movedown_counter#10 main::render#3 ] ) always clobbers reg byte a -Statement [48] (byte*~) current_piece_gfx#88 ← (byte*) current_piece_gfx#15 [ current_piece#10 current_orientation#19 current_piece_gfx#15 current_xpos#20 current_ypos#14 current_piece_color#11 keyboard_events_size#16 current_movedown_counter#10 current_ypos#71 current_xpos#96 current_piece_gfx#88 ] ( main:3 [ current_piece#10 current_orientation#19 current_piece_gfx#15 current_xpos#20 current_ypos#14 current_piece_color#11 keyboard_events_size#16 current_movedown_counter#10 current_ypos#71 current_xpos#96 current_piece_gfx#88 ] ) always clobbers reg byte a +Statement [22] 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: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 ] ) always clobbers reg byte a +Statement [33] (byte) main::render#1 ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte~) 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 ] ( main:4 [ 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:80 [ main::key_event#0 ] +Statement [38] (byte) main::render#2 ← (byte) main::render#1 + (byte~) main::$11 [ 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:4 [ 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 [43] (byte) main::render#3 ← (byte) main::render#2 + (byte~) main::$12 [ 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:4 [ 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 [49] (byte*~) current_piece_gfx#88 ← (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#71 current_xpos#96 current_piece_gfx#88 ] ( main:4 [ 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#71 current_xpos#96 current_piece_gfx#88 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:4 [ current_ypos#10 current_ypos#71 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:5 [ current_xpos#48 current_xpos#96 ] -Statement [53] (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_color#62 render_current::ypos2#0 ] ( main:3::render_current:17 [ current_piece_gfx#17 current_piece_color#13 play_spawn_current::$3 current_xpos#48 current_piece_gfx#53 current_piece_color#62 render_current::ypos2#0 ] main:3::render_current:50 [ current_piece#10 current_orientation#19 current_piece_gfx#15 current_xpos#20 current_ypos#14 current_piece_color#11 keyboard_events_size#16 current_movedown_counter#10 current_xpos#48 current_piece_gfx#53 current_piece_color#62 render_current::ypos2#0 ] ) always clobbers reg byte a -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:8 [ current_piece_color#62 current_piece_color#75 current_piece_color#76 ] -Statement [56] (byte*) render_current::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0+3]) screen_lines#0 + (byte) render_current::ypos2#2) [ current_xpos#48 current_piece_gfx#53 current_piece_color#62 render_current::ypos2#2 render_current::l#3 render_current::i#4 render_current::screen_line#0 ] ( main:3::render_current:17 [ current_piece_gfx#17 current_piece_color#13 play_spawn_current::$3 current_xpos#48 current_piece_gfx#53 current_piece_color#62 render_current::ypos2#2 render_current::l#3 render_current::i#4 render_current::screen_line#0 ] main:3::render_current:50 [ current_piece#10 current_orientation#19 current_piece_gfx#15 current_xpos#20 current_ypos#14 current_piece_color#11 keyboard_events_size#16 current_movedown_counter#10 current_xpos#48 current_piece_gfx#53 current_piece_color#62 render_current::ypos2#2 render_current::l#3 render_current::i#4 render_current::screen_line#0 ] ) always clobbers reg byte a +Statement [54] (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#62 render_current::ypos2#0 ] ( main:4::render_current:18 [ current_piece_gfx#17 current_piece_char#13 play_spawn_current::$3 current_xpos#48 current_piece_gfx#53 current_piece_char#62 render_current::ypos2#0 ] main:4::render_current:51 [ 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#62 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#62 current_piece_char#75 current_piece_char#76 ] +Statement [57] (byte*) render_current::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0+3]) screen_lines#0 + (byte) render_current::ypos2#2) [ current_xpos#48 current_piece_gfx#53 current_piece_char#62 render_current::ypos2#2 render_current::l#3 render_current::i#4 render_current::screen_line#0 ] ( main:4::render_current:18 [ current_piece_gfx#17 current_piece_char#13 play_spawn_current::$3 current_xpos#48 current_piece_gfx#53 current_piece_char#62 render_current::ypos2#2 render_current::l#3 render_current::i#4 render_current::screen_line#0 ] main:4::render_current:51 [ 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#62 render_current::ypos2#2 render_current::l#3 render_current::i#4 render_current::screen_line#0 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:9 [ render_current::ypos2#2 render_current::ypos2#0 render_current::ypos2#1 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:10 [ render_current::l#3 render_current::l#1 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:11 [ render_current::i#2 render_current::i#1 render_current::i#4 render_current::i#8 ] -Statement [59] (byte) render_current::current_cell#0 ← *((byte*) current_piece_gfx#53 + (byte) render_current::i#2) [ current_xpos#48 current_piece_gfx#53 current_piece_color#62 render_current::ypos2#2 render_current::l#3 render_current::screen_line#0 render_current::i#2 render_current::xpos#2 render_current::c#2 render_current::current_cell#0 ] ( main:3::render_current:17 [ current_piece_gfx#17 current_piece_color#13 play_spawn_current::$3 current_xpos#48 current_piece_gfx#53 current_piece_color#62 render_current::ypos2#2 render_current::l#3 render_current::screen_line#0 render_current::i#2 render_current::xpos#2 render_current::c#2 render_current::current_cell#0 ] main:3::render_current:50 [ current_piece#10 current_orientation#19 current_piece_gfx#15 current_xpos#20 current_ypos#14 current_piece_color#11 keyboard_events_size#16 current_movedown_counter#10 current_xpos#48 current_piece_gfx#53 current_piece_color#62 render_current::ypos2#2 render_current::l#3 render_current::screen_line#0 render_current::i#2 render_current::xpos#2 render_current::c#2 render_current::current_cell#0 ] ) always clobbers reg byte a +Statement [60] (byte) render_current::current_cell#0 ← *((byte*) current_piece_gfx#53 + (byte) render_current::i#2) [ current_xpos#48 current_piece_gfx#53 current_piece_char#62 render_current::ypos2#2 render_current::l#3 render_current::screen_line#0 render_current::i#2 render_current::xpos#2 render_current::c#2 render_current::current_cell#0 ] ( main:4::render_current:18 [ current_piece_gfx#17 current_piece_char#13 play_spawn_current::$3 current_xpos#48 current_piece_gfx#53 current_piece_char#62 render_current::ypos2#2 render_current::l#3 render_current::screen_line#0 render_current::i#2 render_current::xpos#2 render_current::c#2 render_current::current_cell#0 ] main:4::render_current:51 [ 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#62 render_current::ypos2#2 render_current::l#3 render_current::screen_line#0 render_current::i#2 render_current::xpos#2 render_current::c#2 render_current::current_cell#0 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:12 [ render_current::xpos#2 render_current::xpos#1 render_current::xpos#0 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:13 [ render_current::c#2 render_current::c#1 ] -Statement [63] *((byte*) render_current::screen_line#0 + (byte) render_current::xpos#2) ← (byte) current_piece_color#62 [ current_xpos#48 current_piece_gfx#53 current_piece_color#62 render_current::ypos2#2 render_current::l#3 render_current::screen_line#0 render_current::xpos#2 render_current::c#2 render_current::i#1 ] ( main:3::render_current:17 [ current_piece_gfx#17 current_piece_color#13 play_spawn_current::$3 current_xpos#48 current_piece_gfx#53 current_piece_color#62 render_current::ypos2#2 render_current::l#3 render_current::screen_line#0 render_current::xpos#2 render_current::c#2 render_current::i#1 ] main:3::render_current:50 [ current_piece#10 current_orientation#19 current_piece_gfx#15 current_xpos#20 current_ypos#14 current_piece_color#11 keyboard_events_size#16 current_movedown_counter#10 current_xpos#48 current_piece_gfx#53 current_piece_color#62 render_current::ypos2#2 render_current::l#3 render_current::screen_line#0 render_current::xpos#2 render_current::c#2 render_current::i#1 ] ) always clobbers reg byte a -Statement [74] (byte~) render_playfield::$1 ← (byte) render_playfield::l#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ render_playfield::l#2 render_playfield::i#3 render_playfield::$1 ] ( main:3::render_playfield:14 [ current_piece_gfx#17 current_piece_color#13 play_spawn_current::$3 render_playfield::l#2 render_playfield::i#3 render_playfield::$1 ] main:3::render_playfield:45 [ current_piece#10 current_orientation#19 current_piece_gfx#15 current_xpos#20 current_ypos#14 current_piece_color#11 keyboard_events_size#16 current_movedown_counter#10 render_playfield::l#2 render_playfield::i#3 render_playfield::$1 ] ) always clobbers reg byte a +Statement [64] *((byte*) render_current::screen_line#0 + (byte) render_current::xpos#2) ← (byte) current_piece_char#62 [ current_xpos#48 current_piece_gfx#53 current_piece_char#62 render_current::ypos2#2 render_current::l#3 render_current::screen_line#0 render_current::xpos#2 render_current::c#2 render_current::i#1 ] ( main:4::render_current:18 [ current_piece_gfx#17 current_piece_char#13 play_spawn_current::$3 current_xpos#48 current_piece_gfx#53 current_piece_char#62 render_current::ypos2#2 render_current::l#3 render_current::screen_line#0 render_current::xpos#2 render_current::c#2 render_current::i#1 ] main:4::render_current:51 [ 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#62 render_current::ypos2#2 render_current::l#3 render_current::screen_line#0 render_current::xpos#2 render_current::c#2 render_current::i#1 ] ) always clobbers reg byte a +Statement [75] (byte~) render_playfield::$1 ← (byte) render_playfield::l#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ render_playfield::l#2 render_playfield::i#3 render_playfield::$1 ] ( main:4::render_playfield:15 [ current_piece_gfx#17 current_piece_char#13 play_spawn_current::$3 render_playfield::l#2 render_playfield::i#3 render_playfield::$1 ] main:4::render_playfield:46 [ 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::$1 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:14 [ render_playfield::l#2 render_playfield::l#1 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:15 [ render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 ] -Statement [75] (byte*) render_playfield::line#0 ← *((const byte*[PLAYFIELD_LINES#0+3]) screen_lines#0 + (byte~) render_playfield::$1) [ render_playfield::l#2 render_playfield::i#3 render_playfield::line#0 ] ( main:3::render_playfield:14 [ current_piece_gfx#17 current_piece_color#13 play_spawn_current::$3 render_playfield::l#2 render_playfield::i#3 render_playfield::line#0 ] main:3::render_playfield:45 [ current_piece#10 current_orientation#19 current_piece_gfx#15 current_xpos#20 current_ypos#14 current_piece_color#11 keyboard_events_size#16 current_movedown_counter#10 render_playfield::l#2 render_playfield::i#3 render_playfield::line#0 ] ) always clobbers reg byte a -Statement [77] *((byte*) render_playfield::line#2) ← *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) render_playfield::i#2) [ render_playfield::l#2 render_playfield::i#2 render_playfield::line#2 render_playfield::c#2 ] ( main:3::render_playfield:14 [ current_piece_gfx#17 current_piece_color#13 play_spawn_current::$3 render_playfield::l#2 render_playfield::i#2 render_playfield::line#2 render_playfield::c#2 ] main:3::render_playfield:45 [ current_piece#10 current_orientation#19 current_piece_gfx#15 current_xpos#20 current_ypos#14 current_piece_color#11 keyboard_events_size#16 current_movedown_counter#10 render_playfield::l#2 render_playfield::i#2 render_playfield::line#2 render_playfield::c#2 ] ) always clobbers reg byte a reg byte y -Removing always clobbered register reg byte y as potential for zp ZP_BYTE:40 [ current_piece_color#21 current_piece_color#16 current_piece_color#11 current_piece_color#13 ] -Removing always clobbered register reg byte y as potential for zp ZP_BYTE:110 [ play_spawn_current::$3 ] +Statement [76] (byte*) render_playfield::line#0 ← *((const byte*[PLAYFIELD_LINES#0+3]) screen_lines#0 + (byte~) render_playfield::$1) [ render_playfield::l#2 render_playfield::i#3 render_playfield::line#0 ] ( main:4::render_playfield:15 [ current_piece_gfx#17 current_piece_char#13 play_spawn_current::$3 render_playfield::l#2 render_playfield::i#3 render_playfield::line#0 ] main:4::render_playfield:46 [ 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::line#0 ] ) always clobbers reg byte a +Statement [78] *((byte*) render_playfield::line#2) ← *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) render_playfield::i#2) [ render_playfield::l#2 render_playfield::i#2 render_playfield::line#2 render_playfield::c#2 ] ( main:4::render_playfield:15 [ current_piece_gfx#17 current_piece_char#13 play_spawn_current::$3 render_playfield::l#2 render_playfield::i#2 render_playfield::line#2 render_playfield::c#2 ] main:4::render_playfield:46 [ 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::line#2 render_playfield::c#2 ] ) always clobbers reg byte a reg byte y +Removing always clobbered register reg byte y as potential for zp ZP_BYTE:40 [ current_piece_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:115 [ 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 ] @@ -9294,185 +9947,207 @@ Removing always clobbered register reg byte y as potential for zp ZP_BYTE:39 [ c Removing always clobbered register reg byte y as potential for zp ZP_BYTE:2 [ current_ypos#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 [89] (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:3::play_move_rotate:39 [ current_piece_color#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:83 [ main::render#2 ] -Statement [90] (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:3::play_move_rotate:39 [ current_piece_color#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 [95] (byte*~) current_piece#74 ← (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#74 ] ( main:3::play_move_rotate:39 [ current_piece_color#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#74 ] ) always clobbers reg byte a +Statement [90] (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:4::play_move_rotate:40 [ 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:88 [ main::render#2 ] +Statement [91] (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:4::play_move_rotate:40 [ 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 [96] (byte*~) current_piece#74 ← (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#74 ] ( main:4::play_move_rotate:40 [ 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#74 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:20 [ play_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#2 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:25 [ 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 [101] (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:3::play_move_rotate:39 [ current_piece_color#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 [102] (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:3::play_move_rotate:39 [ current_piece_color#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 [103] (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:3::play_move_rotate:39 [ current_piece_color#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 [105] (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:3::play_move_rotate:39::play_collision:96 [ current_piece_color#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:3::play_move_leftright:34::play_collision:134 [ current_piece_color#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:3::play_move_leftright:34::play_collision:145 [ current_piece_color#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:3::play_move_down:29::play_collision: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_color#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:79 [ main::render#1 ] -Statement [106] (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:3::play_move_rotate:39::play_collision:96 [ current_piece_color#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:3::play_move_leftright:34::play_collision:134 [ current_piece_color#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:3::play_move_leftright:34::play_collision:145 [ current_piece_color#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:3::play_move_down:29::play_collision: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_color#16 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#0 ] ) always clobbers reg byte a -Statement [108] (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:3::play_move_rotate:39::play_collision:96 [ current_piece_color#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:3::play_move_leftright:34::play_collision:134 [ current_piece_color#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:3::play_move_leftright:34::play_collision:145 [ current_piece_color#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:3::play_move_down:29::play_collision: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_color#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 [102] (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:4::play_move_rotate:40 [ 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 [103] (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:4::play_move_rotate:40 [ 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 [104] (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:4::play_move_rotate:40 [ 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 [106] (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:4::play_move_rotate:40::play_collision:97 [ 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:4::play_move_leftright:35::play_collision:135 [ 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:4::play_move_leftright:35::play_collision:146 [ 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:4::play_move_down:30::play_collision:170 [ 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:84 [ main::render#1 ] +Statement [107] (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:4::play_move_rotate:40::play_collision:97 [ 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:4::play_move_leftright:35::play_collision:135 [ 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:4::play_move_leftright:35::play_collision:146 [ 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:4::play_move_down:30::play_collision:170 [ 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 [109] (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:4::play_move_rotate:40::play_collision:97 [ 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:4::play_move_leftright:35::play_collision:135 [ 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:4::play_move_leftright:35::play_collision:146 [ 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:4::play_move_down:30::play_collision:170 [ 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 [112] 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:3::play_move_rotate:39::play_collision:96 [ current_piece_color#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:3::play_move_leftright:34::play_collision:134 [ current_piece_color#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:3::play_move_leftright:34::play_collision:145 [ current_piece_color#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:3::play_move_down:29::play_collision: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_color#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 [113] 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:4::play_move_rotate:40::play_collision:97 [ 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:4::play_move_leftright:35::play_collision:135 [ 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:4::play_move_leftright:35::play_collision:146 [ 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:4::play_move_down:30::play_collision:170 [ 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 ] -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:100 [ play_collision::i#1 ] -Statement [116] (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:3::play_move_rotate:39::play_collision:96 [ current_piece_color#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:3::play_move_leftright:34::play_collision:134 [ current_piece_color#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:3::play_move_leftright:34::play_collision:145 [ current_piece_color#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:3::play_move_down:29::play_collision: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_color#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 [119] 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:3::play_move_rotate:39::play_collision:96 [ current_piece_color#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:3::play_move_leftright:34::play_collision:134 [ current_piece_color#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:3::play_move_leftright:34::play_collision:145 [ current_piece_color#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:3::play_move_down:29::play_collision: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_color#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 [133] (byte*~) current_piece#73 ← (byte*) current_piece#10 [ current_piece#10 current_ypos#14 current_orientation#14 current_piece#73 play_collision::orientation#2 play_collision::ypos#2 play_collision::xpos#2 current_xpos#16 ] ( main:3::play_move_leftright:34 [ current_piece_color#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#73 play_collision::orientation#2 play_collision::ypos#2 play_collision::xpos#2 current_xpos#16 ] ) always clobbers reg byte a -Statement [144] (byte*~) current_piece#72 ← (byte*) current_piece#10 [ current_piece#10 current_ypos#14 current_orientation#14 current_piece#72 play_collision::orientation#1 play_collision::ypos#1 play_collision::xpos#1 current_xpos#16 ] ( main:3::play_move_leftright:34 [ current_piece_color#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#72 play_collision::orientation#1 play_collision::ypos#1 play_collision::xpos#1 current_xpos#16 ] ) always clobbers reg byte a -Statement [168] (byte*~) current_piece#71 ← (byte*) current_piece#16 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_color#16 current_piece#71 play_collision::orientation#0 play_collision::ypos#0 play_collision::xpos#0 ] ( main:3::play_move_down:29 [ 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_color#16 current_piece#71 play_collision::orientation#0 play_collision::ypos#0 play_collision::xpos#0 ] ) always clobbers reg byte a -Statement [179] (byte*~) current_piece#75 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) [ current_piece_gfx#17 current_piece_color#13 current_piece#75 ] ( main:3::play_move_down:29 [ keyboard_events_size#16 main::key_event#0 current_piece_gfx#17 current_piece_color#13 current_piece#75 ] ) always clobbers reg byte a -Statement [187] (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:3::play_spawn_current:12 [ play_spawn_current::$3 play_spawn_current::piece_idx#2 ] main:3::play_move_down:29::play_spawn_current:178 [ 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:105 [ play_collision::i#1 ] +Statement [117] (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:4::play_move_rotate:40::play_collision:97 [ 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:4::play_move_leftright:35::play_collision:135 [ 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:4::play_move_leftright:35::play_collision:146 [ 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:4::play_move_down:30::play_collision:170 [ 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 [120] 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:4::play_move_rotate:40::play_collision:97 [ 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:4::play_move_leftright:35::play_collision:135 [ 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:4::play_move_leftright:35::play_collision:146 [ 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:4::play_move_down:30::play_collision:170 [ 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 [134] (byte*~) current_piece#73 ← (byte*) current_piece#10 [ current_piece#10 current_ypos#14 current_orientation#14 current_piece#73 play_collision::orientation#2 play_collision::ypos#2 play_collision::xpos#2 current_xpos#16 ] ( main:4::play_move_leftright:35 [ 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#73 play_collision::orientation#2 play_collision::ypos#2 play_collision::xpos#2 current_xpos#16 ] ) always clobbers reg byte a +Statement [145] (byte*~) current_piece#72 ← (byte*) current_piece#10 [ current_piece#10 current_ypos#14 current_orientation#14 current_piece#72 play_collision::orientation#1 play_collision::ypos#1 play_collision::xpos#1 current_xpos#16 ] ( main:4::play_move_leftright:35 [ 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#72 play_collision::orientation#1 play_collision::ypos#1 play_collision::xpos#1 current_xpos#16 ] ) always clobbers reg byte a +Statement [169] (byte*~) current_piece#71 ← (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#71 play_collision::orientation#0 play_collision::ypos#0 play_collision::xpos#0 ] ( main:4::play_move_down:30 [ 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#71 play_collision::orientation#0 play_collision::ypos#0 play_collision::xpos#0 ] ) always clobbers reg byte a +Statement [180] (byte*~) current_piece#75 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) [ current_piece_gfx#17 current_piece_char#13 current_piece#75 ] ( main:4::play_move_down:30 [ keyboard_events_size#16 main::key_event#0 current_piece_gfx#17 current_piece_char#13 current_piece#75 ] ) always clobbers reg byte a +Statement [188] (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:4::play_spawn_current:13 [ play_spawn_current::$3 play_spawn_current::piece_idx#2 ] main:4::play_move_down:30::play_spawn_current:179 [ 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 [188] (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:3::play_spawn_current:12 [ current_piece_gfx#17 play_spawn_current::$3 play_spawn_current::piece_idx#2 ] main:3::play_move_down:29::play_spawn_current:178 [ 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 [189] (byte) current_piece_color#13 ← *((const byte[]) PIECES_COLORS#0 + (byte) play_spawn_current::piece_idx#2) [ current_piece_gfx#17 current_piece_color#13 play_spawn_current::$3 ] ( main:3::play_spawn_current:12 [ current_piece_gfx#17 current_piece_color#13 play_spawn_current::$3 ] main:3::play_move_down:29::play_spawn_current:178 [ keyboard_events_size#16 main::key_event#0 current_piece_gfx#17 current_piece_color#13 play_spawn_current::$3 ] ) always clobbers reg byte a -Statement [195] (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:3::play_spawn_current:12 [ play_spawn_current::piece_idx#1 ] main:3::play_move_down:29::play_spawn_current:178 [ keyboard_events_size#16 main::key_event#0 play_spawn_current::piece_idx#1 ] ) always clobbers reg byte a -Statement [210] (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:3::play_move_down:29::play_remove_lines:176 [ 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 [189] (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:4::play_spawn_current:13 [ current_piece_gfx#17 play_spawn_current::$3 play_spawn_current::piece_idx#2 ] main:4::play_move_down:30::play_spawn_current:179 [ 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 [190] (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:4::play_spawn_current:13 [ current_piece_gfx#17 current_piece_char#13 play_spawn_current::$3 ] main:4::play_move_down:30::play_spawn_current:179 [ 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 [196] (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:4::play_spawn_current:13 [ play_spawn_current::piece_idx#1 ] main:4::play_move_down:30::play_spawn_current:179 [ keyboard_events_size#16 main::key_event#0 play_spawn_current::piece_idx#1 ] ) always clobbers reg byte a +Statement [211] (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:4::play_move_down:30::play_remove_lines:177 [ 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 [217] *((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:3::play_move_down:29::play_remove_lines:176 [ keyboard_events_size#16 main::key_event#0 play_remove_lines::w#6 ] ) always clobbers reg byte a +Statement [218] *((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:4::play_move_down:30::play_remove_lines:177 [ 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 [220] (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_color#16 play_lock_current::ypos2#0 ] ( main:3::play_move_down:29::play_lock_current:174 [ keyboard_events_size#16 main::key_event#0 current_piece_gfx#10 current_xpos#11 current_piece_color#16 play_lock_current::ypos2#0 ] ) always clobbers reg byte a -Statement [222] (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_color#16 play_lock_current::ypos2#2 play_lock_current::i#3 play_lock_current::l#6 play_lock_current::playfield_line#0 ] ( main:3::play_move_down:29::play_lock_current:174 [ keyboard_events_size#16 main::key_event#0 current_piece_gfx#10 current_xpos#11 current_piece_color#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 [221] (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:4::play_move_down:30::play_lock_current:175 [ 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 [223] (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:4::play_move_down:30::play_lock_current:175 [ 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 [226] 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_color#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:3::play_move_down:29::play_lock_current:174 [ keyboard_events_size#16 main::key_event#0 current_piece_gfx#10 current_xpos#11 current_piece_color#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 [227] 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:4::play_move_down:30::play_lock_current:175 [ 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:117 [ play_lock_current::i#1 ] -Statement [227] *((byte*) play_lock_current::playfield_line#0 + (byte) play_lock_current::col#2) ← (byte) current_piece_color#16 [ current_piece_gfx#10 current_xpos#11 current_piece_color#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:3::play_move_down:29::play_lock_current:174 [ keyboard_events_size#16 main::key_event#0 current_piece_gfx#10 current_xpos#11 current_piece_color#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 [238] (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:3::play_move_down:29::keyboard_event_pressed:154 [ 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_color#16 current_movedown_counter#1 play_move_down::movedown#10 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] main:3::keyboard_event_scan:23::keyboard_event_pressed:260 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_color#16 current_movedown_counter#12 keyboard_events_size#13 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] main:3::keyboard_event_scan:23::keyboard_event_pressed:266 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_color#16 current_movedown_counter#12 keyboard_events_size#13 keyboard_modifiers#11 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] main:3::keyboard_event_scan:23::keyboard_event_pressed:272 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_color#16 current_movedown_counter#12 keyboard_events_size#13 keyboard_modifiers#12 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] main:3::keyboard_event_scan:23::keyboard_event_pressed:278 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_color#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:122 [ play_lock_current::i#1 ] +Statement [228] *((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:4::play_move_down:30::play_lock_current:175 [ 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 [239] (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:4::play_move_down:30::keyboard_event_pressed:155 [ 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:4::keyboard_event_scan:24::keyboard_event_pressed:261 [ 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:4::keyboard_event_scan:24::keyboard_event_pressed:267 [ 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:4::keyboard_event_scan:24::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_modifiers#12 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] main:4::keyboard_event_scan:24::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#13 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:33 [ play_move_down::movedown#6 play_move_down::movedown#3 play_move_down::movedown#7 play_move_down::movedown#2 play_move_down::movedown#10 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE: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 [240] (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:3::play_move_down:29::keyboard_event_pressed:154 [ 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_color#16 current_movedown_counter#1 play_move_down::movedown#10 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:3::keyboard_event_scan:23::keyboard_event_pressed:260 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_color#16 current_movedown_counter#12 keyboard_events_size#13 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:3::keyboard_event_scan:23::keyboard_event_pressed:266 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_color#16 current_movedown_counter#12 keyboard_events_size#13 keyboard_modifiers#11 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:3::keyboard_event_scan:23::keyboard_event_pressed:272 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_color#16 current_movedown_counter#12 keyboard_events_size#13 keyboard_modifiers#12 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:3::keyboard_event_scan:23::keyboard_event_pressed:278 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_color#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:119 [ keyboard_event_pressed::row_bits#0 ] -Statement [241] (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:3::play_move_down:29::keyboard_event_pressed:154 [ 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_color#16 current_movedown_counter#1 play_move_down::movedown#10 keyboard_event_pressed::return#11 ] main:3::keyboard_event_scan:23::keyboard_event_pressed:260 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_color#16 current_movedown_counter#12 keyboard_events_size#13 keyboard_event_pressed::return#11 ] main:3::keyboard_event_scan:23::keyboard_event_pressed:266 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_color#16 current_movedown_counter#12 keyboard_events_size#13 keyboard_modifiers#11 keyboard_event_pressed::return#11 ] main:3::keyboard_event_scan:23::keyboard_event_pressed:272 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_color#16 current_movedown_counter#12 keyboard_events_size#13 keyboard_modifiers#12 keyboard_event_pressed::return#11 ] main:3::keyboard_event_scan:23::keyboard_event_pressed:278 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_color#16 current_movedown_counter#12 keyboard_events_size#13 keyboard_modifiers#13 keyboard_event_pressed::return#11 ] ) always clobbers reg byte a -Statement [255] (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:3::keyboard_event_scan:23 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_color#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 [241] (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:4::play_move_down:30::keyboard_event_pressed:155 [ 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:4::keyboard_event_scan:24::keyboard_event_pressed:261 [ 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:4::keyboard_event_scan:24::keyboard_event_pressed:267 [ 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:4::keyboard_event_scan:24::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_modifiers#12 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:4::keyboard_event_scan:24::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#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:124 [ keyboard_event_pressed::row_bits#0 ] +Statement [242] (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:4::play_move_down:30::keyboard_event_pressed:155 [ 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:4::keyboard_event_scan:24::keyboard_event_pressed:261 [ 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:4::keyboard_event_scan:24::keyboard_event_pressed:267 [ 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:4::keyboard_event_scan:24::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_modifiers#12 keyboard_event_pressed::return#11 ] main:4::keyboard_event_scan:24::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#13 keyboard_event_pressed::return#11 ] ) always clobbers reg byte a +Statement [256] (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:4::keyboard_event_scan:24 [ 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 [270] (byte) keyboard_modifiers#3 ← (byte) keyboard_modifiers#11 | (const byte) KEY_MODIFIER_RSHIFT#0 [ keyboard_events_size#13 keyboard_modifiers#3 ] ( main:3::keyboard_event_scan:23 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_color#16 current_movedown_counter#12 keyboard_events_size#13 keyboard_modifiers#3 ] ) always clobbers reg byte a -Statement [276] (byte) keyboard_modifiers#4 ← (byte) keyboard_modifiers#12 | (const byte) KEY_MODIFIER_CTRL#0 [ keyboard_events_size#13 keyboard_modifiers#4 ] ( main:3::keyboard_event_scan:23 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_color#16 current_movedown_counter#12 keyboard_events_size#13 keyboard_modifiers#4 ] ) always clobbers reg byte a -Statement [282] (byte) keyboard_modifiers#5 ← (byte) keyboard_modifiers#13 | (const byte) KEY_MODIFIER_COMMODORE#0 [ keyboard_events_size#13 ] ( main:3::keyboard_event_scan:23 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_color#16 current_movedown_counter#12 keyboard_events_size#13 ] ) always clobbers reg byte a -Statement [285] (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:3::keyboard_event_scan:23 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_color#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:124 [ keyboard_event_scan::row_scan#0 ] +Statement [271] (byte) keyboard_modifiers#3 ← (byte) keyboard_modifiers#11 | (const byte) KEY_MODIFIER_RSHIFT#0 [ keyboard_events_size#13 keyboard_modifiers#3 ] ( main:4::keyboard_event_scan:24 [ 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 [277] (byte) keyboard_modifiers#4 ← (byte) keyboard_modifiers#12 | (const byte) KEY_MODIFIER_CTRL#0 [ keyboard_events_size#13 keyboard_modifiers#4 ] ( main:4::keyboard_event_scan:24 [ 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 [283] (byte) keyboard_modifiers#5 ← (byte) keyboard_modifiers#13 | (const byte) KEY_MODIFIER_COMMODORE#0 [ keyboard_events_size#13 ] ( main:4::keyboard_event_scan:24 [ 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 [286] (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:4::keyboard_event_scan:24 [ 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:129 [ 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 [286] (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:3::keyboard_event_scan:23 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_color#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 [289] (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:3::keyboard_event_scan:23 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_color#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 [291] *((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:3::keyboard_event_scan:23 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_color#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 [297] *((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:3::keyboard_event_scan:23 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_color#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 [298] (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:3::keyboard_event_scan:23 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_color#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 [301] *((const byte*) CIA1_PORT_A#0) ← *((const byte[8]) keyboard_matrix_row_bitmask#0 + (byte) keyboard_matrix_read::rowid#0) [ ] ( main:3::keyboard_event_scan:23::keyboard_matrix_read:251 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_color#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 [302] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) [ keyboard_matrix_read::return#0 ] ( main:3::keyboard_event_scan:23::keyboard_matrix_read:251 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_color#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 [306] (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:3::play_init:10 [ play_init::j#2 play_init::pli#2 play_init::idx#2 play_init::$1 ] ) always clobbers reg byte a +Statement [287] (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:4::keyboard_event_scan:24 [ 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 [290] (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:4::keyboard_event_scan:24 [ 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 [292] *((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:4::keyboard_event_scan:24 [ 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 [298] *((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:4::keyboard_event_scan:24 [ 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 [299] (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:4::keyboard_event_scan:24 [ 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 [302] *((const byte*) CIA1_PORT_A#0) ← *((const byte[8]) keyboard_matrix_row_bitmask#0 + (byte) keyboard_matrix_read::rowid#0) [ ] ( main:4::keyboard_event_scan:24::keyboard_matrix_read:252 [ 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 [303] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) [ keyboard_matrix_read::return#0 ] ( main:4::keyboard_event_scan:24::keyboard_matrix_read:252 [ 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 [307] (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:4::play_init:11 [ 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 [307] *((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:3::play_init:10 [ play_init::j#2 play_init::pli#2 play_init::idx#2 ] ) always clobbers reg byte a -Statement [308] *((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:3::play_init:10 [ play_init::j#2 play_init::pli#2 play_init::idx#2 ] ) always clobbers reg byte a -Statement [309] (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:3::play_init:10 [ play_init::j#2 play_init::idx#2 play_init::pli#1 ] ) always clobbers reg byte a -Statement [310] (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:3::play_init:10 [ play_init::j#2 play_init::pli#1 play_init::idx#1 ] ) always clobbers reg byte a -Statement [313] *((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:3::play_init:10 [ ] ) always clobbers reg byte a -Statement [315] *((const byte*) BGCOL#0) ← (const byte) BLACK#0 [ ] ( main:3::render_init:8 [ ] ) always clobbers reg byte a -Statement [320] (byte~) render_init::$5 ← (byte) render_init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ render_init::i#2 render_init::li#2 render_init::$5 ] ( main:3::render_init:8 [ render_init::i#2 render_init::li#2 render_init::$5 ] ) always clobbers reg byte a +Statement [308] *((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:4::play_init:11 [ play_init::j#2 play_init::pli#2 play_init::idx#2 ] ) always clobbers reg byte a +Statement [309] *((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:4::play_init:11 [ play_init::j#2 play_init::pli#2 play_init::idx#2 ] ) always clobbers reg byte a +Statement [310] (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:4::play_init:11 [ play_init::j#2 play_init::idx#2 play_init::pli#1 ] ) always clobbers reg byte a +Statement [311] (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:4::play_init:11 [ play_init::j#2 play_init::pli#1 play_init::idx#1 ] ) always clobbers reg byte a +Statement [314] *((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:4::play_init:11 [ ] ) always clobbers reg byte a +Statement [317] *((const byte*) CIA2_PORT_A_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3 [ ] ( main:4::render_init:9 [ ] ) always clobbers reg byte a +Statement [319] *((const byte*) CIA2_PORT_A#0) ← (const byte) render_init::vicSelectGfxBank1_toDd001_return#0 [ ] ( main:4::render_init:9 [ ] ) always clobbers reg byte a +Statement [321] *((const byte*) D018#0) ← (const byte) render_init::toD0181_return#0 [ ] ( main:4::render_init:9 [ ] ) always clobbers reg byte a +Statement [322] *((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:4::render_init:9 [ ] ) always clobbers reg byte a +Statement [323] *((const byte*) BGCOL1#0) ← (const byte) BLACK#0 [ ] ( main:4::render_init:9 [ ] ) always clobbers reg byte a +Statement [324] *((const byte*) BGCOL2#0) ← (const byte) BLUE#0 [ ] ( main:4::render_init:9 [ ] ) always clobbers reg byte a +Statement [325] *((const byte*) BGCOL3#0) ← (const byte) CYAN#0 [ ] ( main:4::render_init:9 [ ] ) always clobbers reg byte a +Statement [326] *((const byte*) BGCOL4#0) ← (const byte) GREY#0 [ ] ( main:4::render_init:9 [ ] ) always clobbers reg byte a +Statement [331] (byte~) render_init::$10 ← (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::$10 ] ( main:4::render_init:9 [ render_init::i#2 render_init::li#2 render_init::$10 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:64 [ render_init::i#2 render_init::i#1 ] -Statement [321] *((const byte*[PLAYFIELD_LINES#0+3]) screen_lines#0 + (byte~) render_init::$5) ← (byte*) render_init::li#2 [ render_init::i#2 render_init::li#2 ] ( main:3::render_init:8 [ render_init::i#2 render_init::li#2 ] ) always clobbers reg byte a -Statement [322] (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:3::render_init:8 [ render_init::i#2 render_init::li#1 ] ) always clobbers reg byte a -Statement [327] (byte*~) render_init::$10 ← (byte*) render_init::line#4 + (byte) render_init::c#2 [ render_init::line#4 render_init::l#4 render_init::c#2 render_init::$10 ] ( main:3::render_init:8 [ render_init::line#4 render_init::l#4 render_init::c#2 render_init::$10 ] ) always clobbers reg byte a +Statement [332] *((const byte*[PLAYFIELD_LINES#0+3]) screen_lines#0 + (byte~) render_init::$10) ← (byte*) render_init::li#2 [ render_init::i#2 render_init::li#2 ] ( main:4::render_init:9 [ render_init::i#2 render_init::li#2 ] ) always clobbers reg byte a +Statement [333] (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:4::render_init:9 [ render_init::i#2 render_init::li#1 ] ) always clobbers reg byte a +Statement [338] (byte*~) render_init::$15 ← (byte*) render_init::line#4 + (byte) render_init::c#2 [ render_init::line#4 render_init::l#4 render_init::c#2 render_init::$15 ] ( main:4::render_init:9 [ render_init::line#4 render_init::l#4 render_init::c#2 render_init::$15 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:69 [ render_init::l#4 render_init::l#1 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:70 [ render_init::c#2 render_init::c#1 ] -Statement [328] *((byte*~) render_init::$10) ← (const byte) DARK_GREY#0 [ render_init::line#4 render_init::l#4 render_init::c#2 ] ( main:3::render_init:8 [ render_init::line#4 render_init::l#4 render_init::c#2 ] ) always clobbers reg byte a reg byte y +Statement [339] *((byte*~) render_init::$15) ← (const byte) WHITE#0 [ render_init::line#4 render_init::l#4 render_init::c#2 ] ( main:4::render_init:9 [ 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:69 [ render_init::l#4 render_init::l#1 ] Removing always clobbered register reg byte y as potential for zp ZP_BYTE:70 [ render_init::c#2 render_init::c#1 ] -Statement [331] (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:3::render_init:8 [ render_init::l#4 render_init::line#1 ] ) always clobbers reg byte a -Statement [336] (byte*) fill::end#0 ← (byte*) fill::addr#0 + (word/signed word/dword/signed dword) 1000 [ fill::addr#0 fill::val#3 fill::end#0 ] ( main:3::render_init:8::fill:316 [ fill::addr#0 fill::val#3 fill::end#0 ] main:3::render_init:8::fill:318 [ fill::addr#0 fill::val#3 fill::end#0 ] ) always clobbers reg byte a -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:71 [ fill::val#3 ] -Statement [338] *((byte*) fill::addr#2) ← (byte) fill::val#3 [ fill::val#3 fill::end#0 fill::addr#2 ] ( main:3::render_init:8::fill:316 [ fill::val#3 fill::end#0 fill::addr#2 ] main:3::render_init:8::fill:318 [ fill::val#3 fill::end#0 fill::addr#2 ] ) always clobbers reg byte a reg byte y -Removing always clobbered register reg byte y as potential for zp ZP_BYTE:71 [ fill::val#3 ] -Statement [340] if((byte*) fill::addr#1!=(byte*) fill::end#0) goto fill::@1 [ fill::val#3 fill::end#0 fill::addr#1 ] ( main:3::render_init:8::fill:316 [ fill::val#3 fill::end#0 fill::addr#1 ] main:3::render_init:8::fill:318 [ fill::val#3 fill::end#0 fill::addr#1 ] ) always clobbers reg byte a -Statement [342] *((const word*) SID_VOICE3_FREQ#0) ← (word/dword/signed dword) 65535 [ ] ( main:3::sid_rnd_init:6 [ ] ) always clobbers reg byte a -Statement [343] *((const byte*) SID_VOICE3_CONTROL#0) ← (const byte) SID_CONTROL_NOISE#0 [ ] ( main:3::sid_rnd_init:6 [ ] ) always clobbers reg byte a -Statement [15] (byte*~) current_piece_gfx#87 ← (byte*) current_piece_gfx#17 [ current_piece_gfx#87 current_piece_gfx#17 current_piece_color#13 play_spawn_current::$3 ] ( main:3 [ current_piece_gfx#87 current_piece_gfx#17 current_piece_color#13 play_spawn_current::$3 ] ) always clobbers reg byte a -Statement [18] (byte*~) current_piece#70 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) [ current_piece_gfx#17 current_piece_color#13 current_piece#70 ] ( main:3 [ current_piece_gfx#17 current_piece_color#13 current_piece#70 ] ) always clobbers reg byte a -Statement [20] 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_color#16 keyboard_events_size#19 current_movedown_counter#12 ] ( main:3 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_color#16 keyboard_events_size#19 current_movedown_counter#12 ] ) always clobbers reg byte a -Statement [21] 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_color#16 keyboard_events_size#19 current_movedown_counter#12 ] ( main:3 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_color#16 keyboard_events_size#19 current_movedown_counter#12 ] ) always clobbers reg byte a -Statement [32] (byte) main::render#1 ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte~) main::$10 [ current_piece#10 current_ypos#14 current_piece_color#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:3 [ current_piece#10 current_ypos#14 current_piece_color#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 [37] (byte) main::render#2 ← (byte) main::render#1 + (byte~) main::$11 [ current_piece#10 current_xpos#20 current_ypos#14 current_piece_color#11 keyboard_events_size#16 current_movedown_counter#10 main::key_event#0 main::render#2 current_orientation#14 current_piece_gfx#14 ] ( main:3 [ current_piece#10 current_xpos#20 current_ypos#14 current_piece_color#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 [42] (byte) main::render#3 ← (byte) main::render#2 + (byte~) main::$12 [ current_piece#10 current_orientation#19 current_piece_gfx#15 current_xpos#20 current_ypos#14 current_piece_color#11 keyboard_events_size#16 current_movedown_counter#10 main::render#3 ] ( main:3 [ current_piece#10 current_orientation#19 current_piece_gfx#15 current_xpos#20 current_ypos#14 current_piece_color#11 keyboard_events_size#16 current_movedown_counter#10 main::render#3 ] ) always clobbers reg byte a -Statement [48] (byte*~) current_piece_gfx#88 ← (byte*) current_piece_gfx#15 [ current_piece#10 current_orientation#19 current_piece_gfx#15 current_xpos#20 current_ypos#14 current_piece_color#11 keyboard_events_size#16 current_movedown_counter#10 current_ypos#71 current_xpos#96 current_piece_gfx#88 ] ( main:3 [ current_piece#10 current_orientation#19 current_piece_gfx#15 current_xpos#20 current_ypos#14 current_piece_color#11 keyboard_events_size#16 current_movedown_counter#10 current_ypos#71 current_xpos#96 current_piece_gfx#88 ] ) always clobbers reg byte a -Statement [53] (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_color#62 render_current::ypos2#0 ] ( main:3::render_current:17 [ current_piece_gfx#17 current_piece_color#13 play_spawn_current::$3 current_xpos#48 current_piece_gfx#53 current_piece_color#62 render_current::ypos2#0 ] main:3::render_current:50 [ current_piece#10 current_orientation#19 current_piece_gfx#15 current_xpos#20 current_ypos#14 current_piece_color#11 keyboard_events_size#16 current_movedown_counter#10 current_xpos#48 current_piece_gfx#53 current_piece_color#62 render_current::ypos2#0 ] ) always clobbers reg byte a -Statement [56] (byte*) render_current::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0+3]) screen_lines#0 + (byte) render_current::ypos2#2) [ current_xpos#48 current_piece_gfx#53 current_piece_color#62 render_current::ypos2#2 render_current::l#3 render_current::i#4 render_current::screen_line#0 ] ( main:3::render_current:17 [ current_piece_gfx#17 current_piece_color#13 play_spawn_current::$3 current_xpos#48 current_piece_gfx#53 current_piece_color#62 render_current::ypos2#2 render_current::l#3 render_current::i#4 render_current::screen_line#0 ] main:3::render_current:50 [ current_piece#10 current_orientation#19 current_piece_gfx#15 current_xpos#20 current_ypos#14 current_piece_color#11 keyboard_events_size#16 current_movedown_counter#10 current_xpos#48 current_piece_gfx#53 current_piece_color#62 render_current::ypos2#2 render_current::l#3 render_current::i#4 render_current::screen_line#0 ] ) always clobbers reg byte a -Statement [59] (byte) render_current::current_cell#0 ← *((byte*) current_piece_gfx#53 + (byte) render_current::i#2) [ current_xpos#48 current_piece_gfx#53 current_piece_color#62 render_current::ypos2#2 render_current::l#3 render_current::screen_line#0 render_current::i#2 render_current::xpos#2 render_current::c#2 render_current::current_cell#0 ] ( main:3::render_current:17 [ current_piece_gfx#17 current_piece_color#13 play_spawn_current::$3 current_xpos#48 current_piece_gfx#53 current_piece_color#62 render_current::ypos2#2 render_current::l#3 render_current::screen_line#0 render_current::i#2 render_current::xpos#2 render_current::c#2 render_current::current_cell#0 ] main:3::render_current:50 [ current_piece#10 current_orientation#19 current_piece_gfx#15 current_xpos#20 current_ypos#14 current_piece_color#11 keyboard_events_size#16 current_movedown_counter#10 current_xpos#48 current_piece_gfx#53 current_piece_color#62 render_current::ypos2#2 render_current::l#3 render_current::screen_line#0 render_current::i#2 render_current::xpos#2 render_current::c#2 render_current::current_cell#0 ] ) always clobbers reg byte a -Statement [63] *((byte*) render_current::screen_line#0 + (byte) render_current::xpos#2) ← (byte) current_piece_color#62 [ current_xpos#48 current_piece_gfx#53 current_piece_color#62 render_current::ypos2#2 render_current::l#3 render_current::screen_line#0 render_current::xpos#2 render_current::c#2 render_current::i#1 ] ( main:3::render_current:17 [ current_piece_gfx#17 current_piece_color#13 play_spawn_current::$3 current_xpos#48 current_piece_gfx#53 current_piece_color#62 render_current::ypos2#2 render_current::l#3 render_current::screen_line#0 render_current::xpos#2 render_current::c#2 render_current::i#1 ] main:3::render_current:50 [ current_piece#10 current_orientation#19 current_piece_gfx#15 current_xpos#20 current_ypos#14 current_piece_color#11 keyboard_events_size#16 current_movedown_counter#10 current_xpos#48 current_piece_gfx#53 current_piece_color#62 render_current::ypos2#2 render_current::l#3 render_current::screen_line#0 render_current::xpos#2 render_current::c#2 render_current::i#1 ] ) always clobbers reg byte a -Statement [74] (byte~) render_playfield::$1 ← (byte) render_playfield::l#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ render_playfield::l#2 render_playfield::i#3 render_playfield::$1 ] ( main:3::render_playfield:14 [ current_piece_gfx#17 current_piece_color#13 play_spawn_current::$3 render_playfield::l#2 render_playfield::i#3 render_playfield::$1 ] main:3::render_playfield:45 [ current_piece#10 current_orientation#19 current_piece_gfx#15 current_xpos#20 current_ypos#14 current_piece_color#11 keyboard_events_size#16 current_movedown_counter#10 render_playfield::l#2 render_playfield::i#3 render_playfield::$1 ] ) always clobbers reg byte a -Statement [75] (byte*) render_playfield::line#0 ← *((const byte*[PLAYFIELD_LINES#0+3]) screen_lines#0 + (byte~) render_playfield::$1) [ render_playfield::l#2 render_playfield::i#3 render_playfield::line#0 ] ( main:3::render_playfield:14 [ current_piece_gfx#17 current_piece_color#13 play_spawn_current::$3 render_playfield::l#2 render_playfield::i#3 render_playfield::line#0 ] main:3::render_playfield:45 [ current_piece#10 current_orientation#19 current_piece_gfx#15 current_xpos#20 current_ypos#14 current_piece_color#11 keyboard_events_size#16 current_movedown_counter#10 render_playfield::l#2 render_playfield::i#3 render_playfield::line#0 ] ) always clobbers reg byte a -Statement [77] *((byte*) render_playfield::line#2) ← *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) render_playfield::i#2) [ render_playfield::l#2 render_playfield::i#2 render_playfield::line#2 render_playfield::c#2 ] ( main:3::render_playfield:14 [ current_piece_gfx#17 current_piece_color#13 play_spawn_current::$3 render_playfield::l#2 render_playfield::i#2 render_playfield::line#2 render_playfield::c#2 ] main:3::render_playfield:45 [ current_piece#10 current_orientation#19 current_piece_gfx#15 current_xpos#20 current_ypos#14 current_piece_color#11 keyboard_events_size#16 current_movedown_counter#10 render_playfield::l#2 render_playfield::i#2 render_playfield::line#2 render_playfield::c#2 ] ) always clobbers reg byte a reg byte y -Statement [89] (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:3::play_move_rotate:39 [ current_piece_color#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 [90] (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:3::play_move_rotate:39 [ current_piece_color#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 [95] (byte*~) current_piece#74 ← (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#74 ] ( main:3::play_move_rotate:39 [ current_piece_color#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#74 ] ) always clobbers reg byte a -Statement [101] (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:3::play_move_rotate:39 [ current_piece_color#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 [102] (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:3::play_move_rotate:39 [ current_piece_color#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 [103] (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:3::play_move_rotate:39 [ current_piece_color#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 [105] (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:3::play_move_rotate:39::play_collision:96 [ current_piece_color#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:3::play_move_leftright:34::play_collision:134 [ current_piece_color#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:3::play_move_leftright:34::play_collision:145 [ current_piece_color#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:3::play_move_down:29::play_collision: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_color#16 play_collision::ypos#4 play_collision::xpos#5 play_collision::piece_gfx#0 ] ) always clobbers reg byte a -Statement [106] (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:3::play_move_rotate:39::play_collision:96 [ current_piece_color#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:3::play_move_leftright:34::play_collision:134 [ current_piece_color#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:3::play_move_leftright:34::play_collision:145 [ current_piece_color#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:3::play_move_down:29::play_collision: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_color#16 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#0 ] ) always clobbers reg byte a -Statement [108] (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:3::play_move_rotate:39::play_collision:96 [ current_piece_color#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:3::play_move_leftright:34::play_collision:134 [ current_piece_color#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:3::play_move_leftright:34::play_collision:145 [ current_piece_color#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:3::play_move_down:29::play_collision: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_color#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 [112] 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:3::play_move_rotate:39::play_collision:96 [ current_piece_color#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:3::play_move_leftright:34::play_collision:134 [ current_piece_color#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:3::play_move_leftright:34::play_collision:145 [ current_piece_color#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:3::play_move_down:29::play_collision: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_color#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 [116] (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:3::play_move_rotate:39::play_collision:96 [ current_piece_color#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:3::play_move_leftright:34::play_collision:134 [ current_piece_color#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:3::play_move_leftright:34::play_collision:145 [ current_piece_color#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:3::play_move_down:29::play_collision: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_color#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 [119] 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:3::play_move_rotate:39::play_collision:96 [ current_piece_color#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:3::play_move_leftright:34::play_collision:134 [ current_piece_color#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:3::play_move_leftright:34::play_collision:145 [ current_piece_color#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:3::play_move_down:29::play_collision: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_color#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 [133] (byte*~) current_piece#73 ← (byte*) current_piece#10 [ current_piece#10 current_ypos#14 current_orientation#14 current_piece#73 play_collision::orientation#2 play_collision::ypos#2 play_collision::xpos#2 current_xpos#16 ] ( main:3::play_move_leftright:34 [ current_piece_color#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#73 play_collision::orientation#2 play_collision::ypos#2 play_collision::xpos#2 current_xpos#16 ] ) always clobbers reg byte a -Statement [144] (byte*~) current_piece#72 ← (byte*) current_piece#10 [ current_piece#10 current_ypos#14 current_orientation#14 current_piece#72 play_collision::orientation#1 play_collision::ypos#1 play_collision::xpos#1 current_xpos#16 ] ( main:3::play_move_leftright:34 [ current_piece_color#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#72 play_collision::orientation#1 play_collision::ypos#1 play_collision::xpos#1 current_xpos#16 ] ) always clobbers reg byte a -Statement [168] (byte*~) current_piece#71 ← (byte*) current_piece#16 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_color#16 current_piece#71 play_collision::orientation#0 play_collision::ypos#0 play_collision::xpos#0 ] ( main:3::play_move_down:29 [ 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_color#16 current_piece#71 play_collision::orientation#0 play_collision::ypos#0 play_collision::xpos#0 ] ) always clobbers reg byte a -Statement [179] (byte*~) current_piece#75 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) [ current_piece_gfx#17 current_piece_color#13 current_piece#75 ] ( main:3::play_move_down:29 [ keyboard_events_size#16 main::key_event#0 current_piece_gfx#17 current_piece_color#13 current_piece#75 ] ) always clobbers reg byte a -Statement [187] (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:3::play_spawn_current:12 [ play_spawn_current::$3 play_spawn_current::piece_idx#2 ] main:3::play_move_down:29::play_spawn_current:178 [ keyboard_events_size#16 main::key_event#0 play_spawn_current::$3 play_spawn_current::piece_idx#2 ] ) always clobbers reg byte a -Statement [188] (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:3::play_spawn_current:12 [ current_piece_gfx#17 play_spawn_current::$3 play_spawn_current::piece_idx#2 ] main:3::play_move_down:29::play_spawn_current:178 [ 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 [189] (byte) current_piece_color#13 ← *((const byte[]) PIECES_COLORS#0 + (byte) play_spawn_current::piece_idx#2) [ current_piece_gfx#17 current_piece_color#13 play_spawn_current::$3 ] ( main:3::play_spawn_current:12 [ current_piece_gfx#17 current_piece_color#13 play_spawn_current::$3 ] main:3::play_move_down:29::play_spawn_current:178 [ keyboard_events_size#16 main::key_event#0 current_piece_gfx#17 current_piece_color#13 play_spawn_current::$3 ] ) always clobbers reg byte a -Statement [195] (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:3::play_spawn_current:12 [ play_spawn_current::piece_idx#1 ] main:3::play_move_down:29::play_spawn_current:178 [ keyboard_events_size#16 main::key_event#0 play_spawn_current::piece_idx#1 ] ) always clobbers reg byte a -Statement [210] (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:3::play_move_down:29::play_remove_lines:176 [ 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 [217] *((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:3::play_move_down:29::play_remove_lines:176 [ keyboard_events_size#16 main::key_event#0 play_remove_lines::w#6 ] ) always clobbers reg byte a -Statement [220] (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_color#16 play_lock_current::ypos2#0 ] ( main:3::play_move_down:29::play_lock_current:174 [ keyboard_events_size#16 main::key_event#0 current_piece_gfx#10 current_xpos#11 current_piece_color#16 play_lock_current::ypos2#0 ] ) always clobbers reg byte a -Statement [222] (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_color#16 play_lock_current::ypos2#2 play_lock_current::i#3 play_lock_current::l#6 play_lock_current::playfield_line#0 ] ( main:3::play_move_down:29::play_lock_current:174 [ keyboard_events_size#16 main::key_event#0 current_piece_gfx#10 current_xpos#11 current_piece_color#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 [226] 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_color#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:3::play_move_down:29::play_lock_current:174 [ keyboard_events_size#16 main::key_event#0 current_piece_gfx#10 current_xpos#11 current_piece_color#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 [227] *((byte*) play_lock_current::playfield_line#0 + (byte) play_lock_current::col#2) ← (byte) current_piece_color#16 [ current_piece_gfx#10 current_xpos#11 current_piece_color#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:3::play_move_down:29::play_lock_current:174 [ keyboard_events_size#16 main::key_event#0 current_piece_gfx#10 current_xpos#11 current_piece_color#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 [238] (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:3::play_move_down:29::keyboard_event_pressed:154 [ 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_color#16 current_movedown_counter#1 play_move_down::movedown#10 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] main:3::keyboard_event_scan:23::keyboard_event_pressed:260 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_color#16 current_movedown_counter#12 keyboard_events_size#13 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] main:3::keyboard_event_scan:23::keyboard_event_pressed:266 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_color#16 current_movedown_counter#12 keyboard_events_size#13 keyboard_modifiers#11 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] main:3::keyboard_event_scan:23::keyboard_event_pressed:272 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_color#16 current_movedown_counter#12 keyboard_events_size#13 keyboard_modifiers#12 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] main:3::keyboard_event_scan:23::keyboard_event_pressed:278 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_color#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 [240] (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:3::play_move_down:29::keyboard_event_pressed:154 [ 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_color#16 current_movedown_counter#1 play_move_down::movedown#10 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:3::keyboard_event_scan:23::keyboard_event_pressed:260 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_color#16 current_movedown_counter#12 keyboard_events_size#13 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:3::keyboard_event_scan:23::keyboard_event_pressed:266 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_color#16 current_movedown_counter#12 keyboard_events_size#13 keyboard_modifiers#11 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:3::keyboard_event_scan:23::keyboard_event_pressed:272 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_color#16 current_movedown_counter#12 keyboard_events_size#13 keyboard_modifiers#12 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:3::keyboard_event_scan:23::keyboard_event_pressed:278 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_color#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 [241] (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:3::play_move_down:29::keyboard_event_pressed:154 [ 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_color#16 current_movedown_counter#1 play_move_down::movedown#10 keyboard_event_pressed::return#11 ] main:3::keyboard_event_scan:23::keyboard_event_pressed:260 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_color#16 current_movedown_counter#12 keyboard_events_size#13 keyboard_event_pressed::return#11 ] main:3::keyboard_event_scan:23::keyboard_event_pressed:266 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_color#16 current_movedown_counter#12 keyboard_events_size#13 keyboard_modifiers#11 keyboard_event_pressed::return#11 ] main:3::keyboard_event_scan:23::keyboard_event_pressed:272 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_color#16 current_movedown_counter#12 keyboard_events_size#13 keyboard_modifiers#12 keyboard_event_pressed::return#11 ] main:3::keyboard_event_scan:23::keyboard_event_pressed:278 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_color#16 current_movedown_counter#12 keyboard_events_size#13 keyboard_modifiers#13 keyboard_event_pressed::return#11 ] ) always clobbers reg byte a -Statement [254] 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:3::keyboard_event_scan:23 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_color#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 [255] (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:3::keyboard_event_scan:23 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_color#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 [270] (byte) keyboard_modifiers#3 ← (byte) keyboard_modifiers#11 | (const byte) KEY_MODIFIER_RSHIFT#0 [ keyboard_events_size#13 keyboard_modifiers#3 ] ( main:3::keyboard_event_scan:23 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_color#16 current_movedown_counter#12 keyboard_events_size#13 keyboard_modifiers#3 ] ) always clobbers reg byte a -Statement [276] (byte) keyboard_modifiers#4 ← (byte) keyboard_modifiers#12 | (const byte) KEY_MODIFIER_CTRL#0 [ keyboard_events_size#13 keyboard_modifiers#4 ] ( main:3::keyboard_event_scan:23 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_color#16 current_movedown_counter#12 keyboard_events_size#13 keyboard_modifiers#4 ] ) always clobbers reg byte a -Statement [282] (byte) keyboard_modifiers#5 ← (byte) keyboard_modifiers#13 | (const byte) KEY_MODIFIER_COMMODORE#0 [ keyboard_events_size#13 ] ( main:3::keyboard_event_scan:23 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_color#16 current_movedown_counter#12 keyboard_events_size#13 ] ) always clobbers reg byte a -Statement [285] (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:3::keyboard_event_scan:23 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_color#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 [286] (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:3::keyboard_event_scan:23 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_color#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 [289] (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:3::keyboard_event_scan:23 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_color#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 [291] *((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:3::keyboard_event_scan:23 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_color#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 [297] *((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:3::keyboard_event_scan:23 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_color#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 [298] (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:3::keyboard_event_scan:23 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_color#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 [301] *((const byte*) CIA1_PORT_A#0) ← *((const byte[8]) keyboard_matrix_row_bitmask#0 + (byte) keyboard_matrix_read::rowid#0) [ ] ( main:3::keyboard_event_scan:23::keyboard_matrix_read:251 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_color#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 [302] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) [ keyboard_matrix_read::return#0 ] ( main:3::keyboard_event_scan:23::keyboard_matrix_read:251 [ current_piece#16 current_orientation#10 current_piece_gfx#10 current_xpos#11 current_ypos#22 current_piece_color#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 [306] (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:3::play_init:10 [ play_init::j#2 play_init::pli#2 play_init::idx#2 play_init::$1 ] ) always clobbers reg byte a -Statement [307] *((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:3::play_init:10 [ play_init::j#2 play_init::pli#2 play_init::idx#2 ] ) always clobbers reg byte a -Statement [308] *((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:3::play_init:10 [ play_init::j#2 play_init::pli#2 play_init::idx#2 ] ) always clobbers reg byte a -Statement [309] (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:3::play_init:10 [ play_init::j#2 play_init::idx#2 play_init::pli#1 ] ) always clobbers reg byte a -Statement [310] (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:3::play_init:10 [ play_init::j#2 play_init::pli#1 play_init::idx#1 ] ) always clobbers reg byte a -Statement [313] *((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:3::play_init:10 [ ] ) always clobbers reg byte a -Statement [315] *((const byte*) BGCOL#0) ← (const byte) BLACK#0 [ ] ( main:3::render_init:8 [ ] ) always clobbers reg byte a -Statement [320] (byte~) render_init::$5 ← (byte) render_init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ render_init::i#2 render_init::li#2 render_init::$5 ] ( main:3::render_init:8 [ render_init::i#2 render_init::li#2 render_init::$5 ] ) always clobbers reg byte a -Statement [321] *((const byte*[PLAYFIELD_LINES#0+3]) screen_lines#0 + (byte~) render_init::$5) ← (byte*) render_init::li#2 [ render_init::i#2 render_init::li#2 ] ( main:3::render_init:8 [ render_init::i#2 render_init::li#2 ] ) always clobbers reg byte a -Statement [322] (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:3::render_init:8 [ render_init::i#2 render_init::li#1 ] ) always clobbers reg byte a -Statement [327] (byte*~) render_init::$10 ← (byte*) render_init::line#4 + (byte) render_init::c#2 [ render_init::line#4 render_init::l#4 render_init::c#2 render_init::$10 ] ( main:3::render_init:8 [ render_init::line#4 render_init::l#4 render_init::c#2 render_init::$10 ] ) always clobbers reg byte a -Statement [328] *((byte*~) render_init::$10) ← (const byte) DARK_GREY#0 [ render_init::line#4 render_init::l#4 render_init::c#2 ] ( main:3::render_init:8 [ render_init::line#4 render_init::l#4 render_init::c#2 ] ) always clobbers reg byte a reg byte y -Statement [331] (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:3::render_init:8 [ render_init::l#4 render_init::line#1 ] ) always clobbers reg byte a -Statement [336] (byte*) fill::end#0 ← (byte*) fill::addr#0 + (word/signed word/dword/signed dword) 1000 [ fill::addr#0 fill::val#3 fill::end#0 ] ( main:3::render_init:8::fill:316 [ fill::addr#0 fill::val#3 fill::end#0 ] main:3::render_init:8::fill:318 [ fill::addr#0 fill::val#3 fill::end#0 ] ) always clobbers reg byte a -Statement [338] *((byte*) fill::addr#2) ← (byte) fill::val#3 [ fill::val#3 fill::end#0 fill::addr#2 ] ( main:3::render_init:8::fill:316 [ fill::val#3 fill::end#0 fill::addr#2 ] main:3::render_init:8::fill:318 [ fill::val#3 fill::end#0 fill::addr#2 ] ) always clobbers reg byte a reg byte y -Statement [340] if((byte*) fill::addr#1!=(byte*) fill::end#0) goto fill::@1 [ fill::val#3 fill::end#0 fill::addr#1 ] ( main:3::render_init:8::fill:316 [ fill::val#3 fill::end#0 fill::addr#1 ] main:3::render_init:8::fill:318 [ fill::val#3 fill::end#0 fill::addr#1 ] ) always clobbers reg byte a -Statement [342] *((const word*) SID_VOICE3_FREQ#0) ← (word/dword/signed dword) 65535 [ ] ( main:3::sid_rnd_init:6 [ ] ) always clobbers reg byte a -Statement [343] *((const byte*) SID_VOICE3_CONTROL#0) ← (const byte) SID_CONTROL_NOISE#0 [ ] ( main:3::sid_rnd_init:6 [ ] ) always clobbers reg byte a +Statement [342] (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:4::render_init:9 [ render_init::l#4 render_init::line#1 ] ) always clobbers reg byte a +Statement [349] *((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:4::render_init:9::render_screen_original:329 [ 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:71 [ render_screen_original::y#6 render_screen_original::y#1 ] +Removing always clobbered register reg byte y as potential for zp ZP_BYTE:71 [ render_screen_original::y#6 render_screen_original::y#1 ] +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:76 [ 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:76 [ 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 [354] (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:4::render_init:9::render_screen_original:329 [ 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 [355] *((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:4::render_init:9::render_screen_original:329 [ 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 [361] *((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:4::render_init:9::render_screen_original:329 [ 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 [370] *((byte*) fill::addr#2) ← (const byte) DARK_GREY#0 [ fill::addr#2 ] ( main:4::render_init:9::fill:327 [ fill::addr#2 ] ) always clobbers reg byte a reg byte y +Statement [372] if((byte*) fill::addr#1!=(const byte*) fill::end#0) goto fill::@1 [ fill::addr#1 ] ( main:4::render_init:9::fill:327 [ fill::addr#1 ] ) always clobbers reg byte a +Statement [374] *((const word*) SID_VOICE3_FREQ#0) ← (word/dword/signed dword) 65535 [ ] ( main:4::sid_rnd_init:7 [ ] ) always clobbers reg byte a +Statement [375] *((const byte*) SID_VOICE3_CONTROL#0) ← (const byte) SID_CONTROL_NOISE#0 [ ] ( main:4::sid_rnd_init:7 [ ] ) always clobbers reg byte a +Statement [16] (byte*~) current_piece_gfx#87 ← (byte*) current_piece_gfx#17 [ current_piece_gfx#87 current_piece_gfx#17 current_piece_char#13 play_spawn_current::$3 ] ( main:4 [ current_piece_gfx#87 current_piece_gfx#17 current_piece_char#13 play_spawn_current::$3 ] ) always clobbers reg byte a +Statement [19] (byte*~) current_piece#70 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) [ current_piece_gfx#17 current_piece_char#13 current_piece#70 ] ( main:4 [ current_piece_gfx#17 current_piece_char#13 current_piece#70 ] ) always clobbers reg byte a +Statement [21] 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: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 ] ) always clobbers reg byte a +Statement [22] 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: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 ] ) always clobbers reg byte a +Statement [33] (byte) main::render#1 ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte~) 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 ] ( main:4 [ 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 [38] (byte) main::render#2 ← (byte) main::render#1 + (byte~) main::$11 [ 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:4 [ 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 [43] (byte) main::render#3 ← (byte) main::render#2 + (byte~) main::$12 [ 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:4 [ 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 [49] (byte*~) current_piece_gfx#88 ← (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#71 current_xpos#96 current_piece_gfx#88 ] ( main:4 [ 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#71 current_xpos#96 current_piece_gfx#88 ] ) always clobbers reg byte a +Statement [54] (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#62 render_current::ypos2#0 ] ( main:4::render_current:18 [ current_piece_gfx#17 current_piece_char#13 play_spawn_current::$3 current_xpos#48 current_piece_gfx#53 current_piece_char#62 render_current::ypos2#0 ] main:4::render_current:51 [ 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#62 render_current::ypos2#0 ] ) always clobbers reg byte a +Statement [57] (byte*) render_current::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0+3]) screen_lines#0 + (byte) render_current::ypos2#2) [ current_xpos#48 current_piece_gfx#53 current_piece_char#62 render_current::ypos2#2 render_current::l#3 render_current::i#4 render_current::screen_line#0 ] ( main:4::render_current:18 [ current_piece_gfx#17 current_piece_char#13 play_spawn_current::$3 current_xpos#48 current_piece_gfx#53 current_piece_char#62 render_current::ypos2#2 render_current::l#3 render_current::i#4 render_current::screen_line#0 ] main:4::render_current:51 [ 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#62 render_current::ypos2#2 render_current::l#3 render_current::i#4 render_current::screen_line#0 ] ) always clobbers reg byte a +Statement [60] (byte) render_current::current_cell#0 ← *((byte*) current_piece_gfx#53 + (byte) render_current::i#2) [ current_xpos#48 current_piece_gfx#53 current_piece_char#62 render_current::ypos2#2 render_current::l#3 render_current::screen_line#0 render_current::i#2 render_current::xpos#2 render_current::c#2 render_current::current_cell#0 ] ( main:4::render_current:18 [ current_piece_gfx#17 current_piece_char#13 play_spawn_current::$3 current_xpos#48 current_piece_gfx#53 current_piece_char#62 render_current::ypos2#2 render_current::l#3 render_current::screen_line#0 render_current::i#2 render_current::xpos#2 render_current::c#2 render_current::current_cell#0 ] main:4::render_current:51 [ 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#62 render_current::ypos2#2 render_current::l#3 render_current::screen_line#0 render_current::i#2 render_current::xpos#2 render_current::c#2 render_current::current_cell#0 ] ) always clobbers reg byte a +Statement [64] *((byte*) render_current::screen_line#0 + (byte) render_current::xpos#2) ← (byte) current_piece_char#62 [ current_xpos#48 current_piece_gfx#53 current_piece_char#62 render_current::ypos2#2 render_current::l#3 render_current::screen_line#0 render_current::xpos#2 render_current::c#2 render_current::i#1 ] ( main:4::render_current:18 [ current_piece_gfx#17 current_piece_char#13 play_spawn_current::$3 current_xpos#48 current_piece_gfx#53 current_piece_char#62 render_current::ypos2#2 render_current::l#3 render_current::screen_line#0 render_current::xpos#2 render_current::c#2 render_current::i#1 ] main:4::render_current:51 [ 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#62 render_current::ypos2#2 render_current::l#3 render_current::screen_line#0 render_current::xpos#2 render_current::c#2 render_current::i#1 ] ) always clobbers reg byte a +Statement [75] (byte~) render_playfield::$1 ← (byte) render_playfield::l#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ render_playfield::l#2 render_playfield::i#3 render_playfield::$1 ] ( main:4::render_playfield:15 [ current_piece_gfx#17 current_piece_char#13 play_spawn_current::$3 render_playfield::l#2 render_playfield::i#3 render_playfield::$1 ] main:4::render_playfield:46 [ 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::$1 ] ) always clobbers reg byte a +Statement [76] (byte*) render_playfield::line#0 ← *((const byte*[PLAYFIELD_LINES#0+3]) screen_lines#0 + (byte~) render_playfield::$1) [ render_playfield::l#2 render_playfield::i#3 render_playfield::line#0 ] ( main:4::render_playfield:15 [ current_piece_gfx#17 current_piece_char#13 play_spawn_current::$3 render_playfield::l#2 render_playfield::i#3 render_playfield::line#0 ] main:4::render_playfield:46 [ 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::line#0 ] ) always clobbers reg byte a +Statement [78] *((byte*) render_playfield::line#2) ← *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) render_playfield::i#2) [ render_playfield::l#2 render_playfield::i#2 render_playfield::line#2 render_playfield::c#2 ] ( main:4::render_playfield:15 [ current_piece_gfx#17 current_piece_char#13 play_spawn_current::$3 render_playfield::l#2 render_playfield::i#2 render_playfield::line#2 render_playfield::c#2 ] main:4::render_playfield:46 [ 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::line#2 render_playfield::c#2 ] ) always clobbers reg byte a reg byte y +Statement [90] (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:4::play_move_rotate:40 [ 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 [91] (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:4::play_move_rotate:40 [ 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 [96] (byte*~) current_piece#74 ← (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#74 ] ( main:4::play_move_rotate:40 [ 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#74 ] ) always clobbers reg byte a +Statement [102] (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:4::play_move_rotate:40 [ 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 [103] (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:4::play_move_rotate:40 [ 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 [104] (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:4::play_move_rotate:40 [ 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 [106] (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:4::play_move_rotate:40::play_collision:97 [ 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:4::play_move_leftright:35::play_collision:135 [ 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:4::play_move_leftright:35::play_collision:146 [ 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:4::play_move_down:30::play_collision:170 [ 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 [107] (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:4::play_move_rotate:40::play_collision:97 [ 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:4::play_move_leftright:35::play_collision:135 [ 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:4::play_move_leftright:35::play_collision:146 [ 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:4::play_move_down:30::play_collision:170 [ 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 [109] (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:4::play_move_rotate:40::play_collision:97 [ 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:4::play_move_leftright:35::play_collision:135 [ 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:4::play_move_leftright:35::play_collision:146 [ 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:4::play_move_down:30::play_collision:170 [ 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 [113] 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:4::play_move_rotate:40::play_collision:97 [ 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:4::play_move_leftright:35::play_collision:135 [ 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:4::play_move_leftright:35::play_collision:146 [ 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:4::play_move_down:30::play_collision:170 [ 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 [117] (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:4::play_move_rotate:40::play_collision:97 [ 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:4::play_move_leftright:35::play_collision:135 [ 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:4::play_move_leftright:35::play_collision:146 [ 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:4::play_move_down:30::play_collision:170 [ 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 [120] 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:4::play_move_rotate:40::play_collision:97 [ 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:4::play_move_leftright:35::play_collision:135 [ 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:4::play_move_leftright:35::play_collision:146 [ 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:4::play_move_down:30::play_collision:170 [ 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 [134] (byte*~) current_piece#73 ← (byte*) current_piece#10 [ current_piece#10 current_ypos#14 current_orientation#14 current_piece#73 play_collision::orientation#2 play_collision::ypos#2 play_collision::xpos#2 current_xpos#16 ] ( main:4::play_move_leftright:35 [ 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#73 play_collision::orientation#2 play_collision::ypos#2 play_collision::xpos#2 current_xpos#16 ] ) always clobbers reg byte a +Statement [145] (byte*~) current_piece#72 ← (byte*) current_piece#10 [ current_piece#10 current_ypos#14 current_orientation#14 current_piece#72 play_collision::orientation#1 play_collision::ypos#1 play_collision::xpos#1 current_xpos#16 ] ( main:4::play_move_leftright:35 [ 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#72 play_collision::orientation#1 play_collision::ypos#1 play_collision::xpos#1 current_xpos#16 ] ) always clobbers reg byte a +Statement [169] (byte*~) current_piece#71 ← (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#71 play_collision::orientation#0 play_collision::ypos#0 play_collision::xpos#0 ] ( main:4::play_move_down:30 [ 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#71 play_collision::orientation#0 play_collision::ypos#0 play_collision::xpos#0 ] ) always clobbers reg byte a +Statement [180] (byte*~) current_piece#75 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) [ current_piece_gfx#17 current_piece_char#13 current_piece#75 ] ( main:4::play_move_down:30 [ keyboard_events_size#16 main::key_event#0 current_piece_gfx#17 current_piece_char#13 current_piece#75 ] ) always clobbers reg byte a +Statement [188] (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:4::play_spawn_current:13 [ play_spawn_current::$3 play_spawn_current::piece_idx#2 ] main:4::play_move_down:30::play_spawn_current:179 [ keyboard_events_size#16 main::key_event#0 play_spawn_current::$3 play_spawn_current::piece_idx#2 ] ) always clobbers reg byte a +Statement [189] (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:4::play_spawn_current:13 [ current_piece_gfx#17 play_spawn_current::$3 play_spawn_current::piece_idx#2 ] main:4::play_move_down:30::play_spawn_current:179 [ 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 [190] (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:4::play_spawn_current:13 [ current_piece_gfx#17 current_piece_char#13 play_spawn_current::$3 ] main:4::play_move_down:30::play_spawn_current:179 [ 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 [196] (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:4::play_spawn_current:13 [ play_spawn_current::piece_idx#1 ] main:4::play_move_down:30::play_spawn_current:179 [ keyboard_events_size#16 main::key_event#0 play_spawn_current::piece_idx#1 ] ) always clobbers reg byte a +Statement [211] (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:4::play_move_down:30::play_remove_lines:177 [ 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 [218] *((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:4::play_move_down:30::play_remove_lines:177 [ keyboard_events_size#16 main::key_event#0 play_remove_lines::w#6 ] ) always clobbers reg byte a +Statement [221] (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:4::play_move_down:30::play_lock_current:175 [ 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 [223] (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:4::play_move_down:30::play_lock_current:175 [ 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 [227] 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:4::play_move_down:30::play_lock_current:175 [ 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 [228] *((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:4::play_move_down:30::play_lock_current:175 [ 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 [239] (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:4::play_move_down:30::keyboard_event_pressed:155 [ 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:4::keyboard_event_scan:24::keyboard_event_pressed:261 [ 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:4::keyboard_event_scan:24::keyboard_event_pressed:267 [ 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:4::keyboard_event_scan:24::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_modifiers#12 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] main:4::keyboard_event_scan:24::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#13 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] ) always clobbers reg byte a +Statement [241] (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:4::play_move_down:30::keyboard_event_pressed:155 [ 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:4::keyboard_event_scan:24::keyboard_event_pressed:261 [ 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:4::keyboard_event_scan:24::keyboard_event_pressed:267 [ 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:4::keyboard_event_scan:24::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_modifiers#12 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:4::keyboard_event_scan:24::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#13 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] ) always clobbers reg byte a +Statement [242] (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:4::play_move_down:30::keyboard_event_pressed:155 [ 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:4::keyboard_event_scan:24::keyboard_event_pressed:261 [ 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:4::keyboard_event_scan:24::keyboard_event_pressed:267 [ 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:4::keyboard_event_scan:24::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_modifiers#12 keyboard_event_pressed::return#11 ] main:4::keyboard_event_scan:24::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#13 keyboard_event_pressed::return#11 ] ) always clobbers reg byte a +Statement [255] 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:4::keyboard_event_scan:24 [ 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 [256] (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:4::keyboard_event_scan:24 [ 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 [271] (byte) keyboard_modifiers#3 ← (byte) keyboard_modifiers#11 | (const byte) KEY_MODIFIER_RSHIFT#0 [ keyboard_events_size#13 keyboard_modifiers#3 ] ( main:4::keyboard_event_scan:24 [ 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 [277] (byte) keyboard_modifiers#4 ← (byte) keyboard_modifiers#12 | (const byte) KEY_MODIFIER_CTRL#0 [ keyboard_events_size#13 keyboard_modifiers#4 ] ( main:4::keyboard_event_scan:24 [ 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 [283] (byte) keyboard_modifiers#5 ← (byte) keyboard_modifiers#13 | (const byte) KEY_MODIFIER_COMMODORE#0 [ keyboard_events_size#13 ] ( main:4::keyboard_event_scan:24 [ 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 [286] (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:4::keyboard_event_scan:24 [ 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_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:4::keyboard_event_scan:24 [ 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 [290] (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:4::keyboard_event_scan:24 [ 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 [292] *((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:4::keyboard_event_scan:24 [ 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 [298] *((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:4::keyboard_event_scan:24 [ 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 [299] (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:4::keyboard_event_scan:24 [ 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 [302] *((const byte*) CIA1_PORT_A#0) ← *((const byte[8]) keyboard_matrix_row_bitmask#0 + (byte) keyboard_matrix_read::rowid#0) [ ] ( main:4::keyboard_event_scan:24::keyboard_matrix_read:252 [ 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 [303] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) [ keyboard_matrix_read::return#0 ] ( main:4::keyboard_event_scan:24::keyboard_matrix_read:252 [ 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 [307] (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:4::play_init:11 [ play_init::j#2 play_init::pli#2 play_init::idx#2 play_init::$1 ] ) always clobbers reg byte a +Statement [308] *((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:4::play_init:11 [ play_init::j#2 play_init::pli#2 play_init::idx#2 ] ) always clobbers reg byte a +Statement [309] *((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:4::play_init:11 [ play_init::j#2 play_init::pli#2 play_init::idx#2 ] ) always clobbers reg byte a +Statement [310] (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:4::play_init:11 [ play_init::j#2 play_init::idx#2 play_init::pli#1 ] ) always clobbers reg byte a +Statement [311] (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:4::play_init:11 [ play_init::j#2 play_init::pli#1 play_init::idx#1 ] ) always clobbers reg byte a +Statement [314] *((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:4::play_init:11 [ ] ) always clobbers reg byte a +Statement [317] *((const byte*) CIA2_PORT_A_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3 [ ] ( main:4::render_init:9 [ ] ) always clobbers reg byte a +Statement [319] *((const byte*) CIA2_PORT_A#0) ← (const byte) render_init::vicSelectGfxBank1_toDd001_return#0 [ ] ( main:4::render_init:9 [ ] ) always clobbers reg byte a +Statement [321] *((const byte*) D018#0) ← (const byte) render_init::toD0181_return#0 [ ] ( main:4::render_init:9 [ ] ) always clobbers reg byte a +Statement [322] *((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:4::render_init:9 [ ] ) always clobbers reg byte a +Statement [323] *((const byte*) BGCOL1#0) ← (const byte) BLACK#0 [ ] ( main:4::render_init:9 [ ] ) always clobbers reg byte a +Statement [324] *((const byte*) BGCOL2#0) ← (const byte) BLUE#0 [ ] ( main:4::render_init:9 [ ] ) always clobbers reg byte a +Statement [325] *((const byte*) BGCOL3#0) ← (const byte) CYAN#0 [ ] ( main:4::render_init:9 [ ] ) always clobbers reg byte a +Statement [326] *((const byte*) BGCOL4#0) ← (const byte) GREY#0 [ ] ( main:4::render_init:9 [ ] ) always clobbers reg byte a +Statement [331] (byte~) render_init::$10 ← (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::$10 ] ( main:4::render_init:9 [ render_init::i#2 render_init::li#2 render_init::$10 ] ) always clobbers reg byte a +Statement [332] *((const byte*[PLAYFIELD_LINES#0+3]) screen_lines#0 + (byte~) render_init::$10) ← (byte*) render_init::li#2 [ render_init::i#2 render_init::li#2 ] ( main:4::render_init:9 [ render_init::i#2 render_init::li#2 ] ) always clobbers reg byte a +Statement [333] (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:4::render_init:9 [ render_init::i#2 render_init::li#1 ] ) always clobbers reg byte a +Statement [338] (byte*~) render_init::$15 ← (byte*) render_init::line#4 + (byte) render_init::c#2 [ render_init::line#4 render_init::l#4 render_init::c#2 render_init::$15 ] ( main:4::render_init:9 [ render_init::line#4 render_init::l#4 render_init::c#2 render_init::$15 ] ) always clobbers reg byte a +Statement [339] *((byte*~) render_init::$15) ← (const byte) WHITE#0 [ render_init::line#4 render_init::l#4 render_init::c#2 ] ( main:4::render_init:9 [ render_init::line#4 render_init::l#4 render_init::c#2 ] ) always clobbers reg byte a reg byte y +Statement [342] (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:4::render_init:9 [ render_init::l#4 render_init::line#1 ] ) always clobbers reg byte a +Statement [349] *((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:4::render_init:9::render_screen_original:329 [ 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 [354] (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:4::render_init:9::render_screen_original:329 [ 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 [355] *((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:4::render_init:9::render_screen_original:329 [ 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 [361] *((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:4::render_init:9::render_screen_original:329 [ 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 [370] *((byte*) fill::addr#2) ← (const byte) DARK_GREY#0 [ fill::addr#2 ] ( main:4::render_init:9::fill:327 [ fill::addr#2 ] ) always clobbers reg byte a reg byte y +Statement [372] if((byte*) fill::addr#1!=(const byte*) fill::end#0) goto fill::@1 [ fill::addr#1 ] ( main:4::render_init:9::fill:327 [ fill::addr#1 ] ) always clobbers reg byte a +Statement [374] *((const word*) SID_VOICE3_FREQ#0) ← (word/dword/signed dword) 65535 [ ] ( main:4::sid_rnd_init:7 [ ] ) always clobbers reg byte a +Statement [375] *((const byte*) SID_VOICE3_CONTROL#0) ← (const byte) SID_CONTROL_NOISE#0 [ ] ( main:4::sid_rnd_init:7 [ ] ) 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#71 ] : zp ZP_BYTE:4 , reg byte x , reg byte y , Potential registers zp ZP_BYTE:5 [ current_xpos#48 current_xpos#96 ] : zp ZP_BYTE:5 , reg byte x , reg byte y , Potential registers zp ZP_WORD:6 [ current_piece_gfx#53 current_piece_gfx#87 current_piece_gfx#88 ] : zp ZP_WORD:6 , -Potential registers zp ZP_BYTE:8 [ current_piece_color#62 current_piece_color#75 current_piece_color#76 ] : zp ZP_BYTE:8 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:8 [ current_piece_char#62 current_piece_char#75 current_piece_char#76 ] : zp ZP_BYTE:8 , reg byte x , reg byte y , Potential registers zp ZP_BYTE:9 [ render_current::ypos2#2 render_current::ypos2#0 render_current::ypos2#1 ] : zp ZP_BYTE:9 , reg byte x , reg byte y , Potential registers zp ZP_BYTE:10 [ render_current::l#3 render_current::l#1 ] : zp ZP_BYTE:10 , reg byte x , reg byte y , Potential registers zp ZP_BYTE:11 [ render_current::i#2 render_current::i#1 render_current::i#4 render_current::i#8 ] : zp ZP_BYTE:11 , reg byte x , reg byte y , @@ -9500,7 +10175,7 @@ Potential registers zp ZP_WORD:34 [ current_piece#20 current_piece#75 current_pi 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:40 [ current_piece_color#21 current_piece_color#16 current_piece_color#11 current_piece_color#13 ] : zp ZP_BYTE:40 , 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 , Potential registers zp ZP_BYTE:43 [ play_remove_lines::y#8 play_remove_lines::y#1 ] : zp ZP_BYTE:43 , reg byte x , reg byte y , @@ -9528,262 +10203,270 @@ Potential registers zp ZP_WORD:65 [ render_init::li#2 render_init::li#1 ] : zp Z Potential registers zp ZP_WORD:67 [ render_init::line#4 render_init::line#1 ] : zp ZP_WORD:67 , Potential registers zp ZP_BYTE:69 [ render_init::l#4 render_init::l#1 ] : zp ZP_BYTE:69 , reg byte x , Potential registers zp ZP_BYTE:70 [ render_init::c#2 render_init::c#1 ] : zp ZP_BYTE:70 , reg byte x , -Potential registers zp ZP_BYTE:71 [ fill::val#3 ] : zp ZP_BYTE:71 , reg byte x , -Potential registers zp ZP_WORD:72 [ fill::addr#2 fill::addr#0 fill::addr#1 ] : zp ZP_WORD:72 , -Potential registers zp ZP_BYTE:74 [ keyboard_event_get::return#3 ] : zp ZP_BYTE:74 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:75 [ main::key_event#0 ] : zp ZP_BYTE:75 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:76 [ play_move_down::key_event#0 ] : zp ZP_BYTE:76 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:77 [ play_move_down::return#3 ] : zp ZP_BYTE:77 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:78 [ main::$10 ] : zp ZP_BYTE:78 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:79 [ main::render#1 ] : zp ZP_BYTE:79 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:80 [ play_move_leftright::key_event#0 ] : zp ZP_BYTE:80 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:81 [ play_move_leftright::return#4 ] : zp ZP_BYTE:81 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:82 [ main::$11 ] : zp ZP_BYTE:82 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:83 [ main::render#2 ] : zp ZP_BYTE:83 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:84 [ play_move_rotate::key_event#0 ] : zp ZP_BYTE:84 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:85 [ play_move_rotate::return#4 ] : zp ZP_BYTE:85 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:86 [ main::$12 ] : zp ZP_BYTE:86 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:87 [ main::render#3 ] : zp ZP_BYTE:87 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_WORD:88 [ render_current::screen_line#0 ] : zp ZP_WORD:88 , -Potential registers zp ZP_BYTE:90 [ render_current::current_cell#0 ] : zp ZP_BYTE:90 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:91 [ render_playfield::$1 ] : zp ZP_BYTE:91 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:92 [ play_move_rotate::$2 ] : zp ZP_BYTE:92 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:93 [ play_collision::return#13 ] : zp ZP_BYTE:93 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:94 [ play_move_rotate::$6 ] : zp ZP_BYTE:94 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:95 [ play_move_rotate::$4 ] : zp ZP_BYTE:95 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_WORD:96 [ play_collision::piece_gfx#0 ] : zp ZP_WORD:96 , -Potential registers zp ZP_WORD:98 [ play_collision::playfield_line#0 ] : zp ZP_WORD:98 , -Potential registers zp ZP_BYTE:100 [ play_collision::i#1 ] : zp ZP_BYTE:100 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:101 [ play_collision::$7 ] : zp ZP_BYTE:101 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:102 [ play_collision::return#12 ] : zp ZP_BYTE:102 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:103 [ play_move_leftright::$4 ] : zp ZP_BYTE:103 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:104 [ play_collision::return#1 ] : zp ZP_BYTE:104 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:105 [ play_move_leftright::$8 ] : zp ZP_BYTE:105 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:106 [ keyboard_event_pressed::return#12 ] : zp ZP_BYTE:106 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:107 [ play_move_down::$2 ] : zp ZP_BYTE:107 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:108 [ play_collision::return#0 ] : zp ZP_BYTE:108 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:109 [ play_move_down::$12 ] : zp ZP_BYTE:109 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:110 [ play_spawn_current::$3 ] : zp ZP_BYTE:110 , reg byte x , -Potential registers zp ZP_BYTE:111 [ sid_rnd::return#2 ] : zp ZP_BYTE:111 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:112 [ play_spawn_current::$1 ] : zp ZP_BYTE:112 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:113 [ sid_rnd::return#0 ] : zp ZP_BYTE:113 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:114 [ play_remove_lines::c#0 ] : zp ZP_BYTE:114 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_WORD:115 [ play_lock_current::playfield_line#0 ] : zp ZP_WORD:115 , -Potential registers zp ZP_BYTE:117 [ play_lock_current::i#1 ] : zp ZP_BYTE:117 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:118 [ keyboard_event_pressed::$0 ] : zp ZP_BYTE:118 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:119 [ keyboard_event_pressed::row_bits#0 ] : zp ZP_BYTE:119 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:120 [ keyboard_event_pressed::$1 ] : zp ZP_BYTE:120 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:121 [ keyboard_event_pressed::return#11 ] : zp ZP_BYTE:121 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:122 [ keyboard_matrix_read::rowid#0 ] : zp ZP_BYTE:122 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:123 [ keyboard_matrix_read::return#2 ] : zp ZP_BYTE:123 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:124 [ keyboard_event_scan::row_scan#0 ] : zp ZP_BYTE:124 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:125 [ keyboard_event_pressed::return#0 ] : zp ZP_BYTE:125 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:126 [ keyboard_event_scan::$14 ] : zp ZP_BYTE:126 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:127 [ keyboard_event_pressed::return#1 ] : zp ZP_BYTE:127 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:128 [ keyboard_event_scan::$18 ] : zp ZP_BYTE:128 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:129 [ keyboard_event_pressed::return#2 ] : zp ZP_BYTE:129 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:130 [ keyboard_event_scan::$22 ] : zp ZP_BYTE:130 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:131 [ keyboard_event_pressed::return#10 ] : zp ZP_BYTE:131 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:132 [ keyboard_event_scan::$26 ] : zp ZP_BYTE:132 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:133 [ keyboard_modifiers#5 ] : zp ZP_BYTE:133 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:134 [ keyboard_event_scan::$3 ] : zp ZP_BYTE:134 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:135 [ keyboard_event_scan::$4 ] : zp ZP_BYTE:135 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:136 [ keyboard_event_scan::event_type#0 ] : zp ZP_BYTE:136 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:137 [ keyboard_event_scan::$11 ] : zp ZP_BYTE:137 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:138 [ keyboard_matrix_read::return#0 ] : zp ZP_BYTE:138 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:139 [ play_init::$1 ] : zp ZP_BYTE:139 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:140 [ render_init::$5 ] : zp ZP_BYTE:140 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_WORD:141 [ render_init::$10 ] : zp ZP_WORD:141 , -Potential registers zp ZP_WORD:143 [ fill::end#0 ] : zp ZP_WORD:143 , +Potential registers zp ZP_BYTE:71 [ render_screen_original::y#6 render_screen_original::y#1 ] : zp ZP_BYTE:71 , reg byte x , +Potential registers zp ZP_WORD:72 [ render_screen_original::orig#2 render_screen_original::orig#4 render_screen_original::orig#1 ] : zp ZP_WORD:72 , +Potential registers zp ZP_WORD:74 [ 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 ] : zp ZP_WORD:74 , +Potential registers zp ZP_BYTE:76 [ render_screen_original::x#6 render_screen_original::x#5 render_screen_original::x#4 render_screen_original::x#1 render_screen_original::x#2 render_screen_original::x#3 ] : zp ZP_BYTE:76 , reg byte x , +Potential registers zp ZP_WORD:77 [ fill::addr#2 fill::addr#1 ] : zp ZP_WORD:77 , +Potential registers zp ZP_BYTE:79 [ keyboard_event_get::return#3 ] : zp ZP_BYTE:79 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:80 [ main::key_event#0 ] : zp ZP_BYTE:80 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:81 [ play_move_down::key_event#0 ] : zp ZP_BYTE:81 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:82 [ play_move_down::return#3 ] : zp ZP_BYTE:82 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:83 [ main::$10 ] : zp ZP_BYTE:83 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:84 [ main::render#1 ] : zp ZP_BYTE:84 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:85 [ play_move_leftright::key_event#0 ] : zp ZP_BYTE:85 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:86 [ play_move_leftright::return#4 ] : zp ZP_BYTE:86 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:87 [ main::$11 ] : zp ZP_BYTE:87 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:88 [ main::render#2 ] : zp ZP_BYTE:88 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:89 [ play_move_rotate::key_event#0 ] : zp ZP_BYTE:89 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:90 [ play_move_rotate::return#4 ] : zp ZP_BYTE:90 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:91 [ main::$12 ] : zp ZP_BYTE:91 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:92 [ main::render#3 ] : zp ZP_BYTE:92 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_WORD:93 [ render_current::screen_line#0 ] : zp ZP_WORD:93 , +Potential registers zp ZP_BYTE:95 [ render_current::current_cell#0 ] : zp ZP_BYTE:95 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:96 [ render_playfield::$1 ] : zp ZP_BYTE:96 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:97 [ play_move_rotate::$2 ] : zp ZP_BYTE:97 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:98 [ play_collision::return#13 ] : zp ZP_BYTE:98 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:99 [ play_move_rotate::$6 ] : zp ZP_BYTE:99 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:100 [ play_move_rotate::$4 ] : zp ZP_BYTE:100 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_WORD:101 [ play_collision::piece_gfx#0 ] : zp ZP_WORD:101 , +Potential registers zp ZP_WORD:103 [ play_collision::playfield_line#0 ] : zp ZP_WORD:103 , +Potential registers zp ZP_BYTE:105 [ play_collision::i#1 ] : zp ZP_BYTE:105 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:106 [ play_collision::$7 ] : zp ZP_BYTE:106 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:107 [ play_collision::return#12 ] : zp ZP_BYTE:107 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:108 [ play_move_leftright::$4 ] : zp ZP_BYTE:108 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:109 [ play_collision::return#1 ] : zp ZP_BYTE:109 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:110 [ play_move_leftright::$8 ] : zp ZP_BYTE:110 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:111 [ keyboard_event_pressed::return#12 ] : zp ZP_BYTE:111 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:112 [ play_move_down::$2 ] : zp ZP_BYTE:112 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:113 [ play_collision::return#0 ] : zp ZP_BYTE:113 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:114 [ play_move_down::$12 ] : zp ZP_BYTE:114 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:115 [ play_spawn_current::$3 ] : zp ZP_BYTE:115 , reg byte x , +Potential registers zp ZP_BYTE:116 [ sid_rnd::return#2 ] : zp ZP_BYTE:116 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:117 [ play_spawn_current::$1 ] : zp ZP_BYTE:117 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:118 [ sid_rnd::return#0 ] : zp ZP_BYTE:118 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:119 [ play_remove_lines::c#0 ] : zp ZP_BYTE:119 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_WORD:120 [ play_lock_current::playfield_line#0 ] : zp ZP_WORD:120 , +Potential registers zp ZP_BYTE:122 [ play_lock_current::i#1 ] : zp ZP_BYTE:122 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:123 [ keyboard_event_pressed::$0 ] : zp ZP_BYTE:123 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:124 [ keyboard_event_pressed::row_bits#0 ] : zp ZP_BYTE:124 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:125 [ keyboard_event_pressed::$1 ] : zp ZP_BYTE:125 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:126 [ keyboard_event_pressed::return#11 ] : zp ZP_BYTE:126 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:127 [ keyboard_matrix_read::rowid#0 ] : zp ZP_BYTE:127 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:128 [ keyboard_matrix_read::return#2 ] : zp ZP_BYTE:128 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:129 [ keyboard_event_scan::row_scan#0 ] : zp ZP_BYTE:129 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:130 [ keyboard_event_pressed::return#0 ] : zp ZP_BYTE:130 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:131 [ keyboard_event_scan::$14 ] : zp ZP_BYTE:131 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:132 [ keyboard_event_pressed::return#1 ] : zp ZP_BYTE:132 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:133 [ keyboard_event_scan::$18 ] : zp ZP_BYTE:133 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:134 [ keyboard_event_pressed::return#2 ] : zp ZP_BYTE:134 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:135 [ keyboard_event_scan::$22 ] : zp ZP_BYTE:135 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:136 [ keyboard_event_pressed::return#10 ] : zp ZP_BYTE:136 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:137 [ keyboard_event_scan::$26 ] : zp ZP_BYTE:137 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:138 [ keyboard_modifiers#5 ] : zp ZP_BYTE:138 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:139 [ keyboard_event_scan::$3 ] : zp ZP_BYTE:139 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:140 [ keyboard_event_scan::$4 ] : zp ZP_BYTE:140 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:141 [ keyboard_event_scan::event_type#0 ] : zp ZP_BYTE:141 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:142 [ keyboard_event_scan::$11 ] : zp ZP_BYTE:142 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:143 [ keyboard_matrix_read::return#0 ] : zp ZP_BYTE:143 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:144 [ play_init::$1 ] : zp ZP_BYTE:144 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:145 [ render_init::$10 ] : zp ZP_BYTE:145 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_WORD:146 [ render_init::$15 ] : zp ZP_WORD:146 , +Potential registers zp ZP_BYTE:148 [ render_screen_original::$3 ] : zp ZP_BYTE:148 , reg byte a , reg byte x , reg byte y , REGISTER UPLIFT SCOPES -Uplift Scope [keyboard_event_scan] 2,002: zp ZP_BYTE:134 [ keyboard_event_scan::$3 ] 2,002: zp ZP_BYTE:135 [ keyboard_event_scan::$4 ] 2,002: zp ZP_BYTE:136 [ keyboard_event_scan::event_type#0 ] 2,002: zp ZP_BYTE:137 [ 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:124 [ keyboard_event_scan::row_scan#0 ] 4: zp ZP_BYTE:126 [ keyboard_event_scan::$14 ] 4: zp ZP_BYTE:128 [ keyboard_event_scan::$18 ] 4: zp ZP_BYTE:130 [ keyboard_event_scan::$22 ] 4: zp ZP_BYTE:132 [ 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:101 [ 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:100 [ 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:98 [ play_collision::playfield_line#0 ] 47.76: zp ZP_WORD:96 [ 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:93 [ play_collision::return#13 ] 4: zp ZP_BYTE:102 [ play_collision::return#12 ] 4: zp ZP_BYTE:104 [ play_collision::return#1 ] 4: zp ZP_BYTE:108 [ play_collision::return#0 ] 1.33: zp ZP_BYTE:31 [ play_collision::return#14 ] -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:117 [ 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:115 [ 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:114 [ play_remove_lines::c#0 ] 165.93: zp ZP_BYTE:43 [ play_remove_lines::y#8 play_remove_lines::y#1 ] -Uplift Scope [render_current] 2,357.5: zp ZP_BYTE:11 [ render_current::i#2 render_current::i#1 render_current::i#4 render_current::i#8 ] 1,787.5: zp ZP_BYTE:13 [ render_current::c#2 render_current::c#1 ] 1,553.5: zp ZP_BYTE:12 [ render_current::xpos#2 render_current::xpos#1 render_current::xpos#0 ] 1,001: zp ZP_BYTE:90 [ render_current::current_cell#0 ] 164.97: zp ZP_BYTE:10 [ render_current::l#3 render_current::l#1 ] 100.33: zp ZP_BYTE:9 [ render_current::ypos2#2 render_current::ypos2#0 render_current::ypos2#1 ] 100.18: zp ZP_WORD:88 [ render_current::screen_line#0 ] -Uplift Scope [] 5,895.76: zp ZP_BYTE:59 [ keyboard_events_size#10 keyboard_events_size#29 keyboard_events_size#19 keyboard_events_size#16 keyboard_events_size#13 keyboard_events_size#4 keyboard_events_size#30 keyboard_events_size#2 keyboard_events_size#1 ] 79.37: zp ZP_BYTE:8 [ current_piece_color#62 current_piece_color#75 current_piece_color#76 ] 66.37: zp ZP_WORD:6 [ current_piece_gfx#53 current_piece_gfx#87 current_piece_gfx#88 ] 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_color#21 current_piece_color#16 current_piece_color#11 current_piece_color#13 ] 26: zp ZP_WORD:21 [ current_piece#12 current_piece#71 current_piece#72 current_piece#73 current_piece#74 ] 20: zp ZP_BYTE:133 [ keyboard_modifiers#5 ] 18.5: zp ZP_BYTE:4 [ current_ypos#10 current_ypos#71 ] 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#75 current_piece#16 current_piece#10 current_piece#70 ] 13.23: zp ZP_BYTE:5 [ current_xpos#48 current_xpos#96 ] 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 ] 2.35: zp ZP_BYTE:3 [ current_movedown_counter#12 current_movedown_counter#10 current_movedown_counter#1 ] -Uplift Scope [render_playfield] 2,254.5: zp ZP_WORD:16 [ render_playfield::line#2 render_playfield::line#0 render_playfield::line#1 ] 2,002: zp ZP_BYTE:18 [ render_playfield::c#2 render_playfield::c#1 ] 1,522.6: zp ZP_BYTE:15 [ render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 ] 202: zp ZP_BYTE:91 [ render_playfield::$1 ] 185.17: zp ZP_BYTE:14 [ render_playfield::l#2 render_playfield::l#1 ] -Uplift Scope [render_init] 252.5: zp ZP_BYTE:70 [ render_init::c#2 render_init::c#1 ] 202: zp ZP_WORD:141 [ render_init::$10 ] 27.83: zp ZP_WORD:67 [ render_init::line#4 render_init::line#1 ] 24.75: zp ZP_BYTE:64 [ render_init::i#2 render_init::i#1 ] 22: zp ZP_BYTE:140 [ render_init::$5 ] 19.64: zp ZP_BYTE:69 [ render_init::l#4 render_init::l#1 ] 18.33: zp ZP_WORD:65 [ 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:112 [ play_spawn_current::$1 ] 0.18: zp ZP_BYTE:110 [ play_spawn_current::$3 ] -Uplift Scope [keyboard_matrix_read] 202: zp ZP_BYTE:123 [ keyboard_matrix_read::return#2 ] 103: zp ZP_BYTE:122 [ keyboard_matrix_read::rowid#0 ] 34.33: zp ZP_BYTE:138 [ keyboard_matrix_read::return#0 ] -Uplift Scope [sid_rnd] 202: zp ZP_BYTE:111 [ sid_rnd::return#2 ] 34.33: zp ZP_BYTE:113 [ sid_rnd::return#0 ] -Uplift Scope [main] 22: zp ZP_BYTE:78 [ main::$10 ] 22: zp ZP_BYTE:82 [ main::$11 ] 22: zp ZP_BYTE:86 [ main::$12 ] 22: zp ZP_BYTE:87 [ main::render#3 ] 4.4: zp ZP_BYTE:79 [ main::render#1 ] 4.4: zp ZP_BYTE:83 [ main::render#2 ] 4: zp ZP_BYTE:75 [ 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:139 [ 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 [play_move_down] 22: zp ZP_BYTE:77 [ 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:76 [ play_move_down::key_event#0 ] 4: zp ZP_BYTE:107 [ play_move_down::$2 ] 4: zp ZP_BYTE:109 [ play_move_down::$12 ] 3.67: zp ZP_BYTE:41 [ play_move_down::return#2 ] -Uplift Scope [play_move_rotate] 22: zp ZP_BYTE:85 [ 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:84 [ play_move_rotate::key_event#0 ] 4: zp ZP_BYTE:92 [ play_move_rotate::$2 ] 4: zp ZP_BYTE:94 [ play_move_rotate::$6 ] 4: zp ZP_BYTE:95 [ play_move_rotate::$4 ] 3.67: zp ZP_BYTE:19 [ play_move_rotate::return#1 ] -Uplift Scope [play_move_leftright] 22: zp ZP_BYTE:81 [ play_move_leftright::return#4 ] 7.5: zp ZP_BYTE:80 [ play_move_leftright::key_event#0 ] 4: zp ZP_BYTE:103 [ play_move_leftright::$4 ] 4: zp ZP_BYTE:105 [ play_move_leftright::$8 ] 3.67: zp ZP_BYTE:32 [ play_move_leftright::return#1 ] -Uplift Scope [fill] 36: zp ZP_WORD:72 [ fill::addr#2 fill::addr#0 fill::addr#1 ] 2.6: zp ZP_WORD:143 [ fill::end#0 ] 1.83: zp ZP_BYTE:71 [ fill::val#3 ] -Uplift Scope [keyboard_event_pressed] 4: zp ZP_BYTE:106 [ keyboard_event_pressed::return#12 ] 4: zp ZP_BYTE:118 [ keyboard_event_pressed::$0 ] 4: zp ZP_BYTE:120 [ keyboard_event_pressed::$1 ] 4: zp ZP_BYTE:125 [ keyboard_event_pressed::return#0 ] 4: zp ZP_BYTE:127 [ keyboard_event_pressed::return#1 ] 4: zp ZP_BYTE:129 [ keyboard_event_pressed::return#2 ] 4: zp ZP_BYTE:131 [ keyboard_event_pressed::return#10 ] 2: zp ZP_BYTE:119 [ keyboard_event_pressed::row_bits#0 ] 1.71: zp ZP_BYTE:121 [ keyboard_event_pressed::return#11 ] 1.33: zp ZP_BYTE:53 [ keyboard_event_pressed::keycode#5 ] -Uplift Scope [keyboard_event_get] 22: zp ZP_BYTE:74 [ keyboard_event_get::return#3 ] 8.33: zp ZP_BYTE:54 [ keyboard_event_get::return#2 keyboard_event_get::return#1 ] +Uplift Scope [keyboard_event_scan] 2,002: zp ZP_BYTE:139 [ keyboard_event_scan::$3 ] 2,002: zp ZP_BYTE:140 [ keyboard_event_scan::$4 ] 2,002: zp ZP_BYTE:141 [ keyboard_event_scan::event_type#0 ] 2,002: zp ZP_BYTE:142 [ 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:129 [ keyboard_event_scan::row_scan#0 ] 4: zp ZP_BYTE:131 [ keyboard_event_scan::$14 ] 4: zp ZP_BYTE:133 [ keyboard_event_scan::$18 ] 4: zp ZP_BYTE:135 [ keyboard_event_scan::$22 ] 4: zp ZP_BYTE:137 [ 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:106 [ 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:105 [ 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:103 [ play_collision::playfield_line#0 ] 47.76: zp ZP_WORD:101 [ 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:98 [ play_collision::return#13 ] 4: zp ZP_BYTE:107 [ play_collision::return#12 ] 4: zp ZP_BYTE:109 [ play_collision::return#1 ] 4: zp ZP_BYTE:113 [ play_collision::return#0 ] 1.33: zp ZP_BYTE:31 [ play_collision::return#14 ] +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:122 [ 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:120 [ 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:119 [ play_remove_lines::c#0 ] 165.93: zp ZP_BYTE:43 [ play_remove_lines::y#8 play_remove_lines::y#1 ] +Uplift Scope [render_current] 2,357.5: zp ZP_BYTE:11 [ render_current::i#2 render_current::i#1 render_current::i#4 render_current::i#8 ] 1,787.5: zp ZP_BYTE:13 [ render_current::c#2 render_current::c#1 ] 1,553.5: zp ZP_BYTE:12 [ render_current::xpos#2 render_current::xpos#1 render_current::xpos#0 ] 1,001: zp ZP_BYTE:95 [ render_current::current_cell#0 ] 164.97: zp ZP_BYTE:10 [ render_current::l#3 render_current::l#1 ] 100.33: zp ZP_BYTE:9 [ render_current::ypos2#2 render_current::ypos2#0 render_current::ypos2#1 ] 100.18: zp ZP_WORD:93 [ render_current::screen_line#0 ] +Uplift Scope [] 5,895.76: zp ZP_BYTE:59 [ keyboard_events_size#10 keyboard_events_size#29 keyboard_events_size#19 keyboard_events_size#16 keyboard_events_size#13 keyboard_events_size#4 keyboard_events_size#30 keyboard_events_size#2 keyboard_events_size#1 ] 79.37: zp ZP_BYTE:8 [ current_piece_char#62 current_piece_char#75 current_piece_char#76 ] 66.37: zp ZP_WORD:6 [ current_piece_gfx#53 current_piece_gfx#87 current_piece_gfx#88 ] 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#71 current_piece#72 current_piece#73 current_piece#74 ] 20: zp ZP_BYTE:138 [ keyboard_modifiers#5 ] 18.5: zp ZP_BYTE:4 [ current_ypos#10 current_ypos#71 ] 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#75 current_piece#16 current_piece#10 current_piece#70 ] 13.23: zp ZP_BYTE:5 [ current_xpos#48 current_xpos#96 ] 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 ] 2.35: zp ZP_BYTE:3 [ current_movedown_counter#12 current_movedown_counter#10 current_movedown_counter#1 ] +Uplift Scope [render_playfield] 2,254.5: zp ZP_WORD:16 [ render_playfield::line#2 render_playfield::line#0 render_playfield::line#1 ] 2,002: zp ZP_BYTE:18 [ render_playfield::c#2 render_playfield::c#1 ] 1,522.6: zp ZP_BYTE:15 [ render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 ] 202: zp ZP_BYTE:96 [ render_playfield::$1 ] 185.17: zp ZP_BYTE:14 [ render_playfield::l#2 render_playfield::l#1 ] +Uplift Scope [render_screen_original] 784.43: zp ZP_BYTE:76 [ 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:74 [ 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:148 [ render_screen_original::$3 ] 140.97: zp ZP_WORD:72 [ render_screen_original::orig#2 render_screen_original::orig#4 render_screen_original::orig#1 ] 17.72: zp ZP_BYTE:71 [ render_screen_original::y#6 render_screen_original::y#1 ] +Uplift Scope [render_init] 252.5: zp ZP_BYTE:70 [ render_init::c#2 render_init::c#1 ] 202: zp ZP_WORD:146 [ render_init::$15 ] 27.83: zp ZP_WORD:67 [ render_init::line#4 render_init::line#1 ] 24.75: zp ZP_BYTE:64 [ render_init::i#2 render_init::i#1 ] 22: zp ZP_BYTE:145 [ render_init::$10 ] 19.64: zp ZP_BYTE:69 [ render_init::l#4 render_init::l#1 ] 18.33: zp ZP_WORD:65 [ 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:117 [ play_spawn_current::$1 ] 0.18: zp ZP_BYTE:115 [ play_spawn_current::$3 ] +Uplift Scope [keyboard_matrix_read] 202: zp ZP_BYTE:128 [ keyboard_matrix_read::return#2 ] 103: zp ZP_BYTE:127 [ keyboard_matrix_read::rowid#0 ] 34.33: zp ZP_BYTE:143 [ keyboard_matrix_read::return#0 ] +Uplift Scope [sid_rnd] 202: zp ZP_BYTE:116 [ sid_rnd::return#2 ] 34.33: zp ZP_BYTE:118 [ sid_rnd::return#0 ] +Uplift Scope [main] 22: zp ZP_BYTE:83 [ main::$10 ] 22: zp ZP_BYTE:87 [ main::$11 ] 22: zp ZP_BYTE:91 [ main::$12 ] 22: zp ZP_BYTE:92 [ main::render#3 ] 4.4: zp ZP_BYTE:84 [ main::render#1 ] 4.4: zp ZP_BYTE:88 [ main::render#2 ] 4: zp ZP_BYTE:80 [ 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:144 [ 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 [play_move_down] 22: zp ZP_BYTE:82 [ 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:81 [ play_move_down::key_event#0 ] 4: zp ZP_BYTE:112 [ play_move_down::$2 ] 4: zp ZP_BYTE:114 [ play_move_down::$12 ] 3.67: zp ZP_BYTE:41 [ play_move_down::return#2 ] +Uplift Scope [play_move_rotate] 22: zp ZP_BYTE:90 [ 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:89 [ play_move_rotate::key_event#0 ] 4: zp ZP_BYTE:97 [ play_move_rotate::$2 ] 4: zp ZP_BYTE:99 [ play_move_rotate::$6 ] 4: zp ZP_BYTE:100 [ play_move_rotate::$4 ] 3.67: zp ZP_BYTE:19 [ play_move_rotate::return#1 ] +Uplift Scope [play_move_leftright] 22: zp ZP_BYTE:86 [ play_move_leftright::return#4 ] 7.5: zp ZP_BYTE:85 [ play_move_leftright::key_event#0 ] 4: zp ZP_BYTE:108 [ play_move_leftright::$4 ] 4: zp ZP_BYTE:110 [ play_move_leftright::$8 ] 3.67: zp ZP_BYTE:32 [ play_move_leftright::return#1 ] +Uplift Scope [keyboard_event_pressed] 4: zp ZP_BYTE:111 [ keyboard_event_pressed::return#12 ] 4: zp ZP_BYTE:123 [ keyboard_event_pressed::$0 ] 4: zp ZP_BYTE:125 [ keyboard_event_pressed::$1 ] 4: zp ZP_BYTE:130 [ keyboard_event_pressed::return#0 ] 4: zp ZP_BYTE:132 [ keyboard_event_pressed::return#1 ] 4: zp ZP_BYTE:134 [ keyboard_event_pressed::return#2 ] 4: zp ZP_BYTE:136 [ keyboard_event_pressed::return#10 ] 2: zp ZP_BYTE:124 [ keyboard_event_pressed::row_bits#0 ] 1.71: zp ZP_BYTE:126 [ keyboard_event_pressed::return#11 ] 1.33: zp ZP_BYTE:53 [ keyboard_event_pressed::keycode#5 ] +Uplift Scope [fill] 33: zp ZP_WORD:77 [ fill::addr#2 fill::addr#1 ] +Uplift Scope [keyboard_event_get] 22: zp ZP_BYTE:79 [ keyboard_event_get::return#3 ] 8.33: zp ZP_BYTE:54 [ keyboard_event_get::return#2 keyboard_event_get::return#1 ] Uplift Scope [sid_rnd_init] -Uplifting [keyboard_event_scan] best 598302 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:124 [ keyboard_event_scan::row_scan#0 ] zp ZP_BYTE:126 [ keyboard_event_scan::$14 ] zp ZP_BYTE:128 [ keyboard_event_scan::$18 ] zp ZP_BYTE:130 [ keyboard_event_scan::$22 ] zp ZP_BYTE:132 [ keyboard_event_scan::$26 ] +Uplifting [keyboard_event_scan] best 614519 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:129 [ keyboard_event_scan::row_scan#0 ] zp ZP_BYTE:131 [ keyboard_event_scan::$14 ] zp ZP_BYTE:133 [ keyboard_event_scan::$18 ] zp ZP_BYTE:135 [ keyboard_event_scan::$22 ] zp ZP_BYTE:137 [ keyboard_event_scan::$26 ] Limited combination testing to 100 combinations of 5308416 possible. -Uplifting [play_collision] best 583302 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:100 [ 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:98 [ play_collision::playfield_line#0 ] zp ZP_WORD:96 [ 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:93 [ play_collision::return#13 ] zp ZP_BYTE:102 [ play_collision::return#12 ] zp ZP_BYTE:104 [ play_collision::return#1 ] zp ZP_BYTE:108 [ play_collision::return#0 ] zp ZP_BYTE:31 [ play_collision::return#14 ] +Uplifting [play_collision] best 599519 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:105 [ 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:103 [ play_collision::playfield_line#0 ] zp ZP_WORD:101 [ 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:98 [ play_collision::return#13 ] zp ZP_BYTE:107 [ play_collision::return#12 ] zp ZP_BYTE:109 [ play_collision::return#1 ] zp ZP_BYTE:113 [ play_collision::return#0 ] zp ZP_BYTE:31 [ play_collision::return#14 ] Limited combination testing to 100 combinations of 80621568 possible. -Uplifting [play_lock_current] best 574302 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:117 [ play_lock_current::i#1 ] zp ZP_BYTE:49 [ play_lock_current::l#6 play_lock_current::l#1 ] zp ZP_WORD:115 [ 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 590519 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:122 [ play_lock_current::i#1 ] zp ZP_BYTE:49 [ play_lock_current::l#6 play_lock_current::l#1 ] zp ZP_WORD:120 [ 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 560602 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:114 [ play_remove_lines::c#0 ] zp ZP_BYTE:43 [ play_remove_lines::y#8 play_remove_lines::y#1 ] +Uplifting [play_remove_lines] best 576819 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:119 [ 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 [render_current] best 545602 combination zp ZP_BYTE:11 [ render_current::i#2 render_current::i#1 render_current::i#4 render_current::i#8 ] reg byte x [ render_current::c#2 render_current::c#1 ] zp ZP_BYTE:12 [ render_current::xpos#2 render_current::xpos#1 render_current::xpos#0 ] reg byte a [ render_current::current_cell#0 ] zp ZP_BYTE:10 [ render_current::l#3 render_current::l#1 ] zp ZP_BYTE:9 [ render_current::ypos2#2 render_current::ypos2#0 render_current::ypos2#1 ] zp ZP_WORD:88 [ render_current::screen_line#0 ] +Uplifting [render_current] best 561819 combination zp ZP_BYTE:11 [ render_current::i#2 render_current::i#1 render_current::i#4 render_current::i#8 ] reg byte x [ render_current::c#2 render_current::c#1 ] zp ZP_BYTE:12 [ render_current::xpos#2 render_current::xpos#1 render_current::xpos#0 ] reg byte a [ render_current::current_cell#0 ] zp ZP_BYTE:10 [ render_current::l#3 render_current::l#1 ] zp ZP_BYTE:9 [ render_current::ypos2#2 render_current::ypos2#0 render_current::ypos2#1 ] zp ZP_WORD:93 [ render_current::screen_line#0 ] Limited combination testing to 100 combinations of 972 possible. -Uplifting [] best 545565 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_color#62 current_piece_color#75 current_piece_color#76 ] zp ZP_WORD:6 [ current_piece_gfx#53 current_piece_gfx#87 current_piece_gfx#88 ] 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_color#21 current_piece_color#16 current_piece_color#11 current_piece_color#13 ] zp ZP_WORD:21 [ current_piece#12 current_piece#71 current_piece#72 current_piece#73 current_piece#74 ] reg byte a [ keyboard_modifiers#5 ] reg byte x [ current_ypos#10 current_ypos#71 ] 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#75 current_piece#16 current_piece#10 current_piece#70 ] zp ZP_BYTE:5 [ current_xpos#48 current_xpos#96 ] 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:3 [ current_movedown_counter#12 current_movedown_counter#10 current_movedown_counter#1 ] +Uplifting [] best 561782 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#62 current_piece_char#75 current_piece_char#76 ] zp ZP_WORD:6 [ current_piece_gfx#53 current_piece_gfx#87 current_piece_gfx#88 ] 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#71 current_piece#72 current_piece#73 current_piece#74 ] reg byte a [ keyboard_modifiers#5 ] reg byte x [ current_ypos#10 current_ypos#71 ] 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#75 current_piece#16 current_piece#10 current_piece#70 ] zp ZP_BYTE:5 [ current_xpos#48 current_xpos#96 ] 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:3 [ current_movedown_counter#12 current_movedown_counter#10 current_movedown_counter#1 ] Limited combination testing to 100 combinations of 20736 possible. -Uplifting [render_playfield] best 536165 combination zp ZP_WORD:16 [ render_playfield::line#2 render_playfield::line#0 render_playfield::line#1 ] reg byte x [ render_playfield::c#2 render_playfield::c#1 ] zp ZP_BYTE:15 [ render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 ] reg byte a [ render_playfield::$1 ] zp ZP_BYTE:14 [ render_playfield::l#2 render_playfield::l#1 ] -Uplifting [render_init] best 535025 combination reg byte x [ render_init::c#2 render_init::c#1 ] zp ZP_WORD:141 [ render_init::$10 ] zp ZP_WORD:67 [ render_init::line#4 render_init::line#1 ] reg byte x [ render_init::i#2 render_init::i#1 ] reg byte a [ render_init::$5 ] zp ZP_BYTE:69 [ render_init::l#4 render_init::l#1 ] zp ZP_WORD:65 [ render_init::li#2 render_init::li#1 ] -Uplifting [play_spawn_current] best 533721 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:110 [ play_spawn_current::$3 ] -Uplifting [keyboard_matrix_read] best 532515 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 531612 combination reg byte a [ sid_rnd::return#2 ] reg byte a [ sid_rnd::return#0 ] -Uplifting [main] best 531372 combination reg byte a [ main::$10 ] reg byte a [ main::$11 ] reg byte a [ main::$12 ] reg byte a [ main::render#3 ] zp ZP_BYTE:79 [ main::render#1 ] zp ZP_BYTE:83 [ main::render#2 ] zp ZP_BYTE:75 [ main::key_event#0 ] +Uplifting [render_playfield] best 552382 combination zp ZP_WORD:16 [ render_playfield::line#2 render_playfield::line#0 render_playfield::line#1 ] reg byte x [ render_playfield::c#2 render_playfield::c#1 ] zp ZP_BYTE:15 [ render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 ] reg byte a [ render_playfield::$1 ] zp ZP_BYTE:14 [ render_playfield::l#2 render_playfield::l#1 ] +Uplifting [render_screen_original] best 549682 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:74 [ 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:72 [ render_screen_original::orig#2 render_screen_original::orig#4 render_screen_original::orig#1 ] zp ZP_BYTE:71 [ render_screen_original::y#6 render_screen_original::y#1 ] +Uplifting [render_init] best 548542 combination reg byte x [ render_init::c#2 render_init::c#1 ] zp ZP_WORD:146 [ render_init::$15 ] zp ZP_WORD:67 [ render_init::line#4 render_init::line#1 ] reg byte x [ render_init::i#2 render_init::i#1 ] reg byte a [ render_init::$10 ] zp ZP_BYTE:69 [ render_init::l#4 render_init::l#1 ] zp ZP_WORD:65 [ render_init::li#2 render_init::li#1 ] +Uplifting [play_spawn_current] best 547238 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:115 [ play_spawn_current::$3 ] +Uplifting [keyboard_matrix_read] best 546032 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 545129 combination reg byte a [ sid_rnd::return#2 ] reg byte a [ sid_rnd::return#0 ] +Uplifting [main] best 544889 combination reg byte a [ main::$10 ] reg byte a [ main::$11 ] reg byte a [ main::$12 ] reg byte a [ main::render#3 ] zp ZP_BYTE:84 [ main::render#1 ] zp ZP_BYTE:88 [ main::render#2 ] zp ZP_BYTE:80 [ main::key_event#0 ] Limited combination testing to 100 combinations of 6912 possible. -Uplifting [play_init] best 531202 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 [play_move_down] best 531088 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:109 [ play_move_down::$12 ] zp ZP_BYTE:41 [ play_move_down::return#2 ] +Uplifting [play_init] best 544719 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 [play_move_down] best 544605 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:114 [ 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 530986 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:94 [ play_move_rotate::$6 ] zp ZP_BYTE:95 [ play_move_rotate::$4 ] zp ZP_BYTE:19 [ play_move_rotate::return#1 ] +Uplifting [play_move_rotate] best 544503 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:99 [ play_move_rotate::$6 ] zp ZP_BYTE:100 [ play_move_rotate::$4 ] zp ZP_BYTE:19 [ play_move_rotate::return#1 ] Limited combination testing to 100 combinations of 12288 possible. -Uplifting [play_move_leftright] best 530878 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 544395 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 ] Limited combination testing to 100 combinations of 1024 possible. -Uplifting [fill] best 530862 combination zp ZP_WORD:72 [ fill::addr#2 fill::addr#0 fill::addr#1 ] zp ZP_WORD:143 [ fill::end#0 ] reg byte x [ fill::val#3 ] -Uplifting [keyboard_event_pressed] best 530842 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:127 [ keyboard_event_pressed::return#1 ] zp ZP_BYTE:129 [ keyboard_event_pressed::return#2 ] zp ZP_BYTE:131 [ keyboard_event_pressed::return#10 ] zp ZP_BYTE:119 [ keyboard_event_pressed::row_bits#0 ] zp ZP_BYTE:121 [ keyboard_event_pressed::return#11 ] zp ZP_BYTE:53 [ keyboard_event_pressed::keycode#5 ] +Uplifting [keyboard_event_pressed] best 544375 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:132 [ keyboard_event_pressed::return#1 ] zp ZP_BYTE:134 [ keyboard_event_pressed::return#2 ] zp ZP_BYTE:136 [ keyboard_event_pressed::return#10 ] zp ZP_BYTE:124 [ keyboard_event_pressed::row_bits#0 ] zp ZP_BYTE:126 [ keyboard_event_pressed::return#11 ] zp ZP_BYTE:53 [ keyboard_event_pressed::keycode#5 ] Limited combination testing to 100 combinations of 589824 possible. -Uplifting [keyboard_event_get] best 530746 combination reg byte a [ keyboard_event_get::return#3 ] reg byte a [ keyboard_event_get::return#2 keyboard_event_get::return#1 ] -Uplifting [sid_rnd_init] best 530746 combination +Uplifting [fill] best 544375 combination zp ZP_WORD:77 [ fill::addr#2 fill::addr#1 ] +Uplifting [keyboard_event_get] best 544279 combination reg byte a [ keyboard_event_get::return#3 ] reg byte a [ keyboard_event_get::return#2 keyboard_event_get::return#1 ] +Uplifting [sid_rnd_init] best 544279 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 530746 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 ] +Uplifting [] best 544279 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 530746 combination zp ZP_BYTE:28 [ play_collision::i#2 play_collision::i#3 play_collision::i#11 play_collision::i#13 ] +Uplifting [play_collision] best 544279 combination zp ZP_BYTE:28 [ 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 530746 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 ] +Uplifting [play_lock_current] best 544279 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#2 render_current::i#1 render_current::i#4 render_current::i#8 ] -Uplifting [render_current] best 530746 combination zp ZP_BYTE:11 [ render_current::i#2 render_current::i#1 render_current::i#4 render_current::i#8 ] +Uplifting [render_current] best 544279 combination zp ZP_BYTE:11 [ render_current::i#2 render_current::i#1 render_current::i#4 render_current::i#8 ] Attempting to uplift remaining variables inzp ZP_BYTE:57 [ keyboard_event_scan::col#2 keyboard_event_scan::col#1 ] -Uplifting [keyboard_event_scan] best 515746 combination reg byte x [ keyboard_event_scan::col#2 keyboard_event_scan::col#1 ] +Uplifting [keyboard_event_scan] best 529279 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 515746 combination zp ZP_BYTE:45 [ play_remove_lines::x#2 play_remove_lines::x#1 ] +Uplifting [play_remove_lines] best 529279 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#1 render_current::xpos#0 ] -Uplifting [render_current] best 515746 combination zp ZP_BYTE:12 [ render_current::xpos#2 render_current::xpos#1 render_current::xpos#0 ] +Uplifting [render_current] best 529279 combination zp ZP_BYTE:12 [ render_current::xpos#2 render_current::xpos#1 render_current::xpos#0 ] Attempting to uplift remaining variables inzp ZP_BYTE:15 [ render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 ] -Uplifting [render_playfield] best 515746 combination zp ZP_BYTE:15 [ render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 ] +Uplifting [render_playfield] best 529279 combination zp ZP_BYTE:15 [ render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:51 [ play_lock_current::col#2 play_lock_current::col#0 play_lock_current::col#1 ] -Uplifting [play_lock_current] best 515746 combination zp ZP_BYTE:51 [ play_lock_current::col#2 play_lock_current::col#0 play_lock_current::col#1 ] +Uplifting [play_lock_current] best 529279 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 515746 combination zp ZP_BYTE:29 [ play_collision::col#2 play_collision::col#9 play_collision::col#1 ] +Uplifting [play_collision] best 529279 combination zp ZP_BYTE:29 [ 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 515746 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 529279 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 515746 combination zp ZP_BYTE:46 [ play_remove_lines::full#4 play_remove_lines::full#2 ] -Attempting to uplift remaining variables inzp ZP_BYTE:114 [ play_remove_lines::c#0 ] -Uplifting [play_remove_lines] best 515746 combination zp ZP_BYTE:114 [ play_remove_lines::c#0 ] -Attempting to uplift remaining variables inzp ZP_BYTE:117 [ play_lock_current::i#1 ] -Uplifting [play_lock_current] best 515746 combination zp ZP_BYTE:117 [ play_lock_current::i#1 ] +Uplifting [play_remove_lines] best 529279 combination zp ZP_BYTE:46 [ play_remove_lines::full#4 play_remove_lines::full#2 ] +Attempting to uplift remaining variables inzp ZP_BYTE:119 [ play_remove_lines::c#0 ] +Uplifting [play_remove_lines] best 529279 combination zp ZP_BYTE:119 [ play_remove_lines::c#0 ] +Attempting to uplift remaining variables inzp ZP_BYTE:122 [ play_lock_current::i#1 ] +Uplifting [play_lock_current] best 529279 combination zp ZP_BYTE:122 [ 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 515746 combination zp ZP_BYTE:55 [ keyboard_event_scan::row#2 keyboard_event_scan::row#1 ] +Uplifting [keyboard_event_scan] best 529279 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 515746 combination zp ZP_BYTE:14 [ render_playfield::l#2 render_playfield::l#1 ] +Uplifting [render_playfield] best 529279 combination zp ZP_BYTE:14 [ 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 515746 combination zp ZP_BYTE:43 [ play_remove_lines::y#8 play_remove_lines::y#1 ] +Uplifting [play_remove_lines] best 529279 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#3 render_current::l#1 ] -Uplifting [render_current] best 515746 combination zp ZP_BYTE:10 [ render_current::l#3 render_current::l#1 ] -Attempting to uplift remaining variables inzp ZP_BYTE:100 [ play_collision::i#1 ] -Uplifting [play_collision] best 515746 combination zp ZP_BYTE:100 [ play_collision::i#1 ] +Uplifting [render_current] best 529279 combination zp ZP_BYTE:10 [ render_current::l#3 render_current::l#1 ] +Attempting to uplift remaining variables inzp ZP_BYTE:105 [ play_collision::i#1 ] +Uplifting [play_collision] best 529279 combination zp ZP_BYTE:105 [ 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 515746 combination zp ZP_BYTE:26 [ play_collision::ypos2#2 play_collision::ypos2#0 play_collision::ypos2#1 ] -Attempting to uplift remaining variables inzp ZP_BYTE:124 [ keyboard_event_scan::row_scan#0 ] -Uplifting [keyboard_event_scan] best 515746 combination zp ZP_BYTE:124 [ keyboard_event_scan::row_scan#0 ] +Uplifting [play_collision] best 529279 combination zp ZP_BYTE:26 [ play_collision::ypos2#2 play_collision::ypos2#0 play_collision::ypos2#1 ] +Attempting to uplift remaining variables inzp ZP_BYTE:129 [ keyboard_event_scan::row_scan#0 ] +Uplifting [keyboard_event_scan] best 529279 combination zp ZP_BYTE:129 [ 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 515746 combination zp ZP_BYTE:49 [ play_lock_current::l#6 play_lock_current::l#1 ] +Uplifting [play_lock_current] best 529279 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 515746 combination zp ZP_BYTE:27 [ play_collision::l#6 play_collision::l#1 ] +Uplifting [play_collision] best 529279 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 515746 combination zp ZP_BYTE:9 [ render_current::ypos2#2 render_current::ypos2#0 render_current::ypos2#1 ] +Uplifting [render_current] best 529279 combination zp ZP_BYTE:9 [ render_current::ypos2#2 render_current::ypos2#0 render_current::ypos2#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:48 [ play_lock_current::ypos2#2 play_lock_current::ypos2#0 play_lock_current::ypos2#1 ] -Uplifting [play_lock_current] best 515746 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_color#62 current_piece_color#75 current_piece_color#76 ] -Uplifting [] best 515746 combination zp ZP_BYTE:8 [ current_piece_color#62 current_piece_color#75 current_piece_color#76 ] -Attempting to uplift remaining variables inzp ZP_BYTE:40 [ current_piece_color#21 current_piece_color#16 current_piece_color#11 current_piece_color#13 ] -Uplifting [] best 515746 combination zp ZP_BYTE:40 [ current_piece_color#21 current_piece_color#16 current_piece_color#11 current_piece_color#13 ] +Uplifting [play_lock_current] best 529279 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#62 current_piece_char#75 current_piece_char#76 ] +Uplifting [] best 529279 combination zp ZP_BYTE:8 [ current_piece_char#62 current_piece_char#75 current_piece_char#76 ] +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 529279 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:69 [ render_init::l#4 render_init::l#1 ] -Uplifting [render_init] best 515746 combination zp ZP_BYTE:69 [ render_init::l#4 render_init::l#1 ] +Uplifting [render_init] best 529279 combination zp ZP_BYTE:69 [ 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 515733 combination reg byte x [ play_collision::orientation#4 play_collision::orientation#0 play_collision::orientation#1 play_collision::orientation#2 play_collision::orientation#3 ] +Uplifting [play_collision] best 529266 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:71 [ render_screen_original::y#6 render_screen_original::y#1 ] +Uplifting [render_screen_original] best 529266 combination zp ZP_BYTE:71 [ 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 515733 combination zp ZP_BYTE:39 [ current_xpos#34 current_xpos#11 current_xpos#20 current_xpos#5 current_xpos#16 current_xpos#3 ] +Uplifting [] best 529266 combination zp ZP_BYTE:39 [ current_xpos#34 current_xpos#11 current_xpos#20 current_xpos#5 current_xpos#16 current_xpos#3 ] Attempting to uplift remaining variables inzp ZP_BYTE:63 [ play_init::idx#2 play_init::idx#1 ] -Uplifting [play_init] best 515733 combination zp ZP_BYTE:63 [ play_init::idx#2 play_init::idx#1 ] +Uplifting [play_init] best 529266 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#96 ] -Uplifting [] best 515733 combination zp ZP_BYTE:5 [ current_xpos#48 current_xpos#96 ] +Uplifting [] best 529266 combination zp ZP_BYTE:5 [ current_xpos#48 current_xpos#96 ] 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 515722 combination reg byte x [ keyboard_modifiers#13 keyboard_modifiers#4 keyboard_modifiers#12 keyboard_modifiers#3 keyboard_modifiers#11 ] +Uplifting [] best 529255 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 515709 combination reg byte y [ play_collision::ypos#4 play_collision::ypos#0 play_collision::ypos#1 play_collision::ypos#2 play_collision::ypos#3 ] +Uplifting [play_collision] best 529242 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 515709 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 ] +Uplifting [play_collision] best 529242 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 515709 combination zp ZP_BYTE:2 [ current_ypos#22 current_ypos#14 current_ypos#30 current_ypos#1 ] +Uplifting [] best 529242 combination zp ZP_BYTE:2 [ current_ypos#22 current_ypos#14 current_ypos#30 current_ypos#1 ] 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 515709 combination zp ZP_BYTE:36 [ current_orientation#29 current_orientation#10 current_orientation#19 current_orientation#4 current_orientation#14 ] +Uplifting [] best 529242 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 515709 combination zp ZP_BYTE:20 [ play_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#2 ] -Attempting to uplift remaining variables inzp ZP_BYTE:79 [ main::render#1 ] -Uplifting [main] best 515709 combination zp ZP_BYTE:79 [ main::render#1 ] -Attempting to uplift remaining variables inzp ZP_BYTE:83 [ main::render#2 ] -Uplifting [main] best 515709 combination zp ZP_BYTE:83 [ main::render#2 ] -Attempting to uplift remaining variables inzp ZP_BYTE:75 [ main::key_event#0 ] -Uplifting [main] best 515709 combination zp ZP_BYTE:75 [ main::key_event#0 ] -Attempting to uplift remaining variables inzp ZP_BYTE:93 [ play_collision::return#13 ] -Uplifting [play_collision] best 515703 combination reg byte a [ play_collision::return#13 ] -Attempting to uplift remaining variables inzp ZP_BYTE:94 [ play_move_rotate::$6 ] -Uplifting [play_move_rotate] best 515697 combination reg byte a [ play_move_rotate::$6 ] -Attempting to uplift remaining variables inzp ZP_BYTE:95 [ play_move_rotate::$4 ] -Uplifting [play_move_rotate] best 515691 combination reg byte a [ play_move_rotate::$4 ] -Attempting to uplift remaining variables inzp ZP_BYTE:102 [ play_collision::return#12 ] -Uplifting [play_collision] best 515685 combination reg byte a [ play_collision::return#12 ] -Attempting to uplift remaining variables inzp ZP_BYTE:104 [ play_collision::return#1 ] -Uplifting [play_collision] best 515679 combination reg byte a [ play_collision::return#1 ] -Attempting to uplift remaining variables inzp ZP_BYTE:108 [ play_collision::return#0 ] -Uplifting [play_collision] best 515673 combination reg byte a [ play_collision::return#0 ] -Attempting to uplift remaining variables inzp ZP_BYTE:109 [ play_move_down::$12 ] -Uplifting [play_move_down] best 515667 combination reg byte a [ play_move_down::$12 ] -Attempting to uplift remaining variables inzp ZP_BYTE:126 [ keyboard_event_scan::$14 ] -Uplifting [keyboard_event_scan] best 515661 combination reg byte a [ keyboard_event_scan::$14 ] -Attempting to uplift remaining variables inzp ZP_BYTE:127 [ keyboard_event_pressed::return#1 ] -Uplifting [keyboard_event_pressed] best 515655 combination reg byte a [ keyboard_event_pressed::return#1 ] -Attempting to uplift remaining variables inzp ZP_BYTE:128 [ keyboard_event_scan::$18 ] -Uplifting [keyboard_event_scan] best 515649 combination reg byte a [ keyboard_event_scan::$18 ] -Attempting to uplift remaining variables inzp ZP_BYTE:129 [ keyboard_event_pressed::return#2 ] -Uplifting [keyboard_event_pressed] best 515643 combination reg byte a [ keyboard_event_pressed::return#2 ] -Attempting to uplift remaining variables inzp ZP_BYTE:130 [ keyboard_event_scan::$22 ] -Uplifting [keyboard_event_scan] best 515637 combination reg byte a [ keyboard_event_scan::$22 ] -Attempting to uplift remaining variables inzp ZP_BYTE:131 [ keyboard_event_pressed::return#10 ] -Uplifting [keyboard_event_pressed] best 515631 combination reg byte a [ keyboard_event_pressed::return#10 ] -Attempting to uplift remaining variables inzp ZP_BYTE:132 [ keyboard_event_scan::$26 ] -Uplifting [keyboard_event_scan] best 515625 combination reg byte a [ keyboard_event_scan::$26 ] +Uplifting [play_move_rotate] best 529242 combination zp ZP_BYTE:20 [ play_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#2 ] +Attempting to uplift remaining variables inzp ZP_BYTE:84 [ main::render#1 ] +Uplifting [main] best 529242 combination zp ZP_BYTE:84 [ main::render#1 ] +Attempting to uplift remaining variables inzp ZP_BYTE:88 [ main::render#2 ] +Uplifting [main] best 529242 combination zp ZP_BYTE:88 [ main::render#2 ] +Attempting to uplift remaining variables inzp ZP_BYTE:80 [ main::key_event#0 ] +Uplifting [main] best 529242 combination zp ZP_BYTE:80 [ main::key_event#0 ] +Attempting to uplift remaining variables inzp ZP_BYTE:98 [ play_collision::return#13 ] +Uplifting [play_collision] best 529236 combination reg byte a [ play_collision::return#13 ] +Attempting to uplift remaining variables inzp ZP_BYTE:99 [ play_move_rotate::$6 ] +Uplifting [play_move_rotate] best 529230 combination reg byte a [ play_move_rotate::$6 ] +Attempting to uplift remaining variables inzp ZP_BYTE:100 [ play_move_rotate::$4 ] +Uplifting [play_move_rotate] best 529224 combination reg byte a [ play_move_rotate::$4 ] +Attempting to uplift remaining variables inzp ZP_BYTE:107 [ play_collision::return#12 ] +Uplifting [play_collision] best 529218 combination reg byte a [ play_collision::return#12 ] +Attempting to uplift remaining variables inzp ZP_BYTE:109 [ play_collision::return#1 ] +Uplifting [play_collision] best 529212 combination reg byte a [ play_collision::return#1 ] +Attempting to uplift remaining variables inzp ZP_BYTE:113 [ play_collision::return#0 ] +Uplifting [play_collision] best 529206 combination reg byte a [ play_collision::return#0 ] +Attempting to uplift remaining variables inzp ZP_BYTE:114 [ play_move_down::$12 ] +Uplifting [play_move_down] best 529200 combination reg byte a [ play_move_down::$12 ] +Attempting to uplift remaining variables inzp ZP_BYTE:131 [ keyboard_event_scan::$14 ] +Uplifting [keyboard_event_scan] best 529194 combination reg byte a [ keyboard_event_scan::$14 ] +Attempting to uplift remaining variables inzp ZP_BYTE:132 [ keyboard_event_pressed::return#1 ] +Uplifting [keyboard_event_pressed] best 529188 combination reg byte a [ keyboard_event_pressed::return#1 ] +Attempting to uplift remaining variables inzp ZP_BYTE:133 [ keyboard_event_scan::$18 ] +Uplifting [keyboard_event_scan] best 529182 combination reg byte a [ keyboard_event_scan::$18 ] +Attempting to uplift remaining variables inzp ZP_BYTE:134 [ keyboard_event_pressed::return#2 ] +Uplifting [keyboard_event_pressed] best 529176 combination reg byte a [ keyboard_event_pressed::return#2 ] +Attempting to uplift remaining variables inzp ZP_BYTE:135 [ keyboard_event_scan::$22 ] +Uplifting [keyboard_event_scan] best 529170 combination reg byte a [ keyboard_event_scan::$22 ] +Attempting to uplift remaining variables inzp ZP_BYTE:136 [ keyboard_event_pressed::return#10 ] +Uplifting [keyboard_event_pressed] best 529164 combination reg byte a [ keyboard_event_pressed::return#10 ] +Attempting to uplift remaining variables inzp ZP_BYTE:137 [ keyboard_event_scan::$26 ] +Uplifting [keyboard_event_scan] best 529158 combination reg byte a [ keyboard_event_scan::$26 ] Attempting to uplift remaining variables inzp ZP_BYTE:19 [ play_move_rotate::return#1 ] -Uplifting [play_move_rotate] best 515589 combination reg byte a [ play_move_rotate::return#1 ] +Uplifting [play_move_rotate] best 529122 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 515553 combination reg byte a [ play_move_leftright::return#1 ] +Uplifting [play_move_leftright] best 529086 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 515537 combination reg byte x [ play_move_down::return#2 ] +Uplifting [play_move_down] best 529070 combination reg byte x [ play_move_down::return#2 ] Attempting to uplift remaining variables inzp ZP_BYTE:3 [ current_movedown_counter#12 current_movedown_counter#10 current_movedown_counter#1 ] -Uplifting [] best 515537 combination zp ZP_BYTE:3 [ current_movedown_counter#12 current_movedown_counter#10 current_movedown_counter#1 ] -Attempting to uplift remaining variables inzp ZP_BYTE:119 [ keyboard_event_pressed::row_bits#0 ] -Uplifting [keyboard_event_pressed] best 515537 combination zp ZP_BYTE:119 [ keyboard_event_pressed::row_bits#0 ] -Attempting to uplift remaining variables inzp ZP_BYTE:121 [ keyboard_event_pressed::return#11 ] -Uplifting [keyboard_event_pressed] best 515519 combination reg byte a [ keyboard_event_pressed::return#11 ] +Uplifting [] best 529070 combination zp ZP_BYTE:3 [ current_movedown_counter#12 current_movedown_counter#10 current_movedown_counter#1 ] +Attempting to uplift remaining variables inzp ZP_BYTE:124 [ keyboard_event_pressed::row_bits#0 ] +Uplifting [keyboard_event_pressed] best 529070 combination zp ZP_BYTE:124 [ keyboard_event_pressed::row_bits#0 ] +Attempting to uplift remaining variables inzp ZP_BYTE:126 [ keyboard_event_pressed::return#11 ] +Uplifting [keyboard_event_pressed] best 529052 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 515492 combination reg byte a [ play_collision::return#14 ] +Uplifting [play_collision] best 529025 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 515492 combination zp ZP_BYTE:53 [ keyboard_event_pressed::keycode#5 ] -Attempting to uplift remaining variables inzp ZP_BYTE:110 [ play_spawn_current::$3 ] -Uplifting [play_spawn_current] best 515492 combination zp ZP_BYTE:110 [ play_spawn_current::$3 ] +Uplifting [keyboard_event_pressed] best 529025 combination zp ZP_BYTE:53 [ keyboard_event_pressed::keycode#5 ] +Attempting to uplift remaining variables inzp ZP_BYTE:115 [ play_spawn_current::$3 ] +Uplifting [play_spawn_current] best 529025 combination zp ZP_BYTE:115 [ 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#71 current_piece#72 current_piece#73 current_piece#74 ] ] with [ zp ZP_WORD:96 [ play_collision::piece_gfx#0 ] ] - score: 1 -Coalescing zero page register with common assignment [ zp ZP_BYTE:79 [ main::render#1 ] ] with [ zp ZP_BYTE:83 [ main::render#2 ] ] - score: 1 +Coalescing zero page register with common assignment [ zp ZP_WORD:21 [ current_piece#12 current_piece#71 current_piece#72 current_piece#73 current_piece#74 ] ] with [ zp ZP_WORD:101 [ play_collision::piece_gfx#0 ] ] - score: 1 +Coalescing zero page register with common assignment [ zp ZP_BYTE:84 [ main::render#1 ] ] with [ zp ZP_BYTE:88 [ 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:69 [ 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 render_init::l#4 render_init::l#1 ] ] with [ zp ZP_BYTE:110 [ play_spawn_current::$3 ] ] +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 render_init::l#4 render_init::l#1 ] ] with [ zp ZP_BYTE:71 [ 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 render_init::l#4 render_init::l#1 render_screen_original::y#6 render_screen_original::y#1 ] ] with [ zp ZP_BYTE:115 [ 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#96 ] ] with [ zp ZP_BYTE:14 [ render_playfield::l#2 render_playfield::l#1 ] ] @@ -9797,40 +10480,41 @@ Coalescing zero page register [ zp ZP_WORD:6 [ current_piece_gfx#53 current_piec Coalescing zero page register [ zp ZP_WORD:6 [ current_piece_gfx#53 current_piece_gfx#87 current_piece_gfx#88 render_playfield::line#2 render_playfield::line#0 render_playfield::line#1 current_piece#12 current_piece#71 current_piece#72 current_piece#73 current_piece#74 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#87 current_piece_gfx#88 render_playfield::line#2 render_playfield::line#0 render_playfield::line#1 current_piece#12 current_piece#71 current_piece#72 current_piece#73 current_piece#74 play_collision::piece_gfx#0 play_init::pli#2 play_init::pli#1 ] ] with [ zp ZP_WORD:65 [ render_init::li#2 render_init::li#1 ] ] Coalescing zero page register [ zp ZP_WORD:6 [ current_piece_gfx#53 current_piece_gfx#87 current_piece_gfx#88 render_playfield::line#2 render_playfield::line#0 render_playfield::line#1 current_piece#12 current_piece#71 current_piece#72 current_piece#73 current_piece#74 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:67 [ render_init::line#4 render_init::line#1 ] ] -Coalescing zero page register [ zp ZP_WORD:6 [ current_piece_gfx#53 current_piece_gfx#87 current_piece_gfx#88 render_playfield::line#2 render_playfield::line#0 render_playfield::line#1 current_piece#12 current_piece#71 current_piece#72 current_piece#73 current_piece#74 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:72 [ fill::addr#2 fill::addr#0 fill::addr#1 ] ] -Coalescing zero page register [ zp ZP_WORD:6 [ current_piece_gfx#53 current_piece_gfx#87 current_piece_gfx#88 render_playfield::line#2 render_playfield::line#0 render_playfield::line#1 current_piece#12 current_piece#71 current_piece#72 current_piece#73 current_piece#74 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 fill::addr#2 fill::addr#0 fill::addr#1 ] ] with [ zp ZP_WORD:115 [ play_lock_current::playfield_line#0 ] ] -Coalescing zero page register [ zp ZP_BYTE:8 [ current_piece_color#62 current_piece_color#75 current_piece_color#76 ] ] with [ zp ZP_BYTE:15 [ render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 ] ] -Coalescing zero page register [ zp ZP_BYTE:8 [ current_piece_color#62 current_piece_color#75 current_piece_color#76 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_color#62 current_piece_color#75 current_piece_color#76 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_color#62 current_piece_color#75 current_piece_color#76 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_color#62 current_piece_color#75 current_piece_color#76 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:114 [ play_remove_lines::c#0 ] ] -Coalescing zero page register [ zp ZP_BYTE:8 [ current_piece_color#62 current_piece_color#75 current_piece_color#76 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:119 [ keyboard_event_pressed::row_bits#0 ] ] +Coalescing zero page register [ zp ZP_WORD:6 [ current_piece_gfx#53 current_piece_gfx#87 current_piece_gfx#88 render_playfield::line#2 render_playfield::line#0 render_playfield::line#1 current_piece#12 current_piece#71 current_piece#72 current_piece#73 current_piece#74 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:72 [ 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#87 current_piece_gfx#88 render_playfield::line#2 render_playfield::line#0 render_playfield::line#1 current_piece#12 current_piece#71 current_piece#72 current_piece#73 current_piece#74 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:77 [ fill::addr#2 fill::addr#1 ] ] +Coalescing zero page register [ zp ZP_WORD:6 [ current_piece_gfx#53 current_piece_gfx#87 current_piece_gfx#88 render_playfield::line#2 render_playfield::line#0 render_playfield::line#1 current_piece#12 current_piece#71 current_piece#72 current_piece#73 current_piece#74 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:120 [ play_lock_current::playfield_line#0 ] ] +Coalescing zero page register [ zp ZP_BYTE:8 [ current_piece_char#62 current_piece_char#75 current_piece_char#76 ] ] 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#62 current_piece_char#75 current_piece_char#76 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#62 current_piece_char#75 current_piece_char#76 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#62 current_piece_char#75 current_piece_char#76 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#62 current_piece_char#75 current_piece_char#76 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:119 [ play_remove_lines::c#0 ] ] +Coalescing zero page register [ zp ZP_BYTE:8 [ current_piece_char#62 current_piece_char#75 current_piece_char#76 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:124 [ 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:117 [ 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:124 [ keyboard_event_scan::row_scan#0 ] ] +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:122 [ 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:129 [ keyboard_event_scan::row_scan#0 ] ] Coalescing zero page register [ zp ZP_BYTE:10 [ render_current::l#3 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#2 render_current::i#1 render_current::i#4 render_current::i#8 ] ] 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#1 render_current::xpos#0 ] ] with [ zp ZP_BYTE:29 [ 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#75 current_piece#16 current_piece#10 current_piece#70 ] ] with [ zp ZP_WORD:141 [ render_init::$10 ] ] -Coalescing zero page register [ zp ZP_WORD:34 [ current_piece#20 current_piece#75 current_piece#16 current_piece#10 current_piece#70 render_init::$10 ] ] with [ zp ZP_WORD:143 [ fill::end#0 ] ] -Coalescing zero page register [ zp ZP_WORD:88 [ render_current::screen_line#0 ] ] with [ zp ZP_WORD:98 [ play_collision::playfield_line#0 ] ] +Coalescing zero page register [ zp ZP_WORD:34 [ current_piece#20 current_piece#75 current_piece#16 current_piece#10 current_piece#70 ] ] with [ zp ZP_WORD:74 [ 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#75 current_piece#16 current_piece#10 current_piece#70 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:146 [ render_init::$15 ] ] +Coalescing zero page register [ zp ZP_WORD:93 [ render_current::screen_line#0 ] ] with [ zp ZP_WORD:103 [ play_collision::playfield_line#0 ] ] Allocated (was zp ZP_BYTE:5) zp ZP_BYTE:4 [ current_xpos#48 current_xpos#96 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#87 current_piece_gfx#88 render_playfield::line#2 render_playfield::line#0 render_playfield::line#1 current_piece#12 current_piece#71 current_piece#72 current_piece#73 current_piece#74 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 fill::addr#2 fill::addr#0 fill::addr#1 play_lock_current::playfield_line#0 ] -Allocated (was zp ZP_BYTE:8) zp ZP_BYTE:7 [ current_piece_color#62 current_piece_color#75 current_piece_color#76 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_WORD:6) zp ZP_WORD:5 [ current_piece_gfx#53 current_piece_gfx#87 current_piece_gfx#88 render_playfield::line#2 render_playfield::line#0 render_playfield::line#1 current_piece#12 current_piece#71 current_piece#72 current_piece#73 current_piece#74 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#62 current_piece_char#75 current_piece_char#76 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#3 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#2 render_current::i#1 render_current::i#4 render_current::i#8 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#1 render_current::xpos#0 play_collision::col#2 play_collision::col#9 play_collision::col#1 ] -Allocated (was zp ZP_WORD:34) zp ZP_WORD:12 [ current_piece#20 current_piece#75 current_piece#16 current_piece#10 current_piece#70 render_init::$10 fill::end#0 ] +Allocated (was zp ZP_WORD:34) zp ZP_WORD:12 [ current_piece#20 current_piece#75 current_piece#16 current_piece#10 current_piece#70 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::$15 ] 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:40) zp ZP_BYTE:18 [ current_piece_color#21 current_piece_color#16 current_piece_color#11 current_piece_color#13 ] +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:75) zp ZP_BYTE:20 [ main::key_event#0 ] -Allocated (was zp ZP_BYTE:79) zp ZP_BYTE:21 [ main::render#1 main::render#2 ] -Allocated (was zp ZP_WORD:88) zp ZP_WORD:22 [ render_current::screen_line#0 play_collision::playfield_line#0 ] -Allocated (was zp ZP_BYTE:100) zp ZP_BYTE:24 [ play_collision::i#1 ] +Allocated (was zp ZP_BYTE:80) zp ZP_BYTE:20 [ main::key_event#0 ] +Allocated (was zp ZP_BYTE:84) zp ZP_BYTE:21 [ main::render#1 main::render#2 ] +Allocated (was zp ZP_WORD:93) zp ZP_WORD:22 [ render_current::screen_line#0 play_collision::playfield_line#0 ] +Allocated (was zp ZP_BYTE:105) zp ZP_BYTE:24 [ play_collision::i#1 ] ASSEMBLER BEFORE OPTIMIZATION //SEG0 Basic Upstart @@ -9840,15 +10524,26 @@ ASSEMBLER BEFORE OPTIMIZATION //SEG1 Global Constants & labels .label RASTER = $d012 .label BORDERCOL = $d020 - .label BGCOL = $d021 + .label BGCOL1 = $d021 + .label BGCOL2 = $d022 + .label BGCOL3 = $d023 + .label BGCOL4 = $d024 + .label D011 = $d011 + .const VIC_ECM = $40 + .const VIC_DEN = $10 + .const VIC_RSEL = 8 + .label D018 = $d018 .label COLS = $d800 .label CIA1_PORT_A = $dc00 .label CIA1_PORT_B = $dc01 + .label CIA2_PORT_A = $dd00 + .label CIA2_PORT_A_DDR = $dd02 .const BLACK = 0 .const WHITE = 1 - .const GREEN = 5 + .const CYAN = 3 + .const BLUE = 6 .const DARK_GREY = $b - .const LIGHT_GREY = $f + .const GREY = $c .const KEY_Z = $c .const KEY_LSHIFT = $f .const KEY_X = $17 @@ -9870,6 +10565,7 @@ ASSEMBLER BEFORE OPTIMIZATION .label PLAYFIELD_CHARSET = $2800 .const PLAYFIELD_LINES = $16 .const PLAYFIELD_COLS = $a + .label PLAYFIELD_SCREEN_ORIGINAL = $2c00 .const current_movedown_slow = $32 .const current_movedown_fast = 5 .const COLLISION_NONE = 0 @@ -9884,16 +10580,16 @@ ASSEMBLER BEFORE OPTIMIZATION .label current_orientation = $e .label current_piece_gfx = $f .label current_piece = $c - .label current_piece_color = $12 + .label current_piece_char = $12 .label current_piece_12 = 5 .label current_xpos_48 = 4 .label current_piece_gfx_53 = 5 - .label current_piece_color_62 = 7 + .label current_piece_char_62 = 7 .label current_xpos_96 = 4 .label current_piece_gfx_87 = 5 .label current_piece_gfx_88 = 5 - .label current_piece_color_75 = 7 - .label current_piece_color_76 = 7 + .label current_piece_char_75 = 7 + .label current_piece_char_76 = 7 .label current_piece_71 = 5 .label current_piece_72 = 5 .label current_piece_73 = 5 @@ -9903,516 +10599,519 @@ bbegin: jmp b14 //SEG3 @14 b14: -//SEG4 kickasm(location (const byte*) PLAYFIELD_CHARSET#0) {{ .var charset = LoadPicture("nes-charset.png", List().add($000000, $ffffff)) .for (var c=0; c<32; c++) .for (var y=0;y<8; y++) .byte charset.getSinglecolorByte(c,y) }} -//SEG5 [2] phi from @14 to @26 [phi:@14->@26] -b26_from_b14: - jmp b26 -//SEG6 @26 -b26: -//SEG7 [3] call main -//SEG8 [5] phi from @26 to main [phi:@26->main] -main_from_b26: +//SEG4 kickasm(location (const byte*) PLAYFIELD_CHARSET#0) {{ .fill 8,$00 // Place a filled char at the start of the charset .import binary "nes-screen.imap" }} +//SEG5 kickasm(location (const byte*) PLAYFIELD_SCREEN_ORIGINAL#0) {{ .import binary "nes-screen.iscr" }} +//SEG6 [3] phi from @14 to @27 [phi:@14->@27] +b27_from_b14: + jmp b27 +//SEG7 @27 +b27: +//SEG8 [4] call main +//SEG9 [6] phi from @27 to main [phi:@27->main] +main_from_b27: jsr main -//SEG9 [4] phi from @26 to @end [phi:@26->@end] -bend_from_b26: +//SEG10 [5] phi from @27 to @end [phi:@27->@end] +bend_from_b27: jmp bend -//SEG10 @end +//SEG11 @end bend: -//SEG11 main +//SEG12 main main: { .label key_event = $14 .label render = $15 - //SEG12 [6] call sid_rnd_init + //SEG13 [7] call sid_rnd_init jsr sid_rnd_init jmp b21 - //SEG13 main::@21 + //SEG14 main::@21 b21: - //SEG14 asm { sei } + //SEG15 asm { sei } sei - //SEG15 [8] call render_init + //SEG16 [9] call render_init + //SEG17 [316] phi from main::@21 to render_init [phi:main::@21->render_init] + render_init_from_b21: jsr render_init - //SEG16 [9] phi from main::@21 to main::@22 [phi:main::@21->main::@22] + //SEG18 [10] phi from main::@21 to main::@22 [phi:main::@21->main::@22] b22_from_b21: jmp b22 - //SEG17 main::@22 + //SEG19 main::@22 b22: - //SEG18 [10] call play_init - //SEG19 [304] phi from main::@22 to play_init [phi:main::@22->play_init] + //SEG20 [11] call play_init + //SEG21 [305] phi from main::@22 to play_init [phi:main::@22->play_init] play_init_from_b22: jsr play_init - //SEG20 [11] phi from main::@22 to main::@23 [phi:main::@22->main::@23] + //SEG22 [12] phi from main::@22 to main::@23 [phi:main::@22->main::@23] b23_from_b22: jmp b23 - //SEG21 main::@23 + //SEG23 main::@23 b23: - //SEG22 [12] call play_spawn_current - //SEG23 [184] phi from main::@23 to play_spawn_current [phi:main::@23->play_spawn_current] + //SEG24 [13] call play_spawn_current + //SEG25 [185] phi from main::@23 to play_spawn_current [phi:main::@23->play_spawn_current] play_spawn_current_from_b23: jsr play_spawn_current - //SEG24 [13] phi from main::@23 to main::@24 [phi:main::@23->main::@24] + //SEG26 [14] phi from main::@23 to main::@24 [phi:main::@23->main::@24] b24_from_b23: jmp b24 - //SEG25 main::@24 + //SEG27 main::@24 b24: - //SEG26 [14] call render_playfield - //SEG27 [72] phi from main::@24 to render_playfield [phi:main::@24->render_playfield] + //SEG28 [15] call render_playfield + //SEG29 [73] phi from main::@24 to render_playfield [phi:main::@24->render_playfield] render_playfield_from_b24: jsr render_playfield jmp b25 - //SEG28 main::@25 + //SEG30 main::@25 b25: - //SEG29 [15] (byte*~) current_piece_gfx#87 ← (byte*) current_piece_gfx#17 -- pbuz1=pbuz2 + //SEG31 [16] (byte*~) current_piece_gfx#87 ← (byte*) current_piece_gfx#17 -- pbuz1=pbuz2 lda current_piece_gfx sta current_piece_gfx_87 lda current_piece_gfx+1 sta current_piece_gfx_87+1 - //SEG30 [16] (byte~) current_piece_color#75 ← (byte) current_piece_color#13 -- vbuz1=vbuz2 - lda current_piece_color - sta current_piece_color_75 - //SEG31 [17] call render_current - //SEG32 [52] phi from main::@25 to render_current [phi:main::@25->render_current] + //SEG32 [17] (byte~) current_piece_char#75 ← (byte) current_piece_char#13 -- vbuz1=vbuz2 + lda current_piece_char + sta current_piece_char_75 + //SEG33 [18] call render_current + //SEG34 [53] phi from main::@25 to render_current [phi:main::@25->render_current] render_current_from_b25: - //SEG33 [52] phi (byte) current_piece_color#62 = (byte~) current_piece_color#75 [phi:main::@25->render_current#0] -- register_copy - //SEG34 [52] phi (byte*) current_piece_gfx#53 = (byte*~) current_piece_gfx#87 [phi:main::@25->render_current#1] -- register_copy - //SEG35 [52] phi (byte) current_xpos#48 = (byte/signed byte/word/signed word/dword/signed dword) 3 [phi:main::@25->render_current#2] -- vbuz1=vbuc1 + //SEG35 [53] phi (byte) current_piece_char#62 = (byte~) current_piece_char#75 [phi:main::@25->render_current#0] -- register_copy + //SEG36 [53] phi (byte*) current_piece_gfx#53 = (byte*~) current_piece_gfx#87 [phi:main::@25->render_current#1] -- register_copy + //SEG37 [53] phi (byte) current_xpos#48 = (byte/signed byte/word/signed word/dword/signed dword) 3 [phi:main::@25->render_current#2] -- vbuz1=vbuc1 lda #3 sta current_xpos_48 - //SEG36 [52] phi (byte) current_ypos#10 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@25->render_current#3] -- vbuxx=vbuc1 + //SEG38 [53] phi (byte) current_ypos#10 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@25->render_current#3] -- vbuxx=vbuc1 ldx #0 jsr render_current - //SEG37 [18] (byte*~) current_piece#70 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) -- pbuz1=pptc1_derefidx_vbuz2 + //SEG39 [19] (byte*~) current_piece#70 ← (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 - //SEG38 [19] phi from main::@25 to main::@1 [phi:main::@25->main::@1] + //SEG40 [20] phi from main::@25 to main::@1 [phi:main::@25->main::@1] b1_from_b25: - //SEG39 [19] phi (byte) current_movedown_counter#12 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@25->main::@1#0] -- vbuz1=vbuc1 + //SEG41 [20] phi (byte) current_movedown_counter#12 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@25->main::@1#0] -- vbuz1=vbuc1 lda #0 sta current_movedown_counter - //SEG40 [19] phi (byte) keyboard_events_size#19 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@25->main::@1#1] -- vbuz1=vbuc1 + //SEG42 [20] phi (byte) keyboard_events_size#19 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@25->main::@1#1] -- vbuz1=vbuc1 lda #0 sta keyboard_events_size - //SEG41 [19] phi (byte) current_piece_color#16 = (byte) current_piece_color#13 [phi:main::@25->main::@1#2] -- register_copy - //SEG42 [19] phi (byte) current_ypos#22 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@25->main::@1#3] -- vbuz1=vbuc1 + //SEG43 [20] phi (byte) current_piece_char#16 = (byte) current_piece_char#13 [phi:main::@25->main::@1#2] -- register_copy + //SEG44 [20] phi (byte) current_ypos#22 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@25->main::@1#3] -- vbuz1=vbuc1 lda #0 sta current_ypos - //SEG43 [19] phi (byte) current_xpos#11 = (byte/signed byte/word/signed word/dword/signed dword) 3 [phi:main::@25->main::@1#4] -- vbuz1=vbuc1 + //SEG45 [20] phi (byte) current_xpos#11 = (byte/signed byte/word/signed word/dword/signed dword) 3 [phi:main::@25->main::@1#4] -- vbuz1=vbuc1 lda #3 sta current_xpos - //SEG44 [19] phi (byte*) current_piece_gfx#10 = (byte*) current_piece_gfx#17 [phi:main::@25->main::@1#5] -- register_copy - //SEG45 [19] phi (byte) current_orientation#10 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@25->main::@1#6] -- vbuz1=vbuc1 + //SEG46 [20] phi (byte*) current_piece_gfx#10 = (byte*) current_piece_gfx#17 [phi:main::@25->main::@1#5] -- register_copy + //SEG47 [20] phi (byte) current_orientation#10 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@25->main::@1#6] -- vbuz1=vbuc1 lda #0 sta current_orientation - //SEG46 [19] phi (byte*) current_piece#16 = (byte*~) current_piece#70 [phi:main::@25->main::@1#7] -- register_copy + //SEG48 [20] phi (byte*) current_piece#16 = (byte*~) current_piece#70 [phi:main::@25->main::@1#7] -- register_copy jmp b1 - //SEG47 main::@1 + //SEG49 main::@1 b1: jmp b4 - //SEG48 main::@4 + //SEG50 main::@4 b4: - //SEG49 [20] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@4 -- _deref_pbuc1_neq_vbuc2_then_la1 + //SEG51 [21] 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 - //SEG50 main::@7 + //SEG52 main::@7 b7: - //SEG51 [21] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 254) goto main::@7 -- _deref_pbuc1_neq_vbuc2_then_la1 + //SEG53 [22] 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 - //SEG52 main::@9 + //SEG54 main::@9 b9: - //SEG53 [22] *((const byte*) BORDERCOL#0) ← ++ *((const byte*) BORDERCOL#0) -- _deref_pbuc1=_inc__deref_pbuc1 + //SEG55 [23] *((const byte*) BORDERCOL#0) ← ++ *((const byte*) BORDERCOL#0) -- _deref_pbuc1=_inc__deref_pbuc1 inc BORDERCOL - //SEG54 [23] call keyboard_event_scan - //SEG55 [248] phi from main::@9 to keyboard_event_scan [phi:main::@9->keyboard_event_scan] + //SEG56 [24] call keyboard_event_scan + //SEG57 [249] phi from main::@9 to keyboard_event_scan [phi:main::@9->keyboard_event_scan] keyboard_event_scan_from_b9: jsr keyboard_event_scan - //SEG56 [24] phi from main::@9 to main::@27 [phi:main::@9->main::@27] + //SEG58 [25] phi from main::@9 to main::@27 [phi:main::@9->main::@27] b27_from_b9: jmp b27 - //SEG57 main::@27 + //SEG59 main::@27 b27: - //SEG58 [25] call keyboard_event_get + //SEG60 [26] call keyboard_event_get jsr keyboard_event_get - //SEG59 [26] (byte) keyboard_event_get::return#3 ← (byte) keyboard_event_get::return#2 + //SEG61 [27] (byte) keyboard_event_get::return#3 ← (byte) keyboard_event_get::return#2 // (byte) keyboard_event_get::return#3 = (byte) keyboard_event_get::return#2 // register copy reg byte a jmp b28 - //SEG60 main::@28 + //SEG62 main::@28 b28: - //SEG61 [27] (byte) main::key_event#0 ← (byte) keyboard_event_get::return#3 -- vbuz1=vbuaa + //SEG63 [28] (byte) main::key_event#0 ← (byte) keyboard_event_get::return#3 -- vbuz1=vbuaa sta key_event - //SEG62 [28] (byte) play_move_down::key_event#0 ← (byte) main::key_event#0 -- vbuaa=vbuz1 + //SEG64 [29] (byte) play_move_down::key_event#0 ← (byte) main::key_event#0 -- vbuaa=vbuz1 lda key_event - //SEG63 [29] call play_move_down + //SEG65 [30] call play_move_down jsr play_move_down - //SEG64 [30] (byte) play_move_down::return#3 ← (byte) play_move_down::return#2 -- vbuaa=vbuxx + //SEG66 [31] (byte) play_move_down::return#3 ← (byte) play_move_down::return#2 -- vbuaa=vbuxx txa jmp b29 - //SEG65 main::@29 + //SEG67 main::@29 b29: - //SEG66 [31] (byte~) main::$10 ← (byte) play_move_down::return#3 + //SEG68 [32] (byte~) main::$10 ← (byte) play_move_down::return#3 // (byte~) main::$10 = (byte) play_move_down::return#3 // register copy reg byte a - //SEG67 [32] (byte) main::render#1 ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte~) main::$10 -- vbuz1=vbuc1_plus_vbuaa + //SEG69 [33] (byte) main::render#1 ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte~) main::$10 -- vbuz1=vbuc1_plus_vbuaa clc adc #0 sta render - //SEG68 [33] (byte) play_move_leftright::key_event#0 ← (byte) main::key_event#0 -- vbuaa=vbuz1 + //SEG70 [34] (byte) play_move_leftright::key_event#0 ← (byte) main::key_event#0 -- vbuaa=vbuz1 lda key_event - //SEG69 [34] call play_move_leftright + //SEG71 [35] call play_move_leftright jsr play_move_leftright - //SEG70 [35] (byte) play_move_leftright::return#4 ← (byte) play_move_leftright::return#1 + //SEG72 [36] (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 b30 - //SEG71 main::@30 + //SEG73 main::@30 b30: - //SEG72 [36] (byte~) main::$11 ← (byte) play_move_leftright::return#4 + //SEG74 [37] (byte~) main::$11 ← (byte) play_move_leftright::return#4 // (byte~) main::$11 = (byte) play_move_leftright::return#4 // register copy reg byte a - //SEG73 [37] (byte) main::render#2 ← (byte) main::render#1 + (byte~) main::$11 -- vbuz1=vbuz1_plus_vbuaa + //SEG75 [38] (byte) main::render#2 ← (byte) main::render#1 + (byte~) main::$11 -- vbuz1=vbuz1_plus_vbuaa clc adc render sta render - //SEG74 [38] (byte) play_move_rotate::key_event#0 ← (byte) main::key_event#0 -- vbuaa=vbuz1 + //SEG76 [39] (byte) play_move_rotate::key_event#0 ← (byte) main::key_event#0 -- vbuaa=vbuz1 lda key_event - //SEG75 [39] call play_move_rotate + //SEG77 [40] call play_move_rotate jsr play_move_rotate - //SEG76 [40] (byte) play_move_rotate::return#4 ← (byte) play_move_rotate::return#1 + //SEG78 [41] (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 b31 - //SEG77 main::@31 + //SEG79 main::@31 b31: - //SEG78 [41] (byte~) main::$12 ← (byte) play_move_rotate::return#4 + //SEG80 [42] (byte~) main::$12 ← (byte) play_move_rotate::return#4 // (byte~) main::$12 = (byte) play_move_rotate::return#4 // register copy reg byte a - //SEG79 [42] (byte) main::render#3 ← (byte) main::render#2 + (byte~) main::$12 -- vbuaa=vbuz1_plus_vbuaa + //SEG81 [43] (byte) main::render#3 ← (byte) main::render#2 + (byte~) main::$12 -- vbuaa=vbuz1_plus_vbuaa clc adc render - //SEG80 [43] if((byte) main::render#3==(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@10 -- vbuaa_eq_0_then_la1 + //SEG82 [44] 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 - //SEG81 [44] phi from main::@31 to main::@19 [phi:main::@31->main::@19] + //SEG83 [45] phi from main::@31 to main::@19 [phi:main::@31->main::@19] b19_from_b31: jmp b19 - //SEG82 main::@19 + //SEG84 main::@19 b19: - //SEG83 [45] call render_playfield - //SEG84 [72] phi from main::@19 to render_playfield [phi:main::@19->render_playfield] + //SEG85 [46] call render_playfield + //SEG86 [73] phi from main::@19 to render_playfield [phi:main::@19->render_playfield] render_playfield_from_b19: jsr render_playfield jmp b32 - //SEG85 main::@32 + //SEG87 main::@32 b32: - //SEG86 [46] (byte~) current_ypos#71 ← (byte) current_ypos#14 -- vbuxx=vbuz1 + //SEG88 [47] (byte~) current_ypos#71 ← (byte) current_ypos#14 -- vbuxx=vbuz1 ldx current_ypos - //SEG87 [47] (byte~) current_xpos#96 ← (byte) current_xpos#20 -- vbuz1=vbuz2 + //SEG89 [48] (byte~) current_xpos#96 ← (byte) current_xpos#20 -- vbuz1=vbuz2 lda current_xpos sta current_xpos_96 - //SEG88 [48] (byte*~) current_piece_gfx#88 ← (byte*) current_piece_gfx#15 -- pbuz1=pbuz2 + //SEG90 [49] (byte*~) current_piece_gfx#88 ← (byte*) current_piece_gfx#15 -- pbuz1=pbuz2 lda current_piece_gfx sta current_piece_gfx_88 lda current_piece_gfx+1 sta current_piece_gfx_88+1 - //SEG89 [49] (byte~) current_piece_color#76 ← (byte) current_piece_color#11 -- vbuz1=vbuz2 - lda current_piece_color - sta current_piece_color_76 - //SEG90 [50] call render_current - //SEG91 [52] phi from main::@32 to render_current [phi:main::@32->render_current] + //SEG91 [50] (byte~) current_piece_char#76 ← (byte) current_piece_char#11 -- vbuz1=vbuz2 + lda current_piece_char + sta current_piece_char_76 + //SEG92 [51] call render_current + //SEG93 [53] phi from main::@32 to render_current [phi:main::@32->render_current] render_current_from_b32: - //SEG92 [52] phi (byte) current_piece_color#62 = (byte~) current_piece_color#76 [phi:main::@32->render_current#0] -- register_copy - //SEG93 [52] phi (byte*) current_piece_gfx#53 = (byte*~) current_piece_gfx#88 [phi:main::@32->render_current#1] -- register_copy - //SEG94 [52] phi (byte) current_xpos#48 = (byte~) current_xpos#96 [phi:main::@32->render_current#2] -- register_copy - //SEG95 [52] phi (byte) current_ypos#10 = (byte~) current_ypos#71 [phi:main::@32->render_current#3] -- register_copy + //SEG94 [53] phi (byte) current_piece_char#62 = (byte~) current_piece_char#76 [phi:main::@32->render_current#0] -- register_copy + //SEG95 [53] phi (byte*) current_piece_gfx#53 = (byte*~) current_piece_gfx#88 [phi:main::@32->render_current#1] -- register_copy + //SEG96 [53] phi (byte) current_xpos#48 = (byte~) current_xpos#96 [phi:main::@32->render_current#2] -- register_copy + //SEG97 [53] phi (byte) current_ypos#10 = (byte~) current_ypos#71 [phi:main::@32->render_current#3] -- register_copy jsr render_current jmp b10 - //SEG96 main::@10 + //SEG98 main::@10 b10: - //SEG97 [51] *((const byte*) BORDERCOL#0) ← -- *((const byte*) BORDERCOL#0) -- _deref_pbuc1=_dec__deref_pbuc1 + //SEG99 [52] *((const byte*) BORDERCOL#0) ← -- *((const byte*) BORDERCOL#0) -- _deref_pbuc1=_dec__deref_pbuc1 dec BORDERCOL - //SEG98 [19] phi from main::@10 to main::@1 [phi:main::@10->main::@1] + //SEG100 [20] phi from main::@10 to main::@1 [phi:main::@10->main::@1] b1_from_b10: - //SEG99 [19] phi (byte) current_movedown_counter#12 = (byte) current_movedown_counter#10 [phi:main::@10->main::@1#0] -- register_copy - //SEG100 [19] phi (byte) keyboard_events_size#19 = (byte) keyboard_events_size#16 [phi:main::@10->main::@1#1] -- register_copy - //SEG101 [19] phi (byte) current_piece_color#16 = (byte) current_piece_color#11 [phi:main::@10->main::@1#2] -- register_copy - //SEG102 [19] phi (byte) current_ypos#22 = (byte) current_ypos#14 [phi:main::@10->main::@1#3] -- register_copy - //SEG103 [19] phi (byte) current_xpos#11 = (byte) current_xpos#20 [phi:main::@10->main::@1#4] -- register_copy - //SEG104 [19] phi (byte*) current_piece_gfx#10 = (byte*) current_piece_gfx#15 [phi:main::@10->main::@1#5] -- register_copy - //SEG105 [19] phi (byte) current_orientation#10 = (byte) current_orientation#19 [phi:main::@10->main::@1#6] -- register_copy - //SEG106 [19] phi (byte*) current_piece#16 = (byte*) current_piece#10 [phi:main::@10->main::@1#7] -- register_copy + //SEG101 [20] phi (byte) current_movedown_counter#12 = (byte) current_movedown_counter#10 [phi:main::@10->main::@1#0] -- register_copy + //SEG102 [20] phi (byte) keyboard_events_size#19 = (byte) keyboard_events_size#16 [phi:main::@10->main::@1#1] -- register_copy + //SEG103 [20] phi (byte) current_piece_char#16 = (byte) current_piece_char#11 [phi:main::@10->main::@1#2] -- register_copy + //SEG104 [20] phi (byte) current_ypos#22 = (byte) current_ypos#14 [phi:main::@10->main::@1#3] -- register_copy + //SEG105 [20] phi (byte) current_xpos#11 = (byte) current_xpos#20 [phi:main::@10->main::@1#4] -- register_copy + //SEG106 [20] phi (byte*) current_piece_gfx#10 = (byte*) current_piece_gfx#15 [phi:main::@10->main::@1#5] -- register_copy + //SEG107 [20] phi (byte) current_orientation#10 = (byte) current_orientation#19 [phi:main::@10->main::@1#6] -- register_copy + //SEG108 [20] phi (byte*) current_piece#16 = (byte*) current_piece#10 [phi:main::@10->main::@1#7] -- register_copy jmp b1 } -//SEG107 render_current +//SEG109 render_current render_current: { .label ypos2 = 8 .label l = 9 .label screen_line = $16 .label xpos = $b .label i = $a - //SEG108 [53] (byte) render_current::ypos2#0 ← (byte) current_ypos#10 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuxx_rol_1 + //SEG110 [54] (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 - //SEG109 [54] phi from render_current to render_current::@1 [phi:render_current->render_current::@1] + //SEG111 [55] phi from render_current to render_current::@1 [phi:render_current->render_current::@1] b1_from_render_current: - //SEG110 [54] phi (byte) render_current::i#4 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_current->render_current::@1#0] -- vbuz1=vbuc1 + //SEG112 [55] phi (byte) render_current::i#4 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_current->render_current::@1#0] -- vbuz1=vbuc1 lda #0 sta i - //SEG111 [54] phi (byte) render_current::l#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_current->render_current::@1#1] -- vbuz1=vbuc1 + //SEG113 [55] phi (byte) render_current::l#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_current->render_current::@1#1] -- vbuz1=vbuc1 lda #0 sta l - //SEG112 [54] phi (byte) render_current::ypos2#2 = (byte) render_current::ypos2#0 [phi:render_current->render_current::@1#2] -- register_copy + //SEG114 [55] phi (byte) render_current::ypos2#2 = (byte) render_current::ypos2#0 [phi:render_current->render_current::@1#2] -- register_copy jmp b1 - //SEG113 [54] phi from render_current::@2 to render_current::@1 [phi:render_current::@2->render_current::@1] + //SEG115 [55] phi from render_current::@2 to render_current::@1 [phi:render_current::@2->render_current::@1] b1_from_b2: - //SEG114 [54] phi (byte) render_current::i#4 = (byte) render_current::i#8 [phi:render_current::@2->render_current::@1#0] -- register_copy - //SEG115 [54] phi (byte) render_current::l#3 = (byte) render_current::l#1 [phi:render_current::@2->render_current::@1#1] -- register_copy - //SEG116 [54] phi (byte) render_current::ypos2#2 = (byte) render_current::ypos2#1 [phi:render_current::@2->render_current::@1#2] -- register_copy + //SEG116 [55] phi (byte) render_current::i#4 = (byte) render_current::i#8 [phi:render_current::@2->render_current::@1#0] -- register_copy + //SEG117 [55] phi (byte) render_current::l#3 = (byte) render_current::l#1 [phi:render_current::@2->render_current::@1#1] -- register_copy + //SEG118 [55] phi (byte) render_current::ypos2#2 = (byte) render_current::ypos2#1 [phi:render_current::@2->render_current::@1#2] -- register_copy jmp b1 - //SEG117 render_current::@1 + //SEG119 render_current::@1 b1: - //SEG118 [55] if((byte) render_current::ypos2#2>=(byte/signed byte/word/signed word/dword/signed dword) 2*(const byte) PLAYFIELD_LINES#0) goto render_current::@2 -- vbuz1_ge_vbuc1_then_la1 + //SEG120 [56] if((byte) render_current::ypos2#2>=(byte/signed byte/word/signed word/dword/signed dword) 2*(const byte) PLAYFIELD_LINES#0) goto render_current::@2 -- vbuz1_ge_vbuc1_then_la1 lda ypos2 cmp #2*PLAYFIELD_LINES bcs b2_from_b1 jmp b6 - //SEG119 render_current::@6 + //SEG121 render_current::@6 b6: - //SEG120 [56] (byte*) render_current::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0+3]) screen_lines#0 + (byte) render_current::ypos2#2) -- pbuz1=pptc1_derefidx_vbuz2 + //SEG122 [57] (byte*) render_current::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0+3]) screen_lines#0 + (byte) render_current::ypos2#2) -- pbuz1=pptc1_derefidx_vbuz2 ldy ypos2 lda screen_lines,y sta screen_line lda screen_lines+1,y sta screen_line+1 - //SEG121 [57] (byte) render_current::xpos#0 ← (byte) current_xpos#48 -- vbuz1=vbuz2 + //SEG123 [58] (byte) render_current::xpos#0 ← (byte) current_xpos#48 -- vbuz1=vbuz2 lda current_xpos_48 sta xpos - //SEG122 [58] phi from render_current::@6 to render_current::@3 [phi:render_current::@6->render_current::@3] + //SEG124 [59] phi from render_current::@6 to render_current::@3 [phi:render_current::@6->render_current::@3] b3_from_b6: - //SEG123 [58] phi (byte) render_current::c#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_current::@6->render_current::@3#0] -- vbuxx=vbuc1 + //SEG125 [59] phi (byte) render_current::c#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_current::@6->render_current::@3#0] -- vbuxx=vbuc1 ldx #0 - //SEG124 [58] phi (byte) render_current::xpos#2 = (byte) render_current::xpos#0 [phi:render_current::@6->render_current::@3#1] -- register_copy - //SEG125 [58] phi (byte) render_current::i#2 = (byte) render_current::i#4 [phi:render_current::@6->render_current::@3#2] -- register_copy + //SEG126 [59] phi (byte) render_current::xpos#2 = (byte) render_current::xpos#0 [phi:render_current::@6->render_current::@3#1] -- register_copy + //SEG127 [59] phi (byte) render_current::i#2 = (byte) render_current::i#4 [phi:render_current::@6->render_current::@3#2] -- register_copy jmp b3 - //SEG126 [58] phi from render_current::@4 to render_current::@3 [phi:render_current::@4->render_current::@3] + //SEG128 [59] phi from render_current::@4 to render_current::@3 [phi:render_current::@4->render_current::@3] b3_from_b4: - //SEG127 [58] phi (byte) render_current::c#2 = (byte) render_current::c#1 [phi:render_current::@4->render_current::@3#0] -- register_copy - //SEG128 [58] phi (byte) render_current::xpos#2 = (byte) render_current::xpos#1 [phi:render_current::@4->render_current::@3#1] -- register_copy - //SEG129 [58] phi (byte) render_current::i#2 = (byte) render_current::i#1 [phi:render_current::@4->render_current::@3#2] -- register_copy + //SEG129 [59] phi (byte) render_current::c#2 = (byte) render_current::c#1 [phi:render_current::@4->render_current::@3#0] -- register_copy + //SEG130 [59] phi (byte) render_current::xpos#2 = (byte) render_current::xpos#1 [phi:render_current::@4->render_current::@3#1] -- register_copy + //SEG131 [59] phi (byte) render_current::i#2 = (byte) render_current::i#1 [phi:render_current::@4->render_current::@3#2] -- register_copy jmp b3 - //SEG130 render_current::@3 + //SEG132 render_current::@3 b3: - //SEG131 [59] (byte) render_current::current_cell#0 ← *((byte*) current_piece_gfx#53 + (byte) render_current::i#2) -- vbuaa=pbuz1_derefidx_vbuz2 + //SEG133 [60] (byte) render_current::current_cell#0 ← *((byte*) current_piece_gfx#53 + (byte) render_current::i#2) -- vbuaa=pbuz1_derefidx_vbuz2 ldy i lda (current_piece_gfx_53),y - //SEG132 [60] (byte) render_current::i#1 ← ++ (byte) render_current::i#2 -- vbuz1=_inc_vbuz1 + //SEG134 [61] (byte) render_current::i#1 ← ++ (byte) render_current::i#2 -- vbuz1=_inc_vbuz1 inc i - //SEG133 [61] if((byte) render_current::current_cell#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto render_current::@4 -- vbuaa_eq_0_then_la1 + //SEG135 [62] if((byte) render_current::current_cell#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto render_current::@4 -- vbuaa_eq_0_then_la1 cmp #0 beq b4 jmp b7 - //SEG134 render_current::@7 + //SEG136 render_current::@7 b7: - //SEG135 [62] if((byte) render_current::xpos#2>=(const byte) PLAYFIELD_COLS#0) goto render_current::@4 -- vbuz1_ge_vbuc1_then_la1 + //SEG137 [63] if((byte) render_current::xpos#2>=(const byte) PLAYFIELD_COLS#0) goto render_current::@4 -- vbuz1_ge_vbuc1_then_la1 lda xpos cmp #PLAYFIELD_COLS bcs b4 jmp b8 - //SEG136 render_current::@8 + //SEG138 render_current::@8 b8: - //SEG137 [63] *((byte*) render_current::screen_line#0 + (byte) render_current::xpos#2) ← (byte) current_piece_color#62 -- pbuz1_derefidx_vbuz2=vbuz3 - lda current_piece_color_62 + //SEG139 [64] *((byte*) render_current::screen_line#0 + (byte) render_current::xpos#2) ← (byte) current_piece_char#62 -- pbuz1_derefidx_vbuz2=vbuz3 + lda current_piece_char_62 ldy xpos sta (screen_line),y jmp b4 - //SEG138 render_current::@4 + //SEG140 render_current::@4 b4: - //SEG139 [64] (byte) render_current::xpos#1 ← ++ (byte) render_current::xpos#2 -- vbuz1=_inc_vbuz1 + //SEG141 [65] (byte) render_current::xpos#1 ← ++ (byte) render_current::xpos#2 -- vbuz1=_inc_vbuz1 inc xpos - //SEG140 [65] (byte) render_current::c#1 ← ++ (byte) render_current::c#2 -- vbuxx=_inc_vbuxx + //SEG142 [66] (byte) render_current::c#1 ← ++ (byte) render_current::c#2 -- vbuxx=_inc_vbuxx inx - //SEG141 [66] if((byte) render_current::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_current::@3 -- vbuxx_neq_vbuc1_then_la1 + //SEG143 [67] if((byte) render_current::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_current::@3 -- vbuxx_neq_vbuc1_then_la1 cpx #4 bne b3_from_b4 - //SEG142 [67] phi from render_current::@1 render_current::@4 to render_current::@2 [phi:render_current::@1/render_current::@4->render_current::@2] + //SEG144 [68] phi from render_current::@1 render_current::@4 to render_current::@2 [phi:render_current::@1/render_current::@4->render_current::@2] b2_from_b1: b2_from_b4: - //SEG143 [67] phi (byte) render_current::i#8 = (byte) render_current::i#4 [phi:render_current::@1/render_current::@4->render_current::@2#0] -- register_copy + //SEG145 [68] phi (byte) render_current::i#8 = (byte) render_current::i#4 [phi:render_current::@1/render_current::@4->render_current::@2#0] -- register_copy jmp b2 - //SEG144 render_current::@2 + //SEG146 render_current::@2 b2: - //SEG145 [68] (byte) render_current::ypos2#1 ← (byte) render_current::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 -- vbuz1=vbuz1_plus_2 + //SEG147 [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 lda ypos2 clc adc #2 sta ypos2 - //SEG146 [69] (byte) render_current::l#1 ← ++ (byte) render_current::l#3 -- vbuz1=_inc_vbuz1 + //SEG148 [70] (byte) render_current::l#1 ← ++ (byte) render_current::l#3 -- vbuz1=_inc_vbuz1 inc l - //SEG147 [70] 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 + //SEG149 [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 lda l cmp #4 bne b1_from_b2 jmp breturn - //SEG148 render_current::@return + //SEG150 render_current::@return breturn: - //SEG149 [71] return + //SEG151 [72] return rts } -//SEG150 render_playfield +//SEG152 render_playfield render_playfield: { .label line = 5 .label i = 7 .label l = 4 - //SEG151 [73] phi from render_playfield to render_playfield::@1 [phi:render_playfield->render_playfield::@1] + //SEG153 [74] phi from render_playfield to render_playfield::@1 [phi:render_playfield->render_playfield::@1] b1_from_render_playfield: - //SEG152 [73] phi (byte) render_playfield::i#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_playfield->render_playfield::@1#0] -- vbuz1=vbuc1 + //SEG154 [74] phi (byte) render_playfield::i#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_playfield->render_playfield::@1#0] -- vbuz1=vbuc1 lda #0 sta i - //SEG153 [73] phi (byte) render_playfield::l#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_playfield->render_playfield::@1#1] -- vbuz1=vbuc1 + //SEG155 [74] phi (byte) render_playfield::l#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_playfield->render_playfield::@1#1] -- vbuz1=vbuc1 lda #0 sta l jmp b1 - //SEG154 [73] phi from render_playfield::@3 to render_playfield::@1 [phi:render_playfield::@3->render_playfield::@1] + //SEG156 [74] phi from render_playfield::@3 to render_playfield::@1 [phi:render_playfield::@3->render_playfield::@1] b1_from_b3: - //SEG155 [73] phi (byte) render_playfield::i#3 = (byte) render_playfield::i#1 [phi:render_playfield::@3->render_playfield::@1#0] -- register_copy - //SEG156 [73] phi (byte) render_playfield::l#2 = (byte) render_playfield::l#1 [phi:render_playfield::@3->render_playfield::@1#1] -- register_copy + //SEG157 [74] phi (byte) render_playfield::i#3 = (byte) render_playfield::i#1 [phi:render_playfield::@3->render_playfield::@1#0] -- register_copy + //SEG158 [74] phi (byte) render_playfield::l#2 = (byte) render_playfield::l#1 [phi:render_playfield::@3->render_playfield::@1#1] -- register_copy jmp b1 - //SEG157 render_playfield::@1 + //SEG159 render_playfield::@1 b1: - //SEG158 [74] (byte~) render_playfield::$1 ← (byte) render_playfield::l#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuaa=vbuz1_rol_1 + //SEG160 [75] (byte~) render_playfield::$1 ← (byte) render_playfield::l#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuaa=vbuz1_rol_1 lda l asl - //SEG159 [75] (byte*) render_playfield::line#0 ← *((const byte*[PLAYFIELD_LINES#0+3]) screen_lines#0 + (byte~) render_playfield::$1) -- pbuz1=pptc1_derefidx_vbuaa + //SEG161 [76] (byte*) render_playfield::line#0 ← *((const byte*[PLAYFIELD_LINES#0+3]) screen_lines#0 + (byte~) render_playfield::$1) -- pbuz1=pptc1_derefidx_vbuaa tay lda screen_lines,y sta line lda screen_lines+1,y sta line+1 - //SEG160 [76] phi from render_playfield::@1 to render_playfield::@2 [phi:render_playfield::@1->render_playfield::@2] + //SEG162 [77] phi from render_playfield::@1 to render_playfield::@2 [phi:render_playfield::@1->render_playfield::@2] b2_from_b1: - //SEG161 [76] 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 + //SEG163 [77] 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 - //SEG162 [76] phi (byte*) render_playfield::line#2 = (byte*) render_playfield::line#0 [phi:render_playfield::@1->render_playfield::@2#1] -- register_copy - //SEG163 [76] phi (byte) render_playfield::i#2 = (byte) render_playfield::i#3 [phi:render_playfield::@1->render_playfield::@2#2] -- register_copy + //SEG164 [77] phi (byte*) render_playfield::line#2 = (byte*) render_playfield::line#0 [phi:render_playfield::@1->render_playfield::@2#1] -- register_copy + //SEG165 [77] phi (byte) render_playfield::i#2 = (byte) render_playfield::i#3 [phi:render_playfield::@1->render_playfield::@2#2] -- register_copy jmp b2 - //SEG164 [76] phi from render_playfield::@2 to render_playfield::@2 [phi:render_playfield::@2->render_playfield::@2] + //SEG166 [77] phi from render_playfield::@2 to render_playfield::@2 [phi:render_playfield::@2->render_playfield::@2] b2_from_b2: - //SEG165 [76] phi (byte) render_playfield::c#2 = (byte) render_playfield::c#1 [phi:render_playfield::@2->render_playfield::@2#0] -- register_copy - //SEG166 [76] phi (byte*) render_playfield::line#2 = (byte*) render_playfield::line#1 [phi:render_playfield::@2->render_playfield::@2#1] -- register_copy - //SEG167 [76] phi (byte) render_playfield::i#2 = (byte) render_playfield::i#1 [phi:render_playfield::@2->render_playfield::@2#2] -- register_copy + //SEG167 [77] phi (byte) render_playfield::c#2 = (byte) render_playfield::c#1 [phi:render_playfield::@2->render_playfield::@2#0] -- register_copy + //SEG168 [77] phi (byte*) render_playfield::line#2 = (byte*) render_playfield::line#1 [phi:render_playfield::@2->render_playfield::@2#1] -- register_copy + //SEG169 [77] phi (byte) render_playfield::i#2 = (byte) render_playfield::i#1 [phi:render_playfield::@2->render_playfield::@2#2] -- register_copy jmp b2 - //SEG168 render_playfield::@2 + //SEG170 render_playfield::@2 b2: - //SEG169 [77] *((byte*) render_playfield::line#2) ← *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) render_playfield::i#2) -- _deref_pbuz1=pbuc1_derefidx_vbuz2 + //SEG171 [78] *((byte*) render_playfield::line#2) ← *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) render_playfield::i#2) -- _deref_pbuz1=pbuc1_derefidx_vbuz2 ldy i lda playfield,y ldy #0 sta (line),y - //SEG170 [78] (byte*) render_playfield::line#1 ← ++ (byte*) render_playfield::line#2 -- pbuz1=_inc_pbuz1 + //SEG172 [79] (byte*) render_playfield::line#1 ← ++ (byte*) render_playfield::line#2 -- pbuz1=_inc_pbuz1 inc line bne !+ inc line+1 !: - //SEG171 [79] (byte) render_playfield::i#1 ← ++ (byte) render_playfield::i#2 -- vbuz1=_inc_vbuz1 + //SEG173 [80] (byte) render_playfield::i#1 ← ++ (byte) render_playfield::i#2 -- vbuz1=_inc_vbuz1 inc i - //SEG172 [80] (byte) render_playfield::c#1 ← ++ (byte) render_playfield::c#2 -- vbuxx=_inc_vbuxx + //SEG174 [81] (byte) render_playfield::c#1 ← ++ (byte) render_playfield::c#2 -- vbuxx=_inc_vbuxx inx - //SEG173 [81] 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 + //SEG175 [82] 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 - //SEG174 render_playfield::@3 + //SEG176 render_playfield::@3 b3: - //SEG175 [82] (byte) render_playfield::l#1 ← ++ (byte) render_playfield::l#2 -- vbuz1=_inc_vbuz1 + //SEG177 [83] (byte) render_playfield::l#1 ← ++ (byte) render_playfield::l#2 -- vbuz1=_inc_vbuz1 inc l - //SEG176 [83] 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 + //SEG178 [84] 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 - //SEG177 render_playfield::@return + //SEG179 render_playfield::@return breturn: - //SEG178 [84] return + //SEG180 [85] return rts } -//SEG179 play_move_rotate +//SEG181 play_move_rotate play_move_rotate: { .label orientation = 4 - //SEG180 [85] if((byte) play_move_rotate::key_event#0==(const byte) KEY_Z#0) goto play_move_rotate::@1 -- vbuaa_eq_vbuc1_then_la1 + //SEG182 [86] 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 - //SEG181 play_move_rotate::@6 + //SEG183 play_move_rotate::@6 b6: - //SEG182 [86] if((byte) play_move_rotate::key_event#0==(const byte) KEY_X#0) goto play_move_rotate::@2 -- vbuaa_eq_vbuc1_then_la1 + //SEG184 [87] 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 - //SEG183 [87] 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] + //SEG185 [88] 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: - //SEG184 [87] 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 - //SEG185 [87] 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 - //SEG186 [87] 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 + //SEG186 [88] 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 + //SEG187 [88] 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 + //SEG188 [88] 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 - //SEG187 play_move_rotate::@return + //SEG189 play_move_rotate::@return breturn: - //SEG188 [88] return + //SEG190 [89] return rts - //SEG189 play_move_rotate::@2 + //SEG191 play_move_rotate::@2 b2: - //SEG190 [89] (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 + //SEG192 [90] (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 - //SEG191 [90] (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 + //SEG193 [91] (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 - //SEG192 [91] 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] + //SEG194 [92] 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: - //SEG193 [91] 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 + //SEG195 [92] 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 - //SEG194 play_move_rotate::@4 + //SEG196 play_move_rotate::@4 b4: - //SEG195 [92] (byte) play_collision::xpos#3 ← (byte) current_xpos#20 -- vbuz1=vbuz2 + //SEG197 [93] (byte) play_collision::xpos#3 ← (byte) current_xpos#20 -- vbuz1=vbuz2 lda current_xpos sta play_collision.xpos - //SEG196 [93] (byte) play_collision::ypos#3 ← (byte) current_ypos#14 -- vbuyy=vbuz1 + //SEG198 [94] (byte) play_collision::ypos#3 ← (byte) current_ypos#14 -- vbuyy=vbuz1 ldy current_ypos - //SEG197 [94] (byte) play_collision::orientation#3 ← (byte) play_move_rotate::orientation#3 -- vbuxx=vbuz1 + //SEG199 [95] (byte) play_collision::orientation#3 ← (byte) play_move_rotate::orientation#3 -- vbuxx=vbuz1 ldx orientation - //SEG198 [95] (byte*~) current_piece#74 ← (byte*) current_piece#10 -- pbuz1=pbuz2 + //SEG200 [96] (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 - //SEG199 [96] call play_collision - //SEG200 [104] phi from play_move_rotate::@4 to play_collision [phi:play_move_rotate::@4->play_collision] + //SEG201 [97] call play_collision + //SEG202 [105] phi from play_move_rotate::@4 to play_collision [phi:play_move_rotate::@4->play_collision] play_collision_from_b4: - //SEG201 [104] phi (byte) play_collision::xpos#5 = (byte) play_collision::xpos#3 [phi:play_move_rotate::@4->play_collision#0] -- register_copy - //SEG202 [104] phi (byte) play_collision::ypos#4 = (byte) play_collision::ypos#3 [phi:play_move_rotate::@4->play_collision#1] -- register_copy - //SEG203 [104] phi (byte) play_collision::orientation#4 = (byte) play_collision::orientation#3 [phi:play_move_rotate::@4->play_collision#2] -- register_copy - //SEG204 [104] phi (byte*) current_piece#12 = (byte*~) current_piece#74 [phi:play_move_rotate::@4->play_collision#3] -- register_copy + //SEG203 [105] phi (byte) play_collision::xpos#5 = (byte) play_collision::xpos#3 [phi:play_move_rotate::@4->play_collision#0] -- register_copy + //SEG204 [105] phi (byte) play_collision::ypos#4 = (byte) play_collision::ypos#3 [phi:play_move_rotate::@4->play_collision#1] -- register_copy + //SEG205 [105] phi (byte) play_collision::orientation#4 = (byte) play_collision::orientation#3 [phi:play_move_rotate::@4->play_collision#2] -- register_copy + //SEG206 [105] phi (byte*) current_piece#12 = (byte*~) current_piece#74 [phi:play_move_rotate::@4->play_collision#3] -- register_copy jsr play_collision - //SEG205 [97] (byte) play_collision::return#13 ← (byte) play_collision::return#14 + //SEG207 [98] (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 - //SEG206 play_move_rotate::@14 + //SEG208 play_move_rotate::@14 b14: - //SEG207 [98] (byte~) play_move_rotate::$6 ← (byte) play_collision::return#13 + //SEG209 [99] (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 - //SEG208 [99] if((byte~) play_move_rotate::$6!=(const byte) COLLISION_NONE#0) goto play_move_rotate::@return -- vbuaa_neq_vbuc1_then_la1 + //SEG210 [100] 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 - //SEG209 play_move_rotate::@11 + //SEG211 play_move_rotate::@11 b11: - //SEG210 [100] (byte) current_orientation#4 ← (byte) play_move_rotate::orientation#3 -- vbuz1=vbuz2 + //SEG212 [101] (byte) current_orientation#4 ← (byte) play_move_rotate::orientation#3 -- vbuz1=vbuz2 lda orientation sta current_orientation - //SEG211 [101] (byte*) current_piece_gfx#4 ← (byte*) current_piece#10 + (byte) current_orientation#4 -- pbuz1=pbuz2_plus_vbuz3 + //SEG213 [102] (byte*) current_piece_gfx#4 ← (byte*) current_piece#10 + (byte) current_orientation#4 -- pbuz1=pbuz2_plus_vbuz3 lda current_orientation clc adc current_piece @@ -10420,25 +11119,25 @@ play_move_rotate: { lda #0 adc current_piece+1 sta current_piece_gfx+1 - //SEG212 [87] phi from play_move_rotate::@11 to play_move_rotate::@return [phi:play_move_rotate::@11->play_move_rotate::@return] + //SEG214 [88] phi from play_move_rotate::@11 to play_move_rotate::@return [phi:play_move_rotate::@11->play_move_rotate::@return] breturn_from_b11: - //SEG213 [87] phi (byte*) current_piece_gfx#15 = (byte*) current_piece_gfx#4 [phi:play_move_rotate::@11->play_move_rotate::@return#0] -- register_copy - //SEG214 [87] phi (byte) current_orientation#19 = (byte) current_orientation#4 [phi:play_move_rotate::@11->play_move_rotate::@return#1] -- register_copy - //SEG215 [87] 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 + //SEG215 [88] phi (byte*) current_piece_gfx#15 = (byte*) current_piece_gfx#4 [phi:play_move_rotate::@11->play_move_rotate::@return#0] -- register_copy + //SEG216 [88] phi (byte) current_orientation#19 = (byte) current_orientation#4 [phi:play_move_rotate::@11->play_move_rotate::@return#1] -- register_copy + //SEG217 [88] 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 - //SEG216 play_move_rotate::@1 + //SEG218 play_move_rotate::@1 b1: - //SEG217 [102] (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 + //SEG219 [103] (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 - //SEG218 [103] (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 + //SEG220 [104] (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 } -//SEG219 play_collision +//SEG221 play_collision play_collision: { .label xpos = 7 .label piece_gfx = 5 @@ -10451,7 +11150,7 @@ play_collision: { .label i_3 = $a .label i_11 = $a .label i_13 = $a - //SEG220 [105] (byte*) play_collision::piece_gfx#0 ← (byte*) current_piece#12 + (byte) play_collision::orientation#4 -- pbuz1=pbuz1_plus_vbuxx + //SEG222 [106] (byte*) play_collision::piece_gfx#0 ← (byte*) current_piece#12 + (byte) play_collision::orientation#4 -- pbuz1=pbuz1_plus_vbuxx txa clc adc piece_gfx @@ -10459,667 +11158,667 @@ play_collision: { lda #0 adc piece_gfx+1 sta piece_gfx+1 - //SEG221 [106] (byte) play_collision::ypos2#0 ← (byte) play_collision::ypos#4 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuyy_rol_1 + //SEG223 [107] (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 - //SEG222 [107] phi from play_collision to play_collision::@1 [phi:play_collision->play_collision::@1] + //SEG224 [108] phi from play_collision to play_collision::@1 [phi:play_collision->play_collision::@1] b1_from_play_collision: - //SEG223 [107] 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 + //SEG225 [108] 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 - //SEG224 [107] 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 + //SEG226 [108] 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 - //SEG225 [107] phi (byte) play_collision::ypos2#2 = (byte) play_collision::ypos2#0 [phi:play_collision->play_collision::@1#2] -- register_copy + //SEG227 [108] phi (byte) play_collision::ypos2#2 = (byte) play_collision::ypos2#0 [phi:play_collision->play_collision::@1#2] -- register_copy jmp b1 - //SEG226 play_collision::@1 + //SEG228 play_collision::@1 b1: - //SEG227 [108] (byte*) play_collision::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) play_collision::ypos2#2) -- pbuz1=pptc1_derefidx_vbuz2 + //SEG229 [109] (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 - //SEG228 [109] (byte~) play_collision::col#9 ← (byte) play_collision::xpos#5 -- vbuz1=vbuz2 + //SEG230 [110] (byte~) play_collision::col#9 ← (byte) play_collision::xpos#5 -- vbuz1=vbuz2 lda xpos sta col - //SEG229 [110] phi from play_collision::@1 to play_collision::@2 [phi:play_collision::@1->play_collision::@2] + //SEG231 [111] phi from play_collision::@1 to play_collision::@2 [phi:play_collision::@1->play_collision::@2] b2_from_b1: - //SEG230 [110] 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 + //SEG232 [111] 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 - //SEG231 [110] phi (byte) play_collision::col#2 = (byte~) play_collision::col#9 [phi:play_collision::@1->play_collision::@2#1] -- register_copy - //SEG232 [110] phi (byte) play_collision::i#2 = (byte) play_collision::i#3 [phi:play_collision::@1->play_collision::@2#2] -- register_copy + //SEG233 [111] phi (byte) play_collision::col#2 = (byte~) play_collision::col#9 [phi:play_collision::@1->play_collision::@2#1] -- register_copy + //SEG234 [111] phi (byte) play_collision::i#2 = (byte) play_collision::i#3 [phi:play_collision::@1->play_collision::@2#2] -- register_copy jmp b2 - //SEG233 play_collision::@2 + //SEG235 play_collision::@2 b2: - //SEG234 [111] (byte) play_collision::i#1 ← ++ (byte) play_collision::i#2 -- vbuz1=_inc_vbuz2 + //SEG236 [112] (byte) play_collision::i#1 ← ++ (byte) play_collision::i#2 -- vbuz1=_inc_vbuz2 ldy i_2 iny sty i - //SEG235 [112] 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 + //SEG237 [113] 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 - //SEG236 play_collision::@8 + //SEG238 play_collision::@8 b8: - //SEG237 [113] 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 + //SEG239 [114] 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 - //SEG238 [114] phi from play_collision::@8 to play_collision::@return [phi:play_collision::@8->play_collision::@return] + //SEG240 [115] phi from play_collision::@8 to play_collision::@return [phi:play_collision::@8->play_collision::@return] breturn_from_b8: - //SEG239 [114] phi (byte) play_collision::return#14 = (const byte) COLLISION_BOTTOM#0 [phi:play_collision::@8->play_collision::@return#0] -- vbuaa=vbuc1 + //SEG241 [115] 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 - //SEG240 play_collision::@return + //SEG242 play_collision::@return breturn: - //SEG241 [115] return + //SEG243 [116] return rts - //SEG242 play_collision::@4 + //SEG244 play_collision::@4 b4: - //SEG243 [116] (byte~) play_collision::$7 ← (byte) play_collision::col#2 & (byte/word/signed word/dword/signed dword) 128 -- vbuaa=vbuz1_band_vbuc1 + //SEG245 [117] (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 - //SEG244 [117] if((byte~) play_collision::$7==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_collision::@5 -- vbuaa_eq_0_then_la1 + //SEG246 [118] 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 - //SEG245 [114] phi from play_collision::@4 to play_collision::@return [phi:play_collision::@4->play_collision::@return] + //SEG247 [115] phi from play_collision::@4 to play_collision::@return [phi:play_collision::@4->play_collision::@return] breturn_from_b4: - //SEG246 [114] phi (byte) play_collision::return#14 = (const byte) COLLISION_LEFT#0 [phi:play_collision::@4->play_collision::@return#0] -- vbuaa=vbuc1 + //SEG248 [115] 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 - //SEG247 play_collision::@5 + //SEG249 play_collision::@5 b5: - //SEG248 [118] if((byte) play_collision::col#2<(const byte) PLAYFIELD_COLS#0) goto play_collision::@6 -- vbuz1_lt_vbuc1_then_la1 + //SEG250 [119] 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 - //SEG249 [114] phi from play_collision::@5 to play_collision::@return [phi:play_collision::@5->play_collision::@return] + //SEG251 [115] phi from play_collision::@5 to play_collision::@return [phi:play_collision::@5->play_collision::@return] breturn_from_b5: - //SEG250 [114] phi (byte) play_collision::return#14 = (const byte) COLLISION_RIGHT#0 [phi:play_collision::@5->play_collision::@return#0] -- vbuaa=vbuc1 + //SEG252 [115] 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 - //SEG251 play_collision::@6 + //SEG253 play_collision::@6 b6: - //SEG252 [119] 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 + //SEG254 [120] 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 - //SEG253 [114] phi from play_collision::@6 to play_collision::@return [phi:play_collision::@6->play_collision::@return] + //SEG255 [115] phi from play_collision::@6 to play_collision::@return [phi:play_collision::@6->play_collision::@return] breturn_from_b6: - //SEG254 [114] phi (byte) play_collision::return#14 = (const byte) COLLISION_PLAYFIELD#0 [phi:play_collision::@6->play_collision::@return#0] -- vbuaa=vbuc1 + //SEG256 [115] 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 - //SEG255 play_collision::@3 + //SEG257 play_collision::@3 b3: - //SEG256 [120] (byte) play_collision::col#1 ← ++ (byte) play_collision::col#2 -- vbuz1=_inc_vbuz1 + //SEG258 [121] (byte) play_collision::col#1 ← ++ (byte) play_collision::col#2 -- vbuz1=_inc_vbuz1 inc col - //SEG257 [121] (byte) play_collision::c#1 ← ++ (byte) play_collision::c#2 -- vbuxx=_inc_vbuxx + //SEG259 [122] (byte) play_collision::c#1 ← ++ (byte) play_collision::c#2 -- vbuxx=_inc_vbuxx inx - //SEG258 [122] 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 + //SEG260 [123] 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 - //SEG259 play_collision::@17 + //SEG261 play_collision::@17 b17: - //SEG260 [123] (byte) play_collision::ypos2#1 ← (byte) play_collision::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 -- vbuz1=vbuz1_plus_2 + //SEG262 [124] (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 - //SEG261 [124] (byte) play_collision::l#1 ← ++ (byte) play_collision::l#6 -- vbuz1=_inc_vbuz1 + //SEG263 [125] (byte) play_collision::l#1 ← ++ (byte) play_collision::l#6 -- vbuz1=_inc_vbuz1 inc l - //SEG262 [125] 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 + //SEG264 [126] 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 - //SEG263 [114] phi from play_collision::@17 to play_collision::@return [phi:play_collision::@17->play_collision::@return] + //SEG265 [115] phi from play_collision::@17 to play_collision::@return [phi:play_collision::@17->play_collision::@return] breturn_from_b17: - //SEG264 [114] phi (byte) play_collision::return#14 = (const byte) COLLISION_NONE#0 [phi:play_collision::@17->play_collision::@return#0] -- vbuaa=vbuc1 + //SEG266 [115] 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 - //SEG265 play_collision::@20 + //SEG267 play_collision::@20 b20: - //SEG266 [126] (byte~) play_collision::i#11 ← (byte) play_collision::i#1 -- vbuz1=vbuz2 + //SEG268 [127] (byte~) play_collision::i#11 ← (byte) play_collision::i#1 -- vbuz1=vbuz2 lda i sta i_11 - //SEG267 [107] phi from play_collision::@20 to play_collision::@1 [phi:play_collision::@20->play_collision::@1] + //SEG269 [108] phi from play_collision::@20 to play_collision::@1 [phi:play_collision::@20->play_collision::@1] b1_from_b20: - //SEG268 [107] phi (byte) play_collision::l#6 = (byte) play_collision::l#1 [phi:play_collision::@20->play_collision::@1#0] -- register_copy - //SEG269 [107] phi (byte) play_collision::i#3 = (byte~) play_collision::i#11 [phi:play_collision::@20->play_collision::@1#1] -- register_copy - //SEG270 [107] phi (byte) play_collision::ypos2#2 = (byte) play_collision::ypos2#1 [phi:play_collision::@20->play_collision::@1#2] -- register_copy + //SEG270 [108] phi (byte) play_collision::l#6 = (byte) play_collision::l#1 [phi:play_collision::@20->play_collision::@1#0] -- register_copy + //SEG271 [108] phi (byte) play_collision::i#3 = (byte~) play_collision::i#11 [phi:play_collision::@20->play_collision::@1#1] -- register_copy + //SEG272 [108] phi (byte) play_collision::ypos2#2 = (byte) play_collision::ypos2#1 [phi:play_collision::@20->play_collision::@1#2] -- register_copy jmp b1 - //SEG271 play_collision::@21 + //SEG273 play_collision::@21 b21: - //SEG272 [127] (byte~) play_collision::i#13 ← (byte) play_collision::i#1 -- vbuz1=vbuz2 + //SEG274 [128] (byte~) play_collision::i#13 ← (byte) play_collision::i#1 -- vbuz1=vbuz2 lda i sta i_13 - //SEG273 [110] phi from play_collision::@21 to play_collision::@2 [phi:play_collision::@21->play_collision::@2] + //SEG275 [111] phi from play_collision::@21 to play_collision::@2 [phi:play_collision::@21->play_collision::@2] b2_from_b21: - //SEG274 [110] phi (byte) play_collision::c#2 = (byte) play_collision::c#1 [phi:play_collision::@21->play_collision::@2#0] -- register_copy - //SEG275 [110] phi (byte) play_collision::col#2 = (byte) play_collision::col#1 [phi:play_collision::@21->play_collision::@2#1] -- register_copy - //SEG276 [110] phi (byte) play_collision::i#2 = (byte~) play_collision::i#13 [phi:play_collision::@21->play_collision::@2#2] -- register_copy + //SEG276 [111] phi (byte) play_collision::c#2 = (byte) play_collision::c#1 [phi:play_collision::@21->play_collision::@2#0] -- register_copy + //SEG277 [111] phi (byte) play_collision::col#2 = (byte) play_collision::col#1 [phi:play_collision::@21->play_collision::@2#1] -- register_copy + //SEG278 [111] phi (byte) play_collision::i#2 = (byte~) play_collision::i#13 [phi:play_collision::@21->play_collision::@2#2] -- register_copy jmp b2 } -//SEG277 play_move_leftright +//SEG279 play_move_leftright play_move_leftright: { - //SEG278 [128] if((byte) play_move_leftright::key_event#0==(const byte) KEY_COMMA#0) goto play_move_leftright::@1 -- vbuaa_eq_vbuc1_then_la1 + //SEG280 [129] 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 - //SEG279 play_move_leftright::@6 + //SEG281 play_move_leftright::@6 b6: - //SEG280 [129] if((byte) play_move_leftright::key_event#0!=(const byte) KEY_DOT#0) goto play_move_leftright::@return -- vbuaa_neq_vbuc1_then_la1 + //SEG282 [130] 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 - //SEG281 play_move_leftright::@7 + //SEG283 play_move_leftright::@7 b7: - //SEG282 [130] (byte) play_collision::xpos#2 ← (byte) current_xpos#16 + (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_plus_1 + //SEG284 [131] (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 - //SEG283 [131] (byte) play_collision::ypos#2 ← (byte) current_ypos#14 -- vbuyy=vbuz1 + //SEG285 [132] (byte) play_collision::ypos#2 ← (byte) current_ypos#14 -- vbuyy=vbuz1 ldy current_ypos - //SEG284 [132] (byte) play_collision::orientation#2 ← (byte) current_orientation#14 -- vbuxx=vbuz1 + //SEG286 [133] (byte) play_collision::orientation#2 ← (byte) current_orientation#14 -- vbuxx=vbuz1 ldx current_orientation - //SEG285 [133] (byte*~) current_piece#73 ← (byte*) current_piece#10 -- pbuz1=pbuz2 + //SEG287 [134] (byte*~) current_piece#73 ← (byte*) current_piece#10 -- pbuz1=pbuz2 lda current_piece sta current_piece_73 lda current_piece+1 sta current_piece_73+1 - //SEG286 [134] call play_collision - //SEG287 [104] phi from play_move_leftright::@7 to play_collision [phi:play_move_leftright::@7->play_collision] + //SEG288 [135] call play_collision + //SEG289 [105] phi from play_move_leftright::@7 to play_collision [phi:play_move_leftright::@7->play_collision] play_collision_from_b7: - //SEG288 [104] phi (byte) play_collision::xpos#5 = (byte) play_collision::xpos#2 [phi:play_move_leftright::@7->play_collision#0] -- register_copy - //SEG289 [104] phi (byte) play_collision::ypos#4 = (byte) play_collision::ypos#2 [phi:play_move_leftright::@7->play_collision#1] -- register_copy - //SEG290 [104] phi (byte) play_collision::orientation#4 = (byte) play_collision::orientation#2 [phi:play_move_leftright::@7->play_collision#2] -- register_copy - //SEG291 [104] phi (byte*) current_piece#12 = (byte*~) current_piece#73 [phi:play_move_leftright::@7->play_collision#3] -- register_copy + //SEG290 [105] phi (byte) play_collision::xpos#5 = (byte) play_collision::xpos#2 [phi:play_move_leftright::@7->play_collision#0] -- register_copy + //SEG291 [105] phi (byte) play_collision::ypos#4 = (byte) play_collision::ypos#2 [phi:play_move_leftright::@7->play_collision#1] -- register_copy + //SEG292 [105] phi (byte) play_collision::orientation#4 = (byte) play_collision::orientation#2 [phi:play_move_leftright::@7->play_collision#2] -- register_copy + //SEG293 [105] phi (byte*) current_piece#12 = (byte*~) current_piece#73 [phi:play_move_leftright::@7->play_collision#3] -- register_copy jsr play_collision - //SEG292 [135] (byte) play_collision::return#12 ← (byte) play_collision::return#14 + //SEG294 [136] (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 - //SEG293 play_move_leftright::@15 + //SEG295 play_move_leftright::@15 b15: - //SEG294 [136] (byte~) play_move_leftright::$4 ← (byte) play_collision::return#12 + //SEG296 [137] (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 - //SEG295 [137] if((byte~) play_move_leftright::$4!=(const byte) COLLISION_NONE#0) goto play_move_leftright::@return -- vbuaa_neq_vbuc1_then_la1 + //SEG297 [138] 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 - //SEG296 play_move_leftright::@8 + //SEG298 play_move_leftright::@8 b8: - //SEG297 [138] (byte) current_xpos#3 ← ++ (byte) current_xpos#16 -- vbuz1=_inc_vbuz1 + //SEG299 [139] (byte) current_xpos#3 ← ++ (byte) current_xpos#16 -- vbuz1=_inc_vbuz1 inc current_xpos - //SEG298 [139] 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] + //SEG300 [140] 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: - //SEG299 [139] 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 - //SEG300 [139] 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 + //SEG301 [140] 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 + //SEG302 [140] 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 - //SEG301 [139] 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] + //SEG303 [140] 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: - //SEG302 [139] 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 - //SEG303 [139] 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 + //SEG304 [140] 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 + //SEG305 [140] 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 - //SEG304 play_move_leftright::@return + //SEG306 play_move_leftright::@return breturn: - //SEG305 [140] return + //SEG307 [141] return rts - //SEG306 play_move_leftright::@1 + //SEG308 play_move_leftright::@1 b1: - //SEG307 [141] (byte) play_collision::xpos#1 ← (byte) current_xpos#16 - (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_minus_1 + //SEG309 [142] (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 - //SEG308 [142] (byte) play_collision::ypos#1 ← (byte) current_ypos#14 -- vbuyy=vbuz1 + //SEG310 [143] (byte) play_collision::ypos#1 ← (byte) current_ypos#14 -- vbuyy=vbuz1 ldy current_ypos - //SEG309 [143] (byte) play_collision::orientation#1 ← (byte) current_orientation#14 -- vbuxx=vbuz1 + //SEG311 [144] (byte) play_collision::orientation#1 ← (byte) current_orientation#14 -- vbuxx=vbuz1 ldx current_orientation - //SEG310 [144] (byte*~) current_piece#72 ← (byte*) current_piece#10 -- pbuz1=pbuz2 + //SEG312 [145] (byte*~) current_piece#72 ← (byte*) current_piece#10 -- pbuz1=pbuz2 lda current_piece sta current_piece_72 lda current_piece+1 sta current_piece_72+1 - //SEG311 [145] call play_collision - //SEG312 [104] phi from play_move_leftright::@1 to play_collision [phi:play_move_leftright::@1->play_collision] + //SEG313 [146] call play_collision + //SEG314 [105] phi from play_move_leftright::@1 to play_collision [phi:play_move_leftright::@1->play_collision] play_collision_from_b1: - //SEG313 [104] phi (byte) play_collision::xpos#5 = (byte) play_collision::xpos#1 [phi:play_move_leftright::@1->play_collision#0] -- register_copy - //SEG314 [104] phi (byte) play_collision::ypos#4 = (byte) play_collision::ypos#1 [phi:play_move_leftright::@1->play_collision#1] -- register_copy - //SEG315 [104] phi (byte) play_collision::orientation#4 = (byte) play_collision::orientation#1 [phi:play_move_leftright::@1->play_collision#2] -- register_copy - //SEG316 [104] phi (byte*) current_piece#12 = (byte*~) current_piece#72 [phi:play_move_leftright::@1->play_collision#3] -- register_copy + //SEG315 [105] phi (byte) play_collision::xpos#5 = (byte) play_collision::xpos#1 [phi:play_move_leftright::@1->play_collision#0] -- register_copy + //SEG316 [105] phi (byte) play_collision::ypos#4 = (byte) play_collision::ypos#1 [phi:play_move_leftright::@1->play_collision#1] -- register_copy + //SEG317 [105] phi (byte) play_collision::orientation#4 = (byte) play_collision::orientation#1 [phi:play_move_leftright::@1->play_collision#2] -- register_copy + //SEG318 [105] phi (byte*) current_piece#12 = (byte*~) current_piece#72 [phi:play_move_leftright::@1->play_collision#3] -- register_copy jsr play_collision - //SEG317 [146] (byte) play_collision::return#1 ← (byte) play_collision::return#14 + //SEG319 [147] (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 - //SEG318 play_move_leftright::@14 + //SEG320 play_move_leftright::@14 b14: - //SEG319 [147] (byte~) play_move_leftright::$8 ← (byte) play_collision::return#1 + //SEG321 [148] (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 - //SEG320 [148] if((byte~) play_move_leftright::$8!=(const byte) COLLISION_NONE#0) goto play_move_leftright::@return -- vbuaa_neq_vbuc1_then_la1 + //SEG322 [149] 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 - //SEG321 play_move_leftright::@11 + //SEG323 play_move_leftright::@11 b11: - //SEG322 [149] (byte) current_xpos#5 ← -- (byte) current_xpos#16 -- vbuz1=_dec_vbuz1 + //SEG324 [150] (byte) current_xpos#5 ← -- (byte) current_xpos#16 -- vbuz1=_dec_vbuz1 dec current_xpos jmp breturn_from_b11 } -//SEG323 play_move_down +//SEG325 play_move_down play_move_down: { - //SEG324 [150] (byte) current_movedown_counter#1 ← ++ (byte) current_movedown_counter#12 -- vbuz1=_inc_vbuz1 + //SEG326 [151] (byte) current_movedown_counter#1 ← ++ (byte) current_movedown_counter#12 -- vbuz1=_inc_vbuz1 inc current_movedown_counter - //SEG325 [151] if((byte) play_move_down::key_event#0!=(const byte) KEY_SPACE#0) goto play_move_down::@1 -- vbuaa_neq_vbuc1_then_la1 + //SEG327 [152] 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 - //SEG326 [152] phi from play_move_down to play_move_down::@8 [phi:play_move_down->play_move_down::@8] + //SEG328 [153] 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 - //SEG327 play_move_down::@8 + //SEG329 play_move_down::@8 b8: - //SEG328 [153] phi from play_move_down::@8 to play_move_down::@1 [phi:play_move_down::@8->play_move_down::@1] + //SEG330 [154] phi from play_move_down::@8 to play_move_down::@1 [phi:play_move_down::@8->play_move_down::@1] b1_from_b8: - //SEG329 [153] 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 + //SEG331 [154] 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 - //SEG330 [153] phi from play_move_down to play_move_down::@1 [phi:play_move_down->play_move_down::@1] + //SEG332 [154] phi from play_move_down to play_move_down::@1 [phi:play_move_down->play_move_down::@1] b1_from_play_move_down: - //SEG331 [153] 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 + //SEG333 [154] 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 - //SEG332 play_move_down::@1 + //SEG334 play_move_down::@1 b1: - //SEG333 [154] call keyboard_event_pressed - //SEG334 [237] phi from play_move_down::@1 to keyboard_event_pressed [phi:play_move_down::@1->keyboard_event_pressed] + //SEG335 [155] call keyboard_event_pressed + //SEG336 [238] phi from play_move_down::@1 to keyboard_event_pressed [phi:play_move_down::@1->keyboard_event_pressed] keyboard_event_pressed_from_b1: - //SEG335 [237] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_SPACE#0 [phi:play_move_down::@1->keyboard_event_pressed#0] -- vbuz1=vbuc1 + //SEG337 [238] 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 - //SEG336 [155] (byte) keyboard_event_pressed::return#12 ← (byte) keyboard_event_pressed::return#11 + //SEG338 [156] (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 - //SEG337 play_move_down::@17 + //SEG339 play_move_down::@17 b17: - //SEG338 [156] (byte~) play_move_down::$2 ← (byte) keyboard_event_pressed::return#12 + //SEG340 [157] (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 - //SEG339 [157] 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 + //SEG341 [158] 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 - //SEG340 play_move_down::@9 + //SEG342 play_move_down::@9 b9: - //SEG341 [158] if((byte) current_movedown_counter#1<(const byte) current_movedown_fast#0) goto play_move_down::@2 -- vbuz1_lt_vbuc1_then_la1 + //SEG343 [159] 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 - //SEG342 play_move_down::@10 + //SEG344 play_move_down::@10 b10: - //SEG343 [159] (byte) play_move_down::movedown#2 ← ++ (byte) play_move_down::movedown#10 -- vbuxx=_inc_vbuxx + //SEG345 [160] (byte) play_move_down::movedown#2 ← ++ (byte) play_move_down::movedown#10 -- vbuxx=_inc_vbuxx inx - //SEG344 [160] 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] + //SEG346 [161] 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: - //SEG345 [160] 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 + //SEG347 [161] 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 - //SEG346 play_move_down::@2 + //SEG348 play_move_down::@2 b2: - //SEG347 [161] if((byte) current_movedown_counter#1<(const byte) current_movedown_slow#0) goto play_move_down::@4 -- vbuz1_lt_vbuc1_then_la1 + //SEG349 [162] 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 - //SEG348 play_move_down::@11 + //SEG350 play_move_down::@11 b11: - //SEG349 [162] (byte) play_move_down::movedown#3 ← ++ (byte) play_move_down::movedown#7 -- vbuxx=_inc_vbuxx + //SEG351 [163] (byte) play_move_down::movedown#3 ← ++ (byte) play_move_down::movedown#7 -- vbuxx=_inc_vbuxx inx - //SEG350 [163] 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] + //SEG352 [164] 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: - //SEG351 [163] 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 + //SEG353 [164] 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 - //SEG352 play_move_down::@4 + //SEG354 play_move_down::@4 b4: - //SEG353 [164] 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 + //SEG355 [165] 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 - //SEG354 play_move_down::@12 + //SEG356 play_move_down::@12 b12: - //SEG355 [165] (byte) play_collision::ypos#0 ← (byte) current_ypos#22 + (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuyy=vbuz1_plus_1 + //SEG357 [166] (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 - //SEG356 [166] (byte) play_collision::xpos#0 ← (byte) current_xpos#11 -- vbuz1=vbuz2 + //SEG358 [167] (byte) play_collision::xpos#0 ← (byte) current_xpos#11 -- vbuz1=vbuz2 lda current_xpos sta play_collision.xpos - //SEG357 [167] (byte) play_collision::orientation#0 ← (byte) current_orientation#10 -- vbuxx=vbuz1 + //SEG359 [168] (byte) play_collision::orientation#0 ← (byte) current_orientation#10 -- vbuxx=vbuz1 ldx current_orientation - //SEG358 [168] (byte*~) current_piece#71 ← (byte*) current_piece#16 -- pbuz1=pbuz2 + //SEG360 [169] (byte*~) current_piece#71 ← (byte*) current_piece#16 -- pbuz1=pbuz2 lda current_piece sta current_piece_71 lda current_piece+1 sta current_piece_71+1 - //SEG359 [169] call play_collision - //SEG360 [104] phi from play_move_down::@12 to play_collision [phi:play_move_down::@12->play_collision] + //SEG361 [170] call play_collision + //SEG362 [105] phi from play_move_down::@12 to play_collision [phi:play_move_down::@12->play_collision] play_collision_from_b12: - //SEG361 [104] phi (byte) play_collision::xpos#5 = (byte) play_collision::xpos#0 [phi:play_move_down::@12->play_collision#0] -- register_copy - //SEG362 [104] phi (byte) play_collision::ypos#4 = (byte) play_collision::ypos#0 [phi:play_move_down::@12->play_collision#1] -- register_copy - //SEG363 [104] phi (byte) play_collision::orientation#4 = (byte) play_collision::orientation#0 [phi:play_move_down::@12->play_collision#2] -- register_copy - //SEG364 [104] phi (byte*) current_piece#12 = (byte*~) current_piece#71 [phi:play_move_down::@12->play_collision#3] -- register_copy + //SEG363 [105] phi (byte) play_collision::xpos#5 = (byte) play_collision::xpos#0 [phi:play_move_down::@12->play_collision#0] -- register_copy + //SEG364 [105] phi (byte) play_collision::ypos#4 = (byte) play_collision::ypos#0 [phi:play_move_down::@12->play_collision#1] -- register_copy + //SEG365 [105] phi (byte) play_collision::orientation#4 = (byte) play_collision::orientation#0 [phi:play_move_down::@12->play_collision#2] -- register_copy + //SEG366 [105] phi (byte*) current_piece#12 = (byte*~) current_piece#71 [phi:play_move_down::@12->play_collision#3] -- register_copy jsr play_collision - //SEG365 [170] (byte) play_collision::return#0 ← (byte) play_collision::return#14 + //SEG367 [171] (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 - //SEG366 play_move_down::@18 + //SEG368 play_move_down::@18 b18: - //SEG367 [171] (byte~) play_move_down::$12 ← (byte) play_collision::return#0 + //SEG369 [172] (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 - //SEG368 [172] if((byte~) play_move_down::$12==(const byte) COLLISION_NONE#0) goto play_move_down::@6 -- vbuaa_eq_vbuc1_then_la1 + //SEG370 [173] 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 - //SEG369 [173] phi from play_move_down::@18 to play_move_down::@13 [phi:play_move_down::@18->play_move_down::@13] + //SEG371 [174] 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 - //SEG370 play_move_down::@13 + //SEG372 play_move_down::@13 b13: - //SEG371 [174] call play_lock_current + //SEG373 [175] call play_lock_current jsr play_lock_current - //SEG372 [175] phi from play_move_down::@13 to play_move_down::@19 [phi:play_move_down::@13->play_move_down::@19] + //SEG374 [176] 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 - //SEG373 play_move_down::@19 + //SEG375 play_move_down::@19 b19: - //SEG374 [176] call play_remove_lines - //SEG375 [198] phi from play_move_down::@19 to play_remove_lines [phi:play_move_down::@19->play_remove_lines] + //SEG376 [177] call play_remove_lines + //SEG377 [199] 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 - //SEG376 [177] phi from play_move_down::@19 to play_move_down::@20 [phi:play_move_down::@19->play_move_down::@20] + //SEG378 [178] 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 - //SEG377 play_move_down::@20 + //SEG379 play_move_down::@20 b20: - //SEG378 [178] call play_spawn_current - //SEG379 [184] phi from play_move_down::@20 to play_spawn_current [phi:play_move_down::@20->play_spawn_current] + //SEG380 [179] call play_spawn_current + //SEG381 [185] 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 - //SEG380 [179] (byte*~) current_piece#75 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) -- pbuz1=pptc1_derefidx_vbuz2 + //SEG382 [180] (byte*~) current_piece#75 ← (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 - //SEG381 [180] phi from play_move_down::@20 to play_move_down::@7 [phi:play_move_down::@20->play_move_down::@7] + //SEG383 [181] phi from play_move_down::@20 to play_move_down::@7 [phi:play_move_down::@20->play_move_down::@7] b7_from_b20: - //SEG382 [180] phi (byte) current_piece_color#21 = (byte) current_piece_color#13 [phi:play_move_down::@20->play_move_down::@7#0] -- register_copy - //SEG383 [180] 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 + //SEG384 [181] phi (byte) current_piece_char#21 = (byte) current_piece_char#13 [phi:play_move_down::@20->play_move_down::@7#0] -- register_copy + //SEG385 [181] 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 - //SEG384 [180] phi (byte*) current_piece_gfx#27 = (byte*) current_piece_gfx#17 [phi:play_move_down::@20->play_move_down::@7#2] -- register_copy - //SEG385 [180] 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 + //SEG386 [181] phi (byte*) current_piece_gfx#27 = (byte*) current_piece_gfx#17 [phi:play_move_down::@20->play_move_down::@7#2] -- register_copy + //SEG387 [181] 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 - //SEG386 [180] phi (byte*) current_piece#20 = (byte*~) current_piece#75 [phi:play_move_down::@20->play_move_down::@7#4] -- register_copy - //SEG387 [180] 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 + //SEG388 [181] phi (byte*) current_piece#20 = (byte*~) current_piece#75 [phi:play_move_down::@20->play_move_down::@7#4] -- register_copy + //SEG389 [181] 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 jmp b7 - //SEG388 play_move_down::@7 + //SEG390 play_move_down::@7 b7: - //SEG389 [181] phi from play_move_down::@7 to play_move_down::@return [phi:play_move_down::@7->play_move_down::@return] + //SEG391 [182] phi from play_move_down::@7 to play_move_down::@return [phi:play_move_down::@7->play_move_down::@return] breturn_from_b7: - //SEG390 [181] phi (byte) current_piece_color#11 = (byte) current_piece_color#21 [phi:play_move_down::@7->play_move_down::@return#0] -- register_copy - //SEG391 [181] phi (byte) current_xpos#16 = (byte) current_xpos#34 [phi:play_move_down::@7->play_move_down::@return#1] -- register_copy - //SEG392 [181] phi (byte*) current_piece_gfx#14 = (byte*) current_piece_gfx#27 [phi:play_move_down::@7->play_move_down::@return#2] -- register_copy - //SEG393 [181] phi (byte) current_orientation#14 = (byte) current_orientation#29 [phi:play_move_down::@7->play_move_down::@return#3] -- register_copy - //SEG394 [181] phi (byte*) current_piece#10 = (byte*) current_piece#20 [phi:play_move_down::@7->play_move_down::@return#4] -- register_copy - //SEG395 [181] phi (byte) current_ypos#14 = (byte) current_ypos#30 [phi:play_move_down::@7->play_move_down::@return#5] -- register_copy - //SEG396 [181] 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 + //SEG392 [182] phi (byte) current_piece_char#11 = (byte) current_piece_char#21 [phi:play_move_down::@7->play_move_down::@return#0] -- register_copy + //SEG393 [182] phi (byte) current_xpos#16 = (byte) current_xpos#34 [phi:play_move_down::@7->play_move_down::@return#1] -- register_copy + //SEG394 [182] phi (byte*) current_piece_gfx#14 = (byte*) current_piece_gfx#27 [phi:play_move_down::@7->play_move_down::@return#2] -- register_copy + //SEG395 [182] phi (byte) current_orientation#14 = (byte) current_orientation#29 [phi:play_move_down::@7->play_move_down::@return#3] -- register_copy + //SEG396 [182] phi (byte*) current_piece#10 = (byte*) current_piece#20 [phi:play_move_down::@7->play_move_down::@return#4] -- register_copy + //SEG397 [182] phi (byte) current_ypos#14 = (byte) current_ypos#30 [phi:play_move_down::@7->play_move_down::@return#5] -- register_copy + //SEG398 [182] 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 - //SEG397 [181] 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 + //SEG399 [182] 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 - //SEG398 [181] phi from play_move_down::@4 to play_move_down::@return [phi:play_move_down::@4->play_move_down::@return] + //SEG400 [182] phi from play_move_down::@4 to play_move_down::@return [phi:play_move_down::@4->play_move_down::@return] breturn_from_b4: - //SEG399 [181] phi (byte) current_piece_color#11 = (byte) current_piece_color#16 [phi:play_move_down::@4->play_move_down::@return#0] -- register_copy - //SEG400 [181] phi (byte) current_xpos#16 = (byte) current_xpos#11 [phi:play_move_down::@4->play_move_down::@return#1] -- register_copy - //SEG401 [181] phi (byte*) current_piece_gfx#14 = (byte*) current_piece_gfx#10 [phi:play_move_down::@4->play_move_down::@return#2] -- register_copy - //SEG402 [181] phi (byte) current_orientation#14 = (byte) current_orientation#10 [phi:play_move_down::@4->play_move_down::@return#3] -- register_copy - //SEG403 [181] phi (byte*) current_piece#10 = (byte*) current_piece#16 [phi:play_move_down::@4->play_move_down::@return#4] -- register_copy - //SEG404 [181] phi (byte) current_ypos#14 = (byte) current_ypos#22 [phi:play_move_down::@4->play_move_down::@return#5] -- register_copy - //SEG405 [181] phi (byte) current_movedown_counter#10 = (byte) current_movedown_counter#1 [phi:play_move_down::@4->play_move_down::@return#6] -- register_copy - //SEG406 [181] 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 + //SEG401 [182] phi (byte) current_piece_char#11 = (byte) current_piece_char#16 [phi:play_move_down::@4->play_move_down::@return#0] -- register_copy + //SEG402 [182] phi (byte) current_xpos#16 = (byte) current_xpos#11 [phi:play_move_down::@4->play_move_down::@return#1] -- register_copy + //SEG403 [182] phi (byte*) current_piece_gfx#14 = (byte*) current_piece_gfx#10 [phi:play_move_down::@4->play_move_down::@return#2] -- register_copy + //SEG404 [182] phi (byte) current_orientation#14 = (byte) current_orientation#10 [phi:play_move_down::@4->play_move_down::@return#3] -- register_copy + //SEG405 [182] phi (byte*) current_piece#10 = (byte*) current_piece#16 [phi:play_move_down::@4->play_move_down::@return#4] -- register_copy + //SEG406 [182] phi (byte) current_ypos#14 = (byte) current_ypos#22 [phi:play_move_down::@4->play_move_down::@return#5] -- register_copy + //SEG407 [182] phi (byte) current_movedown_counter#10 = (byte) current_movedown_counter#1 [phi:play_move_down::@4->play_move_down::@return#6] -- register_copy + //SEG408 [182] 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 - //SEG407 play_move_down::@return + //SEG409 play_move_down::@return breturn: - //SEG408 [182] return + //SEG410 [183] return rts - //SEG409 play_move_down::@6 + //SEG411 play_move_down::@6 b6: - //SEG410 [183] (byte) current_ypos#1 ← ++ (byte) current_ypos#22 -- vbuz1=_inc_vbuz1 + //SEG412 [184] (byte) current_ypos#1 ← ++ (byte) current_ypos#22 -- vbuz1=_inc_vbuz1 inc current_ypos - //SEG411 [180] phi from play_move_down::@6 to play_move_down::@7 [phi:play_move_down::@6->play_move_down::@7] + //SEG413 [181] phi from play_move_down::@6 to play_move_down::@7 [phi:play_move_down::@6->play_move_down::@7] b7_from_b6: - //SEG412 [180] phi (byte) current_piece_color#21 = (byte) current_piece_color#16 [phi:play_move_down::@6->play_move_down::@7#0] -- register_copy - //SEG413 [180] phi (byte) current_xpos#34 = (byte) current_xpos#11 [phi:play_move_down::@6->play_move_down::@7#1] -- register_copy - //SEG414 [180] phi (byte*) current_piece_gfx#27 = (byte*) current_piece_gfx#10 [phi:play_move_down::@6->play_move_down::@7#2] -- register_copy - //SEG415 [180] phi (byte) current_orientation#29 = (byte) current_orientation#10 [phi:play_move_down::@6->play_move_down::@7#3] -- register_copy - //SEG416 [180] phi (byte*) current_piece#20 = (byte*) current_piece#16 [phi:play_move_down::@6->play_move_down::@7#4] -- register_copy - //SEG417 [180] phi (byte) current_ypos#30 = (byte) current_ypos#1 [phi:play_move_down::@6->play_move_down::@7#5] -- register_copy + //SEG414 [181] phi (byte) current_piece_char#21 = (byte) current_piece_char#16 [phi:play_move_down::@6->play_move_down::@7#0] -- register_copy + //SEG415 [181] phi (byte) current_xpos#34 = (byte) current_xpos#11 [phi:play_move_down::@6->play_move_down::@7#1] -- register_copy + //SEG416 [181] phi (byte*) current_piece_gfx#27 = (byte*) current_piece_gfx#10 [phi:play_move_down::@6->play_move_down::@7#2] -- register_copy + //SEG417 [181] phi (byte) current_orientation#29 = (byte) current_orientation#10 [phi:play_move_down::@6->play_move_down::@7#3] -- register_copy + //SEG418 [181] phi (byte*) current_piece#20 = (byte*) current_piece#16 [phi:play_move_down::@6->play_move_down::@7#4] -- register_copy + //SEG419 [181] phi (byte) current_ypos#30 = (byte) current_ypos#1 [phi:play_move_down::@6->play_move_down::@7#5] -- register_copy jmp b7 } -//SEG418 play_spawn_current +//SEG420 play_spawn_current play_spawn_current: { .label _3 = 2 - //SEG419 [185] phi from play_spawn_current to play_spawn_current::@1 [phi:play_spawn_current->play_spawn_current::@1] + //SEG421 [186] phi from play_spawn_current to play_spawn_current::@1 [phi:play_spawn_current->play_spawn_current::@1] b1_from_play_spawn_current: - //SEG420 [185] 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 + //SEG422 [186] 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 - //SEG421 play_spawn_current::@1 + //SEG423 play_spawn_current::@1 b1: - //SEG422 [186] 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 + //SEG424 [187] 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 - //SEG423 play_spawn_current::@3 + //SEG425 play_spawn_current::@3 b3: - //SEG424 [187] (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 + //SEG426 [188] (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 - //SEG425 [188] (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 + //SEG427 [189] (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 - //SEG426 [189] (byte) current_piece_color#13 ← *((const byte[]) PIECES_COLORS#0 + (byte) play_spawn_current::piece_idx#2) -- vbuz1=pbuc1_derefidx_vbuxx - lda PIECES_COLORS,x - sta current_piece_color + //SEG428 [190] (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 - //SEG427 play_spawn_current::@return + //SEG429 play_spawn_current::@return breturn: - //SEG428 [190] return + //SEG430 [191] return rts - //SEG429 [191] phi from play_spawn_current::@1 to play_spawn_current::@2 [phi:play_spawn_current::@1->play_spawn_current::@2] + //SEG431 [192] 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 - //SEG430 play_spawn_current::@2 + //SEG432 play_spawn_current::@2 b2: - //SEG431 [192] call sid_rnd + //SEG433 [193] call sid_rnd jsr sid_rnd - //SEG432 [193] (byte) sid_rnd::return#2 ← (byte) sid_rnd::return#0 + //SEG434 [194] (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 - //SEG433 play_spawn_current::@7 + //SEG435 play_spawn_current::@7 b7: - //SEG434 [194] (byte~) play_spawn_current::$1 ← (byte) sid_rnd::return#2 + //SEG436 [195] (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 - //SEG435 [195] (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 + //SEG437 [196] (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 - //SEG436 [185] phi from play_spawn_current::@7 to play_spawn_current::@1 [phi:play_spawn_current::@7->play_spawn_current::@1] + //SEG438 [186] phi from play_spawn_current::@7 to play_spawn_current::@1 [phi:play_spawn_current::@7->play_spawn_current::@1] b1_from_b7: - //SEG437 [185] 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 + //SEG439 [186] 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 } -//SEG438 sid_rnd +//SEG440 sid_rnd sid_rnd: { - //SEG439 [196] (byte) sid_rnd::return#0 ← *((const byte*) SID_VOICE3_OSC#0) -- vbuaa=_deref_pbuc1 + //SEG441 [197] (byte) sid_rnd::return#0 ← *((const byte*) SID_VOICE3_OSC#0) -- vbuaa=_deref_pbuc1 lda SID_VOICE3_OSC jmp breturn - //SEG440 sid_rnd::@return + //SEG442 sid_rnd::@return breturn: - //SEG441 [197] return + //SEG443 [198] return rts } -//SEG442 play_remove_lines +//SEG444 play_remove_lines play_remove_lines: { .label c = 7 .label x = 3 .label y = 2 .label full = 4 - //SEG443 [199] phi from play_remove_lines to play_remove_lines::@1 [phi:play_remove_lines->play_remove_lines::@1] + //SEG445 [200] phi from play_remove_lines to play_remove_lines::@1 [phi:play_remove_lines->play_remove_lines::@1] b1_from_play_remove_lines: - //SEG444 [199] 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 + //SEG446 [200] 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 - //SEG445 [199] 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 + //SEG447 [200] 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 - //SEG446 [199] 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 + //SEG448 [200] 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 - //SEG447 [199] phi from play_remove_lines::@4 to play_remove_lines::@1 [phi:play_remove_lines::@4->play_remove_lines::@1] + //SEG449 [200] phi from play_remove_lines::@4 to play_remove_lines::@1 [phi:play_remove_lines::@4->play_remove_lines::@1] b1_from_b4: - //SEG448 [199] 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 - //SEG449 [199] 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 - //SEG450 [199] 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 + //SEG450 [200] 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 + //SEG451 [200] 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 + //SEG452 [200] 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 - //SEG451 play_remove_lines::@1 + //SEG453 play_remove_lines::@1 b1: - //SEG452 [200] phi from play_remove_lines::@1 to play_remove_lines::@2 [phi:play_remove_lines::@1->play_remove_lines::@2] + //SEG454 [201] phi from play_remove_lines::@1 to play_remove_lines::@2 [phi:play_remove_lines::@1->play_remove_lines::@2] b2_from_b1: - //SEG453 [200] 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 + //SEG455 [201] 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 - //SEG454 [200] 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 + //SEG456 [201] 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 - //SEG455 [200] 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 - //SEG456 [200] 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 + //SEG457 [201] 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 + //SEG458 [201] 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 - //SEG457 [200] phi from play_remove_lines::@3 to play_remove_lines::@2 [phi:play_remove_lines::@3->play_remove_lines::@2] + //SEG459 [201] phi from play_remove_lines::@3 to play_remove_lines::@2 [phi:play_remove_lines::@3->play_remove_lines::@2] b2_from_b3: - //SEG458 [200] 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 - //SEG459 [200] 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 - //SEG460 [200] 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 - //SEG461 [200] 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 + //SEG460 [201] 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 + //SEG461 [201] 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 + //SEG462 [201] 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 + //SEG463 [201] 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 - //SEG462 play_remove_lines::@2 + //SEG464 play_remove_lines::@2 b2: - //SEG463 [201] (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 + //SEG465 [202] (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 - //SEG464 [202] (byte) play_remove_lines::r#1 ← -- (byte) play_remove_lines::r#2 -- vbuyy=_dec_vbuyy + //SEG466 [203] (byte) play_remove_lines::r#1 ← -- (byte) play_remove_lines::r#2 -- vbuyy=_dec_vbuyy dey - //SEG465 [203] 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 + //SEG467 [204] 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 - //SEG466 [204] phi from play_remove_lines::@2 to play_remove_lines::@3 [phi:play_remove_lines::@2->play_remove_lines::@3] + //SEG468 [205] phi from play_remove_lines::@2 to play_remove_lines::@3 [phi:play_remove_lines::@2->play_remove_lines::@3] b3_from_b2: - //SEG467 [204] 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 + //SEG469 [205] 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 - //SEG468 play_remove_lines::@3 + //SEG470 play_remove_lines::@3 b3: - //SEG469 [205] *((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 + //SEG471 [206] *((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 - //SEG470 [206] (byte) play_remove_lines::w#1 ← -- (byte) play_remove_lines::w#4 -- vbuxx=_dec_vbuxx + //SEG472 [207] (byte) play_remove_lines::w#1 ← -- (byte) play_remove_lines::w#4 -- vbuxx=_dec_vbuxx dex - //SEG471 [207] (byte) play_remove_lines::x#1 ← ++ (byte) play_remove_lines::x#2 -- vbuz1=_inc_vbuz1 + //SEG473 [208] (byte) play_remove_lines::x#1 ← ++ (byte) play_remove_lines::x#2 -- vbuz1=_inc_vbuz1 inc x - //SEG472 [208] 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 + //SEG474 [209] 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 - //SEG473 play_remove_lines::@9 + //SEG475 play_remove_lines::@9 b9: - //SEG474 [209] 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 + //SEG476 [210] 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 - //SEG475 play_remove_lines::@10 + //SEG477 play_remove_lines::@10 b10: - //SEG476 [210] (byte) play_remove_lines::w#2 ← (byte) play_remove_lines::w#1 + (const byte) PLAYFIELD_COLS#0 -- vbuxx=vbuxx_plus_vbuc1 + //SEG478 [211] (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 - //SEG477 [211] 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] + //SEG479 [212] 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: - //SEG478 [211] 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 + //SEG480 [212] 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 - //SEG479 play_remove_lines::@4 + //SEG481 play_remove_lines::@4 b4: - //SEG480 [212] (byte) play_remove_lines::y#1 ← ++ (byte) play_remove_lines::y#8 -- vbuz1=_inc_vbuz1 + //SEG482 [213] (byte) play_remove_lines::y#1 ← ++ (byte) play_remove_lines::y#8 -- vbuz1=_inc_vbuz1 inc y - //SEG481 [213] 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 + //SEG483 [214] 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 - //SEG482 [214] 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] + //SEG484 [215] 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: - //SEG483 [214] 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 + //SEG485 [215] 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 - //SEG484 play_remove_lines::@5 + //SEG486 play_remove_lines::@5 b5: - //SEG485 [215] 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 + //SEG487 [216] 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 - //SEG486 play_remove_lines::@return + //SEG488 play_remove_lines::@return breturn: - //SEG487 [216] return + //SEG489 [217] return rts - //SEG488 play_remove_lines::@6 + //SEG490 play_remove_lines::@6 b6: - //SEG489 [217] *((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 + //SEG491 [218] *((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 - //SEG490 [218] (byte) play_remove_lines::w#3 ← -- (byte) play_remove_lines::w#6 -- vbuxx=_dec_vbuxx + //SEG492 [219] (byte) play_remove_lines::w#3 ← -- (byte) play_remove_lines::w#6 -- vbuxx=_dec_vbuxx dex jmp b5_from_b6 - //SEG491 [219] phi from play_remove_lines::@2 to play_remove_lines::@17 [phi:play_remove_lines::@2->play_remove_lines::@17] + //SEG493 [220] 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 - //SEG492 play_remove_lines::@17 + //SEG494 play_remove_lines::@17 b17: - //SEG493 [204] phi from play_remove_lines::@17 to play_remove_lines::@3 [phi:play_remove_lines::@17->play_remove_lines::@3] + //SEG495 [205] phi from play_remove_lines::@17 to play_remove_lines::@3 [phi:play_remove_lines::@17->play_remove_lines::@3] b3_from_b17: - //SEG494 [204] 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 + //SEG496 [205] 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 } -//SEG495 play_lock_current +//SEG497 play_lock_current play_lock_current: { .label ypos2 = 2 .label playfield_line = 5 @@ -11130,489 +11829,489 @@ play_lock_current: { .label i_3 = 4 .label i_7 = 4 .label i_9 = 4 - //SEG496 [220] (byte) play_lock_current::ypos2#0 ← (byte) current_ypos#22 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz1_rol_1 + //SEG498 [221] (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 - //SEG497 [221] phi from play_lock_current to play_lock_current::@1 [phi:play_lock_current->play_lock_current::@1] + //SEG499 [222] phi from play_lock_current to play_lock_current::@1 [phi:play_lock_current->play_lock_current::@1] b1_from_play_lock_current: - //SEG498 [221] 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 + //SEG500 [222] 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 - //SEG499 [221] 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 + //SEG501 [222] 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 - //SEG500 [221] phi (byte) play_lock_current::ypos2#2 = (byte) play_lock_current::ypos2#0 [phi:play_lock_current->play_lock_current::@1#2] -- register_copy + //SEG502 [222] 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 - //SEG501 play_lock_current::@1 + //SEG503 play_lock_current::@1 b1: - //SEG502 [222] (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 + //SEG504 [223] (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 - //SEG503 [223] (byte) play_lock_current::col#0 ← (byte) current_xpos#11 -- vbuz1=vbuz2 + //SEG505 [224] (byte) play_lock_current::col#0 ← (byte) current_xpos#11 -- vbuz1=vbuz2 lda current_xpos sta col - //SEG504 [224] phi from play_lock_current::@1 to play_lock_current::@2 [phi:play_lock_current::@1->play_lock_current::@2] + //SEG506 [225] phi from play_lock_current::@1 to play_lock_current::@2 [phi:play_lock_current::@1->play_lock_current::@2] b2_from_b1: - //SEG505 [224] 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 + //SEG507 [225] 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 - //SEG506 [224] 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 - //SEG507 [224] 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 + //SEG508 [225] 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 + //SEG509 [225] 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 - //SEG508 play_lock_current::@2 + //SEG510 play_lock_current::@2 b2: - //SEG509 [225] (byte) play_lock_current::i#1 ← ++ (byte) play_lock_current::i#2 -- vbuz1=_inc_vbuz2 + //SEG511 [226] (byte) play_lock_current::i#1 ← ++ (byte) play_lock_current::i#2 -- vbuz1=_inc_vbuz2 ldy i_2 iny sty i - //SEG510 [226] 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 + //SEG512 [227] 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 - //SEG511 play_lock_current::@4 + //SEG513 play_lock_current::@4 b4: - //SEG512 [227] *((byte*) play_lock_current::playfield_line#0 + (byte) play_lock_current::col#2) ← (byte) current_piece_color#16 -- pbuz1_derefidx_vbuz2=vbuz3 - lda current_piece_color + //SEG514 [228] *((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 - //SEG513 play_lock_current::@3 + //SEG515 play_lock_current::@3 b3: - //SEG514 [228] (byte) play_lock_current::col#1 ← ++ (byte) play_lock_current::col#2 -- vbuz1=_inc_vbuz1 + //SEG516 [229] (byte) play_lock_current::col#1 ← ++ (byte) play_lock_current::col#2 -- vbuz1=_inc_vbuz1 inc col - //SEG515 [229] (byte) play_lock_current::c#1 ← ++ (byte) play_lock_current::c#2 -- vbuxx=_inc_vbuxx + //SEG517 [230] (byte) play_lock_current::c#1 ← ++ (byte) play_lock_current::c#2 -- vbuxx=_inc_vbuxx inx - //SEG516 [230] 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 + //SEG518 [231] 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 - //SEG517 play_lock_current::@5 + //SEG519 play_lock_current::@5 b5: - //SEG518 [231] (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 + //SEG520 [232] (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 - //SEG519 [232] (byte) play_lock_current::l#1 ← ++ (byte) play_lock_current::l#6 -- vbuz1=_inc_vbuz1 + //SEG521 [233] (byte) play_lock_current::l#1 ← ++ (byte) play_lock_current::l#6 -- vbuz1=_inc_vbuz1 inc l - //SEG520 [233] 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 + //SEG522 [234] 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 - //SEG521 play_lock_current::@return + //SEG523 play_lock_current::@return breturn: - //SEG522 [234] return + //SEG524 [235] return rts - //SEG523 play_lock_current::@7 + //SEG525 play_lock_current::@7 b7: - //SEG524 [235] (byte~) play_lock_current::i#7 ← (byte) play_lock_current::i#1 -- vbuz1=vbuz2 + //SEG526 [236] (byte~) play_lock_current::i#7 ← (byte) play_lock_current::i#1 -- vbuz1=vbuz2 lda i sta i_7 - //SEG525 [221] phi from play_lock_current::@7 to play_lock_current::@1 [phi:play_lock_current::@7->play_lock_current::@1] + //SEG527 [222] phi from play_lock_current::@7 to play_lock_current::@1 [phi:play_lock_current::@7->play_lock_current::@1] b1_from_b7: - //SEG526 [221] 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 - //SEG527 [221] 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 - //SEG528 [221] 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 + //SEG528 [222] 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 + //SEG529 [222] 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 + //SEG530 [222] 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 - //SEG529 play_lock_current::@8 + //SEG531 play_lock_current::@8 b8: - //SEG530 [236] (byte~) play_lock_current::i#9 ← (byte) play_lock_current::i#1 -- vbuz1=vbuz2 + //SEG532 [237] (byte~) play_lock_current::i#9 ← (byte) play_lock_current::i#1 -- vbuz1=vbuz2 lda i sta i_9 - //SEG531 [224] phi from play_lock_current::@8 to play_lock_current::@2 [phi:play_lock_current::@8->play_lock_current::@2] + //SEG533 [225] phi from play_lock_current::@8 to play_lock_current::@2 [phi:play_lock_current::@8->play_lock_current::@2] b2_from_b8: - //SEG532 [224] 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 - //SEG533 [224] 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 - //SEG534 [224] 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 + //SEG534 [225] 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 + //SEG535 [225] 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 + //SEG536 [225] 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 } -//SEG535 keyboard_event_pressed +//SEG537 keyboard_event_pressed keyboard_event_pressed: { .label row_bits = 7 .label keycode = 4 - //SEG536 [238] (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 + //SEG538 [239] (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 - //SEG537 [239] (byte) keyboard_event_pressed::row_bits#0 ← *((const byte[8]) keyboard_scan_values#0 + (byte~) keyboard_event_pressed::$0) -- vbuz1=pbuc1_derefidx_vbuaa + //SEG539 [240] (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 - //SEG538 [240] (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 + //SEG540 [241] (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 - //SEG539 [241] (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 + //SEG541 [242] (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 - //SEG540 keyboard_event_pressed::@return + //SEG542 keyboard_event_pressed::@return breturn: - //SEG541 [242] return + //SEG543 [243] return rts } -//SEG542 keyboard_event_get +//SEG544 keyboard_event_get keyboard_event_get: { - //SEG543 [243] 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 + //SEG545 [244] 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 - //SEG544 keyboard_event_get::@3 + //SEG546 keyboard_event_get::@3 b3: - //SEG545 [244] (byte) keyboard_events_size#4 ← -- (byte) keyboard_events_size#13 -- vbuz1=_dec_vbuz1 + //SEG547 [245] (byte) keyboard_events_size#4 ← -- (byte) keyboard_events_size#13 -- vbuz1=_dec_vbuz1 dec keyboard_events_size - //SEG546 [245] (byte) keyboard_event_get::return#1 ← *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#4) -- vbuaa=pbuc1_derefidx_vbuz1 + //SEG548 [246] (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 - //SEG547 [246] phi from keyboard_event_get::@3 to keyboard_event_get::@return [phi:keyboard_event_get::@3->keyboard_event_get::@return] + //SEG549 [247] phi from keyboard_event_get::@3 to keyboard_event_get::@return [phi:keyboard_event_get::@3->keyboard_event_get::@return] breturn_from_b3: - //SEG548 [246] phi (byte) keyboard_events_size#16 = (byte) keyboard_events_size#4 [phi:keyboard_event_get::@3->keyboard_event_get::@return#0] -- register_copy - //SEG549 [246] 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 + //SEG550 [247] phi (byte) keyboard_events_size#16 = (byte) keyboard_events_size#4 [phi:keyboard_event_get::@3->keyboard_event_get::@return#0] -- register_copy + //SEG551 [247] 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 - //SEG550 [246] phi from keyboard_event_get to keyboard_event_get::@return [phi:keyboard_event_get->keyboard_event_get::@return] + //SEG552 [247] phi from keyboard_event_get to keyboard_event_get::@return [phi:keyboard_event_get->keyboard_event_get::@return] breturn_from_keyboard_event_get: - //SEG551 [246] phi (byte) keyboard_events_size#16 = (byte) keyboard_events_size#13 [phi:keyboard_event_get->keyboard_event_get::@return#0] -- register_copy - //SEG552 [246] 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 + //SEG553 [247] phi (byte) keyboard_events_size#16 = (byte) keyboard_events_size#13 [phi:keyboard_event_get->keyboard_event_get::@return#0] -- register_copy + //SEG554 [247] 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 - //SEG553 keyboard_event_get::@return + //SEG555 keyboard_event_get::@return breturn: - //SEG554 [247] return + //SEG556 [248] return rts } -//SEG555 keyboard_event_scan +//SEG557 keyboard_event_scan keyboard_event_scan: { .label row_scan = 8 .label keycode = 7 .label row = 4 - //SEG556 [249] phi from keyboard_event_scan to keyboard_event_scan::@1 [phi:keyboard_event_scan->keyboard_event_scan::@1] + //SEG558 [250] phi from keyboard_event_scan to keyboard_event_scan::@1 [phi:keyboard_event_scan->keyboard_event_scan::@1] b1_from_keyboard_event_scan: - //SEG557 [249] phi (byte) keyboard_events_size#29 = (byte) keyboard_events_size#19 [phi:keyboard_event_scan->keyboard_event_scan::@1#0] -- register_copy - //SEG558 [249] 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 + //SEG559 [250] phi (byte) keyboard_events_size#29 = (byte) keyboard_events_size#19 [phi:keyboard_event_scan->keyboard_event_scan::@1#0] -- register_copy + //SEG560 [250] 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 - //SEG559 [249] 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 + //SEG561 [250] 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 - //SEG560 [249] phi from keyboard_event_scan::@3 to keyboard_event_scan::@1 [phi:keyboard_event_scan::@3->keyboard_event_scan::@1] + //SEG562 [250] phi from keyboard_event_scan::@3 to keyboard_event_scan::@1 [phi:keyboard_event_scan::@3->keyboard_event_scan::@1] b1_from_b3: - //SEG561 [249] phi (byte) keyboard_events_size#29 = (byte) keyboard_events_size#13 [phi:keyboard_event_scan::@3->keyboard_event_scan::@1#0] -- register_copy - //SEG562 [249] 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 - //SEG563 [249] 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 + //SEG563 [250] phi (byte) keyboard_events_size#29 = (byte) keyboard_events_size#13 [phi:keyboard_event_scan::@3->keyboard_event_scan::@1#0] -- register_copy + //SEG564 [250] 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 + //SEG565 [250] 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 - //SEG564 keyboard_event_scan::@1 + //SEG566 keyboard_event_scan::@1 b1: - //SEG565 [250] (byte) keyboard_matrix_read::rowid#0 ← (byte) keyboard_event_scan::row#2 -- vbuxx=vbuz1 + //SEG567 [251] (byte) keyboard_matrix_read::rowid#0 ← (byte) keyboard_event_scan::row#2 -- vbuxx=vbuz1 ldx row - //SEG566 [251] call keyboard_matrix_read + //SEG568 [252] call keyboard_matrix_read jsr keyboard_matrix_read - //SEG567 [252] (byte) keyboard_matrix_read::return#2 ← (byte) keyboard_matrix_read::return#0 + //SEG569 [253] (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 - //SEG568 keyboard_event_scan::@25 + //SEG570 keyboard_event_scan::@25 b25: - //SEG569 [253] (byte) keyboard_event_scan::row_scan#0 ← (byte) keyboard_matrix_read::return#2 -- vbuz1=vbuaa + //SEG571 [254] (byte) keyboard_event_scan::row_scan#0 ← (byte) keyboard_matrix_read::return#2 -- vbuz1=vbuaa sta row_scan - //SEG570 [254] 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 + //SEG572 [255] 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 - //SEG571 keyboard_event_scan::@13 + //SEG573 keyboard_event_scan::@13 b13: - //SEG572 [255] (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 + //SEG574 [256] (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 - //SEG573 [256] 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] + //SEG575 [257] 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: - //SEG574 [256] 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 - //SEG575 [256] 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 + //SEG576 [257] 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 + //SEG577 [257] 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 - //SEG576 keyboard_event_scan::@3 + //SEG578 keyboard_event_scan::@3 b3: - //SEG577 [257] (byte) keyboard_event_scan::row#1 ← ++ (byte) keyboard_event_scan::row#2 -- vbuz1=_inc_vbuz1 + //SEG579 [258] (byte) keyboard_event_scan::row#1 ← ++ (byte) keyboard_event_scan::row#2 -- vbuz1=_inc_vbuz1 inc row - //SEG578 [258] 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 + //SEG580 [259] 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 - //SEG579 [259] phi from keyboard_event_scan::@3 to keyboard_event_scan::@20 [phi:keyboard_event_scan::@3->keyboard_event_scan::@20] + //SEG581 [260] 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 - //SEG580 keyboard_event_scan::@20 + //SEG582 keyboard_event_scan::@20 b20: - //SEG581 [260] call keyboard_event_pressed - //SEG582 [237] phi from keyboard_event_scan::@20 to keyboard_event_pressed [phi:keyboard_event_scan::@20->keyboard_event_pressed] + //SEG583 [261] call keyboard_event_pressed + //SEG584 [238] phi from keyboard_event_scan::@20 to keyboard_event_pressed [phi:keyboard_event_scan::@20->keyboard_event_pressed] keyboard_event_pressed_from_b20: - //SEG583 [237] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_LSHIFT#0 [phi:keyboard_event_scan::@20->keyboard_event_pressed#0] -- vbuz1=vbuc1 + //SEG585 [238] 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 - //SEG584 [261] (byte) keyboard_event_pressed::return#0 ← (byte) keyboard_event_pressed::return#11 + //SEG586 [262] (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 - //SEG585 keyboard_event_scan::@26 + //SEG587 keyboard_event_scan::@26 b26: - //SEG586 [262] (byte~) keyboard_event_scan::$14 ← (byte) keyboard_event_pressed::return#0 + //SEG588 [263] (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 - //SEG587 [263] 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 + //SEG589 [264] 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 - //SEG588 [264] phi from keyboard_event_scan::@26 to keyboard_event_scan::@21 [phi:keyboard_event_scan::@26->keyboard_event_scan::@21] + //SEG590 [265] 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 - //SEG589 keyboard_event_scan::@21 + //SEG591 keyboard_event_scan::@21 b21: - //SEG590 [265] phi from keyboard_event_scan::@21 to keyboard_event_scan::@9 [phi:keyboard_event_scan::@21->keyboard_event_scan::@9] + //SEG592 [266] phi from keyboard_event_scan::@21 to keyboard_event_scan::@9 [phi:keyboard_event_scan::@21->keyboard_event_scan::@9] b9_from_b21: - //SEG591 [265] 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 + //SEG593 [266] 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 - //SEG592 [265] phi from keyboard_event_scan::@26 to keyboard_event_scan::@9 [phi:keyboard_event_scan::@26->keyboard_event_scan::@9] + //SEG594 [266] phi from keyboard_event_scan::@26 to keyboard_event_scan::@9 [phi:keyboard_event_scan::@26->keyboard_event_scan::@9] b9_from_b26: - //SEG593 [265] 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 + //SEG595 [266] 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 - //SEG594 keyboard_event_scan::@9 + //SEG596 keyboard_event_scan::@9 b9: - //SEG595 [266] call keyboard_event_pressed - //SEG596 [237] phi from keyboard_event_scan::@9 to keyboard_event_pressed [phi:keyboard_event_scan::@9->keyboard_event_pressed] + //SEG597 [267] call keyboard_event_pressed + //SEG598 [238] phi from keyboard_event_scan::@9 to keyboard_event_pressed [phi:keyboard_event_scan::@9->keyboard_event_pressed] keyboard_event_pressed_from_b9: - //SEG597 [237] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_RSHIFT#0 [phi:keyboard_event_scan::@9->keyboard_event_pressed#0] -- vbuz1=vbuc1 + //SEG599 [238] 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 - //SEG598 [267] (byte) keyboard_event_pressed::return#1 ← (byte) keyboard_event_pressed::return#11 + //SEG600 [268] (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 - //SEG599 keyboard_event_scan::@27 + //SEG601 keyboard_event_scan::@27 b27: - //SEG600 [268] (byte~) keyboard_event_scan::$18 ← (byte) keyboard_event_pressed::return#1 + //SEG602 [269] (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 - //SEG601 [269] 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 + //SEG603 [270] 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 - //SEG602 keyboard_event_scan::@22 + //SEG604 keyboard_event_scan::@22 b22: - //SEG603 [270] (byte) keyboard_modifiers#3 ← (byte) keyboard_modifiers#11 | (const byte) KEY_MODIFIER_RSHIFT#0 -- vbuxx=vbuxx_bor_vbuc1 + //SEG605 [271] (byte) keyboard_modifiers#3 ← (byte) keyboard_modifiers#11 | (const byte) KEY_MODIFIER_RSHIFT#0 -- vbuxx=vbuxx_bor_vbuc1 txa ora #KEY_MODIFIER_RSHIFT tax - //SEG604 [271] 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] + //SEG606 [272] 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: - //SEG605 [271] 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 + //SEG607 [272] 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 - //SEG606 keyboard_event_scan::@10 + //SEG608 keyboard_event_scan::@10 b10: - //SEG607 [272] call keyboard_event_pressed - //SEG608 [237] phi from keyboard_event_scan::@10 to keyboard_event_pressed [phi:keyboard_event_scan::@10->keyboard_event_pressed] + //SEG609 [273] call keyboard_event_pressed + //SEG610 [238] phi from keyboard_event_scan::@10 to keyboard_event_pressed [phi:keyboard_event_scan::@10->keyboard_event_pressed] keyboard_event_pressed_from_b10: - //SEG609 [237] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_CTRL#0 [phi:keyboard_event_scan::@10->keyboard_event_pressed#0] -- vbuz1=vbuc1 + //SEG611 [238] 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 - //SEG610 [273] (byte) keyboard_event_pressed::return#2 ← (byte) keyboard_event_pressed::return#11 + //SEG612 [274] (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 - //SEG611 keyboard_event_scan::@28 + //SEG613 keyboard_event_scan::@28 b28: - //SEG612 [274] (byte~) keyboard_event_scan::$22 ← (byte) keyboard_event_pressed::return#2 + //SEG614 [275] (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 - //SEG613 [275] 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 + //SEG615 [276] 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 - //SEG614 keyboard_event_scan::@23 + //SEG616 keyboard_event_scan::@23 b23: - //SEG615 [276] (byte) keyboard_modifiers#4 ← (byte) keyboard_modifiers#12 | (const byte) KEY_MODIFIER_CTRL#0 -- vbuxx=vbuxx_bor_vbuc1 + //SEG617 [277] (byte) keyboard_modifiers#4 ← (byte) keyboard_modifiers#12 | (const byte) KEY_MODIFIER_CTRL#0 -- vbuxx=vbuxx_bor_vbuc1 txa ora #KEY_MODIFIER_CTRL tax - //SEG616 [277] 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] + //SEG618 [278] 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: - //SEG617 [277] 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 + //SEG619 [278] 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 - //SEG618 keyboard_event_scan::@11 + //SEG620 keyboard_event_scan::@11 b11: - //SEG619 [278] call keyboard_event_pressed - //SEG620 [237] phi from keyboard_event_scan::@11 to keyboard_event_pressed [phi:keyboard_event_scan::@11->keyboard_event_pressed] + //SEG621 [279] call keyboard_event_pressed + //SEG622 [238] phi from keyboard_event_scan::@11 to keyboard_event_pressed [phi:keyboard_event_scan::@11->keyboard_event_pressed] keyboard_event_pressed_from_b11: - //SEG621 [237] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_COMMODORE#0 [phi:keyboard_event_scan::@11->keyboard_event_pressed#0] -- vbuz1=vbuc1 + //SEG623 [238] 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 - //SEG622 [279] (byte) keyboard_event_pressed::return#10 ← (byte) keyboard_event_pressed::return#11 + //SEG624 [280] (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 - //SEG623 keyboard_event_scan::@29 + //SEG625 keyboard_event_scan::@29 b29: - //SEG624 [280] (byte~) keyboard_event_scan::$26 ← (byte) keyboard_event_pressed::return#10 + //SEG626 [281] (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 - //SEG625 [281] 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 + //SEG627 [282] 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 - //SEG626 keyboard_event_scan::@24 + //SEG628 keyboard_event_scan::@24 b24: - //SEG627 [282] (byte) keyboard_modifiers#5 ← (byte) keyboard_modifiers#13 | (const byte) KEY_MODIFIER_COMMODORE#0 -- vbuaa=vbuxx_bor_vbuc1 + //SEG629 [283] (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 - //SEG628 keyboard_event_scan::@return + //SEG630 keyboard_event_scan::@return breturn: - //SEG629 [283] return + //SEG631 [284] return rts - //SEG630 [284] phi from keyboard_event_scan::@25 to keyboard_event_scan::@4 [phi:keyboard_event_scan::@25->keyboard_event_scan::@4] + //SEG632 [285] phi from keyboard_event_scan::@25 to keyboard_event_scan::@4 [phi:keyboard_event_scan::@25->keyboard_event_scan::@4] b4_from_b25: - //SEG631 [284] phi (byte) keyboard_events_size#10 = (byte) keyboard_events_size#29 [phi:keyboard_event_scan::@25->keyboard_event_scan::@4#0] -- register_copy - //SEG632 [284] 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 - //SEG633 [284] 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 + //SEG633 [285] phi (byte) keyboard_events_size#10 = (byte) keyboard_events_size#29 [phi:keyboard_event_scan::@25->keyboard_event_scan::@4#0] -- register_copy + //SEG634 [285] 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 + //SEG635 [285] 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 - //SEG634 [284] phi from keyboard_event_scan::@5 to keyboard_event_scan::@4 [phi:keyboard_event_scan::@5->keyboard_event_scan::@4] + //SEG636 [285] phi from keyboard_event_scan::@5 to keyboard_event_scan::@4 [phi:keyboard_event_scan::@5->keyboard_event_scan::@4] b4_from_b5: - //SEG635 [284] phi (byte) keyboard_events_size#10 = (byte) keyboard_events_size#30 [phi:keyboard_event_scan::@5->keyboard_event_scan::@4#0] -- register_copy - //SEG636 [284] 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 - //SEG637 [284] 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 + //SEG637 [285] phi (byte) keyboard_events_size#10 = (byte) keyboard_events_size#30 [phi:keyboard_event_scan::@5->keyboard_event_scan::@4#0] -- register_copy + //SEG638 [285] 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 + //SEG639 [285] 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 - //SEG638 keyboard_event_scan::@4 + //SEG640 keyboard_event_scan::@4 b4: - //SEG639 [285] (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 + //SEG641 [286] (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 - //SEG640 [286] (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 + //SEG642 [287] (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 - //SEG641 [287] 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 + //SEG643 [288] 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 - //SEG642 keyboard_event_scan::@15 + //SEG644 keyboard_event_scan::@15 b15: - //SEG643 [288] 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 + //SEG645 [289] 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 - //SEG644 keyboard_event_scan::@16 + //SEG646 keyboard_event_scan::@16 b16: - //SEG645 [289] (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 + //SEG647 [290] (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 - //SEG646 [290] 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 + //SEG648 [291] 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 - //SEG647 keyboard_event_scan::@17 + //SEG649 keyboard_event_scan::@17 b17: - //SEG648 [291] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte) keyboard_event_scan::keycode#10 -- pbuc1_derefidx_vbuz1=vbuz2 + //SEG650 [292] *((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 - //SEG649 [292] (byte) keyboard_events_size#2 ← ++ (byte) keyboard_events_size#10 -- vbuz1=_inc_vbuz1 + //SEG651 [293] (byte) keyboard_events_size#2 ← ++ (byte) keyboard_events_size#10 -- vbuz1=_inc_vbuz1 inc keyboard_events_size - //SEG650 [293] 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] + //SEG652 [294] 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: - //SEG651 [293] 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 + //SEG653 [294] 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 - //SEG652 keyboard_event_scan::@5 + //SEG654 keyboard_event_scan::@5 b5: - //SEG653 [294] (byte) keyboard_event_scan::keycode#15 ← ++ (byte) keyboard_event_scan::keycode#10 -- vbuz1=_inc_vbuz1 + //SEG655 [295] (byte) keyboard_event_scan::keycode#15 ← ++ (byte) keyboard_event_scan::keycode#10 -- vbuz1=_inc_vbuz1 inc keycode - //SEG654 [295] (byte) keyboard_event_scan::col#1 ← ++ (byte) keyboard_event_scan::col#2 -- vbuxx=_inc_vbuxx + //SEG656 [296] (byte) keyboard_event_scan::col#1 ← ++ (byte) keyboard_event_scan::col#2 -- vbuxx=_inc_vbuxx inx - //SEG655 [296] 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 + //SEG657 [297] 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 - //SEG656 keyboard_event_scan::@19 + //SEG658 keyboard_event_scan::@19 b19: - //SEG657 [297] *((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2) ← (byte) keyboard_event_scan::row_scan#0 -- pbuc1_derefidx_vbuz1=vbuz2 + //SEG659 [298] *((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 - //SEG658 keyboard_event_scan::@7 + //SEG660 keyboard_event_scan::@7 b7: - //SEG659 [298] (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 + //SEG661 [299] (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 - //SEG660 [299] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte/word/dword~) keyboard_event_scan::$11 -- pbuc1_derefidx_vbuz1=vbuaa + //SEG662 [300] *((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 - //SEG661 [300] (byte) keyboard_events_size#1 ← ++ (byte) keyboard_events_size#10 -- vbuz1=_inc_vbuz1 + //SEG663 [301] (byte) keyboard_events_size#1 ← ++ (byte) keyboard_events_size#10 -- vbuz1=_inc_vbuz1 inc keyboard_events_size jmp b5_from_b7 } -//SEG662 keyboard_matrix_read +//SEG664 keyboard_matrix_read keyboard_matrix_read: { - //SEG663 [301] *((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 + //SEG665 [302] *((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 - //SEG664 [302] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) -- vbuaa=_bnot__deref_pbuc1 + //SEG666 [303] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) -- vbuaa=_bnot__deref_pbuc1 lda CIA1_PORT_B eor #$ff jmp breturn - //SEG665 keyboard_matrix_read::@return + //SEG667 keyboard_matrix_read::@return breturn: - //SEG666 [303] return + //SEG668 [304] return rts } -//SEG667 play_init +//SEG669 play_init play_init: { .label pli = 5 .label idx = 2 - //SEG668 [305] phi from play_init to play_init::@1 [phi:play_init->play_init::@1] + //SEG670 [306] phi from play_init to play_init::@1 [phi:play_init->play_init::@1] b1_from_play_init: - //SEG669 [305] 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 + //SEG671 [306] 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 - //SEG670 [305] 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 + //SEG672 [306] 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 - //SEG671 [305] 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 + //SEG673 [306] 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 - //SEG672 [305] phi from play_init::@1 to play_init::@1 [phi:play_init::@1->play_init::@1] + //SEG674 [306] phi from play_init::@1 to play_init::@1 [phi:play_init::@1->play_init::@1] b1_from_b1: - //SEG673 [305] phi (byte) play_init::idx#2 = (byte) play_init::idx#1 [phi:play_init::@1->play_init::@1#0] -- register_copy - //SEG674 [305] phi (byte*) play_init::pli#2 = (byte*) play_init::pli#1 [phi:play_init::@1->play_init::@1#1] -- register_copy - //SEG675 [305] phi (byte) play_init::j#2 = (byte) play_init::j#1 [phi:play_init::@1->play_init::@1#2] -- register_copy + //SEG675 [306] phi (byte) play_init::idx#2 = (byte) play_init::idx#1 [phi:play_init::@1->play_init::@1#0] -- register_copy + //SEG676 [306] phi (byte*) play_init::pli#2 = (byte*) play_init::pli#1 [phi:play_init::@1->play_init::@1#1] -- register_copy + //SEG677 [306] phi (byte) play_init::j#2 = (byte) play_init::j#1 [phi:play_init::@1->play_init::@1#2] -- register_copy jmp b1 - //SEG676 play_init::@1 + //SEG678 play_init::@1 b1: - //SEG677 [306] (byte~) play_init::$1 ← (byte) play_init::j#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuaa=vbuxx_rol_1 + //SEG679 [307] (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 - //SEG678 [307] *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte~) play_init::$1) ← (byte*) play_init::pli#2 -- pptc1_derefidx_vbuaa=pbuz1 + //SEG680 [308] *((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 - //SEG679 [308] *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0 + (byte) play_init::j#2) ← (byte) play_init::idx#2 -- pbuc1_derefidx_vbuxx=vbuz1 + //SEG681 [309] *((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 - //SEG680 [309] (byte*) play_init::pli#1 ← (byte*) play_init::pli#2 + (const byte) PLAYFIELD_COLS#0 -- pbuz1=pbuz1_plus_vbuc1 + //SEG682 [310] (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 @@ -11620,91 +12319,119 @@ play_init: { bcc !+ inc pli+1 !: - //SEG681 [310] (byte) play_init::idx#1 ← (byte) play_init::idx#2 + (const byte) PLAYFIELD_COLS#0 -- vbuz1=vbuz1_plus_vbuc1 + //SEG683 [311] (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 - //SEG682 [311] (byte) play_init::j#1 ← ++ (byte) play_init::j#2 -- vbuxx=_inc_vbuxx + //SEG684 [312] (byte) play_init::j#1 ← ++ (byte) play_init::j#2 -- vbuxx=_inc_vbuxx inx - //SEG683 [312] 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 + //SEG685 [313] 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 - //SEG684 play_init::@2 + //SEG686 play_init::@2 b2: - //SEG685 [313] *((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 + //SEG687 [314] *((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 - //SEG686 play_init::@return + //SEG688 play_init::@return breturn: - //SEG687 [314] return + //SEG689 [315] return rts } -//SEG688 render_init +//SEG690 render_init render_init: { - .label _10 = $c + .const vicSelectGfxBank1_toDd001_return = 3^(>PLAYFIELD_SCREEN)>>6 + .const toD0181_return = (>(PLAYFIELD_SCREEN&$3fff)<<2)|(>PLAYFIELD_CHARSET)>>2&$f + .label _15 = $c .label li = 5 .label line = 5 .label l = 2 - //SEG689 [315] *((const byte*) BGCOL#0) ← (const byte) BLACK#0 -- _deref_pbuc1=vbuc2 + jmp vicSelectGfxBank1 + //SEG691 render_init::vicSelectGfxBank1 + vicSelectGfxBank1: + //SEG692 [317] *((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 + //SEG693 [318] 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 + //SEG694 render_init::vicSelectGfxBank1_toDd001 + vicSelectGfxBank1_toDd001: + jmp vicSelectGfxBank1_b1 + //SEG695 render_init::vicSelectGfxBank1_@1 + vicSelectGfxBank1_b1: + //SEG696 [319] *((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 + //SEG697 [320] phi from render_init::vicSelectGfxBank1_@1 to render_init::toD0181 [phi:render_init::vicSelectGfxBank1_@1->render_init::toD0181] + toD0181_from_vicSelectGfxBank1_b1: + jmp toD0181 + //SEG698 render_init::toD0181 + toD0181: + jmp b8 + //SEG699 render_init::@8 + b8: + //SEG700 [321] *((const byte*) D018#0) ← (const byte) render_init::toD0181_return#0 -- _deref_pbuc1=vbuc2 + lda #toD0181_return + sta D018 + //SEG701 [322] *((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 + //SEG702 [323] *((const byte*) BGCOL1#0) ← (const byte) BLACK#0 -- _deref_pbuc1=vbuc2 lda #BLACK - sta BGCOL - //SEG690 [316] call fill - //SEG691 [335] phi from render_init to fill [phi:render_init->fill] - fill_from_render_init: - //SEG692 [335] phi (byte) fill::val#3 = (byte/word/signed word/dword/signed dword) 208 [phi:render_init->fill#0] -- vbuxx=vbuc1 - ldx #$d0 - //SEG693 [335] phi (byte*) fill::addr#0 = (const byte*) PLAYFIELD_SCREEN#0 [phi:render_init->fill#1] -- pbuz1=pbuc1 - lda #PLAYFIELD_SCREEN - sta fill.addr+1 + sta BGCOL1 + //SEG703 [324] *((const byte*) BGCOL2#0) ← (const byte) BLUE#0 -- _deref_pbuc1=vbuc2 + lda #BLUE + sta BGCOL2 + //SEG704 [325] *((const byte*) BGCOL3#0) ← (const byte) CYAN#0 -- _deref_pbuc1=vbuc2 + lda #CYAN + sta BGCOL3 + //SEG705 [326] *((const byte*) BGCOL4#0) ← (const byte) GREY#0 -- _deref_pbuc1=vbuc2 + lda #GREY + sta BGCOL4 + //SEG706 [327] call fill + //SEG707 [368] phi from render_init::@8 to fill [phi:render_init::@8->fill] + fill_from_b8: jsr fill - //SEG694 [317] phi from render_init to render_init::@7 [phi:render_init->render_init::@7] - b7_from_render_init: - jmp b7 - //SEG695 render_init::@7 - b7: - //SEG696 [318] call fill - //SEG697 [335] phi from render_init::@7 to fill [phi:render_init::@7->fill] - fill_from_b7: - //SEG698 [335] phi (byte) fill::val#3 = (const byte) BLACK#0 [phi:render_init::@7->fill#0] -- vbuxx=vbuc1 - ldx #BLACK - //SEG699 [335] phi (byte*) fill::addr#0 = (const byte*) COLS#0 [phi:render_init::@7->fill#1] -- pbuz1=pbuc1 - lda #COLS - sta fill.addr+1 - jsr fill - //SEG700 [319] phi from render_init::@7 to render_init::@1 [phi:render_init::@7->render_init::@1] - b1_from_b7: - //SEG701 [319] phi (byte*) render_init::li#2 = (const byte*) COLS#0+(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 15 [phi:render_init::@7->render_init::@1#0] -- pbuz1=pbuc1 - lda #render_init::@9] + b9_from_b8: + jmp b9 + //SEG709 render_init::@9 + b9: + //SEG710 [329] call render_screen_original + //SEG711 [346] 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 + //SEG712 [330] phi from render_init::@9 to render_init::@1 [phi:render_init::@9->render_init::@1] + b1_from_b9: + //SEG713 [330] phi (byte*) render_init::li#2 = (const byte*) PLAYFIELD_SCREEN#0+(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 #COLS+$28+$f + lda #>PLAYFIELD_SCREEN+$28+$10 sta li+1 - //SEG702 [319] phi (byte) render_init::i#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_init::@7->render_init::@1#1] -- vbuxx=vbuc1 + //SEG714 [330] 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 - //SEG703 [319] phi from render_init::@1 to render_init::@1 [phi:render_init::@1->render_init::@1] + //SEG715 [330] phi from render_init::@1 to render_init::@1 [phi:render_init::@1->render_init::@1] b1_from_b1: - //SEG704 [319] phi (byte*) render_init::li#2 = (byte*) render_init::li#1 [phi:render_init::@1->render_init::@1#0] -- register_copy - //SEG705 [319] phi (byte) render_init::i#2 = (byte) render_init::i#1 [phi:render_init::@1->render_init::@1#1] -- register_copy + //SEG716 [330] phi (byte*) render_init::li#2 = (byte*) render_init::li#1 [phi:render_init::@1->render_init::@1#0] -- register_copy + //SEG717 [330] phi (byte) render_init::i#2 = (byte) render_init::i#1 [phi:render_init::@1->render_init::@1#1] -- register_copy jmp b1 - //SEG706 render_init::@1 + //SEG718 render_init::@1 b1: - //SEG707 [320] (byte~) render_init::$5 ← (byte) render_init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuaa=vbuxx_rol_1 + //SEG719 [331] (byte~) render_init::$10 ← (byte) render_init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuaa=vbuxx_rol_1 txa asl - //SEG708 [321] *((const byte*[PLAYFIELD_LINES#0+3]) screen_lines#0 + (byte~) render_init::$5) ← (byte*) render_init::li#2 -- pptc1_derefidx_vbuaa=pbuz1 + //SEG720 [332] *((const byte*[PLAYFIELD_LINES#0+3]) screen_lines#0 + (byte~) render_init::$10) ← (byte*) render_init::li#2 -- pptc1_derefidx_vbuaa=pbuz1 tay lda li sta screen_lines,y lda li+1 sta screen_lines+1,y - //SEG709 [322] (byte*) render_init::li#1 ← (byte*) render_init::li#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 -- pbuz1=pbuz1_plus_vbuc1 + //SEG721 [333] (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 @@ -11712,61 +12439,61 @@ render_init: { bcc !+ inc li+1 !: - //SEG710 [323] (byte) render_init::i#1 ← ++ (byte) render_init::i#2 -- vbuxx=_inc_vbuxx + //SEG722 [334] (byte) render_init::i#1 ← ++ (byte) render_init::i#2 -- vbuxx=_inc_vbuxx inx - //SEG711 [324] if((byte) render_init::i#1!=(const byte) PLAYFIELD_LINES#0+(byte/signed byte/word/signed word/dword/signed dword) 2+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_init::@1 -- vbuxx_neq_vbuc1_then_la1 + //SEG723 [335] if((byte) render_init::i#1!=(const byte) PLAYFIELD_LINES#0+(byte/signed byte/word/signed word/dword/signed dword) 2+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_init::@1 -- vbuxx_neq_vbuc1_then_la1 cpx #PLAYFIELD_LINES+2+1 bne b1_from_b1 - //SEG712 [325] phi from render_init::@1 to render_init::@2 [phi:render_init::@1->render_init::@2] + //SEG724 [336] phi from render_init::@1 to render_init::@2 [phi:render_init::@1->render_init::@2] b2_from_b1: - //SEG713 [325] phi (byte) render_init::l#4 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_init::@1->render_init::@2#0] -- vbuz1=vbuc1 + //SEG725 [336] phi (byte) render_init::l#4 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_init::@1->render_init::@2#0] -- vbuz1=vbuc1 lda #0 sta l - //SEG714 [325] phi (byte*) render_init::line#4 = (const byte*) COLS#0+(byte/signed byte/word/signed word/dword/signed dword) 14 [phi:render_init::@1->render_init::@2#1] -- pbuz1=pbuc1 - lda #render_init::@2#1] -- pbuz1=pbuc1 + lda #COLS+$e + lda #>COLS+$f sta line+1 jmp b2 - //SEG715 [325] phi from render_init::@5 to render_init::@2 [phi:render_init::@5->render_init::@2] + //SEG727 [336] phi from render_init::@5 to render_init::@2 [phi:render_init::@5->render_init::@2] b2_from_b5: - //SEG716 [325] phi (byte) render_init::l#4 = (byte) render_init::l#1 [phi:render_init::@5->render_init::@2#0] -- register_copy - //SEG717 [325] phi (byte*) render_init::line#4 = (byte*) render_init::line#1 [phi:render_init::@5->render_init::@2#1] -- register_copy + //SEG728 [336] phi (byte) render_init::l#4 = (byte) render_init::l#1 [phi:render_init::@5->render_init::@2#0] -- register_copy + //SEG729 [336] phi (byte*) render_init::line#4 = (byte*) render_init::line#1 [phi:render_init::@5->render_init::@2#1] -- register_copy jmp b2 - //SEG718 render_init::@2 + //SEG730 render_init::@2 b2: - //SEG719 [326] phi from render_init::@2 to render_init::@3 [phi:render_init::@2->render_init::@3] + //SEG731 [337] phi from render_init::@2 to render_init::@3 [phi:render_init::@2->render_init::@3] b3_from_b2: - //SEG720 [326] 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 + //SEG732 [337] 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 - //SEG721 [326] phi from render_init::@3 to render_init::@3 [phi:render_init::@3->render_init::@3] + //SEG733 [337] phi from render_init::@3 to render_init::@3 [phi:render_init::@3->render_init::@3] b3_from_b3: - //SEG722 [326] phi (byte) render_init::c#2 = (byte) render_init::c#1 [phi:render_init::@3->render_init::@3#0] -- register_copy + //SEG734 [337] phi (byte) render_init::c#2 = (byte) render_init::c#1 [phi:render_init::@3->render_init::@3#0] -- register_copy jmp b3 - //SEG723 render_init::@3 + //SEG735 render_init::@3 b3: - //SEG724 [327] (byte*~) render_init::$10 ← (byte*) render_init::line#4 + (byte) render_init::c#2 -- pbuz1=pbuz2_plus_vbuxx + //SEG736 [338] (byte*~) render_init::$15 ← (byte*) render_init::line#4 + (byte) render_init::c#2 -- pbuz1=pbuz2_plus_vbuxx txa clc adc line - sta _10 + sta _15 lda #0 adc line+1 - sta _10+1 - //SEG725 [328] *((byte*~) render_init::$10) ← (const byte) DARK_GREY#0 -- _deref_pbuz1=vbuc1 - lda #DARK_GREY + sta _15+1 + //SEG737 [339] *((byte*~) render_init::$15) ← (const byte) WHITE#0 -- _deref_pbuz1=vbuc1 + lda #WHITE ldy #0 - sta (_10),y - //SEG726 [329] (byte) render_init::c#1 ← ++ (byte) render_init::c#2 -- vbuxx=_inc_vbuxx + sta (_15),y + //SEG738 [340] (byte) render_init::c#1 ← ++ (byte) render_init::c#2 -- vbuxx=_inc_vbuxx inx - //SEG727 [330] 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 + //SEG739 [341] 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 - //SEG728 render_init::@5 + //SEG740 render_init::@5 b5: - //SEG729 [331] (byte*) render_init::line#1 ← (byte*) render_init::line#4 + (byte/signed byte/word/signed word/dword/signed dword) 40 -- pbuz1=pbuz1_plus_vbuc1 + //SEG741 [342] (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 @@ -11774,73 +12501,199 @@ render_init: { bcc !+ inc line+1 !: - //SEG730 [332] (byte) render_init::l#1 ← ++ (byte) render_init::l#4 -- vbuz1=_inc_vbuz1 + //SEG742 [343] (byte) render_init::l#1 ← ++ (byte) render_init::l#4 -- vbuz1=_inc_vbuz1 inc l - //SEG731 [333] 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 + //SEG743 [344] 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 - //SEG732 render_init::@return + //SEG744 render_init::@return breturn: - //SEG733 [334] return + //SEG745 [345] return rts } -//SEG734 fill -fill: { - .label end = $c - .label addr = 5 - //SEG735 [336] (byte*) fill::end#0 ← (byte*) fill::addr#0 + (word/signed word/dword/signed dword) 1000 -- pbuz1=pbuz2_plus_vwuc1 - lda addr - clc - adc #<$3e8 - sta end - lda addr+1 - adc #>$3e8 - sta end+1 - //SEG736 [337] phi from fill fill::@1 to fill::@1 [phi:fill/fill::@1->fill::@1] - b1_from_fill: - b1_from_b1: - //SEG737 [337] phi (byte*) fill::addr#2 = (byte*) fill::addr#0 [phi:fill/fill::@1->fill::@1#0] -- register_copy +//SEG746 render_screen_original +render_screen_original: { + .const SPACE = 0 + .label screen = $c + .label orig = 5 + .label y = 2 + //SEG747 [347] phi from render_screen_original to render_screen_original::@1 [phi:render_screen_original->render_screen_original::@1] + b1_from_render_screen_original: + //SEG748 [347] 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 + //SEG749 [347] 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 + //SEG750 [347] 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 - //SEG738 fill::@1 + //SEG751 [347] phi from render_screen_original::@7 to render_screen_original::@1 [phi:render_screen_original::@7->render_screen_original::@1] + b1_from_b7: + //SEG752 [347] 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 + //SEG753 [347] 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 + //SEG754 [347] 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 + //SEG755 render_screen_original::@1 b1: - //SEG739 [338] *((byte*) fill::addr#2) ← (byte) fill::val#3 -- _deref_pbuz1=vbuxx - txa + //SEG756 [348] phi from render_screen_original::@1 to render_screen_original::@2 [phi:render_screen_original::@1->render_screen_original::@2] + b2_from_b1: + //SEG757 [348] 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 + //SEG758 [348] 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 + //SEG759 [348] phi from render_screen_original::@2 to render_screen_original::@2 [phi:render_screen_original::@2->render_screen_original::@2] + b2_from_b2: + //SEG760 [348] 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 + //SEG761 [348] 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 + //SEG762 render_screen_original::@2 + b2: + //SEG763 [349] *((byte*) render_screen_original::screen#4) ← (const byte) render_screen_original::SPACE#0 -- _deref_pbuz1=vbuc1 + lda #SPACE + ldy #0 + sta (screen),y + //SEG764 [350] (byte*) render_screen_original::screen#1 ← ++ (byte*) render_screen_original::screen#4 -- pbuz1=_inc_pbuz1 + inc screen + bne !+ + inc screen+1 + !: + //SEG765 [351] (byte) render_screen_original::x#1 ← ++ (byte) render_screen_original::x#4 -- vbuxx=_inc_vbuxx + inx + //SEG766 [352] 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 + //SEG767 [353] 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: + //SEG768 [353] 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 + //SEG769 [353] 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 + //SEG770 [353] 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 + //SEG771 render_screen_original::@3 + b3: + //SEG772 [354] (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 + //SEG773 [355] *((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 + //SEG774 [356] (byte*) render_screen_original::screen#2 ← ++ (byte*) render_screen_original::screen#5 -- pbuz1=_inc_pbuz1 + inc screen + bne !+ + inc screen+1 + !: + //SEG775 [357] (byte*) render_screen_original::orig#1 ← ++ (byte*) render_screen_original::orig#2 -- pbuz1=_inc_pbuz1 + inc orig + bne !+ + inc orig+1 + !: + //SEG776 [358] (byte) render_screen_original::x#2 ← ++ (byte) render_screen_original::x#5 -- vbuxx=_inc_vbuxx + inx + //SEG777 [359] 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 + //SEG778 [360] 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: + //SEG779 [360] 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 + //SEG780 [360] 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 + //SEG781 render_screen_original::@4 + b4: + //SEG782 [361] *((byte*) render_screen_original::screen#6) ← (const byte) render_screen_original::SPACE#0 -- _deref_pbuz1=vbuc1 + lda #SPACE + ldy #0 + sta (screen),y + //SEG783 [362] (byte*) render_screen_original::screen#3 ← ++ (byte*) render_screen_original::screen#6 -- pbuz1=_inc_pbuz1 + inc screen + bne !+ + inc screen+1 + !: + //SEG784 [363] (byte) render_screen_original::x#3 ← ++ (byte) render_screen_original::x#6 -- vbuxx=_inc_vbuxx + inx + //SEG785 [364] 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 + //SEG786 render_screen_original::@7 + b7: + //SEG787 [365] (byte) render_screen_original::y#1 ← ++ (byte) render_screen_original::y#6 -- vbuz1=_inc_vbuz1 + inc y + //SEG788 [366] 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 + //SEG789 render_screen_original::@return + breturn: + //SEG790 [367] return + rts +} +//SEG791 fill +fill: { + .const size = $3e8 + .label end = COLS+size + .label addr = 5 + //SEG792 [369] phi from fill to fill::@1 [phi:fill->fill::@1] + b1_from_fill: + //SEG793 [369] phi (byte*) fill::addr#2 = (const byte*) COLS#0 [phi:fill->fill::@1#0] -- pbuz1=pbuc1 + lda #COLS + sta addr+1 + jmp b1 + //SEG794 [369] phi from fill::@1 to fill::@1 [phi:fill::@1->fill::@1] + b1_from_b1: + //SEG795 [369] phi (byte*) fill::addr#2 = (byte*) fill::addr#1 [phi:fill::@1->fill::@1#0] -- register_copy + jmp b1 + //SEG796 fill::@1 + b1: + //SEG797 [370] *((byte*) fill::addr#2) ← (const byte) DARK_GREY#0 -- _deref_pbuz1=vbuc1 + lda #DARK_GREY ldy #0 sta (addr),y - //SEG740 [339] (byte*) fill::addr#1 ← ++ (byte*) fill::addr#2 -- pbuz1=_inc_pbuz1 + //SEG798 [371] (byte*) fill::addr#1 ← ++ (byte*) fill::addr#2 -- pbuz1=_inc_pbuz1 inc addr bne !+ inc addr+1 !: - //SEG741 [340] if((byte*) fill::addr#1!=(byte*) fill::end#0) goto fill::@1 -- pbuz1_neq_pbuz2_then_la1 + //SEG799 [372] if((byte*) fill::addr#1!=(const byte*) fill::end#0) goto fill::@1 -- pbuz1_neq_pbuc1_then_la1 lda addr+1 - cmp end+1 + cmp #>end bne b1_from_b1 lda addr - cmp end + cmp #$ffff sta SID_VOICE3_FREQ+1 - //SEG746 [343] *((const byte*) SID_VOICE3_CONTROL#0) ← (const byte) SID_CONTROL_NOISE#0 -- _deref_pbuc1=vbuc2 + //SEG804 [375] *((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 - //SEG747 sid_rnd_init::@return + //SEG805 sid_rnd_init::@return breturn: - //SEG748 [344] return + //SEG806 [376] return rts } keyboard_matrix_row_bitmask: .byte $fe, $fd, $fb, $f7, $ef, $df, $bf, $7f @@ -11861,22 +12714,23 @@ sid_rnd_init: { 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_COLORS: .byte WHITE, LIGHT_GREY, GREEN, LIGHT_GREY, WHITE, WHITE, GREEN + PIECES_CHARS: .byte $57, $58, $98, $58, $57, $57, $98 playfield_lines: .fill 2*PLAYFIELD_LINES, 0 playfield: .fill PLAYFIELD_LINES*PLAYFIELD_COLS, 0 screen_lines: .fill 2*(PLAYFIELD_LINES+3), 0 PIECES: .word PIECE_T, PIECE_S, PIECE_Z, PIECE_J, PIECE_O, PIECE_I, PIECE_L playfield_lines_idx: .fill PLAYFIELD_LINES+1, 0 .pc = PLAYFIELD_CHARSET "Inline" - .var charset = LoadPicture("nes-charset.png", List().add($000000, $ffffff)) - .for (var c=0; c<32; c++) - .for (var y=0;y<8; y++) - .byte charset.getSinglecolorByte(c,y) + .fill 8,$00 // Place a filled char at the start of the charset + .import binary "nes-screen.imap" + +.pc = PLAYFIELD_SCREEN_ORIGINAL "Inline" + .import binary "nes-screen.iscr" ASSEMBLER OPTIMIZATIONS Removing instruction jmp b14 -Removing instruction jmp b26 +Removing instruction jmp b27 Removing instruction jmp bend Removing instruction jmp b21 Removing instruction jmp b22 @@ -11990,13 +12844,24 @@ Removing instruction jmp breturn Removing instruction jmp b1 Removing instruction jmp b2 Removing instruction jmp breturn -Removing instruction jmp b7 +Removing instruction jmp vicSelectGfxBank1 +Removing instruction jmp vicSelectGfxBank1_toDd001 +Removing instruction jmp vicSelectGfxBank1_b1 +Removing instruction jmp toD0181 +Removing instruction jmp b8 +Removing instruction jmp b9 Removing instruction jmp b1 Removing instruction jmp b2 Removing instruction jmp b3 Removing instruction jmp b5 Removing instruction jmp breturn Removing instruction jmp b1 +Removing instruction jmp b2 +Removing instruction jmp b3 +Removing instruction jmp b4 +Removing instruction jmp b7 +Removing instruction jmp breturn +Removing instruction jmp b1 Removing instruction jmp breturn Removing instruction jmp breturn Succesful ASM optimization Pass5NextJumpElimination @@ -12013,6 +12878,7 @@ Removing instruction lda c Removing instruction lda #0 Removing instruction lda #0 Removing instruction lda row_scan +Removing instruction ldy #0 Succesful ASM optimization Pass5UnnecesaryLoadElimination Replacing label b1 with b4 Replacing label b2_from_b1 with b2 @@ -12046,13 +12912,17 @@ Replacing label b1_from_b1 with b1 Replacing label b1_from_b1 with b1 Replacing label b3_from_b3 with b3 Replacing label b2_from_b5 with b2 +Replacing label b2_from_b2 with b2 +Replacing label b3_from_b3 with b3 +Replacing label b4_from_b4 with b4 +Replacing label b1_from_b7 with b1 Replacing label b1_from_b1 with b1 Replacing label b1_from_b1 with b1 Removing instruction b14: -Removing instruction b26_from_b14: -Removing instruction b26: -Removing instruction main_from_b26: -Removing instruction bend_from_b26: +Removing instruction b27_from_b14: +Removing instruction b27: +Removing instruction main_from_b27: +Removing instruction bend_from_b27: Removing instruction b22_from_b21: Removing instruction play_init_from_b22: Removing instruction b23_from_b22: @@ -12119,17 +12989,28 @@ Removing instruction b5_from_b17: Removing instruction b5_from_b4: Removing instruction b5_from_b7: Removing instruction b1_from_b1: -Removing instruction b7_from_render_init: -Removing instruction fill_from_b7: +Removing instruction vicSelectGfxBank1_toDd001_from_vicSelectGfxBank1: +Removing instruction vicSelectGfxBank1_toDd001: +Removing instruction toD0181_from_vicSelectGfxBank1_b1: +Removing instruction toD0181: +Removing instruction b9_from_b8: +Removing instruction render_screen_original_from_b9: Removing instruction b1_from_b1: Removing instruction b2_from_b5: Removing instruction b3_from_b2: Removing instruction b3_from_b3: -Removing instruction b1_from_fill: +Removing instruction b1_from_b7: +Removing instruction b2_from_b1: +Removing instruction b2_from_b2: +Removing instruction b3_from_b2: +Removing instruction b3_from_b3: +Removing instruction b4_from_b3: +Removing instruction b4_from_b4: Removing instruction b1_from_b1: Succesful ASM optimization Pass5RedundantLabelElimination Removing instruction bend: Removing instruction b21: +Removing instruction render_init_from_b21: Removing instruction b22: Removing instruction b23: Removing instruction b24: @@ -12235,12 +13116,19 @@ Removing instruction breturn: Removing instruction b1_from_play_init: Removing instruction b2: Removing instruction breturn: -Removing instruction fill_from_render_init: -Removing instruction b7: -Removing instruction b1_from_b7: +Removing instruction vicSelectGfxBank1: +Removing instruction vicSelectGfxBank1_b1: +Removing instruction b8: +Removing instruction fill_from_b8: +Removing instruction b9: +Removing instruction b1_from_b9: Removing instruction b2_from_b1: Removing instruction b5: Removing instruction breturn: +Removing instruction b1_from_render_screen_original: +Removing instruction b7: +Removing instruction breturn: +Removing instruction b1_from_fill: Removing instruction breturn: Removing instruction breturn: Succesful ASM optimization Pass5UnusedLabelElimination @@ -12270,6 +13158,9 @@ Removing instruction jmp b1 Removing instruction jmp b1 Removing instruction jmp b2 Removing instruction jmp b3 +Removing instruction jmp b1 +Removing instruction jmp b2 +Removing instruction jmp b1 Succesful ASM optimization Pass5NextJumpElimination Replacing instruction ldy ypos2 with TAY Removing instruction bbegin: @@ -12280,18 +13171,22 @@ Succesful ASM optimization Pass5UnreachableCodeElimination FINAL SYMBOL TABLE (label) @14 -(label) @26 +(label) @27 (label) @begin (label) @end (byte*) BGCOL -(const byte*) BGCOL#0 BGCOL = ((byte*))(word/dword/signed dword) 53281 (byte*) BGCOL1 +(const byte*) BGCOL1#0 BGCOL1 = ((byte*))(word/dword/signed dword) 53281 (byte*) BGCOL2 +(const byte*) BGCOL2#0 BGCOL2 = ((byte*))(word/dword/signed dword) 53282 (byte*) BGCOL3 +(const byte*) BGCOL3#0 BGCOL3 = ((byte*))(word/dword/signed dword) 53283 (byte*) BGCOL4 +(const byte*) BGCOL4#0 BGCOL4 = ((byte*))(word/dword/signed dword) 53284 (byte) BLACK (const byte) BLACK#0 BLACK = (byte/signed byte/word/signed word/dword/signed dword) 0 (byte) BLUE +(const byte) BLUE#0 BLUE = (byte/signed byte/word/signed word/dword/signed dword) 6 (byte*) BORDERCOL (const byte*) BORDERCOL#0 BORDERCOL = ((byte*))(word/dword/signed dword) 53280 (byte) BROWN @@ -12305,7 +13200,9 @@ FINAL SYMBOL TABLE (byte*) CIA1_PORT_B_DDR (byte*) CIA2_INTERRUPT (byte*) CIA2_PORT_A +(const byte*) CIA2_PORT_A#0 CIA2_PORT_A = ((byte*))(word/dword/signed dword) 56576 (byte*) CIA2_PORT_A_DDR +(const byte*) CIA2_PORT_A_DDR#0 CIA2_PORT_A_DDR = ((byte*))(word/dword/signed dword) 56578 (byte*) CIA2_PORT_B (byte*) CIA2_PORT_B_DDR (byte) CIA_INTERRUPT_CLEAR @@ -12322,14 +13219,17 @@ FINAL SYMBOL TABLE (byte*) COLS (const byte*) COLS#0 COLS = ((byte*))(word/dword/signed dword) 55296 (byte) CYAN +(const byte) CYAN#0 CYAN = (byte/signed byte/word/signed word/dword/signed dword) 3 (byte*) D011 +(const byte*) D011#0 D011 = ((byte*))(word/dword/signed dword) 53265 (byte*) D016 (byte*) D018 +(const byte*) D018#0 D018 = ((byte*))(word/dword/signed dword) 53272 (byte) DARK_GREY (const byte) DARK_GREY#0 DARK_GREY = (byte/signed byte/word/signed word/dword/signed dword) 11 (byte) GREEN -(const byte) GREEN#0 GREEN = (byte/signed byte/word/signed word/dword/signed dword) 5 (byte) GREY +(const byte) GREY#0 GREY = (byte/signed byte/word/signed word/dword/signed dword) 12 (void()**) HARDWARE_IRQ (byte) IRQ_COLLISION_BG (byte) IRQ_COLLISION_SPRITE @@ -12425,12 +13325,11 @@ FINAL SYMBOL TABLE (byte) LIGHT_BLUE (byte) LIGHT_GREEN (byte) LIGHT_GREY -(const byte) LIGHT_GREY#0 LIGHT_GREY = (byte/signed byte/word/signed word/dword/signed dword) 15 (byte) ORANGE (word[]) PIECES (const word[]) PIECES#0 PIECES = { ((word))(const byte[4*4*4]) PIECE_T#0, ((word))(const byte[4*4*4]) PIECE_S#0, ((word))(const byte[4*4*4]) PIECE_Z#0, ((word))(const byte[4*4*4]) PIECE_J#0, ((word))(const byte[4*4*4]) PIECE_O#0, ((word))(const byte[4*4*4]) PIECE_I#0, ((word))(const byte[4*4*4]) PIECE_L#0 } -(byte[]) PIECES_COLORS -(const byte[]) PIECES_COLORS#0 PIECES_COLORS = { (const byte) WHITE#0, (const byte) LIGHT_GREY#0, (const byte) GREEN#0, (const byte) LIGHT_GREY#0, (const byte) WHITE#0, (const byte) WHITE#0, (const byte) GREEN#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[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 @@ -12454,6 +13353,9 @@ FINAL SYMBOL TABLE (const byte) PLAYFIELD_LINES#0 PLAYFIELD_LINES = (byte/signed byte/word/signed word/dword/signed dword) 22 (byte*) PLAYFIELD_SCREEN (const byte*) PLAYFIELD_SCREEN#0 PLAYFIELD_SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024 +(byte*) PLAYFIELD_SCREEN_ORIGINAL +(const byte*) PLAYFIELD_SCREEN_ORIGINAL#0 PLAYFIELD_SCREEN_ORIGINAL = ((byte*))(word/signed word/dword/signed dword) 11264 +(byte) PLAYFIELD_SCREEN_ORIGINAL_WIDTH (byte*) PLAYFIELD_SPRITES (byte*) PLAYFIELD_SPRITE_PTRS (byte*) PROCPORT @@ -12502,10 +13404,13 @@ FINAL SYMBOL TABLE (byte*) VIC_CONTROL2 (byte) VIC_CSEL (byte) VIC_DEN +(const byte) VIC_DEN#0 VIC_DEN = (byte/signed byte/word/signed word/dword/signed dword) 16 (byte) VIC_ECM +(const byte) VIC_ECM#0 VIC_ECM = (byte/signed byte/word/signed word/dword/signed dword) 64 (byte) VIC_MCM (byte*) VIC_MEMORY (byte) VIC_RSEL +(const byte) VIC_RSEL#0 VIC_RSEL = (byte/signed byte/word/signed word/dword/signed dword) 8 (byte) VIC_RST8 (byte) WHITE (const byte) WHITE#0 WHITE = (byte/signed byte/word/signed word/dword/signed dword) 1 @@ -12535,14 +13440,14 @@ FINAL SYMBOL TABLE (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 zp ZP_WORD:12 4.0 -(byte) current_piece_color -(byte) current_piece_color#11 current_piece_color zp ZP_BYTE:18 1.04 -(byte) current_piece_color#13 current_piece_color zp ZP_BYTE:18 0.7272727272727273 -(byte) current_piece_color#16 current_piece_color zp ZP_BYTE:18 19.96078431372549 -(byte) current_piece_color#21 current_piece_color zp ZP_BYTE:18 6.0 -(byte) current_piece_color#62 current_piece_color#62 zp ZP_BYTE:7 53.368421052631575 -(byte~) current_piece_color#75 current_piece_color#75 zp ZP_BYTE:7 4.0 -(byte~) current_piece_color#76 current_piece_color#76 zp ZP_BYTE:7 22.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#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#62 current_piece_char#62 zp ZP_BYTE:7 53.368421052631575 +(byte~) current_piece_char#75 current_piece_char#75 zp ZP_BYTE:7 4.0 +(byte~) current_piece_char#76 current_piece_char#76 zp ZP_BYTE:7 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 @@ -12573,15 +13478,14 @@ FINAL SYMBOL TABLE (label) fill::@1 (label) fill::@return (byte*) fill::addr -(byte*) fill::addr#0 addr zp ZP_WORD:5 2.0 (byte*) fill::addr#1 addr zp ZP_WORD:5 16.5 -(byte*) fill::addr#2 addr zp ZP_WORD:5 17.5 +(byte*) fill::addr#2 addr zp ZP_WORD:5 16.5 (byte*) fill::end -(byte*) fill::end#0 end zp ZP_WORD:12 2.6 +(const byte*) fill::end#0 end = (const byte*) COLS#0+(const word) fill::size#0 (word) fill::size +(const word) fill::size#0 size = (word/signed word/dword/signed dword) 1000 (byte*) fill::start (byte) fill::val -(byte) fill::val#3 reg byte x 1.8333333333333333 (byte[]) keyboard_char_keycodes (byte()) keyboard_event_get() (label) keyboard_event_get::@3 @@ -12969,13 +13873,14 @@ FINAL SYMBOL TABLE (byte) render_current::ypos2#1 ypos2 zp ZP_BYTE:8 67.33333333333333 (byte) render_current::ypos2#2 ypos2 zp ZP_BYTE:8 29.000000000000004 (void()) render_init() -(byte*~) render_init::$10 $10 zp ZP_WORD:12 202.0 -(byte~) render_init::$5 reg byte a 22.0 +(byte~) render_init::$10 reg byte a 22.0 +(byte*~) render_init::$15 $15 zp ZP_WORD:12 202.0 (label) render_init::@1 (label) render_init::@2 (label) render_init::@3 (label) render_init::@5 -(label) render_init::@7 +(label) render_init::@8 +(label) render_init::@9 (label) render_init::@return (byte) render_init::c (byte) render_init::c#1 reg byte x 151.5 @@ -12992,6 +13897,32 @@ FINAL SYMBOL TABLE (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 +(label) render_init::toD0181 +(word~) render_init::toD0181_$0 +(word~) render_init::toD0181_$1 +(word~) render_init::toD0181_$2 +(byte~) render_init::toD0181_$3 +(word~) render_init::toD0181_$4 +(byte~) render_init::toD0181_$5 +(byte~) render_init::toD0181_$6 +(byte~) render_init::toD0181_$7 +(byte~) render_init::toD0181_$8 +(byte*) render_init::toD0181_gfx +(byte) render_init::toD0181_return +(const byte) render_init::toD0181_return#0 toD0181_return = >((word))(const byte*) PLAYFIELD_SCREEN#0&(word/signed word/dword/signed dword) 16383<<(byte/signed byte/word/signed word/dword/signed dword) 2|>((word))(const byte*) PLAYFIELD_CHARSET#0>>(byte/signed byte/word/signed word/dword/signed dword) 2&(byte/signed byte/word/signed word/dword/signed dword) 15 +(byte*) render_init::toD0181_screen +(label) render_init::vicSelectGfxBank1 +(byte~) render_init::vicSelectGfxBank1_$0 +(label) render_init::vicSelectGfxBank1_@1 +(byte*) render_init::vicSelectGfxBank1_gfx +(label) render_init::vicSelectGfxBank1_toDd001 +(word~) render_init::vicSelectGfxBank1_toDd001_$0 +(byte~) render_init::vicSelectGfxBank1_toDd001_$1 +(byte~) render_init::vicSelectGfxBank1_toDd001_$2 +(byte/word/dword~) render_init::vicSelectGfxBank1_toDd001_$3 +(byte*) render_init::vicSelectGfxBank1_toDd001_gfx +(byte) render_init::vicSelectGfxBank1_toDd001_return +(const byte) render_init::vicSelectGfxBank1_toDd001_return#0 vicSelectGfxBank1_toDd001_return = (byte/signed byte/word/signed word/dword/signed dword) 3^>((word))(const byte*) PLAYFIELD_SCREEN#0>>(byte/signed byte/word/signed word/dword/signed dword) 6 (void()) render_playfield() (byte~) render_playfield::$1 reg byte a 202.0 (label) render_playfield::@1 @@ -13012,6 +13943,38 @@ FINAL SYMBOL TABLE (byte*) render_playfield::line#0 line zp ZP_WORD:5 202.0 (byte*) render_playfield::line#1 line zp ZP_WORD:5 500.5 (byte*) render_playfield::line#2 line zp ZP_WORD:5 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 +(label) render_screen_original::@2 +(label) render_screen_original::@3 +(label) render_screen_original::@4 +(label) render_screen_original::@7 +(label) render_screen_original::@return +(byte) render_screen_original::SPACE +(const byte) render_screen_original::SPACE#0 SPACE = (byte/signed byte/word/signed word/dword/signed dword) 0 +(byte*) render_screen_original::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::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 +(byte*) render_screen_original::screen#3 screen zp ZP_WORD:12 42.599999999999994 +(byte*) render_screen_original::screen#4 screen zp ZP_WORD:12 157.0 +(byte*) render_screen_original::screen#5 screen zp ZP_WORD:12 134.66666666666666 +(byte*) render_screen_original::screen#6 screen zp ZP_WORD:12 202.0 +(byte*) render_screen_original::screen#7 screen zp ZP_WORD:12 22.0 +(byte) render_screen_original::x +(byte) render_screen_original::x#1 reg byte x 202.0 +(byte) render_screen_original::x#2 reg byte x 202.0 +(byte) render_screen_original::x#3 reg byte x 151.5 +(byte) render_screen_original::x#4 reg byte x 67.33333333333333 +(byte) render_screen_original::x#5 reg byte x 60.599999999999994 +(byte) render_screen_original::x#6 reg byte x 101.0 +(byte) render_screen_original::y +(byte) render_screen_original::y#1 y zp ZP_BYTE:2 16.5 +(byte) render_screen_original::y#6 y zp ZP_BYTE:2 1.2222222222222223 (byte*[PLAYFIELD_LINES#0+3]) screen_lines (const byte*[PLAYFIELD_LINES#0+3]) screen_lines#0 screen_lines = { fill( PLAYFIELD_LINES#0+3, 0) } (byte()) sid_rnd() @@ -13022,12 +13985,12 @@ FINAL SYMBOL TABLE (void()) sid_rnd_init() (label) sid_rnd_init::@return -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 render_init::l#4 render_init::l#1 play_spawn_current::$3 ] +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 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#71 ] zp ZP_BYTE:4 [ current_xpos#48 current_xpos#96 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#87 current_piece_gfx#88 render_playfield::line#2 render_playfield::line#0 render_playfield::line#1 current_piece#12 current_piece#71 current_piece#72 current_piece#73 current_piece#74 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 fill::addr#2 fill::addr#0 fill::addr#1 play_lock_current::playfield_line#0 ] -zp ZP_BYTE:7 [ current_piece_color#62 current_piece_color#75 current_piece_color#76 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_WORD:5 [ current_piece_gfx#53 current_piece_gfx#87 current_piece_gfx#88 render_playfield::line#2 render_playfield::line#0 render_playfield::line#1 current_piece#12 current_piece#71 current_piece#72 current_piece#73 current_piece#74 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#62 current_piece_char#75 current_piece_char#76 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#3 render_current::l#1 play_collision::l#6 play_collision::l#1 ] zp ZP_BYTE:10 [ render_current::i#2 render_current::i#1 render_current::i#4 render_current::i#8 play_collision::i#2 play_collision::i#3 play_collision::i#11 play_collision::i#13 ] @@ -13041,11 +14004,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_WORD:12 [ current_piece#20 current_piece#75 current_piece#16 current_piece#10 current_piece#70 render_init::$10 fill::end#0 ] +zp ZP_WORD:12 [ current_piece#20 current_piece#75 current_piece#16 current_piece#10 current_piece#70 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::$15 ] 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:18 [ current_piece_color#21 current_piece_color#16 current_piece_color#11 current_piece_color#13 ] +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 ] reg byte y [ play_remove_lines::r#2 play_remove_lines::r#3 play_remove_lines::r#1 ] @@ -13058,7 +14021,7 @@ zp ZP_BYTE:19 [ keyboard_events_size#10 keyboard_events_size#29 keyboard_events_ reg byte x [ play_init::j#2 play_init::j#1 ] reg byte x [ render_init::i#2 render_init::i#1 ] reg byte x [ render_init::c#2 render_init::c#1 ] -reg byte x [ fill::val#3 ] +reg byte 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 ] reg byte a [ keyboard_event_get::return#3 ] zp ZP_BYTE:20 [ main::key_event#0 ] reg byte a [ play_move_down::key_event#0 ] @@ -13112,11 +14075,12 @@ reg byte a [ keyboard_event_scan::event_type#0 ] reg byte a [ keyboard_event_scan::$11 ] reg byte a [ keyboard_matrix_read::return#0 ] reg byte a [ play_init::$1 ] -reg byte a [ render_init::$5 ] +reg byte a [ render_init::$10 ] +reg byte a [ render_screen_original::$3 ] FINAL ASSEMBLER -Score: 416960 +Score: 428577 //SEG0 Basic Upstart .pc = $801 "Basic" @@ -13125,15 +14089,26 @@ Score: 416960 //SEG1 Global Constants & labels .label RASTER = $d012 .label BORDERCOL = $d020 - .label BGCOL = $d021 + .label BGCOL1 = $d021 + .label BGCOL2 = $d022 + .label BGCOL3 = $d023 + .label BGCOL4 = $d024 + .label D011 = $d011 + .const VIC_ECM = $40 + .const VIC_DEN = $10 + .const VIC_RSEL = 8 + .label D018 = $d018 .label COLS = $d800 .label CIA1_PORT_A = $dc00 .label CIA1_PORT_B = $dc01 + .label CIA2_PORT_A = $dd00 + .label CIA2_PORT_A_DDR = $dd02 .const BLACK = 0 .const WHITE = 1 - .const GREEN = 5 + .const CYAN = 3 + .const BLUE = 6 .const DARK_GREY = $b - .const LIGHT_GREY = $f + .const GREY = $c .const KEY_Z = $c .const KEY_LSHIFT = $f .const KEY_X = $17 @@ -13155,6 +14130,7 @@ Score: 416960 .label PLAYFIELD_CHARSET = $2800 .const PLAYFIELD_LINES = $16 .const PLAYFIELD_COLS = $a + .label PLAYFIELD_SCREEN_ORIGINAL = $2c00 .const current_movedown_slow = $32 .const current_movedown_fast = 5 .const COLLISION_NONE = 0 @@ -13169,454 +14145,456 @@ Score: 416960 .label current_orientation = $e .label current_piece_gfx = $f .label current_piece = $c - .label current_piece_color = $12 + .label current_piece_char = $12 .label current_piece_12 = 5 .label current_xpos_48 = 4 .label current_piece_gfx_53 = 5 - .label current_piece_color_62 = 7 + .label current_piece_char_62 = 7 .label current_xpos_96 = 4 .label current_piece_gfx_87 = 5 .label current_piece_gfx_88 = 5 - .label current_piece_color_75 = 7 - .label current_piece_color_76 = 7 + .label current_piece_char_75 = 7 + .label current_piece_char_76 = 7 .label current_piece_71 = 5 .label current_piece_72 = 5 .label current_piece_73 = 5 .label current_piece_74 = 5 //SEG2 @begin //SEG3 @14 -//SEG4 kickasm(location (const byte*) PLAYFIELD_CHARSET#0) {{ .var charset = LoadPicture("nes-charset.png", List().add($000000, $ffffff)) .for (var c=0; c<32; c++) .for (var y=0;y<8; y++) .byte charset.getSinglecolorByte(c,y) }} -//SEG5 [2] phi from @14 to @26 [phi:@14->@26] -//SEG6 @26 -//SEG7 [3] call main -//SEG8 [5] phi from @26 to main [phi:@26->main] -//SEG9 [4] phi from @26 to @end [phi:@26->@end] -//SEG10 @end -//SEG11 main +//SEG4 kickasm(location (const byte*) PLAYFIELD_CHARSET#0) {{ .fill 8,$00 // Place a filled char at the start of the charset .import binary "nes-screen.imap" }} +//SEG5 kickasm(location (const byte*) PLAYFIELD_SCREEN_ORIGINAL#0) {{ .import binary "nes-screen.iscr" }} +//SEG6 [3] phi from @14 to @27 [phi:@14->@27] +//SEG7 @27 +//SEG8 [4] call main +//SEG9 [6] phi from @27 to main [phi:@27->main] +//SEG10 [5] phi from @27 to @end [phi:@27->@end] +//SEG11 @end +//SEG12 main main: { .label key_event = $14 .label render = $15 - //SEG12 [6] call sid_rnd_init + //SEG13 [7] call sid_rnd_init jsr sid_rnd_init - //SEG13 main::@21 - //SEG14 asm { sei } + //SEG14 main::@21 + //SEG15 asm { sei } sei - //SEG15 [8] call render_init + //SEG16 [9] call render_init + //SEG17 [316] phi from main::@21 to render_init [phi:main::@21->render_init] jsr render_init - //SEG16 [9] phi from main::@21 to main::@22 [phi:main::@21->main::@22] - //SEG17 main::@22 - //SEG18 [10] call play_init - //SEG19 [304] phi from main::@22 to play_init [phi:main::@22->play_init] + //SEG18 [10] phi from main::@21 to main::@22 [phi:main::@21->main::@22] + //SEG19 main::@22 + //SEG20 [11] call play_init + //SEG21 [305] phi from main::@22 to play_init [phi:main::@22->play_init] jsr play_init - //SEG20 [11] phi from main::@22 to main::@23 [phi:main::@22->main::@23] - //SEG21 main::@23 - //SEG22 [12] call play_spawn_current - //SEG23 [184] phi from main::@23 to play_spawn_current [phi:main::@23->play_spawn_current] + //SEG22 [12] phi from main::@22 to main::@23 [phi:main::@22->main::@23] + //SEG23 main::@23 + //SEG24 [13] call play_spawn_current + //SEG25 [185] phi from main::@23 to play_spawn_current [phi:main::@23->play_spawn_current] jsr play_spawn_current - //SEG24 [13] phi from main::@23 to main::@24 [phi:main::@23->main::@24] - //SEG25 main::@24 - //SEG26 [14] call render_playfield - //SEG27 [72] phi from main::@24 to render_playfield [phi:main::@24->render_playfield] + //SEG26 [14] phi from main::@23 to main::@24 [phi:main::@23->main::@24] + //SEG27 main::@24 + //SEG28 [15] call render_playfield + //SEG29 [73] phi from main::@24 to render_playfield [phi:main::@24->render_playfield] jsr render_playfield - //SEG28 main::@25 - //SEG29 [15] (byte*~) current_piece_gfx#87 ← (byte*) current_piece_gfx#17 -- pbuz1=pbuz2 + //SEG30 main::@25 + //SEG31 [16] (byte*~) current_piece_gfx#87 ← (byte*) current_piece_gfx#17 -- pbuz1=pbuz2 lda current_piece_gfx sta current_piece_gfx_87 lda current_piece_gfx+1 sta current_piece_gfx_87+1 - //SEG30 [16] (byte~) current_piece_color#75 ← (byte) current_piece_color#13 -- vbuz1=vbuz2 - lda current_piece_color - sta current_piece_color_75 - //SEG31 [17] call render_current - //SEG32 [52] phi from main::@25 to render_current [phi:main::@25->render_current] - //SEG33 [52] phi (byte) current_piece_color#62 = (byte~) current_piece_color#75 [phi:main::@25->render_current#0] -- register_copy - //SEG34 [52] phi (byte*) current_piece_gfx#53 = (byte*~) current_piece_gfx#87 [phi:main::@25->render_current#1] -- register_copy - //SEG35 [52] phi (byte) current_xpos#48 = (byte/signed byte/word/signed word/dword/signed dword) 3 [phi:main::@25->render_current#2] -- vbuz1=vbuc1 + //SEG32 [17] (byte~) current_piece_char#75 ← (byte) current_piece_char#13 -- vbuz1=vbuz2 + lda current_piece_char + sta current_piece_char_75 + //SEG33 [18] call render_current + //SEG34 [53] phi from main::@25 to render_current [phi:main::@25->render_current] + //SEG35 [53] phi (byte) current_piece_char#62 = (byte~) current_piece_char#75 [phi:main::@25->render_current#0] -- register_copy + //SEG36 [53] phi (byte*) current_piece_gfx#53 = (byte*~) current_piece_gfx#87 [phi:main::@25->render_current#1] -- register_copy + //SEG37 [53] phi (byte) current_xpos#48 = (byte/signed byte/word/signed word/dword/signed dword) 3 [phi:main::@25->render_current#2] -- vbuz1=vbuc1 lda #3 sta current_xpos_48 - //SEG36 [52] phi (byte) current_ypos#10 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@25->render_current#3] -- vbuxx=vbuc1 + //SEG38 [53] phi (byte) current_ypos#10 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@25->render_current#3] -- vbuxx=vbuc1 ldx #0 jsr render_current - //SEG37 [18] (byte*~) current_piece#70 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) -- pbuz1=pptc1_derefidx_vbuz2 + //SEG39 [19] (byte*~) current_piece#70 ← (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 - //SEG38 [19] phi from main::@25 to main::@1 [phi:main::@25->main::@1] - //SEG39 [19] phi (byte) current_movedown_counter#12 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@25->main::@1#0] -- vbuz1=vbuc1 + //SEG40 [20] phi from main::@25 to main::@1 [phi:main::@25->main::@1] + //SEG41 [20] phi (byte) current_movedown_counter#12 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@25->main::@1#0] -- vbuz1=vbuc1 lda #0 sta current_movedown_counter - //SEG40 [19] phi (byte) keyboard_events_size#19 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@25->main::@1#1] -- vbuz1=vbuc1 + //SEG42 [20] phi (byte) keyboard_events_size#19 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@25->main::@1#1] -- vbuz1=vbuc1 sta keyboard_events_size - //SEG41 [19] phi (byte) current_piece_color#16 = (byte) current_piece_color#13 [phi:main::@25->main::@1#2] -- register_copy - //SEG42 [19] phi (byte) current_ypos#22 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@25->main::@1#3] -- vbuz1=vbuc1 + //SEG43 [20] phi (byte) current_piece_char#16 = (byte) current_piece_char#13 [phi:main::@25->main::@1#2] -- register_copy + //SEG44 [20] phi (byte) current_ypos#22 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@25->main::@1#3] -- vbuz1=vbuc1 sta current_ypos - //SEG43 [19] phi (byte) current_xpos#11 = (byte/signed byte/word/signed word/dword/signed dword) 3 [phi:main::@25->main::@1#4] -- vbuz1=vbuc1 + //SEG45 [20] phi (byte) current_xpos#11 = (byte/signed byte/word/signed word/dword/signed dword) 3 [phi:main::@25->main::@1#4] -- vbuz1=vbuc1 lda #3 sta current_xpos - //SEG44 [19] phi (byte*) current_piece_gfx#10 = (byte*) current_piece_gfx#17 [phi:main::@25->main::@1#5] -- register_copy - //SEG45 [19] phi (byte) current_orientation#10 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@25->main::@1#6] -- vbuz1=vbuc1 + //SEG46 [20] phi (byte*) current_piece_gfx#10 = (byte*) current_piece_gfx#17 [phi:main::@25->main::@1#5] -- register_copy + //SEG47 [20] phi (byte) current_orientation#10 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@25->main::@1#6] -- vbuz1=vbuc1 lda #0 sta current_orientation - //SEG46 [19] phi (byte*) current_piece#16 = (byte*~) current_piece#70 [phi:main::@25->main::@1#7] -- register_copy - //SEG47 main::@1 - //SEG48 main::@4 + //SEG48 [20] phi (byte*) current_piece#16 = (byte*~) current_piece#70 [phi:main::@25->main::@1#7] -- register_copy + //SEG49 main::@1 + //SEG50 main::@4 b4: - //SEG49 [20] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@4 -- _deref_pbuc1_neq_vbuc2_then_la1 + //SEG51 [21] 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 - //SEG50 main::@7 + //SEG52 main::@7 b7: - //SEG51 [21] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 254) goto main::@7 -- _deref_pbuc1_neq_vbuc2_then_la1 + //SEG53 [22] 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 - //SEG52 main::@9 - //SEG53 [22] *((const byte*) BORDERCOL#0) ← ++ *((const byte*) BORDERCOL#0) -- _deref_pbuc1=_inc__deref_pbuc1 + //SEG54 main::@9 + //SEG55 [23] *((const byte*) BORDERCOL#0) ← ++ *((const byte*) BORDERCOL#0) -- _deref_pbuc1=_inc__deref_pbuc1 inc BORDERCOL - //SEG54 [23] call keyboard_event_scan - //SEG55 [248] phi from main::@9 to keyboard_event_scan [phi:main::@9->keyboard_event_scan] + //SEG56 [24] call keyboard_event_scan + //SEG57 [249] phi from main::@9 to keyboard_event_scan [phi:main::@9->keyboard_event_scan] jsr keyboard_event_scan - //SEG56 [24] phi from main::@9 to main::@27 [phi:main::@9->main::@27] - //SEG57 main::@27 - //SEG58 [25] call keyboard_event_get + //SEG58 [25] phi from main::@9 to main::@27 [phi:main::@9->main::@27] + //SEG59 main::@27 + //SEG60 [26] call keyboard_event_get jsr keyboard_event_get - //SEG59 [26] (byte) keyboard_event_get::return#3 ← (byte) keyboard_event_get::return#2 + //SEG61 [27] (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 - //SEG60 main::@28 - //SEG61 [27] (byte) main::key_event#0 ← (byte) keyboard_event_get::return#3 -- vbuz1=vbuaa + //SEG62 main::@28 + //SEG63 [28] (byte) main::key_event#0 ← (byte) keyboard_event_get::return#3 -- vbuz1=vbuaa sta key_event - //SEG62 [28] (byte) play_move_down::key_event#0 ← (byte) main::key_event#0 -- vbuaa=vbuz1 - //SEG63 [29] call play_move_down + //SEG64 [29] (byte) play_move_down::key_event#0 ← (byte) main::key_event#0 -- vbuaa=vbuz1 + //SEG65 [30] call play_move_down jsr play_move_down - //SEG64 [30] (byte) play_move_down::return#3 ← (byte) play_move_down::return#2 -- vbuaa=vbuxx + //SEG66 [31] (byte) play_move_down::return#3 ← (byte) play_move_down::return#2 -- vbuaa=vbuxx txa - //SEG65 main::@29 - //SEG66 [31] (byte~) main::$10 ← (byte) play_move_down::return#3 + //SEG67 main::@29 + //SEG68 [32] (byte~) main::$10 ← (byte) play_move_down::return#3 // (byte~) main::$10 = (byte) play_move_down::return#3 // register copy reg byte a - //SEG67 [32] (byte) main::render#1 ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte~) main::$10 -- vbuz1=vbuc1_plus_vbuaa + //SEG69 [33] (byte) main::render#1 ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte~) main::$10 -- vbuz1=vbuc1_plus_vbuaa clc adc #0 sta render - //SEG68 [33] (byte) play_move_leftright::key_event#0 ← (byte) main::key_event#0 -- vbuaa=vbuz1 + //SEG70 [34] (byte) play_move_leftright::key_event#0 ← (byte) main::key_event#0 -- vbuaa=vbuz1 lda key_event - //SEG69 [34] call play_move_leftright + //SEG71 [35] call play_move_leftright jsr play_move_leftright - //SEG70 [35] (byte) play_move_leftright::return#4 ← (byte) play_move_leftright::return#1 + //SEG72 [36] (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 - //SEG71 main::@30 - //SEG72 [36] (byte~) main::$11 ← (byte) play_move_leftright::return#4 + //SEG73 main::@30 + //SEG74 [37] (byte~) main::$11 ← (byte) play_move_leftright::return#4 // (byte~) main::$11 = (byte) play_move_leftright::return#4 // register copy reg byte a - //SEG73 [37] (byte) main::render#2 ← (byte) main::render#1 + (byte~) main::$11 -- vbuz1=vbuz1_plus_vbuaa + //SEG75 [38] (byte) main::render#2 ← (byte) main::render#1 + (byte~) main::$11 -- vbuz1=vbuz1_plus_vbuaa clc adc render sta render - //SEG74 [38] (byte) play_move_rotate::key_event#0 ← (byte) main::key_event#0 -- vbuaa=vbuz1 + //SEG76 [39] (byte) play_move_rotate::key_event#0 ← (byte) main::key_event#0 -- vbuaa=vbuz1 lda key_event - //SEG75 [39] call play_move_rotate + //SEG77 [40] call play_move_rotate jsr play_move_rotate - //SEG76 [40] (byte) play_move_rotate::return#4 ← (byte) play_move_rotate::return#1 + //SEG78 [41] (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 - //SEG77 main::@31 - //SEG78 [41] (byte~) main::$12 ← (byte) play_move_rotate::return#4 + //SEG79 main::@31 + //SEG80 [42] (byte~) main::$12 ← (byte) play_move_rotate::return#4 // (byte~) main::$12 = (byte) play_move_rotate::return#4 // register copy reg byte a - //SEG79 [42] (byte) main::render#3 ← (byte) main::render#2 + (byte~) main::$12 -- vbuaa=vbuz1_plus_vbuaa + //SEG81 [43] (byte) main::render#3 ← (byte) main::render#2 + (byte~) main::$12 -- vbuaa=vbuz1_plus_vbuaa clc adc render - //SEG80 [43] if((byte) main::render#3==(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@10 -- vbuaa_eq_0_then_la1 + //SEG82 [44] 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 - //SEG81 [44] phi from main::@31 to main::@19 [phi:main::@31->main::@19] - //SEG82 main::@19 - //SEG83 [45] call render_playfield - //SEG84 [72] phi from main::@19 to render_playfield [phi:main::@19->render_playfield] + //SEG83 [45] phi from main::@31 to main::@19 [phi:main::@31->main::@19] + //SEG84 main::@19 + //SEG85 [46] call render_playfield + //SEG86 [73] phi from main::@19 to render_playfield [phi:main::@19->render_playfield] jsr render_playfield - //SEG85 main::@32 - //SEG86 [46] (byte~) current_ypos#71 ← (byte) current_ypos#14 -- vbuxx=vbuz1 + //SEG87 main::@32 + //SEG88 [47] (byte~) current_ypos#71 ← (byte) current_ypos#14 -- vbuxx=vbuz1 ldx current_ypos - //SEG87 [47] (byte~) current_xpos#96 ← (byte) current_xpos#20 -- vbuz1=vbuz2 + //SEG89 [48] (byte~) current_xpos#96 ← (byte) current_xpos#20 -- vbuz1=vbuz2 lda current_xpos sta current_xpos_96 - //SEG88 [48] (byte*~) current_piece_gfx#88 ← (byte*) current_piece_gfx#15 -- pbuz1=pbuz2 + //SEG90 [49] (byte*~) current_piece_gfx#88 ← (byte*) current_piece_gfx#15 -- pbuz1=pbuz2 lda current_piece_gfx sta current_piece_gfx_88 lda current_piece_gfx+1 sta current_piece_gfx_88+1 - //SEG89 [49] (byte~) current_piece_color#76 ← (byte) current_piece_color#11 -- vbuz1=vbuz2 - lda current_piece_color - sta current_piece_color_76 - //SEG90 [50] call render_current - //SEG91 [52] phi from main::@32 to render_current [phi:main::@32->render_current] - //SEG92 [52] phi (byte) current_piece_color#62 = (byte~) current_piece_color#76 [phi:main::@32->render_current#0] -- register_copy - //SEG93 [52] phi (byte*) current_piece_gfx#53 = (byte*~) current_piece_gfx#88 [phi:main::@32->render_current#1] -- register_copy - //SEG94 [52] phi (byte) current_xpos#48 = (byte~) current_xpos#96 [phi:main::@32->render_current#2] -- register_copy - //SEG95 [52] phi (byte) current_ypos#10 = (byte~) current_ypos#71 [phi:main::@32->render_current#3] -- register_copy + //SEG91 [50] (byte~) current_piece_char#76 ← (byte) current_piece_char#11 -- vbuz1=vbuz2 + lda current_piece_char + sta current_piece_char_76 + //SEG92 [51] call render_current + //SEG93 [53] phi from main::@32 to render_current [phi:main::@32->render_current] + //SEG94 [53] phi (byte) current_piece_char#62 = (byte~) current_piece_char#76 [phi:main::@32->render_current#0] -- register_copy + //SEG95 [53] phi (byte*) current_piece_gfx#53 = (byte*~) current_piece_gfx#88 [phi:main::@32->render_current#1] -- register_copy + //SEG96 [53] phi (byte) current_xpos#48 = (byte~) current_xpos#96 [phi:main::@32->render_current#2] -- register_copy + //SEG97 [53] phi (byte) current_ypos#10 = (byte~) current_ypos#71 [phi:main::@32->render_current#3] -- register_copy jsr render_current - //SEG96 main::@10 + //SEG98 main::@10 b10: - //SEG97 [51] *((const byte*) BORDERCOL#0) ← -- *((const byte*) BORDERCOL#0) -- _deref_pbuc1=_dec__deref_pbuc1 + //SEG99 [52] *((const byte*) BORDERCOL#0) ← -- *((const byte*) BORDERCOL#0) -- _deref_pbuc1=_dec__deref_pbuc1 dec BORDERCOL - //SEG98 [19] phi from main::@10 to main::@1 [phi:main::@10->main::@1] - //SEG99 [19] phi (byte) current_movedown_counter#12 = (byte) current_movedown_counter#10 [phi:main::@10->main::@1#0] -- register_copy - //SEG100 [19] phi (byte) keyboard_events_size#19 = (byte) keyboard_events_size#16 [phi:main::@10->main::@1#1] -- register_copy - //SEG101 [19] phi (byte) current_piece_color#16 = (byte) current_piece_color#11 [phi:main::@10->main::@1#2] -- register_copy - //SEG102 [19] phi (byte) current_ypos#22 = (byte) current_ypos#14 [phi:main::@10->main::@1#3] -- register_copy - //SEG103 [19] phi (byte) current_xpos#11 = (byte) current_xpos#20 [phi:main::@10->main::@1#4] -- register_copy - //SEG104 [19] phi (byte*) current_piece_gfx#10 = (byte*) current_piece_gfx#15 [phi:main::@10->main::@1#5] -- register_copy - //SEG105 [19] phi (byte) current_orientation#10 = (byte) current_orientation#19 [phi:main::@10->main::@1#6] -- register_copy - //SEG106 [19] phi (byte*) current_piece#16 = (byte*) current_piece#10 [phi:main::@10->main::@1#7] -- register_copy + //SEG100 [20] phi from main::@10 to main::@1 [phi:main::@10->main::@1] + //SEG101 [20] phi (byte) current_movedown_counter#12 = (byte) current_movedown_counter#10 [phi:main::@10->main::@1#0] -- register_copy + //SEG102 [20] phi (byte) keyboard_events_size#19 = (byte) keyboard_events_size#16 [phi:main::@10->main::@1#1] -- register_copy + //SEG103 [20] phi (byte) current_piece_char#16 = (byte) current_piece_char#11 [phi:main::@10->main::@1#2] -- register_copy + //SEG104 [20] phi (byte) current_ypos#22 = (byte) current_ypos#14 [phi:main::@10->main::@1#3] -- register_copy + //SEG105 [20] phi (byte) current_xpos#11 = (byte) current_xpos#20 [phi:main::@10->main::@1#4] -- register_copy + //SEG106 [20] phi (byte*) current_piece_gfx#10 = (byte*) current_piece_gfx#15 [phi:main::@10->main::@1#5] -- register_copy + //SEG107 [20] phi (byte) current_orientation#10 = (byte) current_orientation#19 [phi:main::@10->main::@1#6] -- register_copy + //SEG108 [20] phi (byte*) current_piece#16 = (byte*) current_piece#10 [phi:main::@10->main::@1#7] -- register_copy jmp b4 } -//SEG107 render_current +//SEG109 render_current render_current: { .label ypos2 = 8 .label l = 9 .label screen_line = $16 .label xpos = $b .label i = $a - //SEG108 [53] (byte) render_current::ypos2#0 ← (byte) current_ypos#10 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuxx_rol_1 + //SEG110 [54] (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 - //SEG109 [54] phi from render_current to render_current::@1 [phi:render_current->render_current::@1] - //SEG110 [54] phi (byte) render_current::i#4 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_current->render_current::@1#0] -- vbuz1=vbuc1 + //SEG111 [55] phi from render_current to render_current::@1 [phi:render_current->render_current::@1] + //SEG112 [55] phi (byte) render_current::i#4 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_current->render_current::@1#0] -- vbuz1=vbuc1 lda #0 sta i - //SEG111 [54] phi (byte) render_current::l#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_current->render_current::@1#1] -- vbuz1=vbuc1 + //SEG113 [55] phi (byte) render_current::l#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_current->render_current::@1#1] -- vbuz1=vbuc1 sta l - //SEG112 [54] phi (byte) render_current::ypos2#2 = (byte) render_current::ypos2#0 [phi:render_current->render_current::@1#2] -- register_copy - //SEG113 [54] phi from render_current::@2 to render_current::@1 [phi:render_current::@2->render_current::@1] - //SEG114 [54] phi (byte) render_current::i#4 = (byte) render_current::i#8 [phi:render_current::@2->render_current::@1#0] -- register_copy - //SEG115 [54] phi (byte) render_current::l#3 = (byte) render_current::l#1 [phi:render_current::@2->render_current::@1#1] -- register_copy - //SEG116 [54] phi (byte) render_current::ypos2#2 = (byte) render_current::ypos2#1 [phi:render_current::@2->render_current::@1#2] -- register_copy - //SEG117 render_current::@1 + //SEG114 [55] phi (byte) render_current::ypos2#2 = (byte) render_current::ypos2#0 [phi:render_current->render_current::@1#2] -- register_copy + //SEG115 [55] phi from render_current::@2 to render_current::@1 [phi:render_current::@2->render_current::@1] + //SEG116 [55] phi (byte) render_current::i#4 = (byte) render_current::i#8 [phi:render_current::@2->render_current::@1#0] -- register_copy + //SEG117 [55] phi (byte) render_current::l#3 = (byte) render_current::l#1 [phi:render_current::@2->render_current::@1#1] -- register_copy + //SEG118 [55] phi (byte) render_current::ypos2#2 = (byte) render_current::ypos2#1 [phi:render_current::@2->render_current::@1#2] -- register_copy + //SEG119 render_current::@1 b1: - //SEG118 [55] if((byte) render_current::ypos2#2>=(byte/signed byte/word/signed word/dword/signed dword) 2*(const byte) PLAYFIELD_LINES#0) goto render_current::@2 -- vbuz1_ge_vbuc1_then_la1 + //SEG120 [56] if((byte) render_current::ypos2#2>=(byte/signed byte/word/signed word/dword/signed dword) 2*(const byte) PLAYFIELD_LINES#0) goto render_current::@2 -- vbuz1_ge_vbuc1_then_la1 lda ypos2 cmp #2*PLAYFIELD_LINES bcs b2 - //SEG119 render_current::@6 - //SEG120 [56] (byte*) render_current::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0+3]) screen_lines#0 + (byte) render_current::ypos2#2) -- pbuz1=pptc1_derefidx_vbuz2 + //SEG121 render_current::@6 + //SEG122 [57] (byte*) render_current::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0+3]) screen_lines#0 + (byte) render_current::ypos2#2) -- pbuz1=pptc1_derefidx_vbuz2 tay lda screen_lines,y sta screen_line lda screen_lines+1,y sta screen_line+1 - //SEG121 [57] (byte) render_current::xpos#0 ← (byte) current_xpos#48 -- vbuz1=vbuz2 + //SEG123 [58] (byte) render_current::xpos#0 ← (byte) current_xpos#48 -- vbuz1=vbuz2 lda current_xpos_48 sta xpos - //SEG122 [58] phi from render_current::@6 to render_current::@3 [phi:render_current::@6->render_current::@3] - //SEG123 [58] phi (byte) render_current::c#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_current::@6->render_current::@3#0] -- vbuxx=vbuc1 + //SEG124 [59] phi from render_current::@6 to render_current::@3 [phi:render_current::@6->render_current::@3] + //SEG125 [59] phi (byte) render_current::c#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_current::@6->render_current::@3#0] -- vbuxx=vbuc1 ldx #0 - //SEG124 [58] phi (byte) render_current::xpos#2 = (byte) render_current::xpos#0 [phi:render_current::@6->render_current::@3#1] -- register_copy - //SEG125 [58] phi (byte) render_current::i#2 = (byte) render_current::i#4 [phi:render_current::@6->render_current::@3#2] -- register_copy - //SEG126 [58] phi from render_current::@4 to render_current::@3 [phi:render_current::@4->render_current::@3] - //SEG127 [58] phi (byte) render_current::c#2 = (byte) render_current::c#1 [phi:render_current::@4->render_current::@3#0] -- register_copy - //SEG128 [58] phi (byte) render_current::xpos#2 = (byte) render_current::xpos#1 [phi:render_current::@4->render_current::@3#1] -- register_copy - //SEG129 [58] phi (byte) render_current::i#2 = (byte) render_current::i#1 [phi:render_current::@4->render_current::@3#2] -- register_copy - //SEG130 render_current::@3 + //SEG126 [59] phi (byte) render_current::xpos#2 = (byte) render_current::xpos#0 [phi:render_current::@6->render_current::@3#1] -- register_copy + //SEG127 [59] phi (byte) render_current::i#2 = (byte) render_current::i#4 [phi:render_current::@6->render_current::@3#2] -- register_copy + //SEG128 [59] phi from render_current::@4 to render_current::@3 [phi:render_current::@4->render_current::@3] + //SEG129 [59] phi (byte) render_current::c#2 = (byte) render_current::c#1 [phi:render_current::@4->render_current::@3#0] -- register_copy + //SEG130 [59] phi (byte) render_current::xpos#2 = (byte) render_current::xpos#1 [phi:render_current::@4->render_current::@3#1] -- register_copy + //SEG131 [59] phi (byte) render_current::i#2 = (byte) render_current::i#1 [phi:render_current::@4->render_current::@3#2] -- register_copy + //SEG132 render_current::@3 b3: - //SEG131 [59] (byte) render_current::current_cell#0 ← *((byte*) current_piece_gfx#53 + (byte) render_current::i#2) -- vbuaa=pbuz1_derefidx_vbuz2 + //SEG133 [60] (byte) render_current::current_cell#0 ← *((byte*) current_piece_gfx#53 + (byte) render_current::i#2) -- vbuaa=pbuz1_derefidx_vbuz2 ldy i lda (current_piece_gfx_53),y - //SEG132 [60] (byte) render_current::i#1 ← ++ (byte) render_current::i#2 -- vbuz1=_inc_vbuz1 + //SEG134 [61] (byte) render_current::i#1 ← ++ (byte) render_current::i#2 -- vbuz1=_inc_vbuz1 inc i - //SEG133 [61] if((byte) render_current::current_cell#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto render_current::@4 -- vbuaa_eq_0_then_la1 + //SEG135 [62] if((byte) render_current::current_cell#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto render_current::@4 -- vbuaa_eq_0_then_la1 cmp #0 beq b4 - //SEG134 render_current::@7 - //SEG135 [62] if((byte) render_current::xpos#2>=(const byte) PLAYFIELD_COLS#0) goto render_current::@4 -- vbuz1_ge_vbuc1_then_la1 + //SEG136 render_current::@7 + //SEG137 [63] if((byte) render_current::xpos#2>=(const byte) PLAYFIELD_COLS#0) goto render_current::@4 -- vbuz1_ge_vbuc1_then_la1 lda xpos cmp #PLAYFIELD_COLS bcs b4 - //SEG136 render_current::@8 - //SEG137 [63] *((byte*) render_current::screen_line#0 + (byte) render_current::xpos#2) ← (byte) current_piece_color#62 -- pbuz1_derefidx_vbuz2=vbuz3 - lda current_piece_color_62 + //SEG138 render_current::@8 + //SEG139 [64] *((byte*) render_current::screen_line#0 + (byte) render_current::xpos#2) ← (byte) current_piece_char#62 -- pbuz1_derefidx_vbuz2=vbuz3 + lda current_piece_char_62 ldy xpos sta (screen_line),y - //SEG138 render_current::@4 + //SEG140 render_current::@4 b4: - //SEG139 [64] (byte) render_current::xpos#1 ← ++ (byte) render_current::xpos#2 -- vbuz1=_inc_vbuz1 + //SEG141 [65] (byte) render_current::xpos#1 ← ++ (byte) render_current::xpos#2 -- vbuz1=_inc_vbuz1 inc xpos - //SEG140 [65] (byte) render_current::c#1 ← ++ (byte) render_current::c#2 -- vbuxx=_inc_vbuxx + //SEG142 [66] (byte) render_current::c#1 ← ++ (byte) render_current::c#2 -- vbuxx=_inc_vbuxx inx - //SEG141 [66] if((byte) render_current::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_current::@3 -- vbuxx_neq_vbuc1_then_la1 + //SEG143 [67] if((byte) render_current::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_current::@3 -- vbuxx_neq_vbuc1_then_la1 cpx #4 bne b3 - //SEG142 [67] phi from render_current::@1 render_current::@4 to render_current::@2 [phi:render_current::@1/render_current::@4->render_current::@2] - //SEG143 [67] phi (byte) render_current::i#8 = (byte) render_current::i#4 [phi:render_current::@1/render_current::@4->render_current::@2#0] -- register_copy - //SEG144 render_current::@2 + //SEG144 [68] phi from render_current::@1 render_current::@4 to render_current::@2 [phi:render_current::@1/render_current::@4->render_current::@2] + //SEG145 [68] phi (byte) render_current::i#8 = (byte) render_current::i#4 [phi:render_current::@1/render_current::@4->render_current::@2#0] -- register_copy + //SEG146 render_current::@2 b2: - //SEG145 [68] (byte) render_current::ypos2#1 ← (byte) render_current::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 -- vbuz1=vbuz1_plus_2 + //SEG147 [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 lda ypos2 clc adc #2 sta ypos2 - //SEG146 [69] (byte) render_current::l#1 ← ++ (byte) render_current::l#3 -- vbuz1=_inc_vbuz1 + //SEG148 [70] (byte) render_current::l#1 ← ++ (byte) render_current::l#3 -- vbuz1=_inc_vbuz1 inc l - //SEG147 [70] 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 + //SEG149 [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 lda l cmp #4 bne b1 - //SEG148 render_current::@return - //SEG149 [71] return + //SEG150 render_current::@return + //SEG151 [72] return rts } -//SEG150 render_playfield +//SEG152 render_playfield render_playfield: { .label line = 5 .label i = 7 .label l = 4 - //SEG151 [73] phi from render_playfield to render_playfield::@1 [phi:render_playfield->render_playfield::@1] - //SEG152 [73] phi (byte) render_playfield::i#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_playfield->render_playfield::@1#0] -- vbuz1=vbuc1 + //SEG153 [74] phi from render_playfield to render_playfield::@1 [phi:render_playfield->render_playfield::@1] + //SEG154 [74] phi (byte) render_playfield::i#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_playfield->render_playfield::@1#0] -- vbuz1=vbuc1 lda #0 sta i - //SEG153 [73] phi (byte) render_playfield::l#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_playfield->render_playfield::@1#1] -- vbuz1=vbuc1 + //SEG155 [74] phi (byte) render_playfield::l#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_playfield->render_playfield::@1#1] -- vbuz1=vbuc1 sta l - //SEG154 [73] phi from render_playfield::@3 to render_playfield::@1 [phi:render_playfield::@3->render_playfield::@1] - //SEG155 [73] phi (byte) render_playfield::i#3 = (byte) render_playfield::i#1 [phi:render_playfield::@3->render_playfield::@1#0] -- register_copy - //SEG156 [73] phi (byte) render_playfield::l#2 = (byte) render_playfield::l#1 [phi:render_playfield::@3->render_playfield::@1#1] -- register_copy - //SEG157 render_playfield::@1 + //SEG156 [74] phi from render_playfield::@3 to render_playfield::@1 [phi:render_playfield::@3->render_playfield::@1] + //SEG157 [74] phi (byte) render_playfield::i#3 = (byte) render_playfield::i#1 [phi:render_playfield::@3->render_playfield::@1#0] -- register_copy + //SEG158 [74] phi (byte) render_playfield::l#2 = (byte) render_playfield::l#1 [phi:render_playfield::@3->render_playfield::@1#1] -- register_copy + //SEG159 render_playfield::@1 b1: - //SEG158 [74] (byte~) render_playfield::$1 ← (byte) render_playfield::l#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuaa=vbuz1_rol_1 + //SEG160 [75] (byte~) render_playfield::$1 ← (byte) render_playfield::l#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuaa=vbuz1_rol_1 lda l asl - //SEG159 [75] (byte*) render_playfield::line#0 ← *((const byte*[PLAYFIELD_LINES#0+3]) screen_lines#0 + (byte~) render_playfield::$1) -- pbuz1=pptc1_derefidx_vbuaa + //SEG161 [76] (byte*) render_playfield::line#0 ← *((const byte*[PLAYFIELD_LINES#0+3]) screen_lines#0 + (byte~) render_playfield::$1) -- pbuz1=pptc1_derefidx_vbuaa tay lda screen_lines,y sta line lda screen_lines+1,y sta line+1 - //SEG160 [76] phi from render_playfield::@1 to render_playfield::@2 [phi:render_playfield::@1->render_playfield::@2] - //SEG161 [76] 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 + //SEG162 [77] phi from render_playfield::@1 to render_playfield::@2 [phi:render_playfield::@1->render_playfield::@2] + //SEG163 [77] 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 - //SEG162 [76] phi (byte*) render_playfield::line#2 = (byte*) render_playfield::line#0 [phi:render_playfield::@1->render_playfield::@2#1] -- register_copy - //SEG163 [76] phi (byte) render_playfield::i#2 = (byte) render_playfield::i#3 [phi:render_playfield::@1->render_playfield::@2#2] -- register_copy - //SEG164 [76] phi from render_playfield::@2 to render_playfield::@2 [phi:render_playfield::@2->render_playfield::@2] - //SEG165 [76] phi (byte) render_playfield::c#2 = (byte) render_playfield::c#1 [phi:render_playfield::@2->render_playfield::@2#0] -- register_copy - //SEG166 [76] phi (byte*) render_playfield::line#2 = (byte*) render_playfield::line#1 [phi:render_playfield::@2->render_playfield::@2#1] -- register_copy - //SEG167 [76] phi (byte) render_playfield::i#2 = (byte) render_playfield::i#1 [phi:render_playfield::@2->render_playfield::@2#2] -- register_copy - //SEG168 render_playfield::@2 + //SEG164 [77] phi (byte*) render_playfield::line#2 = (byte*) render_playfield::line#0 [phi:render_playfield::@1->render_playfield::@2#1] -- register_copy + //SEG165 [77] phi (byte) render_playfield::i#2 = (byte) render_playfield::i#3 [phi:render_playfield::@1->render_playfield::@2#2] -- register_copy + //SEG166 [77] phi from render_playfield::@2 to render_playfield::@2 [phi:render_playfield::@2->render_playfield::@2] + //SEG167 [77] phi (byte) render_playfield::c#2 = (byte) render_playfield::c#1 [phi:render_playfield::@2->render_playfield::@2#0] -- register_copy + //SEG168 [77] phi (byte*) render_playfield::line#2 = (byte*) render_playfield::line#1 [phi:render_playfield::@2->render_playfield::@2#1] -- register_copy + //SEG169 [77] phi (byte) render_playfield::i#2 = (byte) render_playfield::i#1 [phi:render_playfield::@2->render_playfield::@2#2] -- register_copy + //SEG170 render_playfield::@2 b2: - //SEG169 [77] *((byte*) render_playfield::line#2) ← *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) render_playfield::i#2) -- _deref_pbuz1=pbuc1_derefidx_vbuz2 + //SEG171 [78] *((byte*) render_playfield::line#2) ← *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) render_playfield::i#2) -- _deref_pbuz1=pbuc1_derefidx_vbuz2 ldy i lda playfield,y ldy #0 sta (line),y - //SEG170 [78] (byte*) render_playfield::line#1 ← ++ (byte*) render_playfield::line#2 -- pbuz1=_inc_pbuz1 + //SEG172 [79] (byte*) render_playfield::line#1 ← ++ (byte*) render_playfield::line#2 -- pbuz1=_inc_pbuz1 inc line bne !+ inc line+1 !: - //SEG171 [79] (byte) render_playfield::i#1 ← ++ (byte) render_playfield::i#2 -- vbuz1=_inc_vbuz1 + //SEG173 [80] (byte) render_playfield::i#1 ← ++ (byte) render_playfield::i#2 -- vbuz1=_inc_vbuz1 inc i - //SEG172 [80] (byte) render_playfield::c#1 ← ++ (byte) render_playfield::c#2 -- vbuxx=_inc_vbuxx + //SEG174 [81] (byte) render_playfield::c#1 ← ++ (byte) render_playfield::c#2 -- vbuxx=_inc_vbuxx inx - //SEG173 [81] 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 + //SEG175 [82] 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 - //SEG174 render_playfield::@3 - //SEG175 [82] (byte) render_playfield::l#1 ← ++ (byte) render_playfield::l#2 -- vbuz1=_inc_vbuz1 + //SEG176 render_playfield::@3 + //SEG177 [83] (byte) render_playfield::l#1 ← ++ (byte) render_playfield::l#2 -- vbuz1=_inc_vbuz1 inc l - //SEG176 [83] 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 + //SEG178 [84] 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 - //SEG177 render_playfield::@return - //SEG178 [84] return + //SEG179 render_playfield::@return + //SEG180 [85] return rts } -//SEG179 play_move_rotate +//SEG181 play_move_rotate play_move_rotate: { .label orientation = 4 - //SEG180 [85] if((byte) play_move_rotate::key_event#0==(const byte) KEY_Z#0) goto play_move_rotate::@1 -- vbuaa_eq_vbuc1_then_la1 + //SEG182 [86] 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 - //SEG181 play_move_rotate::@6 - //SEG182 [86] if((byte) play_move_rotate::key_event#0==(const byte) KEY_X#0) goto play_move_rotate::@2 -- vbuaa_eq_vbuc1_then_la1 + //SEG183 play_move_rotate::@6 + //SEG184 [87] 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 - //SEG183 [87] 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] + //SEG185 [88] 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: - //SEG184 [87] 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 - //SEG185 [87] 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 - //SEG186 [87] 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 + //SEG186 [88] 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 + //SEG187 [88] 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 + //SEG188 [88] 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 - //SEG187 play_move_rotate::@return + //SEG189 play_move_rotate::@return breturn: - //SEG188 [88] return + //SEG190 [89] return rts - //SEG189 play_move_rotate::@2 + //SEG191 play_move_rotate::@2 b2: - //SEG190 [89] (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 + //SEG192 [90] (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 - //SEG191 [90] (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 + //SEG193 [91] (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 - //SEG192 [91] 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] - //SEG193 [91] 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 - //SEG194 play_move_rotate::@4 + //SEG194 [92] 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] + //SEG195 [92] 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 + //SEG196 play_move_rotate::@4 b4: - //SEG195 [92] (byte) play_collision::xpos#3 ← (byte) current_xpos#20 -- vbuz1=vbuz2 + //SEG197 [93] (byte) play_collision::xpos#3 ← (byte) current_xpos#20 -- vbuz1=vbuz2 lda current_xpos sta play_collision.xpos - //SEG196 [93] (byte) play_collision::ypos#3 ← (byte) current_ypos#14 -- vbuyy=vbuz1 + //SEG198 [94] (byte) play_collision::ypos#3 ← (byte) current_ypos#14 -- vbuyy=vbuz1 ldy current_ypos - //SEG197 [94] (byte) play_collision::orientation#3 ← (byte) play_move_rotate::orientation#3 -- vbuxx=vbuz1 + //SEG199 [95] (byte) play_collision::orientation#3 ← (byte) play_move_rotate::orientation#3 -- vbuxx=vbuz1 ldx orientation - //SEG198 [95] (byte*~) current_piece#74 ← (byte*) current_piece#10 -- pbuz1=pbuz2 + //SEG200 [96] (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 - //SEG199 [96] call play_collision - //SEG200 [104] phi from play_move_rotate::@4 to play_collision [phi:play_move_rotate::@4->play_collision] - //SEG201 [104] phi (byte) play_collision::xpos#5 = (byte) play_collision::xpos#3 [phi:play_move_rotate::@4->play_collision#0] -- register_copy - //SEG202 [104] phi (byte) play_collision::ypos#4 = (byte) play_collision::ypos#3 [phi:play_move_rotate::@4->play_collision#1] -- register_copy - //SEG203 [104] phi (byte) play_collision::orientation#4 = (byte) play_collision::orientation#3 [phi:play_move_rotate::@4->play_collision#2] -- register_copy - //SEG204 [104] phi (byte*) current_piece#12 = (byte*~) current_piece#74 [phi:play_move_rotate::@4->play_collision#3] -- register_copy + //SEG201 [97] call play_collision + //SEG202 [105] phi from play_move_rotate::@4 to play_collision [phi:play_move_rotate::@4->play_collision] + //SEG203 [105] phi (byte) play_collision::xpos#5 = (byte) play_collision::xpos#3 [phi:play_move_rotate::@4->play_collision#0] -- register_copy + //SEG204 [105] phi (byte) play_collision::ypos#4 = (byte) play_collision::ypos#3 [phi:play_move_rotate::@4->play_collision#1] -- register_copy + //SEG205 [105] phi (byte) play_collision::orientation#4 = (byte) play_collision::orientation#3 [phi:play_move_rotate::@4->play_collision#2] -- register_copy + //SEG206 [105] phi (byte*) current_piece#12 = (byte*~) current_piece#74 [phi:play_move_rotate::@4->play_collision#3] -- register_copy jsr play_collision - //SEG205 [97] (byte) play_collision::return#13 ← (byte) play_collision::return#14 + //SEG207 [98] (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 - //SEG206 play_move_rotate::@14 - //SEG207 [98] (byte~) play_move_rotate::$6 ← (byte) play_collision::return#13 + //SEG208 play_move_rotate::@14 + //SEG209 [99] (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 - //SEG208 [99] if((byte~) play_move_rotate::$6!=(const byte) COLLISION_NONE#0) goto play_move_rotate::@return -- vbuaa_neq_vbuc1_then_la1 + //SEG210 [100] 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 - //SEG209 play_move_rotate::@11 - //SEG210 [100] (byte) current_orientation#4 ← (byte) play_move_rotate::orientation#3 -- vbuz1=vbuz2 + //SEG211 play_move_rotate::@11 + //SEG212 [101] (byte) current_orientation#4 ← (byte) play_move_rotate::orientation#3 -- vbuz1=vbuz2 lda orientation sta current_orientation - //SEG211 [101] (byte*) current_piece_gfx#4 ← (byte*) current_piece#10 + (byte) current_orientation#4 -- pbuz1=pbuz2_plus_vbuz3 + //SEG213 [102] (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 - //SEG212 [87] phi from play_move_rotate::@11 to play_move_rotate::@return [phi:play_move_rotate::@11->play_move_rotate::@return] - //SEG213 [87] phi (byte*) current_piece_gfx#15 = (byte*) current_piece_gfx#4 [phi:play_move_rotate::@11->play_move_rotate::@return#0] -- register_copy - //SEG214 [87] phi (byte) current_orientation#19 = (byte) current_orientation#4 [phi:play_move_rotate::@11->play_move_rotate::@return#1] -- register_copy - //SEG215 [87] 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 + //SEG214 [88] phi from play_move_rotate::@11 to play_move_rotate::@return [phi:play_move_rotate::@11->play_move_rotate::@return] + //SEG215 [88] phi (byte*) current_piece_gfx#15 = (byte*) current_piece_gfx#4 [phi:play_move_rotate::@11->play_move_rotate::@return#0] -- register_copy + //SEG216 [88] phi (byte) current_orientation#19 = (byte) current_orientation#4 [phi:play_move_rotate::@11->play_move_rotate::@return#1] -- register_copy + //SEG217 [88] 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 - //SEG216 play_move_rotate::@1 + //SEG218 play_move_rotate::@1 b1: - //SEG217 [102] (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 + //SEG219 [103] (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 - //SEG218 [103] (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 + //SEG220 [104] (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 } -//SEG219 play_collision +//SEG221 play_collision play_collision: { .label xpos = 7 .label piece_gfx = 5 @@ -13629,7 +14607,7 @@ play_collision: { .label i_3 = $a .label i_11 = $a .label i_13 = $a - //SEG220 [105] (byte*) play_collision::piece_gfx#0 ← (byte*) current_piece#12 + (byte) play_collision::orientation#4 -- pbuz1=pbuz1_plus_vbuxx + //SEG222 [106] (byte*) play_collision::piece_gfx#0 ← (byte*) current_piece#12 + (byte) play_collision::orientation#4 -- pbuz1=pbuz1_plus_vbuxx txa clc adc piece_gfx @@ -13637,548 +14615,548 @@ play_collision: { lda #0 adc piece_gfx+1 sta piece_gfx+1 - //SEG221 [106] (byte) play_collision::ypos2#0 ← (byte) play_collision::ypos#4 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuyy_rol_1 + //SEG223 [107] (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 - //SEG222 [107] phi from play_collision to play_collision::@1 [phi:play_collision->play_collision::@1] - //SEG223 [107] 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 + //SEG224 [108] phi from play_collision to play_collision::@1 [phi:play_collision->play_collision::@1] + //SEG225 [108] 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 - //SEG224 [107] 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 + //SEG226 [108] 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 - //SEG225 [107] phi (byte) play_collision::ypos2#2 = (byte) play_collision::ypos2#0 [phi:play_collision->play_collision::@1#2] -- register_copy - //SEG226 play_collision::@1 + //SEG227 [108] phi (byte) play_collision::ypos2#2 = (byte) play_collision::ypos2#0 [phi:play_collision->play_collision::@1#2] -- register_copy + //SEG228 play_collision::@1 b1: - //SEG227 [108] (byte*) play_collision::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) play_collision::ypos2#2) -- pbuz1=pptc1_derefidx_vbuz2 + //SEG229 [109] (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 - //SEG228 [109] (byte~) play_collision::col#9 ← (byte) play_collision::xpos#5 -- vbuz1=vbuz2 + //SEG230 [110] (byte~) play_collision::col#9 ← (byte) play_collision::xpos#5 -- vbuz1=vbuz2 lda xpos sta col - //SEG229 [110] phi from play_collision::@1 to play_collision::@2 [phi:play_collision::@1->play_collision::@2] - //SEG230 [110] 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 + //SEG231 [111] phi from play_collision::@1 to play_collision::@2 [phi:play_collision::@1->play_collision::@2] + //SEG232 [111] 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 - //SEG231 [110] phi (byte) play_collision::col#2 = (byte~) play_collision::col#9 [phi:play_collision::@1->play_collision::@2#1] -- register_copy - //SEG232 [110] phi (byte) play_collision::i#2 = (byte) play_collision::i#3 [phi:play_collision::@1->play_collision::@2#2] -- register_copy - //SEG233 play_collision::@2 + //SEG233 [111] phi (byte) play_collision::col#2 = (byte~) play_collision::col#9 [phi:play_collision::@1->play_collision::@2#1] -- register_copy + //SEG234 [111] phi (byte) play_collision::i#2 = (byte) play_collision::i#3 [phi:play_collision::@1->play_collision::@2#2] -- register_copy + //SEG235 play_collision::@2 b2: - //SEG234 [111] (byte) play_collision::i#1 ← ++ (byte) play_collision::i#2 -- vbuz1=_inc_vbuz2 + //SEG236 [112] (byte) play_collision::i#1 ← ++ (byte) play_collision::i#2 -- vbuz1=_inc_vbuz2 ldy i_2 iny sty i - //SEG235 [112] 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 + //SEG237 [113] 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 - //SEG236 play_collision::@8 - //SEG237 [113] 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 + //SEG238 play_collision::@8 + //SEG239 [114] 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 - //SEG238 [114] phi from play_collision::@8 to play_collision::@return [phi:play_collision::@8->play_collision::@return] - //SEG239 [114] phi (byte) play_collision::return#14 = (const byte) COLLISION_BOTTOM#0 [phi:play_collision::@8->play_collision::@return#0] -- vbuaa=vbuc1 + //SEG240 [115] phi from play_collision::@8 to play_collision::@return [phi:play_collision::@8->play_collision::@return] + //SEG241 [115] phi (byte) play_collision::return#14 = (const byte) COLLISION_BOTTOM#0 [phi:play_collision::@8->play_collision::@return#0] -- vbuaa=vbuc1 lda #COLLISION_BOTTOM - //SEG240 play_collision::@return + //SEG242 play_collision::@return breturn: - //SEG241 [115] return + //SEG243 [116] return rts - //SEG242 play_collision::@4 + //SEG244 play_collision::@4 b4: - //SEG243 [116] (byte~) play_collision::$7 ← (byte) play_collision::col#2 & (byte/word/signed word/dword/signed dword) 128 -- vbuaa=vbuz1_band_vbuc1 + //SEG245 [117] (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 - //SEG244 [117] if((byte~) play_collision::$7==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_collision::@5 -- vbuaa_eq_0_then_la1 + //SEG246 [118] 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 - //SEG245 [114] phi from play_collision::@4 to play_collision::@return [phi:play_collision::@4->play_collision::@return] - //SEG246 [114] phi (byte) play_collision::return#14 = (const byte) COLLISION_LEFT#0 [phi:play_collision::@4->play_collision::@return#0] -- vbuaa=vbuc1 + //SEG247 [115] phi from play_collision::@4 to play_collision::@return [phi:play_collision::@4->play_collision::@return] + //SEG248 [115] 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 - //SEG247 play_collision::@5 + //SEG249 play_collision::@5 b5: - //SEG248 [118] if((byte) play_collision::col#2<(const byte) PLAYFIELD_COLS#0) goto play_collision::@6 -- vbuz1_lt_vbuc1_then_la1 + //SEG250 [119] 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 - //SEG249 [114] phi from play_collision::@5 to play_collision::@return [phi:play_collision::@5->play_collision::@return] - //SEG250 [114] phi (byte) play_collision::return#14 = (const byte) COLLISION_RIGHT#0 [phi:play_collision::@5->play_collision::@return#0] -- vbuaa=vbuc1 + //SEG251 [115] phi from play_collision::@5 to play_collision::@return [phi:play_collision::@5->play_collision::@return] + //SEG252 [115] 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 - //SEG251 play_collision::@6 + //SEG253 play_collision::@6 b6: - //SEG252 [119] 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 + //SEG254 [120] 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 - //SEG253 [114] phi from play_collision::@6 to play_collision::@return [phi:play_collision::@6->play_collision::@return] - //SEG254 [114] phi (byte) play_collision::return#14 = (const byte) COLLISION_PLAYFIELD#0 [phi:play_collision::@6->play_collision::@return#0] -- vbuaa=vbuc1 + //SEG255 [115] phi from play_collision::@6 to play_collision::@return [phi:play_collision::@6->play_collision::@return] + //SEG256 [115] 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 - //SEG255 play_collision::@3 + //SEG257 play_collision::@3 b3: - //SEG256 [120] (byte) play_collision::col#1 ← ++ (byte) play_collision::col#2 -- vbuz1=_inc_vbuz1 + //SEG258 [121] (byte) play_collision::col#1 ← ++ (byte) play_collision::col#2 -- vbuz1=_inc_vbuz1 inc col - //SEG257 [121] (byte) play_collision::c#1 ← ++ (byte) play_collision::c#2 -- vbuxx=_inc_vbuxx + //SEG259 [122] (byte) play_collision::c#1 ← ++ (byte) play_collision::c#2 -- vbuxx=_inc_vbuxx inx - //SEG258 [122] 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 + //SEG260 [123] 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 - //SEG259 play_collision::@17 - //SEG260 [123] (byte) play_collision::ypos2#1 ← (byte) play_collision::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 -- vbuz1=vbuz1_plus_2 + //SEG261 play_collision::@17 + //SEG262 [124] (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 - //SEG261 [124] (byte) play_collision::l#1 ← ++ (byte) play_collision::l#6 -- vbuz1=_inc_vbuz1 + //SEG263 [125] (byte) play_collision::l#1 ← ++ (byte) play_collision::l#6 -- vbuz1=_inc_vbuz1 inc l - //SEG262 [125] 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 + //SEG264 [126] 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 - //SEG263 [114] phi from play_collision::@17 to play_collision::@return [phi:play_collision::@17->play_collision::@return] - //SEG264 [114] phi (byte) play_collision::return#14 = (const byte) COLLISION_NONE#0 [phi:play_collision::@17->play_collision::@return#0] -- vbuaa=vbuc1 + //SEG265 [115] phi from play_collision::@17 to play_collision::@return [phi:play_collision::@17->play_collision::@return] + //SEG266 [115] 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 - //SEG265 play_collision::@20 + //SEG267 play_collision::@20 b20: - //SEG266 [126] (byte~) play_collision::i#11 ← (byte) play_collision::i#1 -- vbuz1=vbuz2 + //SEG268 [127] (byte~) play_collision::i#11 ← (byte) play_collision::i#1 -- vbuz1=vbuz2 lda i sta i_11 - //SEG267 [107] phi from play_collision::@20 to play_collision::@1 [phi:play_collision::@20->play_collision::@1] - //SEG268 [107] phi (byte) play_collision::l#6 = (byte) play_collision::l#1 [phi:play_collision::@20->play_collision::@1#0] -- register_copy - //SEG269 [107] phi (byte) play_collision::i#3 = (byte~) play_collision::i#11 [phi:play_collision::@20->play_collision::@1#1] -- register_copy - //SEG270 [107] phi (byte) play_collision::ypos2#2 = (byte) play_collision::ypos2#1 [phi:play_collision::@20->play_collision::@1#2] -- register_copy + //SEG269 [108] phi from play_collision::@20 to play_collision::@1 [phi:play_collision::@20->play_collision::@1] + //SEG270 [108] phi (byte) play_collision::l#6 = (byte) play_collision::l#1 [phi:play_collision::@20->play_collision::@1#0] -- register_copy + //SEG271 [108] phi (byte) play_collision::i#3 = (byte~) play_collision::i#11 [phi:play_collision::@20->play_collision::@1#1] -- register_copy + //SEG272 [108] phi (byte) play_collision::ypos2#2 = (byte) play_collision::ypos2#1 [phi:play_collision::@20->play_collision::@1#2] -- register_copy jmp b1 - //SEG271 play_collision::@21 + //SEG273 play_collision::@21 b21: - //SEG272 [127] (byte~) play_collision::i#13 ← (byte) play_collision::i#1 -- vbuz1=vbuz2 + //SEG274 [128] (byte~) play_collision::i#13 ← (byte) play_collision::i#1 -- vbuz1=vbuz2 lda i sta i_13 - //SEG273 [110] phi from play_collision::@21 to play_collision::@2 [phi:play_collision::@21->play_collision::@2] - //SEG274 [110] phi (byte) play_collision::c#2 = (byte) play_collision::c#1 [phi:play_collision::@21->play_collision::@2#0] -- register_copy - //SEG275 [110] phi (byte) play_collision::col#2 = (byte) play_collision::col#1 [phi:play_collision::@21->play_collision::@2#1] -- register_copy - //SEG276 [110] phi (byte) play_collision::i#2 = (byte~) play_collision::i#13 [phi:play_collision::@21->play_collision::@2#2] -- register_copy + //SEG275 [111] phi from play_collision::@21 to play_collision::@2 [phi:play_collision::@21->play_collision::@2] + //SEG276 [111] phi (byte) play_collision::c#2 = (byte) play_collision::c#1 [phi:play_collision::@21->play_collision::@2#0] -- register_copy + //SEG277 [111] phi (byte) play_collision::col#2 = (byte) play_collision::col#1 [phi:play_collision::@21->play_collision::@2#1] -- register_copy + //SEG278 [111] phi (byte) play_collision::i#2 = (byte~) play_collision::i#13 [phi:play_collision::@21->play_collision::@2#2] -- register_copy jmp b2 } -//SEG277 play_move_leftright +//SEG279 play_move_leftright play_move_leftright: { - //SEG278 [128] if((byte) play_move_leftright::key_event#0==(const byte) KEY_COMMA#0) goto play_move_leftright::@1 -- vbuaa_eq_vbuc1_then_la1 + //SEG280 [129] 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 - //SEG279 play_move_leftright::@6 - //SEG280 [129] if((byte) play_move_leftright::key_event#0!=(const byte) KEY_DOT#0) goto play_move_leftright::@return -- vbuaa_neq_vbuc1_then_la1 + //SEG281 play_move_leftright::@6 + //SEG282 [130] 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 - //SEG281 play_move_leftright::@7 - //SEG282 [130] (byte) play_collision::xpos#2 ← (byte) current_xpos#16 + (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_plus_1 + //SEG283 play_move_leftright::@7 + //SEG284 [131] (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 - //SEG283 [131] (byte) play_collision::ypos#2 ← (byte) current_ypos#14 -- vbuyy=vbuz1 + //SEG285 [132] (byte) play_collision::ypos#2 ← (byte) current_ypos#14 -- vbuyy=vbuz1 ldy current_ypos - //SEG284 [132] (byte) play_collision::orientation#2 ← (byte) current_orientation#14 -- vbuxx=vbuz1 + //SEG286 [133] (byte) play_collision::orientation#2 ← (byte) current_orientation#14 -- vbuxx=vbuz1 ldx current_orientation - //SEG285 [133] (byte*~) current_piece#73 ← (byte*) current_piece#10 -- pbuz1=pbuz2 + //SEG287 [134] (byte*~) current_piece#73 ← (byte*) current_piece#10 -- pbuz1=pbuz2 lda current_piece sta current_piece_73 lda current_piece+1 sta current_piece_73+1 - //SEG286 [134] call play_collision - //SEG287 [104] phi from play_move_leftright::@7 to play_collision [phi:play_move_leftright::@7->play_collision] - //SEG288 [104] phi (byte) play_collision::xpos#5 = (byte) play_collision::xpos#2 [phi:play_move_leftright::@7->play_collision#0] -- register_copy - //SEG289 [104] phi (byte) play_collision::ypos#4 = (byte) play_collision::ypos#2 [phi:play_move_leftright::@7->play_collision#1] -- register_copy - //SEG290 [104] phi (byte) play_collision::orientation#4 = (byte) play_collision::orientation#2 [phi:play_move_leftright::@7->play_collision#2] -- register_copy - //SEG291 [104] phi (byte*) current_piece#12 = (byte*~) current_piece#73 [phi:play_move_leftright::@7->play_collision#3] -- register_copy + //SEG288 [135] call play_collision + //SEG289 [105] phi from play_move_leftright::@7 to play_collision [phi:play_move_leftright::@7->play_collision] + //SEG290 [105] phi (byte) play_collision::xpos#5 = (byte) play_collision::xpos#2 [phi:play_move_leftright::@7->play_collision#0] -- register_copy + //SEG291 [105] phi (byte) play_collision::ypos#4 = (byte) play_collision::ypos#2 [phi:play_move_leftright::@7->play_collision#1] -- register_copy + //SEG292 [105] phi (byte) play_collision::orientation#4 = (byte) play_collision::orientation#2 [phi:play_move_leftright::@7->play_collision#2] -- register_copy + //SEG293 [105] phi (byte*) current_piece#12 = (byte*~) current_piece#73 [phi:play_move_leftright::@7->play_collision#3] -- register_copy jsr play_collision - //SEG292 [135] (byte) play_collision::return#12 ← (byte) play_collision::return#14 + //SEG294 [136] (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 - //SEG293 play_move_leftright::@15 - //SEG294 [136] (byte~) play_move_leftright::$4 ← (byte) play_collision::return#12 + //SEG295 play_move_leftright::@15 + //SEG296 [137] (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 - //SEG295 [137] if((byte~) play_move_leftright::$4!=(const byte) COLLISION_NONE#0) goto play_move_leftright::@return -- vbuaa_neq_vbuc1_then_la1 + //SEG297 [138] 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 - //SEG296 play_move_leftright::@8 - //SEG297 [138] (byte) current_xpos#3 ← ++ (byte) current_xpos#16 -- vbuz1=_inc_vbuz1 + //SEG298 play_move_leftright::@8 + //SEG299 [139] (byte) current_xpos#3 ← ++ (byte) current_xpos#16 -- vbuz1=_inc_vbuz1 inc current_xpos - //SEG298 [139] 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] + //SEG300 [140] 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: - //SEG299 [139] 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 - //SEG300 [139] 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 + //SEG301 [140] 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 + //SEG302 [140] 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 - //SEG301 [139] 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] + //SEG303 [140] 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: - //SEG302 [139] 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 - //SEG303 [139] 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 + //SEG304 [140] 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 + //SEG305 [140] 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 - //SEG304 play_move_leftright::@return + //SEG306 play_move_leftright::@return breturn: - //SEG305 [140] return + //SEG307 [141] return rts - //SEG306 play_move_leftright::@1 + //SEG308 play_move_leftright::@1 b1: - //SEG307 [141] (byte) play_collision::xpos#1 ← (byte) current_xpos#16 - (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_minus_1 + //SEG309 [142] (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 - //SEG308 [142] (byte) play_collision::ypos#1 ← (byte) current_ypos#14 -- vbuyy=vbuz1 + //SEG310 [143] (byte) play_collision::ypos#1 ← (byte) current_ypos#14 -- vbuyy=vbuz1 ldy current_ypos - //SEG309 [143] (byte) play_collision::orientation#1 ← (byte) current_orientation#14 -- vbuxx=vbuz1 + //SEG311 [144] (byte) play_collision::orientation#1 ← (byte) current_orientation#14 -- vbuxx=vbuz1 ldx current_orientation - //SEG310 [144] (byte*~) current_piece#72 ← (byte*) current_piece#10 -- pbuz1=pbuz2 + //SEG312 [145] (byte*~) current_piece#72 ← (byte*) current_piece#10 -- pbuz1=pbuz2 lda current_piece sta current_piece_72 lda current_piece+1 sta current_piece_72+1 - //SEG311 [145] call play_collision - //SEG312 [104] phi from play_move_leftright::@1 to play_collision [phi:play_move_leftright::@1->play_collision] - //SEG313 [104] phi (byte) play_collision::xpos#5 = (byte) play_collision::xpos#1 [phi:play_move_leftright::@1->play_collision#0] -- register_copy - //SEG314 [104] phi (byte) play_collision::ypos#4 = (byte) play_collision::ypos#1 [phi:play_move_leftright::@1->play_collision#1] -- register_copy - //SEG315 [104] phi (byte) play_collision::orientation#4 = (byte) play_collision::orientation#1 [phi:play_move_leftright::@1->play_collision#2] -- register_copy - //SEG316 [104] phi (byte*) current_piece#12 = (byte*~) current_piece#72 [phi:play_move_leftright::@1->play_collision#3] -- register_copy + //SEG313 [146] call play_collision + //SEG314 [105] phi from play_move_leftright::@1 to play_collision [phi:play_move_leftright::@1->play_collision] + //SEG315 [105] phi (byte) play_collision::xpos#5 = (byte) play_collision::xpos#1 [phi:play_move_leftright::@1->play_collision#0] -- register_copy + //SEG316 [105] phi (byte) play_collision::ypos#4 = (byte) play_collision::ypos#1 [phi:play_move_leftright::@1->play_collision#1] -- register_copy + //SEG317 [105] phi (byte) play_collision::orientation#4 = (byte) play_collision::orientation#1 [phi:play_move_leftright::@1->play_collision#2] -- register_copy + //SEG318 [105] phi (byte*) current_piece#12 = (byte*~) current_piece#72 [phi:play_move_leftright::@1->play_collision#3] -- register_copy jsr play_collision - //SEG317 [146] (byte) play_collision::return#1 ← (byte) play_collision::return#14 + //SEG319 [147] (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 - //SEG318 play_move_leftright::@14 - //SEG319 [147] (byte~) play_move_leftright::$8 ← (byte) play_collision::return#1 + //SEG320 play_move_leftright::@14 + //SEG321 [148] (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 - //SEG320 [148] if((byte~) play_move_leftright::$8!=(const byte) COLLISION_NONE#0) goto play_move_leftright::@return -- vbuaa_neq_vbuc1_then_la1 + //SEG322 [149] 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 - //SEG321 play_move_leftright::@11 - //SEG322 [149] (byte) current_xpos#5 ← -- (byte) current_xpos#16 -- vbuz1=_dec_vbuz1 + //SEG323 play_move_leftright::@11 + //SEG324 [150] (byte) current_xpos#5 ← -- (byte) current_xpos#16 -- vbuz1=_dec_vbuz1 dec current_xpos jmp b2 } -//SEG323 play_move_down +//SEG325 play_move_down play_move_down: { - //SEG324 [150] (byte) current_movedown_counter#1 ← ++ (byte) current_movedown_counter#12 -- vbuz1=_inc_vbuz1 + //SEG326 [151] (byte) current_movedown_counter#1 ← ++ (byte) current_movedown_counter#12 -- vbuz1=_inc_vbuz1 inc current_movedown_counter - //SEG325 [151] if((byte) play_move_down::key_event#0!=(const byte) KEY_SPACE#0) goto play_move_down::@1 -- vbuaa_neq_vbuc1_then_la1 + //SEG327 [152] 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 - //SEG326 [152] phi from play_move_down to play_move_down::@8 [phi:play_move_down->play_move_down::@8] - //SEG327 play_move_down::@8 - //SEG328 [153] phi from play_move_down::@8 to play_move_down::@1 [phi:play_move_down::@8->play_move_down::@1] - //SEG329 [153] phi (byte) play_move_down::movedown#10 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_move_down::@8->play_move_down::@1#0] -- vbuxx=vbuc1 + //SEG328 [153] phi from play_move_down to play_move_down::@8 [phi:play_move_down->play_move_down::@8] + //SEG329 play_move_down::@8 + //SEG330 [154] phi from play_move_down::@8 to play_move_down::@1 [phi:play_move_down::@8->play_move_down::@1] + //SEG331 [154] 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 - //SEG330 [153] phi from play_move_down to play_move_down::@1 [phi:play_move_down->play_move_down::@1] + //SEG332 [154] phi from play_move_down to play_move_down::@1 [phi:play_move_down->play_move_down::@1] b3: - //SEG331 [153] 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 + //SEG333 [154] 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 - //SEG332 play_move_down::@1 + //SEG334 play_move_down::@1 b1: - //SEG333 [154] call keyboard_event_pressed - //SEG334 [237] phi from play_move_down::@1 to keyboard_event_pressed [phi:play_move_down::@1->keyboard_event_pressed] - //SEG335 [237] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_SPACE#0 [phi:play_move_down::@1->keyboard_event_pressed#0] -- vbuz1=vbuc1 + //SEG335 [155] call keyboard_event_pressed + //SEG336 [238] phi from play_move_down::@1 to keyboard_event_pressed [phi:play_move_down::@1->keyboard_event_pressed] + //SEG337 [238] 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 - //SEG336 [155] (byte) keyboard_event_pressed::return#12 ← (byte) keyboard_event_pressed::return#11 + //SEG338 [156] (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 - //SEG337 play_move_down::@17 - //SEG338 [156] (byte~) play_move_down::$2 ← (byte) keyboard_event_pressed::return#12 + //SEG339 play_move_down::@17 + //SEG340 [157] (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 - //SEG339 [157] 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 + //SEG341 [158] 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 - //SEG340 play_move_down::@9 - //SEG341 [158] if((byte) current_movedown_counter#1<(const byte) current_movedown_fast#0) goto play_move_down::@2 -- vbuz1_lt_vbuc1_then_la1 + //SEG342 play_move_down::@9 + //SEG343 [159] 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 - //SEG342 play_move_down::@10 - //SEG343 [159] (byte) play_move_down::movedown#2 ← ++ (byte) play_move_down::movedown#10 -- vbuxx=_inc_vbuxx + //SEG344 play_move_down::@10 + //SEG345 [160] (byte) play_move_down::movedown#2 ← ++ (byte) play_move_down::movedown#10 -- vbuxx=_inc_vbuxx inx - //SEG344 [160] 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] - //SEG345 [160] 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 - //SEG346 play_move_down::@2 + //SEG346 [161] 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] + //SEG347 [161] 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 + //SEG348 play_move_down::@2 b2: - //SEG347 [161] if((byte) current_movedown_counter#1<(const byte) current_movedown_slow#0) goto play_move_down::@4 -- vbuz1_lt_vbuc1_then_la1 + //SEG349 [162] 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 - //SEG348 play_move_down::@11 - //SEG349 [162] (byte) play_move_down::movedown#3 ← ++ (byte) play_move_down::movedown#7 -- vbuxx=_inc_vbuxx + //SEG350 play_move_down::@11 + //SEG351 [163] (byte) play_move_down::movedown#3 ← ++ (byte) play_move_down::movedown#7 -- vbuxx=_inc_vbuxx inx - //SEG350 [163] 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] - //SEG351 [163] 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 - //SEG352 play_move_down::@4 + //SEG352 [164] 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] + //SEG353 [164] 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 + //SEG354 play_move_down::@4 b4: - //SEG353 [164] 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 + //SEG355 [165] 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 - //SEG354 play_move_down::@12 - //SEG355 [165] (byte) play_collision::ypos#0 ← (byte) current_ypos#22 + (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuyy=vbuz1_plus_1 + //SEG356 play_move_down::@12 + //SEG357 [166] (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 - //SEG356 [166] (byte) play_collision::xpos#0 ← (byte) current_xpos#11 -- vbuz1=vbuz2 + //SEG358 [167] (byte) play_collision::xpos#0 ← (byte) current_xpos#11 -- vbuz1=vbuz2 lda current_xpos sta play_collision.xpos - //SEG357 [167] (byte) play_collision::orientation#0 ← (byte) current_orientation#10 -- vbuxx=vbuz1 + //SEG359 [168] (byte) play_collision::orientation#0 ← (byte) current_orientation#10 -- vbuxx=vbuz1 ldx current_orientation - //SEG358 [168] (byte*~) current_piece#71 ← (byte*) current_piece#16 -- pbuz1=pbuz2 + //SEG360 [169] (byte*~) current_piece#71 ← (byte*) current_piece#16 -- pbuz1=pbuz2 lda current_piece sta current_piece_71 lda current_piece+1 sta current_piece_71+1 - //SEG359 [169] call play_collision - //SEG360 [104] phi from play_move_down::@12 to play_collision [phi:play_move_down::@12->play_collision] - //SEG361 [104] phi (byte) play_collision::xpos#5 = (byte) play_collision::xpos#0 [phi:play_move_down::@12->play_collision#0] -- register_copy - //SEG362 [104] phi (byte) play_collision::ypos#4 = (byte) play_collision::ypos#0 [phi:play_move_down::@12->play_collision#1] -- register_copy - //SEG363 [104] phi (byte) play_collision::orientation#4 = (byte) play_collision::orientation#0 [phi:play_move_down::@12->play_collision#2] -- register_copy - //SEG364 [104] phi (byte*) current_piece#12 = (byte*~) current_piece#71 [phi:play_move_down::@12->play_collision#3] -- register_copy + //SEG361 [170] call play_collision + //SEG362 [105] phi from play_move_down::@12 to play_collision [phi:play_move_down::@12->play_collision] + //SEG363 [105] phi (byte) play_collision::xpos#5 = (byte) play_collision::xpos#0 [phi:play_move_down::@12->play_collision#0] -- register_copy + //SEG364 [105] phi (byte) play_collision::ypos#4 = (byte) play_collision::ypos#0 [phi:play_move_down::@12->play_collision#1] -- register_copy + //SEG365 [105] phi (byte) play_collision::orientation#4 = (byte) play_collision::orientation#0 [phi:play_move_down::@12->play_collision#2] -- register_copy + //SEG366 [105] phi (byte*) current_piece#12 = (byte*~) current_piece#71 [phi:play_move_down::@12->play_collision#3] -- register_copy jsr play_collision - //SEG365 [170] (byte) play_collision::return#0 ← (byte) play_collision::return#14 + //SEG367 [171] (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 - //SEG366 play_move_down::@18 - //SEG367 [171] (byte~) play_move_down::$12 ← (byte) play_collision::return#0 + //SEG368 play_move_down::@18 + //SEG369 [172] (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 - //SEG368 [172] if((byte~) play_move_down::$12==(const byte) COLLISION_NONE#0) goto play_move_down::@6 -- vbuaa_eq_vbuc1_then_la1 + //SEG370 [173] 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 - //SEG369 [173] phi from play_move_down::@18 to play_move_down::@13 [phi:play_move_down::@18->play_move_down::@13] - //SEG370 play_move_down::@13 - //SEG371 [174] call play_lock_current + //SEG371 [174] phi from play_move_down::@18 to play_move_down::@13 [phi:play_move_down::@18->play_move_down::@13] + //SEG372 play_move_down::@13 + //SEG373 [175] call play_lock_current jsr play_lock_current - //SEG372 [175] phi from play_move_down::@13 to play_move_down::@19 [phi:play_move_down::@13->play_move_down::@19] - //SEG373 play_move_down::@19 - //SEG374 [176] call play_remove_lines - //SEG375 [198] phi from play_move_down::@19 to play_remove_lines [phi:play_move_down::@19->play_remove_lines] + //SEG374 [176] phi from play_move_down::@13 to play_move_down::@19 [phi:play_move_down::@13->play_move_down::@19] + //SEG375 play_move_down::@19 + //SEG376 [177] call play_remove_lines + //SEG377 [199] phi from play_move_down::@19 to play_remove_lines [phi:play_move_down::@19->play_remove_lines] jsr play_remove_lines - //SEG376 [177] phi from play_move_down::@19 to play_move_down::@20 [phi:play_move_down::@19->play_move_down::@20] - //SEG377 play_move_down::@20 - //SEG378 [178] call play_spawn_current - //SEG379 [184] phi from play_move_down::@20 to play_spawn_current [phi:play_move_down::@20->play_spawn_current] + //SEG378 [178] phi from play_move_down::@19 to play_move_down::@20 [phi:play_move_down::@19->play_move_down::@20] + //SEG379 play_move_down::@20 + //SEG380 [179] call play_spawn_current + //SEG381 [185] phi from play_move_down::@20 to play_spawn_current [phi:play_move_down::@20->play_spawn_current] jsr play_spawn_current - //SEG380 [179] (byte*~) current_piece#75 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) -- pbuz1=pptc1_derefidx_vbuz2 + //SEG382 [180] (byte*~) current_piece#75 ← (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 - //SEG381 [180] phi from play_move_down::@20 to play_move_down::@7 [phi:play_move_down::@20->play_move_down::@7] - //SEG382 [180] phi (byte) current_piece_color#21 = (byte) current_piece_color#13 [phi:play_move_down::@20->play_move_down::@7#0] -- register_copy - //SEG383 [180] 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 + //SEG383 [181] phi from play_move_down::@20 to play_move_down::@7 [phi:play_move_down::@20->play_move_down::@7] + //SEG384 [181] phi (byte) current_piece_char#21 = (byte) current_piece_char#13 [phi:play_move_down::@20->play_move_down::@7#0] -- register_copy + //SEG385 [181] 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 - //SEG384 [180] phi (byte*) current_piece_gfx#27 = (byte*) current_piece_gfx#17 [phi:play_move_down::@20->play_move_down::@7#2] -- register_copy - //SEG385 [180] 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 + //SEG386 [181] phi (byte*) current_piece_gfx#27 = (byte*) current_piece_gfx#17 [phi:play_move_down::@20->play_move_down::@7#2] -- register_copy + //SEG387 [181] 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 - //SEG386 [180] phi (byte*) current_piece#20 = (byte*~) current_piece#75 [phi:play_move_down::@20->play_move_down::@7#4] -- register_copy - //SEG387 [180] 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 + //SEG388 [181] phi (byte*) current_piece#20 = (byte*~) current_piece#75 [phi:play_move_down::@20->play_move_down::@7#4] -- register_copy + //SEG389 [181] 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 - //SEG388 play_move_down::@7 + //SEG390 play_move_down::@7 b7: - //SEG389 [181] phi from play_move_down::@7 to play_move_down::@return [phi:play_move_down::@7->play_move_down::@return] - //SEG390 [181] phi (byte) current_piece_color#11 = (byte) current_piece_color#21 [phi:play_move_down::@7->play_move_down::@return#0] -- register_copy - //SEG391 [181] phi (byte) current_xpos#16 = (byte) current_xpos#34 [phi:play_move_down::@7->play_move_down::@return#1] -- register_copy - //SEG392 [181] phi (byte*) current_piece_gfx#14 = (byte*) current_piece_gfx#27 [phi:play_move_down::@7->play_move_down::@return#2] -- register_copy - //SEG393 [181] phi (byte) current_orientation#14 = (byte) current_orientation#29 [phi:play_move_down::@7->play_move_down::@return#3] -- register_copy - //SEG394 [181] phi (byte*) current_piece#10 = (byte*) current_piece#20 [phi:play_move_down::@7->play_move_down::@return#4] -- register_copy - //SEG395 [181] phi (byte) current_ypos#14 = (byte) current_ypos#30 [phi:play_move_down::@7->play_move_down::@return#5] -- register_copy - //SEG396 [181] 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 + //SEG391 [182] phi from play_move_down::@7 to play_move_down::@return [phi:play_move_down::@7->play_move_down::@return] + //SEG392 [182] phi (byte) current_piece_char#11 = (byte) current_piece_char#21 [phi:play_move_down::@7->play_move_down::@return#0] -- register_copy + //SEG393 [182] phi (byte) current_xpos#16 = (byte) current_xpos#34 [phi:play_move_down::@7->play_move_down::@return#1] -- register_copy + //SEG394 [182] phi (byte*) current_piece_gfx#14 = (byte*) current_piece_gfx#27 [phi:play_move_down::@7->play_move_down::@return#2] -- register_copy + //SEG395 [182] phi (byte) current_orientation#14 = (byte) current_orientation#29 [phi:play_move_down::@7->play_move_down::@return#3] -- register_copy + //SEG396 [182] phi (byte*) current_piece#10 = (byte*) current_piece#20 [phi:play_move_down::@7->play_move_down::@return#4] -- register_copy + //SEG397 [182] phi (byte) current_ypos#14 = (byte) current_ypos#30 [phi:play_move_down::@7->play_move_down::@return#5] -- register_copy + //SEG398 [182] 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 - //SEG397 [181] 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 + //SEG399 [182] 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 - //SEG398 [181] phi from play_move_down::@4 to play_move_down::@return [phi:play_move_down::@4->play_move_down::@return] + //SEG400 [182] phi from play_move_down::@4 to play_move_down::@return [phi:play_move_down::@4->play_move_down::@return] b5: - //SEG399 [181] phi (byte) current_piece_color#11 = (byte) current_piece_color#16 [phi:play_move_down::@4->play_move_down::@return#0] -- register_copy - //SEG400 [181] phi (byte) current_xpos#16 = (byte) current_xpos#11 [phi:play_move_down::@4->play_move_down::@return#1] -- register_copy - //SEG401 [181] phi (byte*) current_piece_gfx#14 = (byte*) current_piece_gfx#10 [phi:play_move_down::@4->play_move_down::@return#2] -- register_copy - //SEG402 [181] phi (byte) current_orientation#14 = (byte) current_orientation#10 [phi:play_move_down::@4->play_move_down::@return#3] -- register_copy - //SEG403 [181] phi (byte*) current_piece#10 = (byte*) current_piece#16 [phi:play_move_down::@4->play_move_down::@return#4] -- register_copy - //SEG404 [181] phi (byte) current_ypos#14 = (byte) current_ypos#22 [phi:play_move_down::@4->play_move_down::@return#5] -- register_copy - //SEG405 [181] phi (byte) current_movedown_counter#10 = (byte) current_movedown_counter#1 [phi:play_move_down::@4->play_move_down::@return#6] -- register_copy - //SEG406 [181] 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 + //SEG401 [182] phi (byte) current_piece_char#11 = (byte) current_piece_char#16 [phi:play_move_down::@4->play_move_down::@return#0] -- register_copy + //SEG402 [182] phi (byte) current_xpos#16 = (byte) current_xpos#11 [phi:play_move_down::@4->play_move_down::@return#1] -- register_copy + //SEG403 [182] phi (byte*) current_piece_gfx#14 = (byte*) current_piece_gfx#10 [phi:play_move_down::@4->play_move_down::@return#2] -- register_copy + //SEG404 [182] phi (byte) current_orientation#14 = (byte) current_orientation#10 [phi:play_move_down::@4->play_move_down::@return#3] -- register_copy + //SEG405 [182] phi (byte*) current_piece#10 = (byte*) current_piece#16 [phi:play_move_down::@4->play_move_down::@return#4] -- register_copy + //SEG406 [182] phi (byte) current_ypos#14 = (byte) current_ypos#22 [phi:play_move_down::@4->play_move_down::@return#5] -- register_copy + //SEG407 [182] phi (byte) current_movedown_counter#10 = (byte) current_movedown_counter#1 [phi:play_move_down::@4->play_move_down::@return#6] -- register_copy + //SEG408 [182] 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 - //SEG407 play_move_down::@return + //SEG409 play_move_down::@return breturn: - //SEG408 [182] return + //SEG410 [183] return rts - //SEG409 play_move_down::@6 + //SEG411 play_move_down::@6 b6: - //SEG410 [183] (byte) current_ypos#1 ← ++ (byte) current_ypos#22 -- vbuz1=_inc_vbuz1 + //SEG412 [184] (byte) current_ypos#1 ← ++ (byte) current_ypos#22 -- vbuz1=_inc_vbuz1 inc current_ypos - //SEG411 [180] phi from play_move_down::@6 to play_move_down::@7 [phi:play_move_down::@6->play_move_down::@7] - //SEG412 [180] phi (byte) current_piece_color#21 = (byte) current_piece_color#16 [phi:play_move_down::@6->play_move_down::@7#0] -- register_copy - //SEG413 [180] phi (byte) current_xpos#34 = (byte) current_xpos#11 [phi:play_move_down::@6->play_move_down::@7#1] -- register_copy - //SEG414 [180] phi (byte*) current_piece_gfx#27 = (byte*) current_piece_gfx#10 [phi:play_move_down::@6->play_move_down::@7#2] -- register_copy - //SEG415 [180] phi (byte) current_orientation#29 = (byte) current_orientation#10 [phi:play_move_down::@6->play_move_down::@7#3] -- register_copy - //SEG416 [180] phi (byte*) current_piece#20 = (byte*) current_piece#16 [phi:play_move_down::@6->play_move_down::@7#4] -- register_copy - //SEG417 [180] phi (byte) current_ypos#30 = (byte) current_ypos#1 [phi:play_move_down::@6->play_move_down::@7#5] -- register_copy + //SEG413 [181] phi from play_move_down::@6 to play_move_down::@7 [phi:play_move_down::@6->play_move_down::@7] + //SEG414 [181] phi (byte) current_piece_char#21 = (byte) current_piece_char#16 [phi:play_move_down::@6->play_move_down::@7#0] -- register_copy + //SEG415 [181] phi (byte) current_xpos#34 = (byte) current_xpos#11 [phi:play_move_down::@6->play_move_down::@7#1] -- register_copy + //SEG416 [181] phi (byte*) current_piece_gfx#27 = (byte*) current_piece_gfx#10 [phi:play_move_down::@6->play_move_down::@7#2] -- register_copy + //SEG417 [181] phi (byte) current_orientation#29 = (byte) current_orientation#10 [phi:play_move_down::@6->play_move_down::@7#3] -- register_copy + //SEG418 [181] phi (byte*) current_piece#20 = (byte*) current_piece#16 [phi:play_move_down::@6->play_move_down::@7#4] -- register_copy + //SEG419 [181] phi (byte) current_ypos#30 = (byte) current_ypos#1 [phi:play_move_down::@6->play_move_down::@7#5] -- register_copy jmp b7 } -//SEG418 play_spawn_current +//SEG420 play_spawn_current play_spawn_current: { .label _3 = 2 - //SEG419 [185] phi from play_spawn_current to play_spawn_current::@1 [phi:play_spawn_current->play_spawn_current::@1] - //SEG420 [185] 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 + //SEG421 [186] phi from play_spawn_current to play_spawn_current::@1 [phi:play_spawn_current->play_spawn_current::@1] + //SEG422 [186] 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 - //SEG421 play_spawn_current::@1 + //SEG423 play_spawn_current::@1 b1: - //SEG422 [186] 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 + //SEG424 [187] 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 - //SEG423 play_spawn_current::@3 - //SEG424 [187] (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 + //SEG425 play_spawn_current::@3 + //SEG426 [188] (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 - //SEG425 [188] (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 + //SEG427 [189] (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 - //SEG426 [189] (byte) current_piece_color#13 ← *((const byte[]) PIECES_COLORS#0 + (byte) play_spawn_current::piece_idx#2) -- vbuz1=pbuc1_derefidx_vbuxx - lda PIECES_COLORS,x - sta current_piece_color - //SEG427 play_spawn_current::@return - //SEG428 [190] return + //SEG428 [190] (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 + //SEG429 play_spawn_current::@return + //SEG430 [191] return rts - //SEG429 [191] phi from play_spawn_current::@1 to play_spawn_current::@2 [phi:play_spawn_current::@1->play_spawn_current::@2] - //SEG430 play_spawn_current::@2 + //SEG431 [192] phi from play_spawn_current::@1 to play_spawn_current::@2 [phi:play_spawn_current::@1->play_spawn_current::@2] + //SEG432 play_spawn_current::@2 b2: - //SEG431 [192] call sid_rnd + //SEG433 [193] call sid_rnd jsr sid_rnd - //SEG432 [193] (byte) sid_rnd::return#2 ← (byte) sid_rnd::return#0 + //SEG434 [194] (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 - //SEG433 play_spawn_current::@7 - //SEG434 [194] (byte~) play_spawn_current::$1 ← (byte) sid_rnd::return#2 + //SEG435 play_spawn_current::@7 + //SEG436 [195] (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 - //SEG435 [195] (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 + //SEG437 [196] (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 - //SEG436 [185] phi from play_spawn_current::@7 to play_spawn_current::@1 [phi:play_spawn_current::@7->play_spawn_current::@1] - //SEG437 [185] 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 + //SEG438 [186] phi from play_spawn_current::@7 to play_spawn_current::@1 [phi:play_spawn_current::@7->play_spawn_current::@1] + //SEG439 [186] 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 } -//SEG438 sid_rnd +//SEG440 sid_rnd sid_rnd: { - //SEG439 [196] (byte) sid_rnd::return#0 ← *((const byte*) SID_VOICE3_OSC#0) -- vbuaa=_deref_pbuc1 + //SEG441 [197] (byte) sid_rnd::return#0 ← *((const byte*) SID_VOICE3_OSC#0) -- vbuaa=_deref_pbuc1 lda SID_VOICE3_OSC - //SEG440 sid_rnd::@return - //SEG441 [197] return + //SEG442 sid_rnd::@return + //SEG443 [198] return rts } -//SEG442 play_remove_lines +//SEG444 play_remove_lines play_remove_lines: { .label c = 7 .label x = 3 .label y = 2 .label full = 4 - //SEG443 [199] phi from play_remove_lines to play_remove_lines::@1 [phi:play_remove_lines->play_remove_lines::@1] - //SEG444 [199] 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 + //SEG445 [200] phi from play_remove_lines to play_remove_lines::@1 [phi:play_remove_lines->play_remove_lines::@1] + //SEG446 [200] 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 - //SEG445 [199] 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 + //SEG447 [200] 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 - //SEG446 [199] 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 + //SEG448 [200] 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 - //SEG447 [199] phi from play_remove_lines::@4 to play_remove_lines::@1 [phi:play_remove_lines::@4->play_remove_lines::@1] - //SEG448 [199] 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 - //SEG449 [199] 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 - //SEG450 [199] 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 - //SEG451 play_remove_lines::@1 + //SEG449 [200] phi from play_remove_lines::@4 to play_remove_lines::@1 [phi:play_remove_lines::@4->play_remove_lines::@1] + //SEG450 [200] 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 + //SEG451 [200] 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 + //SEG452 [200] 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 + //SEG453 play_remove_lines::@1 b1: - //SEG452 [200] phi from play_remove_lines::@1 to play_remove_lines::@2 [phi:play_remove_lines::@1->play_remove_lines::@2] - //SEG453 [200] 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 + //SEG454 [201] phi from play_remove_lines::@1 to play_remove_lines::@2 [phi:play_remove_lines::@1->play_remove_lines::@2] + //SEG455 [201] 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 - //SEG454 [200] 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 + //SEG456 [201] 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 - //SEG455 [200] 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 - //SEG456 [200] 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 - //SEG457 [200] phi from play_remove_lines::@3 to play_remove_lines::@2 [phi:play_remove_lines::@3->play_remove_lines::@2] - //SEG458 [200] 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 - //SEG459 [200] 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 - //SEG460 [200] 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 - //SEG461 [200] 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 - //SEG462 play_remove_lines::@2 + //SEG457 [201] 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 + //SEG458 [201] 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 + //SEG459 [201] phi from play_remove_lines::@3 to play_remove_lines::@2 [phi:play_remove_lines::@3->play_remove_lines::@2] + //SEG460 [201] 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 + //SEG461 [201] 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 + //SEG462 [201] 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 + //SEG463 [201] 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 + //SEG464 play_remove_lines::@2 b2: - //SEG463 [201] (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 + //SEG465 [202] (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 - //SEG464 [202] (byte) play_remove_lines::r#1 ← -- (byte) play_remove_lines::r#2 -- vbuyy=_dec_vbuyy + //SEG466 [203] (byte) play_remove_lines::r#1 ← -- (byte) play_remove_lines::r#2 -- vbuyy=_dec_vbuyy dey - //SEG465 [203] 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 + //SEG467 [204] 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 - //SEG466 [204] phi from play_remove_lines::@2 to play_remove_lines::@3 [phi:play_remove_lines::@2->play_remove_lines::@3] - //SEG467 [204] 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 + //SEG468 [205] phi from play_remove_lines::@2 to play_remove_lines::@3 [phi:play_remove_lines::@2->play_remove_lines::@3] + //SEG469 [205] 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 - //SEG468 play_remove_lines::@3 + //SEG470 play_remove_lines::@3 b3: - //SEG469 [205] *((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 + //SEG471 [206] *((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 - //SEG470 [206] (byte) play_remove_lines::w#1 ← -- (byte) play_remove_lines::w#4 -- vbuxx=_dec_vbuxx + //SEG472 [207] (byte) play_remove_lines::w#1 ← -- (byte) play_remove_lines::w#4 -- vbuxx=_dec_vbuxx dex - //SEG471 [207] (byte) play_remove_lines::x#1 ← ++ (byte) play_remove_lines::x#2 -- vbuz1=_inc_vbuz1 + //SEG473 [208] (byte) play_remove_lines::x#1 ← ++ (byte) play_remove_lines::x#2 -- vbuz1=_inc_vbuz1 inc x - //SEG472 [208] 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 + //SEG474 [209] 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 - //SEG473 play_remove_lines::@9 - //SEG474 [209] 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 + //SEG475 play_remove_lines::@9 + //SEG476 [210] 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 - //SEG475 play_remove_lines::@10 - //SEG476 [210] (byte) play_remove_lines::w#2 ← (byte) play_remove_lines::w#1 + (const byte) PLAYFIELD_COLS#0 -- vbuxx=vbuxx_plus_vbuc1 + //SEG477 play_remove_lines::@10 + //SEG478 [211] (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 - //SEG477 [211] 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] - //SEG478 [211] 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 - //SEG479 play_remove_lines::@4 + //SEG479 [212] 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] + //SEG480 [212] 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 + //SEG481 play_remove_lines::@4 b4: - //SEG480 [212] (byte) play_remove_lines::y#1 ← ++ (byte) play_remove_lines::y#8 -- vbuz1=_inc_vbuz1 + //SEG482 [213] (byte) play_remove_lines::y#1 ← ++ (byte) play_remove_lines::y#8 -- vbuz1=_inc_vbuz1 inc y - //SEG481 [213] 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 + //SEG483 [214] 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 - //SEG482 [214] 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] - //SEG483 [214] 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 - //SEG484 play_remove_lines::@5 + //SEG484 [215] 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] + //SEG485 [215] 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 + //SEG486 play_remove_lines::@5 b5: - //SEG485 [215] 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 + //SEG487 [216] 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 - //SEG486 play_remove_lines::@return - //SEG487 [216] return + //SEG488 play_remove_lines::@return + //SEG489 [217] return rts - //SEG488 play_remove_lines::@6 + //SEG490 play_remove_lines::@6 b6: - //SEG489 [217] *((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 + //SEG491 [218] *((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 - //SEG490 [218] (byte) play_remove_lines::w#3 ← -- (byte) play_remove_lines::w#6 -- vbuxx=_dec_vbuxx + //SEG492 [219] (byte) play_remove_lines::w#3 ← -- (byte) play_remove_lines::w#6 -- vbuxx=_dec_vbuxx dex jmp b5 - //SEG491 [219] phi from play_remove_lines::@2 to play_remove_lines::@17 [phi:play_remove_lines::@2->play_remove_lines::@17] - //SEG492 play_remove_lines::@17 - //SEG493 [204] phi from play_remove_lines::@17 to play_remove_lines::@3 [phi:play_remove_lines::@17->play_remove_lines::@3] - //SEG494 [204] 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 + //SEG493 [220] phi from play_remove_lines::@2 to play_remove_lines::@17 [phi:play_remove_lines::@2->play_remove_lines::@17] + //SEG494 play_remove_lines::@17 + //SEG495 [205] phi from play_remove_lines::@17 to play_remove_lines::@3 [phi:play_remove_lines::@17->play_remove_lines::@3] + //SEG496 [205] 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 } -//SEG495 play_lock_current +//SEG497 play_lock_current play_lock_current: { .label ypos2 = 2 .label playfield_line = 5 @@ -14189,401 +15167,401 @@ play_lock_current: { .label i_3 = 4 .label i_7 = 4 .label i_9 = 4 - //SEG496 [220] (byte) play_lock_current::ypos2#0 ← (byte) current_ypos#22 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz1_rol_1 + //SEG498 [221] (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 - //SEG497 [221] phi from play_lock_current to play_lock_current::@1 [phi:play_lock_current->play_lock_current::@1] - //SEG498 [221] 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 + //SEG499 [222] phi from play_lock_current to play_lock_current::@1 [phi:play_lock_current->play_lock_current::@1] + //SEG500 [222] 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 - //SEG499 [221] 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 + //SEG501 [222] 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 - //SEG500 [221] phi (byte) play_lock_current::ypos2#2 = (byte) play_lock_current::ypos2#0 [phi:play_lock_current->play_lock_current::@1#2] -- register_copy - //SEG501 play_lock_current::@1 + //SEG502 [222] phi (byte) play_lock_current::ypos2#2 = (byte) play_lock_current::ypos2#0 [phi:play_lock_current->play_lock_current::@1#2] -- register_copy + //SEG503 play_lock_current::@1 b1: - //SEG502 [222] (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 + //SEG504 [223] (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 - //SEG503 [223] (byte) play_lock_current::col#0 ← (byte) current_xpos#11 -- vbuz1=vbuz2 + //SEG505 [224] (byte) play_lock_current::col#0 ← (byte) current_xpos#11 -- vbuz1=vbuz2 lda current_xpos sta col - //SEG504 [224] phi from play_lock_current::@1 to play_lock_current::@2 [phi:play_lock_current::@1->play_lock_current::@2] - //SEG505 [224] 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 + //SEG506 [225] phi from play_lock_current::@1 to play_lock_current::@2 [phi:play_lock_current::@1->play_lock_current::@2] + //SEG507 [225] 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 - //SEG506 [224] 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 - //SEG507 [224] 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 - //SEG508 play_lock_current::@2 + //SEG508 [225] 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 + //SEG509 [225] 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 + //SEG510 play_lock_current::@2 b2: - //SEG509 [225] (byte) play_lock_current::i#1 ← ++ (byte) play_lock_current::i#2 -- vbuz1=_inc_vbuz2 + //SEG511 [226] (byte) play_lock_current::i#1 ← ++ (byte) play_lock_current::i#2 -- vbuz1=_inc_vbuz2 ldy i_2 iny sty i - //SEG510 [226] 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 + //SEG512 [227] 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 - //SEG511 play_lock_current::@4 - //SEG512 [227] *((byte*) play_lock_current::playfield_line#0 + (byte) play_lock_current::col#2) ← (byte) current_piece_color#16 -- pbuz1_derefidx_vbuz2=vbuz3 - lda current_piece_color + //SEG513 play_lock_current::@4 + //SEG514 [228] *((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 - //SEG513 play_lock_current::@3 + //SEG515 play_lock_current::@3 b3: - //SEG514 [228] (byte) play_lock_current::col#1 ← ++ (byte) play_lock_current::col#2 -- vbuz1=_inc_vbuz1 + //SEG516 [229] (byte) play_lock_current::col#1 ← ++ (byte) play_lock_current::col#2 -- vbuz1=_inc_vbuz1 inc col - //SEG515 [229] (byte) play_lock_current::c#1 ← ++ (byte) play_lock_current::c#2 -- vbuxx=_inc_vbuxx + //SEG517 [230] (byte) play_lock_current::c#1 ← ++ (byte) play_lock_current::c#2 -- vbuxx=_inc_vbuxx inx - //SEG516 [230] 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 + //SEG518 [231] 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 - //SEG517 play_lock_current::@5 - //SEG518 [231] (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 + //SEG519 play_lock_current::@5 + //SEG520 [232] (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 - //SEG519 [232] (byte) play_lock_current::l#1 ← ++ (byte) play_lock_current::l#6 -- vbuz1=_inc_vbuz1 + //SEG521 [233] (byte) play_lock_current::l#1 ← ++ (byte) play_lock_current::l#6 -- vbuz1=_inc_vbuz1 inc l - //SEG520 [233] 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 + //SEG522 [234] 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 - //SEG521 play_lock_current::@return - //SEG522 [234] return + //SEG523 play_lock_current::@return + //SEG524 [235] return rts - //SEG523 play_lock_current::@7 + //SEG525 play_lock_current::@7 b7: - //SEG524 [235] (byte~) play_lock_current::i#7 ← (byte) play_lock_current::i#1 -- vbuz1=vbuz2 + //SEG526 [236] (byte~) play_lock_current::i#7 ← (byte) play_lock_current::i#1 -- vbuz1=vbuz2 lda i sta i_7 - //SEG525 [221] phi from play_lock_current::@7 to play_lock_current::@1 [phi:play_lock_current::@7->play_lock_current::@1] - //SEG526 [221] 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 - //SEG527 [221] 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 - //SEG528 [221] 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 + //SEG527 [222] phi from play_lock_current::@7 to play_lock_current::@1 [phi:play_lock_current::@7->play_lock_current::@1] + //SEG528 [222] 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 + //SEG529 [222] 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 + //SEG530 [222] 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 - //SEG529 play_lock_current::@8 + //SEG531 play_lock_current::@8 b8: - //SEG530 [236] (byte~) play_lock_current::i#9 ← (byte) play_lock_current::i#1 -- vbuz1=vbuz2 + //SEG532 [237] (byte~) play_lock_current::i#9 ← (byte) play_lock_current::i#1 -- vbuz1=vbuz2 lda i sta i_9 - //SEG531 [224] phi from play_lock_current::@8 to play_lock_current::@2 [phi:play_lock_current::@8->play_lock_current::@2] - //SEG532 [224] 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 - //SEG533 [224] 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 - //SEG534 [224] 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 + //SEG533 [225] phi from play_lock_current::@8 to play_lock_current::@2 [phi:play_lock_current::@8->play_lock_current::@2] + //SEG534 [225] 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 + //SEG535 [225] 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 + //SEG536 [225] 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 } -//SEG535 keyboard_event_pressed +//SEG537 keyboard_event_pressed keyboard_event_pressed: { .label row_bits = 7 .label keycode = 4 - //SEG536 [238] (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 + //SEG538 [239] (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 - //SEG537 [239] (byte) keyboard_event_pressed::row_bits#0 ← *((const byte[8]) keyboard_scan_values#0 + (byte~) keyboard_event_pressed::$0) -- vbuz1=pbuc1_derefidx_vbuaa + //SEG539 [240] (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 - //SEG538 [240] (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 + //SEG540 [241] (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 - //SEG539 [241] (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 + //SEG541 [242] (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 - //SEG540 keyboard_event_pressed::@return - //SEG541 [242] return + //SEG542 keyboard_event_pressed::@return + //SEG543 [243] return rts } -//SEG542 keyboard_event_get +//SEG544 keyboard_event_get keyboard_event_get: { - //SEG543 [243] 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 + //SEG545 [244] 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 - //SEG544 keyboard_event_get::@3 - //SEG545 [244] (byte) keyboard_events_size#4 ← -- (byte) keyboard_events_size#13 -- vbuz1=_dec_vbuz1 + //SEG546 keyboard_event_get::@3 + //SEG547 [245] (byte) keyboard_events_size#4 ← -- (byte) keyboard_events_size#13 -- vbuz1=_dec_vbuz1 dec keyboard_events_size - //SEG546 [245] (byte) keyboard_event_get::return#1 ← *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#4) -- vbuaa=pbuc1_derefidx_vbuz1 + //SEG548 [246] (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 - //SEG547 [246] phi from keyboard_event_get::@3 to keyboard_event_get::@return [phi:keyboard_event_get::@3->keyboard_event_get::@return] - //SEG548 [246] phi (byte) keyboard_events_size#16 = (byte) keyboard_events_size#4 [phi:keyboard_event_get::@3->keyboard_event_get::@return#0] -- register_copy - //SEG549 [246] 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 + //SEG549 [247] phi from keyboard_event_get::@3 to keyboard_event_get::@return [phi:keyboard_event_get::@3->keyboard_event_get::@return] + //SEG550 [247] phi (byte) keyboard_events_size#16 = (byte) keyboard_events_size#4 [phi:keyboard_event_get::@3->keyboard_event_get::@return#0] -- register_copy + //SEG551 [247] 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 - //SEG550 [246] phi from keyboard_event_get to keyboard_event_get::@return [phi:keyboard_event_get->keyboard_event_get::@return] + //SEG552 [247] phi from keyboard_event_get to keyboard_event_get::@return [phi:keyboard_event_get->keyboard_event_get::@return] b1: - //SEG551 [246] phi (byte) keyboard_events_size#16 = (byte) keyboard_events_size#13 [phi:keyboard_event_get->keyboard_event_get::@return#0] -- register_copy - //SEG552 [246] 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 + //SEG553 [247] phi (byte) keyboard_events_size#16 = (byte) keyboard_events_size#13 [phi:keyboard_event_get->keyboard_event_get::@return#0] -- register_copy + //SEG554 [247] 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 - //SEG553 keyboard_event_get::@return + //SEG555 keyboard_event_get::@return breturn: - //SEG554 [247] return + //SEG556 [248] return rts } -//SEG555 keyboard_event_scan +//SEG557 keyboard_event_scan keyboard_event_scan: { .label row_scan = 8 .label keycode = 7 .label row = 4 - //SEG556 [249] phi from keyboard_event_scan to keyboard_event_scan::@1 [phi:keyboard_event_scan->keyboard_event_scan::@1] - //SEG557 [249] phi (byte) keyboard_events_size#29 = (byte) keyboard_events_size#19 [phi:keyboard_event_scan->keyboard_event_scan::@1#0] -- register_copy - //SEG558 [249] 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 + //SEG558 [250] phi from keyboard_event_scan to keyboard_event_scan::@1 [phi:keyboard_event_scan->keyboard_event_scan::@1] + //SEG559 [250] phi (byte) keyboard_events_size#29 = (byte) keyboard_events_size#19 [phi:keyboard_event_scan->keyboard_event_scan::@1#0] -- register_copy + //SEG560 [250] 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 - //SEG559 [249] 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 + //SEG561 [250] 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 - //SEG560 [249] phi from keyboard_event_scan::@3 to keyboard_event_scan::@1 [phi:keyboard_event_scan::@3->keyboard_event_scan::@1] - //SEG561 [249] phi (byte) keyboard_events_size#29 = (byte) keyboard_events_size#13 [phi:keyboard_event_scan::@3->keyboard_event_scan::@1#0] -- register_copy - //SEG562 [249] 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 - //SEG563 [249] 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 - //SEG564 keyboard_event_scan::@1 + //SEG562 [250] phi from keyboard_event_scan::@3 to keyboard_event_scan::@1 [phi:keyboard_event_scan::@3->keyboard_event_scan::@1] + //SEG563 [250] phi (byte) keyboard_events_size#29 = (byte) keyboard_events_size#13 [phi:keyboard_event_scan::@3->keyboard_event_scan::@1#0] -- register_copy + //SEG564 [250] 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 + //SEG565 [250] 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 + //SEG566 keyboard_event_scan::@1 b1: - //SEG565 [250] (byte) keyboard_matrix_read::rowid#0 ← (byte) keyboard_event_scan::row#2 -- vbuxx=vbuz1 + //SEG567 [251] (byte) keyboard_matrix_read::rowid#0 ← (byte) keyboard_event_scan::row#2 -- vbuxx=vbuz1 ldx row - //SEG566 [251] call keyboard_matrix_read + //SEG568 [252] call keyboard_matrix_read jsr keyboard_matrix_read - //SEG567 [252] (byte) keyboard_matrix_read::return#2 ← (byte) keyboard_matrix_read::return#0 + //SEG569 [253] (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 - //SEG568 keyboard_event_scan::@25 - //SEG569 [253] (byte) keyboard_event_scan::row_scan#0 ← (byte) keyboard_matrix_read::return#2 -- vbuz1=vbuaa + //SEG570 keyboard_event_scan::@25 + //SEG571 [254] (byte) keyboard_event_scan::row_scan#0 ← (byte) keyboard_matrix_read::return#2 -- vbuz1=vbuaa sta row_scan - //SEG570 [254] 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 + //SEG572 [255] 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 - //SEG571 keyboard_event_scan::@13 - //SEG572 [255] (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 + //SEG573 keyboard_event_scan::@13 + //SEG574 [256] (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 - //SEG573 [256] 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] - //SEG574 [256] 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 - //SEG575 [256] 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 - //SEG576 keyboard_event_scan::@3 + //SEG575 [257] 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] + //SEG576 [257] 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 + //SEG577 [257] 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 + //SEG578 keyboard_event_scan::@3 b3: - //SEG577 [257] (byte) keyboard_event_scan::row#1 ← ++ (byte) keyboard_event_scan::row#2 -- vbuz1=_inc_vbuz1 + //SEG579 [258] (byte) keyboard_event_scan::row#1 ← ++ (byte) keyboard_event_scan::row#2 -- vbuz1=_inc_vbuz1 inc row - //SEG578 [258] 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 + //SEG580 [259] 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 - //SEG579 [259] phi from keyboard_event_scan::@3 to keyboard_event_scan::@20 [phi:keyboard_event_scan::@3->keyboard_event_scan::@20] - //SEG580 keyboard_event_scan::@20 - //SEG581 [260] call keyboard_event_pressed - //SEG582 [237] phi from keyboard_event_scan::@20 to keyboard_event_pressed [phi:keyboard_event_scan::@20->keyboard_event_pressed] - //SEG583 [237] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_LSHIFT#0 [phi:keyboard_event_scan::@20->keyboard_event_pressed#0] -- vbuz1=vbuc1 + //SEG581 [260] phi from keyboard_event_scan::@3 to keyboard_event_scan::@20 [phi:keyboard_event_scan::@3->keyboard_event_scan::@20] + //SEG582 keyboard_event_scan::@20 + //SEG583 [261] call keyboard_event_pressed + //SEG584 [238] phi from keyboard_event_scan::@20 to keyboard_event_pressed [phi:keyboard_event_scan::@20->keyboard_event_pressed] + //SEG585 [238] 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 - //SEG584 [261] (byte) keyboard_event_pressed::return#0 ← (byte) keyboard_event_pressed::return#11 + //SEG586 [262] (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 - //SEG585 keyboard_event_scan::@26 - //SEG586 [262] (byte~) keyboard_event_scan::$14 ← (byte) keyboard_event_pressed::return#0 + //SEG587 keyboard_event_scan::@26 + //SEG588 [263] (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 - //SEG587 [263] 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 + //SEG589 [264] 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 - //SEG588 [264] phi from keyboard_event_scan::@26 to keyboard_event_scan::@21 [phi:keyboard_event_scan::@26->keyboard_event_scan::@21] - //SEG589 keyboard_event_scan::@21 - //SEG590 [265] phi from keyboard_event_scan::@21 to keyboard_event_scan::@9 [phi:keyboard_event_scan::@21->keyboard_event_scan::@9] - //SEG591 [265] 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 + //SEG590 [265] phi from keyboard_event_scan::@26 to keyboard_event_scan::@21 [phi:keyboard_event_scan::@26->keyboard_event_scan::@21] + //SEG591 keyboard_event_scan::@21 + //SEG592 [266] phi from keyboard_event_scan::@21 to keyboard_event_scan::@9 [phi:keyboard_event_scan::@21->keyboard_event_scan::@9] + //SEG593 [266] 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 - //SEG592 [265] phi from keyboard_event_scan::@26 to keyboard_event_scan::@9 [phi:keyboard_event_scan::@26->keyboard_event_scan::@9] + //SEG594 [266] phi from keyboard_event_scan::@26 to keyboard_event_scan::@9 [phi:keyboard_event_scan::@26->keyboard_event_scan::@9] b2: - //SEG593 [265] 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 + //SEG595 [266] 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 - //SEG594 keyboard_event_scan::@9 + //SEG596 keyboard_event_scan::@9 b9: - //SEG595 [266] call keyboard_event_pressed - //SEG596 [237] phi from keyboard_event_scan::@9 to keyboard_event_pressed [phi:keyboard_event_scan::@9->keyboard_event_pressed] - //SEG597 [237] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_RSHIFT#0 [phi:keyboard_event_scan::@9->keyboard_event_pressed#0] -- vbuz1=vbuc1 + //SEG597 [267] call keyboard_event_pressed + //SEG598 [238] phi from keyboard_event_scan::@9 to keyboard_event_pressed [phi:keyboard_event_scan::@9->keyboard_event_pressed] + //SEG599 [238] 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 - //SEG598 [267] (byte) keyboard_event_pressed::return#1 ← (byte) keyboard_event_pressed::return#11 + //SEG600 [268] (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 - //SEG599 keyboard_event_scan::@27 - //SEG600 [268] (byte~) keyboard_event_scan::$18 ← (byte) keyboard_event_pressed::return#1 + //SEG601 keyboard_event_scan::@27 + //SEG602 [269] (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 - //SEG601 [269] 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 + //SEG603 [270] 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 - //SEG602 keyboard_event_scan::@22 - //SEG603 [270] (byte) keyboard_modifiers#3 ← (byte) keyboard_modifiers#11 | (const byte) KEY_MODIFIER_RSHIFT#0 -- vbuxx=vbuxx_bor_vbuc1 + //SEG604 keyboard_event_scan::@22 + //SEG605 [271] (byte) keyboard_modifiers#3 ← (byte) keyboard_modifiers#11 | (const byte) KEY_MODIFIER_RSHIFT#0 -- vbuxx=vbuxx_bor_vbuc1 txa ora #KEY_MODIFIER_RSHIFT tax - //SEG604 [271] 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] - //SEG605 [271] 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 - //SEG606 keyboard_event_scan::@10 + //SEG606 [272] 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] + //SEG607 [272] 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 + //SEG608 keyboard_event_scan::@10 b10: - //SEG607 [272] call keyboard_event_pressed - //SEG608 [237] phi from keyboard_event_scan::@10 to keyboard_event_pressed [phi:keyboard_event_scan::@10->keyboard_event_pressed] - //SEG609 [237] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_CTRL#0 [phi:keyboard_event_scan::@10->keyboard_event_pressed#0] -- vbuz1=vbuc1 + //SEG609 [273] call keyboard_event_pressed + //SEG610 [238] phi from keyboard_event_scan::@10 to keyboard_event_pressed [phi:keyboard_event_scan::@10->keyboard_event_pressed] + //SEG611 [238] 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 - //SEG610 [273] (byte) keyboard_event_pressed::return#2 ← (byte) keyboard_event_pressed::return#11 + //SEG612 [274] (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 - //SEG611 keyboard_event_scan::@28 - //SEG612 [274] (byte~) keyboard_event_scan::$22 ← (byte) keyboard_event_pressed::return#2 + //SEG613 keyboard_event_scan::@28 + //SEG614 [275] (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 - //SEG613 [275] 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 + //SEG615 [276] 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 - //SEG614 keyboard_event_scan::@23 - //SEG615 [276] (byte) keyboard_modifiers#4 ← (byte) keyboard_modifiers#12 | (const byte) KEY_MODIFIER_CTRL#0 -- vbuxx=vbuxx_bor_vbuc1 + //SEG616 keyboard_event_scan::@23 + //SEG617 [277] (byte) keyboard_modifiers#4 ← (byte) keyboard_modifiers#12 | (const byte) KEY_MODIFIER_CTRL#0 -- vbuxx=vbuxx_bor_vbuc1 txa ora #KEY_MODIFIER_CTRL tax - //SEG616 [277] 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] - //SEG617 [277] 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 - //SEG618 keyboard_event_scan::@11 + //SEG618 [278] 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] + //SEG619 [278] 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 + //SEG620 keyboard_event_scan::@11 b11: - //SEG619 [278] call keyboard_event_pressed - //SEG620 [237] phi from keyboard_event_scan::@11 to keyboard_event_pressed [phi:keyboard_event_scan::@11->keyboard_event_pressed] - //SEG621 [237] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_COMMODORE#0 [phi:keyboard_event_scan::@11->keyboard_event_pressed#0] -- vbuz1=vbuc1 + //SEG621 [279] call keyboard_event_pressed + //SEG622 [238] phi from keyboard_event_scan::@11 to keyboard_event_pressed [phi:keyboard_event_scan::@11->keyboard_event_pressed] + //SEG623 [238] 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 - //SEG622 [279] (byte) keyboard_event_pressed::return#10 ← (byte) keyboard_event_pressed::return#11 + //SEG624 [280] (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 - //SEG623 keyboard_event_scan::@29 - //SEG624 [280] (byte~) keyboard_event_scan::$26 ← (byte) keyboard_event_pressed::return#10 + //SEG625 keyboard_event_scan::@29 + //SEG626 [281] (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 - //SEG625 [281] 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 + //SEG627 [282] 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 - //SEG626 keyboard_event_scan::@24 - //SEG627 [282] (byte) keyboard_modifiers#5 ← (byte) keyboard_modifiers#13 | (const byte) KEY_MODIFIER_COMMODORE#0 -- vbuaa=vbuxx_bor_vbuc1 + //SEG628 keyboard_event_scan::@24 + //SEG629 [283] (byte) keyboard_modifiers#5 ← (byte) keyboard_modifiers#13 | (const byte) KEY_MODIFIER_COMMODORE#0 -- vbuaa=vbuxx_bor_vbuc1 txa ora #KEY_MODIFIER_COMMODORE - //SEG628 keyboard_event_scan::@return + //SEG630 keyboard_event_scan::@return breturn: - //SEG629 [283] return + //SEG631 [284] return rts - //SEG630 [284] phi from keyboard_event_scan::@25 to keyboard_event_scan::@4 [phi:keyboard_event_scan::@25->keyboard_event_scan::@4] + //SEG632 [285] phi from keyboard_event_scan::@25 to keyboard_event_scan::@4 [phi:keyboard_event_scan::@25->keyboard_event_scan::@4] b6: - //SEG631 [284] phi (byte) keyboard_events_size#10 = (byte) keyboard_events_size#29 [phi:keyboard_event_scan::@25->keyboard_event_scan::@4#0] -- register_copy - //SEG632 [284] 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 - //SEG633 [284] 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 + //SEG633 [285] phi (byte) keyboard_events_size#10 = (byte) keyboard_events_size#29 [phi:keyboard_event_scan::@25->keyboard_event_scan::@4#0] -- register_copy + //SEG634 [285] 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 + //SEG635 [285] 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 - //SEG634 [284] phi from keyboard_event_scan::@5 to keyboard_event_scan::@4 [phi:keyboard_event_scan::@5->keyboard_event_scan::@4] - //SEG635 [284] phi (byte) keyboard_events_size#10 = (byte) keyboard_events_size#30 [phi:keyboard_event_scan::@5->keyboard_event_scan::@4#0] -- register_copy - //SEG636 [284] 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 - //SEG637 [284] 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 - //SEG638 keyboard_event_scan::@4 + //SEG636 [285] phi from keyboard_event_scan::@5 to keyboard_event_scan::@4 [phi:keyboard_event_scan::@5->keyboard_event_scan::@4] + //SEG637 [285] phi (byte) keyboard_events_size#10 = (byte) keyboard_events_size#30 [phi:keyboard_event_scan::@5->keyboard_event_scan::@4#0] -- register_copy + //SEG638 [285] 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 + //SEG639 [285] 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 + //SEG640 keyboard_event_scan::@4 b4: - //SEG639 [285] (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 + //SEG641 [286] (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 - //SEG640 [286] (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 + //SEG642 [287] (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 - //SEG641 [287] 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 + //SEG643 [288] 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 - //SEG642 keyboard_event_scan::@15 - //SEG643 [288] 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 + //SEG644 keyboard_event_scan::@15 + //SEG645 [289] 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 - //SEG644 keyboard_event_scan::@16 - //SEG645 [289] (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 + //SEG646 keyboard_event_scan::@16 + //SEG647 [290] (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 - //SEG646 [290] 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 + //SEG648 [291] 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 - //SEG647 keyboard_event_scan::@17 - //SEG648 [291] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte) keyboard_event_scan::keycode#10 -- pbuc1_derefidx_vbuz1=vbuz2 + //SEG649 keyboard_event_scan::@17 + //SEG650 [292] *((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 - //SEG649 [292] (byte) keyboard_events_size#2 ← ++ (byte) keyboard_events_size#10 -- vbuz1=_inc_vbuz1 + //SEG651 [293] (byte) keyboard_events_size#2 ← ++ (byte) keyboard_events_size#10 -- vbuz1=_inc_vbuz1 inc keyboard_events_size - //SEG650 [293] 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] - //SEG651 [293] 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 - //SEG652 keyboard_event_scan::@5 + //SEG652 [294] 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] + //SEG653 [294] 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 + //SEG654 keyboard_event_scan::@5 b5: - //SEG653 [294] (byte) keyboard_event_scan::keycode#15 ← ++ (byte) keyboard_event_scan::keycode#10 -- vbuz1=_inc_vbuz1 + //SEG655 [295] (byte) keyboard_event_scan::keycode#15 ← ++ (byte) keyboard_event_scan::keycode#10 -- vbuz1=_inc_vbuz1 inc keycode - //SEG654 [295] (byte) keyboard_event_scan::col#1 ← ++ (byte) keyboard_event_scan::col#2 -- vbuxx=_inc_vbuxx + //SEG656 [296] (byte) keyboard_event_scan::col#1 ← ++ (byte) keyboard_event_scan::col#2 -- vbuxx=_inc_vbuxx inx - //SEG655 [296] 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 + //SEG657 [297] 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 - //SEG656 keyboard_event_scan::@19 - //SEG657 [297] *((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2) ← (byte) keyboard_event_scan::row_scan#0 -- pbuc1_derefidx_vbuz1=vbuz2 + //SEG658 keyboard_event_scan::@19 + //SEG659 [298] *((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 - //SEG658 keyboard_event_scan::@7 + //SEG660 keyboard_event_scan::@7 b7: - //SEG659 [298] (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 + //SEG661 [299] (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 - //SEG660 [299] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte/word/dword~) keyboard_event_scan::$11 -- pbuc1_derefidx_vbuz1=vbuaa + //SEG662 [300] *((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 - //SEG661 [300] (byte) keyboard_events_size#1 ← ++ (byte) keyboard_events_size#10 -- vbuz1=_inc_vbuz1 + //SEG663 [301] (byte) keyboard_events_size#1 ← ++ (byte) keyboard_events_size#10 -- vbuz1=_inc_vbuz1 inc keyboard_events_size jmp b5 } -//SEG662 keyboard_matrix_read +//SEG664 keyboard_matrix_read keyboard_matrix_read: { - //SEG663 [301] *((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 + //SEG665 [302] *((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 - //SEG664 [302] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) -- vbuaa=_bnot__deref_pbuc1 + //SEG666 [303] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) -- vbuaa=_bnot__deref_pbuc1 lda CIA1_PORT_B eor #$ff - //SEG665 keyboard_matrix_read::@return - //SEG666 [303] return + //SEG667 keyboard_matrix_read::@return + //SEG668 [304] return rts } -//SEG667 play_init +//SEG669 play_init play_init: { .label pli = 5 .label idx = 2 - //SEG668 [305] phi from play_init to play_init::@1 [phi:play_init->play_init::@1] - //SEG669 [305] 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 + //SEG670 [306] phi from play_init to play_init::@1 [phi:play_init->play_init::@1] + //SEG671 [306] 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 - //SEG670 [305] 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 + //SEG672 [306] 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 - //SEG671 [305] 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 + //SEG673 [306] 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 - //SEG672 [305] phi from play_init::@1 to play_init::@1 [phi:play_init::@1->play_init::@1] - //SEG673 [305] phi (byte) play_init::idx#2 = (byte) play_init::idx#1 [phi:play_init::@1->play_init::@1#0] -- register_copy - //SEG674 [305] phi (byte*) play_init::pli#2 = (byte*) play_init::pli#1 [phi:play_init::@1->play_init::@1#1] -- register_copy - //SEG675 [305] phi (byte) play_init::j#2 = (byte) play_init::j#1 [phi:play_init::@1->play_init::@1#2] -- register_copy - //SEG676 play_init::@1 + //SEG674 [306] phi from play_init::@1 to play_init::@1 [phi:play_init::@1->play_init::@1] + //SEG675 [306] phi (byte) play_init::idx#2 = (byte) play_init::idx#1 [phi:play_init::@1->play_init::@1#0] -- register_copy + //SEG676 [306] phi (byte*) play_init::pli#2 = (byte*) play_init::pli#1 [phi:play_init::@1->play_init::@1#1] -- register_copy + //SEG677 [306] phi (byte) play_init::j#2 = (byte) play_init::j#1 [phi:play_init::@1->play_init::@1#2] -- register_copy + //SEG678 play_init::@1 b1: - //SEG677 [306] (byte~) play_init::$1 ← (byte) play_init::j#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuaa=vbuxx_rol_1 + //SEG679 [307] (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 - //SEG678 [307] *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte~) play_init::$1) ← (byte*) play_init::pli#2 -- pptc1_derefidx_vbuaa=pbuz1 + //SEG680 [308] *((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 - //SEG679 [308] *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0 + (byte) play_init::j#2) ← (byte) play_init::idx#2 -- pbuc1_derefidx_vbuxx=vbuz1 + //SEG681 [309] *((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 - //SEG680 [309] (byte*) play_init::pli#1 ← (byte*) play_init::pli#2 + (const byte) PLAYFIELD_COLS#0 -- pbuz1=pbuz1_plus_vbuc1 + //SEG682 [310] (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 @@ -14591,78 +15569,94 @@ play_init: { bcc !+ inc pli+1 !: - //SEG681 [310] (byte) play_init::idx#1 ← (byte) play_init::idx#2 + (const byte) PLAYFIELD_COLS#0 -- vbuz1=vbuz1_plus_vbuc1 + //SEG683 [311] (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 - //SEG682 [311] (byte) play_init::j#1 ← ++ (byte) play_init::j#2 -- vbuxx=_inc_vbuxx + //SEG684 [312] (byte) play_init::j#1 ← ++ (byte) play_init::j#2 -- vbuxx=_inc_vbuxx inx - //SEG683 [312] 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 + //SEG685 [313] 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 - //SEG684 play_init::@2 - //SEG685 [313] *((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 + //SEG686 play_init::@2 + //SEG687 [314] *((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 - //SEG686 play_init::@return - //SEG687 [314] return + //SEG688 play_init::@return + //SEG689 [315] return rts } -//SEG688 render_init +//SEG690 render_init render_init: { - .label _10 = $c + .const vicSelectGfxBank1_toDd001_return = 3^(>PLAYFIELD_SCREEN)>>6 + .const toD0181_return = (>(PLAYFIELD_SCREEN&$3fff)<<2)|(>PLAYFIELD_CHARSET)>>2&$f + .label _15 = $c .label li = 5 .label line = 5 .label l = 2 - //SEG689 [315] *((const byte*) BGCOL#0) ← (const byte) BLACK#0 -- _deref_pbuc1=vbuc2 + //SEG691 render_init::vicSelectGfxBank1 + //SEG692 [317] *((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 + //SEG693 [318] phi from render_init::vicSelectGfxBank1 to render_init::vicSelectGfxBank1_toDd001 [phi:render_init::vicSelectGfxBank1->render_init::vicSelectGfxBank1_toDd001] + //SEG694 render_init::vicSelectGfxBank1_toDd001 + //SEG695 render_init::vicSelectGfxBank1_@1 + //SEG696 [319] *((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 + //SEG697 [320] phi from render_init::vicSelectGfxBank1_@1 to render_init::toD0181 [phi:render_init::vicSelectGfxBank1_@1->render_init::toD0181] + //SEG698 render_init::toD0181 + //SEG699 render_init::@8 + //SEG700 [321] *((const byte*) D018#0) ← (const byte) render_init::toD0181_return#0 -- _deref_pbuc1=vbuc2 + lda #toD0181_return + sta D018 + //SEG701 [322] *((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 + //SEG702 [323] *((const byte*) BGCOL1#0) ← (const byte) BLACK#0 -- _deref_pbuc1=vbuc2 lda #BLACK - sta BGCOL - //SEG690 [316] call fill - //SEG691 [335] phi from render_init to fill [phi:render_init->fill] - //SEG692 [335] phi (byte) fill::val#3 = (byte/word/signed word/dword/signed dword) 208 [phi:render_init->fill#0] -- vbuxx=vbuc1 - ldx #$d0 - //SEG693 [335] phi (byte*) fill::addr#0 = (const byte*) PLAYFIELD_SCREEN#0 [phi:render_init->fill#1] -- pbuz1=pbuc1 - lda #PLAYFIELD_SCREEN - sta fill.addr+1 + sta BGCOL1 + //SEG703 [324] *((const byte*) BGCOL2#0) ← (const byte) BLUE#0 -- _deref_pbuc1=vbuc2 + lda #BLUE + sta BGCOL2 + //SEG704 [325] *((const byte*) BGCOL3#0) ← (const byte) CYAN#0 -- _deref_pbuc1=vbuc2 + lda #CYAN + sta BGCOL3 + //SEG705 [326] *((const byte*) BGCOL4#0) ← (const byte) GREY#0 -- _deref_pbuc1=vbuc2 + lda #GREY + sta BGCOL4 + //SEG706 [327] call fill + //SEG707 [368] phi from render_init::@8 to fill [phi:render_init::@8->fill] jsr fill - //SEG694 [317] phi from render_init to render_init::@7 [phi:render_init->render_init::@7] - //SEG695 render_init::@7 - //SEG696 [318] call fill - //SEG697 [335] phi from render_init::@7 to fill [phi:render_init::@7->fill] - //SEG698 [335] phi (byte) fill::val#3 = (const byte) BLACK#0 [phi:render_init::@7->fill#0] -- vbuxx=vbuc1 - ldx #BLACK - //SEG699 [335] phi (byte*) fill::addr#0 = (const byte*) COLS#0 [phi:render_init::@7->fill#1] -- pbuz1=pbuc1 - lda #COLS - sta fill.addr+1 - jsr fill - //SEG700 [319] phi from render_init::@7 to render_init::@1 [phi:render_init::@7->render_init::@1] - //SEG701 [319] phi (byte*) render_init::li#2 = (const byte*) COLS#0+(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 15 [phi:render_init::@7->render_init::@1#0] -- pbuz1=pbuc1 - lda #render_init::@9] + //SEG709 render_init::@9 + //SEG710 [329] call render_screen_original + //SEG711 [346] phi from render_init::@9 to render_screen_original [phi:render_init::@9->render_screen_original] + jsr render_screen_original + //SEG712 [330] phi from render_init::@9 to render_init::@1 [phi:render_init::@9->render_init::@1] + //SEG713 [330] phi (byte*) render_init::li#2 = (const byte*) PLAYFIELD_SCREEN#0+(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 #COLS+$28+$f + lda #>PLAYFIELD_SCREEN+$28+$10 sta li+1 - //SEG702 [319] phi (byte) render_init::i#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_init::@7->render_init::@1#1] -- vbuxx=vbuc1 + //SEG714 [330] 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 - //SEG703 [319] phi from render_init::@1 to render_init::@1 [phi:render_init::@1->render_init::@1] - //SEG704 [319] phi (byte*) render_init::li#2 = (byte*) render_init::li#1 [phi:render_init::@1->render_init::@1#0] -- register_copy - //SEG705 [319] phi (byte) render_init::i#2 = (byte) render_init::i#1 [phi:render_init::@1->render_init::@1#1] -- register_copy - //SEG706 render_init::@1 + //SEG715 [330] phi from render_init::@1 to render_init::@1 [phi:render_init::@1->render_init::@1] + //SEG716 [330] phi (byte*) render_init::li#2 = (byte*) render_init::li#1 [phi:render_init::@1->render_init::@1#0] -- register_copy + //SEG717 [330] phi (byte) render_init::i#2 = (byte) render_init::i#1 [phi:render_init::@1->render_init::@1#1] -- register_copy + //SEG718 render_init::@1 b1: - //SEG707 [320] (byte~) render_init::$5 ← (byte) render_init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuaa=vbuxx_rol_1 + //SEG719 [331] (byte~) render_init::$10 ← (byte) render_init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuaa=vbuxx_rol_1 txa asl - //SEG708 [321] *((const byte*[PLAYFIELD_LINES#0+3]) screen_lines#0 + (byte~) render_init::$5) ← (byte*) render_init::li#2 -- pptc1_derefidx_vbuaa=pbuz1 + //SEG720 [332] *((const byte*[PLAYFIELD_LINES#0+3]) screen_lines#0 + (byte~) render_init::$10) ← (byte*) render_init::li#2 -- pptc1_derefidx_vbuaa=pbuz1 tay lda li sta screen_lines,y lda li+1 sta screen_lines+1,y - //SEG709 [322] (byte*) render_init::li#1 ← (byte*) render_init::li#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 -- pbuz1=pbuz1_plus_vbuc1 + //SEG721 [333] (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 @@ -14670,51 +15664,51 @@ render_init: { bcc !+ inc li+1 !: - //SEG710 [323] (byte) render_init::i#1 ← ++ (byte) render_init::i#2 -- vbuxx=_inc_vbuxx + //SEG722 [334] (byte) render_init::i#1 ← ++ (byte) render_init::i#2 -- vbuxx=_inc_vbuxx inx - //SEG711 [324] if((byte) render_init::i#1!=(const byte) PLAYFIELD_LINES#0+(byte/signed byte/word/signed word/dword/signed dword) 2+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_init::@1 -- vbuxx_neq_vbuc1_then_la1 + //SEG723 [335] if((byte) render_init::i#1!=(const byte) PLAYFIELD_LINES#0+(byte/signed byte/word/signed word/dword/signed dword) 2+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_init::@1 -- vbuxx_neq_vbuc1_then_la1 cpx #PLAYFIELD_LINES+2+1 bne b1 - //SEG712 [325] phi from render_init::@1 to render_init::@2 [phi:render_init::@1->render_init::@2] - //SEG713 [325] phi (byte) render_init::l#4 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_init::@1->render_init::@2#0] -- vbuz1=vbuc1 + //SEG724 [336] phi from render_init::@1 to render_init::@2 [phi:render_init::@1->render_init::@2] + //SEG725 [336] phi (byte) render_init::l#4 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_init::@1->render_init::@2#0] -- vbuz1=vbuc1 lda #0 sta l - //SEG714 [325] phi (byte*) render_init::line#4 = (const byte*) COLS#0+(byte/signed byte/word/signed word/dword/signed dword) 14 [phi:render_init::@1->render_init::@2#1] -- pbuz1=pbuc1 - lda #render_init::@2#1] -- pbuz1=pbuc1 + lda #COLS+$e + lda #>COLS+$f sta line+1 - //SEG715 [325] phi from render_init::@5 to render_init::@2 [phi:render_init::@5->render_init::@2] - //SEG716 [325] phi (byte) render_init::l#4 = (byte) render_init::l#1 [phi:render_init::@5->render_init::@2#0] -- register_copy - //SEG717 [325] phi (byte*) render_init::line#4 = (byte*) render_init::line#1 [phi:render_init::@5->render_init::@2#1] -- register_copy - //SEG718 render_init::@2 + //SEG727 [336] phi from render_init::@5 to render_init::@2 [phi:render_init::@5->render_init::@2] + //SEG728 [336] phi (byte) render_init::l#4 = (byte) render_init::l#1 [phi:render_init::@5->render_init::@2#0] -- register_copy + //SEG729 [336] phi (byte*) render_init::line#4 = (byte*) render_init::line#1 [phi:render_init::@5->render_init::@2#1] -- register_copy + //SEG730 render_init::@2 b2: - //SEG719 [326] phi from render_init::@2 to render_init::@3 [phi:render_init::@2->render_init::@3] - //SEG720 [326] 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 + //SEG731 [337] phi from render_init::@2 to render_init::@3 [phi:render_init::@2->render_init::@3] + //SEG732 [337] 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 - //SEG721 [326] phi from render_init::@3 to render_init::@3 [phi:render_init::@3->render_init::@3] - //SEG722 [326] phi (byte) render_init::c#2 = (byte) render_init::c#1 [phi:render_init::@3->render_init::@3#0] -- register_copy - //SEG723 render_init::@3 + //SEG733 [337] phi from render_init::@3 to render_init::@3 [phi:render_init::@3->render_init::@3] + //SEG734 [337] phi (byte) render_init::c#2 = (byte) render_init::c#1 [phi:render_init::@3->render_init::@3#0] -- register_copy + //SEG735 render_init::@3 b3: - //SEG724 [327] (byte*~) render_init::$10 ← (byte*) render_init::line#4 + (byte) render_init::c#2 -- pbuz1=pbuz2_plus_vbuxx + //SEG736 [338] (byte*~) render_init::$15 ← (byte*) render_init::line#4 + (byte) render_init::c#2 -- pbuz1=pbuz2_plus_vbuxx txa clc adc line - sta _10 + sta _15 lda #0 adc line+1 - sta _10+1 - //SEG725 [328] *((byte*~) render_init::$10) ← (const byte) DARK_GREY#0 -- _deref_pbuz1=vbuc1 - lda #DARK_GREY + sta _15+1 + //SEG737 [339] *((byte*~) render_init::$15) ← (const byte) WHITE#0 -- _deref_pbuz1=vbuc1 + lda #WHITE ldy #0 - sta (_10),y - //SEG726 [329] (byte) render_init::c#1 ← ++ (byte) render_init::c#2 -- vbuxx=_inc_vbuxx + sta (_15),y + //SEG738 [340] (byte) render_init::c#1 ← ++ (byte) render_init::c#2 -- vbuxx=_inc_vbuxx inx - //SEG727 [330] 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 + //SEG739 [341] 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 - //SEG728 render_init::@5 - //SEG729 [331] (byte*) render_init::line#1 ← (byte*) render_init::line#4 + (byte/signed byte/word/signed word/dword/signed dword) 40 -- pbuz1=pbuz1_plus_vbuc1 + //SEG740 render_init::@5 + //SEG741 [342] (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 @@ -14722,64 +15716,170 @@ render_init: { bcc !+ inc line+1 !: - //SEG730 [332] (byte) render_init::l#1 ← ++ (byte) render_init::l#4 -- vbuz1=_inc_vbuz1 + //SEG742 [343] (byte) render_init::l#1 ← ++ (byte) render_init::l#4 -- vbuz1=_inc_vbuz1 inc l - //SEG731 [333] 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 + //SEG743 [344] 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 - //SEG732 render_init::@return - //SEG733 [334] return + //SEG744 render_init::@return + //SEG745 [345] return rts } -//SEG734 fill -fill: { - .label end = $c - .label addr = 5 - //SEG735 [336] (byte*) fill::end#0 ← (byte*) fill::addr#0 + (word/signed word/dword/signed dword) 1000 -- pbuz1=pbuz2_plus_vwuc1 - lda addr - clc - adc #<$3e8 - sta end - lda addr+1 - adc #>$3e8 - sta end+1 - //SEG736 [337] phi from fill fill::@1 to fill::@1 [phi:fill/fill::@1->fill::@1] - //SEG737 [337] phi (byte*) fill::addr#2 = (byte*) fill::addr#0 [phi:fill/fill::@1->fill::@1#0] -- register_copy - //SEG738 fill::@1 +//SEG746 render_screen_original +render_screen_original: { + .const SPACE = 0 + .label screen = $c + .label orig = 5 + .label y = 2 + //SEG747 [347] phi from render_screen_original to render_screen_original::@1 [phi:render_screen_original->render_screen_original::@1] + //SEG748 [347] 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 + //SEG749 [347] 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 + //SEG750 [347] 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 + //SEG751 [347] phi from render_screen_original::@7 to render_screen_original::@1 [phi:render_screen_original::@7->render_screen_original::@1] + //SEG752 [347] 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 + //SEG753 [347] 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 + //SEG754 [347] 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 + //SEG755 render_screen_original::@1 b1: - //SEG739 [338] *((byte*) fill::addr#2) ← (byte) fill::val#3 -- _deref_pbuz1=vbuxx - txa + //SEG756 [348] phi from render_screen_original::@1 to render_screen_original::@2 [phi:render_screen_original::@1->render_screen_original::@2] + //SEG757 [348] 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 + //SEG758 [348] 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 + //SEG759 [348] phi from render_screen_original::@2 to render_screen_original::@2 [phi:render_screen_original::@2->render_screen_original::@2] + //SEG760 [348] 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 + //SEG761 [348] 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 + //SEG762 render_screen_original::@2 + b2: + //SEG763 [349] *((byte*) render_screen_original::screen#4) ← (const byte) render_screen_original::SPACE#0 -- _deref_pbuz1=vbuc1 + lda #SPACE + ldy #0 + sta (screen),y + //SEG764 [350] (byte*) render_screen_original::screen#1 ← ++ (byte*) render_screen_original::screen#4 -- pbuz1=_inc_pbuz1 + inc screen + bne !+ + inc screen+1 + !: + //SEG765 [351] (byte) render_screen_original::x#1 ← ++ (byte) render_screen_original::x#4 -- vbuxx=_inc_vbuxx + inx + //SEG766 [352] 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 + //SEG767 [353] 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] + //SEG768 [353] 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 + //SEG769 [353] 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 + //SEG770 [353] 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 + //SEG771 render_screen_original::@3 + b3: + //SEG772 [354] (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 + //SEG773 [355] *((byte*) render_screen_original::screen#5) ← (byte/signed word/word/dword/signed dword~) render_screen_original::$3 -- _deref_pbuz1=vbuaa + sta (screen),y + //SEG774 [356] (byte*) render_screen_original::screen#2 ← ++ (byte*) render_screen_original::screen#5 -- pbuz1=_inc_pbuz1 + inc screen + bne !+ + inc screen+1 + !: + //SEG775 [357] (byte*) render_screen_original::orig#1 ← ++ (byte*) render_screen_original::orig#2 -- pbuz1=_inc_pbuz1 + inc orig + bne !+ + inc orig+1 + !: + //SEG776 [358] (byte) render_screen_original::x#2 ← ++ (byte) render_screen_original::x#5 -- vbuxx=_inc_vbuxx + inx + //SEG777 [359] 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 + //SEG778 [360] 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] + //SEG779 [360] 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 + //SEG780 [360] 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 + //SEG781 render_screen_original::@4 + b4: + //SEG782 [361] *((byte*) render_screen_original::screen#6) ← (const byte) render_screen_original::SPACE#0 -- _deref_pbuz1=vbuc1 + lda #SPACE + ldy #0 + sta (screen),y + //SEG783 [362] (byte*) render_screen_original::screen#3 ← ++ (byte*) render_screen_original::screen#6 -- pbuz1=_inc_pbuz1 + inc screen + bne !+ + inc screen+1 + !: + //SEG784 [363] (byte) render_screen_original::x#3 ← ++ (byte) render_screen_original::x#6 -- vbuxx=_inc_vbuxx + inx + //SEG785 [364] 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 + //SEG786 render_screen_original::@7 + //SEG787 [365] (byte) render_screen_original::y#1 ← ++ (byte) render_screen_original::y#6 -- vbuz1=_inc_vbuz1 + inc y + //SEG788 [366] 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 + //SEG789 render_screen_original::@return + //SEG790 [367] return + rts +} +//SEG791 fill +fill: { + .const size = $3e8 + .label end = COLS+size + .label addr = 5 + //SEG792 [369] phi from fill to fill::@1 [phi:fill->fill::@1] + //SEG793 [369] phi (byte*) fill::addr#2 = (const byte*) COLS#0 [phi:fill->fill::@1#0] -- pbuz1=pbuc1 + lda #COLS + sta addr+1 + //SEG794 [369] phi from fill::@1 to fill::@1 [phi:fill::@1->fill::@1] + //SEG795 [369] phi (byte*) fill::addr#2 = (byte*) fill::addr#1 [phi:fill::@1->fill::@1#0] -- register_copy + //SEG796 fill::@1 + b1: + //SEG797 [370] *((byte*) fill::addr#2) ← (const byte) DARK_GREY#0 -- _deref_pbuz1=vbuc1 + lda #DARK_GREY ldy #0 sta (addr),y - //SEG740 [339] (byte*) fill::addr#1 ← ++ (byte*) fill::addr#2 -- pbuz1=_inc_pbuz1 + //SEG798 [371] (byte*) fill::addr#1 ← ++ (byte*) fill::addr#2 -- pbuz1=_inc_pbuz1 inc addr bne !+ inc addr+1 !: - //SEG741 [340] if((byte*) fill::addr#1!=(byte*) fill::end#0) goto fill::@1 -- pbuz1_neq_pbuz2_then_la1 + //SEG799 [372] if((byte*) fill::addr#1!=(const byte*) fill::end#0) goto fill::@1 -- pbuz1_neq_pbuc1_then_la1 lda addr+1 - cmp end+1 + cmp #>end bne b1 lda addr - cmp end + cmp #$ffff sta SID_VOICE3_FREQ+1 - //SEG746 [343] *((const byte*) SID_VOICE3_CONTROL#0) ← (const byte) SID_CONTROL_NOISE#0 -- _deref_pbuc1=vbuc2 + //SEG804 [375] *((const byte*) SID_VOICE3_CONTROL#0) ← (const byte) SID_CONTROL_NOISE#0 -- _deref_pbuc1=vbuc2 lda #SID_CONTROL_NOISE sta SID_VOICE3_CONTROL - //SEG747 sid_rnd_init::@return - //SEG748 [344] return + //SEG805 sid_rnd_init::@return + //SEG806 [376] return rts } keyboard_matrix_row_bitmask: .byte $fe, $fd, $fb, $f7, $ef, $df, $bf, $7f @@ -14800,16 +15900,17 @@ sid_rnd_init: { 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_COLORS: .byte WHITE, LIGHT_GREY, GREEN, LIGHT_GREY, WHITE, WHITE, GREEN + PIECES_CHARS: .byte $57, $58, $98, $58, $57, $57, $98 playfield_lines: .fill 2*PLAYFIELD_LINES, 0 playfield: .fill PLAYFIELD_LINES*PLAYFIELD_COLS, 0 screen_lines: .fill 2*(PLAYFIELD_LINES+3), 0 PIECES: .word PIECE_T, PIECE_S, PIECE_Z, PIECE_J, PIECE_O, PIECE_I, PIECE_L playfield_lines_idx: .fill PLAYFIELD_LINES+1, 0 .pc = PLAYFIELD_CHARSET "Inline" - .var charset = LoadPicture("nes-charset.png", List().add($000000, $ffffff)) - .for (var c=0; c<32; c++) - .for (var y=0;y<8; y++) - .byte charset.getSinglecolorByte(c,y) + .fill 8,$00 // Place a filled char at the start of the charset + .import binary "nes-screen.imap" + +.pc = PLAYFIELD_SCREEN_ORIGINAL "Inline" + .import binary "nes-screen.iscr" diff --git a/src/test/ref/examples/tetris/tetris.sym b/src/test/ref/examples/tetris/tetris.sym index f1a700007..97723af4f 100644 --- a/src/test/ref/examples/tetris/tetris.sym +++ b/src/test/ref/examples/tetris/tetris.sym @@ -1,16 +1,20 @@ (label) @14 -(label) @26 +(label) @27 (label) @begin (label) @end (byte*) BGCOL -(const byte*) BGCOL#0 BGCOL = ((byte*))(word/dword/signed dword) 53281 (byte*) BGCOL1 +(const byte*) BGCOL1#0 BGCOL1 = ((byte*))(word/dword/signed dword) 53281 (byte*) BGCOL2 +(const byte*) BGCOL2#0 BGCOL2 = ((byte*))(word/dword/signed dword) 53282 (byte*) BGCOL3 +(const byte*) BGCOL3#0 BGCOL3 = ((byte*))(word/dword/signed dword) 53283 (byte*) BGCOL4 +(const byte*) BGCOL4#0 BGCOL4 = ((byte*))(word/dword/signed dword) 53284 (byte) BLACK (const byte) BLACK#0 BLACK = (byte/signed byte/word/signed word/dword/signed dword) 0 (byte) BLUE +(const byte) BLUE#0 BLUE = (byte/signed byte/word/signed word/dword/signed dword) 6 (byte*) BORDERCOL (const byte*) BORDERCOL#0 BORDERCOL = ((byte*))(word/dword/signed dword) 53280 (byte) BROWN @@ -24,7 +28,9 @@ (byte*) CIA1_PORT_B_DDR (byte*) CIA2_INTERRUPT (byte*) CIA2_PORT_A +(const byte*) CIA2_PORT_A#0 CIA2_PORT_A = ((byte*))(word/dword/signed dword) 56576 (byte*) CIA2_PORT_A_DDR +(const byte*) CIA2_PORT_A_DDR#0 CIA2_PORT_A_DDR = ((byte*))(word/dword/signed dword) 56578 (byte*) CIA2_PORT_B (byte*) CIA2_PORT_B_DDR (byte) CIA_INTERRUPT_CLEAR @@ -41,14 +47,17 @@ (byte*) COLS (const byte*) COLS#0 COLS = ((byte*))(word/dword/signed dword) 55296 (byte) CYAN +(const byte) CYAN#0 CYAN = (byte/signed byte/word/signed word/dword/signed dword) 3 (byte*) D011 +(const byte*) D011#0 D011 = ((byte*))(word/dword/signed dword) 53265 (byte*) D016 (byte*) D018 +(const byte*) D018#0 D018 = ((byte*))(word/dword/signed dword) 53272 (byte) DARK_GREY (const byte) DARK_GREY#0 DARK_GREY = (byte/signed byte/word/signed word/dword/signed dword) 11 (byte) GREEN -(const byte) GREEN#0 GREEN = (byte/signed byte/word/signed word/dword/signed dword) 5 (byte) GREY +(const byte) GREY#0 GREY = (byte/signed byte/word/signed word/dword/signed dword) 12 (void()**) HARDWARE_IRQ (byte) IRQ_COLLISION_BG (byte) IRQ_COLLISION_SPRITE @@ -144,12 +153,11 @@ (byte) LIGHT_BLUE (byte) LIGHT_GREEN (byte) LIGHT_GREY -(const byte) LIGHT_GREY#0 LIGHT_GREY = (byte/signed byte/word/signed word/dword/signed dword) 15 (byte) ORANGE (word[]) PIECES (const word[]) PIECES#0 PIECES = { ((word))(const byte[4*4*4]) PIECE_T#0, ((word))(const byte[4*4*4]) PIECE_S#0, ((word))(const byte[4*4*4]) PIECE_Z#0, ((word))(const byte[4*4*4]) PIECE_J#0, ((word))(const byte[4*4*4]) PIECE_O#0, ((word))(const byte[4*4*4]) PIECE_I#0, ((word))(const byte[4*4*4]) PIECE_L#0 } -(byte[]) PIECES_COLORS -(const byte[]) PIECES_COLORS#0 PIECES_COLORS = { (const byte) WHITE#0, (const byte) LIGHT_GREY#0, (const byte) GREEN#0, (const byte) LIGHT_GREY#0, (const byte) WHITE#0, (const byte) WHITE#0, (const byte) GREEN#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[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 @@ -173,6 +181,9 @@ (const byte) PLAYFIELD_LINES#0 PLAYFIELD_LINES = (byte/signed byte/word/signed word/dword/signed dword) 22 (byte*) PLAYFIELD_SCREEN (const byte*) PLAYFIELD_SCREEN#0 PLAYFIELD_SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024 +(byte*) PLAYFIELD_SCREEN_ORIGINAL +(const byte*) PLAYFIELD_SCREEN_ORIGINAL#0 PLAYFIELD_SCREEN_ORIGINAL = ((byte*))(word/signed word/dword/signed dword) 11264 +(byte) PLAYFIELD_SCREEN_ORIGINAL_WIDTH (byte*) PLAYFIELD_SPRITES (byte*) PLAYFIELD_SPRITE_PTRS (byte*) PROCPORT @@ -221,10 +232,13 @@ (byte*) VIC_CONTROL2 (byte) VIC_CSEL (byte) VIC_DEN +(const byte) VIC_DEN#0 VIC_DEN = (byte/signed byte/word/signed word/dword/signed dword) 16 (byte) VIC_ECM +(const byte) VIC_ECM#0 VIC_ECM = (byte/signed byte/word/signed word/dword/signed dword) 64 (byte) VIC_MCM (byte*) VIC_MEMORY (byte) VIC_RSEL +(const byte) VIC_RSEL#0 VIC_RSEL = (byte/signed byte/word/signed word/dword/signed dword) 8 (byte) VIC_RST8 (byte) WHITE (const byte) WHITE#0 WHITE = (byte/signed byte/word/signed word/dword/signed dword) 1 @@ -254,14 +268,14 @@ (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 zp ZP_WORD:12 4.0 -(byte) current_piece_color -(byte) current_piece_color#11 current_piece_color zp ZP_BYTE:18 1.04 -(byte) current_piece_color#13 current_piece_color zp ZP_BYTE:18 0.7272727272727273 -(byte) current_piece_color#16 current_piece_color zp ZP_BYTE:18 19.96078431372549 -(byte) current_piece_color#21 current_piece_color zp ZP_BYTE:18 6.0 -(byte) current_piece_color#62 current_piece_color#62 zp ZP_BYTE:7 53.368421052631575 -(byte~) current_piece_color#75 current_piece_color#75 zp ZP_BYTE:7 4.0 -(byte~) current_piece_color#76 current_piece_color#76 zp ZP_BYTE:7 22.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#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#62 current_piece_char#62 zp ZP_BYTE:7 53.368421052631575 +(byte~) current_piece_char#75 current_piece_char#75 zp ZP_BYTE:7 4.0 +(byte~) current_piece_char#76 current_piece_char#76 zp ZP_BYTE:7 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 @@ -292,15 +306,14 @@ (label) fill::@1 (label) fill::@return (byte*) fill::addr -(byte*) fill::addr#0 addr zp ZP_WORD:5 2.0 (byte*) fill::addr#1 addr zp ZP_WORD:5 16.5 -(byte*) fill::addr#2 addr zp ZP_WORD:5 17.5 +(byte*) fill::addr#2 addr zp ZP_WORD:5 16.5 (byte*) fill::end -(byte*) fill::end#0 end zp ZP_WORD:12 2.6 +(const byte*) fill::end#0 end = (const byte*) COLS#0+(const word) fill::size#0 (word) fill::size +(const word) fill::size#0 size = (word/signed word/dword/signed dword) 1000 (byte*) fill::start (byte) fill::val -(byte) fill::val#3 reg byte x 1.8333333333333333 (byte[]) keyboard_char_keycodes (byte()) keyboard_event_get() (label) keyboard_event_get::@3 @@ -688,13 +701,14 @@ (byte) render_current::ypos2#1 ypos2 zp ZP_BYTE:8 67.33333333333333 (byte) render_current::ypos2#2 ypos2 zp ZP_BYTE:8 29.000000000000004 (void()) render_init() -(byte*~) render_init::$10 $10 zp ZP_WORD:12 202.0 -(byte~) render_init::$5 reg byte a 22.0 +(byte~) render_init::$10 reg byte a 22.0 +(byte*~) render_init::$15 $15 zp ZP_WORD:12 202.0 (label) render_init::@1 (label) render_init::@2 (label) render_init::@3 (label) render_init::@5 -(label) render_init::@7 +(label) render_init::@8 +(label) render_init::@9 (label) render_init::@return (byte) render_init::c (byte) render_init::c#1 reg byte x 151.5 @@ -711,6 +725,32 @@ (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 +(label) render_init::toD0181 +(word~) render_init::toD0181_$0 +(word~) render_init::toD0181_$1 +(word~) render_init::toD0181_$2 +(byte~) render_init::toD0181_$3 +(word~) render_init::toD0181_$4 +(byte~) render_init::toD0181_$5 +(byte~) render_init::toD0181_$6 +(byte~) render_init::toD0181_$7 +(byte~) render_init::toD0181_$8 +(byte*) render_init::toD0181_gfx +(byte) render_init::toD0181_return +(const byte) render_init::toD0181_return#0 toD0181_return = >((word))(const byte*) PLAYFIELD_SCREEN#0&(word/signed word/dword/signed dword) 16383<<(byte/signed byte/word/signed word/dword/signed dword) 2|>((word))(const byte*) PLAYFIELD_CHARSET#0>>(byte/signed byte/word/signed word/dword/signed dword) 2&(byte/signed byte/word/signed word/dword/signed dword) 15 +(byte*) render_init::toD0181_screen +(label) render_init::vicSelectGfxBank1 +(byte~) render_init::vicSelectGfxBank1_$0 +(label) render_init::vicSelectGfxBank1_@1 +(byte*) render_init::vicSelectGfxBank1_gfx +(label) render_init::vicSelectGfxBank1_toDd001 +(word~) render_init::vicSelectGfxBank1_toDd001_$0 +(byte~) render_init::vicSelectGfxBank1_toDd001_$1 +(byte~) render_init::vicSelectGfxBank1_toDd001_$2 +(byte/word/dword~) render_init::vicSelectGfxBank1_toDd001_$3 +(byte*) render_init::vicSelectGfxBank1_toDd001_gfx +(byte) render_init::vicSelectGfxBank1_toDd001_return +(const byte) render_init::vicSelectGfxBank1_toDd001_return#0 vicSelectGfxBank1_toDd001_return = (byte/signed byte/word/signed word/dword/signed dword) 3^>((word))(const byte*) PLAYFIELD_SCREEN#0>>(byte/signed byte/word/signed word/dword/signed dword) 6 (void()) render_playfield() (byte~) render_playfield::$1 reg byte a 202.0 (label) render_playfield::@1 @@ -731,6 +771,38 @@ (byte*) render_playfield::line#0 line zp ZP_WORD:5 202.0 (byte*) render_playfield::line#1 line zp ZP_WORD:5 500.5 (byte*) render_playfield::line#2 line zp ZP_WORD:5 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 +(label) render_screen_original::@2 +(label) render_screen_original::@3 +(label) render_screen_original::@4 +(label) render_screen_original::@7 +(label) render_screen_original::@return +(byte) render_screen_original::SPACE +(const byte) render_screen_original::SPACE#0 SPACE = (byte/signed byte/word/signed word/dword/signed dword) 0 +(byte*) render_screen_original::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::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 +(byte*) render_screen_original::screen#3 screen zp ZP_WORD:12 42.599999999999994 +(byte*) render_screen_original::screen#4 screen zp ZP_WORD:12 157.0 +(byte*) render_screen_original::screen#5 screen zp ZP_WORD:12 134.66666666666666 +(byte*) render_screen_original::screen#6 screen zp ZP_WORD:12 202.0 +(byte*) render_screen_original::screen#7 screen zp ZP_WORD:12 22.0 +(byte) render_screen_original::x +(byte) render_screen_original::x#1 reg byte x 202.0 +(byte) render_screen_original::x#2 reg byte x 202.0 +(byte) render_screen_original::x#3 reg byte x 151.5 +(byte) render_screen_original::x#4 reg byte x 67.33333333333333 +(byte) render_screen_original::x#5 reg byte x 60.599999999999994 +(byte) render_screen_original::x#6 reg byte x 101.0 +(byte) render_screen_original::y +(byte) render_screen_original::y#1 y zp ZP_BYTE:2 16.5 +(byte) render_screen_original::y#6 y zp ZP_BYTE:2 1.2222222222222223 (byte*[PLAYFIELD_LINES#0+3]) screen_lines (const byte*[PLAYFIELD_LINES#0+3]) screen_lines#0 screen_lines = { fill( PLAYFIELD_LINES#0+3, 0) } (byte()) sid_rnd() @@ -741,12 +813,12 @@ (void()) sid_rnd_init() (label) sid_rnd_init::@return -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 render_init::l#4 render_init::l#1 play_spawn_current::$3 ] +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 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#71 ] zp ZP_BYTE:4 [ current_xpos#48 current_xpos#96 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#87 current_piece_gfx#88 render_playfield::line#2 render_playfield::line#0 render_playfield::line#1 current_piece#12 current_piece#71 current_piece#72 current_piece#73 current_piece#74 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 fill::addr#2 fill::addr#0 fill::addr#1 play_lock_current::playfield_line#0 ] -zp ZP_BYTE:7 [ current_piece_color#62 current_piece_color#75 current_piece_color#76 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_WORD:5 [ current_piece_gfx#53 current_piece_gfx#87 current_piece_gfx#88 render_playfield::line#2 render_playfield::line#0 render_playfield::line#1 current_piece#12 current_piece#71 current_piece#72 current_piece#73 current_piece#74 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#62 current_piece_char#75 current_piece_char#76 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#3 render_current::l#1 play_collision::l#6 play_collision::l#1 ] zp ZP_BYTE:10 [ render_current::i#2 render_current::i#1 render_current::i#4 render_current::i#8 play_collision::i#2 play_collision::i#3 play_collision::i#11 play_collision::i#13 ] @@ -760,11 +832,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_WORD:12 [ current_piece#20 current_piece#75 current_piece#16 current_piece#10 current_piece#70 render_init::$10 fill::end#0 ] +zp ZP_WORD:12 [ current_piece#20 current_piece#75 current_piece#16 current_piece#10 current_piece#70 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::$15 ] 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:18 [ current_piece_color#21 current_piece_color#16 current_piece_color#11 current_piece_color#13 ] +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 ] reg byte y [ play_remove_lines::r#2 play_remove_lines::r#3 play_remove_lines::r#1 ] @@ -777,7 +849,7 @@ zp ZP_BYTE:19 [ keyboard_events_size#10 keyboard_events_size#29 keyboard_events_ reg byte x [ play_init::j#2 play_init::j#1 ] reg byte x [ render_init::i#2 render_init::i#1 ] reg byte x [ render_init::c#2 render_init::c#1 ] -reg byte x [ fill::val#3 ] +reg byte 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 ] reg byte a [ keyboard_event_get::return#3 ] zp ZP_BYTE:20 [ main::key_event#0 ] reg byte a [ play_move_down::key_event#0 ] @@ -831,4 +903,5 @@ reg byte a [ keyboard_event_scan::event_type#0 ] reg byte a [ keyboard_event_scan::$11 ] reg byte a [ keyboard_matrix_read::return#0 ] reg byte a [ play_init::$1 ] -reg byte a [ render_init::$5 ] +reg byte a [ render_init::$10 ] +reg byte a [ render_screen_original::$3 ]